多语连字

多语连字

我正在处理一份英语和希伯来语文档(使用polyglossia),并试图在希伯来语中任何可能出现连字符的地方添加连字符。根据本网站上的其他问题/答案,我试图使用hyphenat替换所有我想要连字符的希伯来语连字符\hyp{},但它拒绝连字符。请参阅下面的最小示例。手动为单个单词添加连字符规则是不切实际的,因为我将有数千个单词要输入。有没有办法强制 LaTeX 在希伯来语端允许连字符\hyp{}(或者更好的是,任意字符,例如希伯来语版本的连字符,U+05BE ־)?

\documentclass[10pt]{book}
\usepackage{polyglossia,hyphenat}

\setdefaultlanguage{english}
\setotherlanguages{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{Arial Unicode MS}

\newcommand{\h}[1]{\RL{\texthebrew{#1}\hfil}}
\newcommand{\hangparagentry}{\hangindent-0.5em \hangafter1 \leftskip 0.8em \parindent -0.5em}
\DeclareDocumentCommand{\entry}{ m o m }{\noindent\hangparagentry{\hspace{-.5em}\textbf{#1}\hspace{0.5cm}\hfill \h{#3\IfNoValueF{#2}{ \textenglish{\scriptsize{#2}}}}}\par}

\begin{document}

\flushright

\entry{earthquake meter earthquake meter earthquake meter}{דער ע֜רד\hyp{}צי֜טערניש\hyp{}מע֜סטער, \hyp{}ס}

\end{document}

答案1

hyphenat首先删除。如果您想要一个自由连字符,您可以定义\hyp为 do \discretionary{-}{}{},但这与使用 相同\-

如果您想要“breakable at”连字符,只需使用连字符。

\documentclass[10pt]{book}
\usepackage{polyglossia}

\setdefaultlanguage{english}
\setotherlanguages{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{Arial Unicode MS}

\newcommand{\h}[1]{\RL{\texthebrew{#1}\hfil}}
\newcommand{\hangparagentry}{\hangindent-0.5em \hangafter1 \leftskip 0.8em \parindent -0.5em}

\DeclareDocumentCommand{\entry}{ m o m }{%
  \noindent\hangparagentry{\hspace{-.5em}\textbf{#1}\hspace{0.5cm} %\hfill
  \h{\hspace{0pt}#3\IfNoValueF{#2}{ \textenglish{\scriptsize{#2}}}}}\par}

\begin{document}

\flushright

\entry{earthquake meter earthquake meter earthquake meter}{דער ע֜רד-צי֜טערניש-מע֜סטער, -ס}

\parbox{0pt}{\h{\hspace{0pt}דער ע֜רד-צי֜טערניש-מע֜סטער, -ס}}

\end{document}

最后的\parbox只是为了表明连字符是良好的换行点。

请注意,我将\hfill的定义改为\entry一个简单的空格。使用\hfill会让 TeX 认为最好不要使用连字符,这样才能得到更好的段落。

在此处输入图片描述

相关内容