我正在使用Baskervaldx
带有 LuaLaTeX 的字体fontspec
,但我无法使用其中任何一个来抑制“ae”和“oe”连字
\defaultfontfeatures{Ligatures={NoCommon,NoContextual,NoHistoric,NoDiscretionary}}
或microtype
和\DisableLigatures[a]{encoding = *, family = * }
(实际上,我不知道这是否是正确的方法。)
\usepackage{Baskervaldx}
有效,\usepackage{selnolig} \nolig{ae}{a|e} \nolig{oe}{o|e}
。
有没有办法使用fontspec
或抑制这些连字符microtype
?
不起作用的 MWE:
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={NoCommon,NoContextual, NoHistoric,NoDiscretionary},
Numbers={OldStyle,Proportional}}
\setmainfont{baskervaldx}
\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\begin{document}
Michael doesn’t finalize.
\end{document}
这个也不起作用:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{baskervaldx}
\usepackage{microtype}
\DisableLigatures[a]{encoding = *, family = * }
\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\begin{document}
Michael doesn’t finalize.
\end{document}
接下来的两个 MWE 确实有效:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{baskervaldx}
\usepackage{selnolig}
\nolig{ae}{a|e}
\nolig{oe}{o|e}
\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\begin{document}
Michael doesn’t finalize.
\end{document}
\documentclass{article}
\usepackage{Baskervaldx}
\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\begin{document}
Michael doesn’t finalize.
\end{document}
答案1
正如预期的那样,Baskervaldx 在功能中定义了它的 f 连字liga
,在中定义了它的 'ct'、'sp' 和 'st' 连字dlig
;奇怪的是,它将 'ae' 和 'oe' 连字(包括大写和小写)放在中rlig
,即必需连字,默认情况下处于启用状态。这几乎总是一个问题,即使在这些连字有时是强制性的语言中也是如此。
除了找到更好的 Baskerville 之外,解决方案是关闭必需的连字。这将保留您的 f 连字,当您需要“æ”或“œ”时,您仍然可以通过键入它(使用您的文本编辑器或操作系统允许的任何方法)或使用\ae
、\oe
等来获得它:
\documentclass{article}
\usepackage{fontspec,polyglossia}
\setmainfont{baskervaldx}[
Ligatures=NoRequired,
Numbers={OldStyle,Proportional}]
\setdefaultlanguage[variant=american]{english}
\begin{document}
Michael hasn’t finalized his translation of the \textit{De cælo.}
\end{document}