如果babel
不知道如何连字符,我可以使用以下命令告知良好的换行符\babelhyphenation
:
\documentclass{article}
\usepackage[nynorsk]{babel}
\babelhyphenation[nynorsk]{fram-halds-skulen}
\begin{document}
framhaldsskulen
\end{document}
但是我该怎么做polyglossia
文档没有提到这一点。\babelhyphenation
显然不起作用:
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{nynorsk}
\babelhyphenation[nynorsk]{fram-halds-skulen}
\begin{document}
framhaldsskulen
\end{document}
! Undefined control sequence.
l.4 ^^I\babelhyphenation
[nynorsk]{fram-halds-skulen}
?
答案1
与往常一样,示例中的行故意写得过多,以强制使用连字符。
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{nynorsk}
\begin{hyphenrules}{nynorsk}
\hyphenation{fram-halds-skulen}
\end{hyphenrules}
\begin{document}
\parbox{0pt}{\hspace{0pt}framhaldsskulen}
\end{document}
\begin{hyphenrules}
如果您的文档中包含不同的语言并且想要为单个单词添加一些连字符规则,请使用相同的技巧。
可能更好的界面:
\documentclass{article}
\usepackage{polyglossia}
\makeatletter
\newcommand\sethyphenation[3][]{%
\begingroup
\ifcsundef{#2@loaded}
{\xpg@nogloss{#2}}
{\setkeys{#2}{#1}\xpg@set@language{#2}%
\hyphenation{#3}}%
\endgroup
}
\@onlypreamble\sethyphenation
\makeatother
\setmainlanguage{nynorsk}
\setotherlanguage[variant=british]{english}
\sethyphenation{nynorsk}{fram-halds-skulen}
\sethyphenation{english}{tes-t-word}
\begin{document}
\parbox{0pt}{\hspace{0pt}framhaldsskulen testword}
\selectlanguage{english}
\parbox{0pt}{\hspace{0pt}framhaldsskulen testword}
\end{document}
该\sethyphenation
命令还接受可选参数,例如variant=british
,但目前它不会有太大用处,因为相同的选项\selectlanguage
似乎没有任何效果。