]> git.lyx.org Git - features.git/commitdiff
lyx2lyx/lyx_2_0.py:
authorUwe Stöhr <uwestoehr@web.de>
Mon, 5 Jul 2010 02:01:10 +0000 (02:01 +0000)
committerUwe Stöhr <uwestoehr@web.de>
Mon, 5 Jul 2010 02:01:10 +0000 (02:01 +0000)
- add routine to revert flex insets to TeX code
- add routine for the new IEEEtran layout file (part 1/2)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34753 a592a061-630c-0410-9148-cb99ea01b6c8

lib/lyx2lyx/lyx_2_0.py

index 742f50e5f65d9198295fb6b0ea73d5f69c336daf..ee7c41994602ff258c05101118723ce4b3677f82 100644 (file)
@@ -269,7 +269,60 @@ def latex_length(string):
         return "False," + string
     else:
         return "True," + string
-        
+
+
+def revert_flex_inset(document, name, LaTeXname, position):
+  " Convert flex insets to TeX code "
+  i = 0
+  z = 0
+  while True:
+    i = find_token(document.body, '\\begin_inset Flex ' + name, position)
+    if i == -1:
+      return
+    else:
+      z = find_end_of_inset(document.body, i)
+      if z == -1:
+        document.warning("Malformed LyX document: Can't find end of Flex " + name + " inset.")
+        return
+      # remove the \end_inset
+      document.body[z - 2:z + 1] = put_cmd_in_ert("}")
+      # we need to reset character layouts if necessary
+      j = find_token(document.body, '\\emph on', i)
+      k = find_token(document.body, '\\noun on', i)
+      l = find_token(document.body, '\\series', i)
+      m = find_token(document.body, '\\family', i)
+      n = find_token(document.body, '\\shape', i)
+      o = find_token(document.body, '\\color', i)
+      p = find_token(document.body, '\\size', i)
+      q = find_token(document.body, '\\bar under', i)
+      r = find_token(document.body, '\\uuline on', i)
+      s = find_token(document.body, '\\uwave on', i)
+      t = find_token(document.body, '\\strikeout on', i)
+      if j != -1 and j < z:
+        document.body.insert(z-2, "\\emph default")
+      if k != -1 and k < z:
+        document.body.insert(z-2, "\\noun default")
+      if l != -1 and l < z:
+        document.body.insert(z-2, "\\series default")
+      if m != -1 and m < z:
+        document.body.insert(z-2, "\\family default")
+      if n != -1 and n < z:
+        document.body.insert(z-2, "\\shape default")
+      if o != -1 and o < z:
+        document.body.insert(z-2, "\\color inherit")
+      if p != -1 and p < z:
+        document.body.insert(z-2, "\\size default")
+      if q != -1 and q < z:
+        document.body.insert(z-2, "\\bar default")
+      if r != -1 and r < z:
+        document.body.insert(z-2, "\\uuline default")
+      if s != -1 and s < z:
+        document.body.insert(z-2, "\\uwave default")
+      if t != -1 and t < z:
+        document.body.insert(z-2, "\\strikeout default")
+      document.body[i:i+4] = put_cmd_in_ert(LaTeXname + "{")
+    i += 1
+
 
 ####################################################################
 
@@ -1720,7 +1773,7 @@ def revert_argument(document):
 
 
 def revert_makebox(document):
-  " Convert \\makebox to ERT "
+  " Convert \\makebox to TeX code "
   i = 0
   while 1:
     # only revert frameless boxes without an inner box
@@ -1755,6 +1808,12 @@ def revert_makebox(document):
     i += 1
 
 
+def revert_IEEEtran(document):
+  " Convert IEEEtran layouts and styles to TeX codeT "
+  revert_flex_inset(document, "IEEE membership", "\\IEEEmembership", 0)
+  revert_flex_inset(document, "Lowercase", "\\MakeLowercase", 0)
+
+
 ##
 # Conversion hub
 #
@@ -1814,7 +1873,7 @@ convert = [[346, []],
 revert =  [[393, [revert_makebox]],
            [392, [revert_argument]],
            [391, [revert_beamer_args]],
-           [390, [revert_align_decimal]],
+           [390, [revert_align_decimal, revert_IEEEtran]],
            [389, [revert_output_sync]],
            [388, [revert_html_quotes]],
            [387, [revert_pagesizes]],