瀏覽代碼

LaTeX export: Fix subscript export here as well.

Carsten Dominik 16 年之前
父節點
當前提交
31b3239f08
共有 2 個文件被更改,包括 10 次插入5 次删除
  1. 3 0
      lisp/ChangeLog
  2. 7 5
      lisp/org-export-latex.el

+ 3 - 0
lisp/ChangeLog

@@ -1,5 +1,8 @@
 2009-03-11  Carsten Dominik  <carsten.dominik@gmail.com>
 
+	* org-export-latex.el (org-export-latex-special-chars)
+	(org-export-latex-treat-sub-super-char): Fix subscript export.
+
 	* org-exp.el (org-create-multibrace-regexp): Do not add
 	backslashes to the class.
 

+ 7 - 5
lisp/org-export-latex.el

@@ -968,7 +968,7 @@ See the `org-export-latex.el' code for a complete conversion table."
 					     (match-string 3))) "") t t)))))))
 	'(;"^\\([^\n$]*?\\|^\\)\\(\\\\?\\$\\)\\([^\n$]*\\)$"
 	  "\\(\\(\\\\?\\$\\)\\)"
-	  "\\([a-za-z0-9]+\\|[ \t\n]\\|\\b\\|\\\\\\)\\(_\\|\\^\\)\\([a-za-z0-9]+\\|[ \t\n]\\|[:punct:]\\|{[a-za-z0-9]+}\\|([a-za-z0-9]+)\\)"
+	  "\\([a-za-z0-9]+\\|[ \t\n]\\|\\b\\|\\\\\\)\\(_\\|\\^\\)\\({[^{}]+}\\|[a-za-z0-9]+\\|[ \t\n]\\|[:punct:]\\|{[a-za-z0-9]+}\\|([a-za-z0-9]+)\\)"
 	  "\\(.\\|^\\)\\(\\\\\\)\\([ \t\n]\\|[a-zA-Z&#%{}\"]+\\)"
 	  "\\(.\\|^\\)\\(&\\)"
 	  "\\(.\\|^\\)\\(#\\)"
@@ -1007,10 +1007,12 @@ Convert CHAR depending on STRING-BEFORE and STRING-AFTER."
 		     (or (eq subsup t)
 			 (and (equal subsup '{}) (eq (string-to-char string-after) ?\{)))
 		     (string-match "[({]?\\([^)}]+\\)[)}]?" string-after))
-		(format "%s$%s{%s}$" string-before char
-			(if (> (match-end 1) (1+ (match-beginning 1)))
-			    (concat "\\mathrm{" (match-string 1 string-after) "}")
-			(match-string 1 string-after))))
+		(org-export-latex-protect-string
+		 (format "%s$%s{%s}$" string-before char
+			 (if (and (> (match-end 1) (1+ (match-beginning 1)))
+				  (not (equal (substring string-after 0 2) "{\\")))
+			     (concat "\\mathrm{" (match-string 1 string-after) "}")
+			   (match-string 1 string-after)))))
 	       ((eq subsup t) (concat string-before "$" char string-after "$"))
 	       (t (org-export-latex-protect-string
 		   (concat string-before "\\" char "{}" string-after)))))