使用多语设置连字

使用多语设置连字

如果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似乎没有任何效果。

在此处输入图片描述

相关内容