![是否有一种可靠的方法来对齐下标的基线?](https://linux22.com/image/406555/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E7%A7%8D%E5%8F%AF%E9%9D%A0%E7%9A%84%E6%96%B9%E6%B3%95%E6%9D%A5%E5%AF%B9%E9%BD%90%E4%B8%8B%E6%A0%87%E7%9A%84%E5%9F%BA%E7%BA%BF%EF%BC%9F.png)
我的问题的一个最小例子是
T_a T_b
vs 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
答案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}