使用 \left 和 \right 自动设置垂直条的长度

使用 \left 和 \right 自动设置垂直条的长度

如果我写

\[\left||x|-|y|\right|\]

我希望它看起来像以下两个表达式中的第二个:

在此处输入图片描述

我通过写作得到

\[\Big||x|-|y|\Big|\]

难道不应该自动\left调整\right大小吗?还是\Big每当我有两个垂直线时,我都必须书写,一个接一个?

答案1

您应该使用 \DeclarePairedDelimitermathtools 中的命令来定义\abs 命令。这样做,您将获得一个\abs*添加隐式\left \right对并检测内部的版本\abs。对于微调,您还可以使用四个带有可选参数的变体:\abs[\big]、、\abs[\Big]&c。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}

\begin{document}

\begin{align*}
    \abs{\abs{x}-\abs{y}} & \le \abs{x-y} \\
    \abs*{\abs{x}-\abs{y}} & \le \abs{x-y}\\
    \abs[\Big]{\abs{x}-\abs{y}} & \le \abs{x-y}
\end{align*}

\end{document} 

在此处输入图片描述

@Mico 让我观察到带星号的版本可以按您想要的方式工作,因为fourier字体使用了控制分隔符大小的参数的特殊值:\delimitershortfall\delimiterfactor。只需添加 \delimitershortfall=-1sp 即可获得to obtain与默认值相同的结果Computer Modern

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}

\begin{document}

\begin{align*}
    \abs{\abs{x}-\abs{y}} & \le \abs{x-y} \\
    \abs*{\abs{x}-\abs{y}} & \le \abs{x-y}\\
\end{align*}
\delimitershortfall=-1sp
\begin{align*}
    \abs{\abs{x}-\abs{y}} & \le \abs{x-y} \\
    \abs*{\abs{x}-\abs{y}} & \le \abs{x-y}\\
\end{align*}

\end{document} 

在此处输入图片描述

答案2

\left\right自动调整大小,但纯粹是印刷方式,而不是语义方式。印刷方式上,内部|不需要比|已经x更大。

所以是的,如果你想强调外部,你需要对此进行微调|。括号也是如此。

相关内容