mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Improve the file format upgrade and downgrade for microtype
Add get_bool_value to parser_tools to be used in other places. Make the upgrade convertion seamless from lyx writing the file (regarding microtypes, there are still other dragons to chase. :-)
This commit is contained in:
parent
2b6f822bad
commit
cca93dacae
@ -28,9 +28,10 @@ import sys, os
|
|||||||
#from parser_tools import find_token, find_end_of, find_tokens, \
|
#from parser_tools import find_token, find_end_of, find_tokens, \
|
||||||
# find_token_exact, find_end_of_inset, find_end_of_layout, \
|
# find_token_exact, find_end_of_inset, find_end_of_layout, \
|
||||||
# find_token_backwards, is_in_inset, get_value, get_quoted_value, \
|
# find_token_backwards, is_in_inset, get_value, get_quoted_value, \
|
||||||
# del_token, check_token, get_option_value
|
# del_token, check_token, get_option_value, get_bool_value
|
||||||
|
|
||||||
from parser_tools import find_token, find_end_of_inset, get_value
|
from parser_tools import find_token, find_end_of_inset, get_value, \
|
||||||
|
get_bool_value
|
||||||
|
|
||||||
#from lyx2lyx_tools import add_to_preamble, put_cmd_in_ert, get_ert, lyx2latex, \
|
#from lyx2lyx_tools import add_to_preamble, put_cmd_in_ert, get_ert, lyx2latex, \
|
||||||
# lyx2verbatim, length_in_bp, convert_info_insets
|
# lyx2verbatim, length_in_bp, convert_info_insets
|
||||||
@ -55,12 +56,13 @@ def convert_microtype(document):
|
|||||||
i = find_token(document.header, "\\font_tt_scale" , 0)
|
i = find_token(document.header, "\\font_tt_scale" , 0)
|
||||||
if i == -1:
|
if i == -1:
|
||||||
document.warning("Malformed LyX document: Can't find \\font_tt_scale.")
|
document.warning("Malformed LyX document: Can't find \\font_tt_scale.")
|
||||||
return;
|
i = len(document.header) - 1
|
||||||
|
|
||||||
j = find_token(document.preamble, "\\usepackage{microtype}", 0)
|
j = find_token(document.preamble, "\\usepackage{microtype}", 0)
|
||||||
if j == -1:
|
if j == -1:
|
||||||
document.header.insert(i + 1, "\\use_microtype 0")
|
document.header.insert(i + 1, "\\use_microtype false")
|
||||||
else:
|
else:
|
||||||
document.header.insert(i + 1, "\\use_microtype 1")
|
document.header.insert(i + 1, "\\use_microtype true")
|
||||||
del document.preamble[j]
|
del document.preamble[j]
|
||||||
|
|
||||||
|
|
||||||
@ -69,9 +71,9 @@ def revert_microtype(document):
|
|||||||
i = find_token(document.header, "\\use_microtype", 0)
|
i = find_token(document.header, "\\use_microtype", 0)
|
||||||
if i == -1:
|
if i == -1:
|
||||||
return
|
return
|
||||||
value = get_value(document.header, "\\use_microtype" , i).split()[0]
|
use_microtype = get_bool_value(document.header, "\\use_microtype" , i)
|
||||||
del document.header[i]
|
del document.header[i]
|
||||||
if value == "1":
|
if use_microtype:
|
||||||
add_to_preamble(document, ["\\usepackage{microtype}"])
|
add_to_preamble(document, ["\\usepackage{microtype}"])
|
||||||
|
|
||||||
|
|
||||||
|
@ -315,6 +315,25 @@ def get_quoted_value(lines, token, start, end = 0, default = ""):
|
|||||||
return val.strip('"')
|
return val.strip('"')
|
||||||
|
|
||||||
|
|
||||||
|
def get_bool_value(lines, token, start, end = 0, default = None):
|
||||||
|
""" get_value(lines, token, start[[, end], default]) -> string
|
||||||
|
|
||||||
|
Find the next line that looks like:
|
||||||
|
token bool_value
|
||||||
|
|
||||||
|
Returns True if bool_value is 1 or true and
|
||||||
|
False if bool_value is 0 or false
|
||||||
|
"""
|
||||||
|
|
||||||
|
val = get_value(lines, token, start, end, "")
|
||||||
|
|
||||||
|
if val == "1" or val == "true":
|
||||||
|
return True
|
||||||
|
if val == "0" or val == "false":
|
||||||
|
return False
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def get_option_value(line, option):
|
def get_option_value(line, option):
|
||||||
rx = option + '\s*=\s*"([^"]+)"'
|
rx = option + '\s*=\s*"([^"]+)"'
|
||||||
rx = re.compile(rx)
|
rx = re.compile(rx)
|
||||||
|
Loading…
Reference in New Issue
Block a user