TeX Font Mapping - PullRequest
       45

TeX Font Mapping

4 голосов
/ 06 октября 2009

Я использую пакет, написанный поверх XeLaTeX. Этот пакет использует fontspec для указания шрифтов для различных частей вашего текста: латинский, нелатинский, математический режим, ...

Пакет поставляется с несколькими примерами файлов. Я был в состоянии xelatex большинство из них, которые зависят от обычных файлов ttf или otf. Однако один из них пытается установить шрифт цифр в математическом режиме для какого-либо шрифта, скажем, «NonLatin Digits». Но шрифт не выглядит обычным шрифтом. В одном каталоге находятся два файла: nonlatindigits.map и nonlatindigits.tec. TECkit использует эти файлы сопоставления для генерации шрифтов TeX. Однако по какой-то причине не удается создать файлы, и xelatex выдает следующее сообщение об ошибке.

 kpathsea: Invalid fontname `NonLatin Digits', contains ' '

 ! Font \zf@basefont="NonLatin Digits" at 10.0pt not loadable: Metric (TFM) file or
 installed font not found.

Программа kpathsea жалуется на пробелы, но удаление пробелов решает проблему с загрузкой файла TFM.

Есть какие-нибудь подсказки, что я делаю не так?

Ответы [ 4 ]

5 голосов
/ 06 октября 2009

Какое реальное имя файла шрифта? Недавно в списке рассылки XeTeX обсуждались ошибки, из-за которых в Windows не загружались файлы шрифтов с пробелами в именах (ищите их в в архивах ). Если смена имени файла вам подходит, возможно, вы только что столкнулись с этой ошибкой.

Вызов kpathsea, который вы видите, является лишь побочным эффектом: он указывает, что шрифт не был найден системными библиотеками, которые XeTeX использует поверх стандартной системы поиска шрифтов TeX, и XeTeX возвращается к поиску файла TFM , самый основной формат файла.

TECkit не имеет ничего общего со шрифтами, он конвертирует символы на лету; в вашем случае, я полагаю, вы могли бы использовать сопоставление для преобразования, скажем, арабских чисел в индикские числа (чтобы вам не нужно было вводить последние напрямую в исходный файл). Но он никак не генерирует шрифты.

1 голос
/ 24 апреля 2010

Как уже упоминали другие, вы должны попробовать XeTeX, и вы должны убедиться, что у вас установлены правильные шрифты. Используйте команду xelatex вместо pdflatex , чтобы включить использование нелатинских символов в файлах .tex.

Вы не сказали, какую кодировку шрифта вы хотите, но следующие два должны работать довольно хорошо: Linux Libertine и Computer Modern Unicode. Имена пакетов OpenSuSE: LinuxLibertine и см-юникод ; надеюсь, это похоже на другие системы.

Добавьте следующее в качестве первого импорта в ваш документ:

\usepackage{xunicode,fontspec,xltxtra}
\usepackage[english]{polyglossia}
% EXAMPLE: \setotherlanguages{russian} % set as "other" so English hyphenation active

и добавить следующее после всех других импортов (чтобы он не был переопределен при импорте старых пакетов),

\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\setromanfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}
\setmonofont[Scale=0.9]{Courier New}

или, если вы хотите шрифты Computer Modern,

\setromanfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
0 голосов
/ 16 октября 2009

Parsi Digits - это шрифт, которого у вас сейчас нет, и ошибка, которую вы получаете, заключается в том, что у вас нет шрифта. Просто замените Parsi Digits' with another font and it all should go fine. \setdigitfont is a command that makes digits in math mode Persian and it can accept Scale 'в качестве опции.

0 голосов
/ 06 октября 2009

с xetex или xelatex, дело в том, что вам не нужно указывать текстовые шрифты, вы должны использовать системные шрифты.

Вы должны опубликовать код и преамбулу тех частей, в которых вы получаете ошибку. Так же, как html + css, разные текстовые дистрибутивы могут немного отличать вещи друг от друга.

Как минимум, ваша преамбула должна выглядеть примерно так:

 \documentclass[12pt,letterpaper]{article}

 \usepackage{fontspec}% provides font selecting commands
 \usepackage{xunicode}% provides unicode character macros
 \usepackage{xltxtra} % provides some fixes/extras

 \setromanfont[Mapping=tex-text]{Font Name}

[Mapping = tex-text] особенно важен при загрузке ваших шрифтов.

...