tex2lyx: extend titling support

Rather than checking for hardcoded title commands such as \maketitle,
use the titlename and titletype as defined in the layout.

This now also includes title environments.

Fixes part of #6461
This commit is contained in:
Juergen Spitzmueller 2018-05-23 12:34:41 +02:00
parent da4e51a6c2
commit 429edc0a59

View File

@ -1793,6 +1793,16 @@ void parse_environment(Parser & p, ostream & os, bool outer,
preamble.registerAutomaticallyLoadedPackage("tipx"); preamble.registerAutomaticallyLoadedPackage("tipx");
} }
else if (name == parent_context.textclass.titlename()
&& parent_context.textclass.titletype() == TITLE_ENVIRONMENT) {
parse_text(p, os, FLAG_END, outer, parent_context);
// Just in case the environment is empty
parent_context.extra_stuff.erase();
// We must begin a new paragraph
parent_context.new_paragraph(os);
p.skip_spaces();
}
else if (name == "CJK") { else if (name == "CJK") {
// the scheme is \begin{CJK}{encoding}{mapping}text\end{CJK} // the scheme is \begin{CJK}{encoding}{mapping}text\end{CJK}
// It is impossible to decide if a CJK environment was in its own paragraph or within // It is impossible to decide if a CJK environment was in its own paragraph or within
@ -3630,7 +3640,9 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
continue; continue;
} }
else if (t.cs() == "makeindex" || t.cs() == "maketitle" || t.cs() == "makebeamertitle") { else if (t.cs() == "makeindex"
|| (t.cs() == context.textclass.titlename()
&& context.textclass.titletype() == TITLE_COMMAND_AFTER)) {
if (preamble.titleLayoutFound()) { if (preamble.titleLayoutFound()) {
// swallow this // swallow this
skip_spaces_braces(p); skip_spaces_braces(p);