有没有办法覆盖LaTeX关于双下标和上标的错误?

时间:2010-05-27 12:02:03

标签: latex tex mathematical-expressions

关于困扰我的LaTeX的一点点。当一个人写

a^b^c, a_b_c  

a'^b  

在数学模式下,LaTeX会发出错误消息,抱怨多个超级/下标。替换包含super /下标的字符串或使用撇号'后,这尤其令人讨厌。

有没有办法覆盖错误并让LaTeX简单输出

a^{bc} a_{bc} {a'}^b  

等等?

3 个答案:

答案 0 :(得分:5)

以下是您的意愿

\catcode`\^ = 13 \def^#1{\sp{#1}{}}
\catcode`\_ = 13 \def_#1{\sb{#1}{}}

答案 1 :(得分:3)

这是你真正应该被警告的情况之一,并且必须按照你想要的方式放置大括号 - 或者写一些没有双子/上标的东西,如果这就是你的意思。通常,当您使用上标来表示取幂而不是索引a^b^c = a^{b^c}时,所以您描述的输出在某些情况下肯定是不正确的。当然,如果它们是上标索引,你可能意味着a^{bc},但是如何知道LaTeX?对于下标,如果你真的是a_{n_k}而不是a_{nk}怎么办? (即,双索引与一系列索引)

(当然,如果这是替换的一部分,你可以找到一种方法来解决它作为替换的一部分。)

答案 2 :(得分:1)

虽然Alexeys answer应该是可以接受的-它确实符合作者的要求-让我注意到,还有其他的Latex软件包可以做到这一点,最著名的是Tensor package可以做到这一点:

Screenshot from the tensor package documentation

您为第一个示例写了\Gamma\indices{^\mu_{\nu\rho}}。相反,使用Alexeys answer,您可以编写显然更短的\Gamma^\mu_{\nu\rho}。但是,重新定义^_字符的猫码将破坏常规文本中这些字符的出现,这在数学模式之外尤其令人讨厌。