在 Windows 7 上使用 TexLive 2014(今天更新)可以使用 XeLaTeX 和 LuaLaTeX 进行编译以下代码:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[
Extension = .otf,
Path=otf/,
UprightFont = {*},
ItalicFont = {*-Italic},
BoldFont = {*-Bold},
BoldItalicFont = {*-Bold-Italic},
UprightFeatures = {%
SizeFeatures={%
{Size={-8.9},Font={*-Caption}},
{Size={8.91-14.9},Font={*}},
{Size={14.91-22.9},Font={*-Subhead}},
{Size={22.91-},Font={*-Display}},
},
},
ItalicFeatures = {%
SizeFeatures={%
{Size={-8.9},Font={*-Italic-Caption}},
{Size={8.91-14.9},Font={*-Italic}},
{Size={14.91-22.9},Font={*-Italic-Subhead}},
{Size={22.91-},Font={*-Italic-Display}},
},
},
BoldFeatures = {%
SizeFeatures={%
{Size={-8.9},Font={*-Bold-Caption}},
{Size={8.91-14.9},Font={*-Bold}},
{Size={14.91-22.9},Font={*-Bold-Subhead}},
{Size={22.91-},Font={*-Bold-Display}},
},
},
BoldItalicFeatures = {%
SizeFeatures={%
{Size={-8.9},Font={*-Bold-Italic-Caption}},
{Size={8.91-14.9},Font={*-Bold-Italic}},
{Size={14.91-22.9},Font={*-Bold-Italic-Subhead}},
{Size={22.91-},Font={*-Bold-Italic-Display}},
},
},
]{Garamond-Premier-Pro}
\begin{document}
\section{Embedding Optical Sizes Test}
\tiny
\begin {itemize}
\item {\rmfamily \upshape Hello World!}
\item {\rmfamily \upshape \bfseries Hello World!}
\item {\rmfamily \itshape Hello World!}
\item {\rmfamily \itshape \bfseries Hello World!}
\item {\rmfamily \scshape Hello World!}
\end {itemize}
\scriptsize
\begin {itemize}
\item {\rmfamily \upshape Hello World!}
\item {\rmfamily \upshape \bfseries Hello World!}
\item {\rmfamily \itshape Hello World!}
\item {\rmfamily \itshape \bfseries Hello World!}
\item {\rmfamily \scshape Hello World!}
\end {itemize}
\small
\begin {itemize}
\item {\rmfamily \upshape Hello World!}
\item {\rmfamily \upshape \bfseries Hello World!}
\item {\rmfamily \itshape Hello World!}
\item {\rmfamily \itshape \bfseries Hello World!}
\item {\rmfamily \scshape Hello World!}
\end {itemize}
\normalsize
\begin {itemize}
\item {\rmfamily \upshape Hello World!}
\item {\rmfamily \upshape \bfseries Hello World!}
\item {\rmfamily \itshape Hello World!}
\item {\rmfamily \itshape \bfseries Hello World!}
\item {\rmfamily \scshape Hello World!}
\end {itemize}
\large
\begin {itemize}
\item {\rmfamily \upshape Hello World!}
\item {\rmfamily \upshape \bfseries Hello World!}
\item {\rmfamily \itshape Hello World!}
\item {\rmfamily \itshape \bfseries Hello World!}
\item {\rmfamily \scshape Hello World!}
\end {itemize}
\Large
\begin {itemize}
\item {\rmfamily \upshape Hello World!}
\item {\rmfamily \upshape \bfseries Hello World!}
\item {\rmfamily \itshape Hello World!}
\item {\rmfamily \itshape \bfseries Hello World!}
\item {\rmfamily \scshape Hello World!}
\end {itemize}
\LARGE
\begin {itemize}
\item {\rmfamily \upshape Hello World!}
\item {\rmfamily \upshape \bfseries Hello World!}
\item {\rmfamily \itshape Hello World!}
\item {\rmfamily \itshape \bfseries Hello World!}
\item {\rmfamily \scshape Hello World!}
\end {itemize}
\Huge
\begin {itemize}
\item {\rmfamily \upshape Hello World!}
\item {\rmfamily \upshape \bfseries Hello World!}
\item {\rmfamily \itshape Hello World!}
\item {\rmfamily \itshape \bfseries Hello World!}
\item {\rmfamily \scshape Hello World!}
\end {itemize}
\end{document}
我使用 latexmk 来编译上述代码:
latexmk -outdir=tmp -xelatex <source.tex>
和
latexmk -outdir=tmp -lualatex <source.tex>
两个命令均成功完成。我使用 Adobe Reader 打开了这两个 PDF 文件并检查了它们的属性:每个 PDF 文件都包含嵌入的光学尺寸(标题、常规、副标题等)。如果我使用 Adobe Acrobat 打开 PDF 文件并突出显示一个字母或一个单词,则工具栏(编辑/插入文本)会显示突出显示的字母的字体名称,其中的区别很明显:使用 XeLaTeX 编译的 PDF 显示正确的字体名称,包括光学尺寸。使用 LuaLaTeX 编译的 PDF 显示所有字母的“常规”。
XeLaTeX 生成的 pdf 看起来不错。LuaLaTeX 是否可能只嵌入光学尺寸(例如更新 pdf 内部字体列表),但只使用字体的常规尺寸?
更新
以下截图应该可以解释这些差异。第一个显示了使用 XeLaTeX 的结果:
以下显示了使用LuaLaTex的结果:
查看属性后,两个 pdf 文件似乎都包含相同的字体集(嵌入字体的列表相同)。但是,如果您查看突出显示的“o”,Acrobat(标准版)会报告 XeLaTex-PDF 的详细(正确?)字体形状和大小(“...-BdItDisp”),而 Acrobat(标准版)只会报告 LuaLaTeX-PDF 的基本字体(“Garamond Premr Pro”) - 当然,按钮斜体和粗体会突出显示,但似乎涉及的某个组件、我的设置或我的使用方式有问题,...
(C:\texlive\2014\texmf-var\luatex-cache)
注意:在制作上述截图之前,我已清理(删除了)luatex-cache 。