分隔符大小 \big 不适用于 fourier、mathtools 包和 11pt 选项

分隔符大小 \big 不适用于 fourier、mathtools 包和 11pt 选项

我有一份使用 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}

回到我的序言。如果有人能解释为什么这是必要的,或者是否有更好的解决方案,我会很高兴。

相关内容