.
i-Type.ru
.
размышления о дизайне и типографике    
.
.
• Начало
• Статьи
• Календарь
• Энциклопедия
• Реклама на сайте

.

Статьи
Про шрифты с продолжением. Часть 9

Шрифты для формул

Переключение шрифтов для формул имеет серьезные отличия от того, как это делается в обычном тексте. Выбор некоторых математических шрифтов осуществляется явно при помощи команд вида “\mathsf{... }”, “\mathbf{... }”
и т.д. с одним аргументом. Такие команды называются математическими алфавитами. Другие шрифты неявно выбираются компилятором при обработке команд, печатающих математические символы, такие как “\oplus”. Подобные шрифты называются символьными.

Математические алфавиты

Стандартные классы содержат определения следующих математических алфавитов:
\mathrm{math}
\mathbf{math}
\mathsf{math}
\mathit{math}
\mathtt{math}
\mathcal{math}
\mathnormal{math}

Набор математических алфавитов дополняется различными пакетами. Например, пакет amsfonts вводит алфавиты “\mathfrak” и “\mathbb” для печати готических и контурных букв соответственно.

Перед использованием русских букв в математических формулах необходимо загрузить пакет mathtext из коллекции T2, причем сделать это нужно до загрузки пакетов, изменяющих внутреннюю кодировку, таких как fontenc или babel.

Символьные шрифты

Непосредственно в математической формуле LATЕX использует так называемые символьные шрифты с кодировками OML, OMS и OMX. Часть символов, которые имеют прямое начертание, заимствуется из текстовых шрифтов, так что всего существует четыре типа символьных шрифтов (табл. 1). Символьные шрифты имеют те же пять атрибутов (кодировка (ENC), гарнитура (family), насыщенность (series), начертание (shape) и размер (size)), что и текстовые. Однако для математических формул нет команд, которые бы переключали только один атрибут, поскольку формула — это единое целое.

Таблица 1. Символьные шрифты
Название Кодировка Примечание
operators OT1 Прямые символы из \mathrm
letters OML Курсивные символы из \mathnormal
symbols OMS Математические символы
largesymbols OMX Большие символы

Соответствие алфавита шрифту с заданным перечнем атрибутов контролирует математическая версия. Версию изменяет декларация “\mathversion{version-name }”, где version-name — название версии. Ее можно менять только вне математической формулы. Стандартные классы предопределяют две версии — normal и bold; первая из них используется по умолчанию.

Изменение версии обычно влияет не только на буквы и цифры, но и на другие символы, поскольку сопровождается заменой реального, так называемого внешнего шрифта.

Внешний шрифт

Результат переключения шрифтов был бы легко предсказуем, если бы все гарнитуры имелись в одинаковом наборе начертаний и насыщенности. Но это невозможно в принципе. Например, рукописные шрифты обычно есть только в варианте светлого курсива.

Что же произойдет, если шрифт с запрошенным набором атрибутов отсутствует? Система NFSS предпримет попытку разрешить возникшую проблему, руководствуясь информацией, записанной в файлах определения шрифтов (font definition) с расширением *.fd. Название файла образуется объединением аббревиатур кодировки ENC и гарнитуры family. Например, если заказана гарнитура cmr (Computer Modern Roman) в кодировке T2A, то компилятор попытается найти файл t2acmr.fd. Несколько примеров соответствия атрибутов внешнему шрифту приведены в табл. 2. Если комбинация кодировки, семейства, насыщенности и начертания не определена, то NFSS меняет значение атрибута начертания на принятое по умолчанию. Если получившаяся комбинация по-прежнему неизвестна, значение по умолчанию присваивается атрибуту насыщенности (series). Если это не помогает, то предпринимается попытка изменить атрибут (family).

Таблица 2. Соответствие атрибутов внешнему шрифту
Атрибуты шрифта Внешний шрифт и его название
OT1 cmr m n 10pt cmr10 at 10pt CM Roman
OT1 cmss m sl 12pt cmssi12 at 12pt CM Sans Slanted
OML cmm m it 10pt cmmi10 at 10pt CM Math Italic
T1 ptm b it 18pt ptmbi8t at 18pt Adobe Times Bold Italic
T2A cmr m n 10pt lhr10 at 10pt LH Roman
T2A cmss m sl 12pt lhssi12 at 12pt LH Sans Slanted

