]> code.delx.au - gnu-emacs/blobdiff - man/org.texi
(Non-ASCII Isearch): Clarify. Mention C-q.
[gnu-emacs] / man / org.texi
index 4f614a6fe95c8686d3d57cf5b22431b99423cd4a..3e3272797265944d3a2be368160956410669fcd8 100644 (file)
@@ -3,8 +3,8 @@
 @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 4.38
-@set DATE June 2006
+@set VERSION 4.43
+@set DATE July 2006
 
 @dircategory Emacs
 @direntry
@@ -83,11 +83,12 @@ Software Foundation raise funds for GNU development.''
 * Timestamps::                  Assign date and time to items
 * Tags::                        Tagging headlines and matching sets of tags
 * Agenda views::                Collecting information into views
+* Embedded LaTeX::              LaTeX fragments and formulas
 * Exporting::                   Sharing and publishing of notes
 * Publishing::                  Create a web site of linked Org-mode files
 * Miscellaneous::               All the rest which did not fit elsewhere
-* Extensions and Hacking::      
-* History and Acknowledgments::  
+* Extensions and Hacking::      It is possible to write add-on code
+* History and Acknowledgments::  How Org-mode came into being 
 * Index::                       The fast road to specific information
 * Key Index::                   Key bindings and where they are described
 
@@ -97,7 +98,7 @@ Software Foundation raise funds for GNU development.''
 Introduction
 
 * Summary::                     Brief summary of what Org-mode does
-* Installation and activation::  How to install Org-mode
+* Installation::                How to install Org-mode
 * Feedback::                    Bug reports, ideas, patches etc.
 
 Document Structure
@@ -110,6 +111,12 @@ Document Structure
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
 * Plain lists::                 Editing hand-formatted lists
+* Checkboxes::                  Easily checking off things.
+
+Archiving
+
+* ARCHIVE tag::                 Marking a tree as inactive
+* Moving subtrees::             Moving a tree to an archive file
 
 Tables
 
@@ -190,6 +197,14 @@ The weekly/daily agenda
 * Calendar/Diary integration::  Integrating Anniversaries and more
 * Sorting of agenda items::     The order of things
 
+Embedded LaTeX
+
+* Math symbols::                TeX macros for symbols and Greek letters
+* Subscripts and Superscripts::  Simple syntax for raising/lowering text
+* LaTeX fragments::             Complex formulas made easy
+* Processing LaTeX fragments::  Previewing LaTeX processing
+* CDLaTeX mode::                Speed up entering of formulas
+
 Exporting
 
 * ASCII export::                Exporting to plain ASCII
@@ -213,7 +228,7 @@ Publishing
 Configuration
 
 * Project alist::               The central configuration variable
-* File sources and destinations::  From here to there
+* 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
@@ -229,7 +244,7 @@ Miscellaneous
 
 * Completion::                  M-TAB knows what you need
 * Customization::               Adapting Org-mode to your taste
-* Summary of in-buffer settings::  Using special lines to set options
+* 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-mode on a tty
@@ -241,10 +256,10 @@ Interaction with other packages
 * Cooperation::                 Packages Org-mode cooperates with
 * Conflicts::                   Packages that lead to conflicts
 
-Extensions and Hacking
+Extensions, Hooks and Hacking
 
-* Extensions::                  
-* Dynamic blocks::              
+* Extensions::                  Existing 3rd-part extensions
+* Dynamic blocks::              Automatically filled blocks
 
 @end detailmenu
 @end menu
@@ -255,11 +270,11 @@ Extensions and Hacking
 
 @menu
 * Summary::                     Brief summary of what Org-mode does
-* Installation and activation::  How to install Org-mode
+* Installation::                How to install Org-mode
 * Feedback::                    Bug reports, ideas, patches etc.
 @end menu
 
-@node Summary, Installation and activation, Introduction, Introduction
+@node Summary, Installation, Introduction, Introduction
 @section Summary
 @cindex summary
 
@@ -308,7 +323,7 @@ questions (FAQ), links to tutorials etc.  This page is located at
 
 @page
 
-@node Installation and activation, Feedback, Summary, Introduction
+@node Installation, Feedback, Summary, Introduction
 @section Installation and Activation
 @cindex installation
 @cindex autoload
@@ -363,7 +378,7 @@ MY PROJECTS    -*- mode: org; -*-
 the file's name is.  See also the variable
 @code{org-insert-mode-line-in-empty-file}.
 
-@node Feedback,  , Installation and activation, Introduction
+@node Feedback,  , Installation, Introduction
 @section Feedback
 @cindex feedback
 @cindex bug reports
@@ -405,6 +420,7 @@ edit the structure of the document.
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
 * Plain lists::                 Editing hand-formatted lists
+* Checkboxes::                  Easily checking off things.
 @end menu
 
 @node Outlines, Headlines, Document structure, Document structure
@@ -623,11 +639,69 @@ functionality.
 @node Archiving, Sparse trees, Structure editing, Document structure
 @section Archiving
 @cindex archiving
-@cindex filing subtrees
 
 When a project represented by a (sub)tree is finished, you may want
