![使三级嵌套下标始终较小](https://linux22.com/image/420305/%E4%BD%BF%E4%B8%89%E7%BA%A7%E5%B5%8C%E5%A5%97%E4%B8%8B%E6%A0%87%E5%A7%8B%E7%BB%88%E8%BE%83%E5%B0%8F.png)
我经常需要输入类似 的内容$a_{b_{c_d}}$
,并希望正确缩放内容,即在此示例中,我希望d
小于c
。这可以在每种情况下手动完成,方法是\scaleto
如中所述这答案,例如在我的例子中,它看起来像a_{b_{c_{\scaleto{d}{3pt}}}}
。这仍然非常清晰,可以让人立即发现它d
是下标c
,如果它们的大小相同,我认为这有点不清楚。我注意到我必须根据字符更改字体大小,例如,如果我们将与交换,d
那么m
它就3pt
太大了,a_{b_{c_{\scaleto{m}{2pt}}}}
看起来是正确的。
有没有办法将这种行为硬编码到序言中,以便第三个嵌套的子/上标进行相应的缩放?
答案1
TeX 的排版引擎默认只识别两级下标。这是硬连线行为:每个数学字体都有一个\textfont
、一个\scriptfont
和一个\scriptscriptfont
。最好的办法是创建一个宏来合并所有级别的下标和命令\scaleto
(你甚至可以使用一些宏技巧来合并关于字体使用哪种大小的规则)。正如你所注意到的,将字符设置为小于 5pt 会使它们很快变得难以辨认,这可能是 TeX 默认不执行任何小于 scriptscriptsize 操作的众多原因之一(还有一个事实是 Knuth 没有将 cmr 设置为小于 5pt,而 TeX 最初设计用于排版计算机编程艺术它被设置为 10pt 类型并且对于超过两级下标/上标的内容没有多大用处)。