Опубликован: 07.02.2007 | Доступ: свободный | Студентов: 3728 / 1157 | Оценка: 4.56 / 3.95 | Длительность: 23:09:00
Специальности: Художник
Дополнительный материал 3:

Приложение В. Шрифты и LaTeX

Добавление одного шрифта

УСТЬ теперь у нас есть tfm- и pk-файлы для какого-то шрифта (и они находятся в тех местах, где TeX их ищет). Как добавить такой шрифт в наш текст? Самый простой и самый грубый способ добавить новый шрифт предоставляет команда \newfont. Ее формат таков:

\newfont{команда}{описание_шрифта}

Здесь команда — это придуманная вами команда для переключения на добавляемый вами шрифт. Имя этой команды надо выбирать так же, как первый аргумент команды \newcommand (оно не должно быть занято, не должно начинаться на end} и т.п.). Что же до описания_шрифта, то в простейшем виде это — просто имя tfm-файла, соответствующего данному шрифту.

Вот пример. В свое время Дональд Кнут шутки ради разработал причудливый шрифт, называемый cmff10 (его tfm-файл и mf-файл называются соответственно cmff10.tfm и cmff10.mf, и входят в стандартный комплект). Чтобы пользоваться этим шрифтом в своем тексте, включите в преамбулу строку

\newfont{\weird}{cmff10}

и вы сможете писать тексты вроде

\newfont{\weird}{cmff10}
The letters look {\weird strange.}
The letters look 
{\weird strange.}

Команду, определенную с помощью \newfont, можно использовать только так, как в этом примере, а именно, переключаться с ее помощью на новый шрифт внутри группы, и в этом отношении она похожа на команды переключения шрифтов наподобие \itshape или \bfseries. На этом, однако, сходство и кончается: \itshape или \bfseries меняют начертание шрифта, но сохраняют его размер, в то время как команда, определенная с помощью \newfont, всегда выдает шрифт одного размера — того, что записан в tfm-файле, на который вы ссылаетесь в ее втором аргументе. Далее, некоторые LaTeX'овские команды для переключения шрифтов (именно, команды, меняющие размер) не только переключаются на шрифт другого размера, но и меняют интерлиньяж (а также, кстати, размер невидимой линейки, создаваемой командой \strut ); команда, определенная с помощью \newfont, никакого влияния ни на интерлиньяж, ни на смысл команды \strut не окажет. Наконец, внутри математической формулы такая команда вообще будет проигнорирована.

Тем не менее, если вы нашли какой-то экзотический символ, который хотите несколько раз использовать, и нашли шрифт, в котором он есть, команда \newfont может быть полезна. Например, в шрифте wasy10, входящем во многие комплекты TeX'а, в позиции 7 имеется символическое изображение телефона. Зная это, можно написать в преамбуле

\newfont{\wasyten}{wasy10}
\newcommand{\telephone}{\hbox{\wasyten\symbol{7}}}

и использовать команду \telephone для изображения телефона.

Еще одно применение этой команды — масштабирование шрифтов. Чтобы подключить масштабированный шрифт с помощью команды \newfont, надо задать требуемое увеличение или уменьшение во втором аргументе команды \newfont. Оно задается с помощью TeX'овского "ключевого слова" scaled (без backlash'а!), за которым следует коэффициент масштабирования, умноженный на 1000 (после умножения коэффициента на 1000 должно получиться целое число). Например, для подключения шрифта, увеличенного в два с половиной раза, надо после имени tfm-файла написать scaled 2500, а для шрифта, размеры которого уменьшены на 30%, надо написать scaled 700.

Можно также задавать увеличение не в явном виде, а сообщить TeX'у требуемый "характерный размер" шрифта. Для этого надо во втором аргументе команды \newfont написать после имени tfm-файла масштабируемого шрифта

at размер

где размер — требуемый "характерный размер", заданный обычным образом в TeX'овских единицах длины или через TeX'овские параметры длины, а at — еще одно TeX'овское " ключевое слово" (пишущееся без backslasha'а). Если основной шрифт документа имеет кегль 10, то характерный размер разумно выбирать равным 10pt}, если 11 или 12, то 11pt или 12pt.

Но, конечно, это зависит от ситуации. Скажем, можно написать

\newfont{\wasytwenty}{wasy10 at 20pt}
\newcommand{\bigtelephone}{\hbox{\wasytwenty\symbol{7}}}

и получить вдвое больший рисунок телефона:

Еще одно применение масштабирования можно увидеть в начале этого раздела, где с его помощью изготовлен инициал "П". При этом использован такой код:

\newfont{\initial}{zcr17 at 48pt}
\newbox{\literaP}
\savebox{\literaP}{\hbox{\initial П}}
\begin{wrapfigure}{l}{0.75\wd\literaP}
\vbox to 0.4\ht\literaP{%
   \vss \usebox{\literaP}%
   \vspace*{-0.2\ht\literaP}%
}%
\end{wrapfigure}
УСТЬ теперь...
Василий Майоров
Василий Майоров
Даврон Юсупалиев
Даврон Юсупалиев
Андрей Лучицкий
Андрей Лучицкий
Россия
Михаил Алексеев
Михаил Алексеев
Россия, Уфа, УГАТУ, 2002