diff --git a/src/OutputParams.cpp b/src/OutputParams.cpp index 3ef6c7ace8..0df7198f87 100644 --- a/src/OutputParams.cpp +++ b/src/OutputParams.cpp @@ -20,7 +20,8 @@ namespace lyx { OutputParams::OutputParams(Encoding const * enc) : flavor(LATEX), math_flavor(NotApplicable), nice(false), moving_arg(false), - inulemcmd(false), local_font(0), master_language(0), encoding(enc), + inulemcmd(false), inTitle(false), didTitle(false). local_font(0), + master_language(0), encoding(enc), free_spacing(false), use_babel(false), use_polyglossia(false), use_indices(false), use_japanese(false), linelen(0), depth(0), exportdata(new ExportData), diff --git a/src/OutputParams.h b/src/OutputParams.h index c9129eae3e..5631907760 100644 --- a/src/OutputParams.h +++ b/src/OutputParams.h @@ -99,6 +99,14 @@ public: */ mutable bool inulemcmd; + /** Whether we are in the process of outputting title information. + */ + mutable bool inTitle; + + /** Whether we have arleady output \maketitle or whatever. + */ + mutable bool didTitle; + /** the font at the point where the inset is */ Font const * local_font; diff --git a/src/output_latex.cpp b/src/output_latex.cpp index 63e61ac4b1..cebc1ed5be 100644 --- a/src/output_latex.cpp +++ b/src/output_latex.cpp @@ -978,9 +978,6 @@ void latexParagraphs(Buffer const & buf, pit_type pit = runparams.par_begin; // lastpit is for the language check after the loop. pit_type lastpit = pit; - // variables used in the loop: - bool was_title = false; - bool already_title = false; DocumentClass const & tclass = bparams.documentClass(); for (; pit < runparams.par_end; ++pit) { @@ -993,12 +990,12 @@ void latexParagraphs(Buffer const & buf, tclass.plainLayout() : par->layout(); if (layout.intitle) { - if (already_title) { + if (runparams.didTitle) { LYXERR0("Error in latexParagraphs: You" " should not mix title layouts" " with normal ones."); - } else if (!was_title) { - was_title = true; + } else if (!runparams.inTitle) { + runparams.inTitle = true; if (tclass.titletype() == TITLE_ENVIRONMENT) { os << "\\begin{" << from_ascii(tclass.titlename()) @@ -1006,7 +1003,7 @@ void latexParagraphs(Buffer const & buf, texrow.newline(); } } - } else if (was_title && !already_title) { + } else if (runparams.inTitle && !runparams.didTitle) { if (tclass.titletype() == TITLE_ENVIRONMENT) { os << "\\end{" << from_ascii(tclass.titlename()) << "}\n"; @@ -1016,8 +1013,8 @@ void latexParagraphs(Buffer const & buf, << "\n"; } texrow.newline(); - already_title = true; - was_title = false; + runparams.didTitle = true; + runparams.inTitle = false; } @@ -1043,7 +1040,7 @@ void latexParagraphs(Buffer const & buf, } // It might be that we only have a title in this document - if (was_title && !already_title) { + if (runparams.inTitle && !runparams.didTitle) { if (tclass.titletype() == TITLE_ENVIRONMENT) { os << "\\end{" << from_ascii(tclass.titlename()) << "}\n";