工作这个问题,我发现 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
,否则段落中的一行将会过多。