]> git.lyx.org Git - features.git/commitdiff
Improve overprint conversion.
authorJuergen Spitzmueller <spitz@lyx.org>
Thu, 20 Dec 2012 12:29:04 +0000 (13:29 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Thu, 20 Dec 2012 12:29:04 +0000 (13:29 +0100)
Deeply nested sequences are still problematic.

lib/lyx2lyx/lyx_2_1.py
lib/lyx2lyx/parser_tools.py

index 952d65b19852d9ea5645382d5fcfcab067eb5d77..2e3ba477aefceac4c1044600307e8f0836e5032e 100644 (file)
@@ -2732,7 +2732,11 @@ def convert_overprint(document):
             continue
         endseq = j
         subst = ["\\begin_layout Standard"] + put_cmd_in_ert("\\begin{overprint}")
-        esubst = ["\\end_layout", "", "\\begin_layout Standard"] + put_cmd_in_ert("\\end{overprint}") + ["\\end_layout"]
+        esubst = list()
+        if document.body[j] == "\\end_deeper":
+            esubst = ["", "\\begin_layout Standard"] + put_cmd_in_ert("\\end{overprint}") + ["\\end_layout"]
+        else:
+            esubst = ["\\end_layout", "", "\\begin_layout Standard"] + put_cmd_in_ert("\\end{overprint}") + ["\\end_layout"]
         endseq = endseq + len(esubst) - len(document.body[j : j])
         document.body[j : j] = esubst
         argbeg = find_token(document.body, "\\begin_inset Argument 1", i, j)
index 9af9b60a7e5397cfb6258bae118169336b3f939f..d043f9278bdeea9c8c63da766d69db24f56cd4d1 100644 (file)
@@ -106,7 +106,9 @@ find_end_of_layout(lines, i):
 
 find_end_of_sequence(lines, i):
   Find the end of the sequence of layouts of the same kind.
-  Considers nesting.
+  Considers nesting. If the last paragraph in sequence is nested,
+  the position of the last \end_deeper is returned, else
+  the position of the last \end_layout.
 
 is_in_inset(lines, i, inset):
   Checks if line i is in an inset of the given type.
@@ -513,6 +515,7 @@ def find_end_of_sequence(lines, i):
           j = find_end_of(lines, i, "\\begin_deeper", "\\end_deeper")
           if j != -1:
               i = j
+              endlay = j
               continue
       if m and m.group(1) == layout:
           endlay = find_end_of_layout(lines, i)