Max Nikulin <maniku...@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 Message-Id: <92800f77ea6389b531c4d96cc4b32ed5557aa47a.1678531087.git.yanta...@posteo.net> From: Ihor Radchenko <yanta...@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 <maniku...@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 -- 2.39.1
-- 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>