J'ai besoin de faire varier l'ensemble dans lequel la variable de la boucle Je m'explique : l'exemple suivant marche (ma variable est \documentclass{article} \usepackage{tikz} \newcommand{\n}{3} \begin{document} \begin{tikzpicture} \foreach \i in {0,...,\n} \draw (\i,0) circle (0.5); \end{tikzpicture} \end{document} tandis que si je remplace le \documentclass{article} \usepackage{tikz} \newcommand{\n}{3} \begin{document} \begin{tikzpicture} \foreach \i in {0,...,\n-1} \draw (\i,0) circle (0.5); \end{tikzpicture} \end{document} Commment résoudre ce problème ? Posée 19 Mar '21, 16:29 Mario |
\documentclass{article} \usepackage{tikz} \newcommand{\n}{3} \begin{document} \begin{tikzpicture} \pgfmathparse{\n-1} \foreach \i in {0,...,\pgfmathresult}{ \draw (\i,0) circle (0.5); } \end{tikzpicture} \end{document} Publiée 19 Mar '21, 16:57 samcarter |
Voici d'autres possibilités : \documentclass{article} \usepackage{tikz} \newcommand{\n}{3} \begin{document} \begin{tikzpicture} \foreach \i in {0,...,\numexpr\n-1} \draw (\i,0) circle (0.5); \end{tikzpicture} \end{document} ou \documentclass{article} \usepackage{tikz} \newcommand{\n}{3} \begin{document} \begin{tikzpicture} \foreach \i in {0,...,\n} {\ifnum\i<\n \draw (\i,0) circle (0.5);\fi} \end{tikzpicture} \end{document} ou encore, \documentclass{article} \usepackage{tikz} \newcommand{\n}{3} \begin{document} \begin{tikzpicture} \foreach \i in {0,...,\n} \draw ({sign(\n-\i)*\i},0) circle (0.5); \end{tikzpicture} \end{document} Publiée 24 Mar '21, 19:24 touhami |
\documentclass{article} \usepackage{tikz} \newcommand{\n}{3} \begin{document} \begin{tikzpicture} \foreach[parse=true] \i in {0,...,\n-1} \draw (\i,0) circle (0.5); \end{tikzpicture} \end{document} Publiée 15 Avr '21, 23:09 Paul Gaborit |
Est-ce que tu peux compter de 1 à
\n
et utiliser ensuite\i-1
?