org-element: Allow footnote references in table cells

* lisp/org-element.el (org-element-object-restrictions): Add footnote
  references objects in table cells.
* contrib/lisp/org-e-latex.el (org-e-latex-footnote-reference,
  org-e-latex-table): Add support for footnote reference in table
  cells.
This commit is contained in:
Nicolas Goaziou 2012-11-12 21:14:43 +01:00
parent aaf179fe7f
commit 6d099eedc8
2 changed files with 8 additions and 30 deletions

View File

@ -1069,11 +1069,6 @@ holding export options."
;;; Transcode Functions ;;; Transcode Functions
;;;; Babel Call
;;
;; Babel Calls are ignored.
;;;; Bold ;;;; Bold
(defun org-e-latex-bold (bold contents info) (defun org-e-latex-bold (bold contents info)
@ -1121,16 +1116,6 @@ channel."
(org-e-latex--text-markup (org-element-property :value code) 'code)) (org-e-latex--text-markup (org-element-property :value code) 'code))
;;;; Comment
;;
;; Comments are ignored.
;;;; Comment Block
;;
;; Comment Blocks are ignored.
;;;; Drawer ;;;; Drawer
(defun org-e-latex-drawer (drawer contents info) (defun org-e-latex-drawer (drawer contents info)
@ -1208,11 +1193,6 @@ CONTENTS is nil. INFO is a plist holding contextual information."
(org-element-property :value fixed-width))))) (org-element-property :value fixed-width)))))
;;;; Footnote Definition
;;
;; Footnote Definitions are ignored.
;;;; Footnote Reference ;;;; Footnote Reference
;; ;;
;; Footnote reference export is handled by ;; Footnote reference export is handled by
@ -1293,10 +1273,10 @@ CONTENTS is nil. INFO is a plist holding contextual information."
(format "\\footnotemark[%s]{}" (format "\\footnotemark[%s]{}"
(org-export-get-footnote-number footnote-reference info))) (org-export-get-footnote-number footnote-reference info)))
;; Use \footnotemark if reference is within another footnote ;; Use \footnotemark if reference is within another footnote
;; reference or footnote definition. ;; reference, footnote definition or table cell.
((loop for parent in (org-export-get-genealogy footnote-reference) ((loop for parent in (org-export-get-genealogy footnote-reference)
thereis (memq (org-element-type parent) thereis (memq (org-element-type parent)
'(footnote-reference footnote-definition))) '(footnote-reference footnote-definition table-cell)))
"\\footnotemark") "\\footnotemark")
;; Otherwise, define it with \footnote command. ;; Otherwise, define it with \footnote command.
(t (t
@ -1460,11 +1440,6 @@ CONTENTS is nil. INFO is a plist holding contextual information."
(or (plist-get attr :thickness) "0.5pt")))))) (or (plist-get attr :thickness) "0.5pt"))))))
;;;; Inline Babel Call
;;
;; Inline Babel Calls are ignored.
;;;; Inline Src Block ;;;; Inline Src Block
(defun org-e-latex-inline-src-block (inline-src-block contents info) (defun org-e-latex-inline-src-block (inline-src-block contents info)
@ -2233,7 +2208,10 @@ contextual information."
((eq (org-element-property :type table) 'table.el) ((eq (org-element-property :type table) 'table.el)
(org-e-latex-table--table.el-table table contents info)) (org-e-latex-table--table.el-table table contents info))
;; Case 3: Standard table. ;; Case 3: Standard table.
(t (org-e-latex-table--org-table table contents info)))) (t (concat (org-e-latex-table--org-table table contents info)
;; When there are footnote references within the table,
;; insert they definitions just after it.
(org-e-latex--delayed-footnotes-definitions table info)))))
(defun org-e-latex-table--align-string (table info) (defun org-e-latex-table--align-string (table info)
"Return an appropriate LaTeX alignment string. "Return an appropriate LaTeX alignment string.

View File

@ -329,8 +329,8 @@ a secondary string.")
sub/superscript target text-markup) sub/superscript target text-markup)
(superscript export-snippet inline-babel-call inline-src-block (superscript export-snippet inline-babel-call inline-src-block
latex-or-entity sub/superscript target text-markup) latex-or-entity sub/superscript target text-markup)
(table-cell export-snippet latex-or-entity link macro radio-target (table-cell export-snippet footnote-reference latex-or-entity link macro
sub/superscript target text-markup timestamp) radio-target sub/superscript target text-markup timestamp)
(table-row table-cell) (table-row table-cell)
(underline export-snippet inline-babel-call inline-src-block latex-or-entity (underline export-snippet inline-babel-call inline-src-block latex-or-entity
link radio-target sub/superscript target text-markup timestamp) link radio-target sub/superscript target text-markup timestamp)