X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftex2lyx%2FPreamble.h;h=bf12b7b1e358385f57ef6871f8faf0ef06ec1cfc;hb=298730215c21735f16e7278a5d5a4469fb0b9859;hp=5c2d883aab51c5bfbbf191c9c858947198977625;hpb=586e0e6b8a1c0306662511bf7b5579f55afe80f5;p=lyx.git diff --git a/src/tex2lyx/Preamble.h b/src/tex2lyx/Preamble.h index 5c2d883aab..bf12b7b1e3 100644 --- a/src/tex2lyx/Preamble.h +++ b/src/tex2lyx/Preamble.h @@ -37,10 +37,28 @@ public: /// std::string inputencoding() const { return h_inputencoding; } /// + void setInputencoding(std::string const & e) { h_inputencoding = e; } + /// std::string notefontcolor() const { return h_notefontcolor; } /// + bool refstyle() const { return h_use_refstyle; } + /// + bool fontCJKSet() const { return h_font_cjk_set; } + /// + std::string fontCJK() const { return h_font_cjk; } + /// + void fontCJK(std::string const & f) { h_font_cjk_set = true; h_font_cjk = f; } + /// 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; } + /// + bool usePolyglossia() const; + /// std::string use_indices() const { return h_use_indices; } /// + std::string polyglossia2lyx(std::string const & language); + /// bool indentParagraphs() const; /// bool isPackageUsed(std::string const & package) const; @@ -55,20 +73,41 @@ public: void addModule(std::string const & module); /// void suppressDate(bool suppress); + /// + std::string citeEngine() const { return h_cite_engine; } + /// + void citeEngine(std::string const & e) { h_cite_engine = e; } + /// + 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); /// 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[]; + /// the same as polyglossia_languages with .lyx names + static const char * const coded_polyglossia_languages[]; private: /// + void parse(Parser & p, std::string const & forceclass, + bool detectEncoding, TeX2LyXDocClass & tc); + /// std::map > used_packages; /// Packages that will be loaded automatically by LyX std::set auto_packages; @@ -77,39 +116,61 @@ private: /// needed to handle encodings with babel bool one_language; + /// the main non-CJK language + std::string default_language; + /// Was babel called explicitly? + bool explicit_babel; + + /// 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; + 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; std::string h_float_placement; std::string h_fontcolor; std::string h_fontencoding; - 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; - std::string h_use_non_tex_fonts; + 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; std::string h_html_css_as_file; std::string h_html_math_output; + std::string h_index[99]; + std::string h_index_command; std::string h_inputencoding; std::string h_justification; std::string h_language; std::string h_language_package; std::string h_listings_params; + std::string h_maintain_unincluded_children; std::string h_margins; std::string h_notefontcolor; std::string h_options; std::string h_output_changes; + std::string h_output_sync; + std::string h_output_sync_macro; std::string h_papercolumns; std::string h_paperfontsize; std::string h_paperorientation; @@ -134,10 +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; @@ -147,7 +210,7 @@ private: std::map h_use_packages; std::string h_use_default_options; std::string h_use_hyperref; - std::string h_use_refstyle; + bool h_use_refstyle; /*! * Add package \p name with options \p options to used_packages. @@ -161,11 +224,15 @@ private: void handle_geometry(std::vector & 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 special_columns_; };