#include "Changes.h"
#include <memory>
+#include <set>
namespace lyx {
LUATEX,
PDFLATEX,
XETEX,
- XML,
+ DOCBOOK5,
HTML,
TEXT,
LYX
SUBFLOAT
};
+ enum CtObject {
+ CT_NORMAL,
+ CT_OBJECT,
+ CT_DISPLAYOBJECT,
+ CT_UDISPLAYOBJECT,
+ CT_OMITOBJECT
+ };
+
OutputParams(Encoding const *);
~OutputParams();
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
*/
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, \sout or \xout). Insets that output latex commands relying
- on local assignments (such as \cite) should enclose such
+ 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;
*/
Font const * local_font;
- /** Document language babel name
+ /** Document language lyx name
*/
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;
+ /// 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
*/
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;
*/
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)
+ * 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.
*/
/** 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
*/
/// 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;
/// 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;