>From 036c06fc9f577b3d17e9caf7db366267bb4d28de Mon Sep 17 00:00:00 2001
From: Rasmus
Date: Sat, 18 Jan 2014 20:48:28 +0100
Subject: [PATCH] latex-html output tables as latex
---
lisp/ox-html.el | 105 +++++++++++++++++++++++++++++++-------------------------
1 file changed, 58 insertions(+), 47 deletions(-)
diff --git a/lisp/ox-html.el b/lisp/ox-html.el
index 8ea9e65..80ce53c 100644
--- a/lisp/ox-html.el
+++ b/lisp/ox-html.el
@@ -3286,54 +3286,65 @@ contextual information."
(table.el (org-html-table--table.el-table table info))
;; Case 2: Standard table.
(t
- (let* ((label (org-element-property :name table))
- (caption (org-export-get-caption table))
- (number (org-export-get-ordinal
- table info nil 'org-html--has-caption-p))
- (attributes
- (org-html--make-attribute-string
- (org-combine-plists
- (and label (list :id (org-export-solidify-link-text label)))
- (and (not (org-html-html5-p info))
- (plist-get info :html-table-attributes))
- (org-export-read-attribute :attr_html table))))
- (alignspec
- (if (and (boundp 'org-html-format-table-no-css)
- org-html-format-table-no-css)
- "align=\"%s\"" "class=\"%s\""))
- (table-column-specs
- (function
- (lambda (table info)
- (mapconcat
- (lambda (table-cell)
- (let ((alignment (org-export-table-cell-alignment
- table-cell info)))
- (concat
- ;; Begin a colgroup?
- (when (org-export-table-cell-starts-colgroup-p
- table-cell info)
- "\n")
- ;; Add a column. Also specify it's alignment.
- (format "\n%s"
- (org-html-close-tag
- "col" (concat " " (format alignspec alignment)) info))
- ;; End a colgroup?
- (when (org-export-table-cell-ends-colgroup-p
- table-cell info)
- "\n"))))
- (org-html-table-first-row-data-cells table info) "\n")))))
- (format ""
- (if (equal attributes "") "" (concat " " attributes))
- (if (not caption) ""
- (format (if org-html-table-caption-above
- "%s"
- "%s")
+ (let ((mode (member :mode (org-export-read-attribute :attr_html table))))
+ (cond
+ ((member-ignore-case "latex" mode)
+ (org-html-table--as-latex table contents info))
+ (t
+ (let* ((label (org-element-property :name table))
+ (caption (org-export-get-caption table))
+ (number (org-export-get-ordinal
+ table info nil 'org-html--has-caption-p))
+ (attributes
+ (org-html--make-attribute-string
+ (org-combine-plists
+ (and label (list :id (org-export-solidify-link-text label)))
+ (and (not (org-html-html5-p info))
+ (plist-get info :html-table-attributes))
+ (org-export-read-attribute :attr_html table))))
+ (alignspec
+ (if (and (boundp 'org-html-format-table-no-css)
+ org-html-format-table-no-css)
+ "align=\"%s\"" "class=\"%s\""))
+ (table-column-specs
+ (function
+ (lambda (table info)
+ (mapconcat
+ (lambda (table-cell)
+ (let ((alignment (org-export-table-cell-alignment
+ table-cell info)))
(concat
- ""
- (format (org-html--translate "Table %d:" info) number)
- " " (org-export-data caption info))))
- (funcall table-column-specs table info)
- contents)))))
+ ;; Begin a colgroup?
+ (when (org-export-table-cell-starts-colgroup-p
+ table-cell info)
+ "\n")
+ ;; Add a column. Also specify it's alignment.
+ (format "\n%s"
+ (org-html-close-tag
+ "col" (concat " " (format alignspec alignment)) info))
+ ;; End a colgroup?
+ (when (org-export-table-cell-ends-colgroup-p
+ table-cell info)
+ "\n"))))
+ (org-html-table-first-row-data-cells table info) "\n")))))
+ (t (format ""
+ (if (equal attributes "") "" (concat " " attributes))
+ (if (not caption) ""
+ (format (if org-html-table-caption-above
+ "%s"
+ "%s")
+ (concat
+ ""
+ (format (org-html--translate "Table %d:" info) number)
+ " " (org-export-data caption info))))
+ (funcall table-column-specs table info)
+ contents)))))))))
+
+(defun org-html-table--as-latex (table contents info)
+ "Transcode TABLE into LaTeX code.
+Suitable for transcoding Org tables into math matrices. "
+ (require 'ox-latex)
+ (org-latex-table table contents info))
;;;; Target
--
1.8.5.3