4 |
@setfilename ../info/org |
@setfilename ../info/org |
5 |
@settitle Org Mode Manual |
@settitle Org Mode Manual |
6 |
|
|
7 |
@set VERSION 3.13 |
@set VERSION 3.14 |
8 |
@set DATE July 2005 |
@set DATE July 2005 |
9 |
|
|
10 |
@dircategory Emacs |
@dircategory Emacs |
94 |
|
|
95 |
* Summary:: Brief summary of what Org-mode does |
* Summary:: Brief summary of what Org-mode does |
96 |
* Installation and Activation:: How to install Org-mode |
* Installation and Activation:: How to install Org-mode |
97 |
* Feedback:: Bug reportes, ideas, patches etc. |
* Feedback:: Bug reports, ideas, patches etc. |
98 |
|
|
99 |
Document Structure |
Document Structure |
100 |
|
|
116 |
Calculations in tables |
Calculations in tables |
117 |
|
|
118 |
* Formula syntax:: How to write a formula |
* Formula syntax:: How to write a formula |
119 |
* Applying a formula:: How to get a formula executed |
* Column formulas:: Formulas valid for all fields in a column |
120 |
* Recalculation:: Re-applying all formulas in a table |
* Advanced features:: Field names, parameters and automatic recalc |
121 |
* Summing:: Summing columns and rows |
* Named-field formulas:: Formulas valid in single fields |
122 |
|
* Editing/debugging formulas:: Changing a stored formula |
123 |
|
* Appetizer:: |
124 |
|
|
125 |
Hyperlinks |
Hyperlinks |
126 |
|
|
182 |
@menu |
@menu |
183 |
* Summary:: Brief summary of what Org-mode does |
* Summary:: Brief summary of what Org-mode does |
184 |
* Installation and Activation:: How to install Org-mode |
* Installation and Activation:: How to install Org-mode |
185 |
* Feedback:: Bug reportes, ideas, patches etc. |
* Feedback:: Bug reports, ideas, patches etc. |
186 |
@end menu |
@end menu |
187 |
|
|
188 |
@node Summary, Installation and Activation, Introduction, Introduction |
@node Summary, Installation and Activation, Introduction, Introduction |
200 |
table editor. Org-mode supports ToDo items, deadlines, time stamps, |
table editor. Org-mode supports ToDo items, deadlines, time stamps, |
201 |
and scheduling. It dynamically compiles entries into an agenda that |
and scheduling. It dynamically compiles entries into an agenda that |
202 |
utilizes and smoothly integrates much of the Emacs calendar and diary. |
utilizes and smoothly integrates much of the Emacs calendar and diary. |
203 |
Plain text URL-like links connect to websites, emails, usenet |
Plain text URL-like links connect to websites, emails, Usenet |
204 |
messages, BBDB entries, and any files related to the projects. For |
messages, BBDB entries, and any files related to the projects. For |
205 |
printing and sharing of notes, an Org-mode file can be exported as a |
printing and sharing of notes, an Org-mode file can be exported as a |
206 |
structured ASCII file, or as HTML. |
structured ASCII file, or as HTML. |
717 |
@cindex calculations, in tables |
@cindex calculations, in tables |
718 |
@kindex C-c = |
@kindex C-c = |
719 |
@item C-c = |
@item C-c = |
720 |
Replace current field with the result of a formula. When called with a |
Install a new formula for the current column and replace current field |
721 |
@kbd{C-u} prefix, apply the equation in the current field and down |
with the result of the formula. |
722 |
through the current column to a horizonal separator line or the end of |
|
723 |
the table. For details, see @ref{Table calculations}. |
@kindex C-u C-c = |
724 |
|
@item C-u C-c = |
725 |
|
Install a new formula for the current field, which must be a named |
726 |
|
field. Evaluate the formula and replace the field content with the |
727 |
|
result. |
728 |
|
|
729 |
|
@kindex C-c ' |
730 |
|
@item C-c ' |
731 |
|
Edit all formulas associated with the current table in a separate |
732 |
|
buffer. |
733 |
|
|
734 |
@kindex C-c * |
@kindex C-c * |
735 |
@item C-c * |
@item C-c * |
740 |
|
|
741 |
@kindex C-# |
@kindex C-# |
742 |
@item C-# |
@item C-# |
743 |
Rotate the recalculation mark in first column through the states |
Rotate the calculation mark in first column through the states |
744 |
@samp{}, @samp{#}, @samp{*}, @samp{!}, @samp{$}. For the meaning of |
@samp{}, @samp{#}, @samp{*}, @samp{!}, @samp{$}. For the meaning of |
745 |
these marks see @ref{Table calculations}. When there is an active |
these marks see @ref{Advanced features}. When there is an active |
746 |
region, change all marks in the region. |
region, change all marks in the region. |
747 |
|
|
748 |
@kindex C-c ? |
@kindex C-c ? |
802 |
@section Calculations in tables |
@section Calculations in tables |
803 |
@cindex calculations, in tables |
@cindex calculations, in tables |
804 |
|
|
805 |
While the Org-mode table editor misses many features of a full |
The table editor has some spreadsheet-like capabilities. The Emacs |
806 |
spreadsheet, it nevertheless has very useful capabilities to compute |
@file{calc} package is required for this feature to work. There are |
807 |
fields. In horizontal direction, it can use complex expressions to |
basically two levels of complexity for table calculations in Org-mode. |
808 |
compute a field from other fields @emph{in the same row}, using named |
On the basic level, tables do only horizontal computations, so a field |
809 |
columns, constants and parameters. The Emacs @file{calc} package is |
can be computed from other fields @emph{in the same row}, and Org-mode |
810 |
required for this feature to work. In vertical direction, only |
assumes that there is only one formula for each column. This is very |
811 |
summing is supported. |
efficient to work with and enough for many tasks. On the complex |
812 |
|
level, columns and individual fields can be named for easier |
813 |
|
referencing in formulas, individual named fields can have their own |
814 |
|
formula associated with them, and recalculation can be automated. |
815 |
|
|
816 |
@menu |
@menu |
817 |
* Formula syntax:: How to write a formula |
* Formula syntax:: How to write a formula |
818 |
* Applying a formula:: How to get a formula executed |
* Column formulas:: Formulas valid for all fields in a column |
819 |
* Recalculation:: Re-applying all formulas in a table |
* Advanced features:: Field names, parameters and automatic recalc |
820 |
* Summing:: Summing columns and rows |
* Named-field formulas:: Formulas valid in single fields |
821 |
|
* Editing/debugging formulas:: Changing a stored formula |
822 |
|
* Appetizer:: Taste the power of calc |
823 |
@end menu |
@end menu |
824 |
|
|
825 |
@node Formula syntax, Applying a formula, Table calculations, Table calculations |
@node Formula syntax, Column formulas, Table calculations, Table calculations |
826 |
@subsection Formula syntax |
@subsection Formula syntax |
827 |
|
|
828 |
A formula for horizontal computations can be any algebraic expression |
A formula can be any algebraic expression understood by the Emacs |
829 |
understood by the Emacs @file{calc} package. Before evaluation, |
@file{calc} package. Before evaluation by @code{calc-eval} |
830 |
variable substitution takes place: @samp{$} is replaced by the field |
(@pxref{Calling Calc from Your Lisp Programs,calc-eval,Calling calc |
831 |
the cursor is currently in, and $1..$n reference the fields in the |
from Your Lisp Programs,calc,GNU Emacs Calc Manual}), variable |
832 |
current row. @samp{$name} is interpreted as the name of a column, |
substitution takes place: |
833 |
parameter or constant. Constants are defined globally through the |
|
834 |
variable @code{org-table-formula-constants}. If you have the |
@example |
835 |
|
$ @r{refers to the current field} |
836 |
|
$3 @r{refers to the field in column 3 of the current row} |
837 |
|
$3..$7 @r{a vector of the fields in columns 3-7 of current row} |
838 |
|
$P1..$P3 @r{vector of column range, using column names} |
839 |
|
&2 @r{second data field above the current, in same column} |
840 |
|
&5-2 @r{vector from fifth to second field above current} |
841 |
|
&III-II @r{vector of fields between 2nd and 3rd hline above} |
842 |
|
&III @r{vector of fields between third hline above and current field} |
843 |
|
$name @r{a named field, parameter or constant} |
844 |
|
@end example |
845 |
|
|
846 |
|
The range vectors can be directly fed into the calc vector functions |
847 |
|
like functions @samp{vmean} and @samp{vsum}. |
848 |
|
|
849 |
|
@samp{$name} is interpreted as the name of a column, parameter or |
850 |
|
constant. Constants are defined globally through the variable |
851 |
|
@code{org-table-formula-constants}. If you have the |
852 |
@file{constants.el} package, it will also be used to resolve |
@file{constants.el} package, it will also be used to resolve |
853 |
constants, including natural constants like @samp{$k} for Plancks |
constants, including natural constants like @samp{$k} for Planck's |
854 |
constant, units like @samp{$km} for kilometers. Column names and |
constant, units like @samp{$km} for kilometers. Column names and |
855 |
parameters can be specified in special table lines. These are |
parameters can be specified in special table lines. These are |
856 |
described below, see @ref{Recalculation}. |
described below, see @ref{Advanced features}. |
857 |
|
|
858 |
A formula can contain an optional mode string after a semicolon. This |
A formula can contain an optional mode string after a semicolon. This |
859 |
string consists of flags to influence calc's modes@footnote{By |
string consists of flags to influence calc's modes@footnote{By |
866 |
@samp{e2} or @samp{f4} to switch to normal, scientific, engineering, |
@samp{e2} or @samp{f4} to switch to normal, scientific, engineering, |
867 |
or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F}, |
or fix display format, respectively, and @samp{D}, @samp{R}, @samp{F}, |
868 |
and @samp{S} to turn on degrees, radians, fraction and symbolic modes, |
and @samp{S} to turn on degrees, radians, fraction and symbolic modes, |
869 |
respectively. In addition, you may provide a @code{printf} specifier |
respectively. In addition, you may provide a @code{printf} format |
870 |
to reformat the final result. A few examples: |
specifier to reformat the final result. A few examples: |
871 |
@example |
@example |
872 |
$1+$2 @r{Sum of first and second field} |
$1+$2 @r{Sum of first and second field} |
873 |
$1+$2;%.2f @r{Same, format result to two decimals} |
$1+$2;%.2f @r{Same, format result to two decimals} |
874 |
exp($2)+exp($1) @r{Math functions can be used} |
exp($2)+exp($1) @r{Math functions can be used} |
875 |
$;%.1f @r{Reformat current cell to 1 decimal} |
$;%.1f @r{Reformat current cell to 1 decimal} |
876 |
($3-32)*5/9 @r{degrees F -> C conversion} |
($3-32)*5/9 @r{Degrees F -> C conversion} |
877 |
$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} |
$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} |
878 |
tan($1);Dp3s1 @r{compute in degrees, precision 3, display SCI 1} |
tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} |
879 |
vmean($2..$7) @r{compute column range mean, using vector function} |
sin($1);Dp3%.1e @r{Same, but use printf specifier for display} |
880 |
|
vmean($2..$7) @r{Compute column range mean, using vector function} |
881 |
|
vsum(&III) @r{Sum numbers from 3rd hline above to here} |
882 |
taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} |
taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} |
883 |
@end example |
@end example |
884 |
|
|
885 |
@node Applying a formula, Recalculation, Formula syntax, Table calculations |
@node Column formulas, Advanced features, Formula syntax, Table calculations |
886 |
@subsection Applying a formula |
@subsection Column formulas |
887 |
|
|
888 |
To apply a formula to a field, type it directly into the field, |
To apply a formula to a field, type it directly into the field, |
889 |
preceded by an equal sign, like @samp{=$1+$2}. When you press |
preceded by an equal sign, like @samp{=$1+$2}. When you press |
890 |
@key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the |
@key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in the |
891 |
field, the formula will be evaluated and replaced with the result. If |
field, the formula will be stored as the formula for the current |
892 |
the field contains only @samp{=}, the formula most recently applied |
column, evaluated and the current field replaced with the result. If |
893 |
anywhere in the @emph{same column} will be used. |
the field contains only @samp{=}, the previously stored formula for |
894 |
|
this column is used. |
895 |
|
|
896 |
For each column, Org-mode will remember the most recently used |
For each column, Org-mode will remember the most recently used |
897 |
formula. The information is stored in a special line directly below |
formula. The information is stored in a special line starting with |
898 |
the table. When adding/deleting/moving columns with the appropriate |
@samp{#+TBLFM} directly below the table. When adding/deleting/moving |
899 |
commands, the stored equations will be modified accordingly. When a |
columns with the appropriate commands, the stored equations will be |
900 |
column used in a calculation is removed, references to this column |
modified accordingly. When a column used in a calculation is removed, |
901 |
become invalid and will cause an error upon applying the equation. |
references to this column become invalid and will cause an error upon |
902 |
|
applying the equation. |
903 |
|
|
904 |
Instead of typing an equation into the field, you may also use the |
Instead of typing an equation into the field, you may also use the |
905 |
command @kbd{C-c =}. It prompts for a formula (with default taken |
command @kbd{C-c =}. It prompts for a formula (with default taken |
906 |
from the @samp{#+TBLFM:} line) and applies it to the current field. |
from the @samp{#+TBLFM:} line) and applies it to the current field. A |
907 |
If you use a prefix argument (i.e. @kbd{C-u C-c =}), the formula will |
numerical prefix (e.g. @kbd{C-5 C-c =}) will apply it to that many |
908 |
be applied to the current field and down to the next separator line |
subsequent fields in the current column. |
|
or the end of the table. A numerical prefix will apply it to that |
|
|
many fields in the current column. |
|
|
|
|
|
When the evaluation of a formula leads to an error, the field content |
|
|
becomes the string @samp{#ERROR}. If you would like see what is going |
|
|
on during variable substitution and calculation in order to find a |
|
|
bug, turn on formula debugging in the menu and repeat the calculation |
|
|
by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field. |
|
|
Detailed information will be displayed. |
|
|
|
|
|
@node Recalculation, Summing, Applying a formula, Table calculations |
|
|
@subsection Recalculation |
|
909 |
|
|
910 |
To recompute all the fields in a line, use the command @kbd{C-c *}. |
To recompute all the fields in a line, use the command @kbd{C-c *}. |
911 |
It re-applies all stored equations to the current row, from left to |
It re-applies all stored equations to the current row, from left to |
912 |
right. With a @kbd{C-u} prefix, this will be done to every line in |
right. With a @kbd{C-u} prefix, this will be done to every line in |
913 |
the table, so use this command it you want to make sure the entire |
the table, so use this command it you want to make sure the entire |
914 |
table is up-to-date. A more automatic way of recalculating the |
table is up-to-date. @kbd{C-u C-c C-c} is another way to update the |
915 |
current line requires marking the line: If the first column of a row |
entire table. Global updating does not touch the line(s) above the |
916 |
contains only @samp{#}, the row will be re-computed with every |
first horizontal separator line, assuming that this is the table |
917 |
@key{TAB}, @key{RET}, and @kbd{C-c C-c} in this row. Here is an |
header. |
918 |
example of a table that collects exam results of students, with some |
|
919 |
rows activated for semi-automatic computations. |
@node Advanced features, Named-field formulas, Column formulas, Table calculations |
920 |
|
@subsection Advanced features |
921 |
|
|
922 |
|
If you want want the recalculation of fields to happen automatically, |
923 |
|
or if you want to be able to assign a formula to an individual field |
924 |
|
(instead of an entire column) you need to reserve the first column of |
925 |
|
the table for special marking characters. Here is an example of a |
926 |
|
table that collects exam results of students and makes use of these |
927 |
|
features: |
928 |
@example |
@example |
929 |
@group |
@group |
930 |
|---+---------+--------+--------+--------+-------+------| |
|---+---------+--------+--------+--------+-------+------| |
935 |
| ^ | | m1 | m2 | m3 | mt | | |
| ^ | | m1 | m2 | m3 | mt | | |
936 |
|---+---------+--------+--------+--------+-------+------| |
|---+---------+--------+--------+--------+-------+------| |
937 |
| # | Peter | 10 | 8 | 23 | 41 | 8.2 | |
| # | Peter | 10 | 8 | 23 | 41 | 8.2 | |
938 |
| # | Sara | 7 | 14 | 19 | 40 | 8.0 | |
| # | Sara | 6 | 14 | 19 | 39 | 7.8 | |
939 |
| # | Sam | 2 | 4 | 3 | 9 | 1.8 | |
| # | Sam | 2 | 4 | 3 | 9 | 1.8 | |
940 |
|---+---------+--------+--------+--------+-------+------| |
|---+---------+--------+--------+--------+-------+------| |
941 |
|
| | Average | | | | 29.7 | | |
942 |
|
| ^ | | | | | at | | |
943 |
| $ | max=50 | | | | | | |
| $ | max=50 | | | | | | |
944 |
|---+---------+--------+--------+--------+-------+------| |
|---+---------+--------+--------+--------+-------+------| |
945 |
#+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f |
#+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(&II);%.1f |
946 |
@end group |
@end group |
947 |
@end example |
@end example |
|
@noindent |
|
|
The example also demonstrates a number of features: |
|
|
@enumerate |
|
|
@item |
|
|
If the first field of a row contains only @samp{!}, this row defines |
|
|
@emph{names} for the different columns so that you can write |
|
|
@samp{$Tot} instead of @samp{$6} --- useful in larger tables, |
|
|
when counting columns becomes error prone. |
|
|
@item |
|
|
If the first field of a row contains only @samp{$}, fields in this row |
|
|
can define @emph{parameters} for formulas. For example, if a field in |
|
|
a @samp{$} row contains @samp{max=50}, then formulas in this table can |
|
|
refer to the value 50 using @samp{$max}. Parameters work exactly like |
|
|
constants, only that they can be defined on a per-table basis. |
|
|
Changing a parameter and then recalculating the table can be useful |
|
|
and fun. |
|
|
@item |
|
|
It the first field contains only @samp{^}, fields in this row define |
|
|
names for the fields in the row above, for example @samp{$m1} for |
|
|
@samp{10}. Similarly, if the marking character is @samp{_}, the names |
|
|
are valie for the fields in the row below. |
|
|
@item |
|
|
A column range @samp{$P1..$P3} is expanded to a vector, so that calc's |
|
|
vector functions (in this case @samp{vsum}, but there are many more) |
|
|
can be applied to ranges. For a range, columns may be referenced by |
|
|
name or number, in either sequence. |
|
|
@end enumerate |
|
948 |
|
|
949 |
@noindent If a table contains any line with @samp{#} as the |
@noindent @b{Important}: Please note that for these special tables, |
950 |
first field, @kbd{C-u C-c *} will only change the marked lines and |
recalculating the table with @kbd{C-u C-c *} does only affect rows |
951 |
leave all unmarked lines alone. You can also mark a line with |
which are marked @samp{#} or @samp{*}, and named fields. The column |
952 |
@samp{*}. These lines will also be recalculated with @kbd{C-u C-c *}, |
formulas are not applied in rows with empty first field. |
953 |
but not upon @key{TAB} and @key{RET}. Use this for lines which are |
|
954 |
slow to calculate. |
The marking characters have the following meaning: |
955 |
|
@table @samp |
956 |
|
@item ! |
957 |
|
The fields in this line define names for the columns, so that you may |
958 |
|
refer to a column as @samp{$Tot} instead of @samp{$6}. |
959 |
|
@item ^ |
960 |
|
This row define names for the fields @emph{above} the row. With such |
961 |
|
a definition, any formula in the table may use @samp{$m1} to refer to |
962 |
|
the value @samp{10}. Also, named fields can have their own formula |
963 |
|
associated with them. |
964 |
|
@item _ |
965 |
|
Similar to @samp{^}, but defines names for the fields in the row |
966 |
|
@emph{below}. |
967 |
|
@item $ |
968 |
|
Fields in this row can define @emph{parameters} for formulas. For |
969 |
|
example, if a field in a @samp{$} row contains @samp{max=50}, then |
970 |
|
formulas in this table can refer to the value 50 using @samp{$max}. |
971 |
|
Parameters work exactly like constants, only that they can be defined on |
972 |
|
a per-table basis. Changing a parameter and then recalculating the |
973 |
|
table can be useful. |
974 |
|
@item # |
975 |
|
Fields in this row are automatically recalculated when pressing |
976 |
|
@key{TAB} or @key{RET} or @kbd{S-@key{TAB}} in this row. Also, this row |
977 |
|
is selected for a global recalculation with @kbd{C-u C-c *}. Unmarked |
978 |
|
lines will be left alone by this command. |
979 |
|
@item * |
980 |
|
Selects this line for global recalculation with @kbd{C-u C-c *}, but |
981 |
|
not for automatic recalculation. Use this when automatic |
982 |
|
recalculation slows down editing too much. |
983 |
|
@item |
984 |
|
Unmarked lines are exempted from recalculation with @kbd{C-u C-c *}. |
985 |
|
All lines that should be recalculated should be marked with @samp{#} |
986 |
|
or @samp{*}. |
987 |
|
@end table |
988 |
|
|
989 |
|
@node Named-field formulas, Editing/debugging formulas, Advanced features, Table calculations |
990 |
|
@subsection Named-field formulas |
991 |
|
|
992 |
|
A named field can have its own formula associated with it. In the |
993 |
|
example above, this is used for the @samp{at} field that contains |
994 |
|
the average result of the students. To enter a formula for a named |
995 |
|
field, just type it onto the buffer, preceded by @samp{:=}. Or use |
996 |
|
@kbd{C-u C-c =}. This equation will be stored below the table like |
997 |
|
@samp{$name=...}. Any recalculation in the table (even if only |
998 |
|
requested for the current line) will also update all named field |
999 |
|
formulas. |
1000 |
|
|
1001 |
|
@node Editing/debugging formulas, Appetizer, Named-field formulas, Table calculations |
1002 |
|
@subsection Editing and debugging formulas |
1003 |
|
|
1004 |
|
To edit a column or field formula, you can use the commands @kbd{C-c |
1005 |
|
=} and @kbd{C-u C-c =}, respectively. The currently active expression |
1006 |
|
is then presented as default in the minibuffer, were it may be edited. |
1007 |
|
|
1008 |
|
Note that making a table field blank does not remove the formula |
1009 |
|
associated with the field - during the next recalculation the field |
1010 |
|
will be filled again. To remove a formula from a field, you have to |
1011 |
|
give an empty reply when prompted for the formula, or to edit the |
1012 |
|
@samp{#+TBLFM} line. |
1013 |
|
|
1014 |
|
@kindex C-c C-c |
1015 |
|
You may edit the @samp{#+TBLFM} directly and re-apply |
1016 |
|
the changed equations with @kbd{C-c C-c} in that line, or with the |
1017 |
|
normal recalculation commands in the table. |
1018 |
|
|
1019 |
|
@kindex C-c ' |
1020 |
|
@kindex C-c C-c |
1021 |
|
@kindex C-c C-q |
1022 |
|
@kindex C-c ? |
1023 |
|
In particular for large tables with many formulas, it is convenient to |
1024 |
|
use the command @kbd{C-c '} to edit the formulas of the current table |
1025 |
|
in a separate buffer. That buffer will show the formulas one per |
1026 |
|
line, and you are free to edit, add and remove formulas. Press |
1027 |
|
@kbd{C-c ?} on a @samp{$...} expression to get information about its |
1028 |
|
interpretation. Exiting the buffer with @kbd{C-c C-c} only stores the |
1029 |
|
modified formulas below the table. Exiting with @kbd{C-u C-c C-c} |
1030 |
|
also applies them to the entire table. @kbd{C-c C-q} exits without |
1031 |
|
installing the changes. |
1032 |
|
|
1033 |
Just to wet your appetite on what can be done with the fantastic |
When the evaluation of a formula leads to an error, the field content |
1034 |
|
becomes the string @samp{#ERROR}. If you would like see what is going |
1035 |
|
on during variable substitution and calculation in order to find a |
1036 |
|
bug, turn on formula debugging in the menu and repeat the calculation |
1037 |
|
by pressing, for example by pressing @kbd{C-c = @key{RET}} in a field. |
1038 |
|
Detailed information will be displayed. |
1039 |
|
|
1040 |
|
@node Appetizer, , Editing/debugging formulas, Table calculations |
1041 |
|
@subsection Appetizer |
1042 |
|
|
1043 |
|
Finally, just to wet your appetite on what can be done with the fantastic |
1044 |
@file{calc} package, here is a table that computes the Taylor series |
@file{calc} package, here is a table that computes the Taylor series |
1045 |
for a couple of functions (homework: try that with Excel :-) |
for a couple of functions (homework: try that with Excel :-) |
1046 |
|
|
1060 |
@end group |
@end group |
1061 |
@end example |
@end example |
1062 |
|
|
|
@node Summing, , Recalculation, Table calculations |
|
|
@subsection Summing |
|
|
|
|
|
Finally, when typing a formula into a field, a number of special |
|
|
keywords execute predefined sums over the current row or column and |
|
|
enter the result into the current field. These calculations are |
|
|
one-off, the formula is not stored, and you will neet to re-enter it |
|
|
in order to compute again. |
|
|
|
|
|
@example |
|
|
= @r{Execute the stored formula valid in this column.} |
|
|
=sum @r{Sum all fields above the current (alias @code{=sumv}).} |
|
|
=sumh @r{Sum all fields to the left of the current field.} |
|
|
=sum3 @r{Same as @samp{=sum}, but use just 3 fields above current.} |
|
|
@end example |
|
|
|
|
1063 |
@node orgtbl-mode, table.el, Table calculations, Tables |
@node orgtbl-mode, table.el, Table calculations, Tables |
1064 |
@section The Orgtbl minor mode |
@section The Orgtbl minor mode |
1065 |
@cindex orgtbl-mode |
@cindex orgtbl-mode |
1107 |
@chapter Hyperlinks |
@chapter Hyperlinks |
1108 |
@cindex hyperlinks |
@cindex hyperlinks |
1109 |
|
|
1110 |
Just like HMTL, Org-mode provides links to other files, usenet |
Just like HMTL, Org-mode provides links to other files, Usenet |
1111 |
articles, emails and much more. |
articles, emails and much more. |
1112 |
|
|
1113 |
@menu |
@menu |
1128 |
@cindex USENET links |
@cindex USENET links |
1129 |
@cindex SHELL links |
@cindex SHELL links |
1130 |
|
|
1131 |
Org-mode supports links to files, websites, usenet and email messages; |
Org-mode supports links to files, websites, Usenet and email messages; |
1132 |
and BBDB database entries. Links are just plain-text URL-like |
and BBDB database entries. Links are just plain-text URL-like |
1133 |
locators, optionally enclosed by angular brackets. The following list |
locators, optionally enclosed by angular brackets. The following list |
1134 |
shows examples for each link type. |
shows examples for each link type. |
1220 |
store quick notes with little interruption of your work flow. See |
store quick notes with little interruption of your work flow. See |
1221 |
@uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more |
@uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more |
1222 |
information. The notes produced by @emph{Remember} can be stored in |
information. The notes produced by @emph{Remember} can be stored in |
1223 |
different ways, and Org-mode files are a good target. |
different ways, and Org-mode files are a good target. Org-mode allows |
1224 |
Org-mode allows to file away notes either to a default file, or |
to file away notes either to a default file, or directly to the |
1225 |
directly to the correct location in your Org-mode outline tree. The |
correct location in your Org-mode outline tree. The following |
1226 |
following customization will tell @emph{Remember} to use org files as |
customization@footnote{The two autoload forms are only necessary if |
1227 |
target, and to create annotations compatible with Org-mode links. |
@file{org.el} is not part of the Emacs distribution or and XEmacs |
1228 |
|
package.} will tell @emph{Remember} to use org files as target, and to |
1229 |
|
create annotations compatible with Org-mode links. |
1230 |
|
|
|
@c FIXME: The autoload will not be necessary when Org-mode is part of Emacs |
|
1231 |
@example |
@example |
1232 |
(autoload 'org-remember-annotation "org") |
(autoload 'org-remember-annotation "org") |
1233 |
(autoload 'org-remember-handler "org") |
(autoload 'org-remember-handler "org") |
1388 |
command @kbd{C-c C-t} is changed slightly@footnote{This is also true |
command @kbd{C-c C-t} is changed slightly@footnote{This is also true |
1389 |
for the @kbd{t} command in the timeline and agenda buffers.}. When |
for the @kbd{t} command in the timeline and agenda buffers.}. When |
1390 |
used several times in succession, it will still cycle through all |
used several times in succession, it will still cycle through all |
1391 |
names. But when you return to the item after some time and |
names. But when when you return to the item after some time and |
1392 |
execute @kbd{C-c C-t} again, it will switch from each name directly to |
execute @kbd{C-c C-t} again, it will switch from each name directly to |
1393 |
DONE. Use prefix arguments or completion to quickly select a specific |
DONE. Use prefix arguments or completion to quickly select a specific |
1394 |
name. |
name. |
2312 |
@cindex completion, of TODO keywords |
@cindex completion, of TODO keywords |
2313 |
@cindex completion, of dictionary words |
@cindex completion, of dictionary words |
2314 |
@cindex completion, of option keywords |
@cindex completion, of option keywords |
|
@cindex completion, of keyword formulas |
|
2315 |
|
|
2316 |
Org-mode supports in-buffer completion. This type of completion does |
Org-mode supports in-buffer completion. This type of completion does |
2317 |
not make use of the minibuffer. You simply type a few letters into |
not make use of the minibuffer. You simply type a few letters into |
2332 |
option keyword is already complete, pressing @kbd{M-@key{TAB}} again |
option keyword is already complete, pressing @kbd{M-@key{TAB}} again |
2333 |
will insert example settings for this keyword. |
will insert example settings for this keyword. |
2334 |
@item |
@item |
|
After @samp{=}, complete keyword formulas for tables. |
|
|
@item |
|
2335 |
Elsewhere, complete dictionary words using ispell. |
Elsewhere, complete dictionary words using ispell. |
2336 |
@end itemize |
@end itemize |
2337 |
@end table |
@end table |
2452 |
been installed properly. As of Emacs 22, calc is part of the Emacs |
been installed properly. As of Emacs 22, calc is part of the Emacs |
2453 |
distribution. Another possibility for interaction between the two |
distribution. Another possibility for interaction between the two |
2454 |
packages is using calc for embedded calculations. @xref{Embedded Mode, |
packages is using calc for embedded calculations. @xref{Embedded Mode, |
2455 |
, Embedded Mode, calc, The calc maanual}. |
, Embedded Mode, calc, GNU Emacs Calc Manual}. |
2456 |
@cindex @file{constants.el} |
@cindex @file{constants.el} |
2457 |
@item @file{constants.el} by Carsten Dominik |
@item @file{constants.el} by Carsten Dominik |
2458 |
In a table formula (@pxref{Table calculations}), it is possible to use |
In a table formula (@pxref{Table calculations}), it is possible to use |
2507 |
@item |
@item |
2508 |
If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the |
If you call @code{fill-paragraph} (bound to @kbd{M-q}) in a table, the |
2509 |
filling is correctly disabled. However, if some text directly |
filling is correctly disabled. However, if some text directly |
2510 |
(without an empty line in between) preceeds or follows a table, calling |
(without an empty line in between) precedes or follows a table, calling |
2511 |
@code{fill-paragraph} in that text will also fill the table like |
@code{fill-paragraph} in that text will also fill the table like |
2512 |
normal text. Also, @code{fill-region} does bypass the |
normal text. Also, @code{fill-region} does bypass the |
2513 |
@code{fill-paragraph} code and will fill tables like normal text. |
@code{fill-paragraph} code and will fill tables like normal text. |
2566 |
Christian Schlauer proposed angular brackets around links, among other |
Christian Schlauer proposed angular brackets around links, among other |
2567 |
things. |
things. |
2568 |
@item |
@item |
2569 |
David Wainberg suggested to implement an archiving mechanism. |
David Wainberg suggested to implement an archiving mechanism and helped |
2570 |
|
testing. |
2571 |
@item |
@item |
2572 |
Linking to VM/BBDB/GNUS was inspired by Tom Shannon's |
Linking to VM/BBDB/GNUS was inspired by Tom Shannon's |
2573 |
@file{organizer-mode.el}. |
@file{organizer-mode.el}. |