XeLaTeX 和 Roboto:无连字符

XeLaTeX 和 Roboto:无连字符

我正在尝试使用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 下正确运行。

相关内容