-to move the tree to an archive place, either in the same file under a
-special top-level heading, or even to a different file.
+to move the tree out of the way and to stop it from contributing to the
+agenda.  Org-mode knows two ways of archiving.  You can mark a tree with
+the ARCHIVE tag, or you can move an entire (sub)tree to a different
+location.
+
+@menu
+* ARCHIVE tag::                 Marking a tree as inactive
+* Moving subtrees::             Moving a tree to an archive file
+@end menu
+
+@node ARCHIVE tag, Moving subtrees, Archiving, Archiving
+@subsection The ARCHIVE tag
+@cindex internal archiving
+
+A headline that is marked with the ARCHIVE tag (@pxref{Tags}) stays at
+its location in the outline tree, but behaves in the following way:
+@itemize @minus
+@item
+It does not open when you attempt to do so with a visibility cycling
+command (@pxref{Visibility cycling}).  You can still open it with a
+normal outline command like @code{show-all}.  Or you can modify the
+option @code{org-cycle-open-archived-trees}.
+@item
+During sparse tree construction (@pxref{Sparse trees}), matches in
+archived subtrees are not exposed, unless you configure the option
+@code{org-sparse-tree-open-archived-trees}.
+@item
+During agenda view construction (@pxref{Agenda views}), the content of
+archived trees is ignored unless you configure the option
+@code{org-agenda-skip-archived-trees}.
+@item
+Archived trees are not exported (@pxref{Exporting}), only the headline
+is.  Configure the details using the variable
+@code{org-export-with-archived-trees}.
+@end itemize
+
+The following commands allow to set or clear the ARCHIVE tag:
+
+@table @kbd
+@kindex C-c C-x C-a
+@item C-c C-x C-a
+Toggle the ARCHIVE tag for the current headline.  When the tag is set,
+the headline changes to a shadowish face, and the subtree below it is
+hidden.
+@kindex C-u C-c C-x C-a
+@item C-u C-c C-x C-a
+Check if any direct children of the current headline should be archived.
+To do this, each subtree is checked for open TODO entries.  If none are
+found, the command offers to set the ARCHIVE tag for the child.  If the
+cursor is @emph{not} on a headline when this command is invoked, the
+level 1 trees will be checked.
+@end table
+
+@node Moving subtrees,  , ARCHIVE tag, Archiving
+@subsection Moving subtrees
+@cindex external archiving
+
+Once an entire project is finished, you may want to move it to a
+different location, either in the current file, or even in a different
+file, the archive file.
+
 @table @kbd
 @kindex C-c $
 @item C-c $
@@ -635,21 +709,19 @@ Archive the subtree starting at the cursor position to the location
 given by @code{org-archive-location}.
 @kindex C-u C-c $
 @item C-u C-c $
-When @kbd{C-c $} is called with @kbd{C-u} prefix argument, check for
-(sub)trees without any open TODO items and offer to archive them.  When
-the cursor is on a headline when this command is called, inly check the
-direct children of this headline.  When the cursor is @emph{not} on a
-headline, check all level 1 trees.
+Check if any direct children of the current headline could be moved to
+the archive.  To do this, each subtree is checked for open TODO entries.
+If none are found, the command offers to move it to the archive
+location.  If the cursor is @emph{not} on a headline when this command
+is invoked, the level 1 trees will be checked.
 @end table
 
 @cindex archive locations
-The default archive is a file in the same directory as the current
-file, with the name derived by appending @file{_archive} to the
-current file name.  For information and examples on how to change
-this, see the documentation string of the variable
-@code{org-archive-location}.  If you are also using the Org-mode
-agenda, archiving to a different file is a good way to keep archived
-trees from contributing agenda items.
+The default archive location is a file in the same directory as the
+current file, with the name derived by appending @file{_archive} to the
+current file name.  For information and examples on how to change this,
+see the documentation string of the variable
+@code{org-archive-location}.
 
 @node Sparse trees, Plain lists, Archiving, Document structure
 @section Sparse trees
@@ -699,18 +771,18 @@ a sparse tree matching the string @samp{FIXME}.
 Other commands use sparse trees as well.  For example @kbd{C-c
 C-v} creates a sparse TODO tree (@pxref{TODO basics}).
 
-@kindex C-c C-x v
+@kindex C-c C-e v
 @cindex printing sparse trees
 @cindex visible text, printing
 To print a sparse tree, you can use the Emacs command
 @code{ps-print-buffer-with-faces} which does not print invisible parts
 of the document @footnote{This does not work under XEmacs, because
 XEmacs uses selective display for outlining, not text properties.}.
-Or you can use the command @kbd{C-c C-x v} to export only the visible
+Or you can use the command @kbd{C-c C-e v} to export only the visible
 part of the document and print the resulting file.
 
 
-@node Plain lists,  , Sparse trees, Document structure
+@node Plain lists, Checkboxes, Sparse trees, Document structure
 @section Plain lists
 @cindex plain lists
 @cindex lists, plain
@@ -757,18 +829,6 @@ But in the end, not individual scenes matter but the film as a whole.
 Org-mode supports these lists by tuning filling and wrapping commands
 to deal with them correctly.  
 
