数学模式下的分隔符大小不正确

数学模式下的分隔符大小不正确

下面的代码

\documentclass{article}

\begin{document}

\[
\left|\tilde{\theta}\right|
\]
\[
\left|\theta\right|
\]
\end{document}

pdfLaTeX使用(TeXLive 2012 更新)产生以下输出

显然,尺寸有问题|显然,在倾斜的 theta 情况下,

我可以修复这个问题吗?

当然,我总是可以手动选择每次的大小|(例如\big|(例如使用等),但是,我宁愿不这样做。

这个问题可能与一。

答案1

正如芭芭拉在她的评论中所说,

所有栅栏都设计为围绕数学轴垂直对称。这确保了它们的外观是统一的,无论它们之间放置什么

我补充说,在所有栅栏前使用\leftand\right是错误的。你给出的案例说明了原因。让我们做一些实验。你找到了很好的弗朗西斯解决方案。其实不是:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\left|\vcenter{\hbox{\(\displaystyle\tilde{\theta}\)}}\right|=\theta+1
\]
\end{document}

在此处输入图片描述

哦,不!太糟糕了!好吧,我们来提出这个问题:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
|x|+\raisebox{\depth}{$\left|\vcenter{\hbox{\(\displaystyle\tilde{\theta}\)}}\right|$}
=\theta+1
\]
\end{document}

在此处输入图片描述

布佐的塔康在我们这里,我们常说“补丁比洞更糟糕”。或者“补救措施比疾病更糟糕”。

与“正确”版本进行比较:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\lvert x\rvert+\lvert\tilde{\theta}\rvert=\theta+1
\]
\end{document}

在此处输入图片描述

就是这样。它可能不会让你赏心悦目,但它确实是仅有的这样做的方法。栅栏尺寸的任何增加都将是双向的,因为对称性比其他任何东西都重要,对于栅栏来说:没有公式可以单独考虑,而是在上下文中考虑:它周围有文本,还有其他公式。

答案2

下面的例子展示了如果缩短分隔符的话会是什么样子。

\left和的分隔符\right在数学轴上垂直居中。(例如,减号位于数学轴上。)分隔符尝试覆盖数学轴上方公式的高度和数学轴下方的深度,并使用两者的最大值。如果公式高得多(例如\theta\tilde,则分隔符还将界定公式下方的空白区域。这是一个特征! 这样,分隔符就保持了它们的对称属性,即它们在数学轴上垂直居中。

易于识别的数学轴很重要(否则复杂的数学公式将很难破译,甚至更糟的是,数学公式可能会变得模棱两可。但是,分隔的空白空间浪费了空间,看起来也不好看。好的排版就是找到好的妥协。

以下示例文件打开一个选项。首先垂直移动数学公式,使公式位于数学轴的中心。这样,\left\right将为公式的总高度选择最小的尺寸。然后将带有分隔符的公式移回:

  • 该公式保留了数学轴。
  • 分隔符被最小化(用于\left\right大小调整)。
  • 但是分隔符以数学轴为中心的属性已经消失。

该示例定义宏:

\cropdelims[<factor>]\left<left delimiter>{<math formula>}\right<right delimiter
  • \mleft并且可以使用\mrightmleftright(这里不太相关,因为包mleftright处理水平间距;只是试图做出完美的实现)。
  • 必须<math formula>用括号括起来,因为它需要被读作宏参数。
  • 是和<factor>之间的浮点数,并修改移位量。表示不进行移位,结果应该与没有 时相同。表示应用了完全移位,并且分隔符的大小被最小化。下面的示例还显示了因子的公式作为“妥协”,不对称分隔符与分隔的空白空间,但不如和那么多。010\cropdelims10.501
\documentclass{article}

\makeatletter
\newcommand*{\cropdelims}[6][1]{%
  % #1: factor
  % #2: \left or \mleft
  % #3: left delimiter
  % #4: formula
  % #5: \right or \mright
  % #6: right delimiter
  \begingroup
    % detect \left/\right vs. \mleft/\mright
    \setbox\z@=\hbox{%
      \thinmuskip=\@ne mu %
      \medmuskip=0mu %
      \thickmuskip=0mu %
      \setbox\tw@=\hbox{$#2#3#5#6\m@th$}%
      \kern-\wd\tw@
      $#2#3#5#6{}\m@th$%
    }%
    \ifdim\wd\z@>\z@
      \expandafter\mathinner
    \else
      \expandafter\@firstofone
    \fi
    {% 
      \mathopen{}%
      % \mathpalette provides the current math style
      \mathpalette{\cropdelims@aux{#1}{#2#3}{#5#6}}{#4}%
      \mathclose{}%
    }%
  \endgroup
}
% the shifting is implemented in the following macro:
\newcommand*{\cropdelims@aux}[5]{%
  % #1: factor
  % #2: left delimiter
  % #3: right delimiter
  % #4: math style
  % #5: formula   
  \setbox\z@=\hbox{$\m@th#4\vcenter{}$}%
  \dimen@=\ht\z@
  \setbox\z@=\hbox{$#4#5\m@th$}%
  % calculate shift
  \dimen@=#1\dimexpr\[email protected]\dimexpr\ht\z@-\dp\z@\relax\relax
  \raisebox{-\dimen@}{%
    $#4#2%
    \raisebox{\dimen@}{%
      $#4\mathopen{}#5\mathclose{}\m@th$%
    }%
    #3\m@th$%
  }%
}   
\makeatother

\begin{document}

\[
   \alpha + \left|\tilde{\theta}\right|
   =
   \left|\theta\right| + \beta
\]
\[
   \alpha + \cropdelims[0,5]\left|{\tilde{\theta}}\right|
   =
   \cropdelims[0.5]\left|{\theta}\right| + \beta
\]
\[
   \alpha + \cropdelims\left|{\tilde{\theta}}\right|
   =
   \cropdelims\left|{\theta}\right| + \beta
\]
\[
  \cropdelims[0]\left[{\frac{\sum\limits_{i=1}^n i}{a}}\right]
  =
  \cropdelims[0]\left[{\frac{a}{\sum\limits_{i=1}^n i}}\right]
\]
\[
  \cropdelims[.5]\left[{\frac{\sum\limits_{i=1}^n i}{a}}\right]
  =
  \cropdelims[.5]\left[{\frac{a}{\sum\limits_{i=1}^n i}}\right]
\]
\[
  \cropdelims\left[{\frac{\sum\limits_{i=1}^n i}{a}}\right]
  =
  \cropdelims\left[{\frac{a}{\sum\limits_{i=1}^n i}}\right]
\]

\end{document}

结果

答案3

您可以使用\lvert\rvert

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\[                                                                                 
\lvert\tilde{\theta}\rvert                                                         
\]
\end{document}

在此处输入图片描述

答案4

不确定这是否是您想要的,但您始终可以将波浪号放在括号外面:

\[
\tilde{\left|\theta\right|}
\]

所以:

在此处输入图片描述

编辑:我发现这个有趣的答案这里

使用

\[
\left|\vcenter{\hbox{\(\displaystyle\tilde{\theta}\)}}\right|
\]

会给你

在此处输入图片描述

编辑2:正如 egreg 指出的那样,这种解决方案将使您的 tilded-theta 与其他字符不一致:

在此处输入图片描述

但至少,在这种情况下,分隔符是对齐的。我猜重点是你不能把它们全部吃掉。

相关内容