]> git.lyx.org Git - lyx.git/blobdiff - src/OutputParams.h
Revert "DocBook: make openParTag/closeTag use paragraphs instead of layouts."
[lyx.git] / src / OutputParams.h
index fb8cea38318336f596c6042adf099b13cac4d6bf..31a705982e1b5962d1ca6a5d0547c78a28bea2fa 100644 (file)
@@ -16,6 +16,7 @@
 #include "Changes.h"
 
 #include <memory>
+#include <set>
 
 
 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();
 
@@ -78,7 +87,7 @@ public:
        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
@@ -104,6 +113,15 @@ 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.
        */
@@ -121,7 +139,7 @@ public:
         */
        Font const * local_font;
 
-       /** Document language babel name
+       /** Document language lyx name
         */
        std::string document_language;
 
@@ -134,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
@@ -166,6 +187,10 @@ public:
        */
        bool use_polyglossia;
 
+       /** Do we use hyperref?
+       */
+       bool use_hyperref;
+
        /// Do we use the CJK package?
        bool use_CJK;
 
@@ -198,13 +223,13 @@ 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> exportdata;
 
-       /** Store labels, index entries (etc.) (in \ref post_macro)
+       /** 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)
@@ -266,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
         */
@@ -321,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<docstring> 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;