在数学模式之外使用 ^

在数学模式之外使用 ^

我认为可以重新定义^(和_) 以在文本模式下产生\textsuperscript 并在数学模式下正常工作(这是否不是默认行为?),但我不知道如何操作。这是我尝试过的:

\documentclass{article}

\begin{document}

\let\oldhat^
\def^{\ifmmode\expandafter\oldhat
  \else\expandafter\textsuperscript\fi}

$x^n$

% indulgence^2

indulgence\textsuperscript{2}

\end{document}

答案1

有充分的理由不使用^文本模式。但是,如果你想冒险,

\documentclass{article}

\catcode`^=\active
\protected\def^{\ifmmode\expandafter\sp\else\expandafter\textsuperscript\fi}

\begin{document}

Indulgence^2

$x^2$

\end{document}

在此处输入图片描述

答案2

我会尽力回答你问题的第二部分有没有充分的理由说明为什么它不是默认行为。TeX 可以在水平模式、垂直模式或数学模式下工作。在水平模式(您称之为文本模式)下,TeX 将排版材料水平并排放置。水平方向的例外是可能的(通过\lower\raise原语),但并不常见。在数学模式下,TeX 以非常特殊的方式放置排版材料,包括创建上标或下标时的特殊行为。因此,在内部,这始终由 TeX 在数学模式下完成。您可以使用转换到数学模式来检查在 LaTeX 中定义的latex.ltx\textsuperscript

相关内容