改变下标的大小和位置(如双下标)

改变下标的大小和位置(如双下标)

我写这篇文章是因为我想知道是否有一种自动的方法(比如在序言中放些东西)可以让下标表现得像双下标:例如如果我写

something_a 

它应该表现为

something_{_a}

答案1

您可能不想丢失一步下标,但想改变它们的行为。如果您想降低它们,您可以更改 TeX 参数,如以下示例所示(需要选择确切的值):

\documentclass{article}
\begin{document}

\[
a_b
\]

\fontdimen16\textfont2=3pt
\fontdimen17\textfont2=3pt

\[
a_b \mbox{ 3pt}
\]

\fontdimen16\textfont2=5pt
\fontdimen17\textfont2=5pt

\[
a_b \mbox{ 5pt}
\]

\end{document}

在此处输入图片描述

如果您还想更改下标的大小,则应该更加精确:您对哪种 TeX 方言(例如,普通方言或 LaTeX)感兴趣?

答案2

实际上,你最初的问题非常有趣,但无法直接解决。这涉及到 TeX 如何处理下标。该指令_(例如a_b)既不是控制序列也不是控制符号,这些在 TeX Book 中都有描述。但它是一个特殊字符,其功能通过其类别代码声明。因此,不仅像 ' \def_#1{_{_#1}}' 这样的“重新定义”会失败,而且任何东西都会失败。

您需要的可以通过其他方式解决:通过定制\fontdimens(参见上面的答案)控制下标的大小,我建议邮政。

或者(但这是一种肮脏的黑客行为):您可以将 catcode 更改为_active 并重新定义,如下所示:

\documentclass{article}
\catcode`\_=13
\def_#1{\sb{\sb{#1}}}
\begin{document}
$a_b,a_{bc}$
\end{document}

相关内容