From c41f9f7ed7a890523acd387868472080d0c68df2 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Wed, 23 May 2018 12:34:41 +0200 Subject: [PATCH] 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 (cherry picked from commit 429edc0a59a0509445bb93cd7d60c3d9ff36bd6b) --- src/tex2lyx/text.cpp | 14 +++++++++++++- status.23x | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index f4002b044a..f89e5a91ac 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -1792,6 +1792,16 @@ void parse_environment(Parser & p, ostream & os, bool outer, preamble.registerAutomaticallyLoadedPackage("tipa"); 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") { // the scheme is \begin{CJK}{encoding}{mapping}text\end{CJK} @@ -3626,7 +3636,9 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, 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()) { // swallow this skip_spaces_braces(p); diff --git a/status.23x b/status.23x index 9d44843e00..8ad20bc562 100644 --- a/status.23x +++ b/status.23x @@ -25,6 +25,8 @@ What's new * TEX2LYX IMPROVEMENTS +- Improve import of titling commands other than \maketitle (bug 6461). + * USER INTERFACE -- 2.39.5