为了使用 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 作为首选吗?