]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/lyx_2_2.py
Simplify a bunch of tests in lyx2lyx code.
[lyx.git] / lib / lyx2lyx / lyx_2_2.py
index e041a6bfd91ca35092a9b45ac12da4dda85ee7f2..c4121c13422b7e2bf68ae8a91439293c5e710de9 100644 (file)
@@ -31,7 +31,7 @@ import sys, os
 #  del_token, check_token, get_option_value
 
 from lyx2lyx_tools import add_to_preamble, put_cmd_in_ert, lyx2latex, \
-  length_in_bp#, \
+  length_in_bp
 #  insert_to_preamble, latex_length, revert_flex_inset, \
 #  revert_font_attrs, hex2ratio, str2bool
 
@@ -311,11 +311,11 @@ def revert_smash(document):
     i = find_token(document.header, "\\use_package amsmath", 0)
     if i == -1:
         document.warning("Malformed LyX document: Can't find \\use_package amsmath.")
-        return;
+        return
     value = get_value(document.header, "\\use_package amsmath", i).split()[1]
     if value != "1":
         # nothing to do if package is not auto but on or off
-        return;
+        return
     j = 0
     while True:
         j = find_token(document.body, '\\begin_inset Formula', j)
@@ -486,14 +486,7 @@ def revert_question_env(document):
     """
 
     # 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:
+    if not "theorems-ams-extended-bytype" in document.get_module_list():
         return
 
     consecutive = False
@@ -798,15 +791,7 @@ def revert_sigplan_doi(document):
 def revert_ex_itemargs(document):
     " Reverts \\item arguments of the example environments (Linguistics module) to TeX-code "
 
-    # Do we use the linguistics module?
-    have_mod = False
-    mods = document.get_module_list()
-    for mod in mods:
-        if mod == "linguistics":
-            have_mod = True
-            continue
-
-    if not have_mod:
+    if not "linguistics" in document.get_module_list():
         return
 
     i = 0
@@ -837,15 +822,7 @@ def revert_ex_itemargs(document):
 def revert_forest(document):
     " Reverts the forest environment (Linguistics module) to TeX-code "
 
-    # Do we use the linguistics module?
-    have_mod = False
-    mods = document.get_module_list()
-    for mod in mods:
-        if mod == "linguistics":
-            have_mod = True
-            continue
-
-    if not have_mod:
+    if not "linguistics" in document.get_module_list():
         return
 
     i = 0
@@ -876,15 +853,7 @@ def revert_forest(document):
 def revert_glossgroup(document):
     " Reverts the GroupGlossedWords inset (Linguistics module) to TeX-code "
 
-    # Do we use the linguistics module?
-    have_mod = False
-    mods = document.get_module_list()
-    for mod in mods:
-        if mod == "linguistics":
-            have_mod = True
-            continue
-
-    if not have_mod:
+    if not "linguistics" in document.get_module_list():
         return
 
     i = 0
@@ -909,15 +878,7 @@ def revert_glossgroup(document):
 def revert_newgloss(document):
     " Reverts the new Glosse insets (Linguistics module) to the old format "
 
-    # Do we use the linguistics module?
-    have_mod = False
-    mods = document.get_module_list()
-    for mod in mods:
-        if mod == "linguistics":
-            have_mod = True
-            continue
-
-    if not have_mod:
+    if not "linguistics" in document.get_module_list():
         return
 
     glosses = ("\\begin_inset Flex Glosse", "\\begin_inset Flex Tri-Glosse")
@@ -965,15 +926,7 @@ def revert_newgloss(document):
 def convert_newgloss(document):
     " Converts Glosse insets (Linguistics module) to the new format "
 
-    # Do we use the linguistics module?
-    have_mod = False
-    mods = document.get_module_list()
-    for mod in mods:
-        if mod == "linguistics":
-            have_mod = True
-            continue
-
-    if not have_mod:
+    if not "linguistics" in document.get_module_list():
         return
 
     glosses = ("\\begin_inset Flex Glosse", "\\begin_inset Flex Tri-Glosse")
@@ -1086,7 +1039,7 @@ def convert_origin(document):
     i = find_token(document.header, "\\textclass ", 0)
     if i == -1:
         document.warning("Malformed LyX document: No \\textclass!!")
-        return;
+        return
     if document.dir == "":
         origin = "stdin"
     else:
@@ -1121,7 +1074,7 @@ def revert_origin(document):
     i = find_token(document.header, "\\origin ", 0)
     if i == -1:
         document.warning("Malformed LyX document: No \\origin!!")
-        return;
+        return
     del document.header[i]
 
 
@@ -2105,56 +2058,81 @@ def revert_fontsettings(document):
                 document.header[i:i+1] = [f + ' ' + line[q1+1:q2]]
         else:
             if use_non_tex_fonts == "true":
-                document.header[i:i+1] = [f + ' ' + line.split()[2]]
-            else:
                 document.header[i:i+1] = [f + ' ' + line.split()[1]]
+            else:
+                document.header[i:i+1] = [f + ' ' + line.split()[0]]
         j = j + 1
 
 
 def revert_solution(document):
-    " Reverts the solution environmen of the theorem module to TeX code "
+    " Reverts the solution environment of the theorem module to TeX code "
 
-    # Do we use theorems-std module?
+    # Do we use one of the modules that provides Solution?
     have_mod = False
     mods = document.get_module_list()
     for mod in mods:
-        if mod == "theorems-std" or mod == "theorems-bytype":
+        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
     while True:
         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*"
+            LyXName = "Solution*"
+            theoremName = "newtheorem*"
+        else:
+            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 Solution layout")
+            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{sol}")
+            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 Solution"
+        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{sol}") + ["\\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 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}")
-        if mod == "theorems-std":
-            add_to_preamble(document, "\\theoremstyle{plain}\n" \
-                                      "\\newtheorem{sol}[thm]{\\protect\\solutionname}")
-        if mod == "theorems-bytype":
-            add_to_preamble(document, "\\theoremstyle{definition}\n" \
-                                      "\\newtheorem{sol}{\\protect\\solutionname}")
         i = j
 
 
+def revert_verbatim_star(document):
+    from lyx_2_1 import revert_verbatim
+    revert_verbatim(document, True)
+
+
 ##
 # Conversion hub
 #
@@ -2191,10 +2169,12 @@ convert = [
            [499, [convert_moderncv]],
            [500, []],
            [501, [convert_fontsettings]],
-           [502, []]
+           [502, []],
+           [503, []]
           ]
 
 revert =  [
+           [502, [revert_verbatim_star]],
            [501, [revert_solution]],
            [500, [revert_fontsettings]],
            [499, [revert_achemso]],