使用 MnSymbols 的标准 AMS-Sum 运算符?

使用 MnSymbols 的标准 AMS-Sum 运算符?

由于本学期我参加的其中一堂课的一位教授写得非常慢,所以我用 TeX 排版了该课的讲稿。为了使用一些符号并更好地渲染下括号,我使用了 MnSymbol。熟悉 MnSymbol 的人可能知道,它提供的求和运算符与 amsmath 包不同。它还提供了不同的积分运算符,但我已经通过将“esint”加载为最后一个数学字体包来修复了这个问题,因为我更喜欢那些 amsmath 数学运算符。有没有一种方法可以轻松地将求和运算符“修复”为标准运算符,而不必停止使用 MnSymbol?任何帮助都将不胜感激。

答案1

请参阅下面的后续步骤,了解如何将 CM 符号导入 MnSymbol。但首先...

导入 MnSymbols:

如果你只使用几个MnSymbol,最简单的方法是只导入那些,而不是加载MnSymbol包。下面是如何做的(我使用了,作为MnSymbol具体参考,符号上方虚线左箭头,尽管本网站上有关导入符号的其他问题也很有用)。

查看 MnSymbol 包文档(或者更好的是)有助于mnsymbol.sty查找该符号源自哪个字体系列,然后使用\fonttable(包fonttable)在表中显示字体系列,从中您可以确定与所需字形相对应的插槽号。

首先,为了确定字体系列,我查看mnsymbol.sty字形名称,并使用它来确定字体系列:

在此处输入图片描述

在此处输入图片描述

从上面的图片中,我看到\bigcupdot字形(\displaystyle\textstyle)是\mathops 并且来自字体symbols。名称symbols与字体系列相关联MnSymbolF。这些是我的 MWE 中需要的。\cupdot字形来自不同的字体系列(MnSymbolC)。

在下面的 MWE 中,我展示了从两个不同的字体系列导入 3 个字形:\cupdot\tbigcupdot(textstyle \bigcupdot)和\dbigcupdot(displaystyle \bigcupdot)。然后我使用\mathchoice, 来告诉 LaTeX 在适当的数学样式中使用正确的 bigcupdot 样式。

如果您取消注释我关于的注释行fonttable,您可以看到我从中确定字形槽号的字体表。

\documentclass{article}
% =============================================
%Import symbols from font MnSymbol without importing the whole package
% =============================================
\DeclareFontFamily{U} {MnSymbolC}{}

\DeclareFontShape{U}{MnSymbolC}{m}{n}{
  <-6> MnSymbolC5
  <6-7> MnSymbolC6
  <7-8> MnSymbolC7
  <8-9> MnSymbolC8
  <9-10> MnSymbolC9
  <10-12> MnSymbolC10
  <12-> MnSymbolC12}{}
\DeclareFontShape{U}{MnSymbolC}{b}{n}{
  <-6> MnSymbolC-Bold5
  <6-7> MnSymbolC-Bold6
  <7-8> MnSymbolC-Bold7
  <8-9> MnSymbolC-Bold8
  <9-10> MnSymbolC-Bold9
  <10-12> MnSymbolC-Bold10
  <12-> MnSymbolC-Bold12}{}

\DeclareSymbolFont{MnSyC} {U} {MnSymbolC}{m}{n}

\DeclareMathSymbol{\cupdot}{\mathbin}{MnSyC}{60}
% =============================================
\DeclareFontFamily{U} {MnSymbolF}{}

\DeclareFontShape{U}{MnSymbolF}{m}{n}{
  <-6> MnSymbolF5
  <6-7> MnSymbolF6
  <7-8> MnSymbolF7
  <8-9> MnSymbolF8
  <9-10> MnSymbolF9
  <10-12> MnSymbolF10
  <12-> MnSymbolF12}{}
\DeclareFontShape{U}{MnSymbolF}{b}{n}{
  <-6> MnSymbolF-Bold5
  <6-7> MnSymbolF-Bold6
  <7-8> MnSymbolF-Bold7
  <8-9> MnSymbolF-Bold8
  <9-10> MnSymbolF-Bold9
  <10-12> MnSymbolF-Bold10
  <12-> MnSymbolF-Bold12}{}

\DeclareSymbolFont{SymbolF} {U} {MnSymbolF}{m}{n}

\DeclareMathSymbol{\dbigcupdot}{\mathop}{SymbolF}{35}
\DeclareMathSymbol{\tbigcupdot}{\mathop}{SymbolF}{34}
\def\bigcupdot{\mathchoice{\dbigcupdot}{\tbigcupdot}{\tbigcupdot}{\tbigcupdot}}
% =============================================
%\usepackage{fonttable}
\begin{document}
\centering
$ x \cupdot y$\par
$ x \bigcupdot y \quad \scriptstyle x \bigcupdot y
 \quad \scriptscriptstyle x \bigcupdot y$
\[ x \bigcupdot y\]
%\clearpage\fonttable{MnSymbolF8}
%\clearpage\fonttable{MnSymbolC10}
\end{document}

在此处输入图片描述


跟进:

OP 询问 MnSymbol 是否可以作为默认字体,例如\sum从默认 LaTeX 导入。正如 barbara 在评论中指出的那样,默认字体\sum来自 cmex 字体集。在这里,我将其导入为\Xsum(我不确定我的\DeclareFontShape调用是否适合 cm 字体,但我模仿了对 MnSymbol 所做的操作):

\documentclass{article}
\usepackage{mnsymbol}
% =============================================
%Import symbols from font cmex without importing the whole package
% =============================================
\DeclareFontFamily{U} {cmex}{}

\DeclareFontShape{U}{cmex}{m}{n}{
  <-6> cmex5
  <6-7> cmex6
  <7-8> cmex7
  <8-9> cmex8
  <9-10> cmex9
  <10-12> cmex10
  <12-> cmex12}{}

\DeclareSymbolFont{Xcmex} {U} {cmex}{m}{n}

\DeclareMathSymbol{\Xdsum}{\mathop}{Xcmex}{88}
\DeclareMathSymbol{\Xtsum}{\mathop}{Xcmex}{80}
\DeclareMathOperator*{\Xsum}{\mathchoice{\Xdsum}{\Xtsum}{\Xtsum}{\Xtsum}}
% =============================================
\usepackage{fonttable}
\begin{document}
\centering
sum under MnSymbol:\par
$\sum_{i=1}^2 x_i $
\[\sum_{i=1}^2 x_i \]
Defined Xsum from cmex:\par
$\Xsum_{i=1}^2 x_i $
\[\Xsum_{i=1}^2 x_i \]
\tiny\fonttable{cmex8}
\end{document}

在此处输入图片描述

相关内容