Информация вынесена из обсуждения на моей страничке ВКонтакте, вдруг ещё кому понадобится, так что пусть и здесь висит.Последние пару дней я занимаюсь подготовкой автореферата к печати, и в процессе оной подготовки возникла необходимость выводить в формулах строчные греческие буквы прямым начертанием, а не курсивным.
История доработки напильникомИстория доработки напильником
Для справки: автоматические настройки вывода формул в TeX подразумевают вывод всех букв латиницы (прописных и строчных), а также строчных греческих букв курсивом. Прописные греческие, а так же цифры и знаки препинания печатаются прямым начертанием.
С латиницей всё просто: используем тег \mathrm{}, и всё, что внутри фигурных скобок, выводится прямым начертанием, но на греческие буквы это заклинание не работает.
Поступило предложение использовать пакет txfonts:
\usepackage[varg]{txfonts}
Этот пакет подцепляет шрифты, где есть все греческие буквы, любым начертанием (для прямого есть отдельные команды вида \%greekletter%up, т.е. \alphaup, \betaup и т.д.)
Всё отлично, но при подгрузке этого пакета TeX перестаёт понимать кириллические шрифты любого начертания, кроме прямого. С латиницей всё остаётся по-прежнему, я проверил, так что если вы работаете с текстом на английском, на этом шаге все мучения закончены. Понятное дело, с полужирным и курсивом расставаться не хочется.
После многократных попыток хитрого колдовства с порядком подключения пакетов (попутно выяснилось, что txfonts надо ставить ПОСЛЕ amsmath!) и использованием нескольких кодировок в пакете babel (всё стандартно разбивалось об отповедь в лог-файле: "LaTeX Font Warning: Font shape `T2A/txr/m/n' undefined
(Font) using `T2A/cmr/m/n' instead on input line 55."), я влез напрямую в файл txfonts.sty. Рецепт такой: в txfonts.sty находим, где объявлены греческие буквы прямого начертания, и в свой tex-файл копируем объявление шрифта:
\DeclareSymbolFont{lettersA}{U}{txmia}{m}{it}
\SetSymbolFont{lettersA}{bold}{U}{txmia}{bx}{it}
\DeclareFontSubstitution{U}{txmia}{m}{it}
\DeclareSymbolFontAlphabet{\mathfrak}{lettersA}
и объявление недостающих букв:
\DeclareMathSymbol{\alphaup}{\mathord}{lettersA}{11} и т.д.
В самом txfonts.sty написано что-то вроде @\reDeclare..., но для объявления в своём документе нужно именно \Declare...
Если курсивные греческие буквы не нужны, логично приписать дальше \renewcommand{\alpha}{\alphaup} и т.д. для других букв, и писать формулы как привыкли, не вспоминая каждый раз, что нужны другие команды для греческих букв.
@темы:
в Италии всё снова через Джотто,
нас reboot - а мы крепчаем