下面的代码
\documentclass{article}
\begin{document}
\[
\left|\tilde{\theta}\right|
\]
\[
\left|\theta\right|
\]
\end{document}
pdfLaTeX
使用(TeXLive 2012 更新)产生以下输出
显然,尺寸有问题|
显然,在倾斜的 theta 情况下,
我可以修复这个问题吗?
当然,我总是可以手动选择每次的大小|
(例如\big|
(例如使用等),但是,我宁愿不这样做。
这个问题可能与这一。
答案1
正如芭芭拉在她的评论中所说,
所有栅栏都设计为围绕数学轴垂直对称。这确保了它们的外观是统一的,无论它们之间放置什么
我补充说,在所有栅栏前使用\left
and\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
并且可以使用\mright
包mleftright
(这里不太相关,因为包mleftright
处理水平间距;只是试图做出完美的实现)。- 必须
<math formula>
用括号括起来,因为它需要被读作宏参数。 - 是和
<factor>
之间的浮点数,并修改移位量。表示不进行移位,结果应该与没有 时相同。表示应用了完全移位,并且分隔符的大小被最小化。下面的示例还显示了因子的公式作为“妥协”,不对称分隔符与分隔的空白空间,但不如和那么多。0
1
0
\cropdelims
1
0.5
0
1
\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 与其他字符不一致:
但至少,在这种情况下,分隔符是对齐的。我猜重点是你不能把它们全部吃掉。