org-lsp

Org's options in Emacs

What only Emacs can do, the server has Emacs do: export, evaluating code blocks, attachments, citations, encryption, LaTeX previews and a few others (Export, Babel and other work in Emacs). The options of Org that Emacs reads for these are set in emacs_options, by their names in Org. This page lists each of them, with Org's own documentation of it.

The other options of Org are not here: most are settings of the server (configuration.org), and those whose value is Lisp (a hook, a function given whole) go in emacs_config. The Options section of parity.org says what org-lsp does with each.

Setting them#

In the shared file, under [emacs_options]:

# ~/.config/org-lsp/config.toml
[emacs_options]
org-attach-method = "mv"
org-export-with-toc = false
org-export-backends = ["ascii", "html", "icalendar", "latex", "md", "odt"]
org-babel-load-languages = { emacs-lisp = true, python = true }

From an editor, as the other options: in Neovim, whose names with - need brackets,

require('org-lsp').setup({
  settings = {
    emacs_options = { ['org-attach-method'] = 'mv', ['org-export-with-toc'] = false },
  },
})

and in VS Code's settings.json, which completes the names and shows the first sentence of each one's documentation:

"org-lsp.settings": {
  "emacs_options": { "org-attach-method": "mv", "org-export-with-toc": false }
}

The editor's emacs_options goes over the file's option by option: an option the editor sets has the editor's value alone (a table is not merged with the file's), and the others keep the file's.

How values become Lisp#

The values are JSON (or TOML), which Emacs makes what the option's type (its custom-type) wants:

  • true is t and false is nil;
  • a number is a number, and an integer where the type wants a float is that float;
  • a string is a string, or a symbol where the type wants one ("mv" is mv), or a character where it wants one, or a function where it wants one: the name of a function Emacs has by then, from Org or from emacs_config ("my-drawer" is my-drawer);
  • an array is a list;
  • a table is an association list, its keys made what the type wants ({ emacs-lisp = true } is ((emacs-lisp . t))), or a list of its pairs where the type wants a list, or a property list, whose keys are keywords (scale is :scale), where it wants one;
  • null (in JSON) is nil, as false is: it does not give the option its default back, which leaving the option out does;
  • a date or a time in TOML is its text (2026-10-21 is "2026-10-21"), which no option takes.

Where the type is a choice, Customize's user picks the alternative; here the value says it, in this order:

  • a string that names a constant of the choice is that constant ("auto" is auto for org-babel-python-command, whose other alternative is a string), and an array that starts with one is the list that starts with it (["not", "LOGBOOK"] is (not "LOGBOOK") for org-export-with-drawers);
  • then a string stays a string where the choice takes strings, unless it is written as a keyword (":with-toc" is :with-toc where the choice takes symbols too, as in org-html-infojs-options);
  • then the value is the first alternative it fits.

So a string spelled as one of the constants cannot be that string, where a choice has both: Lisp in emacs_config can say it.

Emacs then checks the value against the type, as Customize does. A value the option does not take is left out, with a message that names the part that does not fit (an item of a list, a key or a value of a table) and what it may be; the server names an option that is not one of those here, and says why it leaves it out.

When they apply#

Emacs loads emacs_config_file, evaluates emacs_config, then loads Org. Each option of emacs_options is set when the library it is in loads (org-attach-method when org-attach does), as Customize sets it, with the option's own :set function: so after emacs_config_file and emacs_config, and over what they set.

The server starts Emacs with them the first time it needs it and keeps it running: after changing them, restart the server (When something is wrong says how in each editor).

Lisp, which emacs_options cannot say, goes in emacs_config: a function written there (which emacs_options then names), a hook, or any value computed when Emacs runs.

emacs_config = '''
(defun my-drawer (_name contents) contents)
'''

[emacs_options]
org-html-format-drawer-function = "my-drawer"

The options#

The 479 options, by the file of Org they are in. Each has Org's own documentation of it, as C-h v shows it in Emacs, then its default as Emacs prints it, its type as Customize has it, and its default in the shared file, where TOML can say it.

ob-C.el#

org-babel-C-compiler#

Command used to compile a C source code file into an executable. May be either a command in the path, like gcc or an absolute path name, like /usr/local/bin/gcc parameter may be used, like gcc -v

Default
"gcc"
Type
string
Since
Emacs 24.3
[emacs_options]
org-babel-C-compiler = "gcc"

org-babel-C++-compiler#

Command used to compile a C++ source code file into an executable. May be either a command in the path, like g++ or an absolute path name, like /usr/local/bin/g++ parameter may be used, like g++ -v

Default
"g++"
Type
string
Since
Emacs 24.3
[emacs_options]
"org-babel-C++-compiler" = "g++"

org-babel-D-compiler#

Command used to compile and execute a D source code file. May be either a command in the path, like rdmd or an absolute path name, like /usr/local/bin/rdmd parameter may be used, like rdmd --chatty

Default
"rdmd"
Type
string
Since
Emacs 24.3
[emacs_options]
org-babel-D-compiler = "rdmd"

ob-R.el#

org-babel-R-command#

Name of command to use for executing R code.

Default
"R --slave --no-save"
Type
string
Since
Emacs 24.1
[emacs_options]
org-babel-R-command = "R --slave --no-save"

ob-clojure.el#

org-babel-clojure-backend#

Backend used to evaluate Clojure code blocks.