-@cindex checkboxes
-Every item in a plain list can be made a checkbox by starting it with
-the string @samp{[ ]}.  The checkbox status can conveniently be toggled
-with @kbd{C-c C-c}.
-
-@example
-* Stupid mistakes when distributing a new version
-  - [ ] update also Emacs CVS
-  - [X] forget to update index.html on the website
-  - [X] leaving a `(debug)' form in the code
-@end example
-
 The following commands act on items when the cursor is in the first line
 of an item (the line with the bullet or number).
 
@@ -792,7 +852,7 @@ an item but does not contain the bullet, a bullet is added to the
 current line.
 @kindex M-S-@key{RET}
 @item M-S-@key{RET}
-Insert a new item with a checkbox.
+Insert a new item with a checkbox (@pxref{Checkboxes}).
 @kindex S-@key{up}
 @kindex S-@key{down}
 @item S-@key{up}
@@ -817,9 +877,59 @@ would imply a different hierarchy.  To use the new hierarchy, break
 the command chain with a cursor motion or so.
 @kindex C-c C-c
 @item C-c C-c
-If there is a checkbox in the item line, toggle the state of the
-checkbox.  Otherwise, if this is an ordered list, renumber the ordered
-list at the cursor.
+If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the
+state of the checkbox.  Otherwise, if this is an ordered list, renumber
+the ordered list at the cursor.
+@end table
+
+@page
+@node Checkboxes,  , Plain lists, Document structure
+@section Checkboxes
+@cindex checkboxes
+
+Every item in a plain list (ordered and unordered) can be made a
+checkbox by starting it with the string @samp{[ ]}.  This feature is
+similar to TODO items (@pxref{TODO items}), but more lightweight.
+Checkboxes are not included into the global TODO list, so they are often
+great to split a task into a number of simple steps.  Or you can use
+them in a shopping list to select the items you need to buy.  To toggle
+a checkbox, use @kbd{C-c C-c}, or try Piotr Zielinski's
+@file{org-mouse.el}.  Here is an example of a checkbox list.
+
+@example
+* Avoid stupid mistakes when distributing a new version
+  - [ ] update also Emacs CVS
+  - [X] forget to update index.html on the website
+  - [X] leaving a `(debug)' form in the code
+@end example
+
+@noindent The following commands work with checkboxes:
+
+@table @kbd
+@kindex C-c C-c
+@item C-c C-c
+Toggle checkbox at point.
+@kindex C-c C-x C-b
+@item C-c C-x C-b
+Toggle checkbox at point.
+@itemize @minus
+@item
+If there is an active region, toggle the first checkbox in the region
+and set all remaining boxes to the same status as the first.  If you
+want to toggle all boxes in the region independently, use a prefix
+argument.
+@item
+If the cursor is in a headline, toggle checkboxes in the region between
+this headline and the next.  This does @emph{not} act on the entire
+subtree, just the current entry.
+@item
+If no active region, just toggle the checkbox at point.
+@end itemize
+@kindex M-S-@key{RET}
+@item M-S-@key{RET}
+Insert a new item with a checkbox.
+This works only if the cursor is already in a plain list item
+(@pxref{Plain lists}).
 @end table
 
 @node Tables, Hyperlinks, Document structure, Top
@@ -1679,8 +1789,7 @@ selected words will form the basis of the search string.  If the
 automatically created link is not working correctly or accurately
 enough, you can write custom functions to select the search string and
 to do the search for particular file types - see @ref{Custom searches}.
-The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation
-and activation}.
+The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation}.
 
 @kindex C-c C-l
 @cindex link completion
@@ -1731,11 +1840,11 @@ When the cursor is on an internal link, this commands runs the
 corresponding search.  When the cursor is on a TAG list in a headline,
 it creates the corresponding TAGS view.  If the cursor is on a time
 stamp, it compiles the agenda for that date.  Furthermore, it will visit
-text files in @samp{file:} links with Emacs and select a suitable
-application for non-text files.  Classification of files is based on
-file extension only.  See option @code{org-file-apps}.  If you want to
-override the default application and visit the file with Emacs, use a
-@kbd{C-u} prefix.
+text and remote files in @samp{file:} links with Emacs and select a
+suitable application for local non-text files.  Classification of files
+is based on file extension only.  See option @code{org-file-apps}.  If
+you want to override the default application and visit the file with
+Emacs, use a @kbd{C-u} prefix.
 
 @kindex mouse-2
 @kindex mouse-1
