我想创建一个新命令,以便轻松插入 4 张图片,这些图片将排列成矩阵,但我不知道在主文件中使用哪个分隔符。我总是收到 latex 错误“不知道图形扩展名 .jpg;pix... 我也尝试使用逗号和其他符号。还是我做错了什么?
锰氧化物:
\documentclass{book}
\usepackage{graphicx}
\usepackage{tikz} % Required for drawing custom shapes
\usetikzlibrary{positioning} %required for relative positioning of nodes
%-------------------
\newcommand\twoXtwo[4]{
\clearpage
\begin{tikzpicture}[remember picture,overlay]
\node [matrix] (matrix2x2) at (current page.center) {
\node {\includegraphics[width=0.5\textwidth]{#1}}; & \node{\includegraphics[width=0.5\textwidth]{#2}}; \\
\node {\includegraphics[width=0.5\textwidth]{#3}}; & \node{\includegraphics[width=0.5\textwidth]{#4}}; \\
};
\end{tikzpicture}
}
%-------------------
\begin{document}
\twoXtwo{pix1.jpg;pix2.jpg; pix3.jpg; pix4.jpg}
\end{document}
答案1
有几件事:
- 我建议使用
matrix
tikz 库,因为它是为此目的而设计的。它定义了\matrix
在数学模式下像数组一样工作的命令。 - 调用
twoXtwo
命令时,每个参数都应该放在自己的括号中(这是 LaTeX 所抱怨的)。
\documentclass{book}
\usepackage[draft]{graphicx} % Draft option for placeholder images
\usepackage{tikz} % Required for drawing custom shapes
\usetikzlibrary{positioning} %required for relative positioning of nodes
\usetikzlibrary{matrix} % Matrix library
%-------------------
\newcommand\twoXtwo[4]{
\clearpage
\begin{tikzpicture}[remember picture,overlay]
% Matrix of nodes. N.B. ampersand replacement (see below)
\matrix [matrix of nodes,ampersand replacement=\&] at (current page.center) {
\includegraphics[width=0.5\textwidth]{#1} \& \includegraphics[width=0.5\textwidth]{#2} \\
\includegraphics[width=0.5\textwidth]{#3} \& \includegraphics[width=0.5\textwidth]{#4} \\
};
\end{tikzpicture}
}
%-------------------
\begin{document}
\twoXtwo{foo.png}{foo.png}{foo.png}{foo.png} % Arguments in individual braces
\end{document}
您将使用\twoXtwo{pix1.jpg}{pix2.jpg}{pix3.jpg}{pix4.jpg}
,假设每个图像都与您的主图像位于同一目录中.tex
。
注意使用ampersand replacement=\&
。这是为了避免所描述的错误这里。
输出: