我想将包含除以和的项的数学计算坐标输入到 Ti钾Z。
例如,我想使用与此类似的语法:\def \cmd {1/(1+1)}
然后将其结果输入到 Ti钾Z 使用类似这样的语法:\coordinate (P) at (0,\cmd);
我之所以询问是因为我在循环\def
中使用该命令\foreach
,其中定义的命令的值会随着\foreach
循环的每个值而改变。
以下是 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}
重要的是维持分数的“2+1”结构。
答案1
使用括号括起来\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}
或者,你可以\myFraction
用附加括号来定义
\def \myFraction {{3/(2+1)}}
然后使用\myFraction
(不带括号)
\fill[green] (3,\myFraction) circle [radius=1];
答案2
我会用declare function
来定义常量和计算变量。现代观点认为所有常量、参数、变量、函数都只是变量。代码更简洁一些。
\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}
circle(2)
PS:与新语法相比,我更喜欢旧语法circle[rađius=2cm]
。