以下代码:
Inline mode $\|f\|_{H^{-1}}, \|f\|_{_{H^{-1}}}, \|f\|_{_{\scalebox{0.7}{$H^{-1}$}}},\|f\|_{_{\scalebox{0.5}{$H^{-1}$}}}$,
display mode $$\|f\|_{H^{-1}}, \|f\|_{_{H^{-1}}}, \|f\|_{_{\scalebox{0.7}{$H^\{-1}$}}},\|f\|_{_{\scalebox{0.5}{$H^{-1}$}}}$$
结果如下:
我想要将$H^{-1}$
其作为子索引,在第一种情况下,它太大而不能作为子索引。
我在第二个中添加了第二个子索引,H 看起来不错,但是 -1 太大了,特别是减号。
在最后两种情况下,我添加了 scalebox,这似乎给出了更好的结果,并且它实际上正确地缩放了项 H^{-1},但我不想使用它,我可以看到一旦我必须修改它以适应其他格式,它就会失败,但我不确定。
有没有办法告诉减号根据所使用的子索引级别进行适当缩放?
解决这个问题的一种方法似乎是通过分组或定义规范命令来正确设置规范,正如某些答案中完美展示的那样。
我仍然发现下面的减号太大:
\begin{equation}
\begin{aligned}
&f^{-1}(x) &&L_{f^{-1}}[\eta] \\
&f(x) &&L_{f}[\eta]
\end{aligned}
\end{equation}
在第一种情况下,“-1”符号比“f”占用更大的宽度,在几秒钟内它就接近$L_f$的宽度。
我想我可以使用不同的符号,即 $1-2$ 中的减号可能与 $-1$ 中的减号不同。
答案1
(在收到 OP 的补充评论后,我彻底修改了这个答案。)
我认为两个问题需要解决的问题:一是-
脚本样式数学模式中(“减号”)符号周围的间距,二是遵循“norm”(双竖线)符号的下标公式的垂直定位。
关于第一个问题,我建议你定义一些这样的宏
\newcommand{\mym}{\mkern-1.5mu-\mkern-3mu 1}
\newcommand\finv{f^{\mym}}
\newcommand\Hinv{H^{\mym}}
然后写成$L_{\finv}[\eta]$
而不是L_{f^{-1}}[\eta]
。请注意,这种方法只是减少了 scriptscript 样式减号周围的空格量。它确实不是减小减号或数字 1 的大小;我担心减小脚本样式字形的大小也会降低其基本可读性。如果您认为压缩后-1
仍然占用太多空间,那么您可能应该想出新的节省空间的符号来表示函数的逆。例如,类似f*
或\bar{f}
...
关于第二个问题:请注意,公式\|f\|_{H^{-1}}
可以分解为两个子公式:\|f\|
和_{H^{-1}}
。您遇到的情况是,TeX 对放置“数学原子”后面的下标有特殊规则,例如\|
:下标(和上标)设置为狭窄模式。虽然这在大多数情况下都可以,但显然不是您的用例的最佳选择。我能想到两种补救措施:要么将第一个子公式从更改为\|f\|
,{\|f\|}
将其类型更改为“math-ordinary”,要么——更像 LaTeX——\norm
使用包的机制定义一个名为(比如)的宏mathtools
,然后写\norm{f}
而不是{\|f\|}
。
结合这两个问题的解决方案,我认为您应该写\norm{f}_{\Hinv}
而不是\|f\|_{H^{-1}}
。
\documentclass{article}
\usepackage{mathtools} % for "\DeclarePairedDelimiter" macro
\DeclarePairedDelimiter\norm\lVert\rVert % create a "\norm" macro
\newcommand{\mym}{\mkern-1.5mu-\mkern-3mu 1} % short for "my minus one"
\newcommand\finv{f^{\mym}}
\newcommand\Hinv{H^{\mym}}
\begin{document}
$L_{f^{-1}}[\eta]$ vs.\ $L_{\finv}[\eta]$
\bigskip
\emph{Original code}
\quad$\|f\|_{H^{-1}}\quad\|f\|_{\Hinv}$
\bigskip
\emph{Employ grouping}
\quad${\|f\|}_{H^{-1}}\quad{\|f\|}_{\Hinv}$
\bigskip
\emph{Dedicated \emph{\texttt{\textbackslash norm}} macro}
\quad$\norm{f}_{H^{-1}}\quad\norm{f}_{\Hinv}$
\end{document}
答案2
您可能想要的是添加一个(可能是空的)上标,它会将下标向下推。
\DeclarePairedDelimiter
以下是该功能的增强版本:
\documentclass{article}
\usepackage{mathtools} % for \DeclarePairedDelimiter
\usepackage{xparse} % for \NewDocumentCommand
\usepackage{booktabs} % for the table
\DeclarePairedDelimiter{\normAux}{\lVert}{\rVert}
\NewDocumentCommand{\norm}{sO{}me{_^}}{%
\IfBooleanTF{#1}
{\normAux*{#3}\normS#4}
{\normAux[#2]{#3}\normS#4}%
}
\NewDocumentCommand{\normS}{mm}{%
\IfValueT{#1}{_{#1}}^{\IfValueT{#2}{#2}}%
}
\begin{document}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{lll}
\toprule
Style & New & Old \\
\midrule
Inline
& $\norm{f}$ & $\|f\|$ \\
& $\norm{f}^{2}$ & $\|f\|^2$ \\
& $\norm{f}_{H^{-1}}$ & $\|f\|_{H^{-1}}$ \\
& $\norm{f}_{H^{-1}}^{2}$ & $\|f\|_{H^{-1}}^{2}$ \\
\midrule
Display
& $\displaystyle\norm{f}$ & $\displaystyle\|f\|$ \\
& $\displaystyle\norm{f}^{2}$ & $\displaystyle\|f\|^2$ \\
& $\displaystyle\norm{f}_{H^{-1}}$ & $\displaystyle\|f\|_{H^{-1}}$ \\
& $\displaystyle\norm{f}_{H^{-1}}^{2}$ & $\displaystyle\|f\|_{H^{-1}}^{2}$ \\
\midrule
Sizes
& \multicolumn{2}{l}{%
$\norm[\big]{f}_{H^{-1}},\norm[\Big]{f}_{H^{-1}},\norm*{\dfrac{f}{2}}_{H^{-1}}$%
} \\
\bottomrule
\end{tabular}
\end{document}
(注意:参数类型的语法e
可能会改变。)
答案3
我将完成 Miko 的回答。为什么它有效?为什么${\|f\|}_H$
行为与不同$\|f\|_H$
?答案在 TeXbook,第 445 页,第 18a 和 18b 段。粗略地说,当核(即下标的对象)是单个字符时,下标会降低,\fondimen16
与核的深度无关。但如果核包含更多字符,则测量核的深度,并将下标降低此深度加上\fondtimen19
。此功能的原因是我们的要求,我们需要在相同的垂直位置有下标$a_2, f_2$
。