类似问题

类似问题

我希望使用 MnSymbol 包提供的符号,但如果我\usepackage{MnSymbol}的文档中有一个,那么许多其他符号就会发生变化,甚至包括等号 (=),它现在看起来短多了。

如何使用包来获取几个特定的​​符号,而无需将整个文档都采用该包强加的字体?

答案1

类似问题

抱歉,很难从 获得符号MnSymbol。在旧问题中,

丢弃包中的符号MnSymbol
标准 \cup 与 mathabx \cupmathabx
从不同字体导入单个符号mathabx

使用一些类似的技术从包中获取符号——事实上,我们只是像字体包那样重新定义符号。

关于MnSymbol

然而,MnSymbol我们必须定义比其他包更多的东西,就像 Ulrike Fischer 在她的回答我将提供另一个非常类似的例子另一个网站

在阅读下面的解释之前,你最好先看看fntguide文档。

假设你想要\rightlsquigarrowMnSymbol,你必须检查源代码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}

一张用于 Fonttable 的图片

完成所有这些后,您就会确切地知道它\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}

相关内容