XeLaTeX 中使用 Alegreya 字体的连字

XeLaTeX 中使用 Alegreya 字体的连字

以下代码不会创建预期的连字(请注意,Alegreya 是 OTF):

%XeLaTeX
\documentclass{report}
\usepackage{fontspec}
\setmainfont[
  SmallCapsFont={Alegreya SC},
  ItalicFeatures={SmallCapsFont=AlegreyaSC-Italic},
  BoldFeatures={SmallCapsFont=AlegreyaSC-Bold},
  BoldItalicFeatures={SmallCapsFont=AlegreyaSC-BoldItalic},
  Ligatures=TeX,
]{Alegreya}

\begin{document}

fi ff fl

\end{document}

定义Ligatures=RareHistorical和/或Common对输出没有影响(如上所述这里)。

但是,使用 Alegreya 软件包创建预期的连字符:

%XeLaTeX
\documentclass{report}
\usepackage{Alegreya}

\begin{document}

fi ff fl

\end{document}

但是,我需要使用fontspec才能访问一些冰岛字符。如何实现第一个示例中的连字?

可能相关:

答案1

当我在 Mac OS X 中使用 tex live 2015 运行您的代码时,我收到错误font-not-found。据我所知,这是因为我无法判断\setmainfont{<name>}您的系统上是否未安装该字体。但正如这次讨论显示,其他人声称这是错误的。在这种情况下,我不知道为什么fontspec找不到Alegreya

但无论如何,如果我像平常一样指定字体的文件名,一切都会正常工作:

\documentclass{report}
\usepackage{fontspec}
\setmainfont{Alegreya-Regular.ttf}
\begin{document}
fi ff fl
\end{document}

在此处输入图片描述

现在,此代码显然只是一个最小示例,用于说明如何获取连字。不要使用该代码并期望获得粗体、斜体和小写字体。它们也必须指定。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Alegreya}[
    Extension = .ttf,
    UprightFont = *-Regular,
    ItalicFont = *-Italic,
    BoldFont = *-Bold,
    BoldItalicFont = *-BoldItalic,
    UprightFeatures = {SmallCapsFont = *SC-Regular},
    ItalicFeatures = {SmallCapsFont = *SC-Italic},
    BoldFeatures = {SmallCapsFont = *SC-Bold},
    BoldItalicFeatures = {SmallCapsFont = *SC-BoldItalic}]
\begin{document}

fi ff fl

\textit{fi ff fl}

\textbf{fi ff fl}

\textbf{\textit{fi ff fl}}

\textsc{Small caps}

\textsc{\textit{Small caps}}

\textsc{\textbf{Small caps}}

\textsc{\textbf{\textit{Small caps}}}

\end{document}

在此处输入图片描述

我不确定你为什么说 Alegreya 是.otf,因为与 TeX 一起分发的字体(来自 Google Fonts)是.ttf

另外,您说您需要fontspec访问冰岛语字符。这是不正确的,因为现代冰岛语的所有字符都包含在最常见的字体编码中T1

\documentclass{article}
\usepackage{Alegreya}
\usepackage[T1]{fontenc}
\begin{document}
\TH etta er \'islenskt m\'al, og \th a\dh\ er ekki skrifa\dh\ \'a \"o\dh ru m\'ali.
\end{document}

在此处输入图片描述

根据您的评论,我不知道为什么这会给您一个T1关于 Alegreya 未定义的错误。我认为该Alegreya软件包从来没有不带T1字体,所以这对我来说很奇怪。更新您的Alegreya软件包并重试。

相关内容