Improve overprint conversion.

Deeply nested sequences are still problematic.
This commit is contained in:
Juergen Spitzmueller 2012-12-20 13:29:04 +01:00
parent bfde26bf12
commit ef541d474c
2 changed files with 9 additions and 2 deletions

View 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)

View 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)