|
@@ -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))
|