// 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";
// 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
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();
}
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);
}
// 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");
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");
// 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";
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';
}
// 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")
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(), '=')) {
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_;
// 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)
#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
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();
#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");
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;
}
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?