[LyX/master] Amend e569426b158
Juergen Spitzmueller
spitz at lyx.org
Tue Aug 4 09:44:37 UTC 2026
commit 824c1df86c7f9240dd44f7c7122a4f9b14ba65a0
Author: Juergen Spitzmueller <spitz at lyx.org>
Date: Tue Aug 4 11:42:57 2026 +0200
Amend e569426b158
Use the real command name as argument, i.e.
\start_of_matter frontmatter
rather than
\start of matter front
This will allow us to add more variants (e.g., \frontmatter* from
memoir or KOMA) later.
It also allows us to slightly simplify the code.
---
development/FORMAT | 2 +-
lib/lyx2lyx/lyx_2_6.py | 39 ++++++++++++++++---------------
lib/ui/stdmenus.inc | 6 ++---
src/LyXAction.cpp | 2 +-
src/ParagraphParameters.cpp | 12 +++++-----
src/Text.cpp | 12 +++++-----
src/tex2lyx/text.cpp | 56 ++++-----------------------------------------
7 files changed, 42 insertions(+), 87 deletions(-)
diff --git a/development/FORMAT b/development/FORMAT
index fae968c761..bda751d173 100644
--- a/development/FORMAT
+++ b/development/FORMAT
@@ -10,7 +10,7 @@ changes happened in particular if possible. A good example would be
2026-08-03 Jürgen Spitzmüller <spitz at lyx.org>
* Format incremented to 657: Support for \fronmatter, \mainmatter,
and \backmatter via paragraph parameter
- \start_of_matter {front,main,back}
+ \start_of_matter {frontmatter,mainmatter,backmatter}
2026-08-02 Jürgen Spitzmüller <spitz at lyx.org>
* Format incremented to 656: Support for parfillskip
diff --git a/lib/lyx2lyx/lyx_2_6.py b/lib/lyx2lyx/lyx_2_6.py
index 7302e78b02..a335fa5204 100644
--- a/lib/lyx2lyx/lyx_2_6.py
+++ b/lib/lyx2lyx/lyx_2_6.py
@@ -1644,25 +1644,28 @@ def revert_parfillskip(document):
def revert_matters(document):
"""Revert \\frontmatter, \\mainmatter and \\backmatter to ERT"""
- for matter in ["front", "main", "back"]:
- i = 0
- while True:
- i = find_token(document.body, "\\start_of_matter " + matter, i)
- if i == -1:
- break
-
- # Add ERT
- lay = get_containing_layout(document.body, i)
- if lay == False:
- document.warning("Matter has no layout!")
- i += 1
- continue
-
- beglay = lay[1]
+ i = 0
+ while True:
+ i = find_token(document.body, "\\start_of_matter ", i)
+ if i == -1:
+ break
+ matter = get_value(document.body, "\\start_of_matter", i)
+ if matter == "":
del document.body[i]
- ert = put_cmd_in_ert(["\\" + matter + "matter"], as_paragraph=True)
- document.body[beglay : beglay] = ert
- i = beglay + len(ert)
+ break
+
+ # Add ERT
+ lay = get_containing_layout(document.body, i)
+ if lay == False:
+ document.warning("Matter has no layout!")
+ i += 1
+ continue
+
+ beglay = lay[1]
+ del document.body[i]
+ ert = put_cmd_in_ert(["\\" + matter], as_paragraph=True)
+ document.body[beglay : beglay] = ert
+ i = beglay + len(ert)
##
# Conversion hub
diff --git a/lib/ui/stdmenus.inc b/lib/ui/stdmenus.inc
index 33b5b4523c..10f18606f6 100644
--- a/lib/ui/stdmenus.inc
+++ b/lib/ui/stdmenus.inc
@@ -594,9 +594,9 @@ Menuset
End
Menu "matter"
- OptItem "Front Matter|F" "matter front"
- OptItem "Main Matter|M" "matter main"
- OptItem "Back Matter|B" "matter back"
+ OptItem "Front Matter|F" "matter frontmatter"
+ OptItem "Main Matter|M" "matter mainmatter"
+ OptItem "Back Matter|B" "matter backmatter"
End
#
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index f7e174e1bf..de5c69f4a8 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -302,7 +302,7 @@ void LyXAction::init()
* \var lyx::FuncCode lyx::LFUN_MATTER
* \li Action: Start (or unstart) matter on the given cursor position.
* \li Syntax: matter <type>
- * \li Params: <type>: front, main, back.
+ * \li Params: <type>: frontmatter, mainmatter, backmatter.
* \li Origin: daniel/spitz, 3 Aug 2026
* \endvar
*/
diff --git a/src/ParagraphParameters.cpp b/src/ParagraphParameters.cpp
index ec50faafdf..2e19cdeb20 100644
--- a/src/ParagraphParameters.cpp
+++ b/src/ParagraphParameters.cpp
@@ -235,11 +235,11 @@ void ParagraphParameters::read(Lexer & lex, bool merge)
} else if (token == "\\start_of_matter") {
lex.next();
string const tmp = rtrim(lex.getString());
- if (tmp == "front")
+ if (tmp == "frontmatter")
startOfMatter(MATTER_FRONT);
- else if (tmp == "main")
+ else if (tmp == "mainmatter")
startOfMatter(MATTER_MAIN);
- else if (tmp == "back")
+ else if (tmp == "backmatter")
startOfMatter(MATTER_BACK);
} else if (token == "\\paragraph_spacing") {
lex.next();
@@ -307,11 +307,11 @@ void ParagraphParameters::write(ostream & os) const
if (startOfMatter() != MATTER_NONE) {
string tmp;
if (startOfMatter() == MATTER_FRONT)
- tmp = "front";
+ tmp = "frontmatter";
else if (startOfMatter() == MATTER_MAIN)
- tmp = "main";
+ tmp = "mainmatter";
else if (startOfMatter() == MATTER_BACK)
- tmp = "back";
+ tmp = "backmatter";
os << "\\start_of_matter " << tmp << "\n";
}
diff --git a/src/Text.cpp b/src/Text.cpp
index 0a8be834fe..76ff131454 100644
--- a/src/Text.cpp
+++ b/src/Text.cpp
@@ -4144,13 +4144,13 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
Paragraph & par = cur.paragraph();
docstring const & arg = cmd.argument();
Matter start = MATTER_NONE;
- if (arg == "front") {
+ if (arg == "frontmatter") {
start = par.params().startOfMatter() == MATTER_FRONT
? MATTER_NONE : MATTER_FRONT;
- } else if (arg == "main") {
+ } else if (arg == "mainmatter") {
start = par.params().startOfMatter() == MATTER_MAIN
? MATTER_NONE : MATTER_MAIN;
- } else if (arg == "back") {
+ } else if (arg == "backmatter") {
start = par.params().startOfMatter() == MATTER_BACK
? MATTER_NONE : MATTER_BACK;
}
@@ -6430,11 +6430,11 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
// FIXME We really should not allow this to be put, e.g.,
// in a footnote, or in ERT. But it would make sense in a
// branch, so I'm not sure what to do.
- if (cmd.argument() == "front")
+ if (cmd.argument() == "frontmatter")
status.setOnOff(cur.paragraph().params().startOfMatter() == MATTER_FRONT);
- else if (cmd.argument() == "main")
+ else if (cmd.argument() == "mainmatter")
status.setOnOff(cur.paragraph().params().startOfMatter() == MATTER_MAIN);
- else if (cmd.argument() == "back")
+ else if (cmd.argument() == "backmatter")
status.setOnOff(cur.paragraph().params().startOfMatter() == MATTER_BACK);
else
enable = false;
diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp
index 31b509ffcc..7cb59232ae 100644
--- a/src/tex2lyx/text.cpp
+++ b/src/tex2lyx/text.cpp
@@ -3945,63 +3945,15 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
continue;
}
- if (t.cs() == "frontmatter") {
- context.add_par_extra_stuff("\\start_of_matter front\n");
+ if (t.cs() == "frontmatter" || t.cs() == "mainmatter" || t.cs() == "backmatter") {
+ context.add_par_extra_stuff("\\start_of_matter " + t.cs() + "\n");
// We need to start a new paragraph. Otherwise the
- // frontmatter in 'bla\frontmatter\chapter{' would start
+ // switch in 'bla\<type>matter\chapter{' would start
// too late.
context.new_paragraph(os);
// We need to make sure that the paragraph is
// generated even if it is empty. Otherwise the
- // frontmatter in '\par\frontmatter\par\chapter{' would
- // start too late.
- context.check_layout(os);
- // FIXME: This is a hack to prevent paragraph
- // deletion if it is empty. Handle this better!
- output_comment(p, os,
- "dummy comment inserted by tex2lyx to "
- "ensure that this paragraph is not empty",
- context);
- // Both measures above may generate an additional
- // empty paragraph, but that does not hurt, because
- // whitespace does not matter here.
- eat_whitespace(p, os, context, true);
- continue;
- }
-
- if (t.cs() == "mainmatter") {
- context.add_par_extra_stuff("\\start_of_matter main\n");
- // We need to start a new paragraph. Otherwise the
- // mainmatter in 'bla\mainmatter\chapter{' would start
- // too late.
- context.new_paragraph(os);
- // We need to make sure that the paragraph is
- // generated even if it is empty. Otherwise the
- // mainmatter in '\par\mainmatter\par\chapter{' would
- // start too late.
- context.check_layout(os);
- // FIXME: This is a hack to prevent paragraph
- // deletion if it is empty. Handle this better!
- output_comment(p, os,
- "dummy comment inserted by tex2lyx to "
- "ensure that this paragraph is not empty",
- context);
- // Both measures above may generate an additional
- // empty paragraph, but that does not hurt, because
- // whitespace does not matter here.
- eat_whitespace(p, os, context, true);
- continue;
- }
-
- if (t.cs() == "backmatter") {
- context.add_par_extra_stuff("\\start_of_matter back\n");
- // We need to start a new paragraph. Otherwise the
- // mainmatter in 'bla\mainmatter\chapter{' would start
- // too late.
- context.new_paragraph(os);
- // We need to make sure that the paragraph is
- // generated even if it is empty. Otherwise the
- // mainmatter in '\par\mainmatter\par\chapter{' would
+ // switch in '\par\<type>matter\par\chapter{' would
// start too late.
context.check_layout(os);
// FIXME: This is a hack to prevent paragraph
More information about the lyx-cvs
mailing list