以下代码不会创建预期的连字(请注意,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=Rare
、Historical
和/或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
软件包并重试。