X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFonts.h;h=481c2f78cb4f48e40ccdf2d2916a4a53a234581f;hb=ada09a2cdac01dec141c1fd680b0a8c4f77c2237;hp=b5ab8c6f33293ded0af0c677d5e550b66b646e76;hpb=4e2f16e84e7efb024621db0a5383ec473e97851f;p=lyx.git diff --git a/src/LaTeXFonts.h b/src/LaTeXFonts.h index b5ab8c6f33..481c2f78cb 100644 --- a/src/LaTeXFonts.h +++ b/src/LaTeXFonts.h @@ -26,7 +26,8 @@ class Lexer; class LaTeXFont { public: /// TeX font - LaTeXFont() : osfdefault_(false), switchdefault_(false) {} + // FIXME Add fontenc tag to classes which is used if no font is specified? + LaTeXFont() : osfdefault_(false), switchdefault_(false), moreopts_(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 @@ -43,8 +48,6 @@ public: docstring const & ot1font() { return ot1font_; } /// A font that provides Old Style Figures for this type face docstring const & osffont() { return osffont_; } - /// A package option needed to load this font - docstring const & packageoption() { return packageoption_; } /// A package option for Old Style Figures docstring const & osfoption() { return osfoption_; } /// A package option for true SmallCaps @@ -53,8 +56,10 @@ public: docstring const & osfscoption() { return osfscoption_; } /// A package option for font scaling docstring const & scaleoption() { return scaleoption_; } + /// Does this provide additional options? + bool providesMoreOptions(bool ot1, bool complete, bool nomath); /// Alternative requirement to test for - docstring const & requires() { return requires_; } + docstring const & required() { return requires_; } /// Does this font provide a given \p feature bool provides(std::string const & name, bool ot1, bool complete, bool nomath); @@ -64,13 +69,13 @@ 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 + /** does this font provide OSF and Small Caps only via * a single, undifferentiated expert option? */ bool hasMonolithicExpertSet(bool ot1, bool complete, bool nomath); @@ -79,6 +84,7 @@ public: /// Return the LaTeX Code std::string const getLaTeXCode(bool dryrun, bool ot1, bool complete, bool sc, bool osf, bool nomath, + std::string const & extraopts = std::string(), int const & scale = 100); /// Return the actually used font docstring const getUsedFont(bool ot1, bool complete, bool nomath); @@ -89,7 +95,7 @@ public: /// 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, @@ -97,6 +103,7 @@ private: bool sc, bool osf, int scale, + std::string const & extraopts, bool nomath); /// Return an alternative font LaTeXFont altFont(docstring const & name); @@ -109,6 +116,8 @@ private: /// docstring package_; /// + std::vector fontenc_; + /// std::vector altfonts_; /// docstring completefont_; @@ -119,7 +128,7 @@ private: /// docstring osffont_; /// - docstring packageoption_; + docstring packageoptions_; /// docstring osfoption_; /// @@ -133,14 +142,16 @@ private: /// docstring requires_; /// - std::string preamble_; + docstring preamble_; /// bool osfdefault_; /// bool switchdefault_; + /// + bool moreopts_; }; - - + + /** The list of available LaTeX fonts */ class LaTeXFonts {