# -*- coding: utf-8 -*-
# This file is part of lyx2lyx
-# -*- coding: utf-8 -*-
# Copyright (C) 2011 The LyX team
#
# This program is free software; you can redistribute it and/or
# Uncomment only what you need to import, please.
-from parser_tools import count_pars_in_inset, del_token, find_token, find_token_exact, \
+from parser_tools import count_pars_in_inset, del_complete_lines, del_token, \
+ find_token, find_token_exact, \
find_token_backwards, find_end_of, find_end_of_inset, find_end_of_layout, \
find_end_of_sequence, find_re, get_option_value, get_containing_layout, \
get_containing_inset, get_value, get_quoted_value, set_option_value
#find_end_of_inset, find_end_of_layout, \
#is_in_inset, del_token, check_token
-from lyx2lyx_tools import add_to_preamble, put_cmd_in_ert, get_ert
+from lyx2lyx_tools import add_to_preamble, put_cmd_in_ert, get_ert, revert_language
#from lyx2lyx_tools import insert_to_preamble, \
# lyx2latex, latex_length, revert_flex_inset, \
isInset must be true, if braces inside an InsetLayout needs to be converted
isEnvironment must be true, if the layout is for a LaTeX environment
isOpt must be true, if the argument is an optional one
-
+
Todo: this routine can currently handle only one mandatory argument of environments
'''
n += 1
endn = end
loop += 1
- else:
+ else:
# no brace pair found
# now check the case that we have "}" + "{" in two ERTs
if opt:
def revert_australian(document):
- "Set English language variants Australian and Newzealand to English"
+ "Set English language variants Australian and Newzealand to English"
- if document.language == "australian" or document.language == "newzealand":
+ if document.language == "australian" or document.language == "newzealand":
document.language = "english"
- i = find_token(document.header, "\\language", 0)
- if i != -1:
- document.header[i] = "\\language english"
- j = 0
- while True:
- j = find_token(document.body, "\\lang australian", j)
+ i = find_token(document.header, "\\language", 0)
+ if i != -1:
+ document.header[i] = "\\language english"
+ j = 0
+ while True:
+ j = find_token(document.body, "\\lang australian", j)
if j == -1:
j = find_token(document.body, "\\lang newzealand", 0)
if j == -1:
else:
document.body[j] = document.body[j].replace("\\lang newzealand", "\\lang english")
else:
- document.body[j] = document.body[j].replace("\\lang australian", "\\lang english")
+ document.body[j] = document.body[j].replace("\\lang australian", "\\lang english")
j += 1
get_option_value(document.body[begin_row], 'endlastfoot') != 'true'):
document.body[begin_row] = set_option_value(document.body[begin_row], 'caption', 'true", endfirsthead="true')
elif get_option_value(document.body[begin_row], 'caption') == 'true':
- if get_option_value(document.body[begin_row], 'endfirsthead') == 'true':
- document.body[begin_row] = set_option_value(document.body[begin_row], 'endfirsthead', 'false')
if get_option_value(document.body[begin_row], 'endhead') == 'true':
document.body[begin_row] = set_option_value(document.body[begin_row], 'endhead', 'false')
if get_option_value(document.body[begin_row], 'endfoot') == 'true':
if get_option_value(document.body[begin_row], 'endlastfoot') == 'true':
document.body[begin_row] = set_option_value(document.body[begin_row], 'endlastfoot', 'false')
begin_row = end_row
- # since there could be a tabular inside this one, we
+ # since there could be a tabular inside this one, we
# cannot jump to end.
begin_table += 1
# oldauto defines how the version we are converting from behaves:
# if it is true, the old version uses the package automatically.
# if it is false, the old version never uses the package.
- i = find_token(document.header, "\\use_package", 0)
+ i = find_token(document.header, "\\use_package")
if i == -1:
document.warning("Malformed LyX document: Can't find \\use_package.")
return;
- j = find_token(document.preamble, "\\usepackage{" + pkg + "}", 0)
- if j != -1:
- # package was loaded in the preamble, convert this to header setting for round trip
+ packageline = "\\usepackage{%s}" % pkg
+ if (del_complete_lines(document.preamble,
+ ['% Added by lyx2lyx', packageline]) or
+ del_complete_lines(document.preamble, [packageline])):
+ # package was loaded in the preamble, convert this to header setting
document.header.insert(i + 1, "\\use_package " + pkg + " 2") # on
- del document.preamble[j]
# If oldauto is true we have two options:
# We can either set the package to auto - this is correct for files in
# format 425 to 463, and may create a conflict for older files which use
put_cmd_in_ert("\\end{turn}")
document.body[i + 4 : i + 4] = \
put_cmd_in_ert("\\begin{turn}{" + value + "}")
-
+
i += 1
-
+
finally:
if load_rotating:
add_to_preamble(document, ["\\@ifundefined{turnbox}{\\usepackage{rotating}}{}"])
rgx = re.compile(r'rotate="[^"]+?"')
# convert "true" to "90"
document.body[i] = rgx.sub('rotate="90"', document.body[i])
-
+
i += 1
put_cmd_in_ert("\\end{turn}")
document.body[i - 2 : i - 2] = \
put_cmd_in_ert("\\begin{turn}{" + value + "}")
-
+
i += 1
-
+
finally:
if load_rotating:
add_to_preamble(document, ["\\@ifundefined{turnbox}{\\usepackage{rotating}}{}"])
rgx = re.compile(r'rotate="[^"]+?"')
# convert "true" to "90"
document.body[i] = rgx.sub('rotate="90"', document.body[i])
-
+
i += 1
def revert_ancientgreek(document):
- "Set the document language for ancientgreek to greek"
+ "Set the document language for ancientgreek to greek"
- if document.language == "ancientgreek":
+ if document.language == "ancientgreek":
document.language = "greek"
- i = find_token(document.header, "\\language", 0)
- if i != -1:
- document.header[i] = "\\language greek"
- j = 0
- while True:
- j = find_token(document.body, "\\lang ancientgreek", j)
+ i = find_token(document.header, "\\language", 0)
+ if i != -1:
+ document.header[i] = "\\language greek"
+ j = 0
+ while True:
+ j = find_token(document.body, "\\lang ancientgreek", j)
if j == -1:
return
else:
- document.body[j] = document.body[j].replace("\\lang ancientgreek", "\\lang greek")
+ document.body[j] = document.body[j].replace("\\lang ancientgreek", "\\lang greek")
j += 1
def revert_languages(document):
- "Set the document language for new supported languages to English"
-
- languages = [
- "coptic", "divehi", "hindi", "kurmanji", "lao", "marathi", "occitan", "sanskrit",
- "syriac", "tamil", "telugu", "urdu"
- ]
- for n in range(len(languages)):
- if document.language == languages[n]:
- document.language = "english"
- i = find_token(document.header, "\\language", 0)
- if i != -1:
- document.header[i] = "\\language english"
- j = 0
- while j < len(document.body):
- j = find_token(document.body, "\\lang " + languages[n], j)
- if j != -1:
- document.body[j] = document.body[j].replace("\\lang " + languages[n], "\\lang english")
- j += 1
- else:
- j = len(document.body)
+ "Set the document language for new supported languages to English"
+
+ # polyglossia-only
+ polyglossia_languages = ["coptic", "divehi", "hindi", "lao", "marathi",
+ "occitan", "sanskrit", "syriac", "tamil",
+ "telugu", "urdu"]
+ # babel-only
+ babel_languages = ["kurmanji"]
+ for lang in polyglossia_languages:
+ revert_language(document, lang, "", lang)
+ for lang in babel_languages:
+ revert_language(document, lang, lang, "")
def convert_armenian(document):
- "Use polyglossia and thus non-TeX fonts for Armenian"
+ "Use polyglossia and thus non-TeX fonts for Armenian"
- if document.language == "armenian":
- i = find_token(document.header, "\\use_non_tex_fonts", 0)
- if i != -1:
- document.header[i] = "\\use_non_tex_fonts true"
+ if document.language == "armenian":
+ i = find_token(document.header, "\\use_non_tex_fonts", 0)
+ if i != -1:
+ document.header[i] = "\\use_non_tex_fonts true"
def revert_armenian(document):
- "Use ArmTeX and thus TeX fonts for Armenian"
+ "Use ArmTeX and thus TeX fonts for Armenian"
- if document.language == "armenian":
- i = find_token(document.header, "\\use_non_tex_fonts", 0)
- if i != -1:
- document.header[i] = "\\use_non_tex_fonts false"
+ if document.language == "armenian":
+ i = find_token(document.header, "\\use_non_tex_fonts", 0)
+ if i != -1:
+ document.header[i] = "\\use_non_tex_fonts false"
def revert_libertine(document):
- " Revert native libertine font definition to LaTeX "
+ " Revert native libertine font definition to LaTeX "
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
i = find_token(document.header, "\\font_roman libertine", 0)
if i != -1:
osf = False
def revert_txtt(document):
- " Revert native txtt font definition to LaTeX "
+ " Revert native txtt font definition to LaTeX "
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
i = find_token(document.header, "\\font_typewriter txtt", 0)
if i != -1:
preamble = "\\renewcommand{\\ttdefault}{txtt}"
def revert_mathdesign(document):
- " Revert native mathdesign font definition to LaTeX "
+ " Revert native mathdesign font definition to LaTeX "
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
mathdesign_dict = {
"mdbch": "charter",
"mdput": "utopia",
def revert_texgyre(document):
- " Revert native TeXGyre font definition to LaTeX "
+ " Revert native TeXGyre font definition to LaTeX "
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
texgyre_fonts = ["tgadventor", "tgbonum", "tgchorus", "tgcursor", \
"tgheros", "tgpagella", "tgschola", "tgtermes"]
i = find_token(document.header, "\\font_roman", 0)
i = end
continue
substi = ["\\begin_inset ERT", "status collapsed", "",
- "\\begin_layout Plain Layout", "", "", "\\backslash",
+ "\\begin_layout Plain Layout", "", "", "\\backslash",
decotype + "{", "\\end_layout", "", "\\end_inset"]
substj = ["\\size default", "", "\\begin_inset ERT", "status collapsed", "",
"\\begin_layout Plain Layout", "", "}", "\\end_layout", "", "\\end_inset"]
def revert_minionpro(document):
- " Revert native MinionPro font definition to LaTeX "
+ " Revert native MinionPro font definition to LaTeX "
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
i = find_token(document.header, "\\font_roman minionpro", 0)
if i != -1:
osf = False
def revert_mathfonts(document):
- " Revert native math font definitions to LaTeX "
+ " Revert native math font definitions to LaTeX "
i = find_token(document.header, "\\font_math", 0)
if i == -1:
return
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
val = get_value(document.header, "\\font_math", i)
if val == "eulervm":
add_to_preamble(document, "\\usepackage{eulervm}")
def revert_mdnomath(document):
- " Revert mathdesign and fourier without math "
+ " Revert mathdesign and fourier without math "
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
mathdesign_dict = {
"md-charter": "mdbch",
"md-utopia": "mdput",
def convert_mdnomath(document):
- " Change mathdesign font name "
+ " Change mathdesign font name "
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
mathdesign_dict = {
"mdbch": "md-charter",
"mdput": "md-utopia",
def revert_newtxmath(document):
- " Revert native newtxmath definitions to LaTeX "
+ " Revert native newtxmath definitions to LaTeX "
i = find_token(document.header, "\\font_math", 0)
if i == -1:
return
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
val = get_value(document.header, "\\font_math", i)
mathfont_dict = {
"libertine-ntxm": "\\usepackage[libertine]{newtxmath}",
def revert_biolinum(document):
- " Revert native biolinum font definition to LaTeX "
+ " Revert native biolinum font definition to LaTeX "
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
i = find_token(document.header, "\\font_sans biolinum", 0)
if i != -1:
osf = False
"theorems-chap-bytype", "theorems-chap", "theorems-named", "theorems-sec-bytype",
"theorems-sec", "theorems-starred", "theorems-std", "todonotes"]
# Modules we need to take care of
- caveat_modules = ["initials"]
+ caveat_modules = ["initials"] # TODO: , "graphicboxes", "bicaption"]
# information about the relevant styles in caveat_modules (number of opt and req args)
# use this if we get more caveat_modules. For now, use hard coding (see below).
# initials = [{'Layout' : 'Initial', 'opt' : 1, 'req' : 1}]
+ # graphicboxes = { ... }
# Is this a known safe layout?
safe_layout = document.textclass in safe_layouts
document.body[i] = "\\begin_inset Argument 999"
i += 1
continue
-
+
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
def convert_literate(document):
" Convert Literate document to new format"
- i = find_token(document.header, "\\textclass", 0)
+ i = find_token(document.header, "\\textclass", 0)
if (i != -1) and "literate-" in document.header[i]:
document.textclass = document.header[i].replace("\\textclass literate-", "")
j = find_token(document.header, "\\begin_modules", 0)
def revert_garamondx_newtxmath(document):
- " Revert native garamond newtxmath definition to LaTeX "
+ " Revert native garamond newtxmath definition to LaTeX "
i = find_token(document.header, "\\font_math", 0)
if i == -1:
return
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
val = get_value(document.header, "\\font_math", i)
if val == "garamondx-ntxm":
add_to_preamble(document, "\\usepackage[garamondx]{newtxmath}")
def revert_garamondx(document):
- " Revert native garamond font definition to LaTeX "
+ " Revert native garamond font definition to LaTeX "
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
i = find_token(document.header, "\\font_roman garamondx", 0)
if i != -1:
osf = False
def convert_beamerargs(document):
" Converts beamer arguments to new layout "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
-
+
i = 0
while True:
i = find_token(document.body, "\\begin_layout AgainFrame", i)
def convert_corollary_args(document):
" Converts beamer corrolary-style ERT arguments native InsetArgs "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
-
+
corollary_layouts = ["Corollary", "Definition", "Definitions", "Example", "Examples", "Fact", "Proof", "Theorem"]
for lay in corollary_layouts:
i = 0
def convert_quote_args(document):
" Converts beamer quote style ERT args to native InsetArgs "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
-
+
quote_layouts = ["Uncover", "Only", "Quotation", "Quote", "Verse"]
for lay in quote_layouts:
i = 0
def revert_beamerargs(document):
" Reverts beamer arguments to old layout "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
del document.body[p : endInset + 1]
subst = put_cmd_in_ert("[") + content + put_cmd_in_ert("]")
document.body[realparbeg : realparbeg] = subst
-
+
i = realparend
def revert_beamerargs2(document):
" Reverts beamer arguments to old layout, step 2 "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
if m:
argnr = m.group(1)
if argnr == "2":
- document.body[p] = "\\begin_inset Argument 1"
+ document.body[p] = "\\begin_inset Argument 1"
if layoutname in corollary_layouts:
m = rx.match(document.body[p])
if m:
def revert_beamerargs3(document):
" Reverts beamer arguments to old layout, step 3 "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
def revert_beamerflex(document):
" Reverts beamer Flex insets "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
document.body[i : beginPlain + 1] = pre
post = put_cmd_in_ert("}")
document.body[z - 2 : z + 1] = post
-
+
i += 1
def revert_beamerblocks(document):
" Reverts beamer block arguments to ERT "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
def convert_beamerblocks(document):
" Converts beamer block ERT args to native InsetArgs "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
-
+
blocks = ["Block", "ExampleBlock", "AlertBlock"]
for lay in blocks:
i = 0
document.body[ertcontlastline : ertcontlastline + 1] = [
document.body[ertcontlastline], '\\end_layout', '', '\\end_inset']
document.body[ertcontdivline : ertcontdivlinetwo + 1] = [document.body[ertcontdivline][:tok],
- '\\end_layout', '', '\\end_inset', '', '\\end_layout', '',
+ '\\end_layout', '', '\\end_inset', '', '\\end_layout', '',
'\\end_inset', '', '', '\\begin_inset Argument 2',
'status collapsed', '', '\\begin_layout Plain Layout',
'\\begin_inset ERT', '', 'status open' '', '\\begin_layout Plain Layout',
document.body[ertcontlastline : ertcontlastline + 1] = [
document.body[ertcontlastline], '\\end_layout', '', '\\end_inset']
document.body[ertcontdivline : ertcontdivlinetwo + 1] = [document.body[ertcontdivline][:tok],
- '\\end_layout', '', '\\end_inset', '', '\\end_layout', '',
+ '\\end_layout', '', '\\end_inset', '', '\\end_layout', '',
'\\end_inset', '', '', '\\begin_inset Argument 1',
'status collapsed', '', '\\begin_layout Plain Layout',
'\\begin_inset ERT', '', 'status open' '', '\\begin_layout Plain Layout',
def convert_overprint(document):
" Convert old beamer overprint layouts to ERT "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
# Remove arg inset
del document.body[argbeg : argend + 1]
subst += put_cmd_in_ert("[") + content + put_cmd_in_ert("]")
-
+
endseq = endseq - len(document.body[i : i])
document.body[i : i] = subst + ["\\end_layout"]
endseq += len(subst)
-
+
for p in range(i, endseq):
if document.body[p] == "\\begin_layout Overprint":
document.body[p] = "\\begin_layout Standard"
def revert_overprint(document):
" Revert old beamer overprint layouts to ERT "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
# Remove arg inset
del document.body[argbeg : argend + 1]
subst += put_cmd_in_ert("[") + content + put_cmd_in_ert("]")
-
+
endseq = endseq - len(document.body[i : i])
document.body[i : i] = subst + ["\\end_layout"]
endseq += len(subst)
-
+
p = i
while True:
if p >= endseq:
def revert_frametitle(document):
" Reverts beamer frametitle layout to ERT "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
# Remove arg inset
del document.body[p : endInset + 1]
subst += put_cmd_in_ert("[") + content + put_cmd_in_ert("]")
-
+
subst += put_cmd_in_ert("{")
document.body[i : i + 1] = subst
i = endlay
def convert_epigraph(document):
" Converts memoir epigraph to new syntax "
-
+
if document.textclass != "memoir":
return
endlay += len(begsubst) + len(endsubst)
endlay = endlay - len(document.body[ert : endInset + 1])
del document.body[ert : endInset + 1]
-
+
i = endlay
def revert_epigraph(document):
" Reverts memoir epigraph argument to ERT "
-
+
if document.textclass != "memoir":
return
subst += put_cmd_in_ert("}{") + content
else:
subst += put_cmd_in_ert("}{")
-
+
document.body[j : j] = subst + document.body[j : j]
i = endlay
def convert_captioninsets(document):
" Converts caption insets to new syntax "
-
+
i = 0
while True:
i = find_token(document.body, "\\begin_inset Caption", i)
def revert_captioninsets(document):
" Reverts caption insets to old syntax "
-
+
i = 0
while True:
i = find_token(document.body, "\\begin_inset Caption Standard", i)
"Bicaption" : "Bicaption",
}
- i = 0
- while True:
- i = find_token(document.body, "\\begin_layout", i)
- if i == -1:
- return
- val = get_value(document.body, "\\begin_layout", i)
- if val in list(caption_dict.keys()):
+ for captype in caption_dict.keys():
+ i = 0
+ while True:
+ i = find_token(document.body, "\\begin_layout " + captype, i)
+ if i == -1:
+ break
j = find_end_of_layout(document.body, i)
if j == -1:
document.warning("Malformed LyX document: Missing `\\end_layout'.")
- return
+ break
document.body[j:j] = ["\\end_layout", "", "\\end_inset", "", ""]
document.body[i:i+1] = ["\\begin_layout %s" % document.default_layout,
- "\\begin_inset Caption %s" % caption_dict[val], "",
+ "\\begin_inset Caption %s" % caption_dict[captype], "",
"\\begin_layout %s" % document.default_layout]
- i += 1
+ i = j + 1
def revert_captionlayouts(document):
" Revert caption insets to caption layouts. "
-
+
caption_dict = {
"Above" : "Captionabove",
"Below" : "Captionbelow",
"Centered" : "CenteredCaption",
"Bicaption" : "Bicaption",
}
-
+
i = 0
rx = re.compile(r'^\\begin_inset Caption (\S+)$')
while True:
if val not in list(caption_dict.keys()):
i += 1
continue
-
+
# We either need to delete the previous \begin_layout line, or we
# need to end the previous layout if this inset is not in the first
# position of the paragraph.
def revert_fragileframe(document):
" Reverts beamer FragileFrame layout to ERT "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
subst += put_cmd_in_ert("{") + content + put_cmd_in_ert("}")
elif p == 3:
subst += put_cmd_in_ert("[fragile]")
-
+
document.body[i : i + 1] = subst
i = j
def revert_newframes(document):
" Reverts beamer Frame and PlainFrame layouts to old forms "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
# Remove arg inset
del document.body[arg : endInset + 1]
subst += content
-
+
document.body[i : i + 1] = subst
i = j
def revert_kurier_fonts(document):
" Revert kurier font definition to LaTeX "
-
+
i = find_token(document.header, "\\font_math", 0)
if i != -1:
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
val = get_value(document.header, "\\font_math", i)
if val == "kurier-math":
add_to_preamble(document, "\\let\\Myrmdefault\\rmdefault\n" \
"\\usepackage[math]{kurier}\n" \
"\\renewcommand{\\rmdefault}{\\Myrmdefault}")
document.header[i] = "\\font_math auto"
-
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
kurier_fonts = ["kurier", "kurierc", "kurierl", "kurierlc"]
k = find_token(document.header, "\\font_sans kurier", 0)
if k != -1:
def revert_iwona_fonts(document):
" Revert iwona font definition to LaTeX "
-
+
i = find_token(document.header, "\\font_math", 0)
if i != -1:
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
val = get_value(document.header, "\\font_math", i)
if val == "iwona-math":
add_to_preamble(document, "\\let\\Myrmdefault\\rmdefault\n" \
"\\usepackage[math]{iwona}\n" \
"\\renewcommand{\\rmdefault}{\\Myrmdefault}")
document.header[i] = "\\font_math auto"
-
- if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
+
+ if find_token(document.header, "\\use_non_tex_fonts false", 0) != -1:
iwona_fonts = ["iwona", "iwonac", "iwonal", "iwonalc"]
k = find_token(document.header, "\\font_sans iwona", 0)
if k != -1:
def revert_new_libertines(document):
" Revert new libertine font definition to LaTeX "
-
+
if find_token(document.header, "\\use_non_tex_fonts true", 0) != -1:
return
preamble += "{libertineMono-type1}"
add_to_preamble(document, [preamble])
document.header[i] = "\\font_typewriter default"
-
+
k = find_token(document.header, "\\font_sans biolinum", 0)
if k != -1:
preamble = "\\usepackage"
def convert_lyxframes(document):
" Converts old beamer frames to new style "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
-
+
framebeg = ["BeginFrame", "BeginPlainFrame"]
frameend = ["Frame", "PlainFrame", "EndFrame", "BeginFrame", "BeginPlainFrame", "AgainFrame",
"Section", "Section*", "Subsection", "Subsection*", "Subsubsection", "Subsubsection*"]
def remove_endframes(document):
" Remove deprecated beamer endframes "
-
+
beamer_classes = ["beamer", "article-beamer", "scrarticle-beamer"]
if document.textclass not in beamer_classes:
return
-
+
i = 0
while True:
i = find_token_exact(document.body, "\\begin_layout EndFrame", i)
def revert_powerdot_flexes(document):
" Reverts powerdot flex insets "
-
+
if document.textclass != "powerdot":
return
z += len(pre)
document.body[i : beginPlain + 1] = pre
post = put_cmd_in_ert("}")
- document.body[z - 2 : z + 1] = post
+ document.body[z - 2 : z + 1] = post
i += 1
def revert_powerdot_pause(document):
" Reverts powerdot pause layout to ERT "
-
+
if document.textclass != "powerdot":
return
# Remove arg inset
del document.body[p : endInset + 1]
subst += put_cmd_in_ert("[") + content + put_cmd_in_ert("]")
-
+
document.body[i : i + 1] = subst
i = endlay
def revert_powerdot_itemargs(document):
" Reverts powerdot item arguments to ERT "
-
+
if document.textclass != "powerdot":
return
del document.body[i:j+1]
subst = put_cmd_in_ert("<") + content + put_cmd_in_ert(">")
document.body[realparbeg : realparbeg] = subst
-
+
i = realparend
# Remove arg inset
del document.body[p : endInset + 1]
subst += put_cmd_in_ert("{") + content + put_cmd_in_ert("}")
-
+
subst += put_cmd_in_ert("{")
document.body[i : i + 1] = subst
i = endlay
def revert_starred_caption(document):
" Reverts unnumbered longtable caption insets "
-
+
i = 0
while True:
i = find_token(document.body, "\\begin_inset Caption LongTableNoNumber", i)
def revert_tibetan(document):
- "Set the document language for Tibetan to English"
+ "Set the document language for Tibetan to English"
- if document.language == "tibetan":
- document.language = "english"
- i = find_token(document.header, "\\language", 0)
- if i != -1:
- document.header[i] = "\\language english"
- j = 0
- while j < len(document.body):
- j = find_token(document.body, "\\lang tibetan", j)
- if j != -1:
- document.body[j] = document.body[j].replace("\\lang tibetan", "\\lang english")
- j += 1
- else:
- j = len(document.body)
+ revert_language(document, "tibetan", "", "tibetan")
#############
# there is no point continuing, as we will run into the same error again.
return
this_chunk = "".join(document.body[i + 1:j])
-
+
# there may be empty lines between chunks
# we just skip them.
if not chunk_started:
if this_chunk != "":
# new chunk starts
chunk_started = True
-
+
if chunk_started:
contents.append(document.body[i + 1:j])
# the first par (separated from the options by a newline).
# We collect such stuff to re-insert it later.
postoptstuff = []
-
+
match = first_re.search(optarg)
if match:
optarg = match.groups()[0]
# replace old content with new content
document.body[lstart : lend + 1] = newlines
i = lstart + len(newlines)
-
+
##
# Conversion hub