在 foreach 循环中使用节点样式颜色会弄乱节点标签文本。原因何在?如何修复?

在 foreach 循环中使用节点样式颜色会弄乱节点标签文本。原因何在?如何修复?

尝试用于\foreach节点放置和着色失败。节点标签变为例如redredcaptionA其中red是所需颜色,captionA是节点标签文本。

期望的结果是节点的captionA标签文本采用红色字体颜色。

平均能量损失

\documentclass[tikz]{standalone}
  \begin{document}
    \begin{tikzpicture}
      \foreach \i/\text/\color in {{1,1}/captionA/{red},{2,2}/captionB/{blue}}
        {\node[text=\color] at (\i) {\text};}
\end{tikzpicture}
\end{document}

我已看到一些相关的帖子,其中节点定义需要在 \edef 定义中,但这并不能解决问题。

答案1

这似乎是因为您正在(本地)重新定义\color,例如用作\ccolor循环变量。

在此处输入图片描述

\documentclass[tikz]{standalone}
  \begin{document}
    \begin{tikzpicture}
      \foreach \ii/\ttext/\ccolor in {{1,1}/captionA/{red},{2,2}/captionB/{blue}}
        {\node[text=\ccolor] at (\ii) {\ttext};}
\end{tikzpicture}
\end{document}

相关内容