/// Updates font settings according to request
void Font::update(Font const & newfont,
- Language const * document_language,
+ Language const * default_lang,
bool toggleall)
{
bits_.update(newfont.fontInfo(), toggleall);
if (newfont.language() == language() && toggleall)
- if (language() == document_language)
+ if (language() == default_lang)
setLanguage(default_language);
else
- setLanguage(document_language);
+ setLanguage(default_lang);
else if (newfont.language() == reset_language)
- setLanguage(document_language);
+ setLanguage(default_lang);
else if (newfont.language() != ignore_language)
setLanguage(newfont.language());
}
OutputParams const & runparams,
Font const & base,
Font const & prev,
- bool const & non_inherit_inset,
- bool const & needs_cprotection) const
+ bool non_inherit_inset,
+ bool needs_cprotection) const
{
int count = 0;
&& language() != prev.language()) {
if (!language()->polyglossia().empty()) {
string tmp;
- if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- tmp += "\\begingroup\\catcode`\\^=7";
+ if (needs_cprotection)
tmp += "\\cprotect";
- }
tmp += "\\text" + language()->polyglossia();
if (!language()->polyglossiaOpts().empty()) {
tmp += "[" + language()->polyglossiaOpts() + "]";
// We need to strip the command for
// the pdf string, see #11813
string tmpp;
- if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
+ if (needs_cprotection)
tmpp = "\\cprotect";
- }
tmp = tmpp + "\\texorpdfstring{" + tmp + "}{}";
}
}
language() != prev.language()) {
if (language()->lang() == "farsi") {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
} else if (!isRightToLeft() &&
base.language()->lang() == "farsi") {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
count += 8;
} else if (language()->lang() == "arabic_arabi") {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
} else if (!isRightToLeft() &&
base.language()->lang() == "arabic_arabi") {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
// currently the remaining RTL languages are arabic_arabtex and hebrew
} else if (isRightToLeft() != prev.isRightToLeft()) {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
string const tmp =
subst(lyxrc.language_command_local,
"$$lang", language()->babel());
- if (needs_cprotection && !prefixIs(tmp, "\\begin{")) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
- os << "\\cprotect";
- count += 9;
- }
os << from_ascii(tmp);
count += tmp.length();
if (!lyxrc.language_command_end.empty())
count += strlen(LaTeXFamilySwitchNames[f.family()]) + 1;
} else {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
count += strlen(LaTeXSeriesSwitchNames[f.series()]) + 1;
} else {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
count += strlen(LaTeXShapeSwitchNames[f.shape()]) + 1;
} else {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
os << '}';
++count;
} else if (f.color() != Color_none) {
- if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
- os << "\\cprotect";
- count += 9;
- }
os << "\\textcolor{"
<< from_ascii(lcolor.getLaTeXName(f.color()))
<< "}{";
}
if (f.emph() == FONT_ON) {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
// \noun{} is a LyX special macro
if (f.noun() == FONT_ON) {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
// which prevents linebreaks (#8424, #8733)
if (f.underbar() == FONT_ON) {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
}
if (f.uuline() == FONT_ON) {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
}
if (f.strikeout() == FONT_ON) {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
}
if (f.xout() == FONT_ON) {
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
count += 15;
}
if (needs_cprotection) {
- if (contains(runparams.active_chars, '^'))
- // cprotect relies on ^ being on catcode 7
- os << "\\begingroup\\catcode`\\^=7";
os << "\\cprotect";
count += 9;
}
Font const & base,
Font const & next,
bool & needPar,
- bool const & closeLanguage) const
+ bool closeLanguage) const
{
int count = 0;
ostream & operator<<(ostream & os, Font const & font)
{
return os << font.bits_
- << " lang: " << (font.lang_ ? font.lang_->lang() : nullptr);
+ << " lang: " << (font.lang_ ? font.lang_->lang() : "");
}