使用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 :(得分:2)
这些警告无需担心。事实上,在下一个LaTeX版本中,它们将消失(参见original bug report)。但是,没有ETA。
此外,这是否有可能影响文件的排版?
不。
有什么方法可以阻止这种情况吗?
可以在加载包之前修补LaTeX警告消息代码,然后再重新恢复(这是我过去在自己的包中所做的),但作为用户,我只是学会忽略警告。
答案 1 :(得分: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}
在序言中,您现在可以像\powerset
一样使用任何MnSymbol,例如\MNSpowerset
非常感谢Scott Pakin的这次黑客攻击......以及他全面的符号指南......
这个hack在下标/上标中有符号问题。解决方法是使用查看fakeMnSymbol.sty
源来查找所需符号的字体及其编号。以下是我的一个前导码中的示例,其中我使用MnSymbol覆盖内置\boxminus
:
\usepackage[]{fakeMnSymbol}
\DeclareSymbolFont{mnsymbolc}{U}{MnSymbolC}{m}{n}
\let\boxminus=\undefined
\DeclareMathSymbol{\boxminus}{2}{mnsymbolc}{112}
答案 2 :(得分:1)
以下内容可能有所帮助。这是我必须添加的代码,以便从MnSymbol包中获得\ bigominus符号。
\ DeclareFontFamily【U} {MnSymbolF} {}
\ DeclareSymbolFont {mnsymbols} {U】【MnSymbolF} {米} {N}
\ DeclareFontShape【U} {MnSymbolF} {米} {N} {
< -6 GT; MnSymbolF5
< 6-7> MnSymbolF6
< 7-8> MnSymbolF7
< 8-9> MnSymbolF8
< 9-10> MnSymbolF9
< 10-12> MnSymbolF10
< 12-> MnSymbolF12} {}
\ DeclareMathSymbol {\ bigominus} {\ mathop} {mnsymbols} {55}