出于某种原因,我需要在某些符号上写一个“减号”作为下标,但如果我只是简单地写,$\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}