From b15af4ac23fabe501121e0fd45de603367cb12ed Mon Sep 17 00:00:00 2001 From: TEC Date: Wed, 31 Mar 2021 23:06:14 +0800 Subject: [PATCH] ox-latex: convert verbatim text in headings to tt * lisp/ox-latex.el (org-latex-format-headline-default-function): 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 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index da3c3f815..8a2787a62 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -2055,6 +2055,18 @@ (defun org-latex-format-headline-default-function (and todo (format "{\\bfseries\\sffamily %s} " todo)) (and priority (format "\\framebox{\\#%c} " priority)) text + ;; 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. + (replace-regexp-in-string + "\\\\verb\\(.\\).+?\\1" + (lambda (verb-string) + (replace-regexp-in-string + "\\\\" "\\\\\\\\" + (org-latex--text-markup (substring verb-string 6 -1) + 'code + '(:latex-text-markup-alist ((code . protectedtexttt))))))) (and tags (format "\\hfill{}\\textsc{%s}" (mapconcat #'org-latex--protect-text tags ":"))))) -- 2.30.1