我正在使用 luatex 0.70.1 和 acro 1.2,并且有以下 MWE。
\documentclass{minimal}
\usepackage[ngerman]{babel}
\usepackage{acro}
\DeclareAcronym{DNA}{
short=DNA,
long=Desoxyribonukleinsäure
}
\begin{document}
Das ist ein sehr langer Satz und er wird an seinem Ende leider nicht richtig umgebrochen: DNA-Sequenzierung
Das ist ein sehr langer Satz und er wird an seinem Ende leider nicht richtig umgebrochen: \acs{DNA}-Sequenzierung
\end{document}
使用 pdftex 时文档看起来正常(两行都在破折号后换行),但使用 luatex 时第二行会延伸到页边距。我本来会发布图片,但由于这是我的第一篇帖子,系统不允许这样做。
答案1
这与 LuaTeX 使用的不同连字算法有关。我不太了解细节,但当我将DNA-Sequenzierung
和\acs{DNA}-Sequenzierung
放在一个框中并让 LuaTeX 显示它时,就会显示以下内容。
\sbox0{DNA-Sequenzierung}
\hbox(6.8872+1.94397)x88.4784, direction TLT
.\T1/cmr/m/n/10 D
.\T1/cmr/m/n/10 N
.\T1/cmr/m/n/10 A
.\T1/cmr/m/n/10 -
.\discretionary
.\T1/cmr/m/n/10 S
.\T1/cmr/m/n/10 e
.\T1/cmr/m/n/10 q
.\T1/cmr/m/n/10 u
.\T1/cmr/m/n/10 e
.\T1/cmr/m/n/10 n
.\T1/cmr/m/n/10 z
.\T1/cmr/m/n/10 i
.\T1/cmr/m/n/10 e
.\T1/cmr/m/n/10 r
.\T1/cmr/m/n/10 u
.\T1/cmr/m/n/10 n
.\T1/cmr/m/n/10 g
\sbox0{\acs{DNA}-Sequenzierung}
\hbox(6.8872+1.94397)x88.4784, direction TLT
.\hbox(6.8872+0.0)x22.63336, direction TLT
..\hbox(6.8872+0.0)x22.63336, direction TLT
..\hbox(6.8872+0.0)x0.0, glue set - 22.63336fil, direction TLT
...\glue 0.0 plus 1.0fil minus 1.0fil
...\T1/cmr/m/n/10 D
...\T1/cmr/m/n/10 N
...\T1/cmr/m/n/10 A
.\T1/cmr/m/n/10 -
.\T1/cmr/m/n/10 S
.\T1/cmr/m/n/10 e
.\T1/cmr/m/n/10 q
.\T1/cmr/m/n/10 u
.\T1/cmr/m/n/10 e
.\T1/cmr/m/n/10 n
.\T1/cmr/m/n/10 z
.\T1/cmr/m/n/10 i
.\T1/cmr/m/n/10 e
.\T1/cmr/m/n/10 r
.\T1/cmr/m/n/10 u
.\T1/cmr/m/n/10 n
.\T1/cmr/m/n/10 g
在第一种情况下,LuaTeX 会将一个\discretionary
项目放在连字符后面,而在第二种情况下则不会,可能是因为它认为连字符位于单词的开头(它位于不属于单词一部分的框后面)。
使用 pdfLaTeX 时不会发生这种情况,因为该\discretionary
项目是在后期插入的。
无论如何,使用babel
快捷方式可能会更好:
Das ist ein sehr langer Satz und er wird an seinem Ende leider
nicht richtig umgebrochen: DNA"=Sequenzierung
Das ist ein sehr langer Satz und er wird an seinem Ende leider
nicht richtig umgebrochen: \acs{DNA}"=Sequenzierung
这使