diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index b987b7aa9..ab96ec300 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -178,7 +178,7 @@ See [[msg:875z8njaol.fsf@protesilaos.com][this thread]]. See [[msg:87im57fh8j.fsf@gmail.com][this thread]]. -*** =ob-python= improvements to =:return= header argument +*** =ob-python= improvements to =:return= header argument The =:return= header argument in =ob-python= now works for session blocks as well as non-session blocks. Also, it now works with the @@ -250,6 +250,13 @@ Example: : #+startup: show3levels +*** LaTeX attribute ~:float~ now passes through arbitrary values + +LaTeX users are able to define arbitrary float types, e.g. with the +float package. The Org mode LaTeX exporter is now able to process and +export arbitrary float types. The user is responsible for ensuring +that Org mode configures LaTeX to process any new float type. + *** New =u= table formula flag to enable Calc units simplification mode A new =u= mode flag for Calc formulas in Org tables has been added to diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index c3fc83b1b..316bbb6f2 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -2384,8 +2384,8 @@ used as a communication channel." ((string= float "sideways") 'sideways) ((string= float "multicolumn") 'multicolumn) ((and (plist-member attr :float) (not float)) 'nonfloat) - ((or float - (org-element-property :caption parent) + (float float) + ((or (org-element-property :caption parent) (org-string-nw-p (plist-get attr :caption))) 'figure) (t 'nonfloat)))) @@ -2477,6 +2477,18 @@ used as a communication channel." nil t)))) ;; Return proper string, depending on FLOAT. (pcase float + ((and (pred stringp) env-string) + (format "\\begin{%s}%s +%s%s +%s%s +%s\\end{%s}" + env-string + placement + (if caption-above-p caption "") + (if center "\\centering" "") + comment-include image-code + (if caption-above-p "" caption) + env-string)) (`wrap (format "\\begin{wrapfigure}%s %s%s %s%s @@ -3207,9 +3219,9 @@ centered." (defun org-latex--decorate-table (table attributes caption above? info) "Decorate TABLE string with caption and float environment. -ATTRIBUTES is the plist containing is LaTeX attributes. CAPTION -is its caption, as a string or nil. It is located above the -table if ABOVE? is non-nil. INFO is the plist containing current +ATTRIBUTES is the plist containing LaTeX attributes. CAPTION is +its caption, as a string or nil. It is located above the table +if ABOVE? is non-nil. INFO is the plist containing current export parameters. Return new environment, as a string." @@ -3218,7 +3230,8 @@ Return new environment, as a string." (cond ((and (not float) (plist-member attributes :float)) nil) ((member float '("sidewaystable" "sideways")) "sidewaystable") ((equal float "multicolumn") "table*") - ((or float (org-string-nw-p caption)) "table") + (float float) + ((org-string-nw-p caption) "table") (t nil)))) (placement (or (plist-get attributes :placement)