Пакеты PSNFSS

Казалось бы, кому интересна информация о пакетах, не поддерживающих кириллицу? Однако нельзя не упомянуть о некоммерческих шрифтах, поддерживаемых пакетами PSNFSS, тем более что здесь есть замечательные шрифты семейств Palatino и Times для математических формул.

Чтобы изменить шрифт, пользователь выбирает один из основных пакетов avant, bookman, charter, chancery, helvet и т.д. Они заменяют одну или сразу несколько гарнитур, используемых по умолчанию. В табл. 3 показано, какую замену производит каждый пакет из коллекции PSNFSS. Два из них — mathpazo и mathptmx — подменяют шрифты не только в тексте, но и в математических формулах. Соответствие аббревиатур названиям реальных шрифтов приведено в табл. 4. Все перечисленные в этой таблице гарнитуры есть в кодировках OT1, T1 и TS1. Исключение составляют две последние гарнитуры — Symbol и ZapfDingbats, которые имеются только в кодировке U.

Таблица 3. Гарнитуры, используемые пакетами PSNFSS версии 9.0
Пакет \rmdefault \sfdefault

\ttdefault Формулы
  cmr cmss cmtt CM Roman
avant   pag    
bookman pbk pag pcr  
chancery pzc      
charter bch      
courier     pcr  
helvet   phv    
mathpazo ppl     Palatino
mathptmx ptm     Times
newcent pnc pag pcr  
pifont        
utopia put      
Примечание. Пропуск означает, что гарнитура не изменяется пакетом.

Таблица 4. Шрифты, поддерживаемые пакетами PSNFSS версии 9.0
ENC Family Series Shape Гарнитура
OT1 T1 TS1 ptm mb n sl it sc Times
OT1 T1 TS1 ppl mb n sl it sc Palatino
OT1 T1 TS1 pnc mb n sl it sc NewCenturySchlbk
OT1 T1 TS1 pbk mb n sl it sc Bookman
OT1 T1 TS1 phv m b mc bc n sl sc Helvetica
OT1 T1 TS1 pag mb n sl sc AvantGarde
OT1 T1 TS1 pcr mb n sl sc Courier
OT1 T1 TS1 pzc m It ZapfChancery
OT1 T1 TS1 put mb n sl it sc Utopia
OT1 T1 TS1 bch mb n sl it sc CharterBT
U psy m n Symbol
U pzd m n ZapfDingbats

Для документов на русском языке пакеты PSNFSS не подходят, поскольку в них нет русских букв. Но, как указывалось выше, эти пакеты полезны для набора формул.

Пакеты FontsC

Существует несколько пакетов, которые позволяют подключать русские шрифты PostScript. Наиболее известным из них является пакет pscyr. Теоретически он может приводить к конфликтам с другими пакетами, поскольку использует обозначения гарнитур, противоречащие схеме, принятой в системе LATЕX. Альтернативой может быть коллекция пакетов FontsC. Эти пакеты, наряду с поддержкой PostScript-шрифтов, позволяют применять в документах LATЕX шрифты TrueType и OpenType, поставляемые корпорацией Microsoft (частично по лицензии Monotype) в составе операционных систем Windows, начиная с Windows 2000 (гарнитуры Arial, Courier New и Times New Roman поставляются также с Windows 95 и 98, а гарнитура Garamond — с Windows 98). PostScript-шрифты, поддерживаемые пакетами коллекции FontsC, разработаны фирмой РагаТуре. Некоторые из них распространяются бесплатно. Все пакеты FontsC перечислены в табл. 5, а в табл. 6 приведены образцы и названия шрифтов. Определить шрифты PostScript в табл. 5 можно по принадлежности к фирме-производителю. Обозначение гарнитур PostScript-шрифтов, разработанных компанией РагаТуре, начинается с буквы «t», а аббревиатуры гарнитур шрифтов TrueType и OpenType компаний Microsoft и Monotype начинаются с букв «j» и «m» соответственно.

