Function: org-latex-plain-text
org-latex-plain-text is a byte-compiled function defined in
ox-latex.el.gz.
Signature
(org-latex-plain-text TEXT INFO)
Documentation
Transcode a TEXT string from Org to LaTeX.
TEXT is the string to transcode. INFO is a plist holding contextual information.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ox-latex.el.gz
;;;; Plain Text
(defun org-latex-plain-text (text info)
"Transcode a TEXT string from Org to LaTeX.
TEXT is the string to transcode. INFO is a plist holding
contextual information."
(let* ((specialp (plist-get info :with-special-strings))
(output
;; Turn LaTeX into \LaTeX{} and TeX into \TeX{}.
(let ((case-fold-search nil))
(replace-regexp-in-string
"\\<\\(?:La\\)?TeX\\>" "\\\\\\&{}"
;; Protect ^, ~, %, #, &, $, _, { and }. Also protect \.
;; However, if special strings are used, be careful not
;; to protect "\" in "\-" constructs.
(replace-regexp-in-string
(concat "[%$#&{}_~^]\\|\\\\" (and specialp "\\([^-]\\|$\\)"))
(lambda (m)
(cl-case (string-to-char m)
(?\\ "$\\\\backslash$\\1")
(?~ "\\\\textasciitilde{}")
(?^ "\\\\^{}")
(t "\\\\\\&")))
text)))))
;; Activate smart quotes. Be sure to provide original TEXT string
;; since OUTPUT may have been modified.
(when (plist-get info :with-smart-quotes)
(setq output (org-export-activate-smart-quotes output :latex info text)))
;; Convert special strings.
(when specialp
(setq output (replace-regexp-in-string "\\.\\.\\." "\\\\ldots{}" output)))
;; Handle break preservation if required.
(when (plist-get info :preserve-breaks)
(setq output (replace-regexp-in-string
"\\(?:[ \t]*\\\\\\\\\\)?[ \t]*\n" "\\\\\n" output nil t)))
;; Protect [foo] at the beginning of lines / beginning of the
;; plain-text object. This prevents LaTeX from unexpectedly
;; interpreting @@latex:\pagebreak@@ [foo] as a command with
;; optional argument.
(setq output (replace-regexp-in-string
(rx bol (0+ space) (group "["))
"{[}"
output
nil nil 1))
;; Return value.
output))