Quiero ingresar coordenadas calculadas matemáticamente, que contengan términos que se dividen por sumas, en TikZ.
Por ejemplo, me gustaría usar algo con una sintaxis similar a esto:\def \cmd {1/(1+1)}
y luego ingrese su resultado en TikZ usando una sintaxis similar a esta:\coordinate (P) at (0,\cmd);
El motivo de mi pregunta es porque estoy usando el \def
comando dentro de un \foreach
bucle, donde el valor del comando definido cambia para cada valor del \foreach
bucle.
Aquí hay un MWE:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def \myFraction {3/(2+1)}
\fill[red] (0,0) circle [radius=\myFraction]; % Works!
%\fill[green] (3,\myFraction) circle [radius=1]; % Does not work. :(
\end{tikzpicture}
\end{document}
Es importante que se mantenga la estructura "2+1" de la fracción.
Respuesta1
Utilice llaves alrededor de \myFraction
:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def \myFraction {3/(2+1)}
\fill[red] (0,0) circle [radius=\myFraction]; % Works!
\fill[green] (3,{\myFraction}) circle [radius=1]; % Does not work. :(
\end{tikzpicture}
\end{document}
Alternativamente, puede definir \myFraction
con las llaves adicionales
\def \myFraction {{3/(2+1)}}
y luego usar \myFraction
(sin frenillos)
\fill[green] (3,\myFraction) circle [radius=1];
Respuesta2
Lo usaría declare function
para definir constantes y calcular variables. Una visión moderna considera todas las constantes, parámetros, variables y funciones como simplementevariables. El código es un poco más limpio.
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[declare function={a=-2;b=a+4;}]
\def\myFraction{3/(2+1)}
\fill[red] (0,0) circle(\myFraction);
\fill[green] (3,{\myFraction}) circle(1);
\fill[blue] (3,a) circle(1);
\fill[magenta] (7,a+1) circle(b);
\end{tikzpicture}
\end{document}
PD: Me gusta circle(2)
más la sintaxis antigua que la nueva circle[rađius=2cm]
.