使放大的数字在正常文本(几乎是数字)高度中垂直居中。

使放大的数字在正常文本(几乎是数字)高度中垂直居中。

我希望里面的数字围绕着其他数字,并且能够在高度上垂直居中,不受正常字体大小设置的影响,如图所示:

在此处输入图片描述

(放大后的六是{\Large6})但是我无法通过使用命令\raiseboxex长度单位来获得结果。请帮忙!

答案1

使用\raisebox是正确的方法。您可以使用\height来表示内容的高度,即基线以上的高度。\depth对于正常数字, 应该为零。然后您需要从正常高度中减去\height并将其除以 2。大写字母的正常高度约为\strut给出的高度的1.6ex 或 80% \ht\strutbox。您可以使用 e-TeX\dimexpr进行计算。

\documentclass{article}

\newcommand{\vcentered}{\raisebox{.5\dimexpr.8\ht\strutbox-\height\relax}}

\begin{document}

0000\vcentered{\Large 6}00000\vcentered{\small 9}00000

0000\vcentered{\Huge 6}00000\vcentered{\tiny 9}00000

\end{document}

结果:

结果


如果您能提供正常高度的参考,那么您可以做得更准确。此外,您还可以考虑深度。

\documentclass{article}

\newsavebox{\vrefbox}
\newcommand{\setvref}{\sbox{\vrefbox}}
\newcommand{\vcentered}{\raisebox{.5\dimexpr\ht\vrefbox-\height\relax}}

\begin{document}

\setvref{0}0000\vcentered{\Large 6}00000\vcentered{\small 9}00000

\huge
\setvref{0}0000\vcentered{\Huge 6}00000\vcentered{\tiny 9}00000

\end{document}

答案2

我会用:

\newcommand\vcentered[1]{\ensuremath{\vcenter{\hbox{#1}}}}

而不是马丁的定义。虽然有点不同居中文本,它最初设计用于 TeX 中的垂直对齐。

关键是用法

\vcentered{00000}\vcentered{\Huge6}\vcentered{00000}%
\vcentered{\tiny 9}\vcentered{00000}

在此处输入图片描述

相关内容