多语种中不再定义连字符

多语种中不再定义连字符

我用过hyphenrules在我使用的语言中添加自定义连字符。我曾经问过如何做到这一点,接受的答案(下面的 MWE)不再编译,但给出错误消息Environment hyphenrules undefined

所以问题是,polyglossia现在应该如何添加特定于语言的自定义连字规则?我正在使用 1.49 版polyglossia

\documentclass{article}

\usepackage{polyglossia}
\setmainlanguage{nynorsk}

\begin{hyphenrules}{nynorsk}
\hyphenation{fram-halds-skulen}
\end{hyphenrules}

\begin{document}

\parbox{0pt}{\hspace{0pt}framhaldsskulen}

\end{document}

编辑

下列的Ulrike 的评论,我尝试遵循多语文献,其中说我们可以使用该命令\xpghyphenation。但是,这样做只会给我错误消息Undefined control sequence. l.6 \xpghyphenation

\documentclass{article}

\usepackage{polyglossia}
\setmainlanguage{nynorsk}

\xpghyphenation{nynorsk}{fram-halds-skulen}

\begin{document}

\parbox{0pt}{\hspace{0pt}framhaldsskulen}

\end{document}

答案1

在较新版本的 中,该环境hyphenrules已弃用polyglossia。要添加特定于语言的连字符,请使用\pghyphenation[(options)]{(language)}{(hyphenations)}。当前文档(v. 1.49)在第 5.1 节中错误地指出该命令是\xpghyphenation。这是一个失误尚未\pghyphenation得到纠正。

\documentclass{article}

\usepackage{polyglossia}
\setmainlanguage[variant = nynorsk]{norwegian}

\pghyphenation[variant = nynorsk]{norwegian}{fram-halds-skulen}

\begin{document}

\parbox{0pt}{\hspace{0pt}framhaldsskulen}

\end{document}

在此处输入图片描述

答案2

从 TeX 原始角度来看,仅当原始寄存器设置为所选语言时,才需要使用\heyphenation原始。因此,您可以这样写:\language

{\language=lang.number \hyphenation{fram-halds-skulen}}

一个小问题是,如果你使用 LaTeX,那么你不知道 lang.number,因为它是由宏自动生成的。你可以\language使用 LaTeX 的命令设置寄存器:

\selectlanguage{nynorsk}

此命令\language=lang.number在内部执行。因此,您可以\hyphenation通过以下方式使用原语:

{\selectlanguage{nynorsk} \hyphenation{fram-halds-skulen}}

当然,您可以为所有声明的语言提供连字符例外:

 {\selectlanguage{nynorsk} \hyphenation{fram-halds-skulen}}
 {\selectlanguage{czech}   \hyphenation{výjme-čné dě-lení}}
 ...

为了简化:如果您使用 csplain 或 OpTeX 格式,那么您就知道您的语言的编号,请参阅hyphen.lan文件。Unicode 中的挪威尼诺斯克语有 136 种语言。因此,您只能在原始级别执行任务:

{\language=136 \hyphenation{fram-halds-skulen}}

答案3

这个hyphenrules技巧是黑客的。自 1.45 版以来,polyglossia有一种特定的方法来定义特定于语言的连字异常,即

\pghyphenation[<options>]{<language>}{<exception list>}

<options>为特定语言设置变体的。<exception list>的语法与 的参数相同\hyphenation,因此在选定的断点处用空格和连字符分隔单词。

从 1.50a 版开始,关于连字例外的文档是不准确的,因为它声称\hyphenation对所有语言都适用,但事实并非如此:例外仅适用于当前的在序言中,该语言仍然是语言 0(美式英语)。

因此\hyphenation实际上永远不应该使用(除非主要语言是美式英语)。

hyphenrules环境尚未被弃用,但它只能在文档主体中使用。另一方面,从 1.50a 版开始,该hyphenrules技巧仍然有效。这并不意味着应该使用它,但使用它的旧文档将有效。

\documentclass{article}

\usepackage{polyglossia}
\setmainlanguage[variant=nynorsk]{norwegian}

\pghyphenation[variant=nynorsk]{norwegian}{fram-halds-skulen}

\begin{document}

\parbox{0pt}{\hspace{0pt}framhaldsskulen}

\end{document}

在此处输入图片描述

相关内容