4

使用 MnSymbol 包时,pdflatex 会给出两个字体警告:

LaTeX Font Warning: Encoding 'OMS' has changed to 'U' for symbol font
(Font)              'symbols' in the math version 'normal' on input line 120.

LaTeX Font Info:    Overwriting symbol font 'symbols' in version 'normal'
(Font)                  OMS/cmsy/m/n --> U/MnSymbolF/m/n on input line 120.

事实证明,这可能是由于与 AMSSymb 包的冲突。

因为我只需要包中的几个符号:有没有办法从包中加载一个符号,而不是全部?

4

3 回答 3

2

这些警告无需担心。事实上,在下一个 LaTeX 版本中它们会消失(参见原始错误报告)。然而,没有ETA。

此外,这是否真的有可能影响文档的排版?

没有。

有什么办法可以防止这种情况吗?

可以在加载包之前修补 LaTeX 警告消息代码,然后再恢复它(这是我过去在自己的包中所做的),但作为用户,我只是学会忽略警告。

于 2009-06-26T07:20:14.003 回答
2

这是我解决这个问题的方法:

从综合乳胶符号文档源下载perl脚本“makefakeMnSymbol”:http: //mirror.ctan.org/info/symbols/comprehensive/source/makefakeMnSymbol

接下来,在命令行执行chmod +x makefakeMnSymbol以使其可执行。然后,运行

./makefakeMnSymbol `kpsewhich MnSymbol.sty` > fakeMnSymbol.sty

将 fakeMnSymbol.sty 放在选择的 texmf 目录(全局或本地)中,然后运行texhash

如果你现在把

\usepackage{fakeMnSymbol}

在您的序言中,您现在可以使用任何 MnSymbol,例如\powerset通过添加前缀\MNSpowerset

非常感谢 Scott Pakin 的这次黑客攻击......以及他全面的符号指南......


此 hack 存在下标/上标中的符号问题。一种解决方法是使用查看fakeMnSymbol.sty源来查找您想要的符号是从哪个字体加载的,以及它的编号。\boxminus这是我的序言之一中的一个示例,其中我用 MnSymbol覆盖了内置:

\usepackage[]{fakeMnSymbol}
\DeclareSymbolFont{mnsymbolc}{U}{MnSymbolC}{m}{n}
\let\boxminus=\undefined
\DeclareMathSymbol{\boxminus}{2}{mnsymbolc}{112}
于 2010-03-14T12:18:52.623 回答
1

以下可能会有所帮助。这是我必须添加的代码,以便从 MnSymbol 包中获取 \bigominus 符号。

\DeclareFontFamily{U}{MnSymbolF}{}<br>
\DeclareSymbolFont{mnsymbols}{U}{MnSymbolF}{m}{n}<br>
\DeclareFontShape{U}{MnSymbolF}{m}{n}{<br>
    <-6>  MnSymbolF5<br>
   <6-7>  MnSymbolF6<br>
   <7-8>  MnSymbolF7<br>
   <8-9>  MnSymbolF8<br>
   <9-10> MnSymbolF9<br>
  <10-12> MnSymbolF10<br>
  <12->   MnSymbolF12}{}<br>
\DeclareMathSymbol{\bigominus}{\mathop}{mnsymbols}{55}
于 2010-02-14T19:54:19.043 回答