J'ai écrit une boucle Sans cette variable en utilisant en lieu et place la valeur Ouvrir dans l'éditeur Overleaf
[evaluate=\x as \xx using {\x\*(4\*.347296355)}] et il apparaît bien l'image ci-dessous :
... mais lorsque je remplace la valeur Ouvrir dans l'éditeur Overleaf
[evaluate=\x as \xx using {\x\*(\longueur\*.347296355)}] ... cela ne fonctionne plus et j'obtiens cette image : L'ECM qui fonctionne est celui-ci : Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper, 11pt,landscape]{article} \usepackage{tikz} \usepackage[frenchb]{babel} \begin{document} \newlength{\longueur} \setlength{\longueur}{4cm} \begin{tikzpicture} \clip (0,0) rectangle({\longueur*3.125667198},{\longueur*.984807753}); \foreach \x [evaluate=\x as \xx using {\x*(4*.347296355)}] in {0,1,...,9}{ \draw (\xx,0)--++(80:\longueur); \draw(\xx,0)--++(100:\longueur); } \draw (0,0) rectangle({\longueur*3.125667198},{\longueur*.984807753}); \end{tikzpicture} \end{document} L'ECM qui ne fonctionne pas est celui-là : Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper, 11pt,landscape]{article} \usepackage{tikz} \usepackage[frenchb]{babel} \begin{document} \newlength{\longueur} \setlength{\longueur}{4cm} \begin{tikzpicture} \clip (0,0) rectangle({\longueur*3.125667198},{\longueur*.984807753}); \foreach \x [evaluate=\x as \xx using {\x*(\longueur*.347296355)}] in {0,1,...,9}{ \draw (\xx,0)--++(80:\longueur); \draw(\xx,0)--++(100:\longueur); } \draw (0,0) rectangle({\longueur*3.125667198},{\longueur*.984807753}); \end{tikzpicture} \end{document} Comment faire pour utiliser une variable de dimension dans l' |
TeX convertit les longueurs en Lors de l'évaluation, c'est cette valeur qui est utilisée, i.e. 113.81102. Une solution est d'utiliser Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper, 11pt,landscape]{article} \usepackage{tikz} \usepackage[frenchb]{babel} \begin{document} \newlength{\longueur} \setlength{\longueur}{4cm} \begin{tikzpicture} \clip (0,0) rectangle({\longueur*3.125667198},{\longueur*.984807753}); \foreach \x [evaluate=\x as \xx using {\x*(\longueur/1cm*.347296355)}] in {0,1,...,9}{ \draw (\xx,0)--++(80:\longueur); \draw(\xx,0)--++(100:\longueur); } \draw (0,0) rectangle({\longueur*3.125667198},{\longueur*.984807753}); \end{tikzpicture} \end{document} |
Il suffit de remplacer
\newlength{\longueur} \setlength{\longueur}{4cm}
par\newcommand*\longueur{4}
Parfait ! merci beaucoup !
@touhami Une question : j'avais tenté de remplacer les longueurs avec \def\longueur{4} sans succès, pourquoi cela ne fonctionne t-il pas avec \def mais fonctionne avec \newcommand ?
@AndréC Pour moi ça marche.
Vous avez raison ça marche, en fait j'avais remplacé par \def\longueur{4cm} et non pas par \def\longueur{4} et c'est ce problème de conversion de longueur qui s'est posé.