我目前使用一个宏:
\newcommand{\abs}[1]{\left\lvert #1 \right\rvert}
为了写出绝对值,但我发现当我将它与 \hat 结合时,高度会被以不良的方式修改:
\lvert \hat{x} \rvert, \quad \left\lvert \hat{x} \right\rvert, \quad \lvert \hat{\psi} \rvert, \quad \left\lvert \hat{\psi} \right\rvert
前三个在绝对值上的高度都相等,但最后一个明显更高。我只能假设这是符号 \psi 和 \hat 所特有的,而不是一般字母(在本例中为 x)。有没有办法解决这个问题而不定义另一个宏(例如 \normalabs 而不定义 \left 和 \right),或者有没有更好的方法来处理这个问题?
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\abs}[1]{\left\lvert #1 \right\rvert}
\begin{document}
\[
\lvert \hat{x} \rvert, \quad \left\lvert \hat{x} \right\rvert, \quad \lvert \hat{\psi} \rvert, \quad \left\lvert \hat{\psi} \right\rvert
\]
\end{document}
答案1
您可以更新\abs
以采用可选参数,在其中指定将用作尺寸调整机制的不同内容:
\documentclass{article}
\usepackage{xparse}% Not needed if you have an updated LaTeX as of Oct 2020.
\usepackage{amsmath}
\NewDocumentCommand{\abs}{o m}{
\left\lvert
\IfNoValueTF{#1}
{#2}% No optional argument
{\vphantom{#1}\smash{#2}}% Use optional argument for height purposes only
\right\rvert
}
\begin{document}
\[
\abs{\hat{x}}, \quad
\abs{\hat{x}}, \quad
\lvert \hat{\psi} \rvert, \quad
\abs{\hat{\psi}}, \quad
\abs[\hat{x}]{\hat{\psi}}
\]
\end{document}