当我定义一个新命令来绘制轴时,我想使用一个参数来计算刻度数的步长。我试过了,但没有用:
\newcommand{\axistest}[2]{
\draw[->,color=black] (0,0) -- (#1+0.5,0);
\foreach \x in {1, ..., #1} {
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $#2*\x$};
}
}
\begin{tikzpicture}
\axistest{5}{2}
\end{tikzpicture}
我得到以下输出:
但我希望数字是 2、4、6 等。
当我删除周围的美元符号时,我得到了相同的输出#2*\x
。
答案1
你问 Ti钾Z 将文本写入节点,它会写入文本。如果要计算要打印到节点中的值,则必须将标签评估到定义中foreach
(例如):
\documentclass[tikz,border=3.14mm]{standalone}
% https://tex.stackexchange.com/q/630831/204164
\begin{document}
\begin{tikzpicture}
\draw[->,color=black] (0,0) -- (5+0.5,0);
\foreach \x [evaluate=\x as \l using int(2*\x)] in {1, ..., 5} {
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\l$};
}
\end{tikzpicture}
\end{document}
由于您没有提供 MWE,所以我没有将命令插入到newcommand
,但我相信您可以自己弄清楚。