\vphantom 和上标

\vphantom 和上标

这两个语句的上标位置完全相同:

\vphantom{\int}^S{}^S

我怎样才能使上标变得更高?

编辑

\int只是一个例子。这是另一个例子:\vphantom{)}^S)^S

答案1

该构造\vphantom不是数学运算符,因此普通数学原子的规则适用于上标。\mathop有助于:

\documentclass{article}

\begin{document}
\[
  \int^S = \mathop{\vphantom{\int}}\nolimits^S
\]
\[
  \int\limits^S = \mathop{\vphantom{\int}}^S
\]
\end{document}

结果

使用包amsmath可以声明一个“空”数学运算符\DeclareMathOperator

\documentclass{article}

\usepackage{amsmath}
\DeclareMathOperator*{\vint}{\vphantom{\int}}

\begin{document}
\[
  \int^S = \vint\nolimits^S
\]
\[
  \int\limits^S = \vint^S
\]
\end{document}

如果结束分隔符较大,\mathclose可以提供帮助,例如:

\documentclass{article}

\begin{document}
\[
  \Biggr)^S = \mathclose{\vphantom{\Biggr)}}^S
\]
\end{document}

不可见的结束分隔符处的上标

我不知道这个问题的原因。如果只需要一个单独的上标,那么隐形的\rule\raisebox会有所帮助:

\documentclass{article}

\begin{document}
\[
  {}^S < \rule{0pt}{2.5ex}^S < \raisebox{3ex}{$\scriptstyle S$}
\]
\end{document}

上标

答案2

原因是:宏\vphantom扩展为\mathchoice原始。此原始将“选择项”放入数学列表中。当^出现以下情况时,原子核不会立即创建,您可以阅读 TeXbook,第 291 页:

<superscript>:如果当前列表没有以原子结尾,则附加一个所有字段都为空的新 Ord 原子。

尝试这个:

$ \int^S, {\int}^S  % <- both creates the same result, Ord or Op is irrelevant
  \mathchoice{\int}{\int}{\int}{\int}^S % <- this emulates \vphnatom{\int}^S
  % and the empty atom is inserted (see TeXbook) like: 
  \mathchoice{\int}{\int}{\int}{\int}{}^S
  % so the result is the same as:
  {}^S
$

您可以通过以下方式解决您的问题:

$ {\vphantom{\int}}^S $ 

因为Ord原子是以“选择项”为核心创建的。

注意:普通原子不是问题,问题是\mathchoice

相关内容