aboutsummaryrefslogtreecommitdiffstats
path: root/doc/misc/org.texi
diff options
context:
space:
mode:
authorCarsten Dominik2010-11-11 22:10:19 -0600
committerCarsten Dominik2010-11-11 22:10:19 -0600
commitafe98dfa700de5cf0493e8bf95b7d894e2734e47 (patch)
tree92a812b353bb09c1286e8a44fb552de9f1af3384 /doc/misc/org.texi
parentdf26e1f58a7e484b7ed500ea48d0e1c49345ffbf (diff)
downloademacs-afe98dfa700de5cf0493e8bf95b7d894e2734e47.tar.gz
emacs-afe98dfa700de5cf0493e8bf95b7d894e2734e47.zip
Install org-mode version 7.3
Diffstat (limited to 'doc/misc/org.texi')
-rw-r--r--doc/misc/org.texi963
1 files changed, 599 insertions, 364 deletions
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 97b8d3ebc03..af7a4b48032 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -4,8 +4,8 @@
4@setfilename ../../info/org 4@setfilename ../../info/org
5@settitle The Org Manual 5@settitle The Org Manual
6 6
7@set VERSION 7.01 7@set VERSION 7.3
8@set DATE July 2010 8@set DATE November 2010
9 9
10@c Use proper quote and backtick for code sections in PDF output 10@c Use proper quote and backtick for code sections in PDF output
11@c Cf. Texinfo manual 14.2 11@c Cf. Texinfo manual 14.2
@@ -22,6 +22,24 @@
22@finalout 22@finalout
23 23
24@c Macro definitions 24@c Macro definitions
25@macro orgcmd{key,command}
26@iftex
27@kindex \key\
28@findex \command\
29@item @kbd{\key\} @hskip 0pt plus 1filll @code{\command\}
30@end iftex
31@ifnottex
32@kindex \key\
33@findex \command\
34@item @kbd{\key\} @tie{}@tie{}@tie{}@tie{}(@code{\command\})
35@end ifnottex
36@end macro
37
38@macro orgkey{key}
39@kindex \key\
40@item @kbd{\key\}
41@end macro
42
25@iftex 43@iftex
26@c @hyphenation{time-stamp time-stamps time-stamp-ing time-stamp-ed} 44@c @hyphenation{time-stamp time-stamps time-stamp-ing time-stamp-ed}
27@end iftex 45@end iftex
@@ -122,6 +140,7 @@ with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison,
122* History and Acknowledgments:: How Org came into being 140* History and Acknowledgments:: How Org came into being
123* Main Index:: An index of Org's concepts and features 141* Main Index:: An index of Org's concepts and features
124* Key Index:: Key bindings and where they are described 142* Key Index:: Key bindings and where they are described
143* Command and Function Index:: Command names and some internal functions
125* Variable Index:: Variables mentioned in the manual 144* Variable Index:: Variables mentioned in the manual
126 145
127@detailmenu 146@detailmenu
@@ -244,6 +263,7 @@ Dates and times
244* Resolving idle time:: Resolving time if you've been idle 263* Resolving idle time:: Resolving time if you've been idle
245* Effort estimates:: Planning work effort in advance 264* Effort estimates:: Planning work effort in advance
246* Relative timer:: Notes with a running timer 265* Relative timer:: Notes with a running timer
266* Countdown timer:: Starting a countdown timer for a task
247 267
248Creating timestamps 268Creating timestamps
249 269
@@ -364,6 +384,7 @@ HTML export
364* Links in HTML export:: How links will be interpreted and formatted 384* Links in HTML export:: How links will be interpreted and formatted
365* Tables in HTML export:: How to modify the formatting of tables 385* Tables in HTML export:: How to modify the formatting of tables
366* Images in HTML export:: How to insert figures into HTML output 386* Images in HTML export:: How to insert figures into HTML output
387* Math formatting in HTML export:: Beautiful math also on the web
367* Text areas in HTML export:: An alternative way to show an example 388* Text areas in HTML export:: An alternative way to show an example
368* CSS support:: Changing the appearance of the output 389* CSS support:: Changing the appearance of the output
369* JavaScript support:: Info and Folding in a web browser 390* JavaScript support:: Info and Folding in a web browser
@@ -436,16 +457,22 @@ Using header arguments
436* Buffer-wide header arguments:: Set default values for a specific buffer 457* Buffer-wide header arguments:: Set default values for a specific buffer
437* Header arguments in Org-mode properties:: Set default values for a buffer or heading 458* Header arguments in Org-mode properties:: Set default values for a buffer or heading
438* Code block specific header arguments:: The most common way to set values 459* Code block specific header arguments:: The most common way to set values
460* Header arguments in function calls:: The most specific level
439 461
440Specific header arguments 462Specific header arguments
441 463
442* var:: Pass arguments to code blocks 464* var:: Pass arguments to code blocks
443* results:: Specify the type of results and how they will be collected and handled 465* results:: Specify the type of results and how they will
466 be collected and handled
444* file:: Specify a path for file output 467* file:: Specify a path for file output
445* dir:: Specify the default directory for code block execution 468* dir:: Specify the default (possibly remote)
469 directory for code block execution
446* exports:: Export code and/or results 470* exports:: Export code and/or results
447* tangle:: Toggle tangling and specify file name 471* tangle:: Toggle tangling and specify file name
448* no-expand:: Turn off variable assignment and noweb expansion during tangling 472* comments:: Toggle insertion of comments in tangled
473 code files
474* no-expand:: Turn off variable assignment and noweb
475 expansion during tangling
449* session:: Preserve the state of code evaluation 476* session:: Preserve the state of code evaluation
450* noweb:: Toggle expansion of noweb references 477* noweb:: Toggle expansion of noweb references
451* cache:: Avoid re-evaluating unchanged code blocks 478* cache:: Avoid re-evaluating unchanged code blocks
@@ -453,10 +480,12 @@ Specific header arguments
453* colnames:: Handle column names in tables 480* colnames:: Handle column names in tables
454* rownames:: Handle row names in tables 481* rownames:: Handle row names in tables
455* shebang:: Make tangled files executable 482* shebang:: Make tangled files executable
483* eval:: Limit evaluation of specific code blocks
456 484
457Miscellaneous 485Miscellaneous
458 486
459* Completion:: M-TAB knows what you need 487* Completion:: M-TAB knows what you need
488* Easy Templates:: Quick insertion of structural elements
460* Speed keys:: Electric commands at the beginning of a headline 489* Speed keys:: Electric commands at the beginning of a headline
461* Code evaluation security:: Org mode files evaluate inline code 490* Code evaluation security:: Org mode files evaluate inline code
462* Customization:: Adapting Org to your taste 491* Customization:: Adapting Org to your taste
@@ -608,18 +637,6 @@ step for this directory:
608(setq load-path (cons "~/path/to/orgdir/contrib/lisp" load-path)) 637(setq load-path (cons "~/path/to/orgdir/contrib/lisp" load-path))
609@end example 638@end example
610 639
611@sp 2
612@cartouche
613XEmacs users now need to install the file @file{noutline.el} from
614the @file{xemacs} sub-directory of the Org distribution. Use the
615command:
616
617@example
618 make install-noutline
619@end example
620@end cartouche
621@sp 2
622
623@noindent Now byte-compile the Lisp files with the shell command: 640@noindent Now byte-compile the Lisp files with the shell command:
624 641
625@example 642@example
@@ -720,10 +737,15 @@ active region by using the mouse to select a region, or pressing
720If you find problems with Org, or if you have questions, remarks, or ideas 737If you find problems with Org, or if you have questions, remarks, or ideas
721about it, please mail to the Org mailing list @email{emacs-orgmode@@gnu.org}. 738about it, please mail to the Org mailing list @email{emacs-orgmode@@gnu.org}.
722If you are not a member of the mailing list, your mail will be passed to the 739If you are not a member of the mailing list, your mail will be passed to the
723list after a moderator has approved it. 740list after a moderator has approved it@footnote{Please consider subscribing
724 741to the mailing list, in order to minimize the work the mailing list
725For bug reports, please provide as much information as possible, including 742moderators have to do.}.
726the version information of Emacs (@kbd{M-x emacs-version @key{RET}}) and Org 743
744For bug reports, please first try to reproduce the bug with the latest
745version of Org available - if you are running an outdated version, it is
746quite possible that the bug has been fixed already. If the bug persists,
747prepare a report and provide as much information as possible, including the
748version information of Emacs (@kbd{M-x emacs-version @key{RET}}) and Org
727(@kbd{M-x org-version @key{RET}}), as well as the Org related setup in 749(@kbd{M-x org-version @key{RET}}), as well as the Org related setup in
728@file{.emacs}. The easiest way to do this is to use the command 750@file{.emacs}. The easiest way to do this is to use the command
729@example 751@example
@@ -742,7 +764,7 @@ about:
742@item What did you expect to happen? 764@item What did you expect to happen?
743@item What happened instead? 765@item What happened instead?
744@end enumerate 766@end enumerate
745@noindent Thank you for helping to improve this mode. 767@noindent Thank you for helping to improve this program.
746 768
747@subsubheading How to create a useful backtrace 769@subsubheading How to create a useful backtrace
748 770
@@ -886,9 +908,8 @@ Org uses just two commands, bound to @key{TAB} and
886@cindex folded, subtree visibility state 908@cindex folded, subtree visibility state
887@cindex children, subtree visibility state 909@cindex children, subtree visibility state
888@cindex subtree, subtree visibility state 910@cindex subtree, subtree visibility state
889@table @kbd 911@table @asis
890@kindex @key{TAB} 912@orgcmd{@key{TAB},org-cycle}
891@item @key{TAB}
892@emph{Subtree cycling}: Rotate current subtree among the states 913@emph{Subtree cycling}: Rotate current subtree among the states
893 914
894@example 915@example
@@ -910,8 +931,7 @@ argument (@kbd{C-u @key{TAB}}), global cycling is invoked.
910@cindex overview, global visibility state 931@cindex overview, global visibility state
911@cindex contents, global visibility state 932@cindex contents, global visibility state
912@cindex show all, global visibility state 933@cindex show all, global visibility state
913@kindex S-@key{TAB} 934@orgcmd{S-@key{TAB},org-global-cycle}
914@item S-@key{TAB}
915@itemx C-u @key{TAB} 935@itemx C-u @key{TAB}
916@emph{Global cycling}: Rotate the entire buffer among the states 936@emph{Global cycling}: Rotate the entire buffer among the states
917 937
@@ -925,22 +945,18 @@ CONTENTS view up to headlines of level N will be shown. Note that inside
925tables, @kbd{S-@key{TAB}} jumps to the previous field. 945tables, @kbd{S-@key{TAB}} jumps to the previous field.
926 946
927@cindex show all, command 947@cindex show all, command
928@kindex C-u C-u C-u @key{TAB} 948@orgcmd{C-u C-u C-u @key{TAB},show-all}
929@item C-u C-u C-u @key{TAB}
930Show all, including drawers. 949Show all, including drawers.
931@kindex C-c C-r 950@orgcmd{C-c C-r,org-reveal}
932@item C-c C-r
933Reveal context around point, showing the current entry, the following heading 951Reveal context around point, showing the current entry, the following heading
934and the hierarchy above. Useful for working near a location that has been 952and the hierarchy above. Useful for working near a location that has been
935exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda command 953exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda command
936(@pxref{Agenda commands}). With a prefix argument show, on each 954(@pxref{Agenda commands}). With a prefix argument show, on each
937level, all sibling headings. With double prefix arg, also show the entire 955level, all sibling headings. With double prefix arg, also show the entire
938subtree of the parent. 956subtree of the parent.
939@kindex C-c C-k 957@orgcmd{C-c C-k,show-branches}
940@item C-c C-k
941Expose all the headings of the subtree, CONTENT view for just one subtree. 958Expose all the headings of the subtree, CONTENT view for just one subtree.
942@kindex C-c C-x b 959@orgcmd{C-c C-x b,org-tree-to-indirect-buffer}
943@item C-c C-x b
944Show the current subtree in an indirect buffer@footnote{The indirect 960Show the current subtree in an indirect buffer@footnote{The indirect
945buffer 961buffer
946@ifinfo 962@ifinfo
@@ -982,9 +998,8 @@ Furthermore, any entries with a @samp{VISIBILITY} property (@pxref{Properties
982and Columns}) will get their visibility adapted accordingly. Allowed values 998and Columns}) will get their visibility adapted accordingly. Allowed values
983for this property are @code{folded}, @code{children}, @code{content}, and 999for this property are @code{folded}, @code{children}, @code{content}, and
984@code{all}. 1000@code{all}.
985@table @kbd 1001@table @asis
986@kindex C-u C-u @key{TAB} 1002@orgcmd{C-u C-u @key{TAB},org-set-startup-visibility}
987@item C-u C-u @key{TAB}
988Switch back to the startup visibility of the buffer, i.e. whatever is 1003Switch back to the startup visibility of the buffer, i.e. whatever is
989requested by startup options and @samp{VISIBILITY} properties in individual 1004requested by startup options and @samp{VISIBILITY} properties in individual
990entries. 1005entries.
@@ -997,24 +1012,18 @@ entries.
997@cindex headline navigation 1012@cindex headline navigation
998The following commands jump to other headlines in the buffer. 1013The following commands jump to other headlines in the buffer.
999 1014
1000@table @kbd 1015@table @asis
1001@kindex C-c C-n 1016@orgcmd{C-c C-n,outline-next-visible-heading}
1002@item C-c C-n
1003Next heading. 1017Next heading.
1004@kindex C-c C-p 1018@orgcmd{C-c C-p,outline-previous-visible-heading}
1005@item C-c C-p
1006Previous heading. 1019Previous heading.
1007@kindex C-c C-f 1020@orgcmd{C-c C-f,org-forward-same-level}
1008@item C-c C-f
1009Next heading same level. 1021Next heading same level.
1010@kindex C-c C-b 1022@orgcmd{C-c C-b,org-backward-same-level}
1011@item C-c C-b
1012Previous heading same level. 1023Previous heading same level.
1013@kindex C-c C-u 1024@orgcmd{C-c C-u,outline-up-heading}
1014@item C-c C-u
1015Backward to higher level heading. 1025Backward to higher level heading.
1016@kindex C-c C-j 1026@orgcmd{C-c C-j,org-goto}
1017@item C-c C-j
1018Jump to a different place without changing the current outline 1027Jump to a different place without changing the current outline
1019visibility. Shows the document structure in a temporary buffer, where 1028visibility. Shows the document structure in a temporary buffer, where
1020you can use the following keys to find your destination: 1029you can use the following keys to find your destination:
@@ -1049,9 +1058,8 @@ See also the variable @code{org-goto-interface}.
1049@cindex sorting, of subtrees 1058@cindex sorting, of subtrees
1050@cindex subtrees, cut and paste 1059@cindex subtrees, cut and paste
1051 1060
1052@table @kbd 1061@table @asis
1053@kindex M-@key{RET} 1062@orgcmd{M-@key{RET},org-insert-heading}
1054@item M-@key{RET}
1055@vindex org-M-RET-may-split-line 1063@vindex org-M-RET-may-split-line
1056Insert new heading with same level as current. If the cursor is in a 1064Insert new heading with same level as current. If the cursor is in a
1057plain list item, a new item is created (@pxref{Plain lists}). To force 1065plain list item, a new item is created (@pxref{Plain lists}). To force
@@ -1066,62 +1074,48 @@ the content of that line is made the new heading. If the command is
1066used at the end of a folded subtree (i.e. behind the ellipses at the end 1074used at the end of a folded subtree (i.e. behind the ellipses at the end
1067of a headline), then a headline like the current one will be inserted 1075of a headline), then a headline like the current one will be inserted
1068after the end of the subtree. 1076after the end of the subtree.
1069@kindex C-@key{RET} 1077@orgcmd{C-@key{RET},org-insert-heading-respect-content}
1070@item C-@key{RET}
1071Just like @kbd{M-@key{RET}}, except when adding a new heading below the 1078Just like @kbd{M-@key{RET}}, except when adding a new heading below the
1072current heading, the new heading is placed after the body instead of before 1079current heading, the new heading is placed after the body instead of before
1073it. This command works from anywhere in the entry. 1080it. This command works from anywhere in the entry.
1074@kindex M-S-@key{RET} 1081@orgcmd{M-S-@key{RET},org-insert-todo-heading}
1075@item M-S-@key{RET}
1076@vindex org-treat-insert-todo-heading-as-state-change 1082@vindex org-treat-insert-todo-heading-as-state-change
1077Insert new TODO entry with same level as current heading. See also the 1083Insert new TODO entry with same level as current heading. See also the
1078variable @code{org-treat-insert-todo-heading-as-state-change}. 1084variable @code{org-treat-insert-todo-heading-as-state-change}.
1079@kindex C-S-@key{RET} 1085@orgcmd{C-S-@key{RET},org-insert-todo-heading-respect-content}
1080@item C-S-@key{RET}
1081Insert new TODO entry with same level as current heading. Like 1086Insert new TODO entry with same level as current heading. Like
1082@kbd{C-@key{RET}}, the new headline will be inserted after the current 1087@kbd{C-@key{RET}}, the new headline will be inserted after the current
1083subtree. 1088subtree.
1084@kindex @key{TAB} 1089@orgcmd{@key{TAB},org-cycle}
1085@item @key{TAB} @r{in new, empty entry}
1086In a new entry with no text yet, the first @key{TAB} demotes the entry to 1090In a new entry with no text yet, the first @key{TAB} demotes the entry to
1087become a child of the previous one. The next @key{TAB} makes it a parent, 1091become a child of the previous one. The next @key{TAB} makes it a parent,
1088and so on, all the way to top level. Yet another @key{TAB}, and you are back 1092and so on, all the way to top level. Yet another @key{TAB}, and you are back
1089to the initial level. 1093to the initial level.
1090@kindex M-@key{left} 1094@orgcmd{M-@key{left},org-do-promote}
1091@item M-@key{left}
1092Promote current heading by one level. 1095Promote current heading by one level.
1093@kindex M-@key{right} 1096@orgcmd{M-@key{right},org-do-demote}
1094@item M-@key{right}
1095Demote current heading by one level. 1097Demote current heading by one level.
1096@kindex M-S-@key{left} 1098@orgcmd{M-S-@key{left},org-promote-subtree}
1097@item M-S-@key{left}
1098Promote the current subtree by one level. 1099Promote the current subtree by one level.
1099@kindex M-S-@key{right} 1100@orgcmd{M-S-@key{right},org-demote-subtree}
1100@item M-S-@key{right}
1101Demote the current subtree by one level. 1101Demote the current subtree by one level.
1102@kindex M-S-@key{up} 1102@orgcmd{M-S-@key{up},org-move-subtree-up}
1103@item M-S-@key{up}
1104Move subtree up (swap with previous subtree of same 1103Move subtree up (swap with previous subtree of same
1105level). 1104level).
1106@kindex M-S-@key{down} 1105@orgcmd{M-S-@key{down},org-move-subtree-down}
1107@item M-S-@key{down}
1108Move subtree down (swap with next subtree of same level). 1106Move subtree down (swap with next subtree of same level).
1109@kindex C-c C-x C-w 1107@orgcmd{C-c C-x C-w,org-cut-subtree}
1110@item C-c C-x C-w
1111Kill subtree, i.e. remove it from buffer but save in kill ring. 1108Kill subtree, i.e. remove it from buffer but save in kill ring.
1112With a numeric prefix argument N, kill N sequential subtrees. 1109With a numeric prefix argument N, kill N sequential subtrees.
1113@kindex C-c C-x M-w 1110@orgcmd{C-c C-x M-w,org-copy-subtree}
1114@item C-c C-x M-w
1115Copy subtree to kill ring. With a numeric prefix argument N, copy the N 1111Copy subtree to kill ring. With a numeric prefix argument N, copy the N
1116sequential subtrees. 1112sequential subtrees.
1117@kindex C-c C-x C-y 1113@orgcmd{C-c C-x C-y,org-paste-subtree}
1118@item C-c C-x C-y
1119Yank subtree from kill ring. This does modify the level of the subtree to 1114Yank subtree from kill ring. This does modify the level of the subtree to
1120make sure the tree fits in nicely at the yank position. The yank level can 1115make sure the tree fits in nicely at the yank position. The yank level can
1121also be specified with a numeric prefix argument, or by yanking after a 1116also be specified with a numeric prefix argument, or by yanking after a
1122headline marker like @samp{****}. 1117headline marker like @samp{****}.
1123@kindex C-y 1118@orgcmd{C-y,org-yank}
1124@item C-y
1125@vindex org-yank-adjusted-subtrees 1119@vindex org-yank-adjusted-subtrees
1126@vindex org-yank-folded-subtrees 1120@vindex org-yank-folded-subtrees
1127Depending on the variables @code{org-yank-adjusted-subtrees} and 1121Depending on the variables @code{org-yank-adjusted-subtrees} and
@@ -1134,19 +1128,16 @@ previously visible. Any prefix argument to this command will force a normal
1134force a normal yank is @kbd{C-u C-y}. If you use @code{yank-pop} after a 1128force a normal yank is @kbd{C-u C-y}. If you use @code{yank-pop} after a
1135yank, it will yank previous kill items plainly, without adjustment and 1129yank, it will yank previous kill items plainly, without adjustment and
1136folding. 1130folding.
1137@kindex C-c C-x c 1131@orgcmd{C-c C-x c,org-clone-subtree-with-time-shift}
1138@item C-c C-x c
1139Clone a subtree by making a number of sibling copies of it. You will be 1132Clone a subtree by making a number of sibling copies of it. You will be
1140prompted for the number of copies to make, and you can also specify if any 1133prompted for the number of copies to make, and you can also specify if any
1141timestamps in the entry should be shifted. This can be useful, for example, 1134timestamps in the entry should be shifted. This can be useful, for example,
1142to create a number of tasks related to a series of lectures to prepare. For 1135to create a number of tasks related to a series of lectures to prepare. For
1143more details, see the docstring of the command 1136more details, see the docstring of the command
1144@code{org-clone-subtree-with-time-shift}. 1137@code{org-clone-subtree-with-time-shift}.
1145@kindex C-c C-w 1138@orgcmd{C-c C-w,org-refile}
1146@item C-c C-w
1147Refile entry or region to a different location. @xref{Refiling notes}. 1139Refile entry or region to a different location. @xref{Refiling notes}.
1148@kindex C-c ^ 1140@orgcmd{C-c ^,org-sort-entries-or-items}
1149@item C-c ^
1150Sort same-level entries. When there is an active region, all entries in the 1141Sort same-level entries. When there is an active region, all entries in the
1151region will be sorted. Otherwise the children of the current headline are 1142region will be sorted. Otherwise the children of the current headline are
1152sorted. The command prompts for the sorting method, which can be 1143sorted. The command prompts for the sorting method, which can be
@@ -1157,14 +1148,11 @@ of a property. Reverse sorting is possible as well. You can also supply
1157your own function to extract the sorting key. With a @kbd{C-u} prefix, 1148your own function to extract the sorting key. With a @kbd{C-u} prefix,
1158sorting will be case-sensitive. With two @kbd{C-u C-u} prefixes, duplicate 1149sorting will be case-sensitive. With two @kbd{C-u C-u} prefixes, duplicate
1159entries will also be removed. 1150entries will also be removed.
1160@kindex C-x n s 1151@orgcmd{C-x n s,org-narrow-to-subtree}
1161@item C-x n s
1162Narrow buffer to current subtree. 1152Narrow buffer to current subtree.
1163@kindex C-x n w 1153@orgcmd{C-x n w,widen}
1164@item C-x n w
1165Widen buffer to remove narrowing. 1154Widen buffer to remove narrowing.
1166@kindex C-c * 1155@orgcmd{C-c *,org-toggle-heading}
1167@item C-c *
1168Turn a normal line or plain list item into a headline (so that it becomes a 1156Turn a normal line or plain list item into a headline (so that it becomes a
1169subheading at its location). Also turn a headline into a normal line by 1157subheading at its location). Also turn a headline into a normal line by
1170removing the stars. If there is an active region, turn all lines in the 1158removing the stars. If there is an active region, turn all lines in the
@@ -1208,9 +1196,8 @@ and you will see immediately how it works.
1208Org-mode contains several commands creating such trees, all these 1196Org-mode contains several commands creating such trees, all these
1209commands can be accessed through a dispatcher: 1197commands can be accessed through a dispatcher:
1210 1198
1211@table @kbd 1199@table @asis
1212@kindex C-c / 1200@orgcmd{C-c /,org-sparse-tree}
1213@item C-c /
1214This prompts for an extra key to select a sparse-tree creating command. 1201This prompts for an extra key to select a sparse-tree creating command.
1215@kindex C-c / r 1202@kindex C-c / r
1216@item C-c / r 1203@item C-c / r
@@ -1264,9 +1251,9 @@ part of the document and print the resulting file.
1264@cindex ordered lists 1251@cindex ordered lists
1265 1252
1266Within an entry of the outline tree, hand-formatted lists can provide 1253Within an entry of the outline tree, hand-formatted lists can provide
1267additional structure. They also provide a way to create lists of 1254additional structure. They also provide a way to create lists of checkboxes
1268checkboxes (@pxref{Checkboxes}). Org supports editing such lists, 1255(@pxref{Checkboxes}). Org supports editing such lists, and every exporter
1269and the HTML exporter (@pxref{Exporting}) parses and formats them. 1256(@pxref{Exporting}) can parse and format them.
1270 1257
1271Org knows ordered lists, unordered lists, and description lists. 1258Org knows ordered lists, unordered lists, and description lists.
1272@itemize @bullet 1259@itemize @bullet
@@ -1279,26 +1266,39 @@ visually indistinguishable from true headlines. In short: even though
1279@samp{*} is supported, it may be better to not use it for plain list items.} 1266@samp{*} is supported, it may be better to not use it for plain list items.}
1280as bullets. 1267as bullets.
1281@item 1268@item
1269@vindex org-plain-list-ordered-item-terminator
1282@emph{Ordered} list items start with a numeral followed by either a period or 1270@emph{Ordered} list items start with a numeral followed by either a period or
1283a right parenthesis, such as @samp{1.} or @samp{1)}. If you want a list to 1271a right parenthesis@footnote{You can filter out any of them by configuring
1284start a different value (e.g. 20), start the text of the item with 1272@code{org-plain-list-ordered-item-terminator}.}, such as @samp{1.} or
1285@code{[@@start:20]}. 1273@samp{1)}. If you want a list to start a different value (e.g. 20), start
1274the text of the item with @code{[@@20]}@footnote{If there's a checkbox in the
1275item, the cookie must be put @emph{before} the checkbox.}. Those constructs
1276can be used in any item of the list in order to enforce a particular
1277numbering.
1286@item 1278@item
1287@emph{Description} list items are unordered list items, and contain the 1279@emph{Description} list items are unordered list items, and contain the
1288separator @samp{ :: } to separate the description @emph{term} from the 1280separator @samp{ :: } to separate the description @emph{term} from the
1289description. 1281description.
1290@end itemize 1282@end itemize
1291 1283
1292@vindex org-empty-line-terminates-plain-lists
1293Items belonging to the same list must have the same indentation on the first 1284Items belonging to the same list must have the same indentation on the first
1294line. In particular, if an ordered list reaches number @samp{10.}, then the 1285line. In particular, if an ordered list reaches number @samp{10.}, then the
12952--digit numbers must be written left-aligned with the other numbers in the 12862--digit numbers must be written left-aligned with the other numbers in the
1296list. Indentation also determines the end of a list item. It ends before 1287list.
1297the next line that is indented like the bullet/number, or less. Empty lines 1288
1298are part of the previous item, so you can have several paragraphs in one 1289@vindex org-list-ending-method
1299item. If you would like an empty line to terminate all currently open plain 1290@vindex org-list-end-regexp
1300lists, configure the variable @code{org-empty-line-terminates-plain-lists}. 1291@vindex org-empty-line-terminates-plain-lists
1301Here is an example: 1292Two methods@footnote{To disable either of them, configure
1293@code{org-list-ending-method}.} are provided to terminate lists. A list ends
1294before the next line that is indented like the bullet/number or less, or it
1295ends before two blank lines@footnote{See also
1296@code{org-empty-line-terminates-plain-lists}.}. In both cases, all levels of
1297the list are closed@footnote{So you cannot have a sublist, some text and then
1298another sublist while still in the same top-level list item. This used to be
1299possible, but it was only supported in the HTML exporter and difficult to
1300manage with automatic indentation.}. For finer control, you can end lists
1301with any pattern set in @code{org-list-end-regexp}. Here is an example:
1302 1302
1303@example 1303@example
1304@group 1304@group
@@ -1309,8 +1309,8 @@ Here is an example:
1309 + this was already my favorite scene in the book 1309 + this was already my favorite scene in the book
1310 + I really like Miranda Otto. 1310 + I really like Miranda Otto.
1311 3. Peter Jackson being shot by Legolas 1311 3. Peter Jackson being shot by Legolas
1312 - on DVD only
1313 He makes a really funny face when it happens. 1312 He makes a really funny face when it happens.
1313 - on DVD only
1314 But in the end, no individual scenes matter but the film as a whole. 1314 But in the end, no individual scenes matter but the film as a whole.
1315 Important actors in this film are: 1315 Important actors in this film are:
1316 - @b{Elijah Wood} :: He plays Frodo 1316 - @b{Elijah Wood} :: He plays Frodo
@@ -1325,19 +1325,23 @@ XEmacs, you should use Kyle E. Jones' @file{filladapt.el}. To turn this on,
1325put into @file{.emacs}: @code{(require 'filladapt)}}, and by exporting them 1325put into @file{.emacs}: @code{(require 'filladapt)}}, and by exporting them
1326properly (@pxref{Exporting}). Since indentation is what governs the 1326properly (@pxref{Exporting}). Since indentation is what governs the
1327structure of these lists, many structural constructs like @code{#+BEGIN_...} 1327structure of these lists, many structural constructs like @code{#+BEGIN_...}
1328blocks can be indented to signal that they should be part of a list item. 1328blocks can be indented to signal that they should be considered of a list
1329item.
1329 1330
1330@vindex org-list-demote-modify-bullet 1331@vindex org-list-demote-modify-bullet
1331If you find that using a different bullet for a sub-list (than that used for 1332If you find that using a different bullet for a sub-list (than that used for
1332the current list-level) improves readability, customize the variable 1333the current list-level) improves readability, customize the variable
1333@code{org-list-demote-modify-bullet}. 1334@code{org-list-demote-modify-bullet}.
1334 1335
1335The following commands act on items when the cursor is in the first line 1336@vindex org-list-automatic-rules
1336of an item (the line with the bullet or number). 1337The following commands act on items when the cursor is in the first line of
1338an item (the line with the bullet or number). Some of them imply the
1339application of automatic rules to keep list structure in tact. If some of
1340these actions get in your way, configure @code{org-list-automatic-rules}
1341to disable them individually.
1337 1342
1338@table @kbd 1343@table @asis
1339@kindex @key{TAB} 1344@orgcmd{@key{TAB},org-cycle}
1340@item @key{TAB}
1341@vindex org-cycle-include-plain-lists 1345@vindex org-cycle-include-plain-lists
1342Items can be folded just like headline levels. Normally this works only if 1346Items can be folded just like headline levels. Normally this works only if
1343the cursor is on a plain list item. For more details, see the variable 1347the cursor is on a plain list item. For more details, see the variable
@@ -1345,31 +1349,29 @@ the cursor is on a plain list item. For more details, see the variable
1345will be treated like low-level. The level of an item is then given by the 1349will be treated like low-level. The level of an item is then given by the
1346indentation of the bullet/number. Items are always subordinate to real 1350indentation of the bullet/number. Items are always subordinate to real
1347headlines, however; the hierarchies remain completely separated. 1351headlines, however; the hierarchies remain completely separated.
1348 1352@orgcmd{M-@key{RET},org-insert-heading}
1349If @code{org-cycle-include-plain-lists} has not been set, @key{TAB}
1350fixes the indentation of the current line in a heuristic way.
1351@kindex M-@key{RET}
1352@item M-@key{RET}
1353@vindex org-M-RET-may-split-line 1353@vindex org-M-RET-may-split-line
1354@vindex org-list-automatic-rules
1354Insert new item at current level. With a prefix argument, force a new 1355Insert new item at current level. With a prefix argument, force a new
1355heading (@pxref{Structure editing}). If this command is used in the middle 1356heading (@pxref{Structure editing}). If this command is used in the middle
1356of a line, the line is @emph{split} and the rest of the line becomes the new 1357of a line, the line is @emph{split} and the rest of the line becomes the new
1357item@footnote{If you do not want the line to be split, customize the variable 1358item@footnote{If you do not want the line to be split, customize the variable
1358@code{org-M-RET-may-split-line}.}. If this command is executed in the 1359@code{org-M-RET-may-split-line}.}. If this command is executed @emph{before
1359@emph{whitespace before a bullet or number}, the new item is created 1360item's body}, the new item is created @emph{before} the current item. If the
1360@emph{before} the current item. If the command is executed in the white 1361command is executed in the white space before the text that is part of an
1361space before the text that is part of an item but does not contain the 1362item but does not contain the bullet, a bullet is added to the current line.
1362bullet, a bullet is added to the current line. 1363
1364As a new item cannot be inserted in a structural construct (like an example
1365or source code block) within a list, Org will instead insert it right before
1366the structure, or return an error.
1363@kindex M-S-@key{RET} 1367@kindex M-S-@key{RET}
1364@item M-S-@key{RET} 1368@item M-S-@key{RET}
1365Insert a new item with a checkbox (@pxref{Checkboxes}). 1369Insert a new item with a checkbox (@pxref{Checkboxes}).
1366@kindex @key{TAB} 1370@orgcmd{@key{TAB},org-cycle}
1367@item @key{TAB} @r{in new, empty item}
1368In a new item with no text yet, the first @key{TAB} demotes the item to 1371In a new item with no text yet, the first @key{TAB} demotes the item to
1369become a child of the previous one. The next @key{TAB} makes it a parent, 1372become a child of the previous one. Subsequents @key{TAB} move the item to
1370and so on, all the way to the left margin. Yet another @key{TAB}, and you 1373meaningful levels in the list and eventually get it back to its initial
1371are back to the initial level. 1374position.
1372@kindex S-@key{up}
1373@kindex S-@key{down} 1375@kindex S-@key{down}
1374@item S-@key{up} 1376@item S-@key{up}
1375@itemx S-@key{down} 1377@itemx S-@key{down}
@@ -1396,25 +1398,35 @@ Decrease/increase the indentation of an item, leaving children alone.
1396@item M-S-@key{left} 1398@item M-S-@key{left}
1397@itemx M-S-@key{right} 1399@itemx M-S-@key{right}
1398Decrease/increase the indentation of the item, including subitems. 1400Decrease/increase the indentation of the item, including subitems.
1399Initially, the item tree is selected based on current indentation. 1401Initially, the item tree is selected based on current indentation. When
1400When these commands are executed several times in direct succession, 1402these commands are executed several times in direct succession, the initially
1401the initially selected region is used, even if the new indentation 1403selected region is used, even if the new indentation would imply a different
1402would imply a different hierarchy. To use the new hierarchy, break 1404hierarchy. To use the new hierarchy, break the command chain with a cursor
1403the command chain with a cursor motion or so. 1405motion or so.
1406
1407As a special case, using this command on the very first item of a list will
1408move the whole list. This behavior can be disabled by configuring
1409@code{org-list-automatic-rules}. The global indentation of a list has no
1410influence on the text @emph{after} the list.
1404@kindex C-c C-c 1411@kindex C-c C-c
1405@item C-c C-c 1412@item C-c C-c
1406If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the 1413If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the
1407state of the checkbox. If not, this command makes sure that all the 1414state of the checkbox. Also, makes sure that all the
1408items on this list level use the same bullet. Furthermore, if this is 1415items on this list level use the same bullet and that the numbering of list
1409an ordered list, make sure the numbering is OK. 1416items (if applicable) is correct.
1410@kindex C-c - 1417@kindex C-c -
1418@vindex org-plain-list-ordered-item-terminator
1419@vindex org-list-automatic-rules
1411@item C-c - 1420@item C-c -
1412Cycle the entire list level through the different itemize/enumerate bullets 1421Cycle the entire list level through the different itemize/enumerate bullets
1413(@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}). With a numeric prefix 1422(@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}) or a subset of them,
1414argument N, select the Nth bullet from this list. If there is an active 1423depending on @code{org-plain-list-ordered-item-terminator}, the type of list,
1415region when calling this, all lines will be converted to list items. If the 1424and its position@footnote{See @code{bullet} rule in
1416first line already was a list item, any item markers will be removed from the 1425@code{org-list-automatic-rules} for more information.}. With a numeric
1417list. Finally, even without an active region, a normal line will be 1426prefix argument N, select the Nth bullet from this list. If there is an
1427active region when calling this, all lines will be converted to list items.
1428If the first line already was a list item, any item markers will be removed
1429from the list. Finally, even without an active region, a normal line will be
1418converted into a list item. 1430converted into a list item.
1419@kindex C-c * 1431@kindex C-c *
1420@item C-c * 1432@item C-c *
@@ -1696,8 +1708,7 @@ unpredictable for you, configure the variables
1696 1708
1697@table @kbd 1709@table @kbd
1698@tsubheading{Creation and conversion} 1710@tsubheading{Creation and conversion}
1699@kindex C-c | 1711@orgcmd{C-c |,org-table-create-or-convert-from-region}
1700@item C-c |
1701Convert the active region to table. If every line contains at least one 1712Convert the active region to table. If every line contains at least one
1702TAB character, the function assumes that the material is tab separated. 1713TAB character, the function assumes that the material is tab separated.
1703If every line contains a comma, comma-separated values (CSV) are assumed. 1714If every line contains a comma, comma-separated values (CSV) are assumed.
@@ -1711,21 +1722,17 @@ table. But it's easier just to start typing, like
1711@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}. 1722@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}.
1712 1723
1713@tsubheading{Re-aligning and field motion} 1724@tsubheading{Re-aligning and field motion}
1714@kindex C-c C-c 1725@orgcmd{C-c C-c,org-ctrl-c-ctrl-c}
1715@item C-c C-c
1716Re-align the table without moving the cursor. 1726Re-align the table without moving the cursor.
1717@c 1727@c
1718@kindex @key{TAB} 1728@orgcmd{<TAB>,org-cycle}
1719@item @key{TAB}
1720Re-align the table, move to the next field. Creates a new row if 1729Re-align the table, move to the next field. Creates a new row if
1721necessary. 1730necessary.
1722@c 1731@c
1723@kindex S-@key{TAB} 1732@orgcmd{S-@key{TAB},org-shifttab}
1724@item S-@key{TAB}
1725Re-align, move to previous field. 1733Re-align, move to previous field.
1726@c 1734@c
1727@kindex @key{RET} 1735@orgcmd{@key{RET},org-return}
1728@item @key{RET}
1729Re-align the table and move down to next row. Creates a new row if 1736Re-align the table and move down to next row. Creates a new row if
1730necessary. At the beginning or end of a line, @key{RET} still does 1737necessary. At the beginning or end of a line, @key{RET} still does
1731NEWLINE, so it can be used to split a table. 1738NEWLINE, so it can be used to split a table.
@@ -1940,9 +1947,10 @@ on a per-file basis with:
1940@end example 1947@end example
1941 1948
1942If you would like to overrule the automatic alignment of number-rich columns 1949If you would like to overrule the automatic alignment of number-rich columns
1943to the right and of string-rich column to the left, you and use @samp{<r>} or 1950to the right and of string-rich column to the left, you and use @samp{<r>},
1944@samp{<l>} in a similar fashion. You may also combine alignment and field 1951@samp{c}@footnote{Centering does not work inside Emacs, but it does have an
1945width like this: @samp{<l10>}. 1952effect when exporting to HTML.} or @samp{<l>} in a similar fashion. You may
1953also combine alignment and field width like this: @samp{<l10>}.
1946 1954
1947Lines which only contain these formatting cookies will be removed 1955Lines which only contain these formatting cookies will be removed
1948automatically when exporting the document. 1956automatically when exporting the document.
@@ -2807,23 +2815,13 @@ text before the first headline is usually not exported, so the first such
2807target should be after the first headline, or in the line directly before the 2815target should be after the first headline, or in the line directly before the
2808first headline.}. 2816first headline.}.
2809 2817
2810If no dedicated target exists, Org will search for the words in the link. In 2818If no dedicated target exists, Org will search for a headline that is exactly
2811the above example the search would be for @samp{my target}. Links starting 2819the link text but may also include a TODO keyword and tags@footnote{To insert
2812with a star like @samp{*My Target} restrict the search to 2820a link targeting a headline, in-buffer completion can be used. Just type a
2813headlines@footnote{To insert a link targeting a headline, in-buffer 2821star followed by a few optional letters into the buffer and press
2814completion can be used. Just type a star followed by a few optional letters 2822@kbd{M-@key{TAB}}. All headlines in the current buffer will be offered as
2815into the buffer and press @kbd{M-@key{TAB}}. All headlines in the current 2823completions.}. In non-Org files, the search will look for the words in the
2816buffer will be offered as completions. @xref{Handling links}, for more 2824link text, in the above example the search would be for @samp{my target}.
2817commands creating links.}. When searching, Org-mode will first try an
2818exact match, but then move on to more and more lenient searches. For
2819example, the link @samp{[[*My Targets]]} will find any of the following:
2820
2821@example
2822** My targets
2823** TODO my targets are bright
2824** my 20 targets are
2825@end example
2826
2827 2825
2828Following a link pushes a mark onto Org's own mark ring. You can 2826Following a link pushes a mark onto Org's own mark ring. You can
2829return to the previous position with @kbd{C-c &}. Using this command 2827return to the previous position with @kbd{C-c &}. Using this command
@@ -3087,11 +3085,17 @@ variable @code{org-display-internal-link-with-indirect-buffer}}.
3087@cindex inlining images 3085@cindex inlining images
3088@cindex images, inlining 3086@cindex images, inlining
3089@kindex C-c C-x C-v 3087@kindex C-c C-x C-v
3088@vindex org-startup-with-inline-images
3089@cindex @code{inlineimages}, STARTUP keyword
3090@cindex @code{noinlineimages}, STARTUP keyword
3090@item C-c C-x C-v 3091@item C-c C-x C-v
3091Toggle the inline display of linked images. Normally this will only inline 3092Toggle the inline display of linked images. Normally this will only inline
3092images that have no description part in the link, i.e. images that will also 3093images that have no description part in the link, i.e. images that will also
3093be inlined during export. When called with a prefix argument, also display 3094be inlined during export. When called with a prefix argument, also display
3094images that do have a link description. 3095images that do have a link description. You can ask for inline images to be
3096displayed at startup by configuring the variable
3097@code{org-startup-with-inline-images}@footnote{with corresponding
3098@code{#+STARTUP} keywords @code{inlineimages} and @code{inlineimages}}.
3095@cindex mark ring 3099@cindex mark ring
3096@kindex C-c % 3100@kindex C-c %
3097@item C-c % 3101@item C-c %
@@ -3157,15 +3161,16 @@ letters, numbers, @samp{-}, and @samp{_}. Abbreviations are resolved
3157according to the information in the variable @code{org-link-abbrev-alist} 3161according to the information in the variable @code{org-link-abbrev-alist}
3158that relates the linkwords to replacement text. Here is an example: 3162that relates the linkwords to replacement text. Here is an example:
3159 3163
3160@lisp 3164@smalllisp
3161@group 3165@group
3162(setq org-link-abbrev-alist 3166(setq org-link-abbrev-alist
3163 '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=") 3167 '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
3164 ("google" . "http://www.google.com/search?q=") 3168 ("google" . "http://www.google.com/search?q=")
3165 ("ads" . "http://adsabs.harvard.edu/cgi-bin/ 3169 ("gmap" . "http://maps.google.com/maps?q=%s")
3166 nph-abs_connect?author=%s&db_key=AST"))) 3170 ("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1")
3171 ("ads" . "http://adsabs.harvard.edu/cgi-bin/nph-abs_connect?author=%s&db_key=AST")))
3167@end group 3172@end group
3168@end lisp 3173@end smalllisp
3169 3174
3170If the replacement text contains the string @samp{%s}, it will be 3175If the replacement text contains the string @samp{%s}, it will be
3171replaced with the tag. Otherwise the tag will be appended to the string 3176replaced with the tag. Otherwise the tag will be appended to the string
@@ -3174,8 +3179,11 @@ be called with the tag as the only argument to create the link.
3174 3179
3175With the above setting, you could link to a specific bug with 3180With the above setting, you could link to a specific bug with
3176@code{[[bugzilla:129]]}, search the web for @samp{OrgMode} with 3181@code{[[bugzilla:129]]}, search the web for @samp{OrgMode} with
3177@code{[[google:OrgMode]]} and find out what the Org author is 3182@code{[[google:OrgMode]]}, show the map location of the Free Software
3178doing besides Emacs hacking with @code{[[ads:Dominik,C]]}. 3183Foundation @code{[[gmap:51 Franklin Street, Boston]]} or of Carsten office
3184@code{[[omap:Science Park 904, Amsterdam, The Netherlands]]} and find out
3185what the Org author is doing besides Emacs hacking with
3186@code{[[ads:Dominik,C]]}.
3179 3187
3180If you need special abbreviations just for a single Org buffer, you 3188If you need special abbreviations just for a single Org buffer, you
3181can define them in the file with 3189can define them in the file with
@@ -3810,7 +3818,10 @@ The habit is a TODO, with a TODO keyword representing an open state.
3810@item 3818@item
3811The property @code{STYLE} is set to the value @code{habit}. 3819The property @code{STYLE} is set to the value @code{habit}.
3812@item 3820@item
3813The TODO has a scheduled date, with a @code{.+} style repeat interval. 3821The TODO has a scheduled date, usually with a @code{.+} style repeat
3822interval. A @code{++} style may be appropriate for habits with time
3823constraints, e.g., must be done on weekends, or a @code{+} style for an
3824unusual habit that can have a backlog, e.g., weekly reports.
3814@item 3825@item
3815The TODO may also have minimum and maximum ranges specified by using the 3826The TODO may also have minimum and maximum ranges specified by using the
3816syntax @samp{.+2d/3d}, which says that you want to do the task at least every 3827syntax @samp{.+2d/3d}, which says that you want to do the task at least every
@@ -3908,13 +3919,13 @@ placing a @emph{priority cookie} into the headline of a TODO item, like this
3908@vindex org-priority-faces 3919@vindex org-priority-faces
3909By default, Org-mode supports three priorities: @samp{A}, @samp{B}, and 3920By default, Org-mode supports three priorities: @samp{A}, @samp{B}, and
3910@samp{C}. @samp{A} is the highest priority. An entry without a cookie is 3921@samp{C}. @samp{A} is the highest priority. An entry without a cookie is
3911treated as priority @samp{B}. Priorities make a difference only in the 3922treated just like priority @samp{B}. Priorities make a difference only for
3912agenda (@pxref{Weekly/daily agenda}); outside the agenda, they have no 3923sorting in the agenda (@pxref{Weekly/daily agenda}); outside the agenda, they
3913inherent meaning to Org-mode. The cookies can be highlighted with special 3924have no inherent meaning to Org-mode. The cookies can be highlighted with
3914faces by customizing the variable @code{org-priority-faces}. 3925special faces by customizing the variable @code{org-priority-faces}.
3915 3926
3916Priorities can be attached to any outline tree entries; they do not need 3927Priorities can be attached to any outline node; they do not need to be TODO
3917to be TODO items. 3928items.
3918 3929
3919@table @kbd 3930@table @kbd
3920@kindex @kbd{C-c ,} 3931@kindex @kbd{C-c ,}
@@ -4017,13 +4028,16 @@ large number of subtasks (@pxref{Checkboxes}).
4017@section Checkboxes 4028@section Checkboxes
4018@cindex checkboxes 4029@cindex checkboxes
4019 4030
4020Every item in a plain list (@pxref{Plain lists}) can be made into a 4031@vindex org-list-automatic-rules
4021checkbox by starting it with the string @samp{[ ]}. This feature is 4032Every item in a plain list@footnote{With the exception of description
4022similar to TODO items (@pxref{TODO Items}), but is more lightweight. 4033lists. But you can allow it by modifying @code{org-list-automatic-rules}
4023Checkboxes are not included into the global TODO list, so they are often 4034accordingly.} (@pxref{Plain lists}) can be made into a checkbox by starting
4024great to split a task into a number of simple steps. Or you can use 4035it with the string @samp{[ ]}. This feature is similar to TODO items
4025them in a shopping list. To toggle a checkbox, use @kbd{C-c C-c}, or 4036(@pxref{TODO Items}), but is more lightweight. Checkboxes are not included
4026use the mouse (thanks to Piotr Zielinski's @file{org-mouse.el}). 4037into the global TODO list, so they are often great to split a task into a
4038number of simple steps. Or you can use them in a shopping list. To toggle a
4039checkbox, use @kbd{C-c C-c}, or use the mouse (thanks to Piotr Zielinski's
4040@file{org-mouse.el}).
4027 4041
4028Here is an example of a checkbox list. 4042Here is an example of a checkbox list.
4029 4043
@@ -4738,8 +4752,8 @@ optional. The individual parts have the following meaning:
4738@var{property} @r{The property that should be edited in this column.} 4752@var{property} @r{The property that should be edited in this column.}
4739 @r{Special properties representing meta data are allowed here} 4753 @r{Special properties representing meta data are allowed here}
4740 @r{as well (@pxref{Special properties})} 4754 @r{as well (@pxref{Special properties})}
4741(title) @r{The header text for the column. If omitted, the} 4755@var{title} @r{The header text for the column. If omitted, the property}
4742 @r{property name is used.} 4756 @r{name is used.}
4743@{@var{summary-type}@} @r{The summary type. If specified, the column values for} 4757@{@var{summary-type}@} @r{The summary type. If specified, the column values for}
4744 @r{parent nodes are computed from the children.} 4758 @r{parent nodes are computed from the children.}
4745 @r{Supported summary types are:} 4759 @r{Supported summary types are:}
@@ -4756,9 +4770,10 @@ optional. The individual parts have the following meaning:
4756 @{:min@} @r{Smallest time value in column.} 4770 @{:min@} @r{Smallest time value in column.}
4757 @{:max@} @r{Largest time value.} 4771 @{:max@} @r{Largest time value.}
4758 @{:mean@} @r{Arithmetic mean of time values.} 4772 @{:mean@} @r{Arithmetic mean of time values.}
4759 @{@@min@} @r{Minimum age (in days/hours/mins/seconds).} 4773 @{@@min@} @r{Minimum age (in days/hours/mins/seconds).}
4760 @{@@max@} @r{Maximum age (in days/hours/mins/seconds).} 4774 @{@@max@} @r{Maximum age (in days/hours/mins/seconds).}
4761 @{@@mean@} @r{Arithmetic mean of ages (in days/hours/mins/seconds).} 4775 @{@@mean@} @r{Arithmetic mean of ages (in days/hours/mins/seconds).}
4776 @{est+@} @r{Add low-high estimates.}
4762@end example 4777@end example
4763 4778
4764@noindent 4779@noindent
@@ -4766,6 +4781,22 @@ Be aware that you can only have one summary type for any property you
4766include. Subsequent columns referencing the same property will all display the 4781include. Subsequent columns referencing the same property will all display the
4767same summary information. 4782same summary information.
4768 4783
4784The @code{est+} summary type requires further explanation. It is used for
4785combining estimates, expressed as low-high ranges. For example, instead
4786of estimating a particular task will take 5 days, you might estimate it as
47875-6 days if you're fairly confident you know how much woark is required, or
47881-10 days if you don't really know what needs to be done. Both ranges
4789average at 5.5 days, but the first represents a more predictable delivery.
4790
4791When combining a set of such estimates, simply adding the lows and highs
4792produces an unrealistically wide result. Instead, @code{est+} adds the
4793statistical mean and variance of the sub-tasks, generating a final estimate
4794from the sum. For example, suppose you had ten tasks, each of which was
4795estimated at 0.5 to 2 days of work. Straight addition produces an estimate
4796of 5 to 20 days, representing what to expect if everything goes either
4797extremely well or extremely poorly. In contrast, @code{est+} estimates the
4798full job more realistically, at 10-15 days.
4799
4769Here is an example for a complete columns definition, along with allowed 4800Here is an example for a complete columns definition, along with allowed
4770values. 4801values.
4771 4802
@@ -4978,6 +5009,7 @@ is used in a much wider sense.
4978* Resolving idle time:: Resolving time if you've been idle 5009* Resolving idle time:: Resolving time if you've been idle
4979* Effort estimates:: Planning work effort in advance 5010* Effort estimates:: Planning work effort in advance
4980* Relative timer:: Notes with a running timer 5011* Relative timer:: Notes with a running timer
5012* Countdown timer:: Starting a countdown timer for a task
4981@end menu 5013@end menu
4982 5014
4983 5015
@@ -5067,15 +5099,13 @@ format. All commands listed below produce timestamps in the correct
5067format. 5099format.
5068 5100
5069@table @kbd 5101@table @kbd
5070@kindex C-c . 5102@orgcmd{C-c .,org-time-stamp}
5071@item C-c .
5072Prompt for a date and insert a corresponding timestamp. When the cursor is 5103Prompt for a date and insert a corresponding timestamp. When the cursor is
5073at an existing timestamp in the buffer, the command is used to modify this 5104at an existing timestamp in the buffer, the command is used to modify this
5074timestamp instead of inserting a new one. When this command is used twice in 5105timestamp instead of inserting a new one. When this command is used twice in
5075succession, a time range is inserted. 5106succession, a time range is inserted.
5076@c 5107@c
5077@kindex C-c ! 5108@orgcmd{C-c !,org-time-stamp-inactive}
5078@item C-c !
5079Like @kbd{C-c .}, but insert an inactive timestamp that will not cause 5109Like @kbd{C-c .}, but insert an inactive timestamp that will not cause
5080an agenda entry. 5110an agenda entry.
5081@c 5111@c
@@ -5088,18 +5118,15 @@ Like @kbd{C-c .} and @kbd{C-c !}, but use the alternative format which
5088contains date and time. The default time can be rounded to multiples of 5 5118contains date and time. The default time can be rounded to multiples of 5
5089minutes, see the option @code{org-time-stamp-rounding-minutes}. 5119minutes, see the option @code{org-time-stamp-rounding-minutes}.
5090@c 5120@c
5091@kindex C-c < 5121@orgcmd{C-c <,org-date-from-calendar}
5092@item C-c <
5093Insert a timestamp corresponding to the cursor date in the Calendar. 5122Insert a timestamp corresponding to the cursor date in the Calendar.
5094@c 5123@c
5095@kindex C-c > 5124@orgcmd{C-c >,org-goto-calendar}
5096@item C-c >
5097Access the Emacs calendar for the current date. If there is a 5125Access the Emacs calendar for the current date. If there is a
5098timestamp in the current line, go to the corresponding date 5126timestamp in the current line, go to the corresponding date
5099instead. 5127instead.
5100@c 5128@c
5101@kindex C-c C-o 5129@orgcmd{C-c C-o,org-open-at-point}
5102@item C-c C-o
5103Access the agenda for the date given by the timestamp or -range at 5130Access the agenda for the date given by the timestamp or -range at
5104point (@pxref{Weekly/daily agenda}). 5131point (@pxref{Weekly/daily agenda}).
5105@c 5132@c
@@ -5206,6 +5233,16 @@ The function understands English month and weekday abbreviations. If
5206you want to use unabbreviated names and/or other languages, configure 5233you want to use unabbreviated names and/or other languages, configure
5207the variables @code{parse-time-months} and @code{parse-time-weekdays}. 5234the variables @code{parse-time-months} and @code{parse-time-weekdays}.
5208 5235
5236You can specify a time range by giving start and end times or by giving a
5237start time and a duration (in HH:MM format). Use '-' or '--' as the separator
5238in the former case and use '+' as the separator in the latter case. E.g.
5239
5240@example
524111am-1:15pm --> 11:00-13:15
524211am--1:15pm --> same as above
524311am+2:15 --> same as above
5244@end example
5245
5209@cindex calendar, for selecting date 5246@cindex calendar, for selecting date
5210@vindex org-popup-calendar-for-date-prompt 5247@vindex org-popup-calendar-for-date-prompt
5211Parallel to the minibuffer prompt, a calendar is popped up@footnote{If 5248Parallel to the minibuffer prompt, a calendar is popped up@footnote{If
@@ -5593,9 +5630,8 @@ Cancel the current clock. This is useful if a clock was started by
5593mistake, or if you ended up working on something else. 5630mistake, or if you ended up working on something else.
5594@kindex C-c C-x C-j 5631@kindex C-c C-x C-j
5595@item C-c C-x C-j 5632@item C-c C-x C-j
5596Jump to the entry that contains the currently running clock. With a 5633Jump to the headline of the currently clocked in task. With a @kbd{C-u}
5597@kbd{C-u} prefix arg, select the target task from a list of recently clocked 5634prefix arg, select the target task from a list of recently clocked tasks.
5598tasks.
5599@kindex C-c C-x C-d 5635@kindex C-c C-x C-d
5600@item C-c C-x C-d 5636@item C-c C-x C-d
5601@vindex org-remove-highlights-with-change 5637@vindex org-remove-highlights-with-change
@@ -5835,7 +5871,7 @@ with the @kbd{/} key in the agenda (@pxref{Agenda commands}). If you have
5835these estimates defined consistently, two or three key presses will narrow 5871these estimates defined consistently, two or three key presses will narrow
5836down the list to stuff that fits into an available time slot. 5872down the list to stuff that fits into an available time slot.
5837 5873
5838@node Relative timer, , Effort estimates, Dates and Times 5874@node Relative timer, Countdown timer, Effort estimates, Dates and Times
5839@section Taking notes with a relative timer 5875@section Taking notes with a relative timer
5840@cindex relative timer 5876@cindex relative timer
5841 5877
@@ -5877,6 +5913,20 @@ by a certain amount. This can be used to fix timer strings if the timer was
5877not started at exactly the right moment. 5913not started at exactly the right moment.
5878@end table 5914@end table
5879 5915
5916@node Countdown timer, , Relative timer, Dates and Times
5917@section Countdown timer
5918@cindex Countdown timer
5919@kindex C-c C-x ;
5920@kindex ;
5921
5922Calling @code{org-timer-set-timer} from an Org-mode buffer runs a countdown
5923timer. Use @key{;} from agenda buffers, @key{C-c C-x ;} everwhere else.
5924
5925@code{org-timer-set-timer} prompts the user for a duration and displays a
5926countdown timer in the modeline. @code{org-timer-default-timer} sets the
5927default countdown value. Giving a prefix numeric argument overrides this
5928default value.
5929
5880@node Capture - Refile - Archive, Agenda Views, Dates and Times, Top 5930@node Capture - Refile - Archive, Agenda Views, Dates and Times, Top
5881@chapter Capture - Refile - Archive 5931@chapter Capture - Refile - Archive
5882@cindex capture 5932@cindex capture
@@ -5934,6 +5984,7 @@ The following customization sets a default target file for notes, and defines
5934a global key@footnote{Please select your own key, @kbd{C-c c} is only a 5984a global key@footnote{Please select your own key, @kbd{C-c c} is only a
5935suggestion.} for capturing new material. 5985suggestion.} for capturing new material.
5936 5986
5987@vindex org-default-notes-file
5937@example 5988@example
5938(setq org-default-notes-file (concat org-directory "/notes.org")) 5989(setq org-default-notes-file (concat org-directory "/notes.org"))
5939(define-key global-map "\C-cc" 'org-capture) 5990(define-key global-map "\C-cc" 'org-capture)
@@ -5960,7 +6011,10 @@ process, so that you can resume your work without further distraction.
5960@kindex C-c C-w 6011@kindex C-c C-w
5961@item C-c C-w 6012@item C-c C-w
5962Finalize the capture process by refiling (@pxref{Refiling notes}) the note to 6013Finalize the capture process by refiling (@pxref{Refiling notes}) the note to
5963a different place. 6014a different place. Please realize that this is a normal refiling command
6015that will be executed - so the cursor position at the moment you run this
6016command is important. If you have inserted a tree with a parent and
6017children, first move the cursor back to the parent.
5964 6018
5965@kindex C-c C-k 6019@kindex C-c C-k
5966@item C-c C-k 6020@item C-c C-k
@@ -6067,10 +6121,12 @@ Text to be inserted as it is.
6067@end table 6121@end table
6068 6122
6069@item target 6123@item target
6070Specification of where the captured item should be placed. 6124@vindex org-default-notes-file
6071In Org-mode files, targets usually define a node. Entries will become 6125Specification of where the captured item should be placed. In Org-mode
6072children of this node, other types will be added to the table or list in the 6126files, targets usually define a node. Entries will become children of this
6073body of this node. 6127node, other types will be added to the table or list in the body of this
6128node. Most target specifications contain a file name. If that file name is
6129the empty string, it defaults to @code{org-default-notes-file}.
6074 6130
6075Valid values are: 6131Valid values are:
6076@table @code 6132@table @code
@@ -6139,6 +6195,10 @@ with the capture.
6139@item :unnarrowed 6195@item :unnarrowed
6140Do not narrow the target buffer, simply show the full buffer. Default is to 6196Do not narrow the target buffer, simply show the full buffer. Default is to
6141narrow it so that you only see the new material. 6197narrow it so that you only see the new material.
6198
6199@item :kill-buffer
6200If the target file was not yet visited when capture was invoked, kill the
6201buffer again after capture is completed.
6142@end table 6202@end table
6143@end table 6203@end table
6144 6204
@@ -6191,16 +6251,19 @@ similar way.}:
6191@smallexample 6251@smallexample
6192Link type | Available keywords 6252Link type | Available keywords
6193-------------------+---------------------------------------------- 6253-------------------+----------------------------------------------
6194bbdb | %:name %:company 6254bbdb | %:name %:company
6195bbdb | %::server %:port %:nick 6255irc | %:server %:port %:nick
6196vm, wl, mh, rmail | %:type %:subject %:message-id 6256vm, wl, mh, mew, rmail | %:type %:subject %:message-id
6197 | %:from %:fromname %:fromaddress 6257 | %:from %:fromname %:fromaddress
6198 | %:to %:toname %:toaddress 6258 | %:to %:toname %:toaddress
6199 | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}} 6259 | %:date @r{(message date header field)}
6200gnus | %:group, @r{for messages also all email fields} 6260 | %:date-timestamp @r{(date as active timestamp)}
6201w3, w3m | %:url 6261 | %:date-timestamp-inactive @r{(date as inactive timestamp)}
6202info | %:file %:node 6262 | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}}
6203calendar | %:date 6263gnus | %:group, @r{for messages also all email fields}
6264w3, w3m | %:url
6265info | %:file %:node
6266calendar | %:date
6204@end smallexample 6267@end smallexample
6205 6268
6206@noindent 6269@noindent
@@ -7247,6 +7310,7 @@ associated with the item.
7247@subsection Categories 7310@subsection Categories
7248 7311
7249@cindex category 7312@cindex category
7313@cindex #+CATEGORY
7250The category is a broad label assigned to each agenda item. By default, 7314The category is a broad label assigned to each agenda item. By default,
7251the category is simply derived from the file name, but you can also 7315the category is simply derived from the file name, but you can also
7252specify it with a special line in the buffer, like this@footnote{For 7316specify it with a special line in the buffer, like this@footnote{For
@@ -7474,6 +7538,10 @@ Go to today.
7474@item j 7538@item j
7475Prompt for a date and go there. 7539Prompt for a date and go there.
7476@c 7540@c
7541@kindex J
7542@item J
7543Go to the currently clocked in task in the agenda buffer.
7544@c
7477@kindex D 7545@kindex D
7478@item D 7546@item D
7479Toggle the inclusion of diary entries. See @ref{Weekly/daily agenda}. 7547Toggle the inclusion of diary entries. See @ref{Weekly/daily agenda}.
@@ -7584,7 +7652,9 @@ very fast, so that you can switch quickly between different filters without
7584having to recreate the agenda@footnote{Custom commands can preset a filter by 7652having to recreate the agenda@footnote{Custom commands can preset a filter by
7585binding the variable @code{org-agenda-filter-preset} as an option. This 7653binding the variable @code{org-agenda-filter-preset} as an option. This
7586filter will then be applied to the view and persist as a basic filter through 7654filter will then be applied to the view and persist as a basic filter through
7587refreshes and more secondary filtering.} 7655refreshes and more secondary filtering. The filter is a global property of
7656the entire agenda view - in a block agenda, you should only set this in the
7657global options section, not in the section of an individual block.}
7588 7658
7589You will be prompted for a tag selection letter, SPC will mean any tag at 7659You will be prompted for a tag selection letter, SPC will mean any tag at
7590all. Pressing @key{TAB} at that prompt will offer use completion to select a 7660all. Pressing @key{TAB} at that prompt will offer use completion to select a
@@ -8600,6 +8670,7 @@ You may also define additional attributes for the figure. As this is
8600backend-specific, see the sections about the individual backends for more 8670backend-specific, see the sections about the individual backends for more
8601information. 8671information.
8602 8672
8673@xref{Handling links,the discussion of image links}.
8603 8674
8604@node Literal examples, Include files, Images and tables, Markup 8675@node Literal examples, Include files, Images and tables, Markup
8605@section Literal examples 8676@section Literal examples
@@ -8631,13 +8702,24 @@ Here is an example
8631@cindex formatting source code, markup rules 8702@cindex formatting source code, markup rules
8632If the example is source code from a programming language, or any other text 8703If the example is source code from a programming language, or any other text
8633that can be marked up by font-lock in Emacs, you can ask for the example to 8704that can be marked up by font-lock in Emacs, you can ask for the example to
8634look like the fontified Emacs buffer@footnote{Currently this works for the 8705look like the fontified Emacs buffer@footnote{This works automatically for
8635HTML backend, and requires the @file{htmlize.el} package version 1.34 or 8706the HTML backend (it requires version 1.34 of the @file{htmlize.el} package,
8636later. It also works for LaTeX with the listings package, if you turn on the 8707which is distributed with Org.) Fontified code chunks in LaTeX can be
8637option @code{org-export-latex-listings} and make sure that the listings 8708achieved using either the listings or the
8638package is included by the LaTeX header.}. This is done with the @samp{src} 8709@url{http://code.google.com/p/minted, minted,} package. To use listings, turn
8639block, where you also need to specify the name of the major mode that should 8710on the variable @code{org-export-latex-listings} and ensure that the listings
8640be used to fontify the example: 8711package is included by the LaTeX header (e.g. by configuring
8712@code{org-export-latex-packages-alist}). See the listings documentation for
8713configuration options, including obtaining colored output. For minted it is
8714necessary to install the program @url{http://pygments.org, pygments}, in
8715addition to setting @code{org-export-latex-minted}, ensuring that the minted
8716package is included by the LaTeX header, and ensuring that the
8717@code{-shell-escape} option is passed to @file{pdflatex} (see
8718@code{org-latex-to-pdf-process}). See the documentation of the variables
8719@code{org-export-latex-listings} and @code{org-export-latex-minted} for
8720further details.}. This is done with the @samp{src} block, where you also
8721need to specify the name of the major mode that should be used to fontify the
8722example:
8641@cindex #+BEGIN_SRC 8723@cindex #+BEGIN_SRC
8642 8724
8643@example 8725@example
@@ -8794,12 +8876,9 @@ is a macro system based on Donald E. Knuth's @TeX{} system. Many of the
8794features described here as ``La@TeX{}'' are really from @TeX{}, but for 8876features described here as ``La@TeX{}'' are really from @TeX{}, but for
8795simplicity I am blurring this distinction.} is widely used to typeset 8877simplicity I am blurring this distinction.} is widely used to typeset
8796scientific documents. Org-mode supports embedding La@TeX{} code into its 8878scientific documents. Org-mode supports embedding La@TeX{} code into its
8797files, because many academics are used to reading La@TeX{} source code, and 8879files, because many academics are used to writing and reading La@TeX{} source
8798because it can be readily processed into images for HTML production. 8880code, and because it can be readily processed to produce pretty output for a
8799 8881number of export backends.
8800It is not necessary to mark La@TeX{} macros and code in any special way.
8801If you observe a few conventions, Org-mode knows how to find it and what
8802to do with it.
8803 8882
8804@menu 8883@menu
8805* Special symbols:: Greek letters and other symbols 8884* Special symbols:: Greek letters and other symbols
@@ -8843,7 +8922,7 @@ La@TeX{}, see the variable @code{org-entities} for the complete list.
8843@samp{...} are all converted into special commands creating hyphens of 8922@samp{...} are all converted into special commands creating hyphens of
8844different lengths or a compact set of dots. 8923different lengths or a compact set of dots.
8845 8924
8846If you would like to see entities displayed as utf8 characters, use the 8925If you would like to see entities displayed as UTF8 characters, use the
8847following command@footnote{You can turn this on by default by setting the 8926following command@footnote{You can turn this on by default by setting the
8848variable @code{org-pretty-entities}, or on a per-file base with the 8927variable @code{org-pretty-entities}, or on a per-file base with the
8849@code{#+STARTUP} option @code{entitiespretty}.}: 8928@code{#+STARTUP} option @code{entitiespretty}.}:
@@ -8884,6 +8963,9 @@ convention, or use, on a per-file basis:
8884#+OPTIONS: ^:@{@} 8963#+OPTIONS: ^:@{@}
8885@end example 8964@end example
8886 8965
8966@noindent With this setting, @samp{a_b} will not be interpreted as a
8967subscript, but @samp{a_@{b@}} will.
8968
8887@table @kbd 8969@table @kbd
8888@kindex C-c C-x \ 8970@kindex C-c C-x \
8889@item C-c C-x \ 8971@item C-c C-x \
@@ -8896,31 +8978,31 @@ format sub- and superscripts in a WYSIWYM way.
8896@cindex La@TeX{} fragments 8978@cindex La@TeX{} fragments
8897 8979
8898@vindex org-format-latex-header 8980@vindex org-format-latex-header
8899With symbols, sub- and superscripts, HTML is pretty much at its end when 8981Going beyond symbols and sub- and superscripts, a full formula language is
8900it comes to representing mathematical formulas@footnote{Yes, there is 8982needed. Org-mode can contain La@TeX{} math fragments, and it supports ways
8901MathML, but that is not yet fully supported by many browsers, and there 8983to process these for several export backends. When exporting to La@TeX{},
8902is no decent converter for turning La@TeX{} or ASCII representations of 8984the code is obviously left as it is. When exporting to HTML, Org invokes the
8903formulas into MathML. So for the time being, converting formulas into 8985@uref{http://www.mathjax.org, MathJax library} (@pxref{Math formatting in
8904images seems the way to go.}. More complex expressions need a dedicated 8986HTML export}) to process and display the math@footnote{If you plan to use
8905formula processor. To this end, Org-mode can contain arbitrary La@TeX{} 8987this regularly or on pages with significant page views, you should install
8906fragments. It provides commands to preview the typeset result of these 8988@file{MathJax} on your own server in order to limit the load of our server.}.
8907fragments, and upon export to HTML, all fragments will be converted to 8989Finally, it can also process the mathematical expressions into
8908images and inlined into the HTML document@footnote{The La@TeX{} export 8990images@footnote{For this to work you need to be on a system with a working
8909will not use images for displaying La@TeX{} fragments but include these 8991La@TeX{} installation. You also need the @file{dvipng} program, available at
8910fragments directly into the La@TeX{} code.}. For this to work you 8992@url{http://sourceforge.net/projects/dvipng/}. The La@TeX{} header that will
8911need to be on a system with a working La@TeX{} installation. You also 8993be used when processing a fragment can be configured with the variable
8912need the @file{dvipng} program, available at 8994@code{org-format-latex-header}.} that can be displayed in a browser or in
8913@url{http://sourceforge.net/projects/dvipng/}. The La@TeX{} header that 8995DocBook documents.
8914will be used when processing a fragment can be configured with the
8915variable @code{org-format-latex-header}.
8916 8996
8917La@TeX{} fragments don't need any special marking at all. The following 8997La@TeX{} fragments don't need any special marking at all. The following
8918snippets will be identified as La@TeX{} source code: 8998snippets will be identified as La@TeX{} source code:
8919@itemize @bullet 8999@itemize @bullet
8920@item 9000@item
8921Environments of any kind. The only requirement is that the 9001Environments of any kind@footnote{When @file{MathJax} is used, only the
8922@code{\begin} statement appears on a new line, preceded by only 9002environment recognized by @file{MathJax} will be processed. When dvipng is
8923whitespace. 9003used to create images, any La@TeX{} environments will be handled.}. The only
9004requirement is that the @code{\begin} statement appears on a new line,
9005preceded by only whitespace.
8924@item 9006@item
8925Text within the usual La@TeX{} math delimiters. To avoid conflicts with 9007Text within the usual La@TeX{} math delimiters. To avoid conflicts with
8926currency specifications, single @samp{$} characters are only recognized as 9008currency specifications, single @samp{$} characters are only recognized as
@@ -8948,12 +9030,26 @@ If you need any of the delimiter ASCII sequences for other purposes, you
8948can configure the option @code{org-format-latex-options} to deselect the 9030can configure the option @code{org-format-latex-options} to deselect the
8949ones you do not wish to have interpreted by the La@TeX{} converter. 9031ones you do not wish to have interpreted by the La@TeX{} converter.
8950 9032
9033@vindex org-export-with-LaTeX-fragments
9034LaTeX processing can be configured with the variable
9035@code{org-export-with-LaTeX-fragments}. The default setting is @code{t}
9036which means @file{MathJax} for HTML, and no processing for DocBook, ASCII and
9037LaTeX backends. You can also set this variable on a per-file basis using one
9038of these lines:
9039
9040@example
9041#+OPTIONS: LaTeX:t @r{Do the right thing automatically (MathJax)}
9042#+OPTIONS: LaTeX:dvipng @r{Force using dvipng images}
9043#+OPTIONS: LaTeX:nil @r{Do not process La@TeX{} fragments at all}
9044#+OPTIONS: LaTeX:verbatim @r{Verbatim export, for jsMath or so}
9045@end example
9046
8951@node Previewing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX 9047@node Previewing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX
8952@subsection Previewing LaTeX fragments 9048@subsection Previewing LaTeX fragments
8953@cindex LaTeX fragments, preview 9049@cindex LaTeX fragments, preview
8954 9050
8955La@TeX{} fragments can be processed to produce preview images of the 9051If you have @file{dvipng} installed, La@TeX{} fragments can be processed to
8956typeset expressions: 9052produce preview images of the typeset expressions:
8957 9053
8958@table @kbd 9054@table @kbd
8959@kindex C-c C-x C-l 9055@kindex C-c C-x C-l
@@ -8975,14 +9071,6 @@ some aspects of the preview. In particular, the @code{:scale} (and for HTML
8975export, @code{:html-scale}) property can be used to adjust the size of the 9071export, @code{:html-scale}) property can be used to adjust the size of the
8976preview images. 9072preview images.
8977 9073
8978During HTML export (@pxref{HTML export}), all La@TeX{} fragments are
8979converted into images and inlined into the document if the following
8980setting is active:
8981
8982@lisp
8983(setq org-export-with-LaTeX-fragments t)
8984@end lisp
8985
8986@node CDLaTeX mode, , Previewing LaTeX fragments, Embedded LaTeX 9074@node CDLaTeX mode, , Previewing LaTeX fragments, Embedded LaTeX
8987@subsection Using CDLa@TeX{} to enter math 9075@subsection Using CDLa@TeX{} to enter math
8988@cindex CDLa@TeX{} 9076@cindex CDLa@TeX{}
@@ -9200,7 +9288,7 @@ tags: @r{turn on/off inclusion of tags, may also be @code{not-in-toc}}
9200<: @r{turn on/off inclusion of any time/date stamps like DEADLINES} 9288<: @r{turn on/off inclusion of any time/date stamps like DEADLINES}
9201*: @r{turn on/off emphasized text (bold, italic, underlined)} 9289*: @r{turn on/off emphasized text (bold, italic, underlined)}
9202TeX: @r{turn on/off simple @TeX{} macros in plain text} 9290TeX: @r{turn on/off simple @TeX{} macros in plain text}
9203LaTeX: @r{turn on/off La@TeX{} fragments} 9291LaTeX: @r{configure export of La@TeX{} fragments. Default @code{auto}}
9204skip: @r{turn on/off skipping the text before the first heading} 9292skip: @r{turn on/off skipping the text before the first heading}
9205author: @r{turn on/off inclusion of author name/email into exported file} 9293author: @r{turn on/off inclusion of author name/email into exported file}
9206email: @r{turn on/off inclusion of author email into exported file} 9294email: @r{turn on/off inclusion of author email into exported file}
@@ -9333,6 +9421,7 @@ language, but with additional support for tables.
9333* Links in HTML export:: How links will be interpreted and formatted 9421* Links in HTML export:: How links will be interpreted and formatted
9334* Tables in HTML export:: How to modify the formatting of tables 9422* Tables in HTML export:: How to modify the formatting of tables
9335* Images in HTML export:: How to insert figures into HTML output 9423* Images in HTML export:: How to insert figures into HTML output
9424* Math formatting in HTML export:: Beautiful math also on the web
9336* Text areas in HTML export:: An alternative way to show an example 9425* Text areas in HTML export:: An alternative way to show an example
9337* CSS support:: Changing the appearance of the output 9426* CSS support:: Changing the appearance of the output
9338* JavaScript support:: Info and Folding in a web browser 9427* JavaScript support:: Info and Folding in a web browser
@@ -9468,7 +9557,7 @@ tables, place something like the following before the table:
9468#+ATTR_HTML: border="2" rules="all" frame="all" 9557#+ATTR_HTML: border="2" rules="all" frame="all"
9469@end example 9558@end example
9470 9559
9471@node Images in HTML export, Text areas in HTML export, Tables in HTML export, HTML export 9560@node Images in HTML export, Math formatting in HTML export, Tables in HTML export, HTML export
9472@subsection Images in HTML export 9561@subsection Images in HTML export
9473 9562
9474@cindex images, inline in HTML 9563@cindex images, inline in HTML
@@ -9505,7 +9594,41 @@ support text viewers and accessibility, and align it to the right.
9505@noindent 9594@noindent
9506and you could use @code{http} addresses just as well. 9595and you could use @code{http} addresses just as well.
9507 9596
9508@node Text areas in HTML export, CSS support, Images in HTML export, HTML export 9597@node Math formatting in HTML export, Text areas in HTML export, Images in HTML export, HTML export
9598@subsection Math formatting in HTML export
9599@cindex MathJax
9600@cindex dvipng
9601
9602La@TeX{} math snippets (@pxref{LaTeX fragments}) can be displayed in two
9603different ways on HTML pages. The default is to use the
9604@uref{http://www.mathjax.org, MathJax system} which should work out of the
9605box with Org mode installation because @code{http://orgmode.org} serves
9606@file{MathJax} for Org-mode users for small applications and for testing
9607purposes. @b{If you plan to use this regularly or on pages with significant
9608page views, you should install MathJax on your own server in order to limit
9609the load of our server.} To configure @file{MathJax}, use the variable
9610@code{org-export-html-mathjax-options} or insert something like the following
9611into the buffer:
9612
9613@example
9614#+MATHJAX: align:"left" mathml:t path:"/MathJax/MathJax.js"
9615@end example
9616
9617@noindent See the docstring of the variable
9618@code{org-export-html-mathjax-options} for the meaning of the parameters in
9619this line.
9620
9621If you prefer, you can also request that La@TeX{} are processed into small
9622images that will be inserted into the browser page. Before the availability
9623of MathJax, this was the default method for Org files. This method requires
9624that the @file{dvipng} program is available on your system. You can still
9625get this processing with
9626
9627@example
9628#+OPTIONS: LaTeX:dvipng
9629@end example
9630
9631@node Text areas in HTML export, CSS support, Math formatting in HTML export, HTML export
9509@subsection Text areas in HTML export 9632@subsection Text areas in HTML export
9510 9633
9511@cindex text areas, in HTML 9634@cindex text areas, in HTML
@@ -9595,6 +9718,11 @@ For longer style definitions, you can use several such lines. You could also
9595directly write a @code{<style>} @code{</style>} section in this way, without 9718directly write a @code{<style>} @code{</style>} section in this way, without
9596referring to an external file. 9719referring to an external file.
9597 9720
9721In order to add styles to a subtree, use the @code{:HTML_CONTAINER_CLASS:}
9722property to assign a class to the tree. In order to specify CSS styles for a
9723particular headline, you can use the id specified in a @code{:CUSTOM_ID:}
9724property.
9725
9598@c FIXME: More about header and footer styles 9726@c FIXME: More about header and footer styles
9599@c FIXME: Talk about links and targets. 9727@c FIXME: Talk about links and targets.
9600 9728
@@ -9890,9 +10018,9 @@ different level - then the hierarchy above frames will produce the sectioning
9890structure of the presentation. 10018structure of the presentation.
9891 10019
9892A template for useful in-buffer settings or properties can be inserted into 10020A template for useful in-buffer settings or properties can be inserted into
9893the buffer with @kbd{M-x org-beamer-settings-template}. Among other things, 10021the buffer with @kbd{M-x org-insert-beamer-options-template}. Among other
9894this will install a column view format which is very handy for editing 10022things, this will install a column view format which is very handy for
9895special properties used by beamer. 10023editing special properties used by beamer.
9896 10024
9897You can influence the structure of the presentation using the following 10025You can influence the structure of the presentation using the following
9898properties: 10026properties:
@@ -9957,7 +10085,7 @@ environment or the @code{BEAMER_col} property.
9957Column view provides a great way to set the environment of a node and other 10085Column view provides a great way to set the environment of a node and other
9958important parameters. Make sure you are using a COLUMN format that is geared 10086important parameters. Make sure you are using a COLUMN format that is geared
9959toward this special purpose. The command @kbd{M-x 10087toward this special purpose. The command @kbd{M-x
9960org-beamer-settings-template} defines such a format. 10088org-insert-beamer-options-template} defines such a format.
9961 10089
9962Here is a simple example Org document that is intended for beamer export. 10090Here is a simple example Org document that is intended for beamer export.
9963 10091
@@ -10366,6 +10494,7 @@ Export only the visible part of the document.
10366@vindex org-icalendar-use-deadline 10494@vindex org-icalendar-use-deadline
10367@vindex org-icalendar-use-scheduled 10495@vindex org-icalendar-use-scheduled
10368@vindex org-icalendar-categories 10496@vindex org-icalendar-categories
10497@vindex org-icalendar-alarm-time
10369Some people use Org-mode for keeping track of projects, but still prefer a 10498Some people use Org-mode for keeping track of projects, but still prefer a
10370standard calendar application for anniversaries and appointments. In this 10499standard calendar application for anniversaries and appointments. In this
10371case it can be useful to show deadlines and other time-stamped items in Org 10500case it can be useful to show deadlines and other time-stamped items in Org
@@ -10379,7 +10508,9 @@ to set the start and due dates for the TODO entry@footnote{See the variables
10379@code{org-icalendar-use-deadline} and @code{org-icalendar-use-scheduled}.}. 10508@code{org-icalendar-use-deadline} and @code{org-icalendar-use-scheduled}.}.
10380As categories, it will use the tags locally defined in the heading, and the 10509As categories, it will use the tags locally defined in the heading, and the
10381file/tree category@footnote{To add inherited tags or the TODO state, 10510file/tree category@footnote{To add inherited tags or the TODO state,
10382configure the variable @code{org-icalendar-categories}.}. 10511configure the variable @code{org-icalendar-categories}.}. See the variable
10512@code{org-icalendar-alarm-time} for a way to assign alarms to entries with a
10513time.
10383 10514
10384@vindex org-icalendar-store-UID 10515@vindex org-icalendar-store-UID
10385@cindex property, ID 10516@cindex property, ID
@@ -10477,7 +10608,8 @@ variable, called @code{org-publish-project-alist}. Each element of the list
10477configures one project, and may be in one of the two following forms: 10608configures one project, and may be in one of the two following forms:
10478 10609
10479@lisp 10610@lisp
10480 ("project-name" :property value :property value ...) 10611 ("project-name" :property value :property value ...)
10612 @r{i.e. a well-formed property list with alternating keys and values}
10481@r{or} 10613@r{or}
10482 ("project-name" :components ("project-name" "project-name" ...)) 10614 ("project-name" :components ("project-name" "project-name" ...))
10483 10615
@@ -10553,20 +10685,20 @@ possibly transformed in the process. The default transformation is to export
10553Org files as HTML files, and this is done by the function 10685Org files as HTML files, and this is done by the function
10554@code{org-publish-org-to-html} which calls the HTML exporter (@pxref{HTML 10686@code{org-publish-org-to-html} which calls the HTML exporter (@pxref{HTML
10555export}). But you also can publish your content as PDF files using 10687export}). But you also can publish your content as PDF files using
10556@code{org-publish-org-to-pdf}. If you want to publish the Org file itself, 10688@code{org-publish-org-to-pdf}, or as @code{ascii}, @code{latin1} or
10557but with @i{archived}, @i{commented}, and @i{tag-excluded} trees removed, use 10689@code{utf8} encoded files using the corresponding functions. If you want to
10558@code{org-publish-org-to-org} and set the parameters @code{:plain-source} 10690publish the Org file itself, but with @i{archived}, @i{commented}, and
10559and/or @code{:htmlized-source}. This will produce @file{file.org} and 10691@i{tag-excluded} trees removed, use @code{org-publish-org-to-org} and set the
10560@file{file.org.html} in the publishing 10692parameters @code{:plain-source} and/or @code{:htmlized-source}. This will
10693produce @file{file.org} and @file{file.org.html} in the publishing
10561directory@footnote{@file{file-source.org} and @file{file-source.org.html} if 10694directory@footnote{@file{file-source.org} and @file{file-source.org.html} if
10562source and publishing directories are equal. Note that with this kind of 10695source and publishing directories are equal. Note that with this kind of
10563setup, you need to add @code{:exclude "-source\\.org"} to the project 10696setup, you need to add @code{:exclude "-source\\.org"} to the project
10564definition in @code{org-publish-project-alist} to avoid that the published 10697definition in @code{org-publish-project-alist} to avoid that the published
10565source files will be considered as new org files the next time the project is 10698source files will be considered as new org files the next time the project is
10566published.}. Other files like images only 10699published.}. Other files like images only need to be copied to the
10567need to be copied to the publishing destination, for this you may use 10700publishing destination, for this you may use @code{org-publish-attachment}.
10568@code{org-publish-attachment}. For non-Org files, you always need to 10701For non-Org files, you always need to specify the publishing function:
10569specify the publishing function:
10570 10702
10571@multitable @columnfractions 0.3 0.7 10703@multitable @columnfractions 0.3 0.7
10572@item @code{:publishing-function} 10704@item @code{:publishing-function}
@@ -10960,9 +11092,9 @@ e.g.
10960 11092
10961Org-mode provides a number of features for working with live source code, 11093Org-mode provides a number of features for working with live source code,
10962including editing of code blocks in their native major-mode, evaluation of 11094including editing of code blocks in their native major-mode, evaluation of
10963code blocks, tangling of code blocks, and exporting code blocks and 11095code blocks, tangling of code blocks, and exporting code blocks and their
10964their results in several formats. This functionality was contributed by Dan 11096results in several formats. This functionality was contributed by Eric
10965Davison and Eric Schulte, and was originally named Org-babel. 11097Schulte and Dan Davison, and was originally named Org-babel.
10966 11098
10967The following sections describe Org-mode's code block handling facilities. 11099The following sections describe Org-mode's code block handling facilities.
10968 11100
@@ -10998,6 +11130,18 @@ The structure of code blocks is as follows:
10998#+end_src 11130#+end_src
10999@end example 11131@end example
11000 11132
11133code blocks can also be embedded in text as so called inline code blocks as
11134
11135@example
11136src_<language>@{<body>@}
11137@end example
11138
11139or
11140
11141@example
11142src_<language>[<header arguments>]@{<body>@}
11143@end example
11144
11001@table @code 11145@table @code
11002@item <name> 11146@item <name>
11003This name is associated with the code block. This is similar to the 11147This name is associated with the code block. This is similar to the
@@ -11124,10 +11268,10 @@ Include the code block in the tangled output to file @samp{filename}.
11124@kindex C-c C-v t 11268@kindex C-c C-v t
11125@subsubheading Functions 11269@subsubheading Functions
11126@table @code 11270@table @code
11127@item org-babel-tangle @kbd{C-c C-v t} 11271@item org-babel-tangle
11128Tangle the current file. 11272Tangle the current file. Bound to @kbd{C-c C-v t}.
11129@item org-babel-tangle-file 11273@item org-babel-tangle-file
11130Choose a file to tangle. 11274Choose a file to tangle. Bound to @kbd{C-c C-v f}.
11131@end table 11275@end table
11132 11276
11133@subsubheading Hooks 11277@subsubheading Hooks
@@ -11200,10 +11344,10 @@ Code blocks defined in the ``Library of Babel'' can be called remotely as if
11200they were in the current Org-mode buffer (see @ref{Evaluating code blocks} 11344they were in the current Org-mode buffer (see @ref{Evaluating code blocks}
11201for information on the syntax of remote code block evaluation). 11345for information on the syntax of remote code block evaluation).
11202 11346
11203@kindex C-c C-v l 11347@kindex C-c C-v i
11204Code blocks located in any Org-mode file can be loaded into the ``Library of 11348Code blocks located in any Org-mode file can be loaded into the ``Library of
11205Babel'' with the @code{org-babel-lob-ingest} function, bound to @kbd{C-c C-v 11349Babel'' with the @code{org-babel-lob-ingest} function, bound to @kbd{C-c C-v
11206l}. 11350i}.
11207 11351
11208@node Languages, Header arguments, Library of Babel, Working With Source Code 11352@node Languages, Header arguments, Library of Babel, Working With Source Code
11209@section Languages 11353@section Languages
@@ -11279,7 +11423,7 @@ describes each header argument in detail.
11279@node Using header arguments, Specific header arguments, Header arguments, Header arguments 11423@node Using header arguments, Specific header arguments, Header arguments, Header arguments
11280@subsection Using header arguments 11424@subsection Using header arguments
11281 11425
11282The values of header arguments can be set in five different ways, each more 11426The values of header arguments can be set in six different ways, each more
11283specific (and having higher priority) than the last. 11427specific (and having higher priority) than the last.
11284@menu 11428@menu
11285* System-wide header arguments:: Set global default values 11429* System-wide header arguments:: Set global default values
@@ -11287,6 +11431,7 @@ specific (and having higher priority) than the last.
11287* Buffer-wide header arguments:: Set default values for a specific buffer 11431* Buffer-wide header arguments:: Set default values for a specific buffer
11288* Header arguments in Org-mode properties:: Set default values for a buffer or heading 11432* Header arguments in Org-mode properties:: Set default values for a buffer or heading
11289* Code block specific header arguments:: The most common way to set values 11433* Code block specific header arguments:: The most common way to set values
11434* Header arguments in function calls:: The most specific level
11290@end menu 11435@end menu
11291 11436
11292 11437
@@ -11381,7 +11526,7 @@ Properties defined in this way override the properties set in
11381@code{org-set-property} function bound to @kbd{C-c C-x p} to set properties 11526@code{org-set-property} function bound to @kbd{C-c C-x p} to set properties
11382in Org-mode documents. 11527in Org-mode documents.
11383 11528
11384@node Code block specific header arguments, , Header arguments in Org-mode properties, Using header arguments 11529@node Code block specific header arguments, Header arguments in function calls, Header arguments in Org-mode properties, Using header arguments
11385@subsubheading Code block specific header arguments 11530@subsubheading Code block specific header arguments
11386 11531
11387The most common way to assign values to header arguments is at the 11532The most common way to assign values to header arguments is at the
@@ -11402,14 +11547,18 @@ fac 0 = 1
11402fac n = n * fac (n-1) 11547fac n = n * fac (n-1)
11403#+end_src 11548#+end_src
11404@end example 11549@end example
11405
11406Similarly, it is possible to set header arguments for inline code blocks: 11550Similarly, it is possible to set header arguments for inline code blocks:
11407 11551
11408@example 11552@example
11409src_haskell[:exports both]@{fac 5@} 11553src_haskell[:exports both]@{fac 5@}
11410@end example 11554@end example
11411 11555
11412Header arguments for ``Library of Babel'' or function call lines can be set as shown below: 11556@node Header arguments in function calls, , Code block specific header arguments, Using header arguments
11557@comment node-name, next, previous, up
11558@subsubheading Header arguments in function calls
11559
11560At the most specific level, header arguments for ``Library of Babel'' or
11561function call lines can be set as shown below:
11413 11562
11414@example 11563@example
11415#+call: factorial(n=5) :exports results 11564#+call: factorial(n=5) :exports results
@@ -11428,10 +11577,10 @@ The following header arguments are defined:
11428 directory for code block execution 11577 directory for code block execution
11429* exports:: Export code and/or results 11578* exports:: Export code and/or results
11430* tangle:: Toggle tangling and specify file name 11579* tangle:: Toggle tangling and specify file name
11431* no-expand:: Turn off variable assignment and noweb
11432 expansion during tangling
11433* comments:: Toggle insertion of comments in tangled 11580* comments:: Toggle insertion of comments in tangled
11434 code files 11581 code files
11582* no-expand:: Turn off variable assignment and noweb
11583 expansion during tangling
11435* session:: Preserve the state of code evaluation 11584* session:: Preserve the state of code evaluation
11436* noweb:: Toggle expansion of noweb references 11585* noweb:: Toggle expansion of noweb references
11437* cache:: Avoid re-evaluating unchanged code blocks 11586* cache:: Avoid re-evaluating unchanged code blocks
@@ -11842,10 +11991,25 @@ basename}.
11842@subsubsection @code{:comments} 11991@subsubsection @code{:comments}
11843By default code blocks are tangled to source-code files without any insertion 11992By default code blocks are tangled to source-code files without any insertion
11844of comments beyond those which may already exist in the body of the code 11993of comments beyond those which may already exist in the body of the code
11845block. The @code{:comments} header argument can be set to ``yes'' 11994block. The @code{:comments} header argument can be set as follows to control
11846e.g. @code{:comments yes} to enable the insertion of comments around code 11995the insertion of extra comments into the tangled code file.
11847blocks during tangling. The inserted comments contain pointers back to the 11996
11848original Org file from which the comment was tangled. 11997@itemize @bullet
11998@item @code{no}
11999The default. No extra comments are inserted during tangling.
12000@item @code{link}
12001The code block is wrapped in comments which contain pointers back to the
12002original Org file from which the code was tangled.
12003@item @code{yes}
12004A synonym for ``link'' to maintain backwards compatibility.
12005@item @code{org}
12006Include text from the org-mode file as a comment.
12007
12008The text is picked from the leading context of the tangled code and is
12009limited by the nearest headline or source block as the case may be.
12010@item @code{both}
12011Turns on both the ``link'' and ``org'' comment options.
12012@end itemize
11849 12013
11850@node no-expand, session, comments, Specific header arguments 12014@node no-expand, session, comments, Specific header arguments
11851@subsubsection @code{:no-expand} 12015@subsubsection @code{:no-expand}
@@ -11873,16 +12037,20 @@ interpreted language.
11873 12037
11874The @code{:noweb} header argument controls expansion of ``noweb'' style (see 12038The @code{:noweb} header argument controls expansion of ``noweb'' style (see
11875@ref{Noweb reference syntax}) references in a code block. This header 12039@ref{Noweb reference syntax}) references in a code block. This header
11876argument can have one of two values: @code{yes} or @code{no}. 12040argument can have one of three values: @code{yes} @code{no} or @code{tangle}.
11877 12041
11878@itemize @bullet 12042@itemize @bullet
12043@item @code{yes}
12044All ``noweb'' syntax references in the body of the code block will be
12045expanded before the block is evaluated, tangled or exported.
11879@item @code{no} 12046@item @code{no}
11880The default. No ``noweb'' syntax specific action is taken on evaluating 12047The default. No ``noweb'' syntax specific action is taken on evaluating
11881code blocks, However, noweb references will still be expanded during 12048code blocks, However, noweb references will still be expanded during
11882tangling. 12049tangling.
11883@item @code{yes} 12050@item @code{yes}
11884All ``noweb'' syntax references in the body of the code block will be 12051All ``noweb'' syntax references in the body of the code block will be
11885expanded before the block is evaluated. 12052expanded before the block is tangled, however ``noweb'' references will not
12053be expanded when the block is evaluated or exported.
11886@end itemize 12054@end itemize
11887 12055
11888@subsubheading Noweb prefix lines 12056@subsubheading Noweb prefix lines
@@ -12067,7 +12235,7 @@ Setting the @code{:shebang} header argument to a string value
12067first line of any tangled file holding the code block, and the file 12235first line of any tangled file holding the code block, and the file
12068permissions of the tangled file are set to make it executable. 12236permissions of the tangled file are set to make it executable.
12069 12237
12070@node eval, , shebang, Specific header arguments 12238@node eval, , shebang, Specific header arguments
12071@subsubsection @code{:eval} 12239@subsubsection @code{:eval}
12072The @code{:eval} header argument can be used to limit the evaluation of 12240The @code{:eval} header argument can be used to limit the evaluation of
12073specific code blocks. @code{:eval} accepts two arguments ``never'' and 12241specific code blocks. @code{:eval} accepts two arguments ``never'' and
@@ -12268,17 +12436,18 @@ Be sure to adjust the paths to fit your system.
12268#!/bin/sh 12436#!/bin/sh
12269# -*- mode: shell-script -*- 12437# -*- mode: shell-script -*-
12270# 12438#
12271# tangle a file with org-mode 12439# tangle files with org-mode
12272# 12440#
12273DIR=`pwd` 12441DIR=`pwd`
12274FILES="" 12442FILES=""
12443ORGINSTALL="~/src/org/lisp/org-install.el"
12275 12444
12276# wrap each argument in the code required to call tangle on it 12445# wrap each argument in the code required to call tangle on it
12277for i in $@@; do 12446for i in $@@; do
12278FILES="$FILES \"$i\"" 12447 FILES="$FILES \"$i\""
12279done 12448done
12280 12449
12281emacsclient \ 12450emacs -Q --batch -l $ORGINSTALL \
12282--eval "(progn 12451--eval "(progn
12283(add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\")) 12452(add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\"))
12284(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\")) 12453(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\"))
@@ -12286,7 +12455,7 @@ emacsclient \
12286(mapc (lambda (file) 12455(mapc (lambda (file)
12287 (find-file (expand-file-name file \"$DIR\")) 12456 (find-file (expand-file-name file \"$DIR\"))
12288 (org-babel-tangle) 12457 (org-babel-tangle)
12289 (kill-buffer)) '($FILES)))" 12458 (kill-buffer)) '($FILES)))" 2>&1 |grep tangled
12290@end example 12459@end example
12291 12460
12292@node Miscellaneous, Hacking, Working With Source Code, Top 12461@node Miscellaneous, Hacking, Working With Source Code, Top
@@ -12294,6 +12463,7 @@ emacsclient \
12294 12463
12295@menu 12464@menu
12296* Completion:: M-TAB knows what you need 12465* Completion:: M-TAB knows what you need
12466* Easy Templates:: Quick insertion of structural elements
12297* Speed keys:: Electric commands at the beginning of a headline 12467* Speed keys:: Electric commands at the beginning of a headline
12298* Code evaluation security:: Org mode files evaluate inline code 12468* Code evaluation security:: Org mode files evaluate inline code
12299* Customization:: Adapting Org to your taste 12469* Customization:: Adapting Org to your taste
@@ -12305,7 +12475,7 @@ emacsclient \
12305@end menu 12475@end menu
12306 12476
12307 12477
12308@node Completion, Speed keys, Miscellaneous, Miscellaneous 12478@node Completion, Easy Templates, Miscellaneous, Miscellaneous
12309@section Completion 12479@section Completion
12310@cindex completion, of @TeX{} symbols 12480@cindex completion, of @TeX{} symbols
12311@cindex completion, of TODO keywords 12481@cindex completion, of TODO keywords
@@ -12367,7 +12537,46 @@ Elsewhere, complete dictionary words using Ispell.
12367@end itemize 12537@end itemize
12368@end table 12538@end table
12369 12539
12370@node Speed keys, Code evaluation security, Completion, Miscellaneous 12540@node Easy Templates, Speed keys, Completion, Miscellaneous
12541@section Easy Templates
12542@cindex template insertion
12543@cindex insertion, of templates
12544
12545Org-mode supports insertion of empty structural elements (like
12546@code{#+BEGIN_SRC} and @code{#+END_SRC} pairs) with just a few key
12547strokes. This is achieved through a native template expansion mechanism.
12548Note that Emacs has several other template mechanisms which could be used in
12549a similar way, for example @file{yasnippet}.
12550
12551To insert a structural element, type a @samp{<}, followed by a template
12552selector and @kbd{@key{TAB}}. Completion takes effect only when the above
12553keystrokes are typed on a line by itself.
12554
12555The following template selectors are currently supported.
12556
12557@multitable @columnfractions 0.1 0.9
12558@item @kbd{s} @tab @code{#+begin_src ... #+end_src}
12559@item @kbd{e} @tab @code{#+begin_example ... #+end_example}
12560@item @kbd{q} @tab @code{#+begin_quote ... #+end_quote}
12561@item @kbd{v} @tab @code{#+begin_verse ... #+end_verse}
12562@item @kbd{c} @tab @code{#+begin_center ... #+end_center}
12563@item @kbd{l} @tab @code{#+begin_latex ... #+end_latex}
12564@item @kbd{L} @tab @code{#+latex:}
12565@item @kbd{h} @tab @code{#+begin_html ... #+end_html}
12566@item @kbd{H} @tab @code{#+html:}
12567@item @kbd{a} @tab @code{#+begin_ascii ... #+end_ascii}
12568@item @kbd{A} @tab @code{#+ascii:}
12569@item @kbd{i} @tab @code{#+include:} line
12570@end multitable
12571
12572For example, on an empty line, typing "<e" and then pressing TAB, will expand
12573into a complete EXAMPLE template.
12574
12575You can install additional templates by customizing the variable
12576@code{org-structure-template-alist}. Refer docstring of the variable for
12577additional details.
12578
12579@node Speed keys, Code evaluation security, Easy Templates, Miscellaneous
12371@section Speed keys 12580@section Speed keys
12372@cindex speed keys 12581@cindex speed keys
12373@vindex org-use-speed-commands 12582@vindex org-use-speed-commands
@@ -12388,7 +12597,7 @@ with the cursor at the beginning of a headline.
12388@node Code evaluation security, Customization, Speed keys, Miscellaneous 12597@node Code evaluation security, Customization, Speed keys, Miscellaneous
12389@section Code evaluation and security issues 12598@section Code evaluation and security issues
12390 12599
12391Org provides tool to work with the code snippets, including evaluating them. 12600Org provides tools to work with the code snippets, including evaluating them.
12392 12601
12393Running code on your machine always comes with a security risk. Badly 12602Running code on your machine always comes with a security risk. Badly
12394written or malicious code can be executed on purpose or by accident. Org has 12603written or malicious code can be executed on purpose or by accident. Org has
@@ -12406,12 +12615,12 @@ Code evaluation can happen under the following circumstances:
12406@item Source code blocks 12615@item Source code blocks
12407Source code blocks can be evaluated during export, or when pressing @kbd{C-c 12616Source code blocks can be evaluated during export, or when pressing @kbd{C-c
12408C-c} in the block. The most important thing to realize here is that Org mode 12617C-c} in the block. The most important thing to realize here is that Org mode
12409files which contain code snippets are in a certain sense like executable 12618files which contain code snippets are, in a certain sense, like executable
12410files. So you should accept them and load them into Emacs only from trusted 12619files. So you should accept them and load them into Emacs only from trusted
12411sources - just like you would do with a program you install on your computer. 12620sources - just like you would do with a program you install on your computer.
12412 12621
12413Make sure you know what you are doing before customizing the variables 12622Make sure you know what you are doing before customizing the variables
12414which take of the default security brakes. 12623which take off the default security brakes.
12415 12624
12416@defopt org-confirm-babel-evaluate 12625@defopt org-confirm-babel-evaluate
12417When set to t user is queried before code block evaluation 12626When set to t user is queried before code block evaluation
@@ -12419,7 +12628,7 @@ When set to t user is queried before code block evaluation
12419 12628
12420@item Following @code{shell} and @code{elisp} links 12629@item Following @code{shell} and @code{elisp} links
12421Org has two link types that can directly evaluate code (@pxref{External 12630Org has two link types that can directly evaluate code (@pxref{External
12422links}). These links can be problematic because the code to be evaluated his 12631links}). These links can be problematic because the code to be evaluated is
12423not visible. 12632not visible.
12424 12633
12425@defopt org-confirm-shell-link-function 12634@defopt org-confirm-shell-link-function
@@ -12429,12 +12638,6 @@ Function to queries user about shell link execution.
12429Functions to query user for Emacs Lisp link execution. 12638Functions to query user for Emacs Lisp link execution.
12430@end defopt 12639@end defopt
12431 12640
12432@item Following @code{shell} and @code{elisp} links
12433Org has two link types that can directly evaluate code (@pxref{External
12434links}). These links can be problematic because the code to be evaluated his
12435not visible. @b{Security advice:} Do not use these links, use source code
12436blocks which make the associated actions much more transparent.
12437
12438@item Formulas in tables 12641@item Formulas in tables
12439Formulas in tables (@pxref{The spreadsheet}) are code that is evaluated 12642Formulas in tables (@pxref{The spreadsheet}) are code that is evaluated
12440either by the @i{calc} interpreter, or by the @i{Emacs Lisp} interpreter. 12643either by the @i{calc} interpreter, or by the @i{Emacs Lisp} interpreter.
@@ -12565,6 +12768,18 @@ variable is @code{org-startup-align-all-tables}, with a default value
12565align @r{align all tables} 12768align @r{align all tables}
12566noalign @r{don't align tables on startup} 12769noalign @r{don't align tables on startup}
12567@end example 12770@end example
12771
12772@vindex org-startup-with-inline-images
12773When visiting a file, inline images can be automatically displayed. The
12774corresponding variable is @code{org-startup-with-inline-images}, with a
12775default value @code{nil} to avoid delays when visiting a file.
12776@cindex @code{inlineimages}, STARTUP keyword
12777@cindex @code{noinlineimages}, STARTUP keyword
12778@example
12779inlineimages @r{show inline images}
12780noinlineimages @r{don't show inline images on startup}
12781@end example
12782
12568@vindex org-log-done 12783@vindex org-log-done
12569@vindex org-log-note-clock-out 12784@vindex org-log-note-clock-out
12570@vindex org-log-repeat 12785@vindex org-log-repeat
@@ -13273,8 +13488,10 @@ Also the @kbd{M-cursor} and @kbd{M-S-cursor} keys have this property.
13273Add-ons can tap into this functionality by providing a function that detects 13488Add-ons can tap into this functionality by providing a function that detects
13274special context for that add-on and executes functionality appropriate for 13489special context for that add-on and executes functionality appropriate for
13275the context. Here is an example from Dan Davison's @file{org-R.el} which 13490the context. Here is an example from Dan Davison's @file{org-R.el} which
13276allows you to evaluate commands based on the @file{R} programming language. For 13491allows you to evaluate commands based on the @file{R} programming language
13277this package, special contexts are lines that start with @code{#+R:} or 13492@footnote{@file{org-R.el} has been replaced by the org-mode functionality
13493described in @ref{Working With Source Code} and is now obsolete.}. For this
13494package, special contexts are lines that start with @code{#+R:} or
13278@code{#+RR:}. 13495@code{#+RR:}.
13279 13496
13280@lisp 13497@lisp
@@ -13693,10 +13910,11 @@ written in a way such that it does nothing in buffers that are not in
13693@section Special agenda views 13910@section Special agenda views
13694@cindex agenda views, user-defined 13911@cindex agenda views, user-defined
13695 13912
13696Org provides a special hook that can be used to narrow down the 13913Org provides a special hook that can be used to narrow down the selection
13697selection made by any of the agenda views. You may specify a function 13914made by these agenda views: @code{todo}, @code{alltodo}, @code{tags}, @code{tags-todo},
13698that is used at each match to verify if the match should indeed be part 13915@code{tags-tree}. You may specify a function that is used at each match to verify
13699of the agenda view, and if not, how much should be skipped. 13916if the match should indeed be part of the agenda view, and if not, how
13917much should be skipped.
13700 13918
13701Let's say you want to produce a list of projects that contain a WAITING 13919Let's say you want to produce a list of projects that contain a WAITING
13702tag anywhere in the project tree. Let's further assume that you have 13920tag anywhere in the project tree. Let's further assume that you have
@@ -14107,16 +14325,23 @@ in-buffer settings, but it will understand the logistics of TODO state
14107@node Setting up the staging area, Pushing to MobileOrg, MobileOrg, MobileOrg 14325@node Setting up the staging area, Pushing to MobileOrg, MobileOrg, MobileOrg
14108@section Setting up the staging area 14326@section Setting up the staging area
14109 14327
14110MobileOrg needs to interact with Emacs through directory on a 14328MobileOrg needs to interact with Emacs through directory on a server. If you
14111server@footnote{If you are using a public server, you might prefer to encrypt 14329are using a public server, you should consider to encrypt the files that are
14112the files on the server. This can be done with Org-mode 6.35 and, hopefully, 14330uploaded to the server. This can be done with Org-mode 7.02 and with
14113with MobileOrg 1.4 (please check before trying to use this). On the Emacs 14331@i{MobileOrg 1.5} (iPhone version), and you need an @file{openssl}
14114side, configure the variables @code{org-mobile-use-encryption} and 14332installation on your system. To turn on encryption, set a password in
14115@code{org-mobile-encryption-password}.}. The easiest way to create that 14333@i{MobileOrg} and, on the Emacs side, configure the variable
14116directory is to use a free @uref{http://dropbox.com,Dropbox.com} 14334@code{org-mobile-use-encryption}@footnote{If you can safely store the
14117account@footnote{If you cannot use Dropbox, or if your version of MobileOrg 14335password in your Emacs setup, you might also want to configure
14118does not support it, you can use a webdav server. For more information, 14336@code{org-mobile-encryption-password}. Please read the docstring of that
14119check out the the documentation of MobileOrg and also this 14337variable. Note that encryption will apply only to the contents of the
14338@file{.org} files. The file names themselves will remain visible.}.
14339
14340The easiest way to create that directory is to use a free
14341@uref{http://dropbox.com,Dropbox.com} account@footnote{If you cannot use
14342Dropbox, or if your version of MobileOrg does not support it, you can use a
14343webdav server. For more information, check out the the documentation of
14344MobileOrg and also this
14120@uref{http://orgmode.org/worg/org-faq.php#mobileorg_webdav, FAQ entry}.}. 14345@uref{http://orgmode.org/worg/org-faq.php#mobileorg_webdav, FAQ entry}.}.
14121When MobileOrg first connects to your Dropbox, it will create a directory 14346When MobileOrg first connects to your Dropbox, it will create a directory
14122@i{MobileOrg} inside the Dropbox. After the directory has been created, tell 14347@i{MobileOrg} inside the Dropbox. After the directory has been created, tell
@@ -14139,15 +14364,17 @@ can be included by customizing @code{org-mobiles-files}. File names will be
14139staged with path relative to @code{org-directory}, so all files should be 14364staged with path relative to @code{org-directory}, so all files should be
14140inside this directory. The push operation also creates a special Org file 14365inside this directory. The push operation also creates a special Org file
14141@file{agendas.org} with all custom agenda view defined by the 14366@file{agendas.org} with all custom agenda view defined by the
14142user@footnote{While creating the agendas, Org-mode will force (see the 14367user@footnote{While creating the agendas, Org-mode will force ID properties
14143variable @code{org-mobile-force-id-on-agenda-items}) ID properties on all 14368on all referenced entries, so that these entries can be uniquely identified
14144referenced entries, so that these entries can be uniquely 14369if @i{MobileOrg} flags them for further action. If you do not want to get
14145identified if @i{MobileOrg} flags them for further action.}. Finally, Org 14370these properties in so many entries, you can set the variable
14146writes the file @file{index.org}, containing links to all other files. 14371@code{org-mobile-force-id-on-agenda-items} to @code{nil}. Org mode will then
14147@i{MobileOrg} first reads this file from the server, and then downloads all 14372rely on outline paths, in the hope that these will be unique enough.}.
14148agendas and Org files listed in it. To speed up the download, MobileOrg will 14373Finally, Org writes the file @file{index.org}, containing links to all other
14149only read files whose checksums@footnote{stored automatically in the file 14374files. @i{MobileOrg} first reads this file from the server, and then
14150@file{checksums.dat}} have changed. 14375downloads all agendas and Org files listed in it. To speed up the download,
14376MobileOrg will only read files whose checksums@footnote{stored automatically
14377in the file @file{checksums.dat}} have changed.
14151 14378
14152@node Pulling from MobileOrg, , Pushing to MobileOrg, MobileOrg 14379@node Pulling from MobileOrg, , Pushing to MobileOrg, MobileOrg
14153@section Pulling from MobileOrg 14380@section Pulling from MobileOrg
@@ -14195,12 +14422,12 @@ this flagged entry is finished.
14195 14422
14196@kindex C-c a ? 14423@kindex C-c a ?
14197If you are not able to process all flagged entries directly, you can always 14424If you are not able to process all flagged entries directly, you can always
14198return to this agenda view using @kbd{C-c a ?}. Note, however, that there is 14425return to this agenda view@footnote{Note, however, that there is a subtle
14199a subtle difference. The view created automatically by @kbd{M-x 14426difference. The view created automatically by @kbd{M-x org-mobile-pull
14200org-mobile-pull @key{RET}} is guaranteed to search all files that have been 14427@key{RET}} is guaranteed to search all files that have been addressed by the
14201addressed by the last pull. This might include a file that is not currently 14428last pull. This might include a file that is not currently in your list of
14202in your list of agenda files. If you later use @kbd{C-c a ?} to regenerate 14429agenda files. If you later use @kbd{C-c a ?} to regenerate the view, only
14203the view, only the current agenda files will be searched. 14430the current agenda files will be searched.} using @kbd{C-c a ?}.
14204 14431
14205@node History and Acknowledgments, Main Index, MobileOrg, Top 14432@node History and Acknowledgments, Main Index, MobileOrg, Top
14206@appendix History and acknowledgments 14433@appendix History and acknowledgments
@@ -14331,6 +14558,8 @@ around a match in a hidden outline tree.
14331@item 14558@item
14332@i{Niels Giesen} had the idea to automatically archive DONE trees. 14559@i{Niels Giesen} had the idea to automatically archive DONE trees.
14333@item 14560@item
14561@i{Nicolas Goaziou} rewrote much of the plain list code.
14562@item
14334@i{Kai Grossjohann} pointed out key-binding conflicts with other packages. 14563@i{Kai Grossjohann} pointed out key-binding conflicts with other packages.
14335@item 14564@item
14336@i{Bernt Hansen} has driven much of the support for auto-repeating tasks, 14565@i{Bernt Hansen} has driven much of the support for auto-repeating tasks,
@@ -14482,12 +14711,17 @@ and contributed various ideas and code snippets.
14482 14711
14483@printindex cp 14712@printindex cp
14484 14713
14485@node Key Index, Variable Index, Main Index, Top 14714@node Key Index, Command and Function Index, Main Index, Top
14486@unnumbered Key index 14715@unnumbered Key index
14487 14716
14488@printindex ky 14717@printindex ky
14489 14718
14490@node Variable Index, , Key Index, Top 14719@node Command and Function Index, Variable Index, Key Index, Top
14720@unnumbered Command and function index
14721
14722@printindex fn
14723
14724@node Variable Index, , Command and Function Index, Top
14491@unnumbered Variable index 14725@unnumbered Variable index
14492 14726
14493This is not a complete index of variables and faces, only the ones that are 14727This is not a complete index of variables and faces, only the ones that are
@@ -14504,6 +14738,7 @@ org-customize @key{RET}} and then click yourself through the tree.
14504 14738
14505@c Local variables: 14739@c Local variables:
14506@c fill-column: 77 14740@c fill-column: 77
14741@c indent-tabs-mode: nil
14507@c End: 14742@c End:
14508 14743
14509 14744