今天我弄清楚了如何将系统安装的字体与fontspec
-package 和 LuaLaTeX 一起使用。但我不知道如何使用安装在我的texmf
-tree 中的字体!
-Manualfontspec
说(第 10 页),LuaLaTeX 将看到安装在我的texmf
-tree 中的字体,并且我可以通过人类可读的字符串(例如 Latin Modern Roman)或文件名(例如 ec-lmr10.tmf)输入名称。
尽管我已确认此文件(以及字体)已安装在我的系统texmf
树中,但我无法编译它!我总是得到一个
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "ec-lmr10.tfm" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.13 \setmainfont{ec-lmr10.tfm}
?
我是不是搞错了什么?如何将 LaTeX 字体与 fontspec 和 LuaLaTeX 结合使用?
答案1
fontspec 是为 Open-Type-Fonts 制作的,这就是.tfm
-file 不起作用的原因。此外,@JosephWright 指出了上述 Latin Modern Roman 字体的正确名称,因此我可以使用 fontspec。
当我可能想要或需要某种字体时,.ttf
或者.otf
字体格式最适合处理这种格式。可以使用
fc-list | grep <font-name>*.ttf
fc-list | grep <font-name>*.otf
对于系统安装的字体或
find /usr/share/texmf-dist/fonts/ -name <file-name>.ttf
find /usr/share/texmf-dist/fonts/ -name <file-name>.otf
用于我的树中的字体texmf
。
如果我的系统中没有安装某种字体或者通过 tex 安装无法获得所需格式的字体,则可以通过包安装该字体或者放入匹配的.ttf
/.otf
文件.fonts
并运行fc-cache -f -v
进行更新fc-list
。
答案2
\documentclass{article}
\begin{document}
foo
\end{document}
使用 TeXLive 的当前版本运行lualatex
将创建一个包含 Latin Modern 的文档:
$ pdffonts zzz2.pdf
name type encoding emb sub uni object ID
------------------------- ----------------- ---------------- --- --- --- ---------
NAGORB+LMRoman10-Regular CID Type 0C Identity-H yes yes yes 4 0