
Ich habe ein Problem mit LuaLaTeX (ab TL 2016: Version 0.95.0 (TeX Live 2016) (format=lualatex 2017.1.29)
), da es unpassende Ligaturen erstellt. Hier ist das MWE:
\documentclass[a4paper, 12pt]{article}
\def\czechSingleQuotes #1{‚#1‘} % UTF-8 chars for single quotes
\begin{document}
\czechSingleQuotes{Ahoj!}
\czechSingleQuotes{Nazdar?}
‚Hi!‘
\end{document}
Das Ergebnis sieht wie folgt aus:
Ich hoffe, die Leute von LuaTeX lesen das hier und unternehmen etwas dagegen. Hat jedoch jemand einen Vorschlag, wie man das Problem umgehen kann, bis es behoben ist? Übliche (in unterschiedlichen Situationen) Tricks helfen nicht, \def\czechSingleQuotes #1{‚{#1}{}\relax ‘}
führen beispielsweise zum gleichen Ergebnis.
Danke im Voraus.
Späteres EDIT:
Dies wurde in der neuesten Version luaotfload
(v2.8-fix-1) behoben, allerdings scheint der Fix etwas zu weit zu gehen – jetzt funktionieren nicht einmal die Standardligaturen zum Erstellen umgekehrter spanischer Ausrufe- oder Fragezeichen mehr, sodass Folgendes angezeigt wird:
\documentclass[a4paper, 12pt]{article}
\begin{document}
Hi?` % standard back apostrophe, no UTF-8
Hi!` % ditto
\end{document}
erstellt unterschiedliche Ausgaben in LuaTeX (Standard-Anführungszeichen „q“/„ex“, gefolgt von einem umgekehrten Anführungszeichen) und in XeTeX oder pdfTeX (spanische umgekehrte Anführungszeichen „q“/„ex“).
Antwort1
Wie David Carlisle in einem Kommentar angemerkt hat, werden die „klassischen“ TeX-Ligaturen für umgekehrte Frage- und Ausrufezeichen angewendet, obwohl „typografische“ Anführungszeichen und keine einfachen umgekehrten Anführungszeichen vorhanden sind.
Das Einfügen der Anweisung \kern0pt
vor dem schließenden Anführungszeichen ist ein wirksames Mittel. Beachten Sie, dass LuaTeX im Gegensatz zu pdfLaTEX {}
Elemente verwirft. Sie können daher keine {}
unsichtbare Trennung zwischen den Satzzeichen und den typografischen Anführungszeichen erstellen.
\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}
Antwort2
Die TeX-Ligaturen werden falsch angewendet. Sie können fontspec
sie deaktivieren, obwohl dies beispielsweise bedeutet, dass ---
keine Ligatur mehr an einen Halbgeviertstrich erfolgt.
\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}
Dies ist ein Luaotfload-Problem, wie dieser Plaintex-Test zeigt. Ich werde es an GitHub melden.
\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