(Fchar_table_range): Fix typos in docstring.
[emacs.git] / man / org.texi
bloba131f5aadb3815cf582a7b19c2e44715c46514c3
1 \input texinfo
2 @c %**start of header
3 @c @setfilename org
4 @setfilename ../info/org
5 @settitle Org Mode Manual
7 @set VERSION 3.08
8 @set DATE April 2005
10 @dircategory Emacs
11 @direntry
12 * Org Mode: (org).      Outline-based notes management and organizer 
13 @end direntry
15 @c Version and Contact Info
16 @set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/org/,maintainers webpage}
17 @set MAINTAINER Carsten Dominik
18 @set MAINTAINEREMAIL @email{dominik@@science.uva.nl}
19 @set MAINTAINERCONTACT @uref{mailto:dominik@@science.uva.nl,contact the maintainer}
20 @c %**end of header
21 @finalout
23 @c Macro definitions
25 @c Subheadings inside a table.  Need a difference between info and the rest.
26 @macro tsubheading{text}
27 @ifinfo
28 @subsubheading \text\
29 @end ifinfo
30 @ifnotinfo
31 @item @b{\text\}
32 @end ifnotinfo
33 @end macro
35 @copying
36 This manual is for Org-mode (version @value{VERSION}).
38 Copyright @copyright{} 2004, 2005 Free Software Foundation
40 @quotation
41 Permission is granted to copy, distribute and/or modify this document
42 under the terms of the GNU Free Documentation License, Version 1.1 or
43 any later version published by the Free Software Foundation; with no
44 Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
45 and with the Back-Cover Texts as in (a) below.  A copy of the
46 license is included in the section entitled ``GNU Free Documentation
47 License.''
49 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
50 this GNU Manual, like GNU software.  Copies published by the Free
51 Software Foundation raise funds for GNU development.''
52 @end quotation
53 @end copying
55 @titlepage
56 @title Org Mode Manual
58 @subtitle Release @value{VERSION}
59 @author by Carsten Dominik
61 @c The following two commands start the copyright page.
62 @page
63 @vskip 0pt plus 1filll
64 @insertcopying
65 @end titlepage
67 @c Output the table of contents at the beginning.
68 @contents
70 @ifnottex
71 @node Top, Introduction, (dir), (dir)
72 @top Org Mode Manual
74 @insertcopying
75 @end ifnottex
77 @menu
78 * Introduction::                Getting started
79 * Document Structure::          A tree works like your brain
80 * Tables::                      Pure magic for quick formatting
81 * Hyperlinks::                  Notes in context
82 * TODO items::                  Every tree branch can be a TODO item
83 * Timestamps::                  Assign date and time to items
84 * Timeline and Agenda::         Use time-stamped items to produce an agenda
85 * Exporting::                   Sharing and publishing of notes
86 * Miscellaneous::               All the rest which did not fit elsewhere
87 * Index::                       The fast road to specific information
88 * Key Index::                   Key bindings and where they are described
90 @detailmenu
91  --- The Detailed Node Listing ---
93 Introduction
95 * Summary::                     Brief summary of what Org-mode does
96 * Installation and Activation::  How to install Org-mode
97 * Feedback::                    Bug reportes, ideas, patches etc.
99 Document Structure
101 * Outlines::                    Org-mode is based on outline-mode
102 * Headlines::                   How to typeset org-tree headlines
103 * Visibility cycling::          Show ad hide, much simplified
104 * Motion::                      Jumping to other headlines
105 * Structure editing::           Changing sequence and level of headlines
106 * Sparse trees::                Matches embedded in context
108 Tables
110 * Built-in table editor::       Simple tables
111 * table.el::                    Complex tables
112 * orgtbl-mode::                 The table editor as minor mode
114 Hyperlinks
116 * Links::                       URL-like links to the world
117 * Remember::                    Org-trees store quick notes
119 TODO items
121 * TODO basics::                 Marking and displaying TODO entries
122 * TODO extensions::             Workflow and assignments
123 * Priorities::                  Some things are more important than others
125 Extended use of TODO keywords
127 * Workflow states::             From TODO to DONE in steps
128 * TODO types::                  I do this, Fred the rest
129 * Per file keywords::           Different files, different requirements
131 Timestamps
133 * Time stamps::                 Assigning a time to a tree entry
134 * Creating timestamps::         Commands which insert timestamps
136 Timeline and Agenda
138 * Timeline::                    Time-sorted view for single file
139 * Agenda::                      Your weekly planner
140 * Agenda commands::             Remote editing of org trees
141 * Calendar/Diary integration::  Integrating Anniversaries and more
143 Calendar/Diary integration
145 * Diary to agenda::             Agenda incorporates the diary
146 * Agenda to diary::             Diary incorporates the agenda
148 Exporting
150 * Export commands::             Commands which export and display
151 * HTML formatting::             Interpretation of the buffer content
152 * Export options::              How to influence exports
153 * Comment lines::               Lines which will not be exported
155 Miscellaneous
157 * Completion::                  M-TAB knows what you need
158 * Customization::               Adapting Org-mode to your taste
159 * Tips and Tricks::             An author-imposed FAQ, sort of
160 * Interaction::                 Other Emacs packages
161 * Acknowledgments::             These people provided feedback and more
162 * Bugs::                        Things which do not work perfectly
164 @end detailmenu
165 @end menu
167 @node Introduction, Document Structure, Top, Top
168 @chapter Introduction
169 @cindex introduction
171 @menu
172 * Summary::                     Brief summary of what Org-mode does
173 * Installation and Activation::  How to install Org-mode
174 * Feedback::                    Bug reportes, ideas, patches etc.
175 @end menu
177 @node Summary, Installation and Activation, Introduction, Introduction
178 @section Summary
179 @cindex summary
181 Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
182 project planning with a fast and effective plain-text system.
184 Org-mode develops organizational tasks around NOTES files that contain
185 information about projects as plain text.  Org-mode is implemented on
186 top of outline-mode, which makes it possible to keep the content of
187 large files well structured.  Visibility cycling and structure editing
188 help to work with the tree.  Tables are easily created with a built-in
189 table editor.  Org-mode supports ToDo items, deadlines, time stamps,
190 and scheduling.  It dynamically compiles entries into an agenda that
191 utilizes and smoothly integrates much of the Emacs calendar and diary.
192 Plain text URL-like links connect to websites, emails, usenet
193 messages, BBDB entries, and any files related to the projects.  For
194 printing and sharing of notes, an Org-mode file can be exported as a
195 structured ASCII file, or as HTML.
197 Org-mode keeps simple things simple.  Not every outline branch needs
198 to be an action item, not every action item needs to have priority or
199 scheduling information associated with it.  Org-mode can be used on
200 different levels and in different ways, for example
202 @example
203 @r{@bullet{} as an outline extension with visibility cycling and structure editing}
204 @r{@bullet{} as an ASCII system and table editor to take structured notes}
205 @r{@bullet{} as a simple hypertext system, with HTML export}
206 @r{@bullet{} as a TODO list editor}
207 @r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
208 @end example
210 The Org-mode table editor can be integrated into any major mode by
211 activating the minor Orgtbl-mode.
213 There is a website for Org-mode which provides links to the newest
214 version of Org-mode, as well as additional information, screen shots
215 and example files.  This page is located at
216 @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
218 @page
220 @node Installation and Activation, Feedback, Summary, Introduction
221 @section Installation and Activation
222 @cindex installation
223 @cindex autoload
224 @cindex global keybindings
225 @cindex keybindings, global
227 The instructions below assume that you have downloaded Org-mode from
228 the web.  If Org-mode is part of the Emacs distribution or an XEmacs
229 package, you only need to add to @file{.emacs} the last three Lisp
230 lines below - all the rest will be taken care of automatically.
232 Byte-compile @file{org.el} and put it on your load path.  If you'd
233 like to use the Info documentation, copy the file @file{org} into the
234 directory containing info files and run the command @code{install-info
235 org}.
237 Then copy the following lines into @file{.emacs}.  The last two lines
238 define @emph{global} keys for the commands @command{org-store-link}
239 and @command{org-agenda} - please choose suitable keys yourself.
241 @lisp
242 ;; These lines only if org-mode is not part of the X/Emacs distribution.
243 (autoload 'org-mode "org" "Org mode" t)
244 (autoload 'org-diary "org" "Diary entries from Org mode")
245 (autoload 'org-agenda "org" "Multi-file agenda from Org mode" t)
246 (autoload 'org-store-link "org" "Store a link to the current location" t)
247 (autoload 'orgtbl-mode "org" "Org tables as a minor mode" t)
248 (autoload 'turn-on-orgtbl "org" "Org tables as a minor mode")
250 ;; The following lines are always needed.  Choose your own keys.
251 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
252 (define-key global-map "\C-cl" 'org-store-link)
253 (define-key global-map "\C-ca" 'org-agenda)
254 @end lisp
256 @cindex org-mode, turning on
257 @noindent
258 This will put all files with extension @samp{.org} into Org-mode.  As
259 an alternative, make the first line of a file look like this:
261 @example
262 MY PROJECTS    -*- mode: org; -*-
263 @end example
265 @noindent which will select Org-mode for this buffer no matter what
266 the file's name is.  See also the variable
267 @code{org-insert-mode-line-in-empty-file'}. 
269 @node Feedback,  , Installation and Activation, Introduction
270 @section Feedback
271 @cindex feedback
272 @cindex bug reports
273 @cindex maintainer
274 @cindex author
276 If you find problems with Org-mode, or if you have questions, remarks,
277 or ideas about it, please contact the maintainer Carsten Dominik at
278 @value{MAINTAINEREMAIL}.
280 For bug reports, please provide as much information as possible,
281 including the version information of Emacs (@kbd{C-h v emacs-version
282 @key{RET}}) and Org-mode (@kbd{M-x org-version}), as well as the
283 Org-mode related setup in @file{.emacs}.  If an error occurs, a
284 traceback can be very useful.  Often a small example file helps, along
285 with clear information about:
286 @enumerate
287 @item What exactly did you do?
288 @item What did you expect to happen?
289 @item What happened instead?
290 @end enumerate
291 @noindent Thanks for helping to improve this mode.
294 @node Document Structure, Tables, Introduction, Top
295 @chapter Document Structure
296 @cindex document structure
297 @cindex structure of document
299 Org-mode is based on outline mode and provides flexible commands to
300 edit the structure of the document.
302 @menu
303 * Outlines::                    Org-mode is based on outline-mode
304 * Headlines::                   How to typeset org-tree headlines
305 * Visibility cycling::          Show ad hide, much simplified
306 * Motion::                      Jumping to other headlines
307 * Structure editing::           Changing sequence and level of headlines
308 * Sparse trees::                Matches embedded in context
309 @end menu
311 @node Outlines, Headlines, Document Structure, Document Structure
312 @section Outlines
313 @cindex outlines
314 @cindex outline-mode
316 Org-mode is implemented on top of outline-mode.  Outlines allow to
317 organize a document in a hierarchical structure, which (at least for
318 me) is the best representation of notes and thoughts.  Overview over
319 this structure is achieved by folding (hiding) large parts of the
320 document to show only the general document structure and the parts
321 currently being worked on.  Org-mode greatly simplifies the use of
322 outlines by compressing the entire show/hide functionality into a
323 single command @command{org-cycle}, which is bound to the @key{TAB}
324 key.
326 @node Headlines, Visibility cycling, Outlines, Document Structure
327 @section Headlines
328 @cindex headlines
329 @cindex outline tree
331 Headlines define the structure of an outline tree.  The Headlines in
332 Org-mode start with one or more stars, for example
334 @example
335 * Top level headline
336 ** Second level
337 *** 3rd level
338     some text
339 *** 3rd level
340     more text
341 * Another top level headline
342 @end example
344 @node Visibility cycling, Motion, Headlines, Document Structure
345 @section Visibility cycling
346 @cindex visibility cycling
347 @cindex trees, visibility
349 Outlines make it possible to hide parts of the text in the buffer.
350 Org-mode uses a single command bound to the @key{TAB} key to change
351 the visibility in the buffer.
353 @cindex subtree visibility states
354 @cindex folded, subtree visibility state
355 @cindex children, subtree visibility state
356 @cindex subtree, subtree visibility state
357 @table @kbd
358 @kindex @key{TAB}
359 @item @key{TAB}
360 Rotate current subtree between the states
361 @example
362 ,-> FOLDED -> CHILDREN -> SUBTREE --.
363 '-----------------------------------'
364 @end example
365 At the beginning of the buffer (or when called with @kbd{C-u}), this does
366 the same as the command @kbd{S-@key{TAB}} below.
368 @cindex global visibility states
369 @cindex overview, global visibility state
370 @cindex contents, global visibility state
371 @cindex show all, global visibility state
372 @kindex S-@key{TAB}
373 @item S-@key{TAB}
374 Rotate the entire buffer between the states
375 @example
376 ,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
377 '--------------------------------------'
378 @end example
379 Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field.
381 @cindex show all, command
382 @kindex C-c C-a
383 @item C-c C-a
384 Show all.
385 @end table
387 When Emacs firsts visits a Org-mode file, the global state is set to
388 OVERVIEW, i.e. only the top level headlines are visible.  This can be
389 configured through the variable @code{org-startup-folded}, or on a
390 per-file basis by adding one of the following lines anywhere in the
391 buffer:
393 @example
394 #+STARTUP: fold
395 #+STARTUP: nofold
396 #+STARTUP: content
397 @end example
399 @node Motion, Structure editing, Visibility cycling, Document Structure
400 @section Motion
401 @cindex motion, between headlines
402 @cindex jumping, to headlines
403 The following commands jump to other headlines in the buffer.
405 @table @kbd
406 @kindex C-c C-n
407 @item C-c C-n
408 Next heading.
409 @kindex C-c C-p
410 @item C-c C-p
411 Previous heading.
412 @kindex C-c C-f
413 @item C-c C-f
414 Next heading same level.
415 @kindex C-c C-b
416 @item C-c C-b
417 Previous heading same level.
418 @kindex C-c C-u
419 @item C-c C-u
420 Backward to higher level heading.
421 @kindex C-c C-j
422 @item C-c C-j
423 Jump to a different place without changing the current outline
424 visibility.  Shows the document structure in a temporary buffer, where
425 you can use visibility cycling (@key{TAB}) to find your destination.
426 After pressing @key{RET}, the cursor moves to the selected location in
427 the original buffer, and the headings hierarchy above it is made
428 visible.
429 @end table
431 @node Structure editing, Sparse trees, Motion, Document Structure
432 @section Structure editing
433 @cindex structure editing
434 @cindex headline, promotion and demotion
435 @cindex promotion, of subtrees
436 @cindex demotion, of subtrees
437 @cindex subtree, cut and paste
438 @cindex pasting, subtrees
439 @cindex cutting, subtrees
440 @cindex copying, subtrees
442 @table @kbd
443 @kindex M-@key{RET}
444 @item M-@key{RET}
445 Insert new heading with same level as current
446 @kindex M-S-@key{RET}
447 @item M-S-@key{RET}
448 Insert new TODO entry with same level as current heading.
449 @kindex M-@key{left}
450 @item M-@key{left}
451 Promote current heading by one level
452 @kindex M-@key{right}
453 @item M-@key{right}
454 Demote current heading by one level
455 @kindex M-S-@key{left}
456 @item M-S-@key{left}
457 Promote the current subtree by one level
458 @kindex M-S-@key{right}
459 @item M-S-@key{right}
460 Demote the current subtree by one level
461 @kindex M-S-@key{up}
462 @item M-S-@key{up}
463 Move subtree up (swap with previous subtree of same level)
464 @kindex M-S-@key{down}
465 @item M-S-@key{down}
466 Move subtree down (swap with next subtree of same level)
467 @kindex C-c C-h C-w
468 @item C-c C-h C-w
469 Kill subtree, i.e. remove it from buffer but save in kill ring.
470 @kindex C-c C-h M-w
471 @item C-c C-h M-w
472 Copy subtree to kill ring.
473 @kindex C-c C-h C-y
474 @item C-c C-h C-y
475 Yank subtree from kill ring.  This does modify the level of the subtree to
476 make sure the tree fits in nicely at the yank position.  The yank
477 level can also be specified with a prefix arg, or by yanking after a
478 headline marker like @samp{****}.
479 @end table
481 @cindex region, active
482 @cindex active region
483 @cindex transient-mark-mode
484 When there is an active region (transient-mark-mode), promotion and
485 demotion work on all headlines in the region.  To select a region of
486 headlines, it is best to place both point and mark at the beginning of a
487 line, mark at the beginning of the first headline, and point at the line
488 just after the last headline to change.  Note that when the cursor is
489 inside a table (@pxref{Tables}), the Meta-Cursor keys have different
490 functionality.
492 @node Sparse trees,  , Structure editing, Document Structure
493 @section Sparse trees
494 @cindex sparse trees
495 @cindex trees, sparse
496 @cindex folding, sparse trees
497 @cindex occur, command
499 An important feature of Org-mode is the ability to construct
500 @emph{sparse trees} for selected information in an outline tree.  A
501 sparse tree means that the entire document is folded as much as
502 possible, but the selected information is made visible along with the
503 headline structure above it.  Just try it out and you will see
504 immediately how it works.
506 Org-mode contains several commands creating such trees.  The most
507 basic one is @command{org-occur}:
509 @table @kbd
510 @kindex C-c /
511 @item C-c /
512 Occur.  Prompts for a regexp and shows a sparse tree with all matches.
513 If the match is in a headline, the headline is made visible.  If the
514 match is in the body of an entry, headline and body are made visible.
515 In order to provide minimal context, also the full hierarchy of
516 headlines above the match is shown, as well as the headline following
517 the match.
518 @end table
520 Other commands are using this feature as well.  For example @kbd{C-c
521 C-v} creates a sparse TODO tree (@pxref{TODO basics}).
523 @kindex C-c C-x v
524 @cindex printing sparse trees
525 @cindex visible text, printing
526 To print a sparse tree, you can use the Emacs command
527 @code{ps-print-buffer-with-faces} which does not print invisible parts
528 of the document @footnote{this does not work under XEmacs, because
529 XEmacs uses selective display for outlining, not text properties}.
530 Or you can use the command @kbd{C-c C-x v} to copy the visible part of
531 the document to another file (extension @file{.txt}) which then can be
532 printed in any desired way.
534 @node Tables, Hyperlinks, Document Structure, Top
535 @chapter Tables
536 @cindex tables
538 For taking notes, tables are an essential tool because they allow
539 immediate and clear structuring of data.  Org-mode has a very fast and
540 intuitive table editor built-in.  More complex tables can be created
541 with the Emacs table.el package.
543 @menu
544 * Built-in table editor::       Simple tables
545 * table.el::                    Complex tables
546 * orgtbl-mode::                 The table editor as minor mode
547 @end menu
549 @node Built-in table editor, table.el, Tables, Tables
550 @section The built-in table editor
551 @cindex table editor, builtin
553 Org-mode makes it easy to format tables in plain ASCII.  Any line with
554 @samp{|} as the first non-white character is considered part of a
555 table.  @samp{|} is also the column separator.  A table might look
556 like this:
558 @example
559 | Name  | Phone | Age |
560 |-------+-------+-----|
561 | Peter |  1234 |  17 |
562 | Anna  |  4321 |  25 |
563 @end example
565 A table is re-aligned automatically each time you press @key{TAB} or
566 @key{RET} inside the table.  @key{TAB} also moves to the next field
567 (@key{RET} to the next row) and creates new table rows at the end of the
568 table or before horizontal lines.  The indentation of the table is set
569 by the first line.  Any line starting with @samp{|-} is considered as a
570 horizontal separator line and will be expanded on the next re-align to
571 span the whole table width.  So, to create the above table, you would
572 only type
574 @example
575 |Name|Phone|Age
577 @end example
579 @noindent and then press @key{TAB} to align the table and start filling in
580 fields.
582 @table @kbd
583 @tsubheading{Creation and conversion}
584 @kindex C-c C-c
585 @item C-c C-c
586 Recognize @file{table.el} table.  Works when the cursor is in a
587 table.el table
589 @kindex C-c C-c
590 @item C-c C-c
591 Convert region to table.  Works when the cursor is not in an existing
592 table, and when there is a region defined.  If every line contains at
593 least one TAB character, the function assumes that the material is tab
594 separated.  If not, lines are split at whitespace into fields.  You
595 can use a prefix argument to indicate how many consecutive spaces are
596 at least required to indicate a field separator (default: just one).
598 @item M-x org-table-create
599 Creates an empty Org-mode table.  However, it is much easier to just
600 start typing, like @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}
602 @tsubheading{Re-aligning and field motion}
603 @kindex C-c C-c
604 @item C-c C-c
605 Re-align the table without moving the cursor.
607 @kindex @key{TAB}
608 @item @key{TAB}
609 Re-align the table, move to the next field.  Creates a new row if
610 necessary.
612 @kindex S-@key{TAB}
613 @item S-@key{TAB}
614 Move to previous field.
616 @kindex @key{RET}
617 @item @key{RET}
618 Re-align the table and move down to next row.  Creates a new row if
619 necessary.  At the beginning or end of a line, @key{RET} still does
620 NEWLINE, so it can be used to split a table.
622 @tsubheading{Column and row editing}
623 @kindex M-@key{left}
624 @kindex M-@key{right}
625 @item M-@key{left}
626 @itemx M-@key{right}
627 Move the current column left/right
629 @kindex M-S-@key{left}
630 @item M-S-@key{left}
631 Kill the current column.
633 @kindex M-S-@key{right}
634 @item M-S-@key{right}
635 Insert a new column to the left of the cursor position.
637 @kindex M-@key{up}
638 @kindex M-@key{down}
639 @item M-@key{up}
640 @itemx M-@key{down}
641 Move the current row up/down
643 @kindex M-S-@key{up}
644 @item M-S-@key{up}
645 Kill the current row or horizontal line.
647 @kindex M-S-@key{down}
648 @item M-S-@key{down}
649 Insert a new row above (with arg: below) the current row.
651 @kindex C-c -
652 @item C-c -
653 Insert a horizontal line below current row. With prefix arg, line is
654 created above the current line.
656 @tsubheading{Regions}
657 @kindex C-c C-h M-w
658 @item C-c C-h M-w
659 Copy an rectangular region from a table to a special clipboard.  Point
660 and mark determine edge fields of the rectangle.  The process ignores
661 horizontal separator lines.
662 @kindex C-c C-h C-w
663 @item C-c C-h C-w
664 Copy an rectangular region from a table to a special clipboard, and
665 blank all fields in the rectangle.
666 @kindex C-c C-h C-y
667 @item C-c C-h C-y
668 Paste a rectangular region into a table.
669 The upper right corner ends up in the current field.  All involved fields
670 will be overwritten.  If the rectangle does not fit into the present table,
671 the table is enlarged as needed.  The process ignores horizontal separator
672 lines.
673 @kindex C-c C-q
674 @item C-c C-q
675 Wrap several fields in a column like a paragraph.  If there is an active
676 region, and both point and mark are in the same column, the text in the
677 column is wrapped to minimum width for the given number of lines.  A
678 prefix ARG may be used to change the number of desired lines.  If there
679 is no region, the current field is split at the cursor position and the
680 text fragment to the right of the cursor is prepended to the field one
681 line down. If there is no region, but you specify a prefix ARG, the
682 current field gets blank, and the content is appended to the field
683 above.
685 @tsubheading{Calculations}
686 @kindex C-c ?
687 @item C-c ?
688 Which table column is the cursor in?  Displays number >0 in echo
689 area. 
691 @cindex region, active
692 @cindex active region
693 @cindex transient-mark-mode
694 @kindex C-c +
695 @item C-c +
696 Sum the numbers in the current column, or in the rectangle defined by
697 the active region.  The result is displayed in the echo area and can
698 be inserted with @kbd{C-y}.
700 @kindex S-@key{RET}         
701 @item S-@key{RET}         
702 When current field is empty, copy from first non-empty field above.
703 When not empty, copy current field down to next row and move cursor
704 along with it.  Depending on the variable
705 @code{org-table-copy-increment}, integer field values will be
706 incremented during copy.
708 @cindex formula, in tables
709 @cindex calculations, in tables
710 @kindex C-c =
711 @item C-c =
712 Replace current field with the result of a formula.  Requires the
713 Emacs calc package.  The formula can access the current field with
714 @samp{$}, and the other fields in the current row
715 with @samp{$1}, @samp{$2},...  For details see the documentation of the
716 command @command{org-table-eval-formula}.
718 @tsubheading{Miscellaneous}
719 @kindex C-c |
720 @item C-c |
721 Toggle the visibility of vertical lines in tables.  The lines are
722 still there, only made invisible with a text property.  Any @samp{|}
723 added by hand will become invisible on the next align.
724 Typographically it is good style to have no vertical lines in tables.
726 @item M-x org-table-import
727 Import a file as a table.  The table should be TAB- or whitespace
728 separated.  Useful for example to import an Excel table or data from a
729 database, because these programs generally can write TAB-separated text
730 files.  This command works by inserting the file into the buffer and
731 then converting the region to a table.  Any prefix argument is passed on
732 to the converter, which uses it to determine the separator.
734 @item M-x org-table-export
735 Export the table as a TAB-separated file.  Useful for data exchange with
736 for example Excel or database programs.
738 @end table
740 If you don't like the automatic table editor because it gets into your
741 way in lines which you would like to start with @samp{|}, you can turn
742 it off with
743 @lisp
744 (setq org-enable-table-editor nil)
745 @end lisp
746 @noindent The only table command which then still works is
747 @kbd{C-c C-c} to do a manual re-align.
749 @node table.el, orgtbl-mode, Built-in table editor, Tables
750 @section The @file{table.el} package
751 @kindex C-c C-c
752 @cindex table editor, table.el
753 @cindex @file{table.el}
755 More complex ASCII tables (with automatic line wrapping, column- and
756 row-spanning, and alignment) can be created using the Emacs table
757 package by Takaaki Ota (@uref{http://sourceforge.net/projects/table}).
758 When @key{TAB} or @kbd{C-c C-c} is pressed in such a table, Org-mode
759 will call @command{table-recognize-table} and move the cursor into the
760 table.  Inside a table, the keymap of Org-mode is inactive.  In order
761 to execute org-related commands, leave the table.
763 @table @kbd
764 @kindex C-c #
765 @item C-c #
766 Insert a table.el table.  If there is already a table at point, this
767 command converts it between the table.el format and the Org-mode
768 format.  See the documentation string of the command
769 @code{org-convert-table} for the restrictions under which this is
770 possible.
771 @end table
773 @node orgtbl-mode,  , table.el, Tables
774 @section The Orgtbl minor mode
775 @cindex orgtbl-mode
776 @cindex Minor mode for tables
778 If you like the intuitive way the Org-mode table editor works, you
779 might want to use it also in other modes like text-mode or mail-mode.
780 The minor mode Orgtbl-mode makes this possible.  You can always toggle
781 the mode with @kbd{M-x orgtbl-mode}.  To turn it on by default, for
782 example in mail mode, use
783 @lisp
784 (add-hook 'mail-mode-hook 'turn-on-orgtbl)
785 @end lisp
787 @node Hyperlinks, TODO items, Tables, Top
788 @chapter Hyperlinks
789 @cindex hyperlinks
791 Just like HMTL, Org-mode provides links to other files, usenet
792 articles, emails and much more.
794 @menu
795 * Links::                       URL-like links to the world
796 * Remember::                    Org-trees store quick notes
797 @end menu
799 @node Links, Remember, Hyperlinks, Hyperlinks
800 @section Links
801 @cindex links
802 @cindex GNUS links
803 @cindex BBDB links
804 @cindex VM links
805 @cindex RMAIL links
806 @cindex WANDERLUST links
807 @cindex USENET links
808 @cindex SHELL links
810 Org-mode supports links to files, websites, usenet and email messages;
811 and BBDB database entries.  Links are just plain-text URL-like locators.
812 The following list shows examples for each link type.
814 @example
815 http://www.astro.uva.nl/~dominik         @r{on the web}
816 file:/home/dominik/images/jupiter.jpg    @r{file, absolute path}
817 file:papers/last.pdf                     @r{file, relative path}
818 file:~/code/main.c:255                   @r{file, with line number}
819 news:comp.emacs                          @r{Usenet link}
820 mailto:adent@@galaxy.net                  @r{Mail link}
821 vm:folder                                @r{VM folder link}
822 vm:folder#id                             @r{VM message link}
823 vm://myself@@some.where.org/folder#id     @r{VM on remote machine}
824 wl:folder                                @r{WANDERLUST folder link}
825 wl:folder#id                             @r{WANDERLUST message link}
826 rmail:folder                             @r{RMAIL folder link}
827 rmail:folder#id                          @r{RMAIL message link}
828 gnus:group                               @r{GNUS group link}
829 gnus:group#id                            @r{GNUS article link}
830 bbdb:Richard Stallman                    @r{BBDB link}
831 shell:ls *.org                           @r{A shell command}
832 @end example
834 A link may contain space characters and is terminated by the end of
835 the line or, in tables, by the end of the table field.  Therefore,
836 outside of tables there can be only one link per line (but see the
837 variable @code{org-allow-space-in-links}).
839 @cindex storing links
840 @table @kbd
841 @kindex C-c l
842 @item C-c l
843 Store a link to the current location.  This is a @emph{global} command
844 which can be used in any buffer to create a link.  The link will be
845 stored for later insertion into an Org-mode buffer (see below).  For VM,
846 RMAIL, WANDERLUST, GNUS and BBDB buffers, the link will point to the
847 current article/entry.  For W3 and W3M buffer, the link goes to the
848 current URL.  For any other files, the link will just point to the file.
849 The key binding @kbd{C-c l} is only a suggestion - see
850 @ref{Installation and Activation}.
852 @kindex C-c C-l
853 @item C-c C-l
854 Insert a link.  This prompts for a link to be inserted into the
855 buffer.  You can just type a link, using one of the link type prefixes
856 mentioned in the examples above.  Through completion, all links stored
857 during the current session can be accessed.  When called with prefix
858 arg, you can use file name completion to enter a file link.  Note that
859 you don't have to use this command to insert a link.  Links in
860 Org-mode are plain text, and you can type or paste them straight into
861 the buffer.
863 @cindex inserting links
864 @kindex C-c C-o
865 @item C-c C-o
866 Open link at point.  This will launch a web browser for URLs (using
867 @command{browse-url-at-point}), run vm/gnus/bbdb for the corresponding
868 links, execute the command in a shell link, visit text files with
869 Emacs and select a suitable application for non-text files.
870 Classification of files is based on file extension only.  See option
871 @code{org-file-apps}.  If there is no link at point, the current
872 subtree will be searched for one.  If you want to override the default
873 application and visit the file with Emacs, use a @kbd{C-u} prefix.
874 If the cursor is on a time stamp, compiles the agenda for that date.
876 @strong{IMPORTANT}: Be careful not to use any dangerous commands in a
877 shell link.
879 @kindex mouse-2
880 @item mouse-2
881 On links, @kbd{mouse-2} will open the link just like @kbd{C-c C-o} would.
883 @kindex mouse-3
884 @item mouse-3
885 Like @kbd{mouse-2}, but force file links to be opened with Emacs.
886 @end table
888 @node Remember,  , Links, Hyperlinks
889 @section Remember
890 @cindex @file{remember.el}
892 Another way to create org entries with links to other files is through
893 the @emph{Remember} package by John Wiegley.  @emph{Remember} lets you
894 store quick notes with little interruption of your work flow.  See
895 @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
896 information.  The notes produced by @emph{Remember} can be stored in
897 different ways, and Org-mode files are a good target.
898 Org-mode allows to file away notes either to a default file, or
899 directly to the correct location in your Org-mode outline tree.  The
900 following customization will tell @emph{Remember} to use org files as
901 target, and to create annotations compatible with Org-mode links.
903 @c FIXME: The autoload will not be necessary when Org-mode is part of Emacs
904 @example
905 (autoload 'org-remember-annotation "org")
906 (autoload 'org-remember-handler "org")
907 (setq org-directory "~/path/to/my/orgfiles/")
908 (setq org-default-notes-file "~/.notes")
909 (setq remember-annotation-functions '(org-remember-annotation))
910 (setq remember-handler-functions '(org-remember-handler))
911 @end example
913 When you compose a note with remember, you have to press @kbd{C-c C-c}
914 to exit remember-mode and to file away the note.  The handler first
915 prompts for a target file - if you press @key{RET}, the value of
916 @code{org-default-notes-file} is used.  Then the command offers the
917 headings tree of the selected file.  You can either immediately press
918 @key{RET} to get the note appended to the file.  Or you can use
919 vertical cursor motion (@key{up} and @key{down}) and visibility
920 cycling (@key{TAB}) to find a better place.  Pressing @key{RET} or
921 @key{left} or @key{right} leads to the following result.
923 @multitable @columnfractions 0.2 0.1 0.7
924 @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
925 @item buffer-start @tab @key{RET} @tab as level 2 heading at end of file
926 @item on headline @tab @key{RET} @tab as sublevel of the heading at cursor
927 @item             @tab @key{left}  @tab as same level, before current heading
928 @item             @tab @key{right} @tab as same level, after current heading
929 @item not on headline @tab @key{RET} 
930       @tab at cursor position, level taken from context.
931            Or use prefix arg to specify level manually.
932 @end multitable
934 So the fastest way to store the note is to press @kbd{C-c C-c @key{RET}
935 @key{RET}} to append it to the default file.  But with little extra
936 effort, you can push it directly to the correct location.
938 Before inserting the text into a tree, the function ensures that the
939 text has a headline, i.e. a first line that starts with a @samp{*}.
940 If not, a headline is constructed from the current date and some
941 additional data.  If the variable @code{org-adapt-indentation} is
942 non-nil, the entire text is also indented so that it starts in the
943 same column as the headline (after the asterisks).
945 @node TODO items, Timestamps, Hyperlinks, Top
946 @chapter TODO items
947 @cindex TODO items
949 Org-mode does not maintain TODO lists as a separate document.  TODO
950 items are an integral part of the notes file, because TODO items
951 usually come up while taking notes!  With Org-mode, you simply mark
952 any entry in a tree as being a TODO item.  In this way, the
953 information is not duplicated, and the entire context from which the
954 item emerged is always present when you check.
956 Of course, this technique causes TODO items to be scattered throughout
957 your file.  Org-mode provides methods to give you an overview over all
958 things you have to do.
960 @menu
961 * TODO basics::                 Marking and displaying TODO entries
962 * TODO extensions::             Workflow and assignments
963 * Priorities::                  Some things are more important than others
964 @end menu
966 @node TODO basics, TODO extensions, TODO items, TODO items
967 @section Basic TODO functionality
969 Any headline can become a TODO item by starting it with the word TODO,
970 for example
972 @example
973 *** TODO Write letter to Sam Fortune
974 @end example
976 @noindent
977 The most important commands to work with TODO entries are:
979 @table @kbd
980 @kindex C-c C-t
981 @item C-c C-t
982 Rotate the TODO state of the current item between
983 @example
984 ,-> (unmarked) -> TODO -> DONE --.
985 '--------------------------------'
986 @end example
987 The same rotation can also be done ``remotely'' from the timeline and
988 agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
989 @kindex C-c C-v
990 @cindex sparse tree, for TODO
991 @item C-c C-v
992 View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}).  Folds
993 the entire buffer, but shows all TODO items and the headings hierarchy
994 above them.  With prefix arg, show also the DONE entries.
995 @item C-u C-c a
996 A @kbd{C-u} argument to the @code{org-agenda command} (@pxref{Agenda})
997 collects all unfinished TODO items into a single place.
998 @end table
1000 @node TODO extensions, Priorities, TODO basics, TODO items
1001 @section Extended use of TODO keywords
1002 @cindex extended TODO keywords
1004 The default implementation of TODO entries is just two states:  TODO
1005 and DONE.  You can, however, use the TODO feature for more
1006 complicated things by configuring the variables
1007 @code{org-todo-keywords} and @code{org-todo-interpretation}.  Using
1008 special setup, you can even use TODO keywords in different ways in
1009 different org files.
1011 @menu
1012 * Workflow states::             From TODO to DONE in steps
1013 * TODO types::                  I do this, Fred the rest
1014 * Per file keywords::           Different files, different requirements
1015 @end menu
1017 @node Workflow states, TODO types, TODO extensions, TODO extensions
1018 @subsection TODO keywords as workflow states
1019 @cindex TODO workflow
1020 @cindex workflow states as TODO keywords
1022 You can use TODO keywords to indicate different states in the process
1023 of working on an item, for example
1025 @lisp
1026 (setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE")
1027       org-todo-interpretation 'sequence)
1028 @end lisp
1030 With this setup, the command @kbd{C-c C-t} will cycle an entry from
1031 TODO to FEEDBACK, then to VERIFY, and finally too DONE.  You may also
1032 use a prefix argument to quickly select a specific state.  For example
1033 @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
1034 If you define many keywords, you can use in-buffer completion (see
1035 @ref{Completion}) to insert these words into the buffer.
1037 @node TODO types, Per file keywords, Workflow states, TODO extensions
1038 @subsection TODO keywords as types
1039 @cindex TODO types
1040 @cindex names as TODO keywords
1041 @cindex types as TODO keywords
1043 The second possibility is to use TODO keywords to indicate different
1044 types of action items.  For example, you might want to indicate that
1045 items are for ``work'' or ``home''.  Or, when you work with several
1046 people on a single project, you might want to assign action items
1047 directly to persons, by using their names as TODO keywords.  This
1048 would be set up like this:
1050 @lisp
1051 (setq org-todo-keywords '("Fred" "Sara" "Lucy" "Mike" "DONE")
1052       org-todo-interpretation 'type)
1053 @end lisp
1055 In this case, different keywords do not indicate a sequence, but
1056 rather different types.  So it is normally not useful to change from
1057 one type to another.  Therefore, in this case the the behavior of the
1058 command @kbd{C-c C-t} is changed slightly@footnote{This is also true
1059 for the @kbd{t} command in the timeline and agenda buffers}.  When
1060 used several times in succession, it will still cycle through all
1061 names.  But when when you return to the item after some time and
1062 execute @kbd{C-c C-t} again, it will switch from each name directly to
1063 DONE.  Use prefix arguments or completion to quickly select a specific
1064 name.
1066 @node Per file keywords,  , TODO types, TODO extensions
1067 @subsection Setting up TODO keywords for individual files
1068 @cindex keyword options
1069 @cindex per file keywords
1071 It can be very useful to use different aspects of the TODO mechanism
1072 in different files, which is not possible with the global settings
1073 described above.  For file-local settings, you need to add special
1074 lines to the file which set the keywords and interpretation for that
1075 file only.  For example, to set one of the two examples discussed
1076 above, you need one of the following lines, starting in column zero
1077 anywhere in the file:
1079 @example
1080 #+SEQ_TODO: TODO FEEDBACK VERIFY DONE
1081 #+TYP_TODO: Fred Sara Lucy Mike DONE
1082 @end example
1084 @cindex Completing option keywords
1085 @kindex M-@key{TAB}
1086 @noindent To make sure you are using the correct keyword, type
1087 @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion.
1089 @cindex DONE, final TODO keyword
1090 Remember that the last keyword must always mean that the item is DONE
1091 (you may use a different word, though).  Also note that in each file,
1092 only one of the two aspects of TODO keywords can be used.  After
1093 changing one of these lines, use @kbd{C-c C-c} with the cursor still
1094 in the line to make the changes known to Org-mode@footnote{Org-mode
1095 parses these lines only when Org-mode is activated after visiting a
1096 file.  @kbd{C-c C-c} with the cursor in a line starting with @samp{#-}
1097 is simply restarting Org-mode, making sure that these changes will be
1098 respected.}. 
1100 If you want to use very many keywords, for example when working with a
1101 large group of people, you may split the names over several lines:
1103 @example
1104 #+TYP_TODO: Fred Sara Lucy Mike
1105 #+TYP_TODO: Luis George Jules Jessica
1106 #+TYP_TODO: Kim Arnold Peter
1107 #+TYP_TODO: DONE
1108 @end example
1110 @node Priorities,  , TODO extensions, TODO items
1111 @section Priorities
1112 @cindex priorities
1114 If you use Org-mode extensively to organize your work, you may end up
1115 with a number of TODO entries so large that you'd like to prioritize
1116 them.  This can be done by placing a @emph{priority cookie} into the
1117 headline, like this
1119 @example
1120 *** TODO [#A] Write letter to Sam Fortune
1121 @end example
1123 @noindent
1124 With its standard setup, Org-mode supports priorities @samp{A},
1125 @samp{B}, and @samp{C}.  @samp{A} is the highest priority.  An entry
1126 without a cookie is treated as priority @samp{B}.  Priorities make a
1127 difference only in the agenda (@pxref{Agenda}).
1129 @table @kbd
1130 @kindex @kbd{C-c ,}
1131 @item @kbd{C-c ,}
1132 Set the priority of the current item.  The command prompts for a
1133 priority character @samp{A}, @samp{B} or @samp{C}.  When you press
1134 @key{SPC} instead, the priority cookie is removed from the headline.
1135 The priorities can also be changed ``remotely'' from the timeline and
1136 agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
1138 @kindex S-@key{up}
1139 @kindex S-@key{down}
1140 @item S-@key{up}
1141 @itemx S-@key{down}
1142 Increase/decrease priority of current item.  Note that these keys are
1143 also used to modify time stamps (@pxref{Creating timestamps}).
1144 @end table
1148 @node Timestamps, Timeline and Agenda, TODO items, Top
1149 @chapter Timestamps
1151 Items can be labeled with timestamps to make them useful for project
1152 planning.
1154 @menu
1155 * Time stamps::                 Assigning a time to a tree entry
1156 * Creating timestamps::         Commands which insert timestamps
1157 @end menu
1160 @node Time stamps, Creating timestamps, Timestamps, Timestamps
1161 @section Time stamps, deadlines and scheduling
1162 @cindex time stamps
1163 @cindex deadlines
1164 @cindex scheduling
1166 A time stamp is a specification of a date (possibly with time) in a
1167 special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
1168 Tue 09:39>}.  A time stamp can appear anywhere in the headline or body
1169 of an org-tree entry.  Its presence allows to show entries on specific
1170 dates in the agenda (@pxref{Agenda}).  We distinguish:
1172 @table @var
1173 @cindex timestamp
1174 @item TIMESTAMP
1175 A simple time stamp just assigns a date/time to an item.  In the
1176 timeline and agenda displays, the headline of the entry will be shown
1177 exactly on that date.
1179 @item TIMERANGE
1180 @cindex timerange
1181 Two time stamps connected by @samp{--} denote a time range.  The
1182 headline will be shown on the first and last day of the range, and on
1183 any dates that are displayed and fall in the range.  Here is an
1184 example:
1186 @example
1187 ** Meeting in Amsterdam
1188    <2004-08-23 Mon>--<2004-08-26 Thu>
1189 @end example
1191 @item DEADLINE
1192 @cindex deadline
1193 If a time stamp is preceded by the word @samp{DEADLINE:}, the task
1194 (most likely a TODO item) is supposed to be finished on that date, and
1195 it will be listed then.  In addition, the compilation for the
1196 @emph{current day} will carry a warning about the approaching or
1197 missed deadline, starting @code{org-deadline-warning-days} before the
1198 due date, and continuing until the entry is marked DONE.  An example:
1200 @example
1201 *** TODO write article about the Earth for the Guide
1202     The editor in charge is bbdb:Ford Prefect
1203     DEADLINE: <2004-02-29 Sun>
1204 @end example
1206 @item SCHEDULED
1207 @cindex scheduled
1208 If a time stamp is preceded by the word @samp{SCHEDULED:}, it means
1209 you are planning to start working on that task on the given date.  The
1210 headline will be listed under the given date.  In addition, a reminder
1211 that the scheduled date has passed will be present in the compilation
1212 for the @emph{current day}, until the entry is marked DONE.  I.e., the
1213 task will automatically be forwarded.
1214 @end table
1216 @node Creating timestamps,  , Time stamps, Timestamps
1217 @section Creating timestamps
1218 @cindex creating timestamps
1220 For Org-mode to recognize time stamps, they need to be in the specific
1221 format.  All commands listed below produce time stamps in the correct
1222 format.
1224 @table @kbd
1225 @kindex C-c .
1226 @item C-c .
1227 Prompt for a date and insert a corresponding time stamp.  When the
1228 cursor is at a previously used time stamp, it is updated to NOW.  When
1229 this command is used twice in succession, a time range is inserted.
1231 @kindex C-u C-c .
1232 @item C-u C-c .
1233 Like @kbd{C-c .}, but use the alternative format which contains date
1234 and time.
1236 @kindex C-c <
1237 @item C-c <
1238 Insert a time stamp corresponding to the cursor date in the Calendar.
1240 @kindex C-c >
1241 @item C-c >
1242 Access the Emacs calendar for the current date.  If there is a
1243 timestamp in the current line, goto the corresponding date
1244 instead.
1246 @kindex C-c C-o
1247 @item C-c C-o
1248 Access the agenda for the date given by the time stamp at point
1249 (@pxref{Agenda}).
1251 @kindex C-c C-d
1252 @item C-c C-d
1253 Insert @samp{DEADLINE} keyword along with a stamp.
1254 @kindex C-c C-w
1255 @cindex sparse tree, for deadlines
1256 @item C-c C-w
1257 Create a sparse tree with all deadlines that are either past-due, or
1258 which will become due within @code{org-deadline-warning-days}.
1259 With @kbd{C-u} prefix, show all deadlines in the file.  With a numeric
1260 prefix, check that many days.  For example, @kbd{C-1 C-c C-w} shows
1261 all deadlines due tomorrow.
1263 @kindex C-c C-s
1264 @item C-c C-s
1265 Insert @samp{SCHEDULED} keyword along with a stamp.
1267 @kindex S-@key{left}
1268 @kindex S-@key{right}
1269 @item S-@key{left}
1270 @itemx S-@key{right}
1271 Change date at cursor by one day.
1273 @kindex S-@key{up}
1274 @kindex S-@key{down}
1275 @item S-@key{up}
1276 @itemx S-@key{down}
1277 Change the item under the cursor in a timestamp.  The cursor can be on
1278 a year, month, day, hour or minute.  Note that if the cursor is not at
1279 a time stamp, these same keys modify the priority of an item
1280 (@pxref{Priorities}).
1282 @kindex C-c C-y
1283 @cindex evaluate time range
1284 @item C-c C-y
1285 Evaluate a time range by computing the difference between start and
1286 end.  With prefix arg, insert result after the time range (in a table:
1287 into the following column).
1288 @end table
1290 @cindex date, reading in minibuffer
1291 @cindex time, reading in minibuffer
1292 @cindex calendar, for selecting date
1293 When org prompts for a date/time, the function reading your input will
1294 replace anything you choose not to specify with the current date and
1295 time.  For details, see the documentation string of
1296 @command{org-read-date}.  Also, a calender will pop up to allow
1297 selecting a date.  The calendar can be fully controlled from the
1298 minibuffer, and a date can be selected with the following commands:
1300 @table @kbd
1301 @kindex <
1302 @item <
1303 Scroll calendar backwards by one month.
1304 @kindex >
1305 @item >
1306 Scroll calendar forwards by one month.
1307 @kindex mouse-1
1308 @item mouse-1
1309 Select date by clicking on it.
1310 @kindex S-@key{right}
1311 @item S-@key{right}
1312 One day forward.
1313 @kindex S-@key{left}
1314 @item S-@key{left}
1315 One day back.
1316 @kindex S-@key{down}
1317 @item S-@key{down}
1318 One week forward.
1319 @kindex S-@key{up}
1320 @item S-@key{up}
1321 One week back.
1322 @kindex M-S-@key{right}
1323 @item M-S-@key{right}
1324 One month forward.
1325 @kindex M-S-@key{left}
1326 @item M-S-@key{left}
1327 One month back.
1328 @kindex @key{RET}
1329 @item @key{RET}
1330 Choose date in calendar (only if nothing typed into minibuffer).
1331 @end table
1333 @node Timeline and Agenda, Exporting, Timestamps, Top
1334 @chapter Timeline and Agenda
1335 @cindex agenda
1337 We have already described three commands to filter important
1338 information in an org file into a sparse tree (@pxref{Sparse trees}):
1340 @cindex sparse trees
1341 @itemize @bullet
1342 @item
1343 The TODO tree, (@kbd{C-c C-v}), see @ref{TODO items}.
1344 @item
1345 The occur tree @kbd{C-c /}, see @ref{TODO items}.
1346 @item
1347 Checking upcoming deadlines with @kbd{C-c C-w}, see @ref{Creating
1348 timestamps}.
1349 @end itemize
1350 @noindent
1352 Instead of using the sparse trees, Org-mode can also collect and
1353 time-sort the important items into a separate buffer, which we call
1354 the @emph{timeline} of the org file.  It can also collect information
1355 from a @emph{list of files} and in this way provide an @emph{agenda}
1356 which covers all of your current projects, action items and
1357 appointments.
1359 @menu
1360 * Timeline::                    Time-sorted view for single file
1361 * Agenda::                      Your weekly planner
1362 * Agenda commands::             Remote editing of org trees
1363 * Calendar/Diary integration::  Integrating Anniversaries and more
1364 @end menu
1366 @node Timeline, Agenda, Timeline and Agenda, Timeline and Agenda
1367 @section Timeline for a single file
1368 @cindex single file summary
1369 @cindex agenda, for single file
1370 @cindex timeline, single file
1371 @cindex time-sorted view
1373 The timeline shows all time-stamped items in a single Org-mode file,
1374 in @emph{time-sorted view}.  The main purpose of this command is to
1375 give an overview over events in a project.
1377 @table @kbd
1378 @kindex C-c C-r
1379 @item C-c C-r
1380 Show a time-sorted view of the org file, with all time-stamped items
1381 of today or later.  When called with a @kbd{C-u} prefix, past dates
1382 will be included as well.  When called with two @kbd{C-u C-u}
1383 prefixes, all unfinished TODO entries (scheduled or not) are also
1384 listed under the current date.
1385 @end table
1386 @noindent
1388 The timeline is shown in a temporary buffer @file{*Org Agenda*}.  The
1389 commands available in the Agenda buffer are listed in @ref{Agenda
1390 commands}.
1392 @node Agenda, Agenda commands, Timeline, Timeline and Agenda
1393 @section Agenda
1394 @cindex agenda
1396 An agenda can be compiled from one or more org files.  The main
1397 purpose of this command is to act like a planner, in order to show you
1398 what tasks are up for the current week, similar to a paper agenda.
1400 The Org-mode files to be processed in order to generate the agenda are
1401 listed in the variable @code{org-agenda-files}.  You can customize
1402 this variable, but the easiest way to maintain it is through the
1403 following commands
1405 @cindex files, adding to agenda list
1406 @table @kbd
1407 @kindex C-c [
1408 @item C-c [
1409 Add current file to the list of agenda files
1410 @kindex C-c ]
1411 @item C-c ]
1412 Remove current file from the list of agenda files.
1413 @end table
1414 @noindent
1415 The Org menu contains the list of all files and can be used to quickly
1416 visit any of them.
1418 The global command @command{org-agenda} compiles the agenda from all
1419 listed files.
1421 @table @kbd
1422 @cindex org-agenda, command
1423 @kindex C-c a
1424 @item C-c a
1425 Compile an agenda for the current week from a list of org files.  The
1426 agenda shows the entries for each day.  With a @kbd{C-u} prefix (or
1427 when the variable @code{org-agenda-include-all-todo} is @code{t}), all
1428 unfinished TODO items (also those without a date) are also listed at
1429 the beginning of the buffer, before the first date.@*
1430 The key binding @kbd{C-c a} is only a suggestion - see
1431 @ref{Installation and Activation}.
1432 @end table
1434 The commands available in the Agenda buffer are listed in
1435 @ref{Agenda commands}.
1437 @subsection Categories
1439 @cindex category
1440 In the agenda buffer, each entry is preceded by a @emph{category},
1441 which is derived from the file name.  The category can also be set
1442 with a special line anywhere in the buffer, looking like this:
1443 @example
1444 #+CATEGORY: Cheops
1445 @end example
1446 @noindent
1447 After changing this line, press @kbd{C-c C-c} with the cursor still in
1448 the line, to make the changes known to org-mode.  Otherwise, the
1449 change will only be active the next time you visit this file with
1450 Emacs.
1452 The display in the agenda buffer looks best if the category is not
1453 longer than 10 characters.
1455 @subsection Sorting of agenda items
1456 @cindex sorting, of agenda items
1457 @cindex priorities, of agenda items
1458 The entries for each day are sorted.  The default order is to first
1459 collect all items containing an explicit time-of-day specification.
1460 These entries will be shown at the beginning of the list, as a
1461 @emph{schedule} for the day.  After that, items remain grouped in
1462 categories, in the sequence given by @code{org-agenda-files}.  Within
1463 each category, items are sorted by priority (@pxref{Priorities}).
1465 A time-of-day specification looks like @samp{12:45} or @samp{3pm} and
1466 must appear in the headline.  For example, a timestamp in a headline
1467 that contains not only a date but also a time will trigger this
1468 mechanism.  Specifications of a time in diary entries are recognized
1469 as well, so the schedule will be mixed from diary entries and Org-mode
1470 files.
1472 The priority is a numerical quantity composed of the base priority
1473 (2000 for priority @samp{A}, 1000 for @samp{B}, and 0 for @samp{C}),
1474 plus additional increments for overdue scheduled or deadline items.
1476 Sorting can be customized using the variable
1477 @code{org-agenda-sorting-strategy}.
1479 @node Agenda commands, Calendar/Diary integration, Agenda, Timeline and Agenda
1480 @section Commands in the agenda buffer
1482 Entries in the agenda buffer are linked back to the org file or diary
1483 file where they originate.  You are not allowed to edit the agenda
1484 buffer itself, but commands are provided to show and jump to the
1485 original entry location, and to edit the org-files ``remotely'' from
1486 the agenda buffer.  In this way, all information is stored only once,
1487 and you don't risk that your agenda and note files diverge.
1489 Some commands can be executed with mouse clicks on agenda lines.  For
1490 the other commands, the cursor needs to be in the desired line.  Most
1491 commands are available for both timelines and the agenda.  The
1492 exceptions are marked.
1494 @table @kbd
1495 @tsubheading{Motion}
1496 @kindex n
1497 @item n
1498 Next line (same as @key{up}).
1499 @kindex p
1500 @item p
1501 Previous line (same as @key{down}).
1502 @tsubheading{View/GoTo org file}
1503 @kindex mouse-3
1504 @kindex @key{SPC}
1505 @item mouse-3
1506 @itemx @key{SPC} 
1507 Display the original location of the item in another window.
1509 @kindex l
1510 @item l
1511 Display original location and recenter that window.
1513 @kindex mouse-2
1514 @kindex @key{TAB}
1515 @item mouse-2
1516 @itemx @key{TAB}
1517 Go to the original location of the item in another window.
1519 @kindex @key{RET}
1520 @itemx @key{RET}
1521 Go to the original location of the item and delete other windows.
1523 @kindex f
1524 @item f
1525 Toggle follow mode.  In follow mode, as you move the cursor through
1526 the agenda buffer, the other window always shows the corresponding
1527 location in the org file.
1529 @tsubheading{Change display}
1530 @kindex o
1531 @item o
1532 Delete other windows.
1534 @kindex w
1535 @item w
1536 Toggle between weekly and daily view.
1538 @kindex d
1539 @item d
1540 Toggle the inclusion of diary entries.  See @ref{Calendar/Diary integration}.
1542 @kindex r
1543 @item r
1544 Recreate the agenda buffer, for example to reflect the changes
1545 after modification of the time stamps of items with S-@key{left} and
1546 S-@key{right}.
1548 @kindex @key{right}
1549 @item @key{right}
1550 Display the following @code{org-agenda-ndays} days.  For example, if
1551 the display covers a week, switch to the following week.  With prefix
1552 arg, go forward that many times @code{org-agenda-ndays} days.  Not
1553 available in timelines.
1555 @kindex @key{left}
1556 @item @key{left}
1557 Display the previous dates.  Not available in timelines.
1559 @kindex .
1560 @item .
1561 Goto today.
1563 @tsubheading{Remote editing}
1565 @item 0-9
1566 Digit argument.
1568 @kindex t
1569 @item t
1570 Change the TODO state of the item, both in the agenda and in the
1571 original org file.
1573 @kindex ,
1574 @item ,
1575 Set the priority for the current item.  Org-mode prompts for the
1576 priority character. If you reply with @key{SPC}, the priority cookie
1577 is removed from the entry.
1579 @kindex P
1580 @item p
1581 Display weighted priority of current item.
1583 @kindex +
1584 @kindex S-@key{up}
1585 @item +
1586 @item S-@key{up}
1587 Increase the priority of the current item.  The priority is changed in
1588 the original buffer, but the agenda is not resorted.  Use the @kbd{r}
1589 key for this.
1591 @kindex -
1592 @kindex S-@key{down}
1593 @item -
1594 @item S-@key{down}
1595 Decrease the priority of the current item.
1597 @kindex S-@key{right}
1598 @item S-@key{right}
1599 Change the time stamp associated with the current line by one day into
1600 the future.  With prefix argument, change it by that many days.  For
1601 example, @kbd{3 6 5 S-@key{right}} will change it by a year.  The
1602 stamp is changed in the original org file, but the change is not
1603 directly reflected in the agenda buffer.  Use the 
1604 @kbd{r} key to update the buffer.
1606 @kindex S-@key{left}
1607 @item S-@key{left}
1608 Change the time stamp associated with the current line by one day
1609 into the past.
1611 @kindex >
1612 @item >
1613 Change the time stamp associated with the current line to today.
1614 The key @kbd{>} has been chosen, because it is the same as @kbd{S-.}
1615 on my keyboard.
1617 @cindex diary entries, creating from agenda
1618 @kindex i
1619 @item i
1620 Insert a new entry into the diary.  Prompts for the type of entry
1621 (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
1622 entry in the diary, just like @kbd{i d} etc. would do in the calendar.
1623 The date is taken from the cursor position.
1625 @tsubheading{Calendar commands}
1626 @kindex c
1627 @item c
1628 Open the Emacs calendar and move to the date at the agenda cursor.
1630 @item c
1631 When in the calendar, compute and show the Org-mode agenda for the
1632 date at the cursor.
1634 @kindex M
1635 @item M
1636 Show the phases of the moon for three month around current date.
1638 @kindex S
1639 @item S
1640 Show sunrise and sunset times.  The geographical location must be set
1641 with calendar variables, see documentation of the Emacs calendar.
1643 @kindex C
1644 @item C
1645 Convert the date at cursor into many other cultural and historic
1646 calendars.
1648 @kindex H
1649 @item H
1650 Show holidays for three month around the cursor date.
1652 @tsubheading{Quit and Exit}
1653 @kindex q
1654 @item q
1655 Quit Agenda, remove the agenda buffer.
1657 @kindex x
1658 @cindex agenda files, removing buffers
1659 @item x
1660 Exit agenda, remove the agenda buffer and all buffers loaded by Emacs
1661 for the compilation of the agenda.  Buffers created by the user to
1662 visit org files will not be removed.
1664 @end table
1666 @node Calendar/Diary integration,  , Agenda commands, Timeline and Agenda
1667 @section Calendar/Diary integration
1668 @cindex calendar integration
1669 @cindex diary integration
1671 Emacs contains the calendar and diary by Edward M. Reingold.  The
1672 calendar displays a three-month calendar with holidays from different
1673 countries and cultures.  The diary allows to keep track of
1674 anniversaries, lunar phases, sunrise/set, recurrent appointments
1675 (weekly, monthly) and more.  In this way, it is quite complementary to
1676 Org-mode.  It can be very useful to combine output from Org-mode with
1677 the diary.
1679 The interaction between Org-mode and diary works both ways: You can
1680 list entries from the diary in the Org-mode agenda, from which many
1681 calendar and diary commands are directly accessible.  Or you can
1682 display entries from the org agenda in the Emacs diary.
1684 @menu
1685 * Diary to agenda::             Agenda incorporates the diary
1686 * Agenda to diary::             Diary incorporates the agenda
1687 @end menu
1689 @node Diary to agenda, Agenda to diary, Calendar/Diary integration, Calendar/Diary integration
1690 @subsection Including the diary into the agenda
1691 @cindex diary to agenda
1693 In order to include entries from the Emacs diary into Org-mode's
1694 agenda, you only need to customize the variable
1696 @lisp
1697 (setq org-agenda-include-diary t)
1698 @end lisp
1699 @noindent
1701 @noindent After that, everything will happen automatically.  All diary
1702 entries including holidays, anniversaries etc will be included in the
1703 agenda buffer created by Org-mode.  @key{SPC}, @key{TAB}, and
1704 @key{RET} can be used from the agenda buffer to jump to the diary
1705 file, in order to edit existing diary entries.  Also the @kbd{i}
1706 command to insert new entries for the current date works in the agenda
1707 buffer, as well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to
1708 display Sunrise/Sunset times, show lunar phases and to convert to
1709 other calendars, respectively.  @kbd{c} can be used to switch back and
1710 forth between calendar and agenda.
1712 @node Agenda to diary,  , Diary to agenda, Calendar/Diary integration
1713 @subsection Including the agenda into the diary
1715 If you prefer to use the Emacs diary as your main instrument and if
1716 you wish to include the Org-mode agenda into it, the following steps
1717 are necessary: Autoload the function @command{org-diary} as shown
1718 above under @ref{Installation and Activation}.  You also need to use
1719 @emph{fancy diary display} by setting in @file{.emacs}:
1721 @lisp
1722 (add-hook 'diary-display-hook 'fancy-diary-display)
1723 @end lisp
1725 Then include the following line into your @file{~/diary} file, in
1726 order to get the entries from all files listed in the variable
1727 @code{org-agenda-files}:
1729 @example
1730 &%%(org-diary)
1731 @end example
1732 @noindent
1733 You may also select specific files with
1735 @example
1736 &%%(org-diary) ~/path/to/some/org-file.org
1737 &%%(org-diary) ~/path/to/another/org-file.org
1738 @end example
1740 If you now launch the calendar and press @kbd{d} to display a diary,
1741 the headlines of entries containing a timestamp, date range, schedule,
1742 or deadline referring to the selected date will be listed.  Just like
1743 in Org-mode's agenda view, the diary for @emph{today} contains
1744 additional entries for overdue deadlines and scheduled items.  See
1745 also the documentation of the @command{org-diary} function.
1747 @node Exporting, Miscellaneous, Timeline and Agenda, Top
1748 @chapter Exporting
1749 @cindex exporting
1750 @cindex ASCII file
1751 @cindex HTML
1754 @cindex headline levels, for exporting
1755 For printing and sharing of notes, an Org-mode document can be
1756 exported as an ASCII file, or as HTML.  In the exported version, the
1757 first 3 outline levels will become headlines, defining a general
1758 document structure.  Additional levels will be exported as itemize
1759 lists.  If you want that transition to occur at a different level,
1760 specify it with a prefix argument.  For example,
1762 @example
1763 @kbd{M-1 M-x org-export-as-html}
1764 @end example
1765 @noindent
1766 creates only top level headlines and does the rest as items.
1768 @menu
1769 * Export commands::             Commands which export and display
1770 * HTML formatting::             Interpretation of the buffer content
1771 * Export options::              How to influence exports
1772 * Comment lines::               Lines which will not be exported
1773 @end menu
1775 @node Export commands, HTML formatting, Exporting, Exporting
1776 @section Export commands
1778 @cindex region, active
1779 @cindex active region
1780 @cindex transient-mark-mode
1781 @table @kbd
1782 @kindex C-c C-x a    
1783 @item C-c C-x a
1784 Export as ASCII file.  If there is an active region, only the region
1785 will be exported.  For an org file @file{myfile.org}, the ASCII file
1786 will be @file{myfile.txt}.  The file will be overwritten without
1787 warning.
1788 @kindex C-c C-x h    
1789 @item C-c C-x h
1790 Export as HTML file @file{myfile.html}.
1791 @kindex C-c C-x C-h  
1792 @item C-c C-x C-h
1793 Export as HTML file and open it with a browser.
1794 @kindex C-c C-x t
1795 @item C-c C-x t
1796 Insert template with export options, see below.
1797 @kindex C-c :
1798 @item C-c :
1799 Toggle fixed-width for line or region, see below.
1800 @end table
1802 @node HTML formatting, Export options, Export commands, Exporting
1803 @section HTML formatting
1805 Not all text is transferred literally to the exported HTML file.  The
1806 exporter implements the following interpretation:
1808 @itemize @bullet
1809 @cindex underlined text
1810 @cindex bold text
1811 @cindex italic text
1812 @item
1813 You can make words @b{*bold*}, @i{/italic/}, and _underlined_
1815 @cindex @TeX{} interpretation
1816 @item
1817 Simple @TeX{}-like math constructs are interpreted:
1819 @itemize @minus
1820 @item
1821 @samp{10^22} and @samp{J_n} are super- and subscripts.  You can quote
1822 @samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}
1823 @item
1824 @samp{\alpha} indicates a Greek letter, @samp{\to} an arrow.  You can
1825 use completion for these macros, just type @samp{\} and maybe a few
1826 letters, and press @kbd{M-@key{TAB}} to see possible completions.
1827 @end itemize
1829 @cindex tables, export to HTML
1830 @item
1831 Tables are transformed into HTML tables.
1833 @cindex fixed width
1834 @item
1835 Lines starting with @samp{:} are typeset in a fixed-width font, to
1836 allow quoting of computer code etc. 
1838 @cindex HTML tags
1839 @item
1840 If you want to include HTML tags which should be interpreted as such,
1841 mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}.
1842 Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
1843 @samp{&gt;} in HTML export.
1844 @end itemize
1846 If these conversions conflict with your habits of typing ASCII text,
1847 they can all be turned off with corresponding variables.
1849 @node Export options, Comment lines, HTML formatting, Exporting
1850 @section Export options
1851 @cindex options, for export
1853 The exporter recognizes special lines in the buffer which provide
1854 additional information.  These lines may be put anywhere in the file.
1855 The whole set of lines can be inserted into the buffer with @kbd{C-c
1856 C-x t}.  For individual lines, a good way to make sure the keyword is
1857 correct it to type @samp{#+} and then use @kbd{M-@key{TAB}} completion
1858 (@pxref{Completion}). 
1860 @example
1861 #+TITLE:     the title to be shown (default is the buffer name)
1862 #+AUTHOR:    the author (default taken from @code{user-full-name})
1863 #+EMAIL:     his/her email address (default from @code{user-mail-address})
1864 #+LANGUAGE:  language for HTML, e.g. @samp{en} (@code{org-export-default-language})
1865 #+TEXT:      Some descriptive text to be inserted at the beginning.
1866 #+TEXT:      Several lines may be given.
1867 #+OPTIONS:   H:2  num:t  toc:t  \n:nil  @:t  ::t  |:t  ^:t  *:nil  TeX:t
1868 @end example
1869 @noindent
1870 The OPTIONS line is a compact form to specify export settings.  Here
1871 you can
1872 @cindex headline levels
1873 @cindex section-numbers
1874 @cindex table of contents
1875 @cindex linebreak-preservation
1876 @cindex quoted html tags
1877 @cindex fixed-width sections
1878 @cindex tables
1879 @cindex @TeX{}-like syntax for sub- and superscripts
1880 @cindex emphasized text
1881 @cindex @TeX{} macros
1882 @example
1883 H:      @r{set the number of headline levels for export}
1884 num:    @r{turn on/off section-numbers}
1885 toc:    @r{turn on/off table of contents}
1886 \n:     @r{turn on/off linebreak-preservation}
1887 @@:      @r{turn on/off quoted html tags}
1888 ::      @r{turn on/off fixed-width sections}
1889 |:      @r{turn on/off tables}
1890 ^:      @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
1891 *:      @r{turn on/off emphasized text (bold, italic, underlined)}
1892 TeX:    @r{turn on/off @TeX{} macros}
1893 @end example
1895 @node Comment lines,  , Export options, Exporting
1896 @section Comment lines
1897 @cindex comment lines
1898 @cindex exporting, not
1900 Lines starting with @samp{#} in column zero are treated as comments
1901 and will never be exported.  Also entire subtrees starting with the
1902 word @samp{COMMENT} will never be exported.  Finally, any text before
1903 the first headline will not be exported either.
1905 @table @kbd
1906 @kindex C-c ;
1907 @item C-c ;
1908 Toggle the COMMENT keyword at the beginning of an entry.
1909 @end table
1911 @node Miscellaneous, Index, Exporting, Top
1912 @chapter Miscellaneous
1914 @menu
1915 * Completion::                  M-TAB knows what you need
1916 * Customization::               Adapting Org-mode to your taste
1917 * Tips and Tricks::             An author-imposed FAQ, sort of
1918 * Interaction::                 Other Emacs packages
1919 * Acknowledgments::             These people provided feedback and more
1920 * Bugs::                        Things which do not work perfectly
1921 @end menu
1923 @node Completion, Customization, Miscellaneous, Miscellaneous
1924 @section Completion
1925 @cindex complete @TeX{} symbols
1926 @cindex complete TODO keywords
1927 @cindex complete dictionary words
1928 @cindex complete option keywords
1930 Org-mode supports in-buffer completion.  This type of completion does
1931 not make use of the minibuffer.  You simply type a few letters into
1932 the buffer and use the key to complete text right there.
1934 @table @kbd
1935 @kindex M-@key{TAB}
1936 @item M-@key{TAB}
1937 Complete word at point
1938 @itemize @bullet
1939 @item
1940 At the beginning of a headline, complete TODO keywords.
1941 @item
1942 After @samp{\}, complete @TeX{} symbols supported by the exporter.
1943 @item
1944 After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
1945 @samp{OPTIONS} which set file-specific options for Org-mode.  When the
1946 option keyword is already complete, pressing @kbd{M-@key{TAB}} again
1947 will insert example settings for this keyword.
1948 @item
1949 Elsewhere, complete dictionary words using ispell.
1950 @end itemize
1951 @end table
1953 @node Customization, Tips and Tricks, Completion, Miscellaneous
1954 @section Customization
1955 @cindex customization
1956 @cindex options, for customization
1957 @cindex variables, for customization
1959 There is a large number of variables which can be used to customize
1960 Org-mode.  For the sake of compactness of the manual, we are not
1961 describing the variables here.  For an overview of customization
1962 variables, use @kbd{M-x org-customize}.  Or select @code{Browse Org
1963 Group} from the @code{Org->Customization} menu.
1965 @node Tips and Tricks, Interaction, Customization, Miscellaneous
1966 @section Tips and Tricks
1968 @itemize @bullet
1969 @cindex README files
1970 @item
1971 I find Org-mode very useful for the many @file{README} files I have
1972 scattered through my directories.  So I turn on @file{org-mode} for
1973 all @file{README} files with
1975 @example
1976 (add-to-list 'auto-mode-alist '("README$" . org-mode))
1977 @end example
1979 @ignore
1980 @cindex files, adding automatically
1981 @item
1982 If you would like to add all org files you ever create to the list of
1983 agenda files@footnote{Think twice.  Do you @emph{really} want this?},
1984 you could do so with
1986 @lisp
1987 (add-hook 'org-mode-hook 'org-add-file)
1988 @end lisp
1990 If you would like to add only a selection, for example everything
1991 except the @file{README} files, this could be achieved in the
1992 following way:
1994 @lisp
1995 (add-hook 'org-mode-hook
1996           (lambda ()
1997              (or (string-match "README\\'" (buffer-file-name))
1998                  (org-add-file))))
1999 @end lisp
2000 @end ignore
2002 @cindex @code{make-indirect-buffer}
2003 @cindex indirect buffers
2004 @item
2005 It can be useful to have two different windows showing the same
2006 Org-mode file.  However, a problem here is that changes to the
2007 visibility in one window immediately affect the other window.  On
2008 Emacs (not on XEmacs because it uses the old outline-mode) a way out
2009 is the use of @emph{indirect buffers}, which visit the same file, but
2010 have separate settings, also for outline visibility.  See the
2011 documentation on the command @code{make-indirect-buffer}.
2013 @cindex URL, paste into buffer
2014 @item
2015 Paste URLs into Org-mode whenever this seems useful.  For example, if
2016 you are writing notes about a paper which is available on the web, put
2017 the corresponding URL there and a direct look at the paper is only a
2018 mouse click away.  If you have a local copy of the paper, use a
2019 file:path link.
2021 @cindex headline levels, for export
2022 @item
2023 If you plan to use ASCII or HTML export, make sure things you want to
2024 be exported as item lists are level 4 at least, even if that does mean
2025 there is a level jump.  For example
2027 @example
2028 * Todays top priorities
2029 **** TODO write a letter to xyz
2030 **** TODO Finish the paper
2031 **** Pick up kids at the school
2032 @end example
2034 Alternatively, if you need a specific value for the heading/item
2035 transition in a particular file, use the @samp{+OPTIONS} line to
2036 configure the @samp{H} switch.
2038 @example
2039 +OPTIONS:   H:2; ...
2040 @end example
2042 @cindex exporting a subtree
2043 @item
2044 If you want to export a subtree, mark the subtree as region and then
2045 export.  Marking can be done with @kbd{C-c @@ C-x C-x}, for example.
2047 @cindex table, empty template
2048 @item
2049 To insert an empty table template, just type @samp{|-} and use
2050 @key{TAB}.
2052 @item
2053 In a table, to add a new column at the end, just type some text
2054 anywhere after the final @samp{|}.  Upon the next re-align, a new
2055 column will be created.
2057 @item
2058 In tables, @key{TAB} creates new rows before horizontal separator lines.  If
2059 the cursor is at @samp{Age} in the following table,
2061 @example
2062 | Name  | Phone | Age |
2063 |-------+-------+-----|
2064 |       |       |     |
2065 @end example
2067 the next @key{TAB} would create a second header line.  If you want
2068 instead to go to the first empty field below the horizontal line,
2069 press @key{down} (to get on the separator line) and then @key{TAB}.
2071 @cindex indentation, of tables
2072 @item
2073 To change the indentation of a table, just change the first line and
2074 realign with @key{TAB}.
2076 @end itemize
2079 @node Interaction, Acknowledgments, Tips and Tricks, Miscellaneous
2080 @section Interaction with other packages
2081 @cindex packages, interaction with other
2082 @cindex @file{planner.el}
2083 @cindex @file{remember.el}
2084 @cindex @file{table.el}
2085 @file{Org.el} can cooperate with the following packages:
2087 @table @asis
2088 @cindex @file{remember.el}
2089 @item @file{remember.el} by John Wiegley
2090 Org mode cooperates with remember, see @ref{Remember}.
2091 @cindex @file{plannner.el}
2092 @item @file{planner.el} by John Wiegley
2093 Planner is another tool to plan work and keep track of tasks.  Planner
2094 uses a multi-file approach with project pages and day pages.  Is based
2095 on Emacs-Wiki.  It can be useful to display the agenda entries
2096 resulting from org files in day-pages of the planner.  This can be
2097 done through the diary of the calendar: Integrate org files into the
2098 diary as described above, and then turn on the diary support of
2099 planner.
2100 @cindex @file{table.el}
2101 @item @file{table.el} by Takaaki Ota
2102 Org mode cooperates with table.el, see @ref{table.el}.
2103 @end table
2105 @page  @c FIXME
2107 @node Acknowledgments, Bugs, Interaction, Miscellaneous
2108 @section Acknowledgments
2109 @cindex acknowledgments
2111 Org-mode was written by Carsten Dominik, who still maintains it at the
2112 Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
2113 The following people have helped the development along with ideas,
2114 suggestions and patches.
2116 @itemize @bullet
2117 @item
2118 Matthias Rempe (Oelde) provided ideas and suggestions, a patch
2119 introducing Windows NT/2000 support, and quality control.
2120 @item
2121 Kevin Rogers contributed code to access VM files on remote hosts.
2122 @item
2123 Juergen Vollmer contributed code generating the table of contents
2124 in HTML output, and other export improvements.
2125 @item
2126 Christian Egli converted the documentation into TeXInfo format.  He
2127 also showed me his plans for a multifile summary for Org-mode. Some of
2128 his ideas have found their way into the agenda.
2129 @item
2130 Philip Rooke created the Org-mode reference card.  He also helped with
2131 beta testing and contributed a number of very useful ideas.
2132 @item
2133 Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
2134 @file{organizer-mode.el}.
2135 @item
2136 Scheduling TODO items was inspired by John Wiegley's @file{planner.el}.
2137 @item
2138 Sacha Chua, the current maintainer of Planner suggested to take some
2139 linking code from Planner, which I did (for RMAIL and Wanderlust).
2140 @item
2141 Oliver Oppitz sent several useful suggestions.
2142 @item
2143 Carsten Wimmer suggested some changes and helped fix a bug in linking
2144 to GNUS.
2145 @item
2146 Stefan Monnier provided a patch with lots of little fixes to keep the
2147 Emacs-Lisp compiler happy.
2148 @end itemize
2150 @node Bugs,  , Acknowledgments, Miscellaneous
2151 @section Bugs
2152 @cindex bugs
2154 Here is a list of things which should work differently, but which I
2155 have found too hard to fix.
2157 @itemize @bullet
2158 @item 
2159 When the application called by @kbd{C-c C-o} to open a file link fails
2160 (for example because the application does not exits or refuses to open
2161 the file), it does so silently.  No error message is displayed.
2162 @item 
2163 Under XEmacs, if Org-mode entries are included into the diary, it is
2164 not possible to jump back from the diary to the org file.  Apparently,
2165 the text properties are lost when the fancy-diary-display is used.
2166 However, from Org-mode's timeline and agenda buffers (created with
2167 @kbd{C-c C-r} and @kbd{C-c a}), things do work correctly.
2168 @item 
2169 Linux should also have a default viewer application, using mailcap.
2170 Maybe we can use GNUS or VM mime code?  Or dired's guessing commands?
2171 Any hints (or even patches) are appreciated.
2172 @item 
2173 When you write @samp{x = a /b/ c}, b will be exported in italics.
2174 @item 
2175 The exporters work well, but could be made more efficient.
2176 @end itemize
2178 @node Index, Key Index, Miscellaneous, Top
2179 @chapter Index
2181 @printindex cp
2183 @node Key Index,  , Index, Top
2184 @chapter Key Index
2186 @printindex ky
2188 @bye
2191 @ignore
2192    arch-tag: 7893d1fe-cc57-4d13-b5e5-f494a1bcc7ac
2193 @end ignore