X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FOutputParams.h;h=3ec4eddf226afe2e198561e4ca620ce7abb132ee;hb=2e433654c7f3db02bfd0e4dd09eb04cd8ab44bb9;hp=5631907760a00660af6582993095efbc4124c4dc;hpb=a7c135b9e1cf4819fc305c7f6279c4e615f5ea72;p=lyx.git diff --git a/src/OutputParams.h b/src/OutputParams.h index 5631907760..3ec4eddf22 100644 --- a/src/OutputParams.h +++ b/src/OutputParams.h @@ -13,9 +13,10 @@ #define OUTPUTPARAMS_H -#include "support/shared_ptr.h" #include "Changes.h" +#include + namespace lyx { @@ -28,15 +29,17 @@ class Language; class OutputParams { public: enum FLAVOR { + DVILUATEX, LATEX, LUATEX, PDFLATEX, XETEX, XML, HTML, - TEXT + TEXT, + LYX }; - + enum MathFlavor { NotApplicable, MathAsMathML, @@ -68,17 +71,25 @@ public: bool isLaTeX() const; /// does this flavour support full unicode? bool isFullUnicode() 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 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; + /** Is this a real child (i.e., compiled as a child)? + This depends on wherefrom we export the buffer. Even children + that have a master can be compiled standalone. + */ + mutable bool is_child; + /** moving_arg == true means that the environment in which the inset is typeset is a moving argument. The inset should take care about fragile commands by preceding the latex with \\protect. @@ -91,21 +102,18 @@ public: */ bool intitle; - /** inulemcmd == true 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 - on local assignments (such as \cite) should enclose such - commands in \mbox{} in order to avoid breakage. + /** inbranch == true means that the environment being typeset + is inside an active branch inset. */ - mutable bool inulemcmd; - - /** Whether we are in the process of outputting title information. - */ - mutable bool inTitle; + bool inbranch; - /** Whether we have arleady output \maketitle or whatever. - */ - mutable bool didTitle; + /** 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 + relying on local assignments (such as \cite) should enclose such + commands in \mbox{} in order to avoid breakage. + */ + mutable int inulemcmd; /** the font at the point where the inset is */ @@ -113,9 +121,14 @@ public: /** Document language babel name */ - mutable std::string document_language; + std::string document_language; + + /// main font encoding of the document + std::string main_fontenc; /** The master language. Non-null only for child documents. + Note that this is not the language of the top level master, but + of the direct parent for nested includes. */ mutable Language const * master_language; @@ -151,6 +164,9 @@ public: */ bool use_polyglossia; + /// Do we use the CJK package? + bool use_CJK; + /** Are we generating multiple indices? */ bool use_indices; @@ -161,11 +177,15 @@ public: /** Customized bibtex_command */ - mutable std::string bibtex_command; + std::string bibtex_command; /** Customized index_command */ - mutable std::string index_command; + std::string index_command; + + /** Hyperref driver + */ + std::string hyperref_driver; /** Line length to use with plaintext or LaTeX export. */ @@ -180,7 +200,30 @@ public: This is a hack: Make it possible to add stuff to constant OutputParams instances. */ - shared_ptr exportdata; + 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. + */ + 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 @@ -190,6 +233,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. */ @@ -205,6 +257,11 @@ public: */ bool inIndexEntry; + /** Whether we are inside an IPA inset. + * Needed for proper IPA output. + */ + bool inIPA; + /** Whether we are inside an inset that is logically deleted. * A value > 0 indicates a deleted inset. */ @@ -212,7 +269,7 @@ public: /** The change information of the outermost logically deleted inset. * changeOfDeletedInset shall only be evaluated if inDeletedInset > 0. - */ + */ Change changeOfDeletedInset; /** allow output of only part of the top-level paragraphs @@ -226,32 +283,59 @@ public: */ mutable pit_type par_end; + /// Id of the last paragraph before an inset + mutable int lastid; + + /// Last position in the last paragraph before an inset + 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; - + + /// whether to display output errors or not + bool silent; + /// Should we output verbatim or escape LaTeX's special chars? bool pass_thru; - + + /// 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; - + /// Are we already in a paragraph? bool html_in_par; - + /// Does the present context even permit paragraphs? bool html_make_pars; - + /// Are we generating this material for inclusion in a TOC-like entity? bool for_toc; - + + /// Are we generating this material for inclusion in a tooltip? + bool for_tooltip; + + /// Are we generating this material for use by advanced search? + bool for_search; + + /// Are we generating this material for instant preview? + bool for_preview; + /// Include all children notwithstanding the use of \includeonly bool includeall; + + /// Explicit output folder, if any is desired + std::string export_folder; };