diff options
| author | Carsten Dominik | 2007-06-06 15:15:11 +0000 |
|---|---|---|
| committer | Carsten Dominik | 2007-06-06 15:15:11 +0000 |
| commit | 31e5288cd8d93f111e021c7c901ce8113faf3dc7 (patch) | |
| tree | ffd66f9374e26467cf7cc28cce9e6a20150c0666 | |
| parent | a3fbe8c4e5d022d61e14ab6d73d045b2cf2b2074 (diff) | |
| download | emacs-31e5288cd8d93f111e021c7c901ce8113faf3dc7.tar.gz emacs-31e5288cd8d93f111e021c7c901ce8113faf3dc7.zip | |
Large number of changes.
| -rw-r--r-- | etc/ChangeLog | 4 | ||||
| -rw-r--r-- | man/org.texi | 1433 |
2 files changed, 1008 insertions, 429 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog index 8a184d5f5e9..565c7c1b989 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2007-06-06 Carsten Dominik <dominik@science.uva.nl> | ||
| 2 | |||
| 3 | * orgcard.tex: Version 4.77. | ||
| 4 | |||
| 1 | 2007-06-05 Michael Albinus <michael.albinus@gmx.de> | 5 | 2007-06-05 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 6 | ||
| 3 | * NEWS: Add socks.el as new package. | 7 | * NEWS: Add socks.el as new package. |
diff --git a/man/org.texi b/man/org.texi index aacc2929d13..22d217c1c89 100644 --- a/man/org.texi +++ b/man/org.texi | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | @setfilename ../info/org | 3 | @setfilename ../info/org |
| 4 | @settitle Org Mode Manual | 4 | @settitle Org Mode Manual |
| 5 | 5 | ||
| 6 | @set VERSION 4.67 | 6 | @set VERSION 4.77 |
| 7 | @set DATE February 2007 | 7 | @set DATE June 2007 |
| 8 | 8 | ||
| 9 | @dircategory Emacs | 9 | @dircategory Emacs |
| 10 | @direntry | 10 | @direntry |
| @@ -89,7 +89,6 @@ Software Foundation raise funds for GNU development.'' | |||
| 89 | * Miscellaneous:: All the rest which did not fit elsewhere | 89 | * Miscellaneous:: All the rest which did not fit elsewhere |
| 90 | * Extensions and Hacking:: It is possible to write add-on code | 90 | * Extensions and Hacking:: It is possible to write add-on code |
| 91 | * History and Acknowledgments:: How Org-mode came into being | 91 | * History and Acknowledgments:: How Org-mode came into being |
| 92 | * GNU Free Documentation License:: The license for this documentation. | ||
| 93 | * Index:: The fast road to specific information | 92 | * Index:: The fast road to specific information |
| 94 | * Key Index:: Key bindings and where they are described | 93 | * Key Index:: Key bindings and where they are described |
| 95 | 94 | ||
| @@ -123,6 +122,7 @@ Tables | |||
| 123 | 122 | ||
| 124 | * Built-in table editor:: Simple tables | 123 | * Built-in table editor:: Simple tables |
| 125 | * Narrow columns:: Stop wasting space in tables | 124 | * Narrow columns:: Stop wasting space in tables |
| 125 | * Column groups:: Grouping to trigger vertical lines | ||
| 126 | * orgtbl-mode:: The table editor as minor mode | 126 | * orgtbl-mode:: The table editor as minor mode |
| 127 | * The spreadsheet:: The table editor has spreadsheet capabilities. | 127 | * The spreadsheet:: The table editor has spreadsheet capabilities. |
| 128 | 128 | ||
| @@ -163,26 +163,32 @@ TODO items | |||
| 163 | * TODO basics:: Marking and displaying TODO entries | 163 | * TODO basics:: Marking and displaying TODO entries |
| 164 | * TODO extensions:: Workflow and assignments | 164 | * TODO extensions:: Workflow and assignments |
| 165 | * Priorities:: Some things are more important than others | 165 | * Priorities:: Some things are more important than others |
| 166 | * Breaking down tasks:: Splitting a task into managable pieces | 166 | * Breaking down tasks:: Splitting a task into manageable pieces |
| 167 | * Checkboxes:: Tick-off lists | 167 | * Checkboxes:: Tick-off lists |
| 168 | 168 | ||
| 169 | Extended use of TODO keywords | 169 | Extended use of TODO keywords |
| 170 | 170 | ||
| 171 | * Workflow states:: From TODO to DONE in steps | 171 | * Workflow states:: From TODO to DONE in steps |
| 172 | * TODO types:: I do this, Fred the rest | 172 | * TODO types:: I do this, Fred the rest |
| 173 | * Multiple sets in one file:: Mixing it all, and still finding your way | ||
| 173 | * Per file keywords:: Different files, different requirements | 174 | * Per file keywords:: Different files, different requirements |
| 174 | 175 | ||
| 175 | Timestamps | 176 | Timestamps |
| 176 | 177 | ||
| 177 | * Time stamps:: Assigning a time to a tree entry | 178 | * Time stamps:: Assigning a time to a tree entry |
| 178 | * Creating timestamps:: Commands which insert timestamps | 179 | * Creating timestamps:: Commands which insert timestamps |
| 179 | * Custom time format:: If you cannot work with the ISO format | 180 | * Deadlines and scheduling:: Planning your work |
| 180 | * Repeating items:: Deadlines that come back again and again | ||
| 181 | * Progress logging:: Documenting when what work was done. | 181 | * Progress logging:: Documenting when what work was done. |
| 182 | 182 | ||
| 183 | Creating timestamps | 183 | Creating timestamps |
| 184 | 184 | ||
| 185 | * The date/time prompt:: How org-mode helps you entering date and time | 185 | * The date/time prompt:: How org-mode helps you entering date and time |
| 186 | * Custom time format:: Making dates look differently | ||
| 187 | |||
| 188 | Deadlines and Scheduling | ||
| 189 | |||
| 190 | * Inserting deadline/schedule:: | ||
| 191 | * Repeated tasks:: | ||
| 186 | 192 | ||
| 187 | Progress Logging | 193 | Progress Logging |
| 188 | 194 | ||
| @@ -224,7 +230,8 @@ Custom agenda views | |||
| 224 | * Storing searches:: Type once, use often | 230 | * Storing searches:: Type once, use often |
| 225 | * Block agenda:: All the stuff you need in a single buffer | 231 | * Block agenda:: All the stuff you need in a single buffer |
| 226 | * Setting Options:: Changing the rules | 232 | * Setting Options:: Changing the rules |
| 227 | * Batch processing:: Agenda views from the command line | 233 | * Exporting Agenda Views:: Writing agendas to files. |
| 234 | * Extracting Agenda Information for other programs:: | ||
| 228 | 235 | ||
| 229 | Embedded LaTeX | 236 | Embedded LaTeX |
| 230 | 237 | ||
| @@ -244,7 +251,7 @@ Exporting | |||
| 244 | 251 | ||
| 245 | HTML export | 252 | HTML export |
| 246 | 253 | ||
| 247 | * Export commands:: How to invode HTML export | 254 | * Export commands:: How to invoke HTML export |
| 248 | * Quoting HTML tags:: Using direct HTML in Org-mode | 255 | * Quoting HTML tags:: Using direct HTML in Org-mode |
| 249 | * Links:: How hyperlinks get transferred to HTML | 256 | * Links:: How hyperlinks get transferred to HTML |
| 250 | * Images:: To inline or not to inline? | 257 | * Images:: To inline or not to inline? |
| @@ -253,6 +260,8 @@ HTML export | |||
| 253 | Text interpretation by the exporter | 260 | Text interpretation by the exporter |
| 254 | 261 | ||
| 255 | * Comment lines:: Some lines will not be exported | 262 | * Comment lines:: Some lines will not be exported |
| 263 | * Initial text:: Text before the first headline | ||
| 264 | * Footnotes:: Numbers like [1] | ||
| 256 | * Enhancing text:: Subscripts, symbols and more | 265 | * Enhancing text:: Subscripts, symbols and more |
| 257 | * Export options:: How to influence the export settings | 266 | * Export options:: How to influence the export settings |
| 258 | 267 | ||
| @@ -371,7 +380,7 @@ example as: | |||
| 371 | Org-mode's automatic, context sensitive table editor with spreadsheet | 380 | Org-mode's automatic, context sensitive table editor with spreadsheet |
| 372 | capabilities can be integrated into any major mode by activating the | 381 | capabilities can be integrated into any major mode by activating the |
| 373 | minor Orgtbl-mode. Using a translation step, it can be used to maintain | 382 | minor Orgtbl-mode. Using a translation step, it can be used to maintain |
| 374 | tables in arbitray file types, for example in LaTeX. | 383 | tables in arbitrary file types, for example in LaTeX. |
| 375 | 384 | ||
| 376 | @cindex FAQ | 385 | @cindex FAQ |
| 377 | There is a website for Org-mode which provides links to the newest | 386 | There is a website for Org-mode which provides links to the newest |
| @@ -578,8 +587,9 @@ key. | |||
| 578 | @cindex outline tree | 587 | @cindex outline tree |
| 579 | 588 | ||
| 580 | Headlines define the structure of an outline tree. The headlines in | 589 | Headlines define the structure of an outline tree. The headlines in |
| 581 | Org-mode start with one or more stars, on the left margin. For | 590 | Org-mode start with one or more stars, on the left margin@footnote{See |
| 582 | example: | 591 | the variable @code{org-special-ctrl-a} to configure special behavior of |
| 592 | @kbd{C-a} in headlines.}. For example: | ||
| 583 | 593 | ||
| 584 | @example | 594 | @example |
| 585 | * Top level headline | 595 | * Top level headline |
| @@ -588,6 +598,7 @@ example: | |||
| 588 | some text | 598 | some text |
| 589 | *** 3rd level | 599 | *** 3rd level |
| 590 | more text | 600 | more text |
| 601 | |||
| 591 | * Another top level headline | 602 | * Another top level headline |
| 592 | @end example | 603 | @end example |
| 593 | 604 | ||
| @@ -595,6 +606,12 @@ example: | |||
| 595 | outline that has whitespace followed by a single star as headline | 606 | outline that has whitespace followed by a single star as headline |
| 596 | starters. @ref{Clean view} describes a setup to realize this. | 607 | starters. @ref{Clean view} describes a setup to realize this. |
| 597 | 608 | ||
| 609 | An empty line after the end of a subtree is considered part of it and | ||
| 610 | will be hidden when the subtree is folded. However, if you leave at | ||
| 611 | least two empty lines, one empty line will remain visible after folding | ||
| 612 | the subtree, in order to structure the collapsed view. See the | ||
| 613 | variable @code{org-cycle-separator-lines} for modifying this behavior. | ||
| 614 | |||
| 598 | @node Visibility cycling, Motion, Headlines, Document structure | 615 | @node Visibility cycling, Motion, Headlines, Document structure |
| 599 | @section Visibility cycling | 616 | @section Visibility cycling |
| 600 | @cindex cycling, visibility | 617 | @cindex cycling, visibility |
| @@ -615,7 +632,7 @@ Org-mode uses just two commands, bound to @key{TAB} and | |||
| 615 | @table @kbd | 632 | @table @kbd |
| 616 | @kindex @key{TAB} | 633 | @kindex @key{TAB} |
| 617 | @item @key{TAB} | 634 | @item @key{TAB} |
| 618 | @emph{Subtree cycling}: Rotate current subtree between the states | 635 | @emph{Subtree cycling}: Rotate current subtree among the states |
| 619 | 636 | ||
| 620 | @example | 637 | @example |
| 621 | ,-> FOLDED -> CHILDREN -> SUBTREE --. | 638 | ,-> FOLDED -> CHILDREN -> SUBTREE --. |
| @@ -637,7 +654,7 @@ argument (@kbd{C-u @key{TAB}}), global cycling is invoked. | |||
| 637 | @kindex S-@key{TAB} | 654 | @kindex S-@key{TAB} |
| 638 | @item S-@key{TAB} | 655 | @item S-@key{TAB} |
| 639 | @itemx C-u @key{TAB} | 656 | @itemx C-u @key{TAB} |
| 640 | @emph{Global cycling}: Rotate the entire buffer between the states | 657 | @emph{Global cycling}: Rotate the entire buffer among the states |
| 641 | 658 | ||
| 642 | @example | 659 | @example |
| 643 | ,-> OVERVIEW -> CONTENTS -> SHOW ALL --. | 660 | ,-> OVERVIEW -> CONTENTS -> SHOW ALL --. |
| @@ -662,13 +679,19 @@ level, all sibling headings. | |||
| 662 | @kindex C-c C-x b | 679 | @kindex C-c C-x b |
| 663 | @item C-c C-x b | 680 | @item C-c C-x b |
| 664 | Show the current subtree in an indirect buffer@footnote{The indirect | 681 | Show the current subtree in an indirect buffer@footnote{The indirect |
| 665 | buffer (@pxref{Indirect Buffers,Indirect Buffers,Indirect | 682 | buffer |
| 666 | Buffers,emacs,GNU Emacs Manual}) will contain the entire buffer, but | 683 | @ifinfo |
| 667 | will be narrowed to the current tree. Editing the indirect buffer will | 684 | (@pxref{Indirect Buffers,,,emacs,GNU Emacs Manual}) |
| 668 | also change the original buffer, but without affecting visibility in | 685 | @end ifinfo |
| 669 | that buffer.}. With numerical prefix ARG, go up to this level and then | 686 | @ifnotinfo |
| 670 | take that tree. If ARG is negative, go up that many levels. With | 687 | (see the Emacs manual for more information about indirect buffers) |
| 671 | @kbd{C-u} prefix, do not remove the previously used indirect buffer. | 688 | @end ifnotinfo |
| 689 | will contain the entire buffer, but will be narrowed to the current | ||
| 690 | tree. Editing the indirect buffer will also change the original buffer, | ||
| 691 | but without affecting visibility in that buffer.}. With numerical | ||
| 692 | prefix ARG, go up to this level and then take that tree. If ARG is | ||
| 693 | negative, go up that many levels. With @kbd{C-u} prefix, do not remove | ||
| 694 | the previously used indirect buffer. | ||
| 672 | @end table | 695 | @end table |
| 673 | 696 | ||
| 674 | When Emacs first visits an Org-mode file, the global state is set to | 697 | When Emacs first visits an Org-mode file, the global state is set to |
| @@ -710,10 +733,16 @@ Backward to higher level heading. | |||
| 710 | @item C-c C-j | 733 | @item C-c C-j |
| 711 | Jump to a different place without changing the current outline | 734 | Jump to a different place without changing the current outline |
| 712 | visibility. Shows the document structure in a temporary buffer, where | 735 | visibility. Shows the document structure in a temporary buffer, where |
| 713 | you can use visibility cycling (@key{TAB}) to find your destination. | 736 | you can use the following keys to find your destination: |
| 714 | After pressing @key{RET}, the cursor moves to the selected location in | 737 | @example |
| 715 | the original buffer, and the headings hierarchy above it is made | 738 | @key{TAB} @r{Cycle visibility.} |
| 716 | visible. | 739 | @key{down} / @key{up} @r{Next/previous visible headline.} |
| 740 | n / p @r{Next/previous visible headline.} | ||
| 741 | f / b @r{Next/previous headline same level.} | ||
| 742 | u @r{One level up.} | ||
| 743 | 0-9 @r{Digit argument.} | ||
| 744 | @key{RET} @r{Select this location.} | ||
| 745 | @end example | ||
| 717 | @end table | 746 | @end table |
| 718 | 747 | ||
| 719 | @node Structure editing, Archiving, Motion, Document structure | 748 | @node Structure editing, Archiving, Motion, Document structure |
| @@ -980,14 +1009,17 @@ bullet, lines must be indented or they will be seen as top-level | |||
| 980 | headlines. Also, when you are hiding leading stars to get a clean | 1009 | headlines. Also, when you are hiding leading stars to get a clean |
| 981 | outline view, plain list items starting with a star are visually | 1010 | outline view, plain list items starting with a star are visually |
| 982 | indistinguishable from true headlines. In short: even though @samp{*} | 1011 | indistinguishable from true headlines. In short: even though @samp{*} |
| 983 | is supported, it may be better not to use it for plain list items} as | 1012 | is supported, it may be better not to use it for plain list items.} as |
| 984 | bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items | 1013 | bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items |
| 985 | belonging to the same list must have the same indentation on the first | 1014 | belonging to the same list must have the same indentation on the first |
| 986 | line. In particular, if an ordered list reaches number @samp{10.}, then | 1015 | line. In particular, if an ordered list reaches number @samp{10.}, then |
| 987 | the 2--digit numbers must be written left-aligned with the other numbers | 1016 | the 2--digit numbers must be written left-aligned with the other numbers |
| 988 | in the list. Indentation also determines the end of a list item. It | 1017 | in the list. Indentation also determines the end of a list item. It |
| 989 | ends before the next line that is indented like the bullet/number, or | 1018 | ends before the next line that is indented like the bullet/number, or |
| 990 | less. For example: | 1019 | less. Empty lines are part of the previous item, so you can have |
| 1020 | several paragraphs in one item. If you would like an emtpy line to | ||
| 1021 | terminate all currently open plain lists, configure the variable | ||
| 1022 | @code{org-empty-line-terminates-plain-lists}. Here is an for example: | ||
| 991 | 1023 | ||
| 992 | @example | 1024 | @example |
| 993 | @group | 1025 | @group |
| @@ -1078,6 +1110,7 @@ Emacs @file{calc} package. | |||
| 1078 | @menu | 1110 | @menu |
| 1079 | * Built-in table editor:: Simple tables | 1111 | * Built-in table editor:: Simple tables |
| 1080 | * Narrow columns:: Stop wasting space in tables | 1112 | * Narrow columns:: Stop wasting space in tables |
| 1113 | * Column groups:: Grouping to trigger vertical lines | ||
| 1081 | * orgtbl-mode:: The table editor as minor mode | 1114 | * orgtbl-mode:: The table editor as minor mode |
| 1082 | * The spreadsheet:: The table editor has spreadsheet capabilities. | 1115 | * The spreadsheet:: The table editor has spreadsheet capabilities. |
| 1083 | @end menu | 1116 | @end menu |
| @@ -1141,16 +1174,16 @@ table. But it's easier just to start typing, like | |||
| 1141 | @kindex C-c C-c | 1174 | @kindex C-c C-c |
| 1142 | @item C-c C-c | 1175 | @item C-c C-c |
| 1143 | Re-align the table without moving the cursor. | 1176 | Re-align the table without moving the cursor. |
| 1144 | 1177 | @c | |
| 1145 | @kindex @key{TAB} | 1178 | @kindex @key{TAB} |
| 1146 | @item @key{TAB} | 1179 | @item @key{TAB} |
| 1147 | Re-align the table, move to the next field. Creates a new row if | 1180 | Re-align the table, move to the next field. Creates a new row if |
| 1148 | necessary. | 1181 | necessary. |
| 1149 | 1182 | @c | |
| 1150 | @kindex S-@key{TAB} | 1183 | @kindex S-@key{TAB} |
| 1151 | @item S-@key{TAB} | 1184 | @item S-@key{TAB} |
| 1152 | Re-align, move to previous field. | 1185 | Re-align, move to previous field. |
| 1153 | 1186 | @c | |
| 1154 | @kindex @key{RET} | 1187 | @kindex @key{RET} |
| 1155 | @item @key{RET} | 1188 | @item @key{RET} |
| 1156 | Re-align the table and move down to next row. Creates a new row if | 1189 | Re-align the table and move down to next row. Creates a new row if |
| @@ -1163,34 +1196,34 @@ NEWLINE, so it can be used to split a table. | |||
| 1163 | @item M-@key{left} | 1196 | @item M-@key{left} |
| 1164 | @itemx M-@key{right} | 1197 | @itemx M-@key{right} |
| 1165 | Move the current column left/right. | 1198 | Move the current column left/right. |
| 1166 | 1199 | @c | |
| 1167 | @kindex M-S-@key{left} | 1200 | @kindex M-S-@key{left} |
| 1168 | @item M-S-@key{left} | 1201 | @item M-S-@key{left} |
| 1169 | Kill the current column. | 1202 | Kill the current column. |
| 1170 | 1203 | @c | |
| 1171 | @kindex M-S-@key{right} | 1204 | @kindex M-S-@key{right} |
| 1172 | @item M-S-@key{right} | 1205 | @item M-S-@key{right} |
| 1173 | Insert a new column to the left of the cursor position. | 1206 | Insert a new column to the left of the cursor position. |
| 1174 | 1207 | @c | |
| 1175 | @kindex M-@key{up} | 1208 | @kindex M-@key{up} |
| 1176 | @kindex M-@key{down} | 1209 | @kindex M-@key{down} |
| 1177 | @item M-@key{up} | 1210 | @item M-@key{up} |
| 1178 | @itemx M-@key{down} | 1211 | @itemx M-@key{down} |
| 1179 | Move the current row up/down. | 1212 | Move the current row up/down. |
| 1180 | 1213 | @c | |
| 1181 | @kindex M-S-@key{up} | 1214 | @kindex M-S-@key{up} |
| 1182 | @item M-S-@key{up} | 1215 | @item M-S-@key{up} |
| 1183 | Kill the current row or horizontal line. | 1216 | Kill the current row or horizontal line. |
| 1184 | 1217 | @c | |
| 1185 | @kindex M-S-@key{down} | 1218 | @kindex M-S-@key{down} |
| 1186 | @item M-S-@key{down} | 1219 | @item M-S-@key{down} |
| 1187 | Insert a new row above (with arg: below) the current row. | 1220 | Insert a new row above (with arg: below) the current row. |
| 1188 | 1221 | @c | |
| 1189 | @kindex C-c - | 1222 | @kindex C-c - |
| 1190 | @item C-c - | 1223 | @item C-c - |
| 1191 | Insert a horizontal line below current row. With prefix arg, the line | 1224 | Insert a horizontal line below current row. With prefix arg, the line |
| 1192 | is created above the current line. | 1225 | is created above the current line. |
| 1193 | 1226 | @c | |
| 1194 | @kindex C-c ^ | 1227 | @kindex C-c ^ |
| 1195 | @item C-c ^ | 1228 | @item C-c ^ |
| 1196 | Sort the table lines in the region. The position of point indicates the | 1229 | Sort the table lines in the region. The position of point indicates the |
| @@ -1209,10 +1242,12 @@ argument, alphabetic sorting will be case-sensitive. | |||
| 1209 | Copy a rectangular region from a table to a special clipboard. Point | 1242 | Copy a rectangular region from a table to a special clipboard. Point |
| 1210 | and mark determine edge fields of the rectangle. The process ignores | 1243 | and mark determine edge fields of the rectangle. The process ignores |
| 1211 | horizontal separator lines. | 1244 | horizontal separator lines. |
| 1245 | @c | ||
| 1212 | @kindex C-c C-x C-w | 1246 | @kindex C-c C-x C-w |
| 1213 | @item C-c C-x C-w | 1247 | @item C-c C-x C-w |
| 1214 | Copy a rectangular region from a table to a special clipboard, and | 1248 | Copy a rectangular region from a table to a special clipboard, and |
| 1215 | blank all fields in the rectangle. So this is the ``cut'' operation. | 1249 | blank all fields in the rectangle. So this is the ``cut'' operation. |
| 1250 | @c | ||
| 1216 | @kindex C-c C-x C-y | 1251 | @kindex C-c C-x C-y |
| 1217 | @item C-c C-x C-y | 1252 | @item C-c C-x C-y |
| 1218 | Paste a rectangular region into a table. | 1253 | Paste a rectangular region into a table. |
| @@ -1220,6 +1255,7 @@ The upper right corner ends up in the current field. All involved fields | |||
| 1220 | will be overwritten. If the rectangle does not fit into the present table, | 1255 | will be overwritten. If the rectangle does not fit into the present table, |
| 1221 | the table is enlarged as needed. The process ignores horizontal separator | 1256 | the table is enlarged as needed. The process ignores horizontal separator |
| 1222 | lines. | 1257 | lines. |
| 1258 | @c | ||
| 1223 | @kindex C-c C-q | 1259 | @kindex C-c C-q |
| 1224 | @item C-c C-q | 1260 | @item C-c C-q |
| 1225 | Wrap several fields in a column like a paragraph. If there is an active | 1261 | Wrap several fields in a column like a paragraph. If there is an active |
| @@ -1235,7 +1271,6 @@ above. | |||
| 1235 | @tsubheading{Calculations} | 1271 | @tsubheading{Calculations} |
| 1236 | @cindex formula, in tables | 1272 | @cindex formula, in tables |
| 1237 | @cindex calculations, in tables | 1273 | @cindex calculations, in tables |
| 1238 | |||
| 1239 | @cindex region, active | 1274 | @cindex region, active |
| 1240 | @cindex active region | 1275 | @cindex active region |
| 1241 | @cindex transient-mark-mode | 1276 | @cindex transient-mark-mode |
| @@ -1244,7 +1279,7 @@ above. | |||
| 1244 | Sum the numbers in the current column, or in the rectangle defined by | 1279 | Sum the numbers in the current column, or in the rectangle defined by |
| 1245 | the active region. The result is shown in the echo area and can | 1280 | the active region. The result is shown in the echo area and can |
| 1246 | be inserted with @kbd{C-y}. | 1281 | be inserted with @kbd{C-y}. |
| 1247 | 1282 | @c | |
| 1248 | @kindex S-@key{RET} | 1283 | @kindex S-@key{RET} |
| 1249 | @item S-@key{RET} | 1284 | @item S-@key{RET} |
| 1250 | When current field is empty, copy from first non-empty field above. | 1285 | When current field is empty, copy from first non-empty field above. |
| @@ -1261,12 +1296,12 @@ Edit the current field in a separate window. This is useful for fields | |||
| 1261 | that are not fully visible (@pxref{Narrow columns}). When called with a | 1296 | that are not fully visible (@pxref{Narrow columns}). When called with a |
| 1262 | @kbd{C-u} prefix, just make the full field visible, so that it can be | 1297 | @kbd{C-u} prefix, just make the full field visible, so that it can be |
| 1263 | edited in place. | 1298 | edited in place. |
| 1264 | 1299 | @c | |
| 1265 | @kindex C-c @key{TAB} | 1300 | @kindex C-c @key{TAB} |
| 1266 | @item C-c @key{TAB} | 1301 | @item C-c @key{TAB} |
| 1267 | This is an alias for @kbd{C-u C-c `} to make the current field fully | 1302 | This is an alias for @kbd{C-u C-c `} to make the current field fully |
| 1268 | visible. | 1303 | visible. |
| 1269 | 1304 | @c | |
| 1270 | @item M-x org-table-import | 1305 | @item M-x org-table-import |
| 1271 | Import a file as a table. The table should be TAB- or whitespace | 1306 | Import a file as a table. The table should be TAB- or whitespace |
| 1272 | separated. Useful, for example, to import an Excel table or data from a | 1307 | separated. Useful, for example, to import an Excel table or data from a |
| @@ -1274,11 +1309,14 @@ database, because these programs generally can write TAB-separated text | |||
| 1274 | files. This command works by inserting the file into the buffer and | 1309 | files. This command works by inserting the file into the buffer and |
| 1275 | then converting the region to a table. Any prefix argument is passed on | 1310 | then converting the region to a table. Any prefix argument is passed on |
| 1276 | to the converter, which uses it to determine the separator. | 1311 | to the converter, which uses it to determine the separator. |
| 1277 | 1312 | @item C-c | | |
| 1313 | Tables can also be imported by pasting tabular text into the org-mode | ||
| 1314 | buffer, selecting the pasted text with @kbd{C-x C-x} and then using the | ||
| 1315 | @kbd{C-c |} command (see above under @i{Creation and conversion}. | ||
| 1316 | @c | ||
| 1278 | @item M-x org-table-export | 1317 | @item M-x org-table-export |
| 1279 | Export the table as a TAB-separated file. Useful for data exchange with, | 1318 | Export the table as a TAB-separated file. Useful for data exchange with, |
| 1280 | for example, Excel or database programs. | 1319 | for example, Excel or database programs. |
| 1281 | |||
| 1282 | @end table | 1320 | @end table |
| 1283 | 1321 | ||
| 1284 | If you don't like the automatic table editor because it gets in your | 1322 | If you don't like the automatic table editor because it gets in your |
| @@ -1292,7 +1330,7 @@ it off with | |||
| 1292 | @noindent Then the only table command that still works is | 1330 | @noindent Then the only table command that still works is |
| 1293 | @kbd{C-c C-c} to do a manual re-align. | 1331 | @kbd{C-c C-c} to do a manual re-align. |
| 1294 | 1332 | ||
| 1295 | @node Narrow columns, orgtbl-mode, Built-in table editor, Tables | 1333 | @node Narrow columns, Column groups, Built-in table editor, Tables |
| 1296 | @section Narrow columns | 1334 | @section Narrow columns |
| 1297 | @cindex narrow columns in tables | 1335 | @cindex narrow columns in tables |
| 1298 | 1336 | ||
| @@ -1320,7 +1358,7 @@ value. | |||
| 1320 | @noindent | 1358 | @noindent |
| 1321 | Fields that are wider become clipped and end in the string @samp{=>}. | 1359 | Fields that are wider become clipped and end in the string @samp{=>}. |
| 1322 | Note that the full text is still in the buffer, it is only invisible. | 1360 | Note that the full text is still in the buffer, it is only invisible. |
| 1323 | To see the full text, hold the mouse over the field - a tooltip window | 1361 | To see the full text, hold the mouse over the field - a tool-tip window |
| 1324 | will show the full content. To edit such a field, use the command | 1362 | will show the full content. To edit such a field, use the command |
| 1325 | @kbd{C-c `} (that is @kbd{C-c} followed by the backquote). This will | 1363 | @kbd{C-c `} (that is @kbd{C-c} followed by the backquote). This will |
| 1326 | open a new window with the full field. Edit it and finish with @kbd{C-c | 1364 | open a new window with the full field. Edit it and finish with @kbd{C-c |
| @@ -1338,7 +1376,42 @@ on a per-file basis with: | |||
| 1338 | #+STARTUP: noalign | 1376 | #+STARTUP: noalign |
| 1339 | @end example | 1377 | @end example |
| 1340 | 1378 | ||
| 1341 | @node orgtbl-mode, The spreadsheet, Narrow columns, Tables | 1379 | @node Column groups, orgtbl-mode, Narrow columns, Tables |
| 1380 | @section Column groups | ||
| 1381 | @cindex grouping columns in tables | ||
| 1382 | |||
| 1383 | When Org-mode exports tables, it does so by default without vertical | ||
| 1384 | lines because that is visually more satisfying in general. Occasionally | ||
| 1385 | however, vertical lines can be useful to structure a table into groups | ||
| 1386 | of columns, much like horizontal lines can do for groups of rows. In | ||
| 1387 | order to specify column groups, you can use a special row where the | ||
| 1388 | first field contains only @samp{/}. The further fields can either | ||
| 1389 | contain @samp{<} to indicate that this column should start a group, | ||
| 1390 | @samp{>} to indicate the end of a column, or @samp{<>} to make a column | ||
| 1391 | a group of its own. Boundaries between colum groups will upon export be | ||
| 1392 | marked with vertical lines. Here is an example: | ||
| 1393 | |||
| 1394 | @example | ||
| 1395 | | | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) | | ||
| 1396 | |---+----+-----+-----+-----+---------+------------| | ||
| 1397 | | / | <> | < | | > | < | > | | ||
| 1398 | | # | 1 | 1 | 1 | 1 | 1 | 1 | | ||
| 1399 | | # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 | | ||
| 1400 | | # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 | | ||
| 1401 | |---+----+-----+-----+-----+---------+------------| | ||
| 1402 | #+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2)) | ||
| 1403 | @end example | ||
| 1404 | |||
| 1405 | It is also sufficient to just insert the colum group starters after | ||
| 1406 | every vertical line you'd like to have: | ||
| 1407 | |||
| 1408 | @example | ||
| 1409 | | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) | | ||
| 1410 | |----+-----+-----+-----+---------+------------| | ||
| 1411 | | / | < | | | < | | | ||
| 1412 | @end example | ||
| 1413 | |||
| 1414 | @node orgtbl-mode, The spreadsheet, Column groups, Tables | ||
| 1342 | @section The Orgtbl minor mode | 1415 | @section The Orgtbl minor mode |
| 1343 | @cindex orgtbl-mode | 1416 | @cindex orgtbl-mode |
| 1344 | @cindex minor mode for tables | 1417 | @cindex minor mode for tables |
| @@ -1356,7 +1429,7 @@ example in mail mode, use | |||
| 1356 | Furthermore, with some special setup, it is possible to maintain tables | 1429 | Furthermore, with some special setup, it is possible to maintain tables |
| 1357 | in arbitrary syntax with Orgtbl-mode. For example, it is possible to | 1430 | in arbitrary syntax with Orgtbl-mode. For example, it is possible to |
| 1358 | construct LaTeX tables with the underlying ease and power of | 1431 | construct LaTeX tables with the underlying ease and power of |
| 1359 | Orgtbl-mode, including spreadsheet capabulities. For details, see | 1432 | Orgtbl-mode, including spreadsheet capabilities. For details, see |
| 1360 | @ref{Tables in arbitrary syntax}. | 1433 | @ref{Tables in arbitrary syntax}. |
| 1361 | 1434 | ||
| 1362 | @node The spreadsheet, , orgtbl-mode, Tables | 1435 | @node The spreadsheet, , orgtbl-mode, Tables |
| @@ -1367,7 +1440,12 @@ Orgtbl-mode, including spreadsheet capabulities. For details, see | |||
| 1367 | 1440 | ||
| 1368 | The table editor makes use of the Emacs @file{calc} package to implement | 1441 | The table editor makes use of the Emacs @file{calc} package to implement |
| 1369 | spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to | 1442 | spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to |
| 1370 | derive fields from other fields. | 1443 | derive fields from other fields. While fully featured, Org-mode's |
| 1444 | implementation is not identical to other spreadsheets. For example, | ||
| 1445 | Org-mode knows the concept of a @emph{column formula} that will be | ||
| 1446 | applied to all non-header fields in a column without having to copy the | ||
| 1447 | formula to each relevant field. | ||
| 1448 | |||
| 1371 | @menu | 1449 | @menu |
| 1372 | * References:: How to refer to another field or range | 1450 | * References:: How to refer to another field or range |
| 1373 | * Formula syntax for Calc:: Using Calc to compute stuff | 1451 | * Formula syntax for Calc:: Using Calc to compute stuff |
| @@ -1387,17 +1465,26 @@ To compute fields in the table from other fields, formulas must | |||
| 1387 | reference other fields or ranges. In Org-mode, fields can be referenced | 1465 | reference other fields or ranges. In Org-mode, fields can be referenced |
| 1388 | by name, by absolute coordinates, and by relative coordinates. To find | 1466 | by name, by absolute coordinates, and by relative coordinates. To find |
| 1389 | out what the coordinates of a field are, press @kbd{C-c ?} in that | 1467 | out what the coordinates of a field are, press @kbd{C-c ?} in that |
| 1390 | field. | 1468 | field, or press @kbd{C-c @}} to toggle the display of a grid. |
| 1391 | 1469 | ||
| 1392 | @subsubheading Field references | 1470 | @subsubheading Field references |
| 1393 | @cindex field references | 1471 | @cindex field references |
| 1394 | @cindex references, to fields | 1472 | @cindex references, to fields |
| 1395 | 1473 | ||
| 1396 | Formulas can reference the value of another field with the operator | 1474 | Formulas can reference the value of another field in two ways. Like in |
| 1475 | any other spreadsheet, you may reference fields with a letter/number | ||
| 1476 | combination like @code{B3}, meaning the 2nd field in the 3rd row. | ||
| 1477 | @c Such references are always fixed to that field, they don't change | ||
| 1478 | @c when you copy and paste a formula to a different field. So | ||
| 1479 | @c Org-mode's @code{B3} behaves like @code{$B$3} in other spreadsheets. | ||
| 1480 | |||
| 1481 | @noindent | ||
| 1482 | Org-mode also uses another, more general operator that looks like this: | ||
| 1397 | @example | 1483 | @example |
| 1398 | @@row$column | 1484 | @@row$column |
| 1399 | @end example | 1485 | @end example |
| 1400 | 1486 | ||
| 1487 | @noindent | ||
| 1401 | Column references can be absolute like @samp{1}, @samp{2},...@samp{N}, | 1488 | Column references can be absolute like @samp{1}, @samp{2},...@samp{N}, |
| 1402 | or relative to the current column like @samp{+1} or @samp{-2}. | 1489 | or relative to the current column like @samp{+1} or @samp{-2}. |
| 1403 | 1490 | ||
| @@ -1417,18 +1504,20 @@ directly at the hline is used. | |||
| 1417 | either the column or the row part of the reference, the current | 1504 | either the column or the row part of the reference, the current |
| 1418 | row/column is implied. | 1505 | row/column is implied. |
| 1419 | 1506 | ||
| 1420 | Org-mode's references with @emph{positive} numbers correspond to fixed | 1507 | Org-mode's references with @emph{unsigned} numbers are fixed references |
| 1421 | references in other spreadsheet programs. For example, @code{@@3$28} | 1508 | in the sense that if you use the same reference in the formula for two |
| 1422 | corresponds to @code{$AB$3}. Org-mode's references with @emph{negative} | 1509 | different fields, the same field will be referenced each time. |
| 1423 | numbers behave similar to non-fixed references in other spreadsheet | 1510 | Org-mode's references with @emph{signed} numbers are floating |
| 1424 | programs, because when the same formula is used in several fields, | 1511 | references because the same reference operator can reference different |
| 1425 | different fields are referenced each time. | 1512 | fields depending on the field being calculated by the formula. |
| 1426 | 1513 | ||
| 1427 | Here are a few examples: | 1514 | Here are a few examples: |
| 1428 | 1515 | ||
| 1429 | @example | 1516 | @example |
| 1430 | @@2$3 @r{2nd row, 3rd column} | 1517 | @@2$3 @r{2nd row, 3rd column} |
| 1518 | C2 @r{same as previous} | ||
| 1431 | $5 @r{column 5 in the current row} | 1519 | $5 @r{column 5 in the current row} |
| 1520 | E& @r{same as previous} | ||
| 1432 | @@2 @r{current column, row 2} | 1521 | @@2 @r{current column, row 2} |
| 1433 | @@-1$-3 @r{the field one row up, three columns to the left} | 1522 | @@-1$-3 @r{the field one row up, three columns to the left} |
| 1434 | @@-I$2 @r{field just under hline above current row, column 2} | 1523 | @@-I$2 @r{field just under hline above current row, column 2} |
| @@ -1449,6 +1538,7 @@ format at least for the first field (i.e the reference must start with | |||
| 1449 | $1..$3 @r{First three fields in the current row.} | 1538 | $1..$3 @r{First three fields in the current row.} |
| 1450 | $P..$Q @r{Range, using column names (see under Advanced)} | 1539 | $P..$Q @r{Range, using column names (see under Advanced)} |
| 1451 | @@2$1..@@4$3 @r{6 fields between these two fields.} | 1540 | @@2$1..@@4$3 @r{6 fields between these two fields.} |
| 1541 | A2..C4 @r{Same as above.} | ||
| 1452 | @@-1$-2..@@-1 @r{3 numbers from the column to the left, 2 up to current row} | 1542 | @@-1$-2..@@-1 @r{3 numbers from the column to the left, 2 up to current row} |
| 1453 | @end example | 1543 | @end example |
| 1454 | 1544 | ||
| @@ -1466,12 +1556,18 @@ see the @samp{E} mode switch below). If there are no non-empty fields, | |||
| 1466 | 1556 | ||
| 1467 | @samp{$name} is interpreted as the name of a column, parameter or | 1557 | @samp{$name} is interpreted as the name of a column, parameter or |
| 1468 | constant. Constants are defined globally through the variable | 1558 | constant. Constants are defined globally through the variable |
| 1469 | @code{org-table-formula-constants}. If you have the | 1559 | @code{org-table-formula-constants}. If you have the @file{constants.el} |
| 1470 | @file{constants.el} package, it will also be used to resolve | 1560 | package, it will also be used to resolve constants, including natural |
| 1471 | constants, including natural constants like @samp{$h} for Planck's | 1561 | constants like @samp{$h} for Planck's constant, and units like |
| 1472 | constant, and units like @samp{$km} for kilometers. Column names and | 1562 | @samp{$km} for kilometers@footnote{@file{Constant.el} can supply the |
| 1473 | parameters can be specified in special table lines. These are | 1563 | values of constants in two different unit systems, @code{SI} and |
| 1474 | described below, see @ref{Advanced features}. | 1564 | @code{cgs}. Which one is used depends on the value of the variable |
| 1565 | @code{constants-unit-system}. You can use the @code{#+STARTUP} options | ||
| 1566 | @code{constSI} and @code{constcgs} to set this value for the current | ||
| 1567 | buffer.}. Column names and parameters can be specified in special table | ||
| 1568 | lines. These are described below, see @ref{Advanced features}. All | ||
| 1569 | names must start with a letter, and further consist of letters and | ||
| 1570 | numbers. | ||
| 1475 | 1571 | ||
| 1476 | @node Formula syntax for Calc, Formula syntax for Lisp, References, The spreadsheet | 1572 | @node Formula syntax for Calc, Formula syntax for Lisp, References, The spreadsheet |
| 1477 | @subsection Formula syntax for Calc | 1573 | @subsection Formula syntax for Calc |
| @@ -1485,6 +1581,7 @@ non-standard convention that @samp{/} has lower precedence than | |||
| 1485 | evaluation by @code{calc-eval} (@pxref{Calling Calc from | 1581 | evaluation by @code{calc-eval} (@pxref{Calling Calc from |
| 1486 | Your Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU | 1582 | Your Programs,calc-eval,Calling calc from Your Lisp Programs,calc,GNU |
| 1487 | Emacs Calc Manual}), | 1583 | Emacs Calc Manual}), |
| 1584 | @c FIXME: The link to the calc manual in HTML does not work. | ||
| 1488 | variable substitution takes place according to the rules described above. | 1585 | variable substitution takes place according to the rules described above. |
| 1489 | @cindex vectors, in table calculations | 1586 | @cindex vectors, in table calculations |
| 1490 | The range vectors can be directly fed into the calc vector functions | 1587 | The range vectors can be directly fed into the calc vector functions |
| @@ -1518,7 +1615,7 @@ reformat the final result. A few examples: | |||
| 1518 | $1+$2 @r{Sum of first and second field} | 1615 | $1+$2 @r{Sum of first and second field} |
| 1519 | $1+$2;%.2f @r{Same, format result to two decimals} | 1616 | $1+$2;%.2f @r{Same, format result to two decimals} |
| 1520 | exp($2)+exp($1) @r{Math functions can be used} | 1617 | exp($2)+exp($1) @r{Math functions can be used} |
| 1521 | $;%.1f @r{Reformat current cell to 1 decimal} | 1618 | $0;%.1f @r{Reformat current cell to 1 decimal} |
| 1522 | ($3-32)*5/9 @r{Degrees F -> C conversion} | 1619 | ($3-32)*5/9 @r{Degrees F -> C conversion} |
| 1523 | $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} | 1620 | $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} |
| 1524 | tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} | 1621 | tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} |
| @@ -1528,21 +1625,28 @@ vmean($2..$7);EN @r{Same, but treat empty fields as 0} | |||
| 1528 | taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} | 1625 | taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} |
| 1529 | @end example | 1626 | @end example |
| 1530 | 1627 | ||
| 1628 | Calc also contains a complete set of logical operations. For example | ||
| 1629 | |||
| 1630 | @example | ||
| 1631 | if($1<20,teen,string("")) @r{``teen'' if age $1 less than 20, else empty} | ||
| 1632 | @end example | ||
| 1633 | |||
| 1531 | @node Formula syntax for Lisp, Field formulas, Formula syntax for Calc, The spreadsheet | 1634 | @node Formula syntax for Lisp, Field formulas, Formula syntax for Calc, The spreadsheet |
| 1532 | @subsection Emacs Lisp forms as formulas | 1635 | @subsection Emacs Lisp forms as formulas |
| 1533 | @cindex Lisp forms, as table formulas | 1636 | @cindex Lisp forms, as table formulas |
| 1534 | 1637 | ||
| 1535 | It is also possible to write a formula in Emacs Lisp; this can be useful | 1638 | It is also possible to write a formula in Emacs Lisp; this can be useful |
| 1536 | for string manipulation and control structures. If a formula starts | 1639 | for string manipulation and control structures, if the Calc's |
| 1537 | with a single quote followed by an opening parenthesis, then it is | 1640 | functionality is not enough. If a formula starts with a single quote |
| 1538 | evaluated as a lisp form. The evaluation should return either a string | 1641 | followed by an opening parenthesis, then it is evaluated as a lisp form. |
| 1539 | or a number. Just as with @file{calc} formulas, you can specify modes | 1642 | The evaluation should return either a string or a number. Just as with |
| 1540 | and a printf format after a semicolon. A reference will be replaced | 1643 | @file{calc} formulas, you can specify modes and a printf format after a |
| 1541 | with a string (in double quotes) containing the field. If you provide | 1644 | semicolon. A reference will be replaced with a string (in double |
| 1542 | the @samp{N} mode switch, all referenced elements will be numbers. | 1645 | quotes) containing the field. If you provide the @samp{N} mode switch, |
| 1543 | Ranges are inserted as space-separated fields, so you can embed them in | 1646 | all referenced elements will be numbers. Ranges are inserted as |
| 1544 | list or vector syntax. A few examples, note how the @samp{N} mode is | 1647 | space-separated fields, so you can embed them in list or vector syntax. |
| 1545 | used when we do computations in lisp. | 1648 | A few examples, note how the @samp{N} mode is used when we do |
| 1649 | computations in lisp. | ||
| 1546 | 1650 | ||
| 1547 | @example | 1651 | @example |
| 1548 | @r{Swap the first two characters of the content of column 1} | 1652 | @r{Swap the first two characters of the content of column 1} |
| @@ -1567,12 +1671,11 @@ evaluated, and the current field replaced with the result. | |||
| 1567 | Formulas are stored in a special line starting with @samp{#+TBLFM:} | 1671 | Formulas are stored in a special line starting with @samp{#+TBLFM:} |
| 1568 | directly below the table. If you typed the equation in the 4th field of | 1672 | directly below the table. If you typed the equation in the 4th field of |
| 1569 | the 3rd data line in the table, the formula will look like | 1673 | the 3rd data line in the table, the formula will look like |
| 1570 | @samp{@@3$2=$1+$2}. When inserting/deleting/swapping column and rows | 1674 | @samp{@@3$4=$1+$2}. When inserting/deleting/swapping column and rows |
| 1571 | with the appropriate commands, @i{absolute references} (but not relative | 1675 | with the appropriate commands, @i{absolute references} (but not relative |
| 1572 | ones) in stored formulas are modified in order to | 1676 | ones) in stored formulas are modified in order to still reference the |
| 1573 | still reference the same field. Of cause this is not true if you edit | 1677 | same field. Of cause this is not true if you edit the table structure |
| 1574 | the table structure with normal editing commands - then you must go and | 1678 | with normal editing commands - then you must fix the equations yourself. |
| 1575 | fix equations yourself. | ||
| 1576 | 1679 | ||
| 1577 | Instead of typing an equation into the field, you may also use the | 1680 | Instead of typing an equation into the field, you may also use the |
| 1578 | following command | 1681 | following command |
| @@ -1593,7 +1696,9 @@ it to the current field and stores it. | |||
| 1593 | Often in a table, the same formula should be used for all fields in a | 1696 | Often in a table, the same formula should be used for all fields in a |
| 1594 | particular column. Instead of having to copy the formula to all fields | 1697 | particular column. Instead of having to copy the formula to all fields |
| 1595 | in that column, org-mode allows to assign a single formula to an entire | 1698 | in that column, org-mode allows to assign a single formula to an entire |
| 1596 | column. | 1699 | column. If the table contains horizontal separator hlines, everything |
| 1700 | before the first such line is considered part of the table @emph{header} | ||
| 1701 | and will not be modified by column formulas. | ||
| 1597 | 1702 | ||
| 1598 | To assign a formula to a column, type it directly into any field in the | 1703 | To assign a formula to a column, type it directly into any field in the |
| 1599 | column, preceded by an equal sign, like @samp{=$1+$2}. When you press | 1704 | column, preceded by an equal sign, like @samp{=$1+$2}. When you press |
| @@ -1626,7 +1731,11 @@ will apply it to that many consecutive fields in the current column. | |||
| 1626 | 1731 | ||
| 1627 | You can edit individual formulas in the minibuffer or directly in the | 1732 | You can edit individual formulas in the minibuffer or directly in the |
| 1628 | field. Org-mode can also prepare a special buffer with all active | 1733 | field. Org-mode can also prepare a special buffer with all active |
| 1629 | formulas of a table. | 1734 | formulas of a table. When offering a formula for editing, Org-mode |
| 1735 | converts references to the standard format (like @code{B3} or @code{D&}) | ||
| 1736 | if possible. If you prefer to only work with the internal format (like | ||
| 1737 | @code{@@3$2} or @code{$4}), configure the variable | ||
| 1738 | @code{org-table-use-standard-references}. | ||
| 1630 | 1739 | ||
| 1631 | @table @kbd | 1740 | @table @kbd |
| 1632 | @kindex C-c = | 1741 | @kindex C-c = |
| @@ -1645,21 +1754,36 @@ minibuffer is that you can use the command @kbd{C-c ?}. | |||
| 1645 | @item C-c ? | 1754 | @item C-c ? |
| 1646 | While editing a formula in a table field, highlight the field(s) | 1755 | While editing a formula in a table field, highlight the field(s) |
| 1647 | referenced by the reference at the cursor position in the formula. | 1756 | referenced by the reference at the cursor position in the formula. |
| 1757 | @kindex C-c @} | ||
| 1758 | @item C-c @} | ||
| 1759 | Toggle the display of row and column numbers for a table, using | ||
| 1760 | overlays. These are updated each time the table is aligned, you can | ||
| 1761 | force it with @kbd{C-c C-c}. | ||
| 1762 | @kindex C-c @{ | ||
| 1763 | @item C-c @{ | ||
| 1764 | Toggle the formula debugger on and off. See below. | ||
| 1648 | @kindex C-c ' | 1765 | @kindex C-c ' |
| 1649 | @item C-c ' | 1766 | @item C-c ' |
| 1650 | Edit all formulas for the current table in a special buffer, where the | 1767 | Edit all formulas for the current table in a special buffer, where the |
| 1651 | formulas will be displayed one per line. | 1768 | formulas will be displayed one per line. If the current field has an |
| 1769 | active formula, the cursor in the formula editor will mark it. | ||
| 1652 | While inside the special buffer, Org-mode will automatically highlight | 1770 | While inside the special buffer, Org-mode will automatically highlight |
| 1653 | any field or range reference at the cursor position. You may edit, | 1771 | any field or range reference at the cursor position. You may edit, |
| 1654 | remove and add formulas, and use the following commands: | 1772 | remove and add formulas, and use the following commands: |
| 1655 | @table @kbd | 1773 | @table @kbd |
| 1656 | @kindex C-c C-c | 1774 | @kindex C-c C-c |
| 1775 | @kindex C-x C-s | ||
| 1657 | @item C-c C-c | 1776 | @item C-c C-c |
| 1658 | Exit the buffer and store the modified formulas. With @kbd{C-u} prefix, | 1777 | @itemx C-x C-s |
| 1659 | also apply the new formulas to the entire table. | 1778 | Exit the formula editor and store the modified formulas. With @kbd{C-u} |
| 1779 | prefix, also apply the new formulas to the entire table. | ||
| 1660 | @kindex C-c C-q | 1780 | @kindex C-c C-q |
| 1661 | @item C-c C-q | 1781 | @item C-c C-q |
| 1662 | Exit the buffer without installing changes. | 1782 | Exit the formula editor without installing changes. |
| 1783 | @kindex C-c C-r | ||
| 1784 | @item C-c C-r | ||
| 1785 | Toggle all references in the formula editor between standard (like | ||
| 1786 | @code{B3}) and internal (like @code{@@3$2}). | ||
| 1663 | @kindex @key{TAB} | 1787 | @kindex @key{TAB} |
| 1664 | @item @key{TAB} | 1788 | @item @key{TAB} |
| 1665 | Pretty-print or indent lisp formula at point. When in a line containing | 1789 | Pretty-print or indent lisp formula at point. When in a line containing |
| @@ -1671,23 +1795,25 @@ formula, @key{TAB} re-indents just like in Emacs-lisp-mode. | |||
| 1671 | Complete Lisp symbols, just like in Emacs-lisp-mode. | 1795 | Complete Lisp symbols, just like in Emacs-lisp-mode. |
| 1672 | @kindex S-@key{up} | 1796 | @kindex S-@key{up} |
| 1673 | @kindex S-@key{down} | 1797 | @kindex S-@key{down} |
| 1674 | @item S-@key{up}/@key{down} | 1798 | @kindex S-@key{left} |
| 1675 | Move the reference line in the Org-mode buffer up and down. This is | 1799 | @kindex S-@key{right} |
| 1676 | important for highlighting the references of column formulas for | 1800 | @item S-@key{up}/@key{down}/@key{left}/@key{right} |
| 1677 | different rows. | 1801 | Shift the reference at point. For example, if the reference is |
| 1802 | @code{B3} and you press @kbd{S-@key{right}}, it will become @code{C3}. | ||
| 1803 | This also works for relative references, and for hline references. | ||
| 1804 | @kindex M-S-@key{up} | ||
| 1805 | @kindex M-S-@key{down} | ||
| 1806 | @item M-S-@key{up}/@key{down} | ||
| 1807 | Move the test line for column formulas in the Org-mode buffer up and | ||
| 1808 | down. | ||
| 1678 | @kindex M-@key{up} | 1809 | @kindex M-@key{up} |
| 1679 | @kindex M-@key{down} | 1810 | @kindex M-@key{down} |
| 1680 | @item M-@key{up}/@key{down} | 1811 | @item M-@key{up}/@key{down} |
| 1681 | Scroll the window displaying the table. | 1812 | Scroll the window displaying the table. |
| 1682 | @end table | ||
| 1683 | @kindex C-c @} | 1813 | @kindex C-c @} |
| 1684 | @item C-c @} | 1814 | @item C-c @} |
| 1685 | Toggle the display of row and column numbers for a table, using | 1815 | Turn the coordinate grid in the table on and off. |
| 1686 | overlays. These are uptated each time the table is aligned, you can | 1816 | @end table |
| 1687 | force it with @kbd{C-c C-c}. | ||
| 1688 | @kindex C-c @{ | ||
| 1689 | @item C-c @{ | ||
| 1690 | Toggle the formula debugger on and off. See below. | ||
| 1691 | @end table | 1817 | @end table |
| 1692 | 1818 | ||
| 1693 | Making a table field blank does not remove the formula associated with | 1819 | Making a table field blank does not remove the formula associated with |
| @@ -1708,8 +1834,8 @@ When the evaluation of a formula leads to an error, the field content | |||
| 1708 | becomes the string @samp{#ERROR}. If you would like see what is going | 1834 | becomes the string @samp{#ERROR}. If you would like see what is going |
| 1709 | on during variable substitution and calculation in order to find a bug, | 1835 | on during variable substitution and calculation in order to find a bug, |
| 1710 | turn on formula debugging in the @code{Tbl} menu and repeat the | 1836 | turn on formula debugging in the @code{Tbl} menu and repeat the |
| 1711 | calculation, for example by pressing @kbd{C-c = @key{RET}} in a field. | 1837 | calculation, for example by pressing @kbd{C-u C-u C-c = @key{RET}} in a |
| 1712 | Detailed information will be displayed. | 1838 | field. Detailed information will be displayed. |
| 1713 | 1839 | ||
| 1714 | @node Updating the table, Advanced features, Editing and debugging formulas, The spreadsheet | 1840 | @node Updating the table, Advanced features, Editing and debugging formulas, The spreadsheet |
| 1715 | @subsection Updating the Table | 1841 | @subsection Updating the Table |
| @@ -1728,14 +1854,14 @@ following commands: | |||
| 1728 | @item C-c * | 1854 | @item C-c * |
| 1729 | Recalculate the current row by first applying the stored column formulas | 1855 | Recalculate the current row by first applying the stored column formulas |
| 1730 | from left to right, and all field formulas in the current row. | 1856 | from left to right, and all field formulas in the current row. |
| 1731 | 1857 | @c | |
| 1732 | @kindex C-u C-c * | 1858 | @kindex C-u C-c * |
| 1733 | @item C-u C-c * | 1859 | @item C-u C-c * |
| 1734 | @kindex C-u C-c C-c | 1860 | @kindex C-u C-c C-c |
| 1735 | @itemx C-u C-c C-c | 1861 | @itemx C-u C-c C-c |
| 1736 | Recompute the entire table, line by line. Any lines before the first | 1862 | Recompute the entire table, line by line. Any lines before the first |
| 1737 | hline are left alone, assuming that these are part of the table header. | 1863 | hline are left alone, assuming that these are part of the table header. |
| 1738 | 1864 | @c | |
| 1739 | @kindex C-u C-u C-c * | 1865 | @kindex C-u C-u C-c * |
| 1740 | @item C-u C-u C-c * | 1866 | @item C-u C-u C-c * |
| 1741 | Iterate the table by recomputing it until no further changes occur. | 1867 | Iterate the table by recomputing it until no further changes occur. |
| @@ -1743,7 +1869,6 @@ This may be necessary if some computed fields use the value of other | |||
| 1743 | fields that are computed @i{later} in the calculation sequence. | 1869 | fields that are computed @i{later} in the calculation sequence. |
| 1744 | @end table | 1870 | @end table |
| 1745 | 1871 | ||
| 1746 | |||
| 1747 | @node Advanced features, , Updating the table, The spreadsheet | 1872 | @node Advanced features, , Updating the table, The spreadsheet |
| 1748 | @subsection Advanced features | 1873 | @subsection Advanced features |
| 1749 | 1874 | ||
| @@ -2058,7 +2183,7 @@ automatically created link is not working correctly or accurately | |||
| 2058 | enough, you can write custom functions to select the search string and | 2183 | enough, you can write custom functions to select the search string and |
| 2059 | to do the search for particular file types - see @ref{Custom searches}. | 2184 | to do the search for particular file types - see @ref{Custom searches}. |
| 2060 | The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation}. | 2185 | The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation}. |
| 2061 | 2186 | @c | |
| 2062 | @kindex C-c C-l | 2187 | @kindex C-c C-l |
| 2063 | @cindex link completion | 2188 | @cindex link completion |
| 2064 | @cindex completion, of links | 2189 | @cindex completion, of links |
| @@ -2068,24 +2193,26 @@ Insert a link. This prompts for a link to be inserted into the buffer. | |||
| 2068 | You can just type a link, using text for an internal link, or one of the | 2193 | You can just type a link, using text for an internal link, or one of the |
| 2069 | link type prefixes mentioned in the examples above. All links stored | 2194 | link type prefixes mentioned in the examples above. All links stored |
| 2070 | during the current session are part of the history for this prompt, so | 2195 | during the current session are part of the history for this prompt, so |
| 2071 | you can access them with @key{up} and @key{down}, or with | 2196 | you can access them with @key{up} and @key{down}. Completion, on the |
| 2072 | completion@footnote{After insertion of a stored link, the link will be | 2197 | other hand, will help you to insert valid link prefixes like |
| 2073 | removed from the list of stored links. To keep it in the list later | 2198 | @samp{http:} or @samp{ftp:}, including the prefixes defined through link |
| 2199 | abbreviations (@pxref{Link abbreviations}). The link will be inserted | ||
| 2200 | into the buffer@footnote{After insertion of a stored link, the link will | ||
| 2201 | be removed from the list of stored links. To keep it in the list later | ||
| 2074 | use, use a triple @kbd{C-u} prefix to @kbd{C-c C-l}, or configure the | 2202 | use, use a triple @kbd{C-u} prefix to @kbd{C-c C-l}, or configure the |
| 2075 | option @code{org-keep-stored-link-after-insertion}.}. The link will be | 2203 | option @code{org-keep-stored-link-after-insertion}.}, along with a |
| 2076 | inserted into the buffer, along with a descriptive text. If some text | 2204 | descriptive text. If some text was selected when this command is |
| 2077 | was selected when this command is called, the selected text becomes the | 2205 | called, the selected text becomes the default description.@* Note that |
| 2078 | default description.@* Note that you don't have to use this command to | 2206 | you don't have to use this command to insert a link. Links in Org-mode |
| 2079 | insert a link. Links in Org-mode are plain text, and you can type or | 2207 | are plain text, and you can type or paste them straight into the buffer. |
| 2080 | paste them straight into the buffer. By using this command, the links | 2208 | By using this command, the links are automatically enclosed in double |
| 2081 | are automatically enclosed in double brackets, and you will be asked for | 2209 | brackets, and you will be asked for the optional descriptive text. |
| 2082 | the optional descriptive text. | 2210 | @c |
| 2083 | |||
| 2084 | @c If the link is a @samp{file:} link and | 2211 | @c If the link is a @samp{file:} link and |
| 2085 | @c the linked file is located in the same directory as the current file or | 2212 | @c the linked file is located in the same directory as the current file or |
| 2086 | @c a subdirectory of it, the path of the file will be inserted relative to | 2213 | @c a subdirectory of it, the path of the file will be inserted relative to |
| 2087 | @c the current directory. | 2214 | @c the current directory. |
| 2088 | 2215 | @c | |
| 2089 | @kindex C-u C-c C-l | 2216 | @kindex C-u C-c C-l |
| 2090 | @cindex file name completion | 2217 | @cindex file name completion |
| 2091 | @cindex completion, of file names | 2218 | @cindex completion, of file names |
| @@ -2098,11 +2225,11 @@ directory or in a subdirectory of it, or if the path is written relative | |||
| 2098 | to the current directory using @samp{../}. Otherwise an absolute path | 2225 | to the current directory using @samp{../}. Otherwise an absolute path |
| 2099 | is used, if possible with @samp{~/} for your home directory. You can | 2226 | is used, if possible with @samp{~/} for your home directory. You can |
| 2100 | force an absolute path with two @kbd{C-u} prefixes. | 2227 | force an absolute path with two @kbd{C-u} prefixes. |
| 2101 | 2228 | @c | |
| 2102 | @item C-c C-l @r{with cursor on existing link} | 2229 | @item C-c C-l @r{(with cursor on existing link)} |
| 2103 | When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the | 2230 | When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the |
| 2104 | link and description parts of the link. | 2231 | link and description parts of the link. |
| 2105 | 2232 | @c | |
| 2106 | @cindex following links | 2233 | @cindex following links |
| 2107 | @kindex C-c C-o | 2234 | @kindex C-c C-o |
| 2108 | @item C-c C-o | 2235 | @item C-c C-o |
| @@ -2118,26 +2245,26 @@ suitable application for local non-text files. Classification of files | |||
| 2118 | is based on file extension only. See option @code{org-file-apps}. If | 2245 | is based on file extension only. See option @code{org-file-apps}. If |
| 2119 | you want to override the default application and visit the file with | 2246 | you want to override the default application and visit the file with |
| 2120 | Emacs, use a @kbd{C-u} prefix. | 2247 | Emacs, use a @kbd{C-u} prefix. |
| 2121 | 2248 | @c | |
| 2122 | @kindex mouse-2 | 2249 | @kindex mouse-2 |
| 2123 | @kindex mouse-1 | 2250 | @kindex mouse-1 |
| 2124 | @item mouse-2 | 2251 | @item mouse-2 |
| 2125 | @itemx mouse-1 | 2252 | @itemx mouse-1 |
| 2126 | On links, @kbd{mouse-2} will open the link just as @kbd{C-c C-o} | 2253 | On links, @kbd{mouse-2} will open the link just as @kbd{C-c C-o} |
| 2127 | would. Under Emacs 22, also @kbd{mouse-1} will follow a link. | 2254 | would. Under Emacs 22, also @kbd{mouse-1} will follow a link. |
| 2128 | 2255 | @c | |
| 2129 | @kindex mouse-3 | 2256 | @kindex mouse-3 |
| 2130 | @item mouse-3 | 2257 | @item mouse-3 |
| 2131 | Like @kbd{mouse-2}, but force file links to be opened with Emacs, and | 2258 | Like @kbd{mouse-2}, but force file links to be opened with Emacs, and |
| 2132 | internal links to be displayed in another window@footnote{See the | 2259 | internal links to be displayed in another window@footnote{See the |
| 2133 | variable @code{org-display-internal-link-with-indirect-buffer}}. | 2260 | variable @code{org-display-internal-link-with-indirect-buffer}}. |
| 2134 | 2261 | @c | |
| 2135 | @cindex mark ring | 2262 | @cindex mark ring |
| 2136 | @kindex C-c % | 2263 | @kindex C-c % |
| 2137 | @item C-c % | 2264 | @item C-c % |
| 2138 | Push the current position onto the mark ring, to be able to return | 2265 | Push the current position onto the mark ring, to be able to return |
| 2139 | easily. Commands following an internal link do this automatically. | 2266 | easily. Commands following an internal link do this automatically. |
| 2140 | 2267 | @c | |
| 2141 | @cindex links, returning to | 2268 | @cindex links, returning to |
| 2142 | @kindex C-c & | 2269 | @kindex C-c & |
| 2143 | @item C-c & | 2270 | @item C-c & |
| @@ -2145,7 +2272,7 @@ Jump back to a recorded position. A position is recorded by the | |||
| 2145 | commands following internal links, and by @kbd{C-c %}. Using this | 2272 | commands following internal links, and by @kbd{C-c %}. Using this |
| 2146 | command several times in direct succession moves through a ring of | 2273 | command several times in direct succession moves through a ring of |
| 2147 | previously recorded positions. | 2274 | previously recorded positions. |
| 2148 | 2275 | @c | |
| 2149 | @kindex C-c C-x C-n | 2276 | @kindex C-c C-x C-n |
| 2150 | @kindex C-c C-x C-p | 2277 | @kindex C-c C-x C-p |
| 2151 | @cindex links, finding next/previous | 2278 | @cindex links, finding next/previous |
| @@ -2341,8 +2468,8 @@ use: | |||
| 2341 | @noindent In these entries, the character specifies how to select the | 2468 | @noindent In these entries, the character specifies how to select the |
| 2342 | template. The first string specifies the template. Two more (optional) | 2469 | template. The first string specifies the template. Two more (optional) |
| 2343 | strings give the file in which, and the headline under which the new | 2470 | strings give the file in which, and the headline under which the new |
| 2344 | note should be stored. The file defaults to | 2471 | note should be stored. The file defaults (if not present or @code{nil}) |
| 2345 | @code{org-default-notes-file}, the heading to | 2472 | to @code{org-default-notes-file}, the heading to |
| 2346 | @code{org-remember-default-headline}. Both defaults help to get to the | 2473 | @code{org-remember-default-headline}. Both defaults help to get to the |
| 2347 | storing location quickly, but you can change the location interactively | 2474 | storing location quickly, but you can change the location interactively |
| 2348 | while storing the note. | 2475 | while storing the note. |
| @@ -2398,8 +2525,7 @@ calendar | %:date" | |||
| 2398 | @end example | 2525 | @end example |
| 2399 | 2526 | ||
| 2400 | @noindent | 2527 | @noindent |
| 2401 | If you would like to have the cursor in a specific position after the | 2528 | To place the cursor after template expansion use: |
| 2402 | template has been expanded: | ||
| 2403 | 2529 | ||
| 2404 | @example | 2530 | @example |
| 2405 | %? @r{After completing the template, position cursor here.} | 2531 | %? @r{After completing the template, position cursor here.} |
| @@ -2408,7 +2534,7 @@ template has been expanded: | |||
| 2408 | @noindent | 2534 | @noindent |
| 2409 | If you change you mind about which template to use, call | 2535 | If you change you mind about which template to use, call |
| 2410 | @code{org-remember} in the remember buffer. You may then select a new | 2536 | @code{org-remember} in the remember buffer. You may then select a new |
| 2411 | template that will be filled with the previoous context information. | 2537 | template that will be filled with the previous context information. |
| 2412 | 2538 | ||
| 2413 | @node Storing notes, , Remember templates, Remember | 2539 | @node Storing notes, , Remember templates, Remember |
| 2414 | @subsection Storing notes | 2540 | @subsection Storing notes |
| @@ -2419,20 +2545,27 @@ target file - if you press @key{RET}, the value specified for the | |||
| 2419 | template is used. Then the command offers the headings tree of the | 2545 | template is used. Then the command offers the headings tree of the |
| 2420 | selected file, with the cursor position at the default headline (if you | 2546 | selected file, with the cursor position at the default headline (if you |
| 2421 | had specified one in the template). You can either immediately press | 2547 | had specified one in the template). You can either immediately press |
| 2422 | @key{RET} to get the note placed there. Or you can use vertical cursor | 2548 | @key{RET} to get the note placed there. Or you can use the following |
| 2423 | motion (@key{up} and @key{down}) and visibility cycling (@key{TAB}) to | 2549 | keys to find a better location: |
| 2424 | find a better place. Pressing @key{RET} or @key{left} or @key{right} | 2550 | @example |
| 2551 | @key{TAB} @r{Cycle visibility.} | ||
| 2552 | @key{down} / @key{up} @r{Next/previous visible headline.} | ||
| 2553 | n / p @r{Next/previous visible headline.} | ||
| 2554 | f / b @r{Next/previous headline same level.} | ||
| 2555 | u @r{One level up.} | ||
| 2556 | @c 0-9 @r{Digit argument.} | ||
| 2557 | @end example | ||
| 2558 | @noindent | ||
| 2559 | Pressing @key{RET} or @key{left} or @key{right} | ||
| 2425 | then leads to the following result. | 2560 | then leads to the following result. |
| 2426 | 2561 | ||
| 2427 | @multitable @columnfractions 0.2 0.1 0.7 | 2562 | @multitable @columnfractions 0.2 0.15 0.65 |
| 2428 | @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted} | 2563 | @item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted} |
| 2429 | @item buffer-start @tab @key{RET} @tab as level 2 heading at end of file | 2564 | @item buffer-start @tab @key{RET} @tab as level 2 heading at end of file |
| 2430 | @item on headline @tab @key{RET} @tab as sublevel of the heading at cursor | 2565 | @item on headline @tab @key{RET} @tab as sublevel of the heading at cursor |
| 2431 | @item @tab @key{left} @tab as same level, before current heading | 2566 | @item @tab @key{left}/@key{right} @tab as same level, before/after current heading |
| 2432 | @item @tab @key{right} @tab as same level, after current heading | ||
| 2433 | @item not on headline @tab @key{RET} | 2567 | @item not on headline @tab @key{RET} |
| 2434 | @tab at cursor position, level taken from context. | 2568 | @tab at cursor position, level taken from context. |
| 2435 | Or use prefix arg to specify level manually. | ||
| 2436 | @end multitable | 2569 | @end multitable |
| 2437 | 2570 | ||
| 2438 | So a fast way to store the note to its default location is to press | 2571 | So a fast way to store the note to its default location is to press |
| @@ -2467,7 +2600,7 @@ things you have to do. | |||
| 2467 | * TODO basics:: Marking and displaying TODO entries | 2600 | * TODO basics:: Marking and displaying TODO entries |
| 2468 | * TODO extensions:: Workflow and assignments | 2601 | * TODO extensions:: Workflow and assignments |
| 2469 | * Priorities:: Some things are more important than others | 2602 | * Priorities:: Some things are more important than others |
| 2470 | * Breaking down tasks:: Splitting a task into managable pieces | 2603 | * Breaking down tasks:: Splitting a task into manageable pieces |
| 2471 | * Checkboxes:: Tick-off lists | 2604 | * Checkboxes:: Tick-off lists |
| 2472 | @end menu | 2605 | @end menu |
| 2473 | 2606 | ||
| @@ -2488,7 +2621,7 @@ The most important commands to work with TODO entries are: | |||
| 2488 | @kindex C-c C-t | 2621 | @kindex C-c C-t |
| 2489 | @cindex cycling, of TODO states | 2622 | @cindex cycling, of TODO states |
| 2490 | @item C-c C-t | 2623 | @item C-c C-t |
| 2491 | Rotate the TODO state of the current item between | 2624 | Rotate the TODO state of the current item among |
| 2492 | 2625 | ||
| 2493 | @example | 2626 | @example |
| 2494 | ,-> (unmarked) -> TODO -> DONE --. | 2627 | ,-> (unmarked) -> TODO -> DONE --. |
| @@ -2508,9 +2641,11 @@ useful if more than two TODO states are possible (@pxref{TODO extensions}). | |||
| 2508 | @item C-c C-v | 2641 | @item C-c C-v |
| 2509 | View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds | 2642 | View TODO items in a @emph{sparse tree} (@pxref{Sparse trees}). Folds |
| 2510 | the entire buffer, but shows all TODO items and the headings hierarchy | 2643 | the entire buffer, but shows all TODO items and the headings hierarchy |
| 2511 | above them. With prefix arg, show also the DONE entries. With | 2644 | above them. With prefix arg, search for a specific TODO. You will be |
| 2512 | numerical prefix N, show the tree for the Nth keyword in the variable | 2645 | prompted for the keyword, and you can also give a list of keywords like |
| 2513 | @code{org-todo-keywords}. | 2646 | @code{kwd1|kwd2|...}. With numerical prefix N, show the tree for the |
| 2647 | Nth keyword in the variable @code{org-todo-keywords}. With two prefix | ||
| 2648 | args, find all TODO and DONE entries. | ||
| 2514 | @kindex C-c a t | 2649 | @kindex C-c a t |
| 2515 | @item C-c a t | 2650 | @item C-c a t |
| 2516 | Show the global TODO list. This collects the TODO items from all | 2651 | Show the global TODO list. This collects the TODO items from all |
| @@ -2523,16 +2658,14 @@ the TODO entries directly from that buffer (@pxref{Agenda commands}). | |||
| 2523 | @c agenda, customize the variable @code{org-agenda-include-all-todo}. | 2658 | @c agenda, customize the variable @code{org-agenda-include-all-todo}. |
| 2524 | @end table | 2659 | @end table |
| 2525 | 2660 | ||
| 2526 | |||
| 2527 | @node TODO extensions, Priorities, TODO basics, TODO items | 2661 | @node TODO extensions, Priorities, TODO basics, TODO items |
| 2528 | @section Extended use of TODO keywords | 2662 | @section Extended use of TODO keywords |
| 2529 | @cindex extended TODO keywords | 2663 | @cindex extended TODO keywords |
| 2530 | 2664 | ||
| 2531 | The default implementation of TODO entries is just two states: TODO and | 2665 | The default implementation of TODO entries is just two states: TODO and |
| 2532 | DONE. You can, however, use the TODO feature for more complicated | 2666 | DONE. You can use the TODO feature for more complicated things by |
| 2533 | things by configuring the variables @code{org-todo-keywords} and | 2667 | configuring the variable @code{org-todo-keywords}. With special setup, |
| 2534 | @code{org-todo-interpretation}. Using special setup, you can even use | 2668 | the TODO keyword system can work differently in different files. |
| 2535 | TODO keywords in different ways in different org files. | ||
| 2536 | 2669 | ||
| 2537 | Note that @i{tags} are another way to classify headlines in general and | 2670 | Note that @i{tags} are another way to classify headlines in general and |
| 2538 | TODO items in particular (@pxref{Tags}). | 2671 | TODO items in particular (@pxref{Tags}). |
| @@ -2540,6 +2673,7 @@ TODO items in particular (@pxref{Tags}). | |||
| 2540 | @menu | 2673 | @menu |
| 2541 | * Workflow states:: From TODO to DONE in steps | 2674 | * Workflow states:: From TODO to DONE in steps |
| 2542 | * TODO types:: I do this, Fred the rest | 2675 | * TODO types:: I do this, Fred the rest |
| 2676 | * Multiple sets in one file:: Mixing it all, and still finding your way | ||
| 2543 | * Per file keywords:: Different files, different requirements | 2677 | * Per file keywords:: Different files, different requirements |
| 2544 | @end menu | 2678 | @end menu |
| 2545 | 2679 | ||
| @@ -2548,103 +2682,149 @@ TODO items in particular (@pxref{Tags}). | |||
| 2548 | @cindex TODO workflow | 2682 | @cindex TODO workflow |
| 2549 | @cindex workflow states as TODO keywords | 2683 | @cindex workflow states as TODO keywords |
| 2550 | 2684 | ||
| 2551 | You can use TODO keywords to indicate different states in the process | 2685 | You can use TODO keywords to indicate different @emph{sequential} states |
| 2552 | of working on an item, for example: | 2686 | in the process of working on an item, for example@footnote{Changing |
| 2687 | this variable only becomes effective after restarting Org-mode in a | ||
| 2688 | buffer.}: | ||
| 2553 | 2689 | ||
| 2554 | @lisp | 2690 | @lisp |
| 2555 | (setq org-todo-keywords '("TODO" "FEEDBACK" "VERIFY" "DONE") | 2691 | (setq org-todo-keywords |
| 2556 | org-todo-interpretation 'sequence) | 2692 | '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED"))) |
| 2557 | @end lisp | 2693 | @end lisp |
| 2558 | 2694 | ||
| 2695 | The vertical bar separates the TODO keywords (states that @emph{need | ||
| 2696 | action}) from the DONE states (which need @emph{no further action}. If | ||
| 2697 | you don't provide the separator bar, the last state is used as the DONE | ||
| 2698 | state. | ||
| 2559 | @cindex completion, of TODO keywords | 2699 | @cindex completion, of TODO keywords |
| 2560 | Changing these variables only becomes effective in a new Emacs session. | 2700 | With this setup, the command @kbd{C-c C-t} will cycle an entry from TODO |
| 2561 | With this setup, the command @kbd{C-c C-t} will cycle an entry from | 2701 | to FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED. You may |
| 2562 | TODO to FEEDBACK, then to VERIFY, and finally to DONE. You may also | 2702 | also use a prefix argument to quickly select a specific state. For |
| 2563 | use a prefix argument to quickly select a specific state. For example | 2703 | example @kbd{C-3 C-c C-t} will change the state immediately to VERIFY. |
| 2564 | @kbd{C-3 C-c C-t} will change the state immediately to VERIFY. | ||
| 2565 | If you define many keywords, you can use in-buffer completion (see | 2704 | If you define many keywords, you can use in-buffer completion (see |
| 2566 | @ref{Completion}) to insert these words into the buffer. Changing a todo | 2705 | @ref{Completion}) to insert these words into the buffer. Changing a |
| 2567 | state can be logged with a timestamp, see @ref{Tracking TODO state | 2706 | todo state can be logged with a timestamp, see @ref{Tracking TODO state |
| 2568 | changes} for more information. | 2707 | changes} for more information. |
| 2569 | 2708 | ||
| 2570 | @node TODO types, Per file keywords, Workflow states, TODO extensions | 2709 | @node TODO types, Multiple sets in one file, Workflow states, TODO extensions |
| 2571 | @subsection TODO keywords as types | 2710 | @subsection TODO keywords as types |
| 2572 | @cindex TODO types | 2711 | @cindex TODO types |
| 2573 | @cindex names as TODO keywords | 2712 | @cindex names as TODO keywords |
| 2574 | @cindex types as TODO keywords | 2713 | @cindex types as TODO keywords |
| 2575 | 2714 | ||
| 2576 | The second possibility is to use TODO keywords to indicate different | 2715 | The second possibility is to use TODO keywords to indicate different |
| 2577 | types of action items. For example, you might want to indicate that | 2716 | @emph{types} of action items. For example, you might want to indicate |
| 2578 | items are for ``work'' or ``home''. If you are into David Allen's | 2717 | that items are for ``work'' or ``home''. Or, when you work with several |
| 2579 | @emph{Getting Things DONE}, you might want to use todo types | 2718 | people on a single project, you might want to assign action items |
| 2580 | @samp{NEXTACTION}, @samp{WAITING}, @samp{MAYBE}. Or, when you work | 2719 | directly to persons, by using their names as TODO keywords. This would |
| 2581 | with several people on a single project, you might want to assign | 2720 | be set up like this: |
| 2582 | action items directly to persons, by using their names as TODO | 2721 | |
| 2583 | keywords. This would be set up like this: | 2722 | @lisp |
| 2723 | (setq org-todo-keywords '((type "Fred" "Sara" "Lucy" "|" "DONE"))) | ||
| 2724 | @end lisp | ||
| 2725 | |||
| 2726 | In this case, different keywords do not indicate a sequence, but rather | ||
| 2727 | different types. So the normal work flow would be to assign a task to a | ||
| 2728 | person, and later to mark it DONE. Org-mode supports this style by | ||
| 2729 | adapting the workings of the command @kbd{C-c C-t}@footnote{This is also | ||
| 2730 | true for the @kbd{t} command in the timeline and agenda buffers.}. When | ||
| 2731 | used several times in succession, it will still cycle through all names, | ||
| 2732 | in order to first select the right type for a task. But when you return | ||
| 2733 | to the item after some time and execute @kbd{C-c C-t} again, it will | ||
| 2734 | switch from any name directly to DONE. Use prefix arguments or | ||
| 2735 | completion to quickly select a specific name. You can also review the | ||
| 2736 | items of a specific TODO type in a sparse tree by using a numeric prefix | ||
| 2737 | to @kbd{C-c C-v}. For example, to see all things Lucy has to do, you | ||
| 2738 | would use @kbd{C-3 C-c C-v}. To collect Lucy's items from all agenda | ||
| 2739 | files into a single buffer, you would use the prefix arg as well when | ||
| 2740 | creating the global todo list: @kbd{C-3 C-c t}. | ||
| 2741 | |||
| 2742 | @node Multiple sets in one file, Per file keywords, TODO types, TODO extensions | ||
| 2743 | @subsection Multiple keyword sets in one file | ||
| 2744 | @cindex todo keyword sets | ||
| 2745 | |||
| 2746 | Sometimes you may want to use different sets of TODO keywords in | ||
| 2747 | parallel. For example, you may want to have the basic | ||
| 2748 | @code{TODO}/@code{DONE}, but also a workflow for bug fixing, and a | ||
| 2749 | separate state indicating that an item has been canceled (so it is not | ||
| 2750 | DONE, but also does not require action). Your setup would then look | ||
| 2751 | like this: | ||
| 2584 | 2752 | ||
| 2585 | @lisp | 2753 | @lisp |
| 2586 | (setq org-todo-keywords '("Fred" "Sara" "Lucy" "Mike" "DONE") | 2754 | (setq org-todo-keywords |
| 2587 | org-todo-interpretation 'type) | 2755 | '((sequence "TODO" "|" "DONE") |
| 2756 | (sequence "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED") | ||
| 2757 | (sequence "|" "CANCELED"))) | ||
| 2588 | @end lisp | 2758 | @end lisp |
| 2589 | 2759 | ||
| 2590 | In this case, different keywords do not indicate a sequence, but | 2760 | The keywords should all be different, this helps Org-mode to keep track |
| 2591 | rather different types. So it is normally not useful to change from | 2761 | of which subsequence should be used for a given entry. In this setup, |
| 2592 | one type to another. Therefore, in this case the behavior of the | 2762 | @kbd{C-c C-t} only operates within a subsequence, so it switches from |
| 2593 | command @kbd{C-c C-t} is changed slightly@footnote{This is also true | 2763 | @code{DONE} to (nothing) to @code{TODO}, and from @code{FIXED} to |
| 2594 | for the @kbd{t} command in the timeline and agenda buffers.}. When | 2764 | (nothing) to @code{REPORT}. Therefore you need a mechanism to initially |
| 2595 | used several times in succession, it will still cycle through all | 2765 | select the correct sequence. Besides the obvious ways like typing a |
| 2596 | names. But when you return to the item after some time and execute | 2766 | keyword or using completion, you may also apply the following commands: |
| 2597 | @kbd{C-c C-t} again, it will switch from each name directly to DONE. | 2767 | |
| 2598 | Use prefix arguments or completion to quickly select a specific name. | 2768 | @table @kbd |
| 2599 | You can also review the items of a specific TODO type in a sparse tree | 2769 | @kindex C-S-@key{right} |
| 2600 | by using a numeric prefix to @kbd{C-c C-v}. For example, to see all | 2770 | @kindex C-S-@key{left} |
| 2601 | things Lucy has to do, you would use @kbd{C-3 C-c C-v}. To collect | 2771 | @item C-S-@key{right} |
| 2602 | Lucy's items from all agenda files into a single buffer, you | 2772 | @itemx C-S-@key{left} |
| 2603 | would use the prefix arg as well when creating the global todo list: | 2773 | These keys jump from one TODO subset to the next. In the above example, |
| 2604 | @kbd{C-3 C-c t}. | 2774 | @kbd{C-S-@key{right}} would jump from @code{TODO} or @code{DONE} to |
| 2605 | 2775 | @code{REPORT}, and any of the words in the second row to @code{CANCELED}. | |
| 2606 | @node Per file keywords, , TODO types, TODO extensions | 2776 | @kindex S-@key{right} |
| 2607 | @subsection Setting up TODO keywords for individual files | 2777 | @kindex S-@key{left} |
| 2778 | @item S-@key{right} | ||
| 2779 | @itemx S-@key{left} | ||
| 2780 | @kbd{S-@key{<left>}} and @kbd{S-@key{<right>}} and walk through | ||
| 2781 | @emph{all} keywords from all sets, so for example @kbd{S-@key{<right>}} | ||
| 2782 | would switch from @code{DONE} to @code{REPORT} in the example above. | ||
| 2783 | @end table | ||
| 2784 | |||
| 2785 | @node Per file keywords, , Multiple sets in one file, TODO extensions | ||
| 2786 | @subsection Setting up keywords for individual files | ||
| 2608 | @cindex keyword options | 2787 | @cindex keyword options |
| 2609 | @cindex per file keywords | 2788 | @cindex per file keywords |
| 2610 | 2789 | ||
| 2611 | It can be very useful to use different aspects of the TODO mechanism | 2790 | It can be very useful to use different aspects of the TODO mechanism in |
| 2612 | in different files, which is not possible with the global settings | 2791 | different files. For file-local settings, you need to add special lines |
| 2613 | described above. For file-local settings, you need to add special | 2792 | to the file which set the keywords and interpretation for that file |
| 2614 | lines to the file which set the keywords and interpretation for that | 2793 | only. For example, to set one of the two examples discussed above, you |
| 2615 | file only. For example, to set one of the two examples discussed | 2794 | need one of the following lines, starting in column zero anywhere in the |
| 2616 | above, you need one of the following lines, starting in column zero | 2795 | file: |
| 2617 | anywhere in the file: | 2796 | |
| 2797 | @example | ||
| 2798 | #+SEQ_TODO: TODO FEEDBACK VERIFY | DONE CANCELED | ||
| 2799 | @end example | ||
| 2800 | or | ||
| 2801 | @example | ||
| 2802 | #+TYP_TODO: Fred Sara Lucy Mike | DONE | ||
| 2803 | @end example | ||
| 2804 | |||
| 2805 | A setup for using several sets in parallel would be: | ||
| 2618 | 2806 | ||
| 2619 | @example | 2807 | @example |
| 2620 | #+SEQ_TODO: TODO FEEDBACK VERIFY DONE | 2808 | #+SEQ_TODO: "TODO" "|" "DONE" |
| 2621 | #+TYP_TODO: Fred Sara Lucy Mike DONE | 2809 | #+SEQ_TODO: "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED" |
| 2810 | #+SEQ_TODO: "|" "CANCELED" | ||
| 2622 | @end example | 2811 | @end example |
| 2623 | 2812 | ||
| 2813 | |||
| 2624 | @cindex completion, of option keywords | 2814 | @cindex completion, of option keywords |
| 2625 | @kindex M-@key{TAB} | 2815 | @kindex M-@key{TAB} |
| 2626 | @noindent To make sure you are using the correct keyword, type | 2816 | @noindent To make sure you are using the correct keyword, type |
| 2627 | @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion. | 2817 | @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion. |
| 2628 | 2818 | ||
| 2629 | @cindex DONE, final TODO keyword | 2819 | @cindex DONE, final TODO keyword |
| 2630 | Remember that the last keyword must always mean that the item is DONE | 2820 | Remember that the keywords after the vertical bar (or the last keyword |
| 2631 | (although you may use a different word). Also note that in each file, | 2821 | if no bar is there) must always mean that the item is DONE (although you |
| 2632 | only one of the two aspects of TODO keywords can be used. After | 2822 | may use a different word). After changing one of these lines, use |
| 2633 | changing one of these lines, use @kbd{C-c C-c} with the cursor still | 2823 | @kbd{C-c C-c} with the cursor still in the line to make the changes |
| 2634 | in the line to make the changes known to Org-mode@footnote{Org-mode | 2824 | known to Org-mode@footnote{Org-mode parses these lines only when |
| 2635 | parses these lines only when Org-mode is activated after visiting a | 2825 | Org-mode is activated after visiting a file. @kbd{C-c C-c} with the |
| 2636 | file. @kbd{C-c C-c} with the cursor in a line starting with @samp{#+} | 2826 | cursor in a line starting with @samp{#+} is simply restarting Org-mode |
| 2637 | is simply restarting Org-mode for the current buffer.}. | 2827 | for the current buffer.}. |
| 2638 | |||
| 2639 | If you want to use very many keywords, for example when working with a | ||
| 2640 | large group of people, you may split the names over several lines: | ||
| 2641 | |||
| 2642 | @example | ||
| 2643 | #+TYP_TODO: Fred Sara Lucy Mike | ||
| 2644 | #+TYP_TODO: Luis George Jules Jessica | ||
| 2645 | #+TYP_TODO: Kim Arnold Peter | ||
| 2646 | #+TYP_TODO: DONE | ||
| 2647 | @end example | ||
| 2648 | 2828 | ||
| 2649 | @node Priorities, Breaking down tasks, TODO extensions, TODO items | 2829 | @node Priorities, Breaking down tasks, TODO extensions, TODO items |
| 2650 | @section Priorities | 2830 | @section Priorities |
| @@ -2673,7 +2853,7 @@ priority character @samp{A}, @samp{B} or @samp{C}. When you press | |||
| 2673 | @key{SPC} instead, the priority cookie is removed from the headline. | 2853 | @key{SPC} instead, the priority cookie is removed from the headline. |
| 2674 | The priorities can also be changed ``remotely'' from the timeline and | 2854 | The priorities can also be changed ``remotely'' from the timeline and |
| 2675 | agenda buffer with the @kbd{,} command (@pxref{Agenda commands}). | 2855 | agenda buffer with the @kbd{,} command (@pxref{Agenda commands}). |
| 2676 | 2856 | @c | |
| 2677 | @kindex S-@key{up} | 2857 | @kindex S-@key{up} |
| 2678 | @kindex S-@key{down} | 2858 | @kindex S-@key{down} |
| 2679 | @item S-@key{up} | 2859 | @item S-@key{up} |
| @@ -2683,11 +2863,22 @@ are also used to modify time stamps (@pxref{Creating timestamps}). | |||
| 2683 | Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}). | 2863 | Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}). |
| 2684 | @end table | 2864 | @end table |
| 2685 | 2865 | ||
| 2866 | You can change the range of allowed priorities by setting the variables | ||
| 2867 | @code{org-highest-priority}, @code{org-lowest-priority}, and | ||
| 2868 | @code{org-default-priority}. For an individual buffer, you may set | ||
| 2869 | these values (highest, lowest, default) like this (please make sure that | ||
| 2870 | the highest priority is earlier in the alphabet than the lowest | ||
| 2871 | priority): | ||
| 2872 | |||
| 2873 | @example | ||
| 2874 | #+PRIORITIES: A C B | ||
| 2875 | @end example | ||
| 2876 | |||
| 2686 | @node Breaking down tasks, Checkboxes, Priorities, TODO items | 2877 | @node Breaking down tasks, Checkboxes, Priorities, TODO items |
| 2687 | @section Breaking tasks down into subtasks | 2878 | @section Breaking tasks down into subtasks |
| 2688 | @cindex tasks, breaking down | 2879 | @cindex tasks, breaking down |
| 2689 | 2880 | ||
| 2690 | It is often advisable to break down large tasks into smaller, managable | 2881 | It is often advisable to break down large tasks into smaller, manageable |
| 2691 | subtasks. You can do this by creating an outline tree below a TODO | 2882 | subtasks. You can do this by creating an outline tree below a TODO |
| 2692 | item, with detailed subtasks on the tree@footnote{To keep subtasks out | 2883 | item, with detailed subtasks on the tree@footnote{To keep subtasks out |
| 2693 | of the global TODO list, see the | 2884 | of the global TODO list, see the |
| @@ -2780,8 +2971,7 @@ planning. | |||
| 2780 | @menu | 2971 | @menu |
| 2781 | * Time stamps:: Assigning a time to a tree entry | 2972 | * Time stamps:: Assigning a time to a tree entry |
| 2782 | * Creating timestamps:: Commands which insert timestamps | 2973 | * Creating timestamps:: Commands which insert timestamps |
| 2783 | * Custom time format:: If you cannot work with the ISO format | 2974 | * Deadlines and scheduling:: Planning your work |
| 2784 | * Repeating items:: Deadlines that come back again and again | ||
| 2785 | * Progress logging:: Documenting when what work was done. | 2975 | * Progress logging:: Documenting when what work was done. |
| 2786 | @end menu | 2976 | @end menu |
| 2787 | 2977 | ||
| @@ -2799,7 +2989,7 @@ special format, either @samp{<2003-09-16 Tue>} or @samp{<2003-09-16 Tue | |||
| 2799 | 09:39>}@footnote{This is the standard ISO date/time format. If you | 2989 | 09:39>}@footnote{This is the standard ISO date/time format. If you |
| 2800 | cannot get used to these, see @ref{Custom time format}}. A time stamp | 2990 | cannot get used to these, see @ref{Custom time format}}. A time stamp |
| 2801 | can appear anywhere in the headline or body of an org-tree entry. Its | 2991 | can appear anywhere in the headline or body of an org-tree entry. Its |
| 2802 | presence allows entries to be shown on specific dates in the agenda | 2992 | presence causes entries to be shown on specific dates in the agenda |
| 2803 | (@pxref{Weekly/Daily agenda}). We distinguish: | 2993 | (@pxref{Weekly/Daily agenda}). We distinguish: |
| 2804 | 2994 | ||
| 2805 | @table @var | 2995 | @table @var |
| @@ -2815,76 +3005,53 @@ associated with a plain time stamp will be shown exactly on that date. | |||
| 2815 | * Meet Peter at the movies <2006-11-01 Wed 19:15> | 3005 | * Meet Peter at the movies <2006-11-01 Wed 19:15> |
| 2816 | @end example | 3006 | @end example |
| 2817 | 3007 | ||
| 2818 | @item Inactive time stamp | 3008 | @item Time stamp with repeater interval |
| 2819 | @cindex timestamp, inactive | 3009 | @cindex timestamp, with repeater interval |
| 2820 | @cindex inactive timestamp | 3010 | A time stamp may contain a @emph{repeater interval}, indicating that it |
| 2821 | Just like a plain time stamp, but with square brackets instead of | 3011 | applies not only on the given date, but again and again after a certain |
| 2822 | angular ones. These time stamps are inactive in the sense that they do | 3012 | interval of N days (d), weeks (w), months(m), or years(y). The |
| 2823 | @emph{not} trigger an entry to show up in the agenda. | 3013 | following will show up in the agenda every Wednesday: |
| 2824 | 3014 | ||
| 2825 | @example | 3015 | @example |
| 2826 | * Gillian comes late for the fifth time [2006-11-01 Wed] | 3016 | * Pick up Sam at school <2007-05-16 Wed 12:30 +1w> |
| 2827 | @end example | 3017 | @end example |
| 2828 | 3018 | ||
| 2829 | @item Time stamp range | 3019 | @item Diary-style sexp entries |
| 2830 | @cindex timerange | 3020 | For more complex date specifications, Org-mode supports using the |
| 2831 | Two time stamps connected by @samp{--} denote a time range. The | 3021 | special sexp diary entries implemented in the Emacs calendar/diary |
| 2832 | headline will be shown on the first and last day of the range, and on | 3022 | package. For example |
| 2833 | any dates that are displayed and fall in the range. Here is an | ||
| 2834 | example: | ||
| 2835 | 3023 | ||
| 2836 | @example | 3024 | @example |
| 2837 | ** Meeting in Amsterdam | 3025 | * The nerd meeting on every 2nd Thursday of the month |
| 2838 | <2004-08-23 Mon>--<2004-08-26 Thu> | 3026 | <%%(diary-float t 4 2)> |
| 2839 | @end example | 3027 | @end example |
| 2840 | 3028 | ||
| 2841 | @item Time stamp with SCHEDULED keyword | 3029 | @item Time/Date range |
| 2842 | @cindex SCHEDULED keyword | 3030 | @cindex timerange |
| 2843 | If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you | 3031 | @cindex date range |
| 2844 | are planning to start working on that task on the given date. So this is | 3032 | Two time stamps connected by @samp{--} denote a range. The headline |
| 2845 | not about recording an event, but about planning your work. The | 3033 | will be shown on the first and last day of the range, and on any dates |
| 2846 | headline will be listed under the given date@footnote{It will still be | 3034 | that are displayed and fall in the range. Here is an example: |
| 2847 | listed on that date after it has been marked DONE. If you don't like | ||
| 2848 | this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In | ||
| 2849 | addition, a reminder that the scheduled date has passed will be present | ||
| 2850 | in the compilation for @emph{today}, until the entry is marked DONE. | ||
| 2851 | I.e., the task will automatically be forwarded until completed. | ||
| 2852 | 3035 | ||
| 2853 | @example | 3036 | @example |
| 2854 | *** TODO Call Trillian for a date on New Years Eve. | 3037 | ** Meeting in Amsterdam |
| 2855 | SCHEDULED: <2004-12-25 Sat> | 3038 | <2004-08-23 Mon>--<2004-08-26 Thu> |
| 2856 | @end example | 3039 | @end example |
| 2857 | 3040 | ||
| 2858 | @item Time stamp with DEADLINE keyword | 3041 | @item Inactive time stamp |
| 2859 | @cindex DEADLINE keyword | 3042 | @cindex timestamp, inactive |
| 2860 | If a time stamp is preceded by the word @samp{DEADLINE:}, the task | 3043 | @cindex inactive timestamp |
| 2861 | (most likely a TODO item) is supposed to be finished on that date, and | 3044 | Just like a plain time stamp, but with square brackets instead of |
| 2862 | it will be listed then. In addition, the compilation for @emph{today} | 3045 | angular ones. These time stamps are inactive in the sense that they do |
| 2863 | will carry a warning about the approaching or missed deadline, | 3046 | @emph{not} trigger an entry to show up in the agenda. |
| 2864 | starting @code{org-deadline-warning-days} before the due date, and | ||
| 2865 | continuing until the entry is marked DONE. An example: | ||
| 2866 | 3047 | ||
| 2867 | @example | 3048 | @example |
| 2868 | *** TODO write article about the Earth for the Guide | 3049 | * Gillian comes late for the fifth time [2006-11-01 Wed] |
| 2869 | The editor in charge is [[bbdb:Ford Prefect]] | ||
| 2870 | DEADLINE: <2004-02-29 Sun> | ||
| 2871 | @end example | 3050 | @end example |
| 2872 | @item Time stamp with CLOSED keyword | 3051 | |
| 2873 | @cindex CLOSED keyword | ||
| 2874 | When @code{org-log-done} is non-nil, Org-mode will automatically insert | ||
| 2875 | a special time stamp each time a TODO entry is marked done | ||
| 2876 | (@pxref{Progress logging}). This time stamp is enclosed in square | ||
| 2877 | brackets instead of angular brackets. | ||
| 2878 | |||
| 2879 | @item Time range with CLOCK keyword | ||
| 2880 | @cindex CLOCK keyword | ||
| 2881 | When using the clock to time the work that is being done on specific | ||
| 2882 | items, time ranges preceded by the CLOCK keyword are inserted | ||
| 2883 | automatically into the file. The time stamps are enclosed in square | ||
| 2884 | brackets instead of angular brackets. @xref{Clocking work time}. | ||
| 2885 | @end table | 3052 | @end table |
| 2886 | 3053 | ||
| 2887 | @node Creating timestamps, Custom time format, Time stamps, Timestamps | 3054 | @node Creating timestamps, Deadlines and scheduling, Time stamps, Timestamps |
| 2888 | @section Creating timestamps | 3055 | @section Creating timestamps |
| 2889 | @cindex creating timestamps | 3056 | @cindex creating timestamps |
| 2890 | @cindex timestamps, creating | 3057 | @cindex timestamps, creating |
| @@ -2899,61 +3066,40 @@ format. | |||
| 2899 | Prompt for a date and insert a corresponding time stamp. When the | 3066 | Prompt for a date and insert a corresponding time stamp. When the |
| 2900 | cursor is at a previously used time stamp, it is updated to NOW. When | 3067 | cursor is at a previously used time stamp, it is updated to NOW. When |
| 2901 | this command is used twice in succession, a time range is inserted. | 3068 | this command is used twice in succession, a time range is inserted. |
| 2902 | 3069 | @c | |
| 2903 | @kindex C-u C-c . | 3070 | @kindex C-u C-c . |
| 2904 | @item C-u C-c . | 3071 | @item C-u C-c . |
| 2905 | Like @kbd{C-c .}, but use the alternative format which contains date | 3072 | Like @kbd{C-c .}, but use the alternative format which contains date |
| 2906 | and time. The default time can be rounded to multiples of 5 minutes, | 3073 | and time. The default time can be rounded to multiples of 5 minutes, |
| 2907 | see the option @code{org-time-stamp-rounding-minutes}. | 3074 | see the option @code{org-time-stamp-rounding-minutes}. |
| 2908 | 3075 | @c | |
| 2909 | @kindex C-c ! | 3076 | @kindex C-c ! |
| 2910 | @item C-c ! | 3077 | @item C-c ! |
| 2911 | Like @kbd{C-c .}, but insert an inactive time stamp not triggering the | 3078 | Like @kbd{C-c .}, but insert an inactive time stamp that will not cause |
| 2912 | agenda. | 3079 | an agenda entry. |
| 2913 | 3080 | @c | |
| 2914 | @kindex C-c < | 3081 | @kindex C-c < |
| 2915 | @item C-c < | 3082 | @item C-c < |
| 2916 | Insert a time stamp corresponding to the cursor date in the Calendar. | 3083 | Insert a time stamp corresponding to the cursor date in the Calendar. |
| 2917 | 3084 | @c | |
| 2918 | @kindex C-c > | 3085 | @kindex C-c > |
| 2919 | @item C-c > | 3086 | @item C-c > |
| 2920 | Access the Emacs calendar for the current date. If there is a | 3087 | Access the Emacs calendar for the current date. If there is a |
| 2921 | timestamp in the current line, goto the corresponding date | 3088 | timestamp in the current line, goto the corresponding date |
| 2922 | instead. | 3089 | instead. |
| 2923 | 3090 | @c | |
| 2924 | @kindex C-c C-o | 3091 | @kindex C-c C-o |
| 2925 | @item C-c C-o | 3092 | @item C-c C-o |
| 2926 | Access the agenda for the date given by the time stamp or -range at | 3093 | Access the agenda for the date given by the time stamp or -range at |
| 2927 | point (@pxref{Weekly/Daily agenda}). | 3094 | point (@pxref{Weekly/Daily agenda}). |
| 2928 | 3095 | @c | |
| 2929 | @kindex C-c C-d | ||
| 2930 | @item C-c C-d | ||
| 2931 | Insert @samp{DEADLINE} keyword along with a stamp. The insertion will | ||
| 2932 | happen in the line directly following the headline. | ||
| 2933 | @c FIXME Any CLOSED timestamp will be removed.???????? | ||
| 2934 | |||
| 2935 | @kindex C-c C-w | ||
| 2936 | @cindex sparse tree, for deadlines | ||
| 2937 | @item C-c C-w | ||
| 2938 | Create a sparse tree with all deadlines that are either past-due, or | ||
| 2939 | which will become due within @code{org-deadline-warning-days}. | ||
| 2940 | With @kbd{C-u} prefix, show all deadlines in the file. With a numeric | ||
| 2941 | prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows | ||
| 2942 | all deadlines due tomorrow. | ||
| 2943 | |||
| 2944 | @kindex C-c C-s | ||
| 2945 | @item C-c C-s | ||
| 2946 | Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will | ||
| 2947 | happen in the line directly following the headline. Any CLOSED | ||
| 2948 | timestamp will be removed. | ||
| 2949 | |||
| 2950 | @kindex S-@key{left} | 3096 | @kindex S-@key{left} |
| 2951 | @kindex S-@key{right} | 3097 | @kindex S-@key{right} |
| 2952 | @item S-@key{left} | 3098 | @item S-@key{left} |
| 2953 | @itemx S-@key{right} | 3099 | @itemx S-@key{right} |
| 2954 | Change date at cursor by one day. These key bindings conflict with | 3100 | Change date at cursor by one day. These key bindings conflict with |
| 2955 | CUA-mode (@pxref{Conflicts}). | 3101 | CUA-mode (@pxref{Conflicts}). |
| 2956 | 3102 | @c | |
| 2957 | @kindex S-@key{up} | 3103 | @kindex S-@key{up} |
| 2958 | @kindex S-@key{down} | 3104 | @kindex S-@key{down} |
| 2959 | @item S-@key{up} | 3105 | @item S-@key{up} |
| @@ -2963,8 +3109,7 @@ year, month, day, hour or minute. Note that if the cursor is in a | |||
| 2963 | headline and not at a time stamp, these same keys modify the priority of | 3109 | headline and not at a time stamp, these same keys modify the priority of |
| 2964 | an item. (@pxref{Priorities}). The key bindings also conflict with | 3110 | an item. (@pxref{Priorities}). The key bindings also conflict with |
| 2965 | CUA-mode (@pxref{Conflicts}). | 3111 | CUA-mode (@pxref{Conflicts}). |
| 2966 | 3112 | @c | |
| 2967 | |||
| 2968 | @kindex C-c C-y | 3113 | @kindex C-c C-y |
| 2969 | @cindex evaluate time range | 3114 | @cindex evaluate time range |
| 2970 | @item C-c C-y | 3115 | @item C-c C-y |
| @@ -2976,9 +3121,10 @@ into the following column). | |||
| 2976 | 3121 | ||
| 2977 | @menu | 3122 | @menu |
| 2978 | * The date/time prompt:: How org-mode helps you entering date and time | 3123 | * The date/time prompt:: How org-mode helps you entering date and time |
| 3124 | * Custom time format:: Making dates look differently | ||
| 2979 | @end menu | 3125 | @end menu |
| 2980 | 3126 | ||
| 2981 | @node The date/time prompt, , Creating timestamps, Creating timestamps | 3127 | @node The date/time prompt, Custom time format, Creating timestamps, Creating timestamps |
| 2982 | @subsection The date/time prompt | 3128 | @subsection The date/time prompt |
| 2983 | @cindex date, reading in minibuffer | 3129 | @cindex date, reading in minibuffer |
| 2984 | @cindex time, reading in minibuffer | 3130 | @cindex time, reading in minibuffer |
| @@ -3047,8 +3193,8 @@ One month back. | |||
| 3047 | Choose date in calendar (only if nothing was typed into minibuffer). | 3193 | Choose date in calendar (only if nothing was typed into minibuffer). |
| 3048 | @end table | 3194 | @end table |
| 3049 | 3195 | ||
| 3050 | @node Custom time format, Repeating items, Creating timestamps, Timestamps | 3196 | @node Custom time format, , The date/time prompt, Creating timestamps |
| 3051 | @section Custom time format | 3197 | @subsection Custom time format |
| 3052 | @cindex custom date/time format | 3198 | @cindex custom date/time format |
| 3053 | @cindex time format, custom | 3199 | @cindex time format, custom |
| 3054 | @cindex date format, custom | 3200 | @cindex date format, custom |
| @@ -3090,48 +3236,119 @@ using dates in tables, table alignment will be messed up. If the custom | |||
| 3090 | format is shorter, things do work as expected. | 3236 | format is shorter, things do work as expected. |
| 3091 | @end itemize | 3237 | @end itemize |
| 3092 | 3238 | ||
| 3093 | @node Repeating items, Progress logging, Custom time format, Timestamps | ||
| 3094 | @section Repeating items | ||
| 3095 | @cindex TODO items, repeating | ||
| 3096 | @cindex deadlines, repeating | ||
| 3097 | @cindex scheduling, repeating | ||
| 3098 | |||
| 3099 | Org-mode integrates with the Emacs calendar and diary to display cyclic | ||
| 3100 | appointments, anniversaries and other special entries in the agenda | ||
| 3101 | (@pxref{Weekly/Daily agenda}). However, it can be useful to have | ||
| 3102 | certain deadlines and scheduling items to auto-repeat. The advantage of | ||
| 3103 | a deadline or scheduled item is that the they produce warnings ahead of | ||
| 3104 | time and automatically forward themselves in the agenda until they are | ||
| 3105 | done. The abstract difference is therefore between cyclic | ||
| 3106 | @i{appointments} and cyclic @i{action items}. For appointments you | ||
| 3107 | should use the diary, for actions you can uses an org-mode deadline or | ||
| 3108 | scheduling time stamp together with a REPEAT cookie. For example: | ||
| 3109 | 3239 | ||
| 3240 | @node Deadlines and scheduling, Progress logging, Creating timestamps, Timestamps | ||
| 3241 | @section Deadlines and Scheduling | ||
| 3242 | |||
| 3243 | A time stamp may be preceded by special keywords to facilitate planning | ||
| 3244 | of work: | ||
| 3245 | |||
| 3246 | @table @var | ||
| 3247 | @item DEADLINE | ||
| 3248 | @cindex DEADLINE keyword | ||
| 3249 | The task (most likely a TODO item) is supposed to be finished on that | ||
| 3250 | date, and it will be listed then. In addition, the compilation for | ||
| 3251 | @emph{today} will carry a warning about the approaching or missed | ||
| 3252 | deadline, starting @code{org-deadline-warning-days} before the due date, | ||
| 3253 | and continuing until the entry is marked DONE. An example: | ||
| 3254 | |||
| 3255 | @example | ||
| 3256 | *** TODO write article about the Earth for the Guide | ||
| 3257 | The editor in charge is [[bbdb:Ford Prefect]] | ||
| 3258 | DEADLINE: <2004-02-29 Sun> | ||
| 3259 | @end example | ||
| 3260 | |||
| 3261 | @item SCHEDULED | ||
| 3262 | @cindex SCHEDULED keyword | ||
| 3263 | You are planning to start working on that task on the given date. The | ||
| 3264 | headline will be listed under the given date@footnote{It will still be | ||
| 3265 | listed on that date after it has been marked DONE. If you don't like | ||
| 3266 | this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In | ||
| 3267 | addition, a reminder that the scheduled date has passed will be present | ||
| 3268 | in the compilation for @emph{today}, until the entry is marked DONE. | ||
| 3269 | I.e., the task will automatically be forwarded until completed. | ||
| 3270 | |||
| 3271 | @example | ||
| 3272 | *** TODO Call Trillian for a date on New Years Eve. | ||
| 3273 | SCHEDULED: <2004-12-25 Sat> | ||
| 3274 | @end example | ||
| 3275 | @end table | ||
| 3276 | |||
| 3277 | @menu | ||
| 3278 | * Inserting deadline/schedule:: | ||
| 3279 | * Repeated tasks:: | ||
| 3280 | @end menu | ||
| 3281 | |||
| 3282 | @node Inserting deadline/schedule, Repeated tasks, Deadlines and scheduling, Deadlines and scheduling | ||
| 3283 | @subsection Inserting deadline/schedule | ||
| 3284 | |||
| 3285 | The following commands allow to quickly insert a deadline or to schedule | ||
| 3286 | an item: | ||
| 3287 | |||
| 3288 | @table @kbd | ||
| 3289 | @c | ||
| 3290 | @kindex C-c C-d | ||
| 3291 | @item C-c C-d | ||
| 3292 | Insert @samp{DEADLINE} keyword along with a stamp. The insertion will | ||
| 3293 | happen in the line directly following the headline. | ||
| 3294 | @c FIXME Any CLOSED timestamp will be removed.???????? | ||
| 3295 | @c | ||
| 3296 | @kindex C-c C-w | ||
| 3297 | @cindex sparse tree, for deadlines | ||
| 3298 | @item C-c C-w | ||
| 3299 | Create a sparse tree with all deadlines that are either past-due, or | ||
| 3300 | which will become due within @code{org-deadline-warning-days}. | ||
| 3301 | With @kbd{C-u} prefix, show all deadlines in the file. With a numeric | ||
| 3302 | prefix, check that many days. For example, @kbd{C-1 C-c C-w} shows | ||
| 3303 | all deadlines due tomorrow. | ||
| 3304 | @c | ||
| 3305 | @kindex C-c C-s | ||
| 3306 | @item C-c C-s | ||
| 3307 | Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will | ||
| 3308 | happen in the line directly following the headline. Any CLOSED | ||
| 3309 | timestamp will be removed. | ||
| 3310 | @end table | ||
| 3311 | |||
| 3312 | @node Repeated tasks, , Inserting deadline/schedule, Deadlines and scheduling | ||
| 3313 | @subsection Repeated Tasks | ||
| 3314 | |||
| 3315 | Some tasks need to be repeated again and again, and Org-mode therefore | ||
| 3316 | allows to use a repeater in a DEADLINE or SCHEDULED time stamp, for | ||
| 3317 | example: | ||
| 3110 | @example | 3318 | @example |
| 3111 | * TODO Replace batteries in smoke detector REPEAT(+18m) | 3319 | ** TODO Pay the rent |
| 3112 | SCHEDULED: <2007-01-01 Mon> | 3320 | DEADLINE: <2005-10-01 Sat +1m> |
| 3321 | @end example | ||
| 3113 | 3322 | ||
| 3114 | * TODO Get dentist appointment REPEAT(+6m) | 3323 | Deadlines and scheduled items produce entries in the agenda when they |
| 3115 | SCHEDULED: <2006-12-19 Tue> | 3324 | are over-due, so it is important to be able to mark such an entry as |
| 3325 | completed once you have done so. When you mark a DEADLINE or a SCHEDULE | ||
| 3326 | with the todo keyword DONE, it will no longer produce entries in the | ||
| 3327 | agenda. The problem with this is, however, that then also the | ||
| 3328 | @emph{next} instance of the repeated entry will not be active. Org-mode | ||
| 3329 | deals with this in the following way: When you try to mark such an entry | ||
| 3330 | DONE (using @kbd{C-c C-t}), it will shift the base date of the repeating | ||
| 3331 | time stamp by the repeater interval, and immediately set the entry state | ||
| 3332 | back to TODO. In the example above, setting the state to DONE would | ||
| 3333 | actually switch the date like this: | ||
| 3116 | 3334 | ||
| 3117 | * TODO Tax report to IRS REPEAT(+1y) | 3335 | @example |
| 3118 | DEADLINE: <2007-04-01 Sun> | 3336 | ** TODO Pay the rent |
| 3337 | DEADLINE: <2005-11-01 Tue +1m> | ||
| 3119 | @end example | 3338 | @end example |
| 3120 | 3339 | ||
| 3121 | Each time you try to mark one of these entries DONE using @kbd{C-c C-t}, | 3340 | You will also be prompted for a note that will be put under the DEADLINE |
| 3122 | they will automatically switch back to the state TODO, and the | 3341 | line to keep a record that you actually acted on the previous instance |
| 3123 | deadline/scheduling will be shifted accordingly. The time units | 3342 | of this deadline. |
| 3124 | recognized by org-mode are year (y), month (m), week (w), and day (d). | 3343 | |
| 3125 | Org-mode will also prompt you for a note and record the fact that you | 3344 | As a consequence of shifting the base date, this entry will no longer be |
| 3126 | have closed this item in a note under the headline. | 3345 | visible in the agenda when checking past dates, but all future instances |
| 3346 | will be visible. | ||
| 3127 | 3347 | ||
| 3128 | One unusual property of these repeating items is that only one instance | 3348 | You may have both scheduling and deadline information for a specific |
| 3129 | of each exist at any given time. So if you look back or ahead in the | 3349 | task - just make sure that the repeater intervals on both are the same. |
| 3130 | agenda, you will not find past and future instances, only the current | ||
| 3131 | one will show up. Use a cyclic diary entry if you need all past and | ||
| 3132 | future instances to be visible in the agenda. | ||
| 3133 | 3350 | ||
| 3134 | @node Progress logging, , Repeating items, Timestamps | 3351 | @node Progress logging, , Deadlines and scheduling, Timestamps |
| 3135 | @section Progress Logging | 3352 | @section Progress Logging |
| 3136 | @cindex progress logging | 3353 | @cindex progress logging |
| 3137 | @cindex logging, of progress | 3354 | @cindex logging, of progress |
| @@ -3199,6 +3416,7 @@ these into a separate file that starts with: | |||
| 3199 | #+STARTUP: lognotestate | 3416 | #+STARTUP: lognotestate |
| 3200 | @end example | 3417 | @end example |
| 3201 | 3418 | ||
| 3419 | |||
| 3202 | @node Clocking work time, , Tracking TODO state changes, Progress logging | 3420 | @node Clocking work time, , Tracking TODO state changes, Progress logging |
| 3203 | @subsection Clocking work time | 3421 | @subsection Clocking work time |
| 3204 | 3422 | ||
| @@ -3743,6 +3961,23 @@ Sunrise/Sunset times, show lunar phases and to convert to other | |||
| 3743 | calendars, respectively. @kbd{c} can be used to switch back and forth | 3961 | calendars, respectively. @kbd{c} can be used to switch back and forth |
| 3744 | between calendar and agenda. | 3962 | between calendar and agenda. |
| 3745 | 3963 | ||
| 3964 | If you are using the diary only for sexp entries and holidays, it is | ||
| 3965 | faster to not use the above setting, but instead to copy or even move | ||
| 3966 | the entries into an Org-mode file. Org-mode evaluates diary-style sexp | ||
| 3967 | entries, and does it faster because there is no overhead for first | ||
| 3968 | creating the diary display. Note that the sexp entries must start at | ||
| 3969 | the left margin, no white space is allowed before them. For example, | ||
| 3970 | the following segment of an Org-mode file will be processed and entries | ||
| 3971 | will be made in the agenda: | ||
| 3972 | |||
| 3973 | @example | ||
| 3974 | * Birthdays and similar stuff | ||
| 3975 | #+CATEGORY: Holiday | ||
| 3976 | %%(org-calendar-holiday) ; special function for holiday names | ||
| 3977 | #+CATEGORY: Ann | ||
| 3978 | %%(diary-anniversary 14 5 1956) Artur Dent %d is years old | ||
| 3979 | %%(diary-anniversary 2 10 1869) Mahatma Gandhi would be %d years old | ||
| 3980 | @end example | ||
| 3746 | 3981 | ||
| 3747 | @node Global TODO list, Matching headline tags, Weekly/Daily agenda, Built-in agenda views | 3982 | @node Global TODO list, Matching headline tags, Weekly/Daily agenda, Built-in agenda views |
| 3748 | @subsection The global TODO list | 3983 | @subsection The global TODO list |
| @@ -3762,10 +3997,12 @@ the TODO entries directly from that buffer (@pxref{Agenda commands}). | |||
| 3762 | @kindex C-c a T | 3997 | @kindex C-c a T |
| 3763 | @item C-c a T | 3998 | @item C-c a T |
| 3764 | @cindex TODO keyword matching | 3999 | @cindex TODO keyword matching |
| 3765 | Like the above, but allows selection of a specific TODO keyword. You can | 4000 | Like the above, but allows selection of a specific TODO keyword. You |
| 3766 | also do this by specifying a prefix argument to @kbd{C-c a t}. With a | 4001 | can also do this by specifying a prefix argument to @kbd{C-c a t}. With |
| 3767 | @kbd{C-u} prefix you are prompted for a keyword. With a numeric | 4002 | a @kbd{C-u} prefix you are prompted for a keyword, and you may also |
| 3768 | prefix, the Nth keyword in @code{org-todo-keywords} is selected. | 4003 | specify several keywords by separating them with @samp{|} as boolean OR |
| 4004 | operator. With a numeric prefix, the Nth keyword in | ||
| 4005 | @code{org-todo-keywords} is selected. | ||
| 3769 | @kindex r | 4006 | @kindex r |
| 3770 | The @kbd{r} key in the agenda buffer regenerates it, and you can give | 4007 | The @kbd{r} key in the agenda buffer regenerates it, and you can give |
| 3771 | a prefix argument to this command to change the selected TODO keyword, | 4008 | a prefix argument to this command to change the selected TODO keyword, |
| @@ -3875,16 +4112,18 @@ Lets assume that you, in your own way of using Org-mode, identify | |||
| 3875 | projects with a tag PROJECT, and that you use a todo keyword MAYBE to | 4112 | projects with a tag PROJECT, and that you use a todo keyword MAYBE to |
| 3876 | indicate a project that should not be considered yet. Lets further | 4113 | indicate a project that should not be considered yet. Lets further |
| 3877 | assume that the todo keyword DONE marks finished projects, and that NEXT | 4114 | assume that the todo keyword DONE marks finished projects, and that NEXT |
| 3878 | and TODO indicate next actions. Finally, the tag @@SHOP indicates | 4115 | and TODO indicate next actions. The tag @@SHOP indicates shopping and |
| 3879 | shopping and is a next action even without the NEXT tag. In this case | 4116 | is a next action even without the NEXT tag. Finally, if the project |
| 3880 | you would start by identifying eligible projects with a tags/todo match | 4117 | contains the special word IGNORE anywhere, it should not be listed |
| 3881 | @samp{+PROJECT/-MAYBE-DONE}, and then check for TODO, NEXT and @@SHOP in | 4118 | either. In this case you would start by identifying eligible projects |
| 3882 | the subtree to identify projects that are not stuck. The correct | 4119 | with a tags/todo match @samp{+PROJECT/-MAYBE-DONE}, and then check for |
| 3883 | customization for this is | 4120 | TODO, NEXT, @@SHOP, and IGNORE in the subtree to identify projects that |
| 4121 | are not stuck. The correct customization for this is | ||
| 3884 | 4122 | ||
| 3885 | @lisp | 4123 | @lisp |
| 3886 | (setq org-stuck-projects | 4124 | (setq org-stuck-projects |
| 3887 | ("+PROJECT/-MAYBE-DONE" ("NEXT" "TODO") ("@@SHOP"))) | 4125 | '("+PROJECT/-MAYBE-DONE" ("NEXT" "TODO") ("@@SHOP") |
| 4126 | "\\<IGNORE\\>")) | ||
| 3888 | @end lisp | 4127 | @end lisp |
| 3889 | 4128 | ||
| 3890 | 4129 | ||
| @@ -4031,11 +4270,11 @@ Previous line (same as @key{down}). | |||
| 4031 | @item mouse-3 | 4270 | @item mouse-3 |
| 4032 | @itemx @key{SPC} | 4271 | @itemx @key{SPC} |
| 4033 | Display the original location of the item in another window. | 4272 | Display the original location of the item in another window. |
| 4034 | 4273 | @c | |
| 4035 | @kindex L | 4274 | @kindex L |
| 4036 | @item L | 4275 | @item L |
| 4037 | Display original location and recenter that window. | 4276 | Display original location and recenter that window. |
| 4038 | 4277 | @c | |
| 4039 | @kindex mouse-2 | 4278 | @kindex mouse-2 |
| 4040 | @kindex mouse-1 | 4279 | @kindex mouse-1 |
| 4041 | @kindex @key{TAB} | 4280 | @kindex @key{TAB} |
| @@ -4044,11 +4283,11 @@ Display original location and recenter that window. | |||
| 4044 | @itemx @key{TAB} | 4283 | @itemx @key{TAB} |
| 4045 | Go to the original location of the item in another window. Under Emacs | 4284 | Go to the original location of the item in another window. Under Emacs |
| 4046 | 22, @kbd{mouse-1} will also works for this. | 4285 | 22, @kbd{mouse-1} will also works for this. |
| 4047 | 4286 | @c | |
| 4048 | @kindex @key{RET} | 4287 | @kindex @key{RET} |
| 4049 | @itemx @key{RET} | 4288 | @itemx @key{RET} |
| 4050 | Go to the original location of the item and delete other windows. | 4289 | Go to the original location of the item and delete other windows. |
| 4051 | 4290 | @c | |
| 4052 | @kindex f | 4291 | @kindex f |
| 4053 | @item f | 4292 | @item f |
| 4054 | Toggle Follow mode. In Follow mode, as you move the cursor through | 4293 | Toggle Follow mode. In Follow mode, as you move the cursor through |
| @@ -4056,14 +4295,14 @@ the agenda buffer, the other window always shows the corresponding | |||
| 4056 | location in the org file. The initial setting for this mode in new | 4295 | location in the org file. The initial setting for this mode in new |
| 4057 | agenda buffers can be set with the variable | 4296 | agenda buffers can be set with the variable |
| 4058 | @code{org-agenda-start-with-follow-mode}. | 4297 | @code{org-agenda-start-with-follow-mode}. |
| 4059 | 4298 | @c | |
| 4060 | @kindex b | 4299 | @kindex b |
| 4061 | @item b | 4300 | @item b |
| 4062 | Display the entire subtree of the current item in an indirect buffer. | 4301 | Display the entire subtree of the current item in an indirect buffer. |
| 4063 | With numerical prefix ARG, go up to this level and then take that tree. | 4302 | With numerical prefix ARG, go up to this level and then take that tree. |
| 4064 | If ARG is negative, go up that many levels. With @kbd{C-u} prefix, do | 4303 | If ARG is negative, go up that many levels. With @kbd{C-u} prefix, do |
| 4065 | not remove the previously used indirect buffer. | 4304 | not remove the previously used indirect buffer. |
| 4066 | 4305 | @c | |
| 4067 | @kindex l | 4306 | @kindex l |
| 4068 | @item l | 4307 | @item l |
| 4069 | Toggle Logbook mode. In Logbook mode, entries that where marked DONE while | 4308 | Toggle Logbook mode. In Logbook mode, entries that where marked DONE while |
| @@ -4075,24 +4314,24 @@ as are entries that have been clocked on that day. | |||
| 4075 | @kindex o | 4314 | @kindex o |
| 4076 | @item o | 4315 | @item o |
| 4077 | Delete other windows. | 4316 | Delete other windows. |
| 4078 | 4317 | @c | |
| 4079 | @kindex w | 4318 | @kindex w |
| 4080 | @item w | 4319 | @item w |
| 4081 | Switch to weekly view (7 days displayed together). | 4320 | Switch to weekly view (7 days displayed together). |
| 4082 | 4321 | @c | |
| 4083 | @kindex d | 4322 | @kindex d |
| 4084 | @item d | 4323 | @item d |
| 4085 | Switch to daily view (just one day displayed). | 4324 | Switch to daily view (just one day displayed). |
| 4086 | 4325 | @c | |
| 4087 | @kindex D | 4326 | @kindex D |
| 4088 | @item D | 4327 | @item D |
| 4089 | Toggle the inclusion of diary entries. See @ref{Weekly/Daily agenda}. | 4328 | Toggle the inclusion of diary entries. See @ref{Weekly/Daily agenda}. |
| 4090 | 4329 | @c | |
| 4091 | @kindex g | 4330 | @kindex g |
| 4092 | @item g | 4331 | @item g |
| 4093 | Toggle the time grid on and off. See also the variables | 4332 | Toggle the time grid on and off. See also the variables |
| 4094 | @code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}. | 4333 | @code{org-agenda-use-time-grid} and @code{org-agenda-time-grid}. |
| 4095 | 4334 | @c | |
| 4096 | @kindex r | 4335 | @kindex r |
| 4097 | @item r | 4336 | @item r |
| 4098 | Recreate the agenda buffer, for example to reflect the changes | 4337 | Recreate the agenda buffer, for example to reflect the changes |
| @@ -4100,21 +4339,21 @@ after modification of the time stamps of items with S-@key{left} and | |||
| 4100 | S-@key{right}. When the buffer is the global todo list, a prefix | 4339 | S-@key{right}. When the buffer is the global todo list, a prefix |
| 4101 | argument is interpreted to create a selective list for a specific TODO | 4340 | argument is interpreted to create a selective list for a specific TODO |
| 4102 | keyword. | 4341 | keyword. |
| 4103 | 4342 | @c | |
| 4104 | @kindex s | 4343 | @kindex s |
| 4105 | @item s | 4344 | @item s |
| 4106 | Save all Org-mode buffers in the current Emacs session. | 4345 | Save all Org-mode buffers in the current Emacs session. |
| 4107 | 4346 | @c | |
| 4108 | @kindex @key{right} | 4347 | @kindex @key{right} |
| 4109 | @item @key{right} | 4348 | @item @key{right} |
| 4110 | Display the following @code{org-agenda-ndays} days. For example, if | 4349 | Display the following @code{org-agenda-ndays} days. For example, if |
| 4111 | the display covers a week, switch to the following week. With prefix | 4350 | the display covers a week, switch to the following week. With prefix |
| 4112 | arg, go forward that many times @code{org-agenda-ndays} days. | 4351 | arg, go forward that many times @code{org-agenda-ndays} days. |
| 4113 | 4352 | @c | |
| 4114 | @kindex @key{left} | 4353 | @kindex @key{left} |
| 4115 | @item @key{left} | 4354 | @item @key{left} |
| 4116 | Display the previous dates. | 4355 | Display the previous dates. |
| 4117 | 4356 | @c | |
| 4118 | @kindex . | 4357 | @kindex . |
| 4119 | @item . | 4358 | @item . |
| 4120 | Goto today. | 4359 | Goto today. |
| @@ -4124,53 +4363,53 @@ Goto today. | |||
| 4124 | 4363 | ||
| 4125 | @item 0-9 | 4364 | @item 0-9 |
| 4126 | Digit argument. | 4365 | Digit argument. |
| 4127 | 4366 | @c | |
| 4128 | @cindex undoing remote-editing events | 4367 | @cindex undoing remote-editing events |
| 4129 | @cindex remote editing, undo | 4368 | @cindex remote editing, undo |
| 4130 | @kindex C-_ | 4369 | @kindex C-_ |
| 4131 | @item C-_ | 4370 | @item C-_ |
| 4132 | Undo a change due to a remote editing command. The change is undone | 4371 | Undo a change due to a remote editing command. The change is undone |
| 4133 | both in the agenda buffer and in the remote buffer. | 4372 | both in the agenda buffer and in the remote buffer. |
| 4134 | 4373 | @c | |
| 4135 | @kindex t | 4374 | @kindex t |
| 4136 | @item t | 4375 | @item t |
| 4137 | Change the TODO state of the item, both in the agenda and in the | 4376 | Change the TODO state of the item, both in the agenda and in the |
| 4138 | original org file. | 4377 | original org file. |
| 4139 | 4378 | @c | |
| 4140 | @kindex C-k | 4379 | @kindex C-k |
| 4141 | @item C-k | 4380 | @item C-k |
| 4142 | Delete the current agenda item along with the entire subtree belonging | 4381 | Delete the current agenda item along with the entire subtree belonging |
| 4143 | to it in the original Org-mode file. If the text to be deleted remotely | 4382 | to it in the original Org-mode file. If the text to be deleted remotely |
| 4144 | is longer than one line, the kill needs to be confirmed by the user. See | 4383 | is longer than one line, the kill needs to be confirmed by the user. See |
| 4145 | variable @code{org-agenda-confirm-kill}. | 4384 | variable @code{org-agenda-confirm-kill}. |
| 4146 | 4385 | @c | |
| 4147 | @kindex $ | 4386 | @kindex $ |
| 4148 | @item $ | 4387 | @item $ |
| 4149 | Archive the subtree corresponding to the current headline. | 4388 | Archive the subtree corresponding to the current headline. |
| 4150 | 4389 | @c | |
| 4151 | @kindex T | 4390 | @kindex T |
| 4152 | @item T | 4391 | @item T |
| 4153 | Show all tags associated with the current item. Because of | 4392 | Show all tags associated with the current item. Because of |
| 4154 | inheritance, this may be more than the tags listed in the line itself. | 4393 | inheritance, this may be more than the tags listed in the line itself. |
| 4155 | 4394 | @c | |
| 4156 | @kindex : | 4395 | @kindex : |
| 4157 | @item : | 4396 | @item : |
| 4158 | Set tags for the current headline. | 4397 | Set tags for the current headline. |
| 4159 | 4398 | @c | |
| 4160 | @kindex a | 4399 | @kindex a |
| 4161 | @item a | 4400 | @item a |
| 4162 | Toggle the ARCHIVE tag for the current headline. | 4401 | Toggle the ARCHIVE tag for the current headline. |
| 4163 | 4402 | @c | |
| 4164 | @kindex , | 4403 | @kindex , |
| 4165 | @item , | 4404 | @item , |
| 4166 | Set the priority for the current item. Org-mode prompts for the | 4405 | Set the priority for the current item. Org-mode prompts for the |
| 4167 | priority character. If you reply with @key{SPC}, the priority cookie | 4406 | priority character. If you reply with @key{SPC}, the priority cookie |
| 4168 | is removed from the entry. | 4407 | is removed from the entry. |
| 4169 | 4408 | @c | |
| 4170 | @kindex P | 4409 | @kindex P |
| 4171 | @item P | 4410 | @item P |
| 4172 | Display weighted priority of current item. | 4411 | Display weighted priority of current item. |
| 4173 | 4412 | @c | |
| 4174 | @kindex + | 4413 | @kindex + |
| 4175 | @kindex S-@key{up} | 4414 | @kindex S-@key{up} |
| 4176 | @item + | 4415 | @item + |
| @@ -4178,21 +4417,21 @@ Display weighted priority of current item. | |||
| 4178 | Increase the priority of the current item. The priority is changed in | 4417 | Increase the priority of the current item. The priority is changed in |
| 4179 | the original buffer, but the agenda is not resorted. Use the @kbd{r} | 4418 | the original buffer, but the agenda is not resorted. Use the @kbd{r} |
| 4180 | key for this. | 4419 | key for this. |
| 4181 | 4420 | @c | |
| 4182 | @kindex - | 4421 | @kindex - |
| 4183 | @kindex S-@key{down} | 4422 | @kindex S-@key{down} |
| 4184 | @item - | 4423 | @item - |
| 4185 | @itemx S-@key{down} | 4424 | @itemx S-@key{down} |
| 4186 | Decrease the priority of the current item. | 4425 | Decrease the priority of the current item. |
| 4187 | 4426 | @c | |
| 4188 | @kindex C-c C-s | 4427 | @kindex C-c C-s |
| 4189 | @item C-c C-s | 4428 | @item C-c C-s |
| 4190 | Schedule this item | 4429 | Schedule this item |
| 4191 | 4430 | @c | |
| 4192 | @kindex C-c C-d | 4431 | @kindex C-c C-d |
| 4193 | @item C-c C-d | 4432 | @item C-c C-d |
| 4194 | Set a deadline for this item. | 4433 | Set a deadline for this item. |
| 4195 | 4434 | @c | |
| 4196 | @kindex S-@key{right} | 4435 | @kindex S-@key{right} |
| 4197 | @item S-@key{right} | 4436 | @item S-@key{right} |
| 4198 | Change the time stamp associated with the current line by one day into | 4437 | Change the time stamp associated with the current line by one day into |
| @@ -4201,25 +4440,27 @@ example, @kbd{3 6 5 S-@key{right}} will change it by a year. The | |||
| 4201 | stamp is changed in the original org file, but the change is not | 4440 | stamp is changed in the original org file, but the change is not |
| 4202 | directly reflected in the agenda buffer. Use the | 4441 | directly reflected in the agenda buffer. Use the |
| 4203 | @kbd{r} key to update the buffer. | 4442 | @kbd{r} key to update the buffer. |
| 4204 | 4443 | @c | |
| 4205 | @kindex S-@key{left} | 4444 | @kindex S-@key{left} |
| 4206 | @item S-@key{left} | 4445 | @item S-@key{left} |
| 4207 | Change the time stamp associated with the current line by one day | 4446 | Change the time stamp associated with the current line by one day |
| 4208 | into the past. | 4447 | into the past. |
| 4209 | 4448 | @c | |
| 4210 | @kindex > | 4449 | @kindex > |
| 4211 | @item > | 4450 | @item > |
| 4212 | Change the time stamp associated with the current line to today. | 4451 | Change the time stamp associated with the current line to today. |
| 4213 | The key @kbd{>} has been chosen, because it is the same as @kbd{S-.} | 4452 | The key @kbd{>} has been chosen, because it is the same as @kbd{S-.} |
| 4214 | on my keyboard. | 4453 | on my keyboard. |
| 4215 | 4454 | @c | |
| 4216 | @kindex I | 4455 | @kindex I |
| 4217 | @item I | 4456 | @item I |
| 4218 | Start the clock on the current item. If a clock is running already, it | 4457 | Start the clock on the current item. If a clock is running already, it |
| 4219 | is stopped first. | 4458 | is stopped first. |
| 4459 | @c | ||
| 4220 | @kindex O | 4460 | @kindex O |
| 4221 | @item O | 4461 | @item O |
| 4222 | Stop the previously started clock. | 4462 | Stop the previously started clock. |
| 4463 | @c | ||
| 4223 | @kindex X | 4464 | @kindex X |
| 4224 | @item X | 4465 | @item X |
| 4225 | Cancel the currently running clock. | 4466 | Cancel the currently running clock. |
| @@ -4229,11 +4470,11 @@ Cancel the currently running clock. | |||
| 4229 | @kindex c | 4470 | @kindex c |
| 4230 | @item c | 4471 | @item c |
| 4231 | Open the Emacs calendar and move to the date at the agenda cursor. | 4472 | Open the Emacs calendar and move to the date at the agenda cursor. |
| 4232 | 4473 | @c | |
| 4233 | @item c | 4474 | @item c |
| 4234 | When in the calendar, compute and show the Org-mode agenda for the | 4475 | When in the calendar, compute and show the Org-mode agenda for the |
| 4235 | date at the cursor. | 4476 | date at the cursor. |
| 4236 | 4477 | @c | |
| 4237 | @cindex diary entries, creating from agenda | 4478 | @cindex diary entries, creating from agenda |
| 4238 | @kindex i | 4479 | @kindex i |
| 4239 | @item i | 4480 | @item i |
| @@ -4241,42 +4482,53 @@ Insert a new entry into the diary. Prompts for the type of entry | |||
| 4241 | (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new | 4482 | (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new |
| 4242 | entry in the diary, just as @kbd{i d} etc. would do in the calendar. | 4483 | entry in the diary, just as @kbd{i d} etc. would do in the calendar. |
| 4243 | The date is taken from the cursor position. | 4484 | The date is taken from the cursor position. |
| 4244 | 4485 | @c | |
| 4245 | @kindex M | 4486 | @kindex M |
| 4246 | @item M | 4487 | @item M |
| 4247 | Show the phases of the moon for the three months around current date. | 4488 | Show the phases of the moon for the three months around current date. |
| 4248 | 4489 | @c | |
| 4249 | @kindex S | 4490 | @kindex S |
| 4250 | @item S | 4491 | @item S |
| 4251 | Show sunrise and sunset times. The geographical location must be set | 4492 | Show sunrise and sunset times. The geographical location must be set |
| 4252 | with calendar variables, see documentation of the Emacs calendar. | 4493 | with calendar variables, see documentation of the Emacs calendar. |
| 4253 | 4494 | @c | |
| 4254 | @kindex C | 4495 | @kindex C |
| 4255 | @item C | 4496 | @item C |
| 4256 | Convert the date at cursor into many other cultural and historic | 4497 | Convert the date at cursor into many other cultural and historic |
| 4257 | calendars. | 4498 | calendars. |
| 4258 | 4499 | @c | |
| 4259 | @kindex H | 4500 | @kindex H |
| 4260 | @item H | 4501 | @item H |
| 4261 | Show holidays for three month around the cursor date. | 4502 | Show holidays for three month around the cursor date. |
| 4262 | 4503 | @c | |
| 4263 | @c FIXME: This should be a different key. | 4504 | @c FIXME: This should be a different key. |
| 4264 | @kindex C-c C-x C-c | 4505 | @kindex C-c C-x C-c |
| 4265 | @item C-c C-x C-c | 4506 | @item C-c C-x C-c |
| 4266 | Export a single iCalendar file containing entries from all agenda files. | 4507 | Export a single iCalendar file containing entries from all agenda files. |
| 4267 | 4508 | ||
| 4509 | @tsubheading{Exporting to a file} | ||
| 4510 | @kindex C-x C-w | ||
| 4511 | @item C-x C-w | ||
| 4512 | @cindex exporting agenda views | ||
| 4513 | @cindex agenda views, exporting | ||
| 4514 | Write the agenda view to a file. Depending on the extension of the | ||
| 4515 | selected file name, the view will be exported as HTML (extension | ||
| 4516 | @file{.html} or @file{.htm}), Postscript (extension @file{.ps}), or | ||
| 4517 | plain text (any other extension). Use the variable | ||
| 4518 | @code{org-agenda-exporter-settings} to set options for @file{ps-print} | ||
| 4519 | and for @file{htmlize} to be used during export. | ||
| 4520 | |||
| 4268 | @tsubheading{Quit and Exit} | 4521 | @tsubheading{Quit and Exit} |
| 4269 | @kindex q | 4522 | @kindex q |
| 4270 | @item q | 4523 | @item q |
| 4271 | Quit agenda, remove the agenda buffer. | 4524 | Quit agenda, remove the agenda buffer. |
| 4272 | 4525 | @c | |
| 4273 | @kindex x | 4526 | @kindex x |
| 4274 | @cindex agenda files, removing buffers | 4527 | @cindex agenda files, removing buffers |
| 4275 | @item x | 4528 | @item x |
| 4276 | Exit agenda, remove the agenda buffer and all buffers loaded by Emacs | 4529 | Exit agenda, remove the agenda buffer and all buffers loaded by Emacs |
| 4277 | for the compilation of the agenda. Buffers created by the user to | 4530 | for the compilation of the agenda. Buffers created by the user to |
| 4278 | visit org files will not be removed. | 4531 | visit org files will not be removed. |
| 4279 | |||
| 4280 | @end table | 4532 | @end table |
| 4281 | 4533 | ||
| 4282 | 4534 | ||
| @@ -4294,7 +4546,8 @@ dispatcher (@pxref{Agenda dispatcher}), just like the default commands. | |||
| 4294 | * Storing searches:: Type once, use often | 4546 | * Storing searches:: Type once, use often |
| 4295 | * Block agenda:: All the stuff you need in a single buffer | 4547 | * Block agenda:: All the stuff you need in a single buffer |
| 4296 | * Setting Options:: Changing the rules | 4548 | * Setting Options:: Changing the rules |
| 4297 | * Batch processing:: Agenda views from the command line | 4549 | * Exporting Agenda Views:: Writing agendas to files. |
| 4550 | * Extracting Agenda Information for other programs:: | ||
| 4298 | @end menu | 4551 | @end menu |
| 4299 | 4552 | ||
| 4300 | @node Storing searches, Block agenda, Custom agenda views, Custom agenda views | 4553 | @node Storing searches, Block agenda, Custom agenda views, Custom agenda views |
| @@ -4386,7 +4639,7 @@ your agenda for the current week, all TODO items that carry the tag | |||
| 4386 | command @kbd{C-c a o} provides a similar view for office tasks. | 4639 | command @kbd{C-c a o} provides a similar view for office tasks. |
| 4387 | 4640 | ||
| 4388 | 4641 | ||
| 4389 | @node Setting Options, Batch processing, Block agenda, Custom agenda views | 4642 | @node Setting Options, Exporting Agenda Views, Block agenda, Custom agenda views |
| 4390 | @subsection Setting Options for custom commands | 4643 | @subsection Setting Options for custom commands |
| 4391 | @cindex options, for custom agenda views | 4644 | @cindex options, for custom agenda views |
| 4392 | 4645 | ||
| @@ -4434,7 +4687,8 @@ the results for GARDEN tags query in the opposite order, | |||
| 4434 | '(("h" "Agenda and Home-related tasks" | 4687 | '(("h" "Agenda and Home-related tasks" |
| 4435 | ((agenda) | 4688 | ((agenda) |
| 4436 | (tags-todo "HOME") | 4689 | (tags-todo "HOME") |
| 4437 | (tags "GARDEN" ((org-agenda-sorting-strategy '(priority-up))))) | 4690 | (tags "GARDEN" |
| 4691 | ((org-agenda-sorting-strategy '(priority-up))))) | ||
| 4438 | ((org-agenda-sorting-strategy '(priority-down)))) | 4692 | ((org-agenda-sorting-strategy '(priority-down)))) |
| 4439 | ("o" "Agenda and Office-related tasks" | 4693 | ("o" "Agenda and Office-related tasks" |
| 4440 | ((agenda) | 4694 | ((agenda) |
| @@ -4450,36 +4704,234 @@ this interface, the @emph{values} are just lisp expressions. So if the | |||
| 4450 | value is a string, you need to add the double quotes around the value | 4704 | value is a string, you need to add the double quotes around the value |
| 4451 | yourself. | 4705 | yourself. |
| 4452 | 4706 | ||
| 4453 | @node Batch processing, , Setting Options, Custom agenda views | ||
| 4454 | @subsection Creating agenda views in batch processing | ||
| 4455 | @cindex agenda, batch production | ||
| 4456 | 4707 | ||
| 4457 | If you want to print or otherwise reprocess agenda views, it can be | 4708 | @node Exporting Agenda Views, Extracting Agenda Information for other programs, Setting Options, Custom agenda views |
| 4458 | useful to create an agenda from the command line. This is the purpose | 4709 | @subsection Exporting Agenda Views |
| 4459 | of the function @code{org-batch-agenda}. It takes as a parameter one of | 4710 | @cindex agenda views, exporting |
| 4460 | the strings that are the keys in @code{org-agenda-custom-commands}. For | 4711 | |
| 4461 | example, to directly print the current TODO list, you could use | 4712 | If you are away from your computer, it can be very useful to have a |
| 4713 | printed version of some agenda views to carry around. Org-mode can | ||
| 4714 | export custom agenda views as plain text, HTML@footnote{You need to | ||
| 4715 | install Hrvoje Niksic' @file{htmlize.el}.} and postscript. If you want | ||
| 4716 | to do this only occasionally, use the commend | ||
| 4717 | |||
| 4718 | @table @kbd | ||
| 4719 | @kindex C-x C-w | ||
| 4720 | @item C-x C-w | ||
| 4721 | @cindex exporting agenda views | ||
| 4722 | @cindex agenda views, exporting | ||
| 4723 | Write the agenda view to a file. Depending on the extension of the | ||
| 4724 | selected file name, the view will be exported as HTML (extension | ||
| 4725 | @file{.html} or @file{.htm}), Postscript (extension @file{.ps}), or | ||
| 4726 | plain text (any other extension). Use the variable | ||
| 4727 | @code{org-agenda-exporter-settings} to set options for @file{ps-print} | ||
| 4728 | and for @file{htmlize} to be used during export, for example | ||
| 4729 | @lisp | ||
| 4730 | (setq org-agenda-exporter-settings | ||
| 4731 | '((ps-number-of-columns 2) | ||
| 4732 | (ps-landscape-mode t) | ||
| 4733 | (htmlize-output-type 'css))) | ||
| 4734 | @end lisp | ||
| 4735 | @end table | ||
| 4736 | |||
| 4737 | If you need to export certain agenda views frequently, you can associate | ||
| 4738 | any custom agenda command with a list of output file names | ||
| 4739 | @footnote{If you want to store standard views like the weekly agenda | ||
| 4740 | or the global TODO list as well, you need to define custom commands for | ||
| 4741 | them in order to be able to specify filenames.}. Here is an example | ||
| 4742 | that first does define custom commands for the agenda and the global | ||
| 4743 | todo list, together with a number of files to which to export them. | ||
| 4744 | Then we define two block agenda commands and specify filenames for them | ||
| 4745 | as well. File names can be relative to the current working directory, | ||
| 4746 | or absolute. | ||
| 4747 | |||
| 4748 | @lisp | ||
| 4749 | @group | ||
| 4750 | (setq org-agenda-custom-commands | ||
| 4751 | '(("X" agenda "" nil ("agenda.html" "agenda.ps")) | ||
| 4752 | ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps")) | ||
| 4753 | ("h" "Agenda and Home-related tasks" | ||
| 4754 | ((agenda) | ||
| 4755 | (tags-todo "HOME") | ||
| 4756 | (tags "GARDEN")) | ||
| 4757 | nil | ||
| 4758 | ("~/views/home.html")) | ||
| 4759 | ("o" "Agenda and Office-related tasks" | ||
| 4760 | ((agenda) | ||
| 4761 | (tags-todo "WORK") | ||
| 4762 | (tags "OFFICE")) | ||
| 4763 | nil | ||
| 4764 | ("~/views/office.ps")))) | ||
| 4765 | @end group | ||
| 4766 | @end lisp | ||
| 4767 | |||
| 4768 | The extension of the file name determines the type of export. If it is | ||
| 4769 | @file{.html}, Org-mode will use the @file{htmlize.el} package to convert | ||
| 4770 | the buffer to HTML and save it to this file name. If the extension is | ||
| 4771 | @file{.ps}, @code{ps-print-buffer-with-faces} is used to produce | ||
| 4772 | postscript output. Any other extension produces a plain ASCII file. | ||
| 4773 | |||
| 4774 | The export files are @emph{not} created when you use one of those | ||
| 4775 | commands interactively. Instead, there is a special command to produce | ||
| 4776 | @emph{all} specified files in one step: | ||
| 4777 | |||
| 4778 | @table @kbd | ||
| 4779 | @kindex C-c a e | ||
| 4780 | @item C-c a e | ||
| 4781 | Export all agenda views that have export filenames associated with | ||
| 4782 | them. | ||
| 4783 | @end table | ||
| 4784 | |||
| 4785 | You can use the options section of the custom agenda commands to also | ||
| 4786 | set options for the export commands. For example: | ||
| 4787 | |||
| 4788 | @lisp | ||
| 4789 | (setq org-agenda-custom-commands | ||
| 4790 | '(("X" agenda "" | ||
| 4791 | ((ps-number-of-columns 2) | ||
| 4792 | (ps-landscape-mode t) | ||
| 4793 | (org-agenda-prefix-format " [ ] ") | ||
| 4794 | (org-agenda-with-colors nil) | ||
| 4795 | (org-agenda-remove-tags t)) | ||
| 4796 | ("theagenda.ps")))) | ||
| 4797 | @end lisp | ||
| 4798 | |||
| 4799 | @noindent | ||
| 4800 | This command sets two options for the postscript exporter, to make it | ||
| 4801 | print in two columns in landscape format - the resulting page can be cut | ||
| 4802 | in two and then used in a paper agenda. The remaining settings modify | ||
| 4803 | the agenda prefix to omit category and scheduling information, and | ||
| 4804 | instead include a checkbox to check off items. We also remove the tags | ||
| 4805 | to make the lines compact, and we don't want to use colors for the | ||
| 4806 | black-and-white printer. Settings specified in | ||
| 4807 | @code{org-agenda-exporter-settings} will also apply, but the settings | ||
| 4808 | in @code{org-agenda-custom-commands} take precedence. | ||
| 4809 | |||
| 4810 | @noindent | ||
| 4811 | From the command line you may also use | ||
| 4812 | @example | ||
| 4813 | emacs -f org-batch-store-agenda-views -kill | ||
| 4814 | @end example | ||
| 4815 | @noindent | ||
| 4816 | or, if you need to modify some parameters | ||
| 4817 | @example | ||
| 4818 | emacs -eval '(org-batch-store-agenda-views \ | ||
| 4819 | org-agenda-ndays 30 \ | ||
| 4820 | org-agenda-include-diary nil \ | ||
| 4821 | org-agenda-files (quote ("~/org/project.org")))' \ | ||
| 4822 | -kill | ||
| 4823 | @end example | ||
| 4824 | @noindent | ||
| 4825 | which will create the agenda views restricted to the file | ||
| 4826 | @file{~/org/project.org}, without diary entries and with 30 days | ||
| 4827 | extent. | ||
| 4828 | |||
| 4829 | @node Extracting Agenda Information for other programs, , Exporting Agenda Views, Custom agenda views | ||
| 4830 | @subsection Extracting Agenda Information for other programs | ||
| 4831 | @cindex agenda, pipe | ||
| 4832 | @cindex Scripts, for agenda processing | ||
| 4833 | |||
| 4834 | Org-mode provides commands to access agenda information for the command | ||
| 4835 | line in emacs batch mode. This extracted information can be sent | ||
| 4836 | directly to a printer, or it can be read by a program that does further | ||
| 4837 | processing of the data. The first of these commands is the function | ||
| 4838 | @code{org-batch-agenda}, that produces an agenda view and sends it as | ||
| 4839 | ASCII text to STDOUT. The command takes a single string as parameter. | ||
| 4840 | If the string has length 1, it is used as a key to one of the commands | ||
| 4841 | you have configured in @code{org-agenda-custom-commands}, basically any | ||
| 4842 | key you can use after @kbd{C-c a}. For example, to directly print the | ||
| 4843 | current TODO list, you could use | ||
| 4462 | 4844 | ||
| 4463 | @example | 4845 | @example |
| 4464 | emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr | 4846 | emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr |
| 4465 | @end example | 4847 | @end example |
| 4466 | 4848 | ||
| 4849 | If the parameter is a string with 2 or more characters, it is used as a | ||
| 4850 | tags/todo match string. For example, to print your local shopping list | ||
| 4851 | (all items with the tag @samp{shop}, but excluding the tag | ||
| 4852 | @samp{NewYork}), you could use | ||
| 4853 | |||
| 4854 | @example | ||
| 4855 | emacs -batch -l ~/.emacs \ | ||
| 4856 | -eval '(org-batch-agenda "+shop-NewYork")' | lpr | ||
| 4857 | @end example | ||
| 4858 | |||
| 4467 | @noindent | 4859 | @noindent |
| 4468 | You may also modify parameters on the fly like this: | 4860 | You may also modify parameters on the fly like this: |
| 4469 | 4861 | ||
| 4470 | @example | 4862 | @example |
| 4471 | emacs -batch -l ~/.emacs \ | 4863 | emacs -batch -l ~/.emacs \ |
| 4472 | -eval '(org-batch-agenda "a" \ | 4864 | -eval '(org-batch-agenda "a" \ |
| 4473 | org-agenda-ndays 300 \ | 4865 | org-agenda-ndays 30 \ |
| 4474 | org-agenda-include-diary nil \ | 4866 | org-agenda-include-diary nil \ |
| 4475 | org-agenda-files (quote ("~/org/project.org")))' \ | 4867 | org-agenda-files (quote ("~/org/project.org")))' \ |
| 4476 | | lpr | 4868 | | lpr |
| 4477 | @end example | 4869 | @end example |
| 4478 | 4870 | ||
| 4479 | @noindent | 4871 | @noindent |
| 4480 | which will produce a 300 day agenda, fully restricted to the Org file | 4872 | which will produce a 30 day agenda, fully restricted to the Org file |
| 4481 | @file{~/org/projects.org}, not even including the diary. | 4873 | @file{~/org/projects.org}, not even including the diary. |
| 4482 | 4874 | ||
| 4875 | If you want to process the agenda data in more sophisticated ways, you | ||
| 4876 | can use the command @code{org-batch-agenda-csv} to get a comma-separated | ||
| 4877 | list of values for each agenda item. Each line in the output will | ||
| 4878 | contain a number of fields separated by commas. The fields in a line | ||
| 4879 | are: | ||
| 4880 | |||
| 4881 | @example | ||
| 4882 | category @r{The category of the item} | ||
| 4883 | head @r{The headline, without TODO kwd, TAGS and PRIORITY} | ||
| 4884 | type @r{The type of the agenda entry, can be} | ||
| 4885 | todo @r{selected in TODO match} | ||
| 4886 | tagsmatch @r{selected in tags match} | ||
| 4887 | diary @r{imported from diary} | ||
| 4888 | deadline @r{a deadline} | ||
| 4889 | scheduled @r{scheduled} | ||
| 4890 | timestamp @r{appointment, selected by timestamp} | ||
| 4891 | closed @r{entry was closed on date} | ||
| 4892 | upcoming-deadline @r{warning about nearing deadline} | ||
| 4893 | past-scheduled @r{forwarded scheduled item} | ||
| 4894 | block @r{entry has date block including date} | ||
| 4895 | todo @r{The todo keyword, if any} | ||
| 4896 | tags @r{All tags including inherited ones, separated by colons} | ||
| 4897 | date @r{The relevant date, like 2007-2-14} | ||
| 4898 | time @r{The time, like 15:00-16:50} | ||
| 4899 | extra @r{String with extra planning info} | ||
| 4900 | priority-l @r{The priority letter if any was given} | ||
| 4901 | priority-n @r{The computed numerical priority} | ||
| 4902 | @end example | ||
| 4903 | |||
| 4904 | @noindent | ||
| 4905 | Time and date will only be given if a timestamp (or deadline/scheduled) | ||
| 4906 | lead to the selection of the item. | ||
| 4907 | |||
| 4908 | A CSV list like this is very easy to use in a post processing script. | ||
| 4909 | For example, here is a Perl program that gets the TODO list from | ||
| 4910 | Emacs/org-mode and prints all the items, preceded by a checkbox: | ||
| 4911 | |||
| 4912 | @example | ||
| 4913 | @group | ||
| 4914 | #!/usr/bin/perl | ||
| 4915 | |||
| 4916 | # define the Emacs command to run | ||
| 4917 | $cmd = "emacs -batch -l ~/.emacs -eval '(org-batch-agenda-csv \"t\")'"; | ||
| 4918 | |||
| 4919 | # run it and capture the output | ||
| 4920 | $agenda = qx@{$cmd 2>/dev/null@}; | ||
| 4921 | |||
| 4922 | # loop over all lines | ||
| 4923 | foreach $line (split(/\n/,$agenda)) @{ | ||
| 4924 | |||
| 4925 | # get the individual values | ||
| 4926 | ($category,$head,$type,$todo,$tags,$date,$time,$extra, | ||
| 4927 | $priority_l,$priority_n) = split(/,/,$line); | ||
| 4928 | |||
| 4929 | # proccess and print | ||
| 4930 | print "[ ] $head\n"; | ||
| 4931 | @} | ||
| 4932 | @end group | ||
| 4933 | @end example | ||
| 4934 | |||
| 4483 | @node Embedded LaTeX, Exporting, Agenda views, Top | 4935 | @node Embedded LaTeX, Exporting, Agenda views, Top |
| 4484 | @chapter Embedded LaTeX | 4936 | @chapter Embedded LaTeX |
| 4485 | @cindex @TeX{} interpretation | 4937 | @cindex @TeX{} interpretation |
| @@ -4566,7 +5018,9 @@ preview the typeset result of these fragments, and upon export to HTML, | |||
| 4566 | all fragments will be converted to images and inlined into the HTML | 5018 | all fragments will be converted to images and inlined into the HTML |
| 4567 | document. For this to work you need to be on a system with a working | 5019 | document. For this to work you need to be on a system with a working |
| 4568 | La@TeX{} installation. You also need the @file{dvipng} program, | 5020 | La@TeX{} installation. You also need the @file{dvipng} program, |
| 4569 | available at @url{http://sourceforge.net/projects/dvipng/}. | 5021 | available at @url{http://sourceforge.net/projects/dvipng/}. The LaTeX |
| 5022 | header that will be used when processing a fragment can be configured | ||
| 5023 | with the variable @code{org-format-latex-header}. | ||
| 4570 | 5024 | ||
| 4571 | La@TeX{} fragments don't need any special marking at all. The following | 5025 | La@TeX{} fragments don't need any special marking at all. The following |
| 4572 | snippets will be identified as LaTeX source code: | 5026 | snippets will be identified as LaTeX source code: |
| @@ -4773,7 +5227,7 @@ HTML formatting, in ways similar to John Grubers @emph{markdown} | |||
| 4773 | language, but with additional support for tables. | 5227 | language, but with additional support for tables. |
| 4774 | 5228 | ||
| 4775 | @menu | 5229 | @menu |
| 4776 | * Export commands:: How to invode HTML export | 5230 | * Export commands:: How to invoke HTML export |
| 4777 | * Quoting HTML tags:: Using direct HTML in Org-mode | 5231 | * Quoting HTML tags:: Using direct HTML in Org-mode |
| 4778 | * Links:: How hyperlinks get transferred to HTML | 5232 | * Links:: How hyperlinks get transferred to HTML |
| 4779 | * Images:: To inline or not to inline? | 5233 | * Images:: To inline or not to inline? |
| @@ -4793,11 +5247,27 @@ Export as HTML file @file{myfile.html}. | |||
| 4793 | @kindex C-c C-e b | 5247 | @kindex C-c C-e b |
| 4794 | @item C-c C-e b | 5248 | @item C-c C-e b |
| 4795 | Export as HTML file and open it with a browser. | 5249 | Export as HTML file and open it with a browser. |
| 5250 | @kindex C-c C-e H | ||
| 5251 | @item C-c C-e H | ||
| 5252 | Export to a temporary buffer, do not create a file. | ||
| 5253 | @kindex C-c C-e R | ||
| 5254 | @item C-c C-e H | ||
| 5255 | Export the active region to a temporary buffer. With prefix arg, do not | ||
| 5256 | produce file header and foot, but just the plain HTML section for the | ||
| 5257 | region. This is good for cut-and-paste operations. | ||
| 4796 | @kindex C-c C-e v h | 5258 | @kindex C-c C-e v h |
| 4797 | @kindex C-c C-e v b | 5259 | @kindex C-c C-e v b |
| 5260 | @kindex C-c C-e v H | ||
| 5261 | @kindex C-c C-e v R | ||
| 4798 | @item C-c C-e v h | 5262 | @item C-c C-e v h |
| 4799 | @item C-c C-e v b | 5263 | @item C-c C-e v b |
| 5264 | @item C-c C-e v H | ||
| 5265 | @item C-c C-e v R | ||
| 4800 | Export only the visible part of the document. | 5266 | Export only the visible part of the document. |
| 5267 | @item M-x org-export-region-as-html | ||
| 5268 | Convert the region to HTML under the assumption that it was org-mode | ||
| 5269 | syntax before. This is a global command that can be invoked in any | ||
| 5270 | buffer. | ||
| 4801 | @end table | 5271 | @end table |
| 4802 | 5272 | ||
| 4803 | @cindex headline levels, for exporting | 5273 | @cindex headline levels, for exporting |
| @@ -4975,19 +5445,20 @@ in order to produce better output. | |||
| 4975 | 5445 | ||
| 4976 | @menu | 5446 | @menu |
| 4977 | * Comment lines:: Some lines will not be exported | 5447 | * Comment lines:: Some lines will not be exported |
| 5448 | * Initial text:: Text before the first headline | ||
| 5449 | * Footnotes:: Numbers like [1] | ||
| 4978 | * Enhancing text:: Subscripts, symbols and more | 5450 | * Enhancing text:: Subscripts, symbols and more |
| 4979 | * Export options:: How to influence the export settings | 5451 | * Export options:: How to influence the export settings |
| 4980 | @end menu | 5452 | @end menu |
| 4981 | 5453 | ||
| 4982 | @node Comment lines, Enhancing text, Text interpretation, Text interpretation | 5454 | @node Comment lines, Initial text, Text interpretation, Text interpretation |
| 4983 | @subsection Comment lines | 5455 | @subsection Comment lines |
| 4984 | @cindex comment lines | 5456 | @cindex comment lines |
| 4985 | @cindex exporting, not | 5457 | @cindex exporting, not |
| 4986 | 5458 | ||
| 4987 | Lines starting with @samp{#} in column zero are treated as comments | 5459 | Lines starting with @samp{#} in column zero are treated as comments |
| 4988 | and will never be exported. Also entire subtrees starting with the | 5460 | and will never be exported. Also entire subtrees starting with the |
| 4989 | word @samp{COMMENT} will never be exported. Finally, any text before | 5461 | word @samp{COMMENT} will never be exported. |
| 4990 | the first headline will not be exported either. | ||
| 4991 | 5462 | ||
| 4992 | @table @kbd | 5463 | @table @kbd |
| 4993 | @kindex C-c ; | 5464 | @kindex C-c ; |
| @@ -4995,7 +5466,70 @@ the first headline will not be exported either. | |||
| 4995 | Toggle the COMMENT keyword at the beginning of an entry. | 5466 | Toggle the COMMENT keyword at the beginning of an entry. |
| 4996 | @end table | 5467 | @end table |
| 4997 | 5468 | ||
| 4998 | @node Enhancing text, Export options, Comment lines, Text interpretation | 5469 | @node Initial text, Footnotes, Comment lines, Text interpretation |
| 5470 | @subsection Text before the first headline | ||
| 5471 | |||
| 5472 | Org-mode normally ignores any text before the first headline when | ||
| 5473 | exporting, leaving this region for internal links to speed up navigation | ||
| 5474 | etc. However, in publishing-oriented files, you might want to have some | ||
| 5475 | text before the first headline, like a small introduction, special HTML | ||
| 5476 | code with a navigation bar, etc. You can ask to have this part of the | ||
| 5477 | file exported as well by setting the variable | ||
| 5478 | @code{org-export-skip-text-before-1st-heading} to @code{nil}. On a | ||
| 5479 | per-file basis, you can get the same effect with | ||
| 5480 | |||
| 5481 | @example | ||
| 5482 | #+OPTIONS: skip:nil | ||
| 5483 | @end example | ||
| 5484 | |||
| 5485 | The text before the first headline will be fully processed | ||
| 5486 | (@pxref{Enhancing text}), and the first non-comment line becomes the | ||
| 5487 | title of the exported document. If you need to include literal HTML, | ||
| 5488 | use the special constructs described in @ref{Quoting HTML tags}. The | ||
| 5489 | table of contents is normally inserted directly before the first | ||
| 5490 | headline of the file. If you would like to get it to a different | ||
| 5491 | location, insert the string @code{[TABLE-OF-CONTENTS]} on a line by | ||
| 5492 | itself at the desired location. | ||
| 5493 | |||
| 5494 | Finally, if you want to use the space before the first headline for | ||
| 5495 | internal purposes, but @emph{still} want to place something before the | ||
| 5496 | first headline when exporting the file, you can use the @code{#+TEXT} | ||
| 5497 | construct: | ||
| 5498 | |||
| 5499 | @example | ||
| 5500 | #+OPTIONS: skip:t | ||
| 5501 | #+TEXT: This text will go before the *first* headline. | ||
| 5502 | #+TEXT: We place the table of contents here: | ||
| 5503 | #+TEXT: [TABLE-OF-CONTENTS] | ||
| 5504 | #+TEXT: This goes between the table of contents and the first headline | ||
| 5505 | @end example | ||
| 5506 | |||
| 5507 | @node Footnotes, Enhancing text, Initial text, Text interpretation | ||
| 5508 | @subsection Footnotes | ||
| 5509 | @cindex footnotes | ||
| 5510 | @cindex @file{footnote.el} | ||
| 5511 | |||
| 5512 | Numbers in square brackets are treated as footnotes, so that you can use | ||
| 5513 | the Emacs package @file{footnote.el} to create footnotes. For example: | ||
| 5514 | |||
| 5515 | @example | ||
| 5516 | The org-mode homepage[1] clearly needs help from | ||
| 5517 | a good web designer. | ||
| 5518 | |||
| 5519 | [1] The link is: http://www.astro.uva.nl/~dominik/Tools/org | ||
| 5520 | @end example | ||
| 5521 | |||
| 5522 | @noindent | ||
| 5523 | @kindex C-c ! | ||
| 5524 | Note that the @file{footnote} package uses @kbd{C-c !} to invoke its | ||
| 5525 | commands. This binding conflicts with the org-mode command for | ||
| 5526 | inserting inactive time stamps. You could use the variable | ||
| 5527 | @code{footnote-prefix} to switch footnotes commands to another key. Or, | ||
| 5528 | if you are too used to this binding, you could use | ||
| 5529 | @code{org-replace-disputed-keys} and @code{org-disputed-keys} to change | ||
| 5530 | the settings in Org-mode. | ||
| 5531 | |||
| 5532 | @node Enhancing text, Export options, Footnotes, Text interpretation | ||
| 4999 | @subsection Enhancing text for export | 5533 | @subsection Enhancing text for export |
| 5000 | @cindex enhancing text | 5534 | @cindex enhancing text |
| 5001 | @cindex richer text | 5535 | @cindex richer text |
| @@ -5019,7 +5553,9 @@ backend supports lists. See @xref{Plain lists}. | |||
| 5019 | @cindex italic text | 5553 | @cindex italic text |
| 5020 | @item | 5554 | @item |
| 5021 | You can make words @b{*bold*}, @i{/italic/}, _underlined_, | 5555 | You can make words @b{*bold*}, @i{/italic/}, _underlined_, |
| 5022 | @code{=code=}, and @samp{+strikethrough+}. | 5556 | @code{=code=}, and even @samp{+strikethrough+}@footnote{but remember |
| 5557 | that strikethrough is typographically evil and should @i{never} be | ||
| 5558 | used.}. | ||
| 5023 | 5559 | ||
| 5024 | @cindex horizontal rules, in exported files | 5560 | @cindex horizontal rules, in exported files |
| 5025 | @item | 5561 | @item |
| @@ -5057,7 +5593,7 @@ this position. | |||
| 5057 | @end itemize | 5593 | @end itemize |
| 5058 | 5594 | ||
| 5059 | If these conversions conflict with your habits of typing ASCII text, | 5595 | If these conversions conflict with your habits of typing ASCII text, |
| 5060 | they can all be turned off with corresponding variables (see the | 5596 | they can all be turned off with corresponding variables. See the |
| 5061 | customization group @code{org-export-general}, and the following section | 5597 | customization group @code{org-export-general}, and the following section |
| 5062 | which explains how to set export options with special lines in a | 5598 | which explains how to set export options with special lines in a |
| 5063 | buffer. | 5599 | buffer. |
| @@ -5088,7 +5624,7 @@ Insert template with export options, see example below. | |||
| 5088 | #+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language}) | 5624 | #+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language}) |
| 5089 | #+TEXT: Some descriptive text to be inserted at the beginning. | 5625 | #+TEXT: Some descriptive text to be inserted at the beginning. |
| 5090 | #+TEXT: Several lines may be given. | 5626 | #+TEXT: Several lines may be given. |
| 5091 | #+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t *:nil TeX:t LaTeX:t | 5627 | #+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t *:nil TeX:t LaTeX:t skip:t |
| 5092 | @end example | 5628 | @end example |
| 5093 | 5629 | ||
| 5094 | @noindent | 5630 | @noindent |
| @@ -5113,10 +5649,13 @@ toc: @r{turn on/off table of contents, or set level limit (integer)} | |||
| 5113 | @@: @r{turn on/off quoted HTML tags} | 5649 | @@: @r{turn on/off quoted HTML tags} |
| 5114 | :: @r{turn on/off fixed-width sections} | 5650 | :: @r{turn on/off fixed-width sections} |
| 5115 | |: @r{turn on/off tables} | 5651 | |: @r{turn on/off tables} |
| 5116 | ^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.} | 5652 | ^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts. If} |
| 5653 | @r{you write "^:@{@}", @code{a_@{b@}} will be interpreted, but} | ||
| 5654 | @r{the simple @code{a_b} will be left as it is.} | ||
| 5117 | *: @r{turn on/off emphasized text (bold, italic, underlined)} | 5655 | *: @r{turn on/off emphasized text (bold, italic, underlined)} |
| 5118 | TeX: @r{turn on/off simple @TeX{} macros in plain text} | 5656 | TeX: @r{turn on/off simple @TeX{} macros in plain text} |
| 5119 | LaTeX: @r{turn on/off La@TeX{} fragments} | 5657 | LaTeX: @r{turn on/off La@TeX{} fragments} |
| 5658 | skip: @r{turn on/off skipping the text before the first heading} | ||
| 5120 | @end example | 5659 | @end example |
| 5121 | 5660 | ||
| 5122 | @node Publishing, Miscellaneous, Exporting, Top | 5661 | @node Publishing, Miscellaneous, Exporting, Top |
| @@ -5444,13 +5983,13 @@ Once org-publish is properly configured, you can publish with the | |||
| 5444 | following functions: | 5983 | following functions: |
| 5445 | 5984 | ||
| 5446 | @table @kbd | 5985 | @table @kbd |
| 5447 | @item C-c C-e c | 5986 | @item C-c C-e C |
| 5448 | Prompt for a specific project and publish all files that belong to it. | 5987 | Prompt for a specific project and publish all files that belong to it. |
| 5449 | @item C-c C-e p | 5988 | @item C-c C-e P |
| 5450 | Publish the project containing the current file. | 5989 | Publish the project containing the current file. |
| 5451 | @item C-c C-e f | 5990 | @item C-c C-e F |
| 5452 | Publish only the current file. | 5991 | Publish only the current file. |
| 5453 | @item C-c C-e a | 5992 | @item C-c C-e A |
| 5454 | Publish all projects. | 5993 | Publish all projects. |
| 5455 | @end table | 5994 | @end table |
| 5456 | 5995 | ||
| @@ -5584,11 +6123,15 @@ Logging TODO state changes and clock intervals (variable | |||
| 5584 | @cindex @code{lognotedone}, STARTUP keyword | 6123 | @cindex @code{lognotedone}, STARTUP keyword |
| 5585 | @cindex @code{lognoteclock-out}, STARTUP keyword | 6124 | @cindex @code{lognoteclock-out}, STARTUP keyword |
| 5586 | @cindex @code{lognotestate}, STARTUP keyword | 6125 | @cindex @code{lognotestate}, STARTUP keyword |
| 6126 | @cindex @code{logrepeat}, STARTUP keyword | ||
| 6127 | @cindex @code{nologrepeat}, STARTUP keyword | ||
| 5587 | @example | 6128 | @example |
| 5588 | logging @r{record a timestamp when an item is marked DONE} | 6129 | logging @r{record a timestamp when an item is marked DONE} |
| 5589 | nologging @r{don't record when items are marked DONE} | 6130 | nologging @r{don't record when items are marked DONE} |
| 5590 | lognotedone @r{record timestamp and a note when DONE} | 6131 | lognotedone @r{record timestamp and a note when DONE} |
| 5591 | lognotestate @r{record timestamp, note when TODO state changes} | 6132 | lognotestate @r{record timestamp, note when TODO state changes} |
| 6133 | logrepeat @r{record a not when re-instating a repeating item} | ||
| 6134 | nologrepeat @r{do not record when re-instating repeating item} | ||
| 5592 | lognoteclock-out @r{record timestamp and a note when clocking out} | 6135 | lognoteclock-out @r{record timestamp and a note when clocking out} |
| 5593 | @end example | 6136 | @end example |
| 5594 | Here are the options for hiding leading stars in outline headings. The | 6137 | Here are the options for hiding leading stars in outline headings. The |
| @@ -5612,6 +6155,14 @@ To turn on custom format overlays over time stamps (variables | |||
| 5612 | @example | 6155 | @example |
| 5613 | customtime @r{overlay custom time format} | 6156 | customtime @r{overlay custom time format} |
| 5614 | @end example | 6157 | @end example |
| 6158 | The following options influence the table spreadsheet (variable | ||
| 6159 | @code{constants-unit-system}). | ||
| 6160 | @cindex @code{constcgs}, STARTUP keyword | ||
| 6161 | @cindex @code{constSI}, STARTUP keyword | ||
| 6162 | @example | ||
| 6163 | constcgs @r{@file{constants.el} should use the c-g-s unit system} | ||
| 6164 | constSI @r{@file{constants.el} should use the SI unit system} | ||
| 6165 | @end example | ||
| 5615 | @item #+SEQ_TODO: #+TYP_TODO: | 6166 | @item #+SEQ_TODO: #+TYP_TODO: |
| 5616 | These lines set the TODO keywords and their interpretation in the | 6167 | These lines set the TODO keywords and their interpretation in the |
| 5617 | current file. The corresponding variables are @code{org-todo-keywords} | 6168 | current file. The corresponding variables are @code{org-todo-keywords} |
| @@ -5633,6 +6184,10 @@ This line sets the archive location for the agenda file. It applies for | |||
| 5633 | all subsequent lines until the next @samp{#+CATEGORY} line, or the end | 6184 | all subsequent lines until the next @samp{#+CATEGORY} line, or the end |
| 5634 | of the file. The first such line also applies to any entries before it. | 6185 | of the file. The first such line also applies to any entries before it. |
| 5635 | The corresponding variable is @code{org-archive-location}. | 6186 | The corresponding variable is @code{org-archive-location}. |
| 6187 | @item #+PRIORITIES: highest lowest default | ||
| 6188 | This line sets the limits and the default for the priorities. All three | ||
| 6189 | must be either letters A-Z or numbers 0-9. The highest priority must | ||
| 6190 | have a lower ASCII number that the lowest priority. | ||
| 5636 | @item #+TBLFM: | 6191 | @item #+TBLFM: |
| 5637 | This line contains the formulas for the table directly above the line. | 6192 | This line contains the formulas for the table directly above the line. |
| 5638 | @item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS: | 6193 | @item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS: |
| @@ -5816,10 +6371,12 @@ rather use @kbd{C-c .} to re-insert the timestamp. | |||
| 5816 | @item @kbd{S-@key{RET}} @tab @kbd{C-c C-x c} @tab | 6371 | @item @kbd{S-@key{RET}} @tab @kbd{C-c C-x c} @tab |
| 5817 | @item @kbd{M-@key{RET}} @tab @kbd{C-c C-x m} @tab @kbd{@key{Esc} @key{RET}} | 6372 | @item @kbd{M-@key{RET}} @tab @kbd{C-c C-x m} @tab @kbd{@key{Esc} @key{RET}} |
| 5818 | @item @kbd{M-S-@key{RET}} @tab @kbd{C-c C-x M} @tab | 6373 | @item @kbd{M-S-@key{RET}} @tab @kbd{C-c C-x M} @tab |
| 5819 | @item @kbd{S-@key{left}} @tab @kbd{C-c C-x @key{left}} @tab | 6374 | @item @kbd{S-@key{left}} @tab @kbd{C-c @key{left}} @tab |
| 5820 | @item @kbd{S-@key{right}} @tab @kbd{C-c C-x @key{right}} @tab | 6375 | @item @kbd{S-@key{right}} @tab @kbd{C-c @key{right}} @tab |
| 5821 | @item @kbd{S-@key{up}} @tab @kbd{C-c C-x @key{up}} @tab | 6376 | @item @kbd{S-@key{up}} @tab @kbd{C-c @key{up}} @tab |
| 5822 | @item @kbd{S-@key{down}} @tab @kbd{C-c C-x @key{down}} @tab | 6377 | @item @kbd{S-@key{down}} @tab @kbd{C-c @key{down}} @tab |
| 6378 | @item @kbd{C-S-@key{left}} @tab @kbd{C-c C-x @key{left}} @tab | ||
| 6379 | @item @kbd{C-S-@key{right}} @tab @kbd{C-c C-x @key{right}} @tab | ||
| 5823 | @end multitable | 6380 | @end multitable |
| 5824 | 6381 | ||
| 5825 | @node Interaction, Bugs, TTY keys, Miscellaneous | 6382 | @node Interaction, Bugs, TTY keys, Miscellaneous |
| @@ -5887,7 +6444,7 @@ to execute Org-mode-related commands, leave the table. | |||
| 5887 | @item C-c C-c | 6444 | @item C-c C-c |
| 5888 | Recognize @file{table.el} table. Works when the cursor is in a | 6445 | Recognize @file{table.el} table. Works when the cursor is in a |
| 5889 | table.el table. | 6446 | table.el table. |
| 5890 | 6447 | @c | |
| 5891 | @kindex C-c ~ | 6448 | @kindex C-c ~ |
| 5892 | @item C-c ~ | 6449 | @item C-c ~ |
| 5893 | Insert a table.el table. If there is already a table at point, this | 6450 | Insert a table.el table. If there is already a table at point, this |
| @@ -5897,6 +6454,10 @@ format. See the documentation string of the command | |||
| 5897 | possible. | 6454 | possible. |
| 5898 | @end table | 6455 | @end table |
| 5899 | @file{table.el} is part of Emacs 22. | 6456 | @file{table.el} is part of Emacs 22. |
| 6457 | @cindex @file{footnote.el} | ||
| 6458 | @item @file{footnote.el} by Steven L. Baur | ||
| 6459 | Org-mode recognizes numerical footnotes as provided by this package | ||
| 6460 | (@pxref{Footnotes}). | ||
| 5900 | @end table | 6461 | @end table |
| 5901 | 6462 | ||
| 5902 | @node Conflicts, , Cooperation, Interaction | 6463 | @node Conflicts, , Cooperation, Interaction |
| @@ -5927,7 +6488,6 @@ during date selection). | |||
| 5927 | @example | 6488 | @example |
| 5928 | S-UP -> M-p S-DOWN -> M-n | 6489 | S-UP -> M-p S-DOWN -> M-n |
| 5929 | S-LEFT -> M-- S-RIGHT -> M-+ | 6490 | S-LEFT -> M-- S-RIGHT -> M-+ |
| 5930 | S-RET -> C-S-RET | ||
| 5931 | @end example | 6491 | @end example |
| 5932 | 6492 | ||
| 5933 | Yes, these are unfortunately more difficult to remember. If you want | 6493 | Yes, these are unfortunately more difficult to remember. If you want |
| @@ -5937,6 +6497,16 @@ to have other replacement keys, look at the variable | |||
| 5937 | @cindex @file{windmove.el} | 6497 | @cindex @file{windmove.el} |
| 5938 | Also this package uses the @kbd{S-<cursor>} keys, so everything written | 6498 | Also this package uses the @kbd{S-<cursor>} keys, so everything written |
| 5939 | in the paragraph above about CUA mode also applies here. | 6499 | in the paragraph above about CUA mode also applies here. |
| 6500 | |||
| 6501 | @cindex @file{footnote.el} | ||
| 6502 | @item @file{footnote.el} by Steven L. Baur | ||
| 6503 | Org-mode supports the syntax of the footnote package, but only the | ||
| 6504 | numerical footnote markers. Also, the default key for footnote | ||
| 6505 | commands, @kbd{C-c !} is already used by org-mode. You could use the | ||
| 6506 | variable @code{footnote-prefix} to switch footnotes commands to another | ||
| 6507 | key. Or, you could use @code{org-replace-disputed-keys} and | ||
| 6508 | @code{org-disputed-keys} to change the settings in Org-mode. | ||
| 6509 | |||
| 5940 | @end table | 6510 | @end table |
| 5941 | 6511 | ||
| 5942 | 6512 | ||
| @@ -6417,7 +6987,7 @@ MATCH is being ignored." | |||
| 6417 | @end lisp | 6987 | @end lisp |
| 6418 | 6988 | ||
| 6419 | 6989 | ||
| 6420 | @node History and Acknowledgments, GNU Free Documentation License, Extensions and Hacking, Top | 6990 | @node History and Acknowledgments, Index, Extensions and Hacking, Top |
| 6421 | @appendix History and Acknowledgments | 6991 | @appendix History and Acknowledgments |
| 6422 | @cindex acknowledgments | 6992 | @cindex acknowledgments |
| 6423 | @cindex history | 6993 | @cindex history |
| @@ -6478,6 +7048,9 @@ asked for a way to narrow wide table columns. | |||
| 6478 | @i{Christian Egli} converted the documentation into TeXInfo format, | 7048 | @i{Christian Egli} converted the documentation into TeXInfo format, |
| 6479 | patched CSS formatting into the HTML exporter, and inspired the agenda. | 7049 | patched CSS formatting into the HTML exporter, and inspired the agenda. |
| 6480 | @item | 7050 | @item |
| 7051 | @i{David Emery} provided a patch for custom CSS support in exported | ||
| 7052 | HTML agendas. | ||
| 7053 | @item | ||
| 6481 | @i{Nic Ferrier} contributed mailcap and XOXO support. | 7054 | @i{Nic Ferrier} contributed mailcap and XOXO support. |
| 6482 | @item | 7055 | @item |
| 6483 | @i{John Foerch} figured out how to make incremental search show context | 7056 | @i{John Foerch} figured out how to make incremental search show context |
| @@ -6490,13 +7063,19 @@ translated David O'Toole's tutorial into French. | |||
| 6490 | @item | 7063 | @item |
| 6491 | @i{Kai Grossjohann} pointed out key-binding conflicts with other packages. | 7064 | @i{Kai Grossjohann} pointed out key-binding conflicts with other packages. |
| 6492 | @item | 7065 | @item |
| 6493 | @i{Shidai Liu} (``Leo'') provided extensive feedback and some patches. | 7066 | @i{Shidai Liu} ("Leo") asked for embedded LaTeX and tested it. He also |
| 7067 | provided frequent feedback and some patches. | ||
| 6494 | @item | 7068 | @item |
| 6495 | @i{Leon Liu} asked for embedded LaTeX and tested it. | 7069 | @i{Jason F. McBrayer} suggested agenda export to CSV format. |
| 7070 | @item | ||
| 7071 | @i{Dmitri Minaev} sent a patch to set priority limits on a per-file | ||
| 7072 | basis. | ||
| 6496 | @item | 7073 | @item |
| 6497 | @i{Stefan Monnier} provided a patch to keep the Emacs-Lisp compiler | 7074 | @i{Stefan Monnier} provided a patch to keep the Emacs-Lisp compiler |
| 6498 | happy. | 7075 | happy. |
| 6499 | @item | 7076 | @item |
| 7077 | @i{Rick Moynihan} proposed to allow multiple TODO sequences in a file. | ||
| 7078 | @item | ||
| 6500 | @i{Todd Neal} provided patches for links to Info files and elisp forms. | 7079 | @i{Todd Neal} provided patches for links to Info files and elisp forms. |
| 6501 | @item | 7080 | @item |
| 6502 | @i{Tim O'Callaghan} suggested in-file links, search options for general | 7081 | @i{Tim O'Callaghan} suggested in-file links, search options for general |
| @@ -6568,12 +7147,8 @@ work on a tty. | |||
| 6568 | and contributed various ideas and code snippets. | 7147 | and contributed various ideas and code snippets. |
| 6569 | @end itemize | 7148 | @end itemize |
| 6570 | 7149 | ||
| 6571 | @node GNU Free Documentation License, Index, History and Acknowledgments, Top | ||
| 6572 | @appendix GNU Free Documentation License | ||
| 6573 | @include doclicense.texi | ||
| 6574 | |||
| 6575 | 7150 | ||
| 6576 | @node Index, Key Index, GNU Free Documentation License, Top | 7151 | @node Index, Key Index, History and Acknowledgments, Top |
| 6577 | @unnumbered Index | 7152 | @unnumbered Index |
| 6578 | 7153 | ||
| 6579 | @printindex cp | 7154 | @printindex cp |