amsmath 和 exscale 之间的兼容性

amsmath 和 exscale 之间的兼容性

这俩amsmath包和exscale包根据内部宏定义了分隔符宏\big\Big\bigg。但是,正如以下最小示例所揭示的和版本具有不同的含义:\Bigg\bBigg@amsmathexscale\bBigg@

\documentclass{article}

\usepackage{etoolbox}

\usepackage{lmodern}

\usepackage{amsmath}

\show\big
%% > \big=\long macro:
%% ->\bBigg@ \@ne .

\csshow{bBigg@}
%% > \bBigg@=macro:
%% #1#2->{\@mathmeasure \z@ {\nulldelimiterspace \z@ }{\left #2\vcenter to#1\big@size {}\right .}\box \z@ }.

\usepackage{exscale}

\show\big
%% > \big=macro:
%% ->\bBigg@ \@ne .

\csshow{bBigg@}
%% > \bBigg@=macro:
%% #1#2->{\hbox {$\left #2\vcenter to#1\big@size {}\right .\n@space $}}.

\begin{document}

\noindent
\Huge \(\big(\sum_{i=1}^{N}i\big)\)

\end{document}

这是否意味着我可能会得到不同的结果,具体取决于包amsmath是在包之前还是之后加载exscale?或者这两个版本是否\bBigg@可以互换,以便包加载顺序基本上无关紧要?

答案1

三个例子

没有任何包装

\documentclass{article}
\usepackage{lmodern}
\begin{document}
$\sum_\sum$

\Huge$\sum_\sum$
\end{document}

在此处输入图片描述

exscale

\documentclass{article}
\usepackage{lmodern}
\usepackage{exscale}
\begin{document}
$\sum_\sum$

\Huge$\sum_\sum$
\end{document}

在此处输入图片描述

amsmath

\documentclass{article}
\usepackage{lmodern}
\usepackage{amsmath}
\begin{document}
$\sum_\sum$

\Huge$\sum_\sum$
\end{document}

在此处输入图片描述

拥有exscaleamsmath

\documentclass{article}
\usepackage{lmodern}
\usepackage{exscale,amsmath}
\begin{document}
$\sum_\sum$

\Huge$\sum_\sum$
\end{document}

在此处输入图片描述

amsmath或无lmodern

\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\sum_\sum$

\Huge$\sum_\sum$
\end{document}

在此处输入图片描述

结论

lmodern系列仅有一种尺寸的扩展符号字体,即lmex10。使用amsmath和标准 Computer Modern 字体时,将使用“缩放”字体cmex7和,但如果加载,cmex5这当然是不可能的。lmodern

\bBigg@中给出的定义exscale显然是以 为模型的amsmath,但缺乏其基础结构,因此它又回到了标准 LaTeX 方法。

如果exscale因为拉丁现代字体是首选而需要,则exscale应该加载 amsmath,从而 的定义\bBigg@最终由后者给出。

相关内容