From 043f2fcbbcd8eda1394f603dda663ab202605d9b Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 21 Aug 2012 18:53:14 +0200 Subject: [PATCH] org-e-latex: Display nicer horizontal rules * contrib/lisp/org-e-latex.el (org-e-latex-horizontal-rule): Display nicer horizontal rules. Support :width and :thickness attributes. --- contrib/lisp/org-e-latex.el | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/contrib/lisp/org-e-latex.el b/contrib/lisp/org-e-latex.el index 571f6ab90..deaf1a51d 100644 --- a/contrib/lisp/org-e-latex.el +++ b/contrib/lisp/org-e-latex.el @@ -1453,10 +1453,20 @@ holding contextual information." (defun org-e-latex-horizontal-rule (horizontal-rule contents info) "Transcode an HORIZONTAL-RULE object from Org to LaTeX. CONTENTS is nil. INFO is a plist holding contextual information." - (let ((attr (mapconcat #'identity - (org-element-property :attr_latex horizontal-rule) - " "))) - (org-e-latex--wrap-label horizontal-rule (concat "\\hrule " attr)))) + (let ((attr (org-export-read-attribute :attr_latex horizontal-rule)) + (prev (org-export-get-previous-element horizontal-rule info))) + (concat + ;; Make sure the rule doesn't start at the end of the current + ;; line by separating it with a blank line from previous element. + (when (and prev + (let ((prev-blank (org-element-property :post-blank prev))) + (or (not prev-blank) (zerop prev-blank)))) + "\n") + (org-e-latex--wrap-label + horizontal-rule + (format "\\rule{%s}{%s}" + (or (plist-get attr :width) "\\linewidth") + (or (plist-get attr :thickness) "0.5pt")))))) ;;;; Inline Babel Call