Default
computed when Org loads:
(cond
 ((executable-find "bb") 'babashka)
 ((executable-find "clojure") 'clojure-cli)
 ((featurep 'cider) 'cider)
 ((featurep 'inf-clojure) 'inf-clojure)
 ((featurep 'slime) 'slime)
 (t nil))
Type
(choice
 (const :tag "babashka" babashka)
 (const :tag "clojure-cli" clojure-cli)
 (const :tag "cider" cider)
 (const :tag "inf-clojure" inf-clojure)
 (const :tag "slime" slime)
 (const :tag "Not configured yet" nil))
Since
Org 9.7

org-babel-clojurescript-backend#

Backend used to evaluate ClojureScript code blocks.

Default
computed when Org loads:
(cond
 ((or (executable-find "nbb") (executable-find "npx")) 'nbb)
 ((featurep 'cider) 'cider)
 (t nil))
Type
(choice
 (const :tag "nbb" nbb)
 (const :tag "cider" cider)
 (const :tag "Not configured yet" nil))
Since
Org 9.7

org-babel-clojure-default-ns#

Default Clojure namespace for source block when finding ns failed.

Default
"user"
Type
string
[emacs_options]
org-babel-clojure-default-ns = "user"

ob-clojure-babashka-command#

Babashka command used by the Clojure babashka backend.

Default
computed when Org loads: (executable-find "bb")
Type
(choice file
        (const nil))
Since
Org 9.6

ob-clojure-nbb-command#

Nbb command used by the ClojureScript nbb backend.

Default
computed when Org loads:
(or (executable-find "nbb")
    (when-let* ((npx (executable-find "npx")))
      (concat npx " nbb")))
Type
(choice string
        (const nil))
Since
Org 9.7

ob-clojure-cli-command#

Clojure CLI command used by the Clojure clojure-cli backend.

Default
computed when Org loads:
(when-let* ((cmd (executable-find "clojure")))
  (concat cmd " -M"))
Type
(choice string
        (const nil))
Since
Org 9.7

ob-comint.el#

org-babel-comint-fallback-regexp-threshold#

Waiting time until trying to use fallback regexp to detect prompt. This is useful when prompt unexpectedly changes.

Default
5.0
Type
float
Since
Org 9.7
[emacs_options]
org-babel-comint-fallback-regexp-threshold = 5

ob-core.el#

org-confirm-babel-evaluate#

Confirm before evaluation. Require confirmation before interactively evaluating code blocks in Org buffers. The default value of this variable is t, meaning confirmation is required for any code block evaluation. This variable can be set to nil to inhibit any future confirmation requests. This variable can also be set to a function which takes two arguments the language of the code block and the body of the code block. Such a function should then return a non-nil value if the user should be prompted for execution or nil if no prompt is required.

Warning: Disabling confirmation may result in accidental evaluation of potentially harmful code. It may be advisable remove code block execution from C-c C-c as further protection against accidental code block evaluation. The org-babel-no-eval-on-ctrl-c-ctrl-c variable can be used to remove code block execution from the C-c C-c keybinding.

Default
t
Type
(choice boolean function)
Since
Emacs 24.1
[emacs_options]
org-confirm-babel-evaluate = true

org-babel-no-eval-on-ctrl-c-ctrl-c#

Remove code block evaluation from the C-c C-c key binding.

Default
nil
Type
boolean
Since
Emacs 24.1
[emacs_options]
org-babel-no-eval-on-ctrl-c-ctrl-c = false

org-babel-results-keyword#

Keyword used to name results generated by code blocks. It should be "RESULTS". However any capitalization may be used.

Default
"RESULTS"
Type
string
Since
Org 8.0
[emacs_options]
org-babel-results-keyword = "RESULTS"

org-babel-inline-result-wrap#

Format string used to wrap inline results. This string must include a "%s" which will be replaced by the results.

Default
"=%s="
Type
string
[emacs_options]
org-babel-inline-result-wrap = "=%s="

org-babel-hash-show-time#

Non-nil means show the time the code block was evaluated in the result hash.

Default
nil
Type
boolean
Since
Org 9.0
[emacs_options]
org-babel-hash-show-time = false

org-babel-uppercase-example-markers#

When non-nil, begin/end example markers will be inserted in upper case.

Default
nil
Type
boolean
Since
Org 9.1
[emacs_options]
org-babel-uppercase-example-markers = false

org-babel-remote-temporary-directory#

Directory to hold temporary files on remote hosts.

Default
"/tmp/"
Type
string
[emacs_options]
org-babel-remote-temporary-directory = "/tmp/"

ob-csharp.el#

org-babel-csharp-compiler#

The program to call for compiling a csharp project.

Default
"dotnet"
Type
string
Since
Org 9.8
[emacs_options]
org-babel-csharp-compiler = "dotnet"

org-babel-csharp-default-target-framework#

The desired target framework to use.

Default
computed when Org loads:
(format "net%s.0"
        (let ((net-sdks (org-babel-csharp--find-dotnet-version)))
          (when net-sdks
            (apply #'max net-sdks))))
Type
string
Since
Org 9.8

org-babel-csharp-generate-compile-command#

A function creating the compile command.

It must take two parameters intended for the target binary directory and a .sln file, .csproj file, or a base directory where either can be found.

Default
org-babel-csharp--default-compile-command
Type
function
Since
Org 9.8
[emacs_options]
org-babel-csharp-generate-compile-command = "org-babel-csharp--default-compile-command"

org-babel-csharp-generate-restore-command#

A function creating a project restore command.

It must take one parameter defining the project to perform a restore on.

Default
org-babel-csharp--default-restore-command
Type
function
Since
Org 9.8
[emacs_options]
org-babel-csharp-generate-restore-command = "org-babel-csharp--default-restore-command"

org-babel-csharp-additional-project-flags#

Will be passed in the "PropertyGroup" defining the project.

This is taken as-is. It should be a string in XML-format.

Default
nil
Type
(choice string
        (const nil))
Since
Org 9.8
[emacs_options]
org-babel-csharp-additional-project-flags = false

ob-ditaa.el#

org-ditaa-default-exec-mode#

Method to use for ditaa diagram generation when generating png or svg output. jar means to use java together with a JAR. The JAR must be set via org-ditaa-jar-path.

ditaa means to use the ditaa executable. The executable can be configured via org-ditaa-exec.

Default
jar
Type
(choice
 (const :tag "Use java together with a JAR file." jar)
 (const :tag "Use ditaa executable." ditaa))
Since
Org 9.8
[emacs_options]
org-ditaa-default-exec-mode = "jar"

org-ditaa-exec#

File name of the ditaa executable.

Default
"ditaa"
Type
string
Since
Org 9.8
[emacs_options]
org-ditaa-exec = "ditaa"

org-ditaa-java-exec#

Java executable to use when evaluating ditaa blocks using a JAR.

Default
"java"
Type
string
Since
Org 9.8
[emacs_options]
org-ditaa-java-exec = "java"

org-ditaa-jar-path#

Path to the ditaa.jar file.

Default
computed when Org loads:
(expand-file-name
 "ditaa.jar"
 (file-name-as-directory
  (expand-file-name
   "scripts"
   (file-name-as-directory
    (expand-file-name
     "../contrib"
     (file-name-directory (org-find-library-dir "org")))))))
Type
string

org-ditaa-eps-jar-path#

Path to the DitaaEps.jar executable. Used when generating eps or pdf output.

Default
computed when Org loads:
(expand-file-name "DitaaEps.jar" (file-name-directory org-ditaa-jar-path))
Type
string
Since
Org 8.0

ob-exp.el#

org-export-use-babel#

Switch controlling code evaluation and header processing during export. When set to nil no code will be evaluated as part of the export process and no header arguments will be obeyed. Users who wish to avoid evaluating code on export should use the header argument :eval never-export.

Default
t
Type
(choice
 (const :tag "Never" nil)
 (const :tag "Always" t))
Since
Emacs 24.1
[emacs_options]
org-export-use-babel = true

org-babel-exp-call-line-template#

Template used to export call lines. This template may be customized to include the call line name with any export markup. The template is filled out using org-fill-template, and the following %keys may be used.

line --- call line

An example value would be "\n: call: %line" to export the call line wrapped in a verbatim environment.

Note: the results are inserted separately after the contents of this template.

Default
""
Type
string
[emacs_options]
org-babel-exp-call-line-template = ""

org-babel-exp-code-template#

Template used to export the body of code blocks. This template may be customized to include additional information such as the code block name, or the values of particular header arguments. The template is filled out using org-fill-template, and the following %keys may be used.

lang ------ the language of the code block
name ------ the name of the code block
body ------ the body of the code block
switches -- the switches associated to the code block
header-args the header arguments of the code block

In addition to the keys mentioned above, every header argument defined for the code block may be used as a key and will be replaced with its value.

Default
"#+begin_src %lang%switches%header-args\n%body\n#+end_src"
Type
string
Since
Org 9.7
[emacs_options]
org-babel-exp-code-template = "#+begin_src %lang%switches%header-args\n%body\n#+end_src"

org-babel-exp-inline-code-template#

Template used to export the body of inline code blocks. This template may be customized to include additional information such as the code block name, or the values of particular header arguments. The template is filled out using org-fill-template, and the following %keys may be used.

lang ------ the language of the code block
name ------ the name of the code block
body ------ the body of the code block
switches -- the switches associated to the code block
header-args the header arguments of the code block

In addition to the keys mentioned above, every header argument defined for the code block may be used as a key and will be replaced with its value.

Default
"src_%lang[%switches%header-args]{%body}"
Type
string
Since
Org 9.7
[emacs_options]
org-babel-exp-inline-code-template = "src_%lang[%switches%header-args]{%body}"

ob-fortran.el#

org-babel-fortran-compiler#

Fortran command used to compile Fortran source code file.

Default
"gfortran"
Type
string
Since
Org 9.5
[emacs_options]
org-babel-fortran-compiler = "gfortran"

ob-gnuplot.el#

org-babel-gnuplot-terms#

List of file extensions and the associated gnuplot terminal.

Default
((eps . "postscript eps"))
Type
(repeat
 (cons
  (symbol :tag "File extension")
  (string :tag "Gnuplot terminal")))
[emacs_options]
"*org-babel-gnuplot-terms*" = { eps = "postscript eps" }

ob-groovy.el#

org-babel-groovy-command#

Name of the command to use for executing Groovy code. May be either a command in the path, like groovy or an absolute path name, like /usr/local/bin/groovy parameters may be used, like groovy -v

Default
"groovy"
Type
string
Since
Emacs 24.3
[emacs_options]
org-babel-groovy-command = "groovy"

ob-haskell.el#

org-babel-haskell-compiler#

Command used to compile a Haskell source code file into an executable. May be either a command in the path, like "ghc" or an absolute path name, like "/usr/local/bin/ghc". The command can include a parameter, such as "ghc -v".

Default
"ghc"
Type
string
Since
Org 9.4
[emacs_options]
org-babel-haskell-compiler = "ghc"

ob-java.el#

org-babel-java-command#

Name of the java command. May be either a command in the path, like java or an absolute path name, like /usr/local/bin/java. Parameters may be used, like java -verbose.

Default
"java"
Type
string
Since
Org 9.5
[emacs_options]
org-babel-java-command = "java"

org-babel-java-compiler#

Name of the java compiler. May be either a command in the path, like javac or an absolute path name, like /usr/local/bin/javac. Parameters may be used, like javac -verbose.

Default
"javac"
Type
string
Since
Org 9.5
[emacs_options]
org-babel-java-compiler = "javac"

org-babel-java-hline-to#

Replace hlines in incoming tables with this when translating to java.

Default
"null"
Type
string
Since
Org 9.5
[emacs_options]
org-babel-java-hline-to = "null"

org-babel-java-null-to#

Replace null in java tables with this before returning.

Default
hline
Type
symbol
Since
Org 9.5
[emacs_options]
org-babel-java-null-to = "hline"

ob-js.el#

org-babel-js-cmd#

Name of command used to evaluate js blocks.

Default
"node"
Type
(choice
 (const "node")
 (const "mozrepl")
 (const "skewer-mode")
 (const "indium")
 (const "js-comint"))
Since
Emacs 24.1
[emacs_options]
org-babel-js-cmd = "node"

ob-julia.el#

org-babel-julia-command#

Name of command to use for executing julia code.

Default
"julia"
Type
string
Since
Org 8.0
[emacs_options]
org-babel-julia-command = "julia"

ob-latex.el#

org-babel-latex-htlatex#

The htlatex command to enable conversion of LaTeX to SVG or HTML.

Default
"htlatex"
Type
string
[emacs_options]
org-babel-latex-htlatex = "htlatex"

org-babel-latex-preamble#

Closure which evaluates at runtime to the LaTeX preamble.

It takes 1 argument which is the parameters of the source block.

Default
#'(lambda
    (_)
    "\\documentclass[preview]{standalone}\n")
Type
function
Since
Org 9.8

org-babel-latex-begin-env#

Function that evaluates to the begin part of the document environment.

It takes 1 argument which is the parameters of the source block. This allows adding additional code that will be ignored when exporting the literal LaTeX source.

Default
#'(lambda
    (_)
    "\\begin{document}")
Type
function

org-babel-latex-end-env#

Closure which evaluates at runtime to the end part of the document environment.

It takes 1 argument which is the parameters of the source block. This allows adding additional code that will be ignored when exporting the literal LaTeX source.

Default
#'(lambda
    (_)
    "\\end{document}")
Type
function

org-babel-latex-pdf-svg-process#

Command to convert a PDF file to an SVG file.

Default
"inkscape --pdf-poppler --export-area-drawing --export-text-to-path --export-plain-svg --export-filename=%O %f"
Type
string
Since
Org 9.6
[emacs_options]
org-babel-latex-pdf-svg-process = "inkscape --pdf-poppler --export-area-drawing --export-text-to-path --export-plain-svg --export-filename=%O %f"

org-babel-latex-htlatex-packages#

Packages to use for htlatex export.

Default
("[usenames]{color}" "{tikz}" "{color}" "{listings}" "{amsmath}")
Type
(repeat
 (string))
[emacs_options]
org-babel-latex-htlatex-packages = ["[usenames]{color}", "{tikz}", "{color}", "{listings}", "{amsmath}"]

org-babel-latex-process-alist#

Definitions of external processes for LaTeX result generation. See org-preview-latex-process-alist for more details.

The following process symbols are recognized:

png
Process used to produce .png output.
Default
computed when Org loads:
`((png :programs ("latex" "dvipng") :description "dvi > png"
       :message
       "you need to install the programs: latex and dvipng."
       :image-input-type "dvi" :image-output-type "png"
       :image-size-adjust (1.0 . 1.0) :latex-compiler
       ,(if (and (executable-find "latexmk") (executable-find "perl"))
            '("latexmk -f -pdf -latex -interaction=nonstopmode -output-directory=%o %f")
          '("latex -interaction nonstopmode -output-directory %o %f"
            "latex -interaction nonstopmode -output-directory %o %f"
            "latex -interaction nonstopmode -output-directory %o %f"))
       :image-converter ("dvipng -D %D -T tight -o %O %f")
       :transparent-image-converter
       ("dvipng -D %D -T tight -bg Transparent -o %O %f")))
Type
(alist :tag "LaTeX to image backends" :value-type
       (plist))
Since
Org 9.8

ob-lilypond.el#

org-babel-lilypond-commands#

Commands to run lilypond and view or play the results. These should be executables that take a filename as an argument. On some system it is possible to specify the filename directly and the viewer or player will be determined from the file type; you can leave the string empty on this case.

Default
computed when Org loads:
(cond
 ((eq system-type 'darwin)
  '("/Applications/lilypond.app/Contents/Resources/bin/lilypond" "open" "open"))
 ((eq system-type 'windows-nt)
  '("lilypond" "" ""))
 (t
  '("lilypond" "xdg-open" "xdg-open")))
Type
(list
 (string :tag "Lilypond   ")
 (string :tag "PDF Viewer ")
 (string :tag "MIDI Player"))
Since
Org 8.2.7

ob-lisp.el#

org-babel-lisp-eval-fn#

The function to be called to evaluate code on the Lisp side. Valid values include slime-eval and sly-eval.

Default
slime-eval
Type
symbol
Since
Org 9.0
[emacs_options]
org-babel-lisp-eval-fn = "slime-eval"

org-babel-lisp-dir-fmt#

Format string used to wrap code bodies to set the current directory. For example a value of "(progn ;; %s\n %%s)" would ignore the current directory string.

Default
"(cl:let ((cl:*default-pathname-defaults* #P%S\n)) %%s\n)"
Type
string
Since
Org 9.8
[emacs_options]
org-babel-lisp-dir-fmt = "(cl:let ((cl:*default-pathname-defaults* #P%S\n)) %%s\n)"

ob-lua.el#

org-babel-lua-command#

Name of the command for executing Lua code.

Default
"lua"
Type
string
Since
Org 8.3
[emacs_options]
org-babel-lua-command = "lua"

org-babel-lua-mode#

Preferred Lua mode for use in running Lua interactively. This will typically be lua-mode.

Default
lua-mode
Type
symbol
Since
Org 8.3
[emacs_options]
org-babel-lua-mode = "lua-mode"

org-babel-lua-hline-to#

Replace hlines in incoming tables with this when translating to Lua.

Default
"None"
Type
string
Since
Org 8.3
[emacs_options]
org-babel-lua-hline-to = "None"

org-babel-lua-None-to#

Replace None in Lua tables with this before returning.

Default
hline
Type
symbol
Since
Org 8.3
[emacs_options]
org-babel-lua-None-to = "hline"

org-babel-lua-multiple-values-separator#

Separate multiple values with this string.

Default
", "
Type
string
Since
Org 9.7
[emacs_options]
org-babel-lua-multiple-values-separator = ", "

ob-maxima.el#

org-babel-maxima-command#

Command used to call maxima on the shell.

Default
computed when Org loads: (if (boundp 'maxima-command) maxima-command "maxima")
Type
string

ob-ocaml.el#

org-babel-ocaml-command#

Name of the command for executing Ocaml code.

Default
"ocaml"
Type
string
Since
Org 8.0
[emacs_options]
org-babel-ocaml-command = "ocaml"

ob-plantuml.el#

org-plantuml-jar-path#

Path to the plantuml.jar file.

Default
""
Type
string
Since
Emacs 24.1
[emacs_options]
org-plantuml-jar-path = ""

org-plantuml-exec-mode#

Method to use for PlantUML diagram generation. jar means to use java together with the JAR. The JAR can be configured via org-plantuml-jar-path.

plantuml means to use the PlantUML executable. The executable can be configured via org-plantuml-executable-path. You can also configure extra arguments via org-plantuml-args.

Default
jar
Type
symbol
Since
Org 9.4
[emacs_options]
org-plantuml-exec-mode = "jar"

org-plantuml-executable-path#

File name of the PlantUML executable.

Default
"plantuml"
Type
string
Since
Org 9.4
[emacs_options]
org-plantuml-executable-path = "plantuml"

org-plantuml-args#

The arguments passed to plantuml when executing PlantUML.

Default
("-headless")
Type
(repeat string)
Since
Org 9.4
[emacs_options]
org-plantuml-args = ["-headless"]

org-babel-plantuml-svg-text-to-path#

When non-nil, export text in SVG images to paths using Inkscape.

Default
nil
Type
boolean
Since
Org 9.5
[emacs_options]
org-babel-plantuml-svg-text-to-path = false

ob-python.el#

org-babel-python-command#

Command (including arguments) for interactive and non-interactive Python code. When not auto, it overrides org-babel-python-command-session and org-babel-python-command-nonsession.

Default
auto
Type
(choice string
        (const auto))
Since
Org 9.7
[emacs_options]
org-babel-python-command = "auto"

org-babel-python-command-session#

Command (including arguments) for starting interactive Python sessions. If auto (the default), uses the values from python-shell-interpreter and python-shell-interpreter-args. If org-babel-python-command is set, then it overrides this option.

Default
auto
Type
(choice string
        (const auto))
Since
Org 9.7
[emacs_options]
org-babel-python-command-session = "auto"

org-babel-python-command-nonsession#

Command (including arguments) for executing non-interactive Python code. If org-babel-python-command is set, then it overrides this option.

Default
"python"
Type
string
Since
Org 9.7
[emacs_options]
org-babel-python-command-nonsession = "python"

org-babel-python-hline-to#

Replace hlines in incoming tables with this when translating to python.

Default
"None"
Type
string
Since
Org 8.0
[emacs_options]
org-babel-python-hline-to = "None"

org-babel-python-None-to#

Replace None in python tables with this before returning.

Default
hline
Type
symbol
Since
Org 8.0
[emacs_options]
org-babel-python-None-to = "hline"

ob-ruby.el#

org-babel-ruby-hline-to#

Replace hlines in incoming tables with this when translating to ruby.

Default
"nil"
Type
string
Since
Org 8.0
[emacs_options]
org-babel-ruby-hline-to = "nil"

org-babel-ruby-nil-to#

Replace nil in ruby tables with this before returning.

Default
hline
Type
symbol
Since
Org 8.0
[emacs_options]
org-babel-ruby-nil-to = "hline"

ob-scheme.el#

org-babel-scheme-null-to#

Replacement for () and null in tabulated Scheme results.

Default
hline
Type
symbol
Since
Org 9.1
[emacs_options]
org-babel-scheme-null-to = "hline"

ob-shell.el#

org-babel-shell-names#

List of names of shell supported by babel shell code blocks. Call org-babel-shell-initialize when modifying this variable outside the Customize interface.

Default
("sh" "bash" "zsh" "fish" "csh" "ash" "dash" "ksh" "mksh" "posh")
Type
(repeat
 (string :tag "Shell name: "))
[emacs_options]
org-babel-shell-names = ["sh", "bash", "zsh", "fish", "csh", "ash", "dash", "ksh", "mksh", "posh"]

org-babel-shell-results-defaults-to-output#

Let shell execution defaults to ":results output".

When set to t, use ":results output" when no :results setting is set. This is especially useful for inline source blocks.

When set to nil, stick to the convention of using :results value as the default setting when no :results is set, the "value" of a shell execution being its exit code.

Default
t
Type
boolean
Since
Org 9.4
[emacs_options]
org-babel-shell-results-defaults-to-output = true

oc-biblatex.el#

org-cite-biblatex-options#

Options added to "biblatex" package. If "biblatex" package is already required in the document, e.g., through org-latex-packages-alist variable, these options are ignored.

Default
nil
Type
(choice
 (string :tag "Options (key=value,key2=value2...)")
 (const :tag "No option" nil))
Since
Org 9.5
[emacs_options]
org-cite-biblatex-options = false

org-cite-biblatex-styles#

List of styles and variants, with associated BibLaTeX commands.

Each style follows the pattern

(NAME VARIANT COMMAND MULTI-COMMAND NO-OPTION)

where:

NAME is the name of the style, as a string, or nil.  The nil
style is the default style.  As such, it must have an entry in
the list.

VARIANT is the name of the style variant, as a string or nil.
The nil variant is the default variant for the current style.
As such, each style name must be associated to a nil variant.

COMMAND is the LaTeX command to use, as a string.  It should
not contain the leading backslash character.

MULTI-COMMAND is the LaTeX command to use when a multi-cite
command is appropriate.  When nil, the style is deemed
inappropriate for multi-cites.  The command should not contain
the leading backslash character.

NO-OPTION is a boolean.  When non-nil, no optional argument
should be added to the LaTeX command.

Each NAME-VARIANT pair should be unique in the list.

It is also possible to provide shortcuts for style and variant names. See org-cite-biblatex-style-shortcuts.

Default
(("author" "caps" "Citeauthor*" nil nil)
 ("author" "full" "citeauthor" nil nil)
 ("author" "caps-full" "Citeauthor" nil nil)
 ("author" nil "citeauthor*" nil nil)
 ("locators" "bare" "notecite" nil nil)
 ("locators" "caps" "Pnotecite" nil nil)
 ("locators" "bare-caps" "Notecite" nil nil)
 ("locators" nil "pnotecite" nil nil)
 ("noauthor" "bare" "cite*" nil nil)
 ("noauthor" nil "autocite*" nil nil)
 ("nocite" nil "nocite" nil t)
 ("text" "caps" "Textcite" "Textcites" nil)
 ("text" nil "textcite" "textcites" nil)
 (nil "bare" "cite" "cites" nil)
 (nil "caps" "Autocite" "Autocites" nil)
 (nil "bare-caps" "Cite" "Cites" nil)
 (nil nil "autocite" "autocites" nil))
Type
(repeat
 (list :tag "Style/variant combination"
       (choice :tag "Style"
               (string :tag "Name")
               (const :tag "Default style" nil))
       (choice :tag "Variant"
               (string :tag "Name")
               (const :tag "Default variant" nil))
       (string :tag "Command name")
       (choice :tag "Multicite command"
               (string :tag "Command name")
…
Since
Org 9.6

org-cite-biblatex-style-shortcuts#

List of shortcuts associated to style or variant names.

Each entry is a pair (NAME . STYLE-NAME) where NAME is the name of the shortcut, as a string, and STYLE-NAME is the name of a style in org-cite-biblatex-styles.

Default
(("a" . "author")
 ("b" . "bare")
 ("bc" . "bare-caps")
 ("c" . "caps")
 ("cf" . "caps-full")
 ("f" . "full")
 ("l" . "locators")
 ("n" . "nocite")
 ("na" . "noauthor")
 ("t" . "text"))
Type
(repeat
 (cons :tag "Shortcut"
       (string :tag "Name")
       (string :tag "Full name")))
Since
Org 9.6

oc-bibtex.el#

org-cite-bibtex-bibliography-style#

Default BibTeX bibliography style.

BibTeX provides the following default styles:

"plain"   Sorted numbered entries
"abbrv"   Sorted numbered entries with abbreviated author name
"unsrt"   Unsorted numbered entries
"alpha"   Alphabetized entries with unique short id
"acm"     ACM Transactions
"apalike" APA-like
"ieeetr"  IEEE Transactions
"siam"    SIAM
Default
"plain"
Type
(choice
 (const :tag "Plain" "plain")
 (const :tag "Abbreviated" "abbrv")
 (const :tag "Unsorted" "unsrt")
 (const :tag "Alphabetic" "alpha")
 (const :tag "ACM" "acm")
 (const :tag "APA-like" "apalike")
 (const :tag "IEEE" "ieeetr")
 (const :tag "SIAM" "siam")
 (string :tag "Other"))
Since
Org 9.8
[emacs_options]
org-cite-bibtex-bibliography-style = "plain"

oc-csl.el#

org-cite-csl-locales-dir#

Directory of CSL locale files. If nil then only the fallback en-US locale will be available.

Default
nil
Type
(choice
 (directory :tag "Locales directory")
 (const :tag "Use en-US locale only" nil))
Since
Org 9.5
[emacs_options]
org-cite-csl-locales-dir = false

org-cite-csl-styles-dir#

Directory of CSL style files.

Relative style file names are expanded according to document's default directory. If it fails and the variable is non-nil, Org looks for style files in this directory, too.

Default
nil
Type
(choice
 (directory :tag "Styles directory")
 (const :tag "No central directory for style files" nil))
Since
Org 9.5
[emacs_options]
org-cite-csl-styles-dir = false

When non-nil, link cites to references.

Default
t
Type
boolean
Since
Org 9.5
[emacs_options]
org-cite-csl-link-cites = true

List of export backends for which cite linking is disabled. Cite linking for export backends derived from any of the backends listed here, is also disabled.

Default
(ascii)
Type
(repeat symbol)
Since
Org 9.5
[emacs_options]
org-cite-csl-no-citelinks-backends = ["ascii"]

org-cite-csl-html-hanging-indent#

Size of hanging-indent for HTML output in valid CSS units.

Default
"1.5em"
Type
string
Since
Org 9.5
[emacs_options]
org-cite-csl-html-hanging-indent = "1.5em"

org-cite-csl-html-label-width-per-char#

Character width in CSS units for calculating entry label widths. Used only when second-field-align is activated by the used CSL style.

Default
"0.6em"
Type
string
Since
Org 9.5
[emacs_options]
org-cite-csl-html-label-width-per-char = "0.6em"

org-cite-csl-latex-hanging-indent#

Size of hanging-indent for LaTeX output in valid LaTeX units.

Default
"1.5em"
Type
string
Since
Org 9.5
[emacs_options]
org-cite-csl-latex-hanging-indent = "1.5em"

org-cite-csl-latex-label-separator#

Distance between citation label and bibliography item for LaTeX output. The value is a string representing the distance in valid LaTeX units. Used only when second-field-align is activated by the used CSL style.

The indentation length in these cases is computed as the sum of org-cite-csl-latex-label-separator and the maximal label width, for example,

    indentation length
<------------------------->

max. label width separator

<---------------><-------->
[Doe22]                    John Doe.  A title...
[DoeSmithJones19]          John Doe, Jane Smith and...
[SmithDoe02]               Jane Smith and John Doe...

The maximal label width, in turn, is calculated as the product of org-cite-csl-latex-label-width-per-char and the maximal label length measured in characters.

Default
"0.6em"
Type
string
Since
Org 9.7
[emacs_options]
org-cite-csl-latex-label-separator = "0.6em"

org-cite-csl-latex-label-width-per-char#

Character width in LaTeX units for calculating entry label widths. Used only when second-field-align is activated by the used CSL style.

See the documentation of org-cite-csl-latex-label-separator for details.

Default
"0.45em"
Type
string
Since
Org 9.7
[emacs_options]
org-cite-csl-latex-label-width-per-char = "0.45em"

org-cite-csl-latex-preamble#

LaTeX preamble content inserted by the csl citation processor.

This preamble can be anything as long as it provides definitions for the environment and commands that Citeproc's org-latex formatter uses for formatting citations and bibliographies. In particular, it has to define

  • the commands \cslblock{<text>}, \cslleftmargin{<text>}, \cslrightinline{<text>} and \cslindent{<text>} for formatting text that have, respectively, the CSL display attributes block, left-margin, right-inline and indent;
  • the commands \cslcitation{<item_no>}{<item_text>} and \cslbibitem{<item_no>}{<item_text>}, which are used to format individual citations and bibliography items, including hyperlinking citations to the corresponding bibliography entry using their numerical id, which is passed as the first, <item_no> argument;
  • and the environment \cslbibliography{<hanging-indent>}{<entry-spacing>}, in which bibliographies are wrapped; the value of the <hanging-indent> argument is 1 if hanging indent should be applied and 0 if not, while the <entry-spacing> argument is an integer specifying the number of extra line-heights required between bibliography entries in addition to normal line spacing.

When present, the placeholders [CSL-HANGINDENT], [CSL-LABELSEP], [CSL-LABELWIDTH-PER-CHAR] and [CSL-MAXLABEL-CHARS] are replaced, respectively, by the contents of the customizable variables org-cite-csl-latex-hanging-indent, org-cite-csl-latex-label-separator, org-cite-csl-latex-label-width-per-char, and the maximal label length in the bibliography measured in characters.

Default
"\\usepackage{calc}\n\\newlength{\\cslhangindent}\n\\setlength{\\cslhangindent}{[CSL-HANGINDENT]}\n\\newlength{\\csllabelsep}\n\\setlength{\\csllabelsep}{[CSL-LABELSEP]}\n\\newlength{\\csllabelwidth}\n\\setlength{\\csllabelwidth}{[CSL-LABELWIDTH-PER-CHAR] * [CSL-MAXLABEL-CHARS]}\n\\newenvironment{cslbibliography}[2] % 1st arg. is hanging-indent, 2nd entry spacing.\n {% By default, paragraphs are not indented.\n  \\setlength{\\parindent}{0pt}\n  % Hanging indent is turned on when first argument is 1.\n  \\ifodd #1\n  \\let\\oldpar\\par\n  \\def\\par{\\hangindent=\\cslhangindent\\oldpar}\n  \\fi\n  % Set entry spacing based on the second argument.\n  \\setlength{\\parskip}{\\parskip +  #2\\baselineskip}\n }%\n {}\n\\newcommand{\\cslblock}[1]{#1\\hfill\\break}\n\\newcommand{\\cslleftmargin}[1]{\\parbox[t]{\\csllabelsep + \\csllabelwidth}{#1}}\n\\newcommand{\\cslrightinline}[1]\n  {\\parbox[t]{\\linewidth - \\csllabelsep - \\csllabelwidth}{#1}\\break}\n\\newcommand{\\cslindent}[1]{\\hspace{\\cslhangindent}#1}\n\\newcommand{\\cslbibitem}[2]\n  {\\leavevmode\\vadjust pre{\\hypertarget{citeproc_bib_item_#1}{}}#2}\n\\makeatletter\n\\newcommand{\\cslcitation}[2]\n {\\protect\\hyper@linkstart{cite}{citeproc_bib_item_#1}#2\\hyper@linkend}\n\\makeatother"
Type
string
Since
Org 9.7
[emacs_options]
org-cite-csl-latex-preamble = "\\usepackage{calc}\n\\newlength{\\cslhangindent}\n\\setlength{\\cslhangindent}{[CSL-HANGINDENT]}\n\\newlength{\\csllabelsep}\n\\setlength{\\csllabelsep}{[CSL-LABELSEP]}\n\\newlength{\\csllabelwidth}\n\\setlength{\\csllabelwidth}{[CSL-LABELWIDTH-PER-CHAR] * [CSL-MAXLABEL-CHARS]}\n\\newenvironment{cslbibliography}[2] % 1st arg. is hanging-indent, 2nd entry spacing.\n {% By default, paragraphs are not indented.\n  \\setlength{\\parindent}{0pt}\n  % Hanging indent is turned on when first argument is 1.\n  \\ifodd #1\n  \\let\\oldpar\\par\n  \\def\\par{\\hangindent=\\cslhangindent\\oldpar}\n  \\fi\n  % Set entry spacing based on the second argument.\n  \\setlength{\\parskip}{\\parskip +  #2\\baselineskip}\n }%\n {}\n\\newcommand{\\cslblock}[1]{#1\\hfill\\break}\n\\newcommand{\\cslleftmargin}[1]{\\parbox[t]{\\csllabelsep + \\csllabelwidth}{#1}}\n\\newcommand{\\cslrightinline}[1]\n  {\\parbox[t]{\\linewidth - \\csllabelsep - \\csllabelwidth}{#1}\\break}\n\\newcommand{\\cslindent}[1]{\\hspace{\\cslhangindent}#1}\n\\newcommand{\\cslbibitem}[2]\n  {\\leavevmode\\vadjust pre{\\hypertarget{citeproc_bib_item_#1}{}}#2}\n\\makeatletter\n\\newcommand{\\cslcitation}[2]\n {\\protect\\hyper@linkstart{cite}{citeproc_bib_item_#1}#2\\hyper@linkend}\n\\makeatother"

org-cite-csl-bibtex-titles-to-sentence-case#

Convert bibtex title fields to sentence-case by default.

When non-nil, title fields in bibtex bibliography entries are converted to sentence-case before being formatted according to a CSL style, except for entries with a langid field specifying a non-English language. When nil, title conversion is limited to entries having a langid field specifying a variant of English.

Conversion of titles to sentence-case by default is in most cases useful because the CSL standard assumes that English titles are specified in sentence-case but the bibtex bibliography format requires them to be written in title-case.

Default
t
Type
boolean
Since
Org 9.8
[emacs_options]
org-cite-csl-bibtex-titles-to-sentence-case = true

oc-natbib.el#

org-cite-natbib-options#

List of options added to "natbib" package. If "natbib" package is already required in the document, e.g., through org-latex-packages-alist variable, these options are ignored.

Default
nil
Type
(set
 (const :tag "use round parentheses (default)" round)
 (const :tag "use square brackets" square)
 (const :tag "use curly braces" curly)
 (const :tag "use angle brackets" angle)
 (const :tag "separate multiple citations with colons (default)" colon)
 (const :tag "separate multiple citations with comas" comma)
 (const :tag "generate author-year citations" authoryear)
 (const :tag "generate numerical citations" numbers)
 (const :tag "generate superscripted numerical citations" super)
 (const :tag "order multiple citations according to the list of references" sort)
…
Since
Org 9.5
[emacs_options]
org-cite-natbib-options = []

org-cite-natbib-bibliography-style#

Default bibliography style.

Default
unsrtnat
Type
(choice
 (const unsrtnat)
 (symbol :tag "Other"))
Since
Org 9.7
[emacs_options]
org-cite-natbib-bibliography-style = "unsrtnat"

oc.el#

org-cite-export-processors#

Processor used for exporting citations, as a triplet, or nil.

When nil, citations and bibliography are not exported.

When non-nil, the value is an association list between export backends and citation export processors:

(BACKEND . PROCESSOR)

where BACKEND is the name of an export backend or t, and PROCESSOR is a triplet following the pattern

(NAME BIBLIOGRAPHY-STYLE CITATION-STYLE)

There, NAME is the name of a registered citation processor providing export functionality, as a symbol. BIBLIOGRAPHY-STYLE (respectively CITATION-STYLE) is the desired default style to use when printing a bibliography (respectively exporting a citation), as a string or nil. Both BIBLIOGRAPHY-STYLE and CITATION-STYLE are optional. NAME is mandatory.

The export process selects the citation processor associated to the current export backend, or the most specific backend the current one is derived from, or, if all are inadequate, to the processor associated to t. For example, with the following value

((beamer natbib)
 (latex biblatex)
 (t csl))

exporting with beamer or any backend derived from it will use natbib, whereas exporting with latex or any backend derived from it but different from beamer will use biblatex processor. Any other backend, such as html, will use csl processor.

CITATION-STYLE is overridden by adding a style to any citation object. A nil style lets the export processor choose the default output. Any style not recognized by the export processor is equivalent to nil.

The citation triplet can also be set with the CITE_EXPORT keyword. E.g.,

#+CITE_EXPORT: basic note numeric

or

#+CITE_EXPORT: basic

In that case, basic processor is used on every export, independently on the backend.

Default
((t basic))
Type
(choice
 (const :tag "No export" nil)
 (alist :key-type symbol :value-type
        (list :tag "Citation processor"
              (symbol :tag "Processor name")
              (choice
               (const :tag "Default bibliography style" nil)
               (string :tag "Use specific bibliography style"))
              (choice
               (const :tag "Default citation style" nil)
               (string :tag "Use specific citation style")))))
Since
Org 9.5

org-cite-adjust-note-numbers#

When non-nil, allow process to modify location of note numbers.

When this variable is non-nil, it is possible to swap between author-date and note style without modifying the document. To that effect, citations should always be located as in an author-date style. Prior to turning the citation into a footnote, the citation processor moves the citation (i.e., the future note number), and the surrounding punctuation, according to rules defined in org-cite-note-rules.

When nil, the note number is not moved.

Default
t
Type
(choice
 (const :tag "Automatic note number location" t)
 (const :tag "Place note numbers manually" nil))
Since
Org 9.5
[emacs_options]
org-cite-adjust-note-numbers = true

org-cite-note-rules#

Alist between languages and typographic rules for citations in note style.

When org-cite-adjust-note-numbers is non-nil, and note style is requested, citation processor is allowed to move the note marker according to some specific rules, detailed here. More accurately, a rule is a list following the pattern

  (LANGUAGE-TAG . RULE)

LANGUAGE-TAG is a down-cased string representing a language tag as defined in
RFC 4646.  It may constituted of a language and a region separated with an
hyphen (e.g., "en-us"), or the language alone (e.g., "fr").  A language
without a region applies to all regions.

RULE is a triplet

  (PUNCTUATION NUMBER ORDER)

PUNCTUATION is the desired location of the punctuation with regards to the
quotation, if any.  It may be `inside', `outside', or `adaptive'.  The latter
permits subtler control over the punctuation: when there is no space between
the quotation mark and the punctuation, it is equivalent to `inside'.
Otherwise, it means `outside', as illustrated in the following examples:

    "A quotation ending without punctuation" [cite:@org21].
    "A quotation ending with a period"[cite:@org21].

Notwithstanding the above, a space always appear before the citation when it
is to become anything else than a note.

NUMBER is the desired location of the note number with regards to the
quotation mark, if any.  It may be `inside', `outside', or `same'.  When set
to `same', the number appears on the same side as the punctuation, unless
there is punctuation on both sides or on none.

ORDER is the relative position of the citation with regards to the closest
punctuation.  It may be `after' or `before'.

For example (adaptive same before) corresponds to French typography.

When the locale is unknown to this variable, the default rule is:

(adaptive outside after)

This roughly follows the Oxford Guide to Style recommendations.

Default
(("en-us" inside outside after)
 ("fr" adaptive same before))
Type
(repeat
 (list :tag "Typographic rule"
       (string :tag "Language code")
       (choice :tag "Location of punctuation"
               (const :tag "Punctuation inside quotation" inside)
               (const :tag "Punctuation outside quotation" outside)
               (const :tag "Location depends on spacing" adaptive))
       (choice :tag "Location of citation"
               (const :tag "Citation inside quotation" inside)
               (const :tag "Citation outside quotation" outside)
               (const :tag "Citation next to punctuation" same))
…
Since
Org 9.5

org-cite-punctuation-marks#

List of strings that can be moved around when placing note numbers.

When org-cite-adjust-note-numbers is non-nil, the citation processor is allowed to shuffle punctuation marks specified in this list in order to place note numbers according to rules defined in org-cite-note-rules.

Default
("." "," ";" ":" "!" "?")
Type
(repeat string)
Since
Org 9.5
[emacs_options]
org-cite-punctuation-marks = [".", ",", ";", ":", "!", "?"]

org-agenda.el#

org-agenda-columns-show-summaries#

Non-nil means show summaries for columns displayed in the agenda view.

Default
t
Type
boolean
[emacs_options]
org-agenda-columns-show-summaries = true

org-agenda-columns-compute-summary-properties#

Non-nil means recompute all summary properties before column view. When column view in the agenda is listing properties that have a summary operator, it can go to all relevant buffers and recompute the summaries there. This can mean overhead for the agenda column view, but is necessary to have thing up to date. As a special case, a CLOCKSUM property also makes sure that the clock computations are current.

Default
t
Type
boolean
[emacs_options]
org-agenda-columns-compute-summary-properties = true

org-agenda-columns-add-appointments-to-effort-sum#

Non-nil means the duration of an appointment will add to day effort. The property to which appointment durations will be added is the one given in the option org-effort-property. If an appointment does not have an end time, org-agenda-default-appointment-duration will be used. If that is not set, an appointment without end time will not contribute to the time estimate.

Default
nil
Type
boolean
[emacs_options]
org-agenda-columns-add-appointments-to-effort-sum = false

org-attach-git.el#

org-attach-git-annex-cutoff#

If non-nil, files larger than this will be annexed instead of stored.

Default
32768
Type
(choice
 (const :tag "None" nil)
 (integer :tag "Bytes"))
Since
Org 8.0
[emacs_options]
org-attach-git-annex-cutoff = 32768

org-attach-git-annex-auto-get#

Confirmation preference for automatically getting annex files. If this is the symbol ask, prompt using y-or-n-p. If t, always get. If nil, never get.

Default
ask
Type
(choice
 (const :tag "confirm with `y-or-n-p'" ask)
 (const :tag "always get from annex if necessary" t)
 (const :tag "never get from annex" nil))
Since
Org 9.0
[emacs_options]
org-attach-git-annex-auto-get = "ask"

org-attach-git-dir#

Attachment directory with the Git repository to use. The default value is to use org-attach-id-dir. When set to individual-repository, then the directory attached to the current node, if correctly initialized as a Git repository, will be used instead.

Default
default
Type
(choice
 (const :tag "Default" default)
 (const :tag "Individual repository" individual-repository))
Since
Org 9.5
[emacs_options]
org-attach-git-dir = "default"

org-attach.el#

org-attach-id-dir#

The directory where attachments are stored. If this is a relative path, it will be interpreted relative to the directory where the Org file lives.

Default
"data/"
Type
directory
[emacs_options]
org-attach-id-dir = "data/"

org-attach-dir-relative#

Non-nil means directories in DIR property are added as relative links. Defaults to absolute location.

Default
nil
Type
boolean
Since
Org 9.3
[emacs_options]
org-attach-dir-relative = false

org-attach-auto-tag#

Tag that will be triggered automatically when an entry has an attachment.

Default
"ATTACH"
Type
(choice
 (const :tag "None" nil)
 (string :tag "Tag"))
[emacs_options]
org-attach-auto-tag = "ATTACH"

org-attach-preferred-new-method#

Preferred way to attach to nodes without existing ID and DIR property. This choice is used when adding attachments to nodes without ID and DIR properties.

Allowed values are:

id         Create and use an ID parameter
dir        Create and use a DIR parameter
ask        Ask the user for input of which method to choose
nil        Prefer to not create a new parameter

           nil means that ID or DIR has to be created explicitly
           before attaching files.
Default
id
Type
(choice
 (const :tag "ID parameter" id)
 (const :tag "DIR parameter" dir)
 (const :tag "Ask user" ask)
 (const :tag "Don't create" nil))
Since
org 9.3
[emacs_options]
org-attach-preferred-new-method = "id"

org-attach-method#

The preferred method to attach a file. Allowed values are:

mv    rename the file to move it into the attachment directory
cp    copy the file
ln    create a hard link.  Note that this is not supported
      on all systems, and then the result is not defined.
lns   create a symbol link.  Note that this is not supported
      on all systems, and then the result is not defined.
Default
cp
Type
(choice
 (const :tag "Copy" cp)
 (const :tag "Move/Rename" mv)
 (const :tag "Hard Link" ln)
 (const :tag "Symbol Link" lns))
[emacs_options]
org-attach-method = "cp"

org-attach-expert#

Non-nil means do not show the splash buffer with the attach dispatcher.

Default
nil
Type
boolean
[emacs_options]
org-attach-expert = false

org-attach-use-inheritance#

Attachment inheritance for the outline.

Enabling inheritance for org-attach implies two things. First, that attachment links will look through all parent headings until it finds the linked attachment. Second, that running org-attach inside a node without attachments will make org-attach operate on the first parent heading it finds with an attachment.

Selective means to respect the inheritance setting in org-use-property-inheritance.

Default
selective
Type
(choice
 (const :tag "Don't use inheritance" nil)
 (const :tag "Inherit parent node attachments" t)
 (const :tag "Respect org-use-property-inheritance" selective))
[emacs_options]
org-attach-use-inheritance = "selective"

Non-nil means store a link to a file when attaching it. When t, store the link to original file location. When file, store link to the attached file location. When attached, store attach: link to the attached file.

Default
attached
Type
(choice
 (const :tag "Don't store link" nil)
 (const :tag "Link to origin location" t)
 (const :tag "Attachment link to the attach-dir location" attached)
 (const :tag "File link to the attach-dir location" file))
Since
Org 9.7
[emacs_options]
org-attach-store-link-p = "attached"

org-attach-archive-delete#

Non-nil means attachments are deleted upon archiving a subtree. When set to query, ask the user instead.

Default
nil
Type
(choice
 (const :tag "Never delete attachments" nil)
 (const :tag "Always delete attachments" t)
 (const :tag "Query the user" query))
Since
Org 8.3
[emacs_options]
org-attach-archive-delete = false

org-attach-id-to-path-function-list#

List of functions used to derive attachment path from an ID string. The functions are called with a single ID argument until the return value is an existing folder. If no folder has been created yet for the given ID, then the first non-nil value defines the attachment dir to be created.

Usually, the ID format passed to the functions is defined by org-id-method. It is advised that the first function in the list do not generate all the attachment dirs inside the same parent dir. Some file systems may have performance issues in such scenario.

Care should be taken when customizing this variable. Previously created attachment folders might not be correctly mapped upon removing functions from the list. Then, Org will not be able to detect the existing attachments.

Default
(org-attach-id-uuid-folder-format org-attach-id-ts-folder-format org-attach-id-fallback-folder-format)
Type
(repeat
 (function :tag "Function with ID as input"))
Since
Org 9.6
[emacs_options]
org-attach-id-to-path-function-list = ["org-attach-id-uuid-folder-format", "org-attach-id-ts-folder-format", "org-attach-id-fallback-folder-format"]

org-attach-commands#

The list of commands for the attachment dispatcher. Each entry in this list is a list of three elements:

A list of keys (characters) to select the command (the fist character in the list is shown in the attachment dispatcher's splash buffer and minibuffer prompt).
A command that is called interactively when one of these keys is pressed.
A docstring for this command in the attachment dispatcher's splash buffer.
Default
(((97 1)
  org-attach-attach "Select a file and attach it to the task, using `org-attach-method'.")
 ((99 3)
  org-attach-attach-cp "Attach a file using copy method.")
 ((109 13)
  org-attach-attach-mv "Attach a file using move method.")
 ((108 12)
  org-attach-attach-ln "Attach a file using link method.")
 ((121 25)
  org-attach-attach-lns "Attach a file using symbolic-link method.")
 ((117 21)
  org-attach-url "Attach a file from URL (downloading it).")
 ((98)
  org-attach-buffer "Select a buffer and attach its contents to the task.")
 ((110 14)
  org-attach-new "Create a new attachment, as an Emacs buffer.")
 ((122 26)
  org-attach-sync "Synchronize the current node with its attachment\n directory, in case you added attachments yourself.\n")
 ((111 15)
…
Type
(repeat
 (list
  (repeat :tag "Keys" character)
  (function :tag "Command")
  (string :tag "Docstring")))
Since
Org 9.3

org-attach-sync-delete-empty-dir#

Determine what to do with an empty attachment directory on sync. When set to nil, don't touch the directory. When set to query, ask the user instead, else remove without asking.

Default
query
Type
(choice
 (const :tag "Never delete" nil)
 (const :tag "Always delete" t)
 (const :tag "Query the user" query))
Since
Org 9.5
[emacs_options]
org-attach-sync-delete-empty-dir = "query"

org-colview.el#

org-columns-checkbox-allowed-values#

Allowed values for columns with SUMMARY-TYPE that uses checkbox. The affected summary types are "X%", "X/", and "X" (see info node (org)Column attributes).

Default
("[ ]" "[X]")
Type
(repeat
 (choice
  (const :tag "Unchecked [ ]" "[ ]")
  (const :tag "Checked [X]" "[X]")
  (const :tag "No checkbox" "")
  (const :tag "Intermediate state [-]" "[-]")
  (string :tag "Arbitrary string")))
Since
Org 9.6
[emacs_options]
org-columns-checkbox-allowed-values = ["[ ]", "[X]"]

org-columns-summary-types#

Alist between operators and summarize functions.

Each association follows the pattern (LABEL . SUMMARIZE), or (LABEL SUMMARIZE COLLECT) where

LABEL is a string used in #+COLUMNS definition describing the
summary type.  It can contain any character but "}".  It is
case-sensitive.

SUMMARIZE is a function called with two arguments.  The first
argument is a non-empty list of values, as non-empty strings.
The second one is a format string or nil.  It has to return
a string summarizing the list of values.

COLLECT is a function called with one argument, a property
name.  It is called in the context of a headline and must
return the collected property, or the empty string.  You can
use this to only collect a property if a related conditional
properties is set, e.g., to return VACATION_DAYS only if
CONFIRMED is true.

Note that the return value can become one value for a higher-order summary, so the function is expected to handle its own output.

Types defined in this variable take precedence over those defined in org-columns-summary-types-default, which see.

Default
nil
Type
(alist :key-type
       (string :tag "       Label")
       :value-type
       (choice
        (function :tag "Summarize")
        (list :tag "Collect and summarize"
              (function :tag "Summarize")
              (function :tag "Collect"))))
Since
Org 9.0
[emacs_options]
org-columns-summary-types = []

org-compat.el#

org-publish-sitemap-file-entry-format#

Format string for site-map file entry. You could use brackets to delimit on what part the link will be.

%t is the title.
%a is the author.
%d is the date.
Default
"%t"
Type
string
[emacs_options]
org-publish-sitemap-file-entry-format = "%t"

org-crypt.el#

org-crypt-tag-matcher#

The tag matcher used to find headings whose contents should be encrypted.

See the "Match syntax" section of the org manual for more details.

Default
"crypt"
Type
string
[emacs_options]
org-crypt-tag-matcher = "crypt"

org-crypt-key#

The default key to use when encrypting the contents of a heading.

If this variable is nil, always use symmetric encryption, unconditionally.

Otherwise, The string is matched against all keys in the key ring. In particular, the empty string matches no key. If no key is found, look for the epa-file-encrypt-to local variable. Ultimately fall back to symmetric encryption.

This setting can be overridden in the CRYPTKEY property.

Default
""
Type
(choice
 (string :tag "Public key(s) matching")
 (const :tag "Symmetric encryption" nil))
[emacs_options]
org-crypt-key = ""

org-crypt-disable-auto-save#

What org-decrypt should do if auto-save-mode is enabled.

t        : Disable `auto-save-mode' for the current buffer
           prior to decrypting an entry.

nil      : Leave `auto-save-mode' enabled.
           This may cause data to be written to disk unencrypted!

`ask'    : Ask user whether or not to disable `auto-save-mode'
           for the current buffer.

encrypt: Leave auto-save-mode enabled for the current buffer,

but automatically re-encrypt all decrypted entries
*before* auto-saving.
NOTE: This only works for entries which have a tag
that matches `org-crypt-tag-matcher'.
Default
ask
Type
(choice
 (const :tag "Always" t)
 (const :tag "Never" nil)
 (const :tag "Ask" ask)
 (const :tag "Encrypt" encrypt))
Since
Emacs 24.1
[emacs_options]
org-crypt-disable-auto-save = "ask"

org-datetree.el#

org-datetree-add-timestamp#

When non-nil, add a time stamp matching date of entry. Added time stamp is active unless value is inactive.

Default
nil
Type
(choice
 (const :tag "Do not add a time stamp" nil)
 (const :tag "Add an inactive time stamp" inactive)
 (const :tag "Add an active time stamp" active))
Since
Emacs 24.3
[emacs_options]
org-datetree-add-timestamp = false

org-footnote.el#

org-footnote-section#

Outline heading containing footnote definitions.

This can be nil, to place footnotes locally at the end of the current outline node. It can also be a string representing the name of a special outline heading under which footnotes should be put.

This variable defines the place where Org puts the definition automatically, i.e. when creating the footnote, and when sorting the notes. However, by hand, you may place definitions

*anywhere*.

If this is a string, during export, all subtrees starting with this heading will be ignored.

If you don't use the customize interface to change this variable, you will need to run the following command after the change:

`C-u M-x org-element-cache-reset'
Default
"Footnotes"
Type
(choice
 (string :tag "Collect footnotes under heading")
 (const :tag "Define footnotes locally" nil))
[emacs_options]
org-footnote-section = "Footnotes"

org-footnote-define-inline#

Non-nil means define footnotes inline, at reference location. When nil, footnotes will be defined in a special section near the end of the document. When t, the [fn:label:definition] notation will be used to define the footnote at the reference position.

Default
nil
Type
boolean
[emacs_options]
org-footnote-define-inline = false

org-footnote-auto-label#

Non-nil means define automatically new labels for footnotes. Possible values are:

nil        Prompt the user for each label.
t          Create unique labels of the form [fn:1], [fn:2], etc.
anonymous  Create anonymous footnotes
confirm    Like t, but let the user edit the created value.
           The label can be removed from the minibuffer to create
           an anonymous footnote.
random           Automatically generate a unique, random label.
Default
t
Type
(choice
 (const :tag "Prompt for label" nil)
 (const :tag "Create automatic [fn:N]" t)
 (const :tag "Offer automatic [fn:N] for editing" confirm)
 (const :tag "Create anonymous [fn::]" anonymous)
 (const :tag "Create a random label" random))
Since
Org 9.7
[emacs_options]
org-footnote-auto-label = true

org-footnote-auto-adjust#

Non-nil means automatically adjust footnotes after insert/delete. When this is t, after each insertion or deletion of a footnote, simple fn:N footnotes will be renumbered, and all footnotes will be sorted. If you want to have just sorting or just renumbering, set this variable to sort or renumber.

The main values of this variable can be set with in-buffer options:

#+STARTUP: fnadjust
#+STARTUP: nofnadjust
Default
nil
Type
(choice
 (const :tag "No adjustment" nil)
 (const :tag "Renumber" renumber)
 (const :tag "Sort" sort)
 (const :tag "Renumber and Sort" t))
[emacs_options]
org-footnote-auto-adjust = false

org-footnote-fill-after-inline-note-extraction#

Non-nil means fill paragraphs after extracting footnotes. When extracting inline footnotes, the lengths of lines can change a lot. When this option is set, paragraphs from which an inline footnote has been extracted will be filled again.

Default
nil
Type
boolean
[emacs_options]
org-footnote-fill-after-inline-note-extraction = false

org-plot.el#

org-plot/gnuplot-script-preamble#

String of function to be inserted before the gnuplot plot command is run.

Note that this is in addition to, not instead of other content generated in org-plot/gnuplot-script. If a function, it is called with the parameters used by the current plot type (see org-plot/preset-plot-types), and must return a string to be used.

Default
""
Type
(choice string function)
[emacs_options]
"org-plot/gnuplot-script-preamble" = ""

org-plot/preset-plot-types#

List of plists describing the available plot types. The car is the type name, and the property :plot-func must be set. The value of :plot-func is a lambda which yields plot-lines (a list of strings) as the cdr.

All lambda functions have the parameters of org-plot/gnuplot-script and PLOT-STR passed to them. i.e. they are called with the following signature: (TABLE DATA-FILE NUM-COLS PARAMS PLOT-STR)

Potentially useful parameters in PARAMS include:

:set :line :map :title :file :ind :timeind :timefmt :textind
:deps :labels :xlabels :ylabels :xmin :xmax :ymin :ymax :ticks

In addition to :plot-func, the following optional properties may be set.

  • :plot-cmd - A gnuplot command appended to each plot-line. Accepts string or nil. Default value: nil.
  • :check-ind-type - Whether the types of ind values should be checked. Accepts boolean.
  • :plot-str - the formula string passed to :plot-func as PLOT-STR Accepts string. Default value: "'%s' using %s%d%s with %s title '%s'"
  • :data-dump - Function to dump the table to a datafile for ease of use.
Accepts function with arguments:
(table data-file num-cols params)
  • :plot-pre - Gnuplot code to be inserted early into the script, just after term and output have been set.
Accepts string, nil, or lambda function which returns string
or nil.  Defaults to nil.
Default
((2d :plot-cmd "plot" :check-ind-type t :plot-func
     (lambda
       (_table data-file num-cols params plot-str)
       (let*
           ((type
             (plist-get params :plot-type))
            (with
             (if
                 (eq type 'grid)
                 'pm3d
               (plist-get params :with)))
            (ind
             (plist-get params :ind))
            (deps
             (if
                 (plist-member params :deps)
                 (plist-get params :deps)))
            (text-ind
             (or
…
Type
alist
Since
Org 9.8

org-plot/gnuplot-term-extra#

String or function which provides the extra term options. E.g. a value of "size 1050,650" would cause "set term ... size 1050,650" to be used. If a function, it is called with the parameters used by the current plot type, see org-plot/preset-plot-types.

Default
""
Type
(choice string function)
[emacs_options]
"org-plot/gnuplot-term-extra" = ""

org-src.el#

org-edit-src-turn-on-auto-save#

Non-nil means turn auto-save-mode on when editing a source block. This will save the content of the source code editing buffer into a newly created file, not the base buffer for this source block.

If you want to regularly save the base buffer instead of the source code editing buffer, see org-edit-src-auto-save-idle-delay instead.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-edit-src-turn-on-auto-save = false

org-edit-src-auto-save-idle-delay#

Delay before saving a source code buffer back into its base buffer. When a positive integer N, save after N seconds of idle time. When 0 (the default), don't auto-save.

If you want to save the source code buffer itself, don't use this. Check org-edit-src-turn-on-auto-save instead.

Default
0
Type
integer
Since
Org 8.0
[emacs_options]
org-edit-src-auto-save-idle-delay = 0

org-coderef-label-format#

The default coderef format. This format string will be used to search for coderef labels in literal examples (EXAMPLE and SRC blocks). The format can be overwritten in an individual literal example with the -l option, like

#+BEGIN_SRC pascal +n -r -l "((%s))"
...
#+END_SRC

If you want to use this for HTML export, make sure that the format does not introduce special font-locking, and avoid the HTML special characters <, >, and &. The reason for this restriction is that the labels are searched for only after htmlize has done its job.

Default
"(ref:%s)"
Type
string
[emacs_options]
org-coderef-label-format = "(ref:%s)"

org-edit-fixed-width-region-mode#

The mode that should be used to edit fixed-width regions. These are the regions where each line starts with a colon.

Default
artist-mode
Type
(choice
 (const artist-mode)
 (const picture-mode)
 (const fundamental-mode)
 (function :tag "Other (specify)"))
[emacs_options]
org-edit-fixed-width-region-mode = "artist-mode"

org-edit-src-persistent-message#

Non-nil means show persistent exit help message while editing src examples. The message is shown in the header-line, which will be created in the first line of the window showing the editing buffer.

Default
t
Type
boolean
[emacs_options]
org-edit-src-persistent-message = true

org-src-ask-before-returning-to-edit-buffer#

Non-nil means ask before switching to an existing edit buffer. If nil, when org-edit-src-code is used on a block that already has an active edit buffer, it will switch to that edit buffer immediately; otherwise it will ask whether you want to return to the existing edit buffer.

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-src-ask-before-returning-to-edit-buffer = true

org-src-window-setup#

How the source code edit buffer should be displayed. Possible values for this option are:

plain              Show edit buffer using `display-buffer'.  Users can
                   further control the display behavior by modifying
                   `display-buffer-alist' and its relatives.
current-window     Show edit buffer in the current window, keeping all other
                   windows.

split-window-below Show edit buffer below the current window, keeping all

other windows.

split-window-right Show edit buffer to the right of the current window,

                   keeping all other windows.
other-window       Use `switch-to-buffer-other-window' to display edit buffer.
reorganize-frame   Show only two windows on the current frame, the current
                   window and the edit buffer.
other-frame        Use `switch-to-buffer-other-frame' to display edit buffer.
                   Also, when exiting the edit buffer, kill that frame.

Values that modify the window layout (reorganize-frame, split-window-below, split-window-right) will restore the layout after exiting the edit buffer.

Default
reorganize-frame
Type
(choice
 (const plain)
 (const current-window)
 (const split-window-below)
 (const split-window-right)
 (const other-frame)
 (const other-window)
 (const reorganize-frame))
[emacs_options]
org-src-window-setup = "reorganize-frame"

org-table.el#

org-table-default-size#

The default size for newly created tables, Columns x Rows.

Default
"5x2"
Type
string
[emacs_options]
org-table-default-size = "5x2"

org-table-formula-field-format#

Format for fields which contain the result of a formula. For example, using "~%s~" will display the result within tilde characters. Beware that modifying the display can prevent the field from being used in another formula.

Default
"%s"
Type
string
Since
Emacs 24.1
[emacs_options]
org-table-formula-field-format = "%s"

org-table-fix-formulas-confirm#

Whether the user should confirm when Org fixes formulas.

Default
nil
Type
(choice
 (const :tag "with yes-or-no" yes-or-no-p)
 (const :tag "with y-or-n" y-or-n-p)
 (const :tag "no confirmation" nil))
Since
Emacs 24.1
[emacs_options]
org-table-fix-formulas-confirm = false

org-table-use-standard-references#

Non-nil means using table references like B3 instead of @3$2. Possible values are:

nil     never use them
from    accept as input, do not present for editing
t       accept as input and present for editing
Default
from
Type
(choice
 (const :tag "Never, don't even check user input for them" nil)
 (const :tag "Always, both as user input, and when editing" t)
 (const :tag "Convert user input, don't offer during editing" from))
[emacs_options]
org-table-use-standard-references = "from"

org-table-copy-increment#

Non-nil means increment when copying current field with M-x org-table-copy-down.

Default
t
Type
(choice
 (const :tag "Use the difference between the current and the above fields" t)
 (integer :tag "Use a number" 1)
 (const :tag "Don't increment the value when copying a field" nil))
Since
Org 8.3
[emacs_options]
org-table-copy-increment = true

org-table-export-default-format#

Default export parameters for org-table-export. These can be overridden for a specific table by setting the TABLE_EXPORT_FORMAT property. See the manual section on orgtbl radio tables for the different export transformations and available parameters.

Default
"orgtbl-to-tsv"
Type
string
[emacs_options]
org-table-export-default-format = "orgtbl-to-tsv"

org-table-convert-region-max-lines#

Max lines that org-table-convert-region will attempt to process.

The function can be slow on larger regions; this safety feature prevents it from hanging Emacs.

Default
999
Type
integer
Since
Org 8.3
[emacs_options]
org-table-convert-region-max-lines = 999

org-timer.el#

org-timer-format#

The format to insert the time of the timer. This format must contain one instance of "%s" which will be replaced by the value of the timer.

Default
"%s "
Type
string
[emacs_options]
org-timer-format = "%s "

org-timer-default-timer#

The default timer when a timer is set, in minutes or hh:mm:ss format. When 0, the user is prompted for a value.

Default
"0"
Type
string
Since
Org 8.3
[emacs_options]
org-timer-default-timer = "0"

org-timer-display#

Define where running timer is displayed, if at all. When a timer is running, Org can display it in the mode line and/or frame title. Allowed values are:

both         displays in both mode line and frame title
mode-line    displays only in mode line (default)
frame-title  displays only in frame title
nil          current timer is not displayed
Default
mode-line
Type
(choice
 (const :tag "Mode line" mode-line)
 (const :tag "Frame title" frame-title)
 (const :tag "Both" both)
 (const :tag "None" nil))
[emacs_options]
org-timer-display = "mode-line"

org.el#

org-babel-load-languages#

Languages which can be evaluated in Org buffers.

This list can be used to load support for any of the available languages with babel support (see info node (org) Languages). Each language will depend on a different set of system executables and/or Emacs modes.

When a language is "loaded", code blocks in that language can be evaluated with org-babel-execute-src-block, which is bound by default to C-c C-c.

The org-babel-no-eval-on-ctrl-c-ctrl-c option can be set to remove code block evaluation from C-c C-c. By default, only Emacs Lisp is loaded, since it has no specific requirement.

Default
((emacs-lisp . t))
Type
(alist :tag "Babel Languages" :key-type
       (choice
        (const :tag "Awk" awk)
        (const :tag "C, D, C++, and cpp" C)
        (const :tag "R" R)
        (const :tag "Calc" calc)
        (const :tag "Clojure and ClojureScript" clojure)
        (const :tag "CSS" css)
        (const :tag "Ditaa" ditaa)
        (const :tag "Dot" dot)
        (const :tag "Emacs Lisp" emacs-lisp)
…
Since
Org 9.6
[emacs_options]
org-babel-load-languages = { emacs-lisp = true }

org-clone-delete-id#

Remove ID property of clones of a subtree. When non-nil, clones of a subtree don't inherit the ID property. Otherwise they inherit the ID property with a new unique identifier.

Default
nil
Type
boolean
Since
Emacs 24.1
[emacs_options]
org-clone-delete-id = false

org-export-backends#

List of export backends that should be always available.

If a description starts with <C>, the file is not part of Emacs and Org mode, so loading it will require that you have properly installed org-contrib package from NonGNU Emacs Lisp Package Archive https://elpa.nongnu.org/nongnu/org-contrib.html

Unlike to org-modules, libraries in this list will not be loaded along with Org, but only once the export framework is needed.

This variable needs to be set before org.el is loaded. If you need to make a change while Emacs is running, use the customize interface or run the following code, where VAL stands for the new value of the variable, after updating it:

(progn
  (setq org-export-registered-backends
        (cl-remove-if-not
         (lambda (backend)
           (let ((name (org-export-backend-name backend)))
             (or (memq name val)
                 (catch 'parentp
                   (dolist (b val)
                     (and (org-export-derived-backend-p b name)
                          (throw 'parentp t)))))))
         org-export-registered-backends))
  (let ((new-list (mapcar #'org-export-backend-name
                          org-export-registered-backends)))
    (dolist (backend val)
      (cond
       ((not (load (format "ox-%s" backend) t t))
        (message "Problems while trying to load export backend `%s'"
                 backend))
       ((not (memq backend new-list)) (push backend new-list))))
    (set-default 'org-export-backends new-list)))

Adding a backend to this list will also pull the backend it depends on, if any.

Default
(ascii html icalendar latex odt)
Type
(set :greedy t
     (const :tag "   ascii       Export buffer to ASCII format" ascii)
     (const :tag "   beamer      Export buffer to Beamer presentation" beamer)
     (const :tag "   html        Export buffer to HTML format" html)
     (const :tag "   icalendar   Export buffer to iCalendar format" icalendar)
     (const :tag "   latex       Export buffer to LaTeX format" latex)
     (const :tag "   man         Export buffer to MAN format" man)
     (const :tag "   md          Export buffer to Markdown format" md)
     (const :tag "   odt         Export buffer to ODT format" odt)
     (const :tag "   org         Export buffer to Org format" org)
     (const :tag "   texinfo     Export buffer to Texinfo format" texinfo)
…
Since
Org 9.0
[emacs_options]
org-export-backends = ["ascii", "html", "icalendar", "latex", "odt"]

org-columns-default-format#

The default column format, if no other format has been defined. This variable can be set on the per-file basis by inserting a line

#+COLUMNS: %25ITEM .....
Default
"%25ITEM %TODO %3PRIORITY %TAGS"
Type
string
[emacs_options]
org-columns-default-format = "%25ITEM %TODO %3PRIORITY %TAGS"

org-columns-default-format-for-agenda#

The default column format in an agenda buffer. This will be used for column view in the agenda unless a format has been set by adding org-overriding-columns-format to the local settings list of a custom agenda view. When nil, the columns format for the first item in the agenda list will be used, or as a fall-back, org-columns-default-format.

Default
nil
Type
(choice
 (const :tag "No default" nil)
 (string :tag "Format string"))
[emacs_options]
org-columns-default-format-for-agenda = false

org-columns-ellipses#

The ellipses to be used when a field in column view is truncated. When this is the empty string, as many characters as possible are shown, but then there will be no visual indication that the field has been truncated. When this is a string of length N, the last N characters of a truncated field are replaced by this string. If the column is narrower than the ellipses string, only part of the ellipses string will be shown.

Default
".."
Type
string
[emacs_options]
org-columns-ellipses = ".."

org-format-latex-options#

Options for creating images from LaTeX fragments. This is a property list with the following properties:

:foreground  the foreground color for images embedded in Emacs, e.g. "Black".
             `default' means use the foreground of the default face.
             `auto' means use the foreground from the text face.
:background  the background color, or "Transparent".
             `default' means use the background of the default face.
             `auto' means use the background from the text face.
:scale       a scaling factor for the size of the images, to get more pixels
:html-foreground, :html-background, :html-scale
             the same numbers for HTML export.
:matchers    a list indicating which matchers should be used to
             find LaTeX fragments.  Valid members of this list are:
             "begin" find environments
             "$1"    find single characters surrounded by $.$
             "$"     find math expressions surrounded by $...$
             "$$"    find math expressions surrounded by $$....$$
             "\("    find math expressions surrounded by \(...\)
             "\["    find math expressions surrounded by \[...\]
Default
(:foreground default :background default :scale 1.0 :html-foreground "Black" :html-background "Transparent" :html-scale 1.0 :matchers
             ("begin" "$1" "$" "$$" "\\(" "\\["))
Type
plist

org-format-latex-signal-error#

Non-nil means signal an error when image creation of LaTeX snippets fails. When nil, just push out a message.

Default
t
Type
boolean
Since
Emacs 24.1
[emacs_options]
org-format-latex-signal-error = true

org-latex-to-mathml-jar-file#

Value of"%j" in org-latex-to-mathml-convert-command. Use this to specify additional executable file say a jar file.

When using MathToWeb as the converter, specify the full-path to your mathtoweb.jar file.

Default
nil
Type
(choice
 (const :tag "None" nil)
 (file :tag "JAR file" :must-match t))
Since
Emacs 24.1
[emacs_options]
org-latex-to-mathml-jar-file = false

org-latex-to-mathml-convert-command#

Command to convert LaTeX fragments to MathML. Replace format-specifiers in the command as noted below and use shell-command to convert LaTeX to MathML.

%j:     Executable file in fully expanded form as specified by
        `org-latex-to-mathml-jar-file'.
%I:     Input LaTeX file in fully expanded form.
%i:     Shell-escaped LaTeX fragment to be converted.
        It must not be used inside a quoted argument, the result of %i
        expansion inside a quoted argument is undefined.
%o:     Output MathML file.

This command is used by org-create-math-formula.

When using MathToWeb as the converter, set this option to "java -jar %j -unicode -force -df %o %I".

When using LaTeXML set this option to "latexmlmath %i --presentationmathml=%o".

Default
nil
Type
(choice
 (const :tag "None" nil)
 (string :tag "\nShell command"))
Since
Org 9.7
[emacs_options]
org-latex-to-mathml-convert-command = false

org-latex-to-html-convert-command#

Shell command to convert LaTeX fragments to HTML. This command is very open-ended: the output of the command will directly replace the LaTeX fragment in the resulting HTML. Replace format-specifiers in the command as noted below and use shell-command to convert LaTeX to HTML.

%i:     The LaTeX fragment to be converted (shell-escaped).
        It must not be used inside a quoted argument, the result of %i
        expansion inside a quoted argument is undefined.

For example, this could be used with LaTeXML as "latexmlc literal:%i --profile=math --preload=siunitx.sty 2>/dev/null".

Default
nil
Type
(choice
 (const :tag "None" nil)
 (string :tag "Shell command"))
Since
Org 9.7
[emacs_options]
org-latex-to-html-convert-command = false

org-preview-latex-default-process#

The default process to convert LaTeX fragments to image files. All available processes and theirs documents can be found in org-preview-latex-process-alist, which see.

Default
dvipng
Type
symbol
Since
Org 9.0
[emacs_options]
org-preview-latex-default-process = "dvipng"

org-preview-latex-process-alist#

Definitions of external processes for LaTeX previewing. Org mode can use some external commands to generate TeX snippet's images for previewing or inserting into HTML files, e.g., "dvipng". This variable tells org-create-formula-image how to call them.

The value is an alist with the pattern (NAME . PROPERTIES). NAME is a symbol. PROPERTIES accepts the following attributes:

:programs           list of strings, required programs.
:description        string, describe the process.
:message            string, message it when required programs cannot be found.
:image-input-type   string, input file type of image converter (e.g., "dvi").
:image-output-type  string, output file type of image converter (e.g., "png").
:image-size-adjust  cons of numbers, the car element is used to adjust LaTeX
                    image size showed in buffer and the cdr element is for
                    HTML file.  This option is only useful for process
                    developers, users should use variable
                    `org-format-latex-options' instead.
:post-clean         list of strings, files matched are to be cleaned up once
                    the image is generated.  When nil, the files with ".dvi",
                    ".xdv", ".pdf", ".tex", ".aux", ".log", ".svg",
                    ".png", ".jpg", ".jpeg" or ".out" extension will
                    be cleaned up.
:latex-header       list of strings, the LaTeX header of the snippet file.
                    When nil, the fallback value is used instead, which is
                    controlled by `org-format-latex-header',
                    `org-latex-default-packages-alist' and
                    `org-latex-packages-alist', which see.
:latex-compiler list of LaTeX commands, as strings or a function.
                    Each of them is given to the shell.
                    Place-holders "%t", "%b" and "%o" are
                    replaced with values defined below.
                    When a function, that function should accept the
                    file name as its single argument.
:image-converter list of image converter commands strings or a
                    function.  Each of them is given to the shell
                    and supports any of the following place-holders
                    defined below.
                    When a function, that function should accept the
                    file name as its single argument.

If set, :transparent-image-converter is used instead of :image-converter to convert an image when the background color is nil or "Transparent".

Place-holders used by :image-converter and :latex-compiler:

%f    input file name
%b    base name of input file
%o    base directory of input file
%O    absolute output file name

Place-holders only used by :image-converter:

%D    dpi, which is used to adjust image size by some processing commands.
%S    the image size scale ratio, which is used to adjust image size by some
      processing commands.
Default
((dvipng :programs
         ("latex" "dvipng")
         :description "dvi > png" :message "you need to install the programs: latex and dvipng." :image-input-type "dvi" :image-output-type "png" :image-size-adjust
         (1.0 . 1.0)
         :latex-compiler
         ("latex -interaction nonstopmode -output-directory %o %f")
         :image-converter
         ("dvipng -D %D -T tight -o %O %f")
         :transparent-image-converter
         ("dvipng -D %D -T tight -bg Transparent -o %O %f"))
 (dvisvgm :programs
          ("latex" "dvisvgm")
          :description "dvi > svg" :message "you need to install the programs: latex and dvisvgm." :image-input-type "dvi" :image-output-type "svg" :image-size-adjust
          (1.7 . 1.5)
          :latex-compiler
          ("latex -interaction nonstopmode -output-directory %o %f")
          :image-converter
          ("dvisvgm %f --no-fonts --exact-bbox --scale=%S --output=%O"))
 (xelatex :programs
…
Type
(alist :tag "LaTeX to image backends" :value-type
       (plist))
Since
Org 9.8

org-preview-latex-image-directory#

Path to store latex preview images. A relative path here creates many directories relative to the processed Org files paths. An absolute path puts all preview images at the same place.

Default
"ltximg/"
Type
string
Since
Org 9.0
[emacs_options]
org-preview-latex-image-directory = "ltximg/"

org-latex-mathml-directory#

Path to store MathML files converted from LaTeX fragments. A relative path here creates many directories relative to the processed Org files paths. An absolute path puts all files in the same place.

Default
"ltxmathml/"
Type
string
Since
Org 9.8
[emacs_options]
org-latex-mathml-directory = "ltxmathml/"

org-format-latex-header#

The document header used for processing LaTeX fragments. It is imperative that this header make sure that no page number appears on the page. The package defined in the variables org-latex-default-packages-alist and org-latex-packages-alist will either replace the placeholder "[PACKAGES]" in this header, or they will be appended.

Default
"\\documentclass{article}\n\\usepackage[usenames]{color}\n[DEFAULT-PACKAGES]\n[PACKAGES]\n\\pagestyle{empty}             % do not remove\n% The settings below are copied from fullpage.sty\n\\setlength{\\textwidth}{\\paperwidth}\n\\addtolength{\\textwidth}{-3cm}\n\\setlength{\\oddsidemargin}{1.5cm}\n\\addtolength{\\oddsidemargin}{-2.54cm}\n\\setlength{\\evensidemargin}{\\oddsidemargin}\n\\setlength{\\textheight}{\\paperheight}\n\\addtolength{\\textheight}{-\\headheight}\n\\addtolength{\\textheight}{-\\headsep}\n\\addtolength{\\textheight}{-\\footskip}\n\\addtolength{\\textheight}{-3cm}\n\\setlength{\\topmargin}{1.5cm}\n\\addtolength{\\topmargin}{-2.54cm}"
Type
string
[emacs_options]
org-format-latex-header = "\\documentclass{article}\n\\usepackage[usenames]{color}\n[DEFAULT-PACKAGES]\n[PACKAGES]\n\\pagestyle{empty}             % do not remove\n% The settings below are copied from fullpage.sty\n\\setlength{\\textwidth}{\\paperwidth}\n\\addtolength{\\textwidth}{-3cm}\n\\setlength{\\oddsidemargin}{1.5cm}\n\\addtolength{\\oddsidemargin}{-2.54cm}\n\\setlength{\\evensidemargin}{\\oddsidemargin}\n\\setlength{\\textheight}{\\paperheight}\n\\addtolength{\\textheight}{-\\headheight}\n\\addtolength{\\textheight}{-\\headsep}\n\\addtolength{\\textheight}{-\\footskip}\n\\addtolength{\\textheight}{-3cm}\n\\setlength{\\topmargin}{1.5cm}\n\\addtolength{\\topmargin}{-2.54cm}"

org-latex-default-packages-alist#

Alist of default packages to be inserted in the header.

Change this only if one of the packages here causes an incompatibility with another package you are using.

The packages in this list are needed by one part or another of Org mode to function properly:

  • fontspec: for font and character selection in lualatex and xetex
  • inputenc, fontenc: for basic font and character selection in pdflatex
  • graphicx: for including images
  • longtable: For multipage tables
  • wrapfig: for figure placement
  • rotating: for sideways figures and tables
  • ulem: for underline and strike-through
  • amsmath: for subscript and superscript and math environments
  • amssymb: for various symbols used for interpreting the entities in org-entities. You can skip some of this package if you don't use any of the symbols.
  • capt-of: for captions outside of floats
  • hyperref: for cross references

Therefore you should not modify this variable unless you know what you are doing. The one reason to change it anyway is that you might be loading some other package that conflicts with one of the default packages. Each element is either a cell or a string.

A cell is of the format

("options" "package" SNIPPET-FLAG COMPILERS)

If SNIPPET-FLAG is non-nil, the package also needs to be included when compiling LaTeX snippets into images for inclusion into non-LaTeX output.

COMPILERS is a list of compilers that should include the package, see org-latex-compiler. If the document compiler is not in the list, and the list is non-nil, the package will not be inserted in the final document.

A string will be inserted as-is in the header of the document.

Default
(("" "amsmath" t
  ("lualatex" "xelatex"))
 ("" "fontspec" t
  ("lualatex" "xelatex"))
 ("AUTO" "inputenc" t
  ("pdflatex"))
 ("T1" "fontenc" t
  ("pdflatex"))
 ("" "graphicx" t)
 ("" "longtable" nil)
 ("" "wrapfig" nil)
 ("" "rotating" nil)
 ("normalem" "ulem" t)
 ("" "amsmath" t
  ("pdflatex"))
 ("" "amssymb" t
  ("pdflatex"))
 ("" "capt-of" nil)
 ("" "hyperref" nil))
Type
(repeat
 (choice
  (list :tag "options/package pair"
        (string :tag "options")
        (string :tag "package")
        (boolean :tag "Snippet")
        (choice
         (const :tag "For all compilers" nil)
         (repeat :tag "Allowed compiler" string)))
  (string :tag "A line of LaTeX")))
Since
Org 9.7

org-latex-packages-alist#

Alist of packages to be inserted in every LaTeX header.

These will be inserted after org-latex-default-packages-alist. Each element is either a cell or a string.

A cell is of the format:

("options" "package" SNIPPET-FLAG COMPILERS)

SNIPPET-FLAG, when non-nil, indicates that this package is also needed when turning LaTeX snippets into images for inclusion into non-LaTeX output.

COMPILERS is a list of compilers that should include the package, see org-latex-compiler. If the document compiler is not in the list, and the list is non-nil, the package will not be inserted in the final document.

A string will be inserted as-is in the header of the document.

Make sure that you only list packages here which:

- you want in every file;
- do not conflict with the setup in `org-format-latex-header';
- do not conflict with the default packages in
  `org-latex-default-packages-alist'.
Default
nil
Type
(repeat
 (choice
  (list :tag "options/package pair"
        (string :tag "options")
        (string :tag "package")
        (boolean :tag "snippet")
        (choice
         (const :tag "All compilers include this package" nil)
         (repeat :tag "Only include from these compilers" string)))
  (string :tag "A line of LaTeX")))
[emacs_options]
org-latex-packages-alist = []

org-columns-skip-archived-trees#

Non-nil means ignore archived trees when creating column view.

Default
t
Type
boolean
[emacs_options]
org-columns-skip-archived-trees = true

org-structure-template-alist#

An alist of keys and block types. org-insert-structure-template will display a menu with this list of templates to choose from. The block type is inserted, with "#+begin_" and "#+end_" added automatically. If the block type consists of just uppercase letters, "#+BEGIN_" and "#+END_" are added instead.

The menu keys are defined by the car of each entry in this alist. If two entries have the keys "a" and "aa" respectively, the former will be inserted by typing "a TAB/RET/SPC" and the latter will be inserted by typing "aa". If an entry with the key "aab" is later added, it can be inserted by typing "ab".

If loaded, Org Tempo also uses org-structure-template-alist. A block can be inserted by pressing TAB after the string "<KEY".

Default
(("a" . "export ascii")
 ("c" . "center")
 ("C" . "comment")
 ("e" . "example")
 ("E" . "export")
 ("h" . "export html")
 ("l" . "export latex")
 ("q" . "quote")
 ("s" . "src")
 ("v" . "verse"))
Type
(repeat
 (cons
  (string :tag "Key")
  (string :tag "Template")))
Since
Org 9.6

ox-ascii.el#

org-ascii-text-width#

Maximum width of exported text. This number includes margin size, as set in org-ascii-global-margin.

Default
72
Type
integer
Since
Org 8.0
[emacs_options]
org-ascii-text-width = 72

org-ascii-global-margin#

Width of the left margin, in number of characters.

Default
0
Type
integer
Since
Org 8.0
[emacs_options]
org-ascii-global-margin = 0

org-ascii-inner-margin#

Width of the inner margin, in number of characters. Inner margin is applied between each headline.

Default
2
Type
integer
Since
Org 8.0
[emacs_options]
org-ascii-inner-margin = 2

org-ascii-quote-margin#

Width of margin used for quoting text, in characters. This margin is applied on both sides of the text. It is also applied on the left side of contents in descriptive lists.

Default
6
Type
integer
Since
Org 8.0
[emacs_options]
org-ascii-quote-margin = 6

org-ascii-list-margin#

Width of margin used for plain lists, in characters. This margin applies to top level list only, not to its sub-lists.

Default
0
Type
integer
Since
Org 8.3
[emacs_options]
org-ascii-list-margin = 0

org-ascii-inlinetask-width#

Width of inline tasks, in number of characters. This number ignores any margin.

Default
30
Type
integer
Since
Org 8.0
[emacs_options]
org-ascii-inlinetask-width = 30

org-ascii-headline-spacing#

Number of blank lines inserted around headlines.

This variable can be set to a cons cell. In that case, its car represents the number of blank lines present before headline contents whereas its cdr reflects the number of blank lines after contents.

A nil value replicates the number of blank lines found in the original Org buffer at the same place.

Default
(1 . 2)
Type
(choice
 (const :tag "Replicate original spacing" nil)
 (cons :tag "Set a uniform spacing"
       (integer :tag "Number of blank lines before contents")
       (integer :tag "Number of blank lines after contents")))
Since
Org 8.0

org-ascii-indented-line-width#

Additional indentation width for the first line in a paragraph. If the value is an integer, indent the first line of each paragraph by this width, unless it is located at the beginning of a section, in which case indentation is removed from that line. If it is the symbol auto preserve indentation from original document.

Default
auto
Type
(choice
 (integer :tag "Number of white spaces characters")
 (const :tag "Preserve original width" auto))
Since
Org 8.0
[emacs_options]
org-ascii-indented-line-width = "auto"

org-ascii-paragraph-spacing#

Number of white lines between paragraphs. If the value is an integer, add this number of blank lines between contiguous paragraphs. If is it the symbol auto, keep the same number of blank lines as in the original document.

Default
auto
Type
(choice
 (integer :tag "Number of blank lines")
 (const :tag "Preserve original spacing" auto))
Since
Org 8.0
[emacs_options]
org-ascii-paragraph-spacing = "auto"

org-ascii-charset#

The charset allowed to represent various elements and objects. Possible values are:

`ascii'    Only use plain ASCII characters
`latin1'   Include Latin-1 characters
`utf-8'    Use all UTF-8 characters
Default
ascii
Type
(choice
 (const :tag "ASCII" ascii)
 (const :tag "Latin-1" latin1)
 (const :tag "UTF-8" utf-8))
Since
Org 8.0
[emacs_options]
org-ascii-charset = "ascii"

org-ascii-underline#

Characters for underlining headings in ASCII export.

Alist whose key is a symbol among ascii, latin1 and utf-8 and whose value is a list of characters.

For each supported charset, this variable associates a sequence of underline characters. In a sequence, the characters will be used in order for headlines level 1, 2, ... If no character is available for a given level, the headline won't be underlined.

Default
((ascii 61 126 45)
 (latin1 61 126 45)
 (utf-8 9552 9472 9548 9476 9480))
Type
(list
 (cons :tag "Underline characters sequence"
       (const :tag "ASCII charset" ascii)
       (repeat character))
 (cons :tag "Underline characters sequence"
       (const :tag "Latin-1 charset" latin1)
       (repeat character))
 (cons :tag "Underline characters sequence"
       (const :tag "UTF-8 charset" utf-8)
       (repeat character)))
Since
Org 8.0

org-ascii-bullets#

Bullet characters for headlines converted to lists in ASCII export.

Alist whose key is a symbol among ascii, latin1 and utf-8 and whose value is a list of characters.

The first character is used for the first level considered as low level, and so on. If there are more levels than characters given here, the list will be repeated.

Note that this variable doesn't affect plain lists representation.

Default
((ascii 42 43 45)
 (latin1 167 182)
 (utf-8 9674))
Type
(list
 (cons :tag "Bullet characters for low level headlines"
       (const :tag "ASCII charset" ascii)
       (repeat character))
 (cons :tag "Bullet characters for low level headlines"
       (const :tag "Latin-1 charset" latin1)
       (repeat character))
 (cons :tag "Bullet characters for low level headlines"
       (const :tag "UTF-8 charset" utf-8)
       (repeat character)))
Since
Org 8.0

Non-nil means convert links to notes before the next headline. When nil, the link will be exported in place. If the line becomes long in this way, it will be wrapped.

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-ascii-links-to-notes = true

org-ascii-table-keep-all-vertical-lines#

Non-nil means keep all vertical lines in ASCII tables. When nil, vertical lines will be removed except for those needed for column grouping.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-ascii-table-keep-all-vertical-lines = false

org-ascii-table-widen-columns#

Non-nil means widen narrowed columns for export. When nil, narrowed columns will look in ASCII export just like in Org mode, i.e. with "=>" as ellipsis.

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-ascii-table-widen-columns = true

org-ascii-table-use-ascii-art#

Non-nil means "table.el" tables are turned into ASCII art. It only makes sense when export charset is utf-8. It is nil by default since it requires "ascii-art-to-unicode.el" package, available through, e.g., GNU ELPA.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-ascii-table-use-ascii-art = false

org-ascii-caption-above#

When non-nil, place caption string before the element. Otherwise, place it right after it.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-ascii-caption-above = false

org-ascii-verbatim-format#

Format string used for verbatim text and inline code.

Default
"`%s'"
Type
string
Since
Org 8.0
[emacs_options]
org-ascii-verbatim-format = "`%s'"

org-ascii-format-drawer-function#

Function called to format a drawer in ASCII.

The function must accept three parameters:

NAME      the drawer name, like "LOGBOOK"
CONTENTS  the contents of the drawer.
WIDTH     the text width within the drawer.

The function should return either the string to be exported or nil to ignore the drawer.

The default value simply returns the value of CONTENTS.

Default
#'(lambda
    (_name contents _width)
    contents)
Type
function
Since
Org 8.0

org-ascii-format-inlinetask-function#

Function called to format an inlinetask in ASCII.

The function must accept nine parameters:

TODO       the todo keyword, as a string
TODO-TYPE  the todo type, a symbol among `todo', `done' and nil.
PRIORITY   the inlinetask priority, as a string
NAME       the inlinetask name, as a string.
TAGS       the inlinetask tags, as a list of strings.
CONTENTS   the contents of the inlinetask, as a string.
WIDTH      the width of the inlinetask, as a number.
INLINETASK the inlinetask itself.
INFO       the info channel.

The function should return either the string to be exported or nil to ignore the inline task.

Default
org-ascii-format-inlinetask-default
Type
function
Since
Org 8.3
[emacs_options]
org-ascii-format-inlinetask-function = "org-ascii-format-inlinetask-default"

ox-beamer.el#

org-beamer-frame-level#

The level at which headlines become frames.

Headlines at a lower level will be translated into a sectioning structure. At a higher level, they will be translated into blocks.

If a headline with a "BEAMER_env" property set to "frame" is found within a tree, its level locally overrides this number.

This variable has no effect on headlines with the "BEAMER_env" property set to either "ignoreheading", "appendix", or "note", which will respectively, be invisible, become an appendix or a note.

This integer is relative to the minimal level of a headline within the parse tree, defined as 1.

Default
1
Type
integer
[emacs_options]
org-beamer-frame-level = 1

org-beamer-frame-default-options#

Default options string to use for frames. For example, it could be set to "allowframebreaks".

Default
""
Type
(string :tag "[options]")
[emacs_options]
org-beamer-frame-default-options = ""

org-beamer-column-view-format#

Column view format that should be used to fill the template.

Default
"%45ITEM %10BEAMER_env(Env) %10BEAMER_act(Act) %4BEAMER_col(Col) %8BEAMER_opt(Opt)"
Type
(choice
 (const :tag "Do not insert Beamer column view format" nil)
 (string :tag "Beamer column view format"))
Since
Org 8.0
[emacs_options]
org-beamer-column-view-format = "%45ITEM %10BEAMER_env(Env) %10BEAMER_act(Act) %4BEAMER_col(Col) %8BEAMER_opt(Opt)"

org-beamer-theme#

Default theme used in Beamer presentations.

Default
"default"
Type
(choice
 (const :tag "Do not insert a Beamer theme" nil)
 (string :tag "Beamer theme"))
Since
Org 8.0
[emacs_options]
org-beamer-theme = "default"

org-beamer-environments-extra#

Environments triggered by tags in Beamer export. Each entry has 4 elements:

name    Name of the environment
key     Selection key for `org-beamer-select-environment'
open    The opening template for the environment, with the following escapes
        %a   the action/overlay specification
        %A   the default action/overlay specification
        %R   the raw BEAMER_act value
        %o   the options argument, with square brackets
        %O   the raw BEAMER_opt value
        %h   the headline text
        %r   the raw headline text (i.e. without any processing)
        %H   if there is headline text, that raw text in {} braces
        %U   if there is headline text, that raw text in [] brackets
        %l   the label, obtained from `org-beamer--get-label'
close   The closing string of the environment.
Default
nil
Type
(repeat
 (list
  (string :tag "Environment")
  (string :tag "Selection key")
  (string :tag "Begin")
  (string :tag "End")))
Since
Org 9.7
[emacs_options]
org-beamer-environments-extra = []

org-beamer-outline-frame-title#

Default title of a frame containing an outline.

Default
"Outline"
Type
(string :tag "Outline frame title")
[emacs_options]
org-beamer-outline-frame-title = "Outline"

org-beamer-outline-frame-options#

Outline frame options appended after \begin{frame}. You might want to put e.g. "allowframebreaks=0.9" here.

Default
""
Type
(string :tag "Outline frame options")
[emacs_options]
org-beamer-outline-frame-options = ""

org-beamer-subtitle-format#

Format string used for transcoded subtitle. The format string should have at most one "%s"-expression, which is replaced with the subtitle.

Default
"\\subtitle{%s}"
Type
(string :tag "Format string")
Since
Org 8.3
[emacs_options]
org-beamer-subtitle-format = "\\subtitle{%s}"

org-beamer-frame-environment#

Name of the alternative beamer frame environment. In frames marked as fragile, this environment is used in place of the usual frame environment.

This permits insertion of a beamer frame inside example blocks, working around beamer limitations. See https://list.orgmode.org/87a5nux3zr.fsf@t14.reltub.ca/T/#mc7221e93f138bdd56c916b194b9230d3a6c3de09

This option may need to be changed when "\end{orgframe}" string is used inside beamer slides.

Default
"orgframe"
Type
(string :tag "Beamer frame")
Since
Org 9.7
[emacs_options]
org-beamer-frame-environment = "orgframe"

ox-html.el#

org-html-scripts#

Basic JavaScript to allow highlighting references in code blocks.

Default
"<script>\n// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&amp;dn=gpl-3.0.txt GPL-v3-or-Later\n     function CodeHighlightOn(elem, id)\n     {\n       var target = document.getElementById(id);\n       if(null != target) {\n         elem.classList.add(\"code-highlighted\");\n         target.classList.add(\"code-highlighted\");\n       }\n     }\n     function CodeHighlightOff(elem, id)\n     {\n       var target = document.getElementById(id);\n       if(null != target) {\n         elem.classList.remove(\"code-highlighted\");\n         target.classList.remove(\"code-highlighted\");\n       }\n     }\n// @license-end\n</script>"
Type
string
Since
Org 9.5
[emacs_options]
org-html-scripts = "<script>\n// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&amp;dn=gpl-3.0.txt GPL-v3-or-Later\n     function CodeHighlightOn(elem, id)\n     {\n       var target = document.getElementById(id);\n       if(null != target) {\n         elem.classList.add(\"code-highlighted\");\n         target.classList.add(\"code-highlighted\");\n       }\n     }\n     function CodeHighlightOff(elem, id)\n     {\n       var target = document.getElementById(id);\n       if(null != target) {\n         elem.classList.remove(\"code-highlighted\");\n         target.classList.remove(\"code-highlighted\");\n       }\n     }\n// @license-end\n</script>"

org-html-style-default#

The default style specification for exported HTML files. You can use org-html-head and org-html-head-extra to add to this style. If you don't want to include this default style, customize org-html-head-include-default-style.

Default
"<style type=\"text/css\">\n  #content { max-width: 60em; margin: auto; }\n  .title  { text-align: center;\n             margin-bottom: .2em; }\n  .subtitle { text-align: center;\n              font-size: medium;\n              font-weight: bold;\n              margin-top:0; }\n  .todo   { font-family: monospace; color: red; }\n  .done   { font-family: monospace; color: green; }\n  .priority { font-family: monospace; color: orange; }\n  .tag    { background-color: #eee; font-family: monospace;\n            padding: 2px; font-size: 80%; font-weight: normal; }\n  .timestamp { color: #bebebe; }\n  .timestamp-kwd { color: #5f9ea0; }\n  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }\n  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }\n  .org-center { margin-left: auto; margin-right: auto; text-align: center; }\n  .underline { text-decoration: underline; }\n  #postamble p, #preamble p { font-size: 90%; margin: .2em; }\n  p.verse { margin-left: 3%; }\n  pre {\n    border: 1px solid #e6e6e6;\n    border-radius: 3px;\n    background-color: #f2f2f2;\n    padding: 8pt;\n    font-family: monospace;\n    overflow: auto;\n    margin: 1.2em;\n  }\n  pre.src {\n    position: relative;\n    overflow: auto;\n  }\n  pre.src:before {\n    display: none;\n    position: absolute;\n    top: -8px;\n    right: 12px;\n    padding: 3px;\n    color: #555;\n    background-color: #f2f2f299;\n  }\n  pre.src:hover:before { display: inline; margin-top: 14px;…
Type
string
Since
Org 9.8
[emacs_options]
org-html-style-default = "<style type=\"text/css\">\n  #content { max-width: 60em; margin: auto; }\n  .title  { text-align: center;\n             margin-bottom: .2em; }\n  .subtitle { text-align: center;\n              font-size: medium;\n              font-weight: bold;\n              margin-top:0; }\n  .todo   { font-family: monospace; color: red; }\n  .done   { font-family: monospace; color: green; }\n  .priority { font-family: monospace; color: orange; }\n  .tag    { background-color: #eee; font-family: monospace;\n            padding: 2px; font-size: 80%; font-weight: normal; }\n  .timestamp { color: #bebebe; }\n  .timestamp-kwd { color: #5f9ea0; }\n  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }\n  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }\n  .org-center { margin-left: auto; margin-right: auto; text-align: center; }\n  .underline { text-decoration: underline; }\n  #postamble p, #preamble p { font-size: 90%; margin: .2em; }\n  p.verse { margin-left: 3%; }\n  pre {\n    border: 1px solid #e6e6e6;\n    border-radius: 3px;\n    background-color: #f2f2f2;\n    padding: 8pt;\n    font-family: monospace;\n    overflow: auto;\n    margin: 1.2em;\n  }\n  pre.src {\n    position: relative;\n    overflow: auto;\n  }\n  pre.src:before {\n    display: none;\n    position: absolute;\n    top: -8px;\n    right: 12px;\n    padding: 3px;\n    color: #555;\n    background-color: #f2f2f299;\n  }\n  pre.src:hover:before { display: inline; margin-top: 14px;}\n  /* Languages per Org manual */\n  pre.src-asymptote:before { content: 'Asymptote'; }\n  pre.src-awk:before { content: 'Awk'; }\n  pre.src-authinfo::before { content: 'Authinfo'; }\n  pre.src-c:before { content: 'C'; }\n  pre.src-C:before { content: 'C'; }\n  /* pre.src-C++ doesn't work in CSS */\n  pre.src-clojure:before { content: 'Clojure'; }\n  pre.src-css:before { content: 'CSS'; }\n  pre.src-D:before { content: 'D'; }\n  pre.src-ditaa:before { content: 'ditaa'; }\n  pre.src-dot:before { content: 'Graphviz'; }\n  pre.src-calc:before { content: 'Emacs Calc'; }\n  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }\n  pre.src-fortran:before { content: 'Fortran'; }\n  pre.src-gnuplot:before { content: 'gnuplot'; }\n  pre.src-haskell:before { content: 'Haskell'; }\n  pre.src-hledger:before { content: 'hledger'; }\n  pre.src-java:before { content: 'Java'; }\n  pre.src-js:before { content: 'JavaScript'; }\n  pre.src-latex:before { content: 'LaTeX'; }\n  pre.src-ledger:before { content: 'Ledger'; }\n  pre.src-lisp:before { content: 'Lisp'; }\n  pre.src-lilypond:before { content: 'Lilypond'; }\n  pre.src-lua:before { content: 'Lua'; }\n  pre.src-matlab:before { content: 'MATLAB'; }\n  pre.src-mscgen:before { content: 'Mscgen'; }\n  pre.src-ocaml:before { content: 'Objective Caml'; }\n  pre.src-octave:before { content: 'Octave'; }\n  pre.src-org:before { content: 'Org mode'; }\n  pre.src-oz:before { content: 'OZ'; }\n  pre.src-plantuml:before { content: 'Plantuml'; }\n  pre.src-processing:before { content: 'Processing.js'; }\n  pre.src-python:before { content: 'Python'; }\n  pre.src-R:before { content: 'R'; }\n  pre.src-ruby:before { content: 'Ruby'; }\n  pre.src-sass:before { content: 'Sass'; }\n  pre.src-scheme:before { content: 'Scheme'; }\n  pre.src-screen:before { content: 'Gnu Screen'; }\n  pre.src-sed:before { content: 'Sed'; }\n  pre.src-sh:before { content: 'shell'; }\n  pre.src-sql:before { content: 'SQL'; }\n  pre.src-sqlite:before { content: 'SQLite'; }\n  /* additional languages in org.el's org-babel-load-languages alist */\n  pre.src-forth:before { content: 'Forth'; }\n  pre.src-io:before { content: 'IO'; }\n  pre.src-J:before { content: 'J'; }\n  pre.src-makefile:before { content: 'Makefile'; }\n  pre.src-maxima:before { content: 'Maxima'; }\n  pre.src-perl:before { content: 'Perl'; }\n  pre.src-picolisp:before { content: 'Pico Lisp'; }\n  pre.src-scala:before { content: 'Scala'; }\n  pre.src-shell:before { content: 'Shell Script'; }\n  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }\n  /* additional language identifiers per \"defun org-babel-execute\"\n       in ob-*.el */\n  pre.src-cpp:before  { content: 'C++'; }\n  pre.src-abc:before  { content: 'ABC'; }\n  pre.src-coq:before  { content: 'Coq'; }\n  pre.src-groovy:before  { content: 'Groovy'; }\n  /* additional language identifiers from org-babel-shell-names in\n     ob-shell.el: ob-shell is the only babel language using a lambda to put\n     the execution function name together. */\n  pre.src-bash:before  { content: 'bash'; }\n  pre.src-csh:before  { content: 'csh'; }\n  pre.src-ash:before  { content: 'ash'; }\n  pre.src-dash:before  { content: 'dash'; }\n  pre.src-ksh:before  { content: 'ksh'; }\n  pre.src-mksh:before  { content: 'mksh'; }\n  pre.src-posh:before  { content: 'posh'; }\n  /* Additional Emacs modes also supported by the LaTeX listings package */\n  pre.src-ada:before { content: 'Ada'; }\n  pre.src-asm:before { content: 'Assembler'; }\n  pre.src-caml:before { content: 'Caml'; }\n  pre.src-delphi:before { content: 'Delphi'; }\n  pre.src-html:before { content: 'HTML'; }\n  pre.src-idl:before { content: 'IDL'; }\n  pre.src-mercury:before { content: 'Mercury'; }\n  pre.src-metapost:before { content: 'MetaPost'; }\n  pre.src-modula-2:before { content: 'Modula-2'; }\n  pre.src-pascal:before { content: 'Pascal'; }\n  pre.src-ps:before { content: 'PostScript'; }\n  pre.src-prolog:before { content: 'Prolog'; }\n  pre.src-simula:before { content: 'Simula'; }\n  pre.src-tcl:before { content: 'tcl'; }\n  pre.src-tex:before { content: 'TeX'; }\n  pre.src-plain-tex:before { content: 'Plain TeX'; }\n  pre.src-verilog:before { content: 'Verilog'; }\n  pre.src-vhdl:before { content: 'VHDL'; }\n  pre.src-xml:before { content: 'XML'; }\n  pre.src-nxml:before { content: 'XML'; }\n  /* add a generic configuration mode; LaTeX export needs an additional\n     (add-to-list 'org-latex-listings-langs '(conf \" \")) in .emacs */\n  pre.src-conf:before { content: 'Configuration File'; }\n\n  table { border-collapse:collapse; }\n  caption.t-above { caption-side: top; }\n  caption.t-bottom { caption-side: bottom; }\n  td, th { vertical-align:top;  }\n  th.org-right  { text-align: center;  }\n  th.org-left   { text-align: center;   }\n  th.org-center { text-align: center; }\n  td.org-right  { text-align: right;  }\n  td.org-left   { text-align: left;   }\n  td.org-center { text-align: center; }\n  dt { font-weight: bold; }\n  .footpara { display: inline; }\n  .footdef  { margin-bottom: 1em; }\n  .figure { padding: 1em; }\n  .figure p { text-align: center; }\n  .equation-container {\n    display: table;\n    text-align: center;\n    width: 100%;\n  }\n  .equation {\n    vertical-align: middle;\n  }\n  .equation-label {\n    display: table-cell;\n    text-align: right;\n    vertical-align: middle;\n  }\n  .inlinetask {\n    padding: 10px;\n    border: 2px solid gray;\n    margin: 10px;\n    background: #ffffcc;\n  }\n  #org-div-home-and-up\n   { text-align: right; font-size: 70%; white-space: nowrap; }\n  textarea { overflow-x: auto; }\n  .linenr { font-size: smaller }\n  .code-highlighted { background-color: #ffff00; }\n  .org-info-js_info-navigation { border-style: none; }\n  #org-info-js_console-label\n    { font-size: 10px; font-weight: bold; white-space: nowrap; }\n  .org-info-js_search-highlight\n    { background-color: #ffff00; color: #000000; font-weight: bold; }\n  .org-svg { }\n</style>"

org-html-use-infojs#

Non-nil when Sebastian Rose's Java Script org-info.js should be active. This option can be nil or t to never or always use the script. It can also be the symbol when-configured, meaning that the script will be linked into the export file if and only if there is a "#+INFOJS_OPT:" line in the buffer. See also the variable org-html-infojs-options.

Default
when-configured
Type
(choice
 (const :tag "Never" nil)
 (const :tag "When configured in buffer" when-configured)
 (const :tag "Always" t))
Since
Org 8.0
[emacs_options]
org-html-use-infojs = "when-configured"

org-html-infojs-options#

Options settings for the INFOJS JavaScript. Each of the options must have an entry in org-html-infojs-opts-table. The value can either be a string that will be passed to the script, or a property. This property is then assumed to be a property that is defined by the Export/Publishing setup of Org. The sdepth and tdepth parameters can also be set to "max", which means to use the maximum value consistent with other options.

Default
((path . "https://orgmode.org/org-info.js")
 (view . "info")
 (toc . :with-toc)
 (ftoc . "0")
 (tdepth . "max")
 (sdepth . "max")
 (mouse . "underline")
 (buttons . "0")
 (ltoc . "1")
 (up . :html-link-up)
 (home . :html-link-home))
Type
(set :greedy t :inline t
     (cons
      (const path)
      (choice
       (symbol :tag "Publishing/Export property")
       (string :tag "Value")))
     (cons
      (const view)
      (choice
       (symbol :tag "Publishing/Export property")
       (string :tag "Value")))
…
Since
Org 8.0

org-html-infojs-template#

The template for the export style additions when org-info.js is used. Option settings will replace the %MANAGER-OPTIONS cookie.

Default
"<script src=\"%SCRIPT_PATH\">\n// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&amp;dn=gpl-3.0.txt GPL-v3-or-Later\n// @license-end\n</script>\n\n<script>\n// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&amp;dn=gpl-3.0.txt GPL-v3-or-Later\n%MANAGER_OPTIONS\norg_html_manager.setup();  // activate after the parameters are set\n// @license-end\n</script>"
Type
string
Since
Org 9.4
[emacs_options]
org-html-infojs-template = "<script src=\"%SCRIPT_PATH\">\n// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&amp;dn=gpl-3.0.txt GPL-v3-or-Later\n// @license-end\n</script>\n\n<script>\n// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&amp;dn=gpl-3.0.txt GPL-v3-or-Later\n%MANAGER_OPTIONS\norg_html_manager.setup();  // activate after the parameters are set\n// @license-end\n</script>"

org-html-text-markup-alist#

Alist of HTML expressions to convert text markup.

The key must be a symbol among bold, code, italic, strike-through, underline and verbatim. The value is a formatting string to wrap fontified text with.

If no association can be found for a given markup, text will be returned as-is.

Default
((bold . "<b>%s</b>")
 (code . "<code>%s</code>")
 (italic . "<i>%s</i>")
 (strike-through . "<del>%s</del>")
 (underline . "<span class=\"underline\">%s</span>")
 (verbatim . "<code>%s</code>"))
Type
(alist :key-type
       (symbol :tag "Markup type")
       :value-type
       (string :tag "Format string"))
Since
Org 8.0
[emacs_options]
org-html-text-markup-alist = { bold = "<b>%s</b>", code = "<code>%s</code>", italic = "<i>%s</i>", strike-through = "<del>%s</del>", underline = "<span class=\"underline\">%s</span>", verbatim = "<code>%s</code>" }

org-html-indent#

Non-nil means to indent the generated HTML. Warning: non-nil may break indentation of source code blocks.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-html-indent = false

org-html-format-drawer-function#

Function called to format a drawer in HTML code.

The function must accept two parameters:

NAME      the drawer name, like "LOGBOOK"
CONTENTS  the contents of the drawer.

The function should return the string to be exported.

The default value simply returns the value of CONTENTS.

Default
#'(lambda
    (_name contents)
    contents)
Type
function
Since
Org 8.0

org-html-footnotes-section#

Format for the footnotes section. Should contain a two instances of %s. The first will be replaced with the language-specific word for "Footnotes", the second one will be replaced by the footnotes themselves.

Default
"<div id=\"footnotes\">\n<h2 class=\"footnotes\">%s: </h2>\n<div id=\"text-footnotes\">\n%s\n</div>\n</div>"
Type
string
[emacs_options]
org-html-footnotes-section = "<div id=\"footnotes\">\n<h2 class=\"footnotes\">%s: </h2>\n<div id=\"text-footnotes\">\n%s\n</div>\n</div>"

org-html-footnote-format#

The format for the footnote reference.

%s will be replaced by the footnote reference itself.
Default
"<sup>%s</sup>"
Type
string
[emacs_options]
org-html-footnote-format = "<sup>%s</sup>"

org-html-footnote-separator#

Text used to separate footnotes.

Default
"<sup>, </sup>"
Type
string
[emacs_options]
org-html-footnote-separator = "<sup>, </sup>"

org-html-toplevel-hlevel#

The <H> level for level 1 headings in HTML export. This is also important for the classes that will be wrapped around headlines and outline structure. If this variable is 1, the top-level headlines will be <h1>, and the corresponding classes will be outline-1, section-number-1, and outline-text-1. If this is 2, all of these will get a 2 instead. The default for this variable is 2, because we use <h1> for formatting the document title.

Default
2
Type
integer
[emacs_options]
org-html-toplevel-hlevel = 2

org-html-format-headline-function#

Function to format headline text.

This function will be called with six arguments:

TODO      the todo keyword (string or nil).

TODO-TYPE the type of todo (symbol: todo, done, nil)

PRIORITY  the priority of the headline (integer or nil)
TEXT      the main headline text (string).
TAGS      the tags (string or nil).
INFO      the export options (plist).

The function result will be used in the section format string.

Default
org-html-format-headline-default-function
Type
function
Since
Org 8.3
[emacs_options]
org-html-format-headline-function = "org-html-format-headline-default-function"

org-html-allow-name-attribute-in-anchors#

When nil, do not set "name" attribute in anchors. By default, when appropriate, anchors are formatted with "id" but without "name" attribute.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-html-allow-name-attribute-in-anchors = false

When non-nil, the headlines contain a hyperlink to themselves.

Default
nil
Type
boolean
Since
Org 9.3
[emacs_options]
org-html-self-link-headlines = false

org-html-prefer-user-labels#

When non-nil use user-defined names and ID over internal ones.

By default, Org generates its own internal ID values during HTML export. This process ensures that these values are unique and valid, but the keys are not available in advance of the export process, and not so readable.

When this variable is non-nil, Org will use NAME keyword, or the real name of the target to create the ID attribute.

Independently of this variable, however, CUSTOM_ID are always used as a reference.

Default
nil
Type
boolean
Since
Org 9.4
[emacs_options]
org-html-prefer-user-labels = false

org-html-format-inlinetask-function#

Function called to format an inlinetask in HTML code.

The function must accept seven parameters:

TODO      the todo keyword, as a string
TODO-TYPE the todo type, a symbol among `todo', `done' and nil.
PRIORITY  the inlinetask priority, as a string
NAME      the inlinetask name, as a string.
TAGS      the inlinetask tags, as a list of strings.
CONTENTS  the contents of the inlinetask, as a string.
INFO      the export options, as a plist

The function should return the string to be exported.

Default
org-html-format-inlinetask-default-function
Type
function
Since
Org 8.3
[emacs_options]
org-html-format-inlinetask-function = "org-html-format-inlinetask-default-function"

org-html-equation-reference-format#

The MathJax command to use when referencing equations.

This is a format control string that expects a single string argument specifying the label that is being referenced. The argument is generated automatically on export.

The default is to wrap equations in parentheses (using "\eqref{%s})".

Most common values are:

\eqref{%s}    Wrap the equation in parentheses
\ref{%s}      Do not wrap the equation in parentheses
Default
"\\eqref{%s}"
Type
string
Since
Org 9.4
[emacs_options]
org-html-equation-reference-format = "\\eqref{%s}"

org-html-with-latex#

Non-nil means process LaTeX math snippets.

When set, the exporter will process LaTeX environments and fragments.

This option can also be set with the +OPTIONS line, e.g. "tex:mathjax". Allowed values are:

nil           Ignore math snippets.
`verbatim'    Keep everything in verbatim
`mathjax', t  Do MathJax preprocessing and arrange for MathJax.js to
              be loaded.
`html'        Use `org-latex-to-html-convert-command' to convert
              LaTeX fragments to HTML.
SYMBOL        Any symbol defined in `org-preview-latex-process-alist',
              e.g., `dvipng'.
Default
t
Type
(choice
 (const :tag "Do not process math in any way" nil)
 (const :tag "Leave math verbatim" verbatim)
 (const :tag "Use MathJax to display math" mathjax)
 (symbol :tag "Convert to image to display math" :value dvipng))
Since
Org 8.0
[emacs_options]
org-html-with-latex = true

Non-nil means make file links to "file.org" point to "file.html".

When Org mode is exporting an Org file to HTML, links to non-HTML files are directly put into a "href" tag in HTML. However, links to other Org files (recognized by the extension ".org") should become links to the corresponding HTML file, assuming that the linked Org file will also be converted to HTML.

Links to "file.org.gpg" are also converted.

When nil, the links still point to the plain ".org" file.

Default
t
Type
boolean
[emacs_options]
org-html-link-org-files-as-html = true

org-html-inline-images#

Non-nil means inline images into exported HTML pages. This is done using an <img> tag. When nil, an anchor with href is used to link to the image.

Default
t
Type
boolean
Since
Org 8.1
[emacs_options]
org-html-inline-images = true

org-html-inline-image-rules#

Rules characterizing image files that can be inlined into HTML. A rule consists in an association whose key is the type of link to consider, and value is a regexp that will be matched against link's path.

Default
(("file" . "\\(?:\\.\\(?:avif\\|gif\\|jp\\(?:e?g\\)\\|png\\|svg\\|webp\\)\\)")
 ("http" . "\\(?:\\.\\(?:avif\\|gif\\|jp\\(?:e?g\\)\\|png\\|svg\\|webp\\)\\)")
 ("https" . "\\(?:\\.\\(?:avif\\|gif\\|jp\\(?:e?g\\)\\|png\\|svg\\|webp\\)\\)"))
Type
(alist :key-type
       (string :tag "Type")
       :value-type
       (regexp :tag "Path"))
Since
Org 9.7

org-html-htmlize-output-type#

Output type to be used by htmlize when formatting code snippets. Choices are css to export the CSS selectors only,​~inline-css~ to export the CSS attribute values inline in the HTML or nil to export plain text. We use as default inline-css, in order to make the resulting HTML self-containing.

However, this will fail when using Emacs in batch mode for export, because then no rich font definitions are in place. It will also not be good if people with different Emacs setup contribute HTML files to a website, because the fonts will represent the individual setups. In these cases, it is much better to let Org/Htmlize assign classes only, and to use a style file to define the look of these classes. To get a start for your css file, start Emacs session and make sure that all the faces you are interested in are defined, for example by loading files in all modes you want. Then, use the command M-x org-html-htmlize-generate-css to extract class definitions.

Default
inline-css
Type
(choice
 (const css)
 (const inline-css)
 (const nil))
[emacs_options]
org-html-htmlize-output-type = "inline-css"

org-html-htmlize-font-prefix#

The prefix for CSS class names for htmlize font specifications.

Default
"org-"
Type
string
[emacs_options]
org-html-htmlize-font-prefix = "org-"

org-html-wrap-src-lines#

If non-nil, wrap individual lines of source blocks in "code" elements. In this case, add line number in attribute "data-ox-html-linenr" when line numbers are enabled.

Default
nil
Type
boolean
Since
Org 9.3
[emacs_options]
org-html-wrap-src-lines = false

org-html-table-default-attributes#

Default attributes and values which will be used in table tags. This is a plist where attributes are symbols, starting with colons, and values are strings.

When exporting to HTML5, these values will be disregarded.

Default
(:border "2" :cellspacing "0" :cellpadding "6" :rules "groups" :frame "hsides")
Type
(plist :key-type
       (symbol :tag "Property")
       :value-type
       (string :tag "Value"))
Since
Org 8.0

org-html-table-header-tags#

The opening and ending tags for table header fields. This is customizable so that alignment options can be specified. The first %s will be filled with the scope of the field, either row or col. The second %s will be replaced by a style entry to align the field. See also the variable org-html-table-use-header-tags-for-first-column. See also the variable org-html-table-align-individual-fields.

Default
("<th scope=\"%s\"%s>" . "</th>")
Type
(cons
 (string :tag "Opening tag")
 (string :tag "Closing tag"))

org-html-table-data-tags#

The opening and ending tags for table data fields. This is customizable so that alignment options can be specified. The first %s will be filled with the scope of the field, either row or col. The second %s will be replaced by a style entry to align the field. See also the variable org-html-table-align-individual-fields.

Default
("<td%s>" . "</td>")
Type
(cons
 (string :tag "Opening tag")
 (string :tag "Closing tag"))

org-html-table-row-open-tag#

The opening tag for table rows. This is customizable so that alignment options can be specified. Instead of strings, these can be a Lisp function that will be evaluated for each row in order to construct the table row tags.

The function will be called with these arguments:

      `number': row number (0 is the first row)
`group-number': group number of current row
`start-group?': non-nil means the row starts a group
  `end-group?': non-nil means the row ends a group
        `top?': non-nil means this is the top row
     `bottom?': non-nil means this is the bottom row

For example:

(setq org-html-table-row-open-tag
      (lambda (number group-number start-group? end-group-p top? bottom?)
         (cond (top? "<tr class=\"tr-top\">")
               (bottom? "<tr class=\"tr-bottom\">")
               (t (if (= (mod number 2) 1)
                      "<tr class=\"tr-odd\">"
                    "<tr class=\"tr-even\">")))))

will use the "tr-top" and "tr-bottom" classes for the top row and the bottom row, and otherwise alternate between "tr-odd" and "tr-even" for odd and even rows.

Default
"<tr>"
Type
(choice :tag "Opening tag"
        (string :tag "Specify")
        (function))
[emacs_options]
org-html-table-row-open-tag = "<tr>"

org-html-table-row-close-tag#

The closing tag for table rows. This is customizable so that alignment options can be specified. Instead of strings, this can be a Lisp function that will be evaluated for each row in order to construct the table row tags.

See documentation of org-html-table-row-open-tag.

Default
"</tr>"
Type
(choice :tag "Closing tag"
        (string :tag "Specify")
        (function))
[emacs_options]
org-html-table-row-close-tag = "</tr>"

org-html-table-align-individual-fields#

Non-nil means attach style attributes for alignment to each table field. When nil, alignment will only be specified in the column tags, but this is ignored by some browsers (like Firefox, Safari). Opera does it right though.

Default
t
Type
boolean
[emacs_options]
org-html-table-align-individual-fields = true

org-html-table-use-header-tags-for-first-column#

Non-nil means format column one in tables with header tags. When nil, also column one will use data tags.

Default
nil
Type
boolean
[emacs_options]
org-html-table-use-header-tags-for-first-column = false

org-html-table-caption-above#

When non-nil, place caption string at the beginning of the table. Otherwise, place it near the end.

Default
t
Type
boolean
[emacs_options]
org-html-table-caption-above = true

org-html-tag-class-prefix#

Prefix to class names for TODO keywords. Each tag gets a class given by the tag itself, with this prefix. The default prefix is empty because it is nice to just use the keyword as a class name. But if you get into conflicts with other, existing CSS classes, then this prefix can be very useful.

Default
""
Type
string
[emacs_options]
org-html-tag-class-prefix = ""

org-html-extension#

The extension for exported HTML files.

Default
"html"
Type
string
[emacs_options]
org-html-extension = "html"

org-html-xml-declaration#

The extension for exported HTML files.

%s will be replaced with the charset of the exported file.

This may be a string, or an alist with export extensions and corresponding declarations.

This declaration only applies when exporting to XHTML.

Default
(("html" . "<?xml version=\"1.0\" encoding=\"%s\"?>")
 ("php" . "<?php echo \"<?xml version=\\\"1.0\\\" encoding=\\\"%s\\\" ?>\"; ?>"))
Type
(choice
 (string :tag "Single declaration")
 (repeat :tag "Dependent on extension"
         (cons
          (string :tag "Extension")
          (string :tag "Declaration"))))

org-html-coding-system#

Coding system for HTML export. Use utf-8 as the default value.

Default
utf-8
Type
coding-system
Since
Org 8.0
[emacs_options]
org-html-coding-system = "utf-8"

org-html-doctype#

Document type definition to use for exported HTML files. Can be set with the in-buffer HTML_DOCTYPE property or for publishing, with :html-doctype.

Default
"xhtml-strict"
Type
(choice
 (const "html4-strict")
 (const "html4-transitional")
 (const "html4-frameset")
 (const "xhtml-strict")
 (const "xhtml-transitional")
 (const "xhtml-frameset")
 (const "xhtml-11")
 (const "html5")
 (const "xhtml5")
 (string :tag "Custom doctype"))
Since
Org 8.0
[emacs_options]
org-html-doctype = "xhtml-strict"

org-html-html5-fancy#

Non-nil means using new HTML5 elements. This variable is ignored for anything other than HTML5 export.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-html-html5-fancy = false

org-html-container-element#

HTML element to use for wrapping top level sections. Can be set with the in-buffer HTML_CONTAINER property or for publishing, with :html-container.

Note that changing the default will prevent you from using org-info.js for your website.

Default
"div"
Type
string
Since
Org 8.0
[emacs_options]
org-html-container-element = "div"

org-html-content-class#

CSS class name to use for the top level content wrapper. Can be set with the in-buffer HTML_CONTENT_CLASS property or for publishing, with :html-content-class.

Default
"content"
Type
string
Since
Org 9.5
[emacs_options]
org-html-content-class = "content"

org-html-divs#

Alist of the three section elements for HTML export. The car of each entry is one of preamble, content or postamble. The cdrs of each entry are the ELEMENT_TYPE and ID for each section of the exported document.

Note that changing the default will prevent you from using org-info.js for your website.

Default
((preamble "div" "preamble")
 (content "div" "content")
 (postamble "div" "postamble"))
Type
(list :greedy t
      (list :tag "Preamble"
            (const :format "" preamble)
            (string :tag "element")
            (string :tag "     id"))
      (list :tag "Content"
            (const :format "" content)
            (string :tag "element")
            (string :tag "     id"))
      (list :tag "Postamble"
            (const :format "" postamble)
…
Since
Org 8.0

org-html-checkbox-type#

The type of checkboxes to use for HTML export. See org-html-checkbox-types for the values used for each option.

Default
ascii
Type
(choice
 (const :tag "ASCII characters" ascii)
 (const :tag "Unicode characters" unicode)
 (const :tag "HTML checkboxes" html))
Since
Org 8.0
[emacs_options]
org-html-checkbox-type = "ascii"

org-html-metadata-timestamp-format#

Format used for timestamps in preamble, postamble and metadata. See format-time-string for more information on its components.

Default
"%Y-%m-%d %a %H:%M"
Type
string
Since
Org 8.0
[emacs_options]
org-html-metadata-timestamp-format = "%Y-%m-%d %a %H:%M"

org-html-datetime-formats#

Formats used for the timestamp added as metadata to the time HTML element. This only has an effect when org-html-html5-fancy is enabled, but does not affect how the timestamp is displayed. The format in CAR represents the timestamp used for timestamps without a time component, CDR the one for the full date and time. Note that the HTML standard restricts what timestamp formats are considered valid for the datetime attribute. See format-time-string for more information on its components.

Default
("%F" . "%FT%T")
Type
(cons string string)
Since
Org 9.8

org-html-mathjax-options#

Options for MathJax setup.

Alist of the following elements.

path          The path to MathJax version 3 or later.
scale         Scaling with HTML-CSS, MathML and SVG output engines.
align         How to align display math: left, center, or right.
font          The font to use with HTML-CSS and SVG output.  Needs
              MathJax version 4+.  MathJax 4 provides 11 fonts:
              "mathjax-modern"   Latin-Modern font, default in MathJax 4+
              "mathjax-asana"    Asana-Math font
              "mathjax-bonum"    Gyre Bonum font
              "mathjax-dejavu"   Gyre DejaVu font
              "mathjax-pagella"  Gyre Pagella font
              "mathjax-schola"   Gyre Schola font
              "mathjax-termes"   Gyre Termes font
              "mathjax-stix2"    STIX2 font
              "mathjax-fira"     Fira and Fira-Math fonts
              "mathjax-euler"    Neo Euler font that extends Latin-Modern
              "mathjax-tex"      The original MathJax TeX font
overflow      How to break displayed equations when too large.  Needs
              MathJax 4 or newer.  Supported options include
              "overflow", "scale", "scroll", "truncate",
              "linebreak", and "elide".
linebreaks    Let MathJax perform automatic linebreaks.  Valid values
              are "true" and "false".
indent        If align is not center, how far from the left/right side?  For
              example, "1em".

multlinewidth The width of the multline environment.

tags          How to number equations.  Valid values are "none",
              "all" and "ams".
tagindent     The amount tags are indented.
tagside       Which side to show tags/labels on.  Valid values are
              "left" and "right"

You can also customize this for some buffer, using something like

#+HTML_MATHJAX: align: left indent: 5em tagside: left

For further information about MathJax options, see the MathJax documentation:

https://docs.mathjax.org/

To maintain compatibility with pre-9.6 Org that used MathJax 2, the following conversions take place.

The legacy "autonumber" option, with the value "AMS", "None", or "All", becomes the "tags" option set to the value "ams", "none", or "all", respectively.

Any legacy values of the "scale" option, specified as percentage strings, become converted to unit-interval numbers. For example, a legacy scale of "150" becomes a scale of 1.5.

The legacy "linebreaks" option, with the value "true" or "false", becomes the "overflow" option set to the value "linebreak" or "overflow", respectively.

The legacy values of the "font" option, namely "TeX", "STIX-Web", "Asana-Math", "Neo-Euler", "Gyre-Pagella", "Gyre-Termes", "Latin-Modern", become converted to the corresponding MathJax 4+ font names.

Legacy options and values always take precedence.

Default
((path "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js")
 (scale 1.0)
 (align "center")
 (font "mathjax-modern")
 (overflow "overflow")
 (tags "ams")
 (indent "0em")
 (multlinewidth "85%")
 (tagindent ".8em")
 (tagside "right"))
Type
(list :greedy t
      (list :tag "path   (the path from where to load MathJax.js)"
            (const :format "       " path)
            (string))
      (list :tag "scale  (scaling for the displayed math)"
            (const :format "   " scale)
            (float))
      (list :tag "align  (alignment of displayed equations)"
            (const :format "       " align)
            (string))
      (list :tag "font (used to typeset math)"
…
Since
Org 9.6

org-html-mathjax-template#

The MathJax template. See also org-html-mathjax-options.

Default
"<script>\n  window.MathJax = {\n    tex: {\n      ams: {\n        multlineWidth: '%MULTLINEWIDTH'\n      },\n      tags: '%TAGS',\n      tagSide: '%TAGSIDE',\n      tagIndent: '%TAGINDENT'\n    },\n    chtml: {\n      scale: %SCALE,\n      displayAlign: '%ALIGN',\n      displayIndent: '%INDENT'\n    },\n    svg: {\n      scale: %SCALE,\n      displayAlign: '%ALIGN',\n      displayIndent: '%INDENT'\n    },\n    output: {\n      font: '%FONT',\n      displayOverflow: '%OVERFLOW'\n    }\n  };\n</script>\n\n<script\n  id=\"MathJax-script\"\n  async\n  src=\"%PATH\">\n</script>"
Type
string
[emacs_options]
org-html-mathjax-template = "<script>\n  window.MathJax = {\n    tex: {\n      ams: {\n        multlineWidth: '%MULTLINEWIDTH'\n      },\n      tags: '%TAGS',\n      tagSide: '%TAGSIDE',\n      tagIndent: '%TAGINDENT'\n    },\n    chtml: {\n      scale: %SCALE,\n      displayAlign: '%ALIGN',\n      displayIndent: '%INDENT'\n    },\n    svg: {\n      scale: %SCALE,\n      displayAlign: '%ALIGN',\n      displayIndent: '%INDENT'\n    },\n    output: {\n      font: '%FONT',\n      displayOverflow: '%OVERFLOW'\n    }\n  };\n</script>\n\n<script\n  id=\"MathJax-script\"\n  async\n  src=\"%PATH\">\n</script>"

org-html-postamble#

Non-nil means insert a postamble in HTML export.

When set to auto, check against the org-export-with-author/email/creator/date variables to set the content of the postamble. When t, insert a string as defined by the formatting string in org-html-postamble-format. When set to a string, use this formatting string instead (see org-html-postamble-format for an example of such a formatting string).

When set to a function, apply this function and insert the returned string. The function takes the property list of export options as its only argument.

Setting :html-postamble in publishing projects will take precedence over this variable.

Default
auto
Type
(choice
 (const :tag "No postamble" nil)
 (const :tag "Auto postamble" auto)
 (const :tag "Default formatting string" t)
 (string :tag "Custom formatting string")
 (function :tag "Function (must return a string)"))
[emacs_options]
org-html-postamble = "auto"

org-html-postamble-format#

Alist of languages and format strings for the HTML postamble.

The first element of each list is the language code, as used for the LANGUAGE keyword. See org-export-default-language.

The second element of each list is a format string to format the postamble itself. This format string can contain these elements:

%t stands for the title.
%s stands for the subtitle.
%a stands for the author's name.
%e stands for the author's email.
%d stands for the date.
%c will be replaced by `org-html-creator-string'.
%v will be replaced by `org-html-validation-link'.
%T will be replaced by the export time.
%C will be replaced by the last modification time.

If you need to use a "%" character, you need to escape it like that: "%%".

Default
(("en" "<p class=\"author\">Author: %a (%e)</p>\n<p class=\"date\">Date: %d</p>\n<p class=\"creator\">%c</p>\n<p class=\"validation\">%v</p>"))
Type
(repeat
 (list
  (string :tag "Language")
  (string :tag "Format string")))

Link to HTML validation service.

Default
"<a href=\"https://validator.w3.org/check?uri=referer\">Validate</a>"
Type
string
Since
Org 9.4
[emacs_options]
org-html-validation-link = "<a href=\"https://validator.w3.org/check?uri=referer\">Validate</a>"

org-html-creator-string#

Information about the creator of the HTML document. This option can also be set on with the CREATOR keyword.

Default
computed when Org loads:
(format "<a href=\"https://www.gnu.org/software/emacs/\">Emacs</a> %s (<a href=\"https://orgmode.org\">Org</a> mode %s)"
        emacs-version
        (if (fboundp 'org-version) (org-version) "unknown version"))
Type
(string :tag "Creator string")
Since
Org 8.0

org-html-preamble#

Non-nil means insert a preamble in HTML export.

When t, insert a string as defined by the formatting string in org-html-preamble-format. When set to a string, use this formatting string instead (see org-html-postamble-format for an example of such a formatting string).

When set to a function, apply this function and insert the returned string. The function takes the property list of export options as its only argument.

Setting :html-preamble in publishing projects will take precedence over this variable.

Default
t
Type
(choice
 (const :tag "No preamble" nil)
 (const :tag "Default preamble" t)
 (string :tag "Custom formatting string")
 (function :tag "Function (must return a string)"))
[emacs_options]
org-html-preamble = true

org-html-preamble-format#

Alist of languages and format strings for the HTML preamble.

The first element of each list is the language code, as used for the LANGUAGE keyword. See org-export-default-language.

The second element of each list is a format string to format the preamble itself. This format string can contain these elements:

%t stands for the title.
%s stands for the subtitle.
%a stands for the author's name.
%e stands for the author's email.
%d stands for the date.
%c will be replaced by `org-html-creator-string'.
%v will be replaced by `org-html-validation-link'.
%T will be replaced by the export time.
%C will be replaced by the last modification time.

If you need to use a "%" character, you need to escape it like that: "%%".

See the default value of org-html-postamble-format for an example.

Default
(("en" ""))
Type
(repeat
 (list
  (string :tag "Language")
  (string :tag "Format string")))

Where should the "UP" link of exported HTML pages lead?

Default
""
Type
(string :tag "File or URL")
[emacs_options]
org-html-link-up = ""

Where should the "HOME" link of exported HTML pages lead?

Default
""
Type
(string :tag "File or URL")
[emacs_options]
org-html-link-home = ""

Should we prepend relative links with HTML_LINK_HOME?

Default
nil
Type
boolean
Since
Org 8.1
[emacs_options]
org-html-link-use-abs-url = false

org-html-home/up-format#

Snippet used to insert the HOME and UP links. This is a format string, the first %s will receive the UP link, the second the HOME link. If both org-html-link-up and org-html-link-home are empty, the entire snippet will be ignored.

Default
"<div id=\"org-div-home-and-up\">\n <a accesskey=\"h\" href=\"%s\"> UP </a>\n |\n <a accesskey=\"H\" href=\"%s\"> HOME </a>\n</div>"
Type
string
[emacs_options]
"org-html-home/up-format" = "<div id=\"org-div-home-and-up\">\n <a accesskey=\"h\" href=\"%s\"> UP </a>\n |\n <a accesskey=\"H\" href=\"%s\"> HOME </a>\n</div>"

org-html-head-include-scripts#

Non-nil means include the JavaScript snippets in exported HTML files. The actual script is defined in org-html-scripts.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-html-head-include-scripts = false

org-html-meta-tags#

Form that is used to produce meta tags in the HTML head.

Can be a list where each item is a list of arguments to be passed to org-html--build-meta-entry. Any nil items are ignored.

Also accept a function which gives such a list when called with a single argument (INFO, a communication plist).

Default
org-html-meta-tags-default
Type
(choice
 (repeat
  (list
   (string :tag "Meta label")
   (string :tag "label value")
   (string :tag "Content value")))
 function)
Since
Org 9.5
[emacs_options]
org-html-meta-tags = "org-html-meta-tags-default"

org-html-head-include-default-style#

Non-nil means include the default style in exported HTML files. The actual style is defined in org-html-style-default and should not be modified. Use org-html-head to use your own style information.

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-html-head-include-default-style = true

org-html-head#

Org-wide head definitions for exported HTML files.

This variable can contain the full HTML structure to provide a style, including the surrounding HTML tags. You can consider including definitions for the following classes: title, todo, done, timestamp, timestamp-kwd, tag, target. Can be a string, or a function that accepts the INFO plist and returns a string.

For example, a valid value would be:

<style>
   p { font-weight: normal; color: gray; }
   h1 { color: black; }
   .title { text-align: center; }
   .todo, .timestamp-kwd { color: red; }
   .done { color: green; }
</style>

If you want to refer to an external style, use something like

<link rel="stylesheet" type="text/css" href="mystyles.css" />

As the value of this option simply gets inserted into the HTML <head> header, you can use it to add any arbitrary text to the header.

You can set this on a per-file basis using #+HTML_HEAD:, or for publication projects using the :html-head property.

Default
""
Type
(choice
 (string :tag "Literal text to insert")
 (function :tag "Function evaluating to a string"))
Since
Org 9.8
[emacs_options]
org-html-head = ""

org-html-head-extra#

More head information to add in the HTML output.

You can set this on a per-file basis using #+HTML_HEAD_EXTRA:, or for publication projects using the :html-head-extra property. Can be a string, or a function that accepts the INFO plist and returns a string.

Default
""
Type
(choice
 (string :tag "Literal text to insert")
 (function :tag "Function evaluating to a string"))
Since
Org 9.8
[emacs_options]
org-html-head-extra = ""

org-html-viewport#

Viewport options for mobile-optimized sites.

The following values are recognized

width          Size of the viewport.
initial-scale  Zoom level when the page is first loaded.
minimum-scale  Minimum allowed zoom level.
maximum-scale  Maximum allowed zoom level.
user-scalable  Whether zoom can be changed.

The viewport meta tag is inserted if this variable is non-nil.

See the following site for a reference: https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag

Default
((width "device-width")
 (initial-scale "1")
 (minimum-scale "")
 (maximum-scale "")
 (user-scalable ""))
Type
(choice
 (const :tag "Disable" nil)
 (list :tag "Enable"
       (list :tag "Width of viewport"
             (const :format "             " width)
             (choice
              (const :tag "unset" "")
              (string)))
       (list :tag "Initial scale"
             (const :format "             " initial-scale)
             (choice
…
Since
Org 8.3

org-html-klipsify-src#

When non-nil, source code blocks are editable in exported presentation.

Default
nil
Type
boolean
Since
Org 9.1
[emacs_options]
org-html-klipsify-src = false

org-html-klipse-css#

Location of the codemirror CSS file for use with klipse.

Default
"https://storage.googleapis.com/app.klipse.tech/css/codemirror.css"
Type
string
Since
Org 9.1
[emacs_options]
org-html-klipse-css = "https://storage.googleapis.com/app.klipse.tech/css/codemirror.css"

org-html-klipse-js#

Location of the klipse javascript file.

Default
"https://storage.googleapis.com/app.klipse.tech/plugin_prod/js/klipse_plugin.min.js"
Type
string
[emacs_options]
org-html-klipse-js = "https://storage.googleapis.com/app.klipse.tech/plugin_prod/js/klipse_plugin.min.js"

org-html-klipse-selection-script#

JavaScript snippet to activate klipse.

Default
"window.klipse_settings = {selector_eval_html: '.src-html',\n                             selector_eval_js: '.src-js',\n                             selector_eval_python_client: '.src-python',\n                             selector_eval_scheme: '.src-scheme',\n                             selector: '.src-clojure',\n                             selector_eval_ruby: '.src-ruby'};"
Type
string
Since
Org 9.1
[emacs_options]
org-html-klipse-selection-script = "window.klipse_settings = {selector_eval_html: '.src-html',\n                             selector_eval_js: '.src-js',\n                             selector_eval_python_client: '.src-python',\n                             selector_eval_scheme: '.src-scheme',\n                             selector: '.src-clojure',\n                             selector_eval_ruby: '.src-ruby'};"

org-html-todo-kwd-class-prefix#

Prefix to class names for TODO keywords. Each TODO keyword gets a class given by the keyword itself, with this prefix. The default prefix is empty because it is nice to just use the keyword as a class name. But if you get into conflicts with other, existing CSS classes, then this prefix can be very useful.

Default
""
Type
string
[emacs_options]
org-html-todo-kwd-class-prefix = ""

ox-icalendar.el#

org-icalendar-combined-agenda-file#

The file name for the iCalendar file covering all agenda files. This file is created with the command M-x org-icalendar-combine-agenda-files. The file name should be absolute. It will be overwritten without warning.

Default
"~/org.ics"
Type
file
[emacs_options]
org-icalendar-combined-agenda-file = "~/org.ics"

org-icalendar-alarm-time#

Number of minutes for triggering an alarm for exported timed events.

A zero value (the default) turns off the definition of an alarm trigger for timed events. If non-zero, alarms are created.

a single alarm per entry is defined
The alarm will go off N minutes before the event
only a DISPLAY action is defined.
Default
0
Type
integer
Since
Emacs 24.1
[emacs_options]
org-icalendar-alarm-time = 0

org-icalendar-force-alarm#

Non-nil means alarm will be created even if is set to zero.

This overrides default behavior where zero means no alarm. With this set to non-nil and alarm set to zero, alarm will be created and will fire at the event start.

Default
nil
Type
boolean
Since
Org 9.6
[emacs_options]
org-icalendar-force-alarm = false

org-icalendar-combined-name#

Calendar name for the combined iCalendar representing all agenda files.

Default
"OrgMode"
Type
string
[emacs_options]
org-icalendar-combined-name = "OrgMode"

org-icalendar-combined-description#

Calendar description for the combined iCalendar (all agenda files).

Default
""
Type
string
[emacs_options]
org-icalendar-combined-description = ""

org-icalendar-exclude-tags#

Tags that exclude a tree from export. This variable allows specifying different exclude tags from other backends. It can also be set with the ICALENDAR_EXCLUDE_TAGS keyword.

Default
nil
Type
(repeat
 (string :tag "Tag"))
[emacs_options]
org-icalendar-exclude-tags = []

org-icalendar-scheduled-summary-prefix#

String prepended to exported scheduled headlines.

Default
"S: "
Type
string
Since
Org 9.6
[emacs_options]
org-icalendar-scheduled-summary-prefix = "S: "

org-icalendar-deadline-summary-prefix#

String prepended to exported headlines with a deadline.

Default
"DL: "
Type
string
Since
Org 9.6
[emacs_options]
org-icalendar-deadline-summary-prefix = "DL: "

org-icalendar-use-deadline#

Contexts where iCalendar export should use a deadline time stamp.

This is a list with possibly several symbols in it. Valid symbols are:

event-if-todo

Deadlines in TODO entries become calendar events.

event-if-todo-not-done

Deadlines in TODO entries with not-DONE state become events.

event-if-not-todo

Deadlines in non-TODO entries become calendar events.

todo-due

Use deadlines in TODO entries as due-dates.
Default
(event-if-not-todo todo-due)
Type
(set :greedy t
     (const :tag "DEADLINE in non-TODO entries become events" event-if-not-todo)
     (const :tag "DEADLINE in TODO entries become events" event-if-todo)
     (const :tag "DEADLINE in TODO entries with not-DONE state become events" event-if-todo-not-done)
     (const :tag "DEADLINE in TODO entries become due-dates" todo-due))
[emacs_options]
org-icalendar-use-deadline = ["event-if-not-todo", "todo-due"]

org-icalendar-use-scheduled#

Contexts where iCalendar export should use a scheduling time stamp.

This is a list with possibly several symbols in it. Valid symbols are:

event-if-todo

Scheduling time stamps in TODO entries become an event.

event-if-todo-not-done

Scheduling time stamps in TODO entries with not-DONE state
become events.

event-if-not-todo

Scheduling time stamps in non-TODO entries become an event.

todo-start

Scheduling time stamps in TODO entries become start date.  (See
also `org-icalendar-todo-unscheduled-start', which controls the
start date for TODO entries without a scheduling time stamp)
Default
(todo-start)
Type
(set :greedy t
     (const :tag "SCHEDULED timestamps in non-TODO entries become events" event-if-not-todo)
     (const :tag "SCHEDULED timestamps in TODO entries become events" event-if-todo)
     (const :tag "SCHEDULED in TODO entries with not-DONE state become events" event-if-todo-not-done)
     (const :tag "SCHEDULED in TODO entries become start date" todo-start))
[emacs_options]
org-icalendar-use-scheduled = ["todo-start"]

org-icalendar-categories#

Items that should be entered into the "categories" field.

This is a list of symbols, the following are valid:

`category'    The Org mode category of the current file or tree
`todo-state'  The todo state, if any
`local-tags'  The tags, defined in the current line
`all-tags'    All tags, including inherited ones.
Default
(local-tags category)
Type
(repeat
 (choice
  (const :tag "The file or tree category" category)
  (const :tag "The TODO state" todo-state)
  (const :tag "Tags defined in current line" local-tags)
  (const :tag "All tags, including inherited ones" all-tags)))
[emacs_options]
org-icalendar-categories = ["local-tags", "category"]

org-icalendar-with-timestamps#

Non-nil means make an event from plain time stamps.

It can be set to active, active-exclude-diary, inactive, t or nil, in order to make an event from, respectively, only active timestamps (with/without diary timestamps), only inactive ones, all of them or none.

This variable has the same options as org-export-with-timestamps, and takes precedence over it. However, note that this variable applies to all timestamps within an entry, whereas org-export-with-timestamps only applies to timestamps isolated in a paragraph containing only timestamps.

It can also be set with the #+OPTIONS line, e.g. "<:t".

Default
active
Type
(choice
 (const :tag "All timestamps" t)
 (const :tag "Active timestamps, including diary timestamps" active)
 (const :tag "Active timestamps, excluding diary timestamps" active-exclude-diary)
 (const :tag "Only inactive timestamps" inactive)
 (const :tag "No timestamp" nil))
Since
Org 9.8
[emacs_options]
org-icalendar-with-timestamps = "active"

org-icalendar-include-todo#

Non-nil means create VTODO components from TODO items.

Valid values are:

nil                  don't include any task.
t                    include tasks that are not in DONE state.
`unblocked'          include all TODO items that are not blocked.
`all'                include both done and not done items.

\("TODO" ...) include specific TODO keywords.

Default
nil
Type
(choice
 (const :tag "None" nil)
 (const :tag "Unfinished" t)
 (const :tag "Unblocked" unblocked)
 (const :tag "All" all)
 (repeat :tag "Specific TODO keywords"
         (string :tag "Keyword")))
[emacs_options]
org-icalendar-include-todo = []

org-icalendar-todo-unscheduled-start#

Exported start date of unscheduled TODOs.

If org-icalendar-use-scheduled contains todo-start and a task has a "SCHEDULED" timestamp, that is always used as the start date. Otherwise, this variable controls whether a start date is exported and what its value is.

Note that the iCalendar spec RFC 5545 does not generally require tasks to have a start date, except for repeating tasks which do require a start date. However some iCalendar programs ignore the requirement for repeating tasks, and allow repeating deadlines without a matching start date.

This variable has no effect when org-icalendar-include-todo is nil.

Valid values are:

`recurring-deadline-warning'  If deadline repeater present,
                              use `org-deadline-warning-days' as start.
`deadline-warning'            If deadline present,
                              use `org-deadline-warning-days' as start.
`current-datetime'            Use the current date-time as start.
nil                           Never add a start time for unscheduled tasks.
Default
recurring-deadline-warning
Type
(choice
 (const :tag "Warning days if deadline recurring" recurring-deadline-warning)
 (const :tag "Warning days if deadline present" deadline-warning)
 (const :tag "Now" current-datetime)
 (const :tag "No start date" nil))
Since
Org 9.7
[emacs_options]
org-icalendar-todo-unscheduled-start = "recurring-deadline-warning"

org-icalendar-include-bbdb-anniversaries#

Non-nil means a combined iCalendar file should include anniversaries. The anniversaries are defined in the BBDB database.

Default
nil
Type
boolean
[emacs_options]
org-icalendar-include-bbdb-anniversaries = false

org-icalendar-include-sexps#

Non-nil means export to iCalendar files should also cover sexp entries. These are entries like in the diary, but directly in an Org file.

Default
t
Type
boolean
[emacs_options]
org-icalendar-include-sexps = true

org-icalendar-include-body#

Amount of text below headline to be included in iCalendar export. This is a number of characters that should maximally be included. Properties, scheduling and clocking lines will always be removed. The text will be inserted into the DESCRIPTION field.

Default
t
Type
(choice
 (const :tag "Nothing" nil)
 (const :tag "Everything" t)
 (integer :tag "Max characters"))
[emacs_options]
org-icalendar-include-body = true

org-icalendar-store-UID#

Non-nil means store any created UIDs in properties.

The iCalendar standard requires that all entries have a unique identifier. Org will create these identifiers as needed. When this variable is non-nil, the created UIDs will be stored in the ID property of the entry. Then the next time this entry is exported, it will be exported with the same UID, superseding the previous form of it. This is essential for synchronization services.

This variable is not turned on by default because we want to avoid creating a property drawer in every entry if people are only playing with this feature, or if they are only using it locally.

Default
nil
Type
boolean
[emacs_options]
org-icalendar-store-UID = false

org-icalendar-timezone#

The time zone string for iCalendar export. When nil or the empty string, use output from (current-time-zone).

Default
computed when Org loads: (getenv "TZ")
Type
(choice
 (const :tag "Unspecified" nil)
 (string :tag "Time zone"))

org-icalendar-date-time-format#

Format-string for exporting icalendar DATE-TIME.

See format-time-string for a full documentation. The only difference is that org-icalendar-timezone is used for %Z.

Interesting value are:

- ":%Y%m%dT%H%M%S" for local time
- ";TZID=%Z:%Y%m%dT%H%M%S" for local time with explicit timezone
- ":%Y%m%dT%H%M%SZ" for time expressed in Universal Time
Default
":%Y%m%dT%H%M%S"
Type
(choice
 (const :tag "Local time" ":%Y%m%dT%H%M%S")
 (const :tag "Explicit local time" ";TZID=%Z:%Y%m%dT%H%M%S")
 (const :tag "Universal time" ":%Y%m%dT%H%M%SZ")
 (string :tag "Explicit format"))
Since
Emacs 24.1
[emacs_options]
org-icalendar-date-time-format = ":%Y%m%dT%H%M%S"

org-icalendar-ttl#

Time to live for the exported calendar.

Subscribing clients to the exported ics file can derive the time interval to read the file again from the server. One example of such client is Nextcloud calendar, which respects the setting of X-PUBLISHED-TTL in ICS files. Setting org-icalendar-ttl to "PT1H" would advise a server to reload the file every hour.

See https://icalendar.org/iCalendar-RFC-5545/3-8-2-5-duration.html for a complete description of possible specifications of this option. For example, "PT1H" stands for 1 hour and "PT0H27M34S" stands for 0 hours, 27 minutes and 34 seconds.

The default value is nil, which means no such option is set in the ICS file. This option can also be set on a per-document basis with the ICAL-TTL export keyword.

Default
nil
Type
(choice
 (const :tag "No refresh period" nil)
 (const :tag "One hour" "PT1H")
 (const :tag "One day" "PT1D")
 (const :tag "One week" "PT7D")
 (string :tag "Other"))
Since
Org 9.7
[emacs_options]
org-icalendar-ttl = false

ox-koma-letter.el#

org-koma-letter-class-option-file#

Letter Class Option File. This option can also be set with the LCO keyword.

Default
"NF"
Type
string
[emacs_options]
org-koma-letter-class-option-file = "NF"

org-koma-letter-author#

Sender's name.

This variable defaults to calling the function user-full-name which just returns the current function user-full-name. Alternatively a string, nil or a function may be given. Functions must return a string.

This option can also be set with the AUTHOR keyword.

Default
user-full-name
Type
(radio
 (function-item user-full-name)
 (string)
 (function)
 (const :tag "Do not export author" nil))

org-koma-letter-email#

Sender's email address.

This variable defaults to the value org-koma-letter-email which returns user-mail-address. Alternatively a string, nil or a function may be given. Functions must return a string.

This option can also be set with the EMAIL keyword.

Default
org-koma-letter-email
Type
(radio
 (function-item org-koma-letter-email)
 (string)
 (function)
 (const :tag "Do not export email" nil))

org-koma-letter-from-address#

Sender's address, as a string. This option can also be set with one or more FROM_ADDRESS keywords.

Default
""
Type
string
[emacs_options]
org-koma-letter-from-address = ""

org-koma-letter-phone-number#

Sender's phone number, as a string. This option can also be set with the PHONE_NUMBER keyword.

Default
""
Type
string
[emacs_options]
org-koma-letter-phone-number = ""

org-koma-letter-url#

Sender's URL, e. g., the URL of her homepage. This option can also be set with the URL keyword.

Default
""
Type
string
[emacs_options]
org-koma-letter-url = ""

Commands for inserting the sender's logo, e. g., \includegraphics{logo}. This option can also be set with the FROM_LOGO keyword.

Default
""
Type
string
[emacs_options]
org-koma-letter-from-logo = ""

org-koma-letter-place#

Place from which the letter is sent, as a string. This option can also be set with the PLACE keyword.

Default
""
Type
string
[emacs_options]
org-koma-letter-place = ""

org-koma-letter-location#

Sender's extension field, as a string.

This option can also be set with the LOCATION keyword. Moreover, when:

(1) Either `org-koma-letter-prefer-special-headings' is non-nil
    or there is no LOCATION keyword or the LOCATION keyword is
    empty;
(2) the letter contains a headline with the special
    tag "location";

then the location will be set as the content of the location special heading.

The location field is typically printed right of the address field (See Figure 4.9. in the English manual of 2015-10-03).

Default
""
Type
string
[emacs_options]
org-koma-letter-location = ""

org-koma-letter-opening#

Letter's opening, as a string.

This option can also be set with the OPENING keyword. Moreover, when:

(1) Either `org-koma-letter-prefer-special-headings' is non-nil
    or the CLOSING keyword is empty
(2) `org-koma-letter-headline-is-opening-maybe' is non-nil;
(3) the letter contains a headline without a special
    tag (e.g. "to" or "ps");

then the opening will be implicitly set as the untagged headline title.

Default
""
Type
string
[emacs_options]
org-koma-letter-opening = ""

org-koma-letter-closing#

Letter's closing, as a string. This option can also be set with the CLOSING keyword. Moreover, when:

(1) Either `org-koma-letter-prefer-special-headings' is non-nil
    or the CLOSING keyword is empty;
(2) `org-koma-letter-headline-is-opening-maybe' is non-nil;
(3) the letter contains a headline with the special
    tag "closing";

then the opening will be set as the title of the closing special heading title.

Default
""
Type
string
[emacs_options]
org-koma-letter-closing = ""

org-koma-letter-signature#

Signature, as a string. This option can also be set with the SIGNATURE keyword. Moreover, when:

(1) Either `org-koma-letter-prefer-special-headings' is non-nil
    or there is no CLOSING keyword or the CLOSING keyword is empty;
(2) `org-koma-letter-headline-is-opening-maybe' is non-nil;
(3) the letter contains a headline with the special
    tag "closing";

then the signature will be set as the content of the closing special heading.

Note if the content is empty the signature will not be set.

Default
""
Type
string
[emacs_options]
org-koma-letter-signature = ""

org-koma-letter-prefer-special-headings#

Non-nil means prefer headlines over keywords for TO and FROM. This option can also be set with the OPTIONS keyword, e.g.: "special-headings:t".

Default
nil
Type
boolean
[emacs_options]
org-koma-letter-prefer-special-headings = false

org-koma-letter-subject-format#

Non-nil means include the subject.

Support formatting options.

When t, insert a subject using default options. When nil, do not insert a subject at all. It can also be a list of symbols among the following ones:

`afteropening'  Subject after opening
`beforeopening' Subject before opening
`centered'      Subject centered
`left'          Subject left-justified
`right'         Subject right-justified
`titled'        Add title/description to subject
`underlined'    Set subject underlined
`untitled'      Do not add title/description to subject

Please refer to the KOMA-script manual (Table 4.16. in the English manual of 2012-07-22).

This option can also be set with the OPTIONS keyword, e.g.: "subject:(underlined centered)".

Default
t
Type
(choice
 (const :tag "No export" nil)
 (const :tag "Default options" t)
 (set :tag "Configure options"
      (const :tag "Subject after opening" afteropening)
      (const :tag "Subject before opening" beforeopening)
      (const :tag "Subject centered" centered)
      (const :tag "Subject left-justified" left)
      (const :tag "Subject right-justified" right)
      (const :tag "Add title or description to subject" underlined)
      (const :tag "Set subject underlined" titled)
      (const :tag "Do not add title or description to subject" untitled)))
[emacs_options]
org-koma-letter-subject-format = true

org-koma-letter-use-backaddress#

Non-nil prints return address in line above to address. This option can also be set with the OPTIONS keyword, e.g.: "backaddress:t".

Default
nil
Type
boolean
[emacs_options]
org-koma-letter-use-backaddress = false

org-koma-letter-use-foldmarks#

Configure appearance of folding marks.

When t, activate default folding marks. When nil, do not insert folding marks at all. It can also be a list of symbols among the following ones:

`B'  Activate upper horizontal mark on left paper edge
`b'  Deactivate upper horizontal mark on left paper edge

`H'  Activate all horizontal marks on left paper edge
`h'  Deactivate all horizontal marks on left paper edge

`L'  Activate left vertical mark on upper paper edge
`l'  Deactivate left vertical mark on upper paper edge

`M'  Activate middle horizontal mark on left paper edge
`m'  Deactivate middle horizontal mark on left paper edge

`P'  Activate punch or center mark on left paper edge
`p'  Deactivate punch or center mark on left paper edge

`T'  Activate lower horizontal mark on left paper edge
 t   Deactivate lower horizontal mark on left paper edge

`V'  Activate all vertical marks on upper paper edge
`v'  Deactivate all vertical marks on upper paper edge

This option can also be set with the OPTIONS keyword, e.g.: "foldmarks:(b l m t)".

Default
t
Type
(choice
 (const :tag "Activate default folding marks" t)
 (const :tag "Deactivate folding marks" nil)
 (set :tag "Configure folding marks"
      (const :tag "Activate upper horizontal mark on left paper edge" B)
      (const :tag "Deactivate upper horizontal mark on left paper edge" b)
      (const :tag "Activate all horizontal marks on left paper edge" H)
      (const :tag "Deactivate all horizontal marks on left paper edge" h)
      (const :tag "Activate left vertical mark on upper paper edge" L)
      (const :tag "Deactivate left vertical mark on upper paper edge" l)
      (const :tag "Activate middle horizontal mark on left paper edge" M)
…
[emacs_options]
org-koma-letter-use-foldmarks = true

org-koma-letter-use-phone#

Non-nil prints sender's phone number. This option can also be set with the OPTIONS keyword, e.g.: "phone:t".

Default
nil
Type
boolean
[emacs_options]
org-koma-letter-use-phone = false

org-koma-letter-use-url#

Non-nil prints sender's URL. This option can also be set with the OPTIONS keyword, e.g.: "url:t".

Default
nil
Type
boolean
[emacs_options]
org-koma-letter-use-url = false

Non-nil prints sender's FROM_LOGO. This option can also be set with the OPTIONS keyword, e.g.: "from-logo:t".

Default
nil
Type
boolean
[emacs_options]
org-koma-letter-use-from-logo = false

org-koma-letter-use-email#

Non-nil prints sender's email address. This option can also be set with the OPTIONS keyword, e.g.: "email:t".

Default
nil
Type
boolean
[emacs_options]
org-koma-letter-use-email = false

org-koma-letter-use-place#

Non-nil prints the letter's place next to the date. This option can also be set with the OPTIONS keyword, e.g.: "place:nil".

Default
t
Type
boolean
[emacs_options]
org-koma-letter-use-place = true

org-koma-letter-default-class#

Default class for org-koma-letter. The value must be a member of org-latex-classes.

Default
"default-koma-letter"
Type
string
[emacs_options]
org-koma-letter-default-class = "default-koma-letter"

org-koma-letter-headline-is-opening-maybe#

Non-nil means a headline may be used as an opening and closing. See also org-koma-letter-opening and org-koma-letter-closing.

Default
t
Type
boolean
[emacs_options]
org-koma-letter-headline-is-opening-maybe = true

org-koma-letter-prefer-subject#

Non-nil means title should be interpreted as subject if subject is missing. This option can also be set with the OPTIONS keyword, e.g. "title-subject:t".

Default
nil
Type
boolean
[emacs_options]
org-koma-letter-prefer-subject = false

ox-latex.el#

org-latex-caption-above#

When non-nil, place caption string at the beginning of elements. Otherwise, place it near the end. When value is a list of symbols, put caption above selected elements only. Allowed symbols are: image, table, src-block and special-block.

Default
(table)
Type
(choice
 (const :tag "For all elements" t)
 (const :tag "For no element" nil)
 (set :tag "For the following elements only" :greedy t
      (const :tag "Images" image)
      (const :tag "Tables" table)
      (const :tag "Source code" src-block)
      (const :tag "Special blocks" special-block)))
Since
Org 8.3
[emacs_options]
org-latex-caption-above = ["table"]

org-latex-prefer-user-labels#

Use user-provided labels instead of internal ones when non-nil.

When this variable is non-nil, Org will use the value of CUSTOM_ID property, NAME keyword or Org target as the key for the \label commands generated.

By default, Org generates its own internal labels during LaTeX export. This process ensures that the \label keys are unique and valid, but it means the keys are not available in advance of the export process.

Setting this variable gives you control over how Org generates labels during LaTeX export, so that you may know their keys in advance. One reason to do this is that it allows you to refer to various elements using a single label both in Org's link syntax and in embedded LaTeX code.

For example, when this variable is non-nil, a headline like this:

** Some section
   :PROPERTIES:
   :CUSTOM_ID: sec:foo
   :END:
This is section [[#sec:foo]].
#+BEGIN_EXPORT latex
And this is still section \ref{sec:foo}.
#+END_EXPORT

will be exported to LaTeX as:

\subsection{Some section}
\label{sec:foo}
This is section \ref{sec:foo}.
And this is still section \ref{sec:foo}.

A non-default value of org-latex-reference-command will change the command (\ref by default) used to create label references.

Note, however, that setting this variable introduces a limitation on the possible values for CUSTOM_ID and NAME. When this variable is non-nil, Org passes their value to \label unchanged. You are responsible for ensuring that the value is a valid LaTeX \label key, and that no other \label commands with the same key appear elsewhere in your document. (Keys may contain letters, numbers, and the following punctuation: _ . - :.) There are no such limitations on CUSTOM_ID and NAME when this variable is nil.

For headlines that do not define the CUSTOM_ID property or elements without a NAME, Org will continue to use its default labeling scheme to generate labels and resolve links into proper references.

Default
nil
Type
boolean
Since
Org 8.3
[emacs_options]
org-latex-prefer-user-labels = false

org-latex-reference-command#

Format string that takes a reference to produce a LaTeX reference command.

The reference is a label such as sec:intro. A format string of "\ref{%s}" produces numbered references and will always work. It may be desirable to make use of a package such as hyperref or cleveref and then change the format string to "\autoref{%s}" or "\cref{%s}" for example.

Default
"\\ref{%s}"
Type
string
Since
Org 9.5
[emacs_options]
org-latex-reference-command = "\\ref{%s}"

org-latex-default-class#

The default LaTeX class.

Default
"article"
Type
(string :tag "LaTeX class")
[emacs_options]
org-latex-default-class = "article"

org-latex-classes#

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.

Default
(("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}")))
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)")
…

org-latex-inputenc-alist#

Alist of inputenc coding system names, and what should really be used. For example, adding an entry

("utf8" . "utf8x")

will cause \usepackage[utf8x]{inputenc} to be used for buffers that are written as utf8 files.

Default
nil
Type
(repeat
 (cons
  (string :tag "Derived from buffer")
  (string :tag "Use this instead")))
[emacs_options]
org-latex-inputenc-alist = []

org-latex-title-command#

The command used to insert the title just after \begin{document}.

This format string may contain these elements:

%a for AUTHOR keyword
%t for TITLE keyword
%s for SUBTITLE keyword
%k for KEYWORDS line
%d for DESCRIPTION line
%c for CREATOR line
%l for Language keyword
%L for capitalized language keyword
%D for DATE keyword

If you need to use a "%" character, you need to escape it like that: "%%".

Setting :latex-title-command in publishing projects will take precedence over this variable.

Default
"\\maketitle"
Type
(string :tag "Format string")
[emacs_options]
org-latex-title-command = "\\maketitle"

org-latex-subtitle-format#

Format string used for transcoded subtitle. The format string should have at most one "%s"-expression, which is replaced with the subtitle.

Default
"\\\\\\medskip\n\\large %s"
Type
(string :tag "Format string")
Since
Org 8.3
[emacs_options]
org-latex-subtitle-format = "\\\\\\medskip\n\\large %s"

org-latex-subtitle-separate#

Non-nil means the subtitle is not typeset as part of title.

Default
nil
Type
boolean
Since
Org 8.3
[emacs_options]
org-latex-subtitle-separate = false

org-latex-toc-command#

LaTeX command to set the table of contents, list of figures, etc. This command only applies to the table of contents generated with the toc:t, toc:1, toc:2, toc:3, ... options, not to those generated with the #+TOC keyword.

Default
"\\tableofcontents\n\n"
Type
string
[emacs_options]
org-latex-toc-command = "\\tableofcontents\n\n"

org-latex-hyperref-template#

Template for hyperref package options.

This format string may contain these elements:

%a for AUTHOR keyword
%t for TITLE keyword
%s for SUBTITLE keyword
%k for KEYWORDS line
%d for DESCRIPTION line
%c for CREATOR line
%l for Language keyword
%L for capitalized language keyword
%D for DATE keyword

If you need to use a "%" character, you need to escape it like that: "%%".

As a special case, a nil value prevents template from being inserted.

Setting :latex-hyperref-template in publishing projects will take precedence over this variable.

Default
"\\hypersetup{\n pdfauthor={%a},\n pdftitle={%t},\n pdfkeywords={%k},\n pdfsubject={%d},\n pdfcreator={%c},\n pdflang={%L}}\n"
Type
(choice
 (const :tag "No template" nil)
 (string :tag "Format string"))
Since
Org 8.3
[emacs_options]
org-latex-hyperref-template = "\\hypersetup{\n pdfauthor={%a},\n pdftitle={%t},\n pdfkeywords={%k},\n pdfsubject={%d},\n pdfcreator={%c},\n pdflang={%L}}\n"

org-latex-format-headline-function#

Function for formatting the headline's text.

This function will be called with six arguments:

TODO      the todo keyword (string or nil)

TODO-TYPE the type of todo (symbol: todo, done, nil)

PRIORITY  the priority of the headline (integer or nil)
TEXT      the main headline text (string)
TAGS      the tags (list of strings or nil)
INFO      the export options (plist)

The function result will be used in the section format string.

Default
org-latex-format-headline-default-function
Type
function
Since
Org 8.0
[emacs_options]
org-latex-format-headline-function = "org-latex-format-headline-default-function"

org-latex-default-footnote-command#

Default command used to insert footnotes. Customize this command if the LaTeX class provides a different command like "\sidenote{%s%s}" that you want to use. The value will be passed as an argument to format as the following

(format org-latex-default-footnote-command
   footnote-description footnote-label)
Default
"\\footnote{%s%s}"
Type
string
Since
Org 9.7
[emacs_options]
org-latex-default-footnote-command = "\\footnote{%s%s}"

org-latex-footnote-separator#

Text used to separate footnotes.

Default
"\\textsuperscript{,}\\,"
Type
string
[emacs_options]
org-latex-footnote-separator = "\\textsuperscript{,}\\,"

org-latex-footnote-defined-format#

Format string used to format reference to footnote already defined.

%s will be replaced by the label of the referred footnote.
Default
"\\textsuperscript{\\ref{%s}}"
Type
(choice
 (const :tag "Use plain superscript (default)" "\\textsuperscript{\\ref{%s}}")
 (const :tag "Use Memoir/KOMA-Script footref" "\\footref{%s}")
 (string :tag "Other format string"))
Since
Org 9.0
[emacs_options]
org-latex-footnote-defined-format = "\\textsuperscript{\\ref{%s}}"

org-latex-active-timestamp-format#

A format string to be applied to active timestamps.

Default
"\\textit{%s}"
Type
string
[emacs_options]
org-latex-active-timestamp-format = "\\textit{%s}"

org-latex-inactive-timestamp-format#

A format string to be applied to inactive timestamps.

Default
"\\textit{%s}"
Type
string
[emacs_options]
org-latex-inactive-timestamp-format = "\\textit{%s}"

org-latex-diary-timestamp-format#

A format string to be applied to diary timestamps.

Default
"\\textit{%s}"
Type
string
[emacs_options]
org-latex-diary-timestamp-format = "\\textit{%s}"

org-latex-images-centered#

When non-nil, images are centered.

Default
t
Type
boolean
Since
Org 9.0
[emacs_options]
org-latex-images-centered = true

org-latex-image-default-option#

Default option for images.

Default
""
Type
string
Since
Org 8.0
[emacs_options]
org-latex-image-default-option = ""

org-latex-image-default-width#

Default width for images. This value will not be used if a height is provided.

Default
".9\\linewidth"
Type
string
Since
Org 8.0
[emacs_options]
org-latex-image-default-width = ".9\\linewidth"

org-latex-image-default-scale#

Default scale for images. This value will not be used if a width or a scale is provided, or if the image is wrapped within a "wrapfigure" environment. Scale overrides width and height.

Default
""
Type
string
Since
Org 9.3
[emacs_options]
org-latex-image-default-scale = ""

org-latex-image-default-height#

Default height for images. This value will not be used if a width is provided, or if the image is wrapped within a "figure" or "wrapfigure" environment.

Default
""
Type
string
Since
Org 8.0
[emacs_options]
org-latex-image-default-height = ""

org-latex-default-figure-position#

Default position for LaTeX figures.

Default
"htbp"
Type
string
Since
Org 9.0
[emacs_options]
org-latex-default-figure-position = "htbp"

org-latex-inline-image-rules#

Rules characterizing image files that can be inlined into LaTeX.

A rule consists in an association whose key is the type of link to consider, and value is a regexp that will be matched against link's path.

Note that, by default, the image extension *actually* allowed depend on the way the LaTeX file is processed. When used with pdflatex, pdf, jpg and png images are OK. When processing through dvi to Postscript, only ps and eps are allowed. The default we use here encompasses both.

Default
(("file" . "\\.\\(?:eps\\|jp\\(?:e?g\\)\\|p\\(?:df\\|gf\\|ng\\|s\\)\\|svg\\|tikz\\)\\'")
 ("https" . "\\.\\(?:eps\\|jp\\(?:e?g\\)\\|p\\(?:gf\\|ng\\|s\\)\\|svg\\|tikz\\)\\'"))
Type
(alist :key-type
       (string :tag "Type")
       :value-type
       (regexp :tag "Path"))
Since
Org 9.6

Format string for links with unknown path type.

Default
"\\texttt{%s}"
Type
string
[emacs_options]
org-latex-link-with-unknown-path-format = "\\texttt{%s}"

org-latex-default-table-environment#

Default environment used to build tables.

Default
"tabular"
Type
string
Since
Org 8.0
[emacs_options]
org-latex-default-table-environment = "tabular"

org-latex-default-quote-environment#

Default environment used to quote blocks.

Default
"quote"
Type
string
Since
Org 9.5
[emacs_options]
org-latex-default-quote-environment = "quote"

org-latex-default-table-mode#

Default mode for tables.

Value can be a symbol among:

`table' Regular LaTeX table.

`math' In this mode, every cell is considered as being in math
   mode and the complete table will be wrapped within a math
   environment.  It is particularly useful to write matrices.

`inline-math' This mode is almost the same as `math', but the
   math environment will be inlined.

`verbatim' The table is exported as it appears in the Org
   buffer, within a verbatim environment.

This value can be overridden locally with, i.e. ":mode math" in LaTeX attributes.

When modifying this variable, it may be useful to change org-latex-default-table-environment accordingly.

Default
table
Type
(choice
 (const :tag "Table" table)
 (const :tag "Matrix" math)
 (const :tag "Inline matrix" inline-math)
 (const :tag "Verbatim" verbatim))
Since
Org 8.0
[emacs_options]
org-latex-default-table-mode = "table"

org-latex-tables-centered#

When non-nil, tables are exported in a center environment.

Default
t
Type
boolean
[emacs_options]
org-latex-tables-centered = true

org-latex-tables-booktabs#

When non-nil, display tables in a formal "booktabs" style. This option assumes that the "booktabs" package is properly loaded in the header of the document. This value can be ignored locally with ":booktabs t" and ":booktabs nil" LaTeX attributes.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-latex-tables-booktabs = false

org-latex-table-scientific-notation#

Format string to display numbers in scientific notation.

The format should have "%s" twice, for mantissa and exponent (i.e., "%s\×10%s").

When nil, no transformation is made.

Default
nil
Type
(choice
 (string :tag "Format string")
 (const :tag "No formatting" nil))
Since
Org 8.0
[emacs_options]
org-latex-table-scientific-notation = false

org-latex-text-markup-alist#

Alist of LaTeX expressions to convert text markup.

The key must be a symbol among bold, code, italic, strike-through, underline and verbatim. The value is a formatting string to wrap fontified text with.

Value can also be set to the following symbols: verb and protectedtexttt. For the former, Org will use "\verb" to create a format string and select a delimiter character that isn't in the string. For the latter, Org will use "\texttt" to typeset and try to protect special characters.

If no association can be found for a given markup, text will be returned as-is.

Default
((bold . "\\textbf{%s}")
 (code . protectedtexttt)
 (italic . "\\emph{%s}")
 (strike-through . "\\sout{%s}")
 (underline . "\\uline{%s}")
 (verbatim . protectedtexttt))
Type
alist
Since
Org 8.3

org-latex-format-drawer-function#

Function called to format a drawer in LaTeX code.

The function must accept two parameters:

NAME      the drawer name, like "LOGBOOK"
CONTENTS  the contents of the drawer.

The function should return the string to be exported.

The default function simply returns the value of CONTENTS.

Default
#'(lambda
    (_ contents)
    contents)
Type
function
Since
Org 8.3

org-latex-format-inlinetask-function#

Function called to format an inlinetask in LaTeX code.

The function must accept seven parameters:

TODO      the todo keyword (string or nil)
TODO-TYPE the todo type (symbol: `todo', `done', nil)
PRIORITY  the inlinetask priority (integer or nil)
NAME      the inlinetask name (string)
TAGS      the inlinetask tags (list of strings or nil)
CONTENTS  the contents of the inlinetask (string or nil)
INFO      the export options (plist)

The function should return the string to be exported.

Default
org-latex-format-inlinetask-default-function
Type
function
Since
Org 8.3
[emacs_options]
org-latex-format-inlinetask-function = "org-latex-format-inlinetask-default-function"

org-latex-src-block-backend#

Backend used to generate source code listings.

This sets the behavior for fontifying source code, possibly even with color. There are four implementations of this functionality you may choose from (ordered from least to most capable):

  1. Verbatim
  2. Listings
  3. Minted
  4. Engraved

The first two options provide basic syntax highlighting (listings), or none at all (verbatim).

When using listings, you also need to make use of LaTeX package "listings". The "xcolor" LaTeX package is also needed for color management. These can simply be added to org-latex-packages-alist, using customize or something like:

(require 'ox-latex)
(add-to-list 'org-latex-packages-alist '("" "listings"))
(add-to-list 'org-latex-packages-alist '("" "xcolor"))

There are two further options for more comprehensive fontification. The first can be set with,

(setq org-latex-src-block-backend 'minted)

which causes source code to be exported using the LaTeX package minted 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 '("newfloat" "minted"))

In addition, it is necessary to install pygments (URL https://pygments.org>), and to configure the variable org-latex-pdf-process so that the -shell-escape option is passed to pdflatex.

The minted choice has possible repercussions on the preview of latex fragments (see org-latex-preview). If you run into previewing problems, please consult URL https://orgmode.org/worg/org-tutorials/org-latex-preview.html.

The most comprehensive option can be set with,

(setq org-latex-src-block-backend 'engraved)

which causes source code to be run through engrave-faces-latex-buffer, which generates colorings using Emacs's font-lock information. This requires the Emacs package engrave-faces (available from GNU ELPA), and the LaTeX package fvextra be installed.

The styling of the engraved result can be customized with org-latex-engraved-preamble and org-latex-engraved-options. The default preamble also uses the LaTeX package tcolorbox in addition to fvextra.

Default
verbatim
Type
(choice
 (const :tag "Use listings" listings)
 (const :tag "Use minted" minted)
 (const :tag "Use engrave-faces-latex" engraved)
 (const :tag "Export verbatim" verbatim))
Since
Org 9.6
[emacs_options]
org-latex-src-block-backend = "verbatim"

org-latex-listings-langs#

Alist mapping languages to their listing language counterpart. The key is a symbol, the major mode symbol without the "-mode". The value is the string that should be inserted as the language parameter for the listings package. If the mode name and the listings name are the same, the language does not need an entry in this list - but it does not hurt if it is present.

Default
((emacs-lisp "Lisp")
 (lisp "Lisp")
 (clojure "Lisp")
 (c "C")
 (cc "C++")
 (fortran "fortran")
 (perl "Perl")
 (cperl "Perl")
 (python "Python")
 (ruby "Ruby")
 (html "HTML")
 (xml "XML")
 (tex "TeX")
 (latex "[LaTeX]TeX")
 (shell-script "bash")
 (gnuplot "Gnuplot")
 (ocaml "[Objective]Caml")
 (caml "Caml")
 (sql "SQL")
…
Type
(repeat
 (list
  (symbol :tag "Major mode       ")
  (string :tag "Listings language")))
Since
Org 8.3

org-latex-listings-src-omit-language#

Discard src block language parameter in listings.

Set this option to t to omit the "language=" in the parameters to "lstlisting" environments when exporting an src block.

This is necessary, for example, when the "fancyvrb" package is used instead of "listings":

#+LATEX_HEADER: \RequirePackage{fancyvrb}
#+LATEX_HEADER: \DefineVerbatimEnvironment{verbatim}{Verbatim}{...}
#+LATEX_HEADER: \DefineVerbatimEnvironment{lstlisting}{Verbatim}{...}
Default
nil
Type
boolean
Since
Org 9.7
[emacs_options]
org-latex-listings-src-omit-language = false

org-latex-listings-options#

Association list of options for the latex listings package.

These options are supplied as a comma-separated list to the \lstlisting command. Each element of the association list should be a list or cons cell containing two strings: the name of the option, and the value. For example,

(setq org-latex-listings-options
  '(("basicstyle" "\\small")
    ("keywordstyle" "\\color{black}\\bfseries\\underbar")))
; or
(setq org-latex-listings-options
  '(("basicstyle" . "\\small")
    ("keywordstyle" . "\\color{black}\\bfseries\\underbar")))

will typeset the code in a small size font with underlined, bold black keywords.

Note that the same options will be applied to blocks of all languages. If you need block-specific options, you may use the following syntax:

#+ATTR_LATEX: :options key1=value1,key2=value2
#+BEGIN_SRC <LANG>
...
#+END_SRC
Default
nil
Type
(repeat
 (list
  (string :tag "Listings option name ")
  (string :tag "Listings option value")))
[emacs_options]
org-latex-listings-options = []

org-latex-minted-langs#

Alist mapping languages to their minted language counterpart. The key is a symbol, the major mode symbol without the "-mode". The value is the string that should be inserted as the language parameter for the minted package. If the mode name and the listings name are the same, the language does not need an entry in this list - but it does not hurt if it is present.

Note that minted uses all lower case for language identifiers, and that the full list of language identifiers can be obtained with:

pygmentize -L lexers
Default
((emacs-lisp "common-lisp")
 (cc "c++")
 (cperl "perl")
 (shell-script "bash")
 (caml "ocaml"))
Type
(repeat
 (list
  (symbol :tag "Major mode     ")
  (string :tag "Minted language")))

org-latex-minted-options#

Association list of options for the latex minted package.

These options are supplied within square brackets in

\begin{minted} environments.  Each element of the alist should

be a list or cons cell containing two strings: the name of the option, and the value. For example,

(setq org-latex-minted-options
  '(("bgcolor" "bg") ("frame" "lines")))
; or
(setq org-latex-minted-options
  '(("bgcolor" . "bg") ("frame" . "lines")))

will result in source blocks being exported with

\begin{minted}[bgcolor=bg,frame=lines]{<LANG>}

as the start of the minted environment. Note that the same options will be applied to blocks of all languages. If you need block-specific options, you may use the following syntax:

#+ATTR_LATEX: :options key1=value1,key2=value2
#+BEGIN_SRC <LANG>
...
#+END_SRC
Default
nil
Type
(repeat
 (list
  (string :tag "Minted option name ")
  (string :tag "Minted option value")))
[emacs_options]
org-latex-minted-options = []

org-latex-custom-lang-environments#

Alist mapping languages to language-specific LaTeX environments.

It is used during export of source blocks by the listings and minted LaTeX packages. The environment may be a simple string, composed of only letters and numbers. In this case, the string is directly the name of the LaTeX environment to use. The environment may also be a format string. In this case the format string will be directly exported. This format string may contain these elements:

%s for the formatted source
%c for the caption
%f for the float attribute
%l for an appropriate label
%o for the LaTeX attributes

For example,

(setq org-latex-custom-lang-environments
   '((python "pythoncode")
     (ocaml "\\begin{listing}

\\begin{minted}[%o]{ocaml}

%s\\end{minted}

\\caption{%c} \\label{%l}")))

would have the effect that if Org encounters a Python source block during LaTeX export it will produce

\begin{pythoncode}
<source block body>
\end{pythoncode}

and if Org encounters an Ocaml source block during LaTeX export it will produce

\begin{listing}
\begin{minted}[<attr_latex options>]{ocaml}
<source block body>
\end{minted}
\caption{<caption>}
\label{<label>}
\end{listing}
Default
nil
Type
(repeat
 (list
  (symbol :tag "Language name                    ")
  (string :tag "Environment name or format string")))
Since
Org 9.0
[emacs_options]
org-latex-custom-lang-environments = []

org-latex-engraved-preamble#

Preamble content injected when using engrave-faces-latex for source blocks. This is relevant when org-latex-src-block-backend is set to engraved.

There is quite a lot of flexibility in what this preamble can be, as long as it:

  • Loads the fvextra package.
  • Loads the package xcolor (if it is not already loaded elsewhere).
  • Defines a "Code" environment (note the capital C), which all "Verbatim" environments (provided by fvextra) will be wrapped with.

In the default value the colors "EFD" and "EfD" are provided as they are respectively the foreground and background colors, just in case they aren't provided by the generated preamble, so we can assume they are always set.

Within this preamble there are two recognized macro-like placeholders:

[FVEXTRA-SETUP]

[LISTINGS-SETUP]

Unless you have a very good reason, both of these placeholders should be included in the preamble.

FVEXTRA-SETUP sets fvextra's defaults according to org-latex-engraved-options, and LISTINGS-SETUP creates the listings environment used for captioned or floating code blocks, as well as defining \listoflistings.

Default
"\\usepackage{fvextra}\n\n[FVEXTRA-SETUP]\n\n% Make line numbers smaller and grey.\n\\renewcommand\\theFancyVerbLine{\\footnotesize\\color{black!40!white}\\arabic{FancyVerbLine}}\n\n\\usepackage{xcolor}\n\n% In case engrave-faces-latex-gen-preamble has not been run.\n\\providecolor{EfD}{HTML}{f7f7f7}\n\\providecolor{EFD}{HTML}{28292e}\n\n% Define a Code environment to prettily wrap the fontified code.\n\\usepackage[breakable,xparse]{tcolorbox}\n\\DeclareTColorBox[]{Code}{o}%\n{colback=EfD!98!EFD, colframe=EfD!95!EFD,\n  fontupper=\\footnotesize\\setlength{\\fboxsep}{0pt},\n  colupper=EFD,\n  IfNoValueTF={#1}%\n  {boxsep=2pt, arc=2.5pt, outer arc=2.5pt,\n    boxrule=0.5pt, left=2pt}%\n  {boxsep=2.5pt, arc=0pt, outer arc=0pt,\n    boxrule=0pt, leftrule=1.5pt, left=0.5pt},\n  right=2pt, top=1pt, bottom=0.5pt,\n  breakable}\n\n[LISTINGS-SETUP]"
Type
string
Since
Org 9.6
[emacs_options]
org-latex-engraved-preamble = "\\usepackage{fvextra}\n\n[FVEXTRA-SETUP]\n\n% Make line numbers smaller and grey.\n\\renewcommand\\theFancyVerbLine{\\footnotesize\\color{black!40!white}\\arabic{FancyVerbLine}}\n\n\\usepackage{xcolor}\n\n% In case engrave-faces-latex-gen-preamble has not been run.\n\\providecolor{EfD}{HTML}{f7f7f7}\n\\providecolor{EFD}{HTML}{28292e}\n\n% Define a Code environment to prettily wrap the fontified code.\n\\usepackage[breakable,xparse]{tcolorbox}\n\\DeclareTColorBox[]{Code}{o}%\n{colback=EfD!98!EFD, colframe=EfD!95!EFD,\n  fontupper=\\footnotesize\\setlength{\\fboxsep}{0pt},\n  colupper=EFD,\n  IfNoValueTF={#1}%\n  {boxsep=2pt, arc=2.5pt, outer arc=2.5pt,\n    boxrule=0.5pt, left=2pt}%\n  {boxsep=2.5pt, arc=0pt, outer arc=0pt,\n    boxrule=0pt, leftrule=1.5pt, left=0.5pt},\n  right=2pt, top=1pt, bottom=0.5pt,\n  breakable}\n\n[LISTINGS-SETUP]"

org-latex-engraved-options#

Association list of options for the latex fvextra package when engraving code.

These options are set using \fvset{...} in the preamble of the LaTeX export. Each element of the alist should be a list or cons cell containing two strings: the name of the option, and the value. For example,

(setq org-latex-engraved-options
  '(("highlightcolor" "green") ("frame" "lines")))
; or
(setq org-latex-engraved-options
  '(("highlightcolor" . "green") ("frame" . "lines")))

will result in the following LaTeX in the preamble

\fvset{%

bgcolor=bg,
frame=lines}

This will affect all fvextra environments. Note that the same options will be applied to all blocks. If you need block-specific options, you may use the following syntax:

#+ATTR_LATEX: :options key1=value1,key2=value2
#+BEGIN_SRC <LANG>
...
#+END_SRC
Default
(("commandchars" . "\\\\\\{\\}")
 ("highlightcolor" . "white!95!black!80!blue")
 ("breaklines" . "true")
 ("breaksymbol" . "\\color{white!60!black}\\tiny\\ensuremath{\\hookrightarrow}"))
Type
(alist :key-type
       (string :tag "option")
       :value-type
       (string :tag "value"))
Since
Org 9.6

org-latex-engraved-theme#

The theme that should be used for engraved code, when non-nil. This can be set to any theme defined in engrave-faces-themes (from the engrave-faces package) or loadable by Emacs. When set to t, the current Emacs theme is used. When nil, no theme is applied.

Default
nil
Type
symbol
Since
Org 9.6
[emacs_options]
org-latex-engraved-theme = false

org-latex-compiler-file-string#

LaTeX compiler format-string. See also org-latex-compiler.

Default
"%% Intended LaTeX compiler: %s\n"
Type
(choice
 (const :tag "Comment" "%% Intended LaTeX compiler: %s\n")
 (const :tag "latex-mode file variable" "%% -*- latex-run-command: %s -*-\n")
 (const :tag "AUCTeX file variable" "%% -*- LaTeX-command: %s -*-\n")
 (string :tag "custom format" "%% %s"))
Since
Org 9.0
[emacs_options]
org-latex-compiler-file-string = "%% Intended LaTeX compiler: %s\n"

org-latex-compiler#

LaTeX compiler to use.

Must be an element in org-latex-compilers or the empty quote. Can also be set in buffers via #+LATEX_COMPILER. See also org-latex-compiler-file-string.

Default
"pdflatex"
Type
(choice
 (const :tag "pdfLaTeX" "pdflatex")
 (const :tag "XeLaTeX" "xelatex")
 (const :tag "LuaLaTeX" "lualatex")
 (const :tag "Unset" ""))
Since
Org 9.0
[emacs_options]
org-latex-compiler = "pdflatex"

org-latex-bib-compiler#

Command to process a LaTeX file's bibliography.

The shorthand %bib in org-latex-pdf-process is replaced with this value.

A better approach is to use a compiler suit such as latexmk.

Default
"bibtex"
Type
(choice
 (const :tag "BibTeX" "bibtex")
 (const :tag "Biber" "biber")
 (string :tag "Other process"))
Since
Org 9.0
[emacs_options]
org-latex-bib-compiler = "bibtex"

org-latex-pdf-process#

Commands to process a LaTeX file to a PDF file.

The command output will be parsed to extract compilation errors and warnings according to org-latex-known-warnings.

This is a list of strings, each of them will be given to the shell as a command. %f in the command will be replaced by the relative file name, %F by the absolute file name, %b by the file base name (i.e. without directory and extension parts), %o by the base directory of the file, %O by the absolute file name of the output file, %latex is the LaTeX compiler (see org-latex-compiler), and %bib is the BibTeX-like compiler (see org-latex-bib-compiler).

The reason why this is a list is that it usually takes several runs of pdflatex, maybe mixed with a call to bibtex. Org does not have a clever mechanism to detect which of these commands have to be run to get to a stable result, and it also does not do any error checking.

Consider a smart LaTeX compiler such as texi2dvi or latexmk, which calls the "correct" combinations of auxiliary programs.

Alternatively, this may be a Lisp function that does the processing, so you could use this to apply the machinery of AUCTeX or the Emacs LaTeX mode. This function should accept the file name as its single argument.

Default
computed when Org loads:
(if (and (executable-find "latexmk") (executable-find "perl"))
    '("latexmk -f -pdf -%latex -interaction=nonstopmode -output-directory=%o %f")
  '("%latex -interaction nonstopmode -output-directory %o %f"
    "%latex -interaction nonstopmode -output-directory %o %f"
    "%latex -interaction nonstopmode -output-directory %o %f"))
Type
(choice
 (repeat :tag "Shell command sequence"
         (string :tag "Shell command"))
 (const :tag "2 runs of latex"
        ("%latex -interaction nonstopmode -output-directory %o %f" "%latex -interaction nonstopmode -output-directory %o %f"))
 (const :tag "3 runs of latex"
        ("%latex -interaction nonstopmode -output-directory %o %f" "%latex -interaction nonstopmode -output-directory %o %f" "%latex -interaction nonstopmode -output-directory %o %f"))
 (const :tag "latex,bibtex,latex,latex"
        ("%latex -interaction nonstopmode -output-directory %o %f" "%bib %b" "%latex -interaction nonstopmode -output-directory %o %f" "%latex -interaction nonstopmode -output-directory %o %f"))
 (const :tag "texi2dvi"
        ("cd %o; LATEX=\"%latex\" texi2dvi -p -b -V %b.tex"))
…

org-latex-logfiles-extensions#

The list of file extensions to consider as LaTeX logfiles. The logfiles will be removed if org-latex-remove-logfiles is non-nil.

Default
("aux" "bcf" "blg" "fdb_latexmk" "fls" "figlist" "idx" "log" "nav" "out" "ptc" "run.xml" "snm" "toc" "vrb" "xdv")
Type
(repeat
 (string :tag "Extension"))
Since
Org 8.3
[emacs_options]
org-latex-logfiles-extensions = ["aux", "bcf", "blg", "fdb_latexmk", "fls", "figlist", "idx", "log", "nav", "out", "ptc", "run.xml", "snm", "toc", "vrb", "xdv"]

org-latex-remove-logfiles#

Non-nil means remove the logfiles produced by PDF production. By default, logfiles are files with these extensions: .aux, .idx, .log, .out, .toc, .nav, .snm and .vrb. To define the set of logfiles to remove, set org-latex-logfiles-extensions.

Default
t
Type
boolean
[emacs_options]
org-latex-remove-logfiles = true

org-latex-known-warnings#

Alist of regular expressions and associated messages for the user. The regular expressions are used to find possible warnings in the log of a LaTeX-run. These warnings will be reported after calling org-latex-compile.

Default
(("Reference.*?undefined" . "[undefined reference]")
 ("Runaway argument" . "[runaway argument]")
 ("Underfull \\hbox" . "[underfull hbox]")
 ("Overfull \\hbox" . "[overfull hbox]")
 ("Citation.*?undefined" . "[undefined citation]")
 ("^!.+Unicode character" . "[unicode character(s) not supported by pdflatex. Set org-latex-compiler to lualatex or xelatex instead]")
 ("Missing character: There is no" . "[Missing character(s): please load an appropriate font with the fontspec package]")
 ("Undefined control sequence" . "[undefined control sequence]"))
Type
(repeat
 (cons
  (regexp :tag "Regexp")
  (string :tag "Message")))
Since
Org 9.7

org-latex-toc-include-unnumbered#

Whether to include unnumbered headings in the table of contents.

The default behaviour is to include numbered headings only, as it is usually the case in LaTeX (but different from other Org exporters). To include an unnumbered heading, set the :UNNUMBERED: property to toc

Default
nil
Type
boolean
Since
Org 9.8
[emacs_options]
org-latex-toc-include-unnumbered = false

org-latex-use-sans#

Whether to typeset the document with the Sans font family.

The default behaviour is to typeset with the Roman font family.

Default
nil
Type
boolean
Since
Org 9.8
[emacs_options]
org-latex-use-sans = false

ox-man.el#

org-man-tables-centered#

When non-nil, tables are exported in a center environment.

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-man-tables-centered = true

org-man-tables-verbatim#

When non-nil, tables are exported verbatim.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-man-tables-verbatim = false

org-man-table-scientific-notation#

Format string to display numbers in scientific notation. The format should have "%s" twice, for mantissa and exponent (i.e. "%s\×10%s").

When nil, no transformation is made.

Default
"%sE%s"
Type
(choice
 (string :tag "Format string")
 (const :tag "No formatting"))
Since
Org 8.0
[emacs_options]
org-man-table-scientific-notation = "%sE%s"

org-man-source-highlight#

Use GNU source highlight to embellish source blocks.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-man-source-highlight = false

org-man-source-highlight-langs#

Alist mapping languages to their listing language counterpart. The key is a symbol, the major mode symbol without the "-mode". The value is the string that should be inserted as the language parameter for the listings package. If the mode name and the listings name are the same, the language does not need an entry in this list - but it does not hurt if it is present.

Default
((emacs-lisp "lisp")
 (lisp "lisp")
 (clojure "lisp")
 (scheme "scheme")
 (c "c")
 (cc "cpp")
 (csharp "csharp")
 (d "d")
 (fortran "fortran")
 (cobol "cobol")
 (pascal "pascal")
 (ada "ada")
 (asm "asm")
 (perl "perl")
 (cperl "perl")
 (python "python")
 (ruby "ruby")
 (tcl "tcl")
 (lua "lua")
…
Type
(repeat
 (list
  (symbol :tag "Major mode       ")
  (string :tag "Listings language")))
Since
Org 8.0

org-man-pdf-process#

Commands to process a Man file to a PDF file.

This is a list of strings, each of them will be given to the shell as a command. %f in the command will be replaced by the relative file name, %F by the absolute file name, %b by the file base name (i.e. without directory and extension parts), %o by the base directory of the file and %O by the absolute file name of the output file.

By default, Org uses 3 runs of to do the processing.

Alternatively, this may be a Lisp function that does the processing. This function should accept the file name as its single argument.

Default
("tbl %f | eqn | groff -man | ps2pdf - > %b.pdf" "tbl %f | eqn | groff -man | ps2pdf - > %b.pdf" "tbl %f | eqn | groff -man | ps2pdf - > %b.pdf")
Type
(choice
 (repeat :tag "Shell command sequence"
         (string :tag "Shell command"))
 (const :tag "2 runs of pdfgroff"
        ("tbl %f | eqn | groff -mm | ps2pdf - > %b.pdf" "tbl %f | eqn | groff -mm | ps2pdf - > %b.pdf"))
 (const :tag "3 runs of pdfgroff"
        ("tbl %f | eqn | groff -mm | ps2pdf - > %b.pdf" "tbl %f | eqn | groff -mm | ps2pdf - > %b.pdf" "tbl %f | eqn | groff -mm | ps2pdf - > %b.pdf"))
 (function))
Since
Org 8.0
[emacs_options]
org-man-pdf-process = ["tbl %f | eqn | groff -man | ps2pdf - > %b.pdf", "tbl %f | eqn | groff -man | ps2pdf - > %b.pdf", "tbl %f | eqn | groff -man | ps2pdf - > %b.pdf"]

org-man-logfiles-extensions#

The list of file extensions to consider as Man logfiles.

Default
("log" "out" "toc")
Type
(repeat
 (string :tag "Extension"))
Since
Org 8.0
[emacs_options]
org-man-logfiles-extensions = ["log", "out", "toc"]

org-man-remove-logfiles#

Non-nil means remove the logfiles produced by PDF production. These are the .aux, .log, .out, and .toc files.

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-man-remove-logfiles = true

ox-md.el#

org-md-headline-style#

Style used to format headlines. This variable can be set to either atx, setext, or mixed.

Mixed style uses Setext style markup for the first two headline levels and uses ATX style markup for the remaining four levels.

Default
atx
Type
(choice
 (const :tag "Use \"atx\" style" atx)
 (const :tag "Use \"Setext\" style" setext)
 (const :tag "Use \"mixed\" style" mixed))
[emacs_options]
org-md-headline-style = "atx"

org-md-footnotes-section#

Format string for the footnotes section. The first %s placeholder will be replaced with the localized Footnotes section heading, the second with the contents of the Footnotes section.

Default
"%s%s"
Type
string
Since
Org 9.0
[emacs_options]
org-md-footnotes-section = "%s%s"

org-md-footnote-format#

Format string for the footnote reference. The %s will be replaced by the footnote reference itself.

Default
"<sup>%s</sup>"
Type
string
Since
Org 9.0
[emacs_options]
org-md-footnote-format = "<sup>%s</sup>"

org-md-toplevel-hlevel#

Heading level to use for level 1 Org headings in markdown export.

If this is 1, headline levels will be preserved on export. If this is 2, top level Org headings will be exported to level 2 markdown headings, level 2 Org headings will be exported to level 3 markdown headings, and so on.

Incrementing this value may be helpful when creating markdown to be included into another document or application that reserves top-level headings for its own use.

Default
1
Type
integer
Since
Org 9.6
[emacs_options]
org-md-toplevel-hlevel = 1

Non-nil means make file links to "file.org" point to "file.md".

When Org mode is exporting an Org file to markdown, links to non-markdown files are directly put into a "href" tag in markdown. However, links to other Org files (recognized by the extension ".org") should become links to the corresponding markdown file, assuming that the linked Org file will also be converted to markdown.

When nil, the links still point to the plain ".org" file.

Default
t
Type
boolean
Since
Org 9.8
[emacs_options]
org-md-link-org-files-as-md = true

ox-odt.el#

org-odt-with-forbidden-chars#

String to replace forbidden XML characters. When set to t, forbidden characters are left as-is. When set to nil, an error is thrown. See org-odt-forbidden-char-re for the list of forbidden characters that cannot occur inside ODT documents.

You may also consider export filters to perform more fine-grained replacements. See info node (org)Advanced Export Configuration.

Default
""
Type
(choice
 (const :tag "Leave forbidden characters as-is" t)
 (const :tag "Err when forbidden characters encountered" nil)
 (string :tag "Replacement string"))
Since
Org 9.8
[emacs_options]
org-odt-with-forbidden-chars = ""

org-odt-prettify-xml#

Specify whether or not the xml output should be prettified. When this option is turned on, indent-region is run on all component xml buffers before they are saved. Turn this off for regular use. Turn this on if you need to examine the xml visually.

Default
nil
Type
boolean
Since
Emacs 24.1
[emacs_options]
org-odt-prettify-xml = false

org-odt-schema-dir#

Directory that contains OpenDocument schema files.

This directory contains:

  1. rnc files for OpenDocument schema
  2. a "schemas.xml" file that specifies locating rules needed
for auto validation of OpenDocument XML files.

Use the customize interface to set this variable. This ensures that rng-schema-locating-files is updated and auto-validation of OpenDocument XML takes place based on the value rng-nxml-auto-validate-flag.

The default value of this variable varies depending on the version of org in use and is initialized from org-odt-schema-dir-list. The OASIS schema files are available only in the org's private git repository. It is *not* bundled with GNU ELPA tar or standard Emacs distribution.

Default
computed when Org loads:
(cl-find-if
 (lambda (dir)
   (and dir
        (file-expand-wildcards
         (expand-file-name "od-manifest-schema*.rnc" dir))
        (file-expand-wildcards (expand-file-name "od-schema*.rnc" dir))
        (file-readable-p (expand-file-name "schemas.xml" dir))))
 org-odt-schema-dir-list)
Type
(choice
 (const :tag "Not set" nil)
 (directory :tag "Schema directory"))
Since
Emacs 24.1

org-odt-content-template-file#

Template file for "content.xml". The exporter embeds the exported content just before "</office:text>" element.

If unspecified, the file named "OrgOdtContentTemplate.xml" under org-odt-styles-dir is used.

Default
nil
Type
(choice
 (const nil)
 (file))
Since
Emacs 24.3
[emacs_options]
org-odt-content-template-file = false

org-odt-styles-file#

Default styles file for use with ODT export. Valid values are one of:

  1. nil
  2. path to a styles.xml file
  3. path to a *.odt or a *.ott file
  4. list of the form (ODT-OR-OTT-FILE (FILE-MEMBER-1 FILE-MEMBER-2
...))

In case of option 1, an in-built styles.xml is used. See org-odt-styles-dir for more information.

In case of option 3, the specified file is unzipped and the styles.xml embedded therein is used.

In case of option 4, the specified ODT-OR-OTT-FILE is unzipped and FILE-MEMBER-1, FILE-MEMBER-2 etc are copied in to the generated odt file. Use relative path for specifying the FILE-MEMBERS. styles.xml must be specified as one of the FILE-MEMBERS.

Use options 1, 2 or 3 only if styles.xml alone suffices for achieving the desired formatting. Use option 4, if the styles.xml references additional files like header and footer images for achieving the desired formatting.

Use "#+ODT_STYLES_FILE: ..." directive to set this variable on a per-file basis. For example,

#+ODT_STYLES_FILE: "/path/to/styles.xml" or
#+ODT_STYLES_FILE: ("/path/to/file.ott" ("styles.xml" "image/hdr.png")).
Default
nil
Type
(choice
 (const :tag "Factory settings" nil)
 (file :must-match t :tag "styles.xml")
 (file :must-match t :tag "ODT or OTT file")
 (list :tag "ODT or OTT file + Members"
       (file :must-match t :tag "ODF Text or Text Template file")
       (cons :tag "Members"
             (file :tag "	Member" "styles.xml")
             (repeat
              (file :tag "Member")))))
Since
Emacs 24.1
[emacs_options]
org-odt-styles-file = false

org-odt-display-outline-level#

Outline levels considered for enumerating captioned entities.

Default
2
Type
integer
Since
Org 8.0
[emacs_options]
org-odt-display-outline-level = 2

org-odt-convert-processes#

Specify a list of document converters and their usage. The converters in this list are offered as choices while customizing org-odt-convert-process.

This variable is a list where each element is of the form (CONVERTER-NAME CONVERTER-CMD). CONVERTER-NAME is the name of the converter. CONVERTER-CMD is the shell command for the converter and can contain format specifiers. These format specifiers are interpreted as below:

%i input file name in full
%I input file name as a URL
%f format of the output file
%o output file name in full
%O output file name as a URL
%d output dir in full
%D output dir as a URL.
%x extra options as set in `org-odt-convert-capabilities'.
Default
(("LibreOffice" "soffice --headless --convert-to %f%x --outdir %d %i")
 ("unoconv" "unoconv -f %f -o %d %i"))
Type
(choice
 (const :tag "None" nil)
 (alist :tag "Converters" :key-type
        (string :tag "Converter Name")
        :value-type
        (group
         (string :tag "Command line"))))
Since
Emacs 24.1

org-odt-convert-process#

Use this converter to convert from "odt" format to other formats. During customization, the list of converter names are populated from org-odt-convert-processes.

Default
"LibreOffice"
Type
(choice :convert-widget
        (lambda
          (w)
          (apply 'widget-convert
                 (widget-type w)
                 (eval
                  (car
                   (widget-get w :args)))))
        `((const :tag "None" nil)
          ,@(mapcar
             (lambda
…
Since
Emacs 24.1
[emacs_options]
org-odt-convert-process = "LibreOffice"

org-odt-convert-capabilities#

Specify input and output formats of org-odt-convert-process. More correctly, specify the set of input and output formats that the user is actually interested in.

This variable is an alist where each element is of the form (DOCUMENT-CLASS INPUT-FMT-LIST OUTPUT-FMT-ALIST). INPUT-FMT-LIST is a list of INPUT-FMTs. OUTPUT-FMT-ALIST is an alist where each element is of the form (OUTPUT-FMT OUTPUT-FILE-EXTENSION EXTRA-OPTIONS).

The variable is interpreted as follows: org-odt-convert-process can take any document that is in INPUT-FMT-LIST and produce any document that is in the OUTPUT-FMT-LIST. A document converted to OUTPUT-FMT will have OUTPUT-FILE-EXTENSION as the file name extension. OUTPUT-FMT serves dual purposes:

  • It is used for populating completion candidates during org-odt-convert commands.
  • It is used as the value of "%f" specifier in org-odt-convert-process.

EXTRA-OPTIONS is used as the value of "%x" specifier in org-odt-convert-process.

DOCUMENT-CLASS is used to group a set of file formats in INPUT-FMT-LIST in to a single class.

Note that this variable inherently captures how LibreOffice based converters work. LibreOffice maps documents of various formats to classes like Text, Web, Spreadsheet, Presentation etc and allow document of a given class (irrespective of its source format) to be converted to any of the export formats associated with that class.

See default setting of this variable for a typical configuration.

Default
(("Text"
  ("odt" "ott" "doc" "rtf" "docx")
  (("pdf" "pdf")
   ("odt" "odt")
   ("rtf" "rtf")
   ("ott" "ott")
   ("doc" "doc" ":\"MS Word 97\"")
   ("docx" "docx")
   ("html" "html")))
 ("Web"
  ("html")
  (("pdf" "pdf")
   ("odt" "odt")
   ("html" "html")))
 ("Spreadsheet"
  ("ods" "ots" "xls" "csv" "xlsx")
  (("pdf" "pdf")
   ("ots" "ots")
   ("html" "html")
…
Type
(choice
 (const :tag "None" nil)
 (alist :tag "Capabilities" :key-type
        (string :tag "Document Class")
        :value-type
        (group
         (repeat :tag "Input formats"
                 (string :tag "Input format"))
         (alist :tag "Output formats" :key-type
                (string :tag "Output format")
                :value-type
…
Since
Emacs 24.1

org-odt-preferred-output-format#

Automatically post-process to this format after exporting to "odt". Command org-odt-export-to-odt exports first to "odt" format and then uses org-odt-convert-process to convert the resulting document to this format. During customization of this variable, the list of valid values are populated based on org-odt-convert-capabilities.

You can set this option on per-file basis using file local values. See Info node (emacs) File Variables.

Default
nil
Type
(choice :convert-widget
        (lambda
          (w)
          (apply 'widget-convert
                 (widget-type w)
                 (eval
                  (car
                   (widget-get w :args)))))
        `((const :tag "None" nil)
          ,@(mapcar
             (lambda
…
Since
Emacs 24.1
[emacs_options]
org-odt-preferred-output-format = false

org-odt-format-drawer-function#

Function called to format a drawer in ODT code.

The function must accept two parameters:

NAME      the drawer name, like "LOGBOOK"
CONTENTS  the contents of the drawer.

The function should return the string to be exported.

The default value simply returns the value of CONTENTS.

Default
#'(lambda
    (_name contents)
    contents)
Type
function
Since
Org 8.3

org-odt-format-headline-function#

Function to format headline text.

This function will be called with 5 arguments:

TODO      the todo keyword (string or nil).

TODO-TYPE the type of todo (symbol: todo, done, nil)

PRIORITY  the priority of the headline (integer or nil)
TEXT      the main headline text (string).
TAGS      the tags string, separated with colons (string or nil).

The function result will be used as headline text.

Default
org-odt-format-headline-default-function
Type
function
Since
Org 8.3
[emacs_options]
org-odt-format-headline-function = "org-odt-format-headline-default-function"

org-odt-format-inlinetask-function#

Function called to format an inlinetask in ODT code.

The function must accept six parameters:

TODO      the todo keyword, as a string
TODO-TYPE the todo type, a symbol among `todo', `done' and nil.
PRIORITY  the inlinetask priority, as a string
NAME      the inlinetask name, as a string.
TAGS      the inlinetask tags, as a string.
CONTENTS  the contents of the inlinetask, as a string.

The function should return the string to be exported.

Default
org-odt-format-inlinetask-default-function
Type
function
Since
Org 8.3
[emacs_options]
org-odt-format-inlinetask-function = "org-odt-format-inlinetask-default-function"

org-odt-with-latex#

Non-nil means process LaTeX math snippets.

When set, the exporter will process LaTeX environments and fragments.

This option can also be set with the +OPTIONS line, e.g. "tex:dvipng". Allowed values are:

nil            Ignore math snippets.

t, mathml Convert the LaTeX fragments to MathML if the

               `org-latex-to-mathml-convert-command' is usable.
SYMBOL         Convert the LaTeX fragments to images using any symbol
               defined in `org-preview-latex-process-alist', e.g.,
               `dvipng'.
`verbatim'     Keep everything in verbatim.

If the desired converter is not available or any other symbol is provided, process as verbatim.

Default
t
Type
(choice
 (const :tag "Do not process math in any way" nil)
 (choice :tag "Convert fragments to MathML" :value t
         (const t)
         (const mathml))
 (restricted-sexp :tag "Convert fragments to images" :value dvipng :match-alternatives
                  ((closure
                       (hfy-user-sheet-assoc hfy-html-quote-regex hfy-html-quote-map hfy-face-to-css hfy-begin-span-handler hfy-end-span-handler archive-zip-extract nxml-auto-insert-xml-declaration-flag t)
                       (v)
                     (assq v org-preview-latex-process-alist))))
 (const :tag "Leave math verbatim" verbatim))
Since
Org 9.8
[emacs_options]
org-odt-with-latex = true

org-odt-inline-formula-rules#

Rules characterizing formula files that can be inlined into ODT.

A rule consists in an association whose key is the type of link to consider, and value is a regexp that will be matched against link's path.

Default
(("file" . "\\.\\(mathml\\|mml\\|odf\\)\\'"))
Type
(alist :key-type
       (string :tag "Type")
       :value-type
       (regexp :tag "Path"))
Since
Org 8.0

org-odt-inline-image-rules#

Rules characterizing image files that can be inlined into ODT.

A rule consists in an association whose key is the type of link to consider, and value is a regexp that will be matched against link's path.

Default
(("file" . "\\(?:\\.\\(?:gif\\|\\(?:jpe?\\|pn\\|sv\\)g\\)\\)"))
Type
(alist :key-type
       (string :tag "Type")
       :value-type
       (regexp :tag "Path"))
Since
Org 8.3

org-odt-pixels-per-inch#

Scaling factor for converting images pixels to inches. Use this for sizing of embedded images. See Info node `(org) Images in ODT export' for more information.

Default
96.0
Type
float
Since
Org 8.1
[emacs_options]
org-odt-pixels-per-inch = 96

org-odt-create-custom-styles-for-srcblocks#

Whether custom styles for colorized source blocks be automatically created. When this option is turned on, the exporter creates custom styles for source blocks based on the advice of htmlfontify. Creation of custom styles happen as part of org-odt-hfy-face-to-css.

When this option is turned off exporter does not create such styles.

Use the latter option if you do not want the custom styles to be based on your current display settings. It is necessary that the styles.xml already contains needed styles for colorizing to work.

This variable is effective only if org-odt-fontify-srcblocks is turned on.

Default
t
Type
boolean
Since
Emacs 24.1
[emacs_options]
org-odt-create-custom-styles-for-srcblocks = true

org-odt-fontify-srcblocks#

Specify whether or not source blocks need to be fontified. Turn this option on if you want to colorize the source code blocks in the exported file. For colorization to work, you need to make available an enhanced version of htmlfontify library.

Default
t
Type
boolean
Since
Emacs 24.1
[emacs_options]
org-odt-fontify-srcblocks = true

org-odt-table-styles#

Specify how Table Styles should be derived from a Table Template. This is a list where each element is of the form (TABLE-STYLE-NAME TABLE-TEMPLATE-NAME TABLE-CELL-OPTIONS).

TABLE-STYLE-NAME is the style associated with the table through "#+ATTR_ODT: :style TABLE-STYLE-NAME" line.

TABLE-TEMPLATE-NAME is a set of - up to 9 - automatic TABLE-CELL-STYLE-NAMEs and PARAGRAPH-STYLE-NAMEs (as defined below) that is included in org-odt-content-template-file.

TABLE-CELL-STYLE-NAME := TABLE-TEMPLATE-NAME + TABLE-CELL-TYPE +

                         "TableCell"
PARAGRAPH-STYLE-NAME  := TABLE-TEMPLATE-NAME + TABLE-CELL-TYPE +
                         "TableParagraph"
TABLE-CELL-TYPE       := "FirstRow"   | "LastColumn" |
                         "FirstRow"   | "LastRow"    |
                         "EvenRow"    | "OddRow"     |
                         "EvenColumn" | "OddColumn"  | ""

where "+" above denotes string concatenation.

TABLE-CELL-OPTIONS is an alist where each element is of the form (TABLE-CELL-STYLE-SELECTOR . ON-OR-OFF). TABLE-CELL-STYLE-SELECTOR := use-first-row-styles |

                             `use-last-row-styles'        |
                             `use-first-column-styles'    |
                             `use-last-column-styles'     |
                             `use-banding-rows-styles'    |
                             `use-banding-columns-styles' |
                             `use-first-row-styles'
ON-OR-OFF                 := t | nil

For example, with the following configuration

(setq org-odt-table-styles

'(("TableWithHeaderRowsAndColumns" "Custom"
   ((use-first-row-styles . t)
    (use-first-column-styles . t)))
  ("TableWithHeaderColumns" "Custom"
   ((use-first-column-styles . t)))))
  1. A table associated with "TableWithHeaderRowsAndColumns"
style will use the following table-cell styles -
"CustomFirstRowTableCell", "CustomFirstColumnTableCell",
"CustomTableCell" and the following paragraph styles
"CustomFirstRowTableParagraph",
"CustomFirstColumnTableParagraph", "CustomTableParagraph"
as appropriate.
  1. A table associated with "TableWithHeaderColumns" style will
use the following table-cell styles -
"CustomFirstColumnTableCell", "CustomTableCell" and the
following paragraph styles
"CustomFirstColumnTableParagraph", "CustomTableParagraph"
as appropriate..

Note that TABLE-TEMPLATE-NAME corresponds to the "<table:table-template>" elements contained within "<office:styles>". The entries (TABLE-STYLE-NAME TABLE-TEMPLATE-NAME TABLE-CELL-OPTIONS) correspond to "table:template-name" and "table:use-first-row-styles" etc attributes of "<table:table>" element. Refer ODF-1.2 specification for more information. Also consult the implementation filed under org-odt-get-table-cell-styles.

The TABLE-STYLE-NAME "OrgEquation" is used internally for formatting of numbered display equations. Do not delete this style from the list.

Default
(("OrgEquation" "OrgEquation"
  ((use-first-column-styles . t)
   (use-last-column-styles . t)))
 ("TableWithHeaderRowAndColumn" "Custom"
  ((use-first-row-styles . t)
   (use-first-column-styles . t)))
 ("TableWithFirstRowandLastRow" "Custom"
  ((use-first-row-styles . t)
   (use-last-row-styles . t)))
 ("GriddedTable" "Custom" nil))
Type
(choice
 (const :tag "None" nil)
 (repeat :tag "Table Styles"
         (list :tag "Table Style Specification"
               (string :tag "Table Style Name")
               (string :tag "Table Template Name")
               (alist :options
                      (use-first-row-styles use-last-row-styles use-first-column-styles use-last-column-styles use-banding-rows-styles use-banding-columns-styles)
                      :key-type symbol :value-type
                      (const :tag "True" t)))))
Since
Emacs 24.1

org-odt-use-date-fields#

Non-nil, if timestamps should be exported as date fields.

When nil, export timestamps as plain text.

When non-nil, map org-timestamp-custom-formats to a pair of OpenDocument date-styles with names "OrgDate1" and "OrgDate2" respectively. A timestamp with no time component is formatted with style "OrgDate1" while one with explicit hour and minutes is formatted with style "OrgDate2".

This feature is experimental. Most (but not all) of the common

%-specifiers in `format-time-string' are supported.

Specifically, locale-dependent specifiers like "%c", "%x" are formatted as canonical Org timestamps. For finer control, avoid these %-specifiers.

Textual specifiers like "%b", "%h", "%B", "%a", "%A" etc., are displayed by the application in the default language and country specified in org-odt-styles-file. Note that the default styles file uses language "en" and country "GB". You can localize the week day and month strings in the exported document by setting the default language and country either using the application UI or through a custom styles file.

See org-odt--build-date-styles for implementation details.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-odt-use-date-fields = false

ox-org.el#

org-org-htmlized-css-url#

URL pointing to the CSS defining colors for htmlized Emacs buffers. Normally when creating an htmlized version of an Org buffer, htmlize will create the CSS to define the font colors. However, this does not work when converting in batch mode, and it also can look bad if different people with different fontification setup work on the same website. When this variable is non-nil, creating an htmlized version of an Org buffer using org-org-export-as-org will include a link to this URL if the setting of org-html-htmlize-output-type is css.

Default
nil
Type
(choice
 (const :tag "Don't include external stylesheet link" nil)
 (string :tag "URL or local href"))
[emacs_options]
org-org-htmlized-css-url = false

org-org-with-special-rows#

Non-nil means export special table rows. Special rows are the rows containing special marking characters, as described in the Info node (org)Advanced features.

Default
t
Type
boolean
Since
Org 9.7
[emacs_options]
org-org-with-special-rows = true

org-org-with-cite-processors#

Non-nil means use citation processors when exporting citations.

Default
nil
Type
boolean
Since
Org 9.7
[emacs_options]
org-org-with-cite-processors = false

ox-publish.el#

org-publish-project-alist#

Association list to control publishing behavior.

Each element of the alist is a publishing project. The car of each element is a string, uniquely identifying the project. The cdr of each element is in one of the following forms:

  1. A well-formed property list with an even number of elements,
alternating keys and values, specifying parameters for the
publishing process.

  (:property value :property value ... )
  1. A meta-project definition, specifying of a list of
sub-projects:

  (:components ("project-1" "project-2" ...))

When the CDR of an element of org-publish-project-alist is in this second form, the elements of the list after :components are taken to be components of the project, which group together files requiring different publishing options. When you publish such a project with M-x org-publish, the components all publish.

When a property is given a value in org-publish-project-alist, its setting overrides the value of the corresponding user variable (if any) during publishing. However, options set within a file override everything.

Most properties are optional, but some should always be set:

`:base-directory'

  Directory containing publishing source files.

`:base-extension'

  Extension (without the dot!) of source files.  This can be
  a regular expression.  If not given, "org" will be used as
  default extension.  If it is `any', include all the files,
  even without extension.

`:publishing-directory'

  Directory (possibly remote) where output files will be
  published.

If :recursive is non-nil files in sub-directories of :base-directory are considered.

The :exclude property may be used to prevent certain files from being published. Its value may be a string or regexp matching file names you don't want to be published.

The :include property may be used to include extra files. Its value may be a list of filenames to include. The filenames are considered relative to the base directory.

When both :include and :exclude properties are given values, the exclusion step happens first.

One special property controls which backend function to use for publishing files in the project. This can be used to extend the set of file types publishable by org-publish, as well as the set of output formats.

`:publishing-function'

  Function to publish file.  Each backend may define its
  own (i.e. `org-latex-publish-to-pdf',
  `org-html-publish-to-html').  May be a list of functions, in
  which case each function in the list is invoked in turn.

Another property allows you to insert code that prepares a project for publishing. For example, you could call GNU Make on a certain makefile, to ensure published files are built up to date.

`:preparation-function'

  Function to be called before publishing this project.  This
  may also be a list of functions.  Preparation functions are
  called with the project properties list as their sole
  argument.

`:completion-function'

  Function to be called after publishing this project.  This
  may also be a list of functions.  Completion functions are
  called with the project properties list as their sole
  argument.

Some properties control details of the Org publishing process, and are equivalent to the corresponding user variables listed in the right column. Backend specific properties may also be included. See the backend documentation for more information.

:author                   variable `user-full-name'
:creator                  `org-export-creator-string'
:email                    `user-mail-address'
:exclude-tags             `org-export-exclude-tags'
:headline-levels          `org-export-headline-levels'
:language                 `org-export-default-language'
:preserve-breaks          `org-export-preserve-breaks'
:section-numbers          `org-export-with-section-numbers'
:select-tags              `org-export-select-tags'
:time-stamp-file          `org-export-timestamp-file'
:with-archived-trees      `org-export-with-archived-trees'
:with-author              `org-export-with-author'
:with-creator             `org-export-with-creator'
:with-date                `org-export-with-date'
:with-drawers             `org-export-with-drawers'
:with-email               `org-export-with-email'
:with-emphasize           `org-export-with-emphasize'
:with-entities            `org-export-with-entities'
:with-fixed-width         `org-export-with-fixed-width'
:with-footnotes           `org-export-with-footnotes'
:with-inlinetasks         `org-export-with-inlinetasks'
:with-latex               `org-export-with-latex'
:with-planning            `org-export-with-planning'
:with-priority            `org-export-with-priority'
:with-properties          `org-export-with-properties'
:with-smart-quotes        `org-export-with-smart-quotes'
:with-special-strings     `org-export-with-special-strings'
:with-statistics-cookies' `org-export-with-statistics-cookies'
:with-sub-superscript     `org-export-with-sub-superscripts'
:with-toc                 `org-export-with-toc'
:with-tables              `org-export-with-tables'
:with-tags                `org-export-with-tags'
:with-tasks               `org-export-with-tasks'
:with-timestamps          `org-export-with-timestamps'
:with-title               `org-export-with-title'
:with-todo-keywords       `org-export-with-todo-keywords'

The following properties may be used to control publishing of a site-map of files or summary page for a given project.

`:auto-sitemap'

  Whether to publish a site-map during
  `org-publish-current-project' or `org-publish-all'.

`:sitemap-filename'

  Filename for output of site-map.  Defaults to "sitemap.org".

`:sitemap-title'

  Title of site-map page.  Defaults to name of file.

`:sitemap-style'

  Can be `list' (site-map is just an itemized list of the
  titles of the files involved) or `tree' (the directory
  structure of the source files is reflected in the site-map).
  Defaults to `tree'.

`:sitemap-format-entry'

  Plugin function used to format entries in the site-map.  It
  is called with three arguments: the file or directory name
  relative to base directory, the site map style and the
  current project.  It has to return a string.

  Defaults to `org-publish-sitemap-default-entry', which turns
  file names into links and use document titles as
  descriptions.  For specific formatting needs, one can use
  `org-publish-find-date', `org-publish-find-title' and
  `org-publish-find-property', to retrieve additional
  information about published documents.

`:sitemap-function'

  Plugin function to use for generation of site-map.  It is
  called with two arguments: the title of the site-map, as
  a string, and a representation of the files involved in the
  project, as returned by `org-list-to-lisp'.  The latter can
  further be transformed using `org-list-to-generic',
  `org-list-to-subtree' and alike.  It has to return a string.

  Defaults to `org-publish-sitemap-default', which generates
  a plain list of links to all files in the project.

If you create a site-map file, adjust the sorting like this:

`:sitemap-sort-folders'

  Where folders should appear in the site-map.  Set this to
  `first' or `last' to display folders first or last,
  respectively.  When set to `ignore' (default), folders are
  ignored altogether.  Any other value will mix files and
  folders.  This variable has no effect when site-map style is
  `tree'.

`:sitemap-sort-files'

  The site map is normally sorted alphabetically.  You can
  change this behavior setting this to `anti-chronologically',
  `chronologically', or nil.

`:sitemap-ignore-case'

  Should sorting be case-sensitive?  Default nil.

The following property control the creation of a concept index.

`:makeindex'

  Create a concept index.  The file containing the index has to
  be called "theindex.org".  If it doesn't exist in the
  project, it will be generated.  Contents of the index are
  stored in the file "theindex.inc", which can be included in
  "theindex.org".

Other properties affecting publication.

`:body-only'

  Set this to t to publish only the body of the documents.
Default
nil
Type
alist
[emacs_options]
org-publish-project-alist = []

org-publish-use-timestamps-flag#

Non-nil means use timestamp checking to publish only changed files. When nil, do no timestamp checking and always publish all files.

Default
t
Type
boolean
[emacs_options]
org-publish-use-timestamps-flag = true

org-publish-timestamp-directory#

Name of directory in which to store publishing timestamps.

Default
computed when Org loads: (convert-standard-filename "~/.org-timestamps/")
Type
directory

org-publish-list-skipped-files#

Non-nil means show message about files *not* published.

Default
t
Type
boolean
[emacs_options]
org-publish-list-skipped-files = true

org-publish-sitemap-sort-files#

Method to sort files in site-maps. Possible values are alphabetically, chronologically, anti-chronologically and nil.

If alphabetically, files will be sorted alphabetically. If chronologically, files will be sorted with older modification time first. If anti-chronologically, files will be sorted with newer modification time first. nil won't sort files.

You can overwrite this default per project in your org-publish-project-alist, using :sitemap-sort-files.

Default
alphabetically
Type
symbol
[emacs_options]
org-publish-sitemap-sort-files = "alphabetically"

org-publish-sitemap-sort-folders#

A symbol, denoting if folders are sorted first in site-maps.

Possible values are first, last, ignore and nil. If first, folders will be sorted before files. If last, folders are sorted to the end after the files. If ignore, folders do not appear in the site-map. Any other value will mix files and folders.

You can overwrite this default per project in your org-publish-project-alist, using :sitemap-sort-folders.

This variable is ignored when site-map style is tree.

Default
ignore
Type
(choice
 (const :tag "Folders before files" first)
 (const :tag "Folders after files" last)
 (const :tag "No folder in site-map" ignore)
 (const :tag "Mix folders and files" nil))
Since
Org 9.1
[emacs_options]
org-publish-sitemap-sort-folders = "ignore"

org-publish-sitemap-sort-ignore-case#

Non-nil when site-map sorting should ignore case.

You can overwrite this default per project in your org-publish-project-alist, using :sitemap-ignore-case.

Default
nil
Type
boolean
[emacs_options]
org-publish-sitemap-sort-ignore-case = false

ox-texinfo.el#

org-texinfo-coding-system#

Default document encoding for Texinfo output.

If nil it will default to buffer-file-coding-system.

Default
nil
Type
coding-system
[emacs_options]
org-texinfo-coding-system = false

org-texinfo-default-class#

The default Texinfo class.

Default
"info"
Type
(string :tag "Texinfo class")
[emacs_options]
org-texinfo-default-class = "info"

org-texinfo-classes#

Alist of Texinfo classes and associated header and structure. If #+TEXINFO_CLASS is set in the buffer, use its value and the associated information. Here is the structure of a class definition:

(class-name
  header-string
  (numbered-1 unnumbered-1 unnumbered-no-toc-1 appendix-1)
  (numbered-2 unnumbered-2 unnumbered-no-toc-2 appendix-2)
  ...)

The header string

-----------------

The header string is inserted in the header of the generated document, right after "@setfilename" and "@settitle" commands.

If it contains the special string

"@documentencoding AUTO"

"AUTO" will be replaced with an appropriate coding system. See org-texinfo-coding-system for more information. Likewise, if the string contains the special string

"@documentlanguage AUTO"

"AUTO" will be replaced with the language defined in the buffer, through #+LANGUAGE keyword, or globally, with org-export-default-language, which see.

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.

Default
(("info" "@documentencoding AUTO\n@documentlanguage AUTO"
  ("@chapter %s" "@unnumbered %s" "@chapheading %s" "@appendix %s")
  ("@section %s" "@unnumberedsec %s" "@heading %s" "@appendixsec %s")
  ("@subsection %s" "@unnumberedsubsec %s" "@subheading %s" "@appendixsubsec %s")
  ("@subsubsection %s" "@unnumberedsubsubsec %s" "@subsubheading %s" "@appendixsubsubsec %s")))
Type
(repeat
 (list
  (string :tag "Texinfo class")
  (string :tag "Texinfo header")
  (repeat :tag "Levels" :inline t
          (choice
           (list :tag "Heading"
                 (string :tag "         numbered")
                 (string :tag "       unnumbered")
                 (string :tag "unnumbered-no-toc")
                 (string :tag "         appendix"))))))
Since
Org 9.2

org-texinfo-format-headline-function#

Function to format headline text.

This function will be called with 5 arguments:

TODO      the todo keyword (string or nil).

TODO-TYPE the type of todo (symbol: todo, done, nil)

PRIORITY  the priority of the headline (integer or nil)
TEXT      the main headline text (string).
TAGS      the tags as a list of strings (list of strings or nil).

The function result will be used in the section format string.

Default
org-texinfo-format-headline-default-function
Type
function
Since
Org 8.3
[emacs_options]
org-texinfo-format-headline-function = "org-texinfo-format-headline-default-function"

org-texinfo-node-description-column#

Column at which to start the description in the node listings. If a node title is greater than this length, the description will be placed after the end of the title.

Default
32
Type
integer
[emacs_options]
org-texinfo-node-description-column = 32

org-texinfo-active-timestamp-format#

A format string to be applied to active timestamps.

Default
"@emph{%s}"
Type
string
[emacs_options]
org-texinfo-active-timestamp-format = "@emph{%s}"

org-texinfo-inactive-timestamp-format#

A format string to be applied to inactive timestamps.

Default
"@emph{%s}"
Type
string
[emacs_options]
org-texinfo-inactive-timestamp-format = "@emph{%s}"

org-texinfo-diary-timestamp-format#

A format string to be applied to diary timestamps.

Default
"@emph{%s}"
Type
string
[emacs_options]
org-texinfo-diary-timestamp-format = "@emph{%s}"

Format string for links with unknown path type.

Default
"@indicateurl{%s}"
Type
string
[emacs_options]
org-texinfo-link-with-unknown-path-format = "@indicateurl{%s}"

org-texinfo-tables-verbatim#

When non-nil, tables are exported verbatim.

Default
nil
Type
boolean
[emacs_options]
org-texinfo-tables-verbatim = false

org-texinfo-table-scientific-notation#

Format string to display numbers in scientific notation.

The format should have "%s" twice, for mantissa and exponent (i.e. "%s\×10%s").

When nil, no transformation is made.

Default
nil
Type
(choice
 (string :tag "Format string")
 (const :tag "No formatting" nil))
[emacs_options]
org-texinfo-table-scientific-notation = false

org-texinfo-table-default-markup#

Default markup for first column in two-column tables.

This should an indicating command, e.g., "@code", "@kbd" or "@samp".

It can be overridden locally using the ":indic" attribute.

Default
"@asis"
Type
string
Since
Org 9.1
[emacs_options]
org-texinfo-table-default-markup = "@asis"

org-texinfo-text-markup-alist#

Alist of Texinfo expressions to convert text markup.

The key must be a symbol among bold, code, italic, strike-through, underscore and verbatim. The value is a formatting string to wrap fontified text with.

Value can also be set to the following symbols: verb, samp and code. With the first one, Org uses "@verb" to create a format string and selects a delimiter character that isn't in the string. For the other two, Org uses "@samp" or "@code" to typeset and protects special characters.

When no association is found for a given markup, text is returned as-is.

Default
((bold . "@strong{%s}")
 (code . code)
 (italic . "@emph{%s}")
 (verbatim . samp))
Type
alist
Since
Org 9.1

org-texinfo-format-drawer-function#

Function called to format a drawer in Texinfo code.

The function must accept two parameters:

NAME      the drawer name, like "LOGBOOK"
CONTENTS  the contents of the drawer.

The function should return the string to be exported.

The default function simply returns the value of CONTENTS.

Default
#'(lambda
    (_name contents)
    contents)
Type
function
Since
Org 8.2

org-texinfo-format-inlinetask-function#

Function called to format an inlinetask in Texinfo code.

The function must accept six parameters:

TODO      the todo keyword, as a string
TODO-TYPE the todo type, a symbol among `todo', `done' and nil.
PRIORITY  the inlinetask priority, as a string
NAME      the inlinetask name, as a string.
TAGS      the inlinetask tags, as a list of strings.
CONTENTS  the contents of the inlinetask, as a string.

The function should return the string to be exported.

Default
org-texinfo-format-inlinetask-default-function
Type
function
[emacs_options]
org-texinfo-format-inlinetask-function = "org-texinfo-format-inlinetask-default-function"

org-texinfo-with-latex#

When non-nil, the Texinfo exporter attempts to process LaTeX math.

When set to t, the exporter will process LaTeX environments and fragments as Texinfo "@displaymath" and "@math" commands respectively. Alternatively, when set to detect, the exporter does so only if the installed version of Texinfo supports the necessary commands.

Default
detect
Type
(choice
 (const :tag "Detect" detect)
 (const :tag "Yes" t)
 (const :tag "No" nil))
Since
Org 9.6
[emacs_options]
org-texinfo-with-latex = "detect"

org-texinfo-compact-itemx#

Non-nil means certain items in description list become @itemx.

If this is non-nil and an item in a description list has no body but is followed by another item, then the second item is transcoded to @itemx. See info node `(org)Plain lists in Texinfo export' for how to enable this for individual lists.

Default
nil
Type
boolean
Since
Org 9.6
[emacs_options]
org-texinfo-compact-itemx = false

org-texinfo-info-process#

Commands to process a Texinfo file to an INFO file.

This is a list of strings, each of them will be given to the shell as a command. %f in the command will be replaced by the relative file name, %F by the absolute file name, %b by the file base name (i.e. without directory and extension parts), %o by the base directory of the file and %O by the absolute file name of the output file.

Alternatively, this may be a Lisp function that does the processing, This function should accept the file name as its single argument.

Default
("makeinfo --no-split %f")
Type
(choice
 (repeat :tag "Shell command sequence"
         (string :tag "Shell command"))
 (function))
Since
Org 9.1
[emacs_options]
org-texinfo-info-process = ["makeinfo --no-split %f"]

org-texinfo-logfiles-extensions#

The list of file extensions to consider as Texinfo logfiles. The logfiles will be remove if org-texinfo-remove-logfiles is non-nil.

Default
("aux" "toc" "cp" "fn" "ky" "pg" "tp" "vr")
Type
(repeat
 (string :tag "Extension"))
[emacs_options]
org-texinfo-logfiles-extensions = ["aux", "toc", "cp", "fn", "ky", "pg", "tp", "vr"]

org-texinfo-remove-logfiles#

Non-nil means remove the logfiles produced by compiling a Texinfo file. By default, logfiles are files with these extensions: .aux, .toc, .cp, .fn, .ky, .pg and .tp. To define the set of logfiles to remove, set org-texinfo-logfiles-extensions.

Default
t
Type
boolean
[emacs_options]
org-texinfo-remove-logfiles = true

ox.el#

org-export-with-archived-trees#

Whether sub-trees with the ARCHIVE tag should be exported.

This can have three different values:

nil         Do not export, pretend this tree is not present.
t           Do export the entire tree.
`headline'  Only export the headline, but skip the tree below it.

This option can also be set with the OPTIONS keyword, e.g. "arch:nil".

Default
headline
Type
(choice
 (const :tag "Not at all" nil)
 (const :tag "Headline only" headline)
 (const :tag "Entirely" t))
[emacs_options]
org-export-with-archived-trees = "headline"

org-export-with-author#

Non-nil means insert author name into the exported file. This option can also be set with the OPTIONS keyword, e.g. "author:nil".

Default
t
Type
boolean
[emacs_options]
org-export-with-author = true

org-export-with-clocks#

Non-nil means export CLOCK keywords. This option can also be set with the OPTIONS keyword, e.g. "c:t".

Default
nil
Type
boolean
[emacs_options]
org-export-with-clocks = false

org-export-with-creator#

Non-nil means the postamble should contain a creator sentence.

The sentence can be set in org-export-creator-string, which see.

This option can also be set with the OPTIONS keyword, e.g., "creator:t".

Default
nil
Type
boolean
Since
Org 8.3
[emacs_options]
org-export-with-creator = false

org-export-with-date#

Non-nil means insert date in the exported document. This option can also be set with the OPTIONS keyword, e.g. "date:nil".

Default
t
Type
boolean
[emacs_options]
org-export-with-date = true

org-export-process-citations#

Non-nil means process citations using citation processors. nil will leave citation processing to export backend.

Default
t
Type
boolean
Since
Org 9.7
[emacs_options]
org-export-process-citations = true

org-export-date-timestamp-format#

Timestamp format string to use for DATE keyword.

The format string, when specified, only applies if date consists in a single timestamp. Otherwise its value will be ignored.

See format-time-string for details on how to build this string.

Default
nil
Type
(choice
 (string :tag "Timestamp format string")
 (const :tag "No format string" nil))
[emacs_options]
org-export-date-timestamp-format = false

org-export-creator-string#

Information about the creator of the document. This option can also be set on with the CREATOR keyword.

Default
computed when Org loads:
(format "Emacs %s (Org mode %s)"
        emacs-version
        (if (fboundp 'org-version) (org-version) "unknown version"))
Type
(string :tag "Creator string")

org-export-with-drawers#

Non-nil means export contents of standard drawers.

When t, all drawers are exported. This may also be a list of drawer names to export, as strings. If that list starts with not, only drawers with such names will be ignored.

This variable doesn't apply to properties drawers. See org-export-with-properties instead.

This option can also be set with the OPTIONS keyword, e.g. "d:nil".

Default
(not "LOGBOOK")
Type
(choice
 (const :tag "All drawers" t)
 (const :tag "None" nil)
 (repeat :tag "Selected drawers"
         (string :tag "Drawer name"))
 (list :tag "Ignored drawers"
       (const :format "" not)
       (repeat :tag "Specify names of drawers to ignore during export" :inline t
               (string :tag "Drawer name"))))
Since
Org 8.0
[emacs_options]
org-export-with-drawers = ["not", "LOGBOOK"]

org-export-with-email#

Non-nil means insert author email into the exported file. This option can also be set with the OPTIONS keyword, e.g. "email:t".

Default
nil
Type
boolean
[emacs_options]
org-export-with-email = false

org-export-with-emphasize#

Non-nil means interpret *word*, /word/, _word_ and +word+.

If the export target supports emphasizing text, the word will be typeset in bold, italic, with an underline or strike-through, respectively.

This option can also be set with the OPTIONS keyword, e.g. "*:nil".

Default
t
Type
boolean
[emacs_options]
org-export-with-emphasize = true

org-export-exclude-tags#

Tags that exclude a tree from export.

All trees carrying any of these tags will be excluded from export. This is without condition, so even subtrees inside that carry one of the org-export-select-tags will be removed.

This option can also be set with the EXCLUDE_TAGS keyword.

Default
("noexport")
Type
(repeat
 (string :tag "Tag"))
[emacs_options]
org-export-exclude-tags = ["noexport"]

org-export-with-fixed-width#

Non-nil means export lines starting with ":". This option can also be set with the OPTIONS keyword, e.g. "::nil".

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-export-with-fixed-width = true

org-export-with-footnotes#

Non-nil means Org footnotes should be exported. This option can also be set with the OPTIONS keyword, e.g. "f:nil".

Default
t
Type
boolean
[emacs_options]
org-export-with-footnotes = true

org-export-with-latex#

Non-nil means process LaTeX environments and fragments.

This option can also be set with the OPTIONS line, e.g. "tex:verbatim". Allowed values are:

nil         Ignore math snippets.
`verbatim'  Keep everything in verbatim.
t           Allow export of math snippets.
Default
t
Type
(choice
 (const :tag "Do not process math in any way" nil)
 (const :tag "Interpret math snippets" t)
 (const :tag "Leave math verbatim" verbatim))
Since
Org 8.0
[emacs_options]
org-export-with-latex = true

org-export-headline-levels#

This level and its ancestors will be exported as a headline.

Descendants of this level will usually produce itemized or enumerated lists when exported, but backend behavior may differ.

This option can also be set with the OPTIONS keyword, e.g. "H:2".

Default
3
Type
integer
[emacs_options]
org-export-headline-levels = 3

org-export-default-language#

The default language for export and clocktable translations, as a string. This may have an association in org-clock-clocktable-language-setup, org-export-smart-quotes-alist and org-export-dictionary. This option can also be set with the LANGUAGE keyword.

Default
"en"
Type
(string :tag "Language")
[emacs_options]
org-export-default-language = "en"

org-export-preserve-breaks#

Non-nil means preserve all line breaks when exporting. This option can also be set with the OPTIONS keyword, e.g. "\n:t".

Default
nil
Type
boolean
[emacs_options]
org-export-preserve-breaks = false

org-export-with-entities#

Non-nil means interpret entities when exporting.

For example, HTML export converts \alpha to &alpha; and \AA to &Aring;.

For a list of supported names, see the constant org-entities and the user option org-entities-user.

This option can also be set with the OPTIONS keyword, e.g. "e:nil".

Default
t
Type
boolean
[emacs_options]
org-export-with-entities = true

org-export-with-inlinetasks#

Non-nil means inlinetasks should be exported. This option can also be set with the OPTIONS keyword, e.g. "inline:nil".

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-export-with-inlinetasks = true

org-export-with-planning#

Non-nil means include planning info in export.

Planning info is the line containing either SCHEDULED:, DEADLINE:, CLOSED: timestamps, or a combination of them.

This option can also be set with the OPTIONS keyword, e.g. "p:t".

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-export-with-planning = false

org-export-with-priority#

Non-nil means include priority cookies in export. This option can also be set with the OPTIONS keyword, e.g. "pri:t".

Default
nil
Type
boolean
[emacs_options]
org-export-with-priority = false

org-export-with-properties#

Non-nil means export contents of properties drawers.

When t, all properties are exported. This may also be a list of properties to export, as strings.

This option can also be set with the OPTIONS keyword, e.g. "prop:t".

Default
nil
Type
(choice
 (const :tag "All properties" t)
 (const :tag "None" nil)
 (repeat :tag "Selected properties"
         (string :tag "Property name")))
Since
Org 8.3
[emacs_options]
org-export-with-properties = []

org-export-with-section-numbers#

Non-nil means add section numbers to headlines when exporting.

When set to an integer n, numbering will only happen for headlines whose relative level is higher or equal to n.

This option can also be set with the OPTIONS keyword, e.g. "num:t".

Default
t
Type
boolean
[emacs_options]
org-export-with-section-numbers = true

org-export-select-tags#

Tags that select a tree for export.

If any such tag is found in a buffer, all trees that do not carry one of these tags will be ignored during export. Inside trees that are selected like this, you can still deselect a subtree by tagging it with one of the org-export-exclude-tags.

This option can also be set with the SELECT_TAGS keyword.

Default
("export")
Type
(repeat
 (string :tag "Tag"))
[emacs_options]
org-export-select-tags = ["export"]

org-export-with-smart-quotes#

Non-nil means activate smart quotes during export. This option can also be set with the OPTIONS keyword, e.g., "':t".

When setting this to non-nil, you need to take care of using the correct Babel package when exporting to LaTeX. E.g., you can load Babel for french like this:

#+LATEX_HEADER: \usepackage[french]{babel}
Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-export-with-smart-quotes = false

org-export-with-special-strings#

Non-nil means interpret "\-", "--" and "---" for export.

When this option is turned on, these strings will be exported as:

 Org     HTML     LaTeX    UTF-8
-----+----------+--------+-------
 \-    &shy;      \-
 --    &ndash;    --         –
 ---   &mdash;    ---        —
 ...   &hellip;   \ldots     …

This option can also be set with the OPTIONS keyword, e.g. "-:nil".

Default
t
Type
boolean
[emacs_options]
org-export-with-special-strings = true

org-export-with-statistics-cookies#

Non-nil means include statistics cookies in export. This option can also be set with the OPTIONS keyword, e.g. "stat:nil"

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-export-with-statistics-cookies = true

org-export-with-sub-superscripts#

Non-nil means interpret "_" and "^" for export.

If you want to control how Org displays those characters, see org-use-sub-superscripts.

When this option is turned on, you can use TeX-like syntax for sub- and superscripts and see them exported correctly.

You can also set the option with #+OPTIONS: ^:t

See org-use-sub-superscripts docstring for more details.

Default
t
Type
(choice
 (const :tag "Interpret them" t)
 (const :tag "Curly brackets only" {})
 (const :tag "Do not interpret them" nil))
Since
Org 8.0
[emacs_options]
org-export-with-sub-superscripts = true

org-export-with-toc#

Non-nil means create a table of contents in exported files.

The table of contents contains headlines with levels up to org-export-headline-levels.

When this variable is set to an integer N, include levels up to N in the table of contents. Although it may then be different from org-export-headline-levels, it is cannot be larger than the number of headline levels.

When nil, no table of contents is created.

This option can also be set with the OPTIONS keyword, e.g. "toc:nil" or "toc:3".

Default
t
Type
(choice
 (const :tag "No Table of Contents" nil)
 (const :tag "Full Table of Contents" t)
 (integer :tag "TOC to level"))
[emacs_options]
org-export-with-toc = true

org-export-with-tables#

Non-nil means export tables. This option can also be set with the OPTIONS keyword, e.g. "|:nil".

Default
t
Type
boolean
Since
Org 8.0
[emacs_options]
org-export-with-tables = true

org-export-with-tags#

If nil, do not export tags, just remove them from headlines.

If this is the symbol not-in-toc, tags will be removed from table of contents entries, but still be shown in the headlines of the document.

This option can also be set with the OPTIONS keyword, e.g. "tags:nil".

Default
t
Type
(choice
 (const :tag "Off" nil)
 (const :tag "Not in TOC" not-in-toc)
 (const :tag "On" t))
[emacs_options]
org-export-with-tags = true

org-export-with-tasks#

Non-nil means include TODO items for export.

This may have the following values:

t                    include tasks independent of state.
`todo'               include only tasks that are not yet done.
`done'               include only tasks that are already done.
nil                  ignore all tasks.

list of keywords include tasks with these keywords.

This option can also be set with the OPTIONS keyword, e.g. "tasks:nil".

Default
t
Type
(choice
 (const :tag "All tasks" t)
 (const :tag "No tasks" nil)
 (const :tag "Not-done tasks" todo)
 (const :tag "Only done tasks" done)
 (repeat :tag "Specific TODO keywords"
         (string :tag "Keyword")))
[emacs_options]
org-export-with-tasks = true

org-export-with-title#

Non-nil means print title into the exported file. This option can also be set with the OPTIONS keyword, e.g. "title:nil".

Default
t
Type
boolean
Since
Org 8.3
[emacs_options]
org-export-with-title = true

org-export-timestamp-file#

Non-nil means insert a time stamp into the exported file. The time stamp shows when the file was created. This option can also be set with the OPTIONS keyword, e.g. "timestamp:nil".

Default
t
Type
boolean
[emacs_options]
org-export-timestamp-file = true

org-export-with-timestamps#

Non-nil means allow timestamps in export.

It can be set to any of the following values:

t                        export all timestamps.
`active'                 export active timestamps, including diary timestamps.
`active-exclude-diary'   export active timestamps, excluding diary timestamps.
`inactive'               export inactive timestamps only.
nil                      do not export timestamps

This only applies to timestamps isolated in a paragraph containing only timestamps. Other timestamps are always exported.

This option can also be set with the OPTIONS keyword, e.g. "<:nil".

Default
t
Type
(choice
 (const :tag "All timestamps" t)
 (const :tag "Active timestamps, including diary timestamps" active)
 (const :tag "Active timestamps, excluding diary timestamps" active-exclude-diary)
 (const :tag "Only inactive timestamps" inactive)
 (const :tag "No timestamp" nil))
Since
Org 9.8
[emacs_options]
org-export-with-timestamps = true

org-export-with-todo-keywords#

Non-nil means include TODO keywords in export. When nil, remove all these keywords from the export. This option can also be set with the OPTIONS keyword, e.g. "todo:nil".

Default
t
Type
boolean
[emacs_options]
org-export-with-todo-keywords = true

org-export-allow-bind-keywords#

Non-nil means BIND keywords can define local variable values. This is a potential security risk, which is why the default value is nil. You can also allow them through local buffer variables.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-export-allow-bind-keywords = false

Non-nil means do not raise an error on broken links.

When this variable is non-nil, broken links are ignored, without stopping the export process. If it is set to mark, broken links are marked as such in the output, with a string like

[BROKEN LINK: path]

where PATH is the un-resolvable reference.

This option can also be set with the OPTIONS keyword, e.g., "broken-links:mark".

Default
nil
Type
(choice
 (const :tag "Ignore broken links" t)
 (const :tag "Mark broken links in output" mark)
 (const :tag "Raise an error" nil))
Since
Org 9.0
[emacs_options]
org-export-with-broken-links = false

When non-nil, expand environment variables in file paths.

Default
t
Type
boolean
Since
Org 9.7
[emacs_options]
org-export-expand-links = true

org-export-replace-macros#

When non-nil, replace macros before export. This variable does not affect {{{results}}} macros when processing code block results.

Default
t
Type
boolean
Since
Org 9.8
[emacs_options]
org-export-replace-macros = true

org-export-snippet-translation-alist#

Alist between export snippets backends and exporter backends.

This variable allows providing shortcuts for export snippets.

For example, with:

(setq org-export-snippet-translation-alist
      '(("h" . "html")))

the HTML backend will recognize the contents of "@@h:<b>@@" as HTML code while every other backend will ignore it.

Default
nil
Type
(repeat
 (cons
  (string :tag "Shortcut")
  (string :tag "Backend")))
Since
Org 8.0
[emacs_options]
org-export-snippet-translation-alist = []

org-export-global-macros#

Alist between macro names and expansion templates.

This variable defines macro expansion templates available globally. Associations follow the pattern

(NAME . TEMPLATE)

where NAME is a string beginning with a letter and consisting of alphanumeric characters only.

TEMPLATE is the string to which the macro is going to be expanded. Inside, "$1", "$2"... are place-holders for macro's arguments. Moreover, if the template starts with "(eval", it will be parsed as an Elisp expression and evaluated accordingly.

Default
nil
Type
(repeat
 (cons
  (string :tag "Name")
  (string :tag "Template")))
Since
Org 9.1
[emacs_options]
org-export-global-macros = []

org-export-coding-system#

Coding system for the exported file.

Default
nil
Type
coding-system
Since
Org 8.0
[emacs_options]
org-export-coding-system = false

org-export-copy-to-kill-ring#

Non-nil means pushing export output to the kill ring. This variable is ignored during asynchronous export.

Default
nil
Type
(choice
 (const :tag "Always" t)
 (const :tag "When export is done interactively" if-interactive)
 (const :tag "Never" nil))
Since
Org 8.3
[emacs_options]
org-export-copy-to-kill-ring = false

org-export-initial-scope#

The initial scope when exporting with org-export-dispatch. This variable can be either set to buffer or subtree.

Default
buffer
Type
(choice
 (const :tag "Export current buffer" buffer)
 (const :tag "Export current subtree" subtree))
[emacs_options]
org-export-initial-scope = "buffer"

org-export-show-temporary-export-buffer#

Non-nil means show buffer after exporting to temp buffer. When Org exports to a file, the buffer visiting that file is never shown, but remains buried. However, when exporting to a temporary buffer, that buffer is popped up in a second window. When this variable is nil, the buffer remains buried also in these cases.

Default
t
Type
boolean
[emacs_options]
org-export-show-temporary-export-buffer = true

org-export-body-only#

The initial "Body only" setting when exporting with org-export-dispatch. Non-nil means only export body code, without the surrounding template.

Default
nil
Type
boolean
Since
Org 9.7
[emacs_options]
org-export-body-only = false

org-export-visible-only#

The initial "Visible only" setting when exporting with org-export-dispatch. Non-nil means don't export the contents of hidden elements.

Default
nil
Type
boolean
Since
Org 9.7
[emacs_options]
org-export-visible-only = false

org-export-force-publishing#

The initial "Force publishing" setting for org-export-dispatch. Non-nil means force all files in the project to be published.

Default
nil
Type
boolean
Since
Org 9.7
[emacs_options]
org-export-force-publishing = false

org-export-in-background#

Non-nil means export and publishing commands will run in background. Results from an asynchronous export are never displayed automatically. But you can retrieve them with M-x org-export-stack.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-export-in-background = false

org-export-async-init-file#

File used to initialize external export process.

Value must be either nil or an absolute file name. When nil, the external process is launched like a regular Emacs session, loading user's initialization file and any site specific configuration. If a file is provided, it, and only it, is loaded at start-up.

Therefore, using a specific configuration makes the process to load faster and the export more portable.

Default
nil
Type
(choice
 (const :tag "Regular startup" nil)
 (file :tag "Specific start-up file" :must-match t))
Since
Org 8.0
[emacs_options]
org-export-async-init-file = false

org-export-dispatch-use-expert-ui#

Non-nil means using a non-intrusive org-export-dispatch. In that case, no help buffer is displayed. Though, an indicator for current export scope is added to the prompt ("b" when output is restricted to body only, "s" when it is restricted to the current subtree, "v" when only visible elements are considered for export, "f" when publishing functions should be passed the FORCE argument and "a" when the export should be asynchronous). Also, [?] allows switching back to standard mode.

Default
nil
Type
boolean
Since
Org 8.0
[emacs_options]
org-export-dispatch-use-expert-ui = false

org-export-smart-quotes-alist#

Smart quotes translations.

Alist whose CAR is a language string and CDR is an alist with quote type as key and a plist associating various encodings to their translation as value.

A quote type can be any symbol among primary-opening, primary-closing, secondary-opening, secondary-closing and apostrophe.

Valid encodings include :utf-8, :html, :latex and :texinfo.

If no translation is found, the quote character is left as-is.

Default
(("ar"
  (primary-opening :utf-8 "«" :html "&laquo;" :latex "\\guillemotleft{}" :texinfo "@guillemetleft{}")
  (primary-closing :utf-8 "»" :html "&raquo;" :latex "\\guillemotright{}" :texinfo "@guillemetright{}")
  (secondary-opening :utf-8 "‹" :html "&lsaquo;" :latex "\\guilsinglleft{}" :texinfo "@guilsinglleft{}")
  (secondary-closing :utf-8 "›" :html "&rsaquo;" :latex "\\guilsinglright{}" :texinfo "@guilsinglright{}")
  (apostrophe :utf-8 "’" :html "&rsquo;"))
 ("da"
  (primary-opening :utf-8 "»" :html "&raquo;" :latex ">>" :texinfo "@guillemetright{}")
  (primary-closing :utf-8 "«" :html "&laquo;" :latex "<<" :texinfo "@guillemetleft{}")
  (secondary-opening :utf-8 "›" :html "&rsaquo;" :latex "\\frq{}" :texinfo "@guilsinglright{}")
  (secondary-closing :utf-8 "‹" :html "&lsaquo;" :latex "\\flq{}" :texinfo "@guilsingleft{}")
  (apostrophe :utf-8 "’" :html "&rsquo;"))
 ("de"
  (primary-opening :utf-8 "„" :html "&bdquo;" :latex "\"`" :texinfo "@quotedblbase{}")
  (primary-closing :utf-8 "“" :html "&ldquo;" :latex "\"'" :texinfo "@quotedblleft{}")
  (secondary-opening :utf-8 "‚" :html "&sbquo;" :latex "\\glq{}" :texinfo "@quotesinglbase{}")
  (secondary-closing :utf-8 "‘" :html "&lsquo;" :latex "\\grq{}" :texinfo "@quoteleft{}")
  (apostrophe :utf-8 "’" :html "&rsquo;"))
 ("el"
…
Type
(alist :key-type
       (string :tag "Language name")
       :value-type
       (alist :key-type
              (choice
               (const :tag "Primary opening" primary-opening)
               (const :tag "Primary closing" primary-closing)
               (const :tag "Secondary opening" secondary-opening)
               (const :tag "Secondary closing" secondary-closing)
               (const :tag "Apostrophe" apostrophe))
              :value-type
…
Since
Org 9.7