![类似问题](https://linux22.com/image/243027/%E7%B1%BB%E4%BC%BC%E9%97%AE%E9%A2%98.png)
我希望使用 MnSymbol 包提供的符号,但如果我\usepackage{MnSymbol}
的文档中有一个,那么许多其他符号就会发生变化,甚至包括等号 (=),它现在看起来短多了。
如何使用包来获取几个特定的符号,而无需将整个文档都采用该包强加的字体?
答案1
类似问题
抱歉,很难从 获得符号MnSymbol
。在旧问题中,
丢弃包中的符号(MnSymbol
)
标准 \cup 与 mathabx \cup(mathabx
)
从不同字体导入单个符号(mathabx
)
使用一些类似的技术从包中获取符号——事实上,我们只是像字体包那样重新定义符号。
关于MnSymbol
然而,MnSymbol
我们必须定义比其他包更多的东西,就像 Ulrike Fischer 在她的回答我将提供另一个非常类似的例子另一个网站:
在阅读下面的解释之前,你最好先看看fntguide
文档。
假设你想要\rightlsquigarrow
从MnSymbol
,你必须检查源代码MnSymbol.sty
,然后我们有
\Decl@Mn@Char\rightlsquigarrow {MnSyA}{\mathrel}
太糟糕了!我们仍然不知道这个符号是什么。事实上,\Decl@Mn@Char
它只是\DeclareMathSymbol
自动增加字符数。\rightlsquigarrow
是第 160 个符号,因此字符代码是 160。或者您可以使用fonttable
包来查找字形的代码。也就是说,\rightlsquigarrow
是
\DeclareMathSymbol{\rightlsquigarrow}{\mathrel}{MnSyA}{160}
\mathrel
这里的意思是该符号是一个数学二元关系符号。其他符号可能是\mathord
(普通符号)、\mathop
(运算符)、\mathbin
(二元运算)、\mathopen
(开分隔符)、\mathclose
(闭分隔符)等。你可以阅读fntguide
了解有关这些命令的更多详细信息。
但在此之前,您必须MnSyA
先定义数学家族。然后从以下位置复制此内容MnSymbol.sty
:
\DeclareSymbolFont{MnSyA} {U} {MnSymbolA}{m}{n}
对于大多数数学字体包来说,这就足够了。但是对于MnSymbol
,字体系列MnSymbolA
也在中定义MnSymbol.sty
,我们必须将其复制到文档中。
\DeclareFontFamily{U} {MnSymbolA}{}
\DeclareFontShape{U}{MnSymbolA}{m}{n}{
<-6> MnSymbolA5
<6-7> MnSymbolA6
<7-8> MnSymbolA7
<8-9> MnSymbolA8
<9-10> MnSymbolA9
<10-12> MnSymbolA10
<12-> MnSymbolA12}{}
\DeclareFontShape{U}{MnSymbolA}{b}{n}{
<-6> MnSymbolA-Bold5
<6-7> MnSymbolA-Bold6
<7-8> MnSymbolA-Bold7
<8-9> MnSymbolA-Bold8
<9-10> MnSymbolA-Bold9
<10-12> MnSymbolA-Bold10
<12-> MnSymbolA-Bold12}{}
现在,如果我们不知道\rightlsquigarrow
第 160 个符号实际上是什么,我们可以使用一个小的测试文件来检查字形表:
\documentclass{article}
\usepackage{fonttable}
\begin{document}
\fonttable{MnSymbolA10}
\end{document}
完成所有这些后,您就会确切地知道它\rightlsquigarrow
是什么,并且可以像这样使用它:
\documentclass{article}
\DeclareFontFamily{U} {MnSymbolA}{}
\DeclareFontShape{U}{MnSymbolA}{m}{n}{
<-6> MnSymbolA5
<6-7> MnSymbolA6
<7-8> MnSymbolA7
<8-9> MnSymbolA8
<9-10> MnSymbolA9
<10-12> MnSymbolA10
<12-> MnSymbolA12}{}
\DeclareFontShape{U}{MnSymbolA}{b}{n}{
<-6> MnSymbolA-Bold5
<6-7> MnSymbolA-Bold6
<7-8> MnSymbolA-Bold7
<8-9> MnSymbolA-Bold8
<9-10> MnSymbolA-Bold9
<10-12> MnSymbolA-Bold10
<12-> MnSymbolA-Bold12}{}
\DeclareSymbolFont{MnSyA} {U} {MnSymbolA}{m}{n}
\DeclareMathSymbol{\rightlsquigarrow}{\mathrel}{MnSyA}{160}
\begin{document}
$\rightlsquigarrow$
\end{document}