我希望定义自定义命令\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
工作。