![自定义命令中的 \underbracket](https://linux22.com/image/442594/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%91%BD%E4%BB%A4%E4%B8%AD%E7%9A%84%20%5Cunderbracket.png)
我希望定义自定义命令\distr
如下:
\newcommand{\distr}[1]{\underbracket[0.3pt][1pt]{#1}}
命令\underbracket
是出现在 中的命令mathtools
。但是,我在编译时看到(至少)两个问题:(1)当 egdistr{f}
出现在下标/上标中时,字符F保持其正常大小,而不是缩小到\small
;(2)有时 周围会有不必要的间距\distr{ }
,例如当脚本字母出现在它之前时(如\mathscr{L}\distr{\psi}
)。我该如何实现\distr
以避免这些问题?除了mathtools
,我还使用标准数学符号包,例如amsmath
、physics
和amssymb
。
梅威瑟:
\documentclass[preview]{standalone}
\usepackage{mathtools}
\usepackage[cal=euler]{mathalfa}
\newcommand{\distr}[1]{\underbracket[0.3pt][1pt]{#1}}
\begin{document}
\begin{equation*}
a_f\ a_{\distr{f}} \qquad \mathcal{L}\psi\ \mathcal{L}\distr{\psi}
\end{equation*}
\end{document}
答案1
您可以使用\mathpalette
来区分不同的数学风格:
\documentclass{article}
\usepackage{mathtools}
\makeatletter
\newcommand{\@distr}[2]{\underbracket[0.3pt][1pt]{#1#2}}
\newcommand{\distr}[1]{\mathpalette{\@distr}{#1}}
\makeatother
\begin{document}
\[
a_f\ a_{\distr{f}} \qquad \mathcal{L}\psi\ \mathcal{L}\distr{\psi}
\]
\end{document}
看的奥秘\mathpalette
讨论如何\mathpalette
工作。