]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFonts.h
Fix warning about 'requires' being a keyword.
[lyx.git] / src / LaTeXFonts.h
index b5ab8c6f33293ded0af0c677d5e550b66b646e76..481c2f78cb4f48e40ccdf2d2916a4a53a234581f 100644 (file)
@@ -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<std::string> const & fontencs() const { return fontenc_; }
        /// Alternative font if package() is not available
        std::vector<docstring> 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<std::string> fontenc_;
+       ///
        std::vector<docstring> 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 {