summaryrefslogtreecommitdiff
path: root/elpa/org-9.5.2/doc/org-guide.org
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/org-9.5.2/doc/org-guide.org')
-rw-r--r--elpa/org-9.5.2/doc/org-guide.org2654
1 files changed, 2654 insertions, 0 deletions
diff --git a/elpa/org-9.5.2/doc/org-guide.org b/elpa/org-9.5.2/doc/org-guide.org
new file mode 100644
index 0000000..aa793f1
--- /dev/null
+++ b/elpa/org-9.5.2/doc/org-guide.org
@@ -0,0 +1,2654 @@
+#+title: Org Mode Compact Guide
+#+subtitle: Release {{{version}}}
+#+author: The Org Mode Developers
+#+language: en
+
+#+texinfo: @insertcopying
+
+* Copying
+:PROPERTIES:
+:copying: t
+:END:
+
+Copyright \copy 2004--2021 Free Software Foundation, Inc.
+
+#+begin_quote
+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."
+in the full Org manual, which is distributed together with this
+compact guide.
+
+(a) The FSF's Back-Cover Text is: "You have the freedom to copy and
+modify this GNU manual."
+#+end_quote
+
+* Introduction
+:PROPERTIES:
+:DESCRIPTION: Welcome!
+:END:
+
+Org is a mode for keeping notes, maintaining TODO lists, and doing
+project planning with a fast and effective plain-text system. It is
+also an authoring and publishing system, and it supports working with
+source code for literal programming and reproducible research.
+
+This document is a much compressed derivative of the [[info:org][comprehensive Org
+mode manual]]. It contains all basic features and commands, along with
+important hints for customization. It is intended for beginners who
+would shy back from a 200 pages manual because of sheer size.
+
+** Installation
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+#+attr_texinfo: :tag Important
+#+begin_quote
+If you are using a version of Org that is part of the Emacs
+distribution, please skip this section and go directly to [[*Activation]].
+#+end_quote
+
+If you have downloaded Org from the web, either as a distribution
+=.zip= or =.tar= file, or as a Git archive, it is best to run it
+directly from the distribution directory. You need to add the =lisp/=
+subdirectories to the Emacs load path. To do this, add the following
+line to your Emacs init file:
+
+: (add-to-list 'load-path "~/path/to/orgdir/lisp")
+
+#+texinfo: @noindent
+If you have been using git or a tar ball to get Org, you need to run
+the following command to generate autoload information.
+
+: make autoloads
+
+** Activation
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+Add the following lines to your Emacs init file to define /global/
+keys for three commands that are useful in any Emacs buffer, not just
+Org buffers. Please choose suitable keys yourself.
+
+#+begin_src emacs-lisp
+(global-set-key (kbd "C-c l") #'org-store-link)
+(global-set-key (kbd "C-c a") #'org-agenda)
+(global-set-key (kbd "C-c c") #'org-capture)
+#+end_src
+
+Files with extension =.org= will be put into Org mode automatically.
+
+** Feedback
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+If you find problems with Org, or if you have questions, remarks, or
+ideas about it, please mail to the Org mailing list
+mailto:emacs-orgmode@gnu.org. For information on how to submit bug
+reports, see the main manual.
+
+* Document Structure
+:PROPERTIES:
+:DESCRIPTION: A tree works like your brain.
+:END:
+
+Org is an outliner. Outlines allow a document to be organized in
+a hierarchical structure, which, least for me, is the best
+representation of notes and thoughts. An overview of this structure
+is achieved by folding, i.e., hiding large parts of the document to
+show only the general document structure and the parts currently being
+worked on. Org greatly simplifies the use of outlines by compressing
+the entire show and hide functionalities into a single command,
+~org-cycle~, which is bound to the {{{kbd(TAB)}}} key.
+
+** Headlines
+:PROPERTIES:
+:DESCRIPTION: How to typeset Org tree nodes.
+:END:
+
+Headlines define the structure of an outline tree. The headlines in
+Org start on the left margin[fn:1] with one or more stars followed by
+a space. For example:
+
+#+begin_example
+,* Top level headline
+,** Second level
+,*** Third level
+ some text
+,*** Third level
+ more text
+,* Another top level headline
+#+end_example
+
+Note that a headline named after ~org-footnote-section~, which
+defaults to =Footnotes=, is considered as special. A subtree with
+this headline will be silently ignored by exporting functions.
+
+Some people find the many stars too noisy and would prefer an outline
+that has whitespace followed by a single star as headline starters.
+See [[*Miscellaneous]] for a setup to realize this.
+
+** Visibility Cycling
+:PROPERTIES:
+:DESCRIPTION: Show and hide, much simplified.
+:END:
+
+Outlines make it possible to hide parts of the text in the buffer.
+Org uses just two commands, bound to {{{kbd(TAB)}}} and
+{{{kbd{S-TAB)}}} to change the visibility in the buffer.
+
+#+attr_texinfo: :sep ,
+- {{{kbd(TAB)}}} ::
+
+ /Subtree cycling/: Rotate current subtree among the states
+
+ : ,-> FOLDED -> CHILDREN -> SUBTREE --.
+ : '-----------------------------------'
+
+ When called with a prefix argument ({{{kbd(C-u TAB)}}}), or with the
+ Shift key, global cycling is invoked.
+
+- {{{kbd(S-TAB)}}}, {{{kbd(C-u TAB)}}} ::
+
+ /Global cycling/: Rotate the entire buffer among the states
+
+ : ,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
+ : '--------------------------------------'
+
+- {{{kbd(C-u C-u C-u TAB)}}} ::
+
+ Show all, including drawers.
+
+When Emacs first visits an Org file, the global state is set to
+OVERVIEW, i.e., only the top level headlines are visible. This can be
+configured through the variable ~org-startup-folded~, or on a per-file
+basis by adding a =STARTUP= keyword to =overview=, =content=,
+=showall=, =showeverything= or =show<n>levels= (n = 2..5) like this:
+
+: #+STARTUP: content
+
+** Motion
+:PROPERTIES:
+:DESCRIPTION: Jumping to other headlines.
+:END:
+
+The following commands jump to other headlines in the buffer.
+
+- {{{kbd(C-c C-n)}}} :: Next heading.
+
+- {{{kbd(C-c C-p)}}} :: Previous heading.
+
+- {{{kbd(C-c C-f)}}} :: Next heading same level.
+
+- {{{kbd(C-c C-b)}}} :: Previous heading same level.
+
+- {{{kbd(C-c C-u)}}} :: Backward to higher level heading.
+
+** Structure Editing
+:PROPERTIES:
+:DESCRIPTION: Changing sequence and level of headlines.
+:END:
+
+#+attr_texinfo: :sep ,
+- {{{kbd(M-RET)}}} ::
+
+ Insert new heading with same level as current. If point is in
+ a plain list item, a new item is created (see [[Plain Lists]]). When
+ this command is used in the middle of a line, the line is split and
+ the rest of the line becomes the new headline[fn:2].
+
+- {{{kbd(M-S-RET)}}} ::
+
+ Insert new TODO entry with same level as current heading.
+
+- {{{kbd(TAB)}}} in new, empty entry ::
+
+ In a new entry with no text yet, {{{kbd(TAB)}}} cycles through
+ reasonable levels.
+
+- {{{kbd(M-LEFT)}}}, {{{kbd(M-RIGHT)}}} ::
+
+ Promote or demote current heading by one level.
+
+- {{{kbd(M-UP)}}}, {{{kbd(M-DOWN)}}} ::
+
+ Move subtree up or down, i.e., swap with previous or next subtree of
+ same level.
+
+- {{{kbd(C-c C-w)}}} ::
+
+ Refile entry or region to a different location. See [[*Refile and
+ Copy]].
+
+- {{{kbd(C-x n s)}}}, {{{kbd(C-x n w)}}} ::
+
+ Narrow buffer to current subtree and widen it again.
+
+When there is an active region (Transient Mark mode), promotion and
+demotion work on all headlines in the region.
+
+** Sparse Trees
+:PROPERTIES:
+:DESCRIPTION: Matches embedded in context.
+:END:
+
+An important feature of Org mode is the ability to construct /sparse
+trees/ for selected information in an outline tree, so that the entire
+document is folded as much as possible, but the selected information
+is made visible along with the headline structure above it[fn:3].
+Just try it out and you will see immediately how it works.
+
+Org mode contains several commands creating such trees, all these
+commands can be accessed through a dispatcher:
+
+- {{{kbd(C-c /)}}} ::
+
+ This prompts for an extra key to select a sparse-tree creating
+ command.
+
+- {{{kbd(C-c / r)}}} ::
+
+ Occur. Prompts for a regexp and shows a sparse tree with all
+ matches. Each match is also highlighted; the highlights disappear
+ by pressing {{{kbd(C-c C-c)}}}.
+
+ The other sparse tree commands select headings based on TODO
+ keywords, tags, or properties and will be discussed later in this
+ manual.
+
+** Plain Lists
+:PROPERTIES:
+:DESCRIPTION: Additional structure within an entry.
+:END:
+
+Within an entry of the outline tree, hand-formatted lists can provide
+additional structure. They also provide a way to create lists of
+checkboxes (see [[*Checkboxes]]). Org supports editing such lists, and
+every exporter (see [[*Exporting]]) can parse and format them.
+
+Org knows ordered lists, unordered lists, and description lists.
+
+#+attr_texinfo: :indic @bullet
+- /Unordered/ list items start with =-=, =+=, or =*= as bullets.
+
+- /Ordered/ list items start with =1.=, or =1)=.
+
+- /Description/ list use =::= to separate the /term/ from the
+ description.
+
+Items belonging to the same list must have the same indentation on the
+first line. An item ends before the next line that is indented like
+its bullet/number, or less. A list ends when all items are closed, or
+before two blank lines. An example:
+
+#+begin_example
+,* Lord of the Rings
+ My favorite scenes are (in this order)
+ 1. The attack of the Rohirrim
+ 2. Eowyn's fight with the witch king
+ + this was already my favorite scene in the book
+ + I really like Miranda Otto.
+ Important actors in this film are:
+ - Elijah Wood :: He plays Frodo
+ - Sean Astin :: He plays Sam, Frodo's friend.
+#+end_example
+
+The following commands act on items when point is in the first line of
+an item (the line with the bullet or number).
+
+#+attr_texinfo: :sep ,
+- {{{kbd(TAB)}}} ::
+
+ Items can be folded just like headline levels.
+
+- {{{kbd(M-RET)}}} ::
+
+ Insert new item at current level. With a prefix argument, force
+ a new heading (see [[*Structure Editing]]).
+
+- {{{kbd(M-S-RET)}}} ::
+
+ Insert a new item with a checkbox (see [[*Checkboxes]]).
+
+- {{{kbd(M-S-UP)}}}, {{{kbd(M-S-DOWN)}}} ::
+
+ Move the item including subitems up/down (swap with previous/next
+ item of same indentation). If the list is ordered, renumbering is
+ automatic.
+
+- {{{kbd(M-LEFT)}}}, {{{kbd(M-RIGHT)}}} ::
+
+ Decrease/increase the indentation of an item, leaving children
+ alone.
+
+- {{{kbd(M-S-LEFT)}}}, {{{kbd(M-S-RIGHT)}}} ::
+
+ Decrease/increase the indentation of the item, including subitems.
+
+- {{{kbd(C-c C-c)}}} ::
+
+ If there is a checkbox (see [[*Checkboxes]]) in the item line, toggle
+ the state of the checkbox. Also verify bullets and indentation
+ consistency in the whole list.
+
+- {{{kbd(C-c -)}}} ::
+
+ Cycle the entire list level through the different itemize/enumerate
+ bullets (=-=, =+=, =*=, =1.=, =1)=).
+
+* Tables
+:PROPERTIES:
+:DESCRIPTION: Pure magic for quick formatting.
+:END:
+
+Org comes with a fast and intuitive table editor. Spreadsheet-like
+calculations are supported in connection with the Emacs Calc package
+(see [[info:calc][GNU Emacs Calculator Manual]]).
+
+Org makes it easy to format tables in plain ASCII. Any line with =|=
+as the first non-whitespace character is considered part of a table.
+=|= is also the column separator. A table might look like this:
+
+#+begin_example
+| Name | Phone | Age |
+|-------+-------+-----|
+| Peter | 1234 | 17 |
+| Anna | 4321 | 25 |
+#+end_example
+
+A table is re-aligned automatically each time you press {{{kbd(TAB)}}}
+or {{{kbd(RET)}}} or {{{kbd(C-c C-c)}}} inside the table.
+{{{kbd(TAB)}}} also moves to the next field ({{{kbd(RET)}}} to the
+next row) and creates new table rows at the end of the table or before
+horizontal lines. The indentation of the table is set by the first
+line. Any line starting with =|-= is considered as a horizontal
+separator line and will be expanded on the next re-align to span the
+whole table width. So, to create the above table, you would only type
+
+: |Name|Phone|Age|
+: |-
+
+#+texinfo: @noindent
+and then press {{{kbd(TAB)}}} to align the table and start filling in
+fields. Even faster would be to type =|Name|Phone|Age= followed by
+{{{kbd(C-c RET)}}}.
+
+When typing text into a field, Org treats {{{kbd(DEL)}}},
+{{{kbd(Backspace)}}}, and all character keys in a special way, so that
+inserting and deleting avoids shifting other fields. Also, when
+typing /immediately after point was moved into a new field with
+{{{kbd(TAB)}}}, {{{kbd(S-TAB)}}} or {{{kbd(RET)}}}/, the field is
+automatically made blank.
+
+** Creation and conversion
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+- {{{kbd(C-c |)}}} ::
+
+ Convert the active region to table. If every line contains at least
+ one {{{kbd(TAB)}}} character, the function assumes that the material
+ is tab separated. If every line contains a comma, comma-separated
+ values (CSV) are assumed. If not, lines are split at whitespace
+ into fields.
+
+ If there is no active region, this command creates an empty Org
+ table. But it is easier just to start typing, like {{{kbd(|
+ N a m e | P h o n e | A g e RET | - TAB)}}}.
+
+** Re-aligning and field motion
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+#+attr_texinfo: :sep ,
+- {{{kbd(C-c C-c)}}} ::
+
+ Re-align the table without moving point.
+
+- {{{kbd(TAB)}}} ::
+
+ Re-align the table, move to the next field. Creates a new row if
+ necessary.
+
+- {{{kbd(S-TAB)}}} ::
+
+ Re-align, move to previous field.
+
+- {{{kbd(RET)}}} ::
+
+ Re-align the table and move down to next row. Creates a new row if
+ necessary.
+
+- {{{kbd(S-UP)}}}, {{{kbd(S-DOWN)}}}, {{{kbd(S-LEFT)}}}, {{{kbd(S-RIGHT)}}} ::
+
+ Move a cell up, down, left, and right by swapping with adjacent
+ cell.
+
+** Column and row editing
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+- {{{kbd(M-LEFT)}}}, {{{kbd(M-RIGHT)}}} ::
+
+ Move the current column left/right.
+
+- {{{kbd(M-S-LEFT)}}} ::
+
+ Kill the current column.
+
+- {{{kbd(M-S-RIGHT)}}} ::
+
+ Insert a new column to the left of point position.
+
+- {{{kbd(M-UP)}}}, {{{kbd(M-DOWN)}}} ::
+
+ Move the current row up/down.
+
+- {{{kbd(M-S-UP)}}} ::
+
+ Kill the current row or horizontal line.
+
+- {{{kbd(M-S-DOWN)}}} ::
+
+ Insert a new row above the current row. With a prefix argument, the
+ line is created below the current one.
+
+- {{{kbd(C-c -)}}} ::
+
+ Insert a horizontal line below current row. With a prefix argument,
+ the line is created above the current line.
+
+- {{{kbd(C-c RET)}}} ::
+
+ Insert a horizontal line below current row, and move the point into
+ the row below that line.
+
+- {{{kbd(C-c ^)}}} ::
+
+ Sort the table lines in the region. The position of point indicates
+ the column to be used for sorting, and the range of lines is the
+ range between the nearest horizontal separator lines, or the entire
+ table.
+
+* Hyperlinks
+:PROPERTIES:
+:DESCRIPTION: Notes in context.
+:END:
+
+Like HTML, Org provides links inside a file, external links to other
+files, Usenet articles, emails, and much more.
+
+Org recognizes plain URIs, possibly wrapped within angle brackets, and
+activate them as clickable links. The general link format, however,
+looks like this:
+
+: [[LINK][DESCRIPTION]]
+
+#+texinfo: @noindent
+or alternatively
+
+: [[LINK]]
+
+Once a link in the buffer is complete, with all brackets present, Org
+changes the display so that =DESCRIPTION= is displayed instead of
+=[[LINK][DESCRIPTION]]= and =LINK= is displayed instead of =[[LINK]]=.
+To edit the invisible {{{var(LINK)}}} part, use {{{kbd(C-c C-l)}}}
+with the point on the link.
+
+** Internal links
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+If the link does not look like a URL, it is considered to be internal
+in the current file. The most important case is a link like
+=[[#my-custom-id]]= which links to the entry with the =CUSTOM_ID= property
+=my-custom-id=.
+
+Links such as =[[My Target]]= or =[[My Target][Find my target]]= lead
+to a text search in the current file for the corresponding target,
+which looks like =<<My Target>>=.
+
+** External Links
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+Org supports links to files, websites, Usenet and email messages, BBDB
+database entries and links to both IRC conversations and their logs.
+External links are URL-like locators. They start with a short
+identifying string followed by a colon. There can be no space after
+the colon. Here are some examples:
+
+| =http://www.astro.uva.nl/=dominik= | on the web |
+| =file:/home/dominik/images/jupiter.jpg= | file, absolute path |
+| =/home/dominik/images/jupiter.jpg= | same as above |
+| =file:papers/last.pdf= | file, relative path |
+| =./papers/last.pdf= | same as above |
+| =file:projects.org= | another Org file |
+| =docview:papers/last.pdf::NNN= | open in DocView mode at page {{{var(NNN)}}} |
+| =id:B7423F4D-2E8A-471B-8810-C40F074717E9= | link to heading by ID |
+| =news:comp.emacs= | Usenet link |
+| =mailto:adent@galaxy.net= | mail link |
+| =mhe:folder#id= | MH-E message link |
+| =rmail:folder#id= | Rmail message link |
+| =gnus:group#id= | Gnus article link |
+| =bbdb:R.*Stallman= | BBDB link (with regexp) |
+| =irc:/irc.com/#emacs/bob= | IRC link |
+| =info:org#Hyperlinks= | Info node link |
+
+File links can contain additional information to make Emacs jump to
+a particular location in the file when following a link. This can be
+a line number or a search option after a double colon. Here are a few
+examples,, together with an explanation:
+
+| =file:~/code/main.c::255= | Find line 255 |
+| =file:~/xx.org::My Target= | Find =<<My Target>>= |
+| =[[file:~/xx.org::#my-custom-id]]= | Find entry with a custom ID |
+
+** Handling Links
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+Org provides methods to create a link in the correct syntax, to insert
+it into an Org file, and to follow the link.
+
+The main function is ~org-store-link~, called with {{{kbd(M-x
+org-store-link)}}}. Because of its importance, we suggest to bind it
+to a widely available key (see [[*Activation]]). It stores a link to the
+current location. The link is stored for later insertion into an Org
+buffer---see below.
+
+From an Org buffer, the following commands create, navigate or, more
+generally, act on links.
+
+#+attr_texinfo: :sep ,
+- {{{kbd(C-c C-l)}}} ::
+
+ Insert a link. This prompts for a link to be inserted into the
+ buffer. You can just type a link, or use history keys {{{kbd(UP)}}}
+ and {{{kbd(DOWN)}}} to access stored links. You will be prompted
+ for the description part of the link.
+
+ When called with a {{{kbd(C-u)}}} prefix argument, file name
+ completion is used to link to a file.
+
+- {{{kbd(C-c C-l)}}} (with point on existing link) ::
+
+ When point is on an existing link, {{{kbd(C-c C-l)}}} allows you to
+ edit the link and description parts of the link.
+
+- {{{kbd(C-c C-o)}}} ::
+
+ Open link at point.
+
+- {{{kbd(C-c &)}}} ::
+
+ Jump back to a recorded position. A position is recorded by the
+ commands following internal links, and by {{{kbd(C-c %)}}}. Using
+ this command several times in direct succession moves through a ring
+ of previously recorded positions.
+
+* TODO Items
+:PROPERTIES:
+:DESCRIPTION: Every tree branch can be a TODO item.
+:END:
+
+Org mode does not require TODO lists to live in separate documents.
+Instead, TODO items are part of a notes file, because TODO items
+usually come up while taking notes! With Org mode, simply mark any
+entry in a tree as being a TODO item. In this way, information is not
+duplicated, and TODO items remain in the context from which they
+emerged.
+
+Org mode provides methods to give you an overview of all the things
+that you have to do, collected from many files.
+
+** Basic TODO Functionality
+:PROPERTIES:
+:DESCRIPTION: Marking and displaying TODO entries.
+:ALT_TITLE: TODO Basics
+:END:
+
+Any headline becomes a TODO item when it starts with the word =TODO=,
+for example:
+
+: *** TODO Write letter to Sam Fortune
+
+The most important commands to work with TODO entries are:
+
+#+attr_texinfo: :sep ,
+- {{{kbd(C-c C-t)}}} ::
+
+ Rotate the TODO state of the current item among
+
+ : ,-> (unmarked) -> TODO -> DONE --.
+ : '--------------------------------'
+
+ The same rotation can also be done "remotely" from the agenda buffer
+ with the {{{kbd(t)}}} command key (see [[*Commands in the Agenda
+ Buffer]]).
+
+- {{{kbd(S-RIGHT)}}}, {{{kbd(S-LEFT)}}} ::
+
+ Select the following/preceding TODO state, similar to cycling.
+
+- {{{kbd(C-c / t)}}} ::
+
+ View TODO items in a /sparse tree/ (see [[*Sparse Trees]]). Folds the
+ entire buffer, but shows all TODO items---with not-DONE state---and
+ the headings hierarchy above them.
+
+- {{{kbd(M-x org-agenda t)}}} ::
+
+ Show the global TODO list. Collects the TODO items (with not-DONE
+ states) from all agenda files (see [[*Agenda Views]]) into a single
+ buffer. See [[*The Global TODO List]], for more information.
+
+- {{{kbd(S-M-RET)}}} ::
+
+ Insert a new TODO entry below the current one.
+
+Changing a TODO state can also trigger tag changes. See the docstring
+of the option ~org-todo-state-tags-triggers~ for details.
+
+** Multi-state Workflow
+:PROPERTIES:
+:DESCRIPTION: More than just on/off.
+:END:
+
+You can use TODO keywords to indicate @emph{sequential} working progress
+states:
+
+#+begin_src emacs-lisp
+(setq org-todo-keywords
+ '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
+#+end_src
+
+#+texinfo: @noindent
+The vertical bar separates the =TODO= keywords (states that /need
+action/) from the =DONE= states (which need /no further action/). If
+you do not provide the separator bar, the last state is used as the
+=DONE= state. With this setup, the command {{{kbd(C-c C-t)}}} cycles
+an entry from =TODO= to =FEEDBACK=, then to =VERIFY=, and finally to
+=DONE= and =DELEGATED=.
+
+Sometimes you may want to use different sets of TODO keywords in
+parallel. For example, you may want to have the basic =TODO=/=DONE=,
+but also a workflow for bug fixing. Your setup would then look like
+this:
+
+#+begin_src emacs-lisp
+(setq org-todo-keywords
+ '((sequence "TODO(t)" "|" "DONE(d)")
+ (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)")))
+#+end_src
+
+#+texinfo: @noindent
+The keywords should all be different, this helps Org mode to keep
+track of which subsequence should be used for a given entry. The
+example also shows how to define keys for fast access of a particular
+state, by adding a letter in parenthesis after each keyword---you will
+be prompted for the key after {{{kbd(C-c C-t)}}}.
+
+To define TODO keywords that are valid only in a single file, use the
+following text anywhere in the file.
+
+#+begin_example
+,#+TODO: TODO(t) | DONE(d)
+,#+TODO: REPORT(r) BUG(b) KNOWNCAUSE(k) | FIXED(f)
+,#+TODO: | CANCELED(c)
+#+end_example
+
+After changing one of these lines, use {{{kbd(C-c C-c)}}} with the
+cursor still in the line to make the changes known to Org mode.
+
+** Progress Logging
+:PROPERTIES:
+:DESCRIPTION: Dates and notes for progress.
+:END:
+
+To record a timestamp and a note when changing a TODO state, call the
+command ~org-todo~ with a prefix argument.
+
+#+attr_texinfo: :sep ,
+- {{{kbd(C-u C-c C-t)}}} ::
+ Prompt for a note and record a the time of the TODO state change.
+
+Org mode can also automatically record a timestamp and optionally a
+note when you mark a TODO item as DONE, or even each time you change
+the state of a TODO item. This system is highly configurable,
+settings can be on a per-keyword basis and can be localized to a file
+or even a subtree. For information on how to clock working time for a
+task, see [[*Clocking Work Time]].
+
+*** Closing items
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+The most basic logging is to keep track of /when/ a certain TODO item
+was marked as done. This can be achieved with[fn:4]
+
+#+begin_src emacs-lisp
+(setq org-log-done 'time)
+#+end_src
+
+#+texinfo: @noindent
+Then each time you turn an entry from a TODO (not-done) state into any
+of the DONE states, a line =CLOSED: [timestamp]= is inserted just
+after the headline.
+
+If you want to record a note along with the timestamp, use[fn:5]
+
+#+begin_src emacs-lisp
+(setq org-log-done 'note)
+#+end_src
+
+#+texinfo: @noindent
+You are then be prompted for a note, and that note is stored below the
+entry with a =Closing Note= heading.
+
+*** Tracking TODO state changes
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+You might want to keep track of TODO state changes. You can either
+record just a timestamp, or a time-stamped note for a change. These
+records are inserted after the headline as an itemized list. When
+taking a lot of notes, you might want to get the notes out of the way
+into a drawer. Customize the variable ~org-log-into-drawer~ to get
+this behavior.
+
+For state logging, Org mode expects configuration on a per-keyword
+basis. This is achieved by adding special markers =!= (for
+a timestamp) and =@= (for a note) in parentheses after each keyword.
+For example:
+
+: #+TODO: TODO(t) WAIT(w@/!) | DONE(d!) CANCELED(c@)
+
+#+texinfo: @noindent
+defines TODO keywords and fast access keys, and also request that
+a time is recorded when the entry is set to =DONE=, and that a note is
+recorded when switching to =WAIT= or =CANCELED=. The same syntax
+works also when setting ~org-todo-keywords~.
+
+** Priorities
+:PROPERTIES:
+:DESCRIPTION: Some things are more important than others.
+:END:
+
+If you use Org mode extensively, you may end up with enough TODO items
+that it starts to make sense to prioritize them. Prioritizing can be
+done by placing a /priority cookie/ into the headline of a TODO item,
+like this
+
+: *** TODO [#A] Write letter to Sam Fortune
+
+Org mode supports three priorities: =A=, =B=, and =C=. =A= is the
+highest, =B= the default if none is given. Priorities make
+a difference only in the agenda.
+
+#+attr_texinfo: :sep ;
+- {{{kbd(C-c \,)}}} ::
+
+ Set the priority of the current headline. Press {{{kbd(A)}}},
+ {{{kbd(B)}}} or {{{kbd(C)}}} to select a priority, or {{{kbd(SPC)}}}
+ to remove the cookie.
+
+- {{{kbd(S-UP)}}} (~org-priority-up~); {{{kbd(S-DOWN)}}} (~org-priority-down~) ::
+
+ Increase/decrease the priority of the current headline.
+
+** Breaking Tasks Down into Subtasks
+:PROPERTIES:
+:DESCRIPTION: Splitting a task into manageable pieces.
+:ALT_TITLE: Breaking Down Tasks
+:END:
+
+It is often advisable to break down large tasks into smaller,
+manageable subtasks. You can do this by creating an outline tree
+below a TODO item, with detailed subtasks on the tree. To keep an
+overview of the fraction of subtasks that have already been marked
+as done, insert either =[/]= or =[%]= anywhere in the headline. These
+cookies are updated each time the TODO status of a child changes, or
+when pressing {{{kbd(C-c C-c)}}} on the cookie. For example:
+
+#+begin_example
+,* Organize Party [33%]
+,** TODO Call people [1/2]
+,*** TODO Peter
+,*** DONE Sarah
+,** TODO Buy food
+,** DONE Talk to neighbor
+#+end_example
+
+** Checkboxes
+:PROPERTIES:
+:DESCRIPTION: Tick-off lists.
+:END:
+
+Every item in a plain list (see [[*Plain Lists]]) can be made into
+a checkbox by starting it with the string =[ ]=. Checkboxes are not
+included into the global TODO list, so they are often great to split
+a task into a number of simple steps.
+
+Here is an example of a checkbox list.
+
+#+begin_example
+,* TODO Organize party [2/4]
+ - [-] call people [1/2]
+ - [ ] Peter
+ - [X] Sarah
+ - [X] order food
+#+end_example
+
+Checkboxes work hierarchically, so if a checkbox item has children
+that are checkboxes, toggling one of the children checkboxes makes the
+parent checkbox reflect if none, some, or all of the children are
+checked.
+
+The following commands work with checkboxes:
+
+- {{{kbd(C-c C-c)}}} ::
+
+ Toggle checkbox status or---with prefix argument---checkbox presence
+ at point.
+
+- {{{kbd(M-S-RET)}}} ::
+
+ Insert a new item with a checkbox. This works only if point is
+ already in a plain list item (see [[*Plain Lists]]).
+
+* Tags
+:PROPERTIES:
+:DESCRIPTION: Tagging headlines and matching sets of tags.
+:END:
+
+An excellent way to implement labels and contexts for
+cross-correlating information is to assign /tags/ to headlines. Org
+mode has extensive support for tags.
+
+Every headline can contain a list of tags; they occur at the end of
+the headline. Tags are normal words containing letters, numbers, =_=,
+and =@=. Tags must be preceded and followed by a single colon, e.g.,
+=:work:=. Several tags can be specified, as in =:work:urgent:=. Tags
+by default are in bold face with the same color as the headline.
+
+** Tag inheritance
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+Tags make use of the hierarchical structure of outline trees. If
+a heading has a certain tag, all subheadings inherit the tag as well.
+For example, in the list
+
+#+begin_example
+,* Meeting with the French group :work:
+,** Summary by Frank :boss:notes:
+,*** TODO Prepare slides for him :action:
+#+end_example
+
+#+texinfo: @noindent
+the final heading has the tags =work=, =boss=, =notes=, and =action=
+even though the final heading is not explicitly marked with those
+tags.
+
+You can also set tags that all entries in a file should inherit just
+as if these tags were defined in a hypothetical level zero that
+surrounds the entire file. Use a line like this[fn:6]:
+
+: #+FILETAGS: :Peter:Boss:Secret:
+
+** Setting tags
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+Tags can simply be typed into the buffer at the end of a headline.
+After a colon, {{{kbd(M-TAB)}}} offers completion on tags. There is
+also a special command for inserting tags:
+
+- {{{kbd(C-c C-q)}}} ::
+
+ Enter new tags for the current headline. Org mode either offers
+ completion or a special single-key interface for setting tags, see
+ below.
+
+- {{{kbd(C-c C-c)}}} ::
+
+ When point is in a headline, this does the same as {{{kbd(C-c
+ C-q)}}}.
+
+Org supports tag insertion based on a /list of tags/. By default this
+list is constructed dynamically, containing all tags currently used in
+the buffer. You may also globally specify a hard list of tags with
+the variable ~org-tag-alist~. Finally you can set the default tags
+for a given file using the =TAGS= keyword, like
+
+: #+TAGS: @work @home @tennisclub
+: #+TAGS: laptop car pc sailboat
+
+By default Org mode uses the standard minibuffer completion facilities
+for entering tags. However, it also implements another, quicker, tag
+selection method called /fast tag selection/. This allows you to
+select and deselect tags with just a single key press. For this to
+work well you should assign unique letters to most of your commonly
+used tags. You can do this globally by configuring the variable
+~org-tag-alist~ in your Emacs init file. For example, you may find
+the need to tag many items in different files with =@home=. In this
+case you can set something like:
+
+#+begin_src emacs-lisp
+(setq org-tag-alist '(("@work" . ?w) ("@home" . ?h) ("laptop" . ?l)))
+#+end_src
+
+If the tag is only relevant to the file you are working on, then you
+can instead set the =TAGS= keyword as:
+
+: #+TAGS: @work(w) @home(h) @tennisclub(t) laptop(l) pc(p)
+
+** Tag groups
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+A tag can be defined as a /group tag/ for a set of other tags. The
+group tag can be seen as the "broader term" for its set of tags.
+
+You can set group tags by using brackets and inserting a colon between
+the group tag and its related tags:
+
+: #+TAGS: [ GTD : Control Persp ]
+
+#+texinfo: @noindent
+or, if tags in the group should be mutually exclusive:
+
+: #+TAGS: { Context : @Home @Work }
+
+When you search for a group tag, it return matches for all members in
+the group and its subgroups. In an agenda view, filtering by a group
+tag displays or hide headlines tagged with at least one of the members
+of the group or any of its subgroups.
+
+If you want to ignore group tags temporarily, toggle group tags
+support with ~org-toggle-tags-groups~, bound to {{{kbd(C-c C-x q)}}}.
+
+** Tag searches
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+- {{{kbd(C-c / m)}}} or {{{kbd(C-c \)}}} ::
+
+ Create a sparse tree with all headlines matching a tags search.
+ With a {{{kbd(C-u)}}} prefix argument, ignore headlines that are not
+ a TODO line.
+
+- {{{kbd(M-x org-agenda m)}}} ::
+
+ Create a global list of tag matches from all agenda files. See
+ [[*Matching Tags and Properties]].
+
+- {{{kbd(M-x org-agenda M)}}} ::
+
+ Create a global list of tag matches from all agenda files, but check
+ only TODO items and force checking subitems (see the option
+ ~org-tags-match-list-sublevels~).
+
+These commands all prompt for a match string which allows basic
+Boolean logic like =+boss+urgent-project1=, to find entries with tags
+=boss= and =urgent=, but not =project1=, or =Kathy|Sally= to find
+entries which are tagged, like =Kathy= or =Sally=. The full syntax of
+the search string is rich and allows also matching against TODO
+keywords, entry levels and properties. For a more detailed description
+with many examples, see [[*Matching Tags and Properties]].
+
+* Properties
+:PROPERTIES:
+:DESCRIPTION: Storing information about an entry.
+:END:
+
+Properties are key-value pairs associated with an entry. They live in
+a special drawer with the name =PROPERTIES=. Each property is
+specified on a single line, with the key (surrounded by colons) first,
+and the value after it:
+
+#+begin_example
+,* CD collection
+,** Classic
+,*** Goldberg Variations
+ :PROPERTIES:
+ :Title: Goldberg Variations
+ :Composer: J.S. Bach
+ :Publisher: Deutsche Grammophon
+ :NDisks: 1
+ :END:
+#+end_example
+
+You may define the allowed values for a particular property =Xyz= by
+setting a property =Xyz_ALL=. This special property is /inherited/,
+so if you set it in a level 1 entry, it applies to the entire tree.
+When allowed values are defined, setting the corresponding property
+becomes easier and is less prone to typing errors. For the example
+with the CD collection, we can pre-define publishers and the number of
+disks in a box like this:
+
+#+begin_example
+,* CD collection
+ :PROPERTIES:
+ :NDisks_ALL: 1 2 3 4
+ :Publisher_ALL: "Deutsche Grammophon" Philips EMI
+ :END:
+#+end_example
+
+If you want to set properties that can be inherited by any entry in
+a file, use a line like:
+
+: #+PROPERTY: NDisks_ALL 1 2 3 4
+
+The following commands help to work with properties:
+
+- {{{kbd(C-c C-x p)}}} ::
+
+ Set a property. This prompts for a property name and a value.
+
+- {{{kbd(C-c C-c d)}}} ::
+
+ Remove a property from the current entry.
+
+To create sparse trees and special lists with selection based on
+properties, the same commands are used as for tag searches (see
+[[*Tags]]). The syntax for the search string is described in [[*Matching
+Tags and Properties]].
+
+* Dates and Times
+:PROPERTIES:
+:DESCRIPTION: Making items useful for planning.
+:END:
+
+To assist project planning, TODO items can be labeled with a date
+and/or a time. The specially formatted string carrying the date and
+time information is called a /timestamp/ in Org mode.
+
+** Timestamps
+:PROPERTIES:
+:DESCRIPTION: Assigning a time to a tree entry.
+:END:
+
+A timestamp is a specification of a date---possibly with a time or
+a range of times---in a special format, either =<2003-09-16 Tue>= or
+=<2003-09-16 Tue 09:39>= or =<2003-09-16 Tue 12:00-12:30>=.
+A timestamp can appear anywhere in the headline or body of an Org tree
+entry. Its presence causes entries to be shown on specific dates in
+the agenda (see [[*The Weekly/daily Agenda]]). We distinguish:
+
+- Plain timestamp; Event; Appointment ::
+
+ A simple timestamp just assigns a date/time to an item. This is
+ just like writing down an appointment or event in a paper agenda.
+
+ #+begin_example
+ ,* Meet Peter at the movies
+ <2006-11-01 Wed 19:15>
+ ,* Discussion on climate change
+ <2006-11-02 Thu 20:00-22:00>
+ #+end_example
+
+- Timestamp with repeater interval ::
+
+ A timestamp may contain a /repeater interval/, indicating that it
+ applies not only on the given date, but again and again after
+ a certain interval of N days (d), weeks (w), months (m), or years
+ (y). The following shows up in the agenda every Wednesday:
+
+ #+begin_example
+ ,* Pick up Sam at school
+ <2007-05-16 Wed 12:30 +1w>
+ #+end_example
+
+- Diary-style expression entries ::
+
+ #+cindex: diary style timestamps
+ #+cindex: sexp timestamps
+ For more complex date specifications, Org mode supports using the
+ special expression diary entries implemented in the Emacs Calendar
+ package. For example, with optional time:
+
+ #+begin_example
+ ,* 22:00-23:00 The nerd meeting on every 2nd Thursday of the month
+ <%%(diary-float t 4 2)>
+ #+end_example
+
+- Time/Date range ::
+
+ Two timestamps connected by =--= denote a range.
+
+ #+begin_example
+ ,** Meeting in Amsterdam
+ <2004-08-23 Mon>--<2004-08-26 Thu>
+ #+end_example
+
+- Inactive timestamp ::
+
+ Just like a plain timestamp, but with square brackets instead of
+ angular ones. These timestamps are inactive in the sense that they
+ do /not/ trigger an entry to show up in the agenda.
+
+ #+begin_example
+ ,* Gillian comes late for the fifth time
+ [2006-11-01 Wed]
+ #+end_example
+
+** Creating Timestamps
+:PROPERTIES:
+:DESCRIPTION: Commands that insert timestamps.
+:END:
+
+For Org mode to recognize timestamps, they need to be in the specific
+format. All commands listed below produce timestamps in the correct
+format.
+
+#+attr_texinfo: :sep ,
+- {{{kbd(C-c .)}}} ::
+
+ Prompt for a date and insert a corresponding timestamp. When point
+ is at an existing timestamp in the buffer, the command is used to
+ modify this timestamp instead of inserting a new one. When this
+ command is used twice in succession, a time range is inserted. With
+ a prefix argument, it also adds the current time.
+
+- {{{kbd(C-c !)}}} ::
+
+ Like {{{kbd(C-c .)}}}, but insert an inactive timestamp that does
+ not cause an agenda entry.
+
+- {{{kbd(S-LEFT)}}}, {{{kbd(S-RIGHT)}}} ::
+
+ Change date at point by one day.
+
+- {{{kbd(S-UP)}}}, {{{kbd(S-DOWN)}}} ::
+
+ On the beginning or enclosing bracket of a timestamp, change its
+ type. Within a timestamp, change the item under point. Point can
+ be on a year, month, day, hour or minute. When the timestamp
+ contains a time range like =15:30-16:30=, modifying the first time
+ also shifts the second, shifting the time block with constant
+ length. To change the length, modify the second time.
+
+
+When Org mode prompts for a date/time, it accepts any string
+containing some date and/or time information, and intelligently
+interprets the string, deriving defaults for unspecified information
+from the current date and time. You can also select a date in the
+pop-up calendar. See the manual for more information on how exactly
+the date/time prompt works.
+
+** Deadlines and Scheduling
+:PROPERTIES:
+:DESCRIPTION: Planning your work.
+:END:
+
+A timestamp may be preceded by special keywords to facilitate
+planning:
+
+- {{{kbd(C-c C-d)}}} ::
+
+ Insert =DEADLINE= keyword along with a time stamp, in the line
+ following the headline.
+
+ Meaning: the task---most likely a TODO item, though not
+ necessarily---is supposed to be finished on that date.
+
+ On the deadline date, the task is listed in the agenda. In
+ addition, the agenda for /today/ carries a warning about the
+ approaching or missed deadline, starting ~org-deadline-warning-days~
+ before the due date, and continuing until the entry is marked as
+ done. An example:
+
+ #+begin_example
+ ,*** TODO write article about the Earth for the Guide
+ DEADLINE: <2004-02-29 Sun>
+ The editor in charge is [[bbdb:Ford Prefect]]
+ #+end_example
+
+- {{{kbd(C-c C-s)}}} ::
+
+ Insert =SCHEDULED= keyword along with a stamp, in the line following
+ the headline.
+
+ Meaning: you are planning to start working on that task on the given
+ date[fn:7].
+
+ The headline is listed under the given date[fn:8]. In addition,
+ a reminder that the scheduled date has passed is present in the
+ compilation for /today/, until the entry is marked as done, i.e.,
+ the task is automatically forwarded until completed.
+
+ #+begin_example
+ ,*** TODO Call Trillian for a date on New Years Eve.
+ SCHEDULED: <2004-12-25 Sat>
+ #+end_example
+
+Some tasks need to be repeated again and again. Org mode helps to
+organize such tasks using a so-called repeater in a =DEADLINE=,
+=SCHEDULED=, or plain timestamps. In the following example:
+
+#+begin_example
+,** TODO Pay the rent
+ DEADLINE: <2005-10-01 Sat +1m>
+#+end_example
+
+#+texinfo: @noindent
+the =+1m= is a repeater; the intended interpretation is that the task
+has a deadline on =<2005-10-01>= and repeats itself every (one) month
+starting from that time.
+
+** Clocking Work Time
+:PROPERTIES:
+:DESCRIPTION: Tracking how long you spent on a task.
+:END:
+
+Org mode allows you to clock the time you spend on specific tasks in
+a project.
+
+#+attr_texinfo: :sep ,
+- {{{kbd(C-c C-x C-i)}}} ::
+
+ Start the clock on the current item (clock-in). This inserts the
+ =CLOCK= keyword together with a timestamp. When called with
+ a {{{kbd(C-u)}}} prefix argument, select the task from a list of
+ recently clocked tasks.
+
+- {{{kbd(C-c C-x C-o)}}} ::
+
+ Stop the clock (clock-out). This inserts another timestamp at the
+ same location where the clock was last started. It also directly
+ computes the resulting time in inserts it after the time range as
+ ==>HH:MM=.
+
+- {{{kbd(C-c C-x C-e)}}} ::
+
+ Update the effort estimate for the current clock task.
+
+- {{{kbd(C-c C-x C-q)}}} ::
+
+ Cancel the current clock. This is useful if a clock was started by
+ mistake, or if you ended up working on something else.
+
+- {{{kbd(C-c C-x C-j)}}} ::
+
+ Jump to the headline of the currently clocked in task. With
+ a {{{kbd(C-u)}}} prefix argument, select the target task from a list
+ of recently clocked tasks.
+
+The {{{kbd(l)}}} key may be used in the agenda (see [[*The Weekly/daily
+Agenda]]) to show which tasks have been worked on or closed during
+a day.
+
+* Capture, Refile, Archive
+:PROPERTIES:
+:DESCRIPTION: The ins and outs for projects.
+:END:
+
+An important part of any organization system is the ability to quickly
+capture new ideas and tasks, and to associate reference material with
+them. Org does this using a process called /capture/. It also can
+store files related to a task (/attachments/) in a special directory.
+Once in the system, tasks and projects need to be moved around.
+Moving completed project trees to an archive file keeps the system
+compact and fast.
+
+** Capture
+:PROPERTIES:
+:DESCRIPTION: Capturing new stuff.
+:END:
+
+Capture lets you quickly store notes with little interruption of your
+work flow. You can define templates for new entries and associate
+them with different targets for storing notes.
+
+*** Setting up capture
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+The following customization sets a default target[fn:9] file for notes.
+
+#+begin_src emacs-lisp
+(setq org-default-notes-file (concat org-directory "/notes.org"))
+#+end_src
+
+You may also define a global key for capturing new material (see
+[[*Activation]]).
+
+*** Using capture
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+- {{{kbd(M-x org-capture)}}} ::
+
+ Start a capture process, placing you into a narrowed indirect buffer
+ to edit.
+
+- {{{kbd(C-c C-c)}}} ::
+
+ Once you have finished entering information into the capture buffer,
+ {{{kbd(C-c C-c)}}} returns you to the window configuration before
+ the capture process, so that you can resume your work without
+ further distraction.
+
+- {{{kbd(C-c C-w)}}} ::
+
+ Finalize the capture process by refiling the note to a different
+ place (see [[*Refile and Copy]]).
+
+- {{{kbd(C-c C-k)}}} ::
+
+ Abort the capture process and return to the previous state.
+
+*** Capture templates
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+You can use templates for different types of capture items, and for
+different target locations. Say you would like to use one template to
+create general TODO entries, and you want to put these entries under
+the heading =Tasks= in your file =~/org/gtd.org=. Also, a date tree
+in the file =journal.org= should capture journal entries. A possible
+configuration would look like:
+
+#+begin_src emacs-lisp
+(setq org-capture-templates
+ '(("t" "Todo" entry (file+headline "~/org/gtd.org" "Tasks")
+ "* TODO %?\n %i\n %a")
+ ("j" "Journal" entry (file+datetree "~/org/journal.org")
+ "* %?\nEntered on %U\n %i\n %a")))
+#+end_src
+
+If you then press {{{kbd(t)}}} from the capture menu, Org will prepare
+the template for you like this:
+
+: * TODO
+: [[file:LINK TO WHERE YOU INITIATED CAPTURE]]
+
+#+texinfo: @noindent
+During expansion of the template, special %-escapes[fn:10] allow
+dynamic insertion of content. Here is a small selection of the
+possibilities, consult the manual for more.
+
+| =%a= | annotation, normally the link created with ~org-store-link~ |
+| =%i= | initial content, the region when capture is called with {{{kbd(C-u)}}} |
+| =%t=, =%T= | timestamp, date only, or date and time |
+| =%u=, =%U= | like above, but inactive timestamps |
+| =%?= | after completing the template, position point here |
+
+** Refile and Copy
+:PROPERTIES:
+:DESCRIPTION: Moving/copying a tree from one place to another.
+:END:
+
+When reviewing the captured data, you may want to refile or to copy
+some of the entries into a different list, for example into a project.
+Cutting, finding the right location, and then pasting the note is
+cumbersome. To simplify this process, you can use the following
+special command:
+
+- {{{kbd(C-c C-w)}}} ::
+
+ Refile the entry or region at point. This command offers possible
+ locations for refiling the entry and lets you select one with
+ completion. The item (or all items in the region) is filed below
+ the target heading as a subitem.
+
+ By default, all level 1 headlines in the current buffer are
+ considered to be targets, but you can have more complex definitions
+ across a number of files. See the variable ~org-refile-targets~ for
+ details.
+
+- {{{kbd(C-u C-c C-w)}}} ::
+
+ Use the refile interface to jump to a heading.
+
+- {{{kbd(C-u C-u C-c C-w)}}} ::
+
+ Jump to the location where ~org-refile~ last moved a tree to.
+
+- {{{kbd(C-c M-w)}}} ::
+
+ Copying works like refiling, except that the original note is not
+ deleted.
+
+** Archiving
+:PROPERTIES:
+:DESCRIPTION: What to do with finished products.
+:END:
+
+When a project represented by a (sub)tree is finished, you may want to
+move the tree out of the way and to stop it from contributing to the
+agenda. Archiving is important to keep your working files compact and
+global searches like the construction of agenda views fast.
+
+The most common archiving action is to move a project tree to another
+file, the archive file.
+
+- {{{kbd(C-c C-x C-a)}}} ::
+
+ Archive the current entry using the command specified in the
+ variable ~org-archive-default-command~.
+
+- {{{kbd(C-c C-x C-s)}}} or short {{{kbd(C-c $)}}} ::
+
+ Archive the subtree starting at point position to the location given
+ by ~org-archive-location~.
+
+The default archive location is a file in the same directory as the
+current file, with the name derived by appending =_archive= to the
+current file name. You can also choose what heading to file archived
+items under, with the possibility to add them to a datetree in a file.
+For information and examples on how to specify the file and the
+heading, see the documentation string of the variable
+~org-archive-location~.
+
+There is also an in-buffer option for setting this variable, for
+example:
+
+: #+ARCHIVE: %s_done::
+
+* Agenda Views
+:PROPERTIES:
+:DESCRIPTION: Collecting information into views.
+:END:
+
+Due to the way Org works, TODO items, time-stamped items, and tagged
+headlines can be scattered throughout a file or even a number of
+files. To get an overview of open action items, or of events that are
+important for a particular date, this information must be collected,
+sorted and displayed in an organized way.
+
+The extracted information is displayed in a special /agenda buffer/.
+This buffer is read-only, but provides commands to visit the
+corresponding locations in the original Org files, and even to edit
+these files remotely. Remote editing from the agenda buffer means,
+for example, that you can change the dates of deadlines and
+appointments from the agenda buffer. For commands available in the
+Agenda buffer, see [[*Commands in the Agenda Buffer]].
+
+** Agenda Files
+:PROPERTIES:
+:DESCRIPTION: Files being searched for agenda information.
+:END:
+
+The information to be shown is normally collected from all /agenda
+files/, the files listed in the variable ~org-agenda-files~.
+
+#+attr_texinfo: :sep or
+- {{{kbd(C-c [)}}} ::
+
+ Add current file to the list of agenda files. The file is added to
+ the front of the list. If it was already in the list, it is moved
+ to the front. With a prefix argument, file is added/moved to the
+ end.
+
+- {{{kbd(C-c ])}}} ::
+
+ Remove current file from the list of agenda files.
+
+- {{{kbd(C-')}}} or {{{kbd(C-\,)}}} ::
+
+ Cycle through agenda file list, visiting one file after the other.
+
+** The Agenda Dispatcher
+:PROPERTIES:
+:DESCRIPTION: Keyboard access to agenda views.
+:ALT_TITLE: Agenda Dispatcher
+:END:
+
+The views are created through a dispatcher, accessible with {{{kbd(M-x
+org-agenda)}}}, or, better, bound to a global key (see [[*Activation]]).
+It displays a menu from which an additional letter is required to
+execute a command. The dispatcher offers the following default
+commands:
+
+#+attr_texinfo: :sep ,
+- {{{kbd(a)}}} ::
+
+ Create the calendar-like agenda (see [[*The Weekly/daily Agenda]]).
+
+- {{{kbd(t)}}}, {{{kbd(T)}}} ::
+
+ Create a list of all TODO items (see [[*The Global TODO List]]).
+
+- {{{kbd(m)}}}, {{{kbd(M)}}} ::
+
+ Create a list of headlines matching a given expression (see
+ [[*Matching Tags and Properties]]).
+
+- {{{kbd(s)}}} ::
+
+ #+kindex: s @r{(Agenda dispatcher)}
+ Create a list of entries selected by a boolean expression of
+ keywords and/or regular expressions that must or must not occur in
+ the entry.
+
+** The Weekly/Daily Agenda
+:PROPERTIES:
+:DESCRIPTION: What is available out of the box?
+:ALT_TITLE: Built-in Agenda Views
+:END:
+
+The purpose of the weekly/daily /agenda/ is to act like a page of
+a paper agenda, showing all the tasks for the current week or day.
+
+- {{{kbd(M-x org-agenda a)}}} ::
+
+ Compile an agenda for the current week from a list of Org files.
+ The agenda shows the entries for each day.
+
+Org mode understands the syntax of the diary and allows you to use
+diary expression entries directly in Org files:
+
+#+begin_example
+,* Holidays
+ :PROPERTIES:
+ :CATEGORY: Holiday
+ :END:
+%%(org-calendar-holiday) ; special function for holiday names
+
+,* Birthdays
+ :PROPERTIES:
+ :CATEGORY: Ann
+ :END:
+%%(org-anniversary 1956 5 14) Arthur Dent is %d years old
+%%(org-anniversary 1869 10 2) Mahatma Gandhi would be %d years old
+#+end_example
+
+Org can interact with Emacs appointments notification facility. To
+add the appointments of your agenda files, use the command
+~org-agenda-to-appt~.
+
+** The Global TODO List
+:PROPERTIES:
+:DESCRIPTION: All unfinished action items.
+:ALT_TITLE: Global TODO List
+:END:
+
+The global TODO list contains all unfinished TODO items formatted and
+collected into a single place. Remote editing of TODO items lets you
+can change the state of a TODO entry with a single key press. For
+commands available in the TODO list, see [[*Commands in the Agenda
+Buffer]].
+
+- {{{kbd(M-x org-agenda t)}}} ::
+
+ Show the global TODO list. This collects the TODO items from all
+ agenda files (see [[*Agenda Views]]) into a single buffer.
+
+- {{{kbd(M-x org-agenda T)}}} ::
+
+ Like the above, but allows selection of a specific TODO keyword.
+
+** Matching Tags and Properties
+:PROPERTIES:
+:DESCRIPTION: Structured information with fine-tuned search.
+:END:
+
+If headlines in the agenda files are marked with /tags/ (see [[*Tags]]),
+or have properties (see [[*Properties]]), you can select headlines based
+on this metadata and collect them into an agenda buffer. The match
+syntax described here also applies when creating sparse trees with
+{{{kbd(C-c / m)}}}.
+
+- {{{kbd(M-x org-agenda m)}}} ::
+
+ Produce a list of all headlines that match a given set of tags. The
+ command prompts for a selection criterion, which is a boolean logic
+ expression with tags, like =+work+urgent-withboss= or =work|home=
+ (see [[*Tags]]). If you often need a specific search, define a custom
+ command for it (see [[*The Agenda Dispatcher]]).
+
+- {{{kbd(M-x org-agenda M)}}} ::
+
+ Like {{{kbd(m)}}}, but only select headlines that are also TODO
+ items.
+
+A search string can use Boolean operators =&= for AND and =|= for OR.
+=&= binds more strongly than =|=. Parentheses are currently not
+implemented. Each element in the search is either a tag, a regular
+expression matching tags, or an expression like =PROPERTY OPERATOR
+VALUE= with a comparison operator, accessing a property value. Each
+element may be preceded by =-= to select against it, and =+= is
+syntactic sugar for positive selection. The AND operator =&= is
+optional when =+= or =-= is present. Here are some examples, using
+only tags.
+
+- =+work-boss= ::
+
+ Select headlines tagged =work=, but discard those also tagged
+ =boss=.
+
+- =work|laptop= ::
+
+ Selects lines tagged =work= or =laptop=.
+
+- =work|laptop+night= ::
+
+ Like before, but require the =laptop= lines to be tagged also
+ =night=.
+
+You may also test for properties at the same time as matching tags,
+see the manual for more information.
+
+** Search View
+:PROPERTIES:
+:DESCRIPTION: Find entries by searching for text.
+:END:
+
+This agenda view is a general text search facility for Org mode
+entries. It is particularly useful to find notes.
+
+- {{{kbd(M-x org-agenda s)}}} (~org-search-view~) ::
+
+ #+kindex: s @r{(Agenda dispatcher)}
+ #+findex: org-search-view
+ This is a special search that lets you select entries by matching
+ a substring or specific words using a boolean logic.
+
+For example, the search string =computer equipment= matches entries
+that contain =computer equipment= as a substring.
+
+Search view can also search for specific keywords in the entry, using
+Boolean logic. The search string =+computer
++wifi -ethernet -{8\.11[bg]}= matches note entries that contain the
+keywords =computer= and =wifi=, but not the keyword =ethernet=, and
+which are also not matched by the regular expression =8\.11[bg]=,
+meaning to exclude both =8.11b= and =8.11g=.
+
+Note that in addition to the agenda files, this command also searches
+the files listed in ~org-agenda-text-search-extra-files~.
+
+** Commands in the Agenda Buffer
+:PROPERTIES:
+:DESCRIPTION: Remote editing of Org trees.
+:ALT_TITLE: Agenda Commands
+:END:
+
+Entries in the agenda buffer are linked back to the Org file or diary
+file where they originate. You are not allowed to edit the agenda
+buffer itself, but commands are provided to show and jump to the
+original entry location, and to edit the Org files "remotely" from the
+agenda buffer. This is just a selection of the many commands, explore
+the agenda menu and the manual for a complete list.
+
+*** Motion
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+- {{{kbd(n)}}} ::
+
+ Next line (same as {{{kbd(DOWN)}}} and {{{kbd(C-n)}}}).
+
+- {{{kbd(p)}}} ::
+
+ Previous line (same as {{{kbd(UP)}}} and {{{kbd(C-p)}}}).
+
+*** View/Go to Org file
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+- {{{kbd(SPC)}}} ::
+
+ Display the original location of the item in another window.
+ With a prefix argument, make sure that drawers stay folded.
+
+- {{{kbd(TAB)}}} ::
+
+ Go to the original location of the item in another window.
+
+- {{{kbd(RET)}}} ::
+
+ Go to the original location of the item and delete other windows.
+
+*** Change display
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+#+attr_texinfo: :sep ,
+- {{{kbd(o)}}} ::
+
+ Delete other windows.
+
+- {{{kbd(v d)}}} or short {{{kbd(d)}}} ::
+
+ Switch to day view.
+
+- {{{kbd(v w)}}} or short {{{kbd(w)}}} ::
+
+ Switch to week view.
+
+- {{{kbd(f)}}} ::
+
+ Go forward in time to display the span following the current one.
+ For example, if the display covers a week, switch to the following
+ week.
+
+- {{{kbd(b)}}} ::
+
+ Go backward in time to display earlier dates.
+
+- {{{kbd(.)}}} ::
+
+ Go to today.
+
+- {{{kbd(j)}}} ::
+
+ Prompt for a date and go there.
+
+- {{{kbd(v l)}}} or {{{kbd(v L)}}} or short {{{kbd(l)}}} ::
+
+ Toggle Logbook mode. In Logbook mode, entries that were marked as
+ done while logging was on (see the variable ~org-log-done~) are
+ shown in the agenda, as are entries that have been clocked on that
+ day. When called with a {{{kbd(C-u)}}} prefix argument, show all
+ possible logbook entries, including state changes.
+
+- {{{kbd(r)}}}, {{{kbd(g)}}} ::
+
+ Recreate the agenda buffer, for example to reflect the changes after
+ modification of the timestamps of items.
+
+- {{{kbd(s)}}} ::
+
+ #+kindex: C-x C-s
+ #+findex: org-save-all-org-buffers
+ #+kindex: s
+ Save all Org buffers in the current Emacs session, and also the
+ locations of IDs.
+
+*** Remote editing
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+- {{{kbd(0--9)}}} ::
+
+ Digit argument.
+
+- {{{kbd(t)}}} ::
+
+ Change the TODO state of the item, both in the agenda and in the
+ original Org file.
+
+- {{{kbd(C-k)}}} ::
+
+ Delete the current agenda item along with the entire subtree
+ belonging to it in the original Org file.
+
+- {{{kbd(C-c C-w)}}} ::
+
+ Refile the entry at point.
+
+- {{{kbd(a)}}} ::
+
+ Archive the subtree corresponding to the entry at point using the
+ default archiving command set in ~org-archive-default-command~.
+
+- {{{kbd($)}}} ::
+
+ Archive the subtree corresponding to the current headline.
+
+- {{{kbd(C-c C-s)}}} ::
+
+ Schedule this item. With a prefix argument, remove the
+ scheduling timestamp
+
+- {{{kbd(C-c C-d)}}} ::
+
+ Set a deadline for this item. With a prefix argument, remove the
+ deadline.
+
+- {{{kbd(S-RIGHT)}}} ::
+
+ Change the timestamp associated with the current line by one day
+ into the future.
+
+- {{{kbd(S-LEFT)}}} ::
+
+ Change the timestamp associated with the current line by one day
+ into the past.
+
+- {{{kbd(I)}}} ::
+
+ Start the clock on the current item.
+
+- {{{kbd(O)}}} ::
+
+ Stop the previously started clock.
+
+- {{{kbd(X)}}} ::
+
+ Cancel the currently running clock.
+
+- {{{kbd(J)}}} ::
+
+ Jump to the running clock in another window.
+
+*** Quit and exit
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+- {{{kbd(q)}}} ::
+
+ Quit agenda, remove the agenda buffer.
+
+- {{{kbd(x)}}} ::
+
+ Exit agenda, remove the agenda buffer and all buffers loaded by
+ Emacs for the compilation of the agenda.
+
+** Custom Agenda Views
+:PROPERTIES:
+:DESCRIPTION: Defining special searches and views.
+:END:
+
+The first application of custom searches is the definition of keyboard
+shortcuts for frequently used searches, either creating an agenda
+buffer, or a sparse tree (the latter covering of course only the
+current buffer).
+
+Custom commands are configured in the variable
+~org-agenda-custom-commands~. You can customize this variable, for
+example by pressing {{{kbd(C)}}} from the agenda dispatcher (see [[*The
+Agenda Dispatcher]]). You can also directly set it with Emacs Lisp in
+the Emacs init file. The following example contains all valid agenda
+views:
+
+#+begin_src emacs-lisp
+(setq org-agenda-custom-commands
+ '(("w" todo "WAITING")
+ ("u" tags "+boss-urgent")
+ ("v" tags-todo "+boss-urgent")))
+#+end_src
+
+The initial string in each entry defines the keys you have to press
+after the dispatcher command in order to access the command. Usually
+this is just a single character. The second parameter is the search
+type, followed by the string or regular expression to be used for the
+matching. The example above will therefore define:
+
+- {{{kbd(w)}}} ::
+
+ as a global search for TODO entries with =WAITING= as the TODO
+ keyword.
+
+- {{{kbd(u)}}} ::
+
+ as a global tags search for headlines tagged =boss= but not
+ =urgent=.
+
+- {{{kbd(v)}}} ::
+
+ The same search, but limiting it to headlines that are also TODO
+ items.
+
+* Markup for Rich Contents
+:PROPERTIES:
+:DESCRIPTION: Compose beautiful documents.
+:ALT_TITLE: Markup
+:END:
+
+Org is primarily about organizing and searching through your
+plain-text notes. However, it also provides a lightweight yet robust
+markup language for rich text formatting and more. Used in
+conjunction with the export framework (see [[*Exporting]]), you can author
+beautiful documents in Org.
+
+** Paragraphs
+:PROPERTIES:
+:DESCRIPTION: The basic unit of text.
+:END:
+
+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 preserve the line breaks, indentation and blank lines in a region,
+but otherwise use normal formatting, you can use this construct, which
+can also be used to format poetry.
+
+#+begin_example
+,#+BEGIN_VERSE
+ Great clouds overhead
+ Tiny black birds rise and fall
+ Snow covers Emacs
+
+ ---AlexSchroeder
+,#+END_VERSE
+#+end_example
+
+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 documents like this:
+
+#+begin_example
+,#+BEGIN_QUOTE
+Everything should be made as simple as possible,
+but not any simpler ---Albert Einstein
+,#+END_QUOTE
+#+end_example
+
+If you would like to center some text, do it like this:
+
+#+begin_example
+,#+BEGIN_CENTER
+Everything should be made as simple as possible, \\
+but not any simpler
+,#+END_CENTER
+#+end_example
+
+** Emphasis and Monospace
+:PROPERTIES:
+:DESCRIPTION: Bold, italic, etc.
+:END:
+
+You can make words =*bold*=, =/italic/=, =_underlined_=, ==verbatim==
+and =~code~=, and, if you must, =+strike-through+=. Text in the code
+and verbatim string is not processed for Org specific syntax; it is
+exported verbatim.
+
+** Embedded LaTeX
+:PROPERTIES:
+:DESCRIPTION: LaTeX can be freely used inside Org documents.
+:END:
+
+For scientific notes which need to be able to contain mathematical
+symbols and the occasional formula, Org mode supports embedding LaTeX
+code into its files. You can directly use TeX-like syntax for special
+symbols, enter formulas and entire LaTeX environments.
+
+#+begin_example
+The radius of the sun is R_sun = 6.96 x 10^8 m. On the other hand,
+the radius of Alpha Centauri is R_{Alpha Centauri} = 1.28 x R_{sun}.
+
+\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
+
+** Literal examples
+:PROPERTIES:
+:DESCRIPTION: Source code examples with special formatting.
+:END:
+
+You can include literal examples that should not be subjected to
+markup. Such examples are typeset in monospace, so this is well
+suited for source code and similar examples.
+
+#+begin_example
+,#+BEGIN_EXAMPLE
+ Some example from a text file.
+,#+END_EXAMPLE
+#+end_example
+
+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:
+
+#+begin_example
+Here is an example
+ : Some example from a text file.
+#+end_example
+
+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.
+
+#+begin_example
+,#+BEGIN_SRC emacs-lisp
+ (defun org-xor (a b)
+ "Exclusive or."
+ (if a (not b) b))
+ ,#+END_SRC
+#+end_example
+
+To edit the example in a special buffer supporting this language, use
+{{{kbd(C-c ')}}} to both enter and leave the editing buffer.
+
+** Images
+:PROPERTIES:
+:DESCRIPTION: Display an image.
+:END:
+
+An image is a link to an image file that does not have a description
+part, for example
+
+: ./img/cat.jpg
+
+If you wish to define a caption for the image and maybe a label for
+internal cross references (see [[*Hyperlinks]]), make sure that the
+link is on a line by itself and precede it with =CAPTION= and =NAME=
+keywords as follows:
+
+#+begin_example
+,#+CAPTION: This is the caption for the next figure link (or table)
+,#+NAME: fig:SED-HR4049
+[[./img/a.jpg]]
+#+end_example
+
+** Creating Footnotes
+:PROPERTIES:
+:DESCRIPTION: Edit and read footnotes.
+:END:
+
+A footnote is defined in a paragraph that is started by a footnote
+marker in square brackets in column 0, no indentation allowed. The
+footnote reference is simply the marker in square brackets, inside
+text. For example:
+
+#+begin_example
+The Org homepage[fn:1] now looks a lot better than it used to.
+...
+[fn:1] The link is: https://orgmode.org
+#+end_example
+
+The following commands handle footnotes:
+
+- {{{kbd(C-c C-x f)}}} ::
+
+ The footnote action command. When point is on a footnote reference,
+ jump to the definition. When it is at a definition, jump to the
+ (first) reference. Otherwise, create a new footnote. When this
+ command is called with a prefix argument, a menu of additional
+ options including renumbering is offered.
+
+- {{{kbd(C-c C-c)}}} ::
+
+ Jump between definition and reference.
+
+* Exporting
+:PROPERTIES:
+:DESCRIPTION: Sharing and publishing notes.
+:END:
+
+Org can convert and export documents to a variety of other formats
+while retaining as much structure (see [[*Document Structure]]) and markup
+(see [[*Markup for Rich Contents]]) as possible.
+
+** The Export Dispatcher
+:PROPERTIES:
+:DESCRIPTION: The main interface.
+:END:
+
+The export dispatcher is the main interface for Org's exports.
+A hierarchical menu presents the currently configured export formats.
+Options are shown as easy toggle switches on the same screen.
+
+- {{{kbd(C-c C-e)}}} ::
+
+ Invokes the export dispatcher interface.
+
+Org exports the entire buffer by default. If the Org buffer has an
+active region, then Org exports just that region.
+
+** Export Settings
+:PROPERTIES:
+:DESCRIPTION: Common export settings.
+:END:
+
+The exporter recognizes special lines in the buffer which provide
+additional information. These lines may be put anywhere in the file:
+
+: #+TITLE: I'm in the Mood for Org
+
+Most proeminent export options include:
+
+| =TITLE= | the title to be shown |
+| =AUTHOR= | the author (default taken from ~user-full-name~) |
+| =DATE= | a date, fixed, or an Org timestamp |
+| =EMAIL= | email address (default from ~user-mail-address~) |
+| =LANGUAGE= | language code, e.g., =en= |
+
+Option keyword sets can be inserted from the export dispatcher (see
+[[*The Export Dispatcher]]) using the =Insert template= command by
+pressing {{{kbd(#)}}}.
+
+** Table of Contents
+:PROPERTIES:
+:DESCRIPTION: The if and where of the table of contents.
+:END:
+
+The table of contents includes all headlines in the document. Its
+depth is therefore the same as the headline levels in the file. If
+you need to use a different depth, or turn it off entirely, set the
+~org-export-with-toc~ variable accordingly. You can achieve the same
+on a per file basis, using the following =toc= item in =OPTIONS=
+keyword:
+
+#+begin_example
+,#+OPTIONS: toc:2 (only include two levels in TOC)
+,#+OPTIONS: toc:nil (no default TOC at all)
+#+end_example
+
+Org normally inserts the table of contents directly before the first
+headline of the file.
+
+** Include Files
+:PROPERTIES:
+:DESCRIPTION: Include additional files into a document.
+:END:
+
+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
+
+#+texinfo: @noindent
+The first parameter is the file name to include. The optional second
+parameter specifies the block type: =example=, =export= or =src=. The
+optional third parameter specifies the source code language to use for
+formatting the contents. This is relevant to both =export= and =src=
+block types.
+
+You can visit the included file with {{{kbd(C-c ')}}}.
+
+** Comment Lines
+:PROPERTIES:
+:DESCRIPTION: What will not be exported.
+:END:
+
+Lines starting with zero or more whitespace characters followed by one
+=#= and a whitespace are treated as comments and, as such, are not
+exported.
+
+Likewise, regions surrounded by =#+BEGIN_COMMENT= ... =#+END_COMMENT=
+are not exported.
+
+Finally, a =COMMENT= keyword at the beginning of an entry, but after
+any other keyword or priority cookie, comments out the entire subtree.
+The command below helps changing the comment status of a headline.
+
+- {{{kbd(C-c ;)}}} ::
+
+ Toggle the =COMMENT= keyword at the beginning of an entry.
+
+** ASCII/UTF-8 Export
+:PROPERTIES:
+:DESCRIPTION: Exporting to flat files with encoding.
+:END:
+
+ASCII export produces an output file containing only plain ASCII
+characters. This is the simplest and most direct text output. It
+does not contain any Org markup. UTF-8 export uses additional
+characters and symbols available in this encoding standards.
+
+#+attr_texinfo: :sep ,
+- {{{kbd(C-c C-e t a)}}}, {{{kbd(C-c C-e t u)}}} ::
+
+ Export as an ASCII file with a =.txt= extension. For =myfile.org=,
+ Org exports to =myfile.txt=, overwriting without warning. For
+ =myfile.txt=, Org exports to =myfile.txt.txt= in order to prevent
+ data loss.
+
+** HTML Export
+:PROPERTIES:
+:DESCRIPTION: Exporting to HTML.
+:END:
+
+Org mode contains an HTML exporter with extensive HTML formatting
+compatible with XHTML 1.0 strict standard.
+
+- {{{kbd(C-c C-e h h)}}} ::
+
+ Export as HTML file with a =.html= extension. For =myfile.org=, Org
+ exports to =myfile.html=, overwriting without warning. {{{kbd(C-c
+ C-e h o)}}} exports to HTML and opens it in a web browser.
+
+The HTML export back-end transforms =<= and =>= to =&lt;= and =&gt;=.
+To include raw HTML code in the Org file so the HTML export back-end
+can insert that HTML code in the output, use this inline syntax:
+=@@html:...@@=. For example:
+
+: @@html:<b>@@bold text@@html:</b>@@
+
+For larger raw HTML code blocks, use these HTML export code blocks:
+
+#+begin_example
+,#+HTML: Literal HTML code for export
+
+,#+BEGIN_EXPORT html
+ All lines between these markers are exported literally
+,#+END_EXPORT
+#+end_example
+
+** LaTeX Export
+:PROPERTIES:
+:DESCRIPTION: Exporting to @LaTeX{} and processing to PDF.
+:END:
+
+The LaTeX export back-end can handle complex documents, incorporate
+standard or custom LaTeX document classes, generate documents using
+alternate LaTeX engines, and produce fully linked PDF files with
+indexes, bibliographies, and tables of contents, destined for
+interactive online viewing or high-quality print publication.
+
+By default, the LaTeX output uses the /article/ class. You can change
+this by adding an option like =#+LATEX_CLASS: myclass= in your file.
+The class must be listed in ~org-latex-classes~.
+
+- {{{kbd(C-c C-e l l)}}} ::
+
+ Export to a LaTeX file with a =.tex= extension. For =myfile.org=,
+ Org exports to =myfile.tex=, overwriting without warning.
+
+- {{{kbd(C-c C-e l p)}}} ::
+
+ Export as LaTeX file and convert it to PDF file.
+
+- {{{kbd(C-c C-e l o)}}} ::
+
+ Export as LaTeX file and convert it to PDF, then open the PDF using
+ the default viewer.
+
+The LaTeX export back-end can insert any arbitrary LaTeX code, see
+[[*Embedded LaTeX]]. There are three ways to embed such code in the Org
+file and they all use different quoting syntax.
+
+Inserting in-line quoted with @ symbols:
+
+: Code embedded in-line @@latex:any arbitrary LaTeX code@@ in a paragraph.
+
+Inserting as one or more keyword lines in the Org file:
+
+: #+LATEX: any arbitrary LaTeX code
+
+Inserting as an export block in the Org file, where the back-end
+exports any code between begin and end markers:
+
+#+begin_example
+,#+BEGIN_EXPORT latex
+ any arbitrary LaTeX code
+,#+END_EXPORT
+#+end_example
+
+** iCalendar Export
+:PROPERTIES:
+:DESCRIPTION: Exporting to iCalendar.
+:END:
+
+A large part of Org mode's interoperability success is its ability to
+easily export to or import from external applications. The iCalendar
+export back-end takes calendar data from Org files and exports to the
+standard iCalendar format.
+
+- {{{kbd(C-c C-e c f)}}} ::
+
+ Create iCalendar entries from the current Org buffer and store them
+ in the same directory, using a file extension =.ics=.
+
+- {{{kbd(C-c C-e c c)}}} ::
+
+ Create a combined iCalendar file from Org files in
+ ~org-agenda-files~ and write it to
+ ~org-icalendar-combined-agenda-file~ file name.
+
+* Publishing
+:PROPERTIES:
+:DESCRIPTION: Create a web site of linked Org files.
+:END:
+
+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.
+
+For detailed instructions about setup, see the manual. Here is an
+example:
+
+#+begin_src emacs-lisp
+(setq org-publish-project-alist
+ '(("org"
+ :base-directory "~/org/"
+ :publishing-function org-html-publish-to-html
+ :publishing-directory "~/public_html"
+ :section-numbers nil
+ :with-toc nil
+ :html-head "<link rel=\"stylesheet\"
+ href=\"../other/mystyle.css\"
+ type=\"text/css\"/>")))
+#+end_src
+
+- {{{kbd(C-c C-e P x)}}} ::
+
+ Prompt for a specific project and publish all files that belong to
+ it.
+
+- {{{kbd(C-c C-e P p)}}} ::
+
+ Publish the project containing the current file.
+
+- {{{kbd(C-c C-e P f)}}} ::
+
+ Publish only the current file.
+
+- {{{kbd(C-c C-e P a)}}} ::
+
+ 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.
+
+* Working with Source Code
+:PROPERTIES:
+:DESCRIPTION: Export, evaluate, and tangle code blocks.
+:END:
+
+Org mode provides a number of features for working with source code,
+including editing of code blocks in their native major mode,
+evaluation of code blocks, tangling of code blocks, and exporting code
+blocks and their results in several formats.
+
+A source code block conforms to this structure:
+
+#+begin_example
+,#+NAME: <name>
+,#+BEGIN_SRC <language> <switches> <header arguments>
+ <body>
+,#+END_SRC
+#+end_example
+
+#+texinfo: @noindent
+where:
+
+- =<name>= is a string used to uniquely name the code block,
+
+- =<language>= specifies the language of the code block, e.g.,
+ =emacs-lisp=, =shell=, =R=, =python=, etc.,
+
+- =<switches>= can be used to control export of the code block,
+
+- =<header arguments>= can be used to control many aspects of code
+ block behavior as demonstrated below,
+
+- =<body>= contains the actual source code.
+
+Use {{{kbd(C-c ')}}} to edit the current code block. It opens a new
+major mode edit buffer containing the body of the source code block,
+ready for any edits. Use {{{kbd(C-c ')}}} again to close the buffer
+and return to the Org buffer.
+
+** Using header arguments
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+A header argument is specified with an initial colon followed by the
+argument's name in lowercase.
+
+Header arguments can be set in several ways; Org prioritizes them in
+case of overlaps or conflicts by giving local settings a higher
+priority.
+
+- System-wide header arguments ::
+
+ Those are specified by customizing ~org-babel-default-header-args~
+ variable, or, for a specific language {{{var(LANG)}}}
+ ~org-babel-default-header-args:LANG~.
+
+- Header arguments in properties ::
+
+ You can set them using =header-args= property (see [[*Properties]])---or
+ =header-args:LANG= for language {{{var(LANG)}}}. Header arguments
+ set through properties drawers apply at the sub-tree level on down.
+
+- Header arguments in code blocks ::
+
+ Header arguments are most commonly set at the source code block
+ level, on the =BEGIN_SRC= line:
+
+ #+begin_example
+ ,#+NAME: factorial
+ ,#+BEGIN_SRC haskell :results silent :exports code :var n=0
+ fac 0 = 1
+ fac n = n * fac (n-1)
+ ,#+END_SRC
+ #+end_example
+
+ Code block header arguments can span multiple lines using =HEADER=
+ keyword on each line.
+
+** Evaluating code blocks
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+Use {{{kbd(C-c C-c)}}} to evaluate the current code block and insert
+its results in the Org document. By default, evaluation is only
+turned on for =emacs-lisp= code blocks, however support exists for
+evaluating blocks in many languages. For a complete list of supported
+languages see the manual. The following shows a code block and its
+results.
+
+#+begin_example
+,#+BEGIN_SRC emacs-lisp
+ (+ 1 2 3 4)
+,#+END_SRC
+
+,#+RESULTS:
+: 10
+#+end_example
+
+The following syntax is used to pass arguments to code blocks using
+the =var= header argument.
+
+: :var NAME=ASSIGN
+
+#+texinfo: @noindent
+{{{var(NAME)}}} is the name of the variable bound in the code block
+body. {{{var(ASSIGN)}}} is a literal value, such as a string,
+a number, a reference to a table, a list, a literal example, another
+code block---with or without arguments---or the results of evaluating
+a code block.
+
+** Results of evaluation
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+How Org handles results of a code block execution depends on many
+header arguments working together. The primary determinant, however,
+is the =results= header argument. It controls the /collection/,
+/type/, /format/, and /handling/ of code block results.
+
+- Collection ::
+
+ How the results should be collected from the code block. You may
+ choose either =output= or =value= (the default).
+
+- Type ::
+
+ What result types to expect from the execution of the code block.
+ You may choose among =table=, =list=, =scalar=, and =file=. Org
+ tries to guess it if you do not provide it.
+
+- Format ::
+
+ How Org processes results. Some possible values are =code=,
+ =drawer=, =html=, =latex=, =link=, and =raw=.
+
+- Handling ::
+
+ How to insert the results once properly formatted. Allowed values
+ are =silent=, =replace= (the default), =append=, or =prepend=.
+
+Code blocks which output results to files---e.g.: graphs, diagrams and
+figures---can accept a =:file FILENAME= header argument, in which case
+the results are saved to the named file, and a link to the file is
+inserted into the buffer.
+
+** Exporting code blocks
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+It is possible to export the /code/ of code blocks, the /results/ of
+code block evaluation, /both/ the code and the results of code block
+evaluation, or /none/. Org defaults to exporting /code/ for most
+languages.
+
+The =exports= header argument is to specify if that part of the Org
+file is exported to, say, HTML or LaTeX formats. It can be set to
+either =code=, =results=, =both= or =none=.
+
+** Extracting source code
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+Use {{{kbd(C-c C-v t)}}} to create pure source code files by
+extracting code from source blocks in the current buffer. This is
+referred to as "tangling"---a term adopted from the literate
+programming community. During tangling of code blocks their bodies
+are expanded using ~org-babel-expand-src-block~, which can expand both
+variable and "Noweb" style references. In order to tangle a code
+block it must have a =tangle= header argument, see the manual for
+details.
+
+* Miscellaneous
+:PROPERTIES:
+:DESCRIPTION: All the rest which did not fit elsewhere.
+:END:
+
+** Completion
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+Org has in-buffer completions with {{{kbd(M-TAB)}}}. No minibuffer is
+involved. Type one or more letters and invoke the hot key to complete
+the text in-place.
+
+For example, this command will complete TeX symbols after =\=, TODO
+keywords at the beginning of a headline, and tags after =:= in
+a headline.
+
+
+** Structure Templates
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+To quickly insert empty structural blocks, such as =#+BEGIN_SRC=
+... =#+END_SRC=, or to wrap existing text in such a block, use
+
+- {{{kbd(C-c C-\,)}}} ::
+
+ Prompt for a type of block structure, and insert the block at point.
+ If the region is active, it is wrapped in the block.
+
+** Clean view
+:PROPERTIES:
+:UNNUMBERED: notoc
+:END:
+
+Org's default outline with stars and no indents can become too
+cluttered for short documents. For /book-like/ long documents, the
+effect is not as noticeable. Org provides an alternate stars and
+indentation scheme, as shown on the right in the following table. It
+uses only one star and indents text to line with the heading:
+
+#+begin_example
+,* Top level headline | * Top level headline
+,** Second level | * Second level
+,*** Third level | * Third level
+ some text | some text
+,*** Third level | * Third level
+ more text | more text
+,* Another top level headline | * Another top level headline
+#+end_example
+
+This kind of view can be achieved dynamically at display time using
+Org Indent mode ({{{kbd(M-x org-indent-mode RET)}}}), which prepends
+intangible space to each line. 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 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 by helping to indent (with {{{kbd(TAB)}}}) text below
+each headline, by hiding leading stars, and by only using levels 1, 3,
+etc to get two characters indentation for each level. To get this
+support in a file, use
+
+: #+STARTUP: hidestars odd
+
+* Export Setup :noexport:
+
+#+setupfile: doc-setup.org
+
+#+export_file_name: orgguide.texi
+
+#+texinfo_dir_category: Emacs editing modes
+#+texinfo_dir_title: Org Guide: (orgguide)
+#+texinfo_dir_desc: Abbreviated Org mode manual
+
+* Footnotes
+
+[fn:1] See the variable ~org-special-ctrl-a/e~ to configure special
+behavior of {{{kbd(C-a)}}} and {{{kbd(C-e)}}} in headlines.
+
+[fn:2] If you do not want the line to be split, customize the variable
+~org-M-RET-may-split-line~.
+
+[fn:3] See also the variable ~org-show-context-detail~ to decide how
+much context is shown around each match.
+
+[fn:4] The corresponding in-buffer setting is =#+STARTUP: logdone=.
+
+[fn:5] The corresponding in-buffer setting is =#+STARTUP:
+logenotedone=.
+
+[fn:6] As with all these in-buffer settings, pressing {{{kbd(C-c
+C-c)}}} activates any changes in the line.
+
+[fn:7] This is quite different from what is normally understood by
+/scheduling a meeting/, which is done in Org by just inserting a time
+stamp without keyword.
+
+[fn:8] It will still be listed on that date after it has been marked
+as done. If you do not like this, set the variable
+~org-agenda-skip-scheduled-if-done~.
+
+[fn:9] Using capture templates, you get finer control over capture
+locations. See [[*Capture templates]].
+
+[fn:10] If you need one of these sequences literally, escape the =%=
+with a backslash.