]> git.lyx.org Git - lyx.git/blobdiff - src/tex2lyx/Preamble.h
Merge branch 'master' into biblatex2
[lyx.git] / src / tex2lyx / Preamble.h
index ae5886e08e854c7b92fb3b6d38f46c79c7c5e72a..bf12b7b1e358385f57ef6871f8faf0ef06ec1cfc 100644 (file)
@@ -85,12 +85,18 @@ public:
        void registerAuthor(std::string const & name);
        /// 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
+       /// if no column type \p c exists
+       int getSpecialTableColumnArguments(char c) const;
 
        /// 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);
+       bool writeLyXHeader(std::ostream & os, bool subdoc,
+                           std::string const & outfiledir);
 
        /// known polyglossia language names (including variants)
        static const char * const polyglossia_languages[];
@@ -99,6 +105,9 @@ public:
 
 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;
@@ -115,6 +124,9 @@ 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_biblio_style;
@@ -127,18 +139,19 @@ private:
        std::string h_float_placement;
        std::string h_fontcolor;
        std::string h_fontencoding;
-       std::string h_font_math;
-       std::string h_font_roman;
-       std::string h_font_sans;
-       std::string h_font_typewriter;
+       std::string h_font_math[2];
+       std::string h_font_roman[2];
+       std::string h_font_sans[2];
+       std::string h_font_typewriter[2];
        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_sf_scale;
-       std::string h_font_tt_scale;
+       std::string h_font_sf_scale[2];
+       std::string h_font_tt_scale[2];
        bool h_font_cjk_set;
        std::string h_font_cjk;
+       bool h_use_microtype;
        std::string h_graphics;
        std::string h_default_output_format;
        std::string h_html_be_strict;
@@ -182,11 +195,12 @@ 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;
        std::string h_suppress_date;
+       std::string h_save_transient_properties;
        std::string h_textclass;
        std::string h_tocdepth;
        std::string h_tracking_changes;
@@ -210,11 +224,15 @@ 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);
 
+       ///
        AuthorList authors_;
+       /// special table column types
+       std::map<char, int> special_columns_;
 };