@@ -2051,7 +2160,7 @@ If you define many keywords, you can use in-buffer completion (see
 
 The second possibility is to use TODO keywords to indicate different
 types of action items.  For example, you might want to indicate that
-items are for ``work'' or ``home''.  If you are into David Allen's
+items are for ``work'' or ``home.''  If you are into David Allen's
 @emph{Getting Things DONE}, you might want to use todo types
 @samp{NEXTACTION}, @samp{WAITING}, @samp{MAYBE}.  Or, when you work
 with several people on a single project, you might want to assign
@@ -2647,7 +2756,7 @@ tagged @samp{:WORK:} or @samp{:LAPTOP:}.  The string
 @samp{WORK|LAPTOP&NIGHT} requires that the @samp{:LAPTOP:} lines are
 also tagged @samp{NIGHT}.
 
-@node Agenda views, Exporting, Tags, Top
+@node Agenda views, Embedded LaTeX, Tags, Top
 @chapter Agenda Views
 @cindex agenda views
 
@@ -2728,12 +2837,11 @@ to visit any of them.
 @cindex custom agenda commands
 @cindex agenda commands, custom
 The views are created through a dispatcher that should be bound to a
-global key, for example @kbd{C-c a} (@pxref{Installation and
-activation}).  In the following we will assume that @kbd{C-c a} is
-indeed how the dispatcher is accessed and list keyboard access to
-commands accordingly.  After pressing @kbd{C-c a}, an additional
-letter is required to execute a command.  The dispatcher offers the
-following default commands:
+global key, for example @kbd{C-c a} (@pxref{Installation}).  In the
+following we will assume that @kbd{C-c a} is indeed how the dispatcher
+is accessed and list keyboard access to commands accordingly.  After
+pressing @kbd{C-c a}, an additional letter is required to execute a
+command.  The dispatcher offers the following default commands:
 @table @kbd
 @item a
 Create the calendar-like agenda (@pxref{Weekly/Daily agenda}).
@@ -2951,6 +3059,23 @@ Remote editing of TODO items means that you can change the state of a
 TODO entry with a single key press.  The commands available in the
 TODO list are described in @ref{Agenda commands}.
 
+Nomally the global todo list simply shows all headlines with TODO
+keywords.  This list can become very long.  There are two ways to keep
+it more compact:
+@itemize @minus
+@item
+Some people view a TODO item that has been @emph{scheduled} for
+execution (@pxref{Time stamps}) as no longer @emph{open}.  Configure the
+variable @code{org-agenda-todo-ignore-scheduled} to exclude scheduled
+items from the global TODO list.
+@item
+TODO items may have sublevels to break up the task into subtasks.  In
+such cases it may be enough to list only the highest level TODO headline
+and omit the sublevels from the global list.  Configure the variable
+@code{org-agenda-todo-list-sublevels} to get this behavior.
+@end itemize
+
+
 @node Matching headline tags, Timeline, Global TODO list, Agenda views
 @section Matching headline tags
 @cindex matching, of tags
@@ -3094,6 +3219,10 @@ S-@key{right}.  When the buffer is the global todo list, a prefix
 argument is interpreted to create a selective list for a specific TODO
 keyword.
 
+@kindex s
+@item s
+Save all Org-mode buffers in the current Emacs session.
+
 @kindex @key{right}
 @item @key{right}
 Display the following @code{org-agenda-ndays} days.  For example, if
@@ -3127,6 +3256,10 @@ inheritance, this may be more than the tags listed in the line itself.
 @item :
 Set tags for the current headline.
 
+@kindex a
+@item a
+Toggle the ARCHIVE tag for the current headline.
+
 @kindex ,
 @item ,
 Set the priority for the current item.  Org-mode prompts for the
@@ -3225,6 +3358,7 @@ calendars.
 @item H
 Show holidays for three month around the cursor date.
 
+@c FIXME:  This should be a different key.
 @kindex C-c C-x C-c
 @item C-c C-x C-c
 Export a single iCalendar file containing entries from all agenda files.
@@ -3243,7 +3377,206 @@ visit org files will not be removed.
 
 @end table
 
-@node Exporting, Publishing, Agenda views, Top
+@node Embedded LaTeX, Exporting, Agenda views, Top
+@chapter Embedded LaTeX
+@cindex @TeX{} interpretation
+@cindex La@TeX{} interpretation
+
+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.
+La@TeX{}@footnote{La@TeX{} is a macro system based on Donald E. Knuth's
+@TeX{} system.  Many of the features described here as ``La@TeX{}'' are
+really from @TeX{}, but for simplicity I am blurring this distinction.}
+is widely used to typeset scientific documents. Org-mode supports
+embedding La@TeX{} code into its files, because many academics are used
+to read La@TeX{} source code, and because it can be readily processed
+into images for HTML production.
+
+It is not necessary to mark La@TeX{} 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
+* Math symbols::                TeX macros for symbols and Greek letters
+* Subscripts and Superscripts::  Simple syntax for raising/lowering text
+* LaTeX fragments::             Complex formulas made easy
+* Processing LaTeX fragments::  Previewing LaTeX processing
+* CDLaTeX mode::                Speed up entering of formulas
+@end menu
+
+@node Math symbols, Subscripts and Superscripts, Embedded LaTeX, Embedded LaTeX
+@section Math symbols
+
+You can use La@TeX{} macros to insert special symbols like @samp{\alpha}
+to indicate the Greek letter, or @samp{\to} to indicate an arrow.
+Completion for these macros is available, just type @samp{\} and maybe a
+few letters, and press @kbd{M-@key{TAB}} to see possible completions.
+Unlike La@TeX{} code, Org-mode allows these macros to be present
+without surrounding math delimiters, for example:
+
+@example
+Angles are written as Greek letters \alpha, \beta and \gamma.
+@end example
+
+During HTML export (@pxref{HTML export}), these symbols are translated
+into the proper syntax for HTML, for the above examples this is
+@samp{α} and @samp{→}, respectively.
+
+@node Subscripts and Superscripts, LaTeX fragments, Math symbols, Embedded LaTeX
+@section Subscripts and Superscripts
+
+Just like in La@TeX{}, @samp{^} and @samp{_} 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
+
+@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.
+@end example
+
+To avoid interpretation as raised or lowered text, you can quote
+@samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}.
+
+During HTML export (@pxref{HTML export}), subscript and superscripts
+are surrounded with @code{<sub>} and @code{<sup>} tags, respectively.
+
+@node LaTeX fragments, Processing LaTeX fragments, Subscripts and Superscripts, Embedded LaTeX
+@section LaTeX fragments
+
+With symbols, sub- and superscripts, HTML is pretty much at its end when
+it comes to representing mathematical formulas.  More complex
+expressions need a dedicated formula processor.  To this end, Org-mode
+can contain arbitrary La@TeX{} 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.  For this to work you need to be on a system with a working
+La@TeX{} installation.  You also need the @file{dvipng} program,
+available at @url{http://sourceforge.net/projects/dvipng/}.
+
+La@TeX{} fragments don't need any special marking at all.  The following
+snippets will be identified as LaTeX source code:
+@itemize @bullet
+@item
+Environments of any kind.  The only requirement is that the
+@code{\begin} statement appears on a new line, preceded by only
+whitespace.
+@item
+Text within the usual La@TeX{} math delimiters.  To avoid conflicts with
+currency specifications, single @samp{$} characters are only recognized
+as math delimiters if the enclosed text contains at most two line breaks,
+is directly attached to the @samp{$} characters with no whitespace in
+between, and if the closing @samp{$} is followed by whitespace or
+punctuation.  For the other delimiters, there is no such restriction, so
+when in doubt, use @samp{\(...\)} as inline math delimiters.
+@end itemize
+
+@noindent For example:
+
+@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@} \].
+@end example
+
+@noindent
+If you need any of the delimiter ASCII sequences for other purposes, you
+can configure the option @code{org-format-latex-options} to deselect the
+ones you do not wish to have interpreted by the La@TeX{} converter.
+
+@node Processing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX
+@section Processing LaTeX fragments
+
+La@TeX{} fragments can be processed to produce a preview images of the
+typeset expressions:
+
+@table @kbd
+@kindex C-c C-x C-l
+@item C-c C-x C-l
+Produce a preview image of the La@TeX{} 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.
+@kindex C-c C-c
+@item C-c C-c
+Remove the overlay preview images.
+@end table
+
+During HTML export (@pxref{HTML export}), all La@TeX{} fragments are
+converted into images and inlined into the document if the following
+setting is active:
+
+@lisp
+(setq org-export-with-LaTeX-fragments t)
+@end lisp
+
+@node CDLaTeX mode,  , Processing LaTeX fragments, Embedded LaTeX
+@section 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
+@file{cdlatex.el} and @file{texmathp.el} (the latter comes also with
+AUCTeX) from @url{http://www.astro.uva.nl/~dominik/Tools/cdlatex}.
+Don't turn cdlatex-mode itself under Org-mode, but use the light
+version @code{org-cdlatex-mode} that comes as part of Org-mode.  Turn it
+on for the current buffer with @code{M-x org-cdlatex-mode}, or for all
+Org-mode files with
+
+@lisp
+(add-hook 'org-mode-hook 'turn-on-org-cdlatex)
+@end lisp
+
+When this mode is enabled, the following features are present (for more
+details see the documentation of cdlatex-mode):
+@itemize @bullet
+@kindex C-c @{
+@item
+Environment templates can be inserted with @kbd{C-c @{}.
+@item
+@kindex @key{TAB}
+The @key{TAB} key will do template expansion if the cursor is inside a
+LaTeX fragment@footnote{Org-mode has a method to test if the cursor is
+inside such a fragment, see the documentation of the function
+@code{org-inside-LaTeX-fragment-p}.}.  For example, @key{TAB} will
+expand @code{fr} to @code{\frac@{@}@{@}} and position the cursor
+correctly inside the first brace.  Another @key{TAB} will get you into
+the second brace.  Even outside fragments, @key{TAB} will expand
+environment abbreviations at the beginning of a line.  For example, if
+you write @samp{equ} at the beginning of a line and press @key{TAB},
+this abbreviation will be expanded to an @code{equation} environment.
+To get a list of all abbreviations, type @kbd{M-x cdlatex-command-help}.
+@item
+@kindex _
+@kindex ^
+Pressing @kbd{_} and @kbd{^} inside a LaTeX fragment will insert these
+characters together with a pair of braces.  If you use @key{TAB} 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
+@code{cdlatex-simplify-sub-super-scripts}).
+@item
+@kindex `
+Pressing the backquote @kbd{`} 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.
+@item
+@kindex '
+Pressing the normal quote @kbd{'} 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 La@TeX{} fragments, outside the quote
+is normal.
+@end itemize
+
+@node Exporting, Publishing, Embedded LaTeX, Top
 @chapter Exporting
 @cindex exporting
 
@@ -3260,6 +3593,14 @@ import of these different formats.
 When exporting, Org-mode uses special conventions to enrich the output
 produced.  @xref{Text interpretation}, for more details.
 
+@table @kbd
+@kindex C-c C-e
+@item 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.
+@end table
+
 @menu
 * ASCII export::                Exporting to plain ASCII
 * HTML export::                 Exporting to HTML
@@ -3279,14 +3620,14 @@ file.
 @cindex active region
 @cindex transient-mark-mode
 @table @kbd
-@kindex C-c C-x a
-@item C-c C-x a
+@kindex C-c C-e a
+@item C-c C-e a
 Export as ASCII file.  If there is an active region, only the region
 will be exported.  For an org file @file{myfile.org}, the ASCII file
 will be @file{myfile.txt}.  The file will be overwritten without
 warning.
-@kindex C-c C-x v a
-@item C-c C-x v a
+@kindex C-c C-e v a
+@item C-c C-e v a
 Export only the visible part of the document.
 @end table
 
@@ -3297,15 +3638,15 @@ 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,
 
 @example
-@kbd{C-1 C-c C-x a}
+@kbd{C-1 C-c C-e a}
 @end example
 
 @noindent
 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 bodyline indicates the base indenation of
-the body text.  Any indenation larger than this is adjusted to preserve
+the assumption that the first bodyline 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.
 
@@ -3321,16 +3662,16 @@ language, but with additional support for tables.
 @cindex active region
 @cindex transient-mark-mode
 @table @kbd
-@kindex C-c C-x h
-@item C-c C-x h
+@kindex C-c C-e h
+@item C-c C-e h
 Export as HTML file @file{myfile.html}.
-@kindex C-c C-x b
-@item C-c C-x b
+@kindex C-c C-e b
+@item C-c C-e b
 Export as HTML file and open it with a browser.
-@kindex C-c C-x v h
-@kindex C-c C-x v b
-@item C-c C-x v h
-@item C-c C-x v b
+@kindex C-c C-e v h
+@kindex C-c C-e v b
+@item C-c C-e v h
+@item C-c C-e v b
 Export only the visible part of the document.
 @end table
 
@@ -3341,7 +3682,7 @@ 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,
 
 @example
-@kbd{C-2 C-c C-x b}
+@kbd{C-2 C-c C-e b}
 @end example
 
 @noindent
@@ -3410,11 +3751,11 @@ Currently, this exporter only handles the general outline structure and
 does not interpret any additional Org-mode features.
 
 @table @kbd
-@kindex C-c C-x C-x
-@item C-c C-x C-x
+@kindex C-c C-x
+@item C-c C-x
 Export as XOXO file @file{myfile.html}.
-@kindex C-c C-x v
-@item C-c C-x v x
+@kindex C-c C-e v
+@item C-c C-e v x
 Export only the visible part of the document.
 @end table
 
@@ -3430,17 +3771,17 @@ application.  Org-mode can export calendar information in the standard
 iCalendar format.
 
 @table @kbd
-@kindex C-c C-x i
-@item C-c C-x i
+@kindex C-c C-e i
+@item C-c C-e i
 Create iCalendar entries for the current file and store them in the same
 directory, using a file extension @file{.ics}.
-@kindex C-c C-x C-i
-@item C-c C-x C-i
-Like @kbd{C-c C-x i}, but do this for all files in
+@kindex C-c C-e I
+@item C-c C-e I
+Like @kbd{C-c C-e i}, but do this for all files in
 @code{org-agenda-files}.  For each of these files, a separate iCalendar
 file will be written.
-@kindex C-c C-x c
-@item C-c C-x c
+@kindex C-c C-e c
+@item C-c C-e c
 Create a single large iCalendar file from all files in
 @code{org-agenda-files} and write it to the file given by
 @code{org-combined-agenda-icalendar-file}.
@@ -3449,7 +3790,7 @@ Create a single large iCalendar file from all files in
 How this calendar is best read and updated, depends on the application
 you are using.  For example, when using iCal under Apple MacOS X, you
 could create a new calendar @samp{OrgMode} (the default name for the
-calendar created by @kbd{C-c C-x c}, see the variables
+calendar created by @kbd{C-c C-e c}, see the variables
 @code{org-icalendar-combined-name} and
 @code{org-combined-agenda-icalendar-file}).  Then set Org-mode to
 overwrite the corresponding file
@@ -3505,7 +3846,6 @@ formatting, this is true in particular for the HTML backend.  Org-mode
 has a number of typing conventions that allow to produce a richly
 formatted output.
 
-
 @itemize @bullet
 
 @cindex hand-formatted lists
@@ -3519,22 +3859,14 @@ backend supports lists.  See @xref{Plain lists}.
 @cindex bold text
 @cindex italic text
 @item
-You can make words @b{*bold*}, @i{/italic/}, and _underlined_
-
-@cindex @TeX{} interpretation
-@item
-Simple @TeX{}-like math constructs are interpreted:
+You can make words @b{*bold*}, @i{/italic/}, _underlined_,
+@code{=code=}, and @samp{+strikethrough+}.
 
-@cindex completion, of @TeX{} symbols
-@itemize @minus
-@item
-@samp{10^22} and @samp{J_n} are super- and subscripts.  You can quote
-@samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}
+@cindex LaTeX fragments, export
+@cindex TeX macros, export
 @item
-@samp{\alpha} indicates a Greek letter, @samp{\to} an arrow.  You can
-use completion for these macros, just type @samp{\} and maybe a few
-letters, and press @kbd{M-@key{TAB}} to see possible completions.
-@end itemize
+Many @TeX{} macros and entire La@TeX{} fragments are converted into HTML
+entities or images (@pxref{Embedded LaTeX}).
 
 @cindex tables, export
 @item
@@ -3566,6 +3898,7 @@ customization group @code{org-export-general}, and the following section
 which explains how to set export options with special lines in a
 buffer.
 
+
 @node Export options,  , Enhancing text, Text interpretation
 @subsection Export options
 @cindex options, for export
@@ -3574,13 +3907,13 @@ buffer.
 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 @kbd{C-c
-C-x t}.  For individual lines, a good way to make sure the keyword is
+C-e t}.  For individual lines, a good way to make sure the keyword is
 correct is to type @samp{#+} and then use @kbd{M-@key{TAB}} completion
 (@pxref{Completion}).
 
 @table @kbd
-@kindex C-c C-x t
-@item C-c C-x t
+@kindex C-c C-e t
+@item C-c C-e t
 Insert template with export options, see example below.
 @end table
 
@@ -3591,7 +3924,7 @@ Insert template with export options, see example below.
 #+LANGUAGE:  language for HTML, e.g. @samp{en} (@code{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  *:nil  TeX:t
+#+OPTIONS:   H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t *:nil TeX:t LaTeX:t
 @end example
 
 @noindent
@@ -3607,6 +3940,7 @@ you can:
 @cindex @TeX{}-like syntax for sub- and superscripts
 @cindex emphasized text
 @cindex @TeX{} macros
+@cindex La@TeX{} fragments
 @example
 H:      @r{set the number of headline levels for export}
 num:    @r{turn on/off section-numbers}
@@ -3617,11 +3951,13 @@ toc:    @r{turn on/off table of contents}
 |:      @r{turn on/off tables}
 ^:      @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
 *:      @r{turn on/off emphasized text (bold, italic, underlined)}
-TeX:    @r{turn on/off @TeX{} macros}
+TeX:    @r{turn on/off simple @TeX{} macros in plain text}
+LaTeX:  @r{turn on/off La@TeX{} fragments}
 @end example
 
 @node Publishing, Miscellaneous, Exporting, Top
 @chapter Publishing
+@cindex publishing
 
 Org-mode includes@footnote{@file{org-publish.el} is not yet part of
 emacs, so if you are using @file{org.el} as it comes with Emacs, you
@@ -3650,7 +3986,7 @@ and many other properties of a project.
 
 @menu
 * Project alist::               The central configuration variable
-* File sources and destinations::  From here to there
+* 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
@@ -3658,8 +3994,10 @@ and many other properties of a project.
 * Project page index::          Publishing a list of project files
 @end menu
 
-@node Project alist, File sources and destinations, Configuration, Configuration
+@node Project alist, Sources and destinations, Configuration, Configuration
 @subsection The variable @code{org-publish-project-alist}
+@cindex org-publish-project-alist
+@cindex projects, for publishing
 
 Org-publish is configured almost entirely through setting the value of
 one variable, called @code{org-publish-project-alist}.
@@ -3684,8 +4022,9 @@ project, which group together files requiring different publishing
 options. When you publish such a ``meta-project'' all the components
 will also publish.
 
-@node File sources and destinations, Selecting files, Project alist, Configuration
+@node Sources and destinations, Selecting files, Project alist, Configuration
 @subsection Sources and destinations for files
+@cindex directories, for publishing
 
 Most properties are optional, but some should always be set. In
 particular, org-publish needs to know where to look for source files,
@@ -3699,8 +4038,9 @@ and where to put published files.
 @end multitable
 @noindent
 
-@node Selecting files, Publishing action, File sources and destinations, Configuration
+@node Selecting files, Publishing action, Sources and destinations, Configuration
 @subsection Selecting files
+@cindex files, selecting for publishing
 
 By default, all files with extension @file{.org} in the base directory
 are considered part of the project.  This can be modified by setting the
@@ -3722,6 +4062,7 @@ and @code{:exclude}.
 
 @node Publishing action, Publishing options, Selecting files, Configuration
 @subsection Publishing Action
+@cindex action, for publishing
 
 Publishing means that a file is copied to the destination directory and
 possibly transformed in the process.  The default transformation is to
@@ -3746,6 +4087,7 @@ provides one for attachments (files that only need to be copied):
 
 @node Publishing options, Publishing links, Publishing action, Configuration
 @subsection Options for the HTML exporter
+@cindex options, for publishing
 
 The property list can be used to set many export options for the HTML
 exporter.  In most cases, these properties correspond to user variables
@@ -3758,9 +4100,11 @@ respective variable for details.
 @item @code{:headline-levels}       @tab @code{org-export-headline-levels}
 @item @code{:section-numbers}       @tab @code{org-export-with-section-numbers}
 @item @code{:table-of-contents}     @tab @code{org-export-with-toc}
+@item @code{:archived-trees}        @tab @code{org-export-with-archived-trees}
 @item @code{:emphasize}             @tab @code{org-export-with-emphasize}
 @item @code{:sub-superscript}       @tab @code{org-export-with-sub-superscripts}
 @item @code{:TeX-macros}            @tab @code{org-export-with-TeX-macros}
+@item @code{:LaTeX-fragments}       @tab @code{org-export-with-LaTeX-fragments}
 @item @code{:fixed-width}           @tab @code{org-export-with-fixed-width}
 @item @code{:timestamps}           .@tab @code{org-export-with-timestamps}
 @item @code{:tags}                 .@tab @code{org-export-with-tags}
@@ -3787,6 +4131,7 @@ options}), however, override everything.
 
 @node Publishing links, Project page index, Publishing options, Configuration
 @subsection Links between published files
