我想\j
在循环中定义一个变量\foreach \i in { 2, 4, 6}
并用来\j
作为节点的标签。
这是我的代码:
\documentclass{standalone}
\usepackage{balance,complexity,pgfplots,tikz,tikz-3dplot}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[scale=0.4]
\def \half {0.5};
\foreach \i in { 2, 4, 6}
{
\def \j {\i*\half};
\node[draw=none] at (\i,0) {$X_{\j}$};
\node[draw=none] at (-\i,0) {$X'_{\j}$};
}
\end{tikzpicture}
\end{document}
我想获得这个输出:
相反,我得到的是:
如何使用数学运算符来修改节点的标签?
答案1
使用\pgfmath
宏(\pgfmathsetmacro
用于浮点计算并且\pgfmathtruncatemacro
如果您只想要整数部分)。
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=0.4]
\pgfmathsetmacro\half {0.5};
\foreach \i in { 2, 4, 6}
{
\pgfmathtruncatemacro\j{\i*\half};
\node[draw=none] at (\i,0) {$X_{\j}$};
\node[draw=none] at (-\i,0) {$X'_{\j}$};
}
\end{tikzpicture}
\end{document}
答案2
foreach
您可以在循环内进行计算
\foreach \i [evaluate=\i as \moitie using int(\i/2)] in { 2, 4, 6}
参见手册 3.0.1a 第 904 页。
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=0.4]
\foreach \i [evaluate=\i as \moitie using int(\i/2)] in { 2, 4, 6}
{
\node[draw=none] at (\i,0) {$X_{\moitie}$};
\node[draw=none] at (-\i,0) {$X'_{\moitie}$};
}
\end{tikzpicture}
\end{document}