[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/engrave-faces 2c72619195: Fix engraving of whitespace i
From: |
ELPA Syncer |
Subject: |
[elpa] externals/engrave-faces 2c72619195: Fix engraving of whitespace in LaTeX export |
Date: |
Sun, 15 Jan 2023 10:57:42 -0500 (EST) |
branch: externals/engrave-faces
commit 2c72619195d489a4f6d5370f70dd7f6aa11801c3
Author: Gerard Vermeulen <gerard.vermeulen@neel.cnrs.fr>
Commit: TEC <git@tecosaur.net>
Fix engraving of whitespace in LaTeX export
To prevent LaTeX's undesirable folding of whitespace, it's good to
ensure the styling commands wrap around whitespace conservatively.
---
engrave-faces-latex.el | 26 +++++++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 8c91178e51..7df39a151c 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -150,11 +150,27 @@ When THEME is given, the style used is obtained from
`engrave-faces-get-theme'."
#'engrave-faces-latex--protect-content-mathescape
#'engrave-faces-latex--protect-content)
content)))
- (if (string-match-p "\\`[\n[:space:]]+\\'" content)
- protected-content
- (if (and style (eq engrave-faces-latex-output-style 'preset))
- (concat "\\EF" (plist-get (cdr style) :slug) "{" protected-content
"}")
- (engrave-faces-latex-face-apply faces protected-content)))))
+ ;; Wrap groups of "words joined by blank characters" in LaTeX commands.
+ ;; Do not wrap newlines and other whitespace between those groups.
+ (let ((contains-blank-re
+ (rx (or (group (+ graph ) (* (+ blank) (+ graph)))
+ (group (+ (any "\n" space))))))
+ (slug (and style
+ (eq engrave-faces-latex-output-style 'preset)
+ (plist-get (cdr style) :slug))))
+ (with-temp-buffer
+ (insert protected-content)
+ (goto-char (point-min))
+ (while (re-search-forward contains-blank-re nil t)
+ (replace-match
+ (concat
+ (and (match-string 1)
+ (if (stringp slug)
+ (format "\\EF%s{%s}" slug (match-string 1))
+ (engrave-faces-latex-face-apply faces (match-string 1))))
+ (match-string 2))
+ t t))
+ (buffer-string)))))
(defun engrave-faces-latex--post-processing ()
"Set the initial text color and curly paren positioning.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/engrave-faces 2c72619195: Fix engraving of whitespace in LaTeX export,
ELPA Syncer <=