Variable: org-latex-classes
org-latex-classes is a customizable variable defined in
ox-latex.el.gz.
Value
(("default-koma-letter" "\\documentclass[11pt]{scrlttr2}")
("beamer" "\\documentclass[presentation]{beamer}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
("article" "\\documentclass[11pt]{article}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
("report" "\\documentclass[11pt]{report}"
("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
("book" "\\documentclass[11pt]{book}" ("\\part{%s}" . "\\part*{%s}")
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")))
Documentation
Alist of LaTeX classes and associated header and structure.
If #+LATEX_CLASS is set in the buffer, use its value and the associated information. Here is the structure of each cell:
(class-name
header-string
(numbered-section . unnumbered-section)
...)
The header string
-----------------
The HEADER-STRING is the header that will be inserted into the LaTeX file. It should contain the \documentclass macro, and anything else that is needed for this setup. To this header, the following commands will be added:
- Calls to \usepackage for all packages mentioned in the
variables org-latex-default-packages-alist and
org-latex-packages-alist. Thus, your header definitions
should avoid to also request these packages.
- Lines specified via "#+LATEX_HEADER:" and
"#+LATEX_HEADER_EXTRA:" keywords.
If you need more control about the sequence in which the header is built up, or if you want to exclude one of these building blocks for a particular class, you can use the following macro-like placeholders.
[DEFAULT-PACKAGES] \usepackage statements for default packages
[NO-DEFAULT-PACKAGES] do not include any of the default packages
[PACKAGES] \usepackage statements for packages
[NO-PACKAGES] do not include the packages
[EXTRA] the stuff from #+LATEX_HEADER(_EXTRA)
[NO-EXTRA] do not include #+LATEX_HEADER(_EXTRA) stuff
So a header like
\documentclass{article}
[NO-DEFAULT-PACKAGES]
[EXTRA]
\providecommand{\alert}[1]{\textbf{#1}}
[PACKAGES]
will omit the default packages, and will include the
#+LATEX_HEADER and #+LATEX_HEADER_EXTRA lines, then have a call
to \providecommand, and then place \usepackage commands based
on the content of org-latex-packages-alist.
If your header, org-latex-default-packages-alist or
org-latex-packages-alist inserts "\\usepackage[AUTO]{inputenc}",
AUTO will automatically be replaced with a coding system derived
from buffer-file-coding-system. See also the variable
org-latex-inputenc-alist for a way to influence this mechanism.
Likewise, if your header contains "\\usepackage[AUTO]{babel}"
or "\\usepackage[AUTO]{polyglossia}", AUTO will be replaced
with the language related to the language code specified by
org-export-default-language. Note that constructions such as
"\\usepackage[french,AUTO,english]{babel}" are permitted. For
Polyglossia the language will be set via the macros
"\\setmainlanguage" and "\\setotherlanguage". See also
org-latex-guess-babel-language and
org-latex-guess-polyglossia-language.
The sectioning structure
------------------------
The sectioning structure of the class is given by the elements following the header string. For each sectioning level, a number of strings is specified. A %s formatter is mandatory in each section string and will be replaced by the title of the section.
Instead of a cons cell (numbered . unnumbered), you can also provide a list of 2 or 4 elements,
(numbered-open numbered-close)
or
(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 should have a %s to represent the section title.
Instead of a list of sectioning commands, you can also specify a function name. That function will be called with two parameters, the (reduced) level of the headline, and a predicate non-nil when the headline should be numbered. It must return a format string in which the section title will be added.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ox-latex.el.gz
(defcustom org-latex-classes
'(("article"
"\\documentclass[11pt]{article}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
("report"
"\\documentclass[11pt]{report}"
("\\part{%s}" . "\\part*{%s}")
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
("book"
"\\documentclass[11pt]{book}"
("\\part{%s}" . "\\part*{%s}")
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")))
"Alist of LaTeX classes and associated header and structure.
If #+LATEX_CLASS is set in the buffer, use its value and the
associated information. Here is the structure of each cell:
(class-name
header-string
(numbered-section . unnumbered-section)
...)
The header string
-----------------
The HEADER-STRING is the header that will be inserted into the
LaTeX file. It should contain the \\documentclass macro, and
anything else that is needed for this setup. To this header, the
following commands will be added:
- Calls to \\usepackage for all packages mentioned in the
variables `org-latex-default-packages-alist' and
`org-latex-packages-alist'. Thus, your header definitions
should avoid to also request these packages.
- Lines specified via \"#+LATEX_HEADER:\" and
\"#+LATEX_HEADER_EXTRA:\" keywords.
If you need more control about the sequence in which the header
is built up, or if you want to exclude one of these building
blocks for a particular class, you can use the following
macro-like placeholders.
[DEFAULT-PACKAGES] \\usepackage statements for default packages
[NO-DEFAULT-PACKAGES] do not include any of the default packages
[PACKAGES] \\usepackage statements for packages
[NO-PACKAGES] do not include the packages
[EXTRA] the stuff from #+LATEX_HEADER(_EXTRA)
[NO-EXTRA] do not include #+LATEX_HEADER(_EXTRA) stuff
So a header like
\\documentclass{article}
[NO-DEFAULT-PACKAGES]
[EXTRA]
\\providecommand{\\alert}[1]{\\textbf{#1}}
[PACKAGES]
will omit the default packages, and will include the
#+LATEX_HEADER and #+LATEX_HEADER_EXTRA lines, then have a call
to \\providecommand, and then place \\usepackage commands based
on the content of `org-latex-packages-alist'.
If your header, `org-latex-default-packages-alist' or
`org-latex-packages-alist' inserts \"\\usepackage[AUTO]{inputenc}\",
AUTO will automatically be replaced with a coding system derived
from `buffer-file-coding-system'. See also the variable
`org-latex-inputenc-alist' for a way to influence this mechanism.
Likewise, if your header contains \"\\usepackage[AUTO]{babel}\"
or \"\\usepackage[AUTO]{polyglossia}\", AUTO will be replaced
with the language related to the language code specified by
`org-export-default-language'. Note that constructions such as
\"\\usepackage[french,AUTO,english]{babel}\" are permitted. For
Polyglossia the language will be set via the macros
\"\\setmainlanguage\" and \"\\setotherlanguage\". See also
`org-latex-guess-babel-language' and
`org-latex-guess-polyglossia-language'.
The sectioning structure
------------------------
The sectioning structure of the class is given by the elements
following the header string. For each sectioning level, a number
of strings is specified. A %s formatter is mandatory in each
section string and will be replaced by the title of the section.
Instead of a cons cell (numbered . unnumbered), you can also
provide a list of 2 or 4 elements,
(numbered-open numbered-close)
or
(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
should have a %s to represent the section title.
Instead of a list of sectioning commands, you can also specify
a function name. That function will be called with two
parameters, the (reduced) level of the headline, and a predicate
non-nil when the headline should be numbered. It must return
a format string in which the section title will be added."
:group 'org-export-latex
:type '(repeat
(list (string :tag "LaTeX class")
(string :tag "LaTeX header")
(repeat :tag "Levels" :inline t
(choice
(cons :tag "Heading"
(string :tag " numbered")
(string :tag "unnumbered"))
(list :tag "Environment"
(string :tag "Opening (numbered)")
(string :tag "Closing (numbered)")
(string :tag "Opening (unnumbered)")
(string :tag "Closing (unnumbered)"))
(function :tag "Hook computing sectioning"))))))