i = find_tokens(file.body, ["\\begin_inset", "\\end_inset", "\\layout",
"\\begin_deeper", "\\end_deeper", "\\the_end"], i)
- token = split(file.body[i])[0]
+ if i != -1:
+ token = split(file.body[i])[0]
+ else:
+ file.warning("Truncated file.")
+ i = len(file.body)
+ file.body.insert(i, '\\the_end')
+ token = ""
if token == "\\begin_inset":
struct_stack.append(token)
#
#\end_layout
def convert_breaks(file):
+ par_params = ('added_space_bottom', 'added_space_top', 'align',
+ 'labelwidthstring', 'line_bottom', 'line_top', 'noindent',
+ 'pagebreak_bottom', 'pagebreak_top', 'paragraph_spacing',
+ 'start_of_appendix')
i = 0
while 1:
i = find_token(file.body, "\\begin_layout", i)
if i == -1:
return
i = i + 1
+
+ # Merge all paragraph parameters into a single line
+ # We cannot check for '\\' only because paragraphs may start e.g.
+ # with '\\backslash'
+ while file.body[i + 1][:1] == '\\' and split(file.body[i + 1][1:])[0] in par_params:
+ file.body[i] = file.body[i + 1] + ' ' + file.body[i]
+ del file.body[i+1]
+
line_top = find(file.body[i],"\\line_top")
line_bot = find(file.body[i],"\\line_bottom")
pb_top = find(file.body[i],"\\pagebreak_top")
if pb_bot !=-1 or line_bot != -1 or vspace_bot != -1:
- paragraph_bellow = ['','\\begin_layout Standard','','']
+ paragraph_below = ['','\\begin_layout Standard','','']
if line_bot != -1:
- paragraph_bellow.extend(['\\lyxline ',''])
+ paragraph_below.extend(['\\lyxline ',''])
if vspace_bot != -1:
- paragraph_bellow.extend(['\\begin_inset VSpace ' + vspace_bot_value,'\\end_inset','',''])
+ paragraph_below.extend(['\\begin_inset VSpace ' + vspace_bot_value,'\\end_inset','',''])
if pb_bot != -1:
- paragraph_bellow.extend(['\\newpage ',''])
+ paragraph_below.extend(['\\newpage ',''])
- paragraph_bellow.extend(['\\end_layout',''])
+ paragraph_below.extend(['\\end_layout',''])
#inset new paragraph above the current paragraph
- file.body[k + 1: k + 1] = paragraph_bellow
+ file.body[k + 1: k + 1] = paragraph_below
##
file.warning("Malformed lyx file: Missing '\\paperpackage'.")
return
- packages = {'a4':'none', 'a4wide':'a4', 'widemarginsa4':'a4wide'}
- paperpackage = split(file.header[i])[1]
+ packages = {'default':'none','a4':'none', 'a4wide':'a4', 'widemarginsa4':'a4wide'}
+ if len(split(file.header[i])) > 1:
+ paperpackage = split(file.header[i])[1]
+ else:
+ paperpackage = "default"
file.header[i] = replace(file.header[i], paperpackage, packages[paperpackage])
i = i + 1
+def convert_french(file):
+ regexp = re.compile(r'^\\language\s+frenchb')
+ i = find_re(file.header, regexp, 0)
+ if i != -1:
+ file.header[i] = "\\language french"
+
+
##
# Convertion hub
#
[238, [update_latexaccents]],
[239, [normalize_paragraph_params]],
[240, [convert_output_changes]],
- [241, [convert_ert_paragraphs]]]
+ [241, [convert_ert_paragraphs]],
+ [242, [convert_french]]]
-revert = [[240, [revert_ert_paragraphs]],
+revert = [[241, []],
+ [240, [revert_ert_paragraphs]],
[239, [revert_output_changes]],
[238, []],
[237, []],