]> git.lyx.org Git - features.git/commitdiff
Fix output of quote ligatures with TeX font LuaTeX
authorJuergen Spitzmueller <spitz@lyx.org>
Sun, 21 Jan 2018 11:24:02 +0000 (12:24 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Sun, 21 Jan 2018 11:24:02 +0000 (12:24 +0100)
Fixes: #10988
src/insets/InsetQuotes.cpp

index 7ae2d0ff9b08af7c801dc2e2c507c22b6c8f53a0..1613eb3d260cfbd618d388bafecd080ccab99dd4 100644 (file)
@@ -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;