;;; ox-latex.el --- LaTeX Back-End for Org Export Engine
-;; Copyright (C) 2011-2014 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2016 Free Software Foundation, Inc.
;; Author: Nicolas Goaziou <n.goaziou at gmail dot com>
;; Keywords: outlines, hypermedia, calendar, wp
If #+LATEX_CLASS is set in the buffer, use its value and the
associated information. Here is the structure of each cell:
- \(class-name
+ (class-name
header-string
- \(numbered-section . unnumbered-section)
+ (numbered-section . unnumbered-section)
...)
The header string
Instead of a cons cell (numbered . unnumbered), you can also
provide a list of 2 or 4 elements,
- \(numbered-open numbered-close)
+ (numbered-open numbered-close)
or
- \(numbered-open numbered-close unnumbered-open unnumbered-close)
+ (numbered-open numbered-close unnumbered-open unnumbered-close)
providing opening and closing strings for a LaTeX environment
that should represent the document section. The opening clause
:package-version '(Org . "8.0")
:type '(choice
(string :tag "Format string")
- (const :tag "No formatting")))
+ (const :tag "No formatting" nil)))
;;;; Text markup
The function should return the string to be exported.
For example, the variable could be set to the following function
-in order to mimic default behaviour:
+in order to mimic default behavior:
-\(defun org-latex-format-inlinetask \(todo type priority name tags contents\)
+\(defun org-latex-format-inlinetask (todo type priority name tags contents)
\"Format an inline task element for LaTeX export.\"
- \(let ((full-title
- \(concat
- \(when todo
- \(format \"\\\\textbf{\\\\textsf{\\\\textsc{%s}}} \" todo))
- \(when priority (format \"\\\\framebox{\\\\#%c} \" priority))
+ (let ((full-title
+ (concat
+ (when todo
+ (format \"\\\\textbf{\\\\textsf{\\\\textsc{%s}}} \" todo))
+ (when priority (format \"\\\\framebox{\\\\#%c} \" priority))
title
- \(when tags
- \(format \"\\\\hfill{}\\\\textsc{:%s:}\"
- \(mapconcat 'identity tags \":\")))))
- \(format (concat \"\\\\begin{center}\\n\"
+ (when tags
+ (format \"\\\\hfill{}\\\\textsc{:%s:}\"
+ (mapconcat \\='identity tags \":\")))))
+ (format (concat \"\\\\begin{center}\\n\"
\"\\\\fbox{\\n\"
\"\\\\begin{minipage}[c]{.6\\\\textwidth}\\n\"
\"%s\\n\\n\"
package. Just add these to `org-latex-packages-alist', for
example using customize, or with something like:
- \(require 'ox-latex)
- \(add-to-list 'org-latex-packages-alist '(\"\" \"listings\"))
- \(add-to-list 'org-latex-packages-alist '(\"\" \"color\"))
+ (require \\='ox-latex)
+ (add-to-list \\='org-latex-packages-alist \\='(\"\" \"listings\"))
+ (add-to-list \\='org-latex-packages-alist \\='(\"\" \"color\"))
Alternatively,
- \(setq org-latex-listings 'minted)
+ (setq org-latex-listings \\='minted)
causes source code to be exported using the minted package as
opposed to listings. If you want to use minted, you need to add
the minted package to `org-latex-packages-alist', for example
using customize, or with
- \(require 'ox-latex)
- \(add-to-list 'org-latex-packages-alist '(\"\" \"minted\"))
+ (require \\='ox-latex)
+ (add-to-list \\='org-latex-packages-alist \\='(\"\" \"minted\"))
In addition, it is necessary to install pygments
\(http://pygments.org), and to configure the variable
be a list containing two strings: the name of the option, and the
value. For example,
- \(setq org-latex-minted-options
- '\((\"bgcolor\" \"bg\") \(\"frame\" \"lines\")))
+ (setq org-latex-minted-options
+ '((\"bgcolor\" \"bg\") (\"frame\" \"lines\")))
will result in src blocks being exported with
It is used during export of src blocks by the listings and minted
latex packages. For example,
- \(setq org-latex-custom-lang-environments
- '\(\(python \"pythoncode\"\)\)\)
+ (setq org-latex-custom-lang-environments
+ '((python \"pythoncode\")))
would have the effect that if org encounters begin_src python
during latex export it will output
(when priority (format "\\framebox{\\#%c} " priority))
title
(when tags (format "\\hfill{}\\textsc{:%s:}"
- (mapconcat 'identity tags ":"))))))
- (format (concat "\\begin{center}\n"
- "\\fbox{\n"
- "\\begin{minipage}[c]{.6\\textwidth}\n"
- "%s\n\n"
- "\\rule[.8em]{\\textwidth}{2pt}\n\n"
- "%s"
- "\\end{minipage}\n"
- "}\n"
- "\\end{center}")
- full-title contents))))))
+ (mapconcat #'identity tags ":"))))))
+ (concat "\\begin{center}\n"
+ "\\fbox{\n"
+ "\\begin{minipage}[c]{.6\\textwidth}\n"
+ full-title "\n\n"
+ (and (org-string-nw-p contents)
+ (concat "\\rule[.8em]{\\textwidth}{2pt}\n\n" contents))
+ "\\end{minipage}\n"
+ "}\n"
+ "\\end{center}"))))))
;;;; Italic
;; description.
((string= type "radio")
(let ((destination (org-export-resolve-radio-link link info)))
- (when destination
+ (if (not destination) desc
(format "\\hyperref[%s]{%s}"
(org-export-solidify-link-text
(org-element-property :value destination))
'number-to-string
(org-export-get-headline-number destination info)
"-"))))
- (if (and (plist-get info :section-numbers) (not desc))
+ (if (and (not desc)
+ (org-export-numbered-headline-p destination info))
(format "\\ref{%s}" label)
(format "\\hyperref[%s]{%s}" label
(or desc
(file-name-directory full-name)
default-directory))
errors)
- (unless snippet (message (format "Processing LaTeX file %s..." texfile)))
+ (unless snippet (message "Processing LaTeX file %s..." texfile))
(save-window-excursion
(cond
;; A function is provided: Apply it.
;; Check for process failure. Provide collected errors if
;; possible.
(if (not (file-exists-p pdffile))
- (error (concat (format "PDF file %s wasn't produced" pdffile)
- (when errors (concat ": " errors))))
+ (error "PDF file %s wasn't produced%s" pdffile
+ (if errors (concat ": " errors) ""))
;; Else remove log files, when specified, and signal end of
;; process to user, along with any error encountered.
(when (and (not snippet) org-latex-remove-logfiles)