+@cindex links, publishing
 
 To create a link from one Org-mode file to another, you would use
 something like @samp{[[file:foo.org][The foo]]} or simply
@@ -3820,6 +4165,7 @@ file is part of any project in @code{org-publish-project-alist}.
 
 @node Project page index,  , Publishing links, Configuration
 @subsection Project page index
+@cindex index, of published pages
 
 The following properties may be used to control publishing of an
 index of files or summary page for a given project.
@@ -3931,18 +4277,18 @@ following functions:
 
 @table @kbd
 @item C-c C-e c
-Prompts for a specific project to publish.
+Prompt for a specific project and publish all files that belong to it.
 @item C-c C-e p
-Publishes the project the current file is part of. 
+Publish the project containin the current file.
 @item C-c C-e f
-Publishes only the current file.
+Publish only the current file.
 @item C-c C-e a
 Publish all projects.
 @end table
 
 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. 
+force publishing of all files by giving a prefix argument.
 
 @node Miscellaneous, Extensions and Hacking, Publishing, Top
 @chapter Miscellaneous
@@ -3950,7 +4296,7 @@ force publishing of all files by giving a prefix argument.
 @menu
 * Completion::                  M-TAB knows what you need
 * Customization::               Adapting Org-mode to your taste
-* Summary of in-buffer settings::  Using special lines to set options
+* 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-mode on a tty
@@ -4001,8 +4347,7 @@ Elsewhere, complete dictionary words using ispell.
 @end itemize
 @end table
 
