答案1
仅总结一下上述评论中提到的内容,并提供一些关于准确性和简单性的比较和评论。此外,我建议采用第四种方法,使用\parbox
es 进行高精度计算。以下所有方法都仅使用 LaTeX 宏,但可以使用其他原始方法。
\documentclass{article}
\setlength{\parindent}{0in}
\usepackage{calc}
\usepackage[export]{adjustbox}
\begin{document}
\newcommand{\picA}{\includegraphics[height=1.25in,width=1.7in]{example-image-A.pdf}}
\newcommand{\picB}{\includegraphics[height=.5in,width=1in]{example-image-B.pdf}}
\parbox{\widthof{\picA}}{\picA} + another one
\parbox{\widthof{\picB}}{\picB} =
\bigskip
\begin{tabular}{@{}c@{}}\picA\end{tabular} + another one
\begin{tabular}{@{}c@{}}\picB\end{tabular} =
\bigskip
\raisebox{-.5\height}{\picA} + another one
\raisebox{-.5\height}{\picB} =
\bigskip
\includegraphics[valign=m,width=1.7in]{example-image-A.pdf} + another one
\includegraphics[valign=m,width=1in]{example-image-B.pdf} =
\end{document}
方法 1
我建议使用\parbox
es,因为它们自然是垂直对齐的,因此此属性可用于垂直对齐图像。这里的准确度是所有其他方法中最高的(观察 + 的水平线与图像中心线的对齐情况),但必须明确为宏提供一个width
参数\parbox
。幸运的是,我们有calc
包,可以\parbox
无缝提供该长度。在这种情况下,\widthof
使用命令。
方法 2
第二种方法tabular
使用了两个 s。这似乎是一种简单的方法,但不幸的是,开箱即用的对齐并不完美。我们观察到图像比+
和=
符号高一点。
方法 3
第三种方法使用包\raisebox
中的宏graphicx
(请注意adjustbox
loads )。这似乎也是一种简单的方法,但不幸的是,开箱即用的对齐效果也不是完美的。我们观察到图像比和符号graphicx
略低。+
=
方法 4
最后一种方法是使用包valign=m
中的命令adjustbox
将图像垂直居中。这里的准确率有所提高(比上面两种方法更好),但valign=m
与一起使用时height=<length>
图像的缩放效果出乎意料。
答案2
方法 5
\vcenter
在数学模式中使用原始:
$$\vcenter{\picA} \hbox{ text} + \vcenter{\picB}$$
方法 6
使用\valign
原语:
\valign{\vfil\hbox{#}\vfil\cr \picA\cr \ text + \cr \picB \cr}
答案3
我很惊讶没有人提到使用 tikz 来实现这一点。我认为仅为此目的加载 tikz 包有点过分,但我的许多文档无论如何都会使用它,因此这不是额外的负担。
一个简单的例子是:
\begin{tikzpicture}
\node at (-2,0) {\includegraphics{graphic1}};
\node at (0,0) {$\implies$};
\node at (2,0) {\includegraphics{graphic2}};
\end{tikzpicture}
还有一些巧妙的方法可以内联调用 tikz 并处理与周围文本的垂直对齐。例如内联 TikZ - 垂直居中
答案4
使用 TikZ 矩阵的另一种解决方案:
\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{figure}[ht]
\centering
\begin{tikzpicture}
\matrix[matrix of nodes, nodes={anchor=center}]{
\includegraphics[height=4cm]{example-image-a} & text1 & \includegraphics[height=1cm]{example-image-b} & text2\\};
\end{tikzpicture}
\end{figure}
\end{document}