我有一份使用 fourier 字体包和 mathtools 的文档。在 mathmode 中,\big 分隔符的大小与正常大小相同。
经过一些调试后,我注意到,如果我删除11pt
文档选项,那么这个分隔符大小确实可以正常工作。这对我来说似乎是一个错误,但我对 TeX 的了解太有限,无法进一步追踪它。任何关于这是否是一个错误(以及在哪个包中)的指示都将不胜感激。
下面是一个 MWE。如果我删除该11pt
选项,标准分隔符将正确缩放以增加大小。其他分隔符(例如括号)在两种情况下都可以正确缩放。
\documentclass[11pt]{article}
\usepackage{mathtools}
\usepackage{fourier}
\begin{document}
\begin{equation}
\|\,\big\|\,\Big\|
\end{equation}
\end{document}
答案1
amsmath
改变了 LaTeX 根据括号的尺寸构建分隔符的方式\big
。不幸的是,括号没有amsmath
预期的那么高。我发现了一个似乎有效的修正:
\usepackage{amsmath}
\usepackage{fourier}
\makeatletter
\def\resetMathstrut@{%
\setbox\z@\hbox{%
\mathchardef\@tempa\mathcode`\(\relax
\def\@tempb##1"##2##3{\the\textfont"##3\char"}%
\expandafter\@tempb\meaning\@tempa \relax
}%
\ht\[email protected]\ht\z@ \dp\[email protected]\dp\z@
}
\makeatother
(请注意,这mathtools
不涉及,但它是被调用的amsmath
包,是重要的包。
完整示例:
\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{fourier}
\makeatletter
\def\resetMathstrut@{%
\setbox\z@\hbox{%
\mathchardef\@tempa\mathcode`\(\relax
\def\@tempb##1"##2##3{\the\textfont"##3\char"}%
\expandafter\@tempb\meaning\@tempa \relax
}%
\ht\[email protected]\ht\z@ \dp\[email protected]\dp\z@
}
\makeatother
\begin{document}
\[
\|\,\big\|\,\Big\|\,\bigg\|\,\Bigg\|
\]
\end{document}
答案2
好吧,我至少找到了解决方法;我补充说
\DeclareMathSizes{10.95}{11.3}{7.7}{5.5}
回到我的序言。如果有人能解释为什么这是必要的,或者是否有更好的解决方案,我会很高兴。