LuaTeX 和长破折号

LuaTeX 和长破折号

除非三破折号周围有空格,否则 LuaLaTeX 不会插入长破折号。使用 unicode 长破折号或明确使用宏时,它可以正常工作\textemdash

以下是 MWE:

\documentclass{article}

\begin{document}

\begin{enumerate}
  \item en--dash
  \item em---dash
  \item em --- dash space
\end{enumerate}
\begin{enumerate}
  \item en–dash unicode
  \item em—dash unicode
  \item em — dash space unicode
\end{enumerate}
\begin{enumerate}
  \item en\textendash{}dash macro
  \item em\textemdash{}dash macro
  \item em \textemdash{} dash space macro
\end{enumerate}

\end{document}

其结果为:

缺少破折号

使用 LuaTeX 版本 1.07.0 (TeX Live 2018) 编译

问题是:

我想知道为什么没有周围空格的长破折号连字符在 PDF 输出中不会呈现为长破折号。对我来说这似乎是一个错误。我该如何修复它?

答案1

您可以\automatichyphenmode=1在序言中添加:

\documentclass{article}
\automatichyphenmode=1
\begin{document}

\begin{enumerate}
  \item en--dash
  \item em---dash
  \item em --- dash space
\end{enumerate}
\begin{enumerate}
  \item en–dash unicode
  \item em—dash unicode
  \item em — dash space unicode
\end{enumerate}
\begin{enumerate}
  \item en\textendash{}dash macro
  \item em\textemdash{}dash macro
  \item em \textemdash{} dash space macro
\end{enumerate}

\end{document}

代码输出

答案2

更新 3/2019

该错误将在下一次 luaotfload 更新中得到解决

==============================================================

稍微扩展一下艾伦的回答:

在我看来,这显然是从上下文导入的字体加载器中的一个错误(如果你设置了,你会在上下文中看到相同的错误\automatichyphenmode=0)。只有使用以下方式渲染字体时才会发生这种情况mode=node

\documentclass{article}

\begin{document}
\font\test={file:lmroman10-regular.otf:mode=node;+tlig}
\test

A---B

\font\test={file:lmroman10-regular.otf:mode=base;+tlig}
\test

A---B
\end{document}

在此处输入图片描述

我认为问题的根源在于\automatichyphenmode=0,luatex 首先必须将最后一个连字符转换为可自由选择的字符,以允许换行:

A---B  ---> A--\discretionary{-}{}{-}B

并且设置好线路后必须将其转换回---,而这一步似乎失败了。

该问题已被报告,但尚不清楚是否会得到修复。

\automatichyphenmode=1在许多情况下,通过不将连字符转换为自由字符来避免此问题。因此,您应该意识到,在许多情况下,这会抑制换行:

\documentclass[parskip=half-]{scrartcl}
\begin{document}


\parbox[t]{1pt}{%
\textbf{0}

\automatichyphenmode=0
A-B

A--B

A---B

-begin

A!-B}
\hspace{2cm}
\parbox[t]{1pt}{\automatichyphenmode=1
\textbf{1}

A-B

A--B

A---B

-begin

A!-B}

\end{document}

在此处输入图片描述

相关内容