2009-06-18 169 views
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包的冲突。

由于我只需要包中的几个符号:有没有一种方法可以从包中加载一个符号而不是所有的?

+0

是否存在与排版一些实际的问题,还是你只是担心看到的警告? – 2009-06-18 18:05:33

+0

我还没有看到任何排版问题;我只是想尽量减少警告的数量。 – Martijn 2009-06-19 06:23:01

回答

2

以下是我解决了这个:

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

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

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

把假的MnSymbol。猪圈中选择(全局或局部)的TEXMF目录,然后运行texhash

如果你现在把

\usepackage{fakeMnSymbol} 

在序言中,你现在可以使用任何MnSymbol,像\powerset由前缀像\MNSpowerset

大感谢斯科特Pakin这个黑客...和做了全面的符号指导...


这个技巧有下标/上标中符号的问题。解决方法是使用fakeMnSymbol.sty源代码来查找您想要加载的符号以及其编号的字体。下面是我的前导之一,我有MnSymbol覆盖内置\boxminus一个例子:

\usepackage[]{fakeMnSymbol} 
\DeclareSymbolFont{mnsymbolc}{U}{MnSymbolC}{m}{n} 
\let\boxminus=\undefined 
\DeclareMathSymbol{\boxminus}{2}{mnsymbolc}{112} 
2

这些警告无需担心。事实上,在接下来的LaTeX发行版中,它们将消失(请参阅original bug report)。然而,没有ETA。

此外,是否有任何真正的机会影响文档的排版?

没有。

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

可以在加载包之前补丁LaTeX的警告信息代码,然后再次事后恢复它(这是我在过去所做的那样在我自己的包),但作为用户我刚刚学习忽略警告。

1

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

\ DeclareFontFamily【U} {MnSymbolF} {}
\ DeclareSymbolFont {mnsymbols} {U】【MnSymbolF} {M} {N}
\ DeclareFontShape【U} {MnSymbolF} {M} {N} {
< -6> MnSymbolF5
< 6-7> MnSymbolF6
< 7-8> MnSymbolF7
< 8-9> MnSymbolF8
< 9-10> MnSymbolF9
< 10-12> MnSymbolF10
< 12-> MnSymbolF12} {}
\ DeclareMathSymbol {\ bigominus} {\ mathop} {mnsymbols} {55}