]> git.lyx.org Git - lyx.git/blobdiff - src/tex2lyx/Preamble.h
Format and reversion code for new counter inset.
[lyx.git] / src / tex2lyx / Preamble.h
index a8bf4ee05956feb7bfc924d79973f236661f09ca..42c6069fd24ca4609ccfcd46271ae5b7ecab52a5 100644 (file)
@@ -48,10 +48,14 @@ public:
        std::string fontCJK() const { return h_font_cjk; }
        ///
        void fontCJK(std::string const & f) { h_font_cjk_set = true; h_font_cjk = f; }
+       ///
+       bool minted() const { return h_use_minted; }
        /// The document language
        std::string docLanguage() const { return h_language; }
        /// The language of text which is not explicitly marked
        std::string defaultLanguage() const  { return default_language; }
+       /// The quotation marks style
+       std::string quotesStyle() const { return h_quotes_style; }
        ///
        bool usePolyglossia() const;
        ///
@@ -63,6 +67,8 @@ public:
        ///
        bool isPackageUsed(std::string const & package) const;
        ///
+       bool isPackageAutoLoaded(std::string const & package) const;
+       ///
        std::vector<std::string>
        getPackageOptions(std::string const & package) const;
        /// Tell that \p package will be loaded automatically by LyX.
@@ -78,11 +84,15 @@ public:
        ///
        void citeEngine(std::string const & e) { h_cite_engine = e; }
        ///
+       std::string multibib() const { return h_multibib; }
+       ///
+       void multibib(std::string const & s) { h_multibib = s; }
+       ///
        bool titleLayoutFound() const { return title_layout_found; }
        ///
        void titleLayoutFound(bool found) { title_layout_found = found; }
        /// Register an author named \p name in the author list
-       void registerAuthor(std::string const & name);
+       void registerAuthor(std::string const & name, std::string const & initials);
        /// Get author named \p name (must be registered first)
        Author const & getAuthor(std::string const & name) const;
        /// Get number of arguments of special table column type \c or -1
@@ -92,6 +102,8 @@ public:
        /// Parses the LaTeX preamble into internal data
        void parse(Parser & p, std::string const & forceclass,
                   TeX2LyXDocClass & tc);
+       /// Parse the encoding from a preamble. *this is unusable afterwards.
+       std::string parseEncoding(Parser & p, std::string const & forceclass);
        /// Writes the LyX file header from internal data
        bool writeLyXHeader(std::ostream & os, bool subdoc,
                            std::string const & outfiledir);
@@ -100,9 +112,20 @@ public:
        static const char * const polyglossia_languages[];
        /// the same as polyglossia_languages with .lyx names
        static const char * const coded_polyglossia_languages[];
+       ///
+       std::vector<std::string> biblatex_bibliographies;
+       ///
+       std::vector<std::string> biblatex_encodings;
+       ///
+       std::string bibencoding;
+       ///
+       std::string docencoding;
 
 private:
        ///
+       void parse(Parser & p, std::string const & forceclass,
+                  bool detectEncoding, TeX2LyXDocClass & tc);
+       ///
        std::map<std::string, std::vector<std::string> > used_packages;
        /// Packages that will be loaded automatically by LyX
        std::set<std::string> auto_packages;
@@ -119,15 +142,23 @@ private:
        /// was at least one title layout found?
        bool title_layout_found;
 
+       /// used for the handling of \newindex
+       int index_number;
+
        std::ostringstream h_preamble;
        std::string h_backgroundcolor;
+       std::string h_multibib;
        std::string h_biblio_style;
+       std::string h_biblio_options;
+       std::string h_biblatex_bibstyle;
+       std::string h_biblatex_citestyle;
        std::string h_bibtex_command;
        std::string h_boxbgcolor;
        std::string h_cite_engine;
        std::string h_cite_engine_type;
        std::string h_color;
        std::string h_defskip;
+       bool h_dynamic_quotes;
        std::string h_float_placement;
        std::string h_fontcolor;
        std::string h_fontencoding;
@@ -135,14 +166,25 @@ private:
        std::string h_font_roman[2];
        std::string h_font_sans[2];
        std::string h_font_typewriter[2];
+       std::string h_font_roman_opts;
+       std::string h_font_sans_opts;
+       std::string h_font_typewriter_opts;
        std::string h_font_default_family;
        bool h_use_non_tex_fonts;
        std::string h_font_sc;
-       std::string h_font_osf;
+       std::string h_font_roman_osf;
+       std::string h_font_sans_osf;
+       std::string h_font_typewriter_osf;
        std::string h_font_sf_scale[2];
        std::string h_font_tt_scale[2];
        bool h_font_cjk_set;
        std::string h_font_cjk;
+       std::string h_use_microtype;
+       std::string h_use_lineno;
+       std::string h_lineno_options;
+       std::string h_is_mathindent;
+       std::string h_math_numbering_side;
+       std::string h_mathindentation;
        std::string h_graphics;
        std::string h_default_output_format;
        std::string h_html_be_strict;
@@ -160,6 +202,7 @@ private:
        std::string h_notefontcolor;
        std::string h_options;
        std::string h_output_changes;
+       std::string h_change_bars;
        std::string h_output_sync;
        std::string h_output_sync_macro;
        std::string h_papercolumns;
@@ -186,7 +229,7 @@ private:
        std::string h_pdf_pdfusetitle;
        std::string h_pdf_pagemode;
        std::string h_pdf_quoted_options;
-       std::string h_quotes_language;
+       std::string h_quotes_style;
        std::string h_secnumdepth;
        std::string h_shortcut[99];
        std::string h_spacing;
@@ -196,12 +239,15 @@ private:
        std::string h_tocdepth;
        std::string h_tracking_changes;
        std::string h_use_bibtopic;
+       std::string h_use_dash_ligatures;
        std::string h_use_indices;
        std::string h_use_geometry;
        std::map<std::string, std::string> h_use_packages;
        std::string h_use_default_options;
        std::string h_use_hyperref;
+       std::vector<std::string> h_includeonlys;
        bool h_use_refstyle;
+       bool h_use_minted;
 
        /*!
         * Add package \p name with options \p options to used_packages.
@@ -215,7 +261,8 @@ private:
        void handle_geometry(std::vector<std::string> & options);
        ///
        void handle_package(Parser &p, std::string const & name,
-                           std::string const & opts, bool in_lyx_preamble);
+                           std::string const & opts, bool in_lyx_preamble,
+                           bool detectEncoding);
        ///
        void handle_if(Parser & p, bool in_lyx_preamble);
 
@@ -223,6 +270,8 @@ private:
        AuthorList authors_;
        /// special table column types
        std::map<char, int> special_columns_;
+       ///
+       std::map<std::string, std::string> extra_package_options_;
 };