From a5c6e048e5c1588016f67cb0fe2d618caef2da6c Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnter=20Milde?= Date: Wed, 13 Mar 2019 11:31:25 +0100 Subject: [PATCH] Use CJKutf8 package if input encoding is "utf8" and a used language requires CJK. CJKutf8 now used also if a secondary language requires CJK. --- development/autotests/invertedTests | 5 ----- src/Buffer.cpp | 4 +++- src/OutputParams.cpp | 7 +++++-- src/OutputParams.h | 3 +++ src/output_latex.cpp | 7 ++----- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/development/autotests/invertedTests b/development/autotests/invertedTests index cc685c4aa7..e035ed008f 100644 --- a/development/autotests/invertedTests +++ b/development/autotests/invertedTests @@ -69,11 +69,6 @@ export/examples/(|es/)modernCV_lyx(16|20) export/export/latex/fa-OT1_pdf2 # CJK for multilingual documents: -# -# input-encoding "utf8" should work for documents using a CJK language -# also if the main language does not require CJK: -export/export/latex/CJK/en-de-el-ru-.*_utf8_pdf2 -# # some "language default" legacy encodings fail (missing fonts) export/export/latex/CJK/ko_default_pdf2 diff --git a/src/Buffer.cpp b/src/Buffer.cpp index a7e5d5ec21..22647351d4 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -1851,8 +1851,10 @@ Buffer::ExportStatus Buffer::writeLaTeXSource(otexstream & os, LaTeXFeatures features(*this, params(), runparams); validate(features); // This is only set once per document (in master) - if (!runparams.is_child) + if (!runparams.is_child) { runparams.use_polyglossia = features.usePolyglossia(); + runparams.use_CJK = features.mustProvide("CJK"); + } LYXERR(Debug::LATEX, " Buffer validation done."); bool const output_preamble = diff --git a/src/OutputParams.cpp b/src/OutputParams.cpp index d10bad490f..cb9d50c175 100644 --- a/src/OutputParams.cpp +++ b/src/OutputParams.cpp @@ -20,8 +20,9 @@ namespace lyx { OutputParams::OutputParams(Encoding const * enc) : flavor(LATEX), math_flavor(NotApplicable), nice(false), is_child(false), - moving_arg(false), intitle(false), inulemcmd(0), local_font(0), master_language(0), - encoding(enc), free_spacing(false), use_babel(false), use_polyglossia(false), + moving_arg(false), intitle(false), inulemcmd(0), local_font(0), + master_language(0), encoding(enc), free_spacing(false), + use_babel(false), use_polyglossia(false), use_CJK(false), use_indices(false), use_japanese(false), linelen(0), depth(0), exportdata(new ExportData), inDisplayMath(false), wasDisplayMath(false), inComment(false), openbtUnit(false), only_childbibs(false), @@ -38,6 +39,8 @@ OutputParams::OutputParams(Encoding const * enc) // OutputParams runparams(0); if (enc && enc->package() == Encoding::japanese) use_japanese = true; + if (enc && enc->package() == Encoding::CJK) + use_CJK = true; } diff --git a/src/OutputParams.h b/src/OutputParams.h index 8dbe00203d..ef7c16d117 100644 --- a/src/OutputParams.h +++ b/src/OutputParams.h @@ -159,6 +159,9 @@ public: */ bool use_polyglossia; + /// Do we use the CJK package? + bool use_CJK; + /** Are we generating multiple indices? */ bool use_indices; diff --git a/src/output_latex.cpp b/src/output_latex.cpp index 7cc5b73e22..d515ef4886 100644 --- a/src/output_latex.cpp +++ b/src/output_latex.cpp @@ -1417,11 +1417,8 @@ void latexParagraphs(Buffer const & buf, if (maintext && !is_child && !bparams.useNonTeXFonts && (bparams.encoding().package() == Encoding::CJK || (bparams.encoding().name() == "utf8" - && bparams.language->encoding()->package() == Encoding::CJK) - // FIXME: should test if any language requires CJK - // && LaTeXFeatures::mustProvide("CJK")) - // error: cannot call member function ‘bool lyx::LaTeXFeatures::mustProvide(const string&) const’ without object - )) { + && runparams.use_CJK)) + ) { docstring const cjkenc = bparams.encoding().iconvName() == "UTF-8" ? from_ascii("UTF8") : from_ascii(bparams.encoding().latexName()); os << "\\begin{CJK}{" << cjkenc -- 2.39.5