# del_token, check_token, get_option_value
from lyx2lyx_tools import add_to_preamble, put_cmd_in_ert, lyx2latex, \
- length_in_bp#, \
+ length_in_bp
# insert_to_preamble, latex_length, revert_flex_inset, \
# revert_font_attrs, hex2ratio, str2bool
i = find_token(document.header, "\\use_package amsmath", 0)
if i == -1:
document.warning("Malformed LyX document: Can't find \\use_package amsmath.")
- return;
+ return
value = get_value(document.header, "\\use_package amsmath", i).split()[1]
if value != "1":
# nothing to do if package is not auto but on or off
- return;
+ return
j = 0
while True:
j = find_token(document.body, '\\begin_inset Formula', j)
"""
# Do we use theorems-ams-extended-bytype module?
- have_mod = False
- mods = document.get_module_list()
- for mod in mods:
- if mod == "theorems-ams-extended-bytype":
- have_mod = True
- continue
-
- if not have_mod:
+ if not "theorems-ams-extended-bytype" in document.get_module_list():
return
consecutive = False
def revert_ex_itemargs(document):
" Reverts \\item arguments of the example environments (Linguistics module) to TeX-code "
- # Do we use the linguistics module?
- have_mod = False
- mods = document.get_module_list()
- for mod in mods:
- if mod == "linguistics":
- have_mod = True
- continue
-
- if not have_mod:
+ if not "linguistics" in document.get_module_list():
return
i = 0
def revert_forest(document):
" Reverts the forest environment (Linguistics module) to TeX-code "
- # Do we use the linguistics module?
- have_mod = False
- mods = document.get_module_list()
- for mod in mods:
- if mod == "linguistics":
- have_mod = True
- continue
-
- if not have_mod:
+ if not "linguistics" in document.get_module_list():
return
i = 0
def revert_glossgroup(document):
" Reverts the GroupGlossedWords inset (Linguistics module) to TeX-code "
- # Do we use the linguistics module?
- have_mod = False
- mods = document.get_module_list()
- for mod in mods:
- if mod == "linguistics":
- have_mod = True
- continue
-
- if not have_mod:
+ if not "linguistics" in document.get_module_list():
return
i = 0
def revert_newgloss(document):
" Reverts the new Glosse insets (Linguistics module) to the old format "
- # Do we use the linguistics module?
- have_mod = False
- mods = document.get_module_list()
- for mod in mods:
- if mod == "linguistics":
- have_mod = True
- continue
-
- if not have_mod:
+ if not "linguistics" in document.get_module_list():
return
glosses = ("\\begin_inset Flex Glosse", "\\begin_inset Flex Tri-Glosse")
def convert_newgloss(document):
" Converts Glosse insets (Linguistics module) to the new format "
- # Do we use the linguistics module?
- have_mod = False
- mods = document.get_module_list()
- for mod in mods:
- if mod == "linguistics":
- have_mod = True
- continue
-
- if not have_mod:
+ if not "linguistics" in document.get_module_list():
return
glosses = ("\\begin_inset Flex Glosse", "\\begin_inset Flex Tri-Glosse")
i = find_token(document.header, "\\textclass ", 0)
if i == -1:
document.warning("Malformed LyX document: No \\textclass!!")
- return;
+ return
if document.dir == "":
origin = "stdin"
else:
i = find_token(document.header, "\\origin ", 0)
if i == -1:
document.warning("Malformed LyX document: No \\origin!!")
- return;
+ return
del document.header[i]
document.header[i:i+1] = [f + ' ' + line[q1+1:q2]]
else:
if use_non_tex_fonts == "true":
- document.header[i:i+1] = [f + ' ' + line.split()[2]]
- else:
document.header[i:i+1] = [f + ' ' + line.split()[1]]
+ else:
+ document.header[i:i+1] = [f + ' ' + line.split()[0]]
j = j + 1
def revert_solution(document):
- " Reverts the solution environmen of the theorem module to TeX code "
+ " Reverts the solution environment of the theorem module to TeX code "
- # Do we use theorems-std module?
+ # Do we use one of the modules that provides Solution?
have_mod = False
mods = document.get_module_list()
for mod in mods:
- if mod == "theorems-std" or mod == "theorems-bytype":
+ if mod == "theorems-std" or mod == "theorems-bytype" \
+ or mod == "theorems-ams" or mod == "theorems-ams-bytype":
have_mod = True
- continue
+ break
if not have_mod:
return
+
consecutive = False
+ is_starred = False
i = 0
while True:
i = find_token(document.body, "\\begin_layout Solution", i)
if i == -1:
return
+
+ is_starred = document.body[i].startswith("\\begin_layout Solution*")
+ if is_starred == True:
+ LaTeXName = "sol*"
+ LyXName = "Solution*"
+ theoremName = "newtheorem*"
+ else:
+ LaTeXName = "sol"
+ LyXName = "Solution"
+ theoremName = "newtheorem"
+
j = find_end_of_layout(document.body, i)
if j == -1:
- document.warning("Malformed LyX document: Can't find end of Solution layout")
+ document.warning("Malformed LyX document: Can't find end of " + LyXName + " layout")
i += 1
continue
+
# if this is not a consecutive env, add start command
begcmd = []
if not consecutive:
- begcmd = put_cmd_in_ert("\\begin{sol}")
+ begcmd = put_cmd_in_ert("\\begin{%s}" % (LaTeXName))
+
# has this a consecutive theorem of same type?
- consecutive = False
- consecutive = document.body[j + 2] == "\\begin_layout Solution"
+ consecutive = document.body[j + 2] == "\\begin_layout " + LyXName
+
# if this is not followed by a consecutive env, add end command
if not consecutive:
- document.body[j : j + 1] = put_cmd_in_ert("\\end{sol}") + ["\\end_layout"]
+ document.body[j : j + 1] = put_cmd_in_ert("\\end{%s}" % (LaTeXName)) + ["\\end_layout"]
+
document.body[i : i + 1] = ["\\begin_layout Standard", ""] + begcmd
+
+ add_to_preamble(document, "\\theoremstyle{definition}")
+ if is_starred or mod == "theorems-bytype" or mod == "theorems-ams-bytype":
+ add_to_preamble(document, "\\%s{%s}{\\protect\\solutionname}" % \
+ (theoremName, LaTeXName))
+ else: # mod == "theorems-std" or mod == "theorems-ams" and not is_starred
+ add_to_preamble(document, "\\%s{%s}[thm]{\\protect\\solutionname}" % \
+ (theoremName, LaTeXName))
+
add_to_preamble(document, "\\providecommand{\solutionname}{Solution}")
- if mod == "theorems-std":
- add_to_preamble(document, "\\theoremstyle{plain}\n" \
- "\\newtheorem{sol}[thm]{\\protect\\solutionname}")
- if mod == "theorems-bytype":
- add_to_preamble(document, "\\theoremstyle{definition}\n" \
- "\\newtheorem{sol}{\\protect\\solutionname}")
i = j
+def revert_verbatim_star(document):
+ from lyx_2_1 import revert_verbatim
+ revert_verbatim(document, True)
+
+
##
# Conversion hub
#
[499, [convert_moderncv]],
[500, []],
[501, [convert_fontsettings]],
- [502, []]
+ [502, []],
+ [503, []]
]
revert = [
+ [502, [revert_verbatim_star]],
[501, [revert_solution]],
[500, [revert_fontsettings]],
[499, [revert_achemso]],