-
-@node Customization, Summary of in-buffer settings, Completion, Miscellaneous
+@node Customization, In-buffer settings, Completion, Miscellaneous
 @section Customization
 @cindex customization
 @cindex options, for customization
@@ -4014,9 +4359,9 @@ describing the variables here.  A structured overview of customization
 variables is available with @kbd{M-x org-customize}.  Or select
 @code{Browse Org Group} from the @code{Org->Customization} menu.  Many
 settings can also be activated on a per-file basis, by putting special
-lines into the buffer (@pxref{Summary of in-buffer settings}).
+lines into the buffer (@pxref{In-buffer settings}).
 
-@node Summary of in-buffer settings, The very busy C-c C-c key, Customization, Miscellaneous
+@node In-buffer settings, The very busy C-c C-c key, Customization, Miscellaneous
 @section Summary of in-buffer settings
 @cindex in-buffer settings
 @cindex special keywords
@@ -4086,7 +4431,7 @@ These lines provide settings for exporting files.  For more details see
 @ref{Export options}.
 @end table
 
-@node The very busy C-c C-c key, Clean view, Summary of in-buffer settings, Miscellaneous
+@node The very busy C-c C-c key, Clean view, In-buffer settings, Miscellaneous
 @section The very busy C-c C-c key
 @kindex C-c C-c
 
