如何仅对列表内的单词进行连字符连接?

如何仅对列表内的单词进行连字符连接?

我想阻止 TeX 进行自动连字,除非在给定的连字词列表中找到可以连字的单词,如下所示:

\hyphenation{
    be-rufen
    be-unruhigten
    Er-zieher
    geschicht-lichen
    Künstler-hand
    meister-haft
    Meister-haft
    Mittel-meer
    Vergangen-heit
    Vor-geschichte
    Vor-stellung
    Vor-stellungen
    wissen-schaftliche
    zu-getragen
}

\hyphenpenalty=10000完全阻止连字,这是我不想要的。不加载babel不会阻止连字,反而会使连字更糟。我想实现一个手动解决方案(仅 LuaTeX 也可以)。

答案1

下面的操作正是您想要的:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[hyphenmap=off]{babel}

\hyphenation{
    be-rufen
    be-unruhigten
    Er-zieher
    geschicht-lichen
    Künstler-hand
    meister-haft
    Meister-haft
    Mittel-meer
    Vergangen-heit
    Vor-geschichte
    Vor-stellung
    Vor-stellungen
    wissen-schaftliche
    zu-getragen
}

\usepackage{kantlipsum}

\begin{document}

berufen
beunruhigten
Erzieher
geschichtlichen
Künstlerhand
meisterhaft
Meisterhaft
Mittelmeer
Vergangenheit
Vorgeschichte
Vorstellung
Vorstellungen
wissenschaftliche
zugetragen

\kant
\end{document}

答案2

根据手册中的解释babel,要抑制连字符,你可以这样写:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\babelprovide[hyphenrules=+]{ngerman}

然后加:

\babelhyphenation{
    be-rufen
    be-unruhigten
    Er-zieher
    geschicht-lichen
    Künstler-hand
    meister-haft
    Meister-haft
    Mittel-meer
    Vergangen-heit
    Vor-geschichte
    Vor-stellung
    Vor-stellungen
    wissen-schaftliche
    zu-getragen
}

您仍然可以使用语言功能(翻译、日期、简写等),但会创建一个新的空连字模式集,由于它是空的,所以没有连字符,当然, 中的连字符除外\babelhyphenationluatex您甚至可以添加带有 的模式(这在或\babelpatterns中是不可能实现的)。pdftexxetex

相关内容