views:

596

answers:

3

When using the MnSymbol package, pdflatex gives two font warnings:

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.

It turns out that this is probably due to a clash with the AMSSymb package.

Since I need just a few symbols from the package: is there a way to load one symbol from a package, in stead of all?

+2  A: 

These warnings are nothing to worry about. In fact, in the next LaTeX release they'll disappear (see the original bug report). No ETA on that, however.

Moreover, is there any real chance this affects the typesetting of the document?

Nope.

is there any way to prevent this?

Can patch the LaTeX warning message code before loading the package, and then restore it again afterwards (this is what I've done in the past in my own packages), but as a user I'd just learn to ignore the warning.

Will Robertson
See also the comments: it does affect the typesetting of the document by replacing a lot of standard AMS symbols.
Martijn
Well, of course if you load a package to change the maths font you get different symbols :)
Will Robertson
Obviously. I'll try to find a workaround to load only certain symbols I need (which are \lefthalfsqcup and double braces)
Martijn
+1  A: 

The following might help. This is the code I had to add in order to get just the \bigominus symbol out of the MnSymbol package.

\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}

beastin
+1  A: 

Here's how I solved this:

Download the perl script "makefakeMnSymbol" from the comprehensive latex symbol document source: http://mirror.ctan.org/info/symbols/comprehensive/source/makefakeMnSymbol

Next, at command line do chmod +x makefakeMnSymbol to make it executable. Then, run

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

Put fakeMnSymbol.sty in a texmf directory of choice (global or local), and run texhash

If you now put

\usepackage{fakeMnSymbol}

in your preamble, you can now use any MnSymbol, like \powerset by prefixing it like \MNSpowerset

Big thanks to Scott Pakin for this hack... and for his comprehensive symbol guide...


This hack has problems with symbols in subscripts/superscripts. A work-around is to use look at the fakeMnSymbol.sty source to find which font the symbol you want was loaded from, along with its number. Here's an example from one of my preambles where I override the built-in \boxminus with an MnSymbol:

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