![双色连字](https://linux22.com/image/307359/%E5%8F%8C%E8%89%B2%E8%BF%9E%E5%AD%97.png)
我想教孩子读德语。为此,我想编写文本,其中不同的音节用两种不同的颜色标记,这是帮助学习较慢的学生阅读的常用方法。
我就是想不出一个简单的(甚至任何)解决方案。有人有主意吗?
答案1
正如@UlrikeFischer 在评论中提到的,您可能需要研究使用该showhyphens
包,它会在 LaTeX 已知的每个连字点处插入小红色标记。(要处理德语连字,请确保使用babel
选项加载包ngerman
-- 或大致等效的选项,例如naustrian
。)提供此类标记的效果不如为音节分配不同的颜色,但它应该对您的学生有所帮助。
我假设您知道,在德语中,并非所有音节边界都是有效的连字符断点。例如,如果一个单词以一个字母的音节开头和/或结尾(Abend、aber、Atem、Atom、Element、Elend、Idylle、ober、oder、über;Arie 等),则在第一个音节之后或最后一个音节之前不进行连字符连接。因此,即使单词“Arie”有三个音节,通常也不会使用连字符。如果对复合词进行连字符连接可能会改变其含义,则会出现在音节边界不进行连字符连接的另一种情况。例如,虽然可以在“In”之后对单词“Instinkt”进行连字符连接,但复合词“Urinstinkt”永远不应在第二个音节边界进行连字符连接。
以下是使用托马斯·曼小说第一段的示例托尼奥·克勒格。(当然,有些人可能会说,不仅是孩子,很多成年人也可能需要帮助来解析托马斯·曼写的任何作品……)只有“über”这个词缺少一个音节分隔标记,但这是意料之中的。
% !TEX TS-program = lualatex
\documentclass[ngerman]{article}
\usepackage{fontspec,babel,showhyphens}
\setlength\textwidth{8cm} % just for this example
\begin{document}
\raggedright % disables hyphenation at line ends
Die Wintersonne stand nur als armer Schein, milchig und matt hinter
Wolkenschichten über der engen Stadt. Naß und zugig war's in den
giebeligen Gassen, und manchmal fiel eine Art von weichem Hagel, nicht
Eis, nicht Schnee.
\end{document}
附录,以适应 OP 的后续评论,他/她愿意“改变”连字规则,允许在 aber、ober、über 和 Abend 等单词的首字母后使用连字。
我假设您将使用babel
选项加载包ngerman
。要让showhyphens
包在单词(例如 aber、ober、über 和 Abend)的首字母后插入小红色标记,请发出指令
\renewcommand\ngermanhyphenmins{12}
在序言中。(顺便说一下,默认设置为“22”。)然后,重新运行 LuaLaTeX 并检查所有单词是否仍然正确连字:一些单词可能仍然缺少有效的连字点,而其他单词现在可能显示无效的连字点。例如,在上面显示的 Tonio Kröger 摘录中,事实证明该单词über
在字母“ü”后没有连字。要纠正此问题,可以发出命令
\hyphenation{ü-ber}
(后加载中babel
)。有趣的是,aber、ober 和 Abend 这些词不需要额外的调整。
相反,如果修改前面的示例以包括小说的第二段,则会发现单词“Jupiterbart”具有第四个虚假的连字符点——在“b”和“a”之间。要更正此错误,可以发出另一个命令,即。\hyphenation{ju-pi-ter-bart}
这两个命令可以组合为
\hyphenation{ju-pi-ter-bart ü-ber}