我不确定我理解得是否正确,但是使用pos=c
aparbox
或 aminipage
时,中心线的基线应该与外部文本的基线垂直对齐吗?但是,实际发生的情况是parbox
或内的文本minipage
低于外部文本。
\documentclass{article}
\begin{document}
llll\parbox[c]{2em}{llll}llll
llll\begin{minipage}[c]{2em}llll\end{minipage}llll
\end{document}
答案1
选项(和c
的默认值)不相对于基线居中,而是相对于\parbox
minipage
公式轴,这是分数线所在的位置,略高于基线。
\parbox
当有多条线时,这种情况会被掩盖,但当只有一条线时,这种情况就会变得明显。
我们来做一个实验。
\documentclass{article}
\newsavebox{\testbox}
\begin{document}
$ $ % to activate math
\sbox{\testbox}{\parbox{2em}{ll}}
Height: \the\ht\testbox
Depth: \the\dp\testbox
Formula axis: \the\fontdimen22\textfont2
\end{document}
这将产生
事实上,5.97223pt 减 2.5pt 等于 3.47223pt,而 0.97221pt 加 2.5pt 等于 3.47221。小数点后第五位数字的差异可以忽略不计,这是 TeX 为了实现机器独立性而进行的四舍五入的结果。
您可以通过将结果框降低公式轴的高度来实现相对于基线的居中:
\documentclass{article}
\makeatletter
\newcommand{\cparbox}[2]{%
\check@mathfonts
\raisebox{-\fontdimen22\textfont2}{\parbox{#1}{#2}}%
}
\makeatother
\begin{document}
ll\parbox{2em}{ll}ll
ll\cparbox{2em}{ll}ll
\end{document}