X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFonts.cpp;h=8cd51139c1576f178bdcdb44a966bfccf79713c7;hb=f5f2f5b7eaca90ba9bbddee3cea54708c9b98a36;hp=676179f5a5f7fa436e1ee808d54e92049ab761a8;hpb=d1a77eadc1cf16ee3e0bd5008c6a8f74f3087442;p=lyx.git diff --git a/src/LaTeXFonts.cpp b/src/LaTeXFonts.cpp index 676179f5a5..8cd51139c1 100644 --- a/src/LaTeXFonts.cpp +++ b/src/LaTeXFonts.cpp @@ -19,6 +19,7 @@ #include "support/convert.h" #include "support/debug.h" +#include "support/docstream.h" #include "support/FileName.h" #include "support/filetools.h" #include "support/gettext.h" @@ -303,12 +304,22 @@ string const LaTeXFont::getLaTeXCode(bool dryrun, bool ot1, bool complete, bool os << altFont(osffont_).getLaTeXCode(dryrun, ot1, complete, sc, osf, nomath, scale); if (!preamble_.empty()) - os << preamble_; + os << to_utf8(preamble_); return os.str(); } +bool LaTeXFont::hasFontenc(string const & name) const +{ + for (auto const & fe : fontenc_) { + if (fe == name) + return true; + } + return false; +} + + bool LaTeXFont::readFont(Lexer & lex) { enum LaTeXFontTags { @@ -316,6 +327,7 @@ bool LaTeXFont::readFont(Lexer & lex) LF_COMPLETE_FONT, LF_END, LF_FAMILY, + LF_FONTENC, LF_GUINAME, LF_NOMATHFONT, LF_OSFDEFAULT, @@ -339,6 +351,7 @@ bool LaTeXFont::readFont(Lexer & lex) { "completefont", LF_COMPLETE_FONT }, { "endfont", LF_END }, { "family", LF_FAMILY }, + { "fontencoding", LF_FONTENC }, { "guiname", LF_GUINAME }, { "nomathfont", LF_NOMATHFONT }, { "osfdefault", LF_OSFDEFAULT }, @@ -372,7 +385,7 @@ bool LaTeXFont::readFont(Lexer & lex) error = true; continue; - default: + default: break; } switch (static_cast(le)) { @@ -394,6 +407,12 @@ bool LaTeXFont::readFont(Lexer & lex) case LF_GUINAME: lex >> guiname_; break; + case LF_FONTENC: { + lex.eatLine(); + string fe = lex.getString(); + fontenc_ = getVectorFromString(fe); + break; + } case LF_NOMATHFONT: lex >> nomathfont_; break; @@ -419,7 +438,7 @@ bool LaTeXFont::readFont(Lexer & lex) lex >> packageoption_; break; case LF_PREAMBLE: - preamble_ = lex.getLongString("EndPreamble"); + preamble_ = lex.getLongString(from_ascii("EndPreamble")); break; case LF_PROVIDES: { lex.eatLine(); @@ -467,6 +486,9 @@ bool LaTeXFont::read(Lexer & lex) return false; } + if (fontenc_.empty()) + fontenc_.push_back("T1"); + return true; }