Загрузите один символ из пакета LaTeX - PullRequest
4 голосов
/ 18 июня 2009

При использовании пакета 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 ]

2 голосов
/ 14 марта 2010

Вот как я решил это:

Загрузите скрипт 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}

в вашей преамбуле, теперь вы можете использовать любой MnSymbol, например, \powerset, добавив префикс, например, \MNSpowerset

Большое спасибо Скотту Пакину за этот взлом ... и за его полное руководство по символам ...


Этот хак имеет проблемы с символами в подстрочных индексах / надстрочных индексах. Обходной путь - использовать источник fakeMnSymbol.sty, чтобы найти, из какого шрифта был загружен нужный символ, а также его номер. Вот пример из одной из моих преамбул, где я переопределяю встроенный \boxminus с помощью MnSymbol:

\usepackage[]{fakeMnSymbol}
\DeclareSymbolFont{mnsymbolc}{U}{MnSymbolC}{m}{n}
\let\boxminus=\undefined
\DeclareMathSymbol{\boxminus}{2}{mnsymbolc}{112}
2 голосов
/ 26 июня 2009

Эти предупреждения не о чем беспокоиться. Фактически, в следующем выпуске LaTeX они исчезнут (см. оригинальный отчет об ошибке ). Однако на этом нет ETA.

Кроме того, существует ли реальная вероятность того, что это повлияет на набор текста в документе?

Нет.

есть ли способ предотвратить это?

Может исправлять код предупреждающего сообщения LaTeX перед загрузкой пакета, а затем восстанавливать его снова (это то, что я делал в прошлом в моих собственных пакетах), но как пользователь я бы просто научился игнорировать предупреждение.

1 голос
/ 14 февраля 2010

Следующее может помочь. Это код, который я должен был добавить, чтобы получить только символ \ bigominus из пакета MnSymbol.

\ DeclareFontFamily {U} {MnSymbolF} {}
\ DeclareSymbolFont {mnsymbols} {U} {MnSymbolF} {т} {п}
\ DeclareFontShape {U} {MnSymbolF} {т} {п} {
<-6> MnSymbolF5
<6-7> MnSymbolF6
<7-8> MnSymbolF7
<8-9> MnSymbolF8
<9-10> MnSymbolF9
<10-12> MnSymbolF10
<12-> MnSymbolF12} {}
\ DeclareMathSymbol {\ bigominus} {\ mathop} {mnsymbols} {55}

...