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:
del document.header[i]
+def hex2ratio(s):
+ val = string.atoi(s, 16)
+ if val != 0:
+ val += 1
+ return str(val / 256.0)
+
+
def revert_backgroundcolor(document):
" Reverts background color to preamble code "
- i = 0
- colorcode = ""
- while True:
- i = find_token(document.header, "\\backgroundcolor", i)
- if i == -1:
- return
- colorcode = get_value(document.header, '\\backgroundcolor', 0)
- del document.header[i]
- # don't clutter the preamble if backgroundcolor is not set
- if colorcode == "#ffffff":
- continue
- # the color code is in the form #rrggbb where every character denotes a hex number
- # convert the string to an int
- red = string.atoi(colorcode[1:3],16)
- # we want the output "0.5" for the value "127" therefore add here
- if red != 0:
- red = red + 1
- redout = float(red) / 256
- green = string.atoi(colorcode[3:5],16)
- if green != 0:
- green = green + 1
- greenout = float(green) / 256
- blue = string.atoi(colorcode[5:7],16)
- if blue != 0:
- blue = blue + 1
- blueout = float(blue) / 256
- # write the preamble
- insert_to_preamble(0, document,
- '% Commands inserted by lyx2lyx to set the background color\n'
- + '\\@ifundefined{definecolor}{\\usepackage{color}}{}\n'
- + '\\definecolor{page_backgroundcolor}{rgb}{'
- + str(redout) + ', ' + str(greenout)
- + ', ' + str(blueout) + '}\n'
- + '\\pagecolor{page_backgroundcolor}\n')
+ i = find_token(document.header, "\\backgroundcolor", 0)
+ if i == -1:
+ return
+ colorcode = get_value(document.header, '\\backgroundcolor', i)
+ del document.header[i]
+ # don't clutter the preamble if backgroundcolor is not set
+ if colorcode == "#ffffff":
+ return
+ red = hex2ratio(colorcode[1:3])
+ green = hex2ratio(colorcode[3:5])
+ blue = hex2ratio(colorcode[5:7])
+ insert_to_preamble(0, document,
+ '% Commands inserted by lyx2lyx to set the background color\n'
+ + '\\@ifundefined{definecolor}{\\usepackage{color}}{}\n'
+ + '\\definecolor{page_backgroundcolor}{rgb}{'
+ + red + ',' + green + ',' + blue + '}\n'
+ + '\\pagecolor{page_backgroundcolor}\n')
def revert_splitindex(document):
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):
i = j
continue
del document.body[l]
- i = i + 1
+ i = j - 1
def revert_nomencl_cwidth(document):