Charger un seul symbole à partir d'un paquet LaTeX
Question
Lors de l'utilisation du package MnSymbol, pdflatex génère deux avertissements sur les polices:
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.
Il s’avère que cela est probablement dû à un conflit avec le paquet AMSSymb.
Étant donné que je n'ai besoin que de quelques symboles du package: existe-t-il un moyen de charger un symbole d'un package à la place de tous?
La solution
Voici comment j'ai résolu ceci:
Téléchargez le script Perl " makefakeMnSymbol " de la source complète du document symbole latex: http://mirror.ctan.org/info/symbols/comprehensive/source/ makefakeMnSymbol
Ensuite, en ligne de commande, faites chmod +x makefakeMnSymbol
pour le rendre exécutable. Ensuite, lancez
./makefakeMnSymbol `kpsewhich MnSymbol.sty` > fakeMnSymbol.sty
Placez fakeMnSymbol.sty dans un répertoire de choix texmf (global ou local) et exécutez texhash
Si vous mettez maintenant
\usepackage{fakeMnSymbol}
dans votre préambule, vous pouvez maintenant utiliser n’importe quel MnSymbol, comme \powerset
en le préfixant comme \MNSpowerset
Un grand merci à Scott Pakin pour ce hack ... et pour son guide complet des symboles ...
Ce hack a des problèmes de symboles dans les indices / indices supérieurs. Une solution consiste à utiliser la source fakeMnSymbol.sty
pour rechercher la police avec laquelle le symbole que vous voulez charger a été chargé, ainsi que son numéro. Voici un exemple tiré de l'un de mes préambules dans lequel je remplace le \boxminus
intégré par un symbole MnSymbol:
\usepackage[]{fakeMnSymbol}
\DeclareSymbolFont{mnsymbolc}{U}{MnSymbolC}{m}{n}
\let\boxminus=\undefined
\DeclareMathSymbol{\boxminus}{2}{mnsymbolc}{112}
Autres conseils
Ces avertissements ne sont pas inquiétants. En fait, dans la prochaine version de LaTeX, ils disparaîtront (voir le rapport de bogue d'origine ). Pas d'ETA à ce sujet, cependant.
De plus, y a-t-il un risque réel que cela affecte la composition du document?
Nope.
y a-t-il un moyen d'éviter cela?
Peut corriger le code du message d'avertissement LaTeX avant de charger le package, puis le restaurer à nouveau (c'est ce que j'ai déjà fait dans mes propres packages), mais en tant qu'utilisateur, j'apprendrais simplement à ignorer le avertissement.
Ce qui suit pourrait vous aider. C’est le code que j’ai dû ajouter pour obtenir uniquement le symbole \ bigominus du paquet MnSymbol.
\ 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}