From: Juergen Spitzmueller Date: Fri, 9 Jan 2015 10:24:45 +0000 (+0100) Subject: Add Question and Question* theorem types (bug #9015) X-Git-Tag: 2.2.0alpha1~1373 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=706960eba4e467b0d4512e8649b7e58569f9aa96;p=features.git Add Question and Question* theorem types (bug #9015) File format change. --- diff --git a/development/FORMAT b/development/FORMAT index 627fbb593c..ea3fa8a03f 100644 --- a/development/FORMAT +++ b/development/FORMAT @@ -11,6 +11,11 @@ adjustments are made to tex2lyx and bugs are fixed in lyx2lyx. ----------------------- +2015-01-09 Jürgen Spitzmüller + * Format incremented to 480: + Add self-defined Question* and Question lemma types to + theorems-ams-extended-bytype module. + 2014-08-31 Jürgen Spitzmüller * Format incremented to 479 Support for beamer lemma environment. diff --git a/lib/layouts/theorems-ams-extended-bytype.module b/lib/layouts/theorems-ams-extended-bytype.module index 1046d01292..7b355cadf2 100644 --- a/lib/layouts/theorems-ams-extended-bytype.module +++ b/lib/layouts/theorems-ams-extended-bytype.module @@ -33,6 +33,7 @@ Requires amsmath # - Acknowledgement # - Conclusion # - Assumption +# - Question # We need separate counters for each theorem-like style. Counter criterion @@ -55,6 +56,8 @@ Counter conclusion End Counter assumption End +Counter question +End Style Criterion @@ -405,4 +408,38 @@ Style Assumption* EndBabelPreamble End +Style Question + CopyStyle Theorem + DependsOn Theorem + LatexName question + LabelString "Question \thequestion." + Preamble + \theoremstyle{plain} + \newtheorem{question}{\protect\questionname} + EndPreamble + LangPreamble + \providecommand{\questionname}{_(Question)} + EndLangPreamble + BabelPreamble + \addto\captions$$lang{\renewcommand{\questionname}{_(Question)}} + EndBabelPreamble + LabelCounter question +End + +Style Question* + CopyStyle Theorem* + LatexName question* + LabelString "Question." + Preamble + \theoremstyle{plain} + \newtheorem*{question*}{\protect\questionname} + EndPreamble + LangPreamble + \providecommand{\questionname}{_(Question)} + EndLangPreamble + BabelPreamble + \addto\captions$$lang{\renewcommand{\questionname}{_(Question)}} + EndBabelPreamble +End + Input theorems-refprefix.inc diff --git a/lib/layouts/theorems-refprefix.inc b/lib/layouts/theorems-refprefix.inc index dc224e992e..87da6b7f11 100644 --- a/lib/layouts/theorems-refprefix.inc +++ b/lib/layouts/theorems-refprefix.inc @@ -89,3 +89,8 @@ End IfStyle Assumption RefPrefix assu End + + +IfStyle Question + RefPrefix que +End diff --git a/lib/lyx2lyx/LyX.py b/lib/lyx2lyx/LyX.py index 5c8c500620..658d0ec61e 100644 --- a/lib/lyx2lyx/LyX.py +++ b/lib/lyx2lyx/LyX.py @@ -85,7 +85,7 @@ format_relation = [("0_06", [200], minor_versions("0.6" , 4)), ("1_6", range(277,346), minor_versions("1.6" , 10)), ("2_0", range(346,414), minor_versions("2.0", 8)), ("2_1", range(414,475), minor_versions("2.1", 0)), - ("2_2", range(475,480), minor_versions("2.2", 0)) + ("2_2", range(475,481), minor_versions("2.2", 0)) ] #################################################################### diff --git a/lib/lyx2lyx/lyx_2_2.py b/lib/lyx2lyx/lyx_2_2.py index 172cb23f2c..eeea01e436 100644 --- a/lib/lyx2lyx/lyx_2_2.py +++ b/lib/lyx2lyx/lyx_2_2.py @@ -411,6 +411,75 @@ def revert_beamer_lemma(document): i = j + + +def revert_question_env(document): + """ + Reverts question and question* environments of + theorems-ams-extended-bytype module to ERT + """ + + # Do we use theorems-ams-extended-bytype module? + have_mod = False + mods = document.get_module_list() + for mod in mods: + if mod == "theorems-ams-extended-bytype": + have_mod = True + continue + + if not have_mod: + return + + consecutive = False + i = 0 + while True: + i = find_token(document.body, "\\begin_layout Question", i) + if i == -1: + return + + starred = document.body[i] == "\\begin_layout Question*" + + j = find_end_of_layout(document.body, i) + if j == -1: + document.warning("Malformed LyX document: Can't find end of Question layout") + i += 1 + continue + + # if this is not a consecutive env, add start command + begcmd = [] + if not consecutive: + if starred: + begcmd = put_cmd_in_ert("\\begin{question*}") + else: + begcmd = put_cmd_in_ert("\\begin{question}") + + # has this a consecutive theorem of same type? + consecutive = False + if starred: + consecutive = document.body[j + 2] == "\\begin_layout Question*" + else: + consecutive = document.body[j + 2] == "\\begin_layout Question" + + # if this is not followed by a consecutive env, add end command + if not consecutive: + if starred: + document.body[j : j + 1] = put_cmd_in_ert("\\end{question*}") + ["\\end_layout"] + else: + document.body[j : j + 1] = put_cmd_in_ert("\\end{question}") + ["\\end_layout"] + + document.body[i : i + 1] = ["\\begin_layout Standard", ""] + begcmd + + add_to_preamble(document, "\\providecommand{\questionname}{Question}") + + if starred: + add_to_preamble(document, "\\theoremstyle{plain}\n" \ + "\\newtheorem*{question*}{\\protect\\questionname}") + else: + add_to_preamble(document, "\\theoremstyle{plain}\n" \ + "\\newtheorem{question}{\\protect\\questionname}") + + i = j + ## # Conversion hub @@ -425,10 +494,12 @@ convert = [ [476, []], [477, []], [478, []], - [479, []] + [479, []], + [480, []] ] revert = [ + [479, [revert_question_env]], [478, [revert_beamer_lemma]], [477, [revert_xarrow]], [476, [revert_swissgerman]], diff --git a/src/version.h b/src/version.h index ffae5c4f40..f29b0494c1 100644 --- a/src/version.h +++ b/src/version.h @@ -36,8 +36,8 @@ extern char const * const lyx_version_info; // Do not remove the comment below, so we get merge conflict in // independent branches. Instead add your own. -#define LYX_FORMAT_LYX 479 // spitz: beamer Lemma layout -#define LYX_FORMAT_TEX2LYX 479 +#define LYX_FORMAT_LYX 480 // spitz: question and question* environments +#define LYX_FORMAT_TEX2LYX 480 #if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX #ifndef _MSC_VER