Carica un singolo simbolo da un pacchetto LaTeX
Domanda
Quando si utilizza il pacchetto MnSymbol, pdflatex fornisce due avvertimenti sui caratteri:
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.
Si scopre che ciò è probabilmente dovuto a uno scontro con il pacchetto AMSSymb.
Dal momento che ho bisogno di pochi simboli dal pacchetto: c'è un modo per caricare un simbolo da un pacchetto, al posto di tutti?
Soluzione
Ecco come ho risolto questo:
Scarica lo script perl " makefakeMnSymbol " dalla fonte completa del documento con il simbolo del lattice: http://mirror.ctan.org/info/symbols/comprehensive/source/ makefakeMnSymbol
Quindi, dalla riga di comando, fai chmod +x makefakeMnSymbol
per renderlo eseguibile. Quindi, esegui
./makefakeMnSymbol `kpsewhich MnSymbol.sty` > fakeMnSymbol.sty
Metti fakeMnSymbol.sty in una directory texmf di scelta (globale o locale) ed esegui texhash
Se ora metti
\usepackage{fakeMnSymbol}
nel tuo preambolo, ora puoi usare qualsiasi MnSymbol, come \powerset
prefissandolo come \MNSpowerset
Un grande ringraziamento a Scott Pakin per questo trucco ... e per la sua guida completa ai simboli ...
Questo hack ha problemi con i simboli in pedice / apice. Una soluzione alternativa consiste nell'utilizzare guardare l'origine fakeMnSymbol.sty
per trovare da quale carattere è stato caricato il simbolo desiderato, insieme al suo numero. Ecco un esempio di uno dei miei preamboli in cui sovrascrivo il \boxminus
integrato con un MnSymbol:
\usepackage[]{fakeMnSymbol}
\DeclareSymbolFont{mnsymbolc}{U}{MnSymbolC}{m}{n}
\let\boxminus=\undefined
\DeclareMathSymbol{\boxminus}{2}{mnsymbolc}{112}
Altri suggerimenti
Questi avvertimenti non sono nulla di cui preoccuparsi. Infatti, nella prossima versione di LaTeX scompariranno (vedi segnalazione bug originale ). Nessun ETA al riguardo, tuttavia.
Inoltre, c'è qualche reale possibilità che ciò influenzi la composizione del documento?
No.
c'è un modo per impedirlo?
Posso patchare il codice del messaggio di avviso LaTeX prima di caricare il pacchetto e poi ripristinarlo in seguito (questo è quello che ho fatto in passato nei miei pacchetti), ma come utente imparerei semplicemente a ignorare il avvertimento.
Potrebbe essere utile quanto segue. Questo è il codice che ho dovuto aggiungere per estrarre solo il simbolo \ bigominus dal pacchetto MnSymbol.
\ DeclareFontFamily {U} {} {} MnSymbolF
\ {DeclareSymbolFont mnsymbols} {U} {} {MnSymbolF m} {n}
\ DeclareFontShape {U} {} {MnSymbolF m} {n} {
lt &; -6 gt &; MnSymbolF5
& Lt; gt 6-7 &; MnSymbolF6
& Lt; 7-8 gt &; MnSymbolF7
& Lt; gt 8-9 &; MnSymbolF8
& Lt; gt 9-10 &; MnSymbolF9
& Lt; 10-12 gt &; MnSymbolF10
lt; 12 - gt & &; MnSymbolF12} {}
\ DeclareMathSymbol {\ bigominus} {\ mathop} {mnsymbols} {55}