这个 MWE 使用 lualatex 编译没有错误
\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix[draw=red,nodes=draw,column sep=2mm, row sep=2mm]
{
\node (11) {}; & \node (12) {A}; & \node (13) {}; \\
\node (21) {}; & \node (22) {B}; & \node (23) {}; \\
};
\draw (12) -- (22);
\end{tikzpicture}
\end{document}
但是\resizebox
现在添加时会出现编译错误:
\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\resizebox{.9\textwidth}{1.2\textwidth}
{%
\begin{tikzpicture}
\matrix[draw=red,nodes=draw,column sep=2mm, row sep=2mm]
{
\node (11) {}; & \node (12) {A}; & \node (13) {}; \\
\node (21) {}; & \node (22) {B}; & \node (23) {}; \\
};
\draw (12) -- (22);
\end{tikzpicture}
}
\end{document}
使用 lualatex 进行编译现在给出
(/usr/local/texlive/2023/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
! Undefined control sequence.
<argument> \pgf@matrix@last@nextcell@options
l.35 }
?
请注意此错误仅有的使用 tikz 矩阵时出现。我已经使用\resizebox
它调整 tikz 图片大小很长时间了,没有出现任何错误。
这是我第一次尝试\matrix
,这就是我发现它的方式。
是否可以\resizebox
与其中的 tikz 图片一起使用\matrix
?
TL 2023
答案1
您需要定义替换符号。例如:
\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\resizebox{.9\textwidth}{1.2\textwidth}
{%
\begin{tikzpicture}
\matrix[draw=red,nodes=draw,column sep=2mm, row sep=2mm,
ampersand replacement=\&
]
{
\node (11) {}; \& \node (12) {A}; \& \node (13) {}; \\
\node (21) {}; \& \node (22) {B}; \& \node (23) {}; \\
};
\draw (12) -- (22);
\end{tikzpicture}
}
\end{document}
附录:
您的矩阵可以用更短的代码来绘制:
\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\resizebox{.9\textwidth}{1.2\textwidth}
{%
\begin{tikzpicture}
\matrix (m) [matrix of nodes, nodes in empty cells,
draw=red,
nodes=draw,
column sep=2mm, row sep=2mm,
ampersand replacement=\&
]
{
\& A \& \\
\& B \& \\
};
\draw (m-1-2) -- (m-2-2);
\end{tikzpicture}
}
\end{document}
结果和以前一样。