В большей части приложений для подключения перечисленных шрифтов достаточно загрузить один-два пакета из коллекции FontsC. Эти пакеты подменяют стандартные шрифты Computer Modern, используемые в документах LATЕX по умолчанию. Подмена шрифтов производится посредством переопределения деклараций
“\rmdefault”, “\sfdefault” и “\ttdefault” согласно табл. 5.

Таблица 5. Шрифты, поддерживаемые пакетами FontsC версии 1.1
Пакет \rmdefault \sfdefault \ttdefault Формулы
  cmr cmss cmtt CM Roman
AcademyC tdy      
AvantC   tag    
BalticaC tl5      
BaskerC tnb      
ChanceryC tzc      
LiteraturnayaC tl6      
mathmnt       Times New Roman
OffSerifC     to8  
PetersburgC tp7      
SclBookC tcs tag to8  
StScriptC tud      
GaramondC mgm ma1 mcr  
TimesC mnt ma1 mcr Times New Roman
VerdanaC jvn      
Примечание. Пропуск означает, что гарнитура не изменяется пакетом.

Таблица 6. Шрифты, поддерживаемые пакетами FontsC версии 1.1
ENC family series shape Гарнитура
OT1 T1 T2A jvn m bx n sl Verdana
OT1 T1 T2A ma1 m bx mc bc n sl sc Arial
OT1 T1 T2A maq m bx mc bc n sl sc Book Antiqua
OT1 T1 T2A mbk m bx n sl sc Bookman Old Style
OT1 T1 T2A mcr m bx n sl sc Courier New
OT1 T1 T2A mgm m bx n it sl sc Garamond
OT1 T1 T2A mnt m bx n it sl sc ui Times New Roman
OT1 T1 T2A myg m bx n sl sc Century Gothic
OT1 T1 T2A tag m bx n sl sc Avant Garde Gothic
OT1 T1 T2A tcs m bx n it sl sc ui School Book
OT1 T1 T2A tdy m bx n it sl sc ui Academy
OT1 T1 T2A tl5 m bx n it sl sc ui Baltica
OT1 T1 T2A tl6 m bx n it sl sc ui Literaturnaya
OT1 T1 T2A tnb m bx n it sl sc ui New Baskerville
OT1 T1 T2A to8 m bx n sl sc Officina Serif
OT1 T1 T2A tp7 m bx n it sl sc ui Peterburg
OT1 T1 T2A tud m it Studio Script
OT1 T1 T2A tzc m it ZapfChancery

Пакет mathmnt заменяет шрифты в формулах. Пакет TimesC имеет две опции: nomath и math. По умолчанию применяется первая, а шрифты заменяются только в тексте. Если же пакет загружен с опцией math, происходит также частичная подмена математических шрифтов аналогично тому, как это делает пакет mathmnt.

При загрузке пакетов происходит подмена шрифтов во всем печатном документе.

Послесловие

Напоследок хотелось бы прояснить неоднозначный момент. Русификаций LATЕX написано много, но надо различать интернационализацию и русификацию, что не совсем одно и то же.

Русификация, основанная на результатах работы T2 team и подразумевающая использование пакетов inputenc, babel, и fontenc, — это интернационализация, а не русификация.

Пакет T2 незаменим, когда надо набирать смешанные многоязычные тексты, ведь он поддерживает стандарт utf-8. Но тут есть подвох: кириллические буквы нельзя использовать в именах команд, метках и аргументах комады cite. То есть они не являются буквами с точки зрения LATЕX — это активные символы.

Можно пользоваться русификацией Александра Черепанова, которая объединила в себе все преимущества русификации Шеня-Львовского и русификации T2. Это уже не интернационализация, а именно русификация.

Что лучше — выбирать вам. А для сомневающихся напомним, что в файле cyrguide.tex, который является частью дистрибутива LATЕXε, описываются настройка и использование кириллицы при работе с LATЕX. Не знаешь, что выбрать, — прочитай инструкцию! 

КомпьюАрт 12'2010

i-type.ru
end --›
  Copyright©1998-2010
Nikolay Dubina | Николай Дубина
реклама