我一直使用 XeLaTeX 排版马拉雅拉姆语书籍,马拉雅拉姆语使用 Rachana 字体,英语使用 FreeSerif。Rachana 的一个问题是它不包含诸如“花括号”和 emdash 和 endash 之类的字形。这意味着我必须使用 Free Serif 中的这些字符,这使得代码比需要的更复杂一些。因此,我一直觉得我的文档比绝对需要的要长,我一直在尝试创建一个适合我需要的最小文档。
考虑到这一点,我写了以下文档,在我看来,它是正确的(但显然不是)。当我编译它时,它以错误结束,“xdvipdfmx:fatal: 没有字体无法继续:/usr/share/fonts/truetype/malayalam-fonts/Rachana-Bold.woff
输出文件已删除。”尽管正常和粗体的 woff 文件在系统的正确目录中可用,即 /usr/share/fonts/truetype/malayalam-fonts。
有人能指出这个问题的解决方案吗?
我在 GNU/Linux Mint 4.9.0-8-amd64 上使用 XeTeX,版本 3.14159265-2.6-0.99996 (TeX Live 2016/Debian)。我的最小文档如下:
\documentclass[11pt,a4paper]{book}
\usepackage[margin=2.00cm]{geometry}
\sloppy
\usepackage{graphicx}
\usepackage{fontspec}
\usepackage{polyglossia,xltxtra}
\newfontfamily\malayalamfont[Script=Malayalam,Mapping=tex-text]{Rachana}
\setmainfont{Rachana}
\newfontfamily\engfont[Mapping=tex-text]{FreeSerif}
\def\xromn#1{{\fontencoding{T1}\fontfamily{cmr}\selectfont#1}}
\def\squote{\xromn{`}}
\def\esquote{\xromn{'}}
\def\dquote{\xromn{``}}
\def\edquote{\xromn{''}}
\DeclareTextFontCommand{\myfont}{\engfont}
\def\mdash{\myfont{\textemdash}}
\def\ndash{\myfont{\textendash}}
\linespread{1.2}
\widowpenalty=10000
\clubpenalty=10000
\raggedbottom
\sloppy
\begin{document}
\myfont{``}ഇതു് സീലാറ്റെക്കിൽ ചെയ്ത ഏറ്റവും ചെറിയ മലയാളം പുസ്തകമാണു്.\myfont{''} \ndash Language=\languagename
\textbf{മലയാളം ബോൾഡ്} \textit{മലയാളം ഫേക് ഇറ്റാലിക്}
\myfont{``This is the smallest'' Malayalam article class document\mdash that can be made with \XeLaTeX .}
\textbf{FreeSerif Bold} \textit{FreeSerif Italic} \textsf{Sans English} Language=\languagename
\end{document}