Инструменты пользователя

Инструменты сайта


faq:ttffonts

Использование TTF шрифтов в LaTeX (MikTeX и TeTex).

[ladserg]. Здесь я опишу создание dvi и pdf файлов с использованием обычных TTF шрифтов.

Источники, которые я использовал:

1. Берёте файл с TTF шрифтом, например georgia.ttf из каталога шрифтов MS Windows, создаёте отдельную папку для вашего проекта и копируете туда свой файл шрифта.

2. Извлекаем метрику шрифта:

ttf2afm -e t2a.enc -o georgia.afm georgia.ttf

где:

  • t2a.enc – файл с описанием перекодировки, он находится в стандартных каталогах TeX, и его копировать в вашу папку не надо, TeX найдёт его сам.
  • georgia.afm – файл с метриками, который будет создан.
  • georgia.ttf – ваш шрифт.

3. Создаём TFM файл:

afm2tfm georgia.afm -T t2a.enc > myfonts.map

После чего будут созданы два файла: georgia.tfm и myfonts.map.

myfonts.map – этот файл мы подключим потом к pdflatex, в нём pdflatex узнает о нашем шрифте.

Как и во втором пункте t2a.enc программа найдёт сама сама в стандартном каталоге.

Откроем myfonts.map и увидим строку вида:

georgia Georgia " T2AAdobeEncoding ReEncodeFont " <t2a.enc

Добавим в конец строки информацию о файле шрифта < georgia.ttf , так что бы получилась следующая строка:

georgia Georgia " T2AAdobeEncoding ReEncodeFont " < georgia.ttf <t2a.enc

4. Теперь создадим файл ttfonts.map в который занесём следующую строку:

georgia georgia.ttf Encoding=t2a.enc

Где слово georgia можете заменить на название своего шрифта, а кусок: Encoding=t2a.enc нужен обязательно, если вы без этой части создадите DVI или PDF файл, то у вас не будут работать буквы, а в MikTeX придётся ещё и папку localtexmf чистить, т.к. он в дальнейшем, даже после исправления ошибки и перекомпиляции tex файла, всё равно будет показывать вместо русских букв закорючки (да и английские он тоже неверно будет отбражать).

5. Обычным поиском ищете в каталоге TeX'а файл pdftex.cfg и копируете его в свой каталог, и в конец файла добавляете строку:

map +myfonts.map

Можете его не копировать, но тогда pdflatex в tetex вам такого наврёт, на всякий случай приведу содержимое получившегося файла pdftex.cfg:

output_format 1
compress_level 9
decimal_digits 3
page_width 210 true mm
page_height 297 true mm
horigin 1 true in
vorigin 1 true in
pk_resolution 600
pdf_minorversion 4
map pdftex.map
map +myfonts.map

6. Создадим файл с названием t2a<имяшрифта>.fd, для georgia это t2ageorgia.fd, и поместим туда информацию о нашем шрифте:

\ProvidesFile{t2ageorgia.fd}[Georgia Font]
\DeclareFontFamily{T2A}{georgia}{}
\DeclareFontShape{T2A}{georgia}{m}{n}{ <-> georgia}{}

Где слово georgia просто изменяем на название нашего шрифта.

7. Собственно используем наш шрифт, для этого в том же каталоге создаём файл, скажем test.tex, и заносим туда документ, например:

\documentclass[a4paper,12pt]{article}
\usepackage{latexsym}
\usepackage{mathtext}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[russian]{babel}
\begin{document}
Это просто текст, который выводится LaTeX с
помощью шрифта по умолчанию.\\

{\font\Georgia georgia at40pt \Georgia А это текст,
который выводится при помощи шрифта Georgia.}\\

Опять просто текст, который выводится LaTeX с
помощью шрифта по умолчанию.\\

\end{document}

где \font\Georgia georgia at40pt \Georgia и есть использование нашего шрифта.

8. Ну и компилируем наш файл:

latex test.tex
pdflatex test.tex

9. Если надо подключить ещё один шрифт, например Tahoma, то точно так же копируете файл tahoma.ttf в папку с вашим проектом, генерируете нужные файлы:

ttf2afm -e t2a.enc -o tahoma.afm tahoma.ttf
afm2tfm tahoma.afm -T t2a.enc >> myfonts.map

Правим myfonts.map так, что бы получилось следующее:

georgia Georgia " T2AAdobeEncoding ReEncodeFont " < georgia.ttf <t2a.enc
tahoma Tahoma " T2AAdobeEncoding ReEncodeFont " < tahoma.ttf <t2a.enc

В ttfonts.map добавляем строку:

tahoma tahoma.ttf Encoding=t2a.enc

Создаём файл t2atahoma.fd с содержимым:

\ProvidesFile{t2ageorgia.fd}[Tahoma Font]
\DeclareFontFamily{T2A}{tahoma}{}
\DeclareFontShape{T2A}{tahoma}{m}{n}{ <-> tahoma}{}

Открываем наш tex-файл и используем шрифт Tahoma, например, его содержимое может быть таким:

\documentclass[a4paper,12pt]{article}
\usepackage{latexsym}
\usepackage{mathtext}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[russian]{babel}
\begin{document}

Это просто текст, который выводится LaTeX с
помощью шрифта по умолчанию.\\

{\font\Georgia georgia at40pt \Georgia А это текст,
который выводится при помощи шрифта Georgia.}\\

Опять просто текст, который выводится LaTeX с
помощью шрифта по умолчанию.\\

{\font\Tahoma tahoma at25pt \Tahoma А это текст,
который выводится при помощи шрифта Tahoma.}

\end{document}

Ну и конечно:

latex test.tex
pdflatex test.tex

10. Что бы другие средствами MikTeX или TeTex могли скомпилировать выше описанный пример без всякой возни, то им надо отдать следующие файлы:

georgia.afm
georgia.tfm
georgia.ttf
myfonts.map
pdftex.cfg
t2ageorgia.fd
t2atahoma.fd
tahoma.afm
tahoma.tfm
tahoma.ttf
test.tex
ttfonts.map

Все они должны находиться в одном каталоге.

faq/ttffonts.txt · Последние изменения: 2012/03/27 05:15 (внешнее изменение)