如何将一个变量定义为另一个变量除以二?

如何将一个变量定义为另一个变量除以二?

我想\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}

相关内容