]> git.lyx.org Git - lyx.git/blobdiff - src/output_latex.cpp
installer: further preparation
[lyx.git] / src / output_latex.cpp
index 697a3b5028d3cb97a2263cb0e04f588c4ce6d033..4883d1b4f7a96329e52d99cad39a4545375fbed1 100644 (file)
@@ -573,7 +573,6 @@ void TeXOnePar(Buffer const & buf,
 
        if (style.pass_thru) {
                Font const outerfont = text.outerFont(pit);
-               runparams.local_font = &par.getFirstFontSettings(bparams);
                parStartCommand(par, os, runparams, style);
 
                par.latex(bparams, outerfont, os, runparams, start_pos, end_pos);
@@ -810,7 +809,6 @@ void TeXOnePar(Buffer const & buf,
                }
        }
 
-       runparams.local_font = &par.getFirstFontSettings(bparams);
        parStartCommand(par, os, runparams, style);
        Font const outerfont = text.outerFont(pit);
 
@@ -891,7 +889,7 @@ void TeXOnePar(Buffer const & buf,
                // not for ArabTeX
                && (par_language->lang() != "arabic_arabtex"
                    && outer_language->lang() != "arabic_arabtex")
-                    // have we opened and \L or \R environment?
+               // have we opened an \L or \R environment?
                && runparams.local_font != 0
                && runparams.local_font->isRightToLeft() != par_language->rightToLeft()
                // are we about to close the language?
@@ -1198,8 +1196,12 @@ pair<bool, int> switchEncoding(odocstream & os, BufferParams const & bparams,
 {
        Encoding const & oldEnc = *runparams.encoding;
        bool moving_arg = runparams.moving_arg;
-       if (!force && ((bparams.inputenc != "auto" && bparams.inputenc != "default")
-               || moving_arg))
+       // If we switch from/to CJK, we need to switch anyway, despite custom inputenc
+       bool const from_to_cjk = 
+               (oldEnc.package() == Encoding::CJK && newEnc.package() != Encoding::CJK)
+               || (oldEnc.package() != Encoding::CJK && newEnc.package() == Encoding::CJK);
+       if (!force && !from_to_cjk
+           && ((bparams.inputenc != "auto" && bparams.inputenc != "default") || moving_arg))
                return make_pair(false, 0);
 
        // Do nothing if the encoding is unchanged.