foreach 循环内的矩阵节点在多列时出现错误

foreach 循环内的矩阵节点在多列时出现错误

\foreach这个问题和内部\matrix问题不同12。我正试着做这道题3d矩阵\matrix输入该命令后,\foreach会出现以下错误当存在多列时

! 未定义的控制序列。\pgf@matrix@last@nextcell@options l.28 } 错误消息顶行末尾的控制序列从未被 \def'ed。如果您有...

M(N)WE

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}

\foreach \x in {0,1,...,3}
{
    \node at(\x, 1){\x};
}

\foreach \x in {0,1,...,3}
{
\matrix [red] at(\x, 0)
{
\node {1}; \\
\node {2}; \\
\node {3}; \\
\node {4}; \\
};
}
% remove the % for the following code
%\foreach \x in {0,1,...,3}
%{
\matrix [blue] at (2,0)
{
\node {1}; & \node {2}; \\
};
%}

\end{tikzpicture}
\end{document}

有没有解决这种情况的方法?(我使用的是 texlive 2015,tikz 版本是tikz 2015/08/07 v3.0.1a (rcs-revision 1.151)

另外,为了查看是否是由于我的输入错误,我从 pgf 手册中复制粘贴了矩阵示例到 foreach 中,但仍然不起作用。

foreach 中的矩阵

更新

根据这些问题,另一个宏中的矩阵路径矩阵的快捷方式,现在我可以通过声明宏将矩阵放入 for 循环中。但现在我无法访问循环变量。

\documentclass[tikz]{standalone}

\begin{document}

\begin{tikzpicture}
\useasboundingbox (-1,-1) rectangle (5, 1);

\foreach \x in {0,2,...,4}
{
\begin{scope}[xshift=\x cm]
\matrix [draw,ampersand replacement=\&]{\node {1}; \&%
\node {\x};\\
\node {3}; \&%
\node {\x};\\};
\end{scope}
}

\end{tikzpicture}
\end{document}

答案1

我正在回答我自己的问题,以便以后的搜索\matrix inside \foreach会出现结果(并且它会指向早期有用的帖子(为什么当我将 \matrix 路径放入另一个宏中时会失败?) & (定义 TikZ 矩阵的快捷方式存在问题。))。

\documentclass[tikz]{standalone}

\begin{document}

\begin{tikzpicture}
\useasboundingbox (-1,-1) rectangle (5, 1);

\foreach \x in {0,2,...,4}
{
\begin{scope}[xshift=\x cm]

必填选项

\matrix [draw,ampersand replacement=\&]{\node {1}; \&%

其余代码

\node {\x};\\
\node {3}; \&%
\node {\x};\\};
\end{scope}
}

\end{tikzpicture}
\end{document}

相关内容