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