aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Dominik2006-05-24 07:56:03 +0000
committerCarsten Dominik2006-05-24 07:56:03 +0000
commit8ef8f2e63ced6db89dfc0807d8dc536a2eb780c2 (patch)
tree624832f853cdf9d505b54e595338d6771440ae0f
parent4b3a9ba762af11f671ee66e2ce335f9fd26fa66e (diff)
downloademacs-8ef8f2e63ced6db89dfc0807d8dc536a2eb780c2.tar.gz
emacs-8ef8f2e63ced6db89dfc0807d8dc536a2eb780c2.zip
(Plain lists): Added new item navigation commands.
(External links): Documented elisp and info links. (Custom searches): New section. (Publishing): New chapter. (HTML export): Include a list of supported CSS classes. (Setting tags): Describe the fast-tag-setting interface.
-rw-r--r--man/org.texi1086
1 files changed, 861 insertions, 225 deletions
diff --git a/man/org.texi b/man/org.texi
index 40e24d30146..6f8d4c329f2 100644
--- a/man/org.texi
+++ b/man/org.texi
@@ -1,11 +1,12 @@
1\input texinfo 1\input texinfo
2
2@c %**start of header 3@c %**start of header
3@c @setfilename org 4@c @setfilename org
4@setfilename ../info/org 5@setfilename ../info/org
5@settitle Org Mode Manual 6@settitle Org Mode Manual
6 7
7@set VERSION 4.26 8@set VERSION 4.33
8@set DATE April 2006 9@set DATE May 2006
9 10
10@dircategory Emacs 11@dircategory Emacs
11@direntry 12@direntry
@@ -84,6 +85,7 @@ Software Foundation raise funds for GNU development.''
84* Tags:: Tagging headlines and matching sets of tags 85* Tags:: Tagging headlines and matching sets of tags
85* Agenda views:: Collecting information into views 86* Agenda views:: Collecting information into views
86* Exporting:: Sharing and publishing of notes 87* Exporting:: Sharing and publishing of notes
88* Publishing:: Create a web site of linked Org-mode files
87* Miscellaneous:: All the rest which did not fit elsewhere 89* Miscellaneous:: All the rest which did not fit elsewhere
88* Index:: The fast road to specific information 90* Index:: The fast road to specific information
89* Key Index:: Key bindings and where they are described 91* Key Index:: Key bindings and where they are described
@@ -97,7 +99,7 @@ Introduction
97* Installation and activation:: How to install Org-mode 99* Installation and activation:: How to install Org-mode
98* Feedback:: Bug reports, ideas, patches etc. 100* Feedback:: Bug reports, ideas, patches etc.
99 101
100Document structure 102Document Structure
101 103
102* Outlines:: Org-mode is based on outline-mode 104* Outlines:: Org-mode is based on outline-mode
103* Headlines:: How to typeset org-tree headlines 105* Headlines:: How to typeset org-tree headlines
@@ -119,6 +121,7 @@ Tables
119Calculations in tables 121Calculations in tables
120 122
121* Formula syntax:: How to write a formula 123* Formula syntax:: How to write a formula
124* Lisp formulas:: An alternative way to write formulas
122* Column formulas:: Formulas valid for all fields in a column 125* Column formulas:: Formulas valid for all fields in a column
123* Advanced features:: Field names, parameters and automatic recalc 126* Advanced features:: Field names, parameters and automatic recalc
124* Named-field formulas:: Formulas valid in single fields 127* Named-field formulas:: Formulas valid in single fields
@@ -131,7 +134,8 @@ Hyperlinks
131* Internal links:: Links to other places in the current file 134* Internal links:: Links to other places in the current file
132* External links:: URL-like links to the world 135* External links:: URL-like links to the world
133* Handling links:: Creating, inserting and following 136* Handling links:: Creating, inserting and following
134* Search Options:: Linking to a specific location 137* Search options:: Linking to a specific location
138* Custom searches:: When the default search is not enough
135* Remember:: Org-trees store quick notes 139* Remember:: Org-trees store quick notes
136 140
137Internal links 141Internal links
@@ -163,7 +167,7 @@ Tags
163* Setting tags:: How to assign tags to a headline 167* Setting tags:: How to assign tags to a headline
164* Tag searches:: Searching for combinations of tags 168* Tag searches:: Searching for combinations of tags
165 169
166Agenda views 170Agenda Views
167 171
168* Agenda files:: Files being searched for agenda information 172* Agenda files:: Files being searched for agenda information
169* Agenda dispatcher:: Keyboard access to agenda views 173* Agenda dispatcher:: Keyboard access to agenda views
@@ -184,7 +188,7 @@ Exporting
184 188
185* ASCII export:: Exporting to plain ASCII 189* ASCII export:: Exporting to plain ASCII
186* HTML export:: Exporting to HTML 190* HTML export:: Exporting to HTML
187* XML export:: Exporting to XML 191* XOXO export:: Exporting to XOXO
188* iCalendar export:: Exporting in iCalendar format 192* iCalendar export:: Exporting in iCalendar format
189* Text interpretation:: How the exporter looks at the file 193* Text interpretation:: How the exporter looks at the file
190 194
@@ -194,6 +198,27 @@ Text interpretation by the exporter
194* Enhancing text:: Subscripts, symbols and more 198* Enhancing text:: Subscripts, symbols and more
195* Export options:: How to influence the export settings 199* Export options:: How to influence the export settings
196 200
201Publishing
202
203* Configuration:: Defining projects
204* Sample configuration:: Example projects
205* Triggering publication:: Publication commands
206
207Configuration
208
209* Project alist:: The central configuration variable
210* File sources and destinations:: From here to there
211* Selecting files:: What files are part of the project?
212* Publishing action:: Setting the function doing the publishing
213* Publishing options:: Tweaking HTML export
214* Publishing links:: Which links keep working after publishing?
215* Project page index:: Publishing a list of project files
216
217Sample configuration
218
219* Simple example:: One-component publishing
220* Complex example:: A multi-component publishing example
221
197Miscellaneous 222Miscellaneous
198 223
199* Completion:: M-TAB knows what you need 224* Completion:: M-TAB knows what you need
@@ -207,6 +232,12 @@ Miscellaneous
207* Bugs:: Things which do not work perfectly 232* Bugs:: Things which do not work perfectly
208* Acknowledgments:: These people provided feedback and more 233* Acknowledgments:: These people provided feedback and more
209 234
235Interaction with other packages
236
237* Extensions:: Third-party extensions for Org-mode
238* Cooperation:: Packages Org-mode cooperates with
239* Conflicts:: Packages that lead to conflicts
240
210@end detailmenu 241@end detailmenu
211@end menu 242@end menu
212 243
@@ -239,21 +270,23 @@ Plain text URL-like links connect to websites, emails, Usenet
239messages, BBDB entries, and any files related to the projects. For 270messages, BBDB entries, and any files related to the projects. For
240printing and sharing of notes, an Org-mode file can be exported as a 271printing and sharing of notes, an Org-mode file can be exported as a
241structured ASCII file, as HTML, or (todo and agenda items only) as an 272structured ASCII file, as HTML, or (todo and agenda items only) as an
242iCalendar file. 273iCalendar file. It can also serve as a publishing tool for a set of
274linked webpages.
243 275
244Org-mode keeps simple things simple. When first fired up, it should 276Org-mode keeps simple things simple. When first fired up, it should
245feel like a simple, easy to use outliner. Complexity is not imposed, 277feel like a straightforward, easy to use outliner. Complexity is not
246but a large amount of functionality is available when you need it. 278imposed, but a large amount of functionality is available when you need
247Org-mode can be used on different levels and in different ways, for 279it. Org-mode can be used on different levels and in different ways, for
248example: 280example:
249 281
250@example 282@example
251@r{@bullet{} as an outline extension with visibility cycling and structure editing} 283@r{@bullet{} as an outline extension with visibility cycling and structure editing}
252@r{@bullet{} as an ASCII system and table editor for taking structured notes} 284@r{@bullet{} as an ASCII system and table editor for taking structured notes}
253@r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities} 285@r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities}
254@r{@bullet{} as a simple hypertext system, with HTML export}
255@r{@bullet{} as a TODO list editor} 286@r{@bullet{} as a TODO list editor}
256@r{@bullet{} as a full agenda and planner with deadlines and work scheduling} 287@r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
288@r{@bullet{} as a simple hypertext system, with HTML export}
289@r{@bullet{} as a publishing tool to create a set of interlinked webpages}
257@end example 290@end example
258 291
259The Org-mode table editor can be integrated into any major mode by 292The Org-mode table editor can be integrated into any major mode by
@@ -286,19 +319,22 @@ choose suitable keys yourself.
286(define-key global-map "\C-ca" 'org-agenda) 319(define-key global-map "\C-ca" 'org-agenda)
287@end lisp 320@end lisp
288 321
289If you have downloaded Org-mode from the Web, you must byte-compile 322Furthermore, you must activate @code{font-lock-mode} in org-mode
290@file{org.el} and put it on your load path. In addition to the Emacs 323buffers, because significant functionality depends on font-locking being
291Lisp lines above, you also need to add the following lines to 324active. You can do this with either one of the following two lines:
325@lisp
326(global-font-lock-mode 1) ; for all buffers
327(add-hook 'org-mode-hook 'turn-on-font-lock) ; org-mode buffers only
328@end lisp
329
330If you have downloaded Org-mode from the Web, you must take additional
331action: Byte-compile @file{org.el} and @file{org-publish.el} and put
332them together with @file{org-install.el} on your load path. Then add to
292@file{.emacs}: 333@file{.emacs}:
293 334
294@lisp 335@lisp
295;; These lines only if org-mode is not part of the X/Emacs distribution. 336;; This line only if org-mode is not part of the X/Emacs distribution.
296(autoload 'org-mode "org" "Org mode" t) 337(require 'org-install)
297(autoload 'org-diary "org" "Diary entries from Org mode")
298(autoload 'org-agenda "org" "Multi-file agenda from Org mode" t)
299(autoload 'org-store-link "org" "Store a link to the current location" t)
300(autoload 'orgtbl-mode "org" "Org tables as a minor mode" t)
301(autoload 'turn-on-orgtbl "org" "Org tables as a minor mode")
302@end lisp 338@end lisp
303 339
304@cindex org-mode, turning on 340@cindex org-mode, turning on
@@ -405,33 +441,40 @@ starters. @ref{Clean view} describes a setup to realize this.
405@cindex hide text 441@cindex hide text
406 442
407Outlines make it possible to hide parts of the text in the buffer. 443Outlines make it possible to hide parts of the text in the buffer.
408Org-mode uses a single command bound to the @key{TAB} key to change 444Org-mode uses just two commands, bound to @key{TAB} and
409the visibility in the buffer. 445@kbd{S-@key{TAB}} to change the visibility in the buffer.
410 446
411@cindex subtree visibility states 447@cindex subtree visibility states
448@cindex subtree cycling
412@cindex folded, subtree visibility state 449@cindex folded, subtree visibility state
413@cindex children, subtree visibility state 450@cindex children, subtree visibility state
414@cindex subtree, subtree visibility state 451@cindex subtree, subtree visibility state
415@table @kbd 452@table @kbd
416@kindex @key{TAB} 453@kindex @key{TAB}
417@item @key{TAB} 454@item @key{TAB}
418Rotate current subtree between the states 455@emph{Subtree cycling}: Rotate current subtree between the states
419 456
420@example 457@example
421,-> FOLDED -> CHILDREN -> SUBTREE --. 458,-> FOLDED -> CHILDREN -> SUBTREE --.
422'-----------------------------------' 459'-----------------------------------'
423@end example 460@end example
424 461
425At the beginning of the buffer (or when called with @kbd{C-u}), this does 462The cursor must be on a headline for this to work@footnote{see, however,
426the same as the command @kbd{S-@key{TAB}} below. 463the option @code{org-cycle-emulate-tab}.}. When the cursor is at the
464beginning of the buffer and the first line is not a headline, then
465@key{TAB} actually runs global cycling (see below)@footnote{see the
466option @code{org-cycle-global-at-bob}.}. Also when called with a prefix
467argument (@kbd{C-u @key{TAB}}), global cycling is invoked.
427 468
428@cindex global visibility states 469@cindex global visibility states
470@cindex global cycling
429@cindex overview, global visibility state 471@cindex overview, global visibility state
430@cindex contents, global visibility state 472@cindex contents, global visibility state
431@cindex show all, global visibility state 473@cindex show all, global visibility state
432@kindex S-@key{TAB} 474@kindex S-@key{TAB}
433@item S-@key{TAB} 475@item S-@key{TAB}
434Rotate the entire buffer between the states 476@itemx C-u @key{TAB}
477@emph{Global cycling}: Rotate the entire buffer between the states
435 478
436@example 479@example
437,-> OVERVIEW -> CONTENTS -> SHOW ALL --. 480,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
@@ -512,7 +555,7 @@ creation of a new headline, use a prefix arg, or first press @key{RET}
512to get to the beginning of the next line. When this command is used in 555to get to the beginning of the next line. When this command is used in
513the middle of a line, the line is split and the rest of the line becomes 556the middle of a line, the line is split and the rest of the line becomes
514the new headline. If the command is used at the beginning of a 557the new headline. If the command is used at the beginning of a
515headline, the new headline is created before the current line. It at 558headline, the new headline is created before the current line. If at
516the beginning of any other line, the content of that line is made the 559the beginning of any other line, the content of that line is made the
517new heading. 560new heading.
518@kindex M-S-@key{RET} 561@kindex M-S-@key{RET}
@@ -615,7 +658,7 @@ If the match is in a headline, the headline is made visible. If the
615match is in the body of an entry, headline and body are made visible. 658match is in the body of an entry, headline and body are made visible.
616In order to provide minimal context, also the full hierarchy of 659In order to provide minimal context, also the full hierarchy of
617headlines above the match is shown, as well as the headline following 660headlines above the match is shown, as well as the headline following
618the match. Each match is also highlighted, the highlights disappear 661the match. Each match is also highlighted; the highlights disappear
619when the buffer is changed with an editing command. 662when the buffer is changed with an editing command.
620@end table 663@end table
621@noindent 664@noindent
@@ -633,7 +676,7 @@ For example:
633@noindent will define the key @kbd{C-c a f} as a shortcut for creating 676@noindent will define the key @kbd{C-c a f} as a shortcut for creating
634a sparse tree matching the string @samp{FIXME}. 677a sparse tree matching the string @samp{FIXME}.
635 678
636Other commands are using sparse trees as well. For example @kbd{C-c 679Other commands use sparse trees as well. For example @kbd{C-c
637C-v} creates a sparse TODO tree (@pxref{TODO basics}). 680C-v} creates a sparse TODO tree (@pxref{TODO basics}).
638 681
639@kindex C-c C-x v 682@kindex C-c C-x v
@@ -643,9 +686,8 @@ To print a sparse tree, you can use the Emacs command
643@code{ps-print-buffer-with-faces} which does not print invisible parts 686@code{ps-print-buffer-with-faces} which does not print invisible parts
644of the document @footnote{This does not work under XEmacs, because 687of the document @footnote{This does not work under XEmacs, because
645XEmacs uses selective display for outlining, not text properties.}. 688XEmacs uses selective display for outlining, not text properties.}.
646Or you can use the command @kbd{C-c C-x v} to copy the visible part of 689Or you can use the command @kbd{C-c C-x v} to export only the visible
647the document to another file (extension @file{.txt}) which can then be 690part of the document and print the resulting file.
648printed in any desired way.
649 691
650 692
651@node Plain lists, , Sparse trees, Document structure 693@node Plain lists, , Sparse trees, Document structure
@@ -657,7 +699,7 @@ printed in any desired way.
657 699
658Headlines define both the structure of the Org-mode file, and also lists 700Headlines define both the structure of the Org-mode file, and also lists
659(for example, TODO items (@pxref{TODO items}) should be created using 701(for example, TODO items (@pxref{TODO items}) should be created using
660headline levels). However, when taking notes, the plain text is 702headline levels). When taking notes, however, the plain text is
661sometimes easier to read with hand-formatted lists. Org-mode supports 703sometimes easier to read with hand-formatted lists. Org-mode supports
662editing such lists, and the HTML exporter (@pxref{Exporting}) does 704editing such lists, and the HTML exporter (@pxref{Exporting}) does
663parse and format them. 705parse and format them.
@@ -668,7 +710,7 @@ bullet, lines must be indented or they will be seen as top-level
668headlines. Also, when you are hiding leading stars to get a clean 710headlines. Also, when you are hiding leading stars to get a clean
669outline view, plain list items starting with a star are visually 711outline view, plain list items starting with a star are visually
670indistinguishable from true headlines. In short: even though @samp{*} 712indistinguishable from true headlines. In short: even though @samp{*}
671is supported, it may be better to not use it for plain list items} as 713is supported, it may be better not to use it for plain list items} as
672bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items 714bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items
673belonging to the same list must have the same indentation on the first 715belonging to the same list must have the same indentation on the first
674line. In particular, if an ordered list reaches number @samp{10.}, then 716line. In particular, if an ordered list reaches number @samp{10.}, then
@@ -693,17 +735,30 @@ But in the end, not individual scenes matter but the film as a whole.
693@end example 735@end example
694 736
695Org-mode supports these lists by tuning filling and wrapping commands 737Org-mode supports these lists by tuning filling and wrapping commands
696to correctly deal with them. Furthermore, the following commands act 738to deal with them correctly.
697on items when the cursor is in the first line of an item (the line 739
698with the bullet or number). 740@cindex checkboxes
741Every item in a plain list can be made a checkbox by starting it with
742the string @samp{[ ]}. The checkbox status can conveniently be toggled
743with @kbd{C-c C-c}.
744
745@example
746* Stupid mistakes when distributing a new version
747 - [ ] update also Emacs CVS
748 - [X] forget to update index.html on the website
749 - [X] leaving a `(debug)' form in the code
750@end example
751
752The following commands act on items when the cursor is in the first line
753of an item (the line with the bullet or number).
699 754
700@table @kbd 755@table @kbd
701@kindex @key{TAB} 756@kindex @key{TAB}
702@item @key{TAB} 757@item @key{TAB}
703Items can be folded just like headline levels if you set the variable 758Items can be folded just like headline levels if you set the variable
704@code{org-cycle-include-plain-lists}. The level of an item is then 759@code{org-cycle-include-plain-lists}. The level of an item is then
705given by the indentation of the bullet/number. However, items are 760given by the indentation of the bullet/number. Items are always
706always subordinate to real headlines, the hierarchies remain 761subordinate to real headlines, however; the hierarchies remain
707completely separated. 762completely separated.
708@kindex M-@key{RET} 763@kindex M-@key{RET}
709@item M-@key{RET} 764@item M-@key{RET}
@@ -715,6 +770,14 @@ number}, the new item is created @emph{before} the current item. If the
715command is executed in the white space before the text that is part of 770command is executed in the white space before the text that is part of
716an item but does not contain the bullet, a bullet is added to the 771an item but does not contain the bullet, a bullet is added to the
717current line. 772current line.
773@kindex M-S-@key{RET}
774@item M-S-@key{RET}
775Insert a new item with a checkbox.
776@kindex S-@key{up}
777@kindex S-@key{down}
778@item S-@key{up}
779@itemx S-@key{down}
780Jump to the previous/next item in the current list.
718@kindex M-S-@key{up} 781@kindex M-S-@key{up}
719@kindex M-S-@key{down} 782@kindex M-S-@key{down}
720@item M-S-@key{up} 783@item M-S-@key{up}
@@ -734,7 +797,9 @@ would imply a different hierarchy. To use the new hierarchy, break
734the command chain with a cursor motion or so. 797the command chain with a cursor motion or so.
735@kindex C-c C-c 798@kindex C-c C-c
736@item C-c C-c 799@item C-c C-c
737Renumber the ordered list at the cursor. 800If there is a checkbox in the item line, toggle the state of the
801checkbox. Otherwise, if this is an ordered list, renumber the ordered
802list at the cursor.
738@end table 803@end table
739 804
740@node Tables, Hyperlinks, Document structure, Top 805@node Tables, Hyperlinks, Document structure, Top
@@ -806,7 +871,7 @@ If not, lines are split at whitespace into fields. You can use a prefix
806argument to indicate the minimum number of consecutive spaces required 871argument to indicate the minimum number of consecutive spaces required
807to identify a field separator (default: just one).@* 872to identify a field separator (default: just one).@*
808If there is no active region, this command creates an empty Org-mode 873If there is no active region, this command creates an empty Org-mode
809table. However, it's easier to just start typing, like 874table. But it's easier just to start typing, like
810@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}. 875@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}.
811 876
812@tsubheading{Re-aligning and field motion} 877@tsubheading{Re-aligning and field motion}
@@ -953,7 +1018,7 @@ When not empty, copy current field down to next row and move cursor
953along with it. Depending on the variable 1018along with it. Depending on the variable
954@code{org-table-copy-increment}, integer field values will be 1019@code{org-table-copy-increment}, integer field values will be
955incremented during copy. This key is also used by CUA-mode 1020incremented during copy. This key is also used by CUA-mode
956(@pxref{Interaction}). 1021(@pxref{Cooperation}).
957 1022
958@tsubheading{Miscellaneous} 1023@tsubheading{Miscellaneous}
959@kindex C-c ` 1024@kindex C-c `
@@ -990,7 +1055,7 @@ it off with
990(setq org-enable-table-editor nil) 1055(setq org-enable-table-editor nil)
991@end lisp 1056@end lisp
992 1057
993@noindent The only table command which then still works is 1058@noindent Then the only table command that still works is
994@kbd{C-c C-c} to do a manual re-align. 1059@kbd{C-c C-c} to do a manual re-align.
995 1060
996@node Narrow columns, Table calculations, Built-in table editor, Tables 1061@node Narrow columns, Table calculations, Built-in table editor, Tables
@@ -1043,19 +1108,20 @@ on a per-file basis with:
1043@cindex spreadsheet capabilities 1108@cindex spreadsheet capabilities
1044@cindex @file{calc} package 1109@cindex @file{calc} package
1045 1110
1046The table editor makes use of the Emacs @file{calc} package to 1111The table editor makes use of the Emacs @file{calc} package to implement
1047implement spreadsheet-like capabilities. Org-mode has two levels of 1112spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to
1048complexity for table calculations. On the basic level, tables do only 1113derive fields from other fields. Org-mode has two levels of complexity
1049horizontal computations, so a field can be computed from other fields 1114for table calculations. On the basic level, tables do only horizontal
1050@emph{in the same row}, and Org-mode assumes that there is only one 1115computations, so a field can be computed from other fields @emph{in the
1051formula for each column. This is very efficient to work with and 1116same row}, and Org-mode assumes that there is only one formula for each
1052enough for many tasks. On the complex level, columns and individual 1117column. This is very efficient to work with and enough for many tasks.
1053fields can be named for easier referencing in formulas, individual 1118On the complex level, columns and individual fields can be named for
1054named fields can have their own formula associated with them, and 1119easier referencing in formulas, individual named fields can have their
1055recalculation can be automated. 1120own formula associated with them, and recalculation can be automated.
1056 1121
1057@menu 1122@menu
1058* Formula syntax:: How to write a formula 1123* Formula syntax:: How to write a formula
1124* Lisp formulas:: An alternative way to write formulas
1059* Column formulas:: Formulas valid for all fields in a column 1125* Column formulas:: Formulas valid for all fields in a column
1060* Advanced features:: Field names, parameters and automatic recalc 1126* Advanced features:: Field names, parameters and automatic recalc
1061* Named-field formulas:: Formulas valid in single fields 1127* Named-field formulas:: Formulas valid in single fields
@@ -1063,7 +1129,7 @@ recalculation can be automated.
1063* Appetizer:: Taste the power of calc 1129* Appetizer:: Taste the power of calc
1064@end menu 1130@end menu
1065 1131
1066@node Formula syntax, Column formulas, Table calculations, Table calculations 1132@node Formula syntax, Lisp formulas, Table calculations, Table calculations
1067@subsection Formula syntax 1133@subsection Formula syntax
1068@cindex formula syntax 1134@cindex formula syntax
1069@cindex syntax, of formulas 1135@cindex syntax, of formulas
@@ -1108,8 +1174,8 @@ described below, see @ref{Advanced features}.
1108A formula can contain an optional mode string after a semicolon. This 1174A formula can contain an optional mode string after a semicolon. This
1109string consists of flags to influence calc's modes@footnote{By 1175string consists of flags to influence calc's modes@footnote{By
1110default, Org-mode uses the standard calc modes (precision 12, angular 1176default, Org-mode uses the standard calc modes (precision 12, angular
1111units degrees, fraction and symbolic modes off). However, the display 1177units degrees, fraction and symbolic modes off). The display format,
1112format has been changed to @code{(float 5)} to keep tables compact. 1178however, has been changed to @code{(float 5)} to keep tables compact.
1113The default settings can be configured using the variable 1179The default settings can be configured using the variable
1114@code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to 1180@code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to
1115switch the internal precision to 20 digits, @samp{n3}, @samp{s3}, 1181switch the internal precision to 20 digits, @samp{n3}, @samp{s3},
@@ -1120,20 +1186,38 @@ respectively. In addition, you may provide a @code{printf} format
1120specifier to reformat the final result. A few examples: 1186specifier to reformat the final result. A few examples:
1121 1187
1122@example 1188@example
1123 $1+$2 @r{Sum of first and second field} 1189$1+$2 @r{Sum of first and second field}
1124 $1+$2;%.2f @r{Same, format result to two decimals} 1190$1+$2;%.2f @r{Same, format result to two decimals}
1125 exp($2)+exp($1) @r{Math functions can be used} 1191exp($2)+exp($1) @r{Math functions can be used}
1126 $;%.1f @r{Reformat current cell to 1 decimal} 1192$;%.1f @r{Reformat current cell to 1 decimal}
1127 ($3-32)*5/9 @r{Degrees F -> C conversion} 1193($3-32)*5/9 @r{Degrees F -> C conversion}
1128 $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} 1194$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}}
1129 tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} 1195tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1}
1130 sin($1);Dp3%.1e @r{Same, but use printf specifier for display} 1196sin($1);Dp3%.1e @r{Same, but use printf specifier for display}
1131 vmean($2..$7) @r{Compute column range mean, using vector function} 1197vmean($2..$7) @r{Compute column range mean, using vector function}
1132 vsum(&III) @r{Sum numbers from 3rd hline above, up to here} 1198vsum(&III) @r{Sum numbers from 3rd hline above, up to here}
1133 taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} 1199taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
1200@end example
1201
1202@node Lisp formulas, Column formulas, Formula syntax, Table calculations
1203@subsection Emacs Lisp forms as formulas
1204@cindex Lisp forms, as table formulas
1205
1206It is also possible to write a formula in Emacs lisp; this can be useful
1207for string manipulation and control structures. If a formula starts
1208with a single quote followed by an opening parenthesis, then it is
1209evaluated as a lisp form. The evaluation should return either a string
1210or a number. Just as with @file{calc} formulas, you can provide a
1211format specifier after a semicolon. A few examples:
1212
1213@example
1214@r{swap the first two characters of the content of column 1}
1215'(concat (substring "$1" 1 2) (substring "$1" 0 1) (substring "$1" 2))
1216@r{Add columns 1 and 2, equivalent to the calc's @code{$1+$2}}
1217'(+ $1 $2)
1134@end example 1218@end example
1135 1219
1136@node Column formulas, Advanced features, Formula syntax, Table calculations 1220@node Column formulas, Advanced features, Lisp formulas, Table calculations
1137@subsection Column formulas 1221@subsection Column formulas
1138@cindex column formula 1222@cindex column formula
1139@cindex formula, for table column 1223@cindex formula, for table column
@@ -1203,7 +1287,7 @@ features:
1203 1287
1204@noindent @b{Important}: Please note that for these special tables, 1288@noindent @b{Important}: Please note that for these special tables,
1205recalculating the table with @kbd{C-u C-c *} will only affect rows 1289recalculating the table with @kbd{C-u C-c *} will only affect rows
1206which are marked @samp{#} or @samp{*}, and named fields. The column 1290that are marked @samp{#} or @samp{*}, and named fields. The column
1207formulas are not applied in rows with empty first field. 1291formulas are not applied in rows with empty first field.
1208 1292
1209@cindex marking characters, tables 1293@cindex marking characters, tables
@@ -1300,7 +1384,7 @@ Detailed information will be displayed.
1300@node Appetizer, , Editing/debugging formulas, Table calculations 1384@node Appetizer, , Editing/debugging formulas, Table calculations
1301@subsection Appetizer 1385@subsection Appetizer
1302 1386
1303Finally, just to wet your appetite on what can be done with the fantastic 1387Finally, just to whet your appetite on what can be done with the fantastic
1304@file{calc} package, here is a table that computes the Taylor series 1388@file{calc} package, here is a table that computes the Taylor series
1305for a couple of functions (homework: try that with Excel :-) 1389for a couple of functions (homework: try that with Excel :-)
1306 1390
@@ -1326,7 +1410,7 @@ for a couple of functions (homework: try that with Excel :-)
1326@cindex minor mode for tables 1410@cindex minor mode for tables
1327 1411
1328If you like the intuitive way the Org-mode table editor works, you 1412If you like the intuitive way the Org-mode table editor works, you
1329might want to use it also in other modes like text-mode or mail-mode. 1413might also want to use it in other modes like text-mode or mail-mode.
1330The minor mode Orgtbl-mode makes this possible. You can always toggle 1414The minor mode Orgtbl-mode makes this possible. You can always toggle
1331the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for 1415the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for
1332example in mail mode, use 1416example in mail mode, use
@@ -1369,15 +1453,16 @@ possible.
1369@chapter Hyperlinks 1453@chapter Hyperlinks
1370@cindex hyperlinks 1454@cindex hyperlinks
1371 1455
1372Just like HMTL, Org-mode provides links inside a file, and external 1456Just like HTML, Org-mode provides links inside a file, and external
1373links to other files, Usenet articles, emails and much more. 1457links to other files, Usenet articles, emails, and much more.
1374 1458
1375@menu 1459@menu
1376* Link format:: How links in Org-mode are formatted 1460* Link format:: How links in Org-mode are formatted
1377* Internal links:: Links to other places in the current file 1461* Internal links:: Links to other places in the current file
1378* External links:: URL-like links to the world 1462* External links:: URL-like links to the world
1379* Handling links:: Creating, inserting and following 1463* Handling links:: Creating, inserting and following
1380* Search Options:: Linking to a specific location 1464* Search options:: Linking to a specific location
1465* Custom searches:: When the default search is not enough
1381* Remember:: Org-trees store quick notes 1466* Remember:: Org-trees store quick notes
1382@end menu 1467@end menu
1383 1468
@@ -1387,7 +1472,7 @@ links to other files, Usenet articles, emails and much more.
1387@cindex format, of links 1472@cindex format, of links
1388 1473
1389Org-mode will recognize plain URL-like links and activate them as 1474Org-mode will recognize plain URL-like links and activate them as
1390clickable links. However, the general link format looks like this: 1475clickable links. The general link format, however, looks like this:
1391 1476
1392@example 1477@example
1393[[link][description]] @r{or alternatively} [[link]] 1478[[link][description]] @r{or alternatively} [[link]]
@@ -1407,7 +1492,7 @@ If you place the cursor at the beginning or just behind the end of the
1407displayed text and press @key{BACKSPACE}, you will remove the 1492displayed text and press @key{BACKSPACE}, you will remove the
1408(invisible) bracket at that location. This makes the link incomplete 1493(invisible) bracket at that location. This makes the link incomplete
1409and the internals are again displayed as plain text. Inserting the 1494and the internals are again displayed as plain text. Inserting the
1410missing bracket does hide the link internals again. To show the 1495missing bracket hides the link internals again. To show the
1411internal structure of all links, use the menu entry 1496internal structure of all links, use the menu entry
1412@code{Org->Hyperlinks->Literal links}. 1497@code{Org->Hyperlinks->Literal links}.
1413 1498
@@ -1422,16 +1507,18 @@ the current file. Links such as @samp{[[My Target]]} or @samp{[[My
1422Target][Find my target]]} lead to a text search in the current file. 1507Target][Find my target]]} lead to a text search in the current file.
1423The link can be followed with @kbd{C-c C-o} when the cursor is on the 1508The link can be followed with @kbd{C-c C-o} when the cursor is on the
1424link, or with a mouse click (@pxref{Handling links}). The preferred 1509link, or with a mouse click (@pxref{Handling links}). The preferred
1425match for such a link is a dedicated target: The same string in double 1510match for such a link is a dedicated target: the same string in double
1426angular brackets. Targets may be located anywhere, often it is 1511angular brackets. Targets may be located anywhere; often it is
1427convenient to put them into a comment line, for example 1512convenient to put them into a comment line. For example
1428 1513
1429@example 1514@example
1430# <<My Target>> 1515# <<My Target>>
1431@end example 1516@end example
1432 1517
1433@noindent In HTML export (@pxref{HTML export}), such targets will become 1518@noindent In HTML export (@pxref{HTML export}), such targets will become
1434named anchors for direct access through @samp{http} links. 1519named anchors for direct access through @samp{http} links@footnote{Note
1520that text before the first headline will never be exported, so the first
1521such target must be after the first headline.}.
1435 1522
1436If no dedicated target exists, Org-mode will search for the words in the 1523If no dedicated target exists, Org-mode will search for the words in the
1437link. In the above example the search would be for @samp{my target}. 1524link. In the above example the search would be for @samp{my target}.
@@ -1502,30 +1589,35 @@ text search such that @samp{CamelCaseLink} is equivalent to
1502@cindex MH-E links 1589@cindex MH-E links
1503@cindex USENET links 1590@cindex USENET links
1504@cindex SHELL links 1591@cindex SHELL links
1592@cindex Info links
1593@cindex elisp links
1505 1594
1506Org-mode supports links to files, websites, Usenet and email messages; 1595Org-mode supports links to files, websites, Usenet and email messages,
1507and BBDB database entries. External links are URL-like locators. The 1596and BBDB database entries. External links are URL-like locators. They
1508following list shows examples for each link type. 1597start with a short identifying string followed by a colon. There can be
1598no space after the colon. The following list shows examples for each
1599link type.
1509 1600
1510@example 1601@example
1511http://www.astro.uva.nl/~dominik @r{on the web} 1602http://www.astro.uva.nl/~dominik @r{on the web}
1512file:/home/dominik/images/jupiter.jpg @r{file, absolute path} 1603file:/home/dominik/images/jupiter.jpg @r{file, absolute path}
1513file:papers/last.pdf @r{file, relative path} 1604file:papers/last.pdf @r{file, relative path}
1514news:comp.emacs @r{Usenet link} 1605news:comp.emacs @r{Usenet link}
1515mailto:adent@@galaxy.net @r{Mail link} 1606mailto:adent@@galaxy.net @r{Mail link}
1516vm:folder @r{VM folder link} 1607vm:folder @r{VM folder link}
1517vm:folder#id @r{VM message link} 1608vm:folder#id @r{VM message link}
1518vm://myself@@some.where.org/folder#id @r{VM on remote machine} 1609vm://myself@@some.where.org/folder#id @r{VM on remote machine}
1519wl:folder @r{WANDERLUST folder link} 1610wl:folder @r{WANDERLUST folder link}
1520wl:folder#id @r{WANDERLUST message link} 1611wl:folder#id @r{WANDERLUST message link}
1521mhe:folder @r{MH-E folder link} 1612mhe:folder @r{MH-E folder link}
1522mhe:folder#id @r{MH-E message link} 1613mhe:folder#id @r{MH-E message link}
1523rmail:folder @r{RMAIL folder link} 1614rmail:folder @r{RMAIL folder link}
1524rmail:folder#id @r{RMAIL message link} 1615rmail:folder#id @r{RMAIL message link}
1525gnus:group @r{GNUS group link} 1616gnus:group @r{GNUS group link}
1526gnus:group#id @r{GNUS article link} 1617gnus:group#id @r{GNUS article link}
1527bbdb:Richard Stallman @r{BBDB link} 1618bbdb:Richard Stallman @r{BBDB link}
1528shell:ls *.org @r{A shell command} 1619shell:ls *.org @r{A shell command}
1620elisp:(find-file-other-frame "Elisp.org") @r{An elisp form to evaluate}
1529@end example 1621@end example
1530 1622
1531A link should be enclosed in double brackets and may contain a 1623A link should be enclosed in double brackets and may contain a
@@ -1540,10 +1632,10 @@ format}), for example:
1540@cindex plain text external links 1632@cindex plain text external links
1541Org-mode also finds external links in the normal text and activates them 1633Org-mode also finds external links in the normal text and activates them
1542as links. If spaces must be part of the link (for example in 1634as links. If spaces must be part of the link (for example in
1543@samp{bbdb:Richard Stallman}) or to remove ambiguities about the end of 1635@samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of
1544the link, enclose them in angular brackets. 1636the link, enclose them in angular brackets.
1545 1637
1546@node Handling links, Search Options, External links, Hyperlinks 1638@node Handling links, Search options, External links, Hyperlinks
1547@section Handling links 1639@section Handling links
1548 1640
1549Org-mode provides methods to create a link in the correct syntax, to 1641Org-mode provides methods to create a link in the correct syntax, to
@@ -1559,13 +1651,16 @@ stored for later insertion into an Org-mode buffer (see below). For
1559Org-mode files, if there is a @samp{<<target>>} at the cursor, the link 1651Org-mode files, if there is a @samp{<<target>>} at the cursor, the link
1560points to the target. Otherwise it points to the current headline. For 1652points to the target. Otherwise it points to the current headline. For
1561VM, RMAIL, WANDERLUST, MH-E, GNUS and BBDB buffers, the link will 1653VM, RMAIL, WANDERLUST, MH-E, GNUS and BBDB buffers, the link will
1562indicate to the current article/entry. For W3 and W3M buffers, the link 1654indicate the current article/entry. For W3 and W3M buffers, the link
1563goes to the current URL. For any other files, the link will point to 1655goes to the current URL. For any other files, the link will point to
1564the file, with a search string (@pxref{Search Options}) pointing to the 1656the file, with a search string (@pxref{Search options}) pointing to the
1565contents of the current line. If there is an active region, the 1657contents of the current line. If there is an active region, the
1566selected words will form the basis of the search string. The key 1658selected words will form the basis of the search string. If the
1567binding @kbd{C-c l} is only a suggestion - see @ref{Installation and 1659automatically created link is not working correctly or accurately
1568activation}. 1660enough, you can write custom functions to select the search string and
1661to do the search for particular file types - see @ref{Custom searches}.
1662The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation
1663and activation}.
1569 1664
1570@kindex C-c C-l 1665@kindex C-c C-l
1571@cindex link completion 1666@cindex link completion
@@ -1581,7 +1676,9 @@ that you don't have to use this command to insert a link. Links in
1581Org-mode are plain text, and you can type or paste them straight into 1676Org-mode are plain text, and you can type or paste them straight into
1582the buffer. By using this command, the links are automatically enclosed 1677the buffer. By using this command, the links are automatically enclosed
1583in double brackets, and you will be asked for the optional descriptive 1678in double brackets, and you will be asked for the optional descriptive
1584text. 1679text. If the link is a @samp{file:} link and the linked file is located
1680in the same directory as the current file or a subdirectory of it, the
1681path of the file will be inserted relative to the current directory.
1585 1682
1586@kindex C-u C-c C-l 1683@kindex C-u C-c C-l
1587@cindex file name completion 1684@cindex file name completion
@@ -1597,7 +1694,7 @@ is used, if possible with @samp{~/} for your home directory. You can
1597force an absolute path with two @kbd{C-u} prefixes. 1694force an absolute path with two @kbd{C-u} prefixes.
1598 1695
1599@item C-c C-l @r{with cursor on existing link} 1696@item C-c C-l @r{with cursor on existing link}
1600When the cursor is on an existing link, @kbd{C-c C-l} allows to edit the 1697When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the
1601link and description parts of the link. 1698link and description parts of the link.
1602 1699
1603@cindex following links 1700@cindex following links
@@ -1607,7 +1704,7 @@ Open link at point. This will launch a web browser for URLs (using
1607@command{browse-url-at-point}), run vm/mh-e/wanderlust/rmail/gnus/bbdb 1704@command{browse-url-at-point}), run vm/mh-e/wanderlust/rmail/gnus/bbdb
1608for the corresponding links, and execute the command in a shell link. 1705for the corresponding links, and execute the command in a shell link.
1609When the cursor is on an internal link, this commands runs the 1706When the cursor is on an internal link, this commands runs the
1610corresponding search. When the cursor is on a TAGS list in a headline, 1707corresponding search. When the cursor is on a TAG list in a headline,
1611it creates the corresponding TAGS view. If the cursor is on a time 1708it creates the corresponding TAGS view. If the cursor is on a time
1612stamp, it compiles the agenda for that date. Furthermore, it will visit 1709stamp, it compiles the agenda for that date. Furthermore, it will visit
1613text files in @samp{file:} links with Emacs and select a suitable 1710text files in @samp{file:} links with Emacs and select a suitable
@@ -1620,7 +1717,7 @@ override the default application and visit the file with Emacs, use a
1620@kindex mouse-1 1717@kindex mouse-1
1621@item mouse-2 1718@item mouse-2
1622@itemx mouse-1 1719@itemx mouse-1
1623On links, @kbd{mouse-2} will open the link just like @kbd{C-c C-o} 1720On links, @kbd{mouse-2} will open the link just as @kbd{C-c C-o}
1624would. Under Emacs 22, also @kbd{mouse-1} will follow a link. 1721would. Under Emacs 22, also @kbd{mouse-1} will follow a link.
1625 1722
1626@kindex mouse-3 1723@kindex mouse-3
@@ -1643,7 +1740,7 @@ previously recorded positions.
1643@end table 1740@end table
1644 1741
1645 1742
1646@node Search Options, Remember, Handling links, Hyperlinks 1743@node Search options, Custom searches, Handling links, Hyperlinks
1647@section Search options in file links 1744@section Search options in file links
1648@cindex search option in file links 1745@cindex search option in file links
1649@cindex file links, searching 1746@cindex file links, searching
@@ -1651,8 +1748,14 @@ previously recorded positions.
1651File links can contain additional information to make Emacs jump to a 1748File links can contain additional information to make Emacs jump to a
1652particular location in the file when following a link. This can be a 1749particular location in the file when following a link. This can be a
1653line number or a search option after a double@footnote{For backward 1750line number or a search option after a double@footnote{For backward
1654compatibility, line numbers can also follow a single colon.} colon. 1751compatibility, line numbers can also follow a single colon.} colon. For
1655For example: 1752example, when the command @kbd{C-c l} creates a link (@pxref{Handling
1753links}) to a file, it encodes the words in the current line as a search
1754string that can be used to find this line back later when following the
1755link with @kbd{C-c C-o}.
1756
1757Here is the syntax of the different ways to attach a search to a file
1758link, together with an explanation:
1656 1759
1657@example 1760@example
1658[[file:~/code/main.c::255]] 1761[[file:~/code/main.c::255]]
@@ -1661,8 +1764,6 @@ For example:
1661[[file:~/xx.org::/regexp/]] 1764[[file:~/xx.org::/regexp/]]
1662@end example 1765@end example
1663 1766
1664@noindent Here is what these options do.
1665
1666@table @code 1767@table @code
1667@item 255 1768@item 255
1668Jump to line 255. 1769Jump to line 255.
@@ -1670,7 +1771,7 @@ Jump to line 255.
1670Search for a link target @samp{<<My Target>>}, or do a text search for 1771Search for a link target @samp{<<My Target>>}, or do a text search for
1671@samp{my target}, similar to the search in internal links, see 1772@samp{my target}, similar to the search in internal links, see
1672@ref{Internal links}. In HTML export (@pxref{HTML export}), such a file 1773@ref{Internal links}. In HTML export (@pxref{HTML export}), such a file
1673link will become an html reference to the corresponding named anchor in 1774link will become an HTML reference to the corresponding named anchor in
1674the linked file. 1775the linked file.
1675@item *My Target 1776@item *My Target
1676In an Org-mode file, restrict search to headlines. 1777In an Org-mode file, restrict search to headlines.
@@ -1685,10 +1786,33 @@ sparse tree with the matches.
1685 1786
1686As a degenerate case, a file link with an empty file name can be used 1787As a degenerate case, a file link with an empty file name can be used
1687to search the current file. For example, @code{<file:::find me>} does 1788to search the current file. For example, @code{<file:::find me>} does
1688a search for @samp{find me} in the current file, just like 1789a search for @samp{find me} in the current file, just as
1689@samp{[[find me]]} would. 1790@samp{[[find me]]} would.
1690 1791
1691@node Remember, , Search Options, Hyperlinks 1792@node Custom searches, Remember, Search options, Hyperlinks
1793@section Custom Searches
1794@cindex custom search strings
1795
1796The default mechanism for creating search strings and for doing the
1797actual search related to a file link may not work correctly in all
1798cases. For example, BibTeX database files have many entries like
1799@samp{year="1993"} which would not result in good search strings,
1800because the only unique identification for a BibTeX entry is the
1801citation key.
1802
1803If you come across such a problem, you can write custom functions to set
1804the right search string for a particular file type, and to do the search
1805for the string in the file. Using @code{add-hook}, these functions need
1806to be added to the hook variables
1807@code{org-create-file-search-functions} and
1808@code{org-execute-file-search-functions}. See the docstring for these
1809variables for more information. Org-mode actually uses this mechanism
1810for Bib@TeX{} database files, and you can use the corresponding code as
1811an implementation example. Search for @samp{BibTeX links} in the source
1812file.
1813
1814
1815@node Remember, , Custom searches, Hyperlinks
1692@section Remember 1816@section Remember
1693@cindex @file{remember.el} 1817@cindex @file{remember.el}
1694 1818
@@ -1698,19 +1822,14 @@ store quick notes with little interruption of your work flow. See
1698@uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more 1822@uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
1699information. The notes produced by @emph{Remember} can be stored in 1823information. The notes produced by @emph{Remember} can be stored in
1700different ways, and Org-mode files are a good target. Org-mode allows 1824different ways, and Org-mode files are a good target. Org-mode allows
1701to file away notes either to a default file, or directly to the 1825you to file away notes either to a default file, or directly to the correct
1702correct location in your Org-mode outline tree. The following 1826location in your Org-mode outline tree. The following customization
1703customization@footnote{The three autoload forms are only necessary if 1827will tell @emph{Remember} to use org files as target, and to create
1704@file{org.el} is not part of the Emacs distribution or an XEmacs 1828annotations compatible with Org-mode links.
1705package.} will tell @emph{Remember} to use org files as target, and to
1706create annotations compatible with Org-mode links.
1707 1829
1708@example 1830@example
1709(setq org-directory "~/path/to/my/orgfiles/") 1831(setq org-directory "~/path/to/my/orgfiles/")
1710(setq org-default-notes-file "~/.notes") 1832(setq org-default-notes-file "~/.notes")
1711(autoload 'org-remember-annotation "org")
1712(autoload 'org-remember-apply-template "org")
1713(autoload 'org-remember-handler "org")
1714(setq remember-annotation-functions '(org-remember-annotation)) 1833(setq remember-annotation-functions '(org-remember-annotation))
1715(setq remember-handler-functions '(org-remember-handler)) 1834(setq remember-handler-functions '(org-remember-handler))
1716(add-hook 'remember-mode-hook 'org-remember-apply-template) 1835(add-hook 'remember-mode-hook 'org-remember-apply-template)
@@ -1833,6 +1952,12 @@ Rotate the TODO state of the current item between
1833 1952
1834The same rotation can also be done ``remotely'' from the timeline and 1953The same rotation can also be done ``remotely'' from the timeline and
1835agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}). 1954agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
1955@kindex S-@key{right}
1956@kindex S-@key{left}
1957@item S-@key{right}
1958@itemx S-@key{left}
1959Select the following/preceding TODO state, similar to cycling. Mostly
1960useful if more than two TODO states are possible (@pxref{TODO extensions}).
1836@kindex C-c C-v 1961@kindex C-c C-v
1837@cindex sparse tree, for TODO 1962@cindex sparse tree, for TODO
1838@item C-c C-v 1963@item C-c C-v
@@ -1907,7 +2032,7 @@ of working on an item, for example:
1907@end lisp 2032@end lisp
1908 2033
1909@cindex completion, of TODO keywords 2034@cindex completion, of TODO keywords
1910Changing these variables becomes only effective in a new Emacs session. 2035Changing these variables only becomes effective in a new Emacs session.
1911With this setup, the command @kbd{C-c C-t} will cycle an entry from 2036With this setup, the command @kbd{C-c C-t} will cycle an entry from
1912TODO to FEEDBACK, then to VERIFY, and finally to DONE. You may also 2037TODO to FEEDBACK, then to VERIFY, and finally to DONE. You may also
1913use a prefix argument to quickly select a specific state. For example 2038use a prefix argument to quickly select a specific state. For example
@@ -1976,7 +2101,7 @@ anywhere in the file:
1976 2101
1977@cindex DONE, final TODO keyword 2102@cindex DONE, final TODO keyword
1978Remember that the last keyword must always mean that the item is DONE 2103Remember that the last keyword must always mean that the item is DONE
1979(you may use a different word, though). Also note that in each file, 2104(although you may use a different word). Also note that in each file,
1980only one of the two aspects of TODO keywords can be used. After 2105only one of the two aspects of TODO keywords can be used. After
1981changing one of these lines, use @kbd{C-c C-c} with the cursor still 2106changing one of these lines, use @kbd{C-c C-c} with the cursor still
1982in the line to make the changes known to Org-mode@footnote{Org-mode 2107in the line to make the changes known to Org-mode@footnote{Org-mode
@@ -2017,7 +2142,7 @@ difference only in the agenda (@pxref{Weekly/Daily agenda}).
2017@table @kbd 2142@table @kbd
2018@kindex @kbd{C-c ,} 2143@kindex @kbd{C-c ,}
2019@item @kbd{C-c ,} 2144@item @kbd{C-c ,}
2020Set the priority of the current item. The command prompts for a 2145Set the priority of the current headline. The command prompts for a
2021priority character @samp{A}, @samp{B} or @samp{C}. When you press 2146priority character @samp{A}, @samp{B} or @samp{C}. When you press
2022@key{SPC} instead, the priority cookie is removed from the headline. 2147@key{SPC} instead, the priority cookie is removed from the headline.
2023The priorities can also be changed ``remotely'' from the timeline and 2148The priorities can also be changed ``remotely'' from the timeline and
@@ -2027,10 +2152,9 @@ agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
2027@kindex S-@key{down} 2152@kindex S-@key{down}
2028@item S-@key{up} 2153@item S-@key{up}
2029@itemx S-@key{down} 2154@itemx S-@key{down}
2030Increase/decrease priority of current item. Note that these keys are 2155Increase/decrease priority of current headline. Note that these keys
2031also used to modify time stamps (@pxref{Creating timestamps}). 2156are also used to modify time stamps (@pxref{Creating timestamps}).
2032Furthermore, these keys are also used by CUA-mode 2157Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}).
2033(@pxref{Interaction}).
2034@end table 2158@end table
2035 2159
2036@node Timestamps, Tags, TODO items, Top 2160@node Timestamps, Tags, TODO items, Top
@@ -2060,15 +2184,15 @@ of an org-tree entry. Its presence allows entries to be shown on specific
2060dates in the agenda (@pxref{Weekly/Daily agenda}). We distinguish: 2184dates in the agenda (@pxref{Weekly/Daily agenda}). We distinguish:
2061 2185
2062@table @var 2186@table @var
2187@item Plain time stamp
2063@cindex timestamp 2188@cindex timestamp
2064@item TIMESTAMP
2065A simple time stamp just assigns a date/time to an item. This is just 2189A simple time stamp just assigns a date/time to an item. This is just
2066like writing down an appointment in a paper agenda, or like writing down 2190like writing down an appointment in a paper agenda, or like writing down
2067an event in a diary, when you want to take not of when something 2191an event in a diary, when you want to take not of when something
2068happened. In the timeline and agenda displays, the headline of an entry 2192happened. In the timeline and agenda displays, the headline of an entry
2069associated with a plain time stamp will be shown exactly on that date. 2193associated with a plain time stamp will be shown exactly on that date.
2070 2194
2071@item TIMERANGE 2195@item Time stamp range
2072@cindex timerange 2196@cindex timerange
2073Two time stamps connected by @samp{--} denote a time range. The 2197Two time stamps connected by @samp{--} denote a time range. The
2074headline will be shown on the first and last day of the range, and on 2198headline will be shown on the first and last day of the range, and on
@@ -2080,7 +2204,7 @@ example:
2080 <2004-08-23 Mon>--<2004-08-26 Thu> 2204 <2004-08-23 Mon>--<2004-08-26 Thu>
2081@end example 2205@end example
2082 2206
2083@item SCHEDULED 2207@item Time stamp with SCHEDULED keyword
2084@cindex SCHEDULED keyword 2208@cindex SCHEDULED keyword
2085If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you 2209If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you
2086are planning to start working on that task on the given date. So this is 2210are planning to start working on that task on the given date. So this is
@@ -2095,7 +2219,7 @@ automatically be forwarded until completed.
2095 SCHEDULED: <2004-12-25 Sat> 2219 SCHEDULED: <2004-12-25 Sat>
2096@end example 2220@end example
2097 2221
2098@item DEADLINE 2222@item Time stamp with DEADLINE keyword
2099@cindex DEADLINE keyword 2223@cindex DEADLINE keyword
2100If a time stamp is preceded by the word @samp{DEADLINE:}, the task 2224If a time stamp is preceded by the word @samp{DEADLINE:}, the task
2101(most likely a TODO item) is supposed to be finished on that date, and 2225(most likely a TODO item) is supposed to be finished on that date, and
@@ -2109,6 +2233,12 @@ continuing until the entry is marked DONE. An example:
2109 The editor in charge is <bbdb:Ford Prefect> 2233 The editor in charge is <bbdb:Ford Prefect>
2110 DEADLINE: <2004-02-29 Sun> 2234 DEADLINE: <2004-02-29 Sun>
2111@end example 2235@end example
2236@item Time stamp with CLOSED keyword
2237@cindex CLOSED keyword
2238When @code{org-log-done} is non-nil, Org-mode will automatically insert
2239a special time stamp each time a TODO entry is marked done
2240(@pxref{Progress logging}). This time stamp is enclosed in square
2241brackets instead of angular brackets.
2112@end table 2242@end table
2113 2243
2114@node Creating timestamps, , Time stamps, Timestamps 2244@node Creating timestamps, , Time stamps, Timestamps
@@ -2155,7 +2285,10 @@ Access the agenda for the date given by the time stamp at point
2155 2285
2156@kindex C-c C-d 2286@kindex C-c C-d
2157@item C-c C-d 2287@item C-c C-d
2158Insert @samp{DEADLINE} keyword along with a stamp. 2288Insert @samp{DEADLINE} keyword along with a stamp. The insertion will
2289happen in the line directly following the headline.
2290@c FIXME Any CLOSED timestamp will be removed.????????
2291
2159@kindex C-c C-w 2292@kindex C-c C-w
2160@cindex sparse tree, for deadlines 2293@cindex sparse tree, for deadlines
2161@item C-c C-w 2294@item C-c C-w
@@ -2167,14 +2300,16 @@ all deadlines due tomorrow.
2167 2300
2168@kindex C-c C-s 2301@kindex C-c C-s
2169@item C-c C-s 2302@item C-c C-s
2170Insert @samp{SCHEDULED} keyword along with a stamp. 2303Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will
2304happen in the line directly following the headline. Any CLOSED
2305timestamp will be removed.
2171 2306
2172@kindex S-@key{left} 2307@kindex S-@key{left}
2173@kindex S-@key{right} 2308@kindex S-@key{right}
2174@item S-@key{left} 2309@item S-@key{left}
2175@itemx S-@key{right} 2310@itemx S-@key{right}
2176Change date at cursor by one day. These key bindings conflict with 2311Change date at cursor by one day. These key bindings conflict with
2177CUA-mode (@pxref{Interaction}). 2312CUA-mode (@pxref{Conflicts}).
2178 2313
2179@kindex S-@key{up} 2314@kindex S-@key{up}
2180@kindex S-@key{down} 2315@kindex S-@key{down}
@@ -2184,7 +2319,7 @@ Change the item under the cursor in a timestamp. The cursor can be on
2184a year, month, day, hour or minute. Note that if the cursor is not at 2319a year, month, day, hour or minute. Note that if the cursor is not at
2185a time stamp, these same keys modify the priority of an item. 2320a time stamp, these same keys modify the priority of an item.
2186(@pxref{Priorities}). The key bindings also conflict with CUA-mode 2321(@pxref{Priorities}). The key bindings also conflict with CUA-mode
2187(@pxref{Interaction}). 2322(@pxref{Conflicts}).
2188 2323
2189 2324
2190@kindex C-c C-y 2325@kindex C-c C-y
@@ -2245,9 +2380,9 @@ Choose date in calendar (only if nothing typed into minibuffer).
2245@cindex matching, tags 2380@cindex matching, tags
2246@cindex sparse tree, tag based 2381@cindex sparse tree, tag based
2247 2382
2248If you wish to implement a system to cross-correlate information, an 2383If you wish to implement a system of labels and contexts for
2249excellent way is to assign @i{tags} to headline. Org-mode has 2384cross-correlating information, an excellent way is to assign @i{tags} to
2250extensive support for using tags. 2385headlines. Org-mode has extensive support for using tags.
2251 2386
2252Every headline can contain a list of tags, at the end of the headline. 2387Every headline can contain a list of tags, at the end of the headline.
2253Tags are normal words containing letters, numbers, @samp{_}, and 2388Tags are normal words containing letters, numbers, @samp{_}, and
@@ -2279,8 +2414,8 @@ the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:},
2279@samp{:NOTES:}, and @samp{:ACTION:}. When executing tag searches and 2414@samp{:NOTES:}, and @samp{:ACTION:}. When executing tag searches and
2280Org-mode finds that a certain headline matches the search criterion, it 2415Org-mode finds that a certain headline matches the search criterion, it
2281will not check any sublevel headline, assuming that these likely also 2416will not check any sublevel headline, assuming that these likely also
2282match, and that the list of matches can become very long. However, this 2417match, and that the list of matches can become very long. This may
2283may not be what you want, and you can influence inheritance and 2418not be what you want, however, and you can influence inheritance and
2284searching using the variables @code{org-use-tag-inheritance} and 2419searching using the variables @code{org-use-tag-inheritance} and
2285@code{org-tags-match-list-sublevels}. 2420@code{org-tags-match-list-sublevels}.
2286 2421
@@ -2289,25 +2424,75 @@ searching using the variables @code{org-use-tag-inheritance} and
2289@cindex setting tags 2424@cindex setting tags
2290 2425
2291@kindex M-@key{TAB} 2426@kindex M-@key{TAB}
2292As Org-mode deals with plain text files, tags can simply be typed into 2427Tags can simply be typed into the buffer at the end of a headline.
2293the buffer. After a colon, @kbd{M-@key{TAB}} offers completion on all 2428After a colon, @kbd{M-@key{TAB}} offers completion on tags. There is
2294tags being used in the current buffer. There is also a special command 2429also a special command for inserting tags:
2295for inserting tags:
2296 2430
2297@table @kbd 2431@table @kbd
2298@kindex C-c C-c 2432@kindex C-c C-c
2299@item C-c C-c 2433@item C-c C-c
2300@cindex completion, of tags 2434@cindex completion, of tags
2301Enter new tags for the current headline. The minibuffer will prompt for 2435Enter new tags for the current headline. Org-mode will either offer
2302a list of tags and offer completion with respect to all other tags used 2436completion or a special single-key interface for setting tags, see
2303in the current buffer. Several tags, separated by colons, may be 2437below. After pressing @key{RET}, the tags will be inserted and aligned
2304specified at the prompt. After pressing @key{RET}, the tags will be 2438to @code{org-tags-column}. When called with a @kbd{C-u} prefix, all
2305inserted and aligned to @code{org-tags-column}. When called with a 2439tags in the current buffer will be aligned to that column, just to make
2306@kbd{C-u} prefix, all tags in the current buffer will be aligned to that 2440things look nice. TAGS are automatically realigned after promotion,
2307column, just to make things look nice. TAGS are automatically realigned 2441demotion, and TODO state changes (@pxref{TODO basics}).
2308after promotion, demotion, and TODO state changes (@pxref{TODO basics}).
2309@end table 2442@end table
2310 2443
2444Org will support tag insertion based on a @emph{list of tags}. By
2445default this list is constructed dynamically, containing all tags
2446currently used in the buffer. You may also globally specify a hard list
2447of tags with the variable @code{org-tag-alist}. Finally you can set
2448the allowed tags for a given file with lines like
2449
2450@example
2451#+TAGS: @@WORK @@HOME @@TENNISCLUB
2452#+TAGS: Laptop Car PC Sailboat
2453@end example
2454
2455The default method Org-mode uses to support setting tags is completion.
2456However, it also implements a much better method: @emph{fast tag
2457selection}. This method allows to select and deselect tags with a
2458single key per tag. To function efficiently, you need to assign unique
2459keys to all tags. This can be done globally with
2460
2461@lisp
2462(setq org-tag-alist '(("@@WORK" . ?w) ("@@HOME" . ?h) ("Laptop" . ?l)))
2463@end lisp
2464
2465@noindent or on a per-file basis with
2466
2467@example
2468#+TAGS: @@WORK(w) @@HOME(h) @@TENNISCLUB(t)
2469#+TAGS: Laptop(l) Car(c) PC(p) Sailboat(s)
2470@end example
2471
2472@noindent Don't forget to press @kbd{C-c C-c} with the cursor in one of
2473these lines to activate any changes.
2474
2475If selection keys have been configured, pressing @kbd{C-c C-c} will
2476automatically present you with a special interface, listing inherited
2477tags, the tags of the current headline, and a list of all legal tags
2478with corresponding keys. Pressing keys for the tags will add or remove
2479them from the list of tags in the current line. @key{SPC} clears all
2480tags for this line, @kbd{RET} accepts the modified set, and @kbd{C-g}
2481aborts without installing changes. This method lets you assing tags to
2482a headline with very few keys. With the above setup, you could clear
2483the current tags and set @samp{@@HOME}, @samp{Laptop} and @samp{PC} tags
2484with just the following keys: @kbd{C-c C-c @key{SPC} h l p @key{RET}}.
2485
2486What if you have globally defined your preferred set of tags using the
2487variable @code{org-tag-alist}, but would like to use a dynamic tag list
2488in a specific file? Just add and empty TAGS option line to that file:
2489
2490@example
2491#+TAGS:
2492@end example
2493
2494
2495
2311@node Tag searches, , Setting tags, Tags 2496@node Tag searches, , Setting tags, Tags
2312@section Tag searches 2497@section Tag searches
2313@cindex tag searches 2498@cindex tag searches
@@ -2750,7 +2935,9 @@ Go to the original location of the item and delete other windows.
2750@item f 2935@item f
2751Toggle Follow mode. In Follow mode, as you move the cursor through 2936Toggle Follow mode. In Follow mode, as you move the cursor through
2752the agenda buffer, the other window always shows the corresponding 2937the agenda buffer, the other window always shows the corresponding
2753location in the org file. 2938location in the org file. The initial setting for this mode in new
2939agenda buffers can be set with the variable
2940@code{org-agenda-start-with-follow-mode}.
2754 2941
2755@kindex l 2942@kindex l
2756@item l 2943@item l
@@ -2844,6 +3031,14 @@ key for this.
2844@itemx S-@key{down} 3031@itemx S-@key{down}
2845Decrease the priority of the current item. 3032Decrease the priority of the current item.
2846 3033
3034@kindex C-c C-s
3035@item C-c C-s
3036Schedule this item
3037
3038@kindex C-c C-d
3039@item C-c C-d
3040Set a deadline for this item.
3041
2847@kindex S-@key{right} 3042@kindex S-@key{right}
2848@item S-@key{right} 3043@item S-@key{right}
2849Change the time stamp associated with the current line by one day into 3044Change the time stamp associated with the current line by one day into
@@ -2869,7 +3064,7 @@ on my keyboard.
2869@item i 3064@item i
2870Insert a new entry into the diary. Prompts for the type of entry 3065Insert a new entry into the diary. Prompts for the type of entry
2871(day, weekly, monthly, yearly, anniversary, cyclic) and creates a new 3066(day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
2872entry in the diary, just like @kbd{i d} etc. would do in the calendar. 3067entry in the diary, just as @kbd{i d} etc. would do in the calendar.
2873The date is taken from the cursor position. 3068The date is taken from the cursor position.
2874 3069
2875@tsubheading{Calendar commands} 3070@tsubheading{Calendar commands}
@@ -2917,14 +3112,14 @@ visit org files will not be removed.
2917 3112
2918@end table 3113@end table
2919 3114
2920@node Exporting, Miscellaneous, Agenda views, Top 3115@node Exporting, Publishing, Agenda views, Top
2921@chapter Exporting 3116@chapter Exporting
2922@cindex exporting 3117@cindex exporting
2923 3118
2924Org-mode documents can be exported into a variety of other formats. For 3119Org-mode documents can be exported into a variety of other formats. For
2925printing and sharing of notes, ASCII export produces a readable and 3120printing and sharing of notes, ASCII export produces a readable and
2926simple version of an Org-mode file. HTML export allows to publish a 3121simple version of an Org-mode file. HTML export allows you to publish a
2927notes file on the web, while the XML format provides a solid base for 3122notes file on the web, while the XOXO format provides a solid base for
2928exchange with a broad range of other applications. To incorporate 3123exchange with a broad range of other applications. To incorporate
2929entries with associated times like deadlines or appointments into a 3124entries with associated times like deadlines or appointments into a
2930desktop calendar program like iCal, Org-mode can also produce extracts 3125desktop calendar program like iCal, Org-mode can also produce extracts
@@ -2937,7 +3132,7 @@ produced. @xref{Text interpretation}, for more details.
2937@menu 3132@menu
2938* ASCII export:: Exporting to plain ASCII 3133* ASCII export:: Exporting to plain ASCII
2939* HTML export:: Exporting to HTML 3134* HTML export:: Exporting to HTML
2940* XML export:: Exporting to XML 3135* XOXO export:: Exporting to XOXO
2941* iCalendar export:: Exporting in iCalendar format 3136* iCalendar export:: Exporting in iCalendar format
2942* Text interpretation:: How the exporter looks at the file 3137* Text interpretation:: How the exporter looks at the file
2943@end menu 3138@end menu
@@ -2959,6 +3154,9 @@ Export as ASCII file. If there is an active region, only the region
2959will be exported. For an org file @file{myfile.org}, the ASCII file 3154will be exported. For an org file @file{myfile.org}, the ASCII file
2960will be @file{myfile.txt}. The file will be overwritten without 3155will be @file{myfile.txt}. The file will be overwritten without
2961warning. 3156warning.
3157@kindex C-c C-x v a
3158@item C-c C-x v a
3159Export only the visible part of the document.
2962@end table 3160@end table
2963 3161
2964@cindex headline levels, for exporting 3162@cindex headline levels, for exporting
@@ -2974,7 +3172,7 @@ at a different level, specify it with a prefix argument. For example,
2974@noindent 3172@noindent
2975creates only top level headlines and does the rest as items. 3173creates only top level headlines and does the rest as items.
2976 3174
2977@node HTML export, XML export, ASCII export, Exporting 3175@node HTML export, XOXO export, ASCII export, Exporting
2978@section HTML export 3176@section HTML export
2979@cindex HTML export 3177@cindex HTML export
2980 3178
@@ -2992,6 +3190,11 @@ Export as HTML file @file{myfile.html}.
2992@kindex C-c C-x b 3190@kindex C-c C-x b
2993@item C-c C-x b 3191@item C-c C-x b
2994Export as HTML file and open it with a browser. 3192Export as HTML file and open it with a browser.
3193@kindex C-c C-x v h
3194@kindex C-c C-x v b
3195@item C-c C-x v h
3196@item C-c C-x v b
3197Export only the visible part of the document.
2995@end table 3198@end table
2996 3199
2997@cindex headline levels, for exporting 3200@cindex headline levels, for exporting
@@ -3008,12 +3211,36 @@ at a different level, specify it with a prefix argument. For example,
3008creates two levels of headings and does the rest as items. 3211creates two levels of headings and does the rest as items.
3009 3212
3010If you want to include HTML tags which should be interpreted as such, 3213If you want to include HTML tags which should be interpreted as such,
3011mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}. 3214mark them with @samp{@@} as in @samp{@@<b>bold text@@</b>}.
3012Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and 3215Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
3013@samp{&gt;} in HTML export. 3216@samp{&gt;} in HTML export.
3014 3217
3015You can also give style information for the exported file. The 3218@cindex links, in HTML export
3016default specification can be configured through the option 3219@cindex internal links, in HTML export
3220@cindex external links, in HTML export
3221Internal links (@pxref{Internal links}) will continue to work in HTML
3222files only if they match a dedicated @samp{<<target>>}. Automatic links
3223created by radio targets (@pxref{Radio targets}) will also work in the
3224HTML file. Links to external files will still work if the HTML file is
3225in the same directory as the Org-mode file. Links to other @file{.org}
3226files will be translated into HTML links under the assumption that an
3227HTML version also exists of the linked file. For information related to
3228linking files while publishing them to a publishing directory see
3229@ref{Publishing links}.
3230
3231You can also give style information for the exported file. The HTML
3232exporter assigns the following CSS classes to appropriate parts of the
3233document - your style specifications may change these:
3234@example
3235.todo @r{TODO keywords}
3236.done @r{the DONE keyword}
3237.timestamp @r{time stamp}
3238.timestamp-kwd @r{keyword associated with a time stamp, like SCHEDULED}
3239.tag @r{tag in a headline}
3240.target @r{target for links}
3241@end example
3242
3243The default style specification can be configured through the option
3017@code{org-export-html-style}. If you want to use a file-local style, 3244@code{org-export-html-style}. If you want to use a file-local style,
3018you may use file variables, best wrapped into a COMMENT section at the 3245you may use file variables, best wrapped into a COMMENT section at the
3019end of the outline tree. For example: 3246end of the outline tree. For example:
@@ -3037,21 +3264,24 @@ section in the buffer.
3037@c FIXME: More about header and footer styles 3264@c FIXME: More about header and footer styles
3038@c FIXME: Talk about links and targets. 3265@c FIXME: Talk about links and targets.
3039 3266
3040@node XML export, iCalendar export, HTML export, Exporting 3267@node XOXO export, iCalendar export, HTML export, Exporting
3041@section XML export 3268@section XOXO export
3042@cindex XML export 3269@cindex XOXO export
3043 3270
3044Org-mode contains an XML exporter that produces XOXO-style XML. 3271Org-mode contains an exporter that produces XOXO-style output.
3045Currently, this exporter only handles the general outline structure and 3272Currently, this exporter only handles the general outline structure and
3046does not interpret any additional Org-mode features. 3273does not interpret any additional Org-mode features.
3047 3274
3048@table @kbd 3275@table @kbd
3049@kindex C-c C-x C-x 3276@kindex C-c C-x C-x
3050@item C-c C-x C-x 3277@item C-c C-x C-x
3051Export as XML file @file{myfile.xml}. 3278Export as XOXO file @file{myfile.html}.
3279@kindex C-c C-x v
3280@item C-c C-x v x
3281Export only the visible part of the document.
3052@end table 3282@end table
3053 3283
3054@node iCalendar export, Text interpretation, XML export, Exporting 3284@node iCalendar export, Text interpretation, XOXO export, Exporting
3055@section iCalendar export 3285@section iCalendar export
3056@cindex iCalendar export 3286@cindex iCalendar export
3057 3287
@@ -3231,7 +3461,7 @@ you can:
3231@cindex section-numbers 3461@cindex section-numbers
3232@cindex table of contents 3462@cindex table of contents
3233@cindex linebreak preservation 3463@cindex linebreak preservation
3234@cindex quoted html tags 3464@cindex quoted HTML tags
3235@cindex fixed-width sections 3465@cindex fixed-width sections
3236@cindex tables 3466@cindex tables
3237@cindex @TeX{}-like syntax for sub- and superscripts 3467@cindex @TeX{}-like syntax for sub- and superscripts
@@ -3242,7 +3472,7 @@ H: @r{set the number of headline levels for export}
3242num: @r{turn on/off section-numbers} 3472num: @r{turn on/off section-numbers}
3243toc: @r{turn on/off table of contents} 3473toc: @r{turn on/off table of contents}
3244\n: @r{turn on/off linebreak-preservation} 3474\n: @r{turn on/off linebreak-preservation}
3245@@: @r{turn on/off quoted html tags} 3475@@: @r{turn on/off quoted HTML tags}
3246:: @r{turn on/off fixed-width sections} 3476:: @r{turn on/off fixed-width sections}
3247|: @r{turn on/off tables} 3477|: @r{turn on/off tables}
3248^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.} 3478^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
@@ -3250,7 +3480,313 @@ toc: @r{turn on/off table of contents}
3250TeX: @r{turn on/off @TeX{} macros} 3480TeX: @r{turn on/off @TeX{} macros}
3251@end example 3481@end example
3252 3482
3253@node Miscellaneous, Index, Exporting, Top 3483@node Publishing, Miscellaneous, Exporting, Top
3484@chapter Publishing
3485
3486Org-mode includes@footnote{@file{org-publish.el} is not yet part of
3487emacs, so if you are using @file{org.el} as it comes with Emacs, you
3488need to download this file separately. Also make sure org.el is at
3489least version 4.27.} a publishing management system
3490that allows you to configure automatic HTML conversion of
3491@emph{projects} composed of interlinked org files. This system is
3492called @emph{org-publish}. You can also configure org-publish to
3493automatically upload your exported HTML pages and related attachments,
3494such as images and source code files, to a web server. Org-publish turns
3495org-mode into a web-site authoring tool.
3496
3497Org-publish has been contributed to Org-mode by David O'Toole.
3498
3499@menu
3500* Configuration:: Defining projects
3501* Sample configuration:: Example projects
3502* Triggering publication:: Publication commands
3503@end menu
3504
3505@node Configuration, Sample configuration, Publishing, Publishing
3506@section Configuration
3507
3508Publishing needs significant configuration to specify files, destination
3509and many other properties of a project.
3510
3511@menu
3512* Project alist:: The central configuration variable
3513* File sources and destinations:: From here to there
3514* Selecting files:: What files are part of the project?
3515* Publishing action:: Setting the function doing the publishing
3516* Publishing options:: Tweaking HTML export
3517* Publishing links:: Which links keep working after publishing?
3518* Project page index:: Publishing a list of project files
3519@end menu
3520
3521@node Project alist, File sources and destinations, Configuration, Configuration
3522@subsection The variable @code{org-publish-project-alist}
3523
3524Org-publish is configured almost entirely through setting the value of
3525one variable, called @code{org-publish-project-alist}.
3526Each element of the list configures one project, and may be in one of
3527the two following forms:
3528
3529@lisp
3530("project-name" :property value :property value ...)
3531
3532@r{or}
3533
3534("project-name"
3535 ("component1" :property value :property value ...)
3536 ("component2" :property value :property value ...)
3537 ...)
3538@end lisp
3539
3540In both cases, projects are configured by specifying property values.
3541A project defines the set of files that will be published, as well as
3542the publishing configuration to use when publishing those files.
3543When a project takes the second form listed above, the individual
3544property lists are taken to be "components" of the project, which
3545group together files requiring different publishing options.
3546
3547@node File sources and destinations, Selecting files, Project alist, Configuration
3548@subsection Sources and destinations for files
3549
3550Most properties are optional, but some should always be set. In
3551particular, org-publish needs to know where to look for source files,
3552and where to put published files.
3553
3554@multitable @columnfractions 0.3 0.7
3555@item @code{:base-directory}
3556@tab Directory containing publishing source files
3557@item @code{:publishing-directory}
3558@tab Directory (possibly remote) where output files will be published.
3559@end multitable
3560@noindent
3561
3562@node Selecting files, Publishing action, File sources and destinations, Configuration
3563@subsection Selecting files
3564
3565By default, all files with extension @file{.org} in the base directory
3566are considered part of the project. This can be modified by setting the
3567properties
3568@multitable @columnfractions 0.25 0.75
3569@item @code{:base-extension}
3570@tab Extension (without the dot!) of source files. This actually is a
3571regular expression.
3572
3573@item @code{:exclude}
3574@tab Regular expression to match file names that should not be
3575published, even though they have been selected on the basis of their
3576extension.
3577
3578@item @code{:include}
3579@tab List of files to be included regardless of @code{:base-extension}
3580and @code{:exclude}.
3581@end multitable
3582
3583@node Publishing action, Publishing options, Selecting files, Configuration
3584@subsection Publishing Action
3585
3586Publishing means that a file is copied to the destination directory and
3587possibly transformed in the process. The default transformation is to
3588export Org-mode files as HTML files, and this is done by the function
3589@code{org-publish-org-to-html} which calls the HTML exporter
3590(@pxref{HTML export}). Other files like images only need to be copied
3591to the publishing destination. For non-Org-mode files, you need to
3592specify the publishing function.
3593
3594@multitable @columnfractions 0.3 0.7
3595@item @code{:publishing-function}
3596@tab Function executing the publication of a file.
3597@end multitable
3598
3599The function must accept two arguments: a property list containing at
3600least a @code{:publishing-directory} property, and the name of the file
3601to be published. I should take the specified file, make the necessary
3602transformation (if any) and place the result into the destination folder.
3603You can write your own publishing function, but @code{org-publish}
3604provides one for attachments (files that only need to be copied):
3605@code{org-publish-attachment}.
3606
3607@node Publishing options, Publishing links, Publishing action, Configuration
3608@subsection Options for the HTML exporter
3609
3610The property list can be used to set many export options for the HTML
3611exporter. In most cases, these properties correspond to user variables
3612in Org-mode. The table below lists these properties along with the
3613variable they belong to. See the documentation string for the
3614respective variable for details.
3615
3616@multitable @columnfractions 0.3 0.7
3617@item @code{:language} @tab @code{org-export-default-language}
3618@item @code{:headline-levels} @tab @code{org-export-headline-levels}
3619@item @code{:section-numbers} @tab @code{org-export-with-section-numbers}
3620@item @code{:table-of-contents} @tab @code{org-export-with-toc}
3621@item @code{:emphasize} @tab @code{org-export-with-emphasize}
3622@item @code{:sub-superscript} @tab @code{org-export-with-sub-superscripts}
3623@item @code{:TeX-macros} @tab @code{org-export-with-TeX-macros}
3624@item @code{:fixed-width} @tab @code{org-export-with-fixed-width}
3625@item @code{:timestamps} .@tab @code{org-export-with-timestamps}
3626@item @code{:tags} .@tab @code{org-export-with-tags}
3627@item @code{:tables} @tab @code{org-export-with-tables}
3628@item @code{:table-auto-headline} @tab @code{org-export-highlight-first-table-line}
3629@item @code{:style} @tab @code{org-export-html-style}
3630@item @code{:convert-org-links} @tab @code{org-export-html-link-org-files-as-html}
3631@item @code{:inline-images} @tab @code{org-export-html-inline-images}
3632@item @code{:expand-quoted-html} @tab @code{org-export-html-expand}
3633@item @code{:timestamp} @tab @code{org-export-html-with-timestamp}
3634@item @code{:publishing-directory} @tab @code{org-export-publishing-directory}
3635@item @code{:preamble} @tab @code{org-export-html-preamble}
3636@item @code{:postamble} @tab @code{org-export-html-postamble}
3637@item @code{:auto-preamble} @tab @code{org-export-html-auto-preamble}
3638@item @code{:auto-postamble} @tab @code{org-export-html-auto-postamble}
3639@item @code{:author} @tab @code{user-full-name}
3640@item @code{:email} @tab @code{user-mail-address}
3641@end multitable
3642
3643When a property is given a value in org-publish-project-alist, its
3644setting overrides the value of the corresponding user variable (if any)
3645during publishing. options set within a file (@pxref{Export
3646options}), however, override everything.
3647
3648@node Publishing links, Project page index, Publishing options, Configuration
3649@subsection Links between published files
3650
3651To create a link from one Org-mode file to another, you would use
3652something like @samp{[[file:foo.org][The foo]]} or simply
3653@samp{file:foo.org.} (@pxref{Hyperlinks}). Upon publishing this link
3654becomes a link to @file{foo.html}. In this way, you can interlink the
3655pages of your "org web" project and the links will work as expected when
3656you publish them to HTML.
3657
3658You may also link to related files, such as images. Provided you are
3659careful with relative pathnames, and provided you have also configured
3660org-publish to upload the related files, these links will work
3661too. @ref{Complex example} for an example of this usage.
3662
3663@node Project page index, , Publishing links, Configuration
3664@subsection Project page index
3665
3666The following properties may be used to control publishing of an
3667index of files or summary page for a given project.
3668
3669@multitable @columnfractions 0.25 0.75
3670@item @code{:auto-index}
3671@tab When non-nil, publish an index during org-publish-current-project or
3672org-publish-all.
3673
3674@item @code{:index-filename}
3675@tab Filename for output of index. Defaults to @file{index.org} (which
3676becomes @file{index.html}).
3677
3678@item @code{:index-title}
3679@tab Title of index page. Defaults to name of file.
3680
3681@item @code{:index-function}
3682@tab Plugin function to use for generation of index.
3683Defaults to @code{org-publish-org-index}, which generates a plain list
3684of links to all files in the project.
3685@end multitable
3686
3687@node Sample configuration, Triggering publication, Configuration, Publishing
3688@section Sample configuration
3689
3690Below we provide two example configurations. The first one is a simple
3691project publishing only a set of Org-mode files. The second example is
3692more complex, with a multi-component project.
3693
3694@menu
3695* Simple example:: One-component publishing
3696* Complex example:: A multi-component publishing example
3697@end menu
3698
3699@node Simple example, Complex example, Sample configuration, Sample configuration
3700@subsection Example: simple publishing configuration
3701
3702This example publishes a set of Org-mode files to the @file{public_html}
3703directory on the local machine.
3704
3705@lisp
3706(setq org-publish-project-alist
3707 '(("org"
3708 :base-directory "~/org/"
3709 :publishing-directory "~/public_html"
3710 :section-numbers nil
3711 :table-of-contents nil
3712 :style "<link rel=stylesheet
3713 href=\"../other/mystyle.css\"
3714 type=\"text/css\">")))
3715@end lisp
3716
3717@node Complex example, , Simple example, Sample configuration
3718@subsection Example: complex publishing configuration
3719
3720This more complicated example publishes an entire website, including
3721org files converted to HTML, image files, emacs lisp source code, and
3722stylesheets. The publishing-directory is remote and private files are
3723excluded.
3724
3725To ensure that links are preserved, care should be taken to replicate
3726your directory structure on the web server, and to use relative file
3727paths. For example, if your org files are kept in @file{~/org} and your
3728publishable images in @file{~/images}, you'd link to an image with
3729@c
3730@example
3731file:../images/myimage.png
3732@end example
3733@c
3734On the web server, the relative path to the image should be the
3735same. You can accomplish this by setting up an "images" folder in the
3736right place on the webserver, and publishing images to it.
3737
3738@lisp
3739(setq org-publish-project-alist
3740 '(("website"
3741 ("orgfiles"
3742 :base-directory "~/org/"
3743 :base-extension "org"
3744 :publishing-directory "/ssh:user@@host:~/html/notebook/"
3745 :publishing-function org-publish-org-to-html
3746 :exclude "PrivatePage.org" ;; regexp
3747 :headline-levels 3
3748 :section-numbers nil
3749 :table-of-contents nil
3750 :style "<link rel=stylesheet
3751 href=\"../other/mystyle.css\" type=\"text/css\">"
3752 :auto-preamble t
3753 :auto-postamble nil)
3754
3755 ("images"
3756 :base-directory "~/images/"
3757 :base-extension "jpg\\|gif\\|png"
3758 :publishing-directory "/ssh:user@@host:~/html/images/"
3759 :publishing-function org-publish-attachment)
3760
3761 ("other"
3762 :base-directory "~/other/"
3763 :base-extension "css\\|el"
3764 :publishing-directory "/ssh:user@@host:~/html/other/"
3765 :publishing-function org-publish-attachment))))
3766@end lisp
3767
3768@node Triggering publication, , Sample configuration, Publishing
3769@section Triggering publication
3770
3771Once org-publish is properly configured, you can publish with the
3772following functions:
3773
3774@table @kbd
3775@item C-c C-e c
3776Prompts for a specific project to publish.
3777@item C-c C-e p
3778Publishes the project the current file is part of.
3779@item C-c C-e f
3780Publishes only the current file.
3781@item C-c C-e a
3782Publish all projects.
3783@end table
3784
3785Org uses timestamps to track when a file has changed. The above
3786functions normally only publish changed files. You can override this and
3787force publishing of all files by giving a prefix argument.
3788
3789@node Miscellaneous, Index, Publishing, Top
3254@chapter Miscellaneous 3790@chapter Miscellaneous
3255 3791
3256@menu 3792@menu
@@ -3359,6 +3895,12 @@ variable is @code{org-startup-align-all-tables}, with a default value
3359align @r{align all tables} 3895align @r{align all tables}
3360noalign @r{don't align tables on startup} 3896noalign @r{don't align tables on startup}
3361@end example 3897@end example
3898Logging when a TODO item is marked DONE (variable @code{org-log-done})
3899can be configured using these options.
3900@example
3901logging @r{record a timestamp when an item is marked DONE}
3902nologging @r{don't record when items are marked DONE}
3903@end example
3362Here are the options for hiding leading stars in outline headings. The 3904Here are the options for hiding leading stars in outline headings. The
3363corresponding variables are @code{org-hide-leading-stars} and 3905corresponding variables are @code{org-hide-leading-stars} and
3364@code{org-odd-levels-only}, both with a default setting @code{nil} 3906@code{org-odd-levels-only}, both with a default setting @code{nil}
@@ -3373,6 +3915,10 @@ oddeven @r{allow all outline levels}
3373These lines that the TODO keywords and their interpretation in the 3915These lines that the TODO keywords and their interpretation in the
3374current file. The corresponding variables are @code{org-todo-keywords} 3916current file. The corresponding variables are @code{org-todo-keywords}
3375and @code{org-todo-interpretation}. 3917and @code{org-todo-interpretation}.
3918@item #+TAGS: TAG1(c1) TAG2(c2)
3919These lines (several such lines are allowed) specify the legal tags in
3920this file, and (potionally) the corresponding @emph{fast tag selection}
3921keys. The corresponding variable is @code{org-tag-alist}.
3376@item #+CATEGORY: 3922@item #+CATEGORY:
3377This line sets the category for the agenda file. The category applies 3923This line sets the category for the agenda file. The category applies
3378for all subsequent lines until the next @samp{#+CATEGORY} line, or the 3924for all subsequent lines until the next @samp{#+CATEGORY} line, or the
@@ -3392,7 +3938,7 @@ The key @kbd{C-c C-c} has many purposes in org-mode, which are all
3392mentioned scattered throughout this manual. One specific function of 3938mentioned scattered throughout this manual. One specific function of
3393this key is to add @emph{tags} to a headline (@pxref{Tags}). In many 3939this key is to add @emph{tags} to a headline (@pxref{Tags}). In many
3394other circumstances it means something like @emph{Hey Org-mode, look 3940other circumstances it means something like @emph{Hey Org-mode, look
3395here and update according to what you see here}. Here is a summary what 3941here and update according to what you see here}. Here is a summary of what
3396this means in different contexts. 3942this means in different contexts.
3397 3943
3398@itemize @minus 3944@itemize @minus
@@ -3401,14 +3947,14 @@ this means in different contexts.
3401@c into the current line, aligned to `org-tags-column'. When called 3947@c into the current line, aligned to `org-tags-column'. When called
3402@c with prefix arg, realign all tags in the current buffer. 3948@c with prefix arg, realign all tags in the current buffer.
3403@item 3949@item
3404If the cursor is in one of the special #+KEYWORD lines, this 3950If the cursor is in one of the special @code{#+KEYWORD} lines, this
3405triggers scanning the buffer for these lines and updating the 3951triggers scanning the buffer for these lines and updating the
3406information. 3952information.
3407@item 3953@item
3408If the cursor is inside a table, realign the table. This command 3954If the cursor is inside a table, realign the table. This command
3409works even if the automatic table editor has been turned off. 3955works even if the automatic table editor has been turned off.
3410@item 3956@item
3411If the cursor is on a #+TBLFM line, re-apply the formulas to 3957If the cursor is on a @code{#+TBLFM} line, re-apply the formulas to
3412the entire table. 3958the entire table.
3413@item 3959@item
3414If the cursor is inside a table created by the @file{table.el} package, 3960If the cursor is inside a table created by the @file{table.el} package,
@@ -3418,8 +3964,11 @@ If the current buffer is a remember buffer, close note and file it.
3418with a prefix argument, file it without further interaction to the default 3964with a prefix argument, file it without further interaction to the default
3419location. 3965location.
3420@item 3966@item
3421If the cursor is on a <<<target>>>, update radio targets and corresponding 3967If the cursor is on a @code{<<<target>>>}, update radio targets and
3422links in this buffer. 3968corresponding links in this buffer.
3969@item
3970If the cursor is in a plain list item with a checkbox, toggle the status
3971of the checkbox.
3423@item 3972@item
3424If the cursor is on a numbered item in a plain list, renumber the 3973If the cursor is on a numbered item in a plain list, renumber the
3425ordered list. 3974ordered list.
@@ -3568,27 +4117,50 @@ rather use @kbd{C-c .} to re-insert the timestamp.
3568@cindex FAQ 4117@cindex FAQ
3569 4118
3570@enumerate 4119@enumerate
3571
3572@cindex allout.el, conflict with
3573@cindex @code{keymapp nil} error 4120@cindex @code{keymapp nil} error
3574@item @b{When I try to use Org-mode, I always get 4121@item @b{When I try to use Org-mode, I always get
3575@code{(wrong-type-argument keymapp nil)}}.@* 4122@code{(wrong-type-argument keymapp nil)}}.@*
3576This is a conflict with an outdated version of the @file{allout.el} 4123@cindex allout.el, conflict with
3577package which pretends to be also the standard outline-mode but is not. 4124This is a conflict with an outdated version of the @file{allout.el}.
3578This happens with older versions of @file{allout.el}, for example the 4125See @ref{Conflicts}.
3579one distributed with Emacs 21. Upgrade to Emacs 22 and this problem
3580will disappear. If for some reason you cannot do this, make sure that
3581org.el is loaded @emph{before} @file{allout.el}, for example by putting
3582@code{(require 'org)} early enough into your @file{.emacs} file.
3583 4126
3584@item @b{Org-mode seems to be a useful default mode for the various 4127@item @b{Org-mode seems to be a useful default mode for the various
3585@file{README} files I have scattered through my directories. How do I 4128@file{README} files I have scattered through my directories. How do I
3586turn it on for all @file{README} files?} 4129turn it on for all @file{README} files?}
3587@c @*
3588 4130
3589@example 4131@lisp
3590(add-to-list 'auto-mode-alist '("README$" . org-mode)) 4132(add-to-list 'auto-mode-alist '("README$" . org-mode))
3591@end example 4133@end lisp
4134
4135@item @b{I would like to use editing features of org-mode in other
4136modes, is his possible?}@*
4137@c
4138Not really. For tables there is @code{orgtbl-mode} which implements the
4139table editor as a minor mode. For other features you need to switch to
4140Org-mode temporarily, or prepare text in a different buffer.
4141
4142@item @b{Can I get the visibility-cycling features in outline-mode and
4143outline-minor-mode?}@*
4144@c
4145Yes, these functions are written in a way that they are independent of
4146the outline setup. The following setup provides standard Org-mode
4147functionality in outline-mode on @key{TAB} and @kbd{S-@key{TAB}}. For
4148outline-minor-mode, we use @kbd{C-@key{TAB}} instead of @key{TAB},
4149because @key{TAB} usually has mode-specific tasks.
4150@lisp
4151(add-hook 'outline-minor-mode-hook
4152 (lambda ()
4153 (define-key outline-minor-mode-map [(control tab)] 'org-cycle)
4154 (define-key outline-minor-mode-map [(shift tab)] 'org-global-cycle)))
4155(add-hook 'outline-mode-hook
4156 (lambda ()
4157 (define-key outline-mode-map [(tab)] 'org-cycle)
4158 (define-key outline-mode-map [(shift tab)] 'org-global-cycle)))
4159@end lisp
4160
4161Or check out @file{outline-magic.el}, which does this and also provides
4162promotion and demotion functionality. @file{outline-magic.el} is
4163available at @url{http://www.astro.uva.nl/~dominik/Tools/OutlineMagic}.
3592 4164
3593@item @b{Some of my links stopped working after I upgraded to a version 4165@item @b{Some of my links stopped working after I upgraded to a version
35944.20 or later. Why is this, and how can I fix it?}@* 41664.20 or later. Why is this, and how can I fix it?}@*
@@ -3617,8 +4189,8 @@ Would I let you down like that? If you must, you can do this
3617 org-link-format "<%s>") 4189 org-link-format "<%s>")
3618@end lisp 4190@end lisp
3619 4191
3620@item @b{When I am executing shell links I always get a 4192@item @b{When I am executing shell/elisp links I always get a
3621confirmation prompt and need to type @kbd{yes @key{RET}}, thats 4 key 4193confirmation prompt and need to type @kbd{yes @key{RET}}, that's 4 key
3622presses! Can I get rid of this?}@* 4194presses! Can I get rid of this?}@*
3623@c 4195@c
3624@cindex shell links, confirmation 4196@cindex shell links, confirmation
@@ -3628,10 +4200,11 @@ potentially dangerous commands. For example, imagine a link
3628@samp{[[shell:rm -rf ~/*][Google Search]]}. In an Org-mode buffer, this 4200@samp{[[shell:rm -rf ~/*][Google Search]]}. In an Org-mode buffer, this
3629command would look like @samp{Google Search}, but really it would remove 4201command would look like @samp{Google Search}, but really it would remove
3630your home directory. If you wish, you can make it easier to respond to 4202your home directory. If you wish, you can make it easier to respond to
3631the query by setting @code{org-confirm-shell-links} to @code{y-or-n-p}. 4203the query by setting @code{org-confirm-shell-link-function} and/or
3632Then a single @kbd{y} keypress will be enough to confirm shell links. 4204@code{org-confirm-elisp-link-function} to @code{y-or-n-p}. Then a
3633It is also possible to turn off this check entirely, but I do not 4205single @kbd{y} keypress will be enough to confirm those links. It is
3634recommend to do this. Be warned. 4206also possible to turn off this check entirely, but I do not recommend to
4207do this. Be warned.
3635 4208
3636@item @b{All these stars are driving me mad, I just find the Emacs 4209@item @b{All these stars are driving me mad, I just find the Emacs
3637outlines unreadable. Can't you just put white space and a single star as a 4210outlines unreadable. Can't you just put white space and a single star as a
@@ -3681,7 +4254,7 @@ export. Marking can be done with @kbd{C-c @@ C-x C-x}, for example.
3681 4254
3682@item @b{Org-mode takes over the S-cursor keys. I also want to use 4255@item @b{Org-mode takes over the S-cursor keys. I also want to use
3683CUA-mode, is there a way to fix this conflict?}@* 4256CUA-mode, is there a way to fix this conflict?}@*
3684Yes, see @ref{Interaction}. 4257Yes, see @ref{Conflicts}.
3685 4258
3686@item @b{One of my table columns has started to fill up with 4259@item @b{One of my table columns has started to fill up with
3687@samp{#ERROR}. What is going on?}@* 4260@samp{#ERROR}. What is going on?}@*
@@ -3712,10 +4285,8 @@ emacs diary?}@*
3712Since the org-mode agenda is much more powerful and can contain the 4285Since the org-mode agenda is much more powerful and can contain the
3713diary (@pxref{Calendar/Diary integration}), you should think twice 4286diary (@pxref{Calendar/Diary integration}), you should think twice
3714before deciding to do this. Integrating Org-mode information into the 4287before deciding to do this. Integrating Org-mode information into the
3715diary is, however, possible. The following steps are necessary: 4288diary is, however, possible. You need to turn on @emph{fancy diary
3716Autoload the function @command{org-diary} as shown above under 4289display} by setting in @file{.emacs}:
3717@ref{Installation and activation}. You also need to use @emph{fancy
3718diary display} by setting in @file{.emacs}:
3719 4290
3720@lisp 4291@lisp
3721(add-hook 'diary-display-hook 'fancy-diary-display) 4292(add-hook 'diary-display-hook 'fancy-diary-display)
@@ -3738,7 +4309,7 @@ You may also select specific files with
3738 4309
3739If you now launch the calendar and press @kbd{d} to display a diary, the 4310If you now launch the calendar and press @kbd{d} to display a diary, the
3740headlines of entries containing a timestamp, date range, schedule, or 4311headlines of entries containing a timestamp, date range, schedule, or
3741deadline referring to the selected date will be listed. Just like in 4312deadline referring to the selected date will be listed. Just like
3742Org-mode's agenda view, the diary for @emph{today} contains additional 4313Org-mode's agenda view, the diary for @emph{today} contains additional
3743entries for overdue deadlines and scheduled items. See also the 4314entries for overdue deadlines and scheduled items. See also the
3744documentation of the @command{org-diary} function. Under XEmacs, it is 4315documentation of the @command{org-diary} function. Under XEmacs, it is
@@ -3751,20 +4322,50 @@ the agenda buffer.
3751@node Interaction, Bugs, FAQ, Miscellaneous 4322@node Interaction, Bugs, FAQ, Miscellaneous
3752@section Interaction with other packages 4323@section Interaction with other packages
3753@cindex packages, interaction with other 4324@cindex packages, interaction with other
3754Org-mode can cooperate with the following packages: 4325Org-mode lives in the world of GNU Emacs and interacts in various ways
4326with other code out there.
4327
4328@menu
4329* Extensions:: Third-party extensions for Org-mode
4330* Cooperation:: Packages Org-mode cooperates with
4331* Conflicts:: Packages that lead to conflicts
4332@end menu
4333
4334@node Extensions, Cooperation, Interaction, Interaction
4335@subsection Third-party extensions for Org-mode
4336
4337The following extensions for Org-mode have been written by other people:
3755 4338
3756@table @asis 4339@table @asis
4340@cindex @file{org-checklet.el}
4341@item @file{org-checklet.el} by Frank Ruell
4342Provides checklist of items which can be either checked or unchecked.
4343This is similar to the TODO functionality in Org-mode, but never shows
4344up in the agenda. @file{org-checklet} is freely available at
4345@url{http://www.emacswiki.org/cgi-bin/emacs/org-checklet.el}.
3757@cindex @file{org-mouse.el} 4346@cindex @file{org-mouse.el}
3758@item @file{org-mouse.el} by Piotr Zielinski 4347@item @file{org-mouse.el} by Piotr Zielinski
3759This package implements extended mouse functionality for Org-mode. It 4348This package implements extended mouse functionality for Org-mode. It
3760allows you to cycle visibility and to edit the document structure with 4349allows you to cycle visibility and to edit the document structure with
3761the mouse. Best of all, it provides a context-sensitive menu on 4350the mouse. Best of all, it provides a context-sensitive menu on
3762@key{mouse-3} that changes depending on the context of a mouse-click. 4351@key{mouse-3} that changes depending on the context of a mouse-click.
3763Use a search engine to find this package on the web. 4352@file{org-mouse.el} is freely available at @url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}.
3764@cindex @file{table.el} 4353@cindex @file{org-publish.el}
3765@item @file{table.el} by Takaaki Ota 4354@item @file{org-publish.el} by David O'Toole
3766Org mode cooperates with table.el, see @ref{table.el}. @file{table.el} 4355This package provides facilities for publishing related sets of Org-mode
3767is part of Emacs 22. 4356files together with linked files like images as a webpages. It is
4357highly configurable and can be used for other publishing purposes as
4358well. As of Org-mode version 4.30, @file{org-publish.el} is part of
4359the Org-mode distribution. It is not yet part of Emacs, however, due to
4360a pending copyright assignment. In the mean time, @file{org-publish.el}
4361can be downloaded from David's site:
4362@url{http://dto.freeshell.org/e/org-publish.el}.
4363@end table
4364
4365@node Cooperation, Conflicts, Extensions, Interaction
4366@subsection Packages that Org-mode cooperates with
4367
4368@table @asis
3768@cindex @file{calc.el} 4369@cindex @file{calc.el}
3769@item @file{calc.el} by Dave Gillespie 4370@item @file{calc.el} by Dave Gillespie
3770Org-mode uses the calc package for implementing spreadsheet 4371Org-mode uses the calc package for implementing spreadsheet
@@ -3787,7 +4388,31 @@ at @url{http://www.astro.uva.nl/~dominik/Tools}. Org-mode checks for
3787the function @code{constants-get}, which has to be autoloaded in your 4388the function @code{constants-get}, which has to be autoloaded in your
3788setup. See the installation instructions in the file 4389setup. See the installation instructions in the file
3789@file{constants.el}. 4390@file{constants.el}.
4391@item @file{remember.el} by John Wiegley
3790@cindex @file{remember.el} 4392@cindex @file{remember.el}
4393Org mode cooperates with remember, see @ref{Remember}.
4394@file{Remember.el} is not part of Emacs, find it on the web.
4395@cindex @file{table.el}
4396@item @file{table.el} by Takaaki Ota
4397Org mode cooperates with table.el, see @ref{table.el}. @file{table.el}
4398is part of Emacs 22.
4399@end table
4400
4401@node Conflicts, , Cooperation, Interaction
4402@subsection Packages that lead to conflicts with Org-mode
4403
4404@table @asis
4405
4406@cindex @file{allout.el}
4407@item @file{allout.el} by Ken Manheimer
4408Startup of Org-mode may fail with the error message
4409@code{(wrong-type-argument keymapp nil)} when there is an outdated
4410version @file{allout.el} on the load path, for example the version
4411distributed with Emacs 21.x. Upgrade to Emacs 22 and this problem will
4412disappear. If for some reason you cannot do this, make sure that org.el
4413is loaded @emph{before} @file{allout.el}, for example by putting
4414@code{(require 'org)} early enough into your @file{.emacs} file.
4415
3791@cindex @file{CUA.el} 4416@cindex @file{CUA.el}
3792@item @file{CUA.el} by Kim. F. Storm 4417@item @file{CUA.el} by Kim. F. Storm
3793Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys 4418Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys
@@ -3807,11 +4432,13 @@ S-RET -> C-S-RET
3807Yes, these are unfortunately more difficult to remember. If you want 4432Yes, these are unfortunately more difficult to remember. If you want
3808to have other replacement keys, look at the variable 4433to have other replacement keys, look at the variable
3809@code{org-disputed-keys}. 4434@code{org-disputed-keys}.
3810@item @file{remember.el} by John Wiegley 4435@item @file{windmove.el} by Hovav Shacham
3811Org mode cooperates with remember, see @ref{Remember}. 4436@cindex @file{windmove.el}
3812@file{Remember.el} is not part of Emacs, find it on the web. 4437Also this package uses the @kbd{S-<cursor>} keys, so everything written
4438in the paragraph above about CUA mode also applies here.
3813@end table 4439@end table
3814 4440
4441
3815@node Bugs, Acknowledgments, Interaction, Miscellaneous 4442@node Bugs, Acknowledgments, Interaction, Miscellaneous
3816@section Bugs 4443@section Bugs
3817@cindex bugs 4444@cindex bugs
@@ -3835,7 +4462,7 @@ Text in an entry protected with the @samp{QUOTE} keyword should not
3835autowrap. 4462autowrap.
3836@item 4463@item
3837When the application called by @kbd{C-c C-o} to open a file link fails 4464When the application called by @kbd{C-c C-o} to open a file link fails
3838(for example because the application does not exits or refuses to open 4465(for example because the application does not exist or refuses to open
3839the file), it does so silently. No error message is displayed. 4466the file), it does so silently. No error message is displayed.
3840@item 4467@item
3841Plain list items should be able to hold a TODO item. Unfortunately this 4468Plain list items should be able to hold a TODO item. Unfortunately this
@@ -3851,9 +4478,8 @@ Recalculating a table line applies the formulas from left to right.
3851If a formula uses @emph{calculated} fields further down the row, 4478If a formula uses @emph{calculated} fields further down the row,
3852multiple recalculation may be needed to get all fields consistent. 4479multiple recalculation may be needed to get all fields consistent.
3853@item 4480@item
3854You can only make a single word boldface or italic. To emphasize 4481Several words in a row may @b{*be made bold*}, but this does not work if
3855several words in a row, each must have the emphasize markers, like in 4482the string is distributed over two lines.
3856@samp{*three* *bold* *words*}.
3857@item 4483@item
3858The exporters work well, but could be made more efficient. 4484The exporters work well, but could be made more efficient.
3859@end itemize 4485@end itemize
@@ -3881,6 +4507,9 @@ Remember.
3881Pavel Chalmoviansky influenced the agenda treatment of items with 4507Pavel Chalmoviansky influenced the agenda treatment of items with
3882specified time. 4508specified time.
3883@item 4509@item
4510Gregory Chenov patched support for lisp forms into table calculations
4511and improved XEmacs compatibility.
4512@item
3884Sacha Chua suggested to copy some linking code from Planner. 4513Sacha Chua suggested to copy some linking code from Planner.
3885@item 4514@item
3886Kees Dullemond inspired the use of narrowed tabled columns. 4515Kees Dullemond inspired the use of narrowed tabled columns.
@@ -3888,12 +4517,14 @@ Kees Dullemond inspired the use of narrowed tabled columns.
3888Christian Egli converted the documentation into TeXInfo format, patched 4517Christian Egli converted the documentation into TeXInfo format, patched
3889CSS formatting into the HTML exporter, and inspired the agenda. 4518CSS formatting into the HTML exporter, and inspired the agenda.
3890@item 4519@item
3891Nic Ferrier contributed mailcap and XML support. 4520Nic Ferrier contributed mailcap and XOXO support.
3892@item 4521@item
3893Kai Grossjohann pointed out key-binding conflicts caused by Org-mode. 4522Kai Grossjohann pointed out key-binding conflicts caused by Org-mode.
3894@item 4523@item
3895Stefan Monnier provided a patch to keep the Emacs-Lisp compiler happy. 4524Stefan Monnier provided a patch to keep the Emacs-Lisp compiler happy.
3896@item 4525@item
4526Todd Neal provided patches for links to Info files and elisp forms.
4527@item
3897Tim O'Callaghan suggested in-file links, search options for 4528Tim O'Callaghan suggested in-file links, search options for
3898general file links, and TAGS. 4529general file links, and TAGS.
3899@item 4530@item
@@ -3904,6 +4535,8 @@ among other things.
3904@item 4535@item
3905Pete Phillips helped the development of the TAGS feature. 4536Pete Phillips helped the development of the TAGS feature.
3906@item 4537@item
4538T.V. Raman reported bugs and suggested improvements.
4539@item
3907Matthias Rempe (Oelde) provided ideas, Windows support, and quality 4540Matthias Rempe (Oelde) provided ideas, Windows support, and quality
3908control. 4541control.
3909@item 4542@item
@@ -3920,6 +4553,9 @@ things.
3920Linking to VM/BBDB/GNUS was inspired by Tom Shannon's 4553Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
3921@file{organizer-mode.el}. 4554@file{organizer-mode.el}.
3922@item 4555@item
4556David O'Toole wrote @file{org-publish.el} and came up with lots is ideas
4557for small changes.
4558@item
3923J@"urgen Vollmer contributed code generating the table of contents 4559J@"urgen Vollmer contributed code generating the table of contents
3924in HTML output. 4560in HTML output.
3925@item 4561@item
@@ -3931,7 +4567,7 @@ system.
3931John Wiegley wrote @file{emacs-wiki.el} and @file{planner.el}. The 4567John Wiegley wrote @file{emacs-wiki.el} and @file{planner.el}. The
3932development of Org-mode was fully independent, and both systems are 4568development of Org-mode was fully independent, and both systems are
3933really different beasts in their basic ideas and implementation details. 4569really different beasts in their basic ideas and implementation details.
3934However, I have later looked at John's code and learned from his 4570I later looked at John's code, however, and learned from his
3935implementation of (i) links where the link itself is hidden and only a 4571implementation of (i) links where the link itself is hidden and only a
3936description is shown, and (ii) popping up a calendar to select a date. 4572description is shown, and (ii) popping up a calendar to select a date.
3937@item 4573@item