# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-""" Convert files to the file format generated by lyx 2.1"""
+""" Convert files to the file format generated by LyX 2.1"""
import re, string
import unicodedata
return
j = find_end_of_layout(document.body, i)
if j == -1:
- document.warning("Malformed lyx document: Can't find end of Verbatim layout")
+ document.warning("Malformed LyX document: Can't find end of Verbatim layout")
i += 1
continue
# delete all line breaks insets (there are no other insets)
return
j = find_end_of_inset(document.body, i)
if j == -1:
- document.warning("Malformed lyx document: Can't find end of IPA inset")
+ document.warning("Malformed LyX document: Can't find end of IPA inset")
i += 1
continue
Multipar = False
n = find_token(document.body, "\\begin_layout", i, j)
if n == -1:
- document.warning("Malformed lyx document: IPA inset has no embedded layout")
+ document.warning("Malformed LyX document: IPA inset has no embedded layout")
i += 1
continue
m = find_end_of_layout(document.body, n)
if m == -1:
- document.warning("Malformed lyx document: Can't find end of embedded layout")
+ document.warning("Malformed LyX document: Can't find end of embedded layout")
i += 1
continue
content = document.body[n+1:m]
return
j = find_end_of_inset(document.body, i)
if j == -1:
- document.warning("Malformed lyx document: Can't find end of ERT inset")
+ document.warning("Malformed LyX document: Can't find end of ERT inset")
i += 1
continue
ert = get_ert(document.body, i)
if document.body[i+1] == "LatexCommand lstlistoflistings":
j = find_end_of_inset(document.body, i)
if j == -1:
- document.warning("Malformed lyx document: Can't find end of TOC inset")
+ document.warning("Malformed LyX document: Can't find end of TOC inset")
i += 1
continue
subst = put_cmd_in_ert("\\lstlistoflistings{}")
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
- document.warning("Malformed lyx document: Can't find parent paragraph layout")
+ document.warning("Malformed LyX document: Can't find parent paragraph layout")
i = i + 1
continue
parbeg = parent[1]
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
- document.warning("Malformed lyx document: Can't find parent paragraph layout")
+ document.warning("Malformed LyX document: Can't find parent paragraph layout")
i = i + 1
continue
parbeg = parent[1]
# Revert to old syntax
document.body[p] = "\\begin_inset Argument"
if j == -1:
- document.warning("Malformed lyx document: Can't find end of Argument inset")
+ document.warning("Malformed LyX document: Can't find end of Argument inset")
continue
if val > 0:
args[val] = document.body[p : j + 1]
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
- document.warning("Malformed lyx document: Can't find parent paragraph layout")
+ document.warning("Malformed LyX document: Can't find parent paragraph layout")
i = i + 1
continue
parbeg = parent[3]
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
- document.warning("Malformed lyx document: Can't find parent paragraph layout")
+ document.warning("Malformed LyX document: Can't find parent paragraph layout")
i = i + 1
continue
parbeg = parent[1]
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
- document.warning("Malformed lyx document: Can't find parent paragraph layout")
+ document.warning("Malformed LyX document: Can't find parent paragraph layout")
i = i + 1
continue
parbeg = parent[1]
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
- document.warning("Malformed lyx document: Can't find parent paragraph layout")
+ document.warning("Malformed LyX document: Can't find parent paragraph layout")
i = i + 1
continue
parbeg = parent[1]
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
- document.warning("Malformed lyx document: Can't find parent paragraph layout")
+ document.warning("Malformed LyX document: Can't find parent paragraph layout")
i = i + 1
continue
parbeg = parent[1]
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
- document.warning("Malformed lyx document: Can't find parent paragraph layout")
+ document.warning("Malformed LyX document: Can't find parent paragraph layout")
i = i + 1
continue
parbeg = parent[1]
# Find end of sequence
j = find_end_of_sequence(document.body, i)
if j == -1:
- document.warning("Malformed lyx document. Cannot find end of Overprint sequence!")
+ document.warning("Malformed LyX document. Cannot find end of Overprint sequence!")
i = i + 1
continue
endseq = j
if argbeg != -1:
argend = find_end_of_layout(document.body, argbeg)
if argend == -1:
- document.warning("Malformed lyx document. Cannot find end of Overprint argument!")
+ document.warning("Malformed LyX document. Cannot find end of Overprint argument!")
i = i + 1
continue
beginPlain = find_token(document.body, "\\begin_layout Plain Layout", argbeg)
# Find end of sequence
j = find_end_of_sequence(document.body, i)
if j == -1:
- document.warning("Malformed lyx document. Cannot find end of Overprint sequence!")
+ document.warning("Malformed LyX document. Cannot find end of Overprint sequence!")
i = i + 1
continue
endseq = j
if argbeg != -1:
argend = find_end_of_inset(document.body, argbeg)
if argend == -1:
- document.warning("Malformed lyx document. Cannot find end of Overprint argument!")
+ document.warning("Malformed LyX document. Cannot find end of Overprint argument!")
i = i + 1
continue
beginPlain = find_token(document.body, "\\begin_layout Plain Layout", argbeg)
if document.body[p] == "\\begin_layout Overprint":
q = find_end_of_layout(document.body, p)
if q == -1:
- document.warning("Malformed lyx document. Cannot find end of Overprint layout!")
+ document.warning("Malformed LyX document. Cannot find end of Overprint layout!")
p += 1
continue
subst = ["\\begin_layout Standard"] + put_cmd_in_ert("\\onslide")
if argbeg != -1:
argend = find_end_of_inset(document.body, argbeg)
if argend == -1:
- document.warning("Malformed lyx document. Cannot find end of Overprint item argument!")
+ document.warning("Malformed LyX document. Cannot find end of Overprint item argument!")
p += 1
continue
beginPlain = find_token(document.body, "\\begin_layout Plain Layout", argbeg)
return
j = find_end_of_layout(document.body, i)
if j == -1:
- document.warning("Malformed lyx document: Can't find end of FrameTitle layout")
+ document.warning("Malformed LyX document: Can't find end of FrameTitle layout")
i = i + 1
continue
endlay = j
return
j = find_end_of_layout(document.body, i)
if j == -1:
- document.warning("Malformed lyx document: Can't find end of Epigraph layout")
+ document.warning("Malformed LyX document: Can't find end of Epigraph layout")
i = i + 1
continue
endlay = j
return
j = find_end_of_layout(document.body, i)
if j == -1:
- document.warning("Malformed lyx document: Can't find end of Epigraph layout")
+ document.warning("Malformed LyX document: Can't find end of Epigraph layout")
i = i + 1
continue
endlay = j
return
document.body[i] = "\\begin_inset Caption Standard"
i = i + 1
-
def revert_captioninsets(document):
def convert_captionlayouts(document):
" Convert caption layouts to caption insets. "
-
+
caption_dict = {
"Captionabove": "Above",
"Captionbelow": "Below",
"CenteredCaption" : "Centered",
"Bicaption" : "Bicaption",
}
-
+
i = 0
while True:
i = find_token(document.body, "\\begin_layout", i)
# Find end of sequence
j = find_end_of_sequence(document.body, i)
if j == -1:
- document.warning("Malformed lyx document. Cannot find end of FragileFrame sequence!")
+ document.warning("Malformed LyX document. Cannot find end of FragileFrame sequence!")
i = i + 1
continue
endseq = j
# Find end of sequence
j = find_end_of_sequence(document.body, i)
if j == -1:
- document.warning("Malformed lyx document. Cannot find end of Frame sequence!")
+ document.warning("Malformed LyX document. Cannot find end of Frame sequence!")
i = i + 1
continue
endseq = j
return
j = find_end_of_layout(document.body, i)
if j == -1:
- document.warning("Malformed lyx document: Can't find end of Pause layout")
+ document.warning("Malformed LyX document: Can't find end of Pause layout")
i = i + 1
continue
endlay = j
# Find containing paragraph layout
parent = get_containing_layout(document.body, i)
if parent == False:
- document.warning("Malformed lyx document: Can't find parent paragraph layout")
+ document.warning("Malformed LyX document: Can't find parent paragraph layout")
i = i + 1
continue
parbeg = parent[1]
return
j = find_end_of_layout(document.body, i)
if j == -1:
- document.warning("Malformed lyx document: Can't find end of Twocolumn layout")
+ document.warning("Malformed LyX document: Can't find end of Twocolumn layout")
i = i + 1
continue
endlay = j
i = endlay
+def revert_mbox_fbox(document):
+ 'Convert revert mbox/fbox boxes to TeX-code'
+ i = 0
+ while True:
+ i = find_token(document.body, "\\begin_inset Box", i)
+ if i == -1:
+ return
+ j = find_token(document.body, "width", i)
+ if j != i + 7:
+ document.warning("Malformed LyX document: Can't find box width")
+ return
+ width = get_value(document.body, "width", j)
+ k = find_end_of_inset(document.body, j)
+ if k == -1:
+ document.warning("Malformed LyX document: Can't find end of box inset")
+ i += 1
+ continue
+ BeginLayout = find_token(document.body, "\\begin_layout Plain Layout", j)
+ EndLayout = find_token(document.body, "\\end_layout", BeginLayout)
+ # replace if width is "-999col%"
+ if (width == '"-999col%"'):
+ document.body[EndLayout:k + 1] = put_cmd_in_ert("}")
+ if document.body[i] == "\\begin_inset Box Frameless":
+ document.body[i:BeginLayout + 1] = put_cmd_in_ert("\\mbox{")
+ if document.body[i] == "\\begin_inset Box Boxed":
+ document.body[i:BeginLayout + 1] = put_cmd_in_ert("\\fbox{")
+ i = i + 1
+
+
+def revert_starred_caption(document):
+ " Reverts unnumbered longtable caption insets "
+
+ i = 0
+ while True:
+ i = find_token(document.body, "\\begin_inset Caption LongTableNoNumber", i)
+ if i == -1:
+ return
+ # This is not equivalent, but since the caption inset is a full blown
+ # text inset a true conversion to ERT is too difficult.
+ document.body[i] = "\\begin_inset Caption Standard"
+ i = i + 1
+
+
+def revert_forced_local_layout(document):
+ i = 0
+ while True:
+ i = find_token(document.header, "\\begin_forced_local_layout", i)
+ if i == -1:
+ return
+ j = find_end_of(document.header, i, "\\begin_forced_local_layout", "\\end_forced_local_layout")
+ if j == -1:
+ # this should not happen
+ break
+ regexp = re.compile(r'\s*forcelocal', re.IGNORECASE)
+ k = find_re(document.header, regexp, i, j)
+ while k != -1:
+ del document.header[k]
+ j = j - 1
+ k = find_re(document.header, regexp, i, j)
+ k = find_token(document.header, "\\begin_local_layout", 0)
+ if k == -1:
+ document.header[i] = "\\begin_local_layout"
+ document.header[j] = "\\end_local_layout"
+ else:
+ l = find_end_of(document.header, k, "\\begin_local_layout", "\\end_local_layout")
+ if j == -1:
+ # this should not happen
+ break
+ lines = document.header[i+1 : j]
+ if k > i:
+ document.header[k+1 : k+1] = lines
+ document.header[i : j ] = []
+ else:
+ document.header[i : j ] = []
+ document.header[k+1 : k+1] = lines
+
+
##
# Conversion hub
#
[464, [convert_use_cancel]],
[465, [convert_lyxframes, remove_endframes]],
[466, []],
- [467, []]
+ [467, []],
+ [468, []],
+ [469, []],
+ [470, []]
]
revert = [
+ [469, [revert_forced_local_layout]],
+ [468, [revert_starred_caption]],
+ [467, [revert_mbox_fbox]],
[466, [revert_iwona_fonts]],
[465, [revert_powerdot_flexes, revert_powerdot_pause, revert_powerdot_itemargs, revert_powerdot_columns]],
[464, []],