XeTeX (LaTeX) 和系统字体的问题

XeTeX (LaTeX) 和系统字体的问题

我已开始使用企业专用的 LaTeX 类,但在 Ubuntu 中使用系统字体时遇到了问题。该类使用 fontspec 包,因此我被指示使用 XeTeX(即命令 xelatex 而不是 latex 或 pdflatex)。但是,该命令xelatex testfile.tex导致以下消息:

! Package xkeyval Error: `TeX' undefined in families `Ligatures'.

See the xkeyval package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.61 \newfontfamily\headfont{Arial}

? 

该类之前已在Mac和Windows上使用过,字体设置如下:

\newfontfamily\headfont{Arial}
\newcommand\texthead[1]{\headfont #1}
\setromanfont{Georgia}
\setmainfont{Georgia}
\setsansfont[Scale=MatchLowercase]{Verdana}

有人提出,由于 XeTeX 使用系统字体,并且类文件在 Mac 和 Windows 上都能完美运行,因此问题可能是 Arial 不是 Ubuntu 中使用的名称。我尝试在上面的设置代码中进行了替换ArialUbuntu Light但没有任何改善。

请问对于如何继续前进您有什么建议吗?

更新

由于 Joseph Wright 的评论,我开始更详细地研究类文件。xelatex quickstart.tex在注释了以下行后,我设法让命令生成 PDF 文件

\defaultfontfeatures{Ligatures=TeX,Mapping=tex-text}

并在以下行中将 Helvetica 替换为 Arial

\newfontfamily\enterprisetitlefont{Helvetica}

(参数 enterprisetitlefont 用于重新定义 maketitle 命令。)

在看到 egreg 的评论后,我删除了Ligatures=TeXdefaultfonfeatures行,并且它运行良好。

我正在使用 Ubuntu 软件中心提供的最新 TeX Live 发行版,版本称为“texlive 2009-15”。

新问题:

  • 在最新的 TeX 发行版中已经Ligatures=TeX替换了吗?Mapping=tex-text
  • 有没有更好的方法来修改原来的defaultfonfeatures行而不是简单地删除Ligatures=TeX
  • 如何让newfontfamily命令与 Helvetica 而不是 Arial 配合使用?应该在类文件中添加什么?

答案1

fontspec.sty我的机器上最旧的版本日期为 2011-02-26(TeX Live 2010 的一部分),它已经可以Ligatures=TeX作为更好的替代品Mapping=tex-text(实际上这两个选项对 XeLaTeX 的作用相同;前者是为了fontspec与 LuaLaTeX 兼容而添加的)。

请注意\setromanfont\setmainfont是同义词(前者已弃用)。

您只能使用系统上可用的字体,因此如果您的机器上没有 Arial,那么您就没那么幸运了,只能尝试使用替代品或自己安装 Arial。

但首先你应该考虑升级你的 TeX Live:XeTeX 和相关软件包已经有很多改进和错误修复。看看TeX Live 安装页面

注意:我正在回答这个问题,欢迎随意添加有关如何安装 Arial 的建议

相关内容