def convert_author_id(document):
" Add the author_id to the \\author definition and make sure 0 is not used"
i = 0
- j = 1\r
+ j = 1
while True:
i = find_token(document.header, "\\author", i)
if i == -1:
break
- author = document.header[i].split(' ')
- name = '\"\"'
- if len(author) >= 2:
- name = author[1]\r
- email = ''\r
- if len(author) == 3:\r
- email = author[2] \r
- document.header[i] = "\\author %i %s %s" % (j, name, email)\r
+ r = re.compile(r'(\\author) (\".*\")\s?(.*)$')
+ m = r.match(document.header[i])
+ if m != None:
+ name = m.group(2)
+
+ email = ''
+ if m.lastindex == 3:
+ email = m.group(3)
+ document.header[i] = "\\author %i %s %s" % (j, name, email)
j = j + 1
- i = i + 1\r
- \r
- k = 0\r
- while True:\r
- k = find_token(document.body, "\\change_", k)\r
- if k == -1:\r
- break\r
-\r
- change = document.body[k].split(' ');\r
- if len(change) == 3:\r
- type = change[0]\r
- author_id = int(change[1])\r
- time = change[2]\r
- document.body[k] = "%s %i %s" % (type, author_id + 1, time)\r
- k = k + 1\r
+ i = i + 1
+
+ k = 0
+ while True:
+ k = find_token(document.body, "\\change_", k)
+ if k == -1:
+ break
+
+ change = document.body[k].split(' ');
+ if len(change) == 3:
+ type = change[0]
+ author_id = int(change[1])
+ time = change[2]
+ document.body[k] = "%s %i %s" % (type, author_id + 1, time)
+ k = k + 1
def revert_author_id(document):
" Remove the author_id from the \\author definition "
i = find_token(document.header, "\\author", i)
if i == -1:
break
- author = document.header[i].split(' ')
- name = '\"\"'
- if len(author) >= 3:
- author_id = int(author[1])
+
+ r = re.compile(r'(\\author) (\d+) (\".*\")\s?(.*)$')
+ m = r.match(document.header[i])
+ if m != None:
+ author_id = int(m.group(2))
idmap[author_id] = j
- name = author[2]
- email = ''
- if len(author) == 4:
- email = author[3]
- document.header[i] = "\\author %s %s" % (name, email)
+ name = m.group(3)
+
+ email = ''
+ if m.lastindex == 4:
+ email = m.group(4)
+ document.header[i] = "\\author %s %s" % (name, email)
i = i + 1
j = j + 1
k = find_token(document.body, "\\change_", k)
if k == -1:
break
-\r
- change = document.body[k].split(' ');\r
- if len(change) == 3:\r
- type = change[0]\r
- author_id = int(change[1])\r
- time = change[2]\r
+
+ change = document.body[k].split(' ');
+ if len(change) == 3:
+ type = change[0]
+ author_id = int(change[1])
+ time = change[2]
document.body[k] = "%s %i %s" % (type, idmap[author_id], time)
k = k + 1
+def revert_suppress_date(document):
+ " Revert suppressing of default document date to preamble code "
+ i = 0
+ while True:
+ i = find_token(document.header, "\\suppress_date", i)
+ if i == -1:
+ break
+ # remove the preamble line and write to the preamble
+ # when suppress_date was true
+ date = get_value(document.header, "\\suppress_date", i)
+ if date == "true":
+ add_to_preamble(document, ["% this command was inserted by lyx2lyx"])
+ add_to_preamble(document, ["\\date{}"])
+ del document.header[i]
+ i = i + 1
+
+
+def revert_mhchem(document):
+ "Revert mhchem loading to preamble code"
+ i = 0
+ j = 0
+ k = 0
+ i = find_token(document.header, "\\use_mhchem 1", 0)
+ if i != -1:
+ mhchem = "auto"
+ else:
+ i = find_token(document.header, "\\use_mhchem 2", 0)
+ if i != -1:
+ mhchem = "on"
+ if mhchem == "auto":
+ j = find_token(document.body, "\\cf{", 0)
+ if j != -1:
+ mhchem = "on"
+ else:
+ j = find_token(document.body, "\\ce{", 0)
+ if j != -1:
+ mhchem = "on"
+ if mhchem == "on":
+ add_to_preamble(document, ["% this command was inserted by lyx2lyx"])
+ add_to_preamble(document, ["\\PassOptionsToPackage{version=3}{mhchem}"])
+ add_to_preamble(document, ["\\usepackage{mhchem}"])
+ k = find_token(document.header, "\\use_mhchem", 0)
+ if k == -1:
+ document.warning("Malformed LyX document: Could not find mhchem setting.")
+ return
+ del document.header[k]
+
+
+def revert_fontenc(document):
+ " Remove fontencoding param "
+ i = find_token(document.header, '\\fontencoding', 0)
+ if i == -1:
+ document.warning("Malformed LyX document: Missing \\fontencoding.")
+ return
+ del document.header[i]
+
+
+def merge_gbrief(document):
+ " Merge g-brief-en and g-brief-de to one class "
+
+ if document.textclass != "g-brief-de":
+ if document.textclass == "g-brief-en":
+ document.textclass = "g-brief"
+ document.set_textclass()
+ return
+
+ obsoletedby = { "Brieftext": "Letter",
+ "Unterschrift": "Signature",
+ "Strasse": "Street",
+ "Zusatz": "Addition",
+ "Ort": "Town",
+ "Land": "State",
+ "RetourAdresse": "ReturnAddress",
+ "MeinZeichen": "MyRef",
+ "IhrZeichen": "YourRef",
+ "IhrSchreiben": "YourMail",
+ "Telefon": "Phone",
+ "BLZ": "BankCode",
+ "Konto": "BankAccount",
+ "Postvermerk": "PostalComment",
+ "Adresse": "Address",
+ "Datum": "Date",
+ "Betreff": "Reference",
+ "Anrede": "Opening",
+ "Anlagen": "Encl.",
+ "Verteiler": "cc",
+ "Gruss": "Closing"}
+ i = 0
+ while 1:
+ i = find_token(document.body, "\\begin_layout", i)
+ if i == -1:
+ break
+
+ layout = document.body[i][14:]
+ if layout in obsoletedby:
+ document.body[i] = "\\begin_layout " + obsoletedby[layout]
+
+ i += 1
+
+ document.textclass = "g-brief"
+ document.set_textclass()
+
+
+def revert_gbrief(document):
+ " Revert g-brief to g-brief-en "
+ if document.textclass == "g-brief":
+ document.textclass = "g-brief-en"
+ document.set_textclass()
+
+
##
# Conversion hub
#
[366, []],
[367, []],
[368, []],
- [369, [convert_author_id]]
+ [369, [convert_author_id]],
+ [370, []],
+ [371, []],
+ [372, []],
+ [373, [merge_gbrief]]
]
-revert = [[368, [revert_author_id]],
+revert = [[372, [revert_gbrief]],
+ [371, [revert_fontenc]],
+ [370, [revert_mhchem]],
+ [369, [revert_suppress_date]],
+ [368, [revert_author_id]],
[367, [revert_hspace_glue_lengths]],
[366, [revert_percent_vspace_lengths, revert_percent_hspace_lengths]],
[365, [revert_percent_skip_lengths]],