X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftex2lyx%2FContext.h;h=427e4020a81556c748b4754eff4885cb243b0047;hb=fd5adacef25eb40f813dedd961920c353448213a;hp=9fb8ce103fa9a7431e7df8bab533c16e544cae5c;hpb=2b3bd7b5f4a8815427d05c6cc6aaf25b6b8ffba5;p=features.git diff --git a/src/tex2lyx/Context.h b/src/tex2lyx/Context.h index 9fb8ce103f..427e4020a8 100644 --- a/src/tex2lyx/Context.h +++ b/src/tex2lyx/Context.h @@ -40,11 +40,13 @@ public: family = "default"; series = "default"; shape = "default"; + language = "english"; } std::string size; std::string family; std::string series; std::string shape; + std::string language; }; @@ -78,9 +80,9 @@ class Context { public: Context(bool need_layout_, TeX2LyXDocClass const & textclass_, - LayoutPtr layout_ = LayoutPtr(), - LayoutPtr parent_layout_= LayoutPtr(), - TeXFont font_ = TeXFont()); + Layout const * layout_ = 0, + Layout const * parent_layout_= 0, + TeXFont const & font_ = normalfont); ~Context(); /// Output a \\begin_layout if requested @@ -111,13 +113,27 @@ public: /// Add extra stuff if not already there void add_extra_stuff(std::string const &); + /*! + * Add paragraph-level extra stuff if not already there. This + * will be reset at the next check_layout() + */ + void add_par_extra_stuff(std::string const &); + /// Do we need to output some \\begin_layout command before the /// next characters? bool need_layout; /// Do we need to output some \\end_layout command bool need_end_layout; - /// We may need to add something after this \\begin_layout command + /// We may need to add something after each \\begin_layout command std::string extra_stuff; + /// We may need to add something after this \\begin_layout command + std::string par_extra_stuff; + /// We may need to add something at the beginning of a list. + std::string list_extra_stuff; + /// Stuff between list begin and first item + std::string list_preamble; + /// A LaTeXParam to be ignored in parsing. + std::string latexparam; /// If there has been an \\begin_deeper, we'll need a matching /// \\end_deeper bool need_end_deeper; @@ -125,6 +141,13 @@ public: /// for each paragraph, otherwise this has to be a deeper /// paragraph. bool has_item; + /// If we are in an itemize-like environment, this marks + /// the text before the first \item. Typically, list + /// parameters (such as lengths) are adjusted here. + bool in_list_preamble; + /// Store commands that should not be converted + /// (stored without \\) + std::set pass_thru_cmds; /// we are handling a standard paragraph in an itemize-like /// environment bool deeper_paragraph; @@ -136,19 +159,30 @@ public: * would not work. */ bool new_layout_allowed; + /// May -- be converted to endash and --- to emdash? + bool merging_hyphens_allowed; /// Did we output anything yet in any context? static bool empty; /// The textclass of the document. Could actually be a global variable TeX2LyXDocClass const & textclass; /// The layout of the current paragraph - LayoutPtr layout; + Layout const * layout; /// The layout of the outer paragraph (for environment layouts) - LayoutPtr parent_layout; + Layout const * parent_layout; /// font attributes of this context TeXFont font; /// font attributes of normal text static TeXFont normalfont; + /// Table rotation angle + int tablerotation; + /// + bool in_table_cell; + /// + char cell_align; + +private: + void begin_layout(std::ostream & os, Layout const * const & l); };