\foreach
这个问题和内部\matrix
问题不同1和2。我正试着做这道题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 中,但仍然不起作用。
更新
根据这些问题,另一个宏中的矩阵路径和矩阵的快捷方式,现在我可以通过声明宏将矩阵放入 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}