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 "