关闭 LuaLaTeX 中的连字

关闭 LuaLaTeX 中的连字

为了使用 LuaLaTeX 关闭整个文档的连字,我在序言中加入了以下几行:

\usepackage{fontspec}   
\defaultfontfeatures{Ligatures={NoRequired, NoCommon, NoContextual}}

但是,输出文档仍然显示连字符。我还尝试了这个命令:

\usepackage{fontspec}   
\defaultfontfeatures{
  Ligatures={-Required, +NoRequired, -Common, +NoCommon, -Contextual, +NoContextual,
             -TeX, -Rare, -Historic}}

但结果是一样的。

知道为什么关闭连字符不起作用吗?

编辑:我的问题的答案隐藏在 Patrick 的回答中的一条评论中:必须通过fontspec之后的命令之一明确选择字体,才能使Ligatures设置生效。例如:

\usepackage{fontspec} 
\defaultfontfeatures{Ligatures={NoRequired, NoCommon, NoContextual}}
\setmainfont{Latin Modern Roman}

答案1

您有三种选择来指示 fontspec 抑制连字:

首先是命名对下一次字体分配有效的默认字体特征:

\documentclass{article}
\usepackage{fontspec}
\begin{document}
\defaultfontfeatures{Ligatures={NoRequired, NoCommon, NoContextual}}
\setmainfont{Linux Libertine O}
I eat  -- the fluffiest `? ``fish''.
\end{document}

您还可以向当前字体添加字体功能:

\documentclass{article}
\usepackage{fontspec}
\begin{document}
\setmainfont{Linux Libertine O}
\addfontfeatures{Ligatures={NoRequired, NoCommon, NoContextual}}
I eat  -- the fluffiest `? ``fish''.
\end{document}

或者您可以指示 fontspec 加载具有给定功能的字体:

\documentclass{article}
\usepackage{fontspec}
\begin{document}
\setmainfont[Ligatures={NoRequired, NoCommon, NoContextual}]{Linux Libertine O}
I eat  -- the fluffiest `? ``fish''.
\end{document}

所有这些导致:

在此处输入图片描述

答案2

如果你只想抑制“坏”连字符,你可以选择塞尔诺利格包。请注意,必须使用字体规格然后打包。

英语:

\usepackage[english]{selnolig}

德语:

\usepackage[ngerman]{selnolig}

更多信息:新的软件包 selnolig,可以自动抑制印刷连字

关于 fontspec 和 lualatex 的讨论:如果使用 lualatex,我们可以不再推荐 fontspec 作为首选吗?

相关内容