X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftex2lyx%2FPreamble.h;h=ba4ef31c8eb3267dcde5fb5ebd4c94b0a60ca2a0;hb=5ad84b9fbd0421d19af6e328a1ec41e84d65d84a;hp=cc77f18b747a08c4e2e066119980493497b912b4;hpb=0d10ca7e6e6b3862132050623b5e2dca9bea656f;p=lyx.git diff --git a/src/tex2lyx/Preamble.h b/src/tex2lyx/Preamble.h index cc77f18b74..ba4ef31c8e 100644 --- a/src/tex2lyx/Preamble.h +++ b/src/tex2lyx/Preamble.h @@ -11,13 +11,17 @@ // {[( -#include +#ifndef LYX_PREAMBLE_H +#define LYX_PREAMBLE_H + +#include "Author.h" #include #include #include #include #include +#include namespace lyx { @@ -33,41 +37,62 @@ public: /// std::string inputencoding() const { return h_inputencoding; } /// + std::string notefontcolor() const { return h_notefontcolor; } + /// + std::string use_indices() const { return h_use_indices; } + /// bool indentParagraphs() const; /// bool isPackageUsed(std::string const & package) const; /// std::vector getPackageOptions(std::string const & package) const; + /// Tell that \p package will be loaded automatically by LyX. + /// This has only an effect if \p package is prepared for + /// autoloading in parse(). + void registerAutomaticallyLoadedPackage(std::string const & package); /// void addModule(std::string const & module); /// void suppressDate(bool suppress); + /// + 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; /// Parses the LaTeX preamble into internal data void parse(Parser & p, std::string const & forceclass, TeX2LyXDocClass & tc); /// Writes the LyX file header from internal data - void writeLyXHeader(std::ostream & os); + bool writeLyXHeader(std::ostream & os, bool subdoc); private: /// std::map > used_packages; + /// Packages that will be loaded automatically by LyX + std::set auto_packages; /// std::vector used_modules; /// needed to handle encodings with babel bool one_language; - /// necessary to avoid that our preamble stuff is added at each - /// tex2lyx run which would pollute the preamble when doing roundtrips - bool ifundefined_color_set; + /// was at least one title layout found? + bool title_layout_found; 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; @@ -76,22 +101,30 @@ private: std::string h_font_sans; std::string h_font_typewriter; std::string h_font_default_family; + std::string 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_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; + 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; @@ -118,21 +151,19 @@ private: std::string h_pdf_quoted_options; std::string h_quotes_language; std::string h_secnumdepth; + std::string h_shortcut; std::string h_spacing; std::string h_suppress_date; std::string h_textclass; std::string h_tocdepth; std::string h_tracking_changes; std::string h_use_bibtopic; + std::string h_use_indices; std::string h_use_geometry; - std::string h_use_amsmath; + std::map h_use_packages; std::string h_use_default_options; - std::string h_use_esint; std::string h_use_hyperref; - std::string h_use_mhchem; - std::string h_use_mathdots; std::string h_use_refstyle; - std::string h_use_undertilde; /*! * Add package \p name with options \p options to used_packages. @@ -143,10 +174,14 @@ private: /// void handle_hyperref(std::vector & options); /// + void handle_geometry(std::vector & options); + /// void handle_package(Parser &p, std::string const & name, std::string const & opts, bool in_lyx_preamble); /// void handle_if(Parser & p, bool in_lyx_preamble); + + AuthorList authors_; }; @@ -156,3 +191,5 @@ extern Preamble preamble; } // namespace lyx + +#endif