Ligaduras LuaTeX incorrectas

Ligaduras LuaTeX incorrectas

Tengo un problema con LuaLaTeX (de TL 2016:) Version 0.95.0 (TeX Live 2016) (format=lualatex 2017.1.29)que hace ligaduras inapropiadas. Aquí va el MWE:

\documentclass[a4paper, 12pt]{article}
\def\czechSingleQuotes #1{‚#1‘} % UTF-8 chars for single quotes
\begin{document}
\czechSingleQuotes{Ahoj!}

\czechSingleQuotes{Nazdar?}

‚Hi!‘
\end{document}

El resultado se ve así:

Error en LuaLaTeX

Espero que los chicos de LuaTeX lo lean aquí y hagan algo al respecto. Sin embargo, ¿alguien tendría alguna sugerencia sobre cómo solucionar este problema hasta que se solucione? Los trucos habituales (en diferentes situaciones) no ayudan, p. ej. \def\czechSingleQuotes #1{‚{#1}{}\relax ‘}producen el mismo resultado.

Gracias de antemano.

EDITAR más tarde: Esto se ha solucionado en la versión más reciente luaotfload(v2.8-fix-1), sin embargo, la solución parece ir demasiado lejos: ahora incluso las ligaduras estándar para crear signos de exclamación o interrogación en español invertidos ya no funcionan, por lo que esto :

\documentclass[a4paper, 12pt]{article}
\begin{document}
Hi?` % standard back apostrophe, no UTF-8

Hi!` % ditto
\end{document}

crea diferentes resultados en LuaTeX (marcas q./ex. estándar seguidas de una comilla invertida) y en XeTeX o pdfTeX (marcas q./ex. invertidas en español).

Respuesta1

Como David Carlisle ha señalado en un comentario, las ligaduras TeX "clásicas" para preguntas invertidas y signos de exclamación se están aplicando a pesar de que están presentes comillas "tipográficas", en lugar de comillas invertidas básicas.

Insertar la instrucción \kern0ptantes de la cotización de cierre es un remedio eficaz. Tenga en cuenta que LuaTeX, a diferencia de pdfLaTEX, descarta {}elementos. Por lo tanto, no puede utilizar {}para crear una separación invisible entre los signos de puntuación y las comillas tipográficas.

ingrese la descripción de la imagen aquí

\documentclass{article}
\def\czechSingleQuotes#1{‚#1\kern0pt‘} % UTF8 chars for single quotes
\begin{document}
% "classic" TeX ligatures applied even though "typographic" quotes are in use
? ?` ?‘ --- ! !` !‘ 

\czechSingleQuotes{Ahoj!}

\czechSingleQuotes{Nazdar?}

\czechSingleQuotes{Hi!!}
\end{document}

Respuesta2

Las ligaduras TeX se están aplicando mal, puedes usarlas fontspecpara desactivarlas, aunque por ejemplo eso significa que ---ya no se ligarían a un mdash.

\documentclass[a4paper, 12pt]{article}
\usepackage{fontspec}
\def\czechSingleQuotes #1{‚#1‘} % UTF-8 chars for single quotes
\defaultfontfeatures[\rmfamily]{}
\setmainfont{Latin Modern Roman}
\begin{document}
\czechSingleQuotes{Ahoj!}

\czechSingleQuotes{Nazdar?}

‚Hi!‘
\end{document}

ingrese la descripción de la imagen aquí


Este es un problema de luaotfload, como muestra esta prueba de texto sin formato, lo informaré a github.

ingrese la descripción de la imagen aquí

\input{luaotfload.sty}

\font\fa=[lmroman12-regular.otf]
\font\fb=[lmroman12-regular.otf]:+tlig

\fa 

U+2018 no tlig !‘

U+0060 no tlig !`

\fb

U+2018 tlig !‘

U+0060  tlig !`

\bye

información relacionada