我正在尝试使用Roboto 字体系列使用 XeLaTeX(或 LuaLaTeX)。
当我在 XeLaTeX 中编写文档时,没有使用连字(但在 Android 上使用,因此应该有连字)。
LCDF typetools 中的 otfinfo 使用选项 --features 显示 liga 可用。我在 Windows 8.1 上使用 MiKTeX。
这是一个最小的工作示例:
\documentclass[
11pt,
a4paper
]{scrartcl}
\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont[
ExternalLocation,
Extension=.ttf,
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
Ligatures=Common
]{Roboto}
\begin{document}
fi
\end{document}
答案1
(该问题发布至今已有一年多了。不过,以下答案对某些人可能仍然有用。)
让这个程序在 XeLaTeX 下运行的关键似乎是Path
在发出指令时正确设置选项\setmainfont
。以下修改后的代码版本假定您使用 TeXLive2015(或 MacTeX2015);如果字体位于 以外的某个位置,只需适当地更改 Path 变量即可/usr/local/texlive/2015/texmf-dist/fonts/truetype/google/roboto/
。
\documentclass[11pt, a4paper]{scrartcl}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX,Common}}
\setmainfont[
Path = /usr/local/texlive/2015/texmf-dist/fonts/truetype/google/roboto/,
Extension = .ttf,
UprightFont = *-Regular,
ItalicFont = *-RegularItalic,
BoldFont = *-Bold,
BoldItalicFont = *-BoldItalic,
]{Roboto}
\begin{document}
Ligatures enabled: fi fl ffi ffl
Ligatures disabled: f\kern0pti f\kern0ptl f\kern0ptf\kern0pti f\kern0ptf\kern0ptl
\end{document}
相比之下,LuaLaTeX 似乎不需要该Path
选项来“查找”字体文件。事实上,发出指令
\setmainfont{Roboto}
似乎所有这一切都是为了使程序在 LuaLaTeX 下正确运行。