引用维基百科:
在荷兰语中,coëfficiënt 之类的拼写是必需的,因为二合字母 oe 和 ie 通常分别代表单元音 [u] 和 [i]。但是,现在复合词更喜欢使用连字符,因此 zeeëend(海鸭)现在拼写为 zee-eend。
因为分音符用于表示两个字母不应读作二合字母,所以当以其他方式表示时(例如,在换行符处使用连字符),应将其删除。仍有一些情况需要使用连字符来删除分音符:'financiën' 应使用连字符连接'金融-金融'。
不幸的是,当使用
\usepackage{polyglossia}
\setdefaultlanguage{dutch}
单词连字符为“financi-ën”(当连字符发生在换行符处时)。 是否可以让 XeLaTeX/Polyglossia 在连字符发生时删除分音符?
Polyglossia 手册中特定于语言的选项没有提供解决此问题的方法。Babel 手册提到了\@trema
宏,并且确实在使用 pdfLaTeX 和 Babel 时,financi"en
在换行符处正确连字符(删除了分音符)。我确实发现这个丑陋的黑客,但我坚信一定有更好的解决方案。
答案1
如果全部ë
“ë” 只是这个意思,那么一个可能的解决方法是重新定义to be的含义"e
:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[dutch]{babel}
\usepackage{newunicodechar}
\makeatletter
\newunicodechar{ë}{\@trema e}
\makeatother
\begin{document}
financiën coëfficiënt zeeëend
\parbox{0pt}{\hspace{0pt}financiën coëfficiënt zeeëend}
\end{document}
这\parbox{0pt}{...}
是一个让 TeX 尽可能使用连字符的技巧。
使用 XeLaTeX 你可以能babel
以相同的方式使用,只需删除对fontenc
和 的调用inputenc
。
如果您想使用polyglossia
,那么这里有一种方法:
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{dutch}
\usepackage{newunicodechar}
\makeatletter
\providecommand{\allowhyphens}{%
\ifvmode\else\nobreak\hskip\z@skip\fi
}
\def\@trema#1{\allowhyphens\discretionary{-}{#1}{\"{#1}}\allowhyphens}
\newunicodechar{ë}{\@trema e}
\makeatother
\begin{document}
financiën coëfficiënt zeeëend
\parbox{0pt}{\hspace{0pt}financiën coëfficiënt zeeëend}
\end{document}