From: Juergen Spitzmueller Date: Sun, 21 Jan 2018 11:24:02 +0000 (+0100) Subject: Fix output of quote ligatures with TeX font LuaTeX X-Git-Tag: lyx-2.4.0dev-acb2ca7b~3989 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=5fce313ffccea424487c83037b16f72f4f48eeb9;p=features.git Fix output of quote ligatures with TeX font LuaTeX Fixes: #10988 --- diff --git a/src/insets/InsetQuotes.cpp b/src/insets/InsetQuotes.cpp index 7ae2d0ff9b..1613eb3d26 100644 --- a/src/insets/InsetQuotes.cpp +++ b/src/insets/InsetQuotes.cpp @@ -898,15 +898,21 @@ void InsetQuotes::latex(otexstream & os, OutputParams const & runparams) const if (!runparams.pass_thru) { // Guard against unwanted ligatures with preceding text char_type const lastchar = os.lastChar(); + // LuaTeX does not respect {} as ligature breaker by design, + // see https://tex.stackexchange.com/q/349725/19291 + docstring const nolig = + (runparams.flavor == OutputParams::LUATEX + || runparams.flavor == OutputParams::DVILUATEX) ? + from_ascii("\\/") : from_ascii("{}"); // !` ?` => !{}` ?{}` if (prefixIs(qstr, from_ascii("`")) && (lastchar == '!' || lastchar == '?')) - os << "{}"; + os << nolig; // ``` ''' ,,, <<< >>> // => `{}`` '{}'' ,{},, <{}<< >{}>> if (contains(from_ascii(",'`<>"), lastchar) && prefixIs(qstr, lastchar)) - os << "{}"; + os << nolig; } os << qstr;