From acf3e3a13995836fb56b4d6e91c14265bf8ab6c5 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Sat, 28 Nov 2015 23:42:09 -0500 Subject: [PATCH] Clean up Solution and Solution* reversion code a bit. --- lib/lyx2lyx/lyx_2_2.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/lib/lyx2lyx/lyx_2_2.py b/lib/lyx2lyx/lyx_2_2.py index b2fb40740b..d30f782cb1 100644 --- a/lib/lyx2lyx/lyx_2_2.py +++ b/lib/lyx2lyx/lyx_2_2.py @@ -2121,9 +2121,10 @@ def revert_solution(document): if mod == "theorems-std" or mod == "theorems-bytype" \ or mod == "theorems-ams" or mod == "theorems-ams-bytype": have_mod = True - continue + break if not have_mod: return + consecutive = False is_starred = False i = 0 @@ -2131,6 +2132,7 @@ def revert_solution(document): i = find_token(document.body, "\\begin_layout Solution", i) if i == -1: return + is_starred = document.body[i].startswith("\\begin_layout Solution*") if is_starred == True: LaTeXName = "sol*" @@ -2140,31 +2142,35 @@ def revert_solution(document): LaTeXName = "sol" LyXName = "Solution" theoremName = "newtheorem" + j = find_end_of_layout(document.body, i) if j == -1: document.warning("Malformed LyX document: Can't find end of " + LyXName + " layout") i += 1 continue + # if this is not a consecutive env, add start command begcmd = [] - if not consecutive: - begcmd = put_cmd_in_ert("\\begin{" + LaTeXName + "}" ) + begcmd = put_cmd_in_ert("\\begin{%s}" % (LaTeXName)) + # has this a consecutive theorem of same type? - consecutive = False consecutive = document.body[j + 2] == "\\begin_layout " + LyXName + # if this is not followed by a consecutive env, add end command if not consecutive: - document.body[j : j + 1] = put_cmd_in_ert("\\end{" + LaTeXName + "}") + ["\\end_layout"] + document.body[j : j + 1] = put_cmd_in_ert("\\end{%s}" % (LaTeXName)) + ["\\end_layout"] + document.body[i : i + 1] = ["\\begin_layout Standard", ""] + begcmd + add_to_preamble(document, "\\theoremstyle{definition}") - if mod == "theorems-std" or mod == "theorems-ams": - if is_starred: - add_to_preamble(document, "\\" + theoremName + "{" + LaTeXName + "}{\\protect\\solutionname}") - else: - add_to_preamble(document, "\\" + theoremName + "{" + LaTeXName + "}[thm]{\\protect\\solutionname}") - if mod == "theorems-bytype" or mod == "theorems-ams-bytype": - add_to_preamble(document, "\\" + theoremName + "{" + LaTeXName + "}{\\protect\\solutionname}") + if is_starred or mod == "theorems-bytype" or mod == "theorems-ams-bytype": + add_to_preamble(document, "\\%s{%s}{\\protect\\solutionname}" % \ + (theoremName, LaTeXName)) + else: # mod == "theorems-std" or mod == "theorems-ams" and not is_starred + add_to_preamble(document, "\\%s{%s}[thm]{\\protect\\solutionname}" % \ + (theoremName, LaTeXName)) + add_to_preamble(document, "\\providecommand{\solutionname}{Solution}") i = j