From fa3b4830b8443f24b8aa5e91f78fe5dd078871a7 Mon Sep 17 00:00:00 2001 From: Aaron Ecay Date: Sun, 31 Mar 2013 22:21:09 -0400 Subject: [PATCH] ox-latex: Properly escape ~ for export MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * lisp/ox-latex.el: (org-latex-plain-text): Properly escape ~ for LaTeX export In LaTeX, \~ gives a tilde diacritic (as in ã). \textasciitilde{} is the correct escape for a tilde. --- lisp/ox-latex.el | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index 8727adc2d..f6897f9cb 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -2031,18 +2031,22 @@ TEXT is the string to transcode. INFO is a plist holding contextual information." (let ((specialp (plist-get info :with-special-strings)) (output text)) - ;; Protect %, #, &, $, ~, ^, _, { and }. - (while (string-match "\\([^\\]\\|^\\)\\([%$#&{}~^_]\\)" output) + ;; Protect %, #, &, $, ^, _, { and }. + (while (string-match "\\([^\\]\\|^\\)\\([%$#&{}^_]\\)" output) (setq output (replace-match (format "\\%s" (match-string 2 output)) nil t output 2))) ;; Protect \. If special strings are used, be careful not to ;; protect "\" in "\-" constructs. - (let ((symbols (if specialp "-%$#&{}~^_\\" "%$#&{}~^_\\"))) + (let ((symbols (if specialp "-%$#&{}^_\\" "%$#&{}^_\\"))) (setq output (replace-regexp-in-string (format "\\(?:[^\\]\\|^\\)\\(\\\\\\)\\(?:[^%s]\\|$\\)" symbols) "$\\backslash$" output nil t 1))) + ;; Protect ~. + (setq output + (replace-regexp-in-string + "\\([^\\]\\|^\\)\\(~\\)" "\\textasciitilde{}" output nil t 2)) ;; Activate smart quotes. Be sure to provide original TEXT string ;; since OUTPUT may have been modified. (when (plist-get info :with-smart-quotes)