[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals-release/org bcfe6f9: ox-latex: convert verbatim text in
From: |
ELPA Syncer |
Subject: |
[elpa] externals-release/org bcfe6f9: ox-latex: convert verbatim text in headings to texttt |
Date: |
Sat, 3 Apr 2021 18:57:08 -0400 (EDT) |
branch: externals-release/org
commit bcfe6f985cc791e90638d3adac8cfa81291375ae
Author: TEC <tec@tecosaur.com>
Commit: Nicolas Goaziou <mail@nicolasgoaziou.fr>
ox-latex: convert verbatim text in headings to texttt
* lisp/ox-latex.el (org-latex--protect-texttt): New function.
(org-latex--text-markup): Use new function.
(org-latex-headline): Convert any instances of \verb text with
\texttt. This is required to work around LaTeX peculiarities that
would otherwise cause compilation to fail (see the code comment for
more information).
---
lisp/ox-latex.el | 41 ++++++++++++++++++++++++-----------------
1 file changed, 24 insertions(+), 17 deletions(-)
diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 29663b3..932f385 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -1521,22 +1521,23 @@ INFO is a plist used as a communication channel. See
separator
(replace-regexp-in-string "\n" " " text)
separator)))
- ;; Handle the `protectedtexttt' special case: Protect some
- ;; special chars and use "\texttt{%s}" format string.
- (protectedtexttt
- (format "\\texttt{%s}"
- (replace-regexp-in-string
- "--\\|[\\{}$%&_#~^]"
- (lambda (m)
- (cond ((equal m "--") "-{}-")
- ((equal m "\\") "\\textbackslash{}")
- ((equal m "~") "\\textasciitilde{}")
- ((equal m "^") "\\textasciicircum{}")
- (t (org-latex--protect-text m))))
- text nil t)))
+ (protectedtexttt (org-latex--protect-texttt text))
;; Else use format string.
(t (format fmt text)))))
+(defun org-latex--protect-texttt (text)
+ "Protect special chars, then wrap TEXT in \"\\texttt{}\"."
+ (format "\\texttt{%s}"
+ (replace-regexp-in-string
+ "--\\|[\\{}$%&_#~^]"
+ (lambda (m)
+ (cond ((equal m "--") "-{}-")
+ ((equal m "\\") "\\textbackslash{}")
+ ((equal m "~") "\\textasciitilde{}")
+ ((equal m "^") "\\textasciicircum{}")
+ (t (org-latex--protect-text m))))
+ text nil t)))
+
(defun org-latex--delayed-footnotes-definitions (element info)
"Return footnotes definitions in ELEMENT as a string.
@@ -1952,10 +1953,16 @@ holding contextual information."
;; Create a temporary export back-end that hard-codes
;; "\underline" within "\section" and alike.
(section-back-end
- (org-export-create-backend
- :parent 'latex
- :transcoders
- '((underline . (lambda (o c i) (format "\\underline{%s}" c))))))
+ (org-export-create-backend
+ :parent 'latex
+ :transcoders
+ '((underline . (lambda (o c i) (format "\\underline{%s}" c)))
+ ;; LaTeX isn't happy when you try to use \verb inside the
argument of other
+ ;; commands (like \section, etc.), and this causes compilation
to fail.
+ ;; So, within headings it's a good idea to replace any
instances of \verb
+ ;; with \texttt.
+ (code . (lambda (_ c _) (org-latex--protect-texttt c)))
+ (verbatim . (lambda (_ c _) (org-latex--protect-texttt c))))))
(text
(org-export-data-with-backend
(org-element-property :title headline) section-back-end info))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals-release/org bcfe6f9: ox-latex: convert verbatim text in headings to texttt,
ELPA Syncer <=