如何提高下标?

如何提高下标?

出于某种原因,我需要在某些符号上写一个“减号”作为下标,但如果我只是简单地写,$\Pi_{-}$结果看起来有点奇怪。我发现这样$\Pi{\scriptstyle -}$看起来更好。但如果要添加这个“减号”下标一个素数,那么我就会得到素数和假下标之间的一个不必要的空格。

替代文本

那么,有没有办法简单地将下标稍微提高一点呢?

笔记:我考虑过编写类似 的代码$\Pi\mathrlap{'}{\scriptstyle -}$,这样实际上就能产生我想要的结果。但是定义一个宏来编写\Neg{\Pi}\Neg{\Pi'}在我作为参数提供的符号上添加“下标减号”就很困难了。

答案1

您可以输入下标。如果您想要一个在下标中也能正常工作的解决方案,{\raisebox{2pt}{$\scriptstyle-$}}您可能需要尝试一下。\mathchoice

编辑:或者更好的\mathpalette是:

\makeatletter
\newcommand{\raisemath}[1]{\mathpalette{\raisem@th{#1}}}
\newcommand{\raisem@th}[3]{\raisebox{#1}{$#2#3$}}
\makeatother

并使用$\Pi_{\raisemath{2pt}{-}}$

答案2

问题的答案取决于你期望下标的行为。TeX 默认的做法是,如果还有上标,它会将下标放在较低的位置;参见这个问题。如果这对您来说没问题,那么您可以使用 Harald 的解决方案。如果不行,那么您可以使用以下 hack。请注意,这只\Piminus接受'或不接受任何参数,而不接受其他任何参数。

\documentclass{article}

\newdimen\savedxvi
\newdimen\savedxvii
\makeatletter
\newcommand*\Piminus{%
    \@ifnextchar'{\print@pi'\@gobble}
                 {\print@pi\relax\relax}}
\def\print@pi#1#2{%
    \savedxvi=\fontdimen16\textfont2
    \savedxvii=\fontdimen17\textfont2
    \mbox{%
    $\fontdimen16\textfont2=0pt
     \fontdimen17\textfont2=0pt
     \Pi_{\smash-}#1$}%
    \fontdimen16\textfont2=\savedxvi
    \fontdimen17\textfont2=\savedxvii
    #2}
\makeatother

\begin{document}
$\Piminus \Piminus' \Pi_-$
\end{document}

简短解释:\fontdimen16是没有上标时下标降低的量,\fontdimen17有上标时使用。它们必须恢复,因为它们不是该组的本地。

编辑:

进一步解释一下:\fontdimen参数的更改不仅是全局的,而且您还必须记住,多次更改\fontdimen一个数学列表中的参数值是没有用的$ ... $。只有在当前有效的值结尾数学列表的 将用于整个列表。这就是为什么我在上面的解决方案中使用的原因\mbox{$ ... $}

这里有一个稍微复杂一点的版本,允许多个素数,还有例如'^2。它侵入了 TeX 对的巧妙定义'。也可以实现\Piminus^2按应有的方式工作,但我将其留作练习。

\documentclass{article}

\newdimen\savedxvi
\newdimen\savedxvii
\makeatletter
\newcommand*\restoredimen{%
    \fontdimen16\textfont2=\savedxvi
    \fontdimen17\textfont2=\savedxvii}
\newcommand*\qwe{$\egroup\restoredimen}
\newcommand*\Piminus{%
    \@ifnextchar'{\expandafter\Pi@minus\@gobble}
                 {\print@pi\qwe}}
\def\Pi@minus{\print@pi{^\bgroup\aftergroup\qwe\prim@s}}
\def\print@pi#1{%
    \savedxvi=\fontdimen16\textfont2
    \savedxvii=\fontdimen17\textfont2
    \hbox\bgroup%
    $\fontdimen16\textfont2=0pt
     \fontdimen17\textfont2=0pt
     \Pi_{\smash-}#1}
\makeatother

\begin{document}
$\Piminus \Piminus' \Piminus'' \Pi_- \Piminus'^2$
\end{document}

答案3

只是一些想法,

首先,使用 \prime 命令可能会比^{\prime}使用勾号更有帮助,这两者都是为了外观,而且宏可能也更好。

您可以尝试使用 overset 命令,即\Pi\overset{^{\prime}}{_{-}}

此外化学工程该包已经做了很多工作来处理重叠脚本,因为化学家需要处理公式中的类似问题。

最后,您可以检查是否有一个字符您更愿意将其用作 - 而不是 -。一个很好的参考是简短数学指南来自 AMS。

相关内容