dryrun(false), silent(false), pass_thru(false),
html_disable_captions(false), html_in_par(false),
html_make_pars(true), for_toc(false), for_tooltip(false),
- for_search(false), for_preview(false), includeall(false)
+ for_search(false), for_preview(false), includeall(false),
+ already_title(false), issued_title_cmd(false)
{
// Note: in PreviewLoader::Impl::dumpPreamble
// OutputParams runparams(0);
/// Explicit output folder, if any is desired
std::string export_folder;
+
+ /// Have we already output the title?
+ mutable bool already_title;
+ /// Used to signal we need to output \end{TITLEBLOCK} when title
+ /// environment is used.
+ mutable bool issued_title_cmd;
};
// 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();
// Did we already warn about inTitle layout mixing? (we only warn once)
tclass.plainLayout() : par->layout();
if (layout.intitle) {
- if (already_title) {
+ if (runparams.already_title) {
if (!gave_layout_warning && !runparams.dryrun) {
gave_layout_warning = true;
frontend::Alert::warning(_("Error in latexParagraphs"),
"could lead to missing or incorrect output."
), layout.name()));
}
- } else if (!was_title) {
- was_title = true;
+ } else if (!runparams.issued_title_cmd) {
+ runparams.issued_title_cmd = true;
if (tclass.titletype() == TITLE_ENVIRONMENT) {
os << "\\begin{"
<< from_ascii(tclass.titlename())
<< "}\n";
}
}
- } else if (was_title && !already_title && !layout.inpreamble) {
+ } else if (runparams.issued_title_cmd &&
+ !runparams.already_title && !layout.inpreamble) {
if (tclass.titletype() == TITLE_ENVIRONMENT) {
os << "\\end{" << from_ascii(tclass.titlename())
<< "}\n";
os << "\\" << from_ascii(tclass.titlename())
<< "\n";
}
- already_title = true;
- was_title = false;
+ runparams.already_title = true;
+ runparams.issued_title_cmd = false;
}
if (layout.isCommand() && !layout.latexname().empty()
// But if we're in a branch, this is not the end of
// the document. (There may be some other checks of this
// kind that are needed.)
- if (was_title && !already_title && !runparams.inbranch) {
+ if (runparams.issued_title_cmd &&
+ !runparams.already_title && !runparams.inbranch) {
if (tclass.titletype() == TITLE_ENVIRONMENT) {
os << "\\end{" << from_ascii(tclass.titlename())
<< "}\n";
+ runparams.issued_title_cmd = false;
} else {
os << "\\" << from_ascii(tclass.titlename())
<< "\n";
}
+ runparams.already_title = true;
}
if (maintext && !is_child && runparams.openbtUnit)