How to install type 1 fonts in tetex

Що потрібно мати

  1. Встановлений і працює teTeX. Розповідь про версію 0.9. Якщо у вас 0.4, все практично так само. Можуть трохи відрізнятися шляху до файлів, ну, і PDFTE X у вас відсутній.
  2. Шрифти, які будемо встановлювати :-) Самі шрифти бувають в файлах .pfa або .pfb. Це абсолютно один і той же. Відомі мені безкоштовні російські шрифти формату Type 1 перераховані на моїй TE X-сторінці.
  3. Метрики шрифтів. Для кожного шрифту повинен бути файл з метриками (.afm). Якщо .afm у вас немає, можна їх згенерувати з шрифту, наприклад, за допомогою Ghostscript (див. Скрипт printafm). Але це позбавить вас інформації про кернінг, так що краще шукайте справжні .afm. Всі комерційні шрифти повинні мати метрики в комплекті.

позначення

Далі під $ TEXMF розуміється каталог, в який у вас встановлений teTeX. Це може бути / usr / lib / texmf. / Usr / local / teTeX і т.п.

Що ми будемо робити

Кінцева мета нашої праці - створення стильового пакету, який можна підключити командою, наприклад,

і отримати в результаті текст, набраний Type 1 (POSTSCRIPT) шрифтами. При цьому команди \ textrm. \ Textsf. \ Textit. \ Texttt і т.д. будуть працювати як і раніше, але вибиратися будуть Type1 шрифти. Для цього нам потрібно мати три шрифтових гарнітури: нормальну, без зарубок і моноширинний. Кожна повинна включати в себе кілька шрифтів: прямий, похилий, курсив, напівжирний, жирний і їх поєднання. Якщо ваш шрифт не включає всі можливі варіанти - великої біди в цьому не буде, можна буде використовувати підстановки. Скажімо, якщо деякий шрифт є тільки в прямому, похилому, і прямому напівжирному зображенні - то замість курсиву можна буде підставити похилий, замість похилого напівжирного - прямий напівжирний або похилий світлий. В такому дусі.

Використання Type 1 шрифтів дозволить вам:
  • використовувати безліч доступних на ринку шрифтів, а не тільки сімейство LH;
  • отримувати POST SCRIPT файли набагато меншого розміру, так як в них будуть використовуватися нормальні шрифти, а не растрові зображення букв;
  • отримувати вихідні файли в форматі PDF.

Будемо підключати три шрифту: College в якості основного (roman), Textbook як шрифту без зарубок (sans serif), Courier як моноширинного шрифту (typewriter). Складаємо табличку відповідності імен файлів і назв шрифтів:

як встановлювати

  1. Придумуємо назву постачальника шрифтів. Нехай буде local.
  2. Створюємо каталоги: $ TEXMF / fonts // і розкладаємо туди файли .pfb і .afm. відповідно.
  3. Створюємо вектор кодування шрифтів. Справа ця тоскне, але, по-перше, нескладне, по-друге, робиться тільки один раз, а використовується цей для всіх шрифтів з однаковою назвою символів. Створюємо каталог $ TEXMF / dvips / local і кладемо туди файли adobe2alt.enc. iso2alt.enc. Перший вектор я робив для Adobe Standard Cyrillic Font Specification. Другий - для дикого, але не рідкісного випадку, коли в шрифті російські літери називаються іменами відповідних букв Latin-1.
Якщо вам зустрінеться шрифт, у якого російські букви будуть називатися ще якось, то вам доведеться написати ще один вектор кодування. Робити це нескладно. В вектор пишуться назви символів шрифту. Їх можна подивитися, наприклад, Ghostscript'ом (див. Prfont.ps). Позиції символів в векторі відповідають їх кодами (альтернативне кодування в моєму випадку).
  • Робимо з адобовскіх метрик .afm TE X'овскіе .tfm. Розкладаємо їх в $ TEXMF / fonts / tfm / local /. Їх імена повинні збігатися з іменами файлів .pfb. Для кожного файлу метрики filename .afm) виконуємо: $ afm2tfm filename.afm -v filename.vpl -p adobe2alt.enc filename.ftm

    У отримані файли .vpl дописуємо лігатури <<,>>, - і --- (крім шрифту "друкарської машинки", тобто, Courier). Робиться так. Шукаємо секцію LIGTABLE, і робимо її виглядає (для альтернативної внутрішньої кодування TE X'а) так:

    Вона означає:
    • символи <<(восьмеричный код 74, символ "less" в векторе кодировки adobe2alt.enc ) дают символ левой кавычки-"елочки" (восьмеричный код 363, символ "guillemotleft");
    • Символи >> (76, "greater") дають праву кавичку- "ялинку" (364, "guillemotright");
    • Символи - (55, "hyphen") дають коротке тире (173, "endash");
    • Символи --- (173, "endash" плюс 55, "hyphen") дають довге тире (174, "emdash").
  • Генерітся метрики TE X (.tfm): $ vptovf filename.vpl / dev / null filename.tfm
  • Отримані .tfm розкладаємо в $ TEXMF / fonts / tfm / local /.
  • До $ TEXMF / dvips / base / psfonts.map дописуємо таке:

    (Для деяких шрифтів замість "<файл.pfb" может понадобиться "<<файл.pfb", чтобы они корректно вставлялись в PDF. По умолчанию в PDF вставляются только используемые символы, "<<" вставляет шрифт целиком.)

  • Якщо у вас стоїть PDFTE X (наприклад, teTeX-0.9), то треба познайомити і його зі свіжовстановленому шрифтами. Дописуємо до $ TEXMF / pdftex / base / tetex.map.

    У tetex.map можуть вже бути визначення для ваших шрифтів. Ретельно їх звідти видаліть і додайте вищевказані.

    Формат цих рядків, з README від PDFTE X'a:

    Each line in this file should contain these fields in fixed order:

    `Tex_name base_name flags fname encoding_file '

    `Tex_name 'is the TFM name

    `Flags 'is the font flags (see PDF manual for details how to specify it)

    `Fname 'is the file name of Type1 / TrueType font. If starts by character `<' it means this font should be embbed, otherwise only the font parametrs are extracted to generating FontDescriptor. Font names with suffix `.ttf'/`.TTF' mean TrueType fonts, others mean Type1 fonts. 'encoding_file' is the file that defines new encoding for this font. It should work for 'standard' encoding files DC.enc, CMtext.enc. The first line in encoding file which starts by other character than `%' should contain only the name of the encoding (which will be ignored). A line with prefix `] def' signs the end of the encoding.

    Тут все зрозуміло, крім font flags. Їх можна знайти в PDF manual. а можна повірити мені на слово: