]> code.delx.au - gnu-emacs/blob - man/org.texi
Version 3.13
[gnu-emacs] / man / org.texi
1 \input texinfo
2 @c %**start of header
3 @c @setfilename org
4 @setfilename ../info/org
5 @settitle Org Mode Manual
6
7 @set VERSION 3.13
8 @set DATE July 2005
9
10 @dircategory Emacs
11 @direntry
12 * Org Mode: (org). Outline-based notes management and organizer
13 @end direntry
14
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
22
23 @c Macro definitions
24
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
34
35 @copying
36 This manual is for Org-mode (version @value{VERSION}).
37
38 Copyright @copyright{} 2004, 2005 Free Software Foundation
39
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.''
48
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
54
55 @titlepage
56 @title Org Mode Manual
57
58 @subtitle Release @value{VERSION}
59 @author by Carsten Dominik
60
61 @c The following two commands start the copyright page.
62 @page
63 @vskip 0pt plus 1filll
64 @insertcopying
65 @end titlepage
66
67 @c Output the table of contents at the beginning.
68 @contents
69
70 @ifnottex
71 @node Top, Introduction, (dir), (dir)
72 @top Org Mode Manual
73
74 @insertcopying
75 @end ifnottex
76
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
89
90 @detailmenu
91 --- The Detailed Node Listing ---
92
93 Introduction
94
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.
98
99 Document Structure
100
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 * Archiving:: Move done task trees to a different place
107 * Sparse trees:: Matches embedded in context
108
109 Tables
110
111 * Built-in table editor:: Simple tables
112 * Table calculations:: Compute a field from other fields
113 * orgtbl-mode:: The table editor as minor mode
114 * table.el:: Complex tables
115
116 Calculations in tables
117
118 * Formula syntax:: How to write a formula
119 * Applying a formula:: How to get a formula executed
120 * Recalculation:: Re-applying all formulas in a table
121 * Summing:: Summing columns and rows
122
123 Hyperlinks
124
125 * Links:: URL-like links to the world
126 * Remember:: Org-trees store quick notes
127
128 TODO items
129
130 * TODO basics:: Marking and displaying TODO entries
131 * TODO extensions:: Workflow and assignments
132 * Priorities:: Some things are more important than others
133
134 Extended use of TODO keywords
135
136 * Workflow states:: From TODO to DONE in steps
137 * TODO types:: I do this, Fred the rest
138 * Per file keywords:: Different files, different requirements
139
140 Timestamps
141
142 * Time stamps:: Assigning a time to a tree entry
143 * Creating timestamps:: Commands which insert timestamps
144
145 Timeline and Agenda
146
147 * Timeline:: Time-sorted view for single file
148 * Agenda:: Your weekly planner
149 * Agenda commands:: Remote editing of org trees
150 * Calendar/Diary integration:: Integrating Anniversaries and more
151
152 Calendar/Diary integration
153
154 * Diary to agenda:: Agenda incorporates the diary
155 * Agenda to diary:: Diary incorporates the agenda
156
157 Exporting
158
159 * Export commands:: Commands which export and display
160 * HTML formatting:: Interpretation of the buffer content
161 * Export options:: How to influence exports
162 * Comment lines:: Lines which will not be exported
163
164 Miscellaneous
165
166 * Completion:: M-TAB knows what you need
167 * Customization:: Adapting Org-mode to your taste
168 * FAQ:: Frequently asked questions
169 * Interaction:: Other Emacs packages
170 * Bugs:: Things which do not work perfectly
171 * Acknowledgments:: These people provided feedback and more
172
173 @end detailmenu
174 @end menu
175
176 @node Introduction, Document Structure, Top, Top
177 @chapter Introduction
178 @cindex introduction
179
180 @menu
181 * Summary:: Brief summary of what Org-mode does
182 * Installation and Activation:: How to install Org-mode
183 * Feedback:: Bug reportes, ideas, patches etc.
184 @end menu
185
186 @node Summary, Installation and Activation, Introduction, Introduction
187 @section Summary
188 @cindex summary
189
190 Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
191 project planning with a fast and effective plain-text system.
192
193 Org-mode develops organizational tasks around NOTES files that contain
194 information about projects as plain text. Org-mode is implemented on
195 top of outline-mode, which makes it possible to keep the content of
196 large files well structured. Visibility cycling and structure editing
197 help to work with the tree. Tables are easily created with a built-in
198 table editor. Org-mode supports ToDo items, deadlines, time stamps,
199 and scheduling. It dynamically compiles entries into an agenda that
200 utilizes and smoothly integrates much of the Emacs calendar and diary.
201 Plain text URL-like links connect to websites, emails, usenet
202 messages, BBDB entries, and any files related to the projects. For
203 printing and sharing of notes, an Org-mode file can be exported as a
204 structured ASCII file, or as HTML.
205
206 Org-mode keeps simple things simple. Not every outline branch needs
207 to be an action item, not every action item needs to have priority or
208 scheduling information associated with it. Org-mode can be used on
209 different levels and in different ways, for example
210
211 @example
212 @r{@bullet{} as an outline extension with visibility cycling and structure editing}
213 @r{@bullet{} as an ASCII system and table editor to take structured notes}
214 @r{@bullet{} as an ASCII table editor with some spreadsheet-like capabilities}
215 @r{@bullet{} as a simple hypertext system, with HTML export}
216 @r{@bullet{} as a TODO list editor}
217 @r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
218 @end example
219
220 The Org-mode table editor can be integrated into any major mode by
221 activating the minor Orgtbl-mode.
222
223 There is a website for Org-mode which provides links to the newest
224 version of Org-mode, as well as additional information, screen shots
225 and example files. This page is located at
226 @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
227
228 @page
229
230 @node Installation and Activation, Feedback, Summary, Introduction
231 @section Installation and Activation
232 @cindex installation
233 @cindex autoload
234 @cindex global keybindings
235 @cindex keybindings, global
236
237 If Org-mode is part of the Emacs distribution or an XEmacs package,
238 you only need to copy the following lines to your @file{.emacs} file.
239 The last two lines define @emph{global} keys for the commands
240 @command{org-store-link} and @command{org-agenda} - please choose
241 suitable keys yourself.
242
243 @lisp
244 ;; The following lines are always needed. Choose your own keys.
245 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
246 (define-key global-map "\C-cl" 'org-store-link)
247 (define-key global-map "\C-ca" 'org-agenda)
248 @end lisp
249
250 If you have downloaded Org-mode from the Web, you must byte-compile
251 @file{org.el} and put it on your load path. In addition to the Emacs
252 Lisp lines above, you also need to add the following lines to
253 @file{.emacs}:
254
255 @lisp
256 ;; These lines only if org-mode is not part of the X/Emacs distribution.
257 (autoload 'org-mode "org" "Org mode" t)
258 (autoload 'org-diary "org" "Diary entries from Org mode")
259 (autoload 'org-agenda "org" "Multi-file agenda from Org mode" t)
260 (autoload 'org-store-link "org" "Store a link to the current location" t)
261 (autoload 'orgtbl-mode "org" "Org tables as a minor mode" t)
262 (autoload 'turn-on-orgtbl "org" "Org tables as a minor mode")
263 @end lisp
264
265 @cindex org-mode, turning on
266 With this setup, all files with extension @samp{.org} will be put into
267 Org-mode. As an alternative, make the first line of a file look like
268 this:
269
270 @example
271 MY PROJECTS -*- mode: org; -*-
272 @end example
273
274 @noindent which will select Org-mode for this buffer no matter what
275 the file's name is. See also the variable
276 @code{org-insert-mode-line-in-empty-file'}.
277
278 @node Feedback, , Installation and Activation, Introduction
279 @section Feedback
280 @cindex feedback
281 @cindex bug reports
282 @cindex maintainer
283 @cindex author
284
285 If you find problems with Org-mode, or if you have questions, remarks,
286 or ideas about it, please contact the maintainer Carsten Dominik at
287 @value{MAINTAINEREMAIL}.
288
289 For bug reports, please provide as much information as possible,
290 including the version information of Emacs (@kbd{C-h v emacs-version
291 @key{RET}}) and Org-mode (@kbd{M-x org-version}), as well as the
292 Org-mode related setup in @file{.emacs}. If an error occurs, a
293 traceback can be very useful. Often a small example file helps, along
294 with clear information about:
295 @enumerate
296 @item What exactly did you do?
297 @item What did you expect to happen?
298 @item What happened instead?
299 @end enumerate
300 @noindent Thanks for helping to improve this mode.
301
302 @node Document Structure, Tables, Introduction, Top
303 @chapter Document Structure
304 @cindex document structure
305 @cindex structure of document
306
307 Org-mode is based on outline mode and provides flexible commands to
308 edit the structure of the document.
309
310 @menu
311 * Outlines:: Org-mode is based on outline-mode
312 * Headlines:: How to typeset org-tree headlines
313 * Visibility cycling:: Show ad hide, much simplified
314 * Motion:: Jumping to other headlines
315 * Structure editing:: Changing sequence and level of headlines
316 * Archiving:: Move done task trees to a different place
317 * Sparse trees:: Matches embedded in context
318 @end menu
319
320 @node Outlines, Headlines, Document Structure, Document Structure
321 @section Outlines
322 @cindex outlines
323 @cindex outline-mode
324
325 Org-mode is implemented on top of outline-mode. Outlines allow to
326 organize a document in a hierarchical structure, which (at least for
327 me) is the best representation of notes and thoughts. Overview over
328 this structure is achieved by folding (hiding) large parts of the
329 document to show only the general document structure and the parts
330 currently being worked on. Org-mode greatly simplifies the use of
331 outlines by compressing the entire show/hide functionality into a
332 single command @command{org-cycle}, which is bound to the @key{TAB}
333 key.
334
335 @node Headlines, Visibility cycling, Outlines, Document Structure
336 @section Headlines
337 @cindex headlines
338 @cindex outline tree
339
340 Headlines define the structure of an outline tree. The Headlines in
341 Org-mode start with one or more stars, for example
342
343 @example
344 * Top level headline
345 ** Second level
346 *** 3rd level
347 some text
348 *** 3rd level
349 more text
350 * Another top level headline
351 @end example
352
353 @node Visibility cycling, Motion, Headlines, Document Structure
354 @section Visibility cycling
355 @cindex visibility cycling
356 @cindex trees, visibility
357
358 Outlines make it possible to hide parts of the text in the buffer.
359 Org-mode uses a single command bound to the @key{TAB} key to change
360 the visibility in the buffer.
361
362 @cindex subtree visibility states
363 @cindex folded, subtree visibility state
364 @cindex children, subtree visibility state
365 @cindex subtree, subtree visibility state
366 @table @kbd
367 @kindex @key{TAB}
368 @item @key{TAB}
369 Rotate current subtree between the states
370 @example
371 ,-> FOLDED -> CHILDREN -> SUBTREE --.
372 '-----------------------------------'
373 @end example
374 At the beginning of the buffer (or when called with @kbd{C-u}), this does
375 the same as the command @kbd{S-@key{TAB}} below.
376
377 @cindex global visibility states
378 @cindex overview, global visibility state
379 @cindex contents, global visibility state
380 @cindex show all, global visibility state
381 @kindex S-@key{TAB}
382 @item S-@key{TAB}
383 Rotate the entire buffer between the states
384 @example
385 ,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
386 '--------------------------------------'
387 @end example
388 Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field.
389
390 @cindex show all, command
391 @kindex C-c C-a
392 @item C-c C-a
393 Show all.
394 @end table
395
396 When Emacs first visits an Org-mode file, the global state is set to
397 OVERVIEW, i.e. only the top level headlines are visible. This can be
398 configured through the variable @code{org-startup-folded}, or on a
399 per-file basis by adding one of the following lines anywhere in the
400 buffer:
401
402 @example
403 #+STARTUP: fold
404 #+STARTUP: nofold
405 #+STARTUP: content
406 @end example
407
408 @node Motion, Structure editing, Visibility cycling, Document Structure
409 @section Motion
410 @cindex motion, between headlines
411 @cindex jumping, to headlines
412 The following commands jump to other headlines in the buffer.
413
414 @table @kbd
415 @kindex C-c C-n
416 @item C-c C-n
417 Next heading.
418 @kindex C-c C-p
419 @item C-c C-p
420 Previous heading.
421 @kindex C-c C-f
422 @item C-c C-f
423 Next heading same level.
424 @kindex C-c C-b
425 @item C-c C-b
426 Previous heading same level.
427 @kindex C-c C-u
428 @item C-c C-u
429 Backward to higher level heading.
430 @kindex C-c C-j
431 @item C-c C-j
432 Jump to a different place without changing the current outline
433 visibility. Shows the document structure in a temporary buffer, where
434 you can use visibility cycling (@key{TAB}) to find your destination.
435 After pressing @key{RET}, the cursor moves to the selected location in
436 the original buffer, and the headings hierarchy above it is made
437 visible.
438 @end table
439
440 @node Structure editing, Archiving, Motion, Document Structure
441 @section Structure editing
442 @cindex structure editing
443 @cindex headline, promotion and demotion
444 @cindex promotion, of subtrees
445 @cindex demotion, of subtrees
446 @cindex subtree, cut and paste
447 @cindex pasting, of subtrees
448 @cindex cutting, of subtrees
449 @cindex copying, of subtrees
450
451 @table @kbd
452 @kindex M-@key{RET}
453 @item M-@key{RET}
454 Insert new heading with same level as current
455 @kindex M-S-@key{RET}
456 @item M-S-@key{RET}
457 Insert new TODO entry with same level as current heading.
458 @kindex M-@key{left}
459 @item M-@key{left}
460 Promote current heading by one level
461 @kindex M-@key{right}
462 @item M-@key{right}
463 Demote current heading by one level
464 @kindex M-S-@key{left}
465 @item M-S-@key{left}
466 Promote the current subtree by one level
467 @kindex M-S-@key{right}
468 @item M-S-@key{right}
469 Demote the current subtree by one level
470 @kindex M-S-@key{up}
471 @item M-S-@key{up}
472 Move subtree up (swap with previous subtree of same level)
473 @kindex M-S-@key{down}
474 @item M-S-@key{down}
475 Move subtree down (swap with next subtree of same level)
476 @kindex C-c C-h C-w
477 @item C-c C-h C-w
478 Kill subtree, i.e. remove it from buffer but save in kill ring.
479 @kindex C-c C-h M-w
480 @item C-c C-h M-w
481 Copy subtree to kill ring.
482 @kindex C-c C-h C-y
483 @item C-c C-h C-y
484 Yank subtree from kill ring. This does modify the level of the subtree to
485 make sure the tree fits in nicely at the yank position. The yank
486 level can also be specified with a prefix arg, or by yanking after a
487 headline marker like @samp{****}.
488 @end table
489
490 @cindex region, active
491 @cindex active region
492 @cindex transient-mark-mode
493 When there is an active region (transient-mark-mode), promotion and
494 demotion work on all headlines in the region. To select a region of
495 headlines, it is best to place both point and mark at the beginning of a
496 line, mark at the beginning of the first headline, and point at the line
497 just after the last headline to change. Note that when the cursor is
498 inside a table (@pxref{Tables}), the Meta-Cursor keys have different
499 functionality.
500
501 @node Archiving, Sparse trees, Structure editing, Document Structure
502 @section Archiving
503 @cindex archiving
504
505 When a project represented by a (sub)tree is finished, you may want
506 to move the tree to an archive place, either in the same file under a
507 special top-level heading, or even to a different file.
508 @table @kbd
509 @kindex C-c $
510 @item @kbd{C-c $}
511 Archive the subtree starting at the cursor position to the location
512 given by @code{org-archive-location}.
513 @end table
514
515 @cindex archive locations
516 The default archive is a file in the same directory as the current
517 file, with the name derived by appending @file{_archive} to the
518 current file name. For information and examples on how to change
519 this, see the documentation string of the variable
520 @code{org-archive-location}. If you are also using the Org-mode
521 agenda, archiving to a different file is a good way to keep archived
522 trees from contributing agenda items.
523
524 @node Sparse trees, , Archiving, Document Structure
525 @section Sparse trees
526 @cindex sparse trees
527 @cindex trees, sparse
528 @cindex folding, sparse trees
529 @cindex occur, command
530
531 An important feature of Org-mode is the ability to construct
532 @emph{sparse trees} for selected information in an outline tree. A
533 sparse tree means that the entire document is folded as much as
534 possible, but the selected information is made visible along with the
535 headline structure above it@footnote{See also the variable
536 @code{org-show-following-heading}.}. Just try it out and you will see
537 immediately how it works.
538
539 Org-mode contains several commands creating such trees. The most
540 basic one is @command{org-occur}:
541
542 @table @kbd
543 @kindex C-c /
544 @item C-c /
545 Occur. Prompts for a regexp and shows a sparse tree with all matches.
546 If the match is in a headline, the headline is made visible. If the
547 match is in the body of an entry, headline and body are made visible.
548 In order to provide minimal context, also the full hierarchy of
549 headlines above the match is shown, as well as the headline following
550 the match.
551 @end table
552
553 Other commands are using this feature as well. For example @kbd{C-c
554 C-v} creates a sparse TODO tree (@pxref{TODO basics}).
555
556 @kindex C-c C-x v
557 @cindex printing sparse trees
558 @cindex visible text, printing
559 To print a sparse tree, you can use the Emacs command
560 @code{ps-print-buffer-with-faces} which does not print invisible parts
561 of the document @footnote{This does not work under XEmacs, because
562 XEmacs uses selective display for outlining, not text properties}.
563 Or you can use the command @kbd{C-c C-x v} to copy the visible part of
564 the document to another file (extension @file{.txt}) which then can be
565 printed in any desired way.
566
567 @node Tables, Hyperlinks, Document Structure, Top
568 @chapter Tables
569 @cindex tables
570
571 Org-mode has a very fast and intuitive table editor built-in.
572 Spreadsheet-like calculations are supported in connection with the
573 Emacs @file{calc} package.
574
575 @menu
576 * Built-in table editor:: Simple tables
577 * Table calculations:: Compute a field from other fields
578 * orgtbl-mode:: The table editor as minor mode
579 * table.el:: Complex tables
580 @end menu
581
582 @node Built-in table editor, Table calculations, Tables, Tables
583 @section The built-in table editor
584 @cindex table editor, builtin
585
586 Org-mode makes it easy to format tables in plain ASCII. Any line with
587 @samp{|} as the first non-white character is considered part of a
588 table. @samp{|} is also the column separator. A table might look
589 like this:
590
591 @example
592 | Name | Phone | Age |
593 |-------+-------+-----|
594 | Peter | 1234 | 17 |
595 | Anna | 4321 | 25 |
596 @end example
597
598 A table is re-aligned automatically each time you press @key{TAB} or
599 @key{RET} or @kbd{C-c C-c} inside the table. @key{TAB} also moves to
600 the next field (@key{RET} to the next row) and creates new table rows
601 at the end of the table or before horizontal lines. The indentation
602 of the table is set by the first line. Any line starting with
603 @samp{|-} is considered as a horizontal separator line and will be
604 expanded on the next re-align to span the whole table width. So, to
605 create the above table, you would only type
606
607 @example
608 |Name|Phone|Age
609 |-
610 @end example
611
612 @noindent and then press @key{TAB} to align the table and start filling in
613 fields.
614
615 @table @kbd
616 @tsubheading{Creation and conversion}
617 @item M-x org-table-create
618 Creates an empty Org-mode table. However, it is much easier to just
619 start typing, like @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}
620
621 @kindex C-c C-c
622 @item C-c C-c
623 Convert region to table. Works when the cursor is not in an existing
624 table, and when there is a region defined. If every line contains at
625 least one TAB character, the function assumes that the material is tab
626 separated. If not, lines are split at whitespace into fields. You
627 can use a prefix argument to indicate how many consecutive spaces are
628 at least required to indicate a field separator (default: just one).
629
630 @tsubheading{Re-aligning and field motion}
631 @kindex C-c C-c
632 @item C-c C-c
633 Re-align the table without moving the cursor.
634
635 @kindex @key{TAB}
636 @item @key{TAB}
637 Re-align the table, move to the next field. Creates a new row if
638 necessary.
639
640 @kindex S-@key{TAB}
641 @item S-@key{TAB}
642 Re-align, move to previous field.
643
644 @kindex @key{RET}
645 @item @key{RET}
646 Re-align the table and move down to next row. Creates a new row if
647 necessary. At the beginning or end of a line, @key{RET} still does
648 NEWLINE, so it can be used to split a table.
649
650 @tsubheading{Column and row editing}
651 @kindex M-@key{left}
652 @kindex M-@key{right}
653 @item M-@key{left}
654 @itemx M-@key{right}
655 Move the current column left/right
656
657 @kindex M-S-@key{left}
658 @item M-S-@key{left}
659 Kill the current column.
660
661 @kindex M-S-@key{right}
662 @item M-S-@key{right}
663 Insert a new column to the left of the cursor position.
664
665 @kindex M-@key{up}
666 @kindex M-@key{down}
667 @item M-@key{up}
668 @itemx M-@key{down}
669 Move the current row up/down
670
671 @kindex M-S-@key{up}
672 @item M-S-@key{up}
673 Kill the current row or horizontal line.
674
675 @kindex M-S-@key{down}
676 @item M-S-@key{down}
677 Insert a new row above (with arg: below) the current row.
678
679 @kindex C-c -
680 @item C-c -
681 Insert a horizontal line below current row. With prefix arg, the line
682 is created above the current line.
683
684 @tsubheading{Regions}
685 @kindex C-c C-h M-w
686 @item C-c C-h M-w
687 Copy a rectangular region from a table to a special clipboard. Point
688 and mark determine edge fields of the rectangle. The process ignores
689 horizontal separator lines.
690 @kindex C-c C-h C-w
691 @item C-c C-h C-w
692 Copy a rectangular region from a table to a special clipboard, and
693 blank all fields in the rectangle. So this is the ``cut'' operation.
694 @kindex C-c C-h C-y
695 @item C-c C-h C-y
696 Paste a rectangular region into a table.
697 The upper right corner ends up in the current field. All involved fields
698 will be overwritten. If the rectangle does not fit into the present table,
699 the table is enlarged as needed. The process ignores horizontal separator
700 lines.
701 @kindex C-c C-q
702 @item C-c C-q
703 Wrap several fields in a column like a paragraph. If there is an active
704 region, and both point and mark are in the same column, the text in the
705 column is wrapped to minimum width for the given number of lines. A
706 prefix ARG may be used to change the number of desired lines. If there
707 is no region, the current field is split at the cursor position and the
708 text fragment to the right of the cursor is prepended to the field one
709 line down. If there is no region, but you specify a prefix ARG, the
710 current field gets blank, and the content is appended to the field
711 above.
712
713 @tsubheading{Calculations}
714 @cindex formula, in tables
715 @cindex calculations, in tables
716 @kindex C-c =
717 @item C-c =
718 Replace current field with the result of a formula. When called with a
719 @kbd{C-u} prefix, apply the equation in the current field and down
720 through the current column to a horizonal separator line or the end of
721 the table. For details, see @ref{Table calculations}.
722
723 @kindex C-c *
724 @item C-c *
725 Recalculate the current row by applying the stored formulas from left
726 to right. When called with a @kbd{C-u} prefix, recalculate the
727 entire table, starting with the first non-header line (i.e. below the
728 first horizontal separator line). For details, see @ref{Table calculations}.
729
730 @kindex C-#
731 @item C-#
732 Rotate the recalculation mark in first column through the states
733 @samp{}, @samp{#}, @samp{*}, @samp{!}, @samp{$}. For the meaning of
734 these marks see @ref{Table calculations}. When there is an active
735 region, change all marks in the region.
736
737 @kindex C-c ?
738 @item C-c ?
739 Which table column is the cursor in? Displays number >0 in echo
740 area.
741
742 @cindex region, active
743 @cindex active region
744 @cindex transient-mark-mode
745 @kindex C-c +
746 @item C-c +
747 Sum the numbers in the current column, or in the rectangle defined by
748 the active region. The result is shown in the echo area and can
749 be inserted with @kbd{C-y}.
750
751 @kindex S-@key{RET}
752 @item S-@key{RET}
753 When current field is empty, copy from first non-empty field above.
754 When not empty, copy current field down to next row and move cursor
755 along with it. Depending on the variable
756 @code{org-table-copy-increment}, integer field values will be
757 incremented during copy. This key is also used by CUA-mode
758 (@pxref{Interaction}).
759
760 @tsubheading{Miscellaneous}
761 @kindex C-c |
762 @item C-c |
763 Toggle the visibility of vertical lines in tables. The lines are
764 still there, only made invisible with a text property. Any @samp{|}
765 added by hand will become invisible on the next align.
766
767 @item M-x org-table-import
768 Import a file as a table. The table should be TAB- or whitespace
769 separated. Useful for example to import an Excel table or data from a
770 database, because these programs generally can write TAB-separated text
771 files. This command works by inserting the file into the buffer and
772 then converting the region to a table. Any prefix argument is passed on
773 to the converter, which uses it to determine the separator.
774
775 @item M-x org-table-export
776 Export the table as a TAB-separated file. Useful for data exchange with
777 for example Excel or database programs.
778
779 @end table
780
781 If you don't like the automatic table editor because it gets into your
782 way in lines which you would like to start with @samp{|}, you can turn
783 it off with
784 @lisp
785 (setq org-enable-table-editor nil)
786 @end lisp
787 @noindent The only table command which then still works is
788 @kbd{C-c C-c} to do a manual re-align.
789
790 @node Table calculations, orgtbl-mode, Built-in table editor, Tables
791 @section Calculations in tables
792 @cindex calculations, in tables
793
794 While the Org-mode table editor misses many features of a full
795 spreadsheet, it nevertheless has very useful capabilities to compute
796 fields. In horizontal direction, it can use complex expressions to
797 compute a field from other fields @emph{in the same row}, using named
798 columns, constants and parameters. The Emacs @file{calc} package is
799 required for this feature to work. In vertical direction, only
800 summing is supported.
801
802 @menu
803 * Formula syntax:: How to write a formula
804 * Applying a formula:: How to get a formula executed
805 * Recalculation:: Re-applying all formulas in a table
806 * Summing:: Summing columns and rows
807 @end menu
808
809 @node Formula syntax, Applying a formula, Table calculations, Table calculations
810 @subsection Formula syntax
811
812 A formula for horizontal computations can be any algebraic expression
813 understood by the Emacs @file{calc} package. Before evaluation,
814 variable substitution takes place: @samp{$} is replaced by the field
815 the cursor is currently in, and $1..$n reference the fields in the
816 current row. @samp{$name} is interpreted as the name of a column,
817 parameter or constant. Constants are defined globally through the
818 variable @code{org-table-formula-constants}. If you have the
819 @file{constants.el} package, it will also be used to resolve
820 constants, including natural constants like @samp{$k} for Plancks
821 constant, units like @samp{$km} for kilometers. Column names and
822 parameters can be specified in special table lines. These are
823 described below, see @ref{Recalculation}.
824
825 A formula can contain an optional mode string after a semicolon. This
826 string consists of flags to influence calc's modes@footnote{By
827 default, Org-mode uses the standard calc modes (precision 12, angular
828 units degrees, fraction and symbolic modes off). However, the display
829 format which has been changed to @code{(float 5)} to keep tables
830 compact. The default settings can be configured using the variable
831 @code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to
832 switch the internal precision to 20 digits, @samp{n3}, @samp{s3},
833 @samp{e2} or @samp{f4} to switch to normal, scientific, engineering,
834 or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F},
835 and @samp{S} to turn on degrees, radians, fraction and symbolic modes,
836 respectively. In addition, you may provide a @code{printf} specifier
837 to reformat the final result. A few examples:
838 @example
839 $1+$2 @r{Sum of first and second field}
840 $1+$2;%.2f @r{Same, format result to two decimals}
841 exp($2)+exp($1) @r{Math functions can be used}
842 $;%.1f @r{Reformat current cell to 1 decimal}
843 ($3-32)*5/9 @r{degrees F -> C conversion}
844 $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}}
845 tan($1);Dp3s1 @r{compute in degrees, precision 3, display SCI 1}
846 vmean($2..$7) @r{compute column range mean, using vector function}
847 taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
848 @end example
849
850 @node Applying a formula, Recalculation, Formula syntax, Table calculations
851 @subsection Applying a formula
852
853 To apply a formula to a field, type it directly into the field,
854 preceded by an equal sign, like @samp{=$1+$2}. When you press
855 @key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the
856 field, the formula will be evaluated and replaced with the result. If
857 the field contains only @samp{=}, the formula most recently applied
858 anywhere in the @emph{same column} will be used.
859
860 For each column, Org-mode will remember the most recently used
861 formula. The information is stored in a special line directly below
862 the table. When adding/deleting/moving columns with the appropriate
863 commands, the stored equations will be modified accordingly. When a
864 column used in a calculation is removed, references to this column
865 become invalid and will cause an error upon applying the equation.
866
867 Instead of typing an equation into the field, you may also use the
868 command @kbd{C-c =}. It prompts for a formula (with default taken
869 from the @samp{#+TBLFM:} line) and applies it to the current field.
870 If you use a prefix argument (i.e. @kbd{C-u C-c =}), the formula will
871 be applied to the current field and down to the next separator line
872 or the end of the table. A numerical prefix will apply it to that
873 many fields in the current column.
874
875 When the evaluation of a formula leads to an error, the field content
876 becomes the string @samp{#ERROR}. If you would like see what is going
877 on during variable substitution and calculation in order to find a
878 bug, turn on formula debugging in the menu and repeat the calculation
879 by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field.
880 Detailed information will be displayed.
881
882 @node Recalculation, Summing, Applying a formula, Table calculations
883 @subsection Recalculation
884
885 To recompute all the fields in a line, use the command @kbd{C-c *}.
886 It re-applies all stored equations to the current row, from left to
887 right. With a @kbd{C-u} prefix, this will be done to every line in
888 the table, so use this command it you want to make sure the entire
889 table is up-to-date. A more automatic way of recalculating the
890 current line requires marking the line: If the first column of a row
891 contains only @samp{#}, the row will be re-computed with every
892 @key{TAB}, @key{RET}, and @kbd{C-c C-c} in this row. Here is an
893 example of a table that collects exam results of students, with some
894 rows activated for semi-automatic computations.
895
896 @example
897 @group
898 |---+---------+--------+--------+--------+-------+------|
899 | | Student | Prob 1 | Prob 2 | Prob 3 | Total | Note |
900 |---+---------+--------+--------+--------+-------+------|
901 | ! | | P1 | P2 | P3 | Tot | |
902 | # | Maximum | 10 | 15 | 25 | 50 | 10.0 |
903 | ^ | | m1 | m2 | m3 | mt | |
904 |---+---------+--------+--------+--------+-------+------|
905 | # | Peter | 10 | 8 | 23 | 41 | 8.2 |
906 | # | Sara | 7 | 14 | 19 | 40 | 8.0 |
907 | # | Sam | 2 | 4 | 3 | 9 | 1.8 |
908 |---+---------+--------+--------+--------+-------+------|
909 | $ | max=50 | | | | | |
910 |---+---------+--------+--------+--------+-------+------|
911 #+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f
912 @end group
913 @end example
914 @noindent
915 The example also demonstrates a number of features:
916 @enumerate
917 @item
918 If the first field of a row contains only @samp{!}, this row defines
919 @emph{names} for the different columns so that you can write
920 @samp{$Tot} instead of @samp{$6} --- useful in larger tables,
921 when counting columns becomes error prone.
922 @item
923 If the first field of a row contains only @samp{$}, fields in this row
924 can define @emph{parameters} for formulas. For example, if a field in
925 a @samp{$} row contains @samp{max=50}, then formulas in this table can
926 refer to the value 50 using @samp{$max}. Parameters work exactly like
927 constants, only that they can be defined on a per-table basis.
928 Changing a parameter and then recalculating the table can be useful
929 and fun.
930 @item
931 It the first field contains only @samp{^}, fields in this row define
932 names for the fields in the row above, for example @samp{$m1} for
933 @samp{10}. Similarly, if the marking character is @samp{_}, the names
934 are valie for the fields in the row below.
935 @item
936 A column range @samp{$P1..$P3} is expanded to a vector, so that calc's
937 vector functions (in this case @samp{vsum}, but there are many more)
938 can be applied to ranges. For a range, columns may be referenced by
939 name or number, in either sequence.
940 @end enumerate
941
942 @noindent If a table contains any line with @samp{#} as the
943 first field, @kbd{C-u C-c *} will only change the marked lines and
944 leave all unmarked lines alone. You can also mark a line with
945 @samp{*}. These lines will also be recalculated with @kbd{C-u C-c *},
946 but not upon @key{TAB} and @key{RET}. Use this for lines which are
947 slow to calculate.
948
949 Just to wet your appetite on what can be done with the fantastic
950 @file{calc} package, here is a table that computes the Taylor series
951 for a couple of functions (homework: try that with Excel :-)
952
953 @example
954 @group
955 |---+-------------+---+-----+--------------------------------------|
956 | | Func | n | x | Result |
957 |---+-------------+---+-----+--------------------------------------|
958 | # | exp(x) | 1 | x | 1 + x |
959 | # | exp(x) | 2 | x | 1 + x + x^2 / 2 |
960 | # | exp(x) | 3 | x | 1 + x + x^2 / 2 + x^3 / 6 |
961 | # | x^2+sqrt(x) | 2 | x=0 | x*(0.5 / 0) + x^2 (2 - 0.25 / 0) / 2 |
962 | # | x^2+sqrt(x) | 2 | x=1 | 2 + 2.5 x - 2.5 + 0.875 (x - 1)^2 |
963 | * | tan(x) | 3 | x | 0.0175 x + 1.77e-6 x^3 |
964 |---+-------------+---+-----+--------------------------------------|
965 #+TBLFM: $5=taylor($2,$4,$3);n3
966 @end group
967 @end example
968
969 @node Summing, , Recalculation, Table calculations
970 @subsection Summing
971
972 Finally, when typing a formula into a field, a number of special
973 keywords execute predefined sums over the current row or column and
974 enter the result into the current field. These calculations are
975 one-off, the formula is not stored, and you will neet to re-enter it
976 in order to compute again.
977
978 @example
979 = @r{Execute the stored formula valid in this column.}
980 =sum @r{Sum all fields above the current (alias @code{=sumv}).}
981 =sumh @r{Sum all fields to the left of the current field.}
982 =sum3 @r{Same as @samp{=sum}, but use just 3 fields above current.}
983 @end example
984
985 @node orgtbl-mode, table.el, Table calculations, Tables
986 @section The Orgtbl minor mode
987 @cindex orgtbl-mode
988 @cindex minor mode for tables
989
990 If you like the intuitive way the Org-mode table editor works, you
991 might want to use it also in other modes like text-mode or mail-mode.
992 The minor mode Orgtbl-mode makes this possible. You can always toggle
993 the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for
994 example in mail mode, use
995 @lisp
996 (add-hook 'mail-mode-hook 'turn-on-orgtbl)
997 @end lisp
998
999 @node table.el, , orgtbl-mode, Tables
1000 @section The @file{table.el} package
1001 @kindex C-c C-c
1002 @cindex table editor, @file{table.el}
1003 @cindex @file{table.el}
1004
1005 Complex ASCII tables with automatic line wrapping, column- and
1006 row-spanning, and alignment can be created using the Emacs table
1007 package by Takaaki Ota (@uref{http://sourceforge.net/projects/table}).
1008 When @key{TAB} or @kbd{C-c C-c} is pressed in such a table, Org-mode
1009 will call @command{table-recognize-table} and move the cursor into the
1010 table. Inside a table, the keymap of Org-mode is inactive. In order
1011 to execute Org-mode-related commands, leave the table.
1012
1013 @table @kbd
1014 @kindex C-c C-c
1015 @item C-c C-c
1016 Recognize @file{table.el} table. Works when the cursor is in a
1017 table.el table.
1018
1019 @kindex C-c ~
1020 @item C-c ~
1021 Insert a table.el table. If there is already a table at point, this
1022 command converts it between the table.el format and the Org-mode
1023 format. See the documentation string of the command
1024 @code{org-convert-table} for the restrictions under which this is
1025 possible.
1026 @end table
1027
1028 @node Hyperlinks, TODO items, Tables, Top
1029 @chapter Hyperlinks
1030 @cindex hyperlinks
1031
1032 Just like HMTL, Org-mode provides links to other files, usenet
1033 articles, emails and much more.
1034
1035 @menu
1036 * Links:: URL-like links to the world
1037 * Remember:: Org-trees store quick notes
1038 @end menu
1039
1040 @node Links, Remember, Hyperlinks, Hyperlinks
1041 @section Links
1042 @cindex links
1043 @cindex GNUS links
1044 @cindex BBDB links
1045 @cindex URL links
1046 @cindex file links
1047 @cindex VM links
1048 @cindex RMAIL links
1049 @cindex WANDERLUST links
1050 @cindex USENET links
1051 @cindex SHELL links
1052
1053 Org-mode supports links to files, websites, usenet and email messages;
1054 and BBDB database entries. Links are just plain-text URL-like
1055 locators, optionally enclosed by angular brackets. The following list
1056 shows examples for each link type.
1057
1058 @example
1059 <http://www.astro.uva.nl/~dominik> @r{on the web}
1060 <file:/home/dominik/images/jupiter.jpg> @r{file, absolute path}
1061 <file:papers/last.pdf> @r{file, relative path}
1062 <file:~/code/main.c:255> @r{file, with line number}
1063 <news:comp.emacs> @r{Usenet link}
1064 <mailto:adent@@galaxy.net> @r{Mail link}
1065 <vm:folder> @r{VM folder link}
1066 <vm:folder#id> @r{VM message link}
1067 <vm://myself@@some.where.org/folder#id> @r{VM on remote machine}
1068 <wl:folder> @r{WANDERLUST folder link}
1069 <wl:folder#id> @r{WANDERLUST message link}
1070 <rmail:folder> @r{RMAIL folder link}
1071 <rmail:folder#id> @r{RMAIL message link}
1072 <gnus:group> @r{GNUS group link}
1073 <gnus:group#id> @r{GNUS article link}
1074 <bbdb:Richard Stallman> @r{BBDB link}
1075 <shell:ls *.org>@footnote{Note that @samp{<} and @samp{>} cannot be part of a link, and therefore of a shell command. If you need redirection, use @@@{ and @@@} instead.} @r{A shell command}
1076 @end example
1077
1078 A link may contain space characters and is terminated by @samp{>} or by
1079 the end of a line. In tables, the end of a table field also terminates
1080 a link. Angle brackets around a link are not required, but are
1081 recommended to avoid problems with punctuation and other text following
1082 the link. See also the variable @code{org-allow-space-in-links}.
1083
1084 @cindex storing links
1085 @table @kbd
1086 @kindex C-c l
1087 @item C-c l
1088 Store a link to the current location. This is a @emph{global} command
1089 which can be used in any buffer to create a link. The link will be
1090 stored for later insertion into an Org-mode buffer (see below). For VM,
1091 RMAIL, WANDERLUST, GNUS and BBDB buffers, the link will point to the
1092 current article/entry. For W3 and W3M buffer, the link goes to the
1093 current URL. For any other files, the link will just point to the file.
1094 The key binding @kbd{C-c l} is only a suggestion - see
1095 @ref{Installation and Activation}.
1096
1097 @kindex C-c C-l
1098 @cindex completion, of links
1099 @cindex completion, of file names
1100 @item C-c C-l
1101 Insert a link. This prompts for a link to be inserted into the
1102 buffer. You can just type a link, using one of the link type prefixes
1103 mentioned in the examples above. Through completion, all links stored
1104 during the current session can be accessed. When called with prefix
1105 arg, you can use file name completion to enter a file link. The link
1106 will be formatted as given in the variable @code{org-link-format} and
1107 inserted into the buffer. Note that you don't have to use this
1108 command to insert a link. Links in Org-mode are plain text, and you
1109 can type or paste them straight into the buffer.
1110
1111 @cindex inserting links
1112 @kindex C-c C-o
1113 @item C-c C-o
1114 Open link at point. This will launch a web browser for URLs (using
1115 @command{browse-url-at-point}), run vm/gnus/bbdb for the corresponding
1116 links, execute the command in a shell link, visit text files with
1117 Emacs and select a suitable application for non-text files.
1118 Classification of files is based on file extension only. See option
1119 @code{org-file-apps}. If there is no link at point, the current
1120 subtree will be searched for one. If you want to override the default
1121 application and visit the file with Emacs, use a @kbd{C-u} prefix.
1122 If the cursor is on a time stamp, compiles the agenda for that date.
1123
1124 @strong{IMPORTANT}: Be careful not to use any dangerous commands in a
1125 shell link.
1126
1127 @kindex mouse-2
1128 @item mouse-2
1129 On links, @kbd{mouse-2} will open the link just like @kbd{C-c C-o} would.
1130
1131 @kindex mouse-3
1132 @item mouse-3
1133 Like @kbd{mouse-2}, but force file links to be opened with Emacs.
1134 @end table
1135
1136 @node Remember, , Links, Hyperlinks
1137 @section Remember
1138 @cindex @file{remember.el}
1139
1140 Another way to create org entries with links to other files is through
1141 the @emph{Remember} package by John Wiegley. @emph{Remember} lets you
1142 store quick notes with little interruption of your work flow. See
1143 @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
1144 information. The notes produced by @emph{Remember} can be stored in
1145 different ways, and Org-mode files are a good target.
1146 Org-mode allows to file away notes either to a default file, or
1147 directly to the correct location in your Org-mode outline tree. The
1148 following customization will tell @emph{Remember} to use org files as
1149 target, and to create annotations compatible with Org-mode links.
1150
1151 @c FIXME: The autoload will not be necessary when Org-mode is part of Emacs
1152 @example
1153 (autoload 'org-remember-annotation "org")
1154 (autoload 'org-remember-handler "org")
1155 (setq org-directory "~/path/to/my/orgfiles/")
1156 (setq org-default-notes-file "~/.notes")
1157 (setq remember-annotation-functions '(org-remember-annotation))
1158 (setq remember-handler-functions '(org-remember-handler))
1159 @end example
1160
1161 When you compose a note with remember, you have to press @kbd{C-c C-c}
1162 to exit remember-mode and to file away the note. The handler first
1163 prompts for a target file - if you press @key{RET}, the value of
1164 @code{org-default-notes-file} is used. Then the command offers the
1165 headings tree of the selected file. You can either immediately press
1166 @key{RET} to get the note appended to the file. Or you can use
1167 vertical cursor motion (@key{up} and @key{down}) and visibility
1168 cycling (@key{TAB}) to find a better place. Pressing @key{RET} or
1169 @key{left} or @key{right} leads to the following result.
1170
1171 @multitable @columnfractions 0.2 0.1 0.7
1172 @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
1173 @item buffer-start @tab @key{RET} @tab as level 2 heading at end of file
1174 @item on headline @tab @key{RET} @tab as sublevel of the heading at cursor
1175 @item @tab @key{left} @tab as same level, before current heading
1176 @item @tab @key{right} @tab as same level, after current heading
1177 @item not on headline @tab @key{RET}
1178 @tab at cursor position, level taken from context.
1179 Or use prefix arg to specify level manually.
1180 @end multitable
1181
1182 So a fast way to store the note is to press @kbd{C-c C-c @key{RET}
1183 @key{RET}} to append it to the default file. Even shorter would be
1184 @kbd{C-u C-c C-c}, which does the same without even showing the tree.
1185 But with little extra effort, you can push it directly to the correct
1186 location.
1187
1188 Before inserting the text into a tree, the function ensures that the
1189 text has a headline, i.e. a first line that starts with a @samp{*}.
1190 If not, a headline is constructed from the current date and some
1191 additional data. If the variable @code{org-adapt-indentation} is
1192 non-nil, the entire text is also indented so that it starts in the
1193 same column as the headline (after the asterisks).
1194
1195 @node TODO items, Timestamps, Hyperlinks, Top
1196 @chapter TODO items
1197 @cindex TODO items
1198
1199 Org-mode does not maintain TODO lists as a separate document. TODO
1200 items are an integral part of the notes file, because TODO items
1201 usually come up while taking notes! With Org-mode, you simply mark
1202 any entry in a tree as being a TODO item. In this way, the
1203 information is not duplicated, and the entire context from which the
1204 item emerged is always present when you check.
1205
1206 Of course, this technique causes TODO items to be scattered throughout
1207 your file. Org-mode provides methods to give you an overview over all
1208 things you have to do.
1209
1210 @menu
1211 * TODO basics:: Marking and displaying TODO entries
1212 * TODO extensions:: Workflow and assignments
1213 * Priorities:: Some things are more important than others
1214 @end menu
1215
1216 @node TODO basics, TODO extensions, TODO items, TODO items
1217 @section Basic TODO functionality
1218
1219 Any headline can become a TODO item by starting it with the word TODO,
1220 for example
1221
1222 @example
1223 *** TODO Write letter to Sam Fortune
1224 @end example
1225
1226 @noindent
1227 The most important commands to work with TODO entries are:
1228
1229 @table @kbd
1230 @kindex C-c C-t
1231 @item C-c C-t
1232 Rotate the TODO state of the current item between
1233 @example
1234 ,-> (unmarked) -> TODO -> DONE --.
1235 '--------------------------------'
1236 @end example
1237 The same rotation can also be done ``remotely'' from the timeline and
1238 agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
1239 @kindex C-c C-v
1240 @cindex sparse tree, for TODO
1241 @item C-c C-v
1242 View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds
1243 the entire buffer, but shows all TODO items and the headings hierarchy
1244 above them. With prefix arg, show also the DONE entries.
1245 @item C-u C-c a
1246 A @kbd{C-u} argument to the @code{org-agenda command} (@pxref{Agenda})
1247 collects all unfinished TODO items into a single place.
1248 @end table
1249
1250 @node TODO extensions, Priorities, TODO basics, TODO items
1251 @section Extended use of TODO keywords
1252 @cindex extended TODO keywords
1253
1254 The default implementation of TODO entries is just two states: TODO
1255 and DONE. You can, however, use the TODO feature for more
1256 complicated things by configuring the variables
1257 @code{org-todo-keywords} and @code{org-todo-interpretation}. Using
1258 special setup, you can even use TODO keywords in different ways in
1259 different org files.
1260
1261 @menu
1262 * Workflow states:: From TODO to DONE in steps
1263 * TODO types:: I do this, Fred the rest
1264 * Per file keywords:: Different files, different requirements
1265 @end menu
1266
1267 @node Workflow states, TODO types, TODO extensions, TODO extensions
1268 @subsection TODO keywords as workflow states
1269 @cindex TODO workflow
1270 @cindex workflow states as TODO keywords
1271
1272 You can use TODO keywords to indicate different states in the process
1273 of working on an item, for example
1274
1275 @lisp
1276 (setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE")
1277 org-todo-interpretation 'sequence)
1278 @end lisp
1279
1280 @cindex completion, of TODO keywords
1281 With this setup, the command @kbd{C-c C-t} will cycle an entry from
1282 TODO to FEEDBACK, then to VERIFY, and finally too DONE. You may also
1283 use a prefix argument to quickly select a specific state. For example
1284 @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
1285 If you define many keywords, you can use in-buffer completion (see
1286 @ref{Completion}) to insert these words into the buffer.
1287
1288 @node TODO types, Per file keywords, Workflow states, TODO extensions
1289 @subsection TODO keywords as types
1290 @cindex TODO types
1291 @cindex names as TODO keywords
1292 @cindex types as TODO keywords
1293
1294 The second possibility is to use TODO keywords to indicate different
1295 types of action items. For example, you might want to indicate that
1296 items are for ``work'' or ``home''. Or, when you work with several
1297 people on a single project, you might want to assign action items
1298 directly to persons, by using their names as TODO keywords. This
1299 would be set up like this:
1300
1301 @lisp
1302 (setq org-todo-keywords '("Fred" "Sara" "Lucy" "Mike" "DONE")
1303 org-todo-interpretation 'type)
1304 @end lisp
1305
1306 In this case, different keywords do not indicate a sequence, but
1307 rather different types. So it is normally not useful to change from
1308 one type to another. Therefore, in this case the behavior of the
1309 command @kbd{C-c C-t} is changed slightly@footnote{This is also true
1310 for the @kbd{t} command in the timeline and agenda buffers.}. When
1311 used several times in succession, it will still cycle through all
1312 names. But when when you return to the item after some time and
1313 execute @kbd{C-c C-t} again, it will switch from each name directly to
1314 DONE. Use prefix arguments or completion to quickly select a specific
1315 name.
1316
1317 @node Per file keywords, , TODO types, TODO extensions
1318 @subsection Setting up TODO keywords for individual files
1319 @cindex keyword options
1320 @cindex per file keywords
1321
1322 It can be very useful to use different aspects of the TODO mechanism
1323 in different files, which is not possible with the global settings
1324 described above. For file-local settings, you need to add special
1325 lines to the file which set the keywords and interpretation for that
1326 file only. For example, to set one of the two examples discussed
1327 above, you need one of the following lines, starting in column zero
1328 anywhere in the file:
1329
1330 @example
1331 #+SEQ_TODO: TODO FEEDBACK VERIFY DONE
1332 #+TYP_TODO: Fred Sara Lucy Mike DONE
1333 @end example
1334
1335 @cindex Completion, of option keywords
1336 @kindex M-@key{TAB}
1337 @noindent To make sure you are using the correct keyword, type
1338 @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion.
1339
1340 @cindex DONE, final TODO keyword
1341 Remember that the last keyword must always mean that the item is DONE
1342 (you may use a different word, though). Also note that in each file,
1343 only one of the two aspects of TODO keywords can be used. After
1344 changing one of these lines, use @kbd{C-c C-c} with the cursor still
1345 in the line to make the changes known to Org-mode@footnote{Org-mode
1346 parses these lines only when Org-mode is activated after visiting a
1347 file. @kbd{C-c C-c} with the cursor in a line starting with @samp{#-}
1348 is simply restarting Org-mode, making sure that these changes will be
1349 respected.}.
1350
1351 If you want to use very many keywords, for example when working with a
1352 large group of people, you may split the names over several lines:
1353
1354 @example
1355 #+TYP_TODO: Fred Sara Lucy Mike
1356 #+TYP_TODO: Luis George Jules Jessica
1357 #+TYP_TODO: Kim Arnold Peter
1358 #+TYP_TODO: DONE
1359 @end example
1360
1361 @node Priorities, , TODO extensions, TODO items
1362 @section Priorities
1363 @cindex priorities
1364
1365 If you use Org-mode extensively to organize your work, you may end up
1366 with a number of TODO entries so large that you'd like to prioritize
1367 them. This can be done by placing a @emph{priority cookie} into the
1368 headline, like this
1369
1370 @example
1371 *** TODO [#A] Write letter to Sam Fortune
1372 @end example
1373
1374 @noindent
1375 With its standard setup, Org-mode supports priorities @samp{A},
1376 @samp{B}, and @samp{C}. @samp{A} is the highest priority. An entry
1377 without a cookie is treated as priority @samp{B}. Priorities make a
1378 difference only in the agenda (@pxref{Agenda}).
1379
1380 @table @kbd
1381 @kindex @kbd{C-c ,}
1382 @item @kbd{C-c ,}
1383 Set the priority of the current item. The command prompts for a
1384 priority character @samp{A}, @samp{B} or @samp{C}. When you press
1385 @key{SPC} instead, the priority cookie is removed from the headline.
1386 The priorities can also be changed ``remotely'' from the timeline and
1387 agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
1388
1389 @kindex S-@key{up}
1390 @kindex S-@key{down}
1391 @item S-@key{up}
1392 @itemx S-@key{down}
1393 Increase/decrease priority of current item. Note that these keys are
1394 also used to modify time stamps (@pxref{Creating timestamps}).
1395 Furthermore, these keys are also used by CUA-mode
1396 (@pxref{Interaction}).
1397 @end table
1398
1399
1400
1401 @node Timestamps, Timeline and Agenda, TODO items, Top
1402 @chapter Timestamps
1403
1404 Items can be labeled with timestamps to make them useful for project
1405 planning.
1406
1407 @menu
1408 * Time stamps:: Assigning a time to a tree entry
1409 * Creating timestamps:: Commands which insert timestamps
1410 @end menu
1411
1412
1413 @node Time stamps, Creating timestamps, Timestamps, Timestamps
1414 @section Time stamps, deadlines and scheduling
1415 @cindex time stamps
1416 @cindex deadlines
1417 @cindex scheduling
1418
1419 A time stamp is a specification of a date (possibly with time) in a
1420 special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16
1421 Tue 09:39>}. A time stamp can appear anywhere in the headline or body
1422 of an org-tree entry. Its presence allows to show entries on specific
1423 dates in the agenda (@pxref{Agenda}). We distinguish:
1424
1425 @table @var
1426 @cindex timestamp
1427 @item TIMESTAMP
1428 A simple time stamp just assigns a date/time to an item. In the
1429 timeline and agenda displays, the headline of the entry will be shown
1430 exactly on that date.
1431
1432 @item TIMERANGE
1433 @cindex timerange
1434 Two time stamps connected by @samp{--} denote a time range. The
1435 headline will be shown on the first and last day of the range, and on
1436 any dates that are displayed and fall in the range. Here is an
1437 example:
1438
1439 @example
1440 ** Meeting in Amsterdam
1441 <2004-08-23 Mon>--<2004-08-26 Thu>
1442 @end example
1443
1444 @item DEADLINE
1445 @cindex DEADLINE keyword
1446 If a time stamp is preceded by the word @samp{DEADLINE:}, the task
1447 (most likely a TODO item) is supposed to be finished on that date, and
1448 it will be listed then. In addition, the compilation for @emph{today}
1449 will carry a warning about the approaching or missed deadline,
1450 starting @code{org-deadline-warning-days} before the due date, and
1451 continuing until the entry is marked DONE. An example:
1452
1453 @example
1454 *** TODO write article about the Earth for the Guide
1455 The editor in charge is <bbdb:Ford Prefect>
1456 DEADLINE: <2004-02-29 Sun>
1457 @end example
1458
1459 @item SCHEDULED
1460 @cindex DEADLINE keyword
1461 If a time stamp is preceded by the word @samp{SCHEDULED:}, it means
1462 you are planning to start working on that task on the given date. The
1463 headline will be listed under the given date. In addition, a reminder
1464 that the scheduled date has passed will be present in the compilation
1465 for @emph{today}, until the entry is marked DONE. I.e., the
1466 task will automatically be forwarded.
1467 @end table
1468
1469 @node Creating timestamps, , Time stamps, Timestamps
1470 @section Creating timestamps
1471 @cindex creating timestamps
1472
1473 For Org-mode to recognize time stamps, they need to be in the specific
1474 format. All commands listed below produce time stamps in the correct
1475 format.
1476
1477 @table @kbd
1478 @kindex C-c .
1479 @item C-c .
1480 Prompt for a date and insert a corresponding time stamp. When the
1481 cursor is at a previously used time stamp, it is updated to NOW. When
1482 this command is used twice in succession, a time range is inserted.
1483
1484 @kindex C-u C-c .
1485 @item C-u C-c .
1486 Like @kbd{C-c .}, but use the alternative format which contains date
1487 and time.
1488
1489 @kindex C-c <
1490 @item C-c <
1491 Insert a time stamp corresponding to the cursor date in the Calendar.
1492
1493 @kindex C-c >
1494 @item C-c >
1495 Access the Emacs calendar for the current date. If there is a
1496 timestamp in the current line, goto the corresponding date
1497 instead.
1498
1499 @kindex C-c C-o
1500 @item C-c C-o
1501 Access the agenda for the date given by the time stamp at point
1502 (@pxref{Agenda}).
1503
1504 @kindex C-c C-d
1505 @item C-c C-d
1506 Insert @samp{DEADLINE} keyword along with a stamp.
1507 @kindex C-c C-w
1508 @cindex sparse tree, for deadlines
1509 @item C-c C-w
1510 Create a sparse tree with all deadlines that are either past-due, or
1511 which will become due within @code{org-deadline-warning-days}.
1512 With @kbd{C-u} prefix, show all deadlines in the file. With a numeric
1513 prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows
1514 all deadlines due tomorrow.
1515
1516 @kindex C-c C-s
1517 @item C-c C-s
1518 Insert @samp{SCHEDULED} keyword along with a stamp.
1519
1520 @kindex S-@key{left}
1521 @kindex S-@key{right}
1522 @item S-@key{left}
1523 @itemx S-@key{right}
1524 Change date at cursor by one day. These key bindings conflict with
1525 CUA-mode (@pxref{Interaction}).
1526
1527 @kindex S-@key{up}
1528 @kindex S-@key{down}
1529 @item S-@key{up}
1530 @itemx S-@key{down}
1531 Change the item under the cursor in a timestamp. The cursor can be on
1532 a year, month, day, hour or minute. Note that if the cursor is not at
1533 a time stamp, these same keys modify the priority of an item.
1534 (@pxref{Priorities}). The key bindings also conflict with CUA-mode
1535 (@pxref{Interaction}).
1536
1537
1538 @kindex C-c C-y
1539 @cindex evaluate time range
1540 @item C-c C-y
1541 Evaluate a time range by computing the difference between start and
1542 end. With prefix arg, insert result after the time range (in a table:
1543 into the following column).
1544 @end table
1545
1546 @cindex date, reading in minibuffer
1547 @cindex time, reading in minibuffer
1548 @cindex calendar, for selecting date
1549 When Org-mode prompts for a date/time, the function reading your input
1550 will replace anything you choose not to specify with the current date
1551 and time. For details, see the documentation string of
1552 @command{org-read-date}. Also, a calender will pop up to allow
1553 selecting a date. The calendar can be fully controlled from the
1554 minibuffer, and a date can be selected with the following commands:
1555
1556 @table @kbd
1557 @kindex <
1558 @item <
1559 Scroll calendar backwards by one month.
1560 @kindex >
1561 @item >
1562 Scroll calendar forwards by one month.
1563 @kindex mouse-1
1564 @item mouse-1
1565 Select date by clicking on it.
1566 @kindex S-@key{right}
1567 @item S-@key{right}
1568 One day forward.
1569 @kindex S-@key{left}
1570 @item S-@key{left}
1571 One day back.
1572 @kindex S-@key{down}
1573 @item S-@key{down}
1574 One week forward.
1575 @kindex S-@key{up}
1576 @item S-@key{up}
1577 One week back.
1578 @kindex M-S-@key{right}
1579 @item M-S-@key{right}
1580 One month forward.
1581 @kindex M-S-@key{left}
1582 @item M-S-@key{left}
1583 One month back.
1584 @kindex @key{RET}
1585 @item @key{RET}
1586 Choose date in calendar (only if nothing typed into minibuffer).
1587 @end table
1588
1589 @node Timeline and Agenda, Exporting, Timestamps, Top
1590 @chapter Timeline and Agenda
1591 @cindex agenda
1592
1593 We have already described three commands to filter important
1594 information in an org file into a sparse tree (@pxref{Sparse trees}):
1595
1596 @cindex sparse trees
1597 @itemize @bullet
1598 @item
1599 The TODO tree, (@kbd{C-c C-v}), see @ref{TODO items}.
1600 @item
1601 The occur tree @kbd{C-c /}, see @ref{TODO items}.
1602 @item
1603 Checking upcoming deadlines with @kbd{C-c C-w}, see @ref{Creating
1604 timestamps}.
1605 @end itemize
1606 @noindent
1607
1608 Instead of using the sparse trees, Org-mode can also collect and
1609 time-sort the important items into a separate buffer, which we call
1610 the @emph{timeline} of the org file. It can also collect information
1611 from a @emph{list of files} and in this way provide an @emph{agenda}
1612 which covers all of your current projects, action items and
1613 appointments.
1614
1615 @menu
1616 * Timeline:: Time-sorted view for single file
1617 * Agenda:: Your weekly planner
1618 * Agenda commands:: Remote editing of org trees
1619 * Calendar/Diary integration:: Integrating Anniversaries and more
1620 @end menu
1621
1622 @node Timeline, Agenda, Timeline and Agenda, Timeline and Agenda
1623 @section Timeline for a single file
1624 @cindex single file summary
1625 @cindex agenda, for single file
1626 @cindex timeline, single file
1627 @cindex time-sorted view
1628
1629 The timeline shows all time-stamped items in a single Org-mode file,
1630 in @emph{time-sorted view}. The main purpose of this command is to
1631 give an overview over events in a project.
1632
1633 @table @kbd
1634 @kindex C-c C-r
1635 @item C-c C-r
1636 Show a time-sorted view of the org file, with all time-stamped items
1637 of today or later. When called with a @kbd{C-u} prefix, past dates
1638 will be included as well. When called with two @kbd{C-u C-u}
1639 prefixes, all unfinished TODO entries (scheduled or not) are also
1640 listed under the current date.
1641 @end table
1642 @noindent
1643
1644 The timeline is shown in a temporary buffer @file{*Org Agenda*}. The
1645 commands available in the Agenda buffer are listed in @ref{Agenda
1646 commands}.
1647
1648 @node Agenda, Agenda commands, Timeline, Timeline and Agenda
1649 @section Agenda
1650 @cindex agenda
1651
1652 An agenda can be compiled from one or more org files. The main
1653 purpose of this command is to act like a paper agenda, showing you all
1654 the tasks for the current day or week.
1655
1656 The Org-mode files to be processed in order to generate the agenda are
1657 listed in the variable @code{org-agenda-files}. You can customize
1658 this variable, but the easiest way to maintain it is through the
1659 following commands
1660
1661 @cindex files, adding to agenda list
1662 @table @kbd
1663 @kindex C-c [
1664 @item C-c [
1665 Add current file to the list of agenda files
1666 @kindex C-c ]
1667 @item C-c ]
1668 Remove current file from the list of agenda files.
1669 @end table
1670 @noindent
1671 The Org menu contains the list of all files and can be used to quickly
1672 visit any of them.
1673
1674 The global command @command{org-agenda} compiles the agenda from all
1675 listed files.
1676
1677 @table @kbd
1678 @cindex org-agenda, command
1679 @kindex C-c a
1680 @item C-c a
1681 Compile an agenda for the current week from a list of org files. The
1682 agenda shows the entries for each day. With a @kbd{C-u} prefix (or
1683 when the variable @code{org-agenda-include-all-todo} is @code{t}), all
1684 unfinished TODO items (also those without a date) are also listed at
1685 the beginning of the buffer, before the first date.@*
1686 The key binding @kbd{C-c a} is only a suggestion - see
1687 @ref{Installation and Activation}.
1688 @end table
1689
1690 The commands available in the Agenda buffer are listed in
1691 @ref{Agenda commands}.
1692
1693 @subsection Categories
1694
1695 @cindex category
1696 In the agenda buffer, each entry is preceded by a @emph{category},
1697 which is derived from the file name. The category can also be set
1698 with a special line anywhere in the buffer, looking like this:
1699 @example
1700 #+CATEGORY: Thesis
1701 @end example
1702 @noindent
1703 After changing this line, press @kbd{C-c C-c} with the cursor still in
1704 the line, to make the changes known to org-mode. Otherwise, the
1705 change will only be active the next time you visit this file with
1706 Emacs.
1707
1708 The display in the agenda buffer looks best if the category is not
1709 longer than 10 characters.
1710
1711 @subsection Time-of-Day Specifications
1712
1713 Org-mode checks each agenda item for a time-of-day specification. The
1714 time can be part of the time stamp that triggered inclusion into the
1715 agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time
1716 ranges can be specified with two time stamps, like
1717 @c
1718 @w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}.
1719
1720 In the headline of the entry itself, a time(range) may also appear as
1721 plain text (like @samp{12:45} or a @samp{8:30-1pm}. If the agenda
1722 integrates the Emacs diary (@pxref{Calendar/Diary integration}), time
1723 specifications in diary entries are recognized as well.
1724
1725 For agenda display, Org-mode extracts the time and displays it in a
1726 standard 24 hour format as part of the prefix. The example times in
1727 the previous paragraphs would end up in the agenda like this:
1728
1729 @example
1730 8:30-13:00 Arthur Dent lies in front of the bulldozer
1731 12:45...... Ford Prefect arrives and takes Arthur to the pub
1732 19:00...... The Vogon reads his poem
1733 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
1734 @end example
1735
1736 If the agenda is in single-day mode, or for the display of today, the
1737 timed entries are embedded in a time grid, like
1738
1739 @example
1740 8:00...... ------------------
1741 8:30-13:00 Arthur Dent lies in front of the bulldozer
1742 10:00...... ------------------
1743 12:00...... ------------------
1744 12:45...... Ford Prefect arrives and takes Arthur to the pub
1745 14:00...... ------------------
1746 16:00...... ------------------
1747 18:00...... ------------------
1748 19:00...... The Vogon reads his poem
1749 20:00...... ------------------
1750 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
1751 @end example
1752
1753 The time grid can be turned on and off with the variable
1754 @code{org-agenda-use-time-grid}, and can be configured with
1755 @code{org-agenda-time-grid}.
1756
1757
1758 @subsection Sorting of agenda items
1759 @cindex sorting, of agenda items
1760 @cindex priorities, of agenda items
1761 The entries for each day are sorted. The default order is to first
1762 collect all items containing an explicit time-of-day specification.
1763 These entries will be shown at the beginning of the list, as a
1764 @emph{schedule} for the day. After that, items remain grouped in
1765 categories, in the sequence given by @code{org-agenda-files}. Within
1766 each category, items are sorted by priority (@pxref{Priorities}).
1767
1768 The priority is a numerical quantity composed of the base priority
1769 (2000 for priority @samp{A}, 1000 for @samp{B}, and 0 for @samp{C}),
1770 plus additional increments for overdue scheduled or deadline items.
1771
1772 Sorting can be customized using the variable
1773 @code{org-agenda-sorting-strategy}.
1774
1775 @node Agenda commands, Calendar/Diary integration, Agenda, Timeline and Agenda
1776 @section Commands in the agenda buffer
1777
1778 Entries in the agenda buffer are linked back to the org file or diary
1779 file where they originate. You are not allowed to edit the agenda
1780 buffer itself, but commands are provided to show and jump to the
1781 original entry location, and to edit the org-files ``remotely'' from
1782 the agenda buffer. In this way, all information is stored only once,
1783 and you don't risk that your agenda and note files diverge.
1784
1785 Some commands can be executed with mouse clicks on agenda lines. For
1786 the other commands, the cursor needs to be in the desired line. Most
1787 commands are available for both timelines and the agenda. The
1788 exceptions are marked.
1789
1790 @table @kbd
1791 @tsubheading{Motion}
1792 @kindex n
1793 @item n
1794 Next line (same as @key{up}).
1795 @kindex p
1796 @item p
1797 Previous line (same as @key{down}).
1798 @tsubheading{View/GoTo org file}
1799 @kindex mouse-3
1800 @kindex @key{SPC}
1801 @item mouse-3
1802 @itemx @key{SPC}
1803 Display the original location of the item in another window.
1804
1805 @kindex l
1806 @item l
1807 Display original location and recenter that window.
1808
1809 @kindex mouse-2
1810 @kindex @key{TAB}
1811 @item mouse-2
1812 @itemx @key{TAB}
1813 Go to the original location of the item in another window.
1814
1815 @kindex @key{RET}
1816 @itemx @key{RET}
1817 Go to the original location of the item and delete other windows.
1818
1819 @kindex f
1820 @item f
1821 Toggle follow mode. In follow mode, as you move the cursor through
1822 the agenda buffer, the other window always shows the corresponding
1823 location in the org file.
1824
1825 @tsubheading{Change display}
1826 @kindex o
1827 @item o
1828 Delete other windows.
1829
1830 @kindex w
1831 @item w
1832 Switch to weekly view (7 days displayed together)
1833
1834 @kindex d
1835 @item d
1836 Switch to daily view (just one day displayed)
1837
1838 @kindex D
1839 @item D
1840 Toggle the inclusion of diary entries. See @ref{Calendar/Diary integration}.
1841
1842 @kindex g
1843 @item g
1844 Toggle the time grid on and off. See also the variables
1845 @code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}.
1846
1847 @kindex r
1848 @item r
1849 Recreate the agenda buffer, for example to reflect the changes
1850 after modification of the time stamps of items with S-@key{left} and
1851 S-@key{right}.
1852
1853 @kindex @key{right}
1854 @item @key{right}
1855 Display the following @code{org-agenda-ndays} days. For example, if
1856 the display covers a week, switch to the following week. With prefix
1857 arg, go forward that many times @code{org-agenda-ndays} days. Not
1858 available in timelines.
1859
1860 @kindex @key{left}
1861 @item @key{left}
1862 Display the previous dates. Not available in timelines.
1863
1864 @kindex .
1865 @item .
1866 Goto today.
1867
1868 @tsubheading{Remote editing}
1869
1870 @item 0-9
1871 Digit argument.
1872
1873 @kindex t
1874 @item t
1875 Change the TODO state of the item, both in the agenda and in the
1876 original org file.
1877
1878 @kindex ,
1879 @item ,
1880 Set the priority for the current item. Org-mode prompts for the
1881 priority character. If you reply with @key{SPC}, the priority cookie
1882 is removed from the entry.
1883
1884 @kindex P
1885 @item p
1886 Display weighted priority of current item.
1887
1888 @kindex +
1889 @kindex S-@key{up}
1890 @item +
1891 @itemx S-@key{up}
1892 Increase the priority of the current item. The priority is changed in
1893 the original buffer, but the agenda is not resorted. Use the @kbd{r}
1894 key for this.
1895
1896 @kindex -
1897 @kindex S-@key{down}
1898 @item -
1899 @itemx S-@key{down}
1900 Decrease the priority of the current item.
1901
1902 @kindex S-@key{right}
1903 @item S-@key{right}
1904 Change the time stamp associated with the current line by one day into
1905 the future. With prefix argument, change it by that many days. For
1906 example, @kbd{3 6 5 S-@key{right}} will change it by a year. The
1907 stamp is changed in the original org file, but the change is not
1908 directly reflected in the agenda buffer. Use the
1909 @kbd{r} key to update the buffer.
1910
1911 @kindex S-@key{left}
1912 @item S-@key{left}
1913 Change the time stamp associated with the current line by one day
1914 into the past.
1915
1916 @kindex >
1917 @item >
1918 Change the time stamp associated with the current line to today.
1919 The key @kbd{>} has been chosen, because it is the same as @kbd{S-.}
1920 on my keyboard.
1921
1922 @cindex diary entries, creating from agenda
1923 @kindex i
1924 @item i
1925 Insert a new entry into the diary. Prompts for the type of entry
1926 (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
1927 entry in the diary, just like @kbd{i d} etc. would do in the calendar.
1928 The date is taken from the cursor position.
1929
1930 @tsubheading{Calendar commands}
1931 @kindex c
1932 @item c
1933 Open the Emacs calendar and move to the date at the agenda cursor.
1934
1935 @item c
1936 When in the calendar, compute and show the Org-mode agenda for the
1937 date at the cursor.
1938
1939 @kindex M
1940 @item M
1941 Show the phases of the moon for three month around current date.
1942
1943 @kindex S
1944 @item S
1945 Show sunrise and sunset times. The geographical location must be set
1946 with calendar variables, see documentation of the Emacs calendar.
1947
1948 @kindex C
1949 @item C
1950 Convert the date at cursor into many other cultural and historic
1951 calendars.
1952
1953 @kindex H
1954 @item H
1955 Show holidays for three month around the cursor date.
1956
1957 @tsubheading{Quit and Exit}
1958 @kindex q
1959 @item q
1960 Quit Agenda, remove the agenda buffer.
1961
1962 @kindex x
1963 @cindex agenda files, removing buffers
1964 @item x
1965 Exit agenda, remove the agenda buffer and all buffers loaded by Emacs
1966 for the compilation of the agenda. Buffers created by the user to
1967 visit org files will not be removed.
1968
1969 @end table
1970
1971 @node Calendar/Diary integration, , Agenda commands, Timeline and Agenda
1972 @section Calendar/Diary integration
1973 @cindex calendar integration
1974 @cindex diary integration
1975
1976 Emacs contains the calendar and diary by Edward M. Reingold. The
1977 calendar displays a three-month calendar with holidays from different
1978 countries and cultures. The diary allows to keep track of
1979 anniversaries, lunar phases, sunrise/set, recurrent appointments
1980 (weekly, monthly) and more. In this way, it is quite complementary to
1981 Org-mode. It can be very useful to combine output from Org-mode with
1982 the diary.
1983
1984 The interaction between Org-mode and diary works both ways: You can
1985 list entries from the diary in the Org-mode agenda, from which many
1986 calendar and diary commands are directly accessible. Or you can
1987 display entries from the org agenda in the Emacs diary.
1988
1989 @menu
1990 * Diary to agenda:: Agenda incorporates the diary
1991 * Agenda to diary:: Diary incorporates the agenda
1992 @end menu
1993
1994 @node Diary to agenda, Agenda to diary, Calendar/Diary integration, Calendar/Diary integration
1995 @subsection Including the diary into the agenda
1996 @cindex diary to agenda
1997
1998 In order to include entries from the Emacs diary into Org-mode's
1999 agenda, you only need to customize the variable
2000
2001 @lisp
2002 (setq org-agenda-include-diary t)
2003 @end lisp
2004 @noindent
2005
2006 @noindent After that, everything will happen automatically. All diary
2007 entries including holidays, anniversaries etc will be included in the
2008 agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and
2009 @key{RET} can be used from the agenda buffer to jump to the diary
2010 file, in order to edit existing diary entries. The @kbd{i} command to
2011 insert new entries for the current date works in the agenda buffer, as
2012 well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to display
2013 Sunrise/Sunset times, show lunar phases and to convert to other
2014 calendars, respectively. @kbd{c} can be used to switch back and forth
2015 between calendar and agenda.
2016
2017 @node Agenda to diary, , Diary to agenda, Calendar/Diary integration
2018 @subsection Including the agenda into the diary
2019
2020 If you prefer to use the Emacs diary as your main instrument and if
2021 you wish to include the Org-mode agenda into it, the following steps
2022 are necessary: Autoload the function @command{org-diary} as shown
2023 above under @ref{Installation and Activation}. You also need to use
2024 @emph{fancy diary display} by setting in @file{.emacs}:
2025
2026 @lisp
2027 (add-hook 'diary-display-hook 'fancy-diary-display)
2028 @end lisp
2029
2030 Then include the following line into your @file{~/diary} file, in
2031 order to get the entries from all files listed in the variable
2032 @code{org-agenda-files}:
2033
2034 @example
2035 &%%(org-diary)
2036 @end example
2037 @noindent
2038 You may also select specific files with
2039
2040 @example
2041 &%%(org-diary) ~/path/to/some/org-file.org
2042 &%%(org-diary) ~/path/to/another/org-file.org
2043 @end example
2044
2045 If you now launch the calendar and press @kbd{d} to display a diary,
2046 the headlines of entries containing a timestamp, date range, schedule,
2047 or deadline referring to the selected date will be listed. Just like
2048 in Org-mode's agenda view, the diary for @emph{today} contains
2049 additional entries for overdue deadlines and scheduled items. See
2050 also the documentation of the @command{org-diary} function.
2051
2052 @node Exporting, Miscellaneous, Timeline and Agenda, Top
2053 @chapter Exporting
2054 @cindex exporting
2055 @cindex ASCII export
2056 @cindex HTML export
2057
2058 @cindex headline levels, for exporting
2059 For printing and sharing of notes, an Org-mode document can be
2060 exported as an ASCII file, or as HTML. In the exported version, the
2061 first 3 outline levels will become headlines, defining a general
2062 document structure. Additional levels will be exported as itemize
2063 lists. If you want that transition to occur at a different level,
2064 specify it with a prefix argument. For example,
2065
2066 @example
2067 @kbd{M-1 M-x org-export-as-html}
2068 @end example
2069 @noindent
2070 creates only top level headlines and does the rest as items.
2071
2072 @menu
2073 * Export commands:: Commands which export and display
2074 * HTML formatting:: Interpretation of the buffer content
2075 * Export options:: How to influence exports
2076 * Comment lines:: Lines which will not be exported
2077 @end menu
2078
2079 @node Export commands, HTML formatting, Exporting, Exporting
2080 @section Export commands
2081
2082 @cindex region, active
2083 @cindex active region
2084 @cindex transient-mark-mode
2085 @table @kbd
2086 @kindex C-c C-x a
2087 @item C-c C-x a
2088 Export as ASCII file. If there is an active region, only the region
2089 will be exported. For an org file @file{myfile.org}, the ASCII file
2090 will be @file{myfile.txt}. The file will be overwritten without
2091 warning.
2092 @kindex C-c C-x h
2093 @item C-c C-x h
2094 Export as HTML file @file{myfile.html}.
2095 @kindex C-c C-x C-h
2096 @item C-c C-x C-h
2097 Export as HTML file and open it with a browser.
2098 @kindex C-c C-x t
2099 @item C-c C-x t
2100 Insert template with export options, see below.
2101 @kindex C-c :
2102 @item C-c :
2103 Toggle fixed-width for line or region, see below.
2104 @end table
2105
2106 @node HTML formatting, Export options, Export commands, Exporting
2107 @section HTML formatting
2108
2109 Not all text is transferred literally to the exported HTML file. The
2110 exporter implements the following interpretation:
2111
2112 @itemize @bullet
2113 @cindex underlined text
2114 @cindex bold text
2115 @cindex italic text
2116 @item
2117 You can make words @b{*bold*}, @i{/italic/}, and _underlined_
2118
2119 @cindex @TeX{} interpretation
2120 @item
2121 Simple @TeX{}-like math constructs are interpreted:
2122
2123 @cindex completion, of @TeX{} symbols
2124 @itemize @minus
2125 @item
2126 @samp{10^22} and @samp{J_n} are super- and subscripts. You can quote
2127 @samp{^} and @samp{_} with a backslash: @samp{\_} and @samp{\^}
2128 @item
2129 @samp{\alpha} indicates a Greek letter, @samp{\to} an arrow. You can
2130 use completion for these macros, just type @samp{\} and maybe a few
2131 letters, and press @kbd{M-@key{TAB}} to see possible completions.
2132 @end itemize
2133
2134 @cindex tables, export to HTML
2135 @item
2136 Tables are transformed into HTML tables. Data fields before the first
2137 horizontal separator line will be formatted as table header fields.
2138
2139 @cindex fixed width
2140 @item
2141 Lines starting with @samp{:} are typeset in a fixed-width font, to
2142 allow quoting of computer code etc.
2143
2144 @cindex HTML tags
2145 @item
2146 If you want to include HTML tags which should be interpreted as such,
2147 mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}.
2148 Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
2149 @samp{&gt;} in HTML export.
2150 @end itemize
2151
2152 If these conversions conflict with your habits of typing ASCII text,
2153 they can all be turned off with corresponding variables.
2154
2155 @node Export options, Comment lines, HTML formatting, Exporting
2156 @section Export options
2157 @cindex options, for export
2158
2159 @cindex completion, of option keywords
2160 The exporter recognizes special lines in the buffer which provide
2161 additional information. These lines may be put anywhere in the file.
2162 The whole set of lines can be inserted into the buffer with @kbd{C-c
2163 C-x t}. For individual lines, a good way to make sure the keyword is
2164 correct it to type @samp{#+} and then use @kbd{M-@key{TAB}} completion
2165 (@pxref{Completion}).
2166
2167 @example
2168 #+TITLE: the title to be shown (default is the buffer name)
2169 #+AUTHOR: the author (default taken from @code{user-full-name})
2170 #+EMAIL: his/her email address (default from @code{user-mail-address})
2171 #+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language})
2172 #+TEXT: Some descriptive text to be inserted at the beginning.
2173 #+TEXT: Several lines may be given.
2174 #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t *:nil TeX:t
2175 @end example
2176 @noindent
2177 The OPTIONS line is a compact form to specify export settings. Here
2178 you can
2179 @cindex headline levels
2180 @cindex section-numbers
2181 @cindex table of contents
2182 @cindex linebreak preservation
2183 @cindex quoted html tags
2184 @cindex fixed-width sections
2185 @cindex tables
2186 @cindex @TeX{}-like syntax for sub- and superscripts
2187 @cindex emphasized text
2188 @cindex @TeX{} macros
2189 @example
2190 H: @r{set the number of headline levels for export}
2191 num: @r{turn on/off section-numbers}
2192 toc: @r{turn on/off table of contents}
2193 \n: @r{turn on/off linebreak-preservation}
2194 @@: @r{turn on/off quoted html tags}
2195 :: @r{turn on/off fixed-width sections}
2196 |: @r{turn on/off tables}
2197 ^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
2198 *: @r{turn on/off emphasized text (bold, italic, underlined)}
2199 TeX: @r{turn on/off @TeX{} macros}
2200 @end example
2201
2202 @node Comment lines, , Export options, Exporting
2203 @section Comment lines
2204 @cindex comment lines
2205 @cindex exporting, not
2206
2207 Lines starting with @samp{#} in column zero are treated as comments
2208 and will never be exported. Also entire subtrees starting with the
2209 word @samp{COMMENT} will never be exported. Finally, any text before
2210 the first headline will not be exported either.
2211
2212 @table @kbd
2213 @kindex C-c ;
2214 @item C-c ;
2215 Toggle the COMMENT keyword at the beginning of an entry.
2216 @end table
2217
2218 @node Miscellaneous, Index, Exporting, Top
2219 @chapter Miscellaneous
2220
2221 @menu
2222 * Completion:: M-TAB knows what you need
2223 * Customization:: Adapting Org-mode to your taste
2224 * FAQ:: Frequently asked questions
2225 * Interaction:: Other Emacs packages
2226 * Bugs:: Things which do not work perfectly
2227 * Acknowledgments:: These people provided feedback and more
2228 @end menu
2229
2230 @node Completion, Customization, Miscellaneous, Miscellaneous
2231 @section Completion
2232 @cindex completion, of @TeX{} symbols
2233 @cindex completion, of TODO keywords
2234 @cindex completion, of dictionary words
2235 @cindex completion, of option keywords
2236 @cindex completion, of keyword formulas
2237
2238 Org-mode supports in-buffer completion. This type of completion does
2239 not make use of the minibuffer. You simply type a few letters into
2240 the buffer and use the key to complete text right there.
2241
2242 @table @kbd
2243 @kindex M-@key{TAB}
2244 @item M-@key{TAB}
2245 Complete word at point
2246 @itemize @bullet
2247 @item
2248 At the beginning of a headline, complete TODO keywords.
2249 @item
2250 After @samp{\}, complete @TeX{} symbols supported by the exporter.
2251 @item
2252 After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or
2253 @samp{OPTIONS} which set file-specific options for Org-mode. When the
2254 option keyword is already complete, pressing @kbd{M-@key{TAB}} again
2255 will insert example settings for this keyword.
2256 @item
2257 After @samp{=}, complete keyword formulas for tables.
2258 @item
2259 Elsewhere, complete dictionary words using ispell.
2260 @end itemize
2261 @end table
2262
2263 @node Customization, FAQ, Completion, Miscellaneous
2264 @section Customization
2265 @cindex customization
2266 @cindex options, for customization
2267 @cindex variables, for customization
2268
2269 There is a large number of variables which can be used to customize
2270 Org-mode. For the sake of compactness of the manual, we are not
2271 describing the variables here. For an overview of customization
2272 variables, use @kbd{M-x org-customize}. Or select @code{Browse Org
2273 Group} from the @code{Org->Customization} menu.
2274
2275 @node FAQ, Interaction, Customization, Miscellaneous
2276 @section Frequently asked questions
2277
2278 @enumerate
2279 @item @b{Org-mode seems to be a useful default mode for the various
2280 @file{README} files I have scattered through my directories. How do I
2281 turn it on for all @file{README} files?}
2282 @example
2283 (add-to-list 'auto-mode-alist '("README$" . org-mode))
2284 @end example
2285
2286 @item @b{I would like to have two windows on the same Org-mode
2287 file, but with different outline visibility. Is that possible?}@*
2288 @cindex @code{make-indirect-buffer}
2289 @cindex indirect buffers
2290 In GNU Emacs, you may use @emph{indirect buffers} which do exactly
2291 this. See the documentation on the command
2292 @code{make-indirect-buffer}. In XEmacs, this is currently not
2293 possible because of the different outline implementation.
2294
2295 @item @b{Is there an easy way to insert links to web locations?}@*
2296 @cindex URL, paste into buffer
2297 Sure, just type or paste them into the buffer. A plain-text URL-like
2298 string is directly interpreted as a link.
2299
2300 @item @b{When I export my TODO list, every TODO item becomes a
2301 separate section. How do I enforce these items to be exported as an
2302 itemized list?}@*
2303 If you plan to use ASCII or HTML export, make sure things you want to
2304 be exported as item lists are level 4 at least, even if that does mean
2305 there is a level jump. For example
2306
2307 @example
2308 * Todays top priorities
2309 **** TODO write a letter to xyz
2310 **** TODO Finish the paper
2311 **** Pick up kids at the school
2312 @end example
2313
2314 Alternatively, if you need a specific value for the heading/item
2315 transition in a particular file, use the @samp{+OPTIONS} line to
2316 configure the @samp{H} switch.
2317
2318 @example
2319 +OPTIONS: H:2; ...
2320 @end example
2321
2322 @item @b{I would like to export only a subtree of my file to HTML. How?}@*
2323 @cindex exporting a subtree
2324 If you want to export a subtree, mark the subtree as region and then
2325 export. Marking can be done with @kbd{C-c @@ C-x C-x}, for example.
2326
2327 @item @b{Org-mode takes over the S-cursor keys. I also want to use
2328 CUA-mode, is there a way to fix this conflict?}@*
2329 Yes, see @ref{Interaction}
2330
2331 @item @b{Is there an easy way to insert an empty table template with a
2332 default number of rows and columns?}@*
2333 @cindex table, empty template
2334 To insert an empty table template, just type @samp{|-} and use
2335 @key{TAB}. The default size can be changed with the variable
2336 @code{org-table-default-size}. However, just starting to type the
2337 first line is usually much easier.
2338
2339 @item @b{One of my table columns has started to fill up with
2340 @samp{#ERROR}. What is going on?}@*
2341 Org-mode tried to compute the column from other fields using a
2342 formula stored in the @samp{#+TBLFMT:} line just below the table, and
2343 the evaluation of the formula fails. Fix the fields used in the
2344 formula, or fix the formula, or remove it!
2345
2346 @item @b{When I am in the last column of a table and just above a
2347 horizontal line in the table, pressing TAB creates a new table line
2348 @i{before} the horizontal line. How can I quickly move to the line
2349 @i{below} the horizontal line instead?}@*
2350 Press @key{down} (to get on the separator line) and then @key{TAB}.
2351
2352 @item @b{How can I change the indentation of an entire table without
2353 fixing every line by hand?}@*
2354 @cindex indentation, of tables
2355 The indentation of a table is set by the first line. So just fix the
2356 indentation of the first line and realign with @key{TAB}.
2357
2358 @end enumerate
2359
2360
2361 @node Interaction, Bugs, FAQ, Miscellaneous
2362 @section Interaction with other packages
2363 @cindex packages, interaction with other
2364 Org-mode can cooperate with the following packages:
2365
2366 @table @asis
2367 @cindex @file{table.el}
2368 @item @file{table.el} by Takaaki Ota
2369 Org mode cooperates with table.el, see @ref{table.el}.
2370 @cindex @file{calc.el}
2371 @item @file{calc.el} by Dave Gillespie
2372 Org-mode uses the calc package for implementing spreadsheet
2373 functionality in its tables (@pxref{Table calculations}). Org-modes
2374 checks for the availability of calc by looking for the function
2375 @code{calc-eval} which should be autoloaded in your setup if calc has
2376 been installed properly. As of Emacs 22, calc is part of the Emacs
2377 distribution. Another possibility for interaction between the two
2378 packages is using calc for embedded calculations. @xref{Embedded Mode,
2379 , Embedded Mode, calc, The calc maanual}.
2380 @cindex @file{constants.el}
2381 @item @file{constants.el} by Carsten Dominik
2382 In a table formula (@pxref{Table calculations}), it is possible to use
2383 names for natural constants or units. Instead of defining you own
2384 constants in the variable @code{org-table-formula-constants}, install
2385 the @file{constants} package which defines a large number of constants
2386 and units, and lets you use unit prefixes like @samp{M} for
2387 @samp{Mega} etc. You will need version 2.0 of this package, available
2388 at @url{http://www.astro.uva.nl/~dominik/Tools}. Org-mode checks for
2389 the function @code{constants-get}, which has to be autoloaded in your
2390 setup. See the installation instructions in the file
2391 @file{constants.el}.
2392 @cindex @file{remember.el}
2393 @cindex @file{CUA.el}
2394 @item @file{CUA.el} by Kim. F. Storm
2395 Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys
2396 used by CUA-mode (as well as pc-select-mode and s-region-mode) to
2397 select and extend the region. If you want to use one of these
2398 packages along with Org-mode, configure the variable
2399 @code{org-CUA-compatible}. When set, Org-mode will move the following
2400 keybindings in org-mode files, and in the agenda buffer (but not
2401 during date selection).
2402 @example
2403 S-UP -> M-p S-DOWN -> M-n
2404 S-LEFT -> M-- S-RIGHT -> M-+
2405 S-RET -> C-S-RET
2406 @end example
2407 Yes, these are unfortunately more difficult to remember. If you want
2408 to have other replacement keys, look at the variable
2409 @code{org-disputed-keys}.
2410 @item @file{remember.el} by John Wiegley
2411 Org mode cooperates with remember, see @ref{Remember}.
2412 @cindex @file{planner.el}
2413 @item @file{planner.el} by John Wiegley
2414 Planner is another tool to plan work and keep track of tasks. Planner
2415 uses a multi-file approach with project pages and day pages. Is based
2416 on Emacs-Wiki. If Planner is your primary tool, it can be useful to
2417 display the agenda entries resulting from org files in day-pages of
2418 the planner. This can be done through the diary of the calendar:
2419 Integrate org files into the diary as described above, and then turn
2420 on the diary support of planner.
2421 @end table
2422
2423 @node Bugs, Acknowledgments, Interaction, Miscellaneous
2424 @section Bugs
2425 @cindex bugs
2426
2427 Here is a list of things which should work differently, but which I
2428 have found too hard to fix.
2429
2430 @itemize @bullet
2431 @item
2432 If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the
2433 filling is correctly disabled. However, if some text directly
2434 (without an empty line in between) preceeds or follows a table, calling
2435 @code{fill-paragraph} in that text will also fill the table like
2436 normal text. Also, @code{fill-region} does bypass the
2437 @code{fill-paragraph} code and will fill tables like normal text.
2438 @item
2439 When the application called by @kbd{C-c C-o} to open a file link fails
2440 (for example because the application does not exits or refuses to open
2441 the file), it does so silently. No error message is displayed.
2442 @item
2443 Recalculating a table line applies the formulas from left to right.
2444 If a formula calculated fields further down the row, multiple
2445 recalculation may be needed to get all fields consistent.
2446 @item
2447 Under XEmacs, if Org-mode entries are included into the diary, it is
2448 not possible to jump back from the diary to the org file. Apparently,
2449 the text properties are lost when the fancy-diary-display is used.
2450 However, from Org-mode's timeline and agenda buffers (created with
2451 @kbd{C-c C-r} and @kbd{C-c a}), things do work correctly.
2452 @item
2453 Linux should also have a default viewer application, using mailcap.
2454 Maybe we can use GNUS or VM mime code? Or dired's guessing commands?
2455 Any hints (or even patches) are appreciated.
2456 @item
2457 When you write @samp{x = a /b/ c}, b will be exported in italics.
2458 @item
2459 The exporters work well, but could be made more efficient.
2460 @end itemize
2461
2462 @page
2463
2464 @node Acknowledgments, , Bugs, Miscellaneous
2465 @section Acknowledgments
2466 @cindex acknowledgments
2467
2468 Org-mode was written by Carsten Dominik, who still maintains it at the
2469 Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
2470 The following people have helped the development along with ideas,
2471 suggestions and patches.
2472
2473 @itemize @bullet
2474 @item
2475 Matthias Rempe (Oelde) provided ideas, a patch introducing Windows
2476 NT/2000 support, and quality control.
2477 @item
2478 Kevin Rogers contributed code to access VM files on remote hosts.
2479 @item
2480 Juergen Vollmer contributed code generating the table of contents
2481 in HTML output, and other export improvements.
2482 @item
2483 Christian Egli converted the documentation into TeXInfo format. He
2484 also showed me his plans for a multifile summary for Org-mode. Some of
2485 his ideas have found their way into the agenda.
2486 @item
2487 Philip Rooke created the Org-mode reference card. He also helped with
2488 beta testing and contributed a number of very useful ideas.
2489 @item
2490 Christian Schlauer proposed angular brackets around links, among other
2491 things.
2492 @item
2493 David Wainberg suggested to implement an archiving mechanism.
2494 @item
2495 Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
2496 @file{organizer-mode.el}.
2497 @item
2498 Scheduling TODO items was inspired by John Wiegley's @file{planner.el}.
2499 @item
2500 Sacha Chua, the current maintainer of Planner, offered linking code
2501 from Planner. I made use of the offer for links to RMAIL and Wanderlust.
2502 @item
2503 Oliver Oppitz sent several useful suggestions.
2504 @item
2505 Carsten Wimmer suggested some changes and helped fix a bug in linking
2506 to GNUS.
2507 @item
2508 Pavel Chalmoviansky reported bugs and suggested improvements related
2509 to the agenda treatment of items with specified time.
2510 @item
2511 Stefan Monnier provided a patch with lots of little fixes to keep the
2512 Emacs-Lisp compiler happy.
2513 @item
2514 Kai Grossjohann pointed out that a number of key bindings in Org-mode
2515 conflict with other packages.
2516 @end itemize
2517
2518 @node Index, Key Index, Miscellaneous, Top
2519 @chapter Index
2520
2521 @printindex cp
2522
2523 @node Key Index, , Index, Top
2524 @chapter Key Index
2525
2526 @printindex ky
2527
2528 @bye