这俩amsmath
包和exscale
包根据内部宏定义了分隔符宏\big
、\Big
和\bigg
。但是,正如以下最小示例所揭示的和版本具有不同的含义:\Bigg
\bBigg@
amsmath
exscale
\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}
拥有exscale
和amsmath
\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@
最终由后者给出。