长期以来,我一直在 Unix 或 Linux 上编写 LaTeX 文档。由于多种原因,我正积极计划将其转移到 Mac。我安装了 Mactex、Linux Libertine 字体、RomDev.tec 和 sanskrit 2003.ttf 字体。
我的文档使用 Linux Libertine 和几种印度语言字体,最重要的是 Sanskrit 2003 (ttf)。
为了音译梵语,我使用了 Somadeva Vasudeva 的 RomDev 方案,该方案使用映射文件。
这是一个在 Linux 上运行但在 Mac 上不运行的 MWE,我收到字体规范错误:“font-not-found”
找不到字体“Linux Libertine”
我相信我的 Mac 中拥有所有必需的字体。如何验证它们是否 a) 存在以及 b) 是否已配置以xelatex
找到它们。
\documentclass[12pt]{article}
\usepackage{polyglossia} % the multilingual support package
\usepackage{parskip}
\usepackage{booktabs}
\setdefaultlanguage{english} % this is mostly going to be English text, with
\setotherlanguage{sanskrit} % some Sanskrit embedded in it.
\usepackage{xltxtra} % standard for nearly all XeLaTeX documents
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont[Ligatures=TeX,
ItalicFont={TeX Gyre Schola Italic},
BoldItalicFont={TeX Gyre Pagella Bold Italic}]
{Linux Libertine O}
\setsansfont[Ligatures=TeX, Scale=0.9]{Linux Biolinum O}
\setlength{\parskip}{12pt} % 1ex plus 0.5ex minus 0.2ex}
\newfontfamily\devanagarifont{Linux Libertine}
\setlength{\textwidth}{5.5in}
\newfontinstance
\sanskritunicode [Script=Devanagari,Mapping=RomDev]{Sanskrit 2003}
\newcommand\skt[2]{\textsanskrit{#1#2}}
\newcommand\sktuni{\skt\sanskritunicode}
\newfontfamily\sa{Sanskrit 2003:script=deva}% Write Devanagari natively
\newenvironment{sanskrittext}%
{\leftskip=1em \rightskip=1em }%
{\ifhmode \par \fi}
\newcommand\sloka[1]{\begin{sanskrittext}\setlength{\parindent}{0pt}{\large \skt
{\normalsize \textit{#1}}\end{sanskrittext}\medskip}
\setlength\heavyrulewidth{1.5pt}
\newcommand{\otoprule}{\midrule[\heavyrulewidth]}
\begin{document}
{\Large \sa ॐ }
Everything is rooted in time, kāla:\\
\sloka{
kālamūlamidaṃ sarvaṃ bhāvābhāvau sukhāsukhe
}
\end{document}
答案1
我自己解决了这个问题。我遇到的问题有两个方面。TeX Live 2018 是罪魁祸首。我无法在 Linux VM 上全新安装的 TeX Live 2018 上编译我的文档。我安装了 TeX Live 2015 版本以进行编译,没有错误。接下来,我在 MBP 中安装了 TeX Live 2015。对于字体,我将 TeX Gyre 字体复制到一个单独的本地文件夹中,因为 Mac 无法读取 texlive 字体(原因是 Finder 不擅长在 MBP 中导航系统目录)。我对印度字体做了同样的事情。将这些添加到 Fontbook 中,瞧,我的书编译成功了。