commit ff93b83953ea3276f9be8a4243a7e6f603f3fe38
Author: Georg Baum <[email protected]>
Date: Fri Jun 17 21:11:53 2016 +0200
implement lyx2lyx roundtrip for \use_microtype
diff --git a/lib/lyx2lyx/lyx_2_3.py b/lib/lyx2lyx/lyx_2_3.py
index 08ca2f0..f1596c0 100644
--- a/lib/lyx2lyx/lyx_2_3.py
+++ b/lib/lyx2lyx/lyx_2_3.py
@@ -30,12 +30,14 @@ import sys, os
# find_token_backwards, is_in_inset, get_value, get_quoted_value, \
# del_token, check_token, get_option_value
+from parser_tools import find_token, get_value
+
#from lyx2lyx_tools import add_to_preamble, put_cmd_in_ert, get_ert,
lyx2latex, \
# lyx2verbatim, length_in_bp, convert_info_insets
# insert_to_preamble, latex_length, revert_flex_inset, \
# revert_font_attrs, hex2ratio, str2bool
-from parser_tools import find_token
+from lyx2lyx_tools import add_to_preamble
####################################################################
# Private helper functions
@@ -48,12 +50,29 @@ from parser_tools import find_token
###
###############################################################################
+def convert_microtype(document):
+ " Add microtype settings. "
+ i = find_token(document.header, "\\font_tt_scale" , 0)
+ if i == -1:
+ document.warning("Malformed LyX document: Can't find \\font_tt_scale.")
+ return;
+ j = find_token(document.preamble, "\\usepackage{microtype}", 0)
+ if j == -1:
+ document.header.insert(i + 1, "\\use_microtype 0")
+ else:
+ document.header.insert(i + 1, "\\use_microtype 1")
+ del document.preamble[j]
+
+
def revert_microtype(document):
" Remove microtype settings. "
i = find_token(document.header, "\\use_microtype", 0)
if i == -1:
return
+ value = get_value(document.header, "\\use_microtype" , i).split()[0]
del document.header[i]
+ if value == "1":
+ add_to_preamble(document, ["\\usepackage{microtype}"])
@@ -63,7 +82,7 @@ def revert_microtype(document):
supported_versions = ["2.3.0", "2.3"]
convert = [
- [509, []]
+ [509, [convert_microtype]]
]
revert = [