我正在尝试使用 fontspec 和EB Garamond 字体。我首先尝试使用 Lualatex,因为我想尝试一下 impnattypo(法语排版)包的一些功能。但是,一开始我在渲染 OpenType 功能(如历史连字、与大写字母结合的小写字母以及几乎所有上下文替代)时遇到了一些问题。然后,我发现了有关 lualatex 问题的建议,所以我改用了 XeLaTeX,我的一些问题得到了解决,但有些问题没有解决。例如,我无法激活历史连字,无法获得替代“1”(功能 cv11),并且 TeX 连字(--- 等)不起作用。这是一个有效示例:
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8
\documentclass[11pt,DIV=8]{scrbook}
\usepackage[papersize={140mm,210mm}]{geometry}
\usepackage{microtype}
\usepackage{realscripts}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\defaultfontfeatures{RawFeature={+hlig,+clig,+dlig,+cv11,+cv90,+calt,+ccmp,+swsh},Ligatures=TeX,Numbers={Proportional,OldStyle}}
%Cool Small caps
\newcommand{\smallcaps}[1]{\textsc{\MakeLowercase{#1}}}
%first paragrpaph definition
\newcommand{\primero}[1]{\noindent{\smallcaps{#1}}}
% cool french typography
\usepackage[ hyphenation,
parindent,
lastparline
]{impnattypo}
\usepackage[all]{nowidow}
\raggedbottom
\setlength{\emergencystretch}{3em} % prevent overfull lines
% footers and headers
\usepackage{fancyhdr}
\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyfoot[C]{\thepage} % except the center
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}%
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE]{\small{\smallcaps{Some Author}}}
\fancyhead[RO]{\small{\smallcaps{Some Title For This}}}
\fancyfoot[C]{\small\thepage}
\renewcommand{\headrulewidth}{0.1pt}
% chapter start
\renewcommand*\sectfont{\rmfamily\scshape}
\usepackage{kantlipsum}
\begin{document}
Quienes queriendo. \textit{Quienes quieren querer queriendo.}
---This should be an em-dash,and the ligature in this: Th should work.
--This should be an en-dash and this historic ligatures should work: estaba octubre.
--- These ones should not look like roman numerals: 111111.
\kant[1]
\textit{\kant[2]}
\end{document}
我尝试了 fontspec 手册中的选项,也尝试了字体作者自己的建议标本数据和他的XeLaTeX 使用建议。我也尝试过使用Mapping=tex-text
,但Ligatures=TeX
没有成功。我还尝试过将 Raw OpenType 功能更改为 fontspec 定义的功能(例如 Ligatures={Historic})。
我不知道还能做什么。我整天都在处理这个文件,却一无所获。最糟糕的是,我知道我以前让它工作过!但现在我记不起怎么做了…… :( 我知道我一定错过了一些小而明显的东西。
答案1
您需要声明默认字体功能前使用 设置字体\setmainfont
。
另外,请确保您没有以某种方式最终获得 TrueType 版本的字体。
此外,可能值得更详细地指定文件:
\setmainfont
[ Path = /path/to/fonts/ ,
Extension = .otf,
UprightFont = *12-Regular ,
ItalicFont = *12-Italic ,
BoldFont = *08-Regular ]
{EBGaramond}