]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/lyx_2_0.py
Minor updates to XHTML info.
[lyx.git] / lib / lyx2lyx / lyx_2_0.py
index a375de916c45acc09e24e780f826a9bc53119ef5..05903ed33b3cc5a6b74198aca724a1eae0717fc4 100644 (file)
@@ -1912,24 +1912,35 @@ def revert_use_makebox(document):
     h += 1
 
 
+def convert_use_makebox(document):
+  " Adds use_makebox option for boxes "
+  i = 0
+  while 1:
+    # remove the option use_makebox
+    i = find_token(document.body, '\\begin_inset Box', i)
+    if i == -1:
+      return
+    k = find_token(document.body, 'use_parbox', i)
+    if k == -1:
+      document.warning("Malformed LyX document: Can't find use_parbox statement in box.")
+      return
+    document.body.insert(k + 1, "use_makebox 0")
+    i = k + 1
+
+
 def revert_IEEEtran(document):
   " Convert IEEEtran layouts and styles to TeX code "
   if document.textclass != "IEEEtran":
     return
-
   revert_flex_inset(document, "IEEE membership", "\\IEEEmembership", 0)
   revert_flex_inset(document, "Lowercase", "\\MakeLowercase", 0)
-
   layouts = ("Special Paper Notice", "After Title Text", "Publication ID",
              "Page headings", "Biography without photo")
-
   latexcmd = {"Special Paper Notice": "\\IEEEspecialpapernotice",
               "After Title Text":     "\\IEEEaftertitletext",
               "Publication ID":       "\\IEEEpubid"}
-
   obsoletedby = {"Page headings":            "MarkBoth",
                  "Biography without photo":  "BiographyNoPhoto"}
-
   for layout in layouts:
     i = 0
     while True:
@@ -1966,7 +1977,6 @@ def revert_nameref(document):
         break
       cmdloc = i
       i += 1
-      
       # Make sure it is actually in an inset!
       # We could just check document.lines[i-1], but that relies
       # upon something that might easily change.
@@ -2001,6 +2011,50 @@ def revert_nameref(document):
     add_to_preamble(document, "\usepackage{nameref}")
 
 
+def remove_Nameref(document):
+  " Convert Nameref commands to nameref commands "
+  i = 0
+  while 1:
+    # It seems better to look for this, as most of the reference
+    # insets won't be ones we care about.
+    i = find_token(document.body, "LatexCommand Nameref" , i)
+    if i == -1:
+      break
+    cmdloc = i
+    i += 1
+    
+    # Make sure it is actually in an inset!
+    # We could just check document.lines[i-1], but that relies
+    # upon something that might easily change.
+    # We'll look back a few lines.
+    stins = cmdloc - 10
+    if stins < 0:
+      stins = 0
+    stins = find_token(document.body, "\\begin_inset CommandInset ref", stins)
+    if stins == -1 or stins > cmdloc:
+      continue
+    endins = find_end_of_inset(document.body, stins)
+    if endins == -1:
+      document.warning("Can't find end of inset at line " + stins + "!!")
+      continue
+    if endins < cmdloc:
+      continue
+    document.body[cmdloc] = "LatexCommand nameref"
+
+
+def revert_mathrsfs(document):
+    " Load mathrsfs if \mathrsfs us use in the document "
+    i = 0
+    end = len(document.body) - 1
+    while True:
+      j = document.body[i].find("\\mathscr{")
+      if j != -1:
+        add_to_preamble(document, ["% this command was inserted by lyx2lyx"])
+        add_to_preamble(document, ["\\usepackage{mathrsfs}"])
+        break
+      if i == end:
+        break
+      i += 1
 
 
 ##
@@ -2056,12 +2110,16 @@ convert = [[346, []],
            [391, []],
            [392, [convert_beamer_args]],
            [393, [convert_optarg]],
-           [394, []],
+           [394, [convert_use_makebox]],
            [395, []],
-           [396, []]
+           [396, []],
+           [397, [remove_Nameref]],
+           [398, []]
           ]
 
-revert =  [[395, [revert_nameref]],
+revert =  [[397, [revert_mathrsfs]],
+           [396, []],
+           [395, [revert_nameref]],
            [394, [revert_DIN_C_pagesizes]],
            [393, [revert_makebox]],
            [392, [revert_argument]],