[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [BUG] No space after footnote with org-export-with-footnotes set to

From: Ihor Radchenko
Subject: Re: [BUG] No space after footnote with org-export-with-footnotes set to nil [9.6.1 ( @ /Users/test/.emacs.d/elpa/28.0/develop/org-9.6.1/)]
Date: Sat, 11 Mar 2023 10:38:25 +0000

Max Nikulin <manikulin@gmail.com> writes:

>>    [previous object <max(n1,n2) spaces>]
> Yes, you do.
> I expected some complications due to newline characters (not line break 
> markup objects), but they are not included in :post-blank and 
> represented as "\n" string objects.

Newlines are tricky. They may or may not be significant.
For example, in CJK paragraphs, newlines are to be stripped.

I think that a reasonable thing to do could be not adding newlines if
the previous object is a plain string ending with a newline.

> Actually there is an issue with newline characters and ox-latex. 
> Stripping footnotes splits single paragraphs into 2 ones:
> ---- >8 ----
> #+options: f:nil
> First
> [fn::foot]
> Second
> ---- 8< ----
> So newlines should be handled somehow. Earlier I faced a similar issue with
> @@comment:export snippets@@
> and ox-latex.

This is latex-specific.
See the attached tentative fix.

>From 92800f77ea6389b531c4d96cc4b32ed5557aa47a Mon Sep 17 00:00:00 2001
From: Ihor Radchenko <yantar92@posteo.net>
Date: Sat, 11 Mar 2023 11:34:45 +0100
Subject: [PATCH] org-latex-paragraph: Ensure that paragraphs are not split by
 empty lines

* lisp/ox-latex.el (org-latex-paragraph): If export creates single
paragraph contents with empty lines, remove the empty lines to ensure
that we retain a single paragraph.

Reported-by: Max Nikulin <manikulin@gmail.com>
Link: https://orgmode.org/list/tufdb6$11h2$1@ciao.gmane.io
 lisp/ox-latex.el | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index b84fe89db..f31d94da2 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -2980,7 +2980,14 @@ (defun org-latex-paragraph (_paragraph contents _info)
   "Transcode a PARAGRAPH element from Org to LaTeX.
 CONTENTS is the contents of the paragraph, as a string.  INFO is
 the plist used as a communication channel."
-  contents)
+  ;; Ensure that we do not create multiple paragraphs, when a single
+  ;; paragraph is expected.
+  ;; Multiple newlines may appear in CONTENTS, for example, when
+  ;; certain objects are stripped from export, leaving single newlines
+  ;; before and after.
+  (replace-regexp-in-string
+   (rx (1+ (0+ space) "\n")) "\n"
+   contents))
 ;;;; Plain List

Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]