i = 0
defaultframecolor = "black"
- defaultbackcolor = "white"
+ defaultbackcolor = "none"
while True:
i = find_token(document.body, "framecolor", i)
if i == -1:
beg = document.body[i+1].find('"');
end = document.body[i+1].rfind('"');
backcolor = document.body[i+1][beg+1:end];
+ j = find_end_of_inset(document.body, i)
+ if j == -1:
+ document.warning("Malformed LyX document: Can't find end of box inset!")
+ i += 1
+ continue
# delete the specification
del document.body[i:i+2]
# output TeX code
# first output the closing brace
if framecolor != defaultframecolor or backcolor != defaultbackcolor:
- document.body[i + 9 : i + 9] = put_cmd_in_ert("}")
+ document.body[j + 1 : j + 1] = put_cmd_in_ert("}")
# now output the box commands
if framecolor != defaultframecolor or backcolor != defaultbackcolor:
document.body[i - 14 : i - 14] = put_cmd_in_ert("{")
if framecolor != defaultframecolor:
- document.body[i - 9 : i - 8] = ["\\backslash fboxcolor{" + framecolor + "}{" + backcolor + "}{"]
+ document.body[i - 9 : i - 8] = ["\\backslash fcolorbox{" + framecolor + "}{" + backcolor + "}{"]
+ k = find_token(document.body, "\\begin_inset Box Boxed", i - 16)
+ if k != -1:
+ # \fcolorbox is already framed box thus remove the frame
+ document.body[k : k + 1] = ["\\begin_inset Box Frameless"]
if backcolor != defaultbackcolor and framecolor == defaultframecolor:
document.body[i - 9 : i - 8] = ["\\backslash colorbox{" + backcolor + "}{"]
i = i + 11
i = j
-def revert_Argument_to_TeX_brace(document, line, endline, n, nmax, environment, opt):
- '''
- Reverts an InsetArgument to TeX-code
- usage:
- revert_Argument_to_TeX_brace(document, LineOfBegin, LineOfEnd, StartArgument, EndArgument, isEnvironment, isOpt)
- LineOfBegin is the line of the \begin_layout or \begin_inset statement
- LineOfEnd is the line of the \end_layout or \end_inset statement, if "0" is given, the end of the file is used instead
- StartArgument is the number of the first argument that needs to be converted
- EndArgument is the number of the last argument that needs to be converted or the last defined one
- isEnvironment must be true, if the layout is for a LaTeX environment
- isOpt must be true, if the argument is an optional one
- '''
- lineArg = 0
- wasOpt = False
- while lineArg != -1 and n < nmax + 1:
- lineArg = find_token(document.body, "\\begin_inset Argument " + str(n), line)
- if lineArg > endline and endline != 0:
- return wasOpt
- if lineArg != -1:
- beginPlain = find_token(document.body, "\\begin_layout Plain Layout", lineArg)
- # we have to assure that no other inset is in the Argument
- beginInset = find_token(document.body, "\\begin_inset", beginPlain)
- endInset = find_token(document.body, "\\end_inset", beginPlain)
- k = beginPlain + 1
- l = k
- while beginInset < endInset and beginInset != -1:
- beginInset = find_token(document.body, "\\begin_inset", k)
- endInset = find_token(document.body, "\\end_inset", l)
- k = beginInset + 1
- l = endInset + 1
- if environment == False:
- if opt == False:
- document.body[endInset - 2 : endInset + 1] = put_cmd_in_ert("}{")
- del(document.body[lineArg : beginPlain + 1])
- wasOpt = False
- else:
- document.body[endInset - 2 : endInset + 1] = put_cmd_in_ert("]")
- document.body[lineArg : beginPlain + 1] = put_cmd_in_ert("[")
- wasOpt = True
- else:
- document.body[endInset - 2 : endInset + 1] = put_cmd_in_ert("}")
- document.body[lineArg : beginPlain + 1] = put_cmd_in_ert("{")
- wasOpt = False
- n += 1
- return wasOpt
-
-
def revert_jss(document):
" Reverts JSS In_Preamble commands to ERT in preamble "
while m != -1 or j != -1 or h != -1 or k != -1 or n != -1:
# \pkg
if h != -1:
- h = find_token(document.body, "\\begin_inset Flex pkg", h)
+ h = find_token(document.body, "\\begin_inset Flex Pkg", h)
if h != -1:
endh = find_end_of_inset(document.body, h)
document.body[endh - 2 : endh + 1] = put_cmd_in_ert("}")
h = h + 5
# \proglang
if m != -1:
- m = find_token(document.body, "\\begin_inset Flex proglang", m)
+ m = find_token(document.body, "\\begin_inset Flex Proglang", m)
if m != -1:
endm = find_end_of_inset(document.body, m)
document.body[endm - 2 : endm + 1] = put_cmd_in_ert("}")
m = m + 5
# \code
if j != -1:
- j = find_token(document.body, "\\begin_inset Flex code", j)
+ j = find_token(document.body, "\\begin_inset Flex Code", j)
if j != -1:
- endj = find_end_of_inset(document.body, j)
- document.body[endj - 2 : endj + 1] = put_cmd_in_ert("}")
- document.body[j : j + 4] = put_cmd_in_ert("\\code{")
- j = j + 5
+ # assure that we are not in a Code Chunk inset
+ if document.body[j][-1] == "e":
+ endj = find_end_of_inset(document.body, j)
+ document.body[endj - 2 : endj + 1] = put_cmd_in_ert("}")
+ document.body[j : j + 4] = put_cmd_in_ert("\\code{")
+ j = j + 5
+ else:
+ j = j + 1
# \email
if k != -1:
k = find_token(document.body, "\\begin_inset Flex E-mail", k)
while m != -1 or j != -1 or h != -1 or k != -1:
# \CodeChunk
if h != -1:
- h = find_token(document.body, "\\begin_layout Code Chunk", h)
+ h = find_token(document.body, "\\begin_inset Flex Code Chunk", h)
if h != -1:
- endh = find_end_of_layout(document.body, h)
- begindeeper = find_token(document.body, "\\begin_deeper", h)
- enddeeper = find_token(document.body, "\\end_deeper", h)
- document.body[enddeeper + 1 : enddeeper] = ["\\end_layout"]
- document.body[enddeeper : enddeeper + 1] = put_cmd_in_ert("\\end{CodeChunk}")
- del document.body[begindeeper]
+ endh = find_end_of_inset(document.body, h)
+ document.body[endh + 1 : endh] = ["\\end_layout"]
+ document.body[endh : endh + 1] = put_cmd_in_ert("\\end{CodeChunk}")
document.body[h : h + 3] = put_cmd_in_ert("\\begin{CodeChunk}")
document.body[h - 1 : h] = ["\\begin_layout Standard"]
h = h + 1
- # \Code
- if m != -1:
- m = find_token(document.body, "\\begin_layout Standard Code", m)
- if m != -1:
- endm = find_end_of_layout(document.body, m)
- document.body[endm : endm + 1] = ["\\end_layout", "", "\\begin_layout Standard"]
- document.body[endm + 3 : endm + 4] = put_cmd_in_ert("\\end{Code}")
- document.body[endm + 13 : endm + 13] = ["\\end_layout", "", "\\begin_layout Standard"]
- document.body[m + 1 : m] = ["\\end_layout", "", "\\begin_layout Standard"]
- document.body[m : m + 1] = put_cmd_in_ert("\\begin{Code}")
- m = m + 1
# \CodeInput
if j != -1:
j = find_token(document.body, "\\begin_layout Code Input", j)
document.body[k + 1 : k] = ["\\end_layout", "", "\\begin_layout Standard"]
document.body[k : k + 1] = put_cmd_in_ert("\\begin{CodeOutput}")
k = k + 1
+ # \Code
+ if m != -1:
+ m = find_token(document.body, "\\begin_layout Code", m)
+ if m != -1:
+ endm = find_end_of_layout(document.body, m)
+ document.body[endm : endm + 1] = ["\\end_layout", "", "\\begin_layout Standard"]
+ document.body[endm + 3 : endm + 4] = put_cmd_in_ert("\\end{Code}")
+ document.body[endm + 13 : endm + 13] = ["\\end_layout", "", "\\begin_layout Standard"]
+ document.body[m + 1 : m] = ["\\end_layout", "", "\\begin_layout Standard"]
+ document.body[m : m + 1] = put_cmd_in_ert("\\begin{Code}")
+ m = m + 1
def convert_subref(document):