Fix a lang edgecase

This commit is contained in:
Juergen Spitzmueller 2020-08-15 12:28:38 +02:00
parent 0a2fce358d
commit dc4b11b0e9

View File

@ -1058,13 +1058,15 @@ void Paragraph::Private::latexInset(BufferParams const & bparams,
Font const copy_font(running_font); Font const copy_font(running_font);
basefont = owner_->getLayoutFont(bparams, outerfont); basefont = owner_->getLayoutFont(bparams, outerfont);
running_font = basefont; running_font = basefont;
if (!closeLanguage) if (!closeLanguage && !lang_switched_at_inset)
running_font.setLanguage(copy_font.language()); running_font.setLanguage(copy_font.language());
// For these, we use switches, so they should be taken as // For these, we use switches, so they should be taken as
// base inside the inset. // base inside the inset.
basefont.fontInfo().setSize(copy_font.fontInfo().size()); basefont.fontInfo().setSize(copy_font.fontInfo().size());
basefont.fontInfo().setFamily(copy_font.fontInfo().family()); basefont.fontInfo().setFamily(copy_font.fontInfo().family());
basefont.fontInfo().setSeries(copy_font.fontInfo().series()); basefont.fontInfo().setSeries(copy_font.fontInfo().series());
if (!closeLanguage && lang_switched_at_inset)
basefont.setLanguage(copy_font.language());
// Now re-do font changes in a way needed here // Now re-do font changes in a way needed here
// (using switches with multi-par insets) // (using switches with multi-par insets)
InsetText const * textinset = inset->asInsetText(); InsetText const * textinset = inset->asInsetText();
@ -1074,7 +1076,7 @@ void Paragraph::Private::latexInset(BufferParams const & bparams,
: false; : false;
unsigned int count2 = basefont.latexWriteStartChanges(os, bparams, unsigned int count2 = basefont.latexWriteStartChanges(os, bparams,
runparams, running_font, runparams, running_font,
basefont, true, running_font, true,
cprotect); cprotect);
column += count2; column += count2;
if (count2 == 0 && (lang_closed || lang_switched_at_inset)) if (count2 == 0 && (lang_closed || lang_switched_at_inset))
@ -2815,6 +2817,10 @@ void Paragraph::latex(BufferParams const & bparams,
basefont.fontInfo().setSize(save_basefont.fontInfo().size()); basefont.fontInfo().setSize(save_basefont.fontInfo().size());
basefont.fontInfo().setFamily(save_basefont.fontInfo().family()); basefont.fontInfo().setFamily(save_basefont.fontInfo().family());
basefont.fontInfo().setSeries(save_basefont.fontInfo().series()); basefont.fontInfo().setSeries(save_basefont.fontInfo().series());
if (!closeLanguage && lang_switched_at_inset) {
basefont.setLanguage(save_basefont.language());
running_font.setLanguage(save_runningfont.language());
}
} }
if (incremented) if (incremented)
--parInline; --parInline;