]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.h
Fix text direction issue for InsetInfo in RTL context
[lyx.git] / src / BufferParams.h
index 1c64f3a3417980b7a5c38a8416f8bd0cff399b23..0fbc2e707a106a4a1bd1fb676b24a5e31fca40b7 100644 (file)
@@ -39,11 +39,11 @@ class Bullet;
 class DocumentClass;
 class Encoding;
 class Font;
-class HSpace;
 class IndicesList;
 class Language;
 class LayoutFile;
 class LayoutFileIndex;
+class Length;
 class Lexer;
 class PDFOptions;
 class Spacing;
@@ -93,14 +93,31 @@ public:
        bool hasClassDefaults() const;
 
        ///
-       HSpace const & getIndentation() const;
+       Length const & getParIndent() const;
        ///
-       void setIndentation(HSpace const & indent);
+       void setParIndent(Length const & indent);
        ///
        VSpace const & getDefSkip() const;
        ///
        void setDefSkip(VSpace const & vs);
 
+       ///
+       Length const & getMathIndent() const;
+       ///
+       void setMathIndent(Length const & indent);
+
+       /// Whether formulas are indented
+       bool is_math_indent;
+
+
+       enum  MathNumber { DEFAULT, LEFT, RIGHT };
+       /// number formulas on left/right/default
+       MathNumber math_numbering_side;
+
+       /// Convenience function for display: like math_number, but
+       /// DEFAULT is replaced by the best guess we have.
+       MathNumber getMathNumber() const;
+
        /** Whether paragraphs are separated by using a indent like in
         *  articles or by using a little skip like in letters.
         */
@@ -144,15 +161,13 @@ public:
                        { return removed_modules_; }
        ///
        /// Add a module to the list of modules in use. This checks only that the
-       /// module is not already in the list, so use layoutModuleCanBeAdeed first 
+       /// module is not already in the list, so use layoutModuleCanBeAdeed first
        /// if you want to check for compatibility.
        /// \return true if module was successfully added.
        bool addLayoutModule(std::string const & modName);
        /// checks to make sure module's requriements are satisfied, that it does
        /// not conflict with already-present modules, isn't already loaded, etc.
        bool layoutModuleCanBeAdded(std::string const & modName) const;
-       /// same, but for citaton modules.
-       bool citationModuleCanBeAdded(std::string const & modName) const;
        ///
        void addRemovedModule(std::string const & modName)
                        { removed_modules_.push_back(modName); }
@@ -280,6 +295,8 @@ public:
        std::string fonts_cjk;
        /// use LaTeX microtype package
        bool use_microtype;
+       /// use font ligatures for en- and em-dashes
+       bool use_dash_ligatures;
        ///
        Spacing & spacing();
        Spacing const & spacing() const;
@@ -333,6 +350,8 @@ public:
        ///
        std::string float_placement;
        ///
+       std::string float_alignment;
+       ///
        unsigned int columns;
        ///
        bool justification;
@@ -378,8 +397,14 @@ public:
        void use_package(std::string const & p, Package u);
        /// All packages that can be switched on or off
        static std::map<std::string, std::string> const & auto_packages();
+       /// Do we use the bibtopic package?
+       bool useBibtopic() const;
        /// Split bibliography?
-       bool use_bibtopic;
+       bool splitbib() const { return use_bibtopic; }
+       /// Set split bibliography
+       void splitbib(bool const b) { use_bibtopic = b; }
+       /// Do we have multiple bibliographies (by chapter etc.)?
+       std::string multibib;
        /// Split the index?
        bool use_indices;
        /// Save transient properties?
@@ -405,7 +430,7 @@ public:
        AuthorMap author_map_;
 
        /// the buffer's active font encoding
-       std::string const font_encoding() const;
+       std::string const main_font_encoding() const;
        /// all font encodings requested by the prefs/document/main language.
        /// This does NOT include font encodings required by secondary languages
        std::vector<std::string> const font_encodings() const;
@@ -438,21 +463,12 @@ public:
        std::string const loadFonts(LaTeXFeatures & features) const;
 
        /// the cite engine modules
-       LayoutModuleList const & citeEngine() const
-               { return cite_engine_; }
+       std::string const & citeEngine() const { return cite_engine_; }
        /// the type of cite engine (authoryear or numerical)
        CiteEngineType const & citeEngineType() const
                { return cite_engine_type_; }
        /// add the module to the cite engine modules
-       bool addCiteEngine(std::string const &);
-       /// add the modules to the cite engine modules
-       bool addCiteEngine(std::vector<std::string> const &);
-       /// clear the list of cite engine modules
-       void clearCiteEngine() { cite_engine_.clear(); }
-       /// set the cite engine module
-       void setCiteEngine(std::string const &);
-       /// set the cite engine modules
-       void setCiteEngine(std::vector<std::string> const &);
+       void setCiteEngine(std::string const & eng) { cite_engine_ = eng; }
        /// set the cite engine type
        void setCiteEngineType(CiteEngineType const & engine_type)
                { cite_engine_type_ = engine_type; }
@@ -463,7 +479,7 @@ public:
        std::vector<CitationStyle> citeStyles() const;
 
        /// Return the actual bibtex command (lyxrc or buffer param)
-       std::string const bibtexCommand() const;
+       std::string const bibtexCommand() const;
 
        /// Are we using biblatex?
        bool useBiblatex() const;
@@ -483,6 +499,10 @@ public:
        std::string biblatex_bibstyle;
        /// The biblatex citation style
        std::string biblatex_citestyle;
+       /// Set the bib file encoding (for biblatex)
+       void setBibEncoding(std::string const & s) { bib_encoding = s; }
+       /// Get the bib file encoding (for biblatex)
+       std::string const & bibEncoding() const { return bib_encoding; }
 
        /// options for pdf output
        PDFOptions & pdfoptions();
@@ -510,12 +530,16 @@ public:
        std::string html_latex_end;
        ///
        bool html_css_as_file;
+       /// allow the LaTeX backend to run external programs
+       bool shell_escape;
        /// generate output usable for reverse/forward search
        bool output_sync;
        /// custom LaTeX macro from user instead our own
        std::string output_sync_macro;
        /// use refstyle? or prettyref?
        bool use_refstyle;
+       /// use minted? or listings?
+       bool use_minted;
 
        /// Return true if language could be set to lang,
        /// otherwise return false and do not change language
@@ -546,12 +570,19 @@ private:
        typedef std::map<std::string, OutputParams::FLAVOR> DefaultFlavorCache;
        ///
        mutable DefaultFlavorCache default_flavors_;
-       /// the cite engine modules
-       LayoutModuleList cite_engine_;
+       /// the cite engine
+       std::string cite_engine_;
        /// the type of cite engine (authoryear or numerical)
        CiteEngineType cite_engine_type_;
        /// the default BibTeX style file for the document
        std::string biblio_style;
+       /// The encoding of the bib files, for Biblatex
+       /// (only one supported currently)
+       // FIXME: biblatex 3.12 introduces per-file
+       // encoding options. Update once that's spread.
+       std::string bib_encoding;
+       /// Split bibliography?
+       bool use_bibtopic;
        ///
        DocumentClassPtr doc_class_;
        ///