]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFonts.h
Fix text direction issue for InsetInfo in RTL context
[lyx.git] / src / LaTeXFonts.h
index d79d45651c494f492760ccff6436ba0e9b7178cb..7087649a4dcfc8c8b217fc6a5cb2c2486b1331f9 100644 (file)
@@ -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<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
@@ -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<std::string> fontenc_;
+       ///
        std::vector<docstring> altfonts_;
        ///
        docstring completefont_;
@@ -127,12 +140,14 @@ private:
        ///
        docstring requires_;
        ///
+       docstring preamble_;
+       ///
        bool osfdefault_;
        ///
        bool switchdefault_;
 };
-  
-  
+
+
 /** The list of available LaTeX fonts
  */
 class LaTeXFonts {