\resizebox 与 tikz 矩阵一起使用时出现编译错误

\resizebox 与 tikz 矩阵一起使用时出现编译错误

这个 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}

结果和以前一样。

相关内容