使用Texlive PPA 反向移植到 Ubuntu 12.04,我无法让 XeLaTeX 使用标准时间字体(即不会嵌入的字体)。
我正在使用例如\setmainfont{times}
和\newfontfamily\fontfamilyname{Times}
,并且安装了texlive-fonts-recommended
包,其中显示(在apt-cache show texlive-fonts-recommended
):
times -- Select Adobe Times Roman (or equivalent) as default font.
timesnew -- the URW Times fonts and support for the Adobe font set.
当我在尝试使用上述字体的 tex 文件上运行 xelatex 时,出现一长串错误,其中许多错误如下所示:
请输入另一个输入文件名 !紧急停止。 ...e:=ljfour; mag:=1; nonstopmode; 输入时间 抄录在 mfput.log 上。 grep:times.log:没有此文件或目录 mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; 输入时间' 无法制作 times.tfm。 kpathsea:运行 mktextfm 次 /usr/share/texlive/texmf/web2c/mktexnam:无法映射时间的源缩写。 /usr/share/texlive/texmf/web2c/mktexnam:需要更新吗? mktextfm:运行 mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; 输入时间 这是 METAFONT,版本 2.718281(TeX Live 2012/Debian)
我将非常感激关于如何在 Ubuntu 上用 XeLaTeX 创建的 PDF 中使用标准 Times 字体的想法。
编辑抱歉,我没有早点把这个例子贴出来——我得把小家伙哄上床睡觉了,我希望这只是我的一个简单疏忽:)
以下是一个例子:
\documentclass{memoir}
\usepackage{fontspec}
\setmainfont{Times}
\begin{document}
In Times we trust.
\end{document}
以下是 XeLaTeX 的响应:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "Times" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
我想到的一个解决方案是手动安装一个可以替代 Times 的 OTF 或 TTF 字体,但我希望 texlive 发行版或 Ubuntu 有这个字体 - 但目前还不清楚在哪里。
答案1
据我所知,所有 PDF 阅读器都应该知道的 14 种基本字体是 Type1 字体(Times、Courier、Helvetica、Symbol 和 Zapf Dingbats),它们不支持任意 Unicode。
因此,(pdf)latex
可以通过设置相应的选项来避免下载 PDF 文档中的基本字体
updmap-sys setoption pdftexDownloadBase14 false
updmap-sys setoption dvipsDownloadBase14 false
(感谢 Martin Schröder 指出该命令,请参阅的手册页updmap
了解更多信息;以true
恢复为默认值),这对于 XeLaTeX 来说没有多大意义,因为这会剥夺它的主要功能,即处理覆盖整个 Unicode 字符集的 OpenType 或 TrueType 字体。
因此,如果您计划使用 XeLaTeX 来利用 OpenType 功能,请让 XeTeX 将xdvipdfmx
字体下载到 PDF 文件中。
答案2
Ubuntu(和每个 Linux 系统一样)没有安装 Times 字体,但提供了许多替代方案;流行的有:
- PT Serif(出色的西里尔文支持)
- 自由衬线
- Droid Serif(Android 默认)
- (Linux)Libertine Serif
- 似曾相识的衬线体
只需检查fc-list|grep Serif
并选择您喜欢的一个。