Ligaduras LuaTeX incorretas

Ligaduras LuaTeX incorretas

Estou com um problema com o LuaLaTeX (do TL 2016 Version 0.95.0 (TeX Live 2016) (format=lualatex 2017.1.29):) fazendo ligaduras inadequadas. Aqui vai o MWE:

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

\czechSingleQuotes{Nazdar?}

‚Hi!‘
\end{document}

O resultado é assim:

Bug no LuaLaTeX

Espero que o pessoal do LuaTeX esteja lendo aqui e faça algo a respeito. No entanto, alguém teria alguma sugestão de como contornar isso até que seja corrigido? Truques usuais (em situações diferentes) não ajudam, por exemplo, \def\czechSingleQuotes #1{‚{#1}{}\relax ‘}produzem o mesmo resultado.

Obrigado antecipadamente.

EDITAR mais tarde: Isso foi corrigido na versão mais recente luaotfload(v2.8-fix-1), mas a correção parece estar indo longe demais - agora até mesmo as ligaduras padrão para criar exclamações ou pontos de interrogação em espanhol revertidos não funcionam mais, então isso :

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

Hi!` % ditto
\end{document}

cria saídas diferentes em LuaTeX (marcas q./ex. padrão seguidas por uma crase) e em XeTeX ou pdfTeX (marcas q./ex. revertidas em espanhol).

Responder1

Como David Carlisle apontou no comentário, as ligaduras "clássicas" do TeX para perguntas invertidas e pontos de exclamação estão sendo aplicadas mesmo que citações "tipográficas", em vez de aspas básicas, estejam presentes.

Inserir a instrução \kern0ptantes da cotação de fechamento é uma solução eficaz. Observe que LuaTeX, diferentemente do pdfLaTEX, descarta {}elementos. Portanto, você não pode {}criar alguma separação invisível entre os sinais de pontuação e as aspas tipográficas.

insira a descrição da imagem aqui

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

Responder2

As ligaduras TeX estão sendo mal aplicadas, você pode usá- fontspeclas para desligá-las, embora, por exemplo, isso signifique que isso ---não seria mais ligado a um 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}

insira a descrição da imagem aqui


Este é um problema de luaotfload, como mostra este teste de texto simples, irei relatar ao github.

insira a descrição da imagem aqui

\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

informação relacionada