这个很棒的软件包selnolig
支持英语或德语。我可能忽略了,但是是否可以更改文档中的语言选项?
最好的办法就是让它通过宏来改变polyglossia
。
请看我的 MWE 和两张图片!
% arara: lualatex
\documentclass{article}
\usepackage{polyglossia}
\usepackage{microtype}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\setdefaultlanguage[%
,babelshorthands=true
]{german}
\setotherlanguage[%
,variant = british
]{english}
\usepackage[%
%,german
,english
]{selnolig}
\begin{document}
\noindent Auftakt, halftime\\
\begin{english}
Auftakt, halftime
\end{document}
german
-选项已启用:
english
-选项已启用:
编辑
对于我的例子,可以加载两个选项并获得正确的结果。但我猜想规则之间会有冲突(目前想不出一个例子)。特别是对于未来版本,它还selnolig
提供连字符规则。所以我的问题也可能是:selnolig
当加载两个本地选项时,是否识别当前语言?babel
解决方案也很好,但我知道我应该polyglossia
与 LuaLaTeX 一起使用。
编辑2
从我的新图片中可以看出,我最后一个问题的答案是“否”。该包会忽略当前的语言环境,在整个文档中搜索德语/英语单词。
答案1
说实话,我不知道如何通过polyglossia
的宏和选项实现你的目标。我只会使用指令
\usepackage[german,english]{selnolig}
在序言中。这样做可以两套选择性连字符抑制规则。目前,该软件包不提供在加载一组语言规则后禁用它们的方法。
我知道该软件包的德语和英语连字抑制规则之间只有几个冲突。幸运的是,这些冲突只有broadf
在英语方面启用了相当迂腐的 [!] 选项时才会发生。例如,规则\nolig{ffing}{ff|ing}
——与 ruffing 和 bluffing 等词相关——会不恰当地破坏fi
德语单词fünffingrig
和中的连字Zwölffingerdarm
。为了克服这种冲突,可以提供额外的规则\keeplig{ffingrig}
和\keeplig{ffinger}
。(不用担心,selnolig 抑制和ff
中连字的规则是fünffingrig
Zwölffingerdarm
不是受到这些附加规则的影响。)另外:在 的未来版本中,\keeplig
我很可能会放弃该选项和相关的连字抑制规则。broadf
selnolig
该计划确实允许你暂停其运营本地通过\uselig{...}
指令或全球通过指令\selnoligoff
(并通过 恢复操作\selnoligon
)。但是,目前没有选项可以暂停(或重新启用)仅德语或仅英语相关规则——更不用说让这些规则的暂停和恢复取决于哪种语言是主要语言或默认语言。我很想从需要双语支持并认为这是一个需要解决的问题的用户那里得到任何实际反馈。