是否有一种可靠的方法来对齐下标的基线?

是否有一种可靠的方法来对齐下标的基线?

我的问题的一个最小例子是 T_a T_bvs T_a T_{\dot b}

在第二个下标中,我希望b下标与下标对齐,a而不管是否超调。我知道可能有一些不靠谱的方法可以在第二个下标上创建负空间,但我想要一些可以随数学缩放的东西。

也许可以采取某种方式将盒子的尺寸制作成\dot b与普通盒子相同的尺寸b

編輯:MWE

\documentclass{article}

\begin{document}
$T_a T_b$ vs $T_a T_{\dot b}$
\end{document}

答案1

这里的常见方法是使用\vphantom较大物体的,或者将较大物体放在较小物体的\smash旁边:\vphantom

在此处输入图片描述

\documentclass{article}

\begin{document}

$T_a T_b$ vs 
  $T_a T_{\dot{b}}$ vs
  $T_{\vphantom{\dot{b}}a} T_{\dot{b}}$ vs
  $T_a T_{\vphantom{a}\smash{\dot{b}}}$

\end{document}

答案2

借用亨德里克的回答:重新定义下划线以生成罗马下标而不会破坏文件名

不建议!

\documentclass{article}

\begingroup
  \catcode`\_=\active
  \gdef_#1{\ensuremath{\sb{\smash{#1}}}}
\endgroup
\mathcode`\_=\string"8000
\catcode`\_=12

\begin{document}
$T_a T_b$ vs $T_a T_{\dot b}.$
\end{document}

在此处输入图片描述

如果希望下标普遍较低,NoWayHaze 建议的变体将是这样的:

\documentclass{article}

\begingroup
  \catcode`\_=\active
  \gdef_#1{\ensuremath{\sb{\strut#1}}}
\endgroup
\mathcode`\_=\string"8000
\catcode`\_=12

\begin{document}
$T_a T_b$ vs $T_a T_{\dot b}.$
\end{document}

在此处输入图片描述


作为替代方案,您可以牺牲另一个字符(这里是 )!,以专门表示忽略元素高度的下标。然后,您仍然可以_在正常情况下使用。

\documentclass{article}

\begingroup
  \catcode`\!=\active
  \gdef!#1{\ensuremath{\sb{\smash{#1}}}}
\endgroup
\mathcode`\!=\string"8000
\catcode`\!=12

\begin{document}
$T_a T_{\dot b}.$ vs $T_a T!{\dot b}.$
\end{document}

在此处输入图片描述

相关内容