可以添加上标吗?

可以添加上标吗?

假设我想写入N^{eT},但有N^e一个预定义命令\Ne。因此,我想将字符附加T到 的上标\Ne。这可能吗?

(请注意,我不想写{\Ne}^T,因为这会导致 T 比 e 高一级。这个问题在让 LaTeX 实现双上标顺便一提)

答案1

或者空的可选参数怎么样?

\newcommand*\Ne[1][]{N^{e#1}}

你可以使用

$\Ne$ or $\Ne[T]$

答案2

这里有一个“聪明的破解”,灵感来自于(读作:厚颜无耻地抄袭自)数学素数的定义:

\documentclass{article}

\makeatletter
\def\Ne{N^\bgroup\e@s}
\def\e@s{%
  e\futurelet\@let@token\e@@s}
\def\e@@s{%
  \ifx^\@let@token
     \expandafter\expandafter\expandafter\e@@@s
  \else
     \egroup
  \fi}
\def\e@@@s#1#2{#2\egroup}
\makeatother

\begin{document}
\[
\Ne^T \Ne^T_5
\]
\end{document}

你可以做\Ne^{}_{}但不要\Ne_{}^{},否则定位正是N^{}_{}

答案3

我将按\Ne以下方式定义:

\newcommand{\Ne}{\ensuremath{N^e\vphantom{N}}}

这确保任何后续上标都从与常规上标相同的高度开始N,但同时也欺骗 TeX 认为它是不是加倍上标:

在此处输入图片描述

\documentclass{article}
\newcommand{\Ne}{\ensuremath{N^e\vphantom{N}}}
\begin{document}
\Ne\ $\Ne^T$\ $N^{eT}$
\end{document}

请注意,这对于下标不起作用,因为位置会偏离。要做到这一点需要付出更多努力。

相关内容