X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FOutputParams.h;h=31a705982e1b5962d1ca6a5d0547c78a28bea2fa;hb=21c92c8a129b5f3ff56de33bf2941a25967cffbb;hp=8dbe00203d103bf4536f80d0d547af675032cb0c;hpb=8b92a2a689c2548a263065a24c0d3aa917785cce;p=lyx.git diff --git a/src/OutputParams.h b/src/OutputParams.h index 8dbe00203d..31a705982e 100644 --- a/src/OutputParams.h +++ b/src/OutputParams.h @@ -16,6 +16,7 @@ #include "Changes.h" #include +#include namespace lyx { @@ -34,7 +35,7 @@ public: LUATEX, PDFLATEX, XETEX, - XML, + DOCBOOK5, HTML, TEXT, LYX @@ -60,6 +61,14 @@ public: SUBFLOAT }; + enum CtObject { + CT_NORMAL, + CT_OBJECT, + CT_DISPLAYOBJECT, + CT_UDISPLAYOBJECT, + CT_OMITOBJECT + }; + OutputParams(Encoding const *); ~OutputParams(); @@ -71,12 +80,14 @@ public: bool isLaTeX() const; /// does this flavour support full unicode? bool isFullUnicode() const; + /// Do we use the bidi package (which does some reordering and stuff)? + bool useBidiPackage() const; /// Same, but for math output, which only matter is XHTML output. MathFlavor math_flavor; /** Are we to write a 'nice' LaTeX file or not. - This esentially seems to mean whether InsetInclude, InsetGraphics + This essentially seems to mean whether InsetInclude, InsetGraphics and InsetExternal should add the absolute path to any external files or not. Non-nice LaTeX also includes additional safe line breaks in order to @@ -102,6 +113,20 @@ public: */ bool intitle; + /** need_maketitle == true means that the last layout was a title layout + * this is to track when \maketitle needs to be output. + */ + mutable bool need_maketitle; + + /** have_maketitle == true means that \maketitle already hase been output. + */ + mutable bool have_maketitle; + + /** inbranch == true means that the environment being typeset + is inside an active branch inset. + */ + bool inbranch; + /** inulemcmd > 0 means that the environment in which the inset is typeset is part of a ulem or soul command (e.g., \uline, \uuline, \uwave, \sout or \xout). Insets that output latex commands @@ -114,7 +139,7 @@ public: */ Font const * local_font; - /** Document language babel name + /** Document language lyx name */ std::string document_language; @@ -127,6 +152,9 @@ public: */ mutable Language const * master_language; + /// Active characters + std::string active_chars; + /** Current stream encoding. Only used for LaTeX. This must be set to the document encoding (via the constructor) before output starts. Afterwards it must be kept up to date for @@ -159,6 +187,13 @@ public: */ bool use_polyglossia; + /** Do we use hyperref? + */ + bool use_hyperref; + + /// Do we use the CJK package? + bool use_CJK; + /** Are we generating multiple indices? */ bool use_indices; @@ -188,12 +223,25 @@ public: */ int depth; - /** Export data filled in by the latex(), docbook() etc methods. + /** Export data filled in by the latex(), docbook(), etc. methods. This is a hack: Make it possible to add stuff to constant OutputParams instances. */ std::shared_ptr exportdata; + /** Store labels, index entries, etc. (in \ref post_macro) + * and output them later. This is used in particular to get + * labels and index entries (and potentially other fragile commands) + * outside of moving arguments (bug 2154) + */ + bool postpone_fragile_stuff; + + /** Stuff to be postponed and output after the current macro + * (if \ref postpone_fragile_stuff is true). Used for labels and index + * entries in commands with moving arguments (\\section, \\caption etc.) + */ + mutable docstring post_macro; + /** Whether we are entering a display math inset. * Needed to correctly strike out deleted math in change tracking. */ @@ -243,14 +291,19 @@ public: /** Whether we are inside an inset that is logically deleted. * A value > 0 indicates a deleted inset. - */ + */ int inDeletedInset; /** The change information of the outermost logically deleted inset. * changeOfDeletedInset shall only be evaluated if inDeletedInset > 0. - */ + */ Change changeOfDeletedInset; + /** What kind of change tracking object is this? + * Relevant for strikeout method in output + */ + mutable CtObject ctObject; + /** allow output of only part of the top-level paragraphs * par_begin: beginning paragraph */ @@ -286,6 +339,9 @@ public: /// Should we output verbatim specific chars? docstring pass_thru_chars; + /// A specific newline macro + std::string newlinecmd; + /// Should we output captions? bool html_disable_captions; @@ -295,6 +351,27 @@ public: /// Does the present context even permit paragraphs? bool html_make_pars; + /// Are we already in a paragraph? + bool docbook_in_par; + + /// Does the present context even permit paragraphs? + bool docbook_make_pars; + + /// Are paragraphs mandatory in this context? + bool docbook_force_pars; + + /// Anchors that should not be output (LyX-side identifier, not DocBook-side). + std::set docbook_anchors_to_ignore; + + /// Is the current context a float (such as a table or a figure)? + bool docbook_in_float; + + /// Is the current context a listing? + bool docbook_in_listing; + + /// Is the current context a table? + bool docbook_in_table; + /// Are we generating this material for inclusion in a TOC-like entity? bool for_toc;