因為一位教授讀我這個學期參加的一個講座,寫得很慢,所以我用 TeX 為該講座排版了一個講座腳本。為了使用一些符號和更好的下括號渲染,我使用 MnSymbol。熟悉 MnSymbol 的人可能知道,它提供了與 amsmath-package 不同的求和運算符。它還提供了一個不同的積分運算符,但我已經通過加載“esint”作為最後一個數學字體包來解決這個問題,因為我更喜歡那些 amsmath 數學運算符。有沒有一種方法可以輕鬆地將求和運算符「修復」為標準運算符,而不必停止使用 MnSymbol?任何幫助,將不勝感激。
答案1
有關將 CM 符號導入 MnSymbol 的信息,請參閱下面的後續部分。但首先...
導入 MnSymbols:
如果您只使用幾個MnSymbol
,最簡單的方法是僅匯入它們,而不是載入MnSymbol
套件。這是如何完成的(我使用過,作為MnSymbol
具體參考,符號上方的虛線左箭頭,儘管該網站上有關導入符號的其他問題也很有用)。
它有助於查看 MnSymbol 套件文件(或更好的是,mnsymbol.sty
)以查找符號派生自哪個字體系列,然後它有助於使用\fonttable
(package fonttable
) 在表格中顯示字體系列,從中您可以確定插槽與所需字形相對應的數字。
首先,為了確定字體系列,我會尋找mnsymbol.sty
字形名稱,並使用它來確定字體系列:
從上面的圖片中,我看到\bigcupdot
字形(\displaystyle
和\textstyle
)是\mathop
s 並且來自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}