Carregue um único símbolo de um pacote de látex
Pergunta
Ao usar o pacote MNSymbol, o PDFlateX fornece dois avisos de fonte:
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.
Acontece que isso provavelmente se deve a um confronto com o pacote AMSSyMB.
Como preciso de apenas alguns símbolos do pacote: existe uma maneira de carregar um símbolo de um pacote, em vez de tudo?
Solução
Aqui está como eu resolvi isso:
Faça o download do script Perl "makefakemnSymbol" da fonte abrangente do documento do símbolo de látex:http://mirror.ctan.org/info/symbols/comprensive/source/makefakemnSymbol
Em seguida, na linha de comando fazer chmod +x makefakeMnSymbol
para torná -lo executável. Então corra
./makefakeMnSymbol `kpsewhich MnSymbol.sty` > fakeMnSymbol.sty
Coloque o FakemnSymbol.sty em um diretório de escolha Texmf (global ou local) e execute texhash
Se você agora colocar
\usepackage{fakeMnSymbol}
No seu preâmbulo, agora você pode usar qualquer mnSymbol, como \powerset
ao prefixá -lo como \MNSpowerset
Muito obrigado a Scott Pakin por este hack ... e por seu guia abrangente de símbolos ...
Este hack tem problemas com símbolos em subscritos/superscripts. Uma volta é usar o olhar para o fakeMnSymbol.sty
Fonte para descobrir qual fonte o símbolo que você deseja foi carregado, junto com seu número. Aqui está um exemplo de um dos meus preâmbulos em que eu substituo o embutido \boxminus
com um mnsymbol:
\usepackage[]{fakeMnSymbol}
\DeclareSymbolFont{mnsymbolc}{U}{MnSymbolC}{m}{n}
\let\boxminus=\undefined
\DeclareMathSymbol{\boxminus}{2}{mnsymbolc}{112}
Outras dicas
Esses avisos não são nada com que se preocupar. De fato, no próximo lançamento do látex, eles desaparecerão (veja o Relatório de bug original). Não há ETA nisso, no entanto.
Além disso, existe alguma chance real que isso afete a digitação do documento?
Não.
Existe alguma maneira de impedir isso?
Pode corrigir o código da mensagem de aviso de látex antes de carregar o pacote e restaurá -lo novamente depois (foi o que eu fiz no passado em meus próprios pacotes), mas como usuário, eu apenas aprenderei a ignorar o aviso.
O seguinte pode ajudar. Esse é o código que eu tive que adicionar para obter apenas o símbolo bigominus do pacote MNSymbol.
Declarafontfamily {u} {mnsymbolf} {}
Declaresymbolfont {mnsymbols} {u} {mnsymbolf} {m} {n}
Declarafontshape {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}