图像之间的文本垂直对齐

图像之间的文本垂直对齐

我需要在 Latex 中将一些文本(垂直)居中在两个不同大小的图像之间,想问一下是否有一种简单的方法(类似于水平对齐的 \centering)来实现这一点?“简单”是指无需小页面和其他繁重的方法。

PS 图像通过以下方式插入:

\begin{figure}[ht]
\centering
\includegraphics{image1} text1 \includegraphics{image2} text2
\end{figure}

并且目前它们都已对齐,以便接触行的底部:

在此处输入图片描述

答案1

在此处输入图片描述

仅总结一下上述评论中提到的内容,并提供一些关于准确性和简单性的比较和评论。此外,我建议采用第四种方法,使用\parboxes 进行高精度计算。以下所有方法都仅使用 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

我建议使用\parboxes,因为它们自然是垂直对齐的,因此此属性可用于垂直对齐图像。这里的准确度是所有其他方法中最高的(观察 + 的水平线与图像中心线的对齐情况),但必须明确为宏提供一个width参数\parbox。幸运的是,我们有calc包,可以\parbox无缝提供该长度。在这种情况下,\widthof使用命令。

方法 2

第二种方法tabular使用了两个 s。这似乎是一种简单的方法,但不幸的是,开箱即用的对齐并不完美。我们观察到图像比+=符号高一点。

方法 3

第三种方法使用包\raisebox中的宏graphicx(请注意adjustboxloads )。这似乎也是一种简单的方法,但不幸的是,开箱即用的对齐效果也不是完美的。我们观察到图像比和符号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}

在此处输入图片描述

相关内容