@@ -4099,7 +4444,7 @@ what this means in different contexts.
 
 @itemize @minus
 @item
-If there are highlichts in the buffer from the creation of a sparse
+If there are highlights in the buffer from the creation of a sparse
 tree, or from clock display, remove these highlights.
 @item
 If the cursor is in one of the special @code{#+KEYWORD} lines, this
@@ -4305,6 +4650,11 @@ at @url{http://www.astro.uva.nl/~dominik/Tools}. Org-mode checks for
 the function @code{constants-get}, which has to be autoloaded in your
 setup.  See the installation instructions in the file
 @file{constants.el}.
+@item @file{cdlatex.el} by Carsten Dominik
+@cindex @file{cdlatex.el}
+Org-mode can make use of the cdlatex package to efficiently enter
+La@TeX{} fragments into Org-mode files.
+@file{cdlatex.el} is not part of Emacs, find it on the web.
 @item @file{remember.el} by John Wiegley
 @cindex @file{remember.el}
 Org mode cooperates with remember, see @ref{Remember}.
@@ -4405,8 +4755,8 @@ It also covers some aspects where users can easily extend the
 functionality of Org-mode.
 
 @menu
-* Extensions::                  
-* Dynamic blocks::              
+* Extensions::                  Existing 3rd-part extensions
+* Dynamic blocks::              Automatically filled blocks
 @end menu
 
 @node Extensions, Dynamic blocks, Extensions and Hacking, Extensions and Hacking
@@ -4435,6 +4785,7 @@ caused by the preparations for the 22.1 release.  In the mean time,
 @cindex @file{org-blog.el}
 @item @file{org-blog.el} by David O'Toole
 A blogging plug-in for @file{org-publish.el}.
+@url{http://dto.freeshell.org/notebook/OrgMode.html}.
 @cindex @file{org-blogging.el}
 @item @file{org-blogging.el} by  Bastien Guerry
 Publish Org-mode files as
@@ -4445,7 +4796,7 @@ blogs. @url{http://www.cognition.ens.fr/~guerry/org-blogging.html}.
 @section Dynamic blocks
 
 Org-mode documents can contain @emph{dynamic blocks}.  These are
-specially marked regions that are updates by some user-written
+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 @kbd{C-c C-x C-r} (@pxref{Clocking work time}).
 
@@ -4489,7 +4840,7 @@ run:
 The corresponding block writer function could look like this:
 
 @lisp
-(defun org-dblock-write:date-and-time (params)
+(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)))))
@@ -4507,24 +4858,27 @@ written in a way that is does nothing in buffers that are not in Org-mode.
 @cindex history
 @cindex thanks
 
-Org-mode was conceived in 2003 out of frustration over the user
-interface of the emacs outline-mode.  The first driver was simply to
-make working with an outline tree possible without having to remember
-more than 10 commands just for hiding and unhiding parts of the outline
-tree, and to allow to restructure a tree easily.  Visibility cycling and
-structure editing were originally implemented in the package
+The beginnings of Org-mode go back to 2003.  It was borne out of
+frustration over the user interface of the emacs outline-mode.  All I
+wanted was to make working with an outline tree possible without having
+to remember more than 10 commands just for hiding and unhiding parts of
+the outline tree, and to allow to restructure a tree easily.  Visibility
+cycling and structure editing were originally implemented in the package
 @file{outline-magic.el}, but quickly moved to the more general
-@file{org.el}.  TODO entries and table support were added relatively
-quickly, and pointed to the two main drivers of Org-mode: Creating a
-new plain text mode with intuitive editing features, and to
-incorporate project planning functionality directly into a notes file.
-
-Since the first release, hundreds of emails either directly to me or
-later on @code{emacs-orgmode@@gnu.org} have been a constant source of
-bug reports, feedback and new ideas.  While I cannot mention everyone, I
-try to keep here a list of the people who had significant
-influence in shaping one or more aspects of Org-mode.  Many thanks to
-all of you.  If I have forgotten someone, please accept my apologies.
+@file{org.el}.  TODO entries, basic time stamps, and table support were
+added next, and highlight the two main goals that Org-mode still has
+today:  To create a new, outline-based, plain text mode with innovative
+and intuitive editing features, and to incorporate project planning
+functionality directly into a notes file.
+
+Since the first release, hundreds of emails to me or on
+@code{emacs-orgmode@@gnu.org} have provided a constant stream of bug
+reports, feedback, new ideas, and sometimes even 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-mode.  The list may not
+be complete, if I have forgotten someone, please accept my apologies and
+let me know.
 
 @itemize @bullet
 @item
@@ -4552,11 +4906,15 @@ patched CSS formatting into the HTML exporter, and inspired the agenda.
 @item
 @i{Nic Ferrier} contributed mailcap and XOXO support.
 @item
+@i{Niels Giessen} had the idea to automatically archive DONE trees.
+@item
 @i{Bastien Guerry} provoded extensive feedback.
 @item
 @i{Kai Grossjohann} pointed out key-binding conflicts caused by
 Org-mode.
 @item
+@i{Leon Liu} asked for embedded LaTeX and tested it.
+@item
 @i{Stefan Monnier} provided a patch to keep the Emacs-Lisp compiler
 happy.
 @item
@@ -4590,10 +4948,9 @@ other things.
 @item
 Linking to VM/BBDB/GNUS was inspired by @i{Tom Shannon}'s
 @file{organizer-mode.el}.
-@c FIXME:
-@c @item
-@c @i{Daniel Sinder} came up with the idea if internal archiving my locking
-@c subtrees.
+@item
+@i{Daniel Sinder} came up with the idea of internal archiving by locking
+subtrees.
 @item
 @i{David O'Toole} wrote @file{org-publish.el} and drafted the manual
 chapter about publishing.