使用包中的行标签引用lineno
可以防止行在标签相邻的单词中的明确连字符处断开。
考虑以下 MWE:
\documentclass{article}
\usepackage{lineno}
\begin{document}
\raggedright
\begin{linenumbers}
Here is a word-with-some-explicit-hyphens-that-should-allow-breaking-at-one-of-them-at-the-end-of-the-line.
\end{linenumbers}
\begin{linenumbers}
Here is a \linelabel{a}word-with-some-explicit-hyphens-that-should-allow-breaking-at-one-of-them-at-the-end-of-the-line.
\end{linenumbers}
\end{document}
使用pdflatex
我们得到以下输出:
使用lualatex
我们得到以下输出:
我尝试调查lineno
包中导致此问题的原因,以查看它是否是 luatex 问题的包问题。命令的结尾\linelabel
是\vadjust{\penalty-\@Mllbcodepen}
,其中惩罚定义为\mathchardef\@Mllbcodepen=11111
。当看到具有此值的惩罚时,包会修补输出例程并将行号写入辅助文件。删除会\vadjust{\penalty-\@Mllbcodepen}
导致 lualatex 下正确换行(尽管在这种情况下行号显然从未写入辅助文件),因此惩罚中的某些内容会阻止正确换行。但这是我的分析所能得到的。
我想知道如何将lineno
包及其\linelabel
命令与 lualatex 一起使用并且仍然具有预期的换行功能。