i += 1
-def revert_charstyles(document, name, LaTeXname, changed):
- " Reverts character styles to TeX code "
+def revert_font_attrs(document, name, LaTeXname):
+ " Reverts font changes to TeX code "
i = 0
+ changed = False
while True:
i = find_token(document.body, name + ' on', i)
if i == -1:
return
indices = get_value(document.header, "\\use_indices", i)
preamble = ""
- if indices == "true":
+ useindices = (indices == "true")
+ if useindices:
preamble += "\\usepackage{splitidx}\n"
del document.header[i]
+
+ # deal with index declarations in the preamble
i = 0
while True:
i = find_token(document.header, "\\index", i)
if k == -1:
document.warning("Malformed LyX document: Missing \\end_index.")
return
- line = document.header[i]
- l = re.compile(r'\\index (.*)$')
- m = l.match(line)
- iname = m.group(1)
- ishortcut = get_value(document.header, '\\shortcut', i, k)
- if ishortcut != "" and indices == "true":
- preamble += "\\newindex[" + iname + "]{" + ishortcut + "}\n"
+ if useindices:
+ line = document.header[i]
+ l = re.compile(r'\\index (.*)$')
+ m = l.match(line)
+ iname = m.group(1)
+ ishortcut = get_value(document.header, '\\shortcut', i, k)
+ if ishortcut != "":
+ preamble += "\\newindex[" + iname + "]{" + ishortcut + "}\n"
del document.header[i:k + 1]
- i = 0
if preamble != "":
insert_to_preamble(0, document, preamble)
+
+ # deal with index insets
+ # these need to have the argument removed
i = 0
while True:
i = find_token(document.body, "\\begin_inset Index", i)
else:
k = find_end_of_inset(document.body, i)
if k == -1:
- return
+ document.warning("Can't find end of index inset!")
+ i += 1
+ continue
content = lyx2latex(document, document.body[i:k])
# escape quotes
content = content.replace('"', r'\"')
- subst = [old_put_cmd_in_ert("\\sindex[" + itype + "]{" + content + "}")]
+ subst = put_cmd_in_ert("\\sindex[" + itype + "]{" + content + "}")
document.body[i:k + 1] = subst
i = i + 1
+
+ # deal with index_print insets
i = 0
while True:
i = find_token(document.body, "\\begin_inset CommandInset index_print", i)
if ptype == "idx":
j = find_token(document.body, "type", i, k)
del document.body[j]
- elif indices == "false":
+ elif not useindices:
del document.body[i:k + 1]
else:
- subst = [old_put_cmd_in_ert("\\printindex[" + ptype + "]{}")]
+ subst = put_cmd_in_ert("\\printindex[" + ptype + "]{}")
document.body[i:k + 1] = subst
i = i + 1
document.warning("Malformed LyX document: Missing \\use_indices.")
return
indices = get_value(document.header, "\\use_indices", i)
+ useindices = (indices == "true")
i = 0
while True:
i = find_token(document.body, "\\begin_inset CommandInset index_print", i)
k = find_end_of_inset(document.body, i)
ctype = get_value(document.body, 'LatexCommand', i, k)
if ctype != "printsubindex":
- i = i + 1
+ i = k + 1
continue
ptype = get_value(document.body, 'type', i, k).strip('"')
- if indices == "false":
+ if not useindices:
del document.body[i:k + 1]
else:
- subst = [old_put_cmd_in_ert("\\printsubindex[" + ptype + "]{}")]
+ subst = put_cmd_in_ert("\\printsubindex[" + ptype + "]{}")
document.body[i:k + 1] = subst
i = i + 1
document.warning("Malformed LyX document: Missing \\use_indices.")
return
indices = get_value(document.header, "\\use_indices", i)
+ useindices = (indices == "true")
i = 0
while True:
i = find_token(document.body, "\\begin_inset CommandInset index_print", i)
k = find_end_of_inset(document.body, i)
ctype = get_value(document.body, 'LatexCommand', i, k)
if ctype != "printindex*" and ctype != "printsubindex*":
- i = i + 1
+ i = k
continue
- if indices == "false":
+ if not useindices:
del document.body[i:k + 1]
else:
- subst = [old_put_cmd_in_ert("\\" + ctype + "{}")]
+ subst = put_cmd_in_ert("\\" + ctype + "{}")
document.body[i:k + 1] = subst
i = i + 1
def revert_strikeout(document):
- " Reverts \\strikeout character style "
- changed = False
- changed = revert_charstyles(document, "\\uuline", "\\uuline", changed)
- changed = revert_charstyles(document, "\\uwave", "\\uwave", changed)
- changed = revert_charstyles(document, "\\strikeout", "\\sout", changed)
+ " Reverts \\strikeout font attribute "
+ changed = revert_font_attrs(document, "\\uuline", "\\uuline")
+ changed = revert_font_attrs(document, "\\uwave", "\\uwave") or changed
+ changed = revert_font_attrs(document, "\\strikeout", "\\sout") or changed
if changed == True:
insert_to_preamble(0, document,
'% Commands inserted by lyx2lyx for proper underlining\n'
def revert_ulinelatex(document):
- " Reverts \\uline character style "
+ " Reverts \\uline font attribute "
i = find_token(document.body, '\\bar under', 0)
if i == -1:
return
i = find_token(document.header, '\\bibtex_command', 0)
if i == -1:
document.warning("Malformed LyX document: Missing \\bibtex_command.")
- return
- del document.header[i]
+ else:
+ del document.header[i]
i = find_token(document.header, '\\index_command', 0)
if i == -1:
document.warning("Malformed LyX document: Missing \\index_command.")
- return
- del document.header[i]
+ else:
+ del document.header[i]
def convert_nomencl_width(document):