return
# find end of inset
j = find_token(document.body, "\\end_inset" , i)
- # assure we found the end_inset of the current inset
- if j > i + 6 or j == -1:
+ if j == -1:
document.warning("Malformed LyX document: Can't find end of line inset.")
return
# determine the optional offset
- k = find_token(document.body, 'offset', i, j)
- if k != -1:
- offset = document.body[k][8:-1]
- else:
- offset = ""
+ offset = get_value(document.body, 'offset', i, j).strip('"')
+ if offset:
+ offset = '[' + offset + ']'
# determine the width
- l = find_token(document.body, 'width', i, j)
- if l != -1:
- width = document.body[l][7:-1]
- else:
- width = "100col%"
+ width = get_value(document.body, 'width', i, j, "100col%").strip('"')
+ width = latex_length(width)[1]
# determine the height
- m = find_token(document.body, 'height', i, j)
- if m != -1:
- height = document.body[m][8:-1]
- else:
- height = "1pt"
+ height = get_value(document.body, 'height', i, j, "1pt").strip('"')
+ height = latex_length(height)[1]
# output the \rule command
- if offset:
- subst = "\\rule[" + offset + "]{" + width + "}{" + height + "}"
- else:
- subst = "\\rule{" + width + "}{" + height + "}"
+ subst = "\\rule[" + offset + "]{" + width + "}{" + height + "}"
document.body[i:j + 1] = put_cmd_in_ert(subst)
- i += 1
+ i += len(subst) - (j - i)
def revert_diagram(document):
" Add the feyn package if \\Diagram is used in math "
i = 0
- re_diagram = re.compile(r'\\begin_inset Formula .*\\Diagram', re.DOTALL)
while True:
i = find_token(document.body, '\\begin_inset Formula', i)
if i == -1:
if j == -1:
document.warning("Malformed LyX document: Can't find end of Formula inset.")
return
- m = re_diagram.search("\n".join(document.body[i:j]))
- if not m:
- i += 1
+ lines = "\n".join(document.body[i:j])
+ if lines.find("\\Diagram") == -1:
+ i = j
continue
- add_to_preamble(document, ["% this command was inserted by lyx2lyx"])
- add_to_preamble(document, "\\usepackage{feyn}")
+ add_to_preamble(document, ["% lyx2lyx feyn package insertion ", "\\usepackage{feyn}"])
# only need to do it once!
return