]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFonts.h
Merge branch 'master' of git.lyx.org:lyx
[lyx.git] / src / LaTeXFonts.h
index 3f8b1351fc752868ce909c6b4afaa1672199218f..b5ab8c6f33293ded0af0c677d5e550b66b646e76 100644 (file)
@@ -26,7 +26,7 @@ class Lexer;
 class LaTeXFont {
 public:
        /// TeX font
-       LaTeXFont() : switchdefault_(false) {}
+       LaTeXFont() : osfdefault_(false), switchdefault_(false) {}
        /// The font name
        docstring const & name() { return name_; }
        /// The name to appear in the document dialog
@@ -35,14 +35,16 @@ public:
        docstring const & family() { return family_; }
        /// The package that provides this font
        docstring const & package() { return package_; }
-       /// Alternative packages if package() is not available
-       std::vector<docstring> const & altpackages() { return altpackages_; }
-       /// A package that provides all families
-       docstring const & completepackage() { return completepackage_; }
-       /// A package specifically needed for OT1 font encoding
-       docstring const & ot1package() { return ot1package_; }
-       /// A package that provides Old Style Figures for this font
-       docstring const & osfpackage() { return osfpackage_; }
+       /// Alternative font if package() is not available
+       std::vector<docstring> const & altfonts() { return altfonts_; }
+       /// A font that provides all families
+       docstring const & completefont() { return completefont_; }
+       /// A font specifically needed for OT1 font encoding
+       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,30 +55,51 @@ public:
        docstring const & scaleoption() { return scaleoption_; }
        /// Alternative requirement to test for
        docstring const & requires() { return requires_; }
+       /// Does this font provide a given \p feature
+       bool provides(std::string const & name, bool ot1,
+                     bool complete, bool nomath);
        /// Issue the familydefault switch
        bool switchdefault() const { return switchdefault_; }
+       /// Does the font provide Old Style Figures as default?
+       bool osfDefault() const { return osfdefault_; }
        /// Is this font available?
-       bool available(bool ot1 = false) const;
+       bool available(bool ot1, bool nomath);
+       /// 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 = false) const;
+       bool providesOSF(bool ot1, bool complete, bool nomath);
        /// Does this font provide optional true SmallCaps?
-       bool providesSC(bool ot1 = false) const;
+       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 = false) const;
-       /// Return the preferred available package 
-       std::string const getAvailablePackage(bool dryrun = false,
-                                             bool ot1 = false,
-                                             bool complete = false);
-       /// Return the package options
-       std::string const getPackageOptions(bool const & ot1,
-                                           bool const & sc,
-                                           bool const & osf,
-                                           int const & scale = 100);
+       bool providesScale(bool ot1, bool complete, bool nomath);
+       /// Return the LaTeX Code
+       std::string const getLaTeXCode(bool dryrun, bool ot1, bool complete,
+                                      bool sc, bool osf, bool nomath,
+                                      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 
+       std::string const getAvailablePackage(bool dryrun);
+       /// Return the package options
+       std::string const getPackageOptions(bool ot1,
+                                           bool complete,
+                                           bool sc,
+                                           bool osf,
+                                           int scale,
+                                           bool nomath);
+       /// Return an alternative font
+       LaTeXFont altFont(docstring const & name);
        ///
        docstring name_;
        ///
@@ -86,13 +109,17 @@ private:
        ///
        docstring package_;
        ///
-       std::vector<docstring> altpackages_;
+       std::vector<docstring> altfonts_;
+       ///
+       docstring completefont_;
        ///
-       docstring completepackage_;
+       docstring nomathfont_;
        ///
-       docstring ot1package_;
+       docstring ot1font_;
        ///
-       docstring osfpackage_;
+       docstring osffont_;
+       ///
+       docstring packageoption_;
        ///
        docstring osfoption_;
        ///
@@ -102,13 +129,15 @@ private:
        ///
        docstring scaleoption_;
        ///
+       std::vector<std::string> provides_;
+       ///
        docstring requires_;
        ///
-       bool switchdefault_;
+       std::string preamble_;
        ///
-       bool available_;
+       bool osfdefault_;
        ///
-       bool available_ot1_;
+       bool switchdefault_;
 };
   
   
@@ -122,11 +151,15 @@ public:
        TexFontMap getLaTeXFonts();
        /// Get a specific LaTeXFont \p name
        LaTeXFont getLaTeXFont(docstring const & name);
+       /// Get a specific AltFont \p name
+       LaTeXFont getAltFont(docstring const & name);
 private:
        ///
        void readLaTeXFonts();
        ///
        TexFontMap texfontmap_;
+       ///
+       TexFontMap texaltfontmap_;
 };
 
 /// Implementation is in LyX.cpp