diff options
| author | Carsten Dominik | 2005-06-29 07:13:11 +0000 |
|---|---|---|
| committer | Carsten Dominik | 2005-06-29 07:13:11 +0000 |
| commit | 7837f272faf02610990a1503a47fa78cd97397a9 (patch) | |
| tree | d7b73ff5e997f54d357ce481d0d7a8dfa90bb772 | |
| parent | 9acdaa21d8dc445d399e97247f6fd70a8db3f649 (diff) | |
| download | emacs-7837f272faf02610990a1503a47fa78cd97397a9.tar.gz emacs-7837f272faf02610990a1503a47fa78cd97397a9.zip | |
Version 3.12
| -rw-r--r-- | man/org.texi | 525 |
1 files changed, 389 insertions, 136 deletions
diff --git a/man/org.texi b/man/org.texi index e3d35cf19fa..b6d43bc50a7 100644 --- a/man/org.texi +++ b/man/org.texi | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | @setfilename ../info/org | 4 | @setfilename ../info/org |
| 5 | @settitle Org Mode Manual | 5 | @settitle Org Mode Manual |
| 6 | 6 | ||
| 7 | @set VERSION 3.11 | 7 | @set VERSION 3.12 |
| 8 | @set DATE June 2005 | 8 | @set DATE June 2005 |
| 9 | 9 | ||
| 10 | @dircategory Emacs | 10 | @dircategory Emacs |
| @@ -109,8 +109,16 @@ Document Structure | |||
| 109 | Tables | 109 | Tables |
| 110 | 110 | ||
| 111 | * Built-in table editor:: Simple tables | 111 | * Built-in table editor:: Simple tables |
| 112 | * table.el:: Complex tables | 112 | * Table calculations:: Compute a field from other fields |
| 113 | * orgtbl-mode:: The table editor as minor mode | 113 | * orgtbl-mode:: The table editor as minor mode |
| 114 | * table.el:: Complex tables | ||
| 115 | |||
| 116 | Calculations in tables | ||
| 117 | |||
| 118 | * Formula syntax:: How to write a formula | ||
| 119 | * Applying a formula:: How to get a formula executed | ||
| 120 | * Recalculation:: Re-applying all formulas in a table | ||
| 121 | * Summing:: Summing columns and rows | ||
| 114 | 122 | ||
| 115 | Hyperlinks | 123 | Hyperlinks |
| 116 | 124 | ||
| @@ -203,6 +211,7 @@ different levels and in different ways, for example | |||
| 203 | @example | 211 | @example |
| 204 | @r{@bullet{} as an outline extension with visibility cycling and structure editing} | 212 | @r{@bullet{} as an outline extension with visibility cycling and structure editing} |
| 205 | @r{@bullet{} as an ASCII system and table editor to take structured notes} | 213 | @r{@bullet{} as an ASCII system and table editor to take structured notes} |
| 214 | @r{@bullet{} as an ASCII table editor with some spreadsheet-like capabilities} | ||
| 206 | @r{@bullet{} as a simple hypertext system, with HTML export} | 215 | @r{@bullet{} as a simple hypertext system, with HTML export} |
| 207 | @r{@bullet{} as a TODO list editor} | 216 | @r{@bullet{} as a TODO list editor} |
| 208 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} | 217 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} |
| @@ -384,7 +393,7 @@ Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field. | |||
| 384 | Show all. | 393 | Show all. |
| 385 | @end table | 394 | @end table |
| 386 | 395 | ||
| 387 | When Emacs firsts visits a Org-mode file, the global state is set to | 396 | When Emacs first visits an Org-mode file, the global state is set to |
| 388 | OVERVIEW, i.e. only the top level headlines are visible. This can be | 397 | OVERVIEW, i.e. only the top level headlines are visible. This can be |
| 389 | configured through the variable @code{org-startup-folded}, or on a | 398 | configured through the variable @code{org-startup-folded}, or on a |
| 390 | per-file basis by adding one of the following lines anywhere in the | 399 | per-file basis by adding one of the following lines anywhere in the |
| @@ -435,9 +444,9 @@ visible. | |||
| 435 | @cindex promotion, of subtrees | 444 | @cindex promotion, of subtrees |
| 436 | @cindex demotion, of subtrees | 445 | @cindex demotion, of subtrees |
| 437 | @cindex subtree, cut and paste | 446 | @cindex subtree, cut and paste |
| 438 | @cindex pasting, subtrees | 447 | @cindex pasting, of subtrees |
| 439 | @cindex cutting, subtrees | 448 | @cindex cutting, of subtrees |
| 440 | @cindex copying, subtrees | 449 | @cindex copying, of subtrees |
| 441 | 450 | ||
| 442 | @table @kbd | 451 | @table @kbd |
| 443 | @kindex M-@key{RET} | 452 | @kindex M-@key{RET} |
| @@ -493,11 +502,11 @@ functionality. | |||
| 493 | @section Archiving | 502 | @section Archiving |
| 494 | @cindex archiving | 503 | @cindex archiving |
| 495 | 504 | ||
| 496 | When an project represented by a (sub)tree is finished, you may want | 505 | When a project represented by a (sub)tree is finished, you may want |
| 497 | to move the tree to an Archive place, either in the same file under a | 506 | to move the tree to an archive place, either in the same file under a |
| 498 | special top-level heading, or even to a different file. | 507 | special top-level heading, or even to a different file. |
| 499 | @table @kbd | 508 | @table @kbd |
| 500 | @kindex @kbd{C-c $} | 509 | @kindex C-c $ |
| 501 | @item @kbd{C-c $} | 510 | @item @kbd{C-c $} |
| 502 | Archive the subtree starting at the cursor position to the location | 511 | Archive the subtree starting at the cursor position to the location |
| 503 | given by @code{org-archive-location}. | 512 | given by @code{org-archive-location}. |
| @@ -524,7 +533,7 @@ An important feature of Org-mode is the ability to construct | |||
| 524 | sparse tree means that the entire document is folded as much as | 533 | sparse tree means that the entire document is folded as much as |
| 525 | possible, but the selected information is made visible along with the | 534 | possible, but the selected information is made visible along with the |
| 526 | headline structure above it@footnote{See also the variable | 535 | headline structure above it@footnote{See also the variable |
| 527 | @code{org-show-following-heading}}. Just try it out and you will see | 536 | @code{org-show-following-heading}.}. Just try it out and you will see |
| 528 | immediately how it works. | 537 | immediately how it works. |
| 529 | 538 | ||
| 530 | Org-mode contains several commands creating such trees. The most | 539 | Org-mode contains several commands creating such trees. The most |
| @@ -549,7 +558,7 @@ C-v} creates a sparse TODO tree (@pxref{TODO basics}). | |||
| 549 | @cindex visible text, printing | 558 | @cindex visible text, printing |
| 550 | To print a sparse tree, you can use the Emacs command | 559 | To print a sparse tree, you can use the Emacs command |
| 551 | @code{ps-print-buffer-with-faces} which does not print invisible parts | 560 | @code{ps-print-buffer-with-faces} which does not print invisible parts |
| 552 | of the document @footnote{this does not work under XEmacs, because | 561 | of the document @footnote{This does not work under XEmacs, because |
| 553 | XEmacs uses selective display for outlining, not text properties}. | 562 | XEmacs uses selective display for outlining, not text properties}. |
| 554 | Or you can use the command @kbd{C-c C-x v} to copy the visible part of | 563 | Or you can use the command @kbd{C-c C-x v} to copy the visible part of |
| 555 | the document to another file (extension @file{.txt}) which then can be | 564 | the document to another file (extension @file{.txt}) which then can be |
| @@ -559,18 +568,18 @@ printed in any desired way. | |||
| 559 | @chapter Tables | 568 | @chapter Tables |
| 560 | @cindex tables | 569 | @cindex tables |
| 561 | 570 | ||
| 562 | For taking notes, tables are an essential tool because they allow | 571 | Org-mode has a very fast and intuitive table editor built-in. |
| 563 | immediate and clear structuring of data. Org-mode has a very fast and | 572 | Spreadsheet-like calculations are supported in connection with the |
| 564 | intuitive table editor built-in. More complex tables can be created | 573 | Emacs @file{calc} package. |
| 565 | with the Emacs table.el package. | ||
| 566 | 574 | ||
| 567 | @menu | 575 | @menu |
| 568 | * Built-in table editor:: Simple tables | 576 | * Built-in table editor:: Simple tables |
| 569 | * table.el:: Complex tables | 577 | * Table calculations:: Compute a field from other fields |
| 570 | * orgtbl-mode:: The table editor as minor mode | 578 | * orgtbl-mode:: The table editor as minor mode |
| 579 | * table.el:: Complex tables | ||
| 571 | @end menu | 580 | @end menu |
| 572 | 581 | ||
| 573 | @node Built-in table editor, table.el, Tables, Tables | 582 | @node Built-in table editor, Table calculations, Tables, Tables |
| 574 | @section The built-in table editor | 583 | @section The built-in table editor |
| 575 | @cindex table editor, builtin | 584 | @cindex table editor, builtin |
| 576 | 585 | ||
| @@ -587,13 +596,13 @@ like this: | |||
| 587 | @end example | 596 | @end example |
| 588 | 597 | ||
| 589 | A table is re-aligned automatically each time you press @key{TAB} or | 598 | A table is re-aligned automatically each time you press @key{TAB} or |
| 590 | @key{RET} inside the table. @key{TAB} also moves to the next field | 599 | @key{RET} or @kbd{C-c C-c} inside the table. @key{TAB} also moves to |
| 591 | (@key{RET} to the next row) and creates new table rows at the end of the | 600 | the next field (@key{RET} to the next row) and creates new table rows |
| 592 | table or before horizontal lines. The indentation of the table is set | 601 | at the end of the table or before horizontal lines. The indentation |
| 593 | by the first line. Any line starting with @samp{|-} is considered as a | 602 | of the table is set by the first line. Any line starting with |
| 594 | horizontal separator line and will be expanded on the next re-align to | 603 | @samp{|-} is considered as a horizontal separator line and will be |
| 595 | span the whole table width. So, to create the above table, you would | 604 | expanded on the next re-align to span the whole table width. So, to |
| 596 | only type | 605 | create the above table, you would only type |
| 597 | 606 | ||
| 598 | @example | 607 | @example |
| 599 | |Name|Phone|Age | 608 | |Name|Phone|Age |
| @@ -605,10 +614,9 @@ fields. | |||
| 605 | 614 | ||
| 606 | @table @kbd | 615 | @table @kbd |
| 607 | @tsubheading{Creation and conversion} | 616 | @tsubheading{Creation and conversion} |
| 608 | @kindex C-c C-c | 617 | @item M-x org-table-create |
| 609 | @item C-c C-c | 618 | Creates an empty Org-mode table. However, it is much easier to just |
| 610 | Recognize @file{table.el} table. Works when the cursor is in a | 619 | start typing, like @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}} |
| 611 | table.el table | ||
| 612 | 620 | ||
| 613 | @kindex C-c C-c | 621 | @kindex C-c C-c |
| 614 | @item C-c C-c | 622 | @item C-c C-c |
| @@ -619,10 +627,6 @@ separated. If not, lines are split at whitespace into fields. You | |||
| 619 | can use a prefix argument to indicate how many consecutive spaces are | 627 | can use a prefix argument to indicate how many consecutive spaces are |
| 620 | at least required to indicate a field separator (default: just one). | 628 | at least required to indicate a field separator (default: just one). |
| 621 | 629 | ||
| 622 | @item M-x org-table-create | ||
| 623 | Creates an empty Org-mode table. However, it is much easier to just | ||
| 624 | start typing, like @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}} | ||
| 625 | |||
| 626 | @tsubheading{Re-aligning and field motion} | 630 | @tsubheading{Re-aligning and field motion} |
| 627 | @kindex C-c C-c | 631 | @kindex C-c C-c |
| 628 | @item C-c C-c | 632 | @item C-c C-c |
| @@ -635,7 +639,7 @@ necessary. | |||
| 635 | 639 | ||
| 636 | @kindex S-@key{TAB} | 640 | @kindex S-@key{TAB} |
| 637 | @item S-@key{TAB} | 641 | @item S-@key{TAB} |
| 638 | Move to previous field. | 642 | Re-align, move to previous field. |
| 639 | 643 | ||
| 640 | @kindex @key{RET} | 644 | @kindex @key{RET} |
| 641 | @item @key{RET} | 645 | @item @key{RET} |
| @@ -674,19 +678,19 @@ Insert a new row above (with arg: below) the current row. | |||
| 674 | 678 | ||
| 675 | @kindex C-c - | 679 | @kindex C-c - |
| 676 | @item C-c - | 680 | @item C-c - |
| 677 | Insert a horizontal line below current row. With prefix arg, line is | 681 | Insert a horizontal line below current row. With prefix arg, the line |
| 678 | created above the current line. | 682 | is created above the current line. |
| 679 | 683 | ||
| 680 | @tsubheading{Regions} | 684 | @tsubheading{Regions} |
| 681 | @kindex C-c C-h M-w | 685 | @kindex C-c C-h M-w |
| 682 | @item C-c C-h M-w | 686 | @item C-c C-h M-w |
| 683 | Copy an rectangular region from a table to a special clipboard. Point | 687 | Copy a rectangular region from a table to a special clipboard. Point |
| 684 | and mark determine edge fields of the rectangle. The process ignores | 688 | and mark determine edge fields of the rectangle. The process ignores |
| 685 | horizontal separator lines. | 689 | horizontal separator lines. |
| 686 | @kindex C-c C-h C-w | 690 | @kindex C-c C-h C-w |
| 687 | @item C-c C-h C-w | 691 | @item C-c C-h C-w |
| 688 | Copy an rectangular region from a table to a special clipboard, and | 692 | Copy a rectangular region from a table to a special clipboard, and |
| 689 | blank all fields in the rectangle. | 693 | blank all fields in the rectangle. So this is the ``cut'' operation. |
| 690 | @kindex C-c C-h C-y | 694 | @kindex C-c C-h C-y |
| 691 | @item C-c C-h C-y | 695 | @item C-c C-h C-y |
| 692 | Paste a rectangular region into a table. | 696 | Paste a rectangular region into a table. |
| @@ -707,6 +711,29 @@ current field gets blank, and the content is appended to the field | |||
| 707 | above. | 711 | above. |
| 708 | 712 | ||
| 709 | @tsubheading{Calculations} | 713 | @tsubheading{Calculations} |
| 714 | @cindex formula, in tables | ||
| 715 | @cindex calculations, in tables | ||
| 716 | @kindex C-c = | ||
| 717 | @item C-c = | ||
| 718 | Replace current field with the result of a formula. When called with a | ||
| 719 | @kbd{C-u} prefix, apply the equation in the current field and down | ||
| 720 | through the current column to a horizonal separator line or the end of | ||
| 721 | the table. For details, see @ref{Table calculations}. | ||
| 722 | |||
| 723 | @kindex C-c * | ||
| 724 | @item C-c * | ||
| 725 | Recalculate the current row by applying the stored formulas from left | ||
| 726 | to right. When called with a @kbd{C-u} prefix, recalculate the | ||
| 727 | entire table, starting with the first non-header line (i.e. below the | ||
| 728 | first horizontal separator line). For details, see @ref{Table calculations}. | ||
| 729 | |||
| 730 | @kindex C-# | ||
| 731 | @item C-# | ||
| 732 | Rotate the recalculation mark in first column through the states | ||
| 733 | @samp{}, @samp{#}, @samp{*}, @samp{!}, @samp{$}. For the meaning of | ||
| 734 | these marks see @ref{Table calculations}. When there is an active | ||
| 735 | region, change all marks in the region. | ||
| 736 | |||
| 710 | @kindex C-c ? | 737 | @kindex C-c ? |
| 711 | @item C-c ? | 738 | @item C-c ? |
| 712 | Which table column is the cursor in? Displays number >0 in echo | 739 | Which table column is the cursor in? Displays number >0 in echo |
| @@ -718,7 +745,7 @@ area. | |||
| 718 | @kindex C-c + | 745 | @kindex C-c + |
| 719 | @item C-c + | 746 | @item C-c + |
| 720 | Sum the numbers in the current column, or in the rectangle defined by | 747 | Sum the numbers in the current column, or in the rectangle defined by |
| 721 | the active region. The result is displayed in the echo area and can | 748 | the active region. The result is shown in the echo area and can |
| 722 | be inserted with @kbd{C-y}. | 749 | be inserted with @kbd{C-y}. |
| 723 | 750 | ||
| 724 | @kindex S-@key{RET} | 751 | @kindex S-@key{RET} |
| @@ -730,23 +757,12 @@ along with it. Depending on the variable | |||
| 730 | incremented during copy. This key is also used by CUA-mode | 757 | incremented during copy. This key is also used by CUA-mode |
| 731 | (@pxref{Interaction}). | 758 | (@pxref{Interaction}). |
| 732 | 759 | ||
| 733 | @cindex formula, in tables | ||
| 734 | @cindex calculations, in tables | ||
| 735 | @kindex C-c = | ||
| 736 | @item C-c = | ||
| 737 | Replace current field with the result of a formula. Requires the | ||
| 738 | Emacs calc package. The formula can access the current field with | ||
| 739 | @samp{$}, and the other fields in the current row | ||
| 740 | with @samp{$1}, @samp{$2},... For details see the documentation of the | ||
| 741 | command @command{org-table-eval-formula}. | ||
| 742 | |||
| 743 | @tsubheading{Miscellaneous} | 760 | @tsubheading{Miscellaneous} |
| 744 | @kindex C-c | | 761 | @kindex C-c | |
| 745 | @item C-c | | 762 | @item C-c | |
| 746 | Toggle the visibility of vertical lines in tables. The lines are | 763 | Toggle the visibility of vertical lines in tables. The lines are |
| 747 | still there, only made invisible with a text property. Any @samp{|} | 764 | still there, only made invisible with a text property. Any @samp{|} |
| 748 | added by hand will become invisible on the next align. | 765 | added by hand will become invisible on the next align. |
| 749 | Typographically it is good style to have no vertical lines in tables. | ||
| 750 | 766 | ||
| 751 | @item M-x org-table-import | 767 | @item M-x org-table-import |
| 752 | Import a file as a table. The table should be TAB- or whitespace | 768 | Import a file as a table. The table should be TAB- or whitespace |
| @@ -771,23 +787,231 @@ it off with | |||
| 771 | @noindent The only table command which then still works is | 787 | @noindent The only table command which then still works is |
| 772 | @kbd{C-c C-c} to do a manual re-align. | 788 | @kbd{C-c C-c} to do a manual re-align. |
| 773 | 789 | ||
| 774 | @node table.el, orgtbl-mode, Built-in table editor, Tables | 790 | @node Table calculations, orgtbl-mode, Built-in table editor, Tables |
| 791 | @section Calculations in tables | ||
| 792 | @cindex calculations, in tables | ||
| 793 | |||
| 794 | While the Org-mode table editor misses many features of a full | ||
| 795 | spreadsheet, it nevertheless has very useful capabilities to compute | ||
| 796 | fields. In horizontal direction, it can use complex expressions to | ||
| 797 | compute a field from other fields @emph{in the same row}, using named | ||
| 798 | columns, constants and parameters. The Emacs @file{calc} package is | ||
| 799 | required for this feature to work. In vertical direction, only | ||
| 800 | summing is supported. | ||
| 801 | |||
| 802 | @menu | ||
| 803 | * Formula syntax:: How to write a formula | ||
| 804 | * Applying a formula:: How to get a formula executed | ||
| 805 | * Recalculation:: Re-applying all formulas in a table | ||
| 806 | * Summing:: Summing columns and rows | ||
| 807 | @end menu | ||
| 808 | |||
| 809 | @node Formula syntax, Applying a formula, Table calculations, Table calculations | ||
| 810 | @subsection Formula syntax | ||
| 811 | |||
| 812 | A formula for horizontal computations can be any algebraic expression | ||
| 813 | understood by the Emacs @file{calc} package. Before evaluation, | ||
| 814 | variable substitution takes place: @samp{$} is replaced by the field | ||
| 815 | the cursor is currently in, and $1..$n reference the fields in the | ||
| 816 | current row. @samp{$name} is interpreted as the name of a column, | ||
| 817 | parameter or constant. Constants are defined globally through the | ||
| 818 | variable @code{org-table-formula-constants}. If you have the | ||
| 819 | @file{constants.el} package, it will also be used to resolve | ||
| 820 | constants, including natural constants like @samp{$k} for Plancks | ||
| 821 | constant, units like @samp{$km} for kilometers. Column names and | ||
| 822 | parameters can be specified in special table lines. These are | ||
| 823 | described below, see @ref{Recalculation}. | ||
| 824 | |||
| 825 | A formula can contain an optional mode string after a semicolon. This | ||
| 826 | string consists of flags to influence calc's modes@footnote{By | ||
| 827 | default, Org-mode uses the standard calc modes (precision 12, angular | ||
| 828 | units degrees, fraction and symbolic modes off). However, the display | ||
| 829 | format which has been changed to @code{(float 5)} to keep tables | ||
| 830 | compact. The default settings can be configured using the variable | ||
| 831 | @code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to | ||
| 832 | switch the internal precision to 20 digits, @samp{n3}, @samp{s3}, | ||
| 833 | @samp{e2} or @samp{f4} to switch to normal, scientific, engineering, | ||
| 834 | or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F}, | ||
| 835 | and @samp{S} to turn on degrees, radians, fraction and symbolic modes, | ||
| 836 | respectively. In addition, you may provide a @code{printf} specifier | ||
| 837 | to reformat the final result. A few examples: | ||
| 838 | @example | ||
| 839 | $1+$2 @r{Sum of first and second field} | ||
| 840 | $1+$2;%.2f @r{Same, format result to two decimals} | ||
| 841 | exp($2)+exp($1) @r{Math functions can be used} | ||
| 842 | $;%.1f @r{Reformat current cell to 1 decimal} | ||
| 843 | ($3-32)*5/9 @r{degrees F -> C conversion} | ||
| 844 | $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} | ||
| 845 | tan($1);Dp3s1 @r{compute in degrees, precision 3, display SCI 1} | ||
| 846 | vmean($2..$7) @r{compute column range mean, using vector function} | ||
| 847 | taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} | ||
| 848 | @end example | ||
| 849 | |||
| 850 | @node Applying a formula, Recalculation, Formula syntax, Table calculations | ||
| 851 | @subsection Applying a formula | ||
| 852 | |||
| 853 | To apply a formula to a field, type it directly into the field, | ||
| 854 | preceded by an equal sign, like @samp{=$1+$2}. When you press | ||
| 855 | @key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the | ||
| 856 | field, the formula will be evaluated and replaced with the result. If | ||
| 857 | the field contains only @samp{=}, the formula most recently applied | ||
| 858 | anywhere in the @emph{same column} will be used. | ||
| 859 | |||
| 860 | For each column, Org-mode will remember the most recently used | ||
| 861 | formula. The information is stored in a special line directly below | ||
| 862 | the table. When adding/deleting/moving columns with the appropriate | ||
| 863 | commands, the stored equations will be modified accordingly. When a | ||
| 864 | column used in a calculation is removed, references to this column | ||
| 865 | become invalid and will cause an error upon applying the equation. | ||
| 866 | |||
| 867 | Instead of typing an equation into the field, you may also use the | ||
| 868 | command @kbd{C-c =}. It prompts for a formula (with default taken | ||
| 869 | from the @samp{#+TBLFM:} line) and applies it to the current field. | ||
| 870 | If you use a prefix argument (i.e. @kbd{C-u C-c =}), the formula will | ||
| 871 | be applied to the current field and down to the next separator line | ||
| 872 | or the end of the table. A numerical prefix will apply it to that | ||
| 873 | many fields in the current column. | ||
| 874 | |||
| 875 | When the evaluation of a formula leads to an error, the field content | ||
| 876 | becomes the string @samp{#ERROR}. If you would like see what is going | ||
| 877 | on during variable substitution and calculation in order to find a | ||
| 878 | bug, turn on formula debugging in the menu and repeat the calculation | ||
| 879 | by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field. | ||
| 880 | Detailed information will be displayed. | ||
| 881 | |||
| 882 | @node Recalculation, Summing, Applying a formula, Table calculations | ||
| 883 | @subsection Recalculation | ||
| 884 | |||
| 885 | To recompute all the fields in a line, use the command @kbd{C-c *}. | ||
| 886 | It re-applies all stored equations to the current row, from left to | ||
| 887 | right. With a @kbd{C-u} prefix, this will be done to every line in | ||
| 888 | the table, so use this command it you want to make sure the entire | ||
| 889 | table is up-to-date. A more automatic way of recalculating the | ||
| 890 | current line requires marking the line: If the first column of a row | ||
| 891 | contains only @samp{#}, the row will be re-computed with every | ||
| 892 | @key{TAB}, @key{RET}, and @kbd{C-c C-c} in this row. Here is an | ||
| 893 | example of a table that collects exam results of students, with some | ||
| 894 | rows activated for semi-automatic computations. | ||
| 895 | |||
| 896 | @example | ||
| 897 | @group | ||
| 898 | |---+---------+--------+--------+--------+-------+------| | ||
| 899 | | | Student | Prob 1 | Prob 2 | Prob 3 | Total | Note | | ||
| 900 | |---+---------+--------+--------+--------+-------+------| | ||
| 901 | | ! | | P1 | P2 | P3 | Tot | | | ||
| 902 | | # | Maximum | 10 | 15 | 25 | 50 | 10.0 | | ||
| 903 | |---+---------+--------+--------+--------+-------+------| | ||
| 904 | | # | Peter | 10 | 8 | 23 | 41 | 8.2 | | ||
| 905 | | # | Sara | 7 | 14 | 19 | 40 | 8.0 | | ||
| 906 | | # | Sam | 2 | 4 | 3 | 9 | 1.8 | | ||
| 907 | |---+---------+--------+--------+--------+-------+------| | ||
| 908 | | $ | max=50 | | | | | | | ||
| 909 | |---+---------+--------+--------+--------+-------+------| | ||
| 910 | #+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f | ||
| 911 | @end group | ||
| 912 | @end example | ||
| 913 | @noindent | ||
| 914 | The example also demonstrates a number of convenience features: | ||
| 915 | @enumerate | ||
| 916 | @item | ||
| 917 | If the first field of a row contains only @samp{!}, this row defines | ||
| 918 | @emph{names} for the different columns so that you can write | ||
| 919 | @samp{$Tot} instead of @samp{$6} --- useful in larger tables, | ||
| 920 | when counting columns becomes error prone. | ||
| 921 | @item | ||
| 922 | If the first field of a row contains only @samp{$}, fields in this row | ||
| 923 | can define @emph{parameters} for formulas. For example, if a field in | ||
| 924 | a @samp{$} row contains @samp{max=50}, then formulas in this table can | ||
| 925 | refer to the value 50 using @samp{$max}. Parameters work exactly like | ||
| 926 | constants, only that they can be defined on a per-table basis. | ||
| 927 | Changing a parameter and then recalculating the table can be useful | ||
| 928 | and fun. | ||
| 929 | @item | ||
| 930 | A column range @samp{$P1..$P3} is expanded to a vector, so that calc's | ||
| 931 | vector functions (in this case @samp{vsum}, but there are many more) | ||
| 932 | can be applied to ranges. For a range, columns may be referenced by | ||
| 933 | name or number, in either sequence. | ||
| 934 | @end enumerate | ||
| 935 | |||
| 936 | @noindent If a table contains any line with @samp{#} as the | ||
| 937 | first field, @kbd{C-u C-c *} will only change the marked lines and | ||
| 938 | leave all unmarked lines alone. You can also mark a line with | ||
| 939 | @samp{*}. These lines will also be recalculated with @kbd{C-u C-c *}, | ||
| 940 | but not upon @key{TAB} and @key{RET}. Use this for lines which are | ||
| 941 | slow to calculate. | ||
| 942 | |||
| 943 | Just to wet your appetite on what can be done with the fantastic | ||
| 944 | @file{calc} package, here is a table that computes the Taylor series | ||
| 945 | for a couple of functions (homework: try that with Excel :-) | ||
| 946 | |||
| 947 | @example | ||
| 948 | @group | ||
| 949 | |---+-------------+---+-----+--------------------------------------| | ||
| 950 | | | Func | n | x | Result | | ||
| 951 | |---+-------------+---+-----+--------------------------------------| | ||
| 952 | | # | exp(x) | 1 | x | 1 + x | | ||
| 953 | | # | exp(x) | 2 | x | 1 + x + x^2 / 2 | | ||
| 954 | | # | exp(x) | 3 | x | 1 + x + x^2 / 2 + x^3 / 6 | | ||
| 955 | | # | x^2+sqrt(x) | 2 | x=0 | x*(0.5 / 0) + x^2 (2 - 0.25 / 0) / 2 | | ||
| 956 | | # | x^2+sqrt(x) | 2 | x=1 | 2 + 2.5 x - 2.5 + 0.875 (x - 1)^2 | | ||
| 957 | | * | tan(x) | 3 | x | 0.0175 x + 1.77e-6 x^3 | | ||
| 958 | |---+-------------+---+-----+--------------------------------------| | ||
| 959 | #+TBLFM: $5=taylor($2,$4,$3);n3 | ||
| 960 | @end group | ||
| 961 | @end example | ||
| 962 | |||
| 963 | @node Summing, , Recalculation, Table calculations | ||
| 964 | @subsection Summing | ||
| 965 | |||
| 966 | Finally, when typing a formula into a field, a number of special | ||
| 967 | keywords execute predefined sums over the current row or column and | ||
| 968 | enter the result into the current field. These calculations are | ||
| 969 | one-off, the formula is not stored, and you will neet to re-enter it | ||
| 970 | in order to compute again. | ||
| 971 | |||
| 972 | @example | ||
| 973 | = @r{Execute the stored formula valid in this column.} | ||
| 974 | =sum @r{Sum all fields above the current (alias @code{=sumv}).} | ||
| 975 | =sumh @r{Sum all fields to the left of the current field.} | ||
| 976 | =sum3 @r{Same as @samp{=sum}, but use just 3 fields above current.} | ||
| 977 | @end example | ||
| 978 | |||
| 979 | @node orgtbl-mode, table.el, Table calculations, Tables | ||
| 980 | @section The Orgtbl minor mode | ||
| 981 | @cindex orgtbl-mode | ||
| 982 | @cindex minor mode for tables | ||
| 983 | |||
| 984 | If you like the intuitive way the Org-mode table editor works, you | ||
| 985 | might want to use it also in other modes like text-mode or mail-mode. | ||
| 986 | The minor mode Orgtbl-mode makes this possible. You can always toggle | ||
| 987 | the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for | ||
| 988 | example in mail mode, use | ||
| 989 | @lisp | ||
| 990 | (add-hook 'mail-mode-hook 'turn-on-orgtbl) | ||
| 991 | @end lisp | ||
| 992 | |||
| 993 | @node table.el, , orgtbl-mode, Tables | ||
| 775 | @section The @file{table.el} package | 994 | @section The @file{table.el} package |
| 776 | @kindex C-c C-c | 995 | @kindex C-c C-c |
| 777 | @cindex table editor, table.el | 996 | @cindex table editor, @file{table.el} |
| 778 | @cindex @file{table.el} | 997 | @cindex @file{table.el} |
| 779 | 998 | ||
| 780 | More complex ASCII tables (with automatic line wrapping, column- and | 999 | Complex ASCII tables with automatic line wrapping, column- and |
| 781 | row-spanning, and alignment) can be created using the Emacs table | 1000 | row-spanning, and alignment can be created using the Emacs table |
| 782 | package by Takaaki Ota (@uref{http://sourceforge.net/projects/table}). | 1001 | package by Takaaki Ota (@uref{http://sourceforge.net/projects/table}). |
| 783 | When @key{TAB} or @kbd{C-c C-c} is pressed in such a table, Org-mode | 1002 | When @key{TAB} or @kbd{C-c C-c} is pressed in such a table, Org-mode |
| 784 | will call @command{table-recognize-table} and move the cursor into the | 1003 | will call @command{table-recognize-table} and move the cursor into the |
| 785 | table. Inside a table, the keymap of Org-mode is inactive. In order | 1004 | table. Inside a table, the keymap of Org-mode is inactive. In order |
| 786 | to execute org-related commands, leave the table. | 1005 | to execute Org-mode-related commands, leave the table. |
| 787 | 1006 | ||
| 788 | @table @kbd | 1007 | @table @kbd |
| 789 | @kindex C-c # | 1008 | @kindex C-c C-c |
| 790 | @item C-c # | 1009 | @item C-c C-c |
| 1010 | Recognize @file{table.el} table. Works when the cursor is in a | ||
| 1011 | table.el table. | ||
| 1012 | |||
| 1013 | @kindex C-c ~ | ||
| 1014 | @item C-c ~ | ||
| 791 | Insert a table.el table. If there is already a table at point, this | 1015 | Insert a table.el table. If there is already a table at point, this |
| 792 | command converts it between the table.el format and the Org-mode | 1016 | command converts it between the table.el format and the Org-mode |
| 793 | format. See the documentation string of the command | 1017 | format. See the documentation string of the command |
| @@ -795,20 +1019,6 @@ format. See the documentation string of the command | |||
| 795 | possible. | 1019 | possible. |
| 796 | @end table | 1020 | @end table |
| 797 | 1021 | ||
| 798 | @node orgtbl-mode, , table.el, Tables | ||
| 799 | @section The Orgtbl minor mode | ||
| 800 | @cindex orgtbl-mode | ||
| 801 | @cindex Minor mode for tables | ||
| 802 | |||
| 803 | If you like the intuitive way the Org-mode table editor works, you | ||
| 804 | might want to use it also in other modes like text-mode or mail-mode. | ||
| 805 | The minor mode Orgtbl-mode makes this possible. You can always toggle | ||
| 806 | the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for | ||
| 807 | example in mail mode, use | ||
| 808 | @lisp | ||
| 809 | (add-hook 'mail-mode-hook 'turn-on-orgtbl) | ||
| 810 | @end lisp | ||
| 811 | |||
| 812 | @node Hyperlinks, TODO items, Tables, Top | 1022 | @node Hyperlinks, TODO items, Tables, Top |
| 813 | @chapter Hyperlinks | 1023 | @chapter Hyperlinks |
| 814 | @cindex hyperlinks | 1024 | @cindex hyperlinks |
| @@ -826,6 +1036,8 @@ articles, emails and much more. | |||
| 826 | @cindex links | 1036 | @cindex links |
| 827 | @cindex GNUS links | 1037 | @cindex GNUS links |
| 828 | @cindex BBDB links | 1038 | @cindex BBDB links |
| 1039 | @cindex URL links | ||
| 1040 | @cindex file links | ||
| 829 | @cindex VM links | 1041 | @cindex VM links |
| 830 | @cindex RMAIL links | 1042 | @cindex RMAIL links |
| 831 | @cindex WANDERLUST links | 1043 | @cindex WANDERLUST links |
| @@ -877,6 +1089,8 @@ The key binding @kbd{C-c l} is only a suggestion - see | |||
| 877 | @ref{Installation and Activation}. | 1089 | @ref{Installation and Activation}. |
| 878 | 1090 | ||
| 879 | @kindex C-c C-l | 1091 | @kindex C-c C-l |
| 1092 | @cindex completion, of links | ||
| 1093 | @cindex completion, of file names | ||
| 880 | @item C-c C-l | 1094 | @item C-c C-l |
| 881 | Insert a link. This prompts for a link to be inserted into the | 1095 | Insert a link. This prompts for a link to be inserted into the |
| 882 | buffer. You can just type a link, using one of the link type prefixes | 1096 | buffer. You can just type a link, using one of the link type prefixes |
| @@ -969,8 +1183,8 @@ Before inserting the text into a tree, the function ensures that the | |||
| 969 | text has a headline, i.e. a first line that starts with a @samp{*}. | 1183 | text has a headline, i.e. a first line that starts with a @samp{*}. |
| 970 | If not, a headline is constructed from the current date and some | 1184 | If not, a headline is constructed from the current date and some |
| 971 | additional data. If the variable @code{org-adapt-indentation} is | 1185 | additional data. If the variable @code{org-adapt-indentation} is |
| 972 | non-@code{nil}, the entire text is also indented so that it starts in | 1186 | non-nil, the entire text is also indented so that it starts in the |
| 973 | the same column as the headline (after the asterisks). | 1187 | same column as the headline (after the asterisks). |
| 974 | 1188 | ||
| 975 | @node TODO items, Timestamps, Hyperlinks, Top | 1189 | @node TODO items, Timestamps, Hyperlinks, Top |
| 976 | @chapter TODO items | 1190 | @chapter TODO items |
| @@ -1057,6 +1271,7 @@ of working on an item, for example | |||
| 1057 | org-todo-interpretation 'sequence) | 1271 | org-todo-interpretation 'sequence) |
| 1058 | @end lisp | 1272 | @end lisp |
| 1059 | 1273 | ||
| 1274 | @cindex completion, of TODO keywords | ||
| 1060 | With this setup, the command @kbd{C-c C-t} will cycle an entry from | 1275 | With this setup, the command @kbd{C-c C-t} will cycle an entry from |
| 1061 | TODO to FEEDBACK, then to VERIFY, and finally too DONE. You may also | 1276 | TODO to FEEDBACK, then to VERIFY, and finally too DONE. You may also |
| 1062 | use a prefix argument to quickly select a specific state. For example | 1277 | use a prefix argument to quickly select a specific state. For example |
| @@ -1084,9 +1299,9 @@ would be set up like this: | |||
| 1084 | 1299 | ||
| 1085 | In this case, different keywords do not indicate a sequence, but | 1300 | In this case, different keywords do not indicate a sequence, but |
| 1086 | rather different types. So it is normally not useful to change from | 1301 | rather different types. So it is normally not useful to change from |
| 1087 | one type to another. Therefore, in this case the the behavior of the | 1302 | one type to another. Therefore, in this case the behavior of the |
| 1088 | command @kbd{C-c C-t} is changed slightly@footnote{This is also true | 1303 | command @kbd{C-c C-t} is changed slightly@footnote{This is also true |
| 1089 | for the @kbd{t} command in the timeline and agenda buffers}. When | 1304 | for the @kbd{t} command in the timeline and agenda buffers.}. When |
| 1090 | used several times in succession, it will still cycle through all | 1305 | used several times in succession, it will still cycle through all |
| 1091 | names. But when when you return to the item after some time and | 1306 | names. But when when you return to the item after some time and |
| 1092 | execute @kbd{C-c C-t} again, it will switch from each name directly to | 1307 | execute @kbd{C-c C-t} again, it will switch from each name directly to |
| @@ -1111,7 +1326,7 @@ anywhere in the file: | |||
| 1111 | #+TYP_TODO: Fred Sara Lucy Mike DONE | 1326 | #+TYP_TODO: Fred Sara Lucy Mike DONE |
| 1112 | @end example | 1327 | @end example |
| 1113 | 1328 | ||
| 1114 | @cindex Completing option keywords | 1329 | @cindex Completion, of option keywords |
| 1115 | @kindex M-@key{TAB} | 1330 | @kindex M-@key{TAB} |
| 1116 | @noindent To make sure you are using the correct keyword, type | 1331 | @noindent To make sure you are using the correct keyword, type |
| 1117 | @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion. | 1332 | @samp{#+} into the buffer and then use @kbd{M-@key{TAB}} completion. |
| @@ -1171,7 +1386,7 @@ agenda buffer with the @kbd{,} command (@pxref{Agenda commands}). | |||
| 1171 | @itemx S-@key{down} | 1386 | @itemx S-@key{down} |
| 1172 | Increase/decrease priority of current item. Note that these keys are | 1387 | Increase/decrease priority of current item. Note that these keys are |
| 1173 | also used to modify time stamps (@pxref{Creating timestamps}). | 1388 | also used to modify time stamps (@pxref{Creating timestamps}). |
| 1174 | Furthermore, these keys is also used by CUA-mode | 1389 | Furthermore, these keys are also used by CUA-mode |
| 1175 | (@pxref{Interaction}). | 1390 | (@pxref{Interaction}). |
| 1176 | @end table | 1391 | @end table |
| 1177 | 1392 | ||
| @@ -1221,27 +1436,27 @@ example: | |||
| 1221 | @end example | 1436 | @end example |
| 1222 | 1437 | ||
| 1223 | @item DEADLINE | 1438 | @item DEADLINE |
| 1224 | @cindex deadline | 1439 | @cindex DEADLINE keyword |
| 1225 | If a time stamp is preceded by the word @samp{DEADLINE:}, the task | 1440 | If a time stamp is preceded by the word @samp{DEADLINE:}, the task |
| 1226 | (most likely a TODO item) is supposed to be finished on that date, and | 1441 | (most likely a TODO item) is supposed to be finished on that date, and |
| 1227 | it will be listed then. In addition, the compilation for the | 1442 | it will be listed then. In addition, the compilation for @emph{today} |
| 1228 | @emph{current day} will carry a warning about the approaching or | 1443 | will carry a warning about the approaching or missed deadline, |
| 1229 | missed deadline, starting @code{org-deadline-warning-days} before the | 1444 | starting @code{org-deadline-warning-days} before the due date, and |
| 1230 | due date, and continuing until the entry is marked DONE. An example: | 1445 | continuing until the entry is marked DONE. An example: |
| 1231 | 1446 | ||
| 1232 | @example | 1447 | @example |
| 1233 | *** TODO write article about the Earth for the Guide | 1448 | *** TODO write article about the Earth for the Guide |
| 1234 | The editor in charge is bbdb:Ford Prefect | 1449 | The editor in charge is <bbdb:Ford Prefect> |
| 1235 | DEADLINE: <2004-02-29 Sun> | 1450 | DEADLINE: <2004-02-29 Sun> |
| 1236 | @end example | 1451 | @end example |
| 1237 | 1452 | ||
| 1238 | @item SCHEDULED | 1453 | @item SCHEDULED |
| 1239 | @cindex scheduled | 1454 | @cindex DEADLINE keyword |
| 1240 | If a time stamp is preceded by the word @samp{SCHEDULED:}, it means | 1455 | If a time stamp is preceded by the word @samp{SCHEDULED:}, it means |
| 1241 | you are planning to start working on that task on the given date. The | 1456 | you are planning to start working on that task on the given date. The |
| 1242 | headline will be listed under the given date. In addition, a reminder | 1457 | headline will be listed under the given date. In addition, a reminder |
| 1243 | that the scheduled date has passed will be present in the compilation | 1458 | that the scheduled date has passed will be present in the compilation |
| 1244 | for the @emph{current day}, until the entry is marked DONE. I.e., the | 1459 | for the @emph{today}, until the entry is marked DONE. I.e., the |
| 1245 | task will automatically be forwarded. | 1460 | task will automatically be forwarded. |
| 1246 | @end table | 1461 | @end table |
| 1247 | 1462 | ||
| @@ -1310,7 +1525,7 @@ CUA-mode (@pxref{Interaction}). | |||
| 1310 | Change the item under the cursor in a timestamp. The cursor can be on | 1525 | Change the item under the cursor in a timestamp. The cursor can be on |
| 1311 | a year, month, day, hour or minute. Note that if the cursor is not at | 1526 | a year, month, day, hour or minute. Note that if the cursor is not at |
| 1312 | a time stamp, these same keys modify the priority of an item. | 1527 | a time stamp, these same keys modify the priority of an item. |
| 1313 | (@pxref{Priorities}). These key bindings conflict with CUA-mode | 1528 | (@pxref{Priorities}). The key bindings also conflict with CUA-mode |
| 1314 | (@pxref{Interaction}). | 1529 | (@pxref{Interaction}). |
| 1315 | 1530 | ||
| 1316 | 1531 | ||
| @@ -1325,9 +1540,9 @@ into the following column). | |||
| 1325 | @cindex date, reading in minibuffer | 1540 | @cindex date, reading in minibuffer |
| 1326 | @cindex time, reading in minibuffer | 1541 | @cindex time, reading in minibuffer |
| 1327 | @cindex calendar, for selecting date | 1542 | @cindex calendar, for selecting date |
| 1328 | When org prompts for a date/time, the function reading your input will | 1543 | When Org-mode prompts for a date/time, the function reading your input |
| 1329 | replace anything you choose not to specify with the current date and | 1544 | will replace anything you choose not to specify with the current date |
| 1330 | time. For details, see the documentation string of | 1545 | and time. For details, see the documentation string of |
| 1331 | @command{org-read-date}. Also, a calender will pop up to allow | 1546 | @command{org-read-date}. Also, a calender will pop up to allow |
| 1332 | selecting a date. The calendar can be fully controlled from the | 1547 | selecting a date. The calendar can be fully controlled from the |
| 1333 | minibuffer, and a date can be selected with the following commands: | 1548 | minibuffer, and a date can be selected with the following commands: |
| @@ -1487,12 +1702,12 @@ Emacs. | |||
| 1487 | The display in the agenda buffer looks best if the category is not | 1702 | The display in the agenda buffer looks best if the category is not |
| 1488 | longer than 10 characters. | 1703 | longer than 10 characters. |
| 1489 | 1704 | ||
| 1490 | @subsection Time Specifications | 1705 | @subsection Time-of-Day Specifications |
| 1491 | 1706 | ||
| 1492 | Org-mode checks each agenda item for a time specification. The time | 1707 | Org-mode checks each agenda item for a timeof-day specification. The |
| 1493 | can be part of the time stamp that triggered inclusion into the agenda, | 1708 | time can be part of the time stamp that triggered inclusion into the |
| 1494 | for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time ranges can | 1709 | agenda, for example as in @w{@samp{<2005-05-10 Tue 19:00>}}. Time |
| 1495 | be specified with two time stamps, like | 1710 | ranges can be specified with two time stamps, like |
| 1496 | @c | 1711 | @c |
| 1497 | @w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}. | 1712 | @w{@samp{<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>}}. |
| 1498 | 1713 | ||
| @@ -1608,10 +1823,14 @@ Delete other windows. | |||
| 1608 | 1823 | ||
| 1609 | @kindex w | 1824 | @kindex w |
| 1610 | @item w | 1825 | @item w |
| 1611 | Toggle between weekly and daily view. | 1826 | Switch to weekly view (7 days displayed together) |
| 1612 | 1827 | ||
| 1613 | @kindex d | 1828 | @kindex d |
| 1614 | @item d | 1829 | @item d |
| 1830 | Switch to daily view (just one day displayed) | ||
| 1831 | |||
| 1832 | @kindex D | ||
| 1833 | @item D | ||
| 1615 | Toggle the inclusion of diary entries. See @ref{Calendar/Diary integration}. | 1834 | Toggle the inclusion of diary entries. See @ref{Calendar/Diary integration}. |
| 1616 | 1835 | ||
| 1617 | @kindex g | 1836 | @kindex g |
| @@ -1663,7 +1882,7 @@ Display weighted priority of current item. | |||
| 1663 | @kindex + | 1882 | @kindex + |
| 1664 | @kindex S-@key{up} | 1883 | @kindex S-@key{up} |
| 1665 | @item + | 1884 | @item + |
| 1666 | @item S-@key{up} | 1885 | @itemx S-@key{up} |
| 1667 | Increase the priority of the current item. The priority is changed in | 1886 | Increase the priority of the current item. The priority is changed in |
| 1668 | the original buffer, but the agenda is not resorted. Use the @kbd{r} | 1887 | the original buffer, but the agenda is not resorted. Use the @kbd{r} |
| 1669 | key for this. | 1888 | key for this. |
| @@ -1671,7 +1890,7 @@ key for this. | |||
| 1671 | @kindex - | 1890 | @kindex - |
| 1672 | @kindex S-@key{down} | 1891 | @kindex S-@key{down} |
| 1673 | @item - | 1892 | @item - |
| 1674 | @item S-@key{down} | 1893 | @itemx S-@key{down} |
| 1675 | Decrease the priority of the current item. | 1894 | Decrease the priority of the current item. |
| 1676 | 1895 | ||
| 1677 | @kindex S-@key{right} | 1896 | @kindex S-@key{right} |
| @@ -1782,12 +2001,12 @@ agenda, you only need to customize the variable | |||
| 1782 | entries including holidays, anniversaries etc will be included in the | 2001 | entries including holidays, anniversaries etc will be included in the |
| 1783 | agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and | 2002 | agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and |
| 1784 | @key{RET} can be used from the agenda buffer to jump to the diary | 2003 | @key{RET} can be used from the agenda buffer to jump to the diary |
| 1785 | file, in order to edit existing diary entries. Also the @kbd{i} | 2004 | file, in order to edit existing diary entries. The @kbd{i} command to |
| 1786 | command to insert new entries for the current date works in the agenda | 2005 | insert new entries for the current date works in the agenda buffer, as |
| 1787 | buffer, as well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to | 2006 | well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to display |
| 1788 | display Sunrise/Sunset times, show lunar phases and to convert to | 2007 | Sunrise/Sunset times, show lunar phases and to convert to other |
| 1789 | other calendars, respectively. @kbd{c} can be used to switch back and | 2008 | calendars, respectively. @kbd{c} can be used to switch back and forth |
| 1790 | forth between calendar and agenda. | 2009 | between calendar and agenda. |
| 1791 | 2010 | ||
| 1792 | @node Agenda to diary, , Diary to agenda, Calendar/Diary integration | 2011 | @node Agenda to diary, , Diary to agenda, Calendar/Diary integration |
| 1793 | @subsection Including the agenda into the diary | 2012 | @subsection Including the agenda into the diary |
| @@ -1827,9 +2046,8 @@ also the documentation of the @command{org-diary} function. | |||
| 1827 | @node Exporting, Miscellaneous, Timeline and Agenda, Top | 2046 | @node Exporting, Miscellaneous, Timeline and Agenda, Top |
| 1828 | @chapter Exporting | 2047 | @chapter Exporting |
| 1829 | @cindex exporting | 2048 | @cindex exporting |
| 1830 | @cindex ASCII file | 2049 | @cindex ASCII export |
| 1831 | @cindex HTML | 2050 | @cindex HTML export |
| 1832 | |||
| 1833 | 2051 | ||
| 1834 | @cindex headline levels, for exporting | 2052 | @cindex headline levels, for exporting |
| 1835 | For printing and sharing of notes, an Org-mode document can be | 2053 | For printing and sharing of notes, an Org-mode document can be |
| @@ -1896,6 +2114,7 @@ You can make words @b{*bold*}, @i{/italic/}, and _underlined_ | |||
| 1896 | @item | 2114 | @item |
| 1897 | Simple @TeX{}-like math constructs are interpreted: | 2115 | Simple @TeX{}-like math constructs are interpreted: |
| 1898 | 2116 | ||
| 2117 | @cindex completion, of @TeX{} symbols | ||
| 1899 | @itemize @minus | 2118 | @itemize @minus |
| 1900 | @item | 2119 | @item |
| 1901 | @samp{10^22} and @samp{J_n} are super- and subscripts. You can quote | 2120 | @samp{10^22} and @samp{J_n} are super- and subscripts. You can quote |
| @@ -1931,6 +2150,7 @@ they can all be turned off with corresponding variables. | |||
| 1931 | @section Export options | 2150 | @section Export options |
| 1932 | @cindex options, for export | 2151 | @cindex options, for export |
| 1933 | 2152 | ||
| 2153 | @cindex completion, of option keywords | ||
| 1934 | The exporter recognizes special lines in the buffer which provide | 2154 | The exporter recognizes special lines in the buffer which provide |
| 1935 | additional information. These lines may be put anywhere in the file. | 2155 | additional information. These lines may be put anywhere in the file. |
| 1936 | The whole set of lines can be inserted into the buffer with @kbd{C-c | 2156 | The whole set of lines can be inserted into the buffer with @kbd{C-c |
| @@ -1953,7 +2173,7 @@ you can | |||
| 1953 | @cindex headline levels | 2173 | @cindex headline levels |
| 1954 | @cindex section-numbers | 2174 | @cindex section-numbers |
| 1955 | @cindex table of contents | 2175 | @cindex table of contents |
| 1956 | @cindex linebreak-preservation | 2176 | @cindex linebreak preservation |
| 1957 | @cindex quoted html tags | 2177 | @cindex quoted html tags |
| 1958 | @cindex fixed-width sections | 2178 | @cindex fixed-width sections |
| 1959 | @cindex tables | 2179 | @cindex tables |
| @@ -2003,10 +2223,11 @@ Toggle the COMMENT keyword at the beginning of an entry. | |||
| 2003 | 2223 | ||
| 2004 | @node Completion, Customization, Miscellaneous, Miscellaneous | 2224 | @node Completion, Customization, Miscellaneous, Miscellaneous |
| 2005 | @section Completion | 2225 | @section Completion |
| 2006 | @cindex complete @TeX{} symbols | 2226 | @cindex completion, of @TeX{} symbols |
| 2007 | @cindex complete TODO keywords | 2227 | @cindex completion, of TODO keywords |
| 2008 | @cindex complete dictionary words | 2228 | @cindex completion, of dictionary words |
| 2009 | @cindex complete option keywords | 2229 | @cindex completion, of option keywords |
| 2230 | @cindex completion, of keyword formulas | ||
| 2010 | 2231 | ||
| 2011 | Org-mode supports in-buffer completion. This type of completion does | 2232 | Org-mode supports in-buffer completion. This type of completion does |
| 2012 | not make use of the minibuffer. You simply type a few letters into | 2233 | not make use of the minibuffer. You simply type a few letters into |
| @@ -2027,6 +2248,8 @@ After @samp{#+}, complete the special keywords like @samp{TYP_TODO} or | |||
| 2027 | option keyword is already complete, pressing @kbd{M-@key{TAB}} again | 2248 | option keyword is already complete, pressing @kbd{M-@key{TAB}} again |
| 2028 | will insert example settings for this keyword. | 2249 | will insert example settings for this keyword. |
| 2029 | @item | 2250 | @item |
| 2251 | After @samp{=}, complete keyword formulas for tables. | ||
| 2252 | @item | ||
| 2030 | Elsewhere, complete dictionary words using ispell. | 2253 | Elsewhere, complete dictionary words using ispell. |
| 2031 | @end itemize | 2254 | @end itemize |
| 2032 | @end table | 2255 | @end table |
| @@ -2047,7 +2270,7 @@ Group} from the @code{Org->Customization} menu. | |||
| 2047 | @section Frequently asked questions | 2270 | @section Frequently asked questions |
| 2048 | 2271 | ||
| 2049 | @enumerate | 2272 | @enumerate |
| 2050 | @item @b{Org-mode seems to be useful default mode for the various | 2273 | @item @b{Org-mode seems to be auseful default mode for the various |
| 2051 | @file{README} files I have scattered through my directories. How do I | 2274 | @file{README} files I have scattered through my directories. How do I |
| 2052 | turn it on for all @file{README} files?} | 2275 | turn it on for all @file{README} files?} |
| 2053 | @example | 2276 | @example |
| @@ -2065,8 +2288,8 @@ possible because of the different outline implementation. | |||
| 2065 | 2288 | ||
| 2066 | @item @b{Is there an easy way to insert links to web locations?}@* | 2289 | @item @b{Is there an easy way to insert links to web locations?}@* |
| 2067 | @cindex URL, paste into buffer | 2290 | @cindex URL, paste into buffer |
| 2068 | Sure, just paste them into the buffer. A plain-text URL-like string | 2291 | Sure, just type or paste them into the buffer. A plain-text URL-like |
| 2069 | is directly interpreted as a link. | 2292 | string is directly interpreted as a link. |
| 2070 | 2293 | ||
| 2071 | @item @b{When I export my TODO list, every TODO item becomes a | 2294 | @item @b{When I export my TODO list, every TODO item becomes a |
| 2072 | separate section. How do I enforce these items to be exported as an | 2295 | separate section. How do I enforce these items to be exported as an |
| @@ -2107,6 +2330,13 @@ To insert an empty table template, just type @samp{|-} and use | |||
| 2107 | @code{org-table-default-size}. However, just starting to type the | 2330 | @code{org-table-default-size}. However, just starting to type the |
| 2108 | first line is usually much easier. | 2331 | first line is usually much easier. |
| 2109 | 2332 | ||
| 2333 | @item @b{One of my table columns has started to fill up with | ||
| 2334 | @samp{#ERROR}. What is going on?}@* | ||
| 2335 | Org-mode tried to compute the column from other fields using a | ||
| 2336 | formula stored in the @samp{#+TBLFMT:} line just below the table, and | ||
| 2337 | the evaluation of the formula fails. Fix the fields used in the | ||
| 2338 | formula, or fix the formula, or remove it! | ||
| 2339 | |||
| 2110 | @item @b{When I am in the last column of a table and just above a | 2340 | @item @b{When I am in the last column of a table and just above a |
| 2111 | horizontal line in the table, pressing TAB creates a new table line | 2341 | horizontal line in the table, pressing TAB creates a new table line |
| 2112 | @i{before} the horizontal line. How can I quickly move to the line | 2342 | @i{before} the horizontal line. How can I quickly move to the line |
| @@ -2125,34 +2355,42 @@ indentation of the first line and realign with @key{TAB}. | |||
| 2125 | @node Interaction, Bugs, FAQ, Miscellaneous | 2355 | @node Interaction, Bugs, FAQ, Miscellaneous |
| 2126 | @section Interaction with other packages | 2356 | @section Interaction with other packages |
| 2127 | @cindex packages, interaction with other | 2357 | @cindex packages, interaction with other |
| 2128 | @cindex @file{planner.el} | 2358 | Org-mode can cooperate with the following packages: |
| 2129 | @cindex @file{remember.el} | ||
| 2130 | @cindex @file{table.el} | ||
| 2131 | @file{Org.el} can cooperate with the following packages: | ||
| 2132 | 2359 | ||
| 2133 | @table @asis | 2360 | @table @asis |
| 2134 | @cindex @file{remember.el} | ||
| 2135 | @item @file{remember.el} by John Wiegley | ||
| 2136 | Org mode cooperates with remember, see @ref{Remember}. | ||
| 2137 | @cindex @file{plannner.el} | ||
| 2138 | @item @file{planner.el} by John Wiegley | ||
| 2139 | Planner is another tool to plan work and keep track of tasks. Planner | ||
| 2140 | uses a multi-file approach with project pages and day pages. Is based | ||
| 2141 | on Emacs-Wiki. It can be useful to display the agenda entries | ||
| 2142 | resulting from org files in day-pages of the planner. This can be | ||
| 2143 | done through the diary of the calendar: Integrate org files into the | ||
| 2144 | diary as described above, and then turn on the diary support of | ||
| 2145 | planner. | ||
| 2146 | @cindex @file{table.el} | 2361 | @cindex @file{table.el} |
| 2147 | @item @file{table.el} by Takaaki Ota | 2362 | @item @file{table.el} by Takaaki Ota |
| 2148 | Org mode cooperates with table.el, see @ref{table.el}. | 2363 | Org mode cooperates with table.el, see @ref{table.el}. |
| 2364 | @cindex @file{calc.el} | ||
| 2365 | @item @file{calc.el} by Dave Gillespie | ||
| 2366 | Org-mode uses the calc package for implementing spreadsheet | ||
| 2367 | functionality in its tables (@pxref{Table calculations}). Org-modes | ||
| 2368 | checks for the availability of calc by looking for the function | ||
| 2369 | @code{calc-eval} which should be autoloaded in your setup if calc has | ||
| 2370 | been installed properly. As of Emacs 22, calc is part of the Emacs | ||
| 2371 | distribution. Another possibility for interaction between the two | ||
| 2372 | packages is using calc for embedded calculations. @xref{Embedded Mode, | ||
| 2373 | , Embedded Mode, calc, The calc maanual}. | ||
| 2374 | @cindex @file{constants.el} | ||
| 2375 | @item @file{constants.el} by Carsten Dominik | ||
| 2376 | In a table formula (@pxref{Table calculations}), it is possible to use | ||
| 2377 | names for natural constants or units. Instead of defining you own | ||
| 2378 | constants in the variable @code{org-table-formula-constants}, install | ||
| 2379 | the @file{constants} package which defines a large number of constants | ||
| 2380 | and units, and lets you use unit prefixes like @samp{M} for | ||
| 2381 | @samp{Mega} etc. You will need version 2.0 of this package, available | ||
| 2382 | at @url{http://www.astro.uva.nl/~dominik/Tools}. Org-mode checks for | ||
| 2383 | the function @code{constants-get}, which has to be autoloaded in your | ||
| 2384 | setup. See the installation instructions in the file | ||
| 2385 | @file{constants.el}. | ||
| 2386 | @cindex @file{remember.el} | ||
| 2149 | @cindex @file{CUA.el} | 2387 | @cindex @file{CUA.el} |
| 2150 | @item @file{CUA.el} by Kim. F. Storm | 2388 | @item @file{CUA.el} by Kim. F. Storm |
| 2151 | Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys | 2389 | Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys |
| 2152 | used by CUA-mode (as well as pc-select-mode and s-region-mode) to | 2390 | used by CUA-mode (as well as pc-select-mode and s-region-mode) to |
| 2153 | select and extend the region. If you want to use one of these | 2391 | select and extend the region. If you want to use one of these |
| 2154 | packages along with Org-mode, configure the variable | 2392 | packages along with Org-mode, configure the variable |
| 2155 | @code{org-CUA-compatible}. When set, Org-mode will move the folowing | 2393 | @code{org-CUA-compatible}. When set, Org-mode will move the following |
| 2156 | keybindings in org-mode files, and in the agenda buffer (but not | 2394 | keybindings in org-mode files, and in the agenda buffer (but not |
| 2157 | during date selection). | 2395 | during date selection). |
| 2158 | @example | 2396 | @example |
| @@ -2163,7 +2401,17 @@ S-RET -> C-S-RET | |||
| 2163 | Yes, these are unfortunately more difficult to remember. If you want | 2401 | Yes, these are unfortunately more difficult to remember. If you want |
| 2164 | to have other replacement keys, look at the variable | 2402 | to have other replacement keys, look at the variable |
| 2165 | @code{org-disputed-keys}. | 2403 | @code{org-disputed-keys}. |
| 2166 | 2404 | @item @file{remember.el} by John Wiegley | |
| 2405 | Org mode cooperates with remember, see @ref{Remember}. | ||
| 2406 | @cindex @file{planner.el} | ||
| 2407 | @item @file{planner.el} by John Wiegley | ||
| 2408 | Planner is another tool to plan work and keep track of tasks. Planner | ||
| 2409 | uses a multi-file approach with project pages and day pages. Is based | ||
| 2410 | on Emacs-Wiki. If Planner is your primary tool, it can be useful to | ||
| 2411 | display the agenda entries resulting from org files in day-pages of | ||
| 2412 | the planner. This can be done through the diary of the calendar: | ||
| 2413 | Integrate org files into the diary as described above, and then turn | ||
| 2414 | on the diary support of planner. | ||
| 2167 | @end table | 2415 | @end table |
| 2168 | 2416 | ||
| 2169 | @node Bugs, Acknowledgments, Interaction, Miscellaneous | 2417 | @node Bugs, Acknowledgments, Interaction, Miscellaneous |
| @@ -2177,7 +2425,7 @@ have found too hard to fix. | |||
| 2177 | @item | 2425 | @item |
| 2178 | If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the | 2426 | If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the |
| 2179 | filling is correctly disabled. However, if some text directly | 2427 | filling is correctly disabled. However, if some text directly |
| 2180 | (without an empty line in between) preceeds or follws a table, calling | 2428 | (without an empty line in between) preceeds or follows a table, calling |
| 2181 | @code{fill-paragraph} in that text will also fill the table like | 2429 | @code{fill-paragraph} in that text will also fill the table like |
| 2182 | normal text. Also, @code{fill-region} does bypass the | 2430 | normal text. Also, @code{fill-region} does bypass the |
| 2183 | @code{fill-paragraph} code and will fill tables like normal text. | 2431 | @code{fill-paragraph} code and will fill tables like normal text. |
| @@ -2186,6 +2434,10 @@ When the application called by @kbd{C-c C-o} to open a file link fails | |||
| 2186 | (for example because the application does not exits or refuses to open | 2434 | (for example because the application does not exits or refuses to open |
| 2187 | the file), it does so silently. No error message is displayed. | 2435 | the file), it does so silently. No error message is displayed. |
| 2188 | @item | 2436 | @item |
| 2437 | Recalculating a table line applies the formulas from left to right. | ||
| 2438 | If a formula calculated fields further doen the row, multiple | ||
| 2439 | recalculation may be needed to get all fields consistent. | ||
| 2440 | @item | ||
| 2189 | Under XEmacs, if Org-mode entries are included into the diary, it is | 2441 | Under XEmacs, if Org-mode entries are included into the diary, it is |
| 2190 | not possible to jump back from the diary to the org file. Apparently, | 2442 | not possible to jump back from the diary to the org file. Apparently, |
| 2191 | the text properties are lost when the fancy-diary-display is used. | 2443 | the text properties are lost when the fancy-diary-display is used. |
| @@ -2214,8 +2466,8 @@ suggestions and patches. | |||
| 2214 | 2466 | ||
| 2215 | @itemize @bullet | 2467 | @itemize @bullet |
| 2216 | @item | 2468 | @item |
| 2217 | Matthias Rempe (Oelde) provided ideas and suggestions, a patch | 2469 | Matthias Rempe (Oelde) provided ideas, a patch introducing Windows |
| 2218 | introducing Windows NT/2000 support, and quality control. | 2470 | NT/2000 support, and quality control. |
| 2219 | @item | 2471 | @item |
| 2220 | Kevin Rogers contributed code to access VM files on remote hosts. | 2472 | Kevin Rogers contributed code to access VM files on remote hosts. |
| 2221 | @item | 2473 | @item |
| @@ -2229,7 +2481,8 @@ his ideas have found their way into the agenda. | |||
| 2229 | Philip Rooke created the Org-mode reference card. He also helped with | 2481 | Philip Rooke created the Org-mode reference card. He also helped with |
| 2230 | beta testing and contributed a number of very useful ideas. | 2482 | beta testing and contributed a number of very useful ideas. |
| 2231 | @item | 2483 | @item |
| 2232 | Christian Schlauer proposed angular brackets around links, and some | 2484 | Christian Schlauer proposed angular brackets around links, among other |
| 2485 | things. | ||
| 2233 | other useful stuff. | 2486 | other useful stuff. |
| 2234 | @item | 2487 | @item |
| 2235 | David Wainberg suggested to implement an archiving mechanism. | 2488 | David Wainberg suggested to implement an archiving mechanism. |