This is ../../info/org, produced by makeinfo version 4.11 from org.texi.
This manual is for Org version 6.33x.
Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
Foundation
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
"GNU Free Documentation License."
(a) The FSF's Back-Cover Text is: "You have the freedom to copy and
modify this GNU manual. Buying copies from the FSF supports it in
developing GNU and promoting software freedom."
This document is part of a collection distributed under the GNU
Free Documentation License. If you want to distribute this
document separately from the collection, you can do so by adding a
copy of the license to the document, as described in section 6 of
the license.
INFO-DIR-SECTION Emacs
START-INFO-DIR-ENTRY
* Org Mode: (org). Outline-based notes management and organizer
END-INFO-DIR-ENTRY
File: org, Node: Setting Options, Prev: Block agenda, Up: Custom agenda views
10.6.3 Setting options for custom commands
------------------------------------------
Org mode contains a number of variables regulating agenda construction
and display. The global variables define the behavior for all agenda
commands, including the custom commands. However, if you want to change
some settings just for a single custom view, you can do so. Setting
options requires inserting a list of variable names and values at the
right spot in `org-agenda-custom-commands'. For example:
(setq org-agenda-custom-commands
'(("w" todo "WAITING"
((org-agenda-sorting-strategy '(priority-down))
(org-agenda-prefix-format " Mixed: ")))
("U" tags-tree "+boss-urgent"
((org-show-following-heading nil)
(org-show-hierarchy-above nil)))
("N" search ""
((org-agenda-files '("~org/notes.org"))
(org-agenda-text-search-extra-files nil)))))
Now the `C-c a w' command will sort the collected entries only by
priority, and the prefix format is modified to just say ` Mixed: '
instead of giving the category of the entry. The sparse tags tree of
`C-c a U' will now turn out ultra-compact, because neither the headline
hierarchy above the match, nor the headline following the match will be
shown. The command `C-c a N' will do a text search limited to only a
single file.
For command sets creating a block agenda,
`org-agenda-custom-commands' has two separate spots for setting
options. You can add options that should be valid for just a single
command in the set, and options that should be valid for all commands in
the set. The former are just added to the command entry, the latter
must come after the list of command entries. Going back to the block
agenda example (*note Block agenda::), let's change the sorting strategy
for the `C-c a h' commands to `priority-down', but let's sort the
results for GARDEN tags query in the opposite order, `priority-up'.
This would look like this:
(setq org-agenda-custom-commands
'(("h" "Agenda and Home-related tasks"
((agenda)
(tags-todo "home")
(tags "garden"
((org-agenda-sorting-strategy '(priority-up)))))
((org-agenda-sorting-strategy '(priority-down))))
("o" "Agenda and Office-related tasks"
((agenda)
(tags-todo "work")
(tags "office")))))
As you see, the values and parentheses setting is a little complex.
When in doubt, use the customize interface to set this variable--it
fully supports its structure. Just one caveat: when setting options in
this interface, the _values_ are just Lisp expressions. So if the
value is a string, you need to add the double-quotes around the value
yourself.
File: org, Node: Exporting Agenda Views, Next: Agenda column view, Prev: Custom agenda views, Up: Agenda Views
10.7 Exporting Agenda Views
===========================
If you are away from your computer, it can be very useful to have a
printed version of some agenda views to carry around. Org mode can
export custom agenda views as plain text, HTML(1), Postscript, PDF(2),
and iCalendar files. If you want to do this only occasionally, use the
command
`C-x C-w'
Write the agenda view to a file. Depending on the extension of
the selected file name, the view will be exported as HTML
(extension `.html' or `.htm'), Postscript (extension `.ps'),
iCalendar (extension `.ics'), or plain text (any other extension).
Use the variable `org-agenda-exporter-settings' to set options for
`ps-print' and for `htmlize' to be used during export, for example
(setq org-agenda-exporter-settings
'((ps-number-of-columns 2)
(ps-landscape-mode t)
(org-agenda-add-entry-text-maxlines 5)
(htmlize-output-type 'css)))
If you need to export certain agenda views frequently, you can
associate any custom agenda command with a list of output file names
(3). Here is an example that first defines custom commands for the
agenda and the global TODO list, together with a number of files to
which to export them. Then we define two block agenda commands and
specify file names for them as well. File names can be relative to the
current working directory, or absolute.
(setq org-agenda-custom-commands
'(("X" agenda "" nil ("agenda.html" "agenda.ps"))
("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps"))
("h" "Agenda and Home-related tasks"
((agenda "")
(tags-todo "home")
(tags "garden"))
nil
("~/views/home.html"))
("o" "Agenda and Office-related tasks"
((agenda)
(tags-todo "work")
(tags "office"))
nil
("~/views/office.ps" "~/calendars/office.ics"))))
The extension of the file name determines the type of export. If it
is `.html', Org mode will use the `htmlize.el' package to convert the
buffer to HTML and save it to this file name. If the extension is
`.ps', `ps-print-buffer-with-faces' is used to produce Postscript
output. If the extension is `.ics', iCalendar export is run export
over all files that were used to construct the agenda, and limit the
export to entries listed in the agenda. Any other extension produces a
plain ASCII file.
The export files are _not_ created when you use one of those
commands interactively because this might use too much overhead.
Instead, there is a special command to produce _all_ specified files in
one step:
`C-c a e'
Export all agenda views that have export file names associated with
them.
You can use the options section of the custom agenda commands to also
set options for the export commands. For example:
(setq org-agenda-custom-commands
'(("X" agenda ""
((ps-number-of-columns 2)
(ps-landscape-mode t)
(org-agenda-prefix-format " [ ] ")
(org-agenda-with-colors nil)
(org-agenda-remove-tags t))
("theagenda.ps"))))
This command sets two options for the Postscript exporter, to make it
print in two columns in landscape format--the resulting page can be cut
in two and then used in a paper agenda. The remaining settings modify
the agenda prefix to omit category and scheduling information, and
instead include a checkbox to check off items. We also remove the tags
to make the lines compact, and we don't want to use colors for the
black-and-white printer. Settings specified in
`org-agenda-exporter-settings' will also apply, but the settings in
`org-agenda-custom-commands' take precedence.
From the command line you may also use
emacs -f org-batch-store-agenda-views -kill
or, if you need to modify some parameters(4)
emacs -eval '(org-batch-store-agenda-views \
org-agenda-ndays 30 \
org-agenda-start-day "2007-11-01" \
org-agenda-include-diary nil \
org-agenda-files (quote ("~/org/project.org")))' \
-kill
which will create the agenda views restricted to the file
`~/org/project.org', without diary entries and with a 30-day extent.
You can also extract agenda information in a way that allows further
processing by other programs. See *note Extracting agenda
information::, for more information.
---------- Footnotes ----------
(1) You need to install Hrvoje Niksic's `htmlize.el'.
(2) To create PDF output, the ghostscript `ps2pdf' utility must be
installed on the system. Selecting a PDF file with also create the
postscript file.
(3) If you want to store standard views like the weekly agenda or
the global TODO list as well, you need to define custom commands for
them in order to be able to specify file names.
(4) Quoting depends on the system you use, please check the FAQ for
examples.
File: org, Node: Agenda column view, Prev: Exporting Agenda Views, Up: Agenda Views
10.8 Using column view in the agenda
====================================
Column view (*note Column view::) is normally used to view and edit
properties embedded in the hierarchical structure of an Org file. It
can be quite useful to use column view also from the agenda, where
entries are collected by certain criteria.
`C-c C-x C-c'
Turn on column view in the agenda.
To understand how to use this properly, it is important to realize
that the entries in the agenda are no longer in their proper outline
environment. This causes the following issues:
1. Org needs to make a decision which `COLUMNS' format to use. Since
the entries in the agenda are collected from different files, and
different files may have different `COLUMNS' formats, this is a
non-trivial problem. Org first checks if the variable
`org-overriding-columns-format' is currently set, and if so, takes
the format from there. Otherwise it takes the format associated
with the first item in the agenda, or, if that item does not have
a specific format (defined in a property, or in its file), it uses
`org-columns-default-format'.
2. If any of the columns has a summary type defined (*note Column
attributes::), turning on column view in the agenda will visit all
relevant agenda files and make sure that the computations of this
property are up to date. This is also true for the special
`CLOCKSUM' property. Org will then sum the values displayed in
the agenda. In the daily/weekly agenda, the sums will cover a
single day, in all other views they cover the entire block. It is
vital to realize that the agenda may show the same entry _twice_
(for example as scheduled and as a deadline), and it may show two
entries from the same hierarchy (for example a _parent_ and its
_child_). In these cases, the summation in the agenda will lead
to incorrect results because some values will count double.
3. When the column view in the agenda shows the `CLOCKSUM', that is
always the entire clocked time for this item. So even in the
daily/weekly agenda, the clocksum listed in column view may
originate from times outside the current view. This has the
advantage that you can compare these values with a column listing
the planned total effort for a task--one of the major applications
for column view in the agenda. If you want information about
clocked time in the displayed period use clock table mode (press
`R' in the agenda).
File: org, Node: Markup, Next: Exporting, Prev: Agenda Views, Up: Top
11 Markup for rich export
*************************
When exporting Org-mode documents, the exporter tries to reflect the
structure of the document as accurately as possible in the backend.
Since export targets like HTML, LaTeX, or DocBook allow much richer
formatting, Org mode has rules on how to prepare text for rich export.
This section summarizes the markup rules used in an Org-mode buffer.
* Menu:
* Structural markup elements:: The basic structure as seen by the exporter
* Images and tables:: Tables and Images will be included
* Literal examples:: Source code examples with special formatting
* Include files:: Include additional files into a document
* Macro replacement:: Use macros to create complex output
* Embedded LaTeX:: LaTeX can be freely used inside Org documents
File: org, Node: Structural markup elements, Next: Images and tables, Prev: Markup, Up: Markup
11.1 Structural markup elements
===============================
* Menu:
* Document title:: Where the title is taken from
* Headings and sections:: The document structure as seen by the exporter
* Table of contents:: The if and where of the table of contents
* Initial text:: Text before the first heading?
* Lists:: Lists
* Paragraphs:: Paragraphs
* Footnote markup:: Footnotes
* Emphasis and monospace:: Bold, italic, etc.
* Horizontal rules:: Make a line
* Comment lines:: What will *not* be exported
File: org, Node: Document title, Next: Headings and sections, Prev: Structural markup elements, Up: Structural markup elements
Document title
--------------
The title of the exported document is taken from the special line
#+TITLE: This is the title of the document
If this line does not exist, the title is derived from the first
non-empty, non-comment line in the buffer. If no such line exists, or
if you have turned off exporting of the text before the first headline
(see below), the title will be the file name without extension.
If you are exporting only a subtree by marking is as the region, the
heading of the subtree will become the title of the document. If the
subtree has a property `EXPORT_TITLE', that will take precedence.
File: org, Node: Headings and sections, Next: Table of contents, Prev: Document title, Up: Structural markup elements
Headings and sections
---------------------
The outline structure of the document as described in *note Document
Structure::, forms the basis for defining sections of the exported
document. However, since the outline structure is also used for (for
example) lists of tasks, only the first three outline levels will be
used as headings. Deeper levels will become itemized lists. You can
change the location of this switch globally by setting the variable
`org-export-headline-levels', or on a per-file basis with a line
#+OPTIONS: H:4
File: org, Node: Table of contents, Next: Initial text, Prev: Headings and sections, Up: Structural markup elements
Table of contents
-----------------
The table of contents is normally inserted directly before the first
headline of the file. If you would like to get it to a different
location, insert the string `[TABLE-OF-CONTENTS]' on a line by itself
at the desired location. The depth of the table of contents is by
default the same as the number of headline levels, but you can choose a
smaller number, or turn off the table of contents entirely, by
configuring the variable `org-export-with-toc', or on a per-file basis
with a line like
#+OPTIONS: toc:2 (only to two levels in TOC)
#+OPTIONS: toc:nil (no TOC at all)
File: org, Node: Initial text, Next: Lists, Prev: Table of contents, Up: Structural markup elements
Text before the first headline
------------------------------
Org mode normally exports the text before the first headline, and even
uses the first line as the document title. The text will be fully
marked up. If you need to include literal HTML, LaTeX, or DocBook
code, use the special constructs described below in the sections for
the individual exporters.
Some people like to use the space before the first headline for
setup and internal links and therefore would like to control the
exported text before the first headline in a different way. You can do
so by setting the variable `org-export-skip-text-before-1st-heading' to
`t'. On a per-file basis, you can get the same effect with `#+OPTIONS:
skip:t'.
If you still want to have some text before the first headline, use the
`#+TEXT' construct:
#+OPTIONS: skip:t
#+TEXT: This text will go before the *first* headline.
#+TEXT: [TABLE-OF-CONTENTS]
#+TEXT: This goes between the table of contents and the first headline
File: org, Node: Lists, Next: Paragraphs, Prev: Initial text, Up: Structural markup elements
Lists
-----
Plain lists as described in *note Plain lists::, are translated to the
backend's syntax for such lists. Most backends support unordered,
ordered, and description lists.
File: org, Node: Paragraphs, Next: Footnote markup, Prev: Lists, Up: Structural markup elements
Paragraphs, line breaks, and quoting
------------------------------------
Paragraphs are separated by at least one empty line. If you need to
enforce a line break within a paragraph, use `\\' at the end of a line.
To keep the line breaks in a region, but otherwise use normal
formatting, you can use this construct, which can also be used to
format poetry.
#+BEGIN_VERSE
Great clouds overhead
Tiny black birds rise and fall
Snow covers Emacs
-- AlexSchroeder
#+END_VERSE
When quoting a passage from another document, it is customary to
format this as a paragraph that is indented on both the left and the
right margin. You can include quotations in Org-mode documents like
this:
#+BEGIN_QUOTE
Everything should be made as simple as possible,
but not any simpler -- Albert Einstein
#+END_QUOTE
If you would like to center some text, do it like this:
#+BEGIN_CENTER
Everything should be made as simple as possible, \\
but not any simpler
#+END_CENTER
File: org, Node: Footnote markup, Next: Emphasis and monospace, Prev: Paragraphs, Up: Structural markup elements
Footnote markup
---------------
Footnotes defined in the way described in *note Footnotes::, will be
exported by all backends. Org allows multiple references to the same
note, and different backends support this to varying degrees.
File: org, Node: Emphasis and monospace, Next: Horizontal rules, Prev: Footnote markup, Up: Structural markup elements
Emphasis and monospace
----------------------
You can make words *bold*, /italic/, _underlined_, `=code=' and
`~verbatim~', and, if you must, `+strike-through+'. Text in the code
and verbatim string is not processed for Org-mode specific syntax, it
is exported verbatim.
File: org, Node: Horizontal rules, Next: Comment lines, Prev: Emphasis and monospace, Up: Structural markup elements
Horizontal rules
----------------
A line consisting of only dashes, and at least 5 of them, will be
exported as a horizontal line (`
' in HTML).
File: org, Node: Comment lines, Prev: Horizontal rules, Up: Structural markup elements
Comment lines
-------------
Lines starting with `#' in column zero are treated as comments and will
never be exported. If you want an indented line to be treated as a
comment, start it with `#+ '. Also entire subtrees starting with the
word `COMMENT' will never be exported. Finally, regions surrounded by
`#+BEGIN_COMMENT' ... `#+END_COMMENT' will not be exported.
`C-c ;'
Toggle the COMMENT keyword at the beginning of an entry.
File: org, Node: Images and tables, Next: Literal examples, Prev: Structural markup elements, Up: Markup
11.2 Images and Tables
======================
Both the native Org mode tables (*note Tables::) and tables formatted
with the `table.el' package will be exported properly. For Org mode
tables, the lines before the first horizontal separator line will
become table header lines. You can use the following lines somewhere
before the table to assign a caption and a label for cross references:
#+CAPTION: This is the caption for the next table (or link)
#+LABEL: tbl:basic-data
| ... | ...|
|-----|----|
Some backends (HTML, LaTeX, and DocBook) allow you to directly
include images into the exported document. Org does this, if a link to
an image files does not have a description part, for example
`[[./img/a.jpg]]'. If you wish to define a caption for the image and
maybe a label for internal cross references, you sure that the link is
on a line by itself precede it with:
#+CAPTION: This is the caption for the next figure link (or table)
#+LABEL: fig:SED-HR4049
[[./img/a.jpg]]
You may also define additional attributes for the figure. As this is
backend-specific, see the sections about the individual backends for
more information.
File: org, Node: Literal examples, Next: Include files, Prev: Images and tables, Up: Markup
11.3 Literal examples
=====================
You can include literal examples that should not be subjected to
markup. Such examples will be typeset in monospace, so this is well
suited for source code and similar examples.
#+BEGIN_EXAMPLE
Some example from a text file.
#+END_EXAMPLE
Note that such blocks may be indented in order to align nicely with
indented text and in particular with plain list structure (*note Plain
lists::). For simplicity when using small examples, you can also start
the example lines with a colon followed by a space. There may also be
additional whitespace before the colon:
Here is an example
: Some example from a text file.
If the example is source code from a programming language, or any
other text that can be marked up by font-lock in Emacs, you can ask for
the example to look like the fontified Emacs buffer(1). This is done
with the `src' block, where you also need to specify the name of the
major mode that should be used to fontify the example:
#+BEGIN_SRC emacs-lisp
(defun org-xor (a b)
"Exclusive or."
(if a (not b) b))
#+END_SRC
Both in `example' and in `src' snippets, you can add a `-n' switch
to the end of the `BEGIN' line, to get the lines of the example
numbered. If you use a `+n' switch, the numbering from the previous
numbered snippet will be continued in the current one. In literal
examples, Org will interpret strings like `(ref:name)' as labels, and
use them as targets for special hyperlinks like `[[(name)]]' (i.e. the
reference name enclosed in single parenthesis). In HTML, hovering the
mouse over such a link will remote-highlight the corresponding code
line, which is kind of cool.
You can also add a `-r' switch which removes the labels from the
source code(2). With the `-n' switch, links to these references will
be labeled by the line numbers from the code listing, otherwise links
will use the labels with no parentheses. Here is an example:
#+BEGIN_SRC emacs-lisp -n -r
(save-excursion (ref:sc)
(goto-char (point-min)) (ref:jump)
#+END_SRC
In line [[(sc)]] we remember the current position. [[(jump)][Line (jump)]]
jumps to point-min.
If the syntax for the label format conflicts with the language
syntax, use a `-l' switch to change the format, for example
`#+BEGIN_SRC pascal -n -r -l "((%s))"'. See also the variable
`org-coderef-label-format'.
HTML export also allows examples to be published as text areas,
*Note Text areas in HTML export::.
`C-c ''
Edit the source code example at point in its native mode. This
works by switching to a temporary buffer with the source code.
You need to exit by pressing `C-c '' again(3), the edited version
will then replace the old version in the Org buffer. Fixed-width
regions (where each line starts with a colon followed by a space)
will be edited using `artist-mode'(4) to allow creating ASCII
drawings easily. Using this command in an empty line will create
a new fixed-width region.
`C-c l'
Calling `org-store-link' while editing a source code example in a
temporary buffer created with `C-c '' will prompt for a label,
make sure that it is unique in the current buffer, and insert it
with the proper formatting like `(ref:label)' at the end of the
current line. Then the label is stored as a link `(label)', for
retrieval with `C-c C-l'.
---------- Footnotes ----------
(1) Currently this works for the HTML backend, and requires the
`htmlize.el' package version 1.34 or later. It also works for LaTeX
with the listings package, if you turn on the option
`org-export-latex-listings' and make sure that the listings package is
included by the LaTeX header.
(2) Adding `-k' to `-n -r' will keep the labels in the source code
while using line numbers for the links, which might be useful to
explain those in an org-mode example code.
(3) Upon exit, lines starting with `*' or `#' will get a comma
prepended, to keep them from being interpreted by Org as outline nodes
or special comments. These commas will be striped for editing with
`C-c '', and also for export.
(4) You may select a different-mode with the variable
`org-edit-fixed-width-region-mode'.
File: org, Node: Include files, Next: Macro replacement, Prev: Literal examples, Up: Markup
11.4 Include files
==================
During export, you can include the content of another file. For
example, to include your `.emacs' file, you could use:
#+INCLUDE: "~/.emacs" src emacs-lisp
The optional second and third parameter are the markup (e.g. `quote',
`example', or `src'), and, if the markup is `src', the language for
formatting the contents. The markup is optional, if it is not given,
the text will be assumed to be in Org mode format and will be processed
normally. The include line will also allow additional keyword
parameters `:prefix1' and `:prefix' to specify prefixes for the first
line and for each following line, as well as any options accepted by
the selected markup. For example, to include a file as an item, use
#+INCLUDE: "~/snippets/xx" :prefix1 " + " :prefix " "
`C-c ''
Visit the include file at point.
File: org, Node: Macro replacement, Next: Embedded LaTeX, Prev: Include files, Up: Markup
11.5 Macro replacement
======================
You can define text snippets with
#+MACRO: name replacement text $1, $2 are arguments
which can be referenced anywhere in the document (even in code
examples) with `{{{name(arg1,arg2)}}}'. In addition to defined macros,
`{{{title}}}', `{{{author}}}', etc., will reference information set by
the `#+TITLE:', `#+AUTHOR:', and similar lines. Also,
`{{{date(FORMAT)}}}' and `{{{modification-time(FORMAT)}}}' refer to
current date time and to the modification time of the file being
exported, respectively. FORMAT should be a format string understood by
`format-time-string'.
Macro expansion takes place during export, and some people use it to
construct complex HTML code.
File: org, Node: Embedded LaTeX, Prev: Macro replacement, Up: Markup
11.6 Embedded LaTeX
===================
Plain ASCII is normally sufficient for almost all note taking. One
exception, however, are scientific notes which need to be able to
contain mathematical symbols and the occasional formula. LaTeX(1) is
widely used to typeset scientific documents. Org mode supports
embedding LaTeX code into its files, because many academics are used to
reading LaTeX source code, and because it can be readily processed into
images for HTML production.
It is not necessary to mark LaTeX macros and code in any special way.
If you observe a few conventions, Org mode knows how to find it and what
to do with it.
* Menu:
* Special symbols:: Greek letters and other symbols
* Subscripts and superscripts:: Simple syntax for raising/lowering text
* LaTeX fragments:: Complex formulas made easy
* Previewing LaTeX fragments:: What will this snippet look like?
* CDLaTeX mode:: Speed up entering of formulas
---------- Footnotes ----------
(1) LaTeX is a macro system based on Donald E. Knuth's TeX system.
Many of the features described here as "LaTeX" are really from TeX, but
for simplicity I am blurring this distinction.
File: org, Node: Special symbols, Next: Subscripts and superscripts, Prev: Embedded LaTeX, Up: Embedded LaTeX
11.6.1 Special symbols
----------------------
You can use LaTeX macros to insert special symbols like `\alpha' to
indicate the Greek letter, or `\to' to indicate an arrow. Completion
for these macros is available, just type `\' and maybe a few letters,
and press `M-' to see possible completions. Unlike LaTeX code,
Org mode allows these macros to be present without surrounding math
delimiters, for example:
Angles are written as Greek letters \alpha, \beta and \gamma.
During export, these symbols will be transformed into the native
format of the exporter backend. Strings like `\alpha' will be exported
as `α' in the HTML output, and as `$\alpha$' in the LaTeX output.
Similarly, `\nbsp' will become ` ' in HTML and `~' in LaTeX. If
you need such a symbol inside a word, terminate it like this:
`\Aacute{}stor'.
A large number of entities is provided, with names taken from both
HTML and LaTeX, see the variable `org-html-entities' for the complete
list. `\-' is treated as a shy hyphen, and `--', `---', and `...' are
all converted into special commands creating hyphens of different
lengths or a compact set of dots.
File: org, Node: Subscripts and superscripts, Next: LaTeX fragments, Prev: Special symbols, Up: Embedded LaTeX
11.6.2 Subscripts and superscripts
----------------------------------
Just like in LaTeX, `^' and `_' are used to indicate super- and
subscripts. Again, these can be used without embedding them in
math-mode delimiters. To increase the readability of ASCII text, it is
not necessary (but OK) to surround multi-character sub- and superscripts
with curly braces. For example
The mass if the sun is M_sun = 1.989 x 10^30 kg. The radius of
the sun is R_{sun} = 6.96 x 10^8 m.
To avoid interpretation as raised or lowered text, you can quote `^'
and `_' with a backslash: `\^' and `\_'. If you write a text where the
underscore is often used in a different context, Org's convention to
always interpret these as subscripts can get in your way. Configure the
variable `org-export-with-sub-superscripts' to globally change this
convention, or use, on a per-file basis:
#+OPTIONS: ^:{}
File: org, Node: LaTeX fragments, Next: Previewing LaTeX fragments, Prev: Subscripts and superscripts, Up: Embedded LaTeX
11.6.3 LaTeX fragments
----------------------
With symbols, sub- and superscripts, HTML is pretty much at its end when
it comes to representing mathematical formulas(1). More complex
expressions need a dedicated formula processor. To this end, Org mode
can contain arbitrary LaTeX fragments. It provides commands to preview
the typeset result of these fragments, and upon export to HTML, all
fragments will be converted to images and inlined into the HTML
document(2). For this to work you need to be on a system with a working
LaTeX installation. You also need the `dvipng' program, available at
`http://sourceforge.net/projects/dvipng/'. The LaTeX header that will
be used when processing a fragment can be configured with the variable
`org-format-latex-header'.
LaTeX fragments don't need any special marking at all. The following
snippets will be identified as LaTeX source code:
* Environments of any kind. The only requirement is that the
`\begin' statement appears on a new line, preceded by only
whitespace.
* Text within the usual LaTeX math delimiters. To avoid conflicts
with currency specifications, single `$' characters are only
recognized as math delimiters if the enclosed text contains at
most two line breaks, is directly attached to the `$' characters
with no whitespace in between, and if the closing `$' is followed
by whitespace, punctuation or a dash. For the other delimiters,
there is no such restriction, so when in doubt, use `\(...\)' as
inline math delimiters.
For example:
\begin{equation} % arbitrary environments,
x=\sqrt{b} % even tables, figures
\end{equation} % etc
If $a^2=b$ and \( b=2 \), then the solution must be
either $$ a=+\sqrt{2} $$ or \[ a=-\sqrt{2} \].
If you need any of the delimiter ASCII sequences for other purposes, you
can configure the option `org-format-latex-options' to deselect the
ones you do not wish to have interpreted by the LaTeX converter.
---------- Footnotes ----------
(1) Yes, there is MathML, but that is not yet fully supported by
many browsers, and there is no decent converter for turning LaTeX or
ASCII representations of formulas into MathML. So for the time being,
converting formulas into images seems the way to go.
(2) The LaTeX export will not use images for displaying LaTeX
fragments but include these fragments directly into the LaTeX code.
File: org, Node: Previewing LaTeX fragments, Next: CDLaTeX mode, Prev: LaTeX fragments, Up: Embedded LaTeX
11.6.4 Previewing LaTeX fragments
---------------------------------
LaTeX fragments can be processed to produce preview images of the
typeset expressions:
`C-c C-x C-l'
Produce a preview image of the LaTeX fragment at point and overlay
it over the source code. If there is no fragment at point,
process all fragments in the current entry (between two
headlines). When called with a prefix argument, process the
entire subtree. When called with two prefix arguments, or when
the cursor is before the first headline, process the entire buffer.
`C-c C-c'
Remove the overlay preview images.
You can customize the variable `org-format-latex-options' to
influence some aspects of the preview. In particular, the `:scale' (and
for HTML export, `:html-scale') property can be used to adjust the size
of the preview images.
During HTML export (*note HTML export::), all LaTeX fragments are
converted into images and inlined into the document if the following
setting is active:
(setq org-export-with-LaTeX-fragments t)
File: org, Node: CDLaTeX mode, Prev: Previewing LaTeX fragments, Up: Embedded LaTeX
11.6.5 Using CDLaTeX to enter math
----------------------------------
CDLaTeX mode is a minor mode that is normally used in combination with a
major LaTeX mode like AUCTeX in order to speed-up insertion of
environments and math templates. Inside Org mode, you can make use of
some of the features of CDLaTeX mode. You need to install `cdlatex.el'
and `texmathp.el' (the latter comes also with AUCTeX) from
`http://www.astro.uva.nl/~dominik/Tools/cdlatex'. Don't use CDLaTeX
mode itself under Org mode, but use the light version
`org-cdlatex-mode' that comes as part of Org mode. Turn it on for the
current buffer with `M-x org-cdlatex-mode', or for all Org files with
(add-hook 'org-mode-hook 'turn-on-org-cdlatex)
When this mode is enabled, the following features are present (for
more details see the documentation of CDLaTeX mode):
* Environment templates can be inserted with `C-c {'.
* The key will do template expansion if the cursor is inside a
LaTeX fragment(1). For example, will expand `fr' to
`\frac{}{}' and position the cursor correctly inside the first
brace. Another will get you into the second brace. Even
outside fragments, will expand environment abbreviations at
the beginning of a line. For example, if you write `equ' at the
beginning of a line and press , this abbreviation will be
expanded to an `equation' environment. To get a list of all
abbreviations, type `M-x cdlatex-command-help'.
* Pressing `_' and `^' inside a LaTeX fragment will insert these
characters together with a pair of braces. If you use to
move out of the braces, and if the braces surround only a single
character or macro, they are removed again (depending on the
variable `cdlatex-simplify-sub-super-scripts').
* Pressing the backquote ``' followed by a character inserts math
macros, also outside LaTeX fragments. If you wait more than 1.5
seconds after the backquote, a help window will pop up.
* Pressing the single-quote `'' followed by another character
modifies the symbol before point with an accent or a font. If you
wait more than 1.5 seconds after the backquote, a help window will
pop up. Character modification will work only inside LaTeX
fragments, outside the quote is normal.
---------- Footnotes ----------
(1) Org mode has a method to test if the cursor is inside such a
fragment, see the documentation of the function
`org-inside-LaTeX-fragment-p'.
File: org, Node: Exporting, Next: Publishing, Prev: Markup, Up: Top
12 Exporting
************
Org-mode documents can be exported into a variety of other formats. For
printing and sharing of notes, ASCII export produces a readable and
simple version of an Org file. HTML export allows you to publish a
notes file on the web, while the XOXO format provides a solid base for
exchange with a broad range of other applications. LaTeX export lets
you use Org mode and its structured editing functions to easily create
LaTeX files. DocBook export makes it possible to convert Org files to
many other formats using DocBook tools. To incorporate entries with
associated times like deadlines or appointments into a desktop calendar
program like iCal, Org mode can also produce extracts in the iCalendar
format. Currently Org mode only supports export, not import of these
different formats.
Org supports export of selected regions when `transient-mark-mode' is
enabled (default in Emacs 23).
* Menu:
* Selective export:: Using tags to select and exclude trees
* Export options:: Per-file export settings
* The export dispatcher:: How to access exporter commands
* ASCII export:: Exporting to plain ASCII
* HTML export:: Exporting to HTML
* LaTeX and PDF export:: Exporting to LaTeX, and processing to PDF
* DocBook export:: Exporting to DocBook
* Freemind export:: Exporting to Freemind mind maps
* XOXO export:: Exporting to XOXO
* iCalendar export:: Exporting in iCalendar format
File: org, Node: Selective export, Next: Export options, Prev: Exporting, Up: Exporting
12.1 Selective export
=====================
You may use tags to select the parts of a document that should be
exported, or to exclude parts from export. This behavior is governed
by two variables: `org-export-select-tags' and
`org-export-exclude-tags'.
Org first checks if any of the _select_ tags is present in the
buffer. If yes, all trees that do not carry one of these tags will be
excluded. If a selected tree is a subtree, the heading hierarchy above
it will also be selected for export, but not the text below those
headings.
If none of the select tags is found, the whole buffer will be selected
for export.
Finally, all subtrees that are marked by any of the _exclude_ tags will
be removed from the export buffer.
File: org, Node: Export options, Next: The export dispatcher, Prev: Selective export, Up: Exporting
12.2 Export options
===================
The exporter recognizes special lines in the buffer which provide
additional information. These lines may be put anywhere in the file.
The whole set of lines can be inserted into the buffer with `C-c C-e
t'. For individual lines, a good way to make sure the keyword is
correct is to type `#+' and then use `M-' completion (*note
Completion::). For a summary of other in-buffer settings not
specifically related to export, see *note In-buffer settings::. In
particular, note that you can place commonly-used (export) options in a
separate file which can be included using `#+SETUPFILE'.
`C-c C-e t'
Insert template with export options, see example below.
#+TITLE: the title to be shown (default is the buffer name)
#+AUTHOR: the author (default taken from `user-full-name')
#+DATE: a date, fixed, of a format string for `format-time-string'
#+EMAIL: his/her email address (default from `user-mail-address')
#+DESCRIPTION: the page description, e.g. for the XHTML meta tag
#+KEYWORDS: the page keywords, e.g. for the XHTML meta tag
#+LANGUAGE: language for HTML, e.g. `en' (`org-export-default-language')
#+TEXT: Some descriptive text to be inserted at the beginning.
#+TEXT: Several lines may be given.
#+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t f:t TeX:t ...
#+BIND: lisp-var lisp-val, e.g.: org-export-latex-low-levels itemize
You need to confirm using these, or configure `org-export-allow-BIND'
#+LINK_UP: the ``up'' link of an exported page
#+LINK_HOME: the ``home'' link of an exported page
#+LATEX_HEADER: extra line(s) for the LaTeX header, like \usepackage{xyz}
#+EXPORT_SELECT_TAGS: Tags that select a tree for export
#+EXPORT_EXCLUDE_TAGS: Tags that exclude a tree from export
The OPTIONS line is a compact(1) form to specify export settings. Here
you can:
H: set the number of headline levels for export
num: turn on/off section-numbers
toc: turn on/off table of contents, or set level limit (integer)
\n: turn on/off line-break-preservation
@: turn on/off quoted HTML tags
:: turn on/off fixed-width sections
|: turn on/off tables
^: turn on/off TeX-like syntax for sub- and superscripts. If
you write "^:{}", `a_{b}' will be interpreted, but
the simple `a_b' will be left as it is.
-: turn on/off conversion of special strings.
f: turn on/off footnotes like this[1].
todo: turn on/off inclusion of TODO keywords into exported text
pri: turn on/off priority cookies
tags: turn on/off inclusion of tags, may also be `not-in-toc'
<: turn on/off inclusion of any time/date stamps like DEADLINES
*: turn on/off emphasized text (bold, italic, underlined)
TeX: turn on/off simple TeX macros in plain text
LaTeX: turn on/off LaTeX fragments
skip: turn on/off skipping the text before the first heading
author: turn on/off inclusion of author name/email into exported file
creator: turn on/off inclusion of creator info into exported file
timestamp: turn on/off inclusion creation time into exported file
d: turn on/off inclusion of drawers
These options take effect in both the HTML and LaTeX export, except
for `TeX' and `LaTeX', which are respectively `t' and `nil' for the
LaTeX export.
When exporting only a single subtree by selecting it with `C-c @'
before calling an export command, the subtree can overrule some of the
file's export settings with properties `EXPORT_FILE_NAME',
`EXPORT_TITLE', `EXPORT_TEXT', `EXPORT_AUTHOR', `EXPORT_DATE', and
`EXPORT_OPTIONS'.
---------- Footnotes ----------
(1) If you want to configure many options this way, you can use
several OPTIONS lines.
File: org, Node: The export dispatcher, Next: ASCII export, Prev: Export options, Up: Exporting
12.3 The export dispatcher
==========================
All export commands can be reached using the export dispatcher, which
is a prefix key that prompts for an additional key specifying the
command. Normally the entire file is exported, but if there is an
active region that contains one outline tree, the first heading is used
as document title and the subtrees are exported.
`C-c C-e'
Dispatcher for export and publishing commands. Displays a
help-window listing the additional key(s) needed to launch an
export or publishing command. The prefix arg is passed through to
the exporter. A double prefix `C-u C-u' causes most commands to
be executed in the background, in a separate Emacs process(1).
`C-c C-e v'
Like `C-c C-e', but only export the text that is currently visible
(i.e. not hidden by outline visibility).
`C-u C-u C-c C-e'
Call an the exporter, but reverse the setting of
`org-export-run-in-background', i.e. request background processing
if not set, or force processing in the current Emacs process if
set.
---------- Footnotes ----------
(1) To make this behavior the default, customize the variable
`org-export-run-in-background'.
File: org, Node: ASCII export, Next: HTML export, Prev: The export dispatcher, Up: Exporting
12.4 ASCII export
=================
ASCII export produces a simple and very readable version of an Org-mode
file.
`C-c C-e a'
Export as ASCII file. For an Org file, `myfile.org', the ASCII
file will be `myfile.txt'. The file will be overwritten without
warning. If there is an active region(1), only the region will be
exported. If the selected region is a single tree(2), the tree
head will become the document title. If the tree head entry has
or inherits an `EXPORT_FILE_NAME' property, that name will be used
for the export.
`C-c C-e A'
Export to a temporary buffer, do not create a file.
`C-c C-e v a'
Export only the visible part of the document.
In the exported version, the first 3 outline levels will become
headlines, defining a general document structure. Additional levels
will be exported as itemized lists. If you want that transition to
occur at a different level, specify it with a prefix argument. For
example,
C-1 C-c C-e a
creates only top level headlines and does the rest as items. When
headlines are converted to items, the indentation of the text following
the headline is changed to fit nicely under the item. This is done with
the assumption that the first body line indicates the base indentation
of the body text. Any indentation larger than this is adjusted to
preserve the layout relative to the first line. Should there be lines
with less indentation than the first, these are left alone.
Links will be exported in a footnote-like style, with the
descriptive part in the text and the link in a note before the next
heading. See the variable `org-export-ascii-links-to-notes' for
details and other options.
---------- Footnotes ----------
(1) This requires `transient-mark-mode' be turned on.
(2) To select the current subtree, use `C-c @'.
File: org, Node: HTML export, Next: LaTeX and PDF export, Prev: ASCII export, Up: Exporting
12.5 HTML export
================
Org mode contains an HTML (XHTML 1.0 strict) exporter with extensive
HTML formatting, in ways similar to John Gruber's _markdown_ language,
but with additional support for tables.
* Menu:
* HTML Export commands:: How to invoke HTML export
* Quoting HTML tags:: Using direct HTML in Org mode
* Links in HTML export:: How links will be interpreted and formatted
* Tables in HTML export:: How to modify the formatting of tables
* Images in HTML export:: How to insert figures into HTML output
* Text areas in HTML export:: An alternative way to show an example
* CSS support:: Changing the appearance of the output
* Javascript support:: Info and Folding in a web browser
File: org, Node: HTML Export commands, Next: Quoting HTML tags, Prev: HTML export, Up: HTML export
12.5.1 HTML export commands
---------------------------
`C-c C-e h'
Export as HTML file `myfile.html'. For an Org file `myfile.org',
the ASCII file will be `myfile.html'. The file will be overwritten
without warning. If there is an active region(1), only the region
will be exported. If the selected region is a single tree(2), the
tree head will become the document title. If the tree head entry
has, or inherits, an `EXPORT_FILE_NAME' property, that name will
be used for the export.
`C-c C-e b'
Export as HTML file and immediately open it with a browser.
`C-c C-e H'
Export to a temporary buffer, do not create a file.
`C-c C-e R'
Export the active region to a temporary buffer. With a prefix
argument, do not produce the file header and footer, but just the
plain HTML section for the region. This is good for cut-and-paste
operations.
`C-c C-e v h'
`C-c C-e v b'
`C-c C-e v H'
`C-c C-e v R'
Export only the visible part of the document.
`M-x org-export-region-as-html'
Convert the region to HTML under the assumption that it was
Org-mode syntax before. This is a global command that can be
invoked in any buffer.
`M-x org-replace-region-by-HTML'
Replace the active region (assumed to be in Org-mode syntax) by
HTML code.
In the exported version, the first 3 outline levels will become
headlines, defining a general document structure. Additional levels
will be exported as itemized lists. If you want that transition to
occur at a different level, specify it with a numeric prefix argument.
For example,
C-2 C-c C-e b
creates two levels of headings and does the rest as items.
---------- Footnotes ----------
(1) This requires `transient-mark-mode' be turned on.
(2) To select the current subtree, use `C-c @'.
File: org, Node: Quoting HTML tags, Next: Links in HTML export, Prev: HTML Export commands, Up: HTML export
12.5.2 Quoting HTML tags
------------------------
Plain `<' and `>' are always transformed to `<' and `>' in HTML
export. If you want to include simple HTML tags which should be
interpreted as such, mark them with `@' as in `@bold text@ '.
Note that this really works only for simple tags. For more extensive
HTML that should be copied verbatim to the exported file use either
#+HTML: Literal HTML code for export
or
#+BEGIN_HTML
All lines between these markers are exported literally
#+END_HTML
File: org, Node: Links in HTML export, Next: Tables in HTML export, Prev: Quoting HTML tags, Up: HTML export
12.5.3 Links in HTML export
---------------------------
Internal links (*note Internal links::) will continue to work in HTML.
This includes automatic links created by radio targets (*note Radio
targets::). Links to external files will still work if the target file
is on the same relative path as the published Org file. Links to other
`.org' files will be translated into HTML links under the assumption
that an HTML version also exists of the linked file, at the same
relative path. `id:' links can then be used to jump to specific
entries across files. For information related to linking files while
publishing them to a publishing directory see *note Publishing links::.
If you want to specify attributes for links, you can do so using a
special `#+ATTR_HTML' line to define attributes that will be added to
the `' or ` ' tags. Here is an example that sets `title' and
`style' attributes for a link:
#+ATTR_HTML: title="The Org-mode homepage" style="color:red;"
[[http://orgmode.org]]
File: org, Node: Tables in HTML export, Next: Images in HTML export, Prev: Links in HTML export, Up: HTML export
12.5.4 Tables
-------------
Org-mode tables are exported to HTML using the table tag defined in
`org-export-html-table-tag'. The default setting makes tables without
cell borders and frame. If you would like to change this for individual
tables, place somthing like the following before the table:
#+CAPTION: This is a table with lines around and between cells
#+ATTR_HTML: border="2" rules="all" frame="all"
File: org, Node: Images in HTML export, Next: Text areas in HTML export, Prev: Tables in HTML export, Up: HTML export
12.5.5 Images in HTML export
----------------------------
HTML export can inline images given as links in the Org file, and it
can make an image the clickable part of a link. By default(1), images
are inlined if a link does not have a description. So
`[[file:myimg.jpg]]' will be inlined, while `[[file:myimg.jpg][the
image]]' will just produce a link `the image' that points to the image.
If the description part itself is a `file:' link or a `http:' URL
pointing to an image, this image will be inlined and activated so that
clicking on the image will activate the link. For example, to include
a thumbnail that will link to a high resolution version of the image,
you could use:
[[file:highres.jpg][file:thumb.jpg]]
If you need to add attributes to an inlines image, use a
`#+ATTR_HTML'. In the example below we specify the `alt' and `title'
attributes to support text viewers and accessibility, and align it to
the right.
#+CAPTION: A black cat stalking a spider
#+ATTR_HTML: alt="cat/spider image" title="Action!" align="right"
[[./img/a.jpg]]
and you could use `http' addresses just as well.
---------- Footnotes ----------
(1) But see the variable `org-export-html-inline-images'.
File: org, Node: Text areas in HTML export, Next: CSS support, Prev: Images in HTML export, Up: HTML export
12.5.6 Text areas in HTML export
--------------------------------
An alternative way to publish literal code examples in HTML is to use
text areas, where the example can even be edited before pasting it into
an application. It is triggered by a `-t' switch at an `example' or
`src' block. Using this switch disables any options for syntax and
label highlighting, and line numbering, which may be present. You may
also use `-h' and `-w' switches to specify the height and width of the
text area, which default to the number of lines in the example, and 80,
respectively. For example
#+BEGIN_EXAMPLE -t -w 40
(defun org-xor (a b)
"Exclusive or."
(if a (not b) b))
#+END_EXAMPLE
File: org, Node: CSS support, Next: Javascript support, Prev: Text areas in HTML export, Up: HTML export
12.5.7 CSS support
------------------
You can also give style information for the exported file. The HTML
exporter assigns the following special CSS classes(1) to appropriate
parts of the document--your style specifications may change these, in
addition to any of the standard classes like for headlines, tables, etc.
p.author author information, including email
p.date publishing date
p.creator creator info, about org-mode version
.title document title
.todo TODO keywords, all not-done states
.done the DONE keywords, all stated the count as done
.WAITING each TODO keyword also uses a class named after itself
.timestamp timestamp
.timestamp-kwd keyword associated with a timestamp, like SCHEDULED
.timestamp-wrapper span around keyword plus timestamp
.tag tag in a headline
._HOME each tag uses itself as a class, "@" replaced by "_"
.target target for links
.linenr the line number in a code example
.code-highlighted for highlighting referenced code lines
div.outline-N div for outline level N (headline plus text))
div.outline-text-N extra div for text at outline level N
.section-number-N section number in headlines, different for each level
div.figure how to format an inlined image
pre.src formatted source code
pre.example normal example
p.verse verse paragraph
div.footnotes footnote section headline
p.footnote footnote definition paragraph, containing a footnote
.footref a footnote reference number (always a )
.footnum footnote number in footnote definition (always )
Each exported file contains a compact default style that defines
these classes in a basic way(2). You may overwrite these settings, or
add to them by using the variables `org-export-html-style' (for
Org-wide settings) and `org-export-html-style-extra' (for more granular
settings, like file-local settings). To set the latter variable
individually for each file, you can use
#+STYLE:
For longer style definitions, you can use several such lines. You
could also directly write a `' section in this way,
without referring to an external file.
---------- Footnotes ----------
(1) If the classes on TODO keywords and tags lead to conflicts, use
the variables `org-export-html-todo-kwd-class-prefix' and
`org-export-html-tag-class-prefix' to make them unique.
(2) This style is defined in the constant
`org-export-html-style-default', which you should not modify. To turn
inclusion of these defaults off, customize
`org-export-html-style-include-default'
File: org, Node: Javascript support, Prev: CSS support, Up: HTML export
12.5.8 Javascript supported display of web pages
------------------------------------------------
Sebastian Rose has written a JavaScript program especially designed to
enhance the web viewing experience of HTML files created with Org. This
program allows you to view large files in two different ways. The
first one is an _Info_-like mode where each section is displayed
separately and navigation can be done with the `n' and `p' keys (and
some other keys as well, press `?' for an overview of the available
keys). The second view type is a _folding_ view much like Org provides
inside Emacs. The script is available at
`http://orgmode.org/org-info.js' and you can find the documentation for
it at `http://orgmode.org/worg/code/org-info-js/'. We host the script
at our site, but if you use it a lot, you might not want to be
dependent on `orgmode.org' and prefer to install a local copy on your
own web server.
To use the script, you need to make sure that the `org-jsinfo.el'
module gets loaded. It should be loaded by default, but you can try
`M-x customize-variable org-modules ' to convince yourself
that this is indeed the case. All it then takes to make use of the
program is adding a single line to the Org file:
#+INFOJS_OPT: view:info toc:nil
If this line is found, the HTML header will automatically contain the
code needed to invoke the script. Using the line above, you can set
the following viewing options:
path: The path to the script. The default is to grab the script from
`http://orgmode.org/org-info.js', but you might want to have
a local copy and use a path like `../scripts/org-info.js'.
view: Initial view when website is first shown. Possible values are:
info Info-like interface with one section per page.
overview Folding interface, initially showing only top-level.
content Folding interface, starting with all headlines visible.
showall Folding interface, all headlines and text visible.
sdepth: Maximum headline level that will still become an independent
section for info and folding modes. The default is taken from
`org-export-headline-levels' (= the `H' switch in `#+OPTIONS').
If this is smaller than in `org-export-headline-levels', each
info/folding section can still contain child headlines.
toc: Should the table of content _initially_ be visible?
Even when `nil', you can always get to the "toc" with `i'.
tdepth: The depth of the table of contents. The defaults are taken from
the variables `org-export-headline-levels' and `org-export-with-toc'.
ftoc: Does the css of the page specify a fixed position for the "toc"?
If yes, the toc will never be displayed as a section.
ltoc: Should there be short contents (children) in each section?
Make this `above' if the section should be above initial text.
mouse: Headings are highlighted when the mouse is over them. Should be
`underline' (default) or a background color like `#cccccc'.
buttons: Should view-toggle buttons be everywhere? When `nil' (the
default), only one such button will be present.
You can choose default values for these options by customizing the
variable `org-infojs-options'. If you always want to apply the script
to your pages, configure the variable `org-export-html-use-infojs'.
File: org, Node: LaTeX and PDF export, Next: DocBook export, Prev: HTML export, Up: Exporting
12.6 LaTeX and PDF export
=========================
Org mode contains a LaTeX exporter written by Bastien Guerry. With
further processing, this backend is also used to produce PDF output.
Since the LaTeX output uses `hyperref' to implement links and cross
references, the PDF output file will be fully linked.
* Menu:
* LaTeX/PDF export commands:: Which key invokes which commands
* Quoting LaTeX code:: Incorporating literal LaTeX code
* Sectioning structure:: Changing sectioning in LaTeX output
* Tables in LaTeX export:: Options for exporting tables to LaTeX
* Images in LaTeX export:: How to insert figures into LaTeX output
File: org, Node: LaTeX/PDF export commands, Next: Quoting LaTeX code, Prev: LaTeX and PDF export, Up: LaTeX and PDF export
12.6.1 LaTeX export commands
----------------------------
`C-c C-e l'
Export as LaTeX file `myfile.tex'. For an Org file `myfile.org',
the ASCII file will be `myfile.tex'. The file will be overwritten
without warning. If there is an active region(1), only the region
will be exported. If the selected region is a single tree(2), the
tree head will become the document title. If the tree head entry
has or inherits an `EXPORT_FILE_NAME' property, that name will be
used for the export.
`C-c C-e L'
Export to a temporary buffer, do not create a file.
`C-c C-e v l'
`C-c C-e v L'
Export only the visible part of the document.
`M-x org-export-region-as-latex'
Convert the region to LaTeX under the assumption that it was Org
mode syntax before. This is a global command that can be invoked
in any buffer.
`M-x org-replace-region-by-latex'
Replace the active region (assumed to be in Org mode syntax) by
LaTeX code.
`C-c C-e p'
Export as LaTeX and then process to PDF.
`C-c C-e d'
Export as LaTeX and then process to PDF, then open the resulting
PDF file.
In the exported version, the first 3 outline levels will become
headlines, defining a general document structure. Additional levels
will be exported as description lists. The exporter can ignore them or
convert them to a custom string depending on `org-latex-low-levels'.
If you want that transition to occur at a different level, specify it
with a numeric prefix argument. For example,
C-2 C-c C-e l
creates two levels of headings and does the rest as items.
---------- Footnotes ----------
(1) This requires `transient-mark-mode' be turned on.
(2) To select the current subtree, use `C-c @'.
File: org, Node: Quoting LaTeX code, Next: Sectioning structure, Prev: LaTeX/PDF export commands, Up: LaTeX and PDF export
12.6.2 Quoting LaTeX code
-------------------------
Embedded LaTeX as described in *note Embedded LaTeX::, will be correctly
inserted into the LaTeX file. This includes simple macros like
`\ref{LABEL}' to create a cross reference to a figure. Furthermore,
you can add special code that should only be present in LaTeX export
with the following constructs:
#+LaTeX: Literal LaTeX code for export
or
#+BEGIN_LaTeX
All lines between these markers are exported literally
#+END_LaTeX
File: org, Node: Sectioning structure, Next: Tables in LaTeX export, Prev: Quoting LaTeX code, Up: LaTeX and PDF export
12.6.3 Sectioning structure
---------------------------
By default, the LaTeX output uses the class `article'.
You can change this globally by setting a different value for
`org-export-latex-default-class' or locally by adding an option like
`#+LaTeX_CLASS: myclass' in your file, or with a `:LaTeX_CLASS:'
property that applies when exporting a region containing only this
(sub)tree. The class should be listed in `org-export-latex-classes',
where you can also define the sectioning structure for each class, as
well as defining additional classes. You can also use `#+LATEX_HEADER:
\usepackage{xyz}' to add lines to the header.
File: org, Node: Tables in LaTeX export, Next: Images in LaTeX export, Prev: Sectioning structure, Up: LaTeX and PDF export
12.6.4 Tables in LaTeX export
-----------------------------
For LaTeX export of a table, you can specify a label and a caption
(*note Images and tables::). You can also use the `ATTR_LaTeX' line to
request a longtable environment for the table, so that it may span
several pages. Finally, you can set the alignment string:
#+CAPTION: A long table
#+LABEL: tbl:long
#+ATTR_LaTeX: longtable align=l|lp{3cm}r|l
| ..... | ..... |
| ..... | ..... |
File: org, Node: Images in LaTeX export, Prev: Tables in LaTeX export, Up: LaTeX and PDF export
12.6.5 Images in LaTeX export
-----------------------------
Images that are linked to without a description part in the link, like
`[[file:img.jpg]]' or `[[./img.jpg]]' will be inserted into the PDF
output file resulting from LaTeX processing. Org will use an
`\includegraphics' macro to insert the image. If you have specified a
caption and/or a label as described in *note Images and tables::, the
figure will be wrapped into a `figure' environment and thus become a
floating element. You can use an `#+ATTR_LaTeX:' line to specify the
various options that can be used in the optional argument of the
`\includegraphics' macro. To modify the placement option of the
`figure' environment, add something like `placement=[h!]' to the
Attributes.
If you'd like to let text flow around the image, add the word `wrap'
to the `#+ATTR_LaTeX:' line, which will make the figure occupy the left
half of the page. To fine-tune, the `placement' field will be the set
of additional arguments needed by the `wrapfigure' environment. Note
that if you change the size of the image, you need to use compatible
settings for `\includegraphics' and `wrapfigure'.
#+CAPTION: The black-body emission of the disk around HR 4049
#+LABEL: fig:SED-HR4049
#+ATTR_LaTeX: width=5cm,angle=90
[[./img/sed-hr4049.pdf]]
#+ATTR_LaTeX: width=0.38\textwidth wrap placement={r}{0.4\textwidth}
[[./img/hst.png]]
If you need references to a label created in this way, write
`\ref{fig:SED-HR4049}' just like in LaTeX.
File: org, Node: DocBook export, Next: Freemind export, Prev: LaTeX and PDF export, Up: Exporting
12.7 DocBook export
===================
Org contains a DocBook exporter written by Baoqiu Cui. Once an Org
file is exported to DocBook format, it can be further processed to
produce other formats, including PDF, HTML, man pages, etc., using many
available DocBook tools and stylesheets.
Currently DocBook exporter only supports DocBook V5.0.
* Menu:
* DocBook export commands:: How to invoke DocBook export
* Quoting DocBook code:: Incorporating DocBook code in Org files
* Recursive sections:: Recursive sections in DocBook
* Tables in DocBook export:: Tables are exported as HTML tables
* Images in DocBook export:: How to insert figures into DocBook output
* Special characters:: How to handle special characters
File: org, Node: DocBook export commands, Next: Quoting DocBook code, Prev: DocBook export, Up: DocBook export
12.7.1 DocBook export commands
------------------------------
`C-c C-e D'
Export as DocBook file. For an Org file, `myfile.org', the
DocBook XML file will be `myfile.xml'. The file will be
overwritten without warning. If there is an active region(1),
only the region will be exported. If the selected region is a
single tree(2), the tree head will become the document title. If
the tree head entry has, or inherits, an `EXPORT_FILE_NAME'
property, that name will be used for the export.
`C-c C-e V'
Export as DocBook file, process to PDF, then open the resulting
PDF file.
Note that, in order to produce PDF output based on exported
DocBook file, you need to have XSLT processor and XSL-FO processor
software installed on your system. Check variables
`org-export-docbook-xslt-proc-command' and
`org-export-docbook-xsl-fo-proc-command'.
`C-c C-e v D'
Export only the visible part of the document.
---------- Footnotes ----------
(1) This requires `transient-mark-mode' to be turned on
(2) To select the current subtree, use `C-c @'.
File: org, Node: Quoting DocBook code, Next: Recursive sections, Prev: DocBook export commands, Up: DocBook export
12.7.2 Quoting DocBook code
---------------------------
You can quote DocBook code in Org files and copy it verbatim into
exported DocBook file with the following constructs:
#+DOCBOOK: Literal DocBook code for export
or
#+BEGIN_DOCBOOK
All lines between these markers are exported by DocBook exporter
literally.
#+END_DOCBOOK
For example, you can use the following lines to include a DocBook
warning admonition. As to what this warning says, you should pay
attention to the document context when quoting DocBook code in Org
files. You may make exported DocBook XML files invalid by not quoting
DocBook code correctly.
#+BEGIN_DOCBOOK
You should know what you are doing when quoting DocBook XML code
in your Org file. Invalid DocBook XML file may be generated by
DocBook exporter if you are not careful!
#+END_DOCBOOK
File: org, Node: Recursive sections, Next: Tables in DocBook export, Prev: Quoting DocBook code, Up: DocBook export
12.7.3 Recursive sections
-------------------------
DocBook exporter exports Org files as articles using the `article'
element in DocBook. Recursive sections, i.e. `section' elements, are
used in exported articles. Top level headlines in Org files are
exported as top level sections, and lower level headlines are exported
as nested sections. The entire structure of Org files will be exported
completely, no matter how many nested levels of headlines there are.
Using recursive sections makes it easy to port and reuse exported
DocBook code in other DocBook document types like `book' or `set'.
File: org, Node: Tables in DocBook export, Next: Images in DocBook export, Prev: Recursive sections, Up: DocBook export
12.7.4 Tables in DocBook export
-------------------------------
Tables in Org files are exported as HTML tables, which have been
supported since DocBook V4.3.
If a table does not have a caption, an informal table is generated
using the `informaltable' element; otherwise, a formal table will be
generated using the `table' element.
File: org, Node: Images in DocBook export, Next: Special characters, Prev: Tables in DocBook export, Up: DocBook export
12.7.5 Images in DocBook export
-------------------------------
Images that are linked to without a description part in the link, like
`[[file:img.jpg]]' or `[[./img.jpg]]', will be exported to DocBook
using `mediaobject' elements. Each `mediaobject' element contains an
`imageobject' that wraps an `imagedata' element. If you have specified
a caption for an image as described in *note Images and tables::, a
`caption' element will be added in `mediaobject'. If a label is also
specified, it will be exported as an `xml:id' attribute of the
`mediaobject' element.
Image attributes supported by the `imagedata' element, like `align'
or `width', can be specified in two ways: you can either customize
variable `org-export-docbook-default-image-attributes' or use the
`#+ATTR_DOCBOOK:' line. Attributes specified in variable
`org-export-docbook-default-image-attributes' are applied to all inline
images in the Org file to be exported (unless they are overwritten by
image attributes specified in `#+ATTR_DOCBOOK:' lines).
The `#+ATTR_DOCBOOK:' line can be used to specify additional image
attributes or overwrite default image attributes for individual images.
If the same attribute appears in both the `#+ATTR_DOCBOOK:' line and
variable `org-export-docbook-default-image-attributes', the former
overwrites the latter. Here is an example about how image attributes
can be set:
#+CAPTION: The logo of Org mode
#+LABEL: unicorn-svg
#+ATTR_DOCBOOK: scalefit="1" width="100%" depth="100%"
[[./img/org-mode-unicorn.svg]]
By default, DocBook exporter recognizes the following image file
types: `jpeg', `jpg', `png', `gif', and `svg'. You can customize
variable `org-export-docbook-inline-image-extensions' to add more types
to this list as long as DocBook supports them.
File: org, Node: Special characters, Prev: Images in DocBook export, Up: DocBook export
12.7.6 Special characters in DocBook export
-------------------------------------------
Special characters that are written in TeX-like syntax, such as
`\alpha', `\Gamma', and `\Zeta', are supported by DocBook exporter.
These characters are rewritten to XML entities, like `α',
`Γ', and `Ζ', based on the list saved in variable
`org-html-entities'. As long as the generated DocBook file includes the
corresponding entities, these special characters are recognized.
You can customize variable `org-export-docbook-doctype' to include
the entities you need. For example, you can set variable
`org-export-docbook-doctype' to the following value to recognize all
special characters included in XHTML entities:
"
%xhtml1-symbol;
]>
"
File: org, Node: Freemind export, Next: XOXO export, Prev: DocBook export, Up: Exporting
12.8 Freemind export
====================
The freemind exporter was written by Lennart Borgman.
`C-c C-e m'
Export as Freemind mind map `myfile.mm'.
File: org, Node: XOXO export, Next: iCalendar export, Prev: Freemind export, Up: Exporting
12.9 XOXO export
================
Org mode contains an exporter that produces XOXO-style output.
Currently, this exporter only handles the general outline structure and
does not interpret any additional Org-mode features.
`C-c C-e x'
Export as XOXO file `myfile.html'.
`C-c C-e v x'
Export only the visible part of the document.
File: org, Node: iCalendar export, Prev: XOXO export, Up: Exporting
12.10 iCalendar export
======================
Some people use Org mode for keeping track of projects, but still
prefer a standard calendar application for anniversaries and
appointments. In this case it can be useful to show deadlines and
other time-stamped items in Org files in the calendar application. Org
mode can export calendar information in the standard iCalendar format.
If you also want to have TODO entries included in the export, configure
the variable `org-icalendar-include-todo'. Plain timestamps are
exported as VEVENT, and TODO items as VTODO. It will also create
events from deadlines that are in non-TODO items. Deadlines and
scheduling dates in TODO items will be used to set the start and due
dates for the TODO entry(1). As categories, it will use the tags
locally defined in the heading, and the file/tree category(2).
The iCalendar standard requires each entry to have a globally unique
identifier (UID). Org creates these identifiers during export. If you
set the variable `org-icalendar-store-UID', the UID will be stored in
the `:ID:' property of the entry and re-used next time you report this
entry. Since a single entry can give rise to multiple iCalendar
entries (as a timestamp, a deadline, a scheduled item, and as a TODO
item), Org adds prefixes to the UID, depending on what triggered the
inclusion of the entry. In this way the UID remains unique, but a
synchronization program can still figure out from which entry all the
different instances originate.
`C-c C-e i'
Create iCalendar entries for the current file and store them in
the same directory, using a file extension `.ics'.
`C-c C-e I'
Like `C-c C-e i', but do this for all files in `org-agenda-files'.
For each of these files, a separate iCalendar file will be written.
`C-c C-e c'
Create a single large iCalendar file from all files in
`org-agenda-files' and write it to the file given by
`org-combined-agenda-icalendar-file'.
The export will honor SUMMARY, DESCRIPTION and LOCATION(3)
properties if the selected entries have them. If not, the summary will
be derived from the headline, and the description from the body
(limited to `org-icalendar-include-body' characters).
How this calendar is best read and updated, depends on the
application you are using. The FAQ covers this issue.
---------- Footnotes ----------
(1) See the variables `org-icalendar-use-deadline' and
`org-icalendar-use-scheduled'.
(2) To add inherited tags or the TODO state, configure the variable
`org-icalendar-categories'.
(3) The LOCATION property can be inherited from higher in the
hierarchy if you configure `org-use-property-inheritance' accordingly.
File: org, Node: Publishing, Next: Miscellaneous, Prev: Exporting, Up: Top
13 Publishing
*************
Org includes a publishing management system that allows you to configure
automatic HTML conversion of _projects_ composed of interlinked org
files. You can also configure Org to automatically upload your
exported HTML pages and related attachments, such as images and source
code files, to a web server.
You can also use Org to convert files into PDF, or even combine HTML
and PDF conversion so that files are available in both formats on the
server.
Publishing has been contributed to Org by David O'Toole.
* Menu:
* Configuration:: Defining projects
* Uploading files:: How to get files up on the server
* Sample configuration:: Example projects
* Triggering publication:: Publication commands
File: org, Node: Configuration, Next: Uploading files, Prev: Publishing, Up: Publishing
13.1 Configuration
==================
Publishing needs significant configuration to specify files, destination
and many other properties of a project.
* Menu:
* Project alist:: The central configuration variable
* Sources and destinations:: From here to there
* Selecting files:: What files are part of the project?
* Publishing action:: Setting the function doing the publishing
* Publishing options:: Tweaking HTML export
* Publishing links:: Which links keep working after publishing?
* Project page index:: Publishing a list of project files
File: org, Node: Project alist, Next: Sources and destinations, Prev: Configuration, Up: Configuration
13.1.1 The variable `org-publish-project-alist'
-----------------------------------------------
Publishing is configured almost entirely through setting the value of
one variable, called `org-publish-project-alist'. Each element of the
list configures one project, and may be in one of the two following
forms:
("project-name" :property value :property value ...)
or
("project-name" :components ("project-name" "project-name" ...))
In both cases, projects are configured by specifying property
values. A project defines the set of files that will be published, as
well as the publishing configuration to use when publishing those
files. When a project takes the second form listed above, the
individual members of the `:components' property are taken to be
sub-projects, which group together files requiring different publishing
options. When you publish such a "meta-project", all the components
will also be published, in the sequence given.
File: org, Node: Sources and destinations, Next: Selecting files, Prev: Project alist, Up: Configuration
13.1.2 Sources and destinations for files
-----------------------------------------
Most properties are optional, but some should always be set. In
particular, Org needs to know where to look for source files, and where
to put published files.
`:base-directory' Directory containing publishing source files
`:publishing-directory'Directory where output files will be published.
You can directly publish to a webserver using a
file name syntax appropriate for the Emacs
`tramp' package. Or you can publish to a local
directory and use external tools to upload your
website (*note Uploading files::).
`:preparation-function'Function called before starting the publishing
process, for example, to run `make' for updating
files to be published.
`:completion-function' Function called after finishing the publishing
process, for example, to change permissions of
the resulting files.
File: org, Node: Selecting files, Next: Publishing action, Prev: Sources and destinations, Up: Configuration
13.1.3 Selecting files
----------------------
By default, all files with extension `.org' in the base directory are
considered part of the project. This can be modified by setting the
properties
`:base-extension' Extension (without the dot!) of source files. This
actually is a regular expression. Set this to the
symbol `any' if you want to get all files in
`:base-directory', even without extension.
`:exclude' Regular expression to match file names that should
not be published, even though they have been selected
on the basis of their extension.
`:include' List of files to be included regardless of
`:base-extension' and `:exclude'.
File: org, Node: Publishing action, Next: Publishing options, Prev: Selecting files, Up: Configuration
13.1.4 Publishing action
------------------------
Publishing means that a file is copied to the destination directory and
possibly transformed in the process. The default transformation is to
export Org files as HTML files, and this is done by the function
`org-publish-org-to-html' which calls the HTML exporter (*note HTML
export::). But you also can publish your content as PDF files using
`org-publish-org-to-pdf'. If you want to publish the Org file itself,
but with archived, commented, and tag-excluded trees removed, use
`org-publish-org-to-org' and set the parameters `:plain-source' and/or
`:htmlized-source'. This will produce `file.org' and `file.org.html'
in the publishing directory(1). Other files like images only need to
be copied to the publishing destination, for this you may use
`org-publish-attachment'. For non-Org files, you always need to
specify the publishing function:
`:publishing-function' Function executing the publication of a file.
This may also be a list of functions, which will
all be called in turn.
`:plain-source' Non-nil means, publish plain source.
`:htmlized-source' Non-nil means, publish htmlized source.
The function must accept two arguments: a property list containing
at least a `:publishing-directory' property, and the name of the file
to be published. It should take the specified file, make the necessary
transformation (if any) and place the result into the destination
folder.
---------- Footnotes ----------
(1) `file-source.org' and `file-source.org.html' if source and
publishing directories are equal. Note that with this kind of setup,
you need to add `:exclude "-source\\.org"' to the project definition in
`org-publish-project-alist' to avoid that the published source files
will be considered as new org files the next time the project is
published.
File: org, Node: Publishing options, Next: Publishing links, Prev: Publishing action, Up: Configuration
13.1.5 Options for the HTML/LaTeX exporters
-------------------------------------------
The property list can be used to set many export options for the HTML
and LaTeX exporters. In most cases, these properties correspond to user
variables in Org. The table below lists these properties along with
the variable they belong to. See the documentation string for the
respective variable for details.
`:link-up' `org-export-html-link-up'
`:link-home' `org-export-html-link-home'
`:language' `org-export-default-language'
`:customtime' `org-display-custom-times'
`:headline-levels' `org-export-headline-levels'
`:section-numbers' `org-export-with-section-numbers'
`:section-number-format'`org-export-section-number-format'
`:table-of-contents' `org-export-with-toc'
`:preserve-breaks' `org-export-preserve-breaks'
`:archived-trees' `org-export-with-archived-trees'
`:emphasize' `org-export-with-emphasize'
`:sub-superscript' `org-export-with-sub-superscripts'
`:special-strings' `org-export-with-special-strings'
`:footnotes' `org-export-with-footnotes'
`:drawers' `org-export-with-drawers'
`:tags' `org-export-with-tags'
`:todo-keywords' `org-export-with-todo-keywords'
`:priority' `org-export-with-priority'
`:TeX-macros' `org-export-with-TeX-macros'
`:LaTeX-fragments' `org-export-with-LaTeX-fragments'
`:latex-listings' `org-export-latex-listings'
`:skip-before-1st-heading'`org-export-skip-text-before-1st-heading'
`:fixed-width' `org-export-with-fixed-width'
`:timestamps' `org-export-with-timestamps'
`:author-info' `org-export-author-info'
`:creator-info' `org-export-creator-info'
`:tables' `org-export-with-tables'
`:table-auto-headline' `org-export-highlight-first-table-line'
`:style-include-default'`org-export-html-style-include-default'
`:style' `org-export-html-style'
`:style-extra' `org-export-html-style-extra'
`:convert-org-links' `org-export-html-link-org-files-as-html'
`:inline-images' `org-export-html-inline-images'
`:html-extension' `org-export-html-extension'
`:xml-declaration' `org-export-html-xml-declaration'
`:html-table-tag' `org-export-html-table-tag'
`:expand-quoted-html' `org-export-html-expand'
`:timestamp' `org-export-html-with-timestamp'
`:publishing-directory' `org-export-publishing-directory'
`:preamble' `org-export-html-preamble'
`:postamble' `org-export-html-postamble'
`:auto-preamble' `org-export-html-auto-preamble'
`:auto-postamble' `org-export-html-auto-postamble'
`:author' `user-full-name'
`:email' `user-mail-address' : `addr;addr;..'
`:select-tags' `org-export-select-tags'
`:exclude-tags' `org-export-exclude-tags'
`:latex-image-options' `org-export-latex-image-default-option'
Most of the `org-export-with-*' variables have the same effect in
both HTML and LaTeX exporters, except for `:TeX-macros' and
`:LaTeX-fragments', respectively `nil' and `t' in the LaTeX export.
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. Options set within a file (*note Export options::),
however, override everything.
File: org, Node: Publishing links, Next: Project page index, Prev: Publishing options, Up: Configuration
13.1.6 Links between published files
------------------------------------
To create a link from one Org file to another, you would use something
like `[[file:foo.org][The foo]]' or simply `file:foo.org.' (*note
Hyperlinks::). When published, this link becomes a link to `foo.html'.
In this way, you can interlink the pages of your "org web" project and
the links will work as expected when you publish them to HTML. If you
also publish the Org source file and want to link to that, use an
`http:' link instead of a `file:' link, because `file:' links are
converted to link to the corresponding `html' file.
You may also link to related files, such as images. Provided you are
careful with relative file names, and provided you have also configured
Org to upload the related files, these links will work too. See *note
Complex example::, for an example of this usage.
Sometimes an Org file to be published may contain links that are
only valid in your production environment, but not in the publishing
location. In this case, use the property
`:link-validation-function' Function to validate links
to define a function for checking link validity. This function must
accept two arguments, the file name and a directory relative to which
the file name is interpreted in the production environment. If this
function returns `nil', then the HTML generator will only insert a
description into the HTML file, but no link. One option for this
function is `org-publish-validate-link' which checks if the given file
is part of any project in `org-publish-project-alist'.
File: org, Node: Project page index, Prev: Publishing links, Up: Configuration
13.1.7 Project page index
-------------------------
The following properties may be used to control publishing of an index
of files or a summary page for a given project.
`:auto-index' When non-nil, publish an index during
`org-publish-current-project' or `org-publish-all'.
`:index-filename' Filename for output of index. Defaults to
`sitemap.org' (which becomes `sitemap.html').
`:index-title' Title of index page. Defaults to name of file.
`:index-function' Plug-in function to use for generation of index.
Defaults to `org-publish-org-index', which generates
a plain list of links to all files in the project.
File: org, Node: Uploading files, Next: Sample configuration, Prev: Configuration, Up: Publishing
13.2 Uploading files
====================
For those people already utilizing third party sync tools such as
`rsync' or `unison', it might be preferable not to use the built in
remote publishing facilities of Org mode which rely heavily on Tramp.
Tramp, while very useful and powerful, tends not to be so efficient for
multiple file transfer and has been known to cause problems under heavy
usage.
Specialized synchronization utilities offer several advantages. In
addition to timestamp comparison, they also do content and
permissions/attribute checks. For this reason you might prefer to
publish your web to a local directory (possibly even in place with your
Org files) and then use `unison' or `rsync' to do the synchronization
with the remote host.
Since Unison (for example) can be configured as to which files to
transfer to a certain remote destination, it can greatly simplify the
project publishing definition. Simply keep all files in the correct
location, process your Org files with `org-publish' and let the
synchronization tool do the rest. You do not need, in this scenario,
to include attachments such as `jpg', `css' or `gif' files in the
project definition since the 3rd party tool syncs them.
Publishing to a local directory is also much faster than to a remote
one, so that you can afford more easily to republish entire projects.
If you set `org-publish-use-timestamps-flag' to `nil', you gain the main
benefit of re-including any changed external files such as source
example files you might include with `#+INCLUDE'. The timestamp
mechanism in Org is not smart enough to detect if included files have
been modified.
File: org, Node: Sample configuration, Next: Triggering publication, Prev: Uploading files, Up: Publishing
13.3 Sample configuration
=========================
Below we provide two example configurations. The first one is a simple
project publishing only a set of Org files. The second example is more
complex, with a multi-component project.
* Menu:
* Simple example:: One-component publishing
* Complex example:: A multi-component publishing example
File: org, Node: Simple example, Next: Complex example, Prev: Sample configuration, Up: Sample configuration
13.3.1 Example: simple publishing configuration
-----------------------------------------------
This example publishes a set of Org files to the `public_html'
directory on the local machine.
(setq org-publish-project-alist
'(("org"
:base-directory "~/org/"
:publishing-directory "~/public_html"
:section-numbers nil
:table-of-contents nil
:style " ")))
File: org, Node: Complex example, Prev: Simple example, Up: Sample configuration
13.3.2 Example: complex publishing configuration
------------------------------------------------
This more complicated example publishes an entire website, including
Org files converted to HTML, image files, Emacs Lisp source code, and
style sheets. The publishing directory is remote and private files are
excluded.
To ensure that links are preserved, care should be taken to replicate
your directory structure on the web server, and to use relative file
paths. For example, if your Org files are kept in `~/org' and your
publishable images in `~/images', you'd link to an image with
file:../images/myimage.png
On the web server, the relative path to the image should be the
same. You can accomplish this by setting up an "images" folder in the
right place on the web server, and publishing images to it.
(setq org-publish-project-alist
'(("orgfiles"
:base-directory "~/org/"
:base-extension "org"
:publishing-directory "/ssh:user@host:~/html/notebook/"
:publishing-function org-publish-org-to-html
:exclude "PrivatePage.org" ;; regexp
:headline-levels 3
:section-numbers nil
:table-of-contents nil
:style " "
:auto-preamble t
:auto-postamble nil)
("images"
:base-directory "~/images/"
:base-extension "jpg\\|gif\\|png"
:publishing-directory "/ssh:user@host:~/html/images/"
:publishing-function org-publish-attachment)
("other"
:base-directory "~/other/"
:base-extension "css\\|el"
:publishing-directory "/ssh:user@host:~/html/other/"
:publishing-function org-publish-attachment)
("website" :components ("orgfiles" "images" "other"))))
File: org, Node: Triggering publication, Prev: Sample configuration, Up: Publishing
13.4 Triggering publication
===========================
Once properly configured, Org can publish with the following commands:
`C-c C-e C'
Prompt for a specific project and publish all files that belong to
it.
`C-c C-e P'
Publish the project containing the current file.
`C-c C-e F'
Publish only the current file.
`C-c C-e E'
Publish every project.
Org uses timestamps to track when a file has changed. The above
functions normally only publish changed files. You can override this
and force publishing of all files by giving a prefix argument to any of
the commands above, or by customizing the variable
`org-publish-use-timestamps-flag'. This may be necessary in particular
if files include other files via `#+SETUPFILE:' or `#+INCLUDE:'.
File: org, Node: Miscellaneous, Next: Hacking, Prev: Publishing, Up: Top
14 Miscellaneous
****************
* Menu:
* Completion:: M-TAB knows what you need
* Speed keys:: Electic commands at the beginning of a headline
* Customization:: Adapting Org to your taste
* In-buffer settings:: Overview of the #+KEYWORDS
* The very busy C-c C-c key:: When in doubt, press C-c C-c
* Clean view:: Getting rid of leading stars in the outline
* TTY keys:: Using Org on a tty
* Interaction:: Other Emacs packages
File: org, Node: Completion, Next: Speed keys, Prev: Miscellaneous, Up: Miscellaneous
14.1 Completion
===============
Emacs would not be Emacs without completion, and Org-mode uses it
whenever it makes sense. If you prefer an iswitchb- or ido-like
interface for some of the completion prompts, you can specify your
preference by setting at most one of the variables
`org-completion-use-iswitchb' `org-completion-use-ido'.
Org supports in-buffer completion. This type of completion does not
make use of the minibuffer. You simply type a few letters into the
buffer and use the key to complete text right there.
`M-'
Complete word at point
* At the beginning of a headline, complete TODO keywords.
* After `\', complete TeX symbols supported by the exporter.
* After `*', complete headlines in the current buffer so that
they can be used in search links like `[[*find this
headline]]'.
* After `:' in a headline, complete tags. The list of tags is
taken from the variable `org-tag-alist' (possibly set through
the `#+TAGS' in-buffer option, *note Setting tags::), or it
is created dynamically from all tags used in the current
buffer.
* After `:' and not in a headline, complete property keys. The
list of keys is constructed dynamically from all keys used in
the current buffer.
* After `[', complete link abbreviations (*note Link
abbreviations::).
* After `#+', complete the special keywords like `TYP_TODO' or
`OPTIONS' which set file-specific options for Org mode. When
the option keyword is already complete, pressing `M-'
again will insert example settings for this keyword.
* In the line after `#+STARTUP: ', complete startup keywords,
i.e. valid keys for this line.
* Elsewhere, complete dictionary words using Ispell.
File: org, Node: Speed keys, Next: Customization, Prev: Completion, Up: Miscellaneous
14.2 Speed keys
===============
Single keys can be made to execute commands when the cursor is at the
beginning of a headline, i.e. before the first star. Configure the
variable `org-use-speed-commands' to activate this feature. There is a
pre-defined list of commands, and you can add more such commands using
the variable `org-speed-commands-user'. Speed keys do not only speed up
navigation and other commands, but they also provide an alternative way
to execute commands bound to keys that are not or not easily available
on a tty, or on a small mobile device with a limited keyboard.
To see which commands are available, activate the feature and press
`?' with the cursor at the beginning of a headline.
File: org, Node: Customization, Next: In-buffer settings, Prev: Speed keys, Up: Miscellaneous
14.3 Customization
==================
There are more than 180 variables that can be used to customize Org.
For the sake of compactness of the manual, I am not describing the
variables here. A structured overview of customization variables is
available with `M-x org-customize'. Or select `Browse Org Group' from
the `Org->Customization' menu. Many settings can also be activated on
a per-file basis, by putting special lines into the buffer (*note
In-buffer settings::).
File: org, Node: In-buffer settings, Next: The very busy C-c C-c key, Prev: Customization, Up: Miscellaneous
14.4 Summary of in-buffer settings
==================================
Org mode uses special lines in the buffer to define settings on a
per-file basis. These lines start with a `#+' followed by a keyword, a
colon, and then individual words defining a setting. Several setting
words can be in the same line, but you can also have multiple lines for
the keyword. While these settings are described throughout the manual,
here is a summary. After changing any of those lines in the buffer,
press `C-c C-c' with the cursor still in the line to activate the
changes immediately. Otherwise they become effective only when the
file is visited again in a new Emacs session.
`#+ARCHIVE: %s_done::'
This line sets the archive location for the agenda file. It
applies for all subsequent lines until the next `#+ARCHIVE' line,
or the end of the file. The first such line also applies to any
entries before it. The corresponding variable is
`org-archive-location'.
`#+CATEGORY:'
This line sets the category for the agenda file. The category
applies for all subsequent lines until the next `#+CATEGORY' line,
or the end of the file. The first such line also applies to any
entries before it.
`#+COLUMNS: %25ITEM .....'
Set the default format for columns view. This format applies when
columns view is invoked in locations where no `COLUMNS' property
applies.
`#+CONSTANTS: name1=value1 ...'
Set file-local values for constants to be used in table formulas.
This line set the local variable
`org-table-formula-constants-local'. The global version of this
variable is `org-table-formula-constants'.
`#+FILETAGS: :tag1:tag2:tag3:'
Set tags that can be inherited by any entry in the file, including
the top-level entries.
`#+DRAWERS: NAME1 .....'
Set the file-local set of drawers. The corresponding global
variable is `org-drawers'.
`#+LINK: linkword replace'
These lines (several are allowed) specify link abbreviations.
*Note Link abbreviations::. The corresponding variable is
`org-link-abbrev-alist'.
`#+PRIORITIES: highest lowest default'
This line sets the limits and the default for the priorities. All
three must be either letters A-Z or numbers 0-9. The highest
priority must have a lower ASCII number that the lowest priority.
`#+PROPERTY: Property_Name Value'
This line sets a default inheritance value for entries in the
current buffer, most useful for specifying the allowed values of a
property.
`#+SETUPFILE: file'
This line defines a file that holds more in-buffer setup.
Normally this is entirely ignored. Only when the buffer is parsed
for option-setting lines (i.e. when starting Org mode for a file,
when pressing `C-c C-c' in a settings line, or when exporting),
then the contents of this file are parsed as if they had been
included in the buffer. In particular, the file can be any other
Org mode file with internal setup. You can visit the file the
cursor is in the line with `C-c ''.
`#+STARTUP:'
This line sets options to be used at startup of Org mode, when an
Org file is being visited.
The first set of options deals with the initial visibility of the
outline tree. The corresponding variable for global default
settings is `org-startup-folded', with a default value `t', which
means `overview'.
overview top-level headlines only
content all headlines
showall no folding of any entries
showeverything show even drawer contents
Dynamic virtual indentation is controlled by the variable
`org-startup-indented'(1)
indent start with `org-indent-mode' turned on
noindent start with `org-indent-mode' turned off
Then there are options for aligning tables upon visiting a file.
This is useful in files containing narrowed table columns. The
corresponding variable is `org-startup-align-all-tables', with a
default value `nil'.
align align all tables
noalign don't align tables on startup
Logging the closing and reopening of TODO items and clock
intervals can be configured using these options (see variables
`org-log-done', `org-log-note-clock-out' and `org-log-repeat')
logdone record a timestamp when an item is marked DONE
lognotedone record timestamp and a note when DONE
nologdone don't record when items are marked DONE
logrepeat record a time when reinstating a repeating item
lognoterepeat record a note when reinstating a repeating item
nologrepeat do not record when reinstating repeating item
lognoteclock-out record a note when clocking out
nolognoteclock-out don't record a note when clocking out
logreschedule record a timestamp when scheduling time changes
lognotereschedule record a note when scheduling time changes
nologreschedule do not record when a scheduling date changes
logredeadline record a timestamp when deadline changes
lognoteredeadline record a note when deadline changes
nologredeadline do not record when a deadline date changes
Here are the options for hiding leading stars in outline headings,
and for indenting outlines. The corresponding variables are
`org-hide-leading-stars' and `org-odd-levels-only', both with a
default setting `nil' (meaning `showstars' and `oddeven').
hidestars make all but one of the stars starting a headline invisible.
showstars show all stars starting a headline
indent virtual indentation according to outline level
noindent no virtual indentation according to outline level
odd allow only odd outline levels (1,3,...)
oddeven allow all outline levels
To turn on custom format overlays over timestamps (variables
`org-put-time-stamp-overlays' and
`org-time-stamp-overlay-formats'), use
customtime overlay custom time format
The following options influence the table spreadsheet (variable
`constants-unit-system').
constcgs `constants.el' should use the c-g-s unit system
constSI `constants.el' should use the SI unit system
To influence footnote settings, use the following keywords. The
corresponding variables are `org-footnote-define-inline',
`org-footnote-auto-label', and `org-footnote-auto-adjust'.
fninline define footnotes inline
fnnoinline define footnotes in separate section
fnlocal define footnotes near first reference, but not inline
fnprompt prompt for footnote labels
fnauto create [fn:1]-like labels automatically (default)
fnconfirm offer automatic label for editing or confirmation
fnplain create [1]-like labels automatically
fnadjust automatically renumber and sort footnotes
nofnadjust do not renumber and sort automatically
To hide blocks on startup, use these keywords. The corresponding
variable is `org-hide-block-startup'.
hideblocks Hide all begin/end blocks on startup
nohideblocks Do not hide blocks on startup
`#+TAGS: TAG1(c1) TAG2(c2)'
These lines (several such lines are allowed) specify the valid
tags in this file, and (potentially) the corresponding _fast tag
selection_ keys. The corresponding variable is `org-tag-alist'.
`#+TBLFM:'
This line contains the formulas for the table directly above the
line.
`#+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+DATE:,'
`#+OPTIONS:, #+BIND:'
`#+DESCRIPTION:, #+KEYWORDS:'
`#+LATEX_HEADER:, #+STYLE:, #+LINK_UP:, #+LINK_HOME:,'
`#+EXPORT_SELECT_TAGS:, #+EXPORT_EXCLUDE_TAGS:'
These lines provide settings for exporting files. For more
details see *note Export options::.
`#+TODO: #+SEQ_TODO: #+TYP_TODO:'
These lines set the TODO keywords and their interpretation in the
current file. The corresponding variable is `org-todo-keywords'.
---------- Footnotes ----------
(1) Emacs 23 and Org-mode 6.29 are required
File: org, Node: The very busy C-c C-c key, Next: Clean view, Prev: In-buffer settings, Up: Miscellaneous
14.5 The very busy C-c C-c key
==============================
The key `C-c C-c' has many purposes in Org, which are all mentioned
scattered throughout this manual. One specific function of this key is
to add _tags_ to a headline (*note Tags::). In many other
circumstances it means something like _"Hey Org, look here and update
according to what you see here"_. Here is a summary of what this means
in different contexts.
- If there are highlights in the buffer from the creation of a sparse
tree, or from clock display, remove these highlights.
- If the cursor is in one of the special `#+KEYWORD' lines, this
triggers scanning the buffer for these lines and updating the
information.
- If the cursor is inside a table, realign the table. This command
works even if the automatic table editor has been turned off.
- If the cursor is on a `#+TBLFM' line, re-apply the formulas to the
entire table.
- If the cursor is inside a table created by the `table.el' package,
activate that table.
- If the current buffer is a Remember buffer, close the note and
file it. With a prefix argument, file it, without further
interaction, to the default location.
- If the cursor is on a `<<>>', update radio targets and
corresponding links in this buffer.
- If the cursor is in a property line or at the start or end of a
property drawer, offer property commands.
- If the cursor is at a footnote reference, go to the corresponding
definition, and vice versa.
- If the cursor is on a statistics cookie, update it.
- If the cursor is in a plain list item with a checkbox, toggle the
status of the checkbox.
- If the cursor is on a numbered item in a plain list, renumber the
ordered list.
- If the cursor is on the `#+BEGIN' line of a dynamic block, the
block is updated.
File: org, Node: Clean view, Next: TTY keys, Prev: The very busy C-c C-c key, Up: Miscellaneous
14.6 A cleaner outline view
===========================
Some people find it noisy and distracting that the Org headlines start
with a potentially large number of stars, and that text below the
headlines is not indented. While this is no problem when writing a
_book-like_ document where the outline headings are really section
headings, in a more _list-oriented_ outline, indented structure is a
lot cleaner:
* Top level headline | * Top level headline
** Second level | * Second level
*** 3rd level | * 3rd level
some text | some text
*** 3rd level | * 3rd level
more text | more text
* Another top level headline | * Another top level headline
If you are using at least Emacs 23.1.50.3 and version 6.29 of Org, this
kind of view can be achieved dynamically at display time using
`org-indent-mode'. In this minor mode, all lines are prefixed for
display with the necessary amount of space. Also headlines are
prefixed with additional stars, so that the amount of indentation
shifts by two(1) spaces per level. All headline stars but the last one
are made invisible using the `org-hide' face(2) - see below under `2.'
for more information on how this works. You can turn on
`org-indent-mode' for all files by customizing the variable
`org-startup-indented', or you can turn it on for individual files using
#+STARTUP: indent
If you want a similar effect in earlier version of Emacs and/or Org,
or if you want the indentation to be hard space characters so that the
plain text file looks as similar as possible to the Emacs display, Org
supports you in the following way:
1. _Indentation of text below headlines_
You may indent text below each headline to make the left boundary
line up with the headline, like
*** 3rd level
more text, now indented
Org supports this with paragraph filling, line wrapping, and
structure editing(3), preserving or adapting the indentation as
appropriate.
2. _Hiding leading stars_
You can modify the display in such a way that all leading stars
become invisible. To do this in a global way, configure the
variable `org-hide-leading-stars' or change this on a per-file
basis with
#+STARTUP: hidestars
#+STARTUP: showstars
With hidden stars, the tree becomes:
* Top level headline
* Second level
* 3rd level
...
The leading stars are not truly replaced by whitespace, they are
only fontified with the face `org-hide' that uses the background
color as font color. If you are not using either white or black
background, you may have to customize this face to get the wanted
effect. Another possibility is to set this font such that the
extra stars are almost invisible, for example using the color
`grey90' on a white background.
3. Things become cleaner still if you skip all the even levels and
use only odd levels 1, 3, 5..., effectively adding two stars to go
from one outline level to the next(4). In this way we get the
outline view shown at the beginning of this section. In order to
make the structure editing and export commands handle this
convention correctly, configure the variable
`org-odd-levels-only', or set this on a per-file basis with one of
the following lines:
#+STARTUP: odd
#+STARTUP: oddeven
You can convert an Org file from single-star-per-level to the
double-star-per-level convention with `M-x
org-convert-to-odd-levels RET' in that file. The reverse
operation is `M-x org-convert-to-oddeven-levels'.
---------- Footnotes ----------
(1) See the variable `org-indent-indentation-per-level'.
(2) Turning on `org-indent-mode' sets `org-hide-leading-stars' to
`t' and `org-adapt-indentation' to `nil'.
(3) See also the variable `org-adapt-indentation'.
(4) When you need to specify a level for a property search or refile
targets, `LEVEL=2' will correspond to 3 stars, etc.
File: org, Node: TTY keys, Next: Interaction, Prev: Clean view, Up: Miscellaneous
14.7 Using Org on a tty
=======================
Because Org contains a large number of commands, by default many of
Org's core commands are bound to keys that are generally not accessible
on a tty, such as the cursor keys (, , , ),
and , in particular when used together with modifiers like
and/or . To access these commands on a tty when special
keys are unavailable, the following alternative bindings can be used.
The tty bindings below will likely be more cumbersome; you may find for
some of the bindings below that a customized workaround suits you
better. For example, changing a timestamp is really only fun with
`S-' keys, whereas on a tty you would rather use `C-c .' to
re-insert the timestamp.
Default Alternative 1 Speed Alternative 2
key
`S-' `C-u ' `C'
`M-' `C-c C-x l' `l' ` '
`M-S-'`C-c C-x L' `L'
`M-' `C-c C-x r' `r' `
'
`M-S-'`C-c C-x R' `R'
`M-' `C-c C-x u' ` ' ` '
`M-S-' `C-c C-x U' `U'
`M-' `C-c C-x d' ` ' ` '
`M-S-'`C-c C-x D' `D'
`S-' `C-c C-x c' ` '
`M-' `C-c C-x m' ` ' ` '
`M-S-' `C-c C-x M' ` '
`S-' `C-c ' ` '
`S-' `C-c ' ` '
`S-' `C-c ' ` '
`S-' `C-c ' ` '
`C-S-'`C-c C-x ` '
'
`C-S-'`C-c C-x ` '
'
File: org, Node: Interaction, Prev: TTY keys, Up: Miscellaneous
14.8 Interaction with other packages
====================================
Org lives in the world of GNU Emacs and interacts in various ways with
other code out there.
* Menu:
* Cooperation:: Packages Org cooperates with
* Conflicts:: Packages that lead to conflicts
File: org, Node: Cooperation, Next: Conflicts, Prev: Interaction, Up: Interaction
14.8.1 Packages that Org cooperates with
----------------------------------------
`calc.el' by Dave Gillespie
Org uses the Calc package for implementing spreadsheet
functionality in its tables (*note The spreadsheet::). Org checks
for the availability of Calc by looking for the function
`calc-eval' which will have been autoloaded during setup if Calc
has been installed properly. As of Emacs 22, Calc is part of the
Emacs distribution. Another possibility for interaction between
the two packages is using Calc for embedded calculations. *Note
Embedded Mode: (Calc)Embedded Mode.
`constants.el' by Carsten Dominik
In a table formula (*note The spreadsheet::), it is possible to use
names for natural constants or units. Instead of defining your own
constants in the variable `org-table-formula-constants', install
the `constants' package which defines a large number of constants
and units, and lets you use unit prefixes like `M' for `Mega',
etc. You will need version 2.0 of this package, available at
`http://www.astro.uva.nl/~dominik/Tools'. Org checks for the
function `constants-get', which has to be autoloaded in your
setup. See the installation instructions in the file
`constants.el'.
`cdlatex.el' by Carsten Dominik
Org mode can make use of the CDLaTeX package to efficiently enter
LaTeX fragments into Org files. See *note CDLaTeX mode::.
`imenu.el' by Ake Stenhoff and Lars Lindberg
Imenu allows menu access to an index of items in a file. Org mode
supports Imenu--all you need to do to get the index is the
following:
(add-hook 'org-mode-hook
(lambda () (imenu-add-to-menubar "Imenu")))
By default the index is two levels deep--you can modify the depth
using the option `org-imenu-depth'.
`remember.el' by John Wiegley
Org cooperates with remember, see *note Remember::. `Remember.el'
is not part of Emacs, find it on the web.
`speedbar.el' by Eric M. Ludlam
Speedbar is a package that creates a special frame displaying
files and index items in files. Org mode supports Speedbar and
allows you to drill into Org files directly from the Speedbar. It
also allows you to restrict the scope of agenda commands to a file
or a subtree by using the command `<' in the Speedbar frame.
`table.el' by Takaaki Ota
Complex ASCII tables with automatic line wrapping, column- and
row-spanning, and alignment can be created using the Emacs table
package by Takaaki Ota (`http://sourceforge.net/projects/table',
and also part of Emacs 22). When or `C-c C-c' is pressed in
such a table, Org mode will call `table-recognize-table' and move
the cursor into the table. Inside a table, the keymap of Org mode
is inactive. In order to execute Org mode-related commands, leave
the table.
`C-c C-c'
Recognize `table.el' table. Works when the cursor is in a
table.el table.
`C-c ~'
Insert a `table.el' table. If there is already a table at
point, this command converts it between the `table.el' format
and the Org-mode format. See the documentation string of the
command `org-convert-table' for the restrictions under which
this is possible.
`table.el' is part of Emacs 22.
`footnote.el' by Steven L. Baur
Org mode recognizes numerical footnotes as provided by this
package. However, Org mode also has its own footnote support
(*note Footnotes::), which makes using `footnote.el' unnecessary.
File: org, Node: Conflicts, Prev: Cooperation, Up: Interaction
14.8.2 Packages that lead to conflicts with Org mode
----------------------------------------------------
In Emacs 23, `shift-selection-mode' is on by default, meaning that
cursor motions combined with the shift key should start or enlarge
regions. This conflicts with the use of `S-' commands in
Org to change timestamps, TODO keywords, priorities, and item
bullet types if the cursor is at such a location. By default,
`S-' commands outside special contexts don't do anything,
but you can customize the variable `org-support-shift-select'.
Org mode then tries to accommodate shift selection by (i) using it
outside of the special contexts where special commands apply, and
by (ii) extending an existing active region even if the cursor
moves across a special context.
`CUA.el' by Kim. F. Storm
Key bindings in Org conflict with the `S-' keys used by
CUA mode (as well as `pc-select-mode' and `s-region-mode') to
select and extend the region. In fact, Emacs 23 has this built-in
in the form of `shift-selection-mode', see previous paragraph. If
you are using Emacs 23, you probably don't want to use another
package for this purpose. However, if you prefer to leave these
keys to a different package while working in Org mode, configure
the variable `org-replace-disputed-keys'. When set, Org will move
the following key bindings in Org files, and in the agenda buffer
(but not during date selection).
S-UP -> M-p S-DOWN -> M-n
S-LEFT -> M-- S-RIGHT -> M-+
C-S-LEFT -> M-S-- C-S-RIGHT -> M-S-+
Yes, these are unfortunately more difficult to remember. If you
want to have other replacement keys, look at the variable
`org-disputed-keys'.
`yasnippet.el'
The way Org-mode binds the TAB key (binding to `[tab]' instead of
`"\t"') overrules yasnippets' access to this key. The following
code fixed this problem:
(add-hook 'org-mode-hook
(lambda ()
(org-set-local 'yas/trigger-key [tab])
(define-key yas/keymap [tab] 'yas/next-field-group)))
`windmove.el' by Hovav Shacham
This package also uses the `S-' keys, so everything written
in the paragraph above about CUA mode also applies here.
`viper.el' by Michael Kifer
Viper uses `C-c /' and therefore makes this key not access the
corresponding Org-mode command `org-sparse-tree'. You need to find
another key for this command, or override the key in
`viper-vi-global-user-map' with
(define-key viper-vi-global-user-map "C-c /" 'org-sparse-tree)
File: org, Node: Hacking, Next: MobileOrg, Prev: Miscellaneous, Up: Top
Appendix A Hacking
******************
This appendix covers some aspects where users can extend the
functionality of Org.
* Menu:
* Hooks:: Who to reach into Org's internals
* Add-on packages:: Available extensions
* Adding hyperlink types:: New custom link types
* Context-sensitive commands:: How to add functionality to such commands
* Tables in arbitrary syntax:: Orgtbl for LaTeX and other programs
* Dynamic blocks:: Automatically filled blocks
* Special agenda views:: Customized views
* Extracting agenda information:: Postprocessing of agenda information
* Using the property API:: Writing programs that use entry properties
* Using the mapping API:: Mapping over all or selected entries
File: org, Node: Hooks, Next: Add-on packages, Prev: Hacking, Up: Hacking
A.1 Hooks
=========
Org has a large number of hook variables that can be used to add
functionality. This appendix about hacking is going to illustrate the
use of some of them. A complete list of all hooks with documentation is
maintained by the Worg project and can be found at
`http://orgmode.org/worg/org-configs/org-hooks.php'.
File: org, Node: Add-on packages, Next: Adding hyperlink types, Prev: Hooks, Up: Hacking
A.2 Add-on packages
===================
A large number of add-on packages have been written by various authors.
These packages are not part of Emacs, but they are distributed as
contributed packages with the separate release available at the Org
mode home page at `http://orgmode.org'. The list of contributed
packages, along with documentation about each package, is maintained by
the Worg project at `http://orgmode.org/worg/org-contrib/'.
File: org, Node: Adding hyperlink types, Next: Context-sensitive commands, Prev: Add-on packages, Up: Hacking
A.3 Adding hyperlink types
==========================
Org has a large number of hyperlink types built-in (*note
Hyperlinks::). If you would like to add new link types, Org provides
an interface for doing so. Let's look at an example file,
`org-man.el', that will add support for creating links like
`[[man:printf][The printf manpage]]' to show Unix manual pages inside
Emacs:
;;; org-man.el - Support for links to manpages in Org
(require 'org)
(org-add-link-type "man" 'org-man-open)
(add-hook 'org-store-link-functions 'org-man-store-link)
(defcustom org-man-command 'man
"The Emacs command to be used to display a man page."
:group 'org-link
:type '(choice (const man) (const woman)))
(defun org-man-open (path)
"Visit the manpage on PATH.
PATH should be a topic that can be thrown at the man command."
(funcall org-man-command path))
(defun org-man-store-link ()
"Store a link to a manpage."
(when (memq major-mode '(Man-mode woman-mode))
;; This is a man page, we do make this link
(let* ((page (org-man-get-page-name))
(link (concat "man:" page))
(description (format "Manpage for %s" page)))
(org-store-link-props
:type "man"
:link link
:description description))))
(defun org-man-get-page-name ()
"Extract the page name from the buffer name."
;; This works for both `Man-mode' and `woman-mode'.
(if (string-match " \\(\\S-+\\)\\*" (buffer-name))
(match-string 1 (buffer-name))
(error "Cannot create link to this man page")))
(provide 'org-man)
;;; org-man.el ends here
You would activate this new link type in `.emacs' with
(require 'org-man)
Let's go through the file and see what it does.
1. It does `(require 'org)' to make sure that `org.el' has been
loaded.
2. The next line calls `org-add-link-type' to define a new link type
with prefix `man'. The call also contains the name of a function
that will be called to follow such a link.
3. The next line adds a function to `org-store-link-functions', in
order to allow the command `C-c l' to record a useful link in a
buffer displaying a man page.
The rest of the file defines the necessary variables and functions.
First there is a customization variable that determines which Emacs
command should be used to display man pages. There are two options,
`man' and `woman'. Then the function to follow a link is defined. It
gets the link path as an argument--in this case the link path is just a
topic for the manual command. The function calls the value of
`org-man-command' to display the man page.
Finally the function `org-man-store-link' is defined. When you try
to store a link with `C-c l', this function will be called to try to
make a link. The function must first decide if it is supposed to
create the link for this buffer type; we do this by checking the value
of the variable `major-mode'. If not, the function must exit and
return the value `nil'. If yes, the link is created by getting the
manual topic from the buffer name and prefixing it with the string
`man:'. Then it must call the command `org-store-link-props' and set
the `:type' and `:link' properties. Optionally you can also set the
`:description' property to provide a default for the link description
when the link is later inserted into an Org buffer with `C-c C-l'.
When is makes sense for your new link type, you may also define a
function `org-PREFIX-complete-link' that implements special (e.g.
completion) support for inserting such a link with `C-c C-l'. Such a
function should not accept any arguments, and return the full link with
prefix.
File: org, Node: Context-sensitive commands, Next: Tables in arbitrary syntax, Prev: Adding hyperlink types, Up: Hacking
A.4 Context-sensitive commands
==============================
Org has several commands that act differently depending on context.
The most important example it the `C-c C-c' (*note The very busy C-c
C-c key::). Also the `M-cursor' and `M-S-cursor' keys have this
property.
Add-ons can tap into this functionality by providing a function that
detects special context for that add-on and executes functionality
appropriate for the context. Here is an example from Dan Davison's
`org-R.el' which allows you to evaluate commands based on the `R'
programming language. For this package, special contexts are lines
that start with `#+R:' or `#+RR:'.
(defun org-R-apply-maybe ()
"Detect if this is context for org-R and execute R commands."
(if (save-excursion
(beginning-of-line 1)
(looking-at "#\\+RR?:"))
(progn (call-interactively 'org-R-apply)
t) ;; to signal that we took action
nil)) ;; to signal that we did not
(add-hook 'org-ctrl-c-ctrl-c-hook 'org-R-apply-maybe)
The function first checks if the cursor is in such a line. If that
is the case, `org-R-apply' is called and the function returns `t' to
signal that action was taken, and `C-c C-c' will stop looking for other
contexts. If the function finds it should do nothing locally, it
returns `nil' so that other, similar functions can have a try.
File: org, Node: Tables in arbitrary syntax, Next: Dynamic blocks, Prev: Context-sensitive commands, Up: Hacking
A.5 Tables and lists in arbitrary syntax
========================================
Since Orgtbl mode can be used as a minor mode in arbitrary buffers, a
frequent feature request has been to make it work with native tables in
specific languages, for example LaTeX. However, this is extremely hard
to do in a general way, would lead to a customization nightmare, and
would take away much of the simplicity of the Orgtbl-mode table editor.
This appendix describes a different approach. We keep the Orgtbl
mode table in its native format (the source table), and use a custom
function to translate the table to the correct syntax, and to install
it in the right location (the target table). This puts the burden of
writing conversion functions on the user, but it allows for a very
flexible system.
Bastien added the ability to do the same with lists. You can use
Org's facilities to edit and structure lists by turning `orgstruct-mode'
on, then locally exporting such lists in another format (HTML, LaTeX or
Texinfo.)
* Menu:
* Radio tables:: Sending and receiving radio tables
* A LaTeX example:: Step by step, almost a tutorial
* Translator functions:: Copy and modify
* Radio lists:: Doing the same for lists
File: org, Node: Radio tables, Next: A LaTeX example, Prev: Tables in arbitrary syntax, Up: Tables in arbitrary syntax
A.5.1 Radio tables
------------------
To define the location of the target table, you first need to create two
lines that are comments in the current mode, but contain magic words for
Orgtbl mode to find. Orgtbl mode will insert the translated table
between these lines, replacing whatever was there before. For example:
/* BEGIN RECEIVE ORGTBL table_name */
/* END RECEIVE ORGTBL table_name */
Just above the source table, we put a special line that tells Orgtbl
mode how to translate this table and where to install it. For example:
#+ORGTBL: SEND table_name translation_function arguments....
`table_name' is the reference name for the table that is also used in
the receiver lines. `translation_function' is the Lisp function that
does the translation. Furthermore, the line can contain a list of
arguments (alternating key and value) at the end. The arguments will be
passed as a property list to the translation function for
interpretation. A few standard parameters are already recognized and
acted upon before the translation function is called:
`:skip N'
Skip the first N lines of the table. Hlines do count as separate
lines for this parameter!
`:skipcols (n1 n2 ...)'
List of columns that should be skipped. If the table has a column
with calculation marks, that column is automatically discarded as
well. Please note that the translator function sees the table
_after_ the removal of these columns, the function never knows
that there have been additional columns.
The one problem remaining is how to keep the source table in the buffer
without disturbing the normal workings of the file, for example during
compilation of a C file or processing of a LaTeX file. There are a
number of different solutions:
* The table could be placed in a block comment if that is supported
by the language. For example, in C mode you could wrap the table
between `/*' and `*/' lines.
* Sometimes it is possible to put the table after some kind of END
statement, for example `\bye' in TeX and `\end{document}' in LaTeX.
* You can just comment the table line-by-line whenever you want to
process the file, and uncomment it whenever you need to edit the
table. This only sounds tedious--the command `M-x
orgtbl-toggle-comment' makes this comment-toggling very easy, in
particular if you bind it to a key.
File: org, Node: A LaTeX example, Next: Translator functions, Prev: Radio tables, Up: Tables in arbitrary syntax
A.5.2 A LaTeX example of radio tables
-------------------------------------
The best way to wrap the source table in LaTeX is to use the `comment'
environment provided by `comment.sty'. It has to be activated by
placing `\usepackage{comment}' into the document header. Orgtbl mode
can insert a radio table skeleton(1) with the command `M-x
orgtbl-insert-radio-table'. You will be prompted for a table name,
let's say we use `salesfigures'. You will then get the following
template:
% BEGIN RECEIVE ORGTBL salesfigures
% END RECEIVE ORGTBL salesfigures
\begin{comment}
#+ORGTBL: SEND salesfigures orgtbl-to-latex
| | |
\end{comment}
The `#+ORGTBL: SEND' line tells Orgtbl mode to use the function
`orgtbl-to-latex' to convert the table into LaTeX and to put it into
the receiver location with name `salesfigures'. You may now fill in
the table, feel free to use the spreadsheet features(2):
% BEGIN RECEIVE ORGTBL salesfigures
% END RECEIVE ORGTBL salesfigures
\begin{comment}
#+ORGTBL: SEND salesfigures orgtbl-to-latex
| Month | Days | Nr sold | per day |
|-------+------+---------+---------|
| Jan | 23 | 55 | 2.4 |
| Feb | 21 | 16 | 0.8 |
| March | 22 | 278 | 12.6 |
#+TBLFM: $4=$3/$2;%.1f
% $ (optional extra dollar to keep font-lock happy, see footnote)
\end{comment}
When you are done, press `C-c C-c' in the table to get the converted
table inserted between the two marker lines.
Now let's assume you want to make the table header by hand, because
you want to control how columns are aligned, etc. In this case we make
sure that the table translator skips the first 2 lines of the source
table, and tell the command to work as a splice, i.e. to not produce
header and footer commands of the target table:
\begin{tabular}{lrrr}
Month & \multicolumn{1}{c}{Days} & Nr.\ sold & per day\\
% BEGIN RECEIVE ORGTBL salesfigures
% END RECEIVE ORGTBL salesfigures
\end{tabular}
%
\begin{comment}
#+ORGTBL: SEND salesfigures orgtbl-to-latex :splice t :skip 2
| Month | Days | Nr sold | per day |
|-------+------+---------+---------|
| Jan | 23 | 55 | 2.4 |
| Feb | 21 | 16 | 0.8 |
| March | 22 | 278 | 12.6 |
#+TBLFM: $4=$3/$2;%.1f
\end{comment}
The LaTeX translator function `orgtbl-to-latex' is already part of
Orgtbl mode. It uses a `tabular' environment to typeset the table and
marks horizontal lines with `\hline'. Furthermore, it interprets the
following parameters (see also *note Translator functions::):
`:splice nil/t'
When set to t, return only table body lines, don't wrap them into a
tabular environment. Default is nil.
`:fmt fmt'
A format to be used to wrap each field, it should contain `%s' for
the original field value. For example, to wrap each field value
in dollars, you could use `:fmt "$%s$"'. This may also be a
property list with column numbers and formats. for example `:fmt
(2 "$%s$" 4 "%s\\%%")'. A function of one argument can be used in
place of the strings; the function must return a formatted string.
`:efmt efmt'
Use this format to print numbers with exponentials. The format
should have `%s' twice for inserting mantissa and exponent, for
example `"%s\\times10^{%s}"'. The default is `"%s\\,(%s)"'. This
may also be a property list with column numbers and formats, for
example `:efmt (2 "$%s\\times10^{%s}$" 4 "$%s\\cdot10^{%s}$")'.
After `efmt' has been applied to a value, `fmt' will also be
applied. Similar to `fmt', functions of two arguments can be
supplied instead of strings.
---------- Footnotes ----------
(1) By default this works only for LaTeX, HTML, and Texinfo.
Configure the variable `orgtbl-radio-tables' to install templates for
other modes.
(2) If the `#+TBLFM' line contains an odd number of dollar
characters, this may cause problems with font-lock in LaTeX mode. As
shown in the example you can fix this by adding an extra line inside the
`comment' environment that is used to balance the dollar expressions.
If you are using AUCTeX with the font-latex library, a much better
solution is to add the `comment' environment to the variable
`LaTeX-verbatim-environments'.
File: org, Node: Translator functions, Next: Radio lists, Prev: A LaTeX example, Up: Tables in arbitrary syntax
A.5.3 Translator functions
--------------------------
Orgtbl mode has several translator functions built-in: `orgtbl-to-csv'
(comma-separated values), `orgtbl-to-tsv' (TAB-separated values)
`orgtbl-to-latex', `orgtbl-to-html', and `orgtbl-to-texinfo'. Except
for `orgtbl-to-html'(1), these all use a generic translator,
`orgtbl-to-generic'. For example, `orgtbl-to-latex' itself is a very
short function that computes the column definitions for the `tabular'
environment, defines a few field and line separators and then hands
processing over to the generic translator. Here is the entire code:
(defun orgtbl-to-latex (table params)
"Convert the Orgtbl mode TABLE to LaTeX."
(let* ((alignment (mapconcat (lambda (x) (if x "r" "l"))
org-table-last-alignment ""))
(params2
(list
:tstart (concat "\\begin{tabular}{" alignment "}")
:tend "\\end{tabular}"
:lstart "" :lend " \\\\" :sep " & "
:efmt "%s\\,(%s)" :hline "\\hline")))
(orgtbl-to-generic table (org-combine-plists params2 params))))
As you can see, the properties passed into the function (variable
PARAMS) are combined with the ones newly defined in the function
(variable PARAMS2). The ones passed into the function (i.e. the ones
set by the `ORGTBL SEND' line) take precedence. So if you would like
to use the LaTeX translator, but wanted the line endings to be
`\\[2mm]' instead of the default `\\', you could just overrule the
default with
#+ORGTBL: SEND test orgtbl-to-latex :lend " \\\\[2mm]"
For a new language, you can either write your own converter function
in analogy with the LaTeX translator, or you can use the generic
function directly. For example, if you have a language where a table
is started with `!BTBL!', ended with `!ETBL!', and where table lines are
started with `!BL!', ended with `!EL!', and where the field separator
is a TAB, you could call the generic translator like this (on a single
line!):
#+ORGTBL: SEND test orgtbl-to-generic :tstart "!BTBL!" :tend "!ETBL!"
:lstart "!BL! " :lend " !EL!" :sep "\t"
Please check the documentation string of the function
`orgtbl-to-generic' for a full list of parameters understood by that
function, and remember that you can pass each of them into
`orgtbl-to-latex', `orgtbl-to-texinfo', and any other function using
the generic function.
Of course you can also write a completely new function doing
complicated things the generic translator cannot do. A translator
function takes two arguments. The first argument is the table, a list
of lines, each line either the symbol `hline' or a list of fields. The
second argument is the property list containing all parameters
specified in the `#+ORGTBL: SEND' line. The function must return a
single string containing the formatted table. If you write a generally
useful translator, please post it on so that
others can benefit from your work.
---------- Footnotes ----------
(1) The HTML translator uses the same code that produces tables
during HTML export.
File: org, Node: Radio lists, Prev: Translator functions, Up: Tables in arbitrary syntax
A.5.4 Radio lists
-----------------
Sending and receiving radio lists works exactly the same way than
sending and receiving radio tables (*note Radio tables::). As for
radio tables, you can insert radio lists templates in HTML, LaTeX and
Texinfo modes by calling `org-list-insert-radio-list'.
Here are the differences with radio tables:
- Use `ORGLST' instead of `ORGTBL'.
- The available translation functions for radio lists don't take
parameters.
- `C-c C-c' will work when pressed on the first item of the list.
Here is a LaTeX example. Let's say that you have this in your LaTeX
file:
% BEGIN RECEIVE ORGLST to-buy
% END RECEIVE ORGLST to-buy
\begin{comment}
#+ORGLIST: SEND to-buy orgtbl-to-latex
- a new house
- a new computer
+ a new keyboard
+ a new mouse
- a new life
\end{comment}
Pressing `C-c C-c' on `a new house' and will insert the converted
LaTeX list between the two marker lines.
File: org, Node: Dynamic blocks, Next: Special agenda views, Prev: Tables in arbitrary syntax, Up: Hacking
A.6 Dynamic blocks
==================
Org documents can contain _dynamic blocks_. These are specially marked
regions that are updated by some user-written function. A good example
for such a block is the clock table inserted by the command `C-c C-x
C-r' (*note Clocking work time::).
Dynamic block are enclosed by a BEGIN-END structure that assigns a
name to the block and can also specify parameters for the function
producing the content of the block.
#+BEGIN:dynamic block
#+BEGIN: myblock :parameter1 value1 :parameter2 value2 ...
#+END:
Dynamic blocks are updated with the following commands
`C-c C-x C-u'
Update dynamic block at point.
`C-u C-c C-x C-u'
Update all dynamic blocks in the current file.
Updating a dynamic block means to remove all the text between BEGIN
and END, parse the BEGIN line for parameters and then call the specific
writer function for this block to insert the new content. If you want
to use the original content in the writer function, you can use the
extra parameter `:content'.
For a block with name `myblock', the writer function is
`org-dblock-write:myblock' with as only parameter a property list with
the parameters given in the begin line. Here is a trivial example of a
block that keeps track of when the block update function was last run:
#+BEGIN: block-update-time :format "on %m/%d/%Y at %H:%M"
#+END:
The corresponding block writer function could look like this:
(defun org-dblock-write:block-update-time (params)
(let ((fmt (or (plist-get params :format) "%d. %m. %Y")))
(insert "Last block update at: "
(format-time-string fmt (current-time)))))
If you want to make sure that all dynamic blocks are always
up-to-date, you could add the function `org-update-all-dblocks' to a
hook, for example `before-save-hook'. `org-update-all-dblocks' is
written in a way such that it does nothing in buffers that are not in
`org-mode'.
File: org, Node: Special agenda views, Next: Extracting agenda information, Prev: Dynamic blocks, Up: Hacking
A.7 Special agenda views
========================
Org provides a special hook that can be used to narrow down the
selection made by any of the agenda views. You may specify a function
that is used at each match to verify if the match should indeed be part
of the agenda view, and if not, how much should be skipped.
Let's say you want to produce a list of projects that contain a
WAITING tag anywhere in the project tree. Let's further assume that
you have marked all tree headings that define a project with the TODO
keyword PROJECT. In this case you would run a TODO search for the
keyword PROJECT, but skip the match unless there is a WAITING tag
anywhere in the subtree belonging to the project line.
To achieve this, you must write a function that searches the subtree
for the tag. If the tag is found, the function must return `nil' to
indicate that this match should not be skipped. If there is no such
tag, return the location of the end of the subtree, to indicate that
search should continue from there.
(defun my-skip-unless-waiting ()
"Skip trees that are not waiting"
(let ((subtree-end (save-excursion (org-end-of-subtree t))))
(if (re-search-forward ":waiting:" subtree-end t)
nil ; tag found, do not skip
subtree-end))) ; tag not found, continue after end of subtree
Now you may use this function in an agenda custom command, for
example like this:
(org-add-agenda-custom-command
'("b" todo "PROJECT"
((org-agenda-skip-function 'my-skip-unless-waiting)
(org-agenda-overriding-header "Projects waiting for something: "))))
Note that this also binds `org-agenda-overriding-header' to get a
meaningful header in the agenda view.
A general way to create custom searches is to base them on a search
for entries with a certain level limit. If you want to study all
entries with your custom search function, simply do a search for
`LEVEL>0'(1), and then use `org-agenda-skip-function' to select the
entries you really want to have.
You may also put a Lisp form into `org-agenda-skip-function'. In
particular, you may use the functions `org-agenda-skip-entry-if' and
`org-agenda-skip-subtree-if' in this form, for example:
`'(org-agenda-skip-entry-if 'scheduled)'
Skip current entry if it has been scheduled.
`'(org-agenda-skip-entry-if 'notscheduled)'
Skip current entry if it has not been scheduled.
`'(org-agenda-skip-entry-if 'deadline)'
Skip current entry if it has a deadline.
`'(org-agenda-skip-entry-if 'scheduled 'deadline)'
Skip current entry if it has a deadline, or if it is scheduled.
`'(org-agenda-skip-entry-if 'timestamp)'
Skip current entry if it has any timestamp, may also be deadline
or scheduled.
`'(org-agenda-skip-entry 'regexp "regular expression")'
Skip current entry if the regular expression matches in the entry.
`'(org-agenda-skip-entry 'notregexp "regular expression")'
Skip current entry unless the regular expression matches.
`'(org-agenda-skip-subtree-if 'regexp "regular expression")'
Same as above, but check and skip the entire subtree.
Therefore we could also have written the search for WAITING projects
like this, even without defining a special function:
(org-add-agenda-custom-command
'("b" todo "PROJECT"
((org-agenda-skip-function '(org-agenda-skip-subtree-if
'regexp ":waiting:"))
(org-agenda-overriding-header "Projects waiting for something: "))))
---------- Footnotes ----------
(1) Note that, when using `org-odd-levels-only', a level number
corresponds to order in the hierarchy, not to the number of stars.
File: org, Node: Extracting agenda information, Next: Using the property API, Prev: Special agenda views, Up: Hacking
A.8 Extracting agenda information
=================================
Org provides commands to access agenda information for the command line
in Emacs batch mode. This extracted information can be sent directly
to a printer, or it can be read by a program that does further
processing of the data. The first of these commands is the function
`org-batch-agenda', that produces an agenda view and sends it as ASCII
text to STDOUT. The command takes a single string as parameter. If
the string has length 1, it is used as a key to one of the commands you
have configured in `org-agenda-custom-commands', basically any key you
can use after `C-c a'. For example, to directly print the current TODO
list, you could use
emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr
If the parameter is a string with 2 or more characters, it is used
as a tags/TODO match string. For example, to print your local shopping
list (all items with the tag `shop', but excluding the tag `NewYork'),
you could use
emacs -batch -l ~/.emacs \
-eval '(org-batch-agenda "+shop-NewYork")' | lpr
You may also modify parameters on the fly like this:
emacs -batch -l ~/.emacs \
-eval '(org-batch-agenda "a" \
org-agenda-ndays 30 \
org-agenda-include-diary nil \
org-agenda-files (quote ("~/org/project.org")))' \
| lpr
which will produce a 30-day agenda, fully restricted to the Org file
`~/org/projects.org', not even including the diary.
If you want to process the agenda data in more sophisticated ways,
you can use the command `org-batch-agenda-csv' to get a comma-separated
list of values for each agenda item. Each line in the output will
contain a number of fields separated by commas. The fields in a line
are:
category The category of the item
head The headline, without TODO keyword, TAGS and PRIORITY
type The type of the agenda entry, can be
todo selected in TODO match
tagsmatch selected in tags match
diary imported from diary
deadline a deadline
scheduled scheduled
timestamp appointment, selected by timestamp
closed entry was closed on date
upcoming-deadline warning about nearing deadline
past-scheduled forwarded scheduled item
block entry has date block including date
todo The TODO keyword, if any
tags All tags including inherited ones, separated by colons
date The relevant date, like 2007-2-14
time The time, like 15:00-16:50
extra String with extra planning info
priority-l The priority letter if any was given
priority-n The computed numerical priority
Time and date will only be given if a timestamp (or deadline/scheduled)
led to the selection of the item.
A CSV list like this is very easy to use in a post-processing script.
For example, here is a Perl program that gets the TODO list from
Emacs/Org and prints all the items, preceded by a checkbox:
#!/usr/bin/perl
# define the Emacs command to run
$cmd = "emacs -batch -l ~/.emacs -eval '(org-batch-agenda-csv \"t\")'";
# run it and capture the output
$agenda = qx{$cmd 2>/dev/null};
# loop over all lines
foreach $line (split(/\n/,$agenda)) {
# get the individual values
($category,$head,$type,$todo,$tags,$date,$time,$extra,
$priority_l,$priority_n) = split(/,/,$line);
# process and print
print "[ ] $head\n";
}
File: org, Node: Using the property API, Next: Using the mapping API, Prev: Extracting agenda information, Up: Hacking
A.9 Using the property API
==========================
Here is a description of the functions that can be used to work with
properties.
-- Function: org-entry-properties &optional pom which
Get all properties of the entry at point-or-marker POM.
This includes the TODO keyword, the tags, time strings for
deadline, scheduled, and clocking, and any additional properties
defined in the entry. The return value is an alist, keys may
occur multiple times if the property key was used several times.
POM may also be nil, in which case the current entry is used. If
WHICH is nil or `all', get all properties. If WHICH is `special'
or `standard', only get that subclass.
-- Function: org-entry-get pom property &optional inherit
Get value of PROPERTY for entry at point-or-marker POM. By
default, this only looks at properties defined locally in the
entry. If INHERIT is non-nil and the entry does not have the
property, then also check higher levels of the hierarchy. If
INHERIT is the symbol `selective', use inheritance if and only if
the setting of `org-use-property-inheritance' selects PROPERTY for
inheritance.
-- Function: org-entry-delete pom property
Delete the property PROPERTY from entry at point-or-marker POM.
-- Function: org-entry-put pom property value
Set PROPERTY to VALUE for entry at point-or-marker POM.
-- Function: org-buffer-property-keys &optional include-specials
Get all property keys in the current buffer.
-- Function: org-insert-property-drawer
Insert a property drawer at point.
-- Function: org-entry-put-multivalued-property pom property &rest
values
Set PROPERTY at point-or-marker POM to VALUES. VALUES should be a
list of strings. They will be concatenated, with spaces as
separators.
-- Function: org-entry-get-multivalued-property pom property
Treat the value of the property PROPERTY as a whitespace-separated
list of values and return the values as a list of strings.
-- Function: org-entry-add-to-multivalued-property pom property value
Treat the value of the property PROPERTY as a whitespace-separated
list of values and make sure that VALUE is in this list.
-- Function: org-entry-remove-from-multivalued-property pom property
value
Treat the value of the property PROPERTY as a whitespace-separated
list of values and make sure that VALUE is _not_ in this list.
-- Function: org-entry-member-in-multivalued-property pom property
value
Treat the value of the property PROPERTY as a whitespace-separated
list of values and check if VALUE is in this list.
File: org, Node: Using the mapping API, Prev: Using the property API, Up: Hacking
A.10 Using the mapping API
==========================
Org has sophisticated mapping capabilities to find all entries
satisfying certain criteria. Internally, this functionality is used to
produce agenda views, but there is also an API that can be used to
execute arbitrary functions for each or selected entries. The main
entry point for this API is:
-- Function: org-map-entries func &optional match scope &rest skip
Call FUNC at each headline selected by MATCH in SCOPE.
FUNC is a function or a Lisp form. The function will be called
without arguments, with the cursor positioned at the beginning of
the headline. The return values of all calls to the function will
be collected and returned as a list.
The call to FUNC will be wrapped into a save-excursion form, so
FUNC does not need to preserve point. After evaluation, the
cursor will be moved to the end of the line (presumably of the
headline of the processed entry) and search continues from there.
Under some circumstances, this may not produce the wanted results.
For example, if you have removed (e.g. archived) the current
(sub)tree it could mean that the next entry will be skipped
entirely. In such cases, you can specify the position from where
search should continue by making FUNC set the variable
`org-map-continue-from' to the desired buffer position.
MATCH is a tags/property/todo match as it is used in the agenda
match view. Only headlines that are matched by this query will be
considered during the iteration. When MATCH is nil or t, all
headlines will be visited by the iteration.
SCOPE determines the scope of this command. It can be any of:
nil the current buffer, respecting the restriction if any
tree the subtree started with the entry at point
file the current buffer, without restriction
file-with-archives
the current buffer, and any archives associated with it
agenda all agenda files
agenda-with-archives
all agenda files with any archive files associated with them
(file1 file2 ...)
if this is a list, all files in the list will be scanned
The remaining args are treated as settings for the skipping
facilities of the scanner. The following items can be given here:
archive skip trees with the archive tag
comment skip trees with the COMMENT keyword
function or Lisp form
will be used as value for `org-agenda-skip-function',
so whenever the function returns t, FUNC
will not be called for that entry and search will
continue from the point where the function leaves it
The function given to that mapping routine can really do anything
you like. It can use the property API (*note Using the property API::)
to gather more information about the entry, or in order to change
metadata in the entry. Here are a couple of functions that might be
handy:
-- Function: org-todo &optional arg
Change the TODO state of the entry, see the docstring of the
functions for the many possible values for the argument ARG.
-- Function: org-priority &optional action
Change the priority of the entry, see the docstring of this
function for the possible values for ACTION.
-- Function: org-toggle-tag tag &optional onoff
Toggle the tag TAG in the current entry. Setting ONOFF to either
`on' or `off' will not toggle tag, but ensure that it is either on
or off.
-- Function: org-promote
Promote the current entry.
-- Function: org-demote
Demote the current entry.
Here is a simple example that will turn all entries in the current
file with a tag `TOMORROW' into TODO entries with the keyword
`UPCOMING'. Entries in comment trees and in archive trees will be
ignored.
(org-map-entries
'(org-todo "UPCOMING")
"+TOMORROW" 'file 'archive 'comment)
The following example counts the number of entries with TODO keyword
`WAITING', in all agenda files.
(length (org-map-entries t "/+WAITING" 'agenda))
File: org, Node: MobileOrg, Next: History and Acknowledgments, Prev: Hacking, Up: Top
Appendix B MobileOrg
********************
MobileOrg is an application for the iPhone/iPod Touch series of
devices, developed by Richard Moreland. MobileOrg offers offline
viewing and capture support for an Org-mode system rooted on a "real"
computer. It does also allow you to record changes to existing
entries. For information about MobileOrg, see
`http://mobileorg.ncogni.to/').
This appendix describes the support Org has for creating agenda
views in a format that can be displayed by MobileOrg, and for
integrating notes captured and changes made by MobileOrg into the main
system.
For changing tags and TODO states in MobileOrg, you should have set
up the customization variables `org-todo-keywords' and `org-tags-alist'
to cover all important tags and todo keywords, even if individual files
use only part of these. MobileOrg will also offer you states and tags
set up with in-buffer settings, but it will understand the logistics of
todo state sets (*note Per-file keywords::) and mutually exclusive tags
(*note Setting tags::) only for those set in these variables.
* Menu:
* Setting up the staging area:: Where to interact with the mobile device
* Pushing to MobileOrg:: Uploading Org files and agendas
* Pulling from MobileOrg:: Integrating captured and flagged items
File: org, Node: Setting up the staging area, Next: Pushing to MobileOrg, Prev: MobileOrg, Up: MobileOrg
B.1 Setting up the staging area
===============================
Org-mode has commands to prepare a directory with files for MobileOrg,
and to read captured notes from there. If Emacs can directly write to
the WebDAV directory accessed by MobileOrg, just point to this directory
using the variable `org-mobile-directory'. Using the `tramp' method,
`org-mobile-directory' may point to a remote directory accessible
through, for example, `ssh/scp':
(setq org-mobile-directory "/scpc:user@remote.host:org/webdav/")
If Emacs cannot access the WebDAV directory directly using a `tramp'
method, or you prefer to maintain a local copy, you can use a local
directory for staging. Other means must then be used to keep this
directory in sync with the WebDAV directory. In the following example,
files are staged in `~/stage', and Org-mode hooks take care of moving
files to and from the WebDAV directory using `scp'.
(setq org-mobile-directory "~/stage/")
(add-hook 'org-mobile-post-push-hook
(lambda () (shell-command "scp -r ~/stage/* user@wdhost:mobile/")))
(add-hook 'org-mobile-pre-pull-hook
(lambda () (shell-command "scp user@wdhost:mobile/mobileorg.org ~/stage/ ")))
(add-hook 'org-mobile-post-pull-hook
(lambda () (shell-command "scp ~/stage/mobileorg.org user@wdhost:mobile/")))
File: org, Node: Pushing to MobileOrg, Next: Pulling from MobileOrg, Prev: Setting up the staging area, Up: MobileOrg
B.2 Pushing to MobileOrg
========================
This operation copies all files currently listed in `org-mobile-files'
to the directory `org-mobile-directory'. By default this list contains
all agenda files (as listed in `org-agenda-files'), but additional files
can be included by customizing `org-mobiles-files'. File names will be
staged with path relative to `org-directory', so all files should be
inside this directory. The push operation also creates (in the same
directory) a special Org file `agendas.org'. This file is an Org-mode
style outline, containing every custom agenda view defined by the user.
While creating the agendas, Org-mode will force(1) an ID property on
all entries referenced by the agendas, so that these entries can be
uniquely identified if MobileOrg flags them for further action.
Finally, Org writes the file `index.org', containing links to all other
files. If MobileOrg is configured to request this file from the WebDAV
server, all agendas and Org files will be downloaded to the device. To
speed up the download, MobileOrg will only read files whose
checksums(2) have changed.
---------- Footnotes ----------
(1) See the variable `org-mobile-force-id-on-agenda-items'.
(2) stored automatically in the file `checksums.dat'
File: org, Node: Pulling from MobileOrg, Prev: Pushing to MobileOrg, Up: MobileOrg
B.3 Pulling from MobileOrg
==========================
When MobileOrg synchronizes with the WebDAV server, it not only pulls
the Org files for viewing. It also appends captured entries and
pointers to flagged and changed entries to the file `mobileorg.org' on
the server. Org has a _pull_ operation that integrates this
information into an inbox file and operates on the pointers to flagged
entries. Here is how it works:
1. Org moves all entries found in `mobileorg.org'(1) and appends them
to the file pointed to by the variable
`org-mobile-inbox-for-pull'. Each captured entry and each editing
event will be a top-level entry in the inbox file.
2. After moving the entries, Org will attempt to implement the
changes made in MobileOrg. Some changes are applied directly and
without user interaction. Examples are all changes to tags, TODO
state, headline and body text that can be cleanly applied.
Entries that have been flagged for further action will receive a
tag `:FLAGGED:', so that they can be easily found again. When
there is a problem finding an entry or applying the change, the
pointer entry will remain in the inbox and will be marked with an
error message. You need to later resolve these issues by hand.
3. Org will then generate an agenda view with all flagged entries.
The user should then go through these entries and do whatever
actions are necessary. If a note has been stored while flagging
an entry in MobileOrg, that note will be displayed in the echo
area when the cursor is on the corresponding agenda line.
`?'
Pressing `?' in that special agenda will display the full
flagging note in another window and also push it onto the
kill ring. So you could use `? z C-y C-c C-c' to store that
flagging note as a normal note in the entry. Pressing `?'
twice in succession will offer to remove the `:FLAGGED:' tag
along with the recorded flagging note (which is stored in a
property). In this way you indicate, that the intended
processing for this flagged entry is finished.
If you are not able to process all flagged entries directly, you can
always return to this agenda view using `C-c a ?'. Note, however, that
there is a subtle difference. The view created automatically by `M-x
org-mobile-pull RET' is guaranteed to search all files that have been
addressed by the last pull. This might include a file that is not
currently in your list of agenda files. If you later use `C-c a ?' to
regenerate the view, only the current agenda files will be searched.
---------- Footnotes ----------
(1) `mobileorg.org' will be empty after this operation.
File: org, Node: History and Acknowledgments, Next: Main Index, Prev: MobileOrg, Up: Top
Appendix C History and Acknowledgments
**************************************
Org was born in 2003, out of frustration over the user interface of the
Emacs Outline mode. I was trying to organize my notes and projects,
and using Emacs seemed to be the natural way to go. However, having to
remember eleven different commands with two or three keys per command,
only to hide and show parts of the outline tree, that seemed entirely
unacceptable to me. Also, when using outlines to take notes, I
constantly wanted to restructure the tree, organizing it parallel to my
thoughts and plans. _Visibility cycling_ and _structure editing_ were
originally implemented in the package `outline-magic.el', but quickly
moved to the more general `org.el'. As this environment became
comfortable for project planning, the next step was adding _TODO
entries_, basic _timestamps_, and _table support_. These areas
highlighted the two main goals that Org still has today: to be a new,
outline-based, plain text mode with innovative and intuitive editing
features, and to incorporate project planning functionality directly
into a notes file.
A special thanks goes to Bastien Guerry who has not only written a
large number of extensions to Org (most of them integrated into the
core by now), but who has also helped in the development and
maintenance of Org so much that he should be considered the main
co-contributor to this package.
Since the first release, literally thousands of emails to me or to
have provided a constant stream of bug reports,
feedback, new ideas, and sometimes patches and add-on code. Many
thanks to everyone who has helped to improve this package. I am trying
to keep here a list of the people who had significant influence in
shaping one or more aspects of Org. The list may not be complete, if I
have forgotten someone, please accept my apologies and let me know.
* Russel Adams came up with the idea for drawers.
* Thomas Baumann wrote `org-bbdb.el' and `org-mhe.el'.
* Christophe Bataillon created the great unicorn logo that we use on
the Org-mode website.
* Alex Bochannek provided a patch for rounding timestamps.
* Brad Bozarth showed how to pull RSS feed data into Org-mode files.
* Tom Breton wrote `org-choose.el'.
* Charles Cave's suggestion sparked the implementation of templates
for Remember.
* Pavel Chalmoviansky influenced the agenda treatment of items with
specified time.
* Gregory Chernov patched support for Lisp forms into table
calculations and improved XEmacs compatibility, in particular by
porting `nouline.el' to XEmacs.
* Sacha Chua suggested copying some linking code from Planner.
* Baoqiu Cui contributed the DocBook exporter.
* Dan Davison wrote (together with Eric Schulte) Org Babel.
* Eddward DeVilla proposed and tested checkbox statistics. He also
came up with the idea of properties, and that there should be an
API for them.
* Nick Dokos tracked down several nasty bugs.
* Kees Dullemond used to edit projects lists directly in HTML and so
inspired some of the early development, including HTML export. He
also asked for a way to narrow wide table columns.
* Christian Egli converted the documentation into Texinfo format,
patched CSS formatting into the HTML exporter, and inspired the
agenda.
* David Emery provided a patch for custom CSS support in exported
HTML agendas.
* Nic Ferrier contributed mailcap and XOXO support.
* Miguel A. Figueroa-Villanueva implemented hierarchical checkboxes.
* John Foerch figured out how to make incremental search show context
around a match in a hidden outline tree.
* Raimar Finken wrote `org-git-line.el'.
* Mikael Fornius works as a mailing list moderator.
* Austin Frank works as a mailing list moderator.
* Niels Giesen had the idea to automatically archive DONE trees.
* Bastien Guerry wrote the LaTeX exporter and `org-bibtex.el', and
has been prolific with patches, ideas, and bug reports.
* Kai Grossjohann pointed out key-binding conflicts with other
packages.
* Bernt Hansen has driven much of the support for auto-repeating
tasks, task state change logging, and the clocktable. His clear
explanations have been critical when we started to adopt the Git
version control system.
* Manuel Hermenegildo has contributed various ideas, small fixes and
patches.
* Phil Jackson wrote `org-irc.el'.
* Scott Jaderholm proposed footnotes, control over whitespace between
folded entries, and column view for properties.
* Tokuya Kameshima wrote `org-wl.el' and `org-mew.el'.
* Shidai Liu ("Leo") asked for embedded LaTeX and tested it. He also
provided frequent feedback and some patches.
* Matt Lundin has proposed last-row references for table formulas
and named invisible anchors. He has also worked a lot on the FAQ.
* Jason F. McBrayer suggested agenda export to CSV format.
* Max Mikhanosha came up with the idea of refiling.
* Dmitri Minaev sent a patch to set priority limits on a per-file
basis.
* Stefan Monnier provided a patch to keep the Emacs-Lisp compiler
happy.
* Richard Moreland wrote MobileOrg for the iPhone.
* Rick Moynihan proposed allowing multiple TODO sequences in a file
and being able to quickly restrict the agenda to a subtree.
* Todd Neal provided patches for links to Info files and Elisp forms.
* Greg Newman refreshed the unicorn logo into its current form.
* Tim O'Callaghan suggested in-file links, search options for general
file links, and TAGS.
* Takeshi Okano translated the manual and David O'Toole's tutorial
into Japanese.
* Oliver Oppitz suggested multi-state TODO items.
* Scott Otterson sparked the introduction of descriptive text for
links, among other things.
* Pete Phillips helped during the development of the TAGS feature,
and provided frequent feedback.
* Martin Pohlack provided the code snippet to bundle character
insertion into bundles of 20 for undo.
* T.V. Raman reported bugs and suggested improvements.
* Matthias Rempe (Oelde) provided ideas, Windows support, and quality
control.
* Paul Rivier provided the basic implementation of named footnotes.
He also acted as mailing list moderator for some time.
* Kevin Rogers contributed code to access VM files on remote hosts.
* Sebastian Rose wrote `org-info.js', a Java script for displaying
webpages derived from Org using an Info-like or a folding
interface with single-key navigation.
* Frank Ruell solved the mystery of the `keymapp nil' bug, a
conflict with `allout.el'.
* Jason Riedy generalized the send-receive mechanism for Orgtbl
tables with extensive patches.
* Philip Rooke created the Org reference card, provided lots of
feedback, developed and applied standards to the Org documentation.
* Christian Schlauer proposed angular brackets around links, among
other things.
* Eric Schulte wrote `org-plot.el' and (together with Dan Davison)
Org Babel, and contributed various patches, small features and
modules.
* Linking to VM/BBDB/Gnus was first inspired by Tom Shannon's
`organizer-mode.el'.
* Ilya Shlyakhter proposed the Archive Sibling, line numbering in
literal examples, and remote highlighting for referenced code
lines.
* Stathis Sideris wrote the `ditaa.jar' ASCII to PNG converter that
is now packaged into Org's `contrib' directory.
* Daniel Sinder came up with the idea of internal archiving by
locking subtrees.
* Dale Smith proposed link abbreviations.
* James TD Smith has contributed a large number of patches for useful
tweaks and features.
* Adam Spiers asked for global linking commands, inspired the link
extension system, added support for mairix, and proposed the
mapping API.
* Andy Stewart contributed code to `org-w3m.el', to copy HTML content
with links transformation to Org syntax.
* David O'Toole wrote `org-publish.el' and drafted the manual
chapter about publishing.
* Ju"rgen Vollmer contributed code generating the table of contents
in HTML output.
* Chris Wallace provided a patch implementing the `QUOTE' keyword.
* David Wainberg suggested archiving, and improvements to the linking
system.
* John Wiegley wrote `emacs-wiki.el', `planner.el', and `muse.el',
which have some overlap with Org. Initially the development of
Org was fully independent because I was not aware of the existence
of these packages. But with time I have occasionally looked at
John's code and learned a lot from it. John has also contributed
a number of great ideas and patches directly to Org, including the
attachment system (`org-attach.el'), integration with Apple Mail
(`org-mac-message.el'), hierarchical dependencies of TODO items,
habit tracking (`org-habits.el') and support for pcomplete.
* Carsten Wimmer suggested some changes and helped fix a bug in
linking to Gnus.
* Roland Winkler requested additional key bindings to make Org work
on a tty.
* Piotr Zielinski wrote `org-mouse.el', proposed agenda blocks and
contributed various ideas and code snippets.
File: org, Node: Main Index, Next: Key Index, Prev: History and Acknowledgments, Up: Top
Concept Index
*************
[index ]
* Menu:
* #+ARCHIVE: Moving subtrees. (line 27)
* #+ATTR_DOCBOOK: Images in DocBook export.
(line 30)
* #+ATTR_HTML <1>: Images in HTML export.
(line 24)
* #+ATTR_HTML <2>: Tables in HTML export.
(line 11)
* #+ATTR_HTML: Links in HTML export.
(line 21)
* #+ATTR_LaTeX <1>: Images in LaTeX export.
(line 25)
* #+ATTR_LaTeX: Tables in LaTeX export.
(line 11)
* #+AUTHOR: Export options. (line 19)
* #+BEGIN, clocktable: Clocking work time. (line 89)
* #+BEGIN, columnview: Capturing column view.
(line 11)
* #+BEGIN_CENTER: Paragraphs. (line 31)
* #+BEGIN_COMMENT: Comment lines. (line 6)
* #+BEGIN_DOCBOOK: Quoting DocBook code.
(line 9)
* #+BEGIN_EXAMPLE: Literal examples. (line 8)
* #+BEGIN_HTML: Quoting HTML tags. (line 12)
* #+BEGIN_LaTeX: Quoting LaTeX code. (line 12)
* #+BEGIN_QUOTE: Paragraphs. (line 26)
* #+BEGIN_SRC: Literal examples. (line 27)
* #+BEGIN_VERSE: Paragraphs. (line 13)
* #+BIND: Export options. (line 19)
* #+CAPTION <1>: Images in DocBook export.
(line 30)
* #+CAPTION <2>: Images in LaTeX export.
(line 25)
* #+CAPTION <3>: Tables in LaTeX export.
(line 11)
* #+CAPTION <4>: Images in HTML export.
(line 24)
* #+CAPTION <5>: Tables in HTML export.
(line 11)
* #+CAPTION: Images and tables. (line 6)
* #+COLUMNS: Scope of column definitions.
(line 8)
* #+CONSTANTS: References. (line 84)
* #+DATE: Export options. (line 19)
* #+DESCRIPTION: Export options. (line 19)
* #+DOCBOOK: Quoting DocBook code.
(line 9)
* #+DRAWERS: Drawers. (line 6)
* #+EMAIL: Export options. (line 19)
* #+EXPORT_EXCLUDE_TAGS: Export options. (line 19)
* #+EXPORT_SELECT_TAGS: Export options. (line 19)
* #+FILETAGS: Tag inheritance. (line 20)
* #+HTML: Quoting HTML tags. (line 12)
* #+INCLUDE: Include files. (line 7)
* #+INFOJS_OPT: Javascript support. (line 26)
* #+KEYWORDS: Export options. (line 19)
* #+LABEL <1>: Images in DocBook export.
(line 30)
* #+LABEL <2>: Images in LaTeX export.
(line 25)
* #+LABEL <3>: Tables in LaTeX export.
(line 11)
* #+LABEL: Images and tables. (line 6)
* #+LANGUAGE: Export options. (line 19)
* #+LaTeX: Quoting LaTeX code. (line 12)
* #+LATEX_CLASS: Sectioning structure.
(line 8)
* #+LATEX_HEADER <1>: Sectioning structure.
(line 8)
* #+LATEX_HEADER: Export options. (line 19)
* #+LINK: Link abbreviations. (line 36)
* #+LINK_HOME: Export options. (line 19)
* #+LINK_UP: Export options. (line 19)
* #+MACRO: Macro replacement. (line 6)
* #+OPTIONS <1>: Export options. (line 19)
* #+OPTIONS: Headings and sections.
(line 14)
* #+ORGLIST: Radio lists. (line 23)
* #+ORGTBL: Radio tables. (line 15)
* #+ORGTBL, SEND: A LaTeX example. (line 14)
* #+PLOT: Org-Plot. (line 6)
* #+PRIORITIES: Priorities. (line 41)
* #+PROPERTY: Property syntax. (line 37)
* #+SEQ_TODO: Per-file keywords. (line 6)
* #+SETUPFILE: In-buffer settings. (line 61)
* #+STARTUP:: In-buffer settings. (line 74)
* #+STYLE: CSS support. (line 44)
* #+TAGS: Setting tags. (line 29)
* #+TBLFM: Field formulas. (line 12)
* #+TBLNAME: References. (line 105)
* #+TEXT <1>: Export options. (line 19)
* #+TEXT: Initial text. (line 6)
* #+TITLE <1>: Export options. (line 19)
* #+TITLE: Document title. (line 8)
* #+TODO: Per-file keywords. (line 6)
* #+TYP_TODO: Per-file keywords. (line 6)
* abbreviation, links: Link abbreviations. (line 6)
* acknowledgements: History and Acknowledgments.
(line 6)
* action, for publishing: Publishing action. (line 6)
* activation: Activation. (line 6)
* active region <1>: DocBook export commands.
(line 6)
* active region <2>: LaTeX/PDF export commands.
(line 6)
* active region <3>: HTML Export commands.
(line 6)
* active region <4>: ASCII export. (line 9)
* active region <5>: Built-in table editor.
(line 158)
* active region: Structure editing. (line 124)
* add-on packages: Add-on packages. (line 6)
* add-ons, context-sensitive commands: Context-sensitive commands.
(line 6)
* agenda: Weekly/daily agenda. (line 6)
* agenda dispatcher: Agenda dispatcher. (line 6)
* agenda files: Agenda files. (line 6)
* agenda files, removing buffers: Agenda commands. (line 478)
* agenda views: Agenda Views. (line 6)
* agenda views, custom: Custom agenda views. (line 6)
* agenda views, exporting <1>: Exporting Agenda Views.
(line 6)
* agenda views, exporting: Agenda commands. (line 465)
* agenda views, user-defined: Special agenda views.
(line 6)
* agenda, column view: Agenda column view. (line 6)
* agenda, pipe: Extracting agenda information.
(line 6)
* agenda, with block views: Block agenda. (line 6)
* align, STARTUP keyword: In-buffer settings. (line 94)
* alignment in tables: Column width and alignment.
(line 6)
* anniversaries, from BBDB: Weekly/daily agenda. (line 64)
* API, for mapping: Using the mapping API.
(line 6)
* API, for properties <1>: Using the property API.
(line 6)
* API, for properties: Property API. (line 6)
* appointment reminders: Weekly/daily agenda. (line 97)
* appt.el: Weekly/daily agenda. (line 97)
* archive locations: Moving subtrees. (line 20)
* archiving: Archiving. (line 6)
* ASCII export: ASCII export. (line 6)
* attachments: Attachments. (line 6)
* author: Feedback. (line 6)
* author info, in export: Export options. (line 38)
* autoload: Activation. (line 6)
* backtrace of an error: Feedback. (line 35)
* Baur, Steven L.: Cooperation. (line 75)
* BBDB links: External links. (line 6)
* BBDB, anniversaries: Weekly/daily agenda. (line 64)
* block agenda: Block agenda. (line 6)
* blocking, of checkboxes: Checkboxes. (line 46)
* blocks, folding: Blocks. (line 6)
* bold text, markup rules: Emphasis and monospace.
(line 6)
* Boolean logic, for tag/property searches: Matching tags and properties.
(line 34)
* bug reports: Feedback. (line 6)
* C-c C-c, overview: The very busy C-c C-c key.
(line 6)
* calc package: The spreadsheet. (line 6)
* calc.el: Cooperation. (line 6)
* calculations, in tables <1>: The spreadsheet. (line 6)
* calculations, in tables: Built-in table editor.
(line 158)
* calendar commands, from agenda: Agenda commands. (line 414)
* calendar integration: Weekly/daily agenda. (line 23)
* calendar, for selecting date: The date/time prompt.
(line 59)
* capture: Capture - Refile - Archive.
(line 6)
* category: Categories. (line 6)
* category, require for tags/property match: Matching tags and properties.
(line 59)
* CDLaTeX: CDLaTeX mode. (line 6)
* cdlatex.el: Cooperation. (line 29)
* checkbox blocking: Checkboxes. (line 46)
* checkbox statistics: Checkboxes. (line 30)
* checkboxes: Checkboxes. (line 6)
* checkboxes and TODO dependencies: TODO dependencies. (line 44)
* children, subtree visibility state: Visibility cycling. (line 10)
* clean outline view: Clean view. (line 6)
* code line references, markup rules: Literal examples. (line 6)
* code text, markup rules: Emphasis and monospace.
(line 6)
* column formula: Column formulas. (line 6)
* column view, for properties: Defining columns. (line 6)
* column view, in agenda: Agenda column view. (line 6)
* commands, in agenda buffer: Agenda commands. (line 6)
* comment lines: Comment lines. (line 6)
* completion, of dictionary words: Completion. (line 6)
* completion, of file names: Handling links. (line 86)
* completion, of link abbreviations: Completion. (line 6)
* completion, of links: Handling links. (line 65)
* completion, of option keywords <1>: Completion. (line 6)
* completion, of option keywords <2>: Export options. (line 6)
* completion, of option keywords: Per-file keywords. (line 24)
* completion, of property keys: Completion. (line 6)
* completion, of tags <1>: Completion. (line 6)
* completion, of tags: Setting tags. (line 11)
* completion, of TeX symbols: Completion. (line 6)
* completion, of TODO keywords <1>: Completion. (line 6)
* completion, of TODO keywords: Workflow states. (line 15)
* constants, in calculations: References. (line 84)
* constants.el: Cooperation. (line 17)
* constcgs, STARTUP keyword: In-buffer settings. (line 129)
* constSI, STARTUP keyword: In-buffer settings. (line 129)
* content, STARTUP keyword <1>: In-buffer settings. (line 80)
* content, STARTUP keyword: Visibility cycling. (line 50)
* contents, global visibility state: Visibility cycling. (line 22)
* context-sensitive commands, hooks: Context-sensitive commands.
(line 6)
* copying, of subtrees: Structure editing. (line 6)
* creating timestamps: Creating timestamps. (line 6)
* CSS, for HTML export: CSS support. (line 6)
* CUA.el: Conflicts. (line 19)
* Cui, Baoqui: DocBook export. (line 6)
* custom agenda views: Custom agenda views. (line 6)
* custom date/time format: Custom time format. (line 6)
* custom search strings: Custom searches. (line 6)
* customization: Customization. (line 6)
* customtime, STARTUP keyword: In-buffer settings. (line 126)
* cutting, of subtrees: Structure editing. (line 6)
* cycling, of TODO states: TODO basics. (line 13)
* cycling, visibility: Visibility cycling. (line 6)
* daily agenda: Weekly/daily agenda. (line 6)
* date format, custom: Custom time format. (line 6)
* date range: Timestamps. (line 40)
* date stamp: Dates and Times. (line 6)
* date stamps: Timestamps. (line 6)
* date, reading in minibuffer: The date/time prompt.
(line 6)
* dates: Dates and Times. (line 6)
* DEADLINE keyword: Deadlines and scheduling.
(line 9)
* deadlines: Timestamps. (line 6)
* debugging, of table formulas: Editing and debugging formulas.
(line 96)
* demotion, of subtrees: Structure editing. (line 6)
* dependencies, of TODO states: TODO dependencies. (line 6)
* diary entries, creating from agenda: Agenda commands. (line 419)
* diary integration: Weekly/daily agenda. (line 23)
* dictionary word completion: Completion. (line 6)
* directories, for publishing: Sources and destinations.
(line 6)
* dispatcher, for export commands: The export dispatcher.
(line 6)
* dispatching agenda commands: Agenda dispatcher. (line 6)
* display changing, in agenda: Agenda commands. (line 68)
* DocBook export: DocBook export. (line 6)
* DocBook recursive sections: Recursive sections. (line 6)
* document structure: Document Structure. (line 6)
* document title, markup rules: Document title. (line 6)
* Dominik, Carsten: Cooperation. (line 17)
* DONE, final TODO keyword: Per-file keywords. (line 27)
* drawer, for properties: Property syntax. (line 6)
* drawer, for state change recording: Tracking TODO state changes.
(line 6)
* drawers: Drawers. (line 6)
* dynamic blocks: Dynamic blocks. (line 6)
* dynamic indentation: Clean view. (line 6)
* editing tables: Tables. (line 6)
* editing, of table formulas: Editing and debugging formulas.
(line 6)
* effort estimates: Effort estimates. (line 6)
* effort filtering, in agenda: Agenda commands. (line 177)
* Elisp links: External links. (line 6)
* emacsserver: Protocols. (line 6)
* emphasized text: Export options. (line 38)
* evaluate time range: Creating timestamps. (line 56)
* even, STARTUP keyword: In-buffer settings. (line 117)
* export, selective by tags: Selective export. (line 6)
* exporting: Exporting. (line 6)
* exporting agenda views <1>: Exporting Agenda Views.
(line 13)
* exporting agenda views: Agenda commands. (line 465)
* exporting, not: Comment lines. (line 6)
* extended TODO keywords: TODO extensions. (line 6)
* external archiving: Moving subtrees. (line 6)
* external links: External links. (line 6)
* external links, in HTML export: Links in HTML export.
(line 6)
* faces, for TODO keywords: Faces for TODO keywords.
(line 6)
* FAQ: Summary. (line 54)
* feedback: Feedback. (line 6)
* field formula: Field formulas. (line 6)
* field references: References. (line 15)
* file links: External links. (line 6)
* file links, searching: Search options. (line 6)
* file name completion: Handling links. (line 86)
* files for agenda: Agenda files. (line 6)
* files, adding to agenda list: Agenda files. (line 15)
* files, selecting for publishing: Selecting files. (line 6)
* filtering, by tag and effort, in agenda: Agenda commands. (line 177)
* fixed-width sections: Export options. (line 38)
* fnadjust, STARTUP keyword: In-buffer settings. (line 134)
* fnauto, STARTUP keyword: In-buffer settings. (line 134)
* fnconfirm, STARTUP keyword: In-buffer settings. (line 134)
* fninline, STARTUP keyword: In-buffer settings. (line 134)
* fnlocal, STARTUP keyword: In-buffer settings. (line 134)
* fnplain, STARTUP keyword: In-buffer settings. (line 134)
* fnprompt, STARTUP keyword: In-buffer settings. (line 134)
* folded, subtree visibility state: Visibility cycling. (line 10)
* folding, sparse trees: Sparse trees. (line 6)
* following links: Handling links. (line 101)
* footnote.el <1>: Cooperation. (line 75)
* footnote.el: Footnote markup. (line 6)
* footnotes <1>: Export options. (line 38)
* footnotes: Footnotes. (line 6)
* footnotes, markup rules: Footnote markup. (line 6)
* format specifier: Formula syntax for Calc.
(line 14)
* format, of links: Link format. (line 6)
* formatting source code, markup rules: Literal examples. (line 23)
* formula debugging: Editing and debugging formulas.
(line 96)
* formula editing: Editing and debugging formulas.
(line 6)
* formula syntax, Calc: Formula syntax for Calc.
(line 6)
* formula, for individual table field: Field formulas. (line 6)
* formula, for table column: Column formulas. (line 6)
* formula, in tables: Built-in table editor.
(line 158)
* Freemind export: Freemind export. (line 6)
* Gillespie, Dave: Cooperation. (line 6)
* global cycling: Visibility cycling. (line 22)
* global key bindings: Activation. (line 6)
* global TODO list: Global TODO list. (line 6)
* global visibility states: Visibility cycling. (line 22)
* Gnus links: External links. (line 6)
* graph, in tables: Org-Plot. (line 6)
* grouping columns in tables: Column groups. (line 6)
* Guerry, Bastien: LaTeX and PDF export.
(line 6)
* habits: Tracking your habits.
(line 6)
* hacking: Hacking. (line 6)
* headings and sections, markup rules: Headings and sections.
(line 6)
* headline levels: Export options. (line 38)
* headline levels, for exporting <1>: LaTeX/PDF export commands.
(line 39)
* headline levels, for exporting <2>: HTML Export commands.
(line 45)
* headline levels, for exporting: ASCII export. (line 24)
* headline navigation: Motion. (line 6)
* headline tagging: Tags. (line 6)
* headline, promotion and demotion: Structure editing. (line 6)
* headlines: Headlines. (line 6)
* hide text: Visibility cycling. (line 6)
* hideblocks, STARTUP keyword <1>: In-buffer settings. (line 145)
* hideblocks, STARTUP keyword: Blocks. (line 13)
* hidestars, STARTUP keyword: In-buffer settings. (line 117)
* hiding leading stars: Clean view. (line 6)
* history: History and Acknowledgments.
(line 6)
* hooks: Hooks. (line 6)
* horizontal rules, markup rules: Horizontal rules. (line 6)
* HTML entities: Special symbols. (line 6)
* HTML export: HTML export. (line 6)
* HTML export, CSS: CSS support. (line 6)
* HTML, and Orgtbl mode: Translator functions.
(line 6)
* hyperlinks: Hyperlinks. (line 6)
* hyperlinks, adding new types: Adding hyperlink types.
(line 6)
* iCalendar export: iCalendar export. (line 6)
* idle, resolve, dangling: Resolving idle time. (line 6)
* images, inline in DocBook: Images in DocBook export.
(line 6)
* images, inline in HTML: Images in HTML export.
(line 6)
* images, inline in LaTeX: Images in LaTeX export.
(line 6)
* imenu.el: Cooperation. (line 33)
* in-buffer settings: In-buffer settings. (line 6)
* inactive timestamp: Timestamps. (line 49)
* include files, markup rules: Include files. (line 6)
* indent, STARTUP keyword: In-buffer settings. (line 86)
* index, of published pages: Project page index. (line 6)
* Info links: External links. (line 6)
* inheritance, of properties: Property inheritance.
(line 6)
* inheritance, of tags: Tag inheritance. (line 6)
* inlined images, markup rules: Images and tables. (line 17)
* inlining images in DocBook: Images in DocBook export.
(line 6)
* inlining images in HTML: Images in HTML export.
(line 6)
* inlining images in LaTeX: Images in LaTeX export.
(line 6)
* inserting links: Handling links. (line 65)
* installation: Installation. (line 6)
* internal links: Internal links. (line 6)
* internal links, in HTML export: Links in HTML export.
(line 6)
* introduction: Introduction. (line 6)
* iPhone: MobileOrg. (line 6)
* IRC links: External links. (line 6)
* italic text, markup rules: Emphasis and monospace.
(line 6)
* jumping, to headlines: Motion. (line 6)
* key bindings, global: Activation. (line 6)
* keyword options: Per-file keywords. (line 6)
* LaTeX class: Sectioning structure.
(line 6)
* LaTeX entities: Special symbols. (line 6)
* LaTeX export: LaTeX and PDF export.
(line 6)
* LaTeX fragments <1>: Export options. (line 38)
* LaTeX fragments: LaTeX fragments. (line 6)
* LaTeX fragments, markup rules: Special symbols. (line 6)
* LaTeX fragments, preview: Previewing LaTeX fragments.
(line 6)
* LaTeX interpretation: Embedded LaTeX. (line 6)
* LaTeX sectioning structure: Sectioning structure.
(line 6)
* LaTeX, and Orgtbl mode: A LaTeX example. (line 6)
* level, require for tags/property match: Matching tags and properties.
(line 59)
* line-break preservation: Export options. (line 38)
* link abbreviations: Link abbreviations. (line 6)
* link abbreviations, completion of: Completion. (line 6)
* link completion: Handling links. (line 65)
* link format: Link format. (line 6)
* links, external: External links. (line 6)
* links, finding next/previous: Handling links. (line 137)
* links, handling: Handling links. (line 6)
* links, in HTML export: Links in HTML export.
(line 6)
* links, internal: Internal links. (line 6)
* links, publishing: Publishing links. (line 6)
* links, radio targets: Radio targets. (line 6)
* links, returning to: Handling links. (line 131)
* Lisp forms, as table formulas: Formula syntax for Lisp.
(line 6)
* lists, in other modes: Tables in arbitrary syntax.
(line 6)
* lists, markup rules: Lists. (line 6)
* lists, ordered: Plain lists. (line 6)
* lists, plain: Plain lists. (line 6)
* literal examples, markup rules: Literal examples. (line 6)
* logdone, STARTUP keyword: In-buffer settings. (line 99)
* logging, of progress: Progress logging. (line 6)
* lognoteclock-out, STARTUP keyword: In-buffer settings. (line 99)
* lognotedone, STARTUP keyword: In-buffer settings. (line 99)
* lognoteredeadline, STARTUP keyword: In-buffer settings. (line 99)
* lognoterepeat, STARTUP keyword: In-buffer settings. (line 99)
* lognotereschedule, STARTUP keyword: In-buffer settings. (line 99)
* logredeadline, STARTUP keyword: In-buffer settings. (line 99)
* logrepeat, STARTUP keyword: In-buffer settings. (line 99)
* logreschedule, STARTUP keyword: In-buffer settings. (line 99)
* Ludlam, Eric M.: Cooperation. (line 46)
* macro replacement, during export: Macro replacement. (line 6)
* maintainer: Feedback. (line 6)
* mapping entries, API: Using the mapping API.
(line 6)
* mark ring: Handling links. (line 127)
* marking characters, tables: Advanced features. (line 38)
* match view: Matching tags and properties.
(line 6)
* matching, of properties: Matching tags and properties.
(line 6)
* matching, of tags: Matching tags and properties.
(line 6)
* matching, tags: Tags. (line 6)
* math symbols: Special symbols. (line 6)
* MH-E links: External links. (line 6)
* mind map: Freemind export. (line 6)
* minor mode for structure editing: Orgstruct mode. (line 6)
* minor mode for tables: Orgtbl mode. (line 6)
* MobileOrg: MobileOrg. (line 6)
* mode, for calc: Formula syntax for Calc.
(line 14)
* motion commands in agenda: Agenda commands. (line 19)
* motion, between headlines: Motion. (line 6)
* name, of column or field: References. (line 84)
* named references: References. (line 84)
* names as TODO keywords: TODO types. (line 6)
* narrow columns in tables: Column width and alignment.
(line 6)
* noalign, STARTUP keyword: In-buffer settings. (line 94)
* nofnadjust, STARTUP keyword: In-buffer settings. (line 134)
* nofninline, STARTUP keyword: In-buffer settings. (line 134)
* nohideblocks, STARTUP keyword <1>: In-buffer settings. (line 145)
* nohideblocks, STARTUP keyword: Blocks. (line 13)
* noindent, STARTUP keyword: In-buffer settings. (line 86)
* nologdone, STARTUP keyword: In-buffer settings. (line 99)
* nolognoteclock-out, STARTUP keyword: In-buffer settings. (line 99)
* nologredeadline, STARTUP keyword: In-buffer settings. (line 99)
* nologrepeat, STARTUP keyword: In-buffer settings. (line 99)
* nologreschedule, STARTUP keyword: In-buffer settings. (line 99)
* O'Toole, David: Publishing. (line 6)
* occur, command: Sparse trees. (line 6)
* odd, STARTUP keyword: In-buffer settings. (line 117)
* odd-levels-only outlines: Clean view. (line 6)
* option keyword completion: Completion. (line 6)
* options, for custom agenda views: Setting Options. (line 6)
* options, for customization: Customization. (line 6)
* options, for export: Export options. (line 6)
* options, for publishing: Publishing options. (line 6)
* ordered lists: Plain lists. (line 6)
* Org mode, turning on: Activation. (line 23)
* org-agenda, command: Weekly/daily agenda. (line 9)
* org-hide-block-startup: In-buffer settings. (line 144)
* org-list-insert-radio-list: Radio lists. (line 6)
* org-publish-project-alist: Project alist. (line 6)
* Orgstruct mode: Orgstruct mode. (line 6)
* Orgtbl mode <1>: Tables in arbitrary syntax.
(line 6)
* Orgtbl mode: Orgtbl mode. (line 6)
* Ota, Takaaki: Cooperation. (line 53)
* Outline mode: Outlines. (line 6)
* outline tree: Headlines. (line 6)
* outlines: Outlines. (line 6)
* overview, global visibility state: Visibility cycling. (line 22)
* overview, STARTUP keyword <1>: In-buffer settings. (line 80)
* overview, STARTUP keyword: Visibility cycling. (line 50)
* packages, interaction with other: Interaction. (line 6)
* paragraphs, markup rules: Paragraphs. (line 6)
* pasting, of subtrees: Structure editing. (line 6)
* PDF export <1>: DocBook export. (line 6)
* PDF export: LaTeX and PDF export.
(line 6)
* per-file keywords: Per-file keywords. (line 6)
* plain lists: Plain lists. (line 6)
* plain text external links: External links. (line 52)
* plot tables using gnuplot: Org-Plot. (line 6)
* presentation, of agenda items: Presentation and sorting.
(line 6)
* printing sparse trees: Sparse trees. (line 47)
* priorities: Priorities. (line 6)
* priorities, of agenda items: Sorting of agenda items.
(line 6)
* progress logging: Progress logging. (line 6)
* projects, for publishing: Project alist. (line 6)
* promotion, of subtrees: Structure editing. (line 6)
* properties: Properties and Columns.
(line 6)
* properties, API <1>: Using the property API.
(line 6)
* properties, API: Property API. (line 6)
* properties, column view: Defining columns. (line 6)
* properties, inheritance: Property inheritance.
(line 6)
* properties, searching: Property searches. (line 6)
* properties, special: Special properties. (line 6)
* property EXPORT_FILE_NAME <1>: DocBook export commands.
(line 7)
* property EXPORT_FILE_NAME: LaTeX/PDF export commands.
(line 7)
* property syntax: Property syntax. (line 6)
* property, _ALL: Property syntax. (line 37)
* property, ARCHIVE <1>: Moving subtrees. (line 29)
* property, ARCHIVE: Property inheritance.
(line 32)
* property, ATTACH_DIR: Attachments. (line 71)
* property, ATTACH_DIR_INHERIT: Attachments. (line 76)
* property, CATEGORY <1>: Categories. (line 12)
* property, CATEGORY: Property inheritance.
(line 28)
* property, COLUMNS <1>: In-buffer settings. (line 30)
* property, COLUMNS: Property inheritance.
(line 20)
* property, COOKIE_DATA <1>: Checkboxes. (line 30)
* property, COOKIE_DATA: Breaking down tasks. (line 21)
* property, CUSTOM_ID <1>: Handling links. (line 21)
* property, CUSTOM_ID: Internal links. (line 6)
* property, DESCRIPTION: iCalendar export. (line 43)
* property, Effort: Effort estimates. (line 6)
* property, EXPORT_FILE_NAME <1>: HTML Export commands.
(line 7)
* property, EXPORT_FILE_NAME: ASCII export. (line 10)
* property, EXPORT_TITLE: Document title. (line 15)
* property, ID <1>: iCalendar export. (line 19)
* property, ID <2>: Capturing column view.
(line 22)
* property, ID: Handling links. (line 21)
* property, LATEX_CLASS: Sectioning structure.
(line 8)
* property, LOCATION: iCalendar export. (line 43)
* property, LOG_INTO_DRAWER: Tracking TODO state changes.
(line 6)
* property, LOGGING <1>: Property inheritance.
(line 36)
* property, LOGGING: Tracking TODO state changes.
(line 41)
* property, ORDERED <1>: Checkboxes. (line 46)
* property, ORDERED: TODO dependencies. (line 6)
* property, special, ALLTAGS: Special properties. (line 13)
* property, special, CATEGORY: Special properties. (line 13)
* property, special, CLOCKSUM <1>: Agenda column view. (line 28)
* property, special, CLOCKSUM: Special properties. (line 13)
* property, special, CLOSED: Special properties. (line 13)
* property, special, DEADLINE: Special properties. (line 13)
* property, special, ITEM: Special properties. (line 13)
* property, special, PRIORITY: Special properties. (line 13)
* property, special, SCHEDULED: Special properties. (line 13)
* property, special, TAGS: Special properties. (line 13)
* property, special, TIMESTAMP: Special properties. (line 13)
* property, special, TIMESTAMP_IA: Special properties. (line 13)
* property, special, TODO: Special properties. (line 13)
* property, SUMMARY: iCalendar export. (line 43)
* property, VISIBILITY: Visibility cycling. (line 60)
* property: CLOCK_MODELINE_TOTAL: Clocking work time. (line 31)
* property: LAST_REPEAT: Clocking work time. (line 31)
* protocols, for external access: Protocols. (line 6)
* publishing: Publishing. (line 6)
* query editing, in agenda: Agenda commands. (line 177)
* quoted HTML tags: Export options. (line 38)
* radio lists: Radio lists. (line 6)
* radio tables: Radio tables. (line 6)
* radio targets: Radio targets. (line 6)
* range references: References. (line 62)
* ranges, time: Timestamps. (line 6)
* recomputing table fields: Updating the table. (line 6)
* references: References. (line 6)
* references, named: References. (line 84)
* references, remote: References. (line 105)
* references, to a different table: References. (line 105)
* references, to fields: References. (line 15)
* references, to ranges: References. (line 62)
* refiling notes: Refiling notes. (line 6)
* region, active <1>: DocBook export commands.
(line 6)
* region, active <2>: LaTeX/PDF export commands.
(line 6)
* region, active <3>: HTML Export commands.
(line 6)
* region, active <4>: ASCII export. (line 9)
* region, active <5>: Built-in table editor.
(line 158)
* region, active: Structure editing. (line 124)
* regular expressions, with tags search: Matching tags and properties.
(line 55)
* relative timer: Relative timer. (line 6)
* remember.el <1>: Cooperation. (line 42)
* remember.el: Remember. (line 6)
* remote editing, bulk, from agenda: Agenda commands. (line 385)
* remote editing, from agenda: Agenda commands. (line 256)
* remote editing, undo: Agenda commands. (line 257)
* remote references: References. (line 105)
* repeated tasks: Repeated tasks. (line 6)
* resolve idle time: Resolving idle time. (line 6)
* RMAIL links: External links. (line 6)
* Rose, Sebastian: Javascript support. (line 6)
* RSS feeds: RSS Feeds. (line 6)
* rsync: Uploading files. (line 6)
* SCHEDULED keyword: Deadlines and scheduling.
(line 27)
* scheduling: Timestamps. (line 6)
* Scripts, for agenda processing: Extracting agenda information.
(line 6)
* search option in file links: Search options. (line 6)
* search strings, custom: Custom searches. (line 6)
* search view: Search view. (line 6)
* searching for tags: Tag searches. (line 6)
* searching, for text: Search view. (line 6)
* searching, of properties: Property searches. (line 6)
* section-numbers: Export options. (line 38)
* setting tags: Setting tags. (line 6)
* SHELL links: External links. (line 6)
* shift-selection-mode <1>: Conflicts. (line 6)
* shift-selection-mode: Plain lists. (line 88)
* show all, command: Visibility cycling. (line 33)
* show all, global visibility state: Visibility cycling. (line 22)
* show hidden text: Visibility cycling. (line 6)
* showall, STARTUP keyword <1>: In-buffer settings. (line 80)
* showall, STARTUP keyword: Visibility cycling. (line 50)
* showeverything, STARTUP keyword <1>: In-buffer settings. (line 80)
* showeverything, STARTUP keyword: Visibility cycling. (line 50)
* showstars, STARTUP keyword: In-buffer settings. (line 117)
* sorting, of agenda items: Sorting of agenda items.
(line 6)
* sorting, of subtrees: Structure editing. (line 6)
* sparse tree, for deadlines: Inserting deadline/schedule.
(line 28)
* sparse tree, for TODO: TODO basics. (line 34)
* sparse tree, tag based: Tags. (line 6)
* sparse trees: Sparse trees. (line 6)
* Special characters in DocBook export: Special characters. (line 6)
* special keywords: In-buffer settings. (line 6)
* special strings: Export options. (line 38)
* special symbols: Special symbols. (line 6)
* speed keys: Speed keys. (line 6)
* speedbar.el: Cooperation. (line 46)
* spreadsheet capabilities: The spreadsheet. (line 6)
* square brackets, around links: External links. (line 52)
* statistics, for checkboxes: Checkboxes. (line 30)
* statistics, for TODO items: Breaking down tasks. (line 6)
* storing links: Handling links. (line 9)
* Storm, Kim. F.: Conflicts. (line 19)
* strike-through text, markup rules: Emphasis and monospace.
(line 6)
* structure editing: Structure editing. (line 6)
* structure of document: Document Structure. (line 6)
* sublevels, inclusion into tags match: Tag inheritance. (line 6)
* sublevels, inclusion into TODO list: Global TODO list. (line 34)
* subscript: Subscripts and superscripts.
(line 6)
* subtree cycling: Visibility cycling. (line 10)
* subtree visibility states: Visibility cycling. (line 10)
* subtree, cut and paste: Structure editing. (line 6)
* subtree, subtree visibility state: Visibility cycling. (line 10)
* subtrees, cut and paste: Structure editing. (line 6)
* summary: Summary. (line 6)
* superscript: Subscripts and superscripts.
(line 6)
* syntax, of formulas: Formula syntax for Calc.
(line 6)
* table editor, built-in: Built-in table editor.
(line 6)
* table editor, table.el: Cooperation. (line 53)
* table of contents: Export options. (line 38)
* table of contents, markup rules: Table of contents. (line 6)
* table.el: Cooperation. (line 50)
* tables <1>: Export options. (line 38)
* tables: Tables. (line 6)
* tables, in DocBook export: Tables in DocBook export.
(line 6)
* tables, in HTML: Tables in HTML export.
(line 6)
* tables, in LaTeX export: Tables in LaTeX export.
(line 6)
* tables, in other modes: Tables in arbitrary syntax.
(line 6)
* tables, markup rules: Images and tables. (line 6)
* tag completion: Completion. (line 6)
* tag filtering, in agenda: Agenda commands. (line 177)
* tag inheritance: Tag inheritance. (line 6)
* tag searches: Tag searches. (line 6)
* tags: Tags. (line 6)
* tags view: Matching tags and properties.
(line 6)
* tags, setting: Setting tags. (line 6)
* targets, for links: Internal links. (line 6)
* targets, radio: Radio targets. (line 6)
* tasks, breaking down: Breaking down tasks. (line 6)
* tasks, repeated: Repeated tasks. (line 6)
* templates, for Remember: Remember templates. (line 6)
* TeX interpretation: Embedded LaTeX. (line 6)
* TeX macros <1>: Export options. (line 38)
* TeX macros: Special symbols. (line 6)
* TeX symbol completion: Completion. (line 6)
* TeX-like syntax for sub- and superscripts: Export options. (line 38)
* text areas, in HTML: Text areas in HTML export.
(line 6)
* text before first headline, markup rules: Initial text. (line 6)
* text search: Search view. (line 6)
* thanks: History and Acknowledgments.
(line 6)
* time format, custom: Custom time format. (line 6)
* time grid: Time-of-day specifications.
(line 26)
* time info, in export: Export options. (line 38)
* time, reading in minibuffer: The date/time prompt.
(line 6)
* time-of-day specification: Time-of-day specifications.
(line 6)
* time-sorted view: Timeline. (line 6)
* timeline, single file: Timeline. (line 6)
* timerange: Timestamps. (line 40)
* times: Dates and Times. (line 6)
* timestamp <1>: Timestamps. (line 14)
* timestamp: Dates and Times. (line 6)
* timestamp, inactive: Timestamps. (line 49)
* timestamp, with repeater interval: Timestamps. (line 24)
* timestamps: Timestamps. (line 6)
* timestamps, creating: Creating timestamps. (line 6)
* TODO dependencies: TODO dependencies. (line 6)
* TODO items: TODO Items. (line 6)
* TODO keyword matching: Global TODO list. (line 17)
* TODO keyword matching, with tags search: Matching tags and properties.
(line 59)
* TODO keyword sets: Multiple sets in one file.
(line 6)
* TODO keywords completion: Completion. (line 6)
* TODO list, global: Global TODO list. (line 6)
* TODO types: TODO types. (line 6)
* TODO workflow: Workflow states. (line 6)
* transient mark mode <1>: Built-in table editor.
(line 158)
* transient mark mode: Structure editing. (line 124)
* transient-mark-mode <1>: DocBook export commands.
(line 6)
* transient-mark-mode <2>: LaTeX/PDF export commands.
(line 6)
* transient-mark-mode <3>: HTML Export commands.
(line 6)
* transient-mark-mode: ASCII export. (line 9)
* translator function: Translator functions.
(line 6)
* trees, sparse: Sparse trees. (line 6)
* trees, visibility: Visibility cycling. (line 6)
* tty key bindings: TTY keys. (line 6)
* types as TODO keywords: TODO types. (line 6)
* underlined text, markup rules: Emphasis and monospace.
(line 6)
* undoing remote-editing events: Agenda commands. (line 257)
* unison: Uploading files. (line 6)
* updating, table: Updating the table. (line 6)
* URL links: External links. (line 6)
* USENET links: External links. (line 6)
* variables, for customization: Customization. (line 6)
* vectors, in table calculations: Formula syntax for Calc.
(line 11)
* verbatim text, markup rules: Emphasis and monospace.
(line 6)
* viper.el: Conflicts. (line 53)
* visibility cycling: Visibility cycling. (line 6)
* visibility cycling, drawers: Drawers. (line 6)
* visible text, printing: Sparse trees. (line 47)
* VM links: External links. (line 6)
* WANDERLUST links: External links. (line 6)
* weekly agenda: Weekly/daily agenda. (line 6)
* Wiegley, John: Cooperation. (line 42)
* windmove.el: Conflicts. (line 49)
* workflow states as TODO keywords: Workflow states. (line 6)
* XEmacs: Installation. (line 6)
* XOXO export: XOXO export. (line 6)
* yasnippet.el: Conflicts. (line 39)
File: org, Node: Key Index, Next: Variable Index, Prev: Main Index, Up: Top
Key Index
*********
[index ]
* Menu:
* $: Agenda commands. (line 289)
* ': CDLaTeX mode. (line 42)
* +: Agenda commands. (line 311)
* ,: Agenda commands. (line 303)
* -: Agenda commands. (line 317)
* .: Agenda commands. (line 94)
* /: Agenda commands. (line 177)
* :: Agenda commands. (line 299)
* < <1>: Agenda files. (line 56)
* < <2>: The date/time prompt.
(line 65)
* <: Using column view. (line 69)
* <1>: Agenda commands. (line 41)
* <2>: The date/time prompt.
(line 65)
* <3>: Setting tags. (line 115)
* : Built-in table editor.
(line 65)
* <1>: Agenda commands. (line 28)
* : Setting tags. (line 112)
* <1>: CDLaTeX mode. (line 22)
* <2>: Agenda commands. (line 35)
* <3>: Setting tags. (line 107)
* <4>: Editing and debugging formulas.
(line 56)
* <5>: Built-in table editor.
(line 58)
* <6>: Plain lists. (line 55)
* <7>: Structure editing. (line 32)
* : Visibility cycling. (line 10)
* > <1>: Agenda commands. (line 362)
* > <2>: Agenda files. (line 60)
* > <3>: The date/time prompt.
(line 65)
* >: Using column view. (line 69)
* ?: Pulling from MobileOrg.
(line 33)
* [: Agenda commands. (line 114)
* \: Agenda commands. (line 236)
* ]: Agenda commands. (line 243)
* ^: CDLaTeX mode. (line 32)
* _: CDLaTeX mode. (line 32)
* `: CDLaTeX mode. (line 38)
* a <1>: Agenda commands. (line 277)
* a: Using column view. (line 58)
* B: Agenda commands. (line 394)
* b: Agenda commands. (line 91)
* C: Agenda commands. (line 447)
* c: Agenda commands. (line 414)
* C-#: Advanced features. (line 9)
* C-': Agenda files. (line 22)
* C-,: Agenda files. (line 22)
* C-: Structure editing. (line 18)
* C-_: Agenda commands. (line 257)
* C-c !: Creating timestamps. (line 15)
* C-c #: Checkboxes. (line 83)
* C-c $: Moving subtrees. (line 9)
* C-c %: Handling links. (line 127)
* C-c &: Handling links. (line 131)
* C-c ' <1>: Include files. (line 21)
* C-c ' <2>: Literal examples. (line 65)
* C-c ': Editing and debugging formulas.
(line 35)
* C-c * <1>: Updating the table. (line 13)
* C-c * <2>: Plain lists. (line 123)
* C-c *: Structure editing. (line 113)
* C-c +: Built-in table editor.
(line 158)
* C-c ,: Priorities. (line 21)
* C-c - <1>: Built-in table editor.
(line 101)
* C-c -: Plain lists. (line 113)
* C-c .: Creating timestamps. (line 10)
* C-c / <1>: Conflicts. (line 53)
* C-c /: Sparse trees. (line 15)
* C-c / a: Inserting deadline/schedule.
(line 38)
* C-c / b: Inserting deadline/schedule.
(line 35)
* C-c / d: Inserting deadline/schedule.
(line 28)
* C-c / m <1>: Property searches. (line 9)
* C-c / m: Tag searches. (line 9)
* C-c / p: Property searches. (line 29)
* C-c / r: Sparse trees. (line 17)
* C-c / t: TODO basics. (line 34)
* C-c ;: Comment lines. (line 12)
* C-c <: Creating timestamps. (line 26)
* C-c : Built-in table editor.
(line 105)
* C-c = <1>: Editing and debugging formulas.
(line 13)
* C-c =: Column formulas. (line 27)
* C-c >: Creating timestamps. (line 30)
* C-c ?: Editing and debugging formulas.
(line 23)
* C-c [: Agenda files. (line 15)
* C-c \ <1>: Property searches. (line 9)
* C-c \: Tag searches. (line 9)
* C-c ]: Agenda files. (line 19)
* C-c ^ <1>: Built-in table editor.
(line 109)
* C-c ^ <2>: Plain lists. (line 133)
* C-c ^: Structure editing. (line 94)
* C-c `: Built-in table editor.
(line 176)
* C-c a !: Stuck projects. (line 14)
* C-c a #: Stuck projects. (line 13)
* C-c a ?: Pulling from MobileOrg.
(line 43)
* C-c a a: Weekly/daily agenda. (line 9)
* C-c a C: Storing searches. (line 9)
* C-c a e: Exporting Agenda Views.
(line 64)
* C-c a L: Timeline. (line 10)
* C-c a M: Matching tags and properties.
(line 17)
* C-c a m: Matching tags and properties.
(line 12)
* C-c a M: Property searches. (line 16)
* C-c a m: Property searches. (line 12)
* C-c a M: Tag searches. (line 17)
* C-c a m: Tag searches. (line 13)
* C-c a s: Search view. (line 9)
* C-c a T: Global TODO list. (line 14)
* C-c a t <1>: Global TODO list. (line 9)
* C-c a t: TODO basics. (line 46)
* C-c C-a <1>: Agenda commands. (line 326)
* C-c C-a: Attachments. (line 26)
* C-c C-a a: Attachments. (line 31)
* C-c C-a c: Attachments. (line 37)
* C-c C-a D: Attachments. (line 66)
* C-c C-a d: Attachments. (line 63)
* C-c C-a F: Attachments. (line 60)
* C-c C-a f: Attachments. (line 57)
* C-c C-a i: Attachments. (line 75)
* C-c C-a l: Attachments. (line 37)
* C-c C-a m: Attachments. (line 37)
* C-c C-a n: Attachments. (line 41)
* C-c C-a O: Attachments. (line 54)
* C-c C-a o: Attachments. (line 48)
* C-c C-a s: Attachments. (line 70)
* C-c C-a z: Attachments. (line 44)
* C-c C-b: Motion. (line 15)
* C-c C-c <1>: Cooperation. (line 53)
* C-c C-c <2>: The very busy C-c C-c key.
(line 6)
* C-c C-c <3>: Previewing LaTeX fragments.
(line 15)
* C-c C-c <4>: Clocking work time. (line 56)
* C-c C-c <5>: Capturing column view.
(line 51)
* C-c C-c <6>: Using column view. (line 51)
* C-c C-c <7>: Property syntax. (line 57)
* C-c C-c <8>: Setting tags. (line 18)
* C-c C-c <9>: Checkboxes. (line 52)
* C-c C-c <10>: Editing and debugging formulas.
(line 45)
* C-c C-c <11>: Built-in table editor.
(line 57)
* C-c C-c <12>: Footnotes. (line 87)
* C-c C-c: Plain lists. (line 106)
* C-c C-d <1>: Agenda commands. (line 332)
* C-c C-d: Inserting deadline/schedule.
(line 9)
* C-c C-e: The export dispatcher.
(line 12)
* C-c C-e A: ASCII export. (line 16)
* C-c C-e a: ASCII export. (line 9)
* C-c C-e b: HTML Export commands.
(line 13)
* C-c C-e C: Triggering publication.
(line 8)
* C-c C-e c: iCalendar export. (line 36)
* C-c C-e D: DocBook export commands.
(line 6)
* C-c C-e d: LaTeX/PDF export commands.
(line 33)
* C-c C-e E: Triggering publication.
(line 16)
* C-c C-e F: Triggering publication.
(line 13)
* C-c C-e H: HTML Export commands.
(line 16)
* C-c C-e h: HTML Export commands.
(line 6)
* C-c C-e I: iCalendar export. (line 32)
* C-c C-e i: iCalendar export. (line 30)
* C-c C-e L: LaTeX/PDF export commands.
(line 13)
* C-c C-e l: LaTeX/PDF export commands.
(line 6)
* C-c C-e m: Freemind export. (line 8)
* C-c C-e P: Triggering publication.
(line 10)
* C-c C-e p: LaTeX/PDF export commands.
(line 30)
* C-c C-e R: HTML Export commands.
(line 19)
* C-c C-e t: Export options. (line 16)
* C-c C-e v: XOXO export. (line 11)
* C-c C-e V: DocBook export commands.
(line 13)
* C-c C-e v <1>: The export dispatcher.
(line 17)
* C-c C-e v: Sparse trees. (line 47)
* C-c C-e v a: ASCII export. (line 19)
* C-c C-e v b: HTML Export commands.
(line 25)
* C-c C-e v D: DocBook export commands.
(line 25)
* C-c C-e v H: HTML Export commands.
(line 25)
* C-c C-e v h: HTML Export commands.
(line 25)
* C-c C-e v L: LaTeX/PDF export commands.
(line 16)
* C-c C-e v l: LaTeX/PDF export commands.
(line 16)
* C-c C-e v R: HTML Export commands.
(line 25)
* C-c C-e x: XOXO export. (line 10)
* C-c C-f: Motion. (line 12)
* C-c C-j: Motion. (line 21)
* C-c C-l: Handling links. (line 65)
* C-c C-n: Motion. (line 8)
* C-c C-o <1>: Agenda commands. (line 60)
* C-c C-o <2>: Creating timestamps. (line 35)
* C-c C-o <3>: Handling links. (line 101)
* C-c C-o: Footnotes. (line 91)
* C-c C-p: Motion. (line 9)
* C-c C-q <1>: Setting tags. (line 10)
* C-c C-q: Editing and debugging formulas.
(line 49)
* C-c C-r <1>: Editing and debugging formulas.
(line 52)
* C-c C-r: Visibility cycling. (line 34)
* C-c C-s <1>: Agenda commands. (line 329)
* C-c C-s: Inserting deadline/schedule.
(line 14)
* C-c C-t <1>: Clocking work time. (line 61)
* C-c C-t: TODO basics. (line 13)
* C-c C-u: Motion. (line 18)
* C-c C-v: TODO basics. (line 34)
* C-c C-w <1>: Agenda commands. (line 274)
* C-c C-w <2>: Refiling notes. (line 11)
* C-c C-w: Structure editing. (line 90)
* C-c C-x ,: Relative timer. (line 21)
* C-c C-x -: Relative timer. (line 13)
* C-c C-x .: Relative timer. (line 10)
* C-c C-x 0: Relative timer. (line 29)
* C-c C-x <: Agenda files. (line 42)
* C-c C-x > <1>: Agenda commands. (line 170)
* C-c C-x >: Agenda files. (line 49)
* C-c C-x A: Agenda commands. (line 285)
* C-c C-x a: Agenda commands. (line 282)
* C-c C-x A: Internal archiving. (line 49)
* C-c C-x a: Internal archiving. (line 36)
* C-c C-x b <1>: Agenda commands. (line 51)
* C-c C-x b: Visibility cycling. (line 42)
* C-c C-x c: Structure editing. (line 82)
* C-c C-x C-a <1>: Agenda commands. (line 277)
* C-c C-x C-a: Archiving. (line 11)
* C-c C-x C-b: Checkboxes. (line 55)
* C-c C-x C-c <1>: Agenda column view. (line 11)
* C-c C-x C-c <2>: Agenda commands. (line 159)
* C-c C-x C-c: Using column view. (line 9)
* C-c C-x C-d: Clocking work time. (line 74)
* C-c C-x C-e <1>: Effort estimates. (line 17)
* C-c C-x C-e: Clocking work time. (line 53)
* C-c C-x C-i: Clocking work time. (line 21)
* C-c C-x C-j: Clocking work time. (line 69)
* C-c C-x C-k: Inserting deadline/schedule.
(line 22)
* C-c C-x C-l: Previewing LaTeX fragments.
(line 9)
* C-c C-x C-n: Handling links. (line 137)
* C-c C-x C-o: Clocking work time. (line 45)
* C-c C-x C-p: Handling links. (line 137)
* C-c C-x C-r: Clocking work time. (line 82)
* C-c C-x C-s <1>: Agenda commands. (line 289)
* C-c C-x C-s: Moving subtrees. (line 9)
* C-c C-x C-t: Custom time format. (line 12)
* C-c C-x C-u <1>: Dynamic blocks. (line 22)
* C-c C-x C-u <2>: Clocking work time. (line 142)
* C-c C-x C-u: Capturing column view.
(line 54)
* C-c C-x C-w <1>: Built-in table editor.
(line 130)
* C-c C-x C-w: Structure editing. (line 56)
* C-c C-x C-x: Clocking work time. (line 65)
* C-c C-x C-y <1>: Built-in table editor.
(line 134)
* C-c C-x C-y: Structure editing. (line 64)
* C-c C-x e: Effort estimates. (line 14)
* C-c C-x f: Footnotes. (line 51)
* C-c C-x G: RSS Feeds. (line 23)
* C-c C-x g: RSS Feeds. (line 21)
* C-c C-x i: Capturing column view.
(line 49)
* C-c C-x M-w <1>: Built-in table editor.
(line 126)
* C-c C-x M-w: Structure editing. (line 60)
* C-c C-x o <1>: Checkboxes. (line 75)
* C-c C-x o: TODO dependencies. (line 29)
* C-c C-x p: Property syntax. (line 48)
* C-c C-y <1>: Clocking work time. (line 56)
* C-c C-y: Creating timestamps. (line 56)
* C-c l <1>: Literal examples. (line 73)
* C-c l: Handling links. (line 9)
* C-c { <1>: CDLaTeX mode. (line 20)
* C-c {: Editing and debugging formulas.
(line 32)
* C-c |: Built-in table editor.
(line 41)
* C-c }: Editing and debugging formulas.
(line 27)
* C-c ~: Cooperation. (line 64)
* C-k: Agenda commands. (line 268)
* C-S- <1>: Agenda commands. (line 265)
* C-S-: Multiple sets in one file.
(line 25)
* C-S-: Structure editing. (line 27)
* C-S- <1>: Agenda commands. (line 265)
* C-S-: Multiple sets in one file.
(line 25)
* C-TAB: Internal archiving. (line 46)
* C-u C-c !: Creating timestamps. (line 19)
* C-u C-c *: Updating the table. (line 16)
* C-u C-c .: Creating timestamps. (line 19)
* C-u C-c = <1>: Editing and debugging formulas.
(line 13)
* C-u C-c =: Field formulas. (line 26)
* C-u C-c C-c: Updating the table. (line 19)
* C-u C-c C-l: Handling links. (line 86)
* C-u C-c C-t: TODO basics. (line 22)
* C-u C-c C-w: Refiling notes. (line 26)
* C-u C-c C-x ,: Relative timer. (line 24)
* C-u C-c C-x a: Internal archiving. (line 39)
* C-u C-c C-x C-s: Moving subtrees. (line 11)
* C-u C-c C-x C-u <1>: Dynamic blocks. (line 23)
* C-u C-c C-x C-u <2>: Clocking work time. (line 144)
* C-u C-c C-x C-u: Capturing column view.
(line 56)
* C-u C-u : Visibility cycling. (line 63)
* C-u C-u C-c *: Updating the table. (line 22)
* C-u C-u C-c =: Editing and debugging formulas.
(line 17)
* C-u C-u C-c C-c: Updating the table. (line 22)
* C-u C-u C-c C-e: The export dispatcher.
(line 21)
* C-u C-u C-c C-t: Multiple sets in one file.
(line 25)
* C-u C-u C-c C-w: Refiling notes. (line 29)
* C-u C-u C-u : Visibility cycling. (line 33)
* C-u C-u C-u C-c C-t: TODO dependencies. (line 34)
* C-x C-s <1>: Agenda commands. (line 154)
* C-x C-s: Editing and debugging formulas.
(line 45)
* C-x C-w <1>: Exporting Agenda Views.
(line 12)
* C-x C-w: Agenda commands. (line 464)
* C-x n s: Structure editing. (line 107)
* C-x n w: Structure editing. (line 110)
* C-y: Structure editing. (line 70)
* D: Agenda commands. (line 100)
* d: Agenda commands. (line 69)
* E: Agenda commands. (line 132)
* e: Using column view. (line 45)
* f: Agenda commands. (line 85)
* F: Agenda commands. (line 44)
* g: Agenda commands. (line 151)
* G: Agenda commands. (line 140)
* g: Using column view. (line 23)
* H: Agenda commands. (line 451)
* i: Agenda commands. (line 419)
* I: Agenda commands. (line 367)
* J: Agenda commands. (line 379)
* j: Agenda commands. (line 97)
* k: Agenda commands. (line 335)
* k a: Inserting deadline/schedule.
(line 22)
* k s: Inserting deadline/schedule.
(line 22)
* l: Agenda commands. (line 104)
* L: Agenda commands. (line 32)
* M: Agenda commands. (line 438)
* m: Agenda commands. (line 385)
* M- <1>: Editing and debugging formulas.
(line 75)
* M-: Built-in table editor.
(line 90)
* M- <1>: Built-in table editor.
(line 82)
* M-: Structure editing. (line 38)
* M- <1>: Relative timer. (line 17)
* M- <2>: Built-in table editor.
(line 141)
* M- <3>: Plain lists. (line 65)
* M-: Structure editing. (line 6)
* M- <1>: Built-in table editor.
(line 82)
* M-: Structure editing. (line 41)
* M- <1>: Completion. (line 16)
* M- <2>: Property syntax. (line 45)
* M- <3>: Setting tags. (line 6)
* M- <4>: Per-file keywords. (line 24)
* M-: Editing and debugging formulas.
(line 63)
* M- <1>: Editing and debugging formulas.
(line 75)
* M-: Built-in table editor.
(line 90)
* M-a: Built-in table editor.
(line 70)
* M-e: Built-in table editor.
(line 74)
* M-S- <1>: Editing and debugging formulas.
(line 71)
* M-S- <2>: Built-in table editor.
(line 97)
* M-S- <3>: Plain lists. (line 91)
* M-S-: Structure editing. (line 53)
* M-S- <1>: The date/time prompt.
(line 65)
* M-S- <2>: Built-in table editor.
(line 84)
* M-S- <3>: Plain lists. (line 97)
* M-S-: Structure editing. (line 44)
* M-S- <1>: Checkboxes. (line 72)
* M-S- <2>: Plain lists. (line 75)
* M-S-: Structure editing. (line 23)
* M-S- <1>: The date/time prompt.
(line 65)
* M-S- <2>: Built-in table editor.
(line 87)
* M-S- <3>: Plain lists. (line 97)
* M-S-: Structure editing. (line 47)
* M-S- <1>: Editing and debugging formulas.
(line 71)
* M-S- <2>: Built-in table editor.
(line 94)
* M-S- <3>: Plain lists. (line 91)
* M-S-: Structure editing. (line 50)
* M-x org-iswitchb: Agenda files. (line 26)
* mouse-1 <1>: Agenda commands. (line 35)
* mouse-1 <2>: The date/time prompt.
(line 65)
* mouse-1 <3>: Handling links. (line 118)
* mouse-1: Footnotes. (line 91)
* mouse-2 <1>: Agenda commands. (line 35)
* mouse-2 <2>: Handling links. (line 118)
* mouse-2: Footnotes. (line 91)
* mouse-3 <1>: Agenda commands. (line 28)
* mouse-3: Handling links. (line 123)
* n <1>: Agenda commands. (line 19)
* n: Using column view. (line 42)
* O: Agenda commands. (line 371)
* o: Agenda commands. (line 68)
* P: Agenda commands. (line 308)
* p <1>: Agenda commands. (line 20)
* p: Using column view. (line 42)
* q <1>: Agenda commands. (line 477)
* q: Using column view. (line 26)
* r: Agenda commands. (line 144)
* R: Agenda commands. (line 125)
* r <1>: Global TODO list. (line 22)
* r: Using column view. (line 19)
* RET: Handling links. (line 101)
* S: Agenda commands. (line 442)
* s: Agenda commands. (line 154)
* S- <1>: Agenda commands. (line 317)
* S- <2>: The date/time prompt.
(line 65)
* S- <3>: Creating timestamps. (line 44)
* S- <4>: Priorities. (line 26)
* S- <5>: Editing and debugging formulas.
(line 66)
* S-: Plain lists. (line 84)
* S- <1>: Agenda commands. (line 358)
* S- <2>: Clocking work time. (line 148)
* S- <3>: The date/time prompt.
(line 65)
* S- <4>: Creating timestamps. (line 39)
* S- <5>: Using column view. (line 35)
* S- <6>: Property syntax. (line 65)
* S- <7>: Multiple sets in one file.
(line 32)
* S- <8>: TODO basics. (line 28)
* S- <9>: Editing and debugging formulas.
(line 66)
* S-: Plain lists. (line 128)
* S-: Built-in table editor.
(line 161)
* S- <1>: Agenda commands. (line 347)
* S- <2>: Clocking work time. (line 148)
* S- <3>: The date/time prompt.
(line 65)
* S- <4>: Creating timestamps. (line 39)
* S- <5>: Using column view. (line 35)
* S- <6>: Property syntax. (line 65)
* S- <7>: Multiple sets in one file.
(line 32)
* S- <8>: TODO basics. (line 28)
* S- <9>: Editing and debugging formulas.
(line 66)
* S-: Plain lists. (line 128)
* S- <1>: Built-in table editor.
(line 62)
* S-: Visibility cycling. (line 22)
* S- <1>: Agenda commands. (line 311)
* S- <2>: The date/time prompt.
(line 65)
* S- <3>: Creating timestamps. (line 44)
* S- <4>: Priorities. (line 26)
* S- <5>: Editing and debugging formulas.
(line 66)
* S-: Plain lists. (line 84)
* S-M-: Using column view. (line 73)
* S-M-: TODO basics. (line 53)
* S-M-: Using column view. (line 70)
* T: Agenda commands. (line 294)
* t: Agenda commands. (line 261)
* U: Agenda commands. (line 391)
* u: Agenda commands. (line 388)
* v: Using column view. (line 54)
* v [: Agenda commands. (line 114)
* v A: Agenda commands. (line 118)
* v a: Agenda commands. (line 118)
* v d: Agenda commands. (line 69)
* v E: Agenda commands. (line 132)
* v l: Agenda commands. (line 104)
* v m: Agenda commands. (line 69)
* v R: Agenda commands. (line 125)
* v w: Agenda commands. (line 69)
* v y: Agenda commands. (line 69)
* w: Agenda commands. (line 69)
* x: Agenda commands. (line 478)
* X: Agenda commands. (line 374)
* z: Agenda commands. (line 321)
* {: Agenda commands. (line 243)
* }: Agenda commands. (line 243)