]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.cpp
typo
[lyx.git] / src / BufferParams.cpp
index 57c75762ede36a71d213fb316476b9a3b6306d22..fc4ac4a2c8d8a46b1de66773f2581ae5123b9d90 100644 (file)
@@ -1747,10 +1747,9 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
 
        // load CJK support package before font selection
        // (see autotests/export/latex/CJK/micro-sign_utf8-cjk-libertine.lyx)
-       if (!useNonTeXFonts && encoding().package() != Encoding::none
+       if (!useNonTeXFonts && encoding().package() != Encoding::none && inputenc != "utf8x"
                && (encoding().package() == Encoding::CJK || features.mustProvide("CJK"))) {
-               if (encoding().iconvName() == "UTF-8"
-                       && LaTeXFeatures::isAvailable("CJKutf8"))
+               if (inputenc == "utf8-cjk" || inputenc == "utf8")
                        os << "\\usepackage{CJKutf8}\n";
                else
                        os << "\\usepackage[encapsulated]{CJK}\n";
@@ -1780,6 +1779,12 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                }
        }
 
+       // Load textcomp and pmboxdraw before (lua)inputenc (#11454)
+       if (features.mustProvide("textcomp"))
+               os << "\\usepackage{textcomp}\n";
+       if (features.mustProvide("pmboxdraw"))
+               os << "\\usepackage{pmboxdraw}\n";
+
        // handle inputenc etc.
        writeEncodingPreamble(os, features);
 
@@ -2343,19 +2348,25 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
        }
 
        // ... but before biblatex (see #7065)
-       if (features.mustProvide("biblatex")
+       if ((features.mustProvide("biblatex")
+            || features.isRequired("biblatex-chicago"))
+           && !features.isProvided("biblatex-chicago")
            && !features.isProvided("biblatex-natbib")
            && !features.isProvided("natbib-internal")
            && !features.isProvided("natbib")
            && !features.isProvided("jurabib")) {
+               // The biblatex-chicago package has a differing interface
+               // it uses a wrapper package and loads styles via fixed options
+               bool const chicago = features.isRequired("biblatex-chicago");
                string delim = "";
                string opts;
                os << "\\usepackage";
                if (!biblatex_bibstyle.empty()
-                   && (biblatex_bibstyle == biblatex_citestyle)) {
+                   && (biblatex_bibstyle == biblatex_citestyle)
+                   && !chicago) {
                        opts = "style=" + biblatex_bibstyle;
                        delim = ",";
-               } else {
+               } else if (!chicago) {
                        if (!biblatex_bibstyle.empty()) {
                                opts = "bibstyle=" + biblatex_bibstyle;
                                delim = ",";
@@ -2387,7 +2398,10 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                        opts += delim + biblio_opts;
                if (!opts.empty())
                        os << "[" << opts << "]";
-               os << "{biblatex}\n";
+               if (chicago)
+                       os << "{biblatex-chicago}\n";
+               else
+                       os << "{biblatex}\n";
        }
 
 
@@ -3256,6 +3270,10 @@ void BufferParams::writeEncodingPreamble(otexstream & os,
                case Encoding::none:
                case Encoding::CJK:
                case Encoding::japanese:
+                       if (encoding().iconvName() != "UTF-8")
+                         // don't default to [utf8]{inputenc} with TeXLive >= 18
+                         os << "\\ifdefined\\UseRawInputEncoding\n"
+                                << "  \\UseRawInputEncoding\\fi\n";
                        break;
                case Encoding::inputenc:
                        // do not load inputenc if japanese is used
@@ -3272,6 +3290,11 @@ void BufferParams::writeEncodingPreamble(otexstream & os,
                        break;
                }
        }
+       if (inputenc == "default" || features.isRequired("japanese")) {
+               // don't default to [utf8]{inputenc} with TeXLive >= 18
+               os << "\\ifdefined\\UseRawInputEncoding\n";
+               os << "  \\UseRawInputEncoding\\fi\n";
+       }
 }