mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-09-20 06:49:56 +00:00
Do not repeatedly call main_font_encoding()
This method impacts on performance and we store the value anyway in the output params.
This commit is contained in:
parent
61b8afd893
commit
c2f2ba57f1
@ -1847,7 +1847,8 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
|
||||
|
||||
// if we use fontspec or newtxmath, we have to load the AMS packages here
|
||||
string const ams = features.loadAMSPackages();
|
||||
bool const ot1 = (main_font_encoding() == "default" || main_font_encoding() == "OT1");
|
||||
string const main_font_enc = features.runparams().main_fontenc;
|
||||
bool const ot1 = (main_font_enc == "default" || main_font_enc == "OT1");
|
||||
bool const use_newtxmath =
|
||||
theLaTeXFonts().getLaTeXFont(from_ascii(fontsMath())).getUsedPackage(
|
||||
ot1, false, false) == "newtxmath";
|
||||
@ -1887,7 +1888,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
|
||||
// set font encoding
|
||||
// non-TeX fonts use font encoding TU (set by fontspec)
|
||||
if (!useNonTeXFonts && !features.isProvided("fontenc")
|
||||
&& main_font_encoding() != "default") {
|
||||
&& main_font_enc != "default") {
|
||||
// get main font encodings
|
||||
vector<string> fontencs = font_encodings();
|
||||
// get font encodings of secondary languages
|
||||
@ -3235,12 +3236,13 @@ string const BufferParams::dvips_options() const
|
||||
|
||||
string const BufferParams::main_font_encoding() const
|
||||
{
|
||||
if (font_encodings().empty()) {
|
||||
vector<string> const fencs = font_encodings();
|
||||
if (fencs.empty()) {
|
||||
if (ascii_lowercase(language->fontenc(*this)) == "none")
|
||||
return "none";
|
||||
return "default";
|
||||
}
|
||||
return font_encodings().back();
|
||||
return fencs.back();
|
||||
}
|
||||
|
||||
|
||||
@ -3255,9 +3257,10 @@ vector<string> const BufferParams::font_encodings() const
|
||||
if (!doc_fontenc.empty())
|
||||
// If we have a custom setting, we use only that!
|
||||
return getVectorFromString(doc_fontenc);
|
||||
if (!language->fontenc(*this).empty()
|
||||
string const lfe = language->fontenc(*this);
|
||||
if (!lfe.empty()
|
||||
&& ascii_lowercase(language->fontenc(*this)) != "none") {
|
||||
vector<string> fencs = getVectorFromString(language->fontenc(*this));
|
||||
vector<string> fencs = getVectorFromString(lfe);
|
||||
for (auto & fe : fencs) {
|
||||
if (find(fontencs.begin(), fontencs.end(), fe) == fontencs.end())
|
||||
fontencs.push_back(fe);
|
||||
@ -3509,7 +3512,8 @@ string const BufferParams::loadFonts(LaTeXFeatures & features) const
|
||||
}
|
||||
|
||||
// Tex Fonts
|
||||
bool const ot1 = (main_font_encoding() == "default" || main_font_encoding() == "OT1");
|
||||
bool const ot1 = (features.runparams().main_fontenc == "default"
|
||||
|| features.runparams().main_fontenc == "OT1");
|
||||
bool const dryrun = features.runparams().dryrun;
|
||||
bool const complete = (fontsSans() == "default" && fontsTypewriter() == "default");
|
||||
bool const nomath = (fontsMath() != "auto");
|
||||
|
@ -783,8 +783,8 @@ bool LaTeXFeatures::isProvided(string const & name) const
|
||||
if (params_.useNonTeXFonts)
|
||||
return params_.documentClass().provides(name);
|
||||
|
||||
bool const ot1 = (params_.main_font_encoding() == "default"
|
||||
|| params_.main_font_encoding() == "OT1");
|
||||
bool const ot1 = (runparams().main_fontenc == "default"
|
||||
|| runparams().main_fontenc == "OT1");
|
||||
bool const complete = (params_.fontsSans() == "default"
|
||||
&& params_.fontsTypewriter() == "default");
|
||||
bool const nomath = (params_.fontsMath() == "default");
|
||||
@ -1315,8 +1315,8 @@ string const LaTeXFeatures::getPackages() const
|
||||
// if fontspec or newtxmath is used, AMS packages have to be loaded
|
||||
// before fontspec (in BufferParams)
|
||||
string const amsPackages = loadAMSPackages();
|
||||
bool const ot1 = (params_.main_font_encoding() == "default"
|
||||
|| params_.main_font_encoding() == "OT1");
|
||||
bool const ot1 = (runparams().main_fontenc == "default"
|
||||
|| runparams().main_fontenc == "OT1");
|
||||
bool const use_newtxmath =
|
||||
theLaTeXFonts().getLaTeXFont(from_ascii(params_.fontsMath())).getUsedPackage(
|
||||
ot1, false, false) == "newtxmath";
|
||||
@ -1584,15 +1584,15 @@ TexString LaTeXFeatures::getMacros() const
|
||||
macros << lyxZWSP_def << '\n';
|
||||
|
||||
if (!usePolyglossia() && mustProvide("textgreek")) {
|
||||
// ensure LGR font encoding is defined also if fontenc is not loaded by LyX
|
||||
if (params_.main_font_encoding() == "default")
|
||||
// ensure LGR font encoding is defined also if fontenc is not loaded by LyX
|
||||
if (runparams().main_fontenc == "default")
|
||||
macros << textgreek_LGR_def;
|
||||
macros << textgreek_def << '\n';
|
||||
}
|
||||
|
||||
if (!usePolyglossia() && mustProvide("textcyrillic")) {
|
||||
// ensure T2A font encoding is set up also if fontenc is not loaded by LyX
|
||||
if (params_.main_font_encoding() == "default")
|
||||
if (runparams().main_fontenc == "default")
|
||||
macros << textcyr_T2A_def;
|
||||
macros << textcyr_def << '\n';
|
||||
}
|
||||
|
@ -1240,7 +1240,7 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
|
||||
// non-standard font encoding. If we are using such a language,
|
||||
// we do not output special T1 chars.
|
||||
if (!runparams.inIPA && !running_font.language()->internalFontEncoding()
|
||||
&& !runparams.isFullUnicode() && bparams.main_font_encoding() == "T1"
|
||||
&& !runparams.isFullUnicode() && runparams.main_fontenc == "T1"
|
||||
&& latexSpecialT1(c, os, i, column))
|
||||
return;
|
||||
// NOTE: "fontspec" (non-TeX fonts) sets the font encoding to "TU" (untill 2017 "EU1" or "EU2")
|
||||
@ -1532,7 +1532,7 @@ void Paragraph::Private::validate(LaTeXFeatures & features) const
|
||||
if (c == 0x0022) {
|
||||
if (features.runparams().isFullUnicode() && bp.useNonTeXFonts)
|
||||
features.require("textquotedblp");
|
||||
else if (bp.main_font_encoding() != "T1"
|
||||
else if (features.runparams().main_fontenc != "T1"
|
||||
|| ((&owner_->getFontSettings(bp, i))->language()->internalFontEncoding()))
|
||||
features.require("textquotedbl");
|
||||
} else if (ci.textfeature() && contains(ci.textpreamble(), '=')) {
|
||||
|
@ -639,11 +639,8 @@ InsetQuotes::InsetQuotes(Buffer * buf, char_type c, QuoteLevel level,
|
||||
bool dynamic = false;
|
||||
if (buf) {
|
||||
global_style_ = buf->masterBuffer()->params().quotes_style;
|
||||
fontenc_ = buf->masterBuffer()->params().main_font_encoding();
|
||||
dynamic = buf->masterBuffer()->params().dynamic_quotes;
|
||||
fontspec_ = buf->masterBuffer()->params().useNonTeXFonts;
|
||||
} else {
|
||||
fontenc_ = "OT1";
|
||||
}
|
||||
if (style.empty())
|
||||
style_ = dynamic ? QuoteStyle::Dynamic : global_style_;
|
||||
@ -891,7 +888,7 @@ void InsetQuotes::latex(otexstream & os, OutputParams const & runparams) const
|
||||
// Use internal commands in headings with hyperref
|
||||
// (ligatures not featured in PDF strings)
|
||||
qstr = quoteparams.getLaTeXQuote(quotechar, "int", rtl_);
|
||||
} else if (fontenc_ == "T1"
|
||||
} else if (runparams.main_fontenc == "T1"
|
||||
&& !runparams.local_font->language()->internalFontEncoding()) {
|
||||
// Quotation marks for T1 font encoding
|
||||
// (using ligatures)
|
||||
@ -905,7 +902,7 @@ void InsetQuotes::latex(otexstream & os, OutputParams const & runparams) const
|
||||
#else
|
||||
} else if ((!runparams.use_babel
|
||||
#endif
|
||||
|| (fontenc_ != "T1" && fontenc_ != "OT1"))
|
||||
|| (runparams.main_fontenc != "T1" && runparams.main_fontenc != "OT1"))
|
||||
|| runparams.isFullUnicode()) {
|
||||
// Standard quotation mark macros
|
||||
// These are also used by babel
|
||||
@ -1008,7 +1005,6 @@ void InsetQuotes::updateBuffer(ParIterator const & it, UpdateType /* utype*/, bo
|
||||
pass_thru_ = it.paragraph().isPassThru();
|
||||
context_lang_ = font.language()->code();
|
||||
internal_fontenc_ = font.language()->internalFontEncoding();
|
||||
fontenc_ = bp.main_font_encoding();
|
||||
global_style_ = bp.quotes_style;
|
||||
fontspec_ = bp.useNonTeXFonts;
|
||||
rtl_ = font.isRightToLeft();
|
||||
@ -1028,7 +1024,8 @@ void InsetQuotes::validate(LaTeXFeatures & features) const
|
||||
#else
|
||||
if (!features.useBabel()
|
||||
#endif
|
||||
&& !features.runparams().isFullUnicode() && fontenc_ != "T1") {
|
||||
&& !features.runparams().isFullUnicode()
|
||||
&& features.runparams().main_fontenc != "T1") {
|
||||
switch (type) {
|
||||
case 0x201a:
|
||||
features.require("quotesinglbase");
|
||||
@ -1065,7 +1062,7 @@ void InsetQuotes::validate(LaTeXFeatures & features) const
|
||||
case 0x0022: {
|
||||
if (features.runparams().isFullUnicode() && fontspec_)
|
||||
features.require("textquotedblp");
|
||||
else if (fontenc_ != "T1" || internal_fontenc_)
|
||||
else if (features.runparams().main_fontenc != "T1" || internal_fontenc_)
|
||||
features.require("textquotedbl");
|
||||
break;
|
||||
}
|
||||
|
@ -200,8 +200,6 @@ private:
|
||||
QuoteLevel level_ = QuoteLevel::Primary;
|
||||
///
|
||||
QuoteStyle global_style_ = QuoteStyle::English;
|
||||
/// Current font encoding
|
||||
std::string fontenc_;
|
||||
/// Code of the contextual language
|
||||
std::string context_lang_;
|
||||
/// Is this in a pass-thru context?
|
||||
|
Loading…
Reference in New Issue
Block a user