我已开始使用企业专用的 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 中使用的名称。我尝试在上面的设置代码中进行了替换Arial
,Ubuntu Light
但没有任何改善。
请问对于如何继续前进您有什么建议吗?
更新
由于 Joseph Wright 的评论,我开始更详细地研究类文件。xelatex quickstart.tex
在注释了以下行后,我设法让命令生成 PDF 文件
\defaultfontfeatures{Ligatures=TeX,Mapping=tex-text}
并在以下行中将 Helvetica 替换为 Arial
\newfontfamily\enterprisetitlefont{Helvetica}
(参数 enterprisetitlefont 用于重新定义 maketitle 命令。)
在看到 egreg 的评论后,我删除了Ligatures=TeX
该defaultfonfeatures
行,并且它运行良好。
我正在使用 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 的建议