LuaTeX y em guiones

LuaTeX y em guiones

LuaLaTeX no inserta guiones a menos que haya espacio alrededor del guión triple. Funciona bien cuando se usa un guión em Unicode o cuando se usa explícitamente la \textemdashmacro.

Aquí hay un 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}

Que produce:

faltan guiones

Compilado con LuaTeX, versión 1.07.0 (TeX Live 2018)

La pregunta es:

Me gustaría saber por qué las ligaduras de guiones sin espacios circundantes no se representan como guiones en la salida PDF. Me parece un error. ¿Cómo puedo arreglarlo?

Respuesta1

Puedes agregar \automatichyphenmode=1a tu preámbulo:

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

salida de código

Respuesta2

Actualización 3/2019

El error se resolverá con la próxima actualización de luaotfload.

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

Para ampliar un poco la respuesta de Alan:

En mi humilde opinión, es claramente un error en el cargador de fuentes importado desde el contexto (verá lo mismo en contexto si configura \automatichyphenmode=0). Solo sucede si las fuentes se representan con 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}

ingrese la descripción de la imagen aquí

La fuente del problema es en mi humilde opinión que con \automatichyphenmode=0, luatex al principio tiene que convertir el último guión en uno discrecional para permitir un salto de línea:

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

y una vez establecida la línea, se debe volver a convertir a ---, y este paso parece fallar.

Se ha informado del problema, pero no está claro si se solucionará.

\automatichyphenmode=1evita el problema al no convertir el guión en discrecional en varios casos. Por lo tanto, debe tener en cuenta el hecho de que esto suprime el salto de línea en varios casos:

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

ingrese la descripción de la imagen aquí

información relacionada