]> git.lyx.org Git - lyx.git/blobdiff - src/OutputParams.h
Provide proper fallback if a bibliography processor is not found
[lyx.git] / src / OutputParams.h
index 16fe7c4a765a03d75c64401aceda0c90d5f179a3..56e698c873ea0bc5160c04098fae0331ae0a215f 100644 (file)
 #define OUTPUTPARAMS_H
 
 
-#include "support/shared_ptr.h"
 #include "Changes.h"
 
+#include <memory>
+
 
 namespace lyx {
 
@@ -78,6 +79,8 @@ public:
            This esentially 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
+           increase the precision of forward/reverse search and error reporting.
        */
        bool nice;
 
@@ -99,9 +102,23 @@ 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 command (\uline, \uuline,
-           \uwave, or \sout). Insets that output latex commands relying
+           \uwave, \sout  or \xout). Insets that output latex commands relying
            on local assignments (such as \cite) should enclose such
            commands in \mbox{} in order to avoid breakage.
        */
@@ -153,6 +170,10 @@ public:
        */
        bool use_polyglossia;
 
+       /** Do we use hyperref?
+       */
+       bool use_hyperref;
+
        /** Are we generating multiple indices?
        */
        bool use_indices;
@@ -169,6 +190,10 @@ public:
        */
        std::string index_command;
 
+       /** Hyperref driver
+       */
+       std::string hyperref_driver;
+
        /** Line length to use with plaintext or LaTeX export.
        */
        size_type linelen;
@@ -182,7 +207,17 @@ public:
            This is a hack: Make it possible to add stuff to constant
            OutputParams instances.
        */
-       shared_ptr<ExportData> exportdata;
+       std::shared_ptr<ExportData> exportdata;
+
+       /** Whether we are entering a display math inset.
+        *  Needed to correctly strike out deleted math in change tracking.
+        */
+       mutable bool inDisplayMath;
+
+       /** Whether we are leaving a display math inset.
+        *  Needed to correctly track nested ulem commands in change tracking.
+        */
+       mutable bool wasDisplayMath;
 
        /** Whether we are inside a comment inset. Insets that are including
         *  external files like InsetGraphics, InsetInclude and InsetExternal
@@ -192,6 +227,15 @@ public:
         */
        bool inComment;
 
+       /** Whether a btUnit (for multiple biblographies) is open.
+        */
+       mutable bool openbtUnit;
+
+       /** Process only the children's aux files with BibTeX.
+        *  This is necessary with chapterbib.
+        */
+       bool only_childbibs;
+
        /** Whether we are in a table cell.
         *  For newline, it matters whether its content is aligned or not.
          */
@@ -237,13 +281,13 @@ public:
        mutable int lastid;
 
        /// Last position in the last paragraph before an inset
-       mutable int lastpos;
+       mutable pos_type lastpos;
 
        /// is this the last paragraph in the current buffer/inset?
        bool isLastPar;
 
 
-       /** whether or not do actual file copying and image conversion
+       /** whether or not to do actual file copying and image conversion
         *  This mode will be used to preview the source code
         */
        bool dryrun;