using support::contains;
using support::lowercase;
using support::prefixIs;
+using support::subst;
using support::suffixIs;
using support::rsplit;
using support::uppercase;
open_font = false;
}
+ // close babel's font environment before opening CJK.
+ if (!running_font.language()->babel().empty() &&
+ font.language()->encoding()->package() == Encoding::CJK) {
+ string end_tag = subst(lyxrc.language_command_end,
+ "$$lang",
+ running_font.language()->babel());
+ os << from_ascii(end_tag);
+ column += end_tag.length();
+ }
+
// Switch file encoding if necessary (and allowed)
if (!runparams.verbatim &&
- runparams.encoding->package() == Encoding::inputenc &&
- font.language()->encoding()->package() == Encoding::inputenc) {
+ runparams.encoding->package() == Encoding::none &&
+ font.language()->encoding()->package() == Encoding::none) {
std::pair<bool, int> const enc_switch = switchEncoding(os, bparams,
- runparams.moving_arg, *(runparams.encoding),
+ runparams, *(runparams.encoding),
*(font.language()->encoding()));
if (enc_switch.first) {
column += enc_switch.second;