不一致的换行符而不是连字符

不一致的换行符而不是连字符

工作这个问题,我发现 XeLaTeX 对我的文本应用连字符不一致。正如您在 MWE 中看到的,在 之前的段落中\entry,未应用连字符,但在 之后的同一文本中,则\entry应用了连字符。我不明白 为什么\entry要改变这种连字符。明确地说,我希望始终应用连字符。

\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


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

\entry{anything}{\textenglish{blah}}

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

\end{document}

答案1

在 中\hangparagentry,您对段落的参数进行了大量更改。这些更改在 结束后仍然存在\entry。要使这些更改成为局部更改,您可以例如添加额外的花括号:

\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}

\flushright基本上,它是首先阻止连字符的 命令。\flushright设置\leftskip为防止连字符的灵活值。

正如 egreg 在评论中所建议的那样另一个问题,如果您想要左对齐和连字符,则可以使用:

\leftskip=0em plus 2em

答案2

该命令\h不适用于运行文本。

\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}}

\NewDocumentCommand{\hh}{O{}m}{%
  \begin{RTL}\begin{otherlanguage*}{hebrew}%
  #1#2\par
  \end{otherlanguage*}\end{RTL}%
}

\begin{document}


\hh[\sloppy]{דער ע֜רד-צי֜טערניש-מע֜סטער, -ס דער ע֜רד-צי֜טערניש-מע֜סטער, -ס דער
  ע֜רד-צי֜טערניש-מע֜סטער, -ס דער ע֜רד-צי֜טערניש-מע֜סטער, -ס דער
  ע֜רד-צי֜טערניש-מע֜סטער, -ס דער ע֜רד-צי֜טערניש-מע֜סטער,
 -ס דער ע֜רד-צי֜טערניש-מע֜סטער, -ס דער ע֜רד-צי֜טערניש-מע֜סטער, -ס}

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

\hh[\sloppy]{דער ע֜רד-צי֜טערניש-מע֜סטער, -ס דער ע֜רד-צי֜טערניש-מע֜סטער, -ס דער
  ע֜רד-צי֜טערניש-מע֜סטער, -ס דער ע֜רד-צי֜טערניש-מע֜סטער, -ס דער
  ע֜רד-צי֜טערניש-מע֜סטער, -ס דער ע֜רד-צי֜טערניש-מע֜סטער, -ס דער
  ע֜רד-צי֜טערניש-מע֜סטער, -ס דער ע֜רד-צי֜טערניש-מע֜סטער, -ס}

\end{document}

请注意\sloppy,否则段落中的一行将会过多。

在此处输入图片描述

相关内容