使用 TeX 将单词拆分成音节

使用 TeX 将单词拆分成音节

我对 TeX 一无所知,但在尝试弄清楚如何将英文单词拆分成音节时,我发现 TeX 排版系统有一个音节拆分算法。有没有一种简单的方法可以让我用它来将一堆单词拆分成音节,还是需要大幅提高 TeX 的学习难度?

答案1

TeX 长期以来一直采用非常复杂的算法来连字单词。然而,在英语中——以及我所熟悉的所有其他西方语言中——音节边界并允许连字点并不总是一致的。一些进一步的警告:

  • 正如 Barbara Beeton 在对 David Carlisle 的回答的评论中指出的那样,对于某些多音节词,TeX 可能会故意禁用连字符,因为这些词的发音和连字符都取决于单词的意图意义。例如,“record”一词的发音不同,并且根据其用作名词还是动词,其连字符也不同(rec-ord vs re-cord)。因此 TeX 被设置为不是用连字符连接诸如记录和记录之类的单词。如果作者确实需要用连字符连接此类单词,则他/她必须\-手动插入“自由”连字符点。

  • 默认情况下,TeX 的英语连字规则不会对四个字母/两个音节的单词(例如ontointoupto)进行连字,以“ly”结尾的单词(例如gladlysmoothly等)也不会对最后的两个字母的音节进行连字。要解决此默认设置,您可以设置\righthyphenmin2(或者,如果您使用babel,则发出命令\renewcommand\englishhyphenmins{22})。但这并不是万能的,因为当偏离 时,TeX 的连字规则并不可靠\righthyphenmin3

如果你满足于使用连字符点作为音节边界的不完美代理,我建议你加载显示连字符包——需要使用 Lua(La)TeX——以及巴别塔包。通过这样的设置,文档中所有识别的连字点都将显示小红标记。

例如,使用此设置排版您的帖子文本(参见下面的代码)会产生以下输出:

在此处输入图片描述

% !TEX TS-program = lualatex % be sure to run this under LuaLaTeX
\documentclass[USenglish]{article} % choose whatever "version" of English that suits your needs
\usepackage{babel,showhyphens}
\renewcommand\USenglishhyphenmins{22} 
\begin{document}
I know literally nothing about \TeX, but when trying to figure out how to split 
english words into syllables I saw that the \TeX\ typesetting system has a syllable 
breaking algorithm. Is there a simple way that I could use this to break a bunch of 
words into syllables, or would it require a sizable ascent up the \TeX\ learning 
curve?
\end{document}

答案2

这取决于你对音节的定义,以及你想用这些信息做什么

\showhyphens{syllable breaking algorithm}

生产

syl-la-ble break-ing al-go-rithm

在日志中(在一定程度上,可以在 TeX 中获取该信息),但“连字点”是否对应于“音节”取决于您是否使用这些术语的某些特定技术定义。“音节”通常与发音密切相关,而连字点也取决于其他因素,例如,英国英语连字模式与美国默认连字模式不同,部分原因是它们更注重单词的词源,即使这意味着与现代发音不同的断词(或者至少这是差异的合理化方法之一)。

相关内容