我正在尝试使用该包定义一个abs
绝对值的命令,但是遇到了一些间距问题。DeclarePairedDelimiter
mathtools
我通常会写\sup_n \abs{a_n}
defined by \DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
。但是这样会缺少一些空格。
我期望得到以下输出,这是我使用时得到的\sup_n |a_n|
。
这个\sup_n {\abs{a_n}}
问题没有出现,但我觉得这对额外的花括号太麻烦了。我也尝试了一些变体,但两个版本似乎\abs
都有同样的问题。
\documentclass[a4paper,10pt]{scrartcl}
\usepackage{mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\altabs}{|}{|}
\begin{document}
\[
\sup_n |a_n| \quad % expected output
\sup_n \abs{a_n} \quad
\sup_n {\abs{a_n}} \quad % expected output
\sup_n \lvert a_n \rvert \quad
\sup_n \altabs{a_n} \quad
\sup_n {\altabs{a_n}} % expected output
\]
\end{document}
这个问题从何而来?我怎样才能DeclarePairedDelimiter
给出正确的间距?
答案1
操作符名称和分隔符之间不应该有空格,因此从
\sup_{n}\lvert a_{n}\rvert
是正确的(也是为什么首先amsmath
引入\lvert
和介绍的原因之一)。\rvert
另一方面,当分隔符是竖线时,您可能喜欢较窄的空格。很简单:\mathop{}
在它前面添加一个虚拟空格。
\documentclass[a4paper,10pt]{scrartcl}
\usepackage{mathtools}
\DeclarePairedDelimiter{\absinner}{\lvert}{\rvert}
\DeclarePairedDelimiter{\altabsinner}{|}{|}
\newcommand{\abs}{\mathop{}\absinner}
\newcommand{\altabs}{\mathop{}\altabsinner}
\begin{document}
\[
\sup_n |a_n| \quad % expected output
\sup_n \abs{a_n} \quad
\sup_n {\abs{a_n}} \quad % expected output
\sup_n \altabs{a_n} \quad
\sup_n {\altabs{a_n}} % expected output
\]
\begin{alignat*}{3}
a_n - \abs{a_n} &\quad& a_n-\lvert a_n\rvert &\quad& a_n-|a_n|\\
-\abs{a_n} && -\abs{a_n} && -|a_n|
\end{alignat*}
\end{document}
但我自己不会这么做。