为什么我需要在 \vcenter 里面有一个 \hbox 才能使其工作?

为什么我需要在 \vcenter 里面有一个 \hbox 才能使其工作?

我想让方程中的某个对象垂直居中。我想:“好的,\vcenter这就是方法。”但我不明白(甚至不明白TeX 基元参考),为什么我需要一个\hbox内部组件\vcenter才能使其工作。此外,这是一种糟糕的方法吗?有没有更好的选择?

请参阅以下 MWE(1:无修饰符,2:\vcenter{...},3 \vcenter{\hbox{...}}:):

\documentclass[a4paper]{article}

\usepackage{amsmath}

\usepackage{lipsum}
\usepackage[margin=1cm]{geometry}

\begin{document}

\lipsum[1]

\begin{equation}
\rule{5cm}{5cm}
\end{equation}

\lipsum[2]

\begin{equation}
\vcenter{\rule{5cm}{5cm}}
\end{equation}

\lipsum[3]

\begin{equation}
\vcenter{\hbox{\rule{5cm}{5cm}}}
\end{equation}

\lipsum[4]

\end{document}

答案1

如果您在 vbox(或 vcenter)内开始一个段落,行将被拆分为\hsize此处\textwidth,其宽度超出您的预期。您应该使用表格,它将垂直居中,看起来更像 latex。所有 LaTeX 框和规则命令都一致地开始一个段落(所以\rule这里),但 TeX 基元\hbox却不是这样。

相关内容