line = line[16:]
if line.startswith("status open"):
line = line[11:]
+ # a lossless reversion is not possible
+ # try at least to handle some common insets and settings
# do not replace inside ERTs
if ert_end < k:
line = line.replace(u'ä', r'\\\"a').replace(u'ö', r'\\\"o').replace(u'ü', r'\\\"u')
- line = line.replace(r'\backslash', r'\textbackslash{}')
- line = line.replace(r'\InsetSpace ', r'')
+ line = line.replace(r'\\backslash', r'\\textbackslash{}')
+ line = line.replace(r'\\series bold', r'\\bfseries{}').replace(r'\\series default', r'\\mdseries{}')
+ line = line.replace(r'\\shape italic', r'\\itshape{}').replace(r'\\shape smallcaps', r'\\scshape{}')
+ line = line.replace(r'\\shape slanted', r'\\slshape{}').replace(r'\\shape default', r'\\upshape{}')
+ line = line.replace(r'\\emph on', r'\\em{}').replace(r'\\emph default', r'\\em{}')
+ line = line.replace(r'\\noun on', r'\\scshape{}').replace(r'\\noun default', r'\\upshape{}')
+ line = line.replace(r'\\bar under', r'\\underbar{').replace(r'\\bar default', r'}')
+ line = line.replace(r'\\family sans', r'\\sffamily{}').replace(r'\\family default', r'\\normalfont{}')
+ line = line.replace(r'\\family typewriter', r'\\ttfamily{}').replace(r'\\family roman', r'\\rmfamily{}')
+ line = line.replace(r'\\InsetSpace ', r'').replace(r'\\SpecialChar ', r'')
else:
- line = line.replace(r'\backslash', r'\\')
+ line = line.replace(r'\\backslash', r'\\')
content = content + line;
document.body[i + 3] = "name " + '"' + content + '"'
for k in range(i + 4, j - 2):
def convert_spaceinset(document):
- " Convert '\\InsetSpace foo' to '\\begin_inset Space foo\n\\end_inset' "
- for i in range(len(document.body)):
- if re.search(r'\InsetSpace', document.body[i]):
- document.body[i] = document.body[i].replace('\\InsetSpace', '\n\\begin_inset Space')
- document.body[i] = document.body[i] + "\n\\end_inset"
+ " Convert '\\InsetSpace foo' to '\\begin_inset Space foo\n\\end_inset' "
+ for i in range(len(document.body)):
+ m = re.match(r'(.*)\\InsetSpace (.*)', document.body[i])
+ if m:
+ before = m.group(1)
+ after = m.group(2)
+ subst = [before, "\\begin_inset Space " + after, "\\end_inset"]
+ document.body[i: i+1] = subst
def revert_spaceinset(document):
def update_apa_styles(document):
- ' Replace obsolete styles'
+ ' Replace obsolete styles '
if document.textclass != "apa":
return
i += 1
+
+def convert_paper_sizes(document):
+ ' exchange size options legalpaper and executivepaper to correct order '
+ # routine is needed to fix http://bugzilla.lyx.org/show_bug.cgi?id=4868
+ i = 0
+ j = 0
+ i = find_token(document.header, "\\papersize executivepaper", 0)
+ if i != -1:
+ document.header[i] = "\\papersize legalpaper"
+ return
+ j = find_token(document.header, "\\papersize legalpaper", 0)
+ if j != -1:
+ document.header[j] = "\\papersize executivepaper"
+
+
+def revert_paper_sizes(document):
+ ' exchange size options legalpaper and executivepaper to correct order '
+ i = 0
+ j = 0
+ i = find_token(document.header, "\\papersize executivepaper", 0)
+ if i != -1:
+ document.header[i] = "\\papersize legalpaper"
+ return
+ j = find_token(document.header, "\\papersize legalpaper", 0)
+ if j != -1:
+ document.header[j] = "\\papersize executivepaper"
+
+
+def convert_InsetSpace(document):
+ " Convert '\\begin_inset Space foo' to '\\begin_inset space foo'"
+ i = 0
+ while True:
+ i = find_token(document.body, "\\begin_inset Space", i)
+ if i == -1:
+ return
+ document.body[i] = document.body[i].replace('\\begin_inset Space', '\\begin_inset space')
+
+
+def revert_InsetSpace(document):
+ " Revert '\\begin_inset space foo' to '\\begin_inset Space foo'"
+ i = 0
+ while True:
+ i = find_token(document.body, "\\begin_inset space", i)
+ if i == -1:
+ return
+ document.body[i] = document.body[i].replace('\\begin_inset space', '\\begin_inset Space')
+
+
##
# Conversion hub
#
[331, [convert_ltcaption]],
[332, []],
[333, [update_apa_styles]],
+ [334, [convert_paper_sizes]],
+ [335, [convert_InsetSpace]],
]
-revert = [[332, []],
+revert = [[334, [revert_InsetSpace]],
+ [333, [revert_paper_sizes]],
+ [332, []],
[331, [revert_graphics_group]],
[330, [revert_ltcaption]],
[329, [revert_leftarrowfill, revert_rightarrowfill, revert_upbracefill, revert_downbracefill]],