\emph{sty}
在答案中添加以下行访问 Junicode 连字符产生致命错误。
\documentclass{article}
\usepackage{fontspec}
\usepackage{filecontents}
\begin{filecontents*}{junicode.fea}
languagesystem DFLT dflt;
languagesystem latn dflt;
feature liga {
sub t y by t_y;
} liga;
\end{filecontents*}
\setmainfont[FeatureFile={junicode.fea}]{junicode}
\begin{document}
fifty
nifty
activity
\emph{sty}
\end{document}
问题似乎是字体的斜体部分不存在字形 t_y。该怎么办?
答案1
斜体字形 t_y 确实存在,但位于其私有使用区域。由于字形的命名方式,您需要为直立和斜体连字符分别定义:
\documentclass{article}
\usepackage{fontspec,filecontents}
\begin{filecontents*}{junicode.fea}
languagesystem DFLT dflt;
languagesystem latn dflt;
# upright ligatures
feature ulig {
sub \t \y by \t_y;
} ulig;
# italic ligatures
feature ilig {
sub \t \y by \uniEEDB;
} ilig;
\end{filecontents*}
\setmainfont{Junicode}[
FeatureFile={junicode.fea},
UprightFeatures={RawFeature=+ulig},
ItalicFeatures={RawFeature=+ilig}]
\begin{document}
fifty
nifty
activity
\emph{sty}
\end{document}