在 TeX 中使用非 Computer Modern 字体

在 TeX 中使用非 Computer Modern 字体

我在新的 Mac OS/X El Capitan 系统上安装了 TexLive 2015 的完整版本,但在尝试排版以下文件时出现字体错误:

\font\reffont=OpenSans-Regular at 20pt
\reffont
Fubar
\end

完整的控制台会话如下。如您所见,第一个问题迹象是:

mktexnam: Could not map source abbreviation O for OpenSans-Regular.

如果我尝试OpenSans、、或,也会遇到同样的基本问题。OpenSans-BoldHelveticahelvetica

我想到两个潜在的陷阱,但下面的命令行输出显示(a)字体在我的磁盘上,并且(b)我的磁盘上只安装了一个 pdftex。

我还运行了 TeX Live Utility,它说该包opensansInstalled

所以我被难住了。这是什么意思:

Need to update /usr/local/texlive/2015/texmf-dist/fonts/map/fontname/special.map?

希望您能帮上忙。谢谢。

--

OpenSans 字体在我的磁盘上:

$ pwd
/usr/local/texlive/2015/texmf-dist/fonts/truetype/public/opensans
$ ls -l
total 5144
-rw-r--r--  1 root  wheel  224592 Aug 26  2011 OpenSans-Bold.ttf
-rw-r--r--  1 root  wheel  213292 Aug 26  2011 OpenSans-BoldItalic.ttf
-rw-r--r--  1 root  wheel  221108 Aug 26  2011 OpenSans-CondLight.ttf
-rw-r--r--  1 root  wheel  210804 Aug 26  2011 OpenSans-CondLightItalic.ttf
-rw-r--r--  1 root  wheel  222584 Aug 26  2011 OpenSans-ExtraBold.ttf
-rw-r--r--  1 root  wheel  213420 Aug 26  2011 OpenSans-ExtraBoldItalic.ttf
-rw-r--r--  1 root  wheel  212896 Aug 26  2011 OpenSans-Italic.ttf
-rw-r--r--  1 root  wheel  222412 Aug 26  2011 OpenSans-Light.ttf
-rw-r--r--  1 root  wheel  213128 Aug 26  2011 OpenSans-LightItalic.ttf
-rw-r--r--  1 root  wheel  217360 Aug 26  2011 OpenSans-Regular.ttf
-rw-r--r--  1 root  wheel  221328 Aug 26  2011 OpenSans-Semibold.ttf
-rw-r--r--  1 root  wheel  212820 Aug 26  2011 OpenSans-SemiboldItalic.ttf

我的系统上仅安装了一个 pdftex:

$ sudo find / -name pdftex
/usr/local/texlive/2015/bin/universal-darwin/pdftex
/usr/local/texlive/2015/bin/x86_64-darwin/pdftex
/usr/local/texlive/2015/texmf-dist/doc/pdftex
/usr/local/texlive/2015/texmf-dist/fonts/enc/pdftex
/usr/local/texlive/2015/texmf-dist/fonts/map/pdftex
/usr/local/texlive/2015/texmf-dist/fonts/tfm/public/pdftex
/usr/local/texlive/2015/texmf-dist/fonts/type1/public/pdftex
/usr/local/texlive/2015/texmf-dist/tex/generic/pdftex
/usr/local/texlive/2015/texmf-var/fonts/map/pdftex
/usr/local/texlive/2015/texmf-var/web2c/pdftex

这是控制台会话:

This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdftex)
 restricted \write18 enabled.
entering extended mode
(./stub.tex
kpathsea: Running mktextfm OpenSans-Regular
/usr/local/texlive/2015/texmf-dist/web2c/mktexnam: Could not map source abbreviation O for OpenSans-Regular.
/usr/local/texlive/2015/texmf-dist/web2c/mktexnam: Need to update /usr/local/texlive/2015/texmf-dist/fonts/map/fontname/special.map?
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input OpenSans-Regular
This is METAFONT, Version 2.7182818 (TeX Live 2015) (preloaded base=mf)

kpathsea: Running mktexmf OpenSans-Regular

! I can't find file `OpenSans-Regular'.
<*> ...mag:=1; nonstopmode; input OpenSans-Regular

Please type another input file name
! Emergency stop.
<*> ...mag:=1; nonstopmode; input OpenSans-Regular

Transcript written on mfput.log.
grep: OpenSans-Regular.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input OpenSans-Regular' failed to make OpenSans-Regular.tfm.
kpathsea: Appending font creation commands to missfont.log.

./stub.tex:1: Font \reffont=OpenSans-Regular at 20.0pt not loadable: Metric (TF
M) file not found.
l.1 \font\reffont=OpenSans-Regular at 20pt

? x
No pages of output.
Transcript written on stub.log.

答案1

如果要在 TeX 中使用 TrueType 字体(又称系统字体),则必须使用新引擎之一xetexluatex。该luatex引擎不支持立即加载系统字体,但必须先在 Lua 级别启用它,这由完成luaotfload.sty

要加载系统字体,您必须将其名称放在引号中。名称是 Mac OS X 上 FontBook 中显示的名称,或fc-listGNU/Linux 下输出中路径后面的名称。

\ifdefined\directlua
  \input luaotfload.sty
\fi
\font\reffont="Open Sans" at 20pt
\reffont Hello from Open Sans!
\bye

在此处输入图片描述

通过 Bernard 的回答,我发现存在一个 Type1 版本的 OpenSans,可以在 中使用pdftex。这是一个示例,它产生与上面相同的输出。

\font\reffont=OpenSans-Regular-ot1 at 20pt
\reffont Hello from Open Sans!
\bye

pdftex目前,在和解决方案之间存在某种权衡xe/luatex。引擎xetexluatex使字体特征选择变得更加容易,因为所有特征都包含在一个文件中。选择 中的特征pdftex需要加载另一个字体文件,但pdftex稳定性更好,速度也快得多!

答案2

Open Sans 也可以在 LaTeX 中使用:加载opensans包并使用\fosfamily开关或通过defaultsansdefault包选项。

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{opensans}
\usepackage{lipsum}

\begin{document}%

\fosfamily
\lipsum[2]

\end{document} 

在此处输入图片描述

相关内容