![为什么我需要在 \vcenter 里面有一个 \hbox 才能使其工作?](https://linux22.com/image/300341/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E9%9C%80%E8%A6%81%E5%9C%A8%20%5Cvcenter%20%E9%87%8C%E9%9D%A2%E6%9C%89%E4%B8%80%E4%B8%AA%20%5Chbox%20%E6%89%8D%E8%83%BD%E4%BD%BF%E5%85%B6%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我想让方程中的某个对象垂直居中。我想:“好的,\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
却不是这样。