当我在 XeTeX 中定义自定义连字符时\hyphenation
,它似乎只适用于文本的主体,而不适用于环境内部的位\text<language>
(如\textgerman
)。
我知道我可以使用\-
但我宁愿有一个全球性的解决方案。
一个简单的例子:
\documentclass[draft]{article}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setmainlanguage[variant=british]{english}
\setotherlanguage{german}
\begin{document}
\hyphenation{bb-bbb}
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbb
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \textgerman{bbbbb}
\end{document}
结果是:
答案1
该方法hyphenrules
确实不适用于 Polyglossia(应该调查原因)。您可以采用另一种方式:
\newcommand{\sethyphenation}[3][]{%
\sbox0{\begin{otherlanguage}[#1]{#2}
\hyphenation{#3}\end{otherlanguage}}}
\sethyphenation{german}{bb-bbbb}
\sethyphenation[variant=british]{english}{bbb-bbb}
以下文档将显示不同的连字符bbbbbb
\documentclass[draft]{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage[variant=british]{english}
\setotherlanguage{german}
\newcommand{\sethyphenation}[3][]{%
\sbox0{\begin{otherlanguage}[#1]{#2}
\hyphenation{#3}\end{otherlanguage}}}
\sethyphenation{german}{bb-bbbb}
\sethyphenation[variant=british]{english}{bbb-bbb}
\begin{document}
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbb
\textgerman{aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbb}
\end{document}
语法\sethyphenation
是
\sethyphenation[<options>]{<language>}{<list of words separated by spaces>}