从LaTeX包加载单个符号

时间:2009-06-18 08:28:56

标签: latex package symbols

使用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包的冲突造成的。

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

3 个答案:

答案 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}