// in multilingual environments, the CJK tags have to be nested properly
data.cjk_nested = false;
- if (!bparams.useNonTeXFonts && (bparams.inputenc == "auto-legacy"
- || bparams.inputenc == "auto-legacy-plain")
- && data.par_language->encoding()->package() == Encoding::CJK
- && state->open_encoding_ != CJK && pit->isMultiLingual(bparams)) {
+ if (!bparams.useNonTeXFonts
+ && (bparams.inputenc == "auto-legacy"
+ || bparams.inputenc == "auto-legacy-plain")
+ && data.par_language->encoding()->package() == Encoding::CJK
+ && state->open_encoding_ != CJK && pit->isMultiLingual(bparams)) {
if (prev_par_language->encoding()->package() == Encoding::CJK) {
os << "\\begin{CJK}{"
<< from_ascii(data.par_language->encoding()->latexName())
OutputParams runparams = runparams_in;
runparams.isLastPar = (pit == pit_type(paragraphs.size() - 1));
- // We reinitialze par begin and end to be on the safe side
+ // We reinitialize par begin and end to be on the safe side
// with embedded inset as we don't know if they set those
// value correctly.
runparams.par_begin = 0;
if (runparams.encoding->package() == Encoding::CJK
&& par_lang != openLanguageName(state)
&& !par_lang.empty()) {
- string bc = use_polyglossia ?
- getPolyglossiaBegin(lang_begin_command, par_lang,
- par_language->polyglossiaOpts(),
- localswitch)
- : subst(lang_begin_command, "$$lang", par_lang);
- os << bc
+ os << subst(lang_begin_command, "$$lang", par_lang)
<< lang_command_termination;
if (using_begin_end)
pushLanguageName(par_lang, localswitch);
break;
}
case inputenc: {
+ // FIXME: If we are in an inset and the switch happened outside this inset,
+ // do not switch back at the end of the inset (bug #8479)
+ // The following attempt does not help with listings-caption in a CJK document:
+ // if (runparams_in.local_font != 0
+ // && runparams_in.encoding == runparams_in.local_font->language()->encoding())
+ // break;
os << "\\egroup";
state->open_encoding_ = none;
break;