X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFonts.h;h=7087649a4dcfc8c8b217fc6a5cb2c2486b1331f9;hb=1e519d1115f41f71c253cb9e2fbb7803e9a583a9;hp=d79d45651c494f492760ccff6436ba0e9b7178cb;hpb=8f9898994d93d8f215f041bf42df0e06d028bbee;p=lyx.git diff --git a/src/LaTeXFonts.h b/src/LaTeXFonts.h index d79d45651c..7087649a4d 100644 --- a/src/LaTeXFonts.h +++ b/src/LaTeXFonts.h @@ -26,7 +26,8 @@ class Lexer; class LaTeXFont { public: /// TeX font - LaTeXFont() : switchdefault_(false) {} + // FIXME Add fontenc tag to classes which is used if no font is specified? + LaTeXFont() : osfdefault_(false), switchdefault_(false) { fontenc_.push_back("T1"); } /// The font name docstring const & name() { return name_; } /// The name to appear in the document dialog @@ -35,6 +36,10 @@ public: docstring const & family() { return family_; } /// The package that provides this font docstring const & package() { return package_; } + /// Does this provide a specific font encoding? + bool hasFontenc(std::string const &) const; + /// The font encoding(s) + std::vector const & fontencs() const { return fontenc_; } /// Alternative font if package() is not available std::vector const & altfonts() { return altfonts_; } /// A font that provides all families @@ -64,12 +69,16 @@ public: bool osfDefault() const { return osfdefault_; } /// Is this font available? bool available(bool ot1, bool nomath); - /// Does this font provide an alternative without math? + /// Does this font provide an alternative without math? bool providesNoMath(bool ot1, bool complete); /// Does this font provide Old Style Figures? bool providesOSF(bool ot1, bool complete, bool nomath); /// Does this font provide optional true SmallCaps? bool providesSC(bool ot1, bool complete, bool nomath); + /** does this font provide OSF and Small Caps only via + * a single, undifferentiated expert option? + */ + bool hasMonolithicExpertSet(bool ot1, bool complete, bool nomath); /// Does this font provide scaling? bool providesScale(bool ot1, bool complete, bool nomath); /// Return the LaTeX Code @@ -78,12 +87,14 @@ public: int const & scale = 100); /// Return the actually used font docstring const getUsedFont(bool ot1, bool complete, bool nomath); + /// Return the actually used package + docstring const getUsedPackage(bool ot1, bool complete, bool nomath); /// bool read(Lexer & lex); /// bool readFont(Lexer & lex); private: - /// Return the preferred available package + /// Return the preferred available package std::string const getAvailablePackage(bool dryrun); /// Return the package options std::string const getPackageOptions(bool ot1, @@ -103,6 +114,8 @@ private: /// docstring package_; /// + std::vector fontenc_; + /// std::vector altfonts_; /// docstring completefont_; @@ -127,12 +140,14 @@ private: /// docstring requires_; /// + docstring preamble_; + /// bool osfdefault_; /// bool switchdefault_; }; - - + + /** The list of available LaTeX fonts */ class LaTeXFonts {