diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index aff90f611..dc8477d14 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -4105,7 +4105,8 @@ contextual information." (replace-regexp-in-string "^[ \t]+" (lambda (m) (format "\\hspace*{%dem}" (length m))) (replace-regexp-in-string - "^[ \t]*\\\\\\\\$" "\\vspace*{1em}" + (concat "^[ \t]*" (regexp-quote org-latex-line-break-safe) "$") + "\\vspace*{1em}" (replace-regexp-in-string "\\([ \t]*\\\\\\\\\\)?[ \t]*\n" (concat org-latex-line-break-safe "\n") diff --git a/mk/default.mk b/mk/default.mk index 5c924a636..fa46661e8 100644 --- a/mk/default.mk +++ b/mk/default.mk @@ -72,7 +72,7 @@ REPRO_ARGS ?= req-ob-lang = --eval '(require '"'"'ob-$(ob-lang))' lst-ob-lang = ($(ob-lang) . t) req-extra = --eval '(require '"'"'$(req))' -BTEST_RE ?= \\(org\\|ob\\) +BTEST_RE ?= \\(org\\|ob\\|ox\\) BTEST_LOAD = \ --eval '(add-to-list '"'"'load-path (concat default-directory "lisp"))' \ --eval '(add-to-list '"'"'load-path (concat default-directory "testing"))' diff --git a/testing/lisp/test-ox-latex.el b/testing/lisp/test-ox-latex.el new file mode 100644 index 000000000..4fb9f2888 --- /dev/null +++ b/testing/lisp/test-ox-latex.el @@ -0,0 +1,74 @@ +;;; test-ox-latex.el --- tests for ox-latex.el -*- lexical-binding: t; -*- + +;; Copyright (C) 2022 Ihor Radchenko + +;; Author: Ihor Radchenko + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; Tests checking validity of Org LaTeX export output. + +;;; Code: + +(require 'ox-latex nil t) +(unless (featurep 'ox-latex) + (signal 'missing-test-dependency "org-export-latex")) + +(defmacro org-test-with-exported-text (backend source &rest body) + "Run BODY in export buffer for SOURCE string via BACKEND." + (declare (indent 2)) + `(org-test-with-temp-text ,source + (let ((export-buffer (generate-new-buffer "Org temporary export"))) + (unwind-protect + (progn + (org-export-to-buffer ,backend export-buffer) + (with-current-buffer export-buffer + ,@body)) + (kill-buffer export-buffer))))) + + + +(ert-deftest test-ox-latex/verse () + "Test verse blocks." + (org-test-with-exported-text + 'latex + "#+begin_verse +lorem ipsum dolor +lorem ipsum dolor + +lorem ipsum dolor +lorem ipsum dolor + +lorem ipsum dolor +lorem ipsum dolor +#+end_verse +" + (goto-char (point-min)) + (should + (search-forward + "\\begin{verse} +lorem ipsum dolor\\\\\\empty +lorem ipsum dolor\\\\\\empty +\\vspace*{1em} +lorem ipsum dolor\\\\\\empty +lorem ipsum dolor\\\\\\empty +\\vspace*{1em} +lorem ipsum dolor\\\\\\empty +lorem ipsum dolor\\\\\\empty +\\end{verse}")))) + +(provide 'test-ox-latex) +;;; test-ox-latex.el ends here