Release 4.29

This commit is contained in:
Carsten Dominik 2008-01-31 11:31:31 +01:00
parent fc87d5cd14
commit fcf5c84bc8
6 changed files with 470 additions and 277 deletions

331
org
View File

@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
* Org Mode: (org). outline-based notes management and organizer
END-INFO-DIR-ENTRY
This manual is for Org-mode (version 4.28).
This manual is for Org-mode (version 4.29).
Copyright (C) 2004, 2005, 2006 Free Software Foundation
@ -27,7 +27,7 @@ File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
Org Mode Manual
***************
This manual is for Org-mode (version 4.28).
This manual is for Org-mode (version 4.29).
Copyright (C) 2004, 2005, 2006 Free Software Foundation
@ -88,6 +88,7 @@ Tables
Calculations in tables
* Formula syntax:: How to write a formula
* Lisp formulas:: An alternative way to write formulas
* Column formulas:: Formulas valid for all fields in a column
* Advanced features:: Field names, parameters and automatic recalc
* Named-field formulas:: Formulas valid in single fields
@ -540,9 +541,8 @@ C-v' creates a sparse TODO tree (*note TODO basics::).
To print a sparse tree, you can use the Emacs command
`ps-print-buffer-with-faces' which does not print invisible parts of
the document (2). Or you can use the command `C-c C-x v' to copy the
visible part of the document to another file (extension `.txt') which
can then be printed in any desired way.
the document (2). Or you can use the command `C-c C-x v' to export
only the visible part of the document and print the resulting file.
---------- Footnotes ----------
@ -916,7 +916,8 @@ File: org, Node: Table calculations, Next: orgtbl-mode, Prev: Narrow columns,
==========================
The table editor makes use of the Emacs `calc' package to implement
spreadsheet-like capabilities. Org-mode has two levels of complexity
spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to
derive fields from other fields. Org-mode has two levels of complexity
for table calculations. On the basic level, tables do only horizontal
computations, so a field can be computed from other fields _in the same
row_, and Org-mode assumes that there is only one formula for each
@ -928,6 +929,7 @@ own formula associated with them, and recalculation can be automated.
* Menu:
* Formula syntax:: How to write a formula
* Lisp formulas:: An alternative way to write formulas
* Column formulas:: Formulas valid for all fields in a column
* Advanced features:: Field names, parameters and automatic recalc
* Named-field formulas:: Formulas valid in single fields
@ -935,7 +937,7 @@ own formula associated with them, and recalculation can be automated.
* Appetizer:: Taste the power of calc

File: org, Node: Formula syntax, Next: Column formulas, Prev: Table calculations, Up: Table calculations
File: org, Node: Formula syntax, Next: Lisp formulas, Prev: Table calculations, Up: Table calculations
3.3.1 Formula syntax
--------------------
@ -977,17 +979,17 @@ turn on degrees, radians, fraction and symbolic modes, respectively.
In addition, you may provide a `printf' format specifier to reformat
the final result. A few examples:
$1+$2 Sum of first and second field
$1+$2;%.2f Same, format result to two decimals
exp($2)+exp($1) Math functions can be used
$;%.1f Reformat current cell to 1 decimal
($3-32)*5/9 Degrees F -> C conversion
$c/$1/$cm Hz -> cm conversion, using `constants.el'
tan($1);Dp3s1 Compute in degrees, precision 3, display SCI 1
sin($1);Dp3%.1e Same, but use printf specifier for display
vmean($2..$7) Compute column range mean, using vector function
vsum(&III) Sum numbers from 3rd hline above, up to here
taylor($3,x=7,2) taylor series of $3, at x=7, second degree
$1+$2 Sum of first and second field
$1+$2;%.2f Same, format result to two decimals
exp($2)+exp($1) Math functions can be used
$;%.1f Reformat current cell to 1 decimal
($3-32)*5/9 Degrees F -> C conversion
$c/$1/$cm Hz -> cm conversion, using `constants.el'
tan($1);Dp3s1 Compute in degrees, precision 3, display SCI 1
sin($1);Dp3%.1e Same, but use printf specifier for display
vmean($2..$7) Compute column range mean, using vector function
vsum(&III) Sum numbers from 3rd hline above, up to here
taylor($3,x=7,2) taylor series of $3, at x=7, second degree
---------- Footnotes ----------
@ -998,9 +1000,27 @@ The default settings can be configured using the variable
`org-calc-default-modes'.

File: org, Node: Column formulas, Next: Advanced features, Prev: Formula syntax, Up: Table calculations
File: org, Node: Lisp formulas, Next: Column formulas, Prev: Formula syntax, Up: Table calculations
3.3.2 Column formulas
3.3.2 Emacs Lisp forms as formulas
----------------------------------
It is also possible to write a formula in Emacs lisp, this can be useful
for string manipulation and control structures. If a formula starts
with a single quote followed by an opening parenthesis, then it is
evaluated as a lisp form. The evaluation should return either a string
or a number. Just like with `calc' formulas, you can provide a format
specifier after a semicolon. A few examples:
swap the first two characters of the content of column 1
'(concat (substring "$1" 1 2) (substring "$1" 0 1) (substring "$1" 2))
Add columns 1 and 2, equivalent to the calc's `$1+$2'
'(+ $1 $2)

File: org, Node: Column formulas, Next: Advanced features, Prev: Lisp formulas, Up: Table calculations
3.3.3 Column formulas
---------------------
To apply a formula to a field, type it directly into the field,
@ -1035,7 +1055,7 @@ separator line, assuming that this is the table header.

File: org, Node: Advanced features, Next: Named-field formulas, Prev: Column formulas, Up: Table calculations
3.3.3 Advanced features
3.3.4 Advanced features
-----------------------
If you want the recalculation of fields to happen automatically, or if
@ -1108,7 +1128,7 @@ with empty first field.

File: org, Node: Named-field formulas, Next: Editing/debugging formulas, Prev: Advanced features, Up: Table calculations
3.3.4 Named-field formulas
3.3.5 Named-field formulas
--------------------------
A named field can have its own formula associated with it. In the
@ -1122,7 +1142,7 @@ line) will also update all named field formulas.

File: org, Node: Editing/debugging formulas, Next: Appetizer, Prev: Named-field formulas, Up: Table calculations
3.3.5 Editing and debugging formulas
3.3.6 Editing and debugging formulas
------------------------------------
To edit a column or field formula, use the commands `C-c =' and `C-u
@ -1158,7 +1178,7 @@ will be displayed.

File: org, Node: Appetizer, Prev: Editing/debugging formulas, Up: Table calculations
3.3.6 Appetizer
3.3.7 Appetizer
---------------
Finally, just to wet your appetite on what can be done with the
@ -2597,6 +2617,12 @@ Remote editing
`S-<down>'
Decrease the priority of the current item.
`C-c C-s'
Schedule this item
`C-c C-d'
Set a deadline for this item.
`S-<right>'
Change the time stamp associated with the current line by one day
into the future. With prefix argument, change it by that many
@ -2702,7 +2728,10 @@ file.
Export as ASCII file. If there is an active region, only the
region will be exported. For an org file `myfile.org', the ASCII
file will be `myfile.txt'. The file will be overwritten without
warning.
warning.
`C-c C-x v a'
Export only the visible part of the document.
In the exported version, the first 3 outline levels will become
headlines, defining a general document structure. Additional levels
@ -2728,7 +2757,12 @@ support for tables.
Export as HTML file `myfile.html'.
`C-c C-x b'
Export as HTML file and open it with a browser.
Export as HTML file and open it with a browser.
`C-c C-x v h'
`C-c C-x v b'
Export only the visible part of the document.
In the exported version, the first 3 outline levels will become
headlines, defining a general document structure. Additional levels
@ -2775,7 +2809,10 @@ Currently, this exporter only handles the general outline structure and
does not interpret any additional Org-mode features.
`C-c C-x C-x'
Export as XML file `myfile.xml'.
Export as XML file `myfile.xml'.
`C-c C-x v x'
Export only the visible part of the document.

File: org, Node: iCalendar export, Next: Text interpretation, Prev: XML export, Up: Exporting
@ -3495,6 +3532,9 @@ Org-mode would not be what it is without your input.
* Pavel Chalmoviansky influenced the agenda treatment of items with
specified time.
* Gregory Chenov patched support for lisp forms into table
calculations and improved XEmacs compatibility.
* Sacha Chua suggested to copy some linking code from Planner.
* Kees Dullemond inspired the use of narrowed tabled columns.
@ -3503,7 +3543,7 @@ Org-mode would not be what it is without your input.
patched CSS formatting into the HTML exporter, and inspired the
agenda.
* Nic Ferrier contributed mailcap and XML support.
* Nic Ferrier contributed mailcap and XOXO support.
* Kai Grossjohann pointed out key-binding conflicts caused by
Org-mode.
@ -3521,6 +3561,8 @@ Org-mode would not be what it is without your input.
* Pete Phillips helped the development of the TAGS feature.
* T.V. Raman reported bugs and suggested improvements.
* Matthias Rempe (Oelde) provided ideas, Windows support, and quality
control.
@ -3538,6 +3580,9 @@ Org-mode would not be what it is without your input.
* Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
`organizer-mode.el'.
* David O'Toole wrote `org-publish.el' and came up with lots is ideas
for small changes.
* Ju"rgen Vollmer contributed code generating the table of contents
in HTML output.
@ -3581,7 +3626,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top
* agenda: Weekly/Daily agenda. (line 6)
* agenda commands, custom: Agenda dispatcher. (line 6)
* agenda dispatcher: Agenda dispatcher. (line 6)
* agenda files, removing buffers: Agenda commands. (line 189)
* agenda files, removing buffers: Agenda commands. (line 195)
* agenda views: Agenda views. (line 6)
* agenda, for single file: Timeline. (line 6)
* allout.el, conflict with: FAQ. (line 6)
@ -3646,7 +3691,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top
* DEADLINE keyword: Time stamps. (line 43)
* deadlines: Time stamps. (line 6)
* demotion, of subtrees: Structure editing. (line 6)
* diary entries, creating from agenda: Agenda commands. (line 147)
* diary entries, creating from agenda: Agenda commands. (line 153)
* diary integration: Calendar/Diary integration.
(line 6)
* dictionary word completion: Completion. (line 6)
@ -3693,8 +3738,8 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top
* GNUS links: External links. (line 6)
* hand-formatted lists: Enhancing text. (line 11)
* headline levels: Export options. (line 25)
* headline levels, for exporting <1>: HTML export. (line 16)
* headline levels, for exporting: ASCII export. (line 15)
* headline levels, for exporting <1>: HTML export. (line 21)
* headline levels, for exporting: ASCII export. (line 18)
* headline navigation: Motion. (line 6)
* headline tagging: Tags. (line 6)
* headline, promotion and demotion: Structure editing. (line 6)
@ -3726,6 +3771,7 @@ File: org, Node: Index, Next: Key Index, Prev: Miscellaneous, Up: Top
* links, external: External links. (line 6)
* links, internal: Internal links. (line 6)
* links, returning to: Handling links. (line 81)
* Lisp forms, as table fomulas: Lisp formulas. (line 6)
* lists, hand-formatted: Enhancing text. (line 11)
* lists, ordered: Plain lists. (line 6)
* lists, plain: Plain lists. (line 6)
@ -3893,10 +3939,10 @@ File: org, Node: Key Index, Prev: Index, Up: Top
(line 57)
* <TAB> <3>: Plain lists. (line 38)
* <TAB>: Visibility cycling. (line 10)
* > <1>: Agenda commands. (line 142)
* > <1>: Agenda commands. (line 148)
* >: Creating timestamps. (line 76)
* C: Agenda commands. (line 172)
* c: Agenda commands. (line 156)
* C: Agenda commands. (line 178)
* c: Agenda commands. (line 162)
* C-#: Built-in table editor.
(line 155)
* C-,: Agenda files. (line 18)
@ -3958,6 +4004,7 @@ File: org, Node: Key Index, Prev: Index, Up: Top
* C-c C-c <5>: Built-in table editor.
(line 54)
* C-c C-c: Plain lists. (line 68)
* C-c C-d <1>: Agenda commands. (line 133)
* C-c C-d: Creating timestamps. (line 37)
* C-c C-f: Motion. (line 12)
* C-c C-j: Motion. (line 21)
@ -3971,6 +4018,7 @@ File: org, Node: Key Index, Prev: Index, Up: Top
* C-c C-q: Built-in table editor.
(line 119)
* C-c C-r: Timeline. (line 13)
* C-c C-s <1>: Agenda commands. (line 130)
* C-c C-s: Creating timestamps. (line 47)
* C-c C-t: TODO basics. (line 13)
* C-c C-u: Motion. (line 18)
@ -3979,7 +4027,7 @@ File: org, Node: Key Index, Prev: Index, Up: Top
* C-c C-x a: ASCII export. (line 9)
* C-c C-x b: HTML export. (line 11)
* C-c C-x c: iCalendar export. (line 20)
* C-c C-x C-c: Agenda commands. (line 179)
* C-c C-x C-c: Agenda commands. (line 185)
* C-c C-x C-i: iCalendar export. (line 15)
* C-c C-x C-k: Structure editing. (line 36)
* C-c C-x C-w <1>: Built-in table editor.
@ -3995,7 +4043,11 @@ File: org, Node: Key Index, Prev: Index, Up: Top
(line 105)
* C-c C-x M-w: Structure editing. (line 40)
* C-c C-x t: Export options. (line 13)
* C-c C-x v <1>: XML export. (line 11)
* C-c C-x v: Sparse trees. (line 39)
* C-c C-x v a: ASCII export. (line 13)
* C-c C-x v b: HTML export. (line 14)
* C-c C-x v h: HTML export. (line 14)
* C-c C-y: Creating timestamps. (line 63)
* C-c l: Handling links. (line 9)
* C-c |: Built-in table editor.
@ -4009,11 +4061,11 @@ File: org, Node: Key Index, Prev: Index, Up: Top
* d: Agenda commands. (line 65)
* f: Agenda commands. (line 44)
* g: Agenda commands. (line 72)
* H: Agenda commands. (line 176)
* i: Agenda commands. (line 147)
* H: Agenda commands. (line 182)
* i: Agenda commands. (line 153)
* l: Agenda commands. (line 51)
* L: Agenda commands. (line 32)
* M: Agenda commands. (line 163)
* M: Agenda commands. (line 169)
* M-<down>: Built-in table editor.
(line 82)
* M-<left> <1>: Built-in table editor.
@ -4059,18 +4111,18 @@ File: org, Node: Key Index, Prev: Index, Up: Top
* o: Agenda commands. (line 59)
* P: Agenda commands. (line 117)
* p: Agenda commands. (line 20)
* q: Agenda commands. (line 186)
* q: Agenda commands. (line 192)
* r <1>: Agenda commands. (line 76)
* r: Global TODO list. (line 21)
* S: Agenda commands. (line 167)
* S: Agenda commands. (line 173)
* S-<down> <1>: Agenda commands. (line 126)
* S-<down> <2>: Creating timestamps. (line 55)
* S-<down>: Priorities. (line 25)
* S-<left> <1>: Agenda commands. (line 138)
* S-<left> <1>: Agenda commands. (line 144)
* S-<left>: Creating timestamps. (line 50)
* S-<RET>: Built-in table editor.
(line 170)
* S-<right> <1>: Agenda commands. (line 130)
* S-<right> <1>: Agenda commands. (line 136)
* S-<right>: Creating timestamps. (line 50)
* S-<TAB> <1>: Built-in table editor.
(line 61)
@ -4081,106 +4133,107 @@ File: org, Node: Key Index, Prev: Index, Up: Top
* T: Agenda commands. (line 104)
* t: Agenda commands. (line 100)
* w: Agenda commands. (line 62)
* x: Agenda commands. (line 189)
* x: Agenda commands. (line 195)

Tag Table:
Node: Top959
Node: Introduction7514
Node: Summary7828
Node: Installation and activation9936
Node: Feedback11605
Node: Document structure12391
Node: Outlines13157
Node: Headlines13817
Node: Visibility cycling14440
Node: Motion15636
Node: Structure editing16420
Node: Archiving18529
Node: Sparse trees19389
Ref: Sparse trees-Footnote-121418
Ref: Sparse trees-Footnote-221510
Node: Plain lists21625
Ref: Plain lists-Footnote-124919
Node: Tables25276
Node: Built-in table editor25824
Node: Narrow columns33437
Ref: Narrow columns-Footnote-135376
Node: Table calculations35422
Node: Formula syntax36598
Ref: Formula syntax-Footnote-139527
Node: Column formulas39826
Node: Advanced features41588
Node: Named-field formulas44843
Node: Editing/debugging formulas45483
Node: Appetizer47241
Node: orgtbl-mode48343
Node: table.el48834
Node: Hyperlinks49811
Node: Link format50515
Node: Internal links51812
Node: Radio targets53762
Node: CamelCase links54477
Node: External links54975
Node: Handling links56900
Node: Search options61232
Ref: Search options-Footnote-163008
Node: Custom searches63089
Node: Remember64137
Ref: Remember-Footnote-168004
Node: TODO items68128
Node: TODO basics69051
Node: Progress logging70392
Node: TODO extensions71178
Node: Workflow states71978
Node: TODO types72846
Ref: TODO types-Footnote-174504
Node: Per file keywords74586
Ref: Per file keywords-Footnote-176039
Node: Priorities76267
Node: Timestamps77476
Node: Time stamps77797
Node: Creating timestamps80225
Node: Tags83354
Node: Tag inheritance84089
Node: Setting tags85026
Node: Tag searches85988
Node: Agenda views87197
Node: Agenda files88736
Ref: Agenda files-Footnote-189696
Ref: Agenda files-Footnote-289845
Node: Agenda dispatcher90037
Node: Weekly/Daily agenda92167
Node: Categories93302
Node: Time-of-day specifications93950
Node: Calendar/Diary integration95926
Node: Sorting of agenda items97303
Node: Global TODO list98135
Node: Matching headline tags99550
Node: Timeline100493
Node: Agenda commands101366
Node: Exporting106755
Node: ASCII export107885
Node: HTML export108707
Node: XML export110455
Node: iCalendar export110822
Node: Text interpretation112644
Node: Comment lines113121
Node: Enhancing text113590
Node: Export options115421
Node: Miscellaneous117023
Node: Completion117781
Node: Customization118777
Node: Summary of in-buffer settings119384
Node: The very busy C-c C-c key122145
Node: Clean view123550
Node: TTY keys126127
Node: FAQ127728
Node: Interaction134630
Node: Bugs137664
Node: Acknowledgments139618
Node: Index142713
Node: Key Index164083
Node: Introduction7583
Node: Summary7897
Node: Installation and activation10005
Node: Feedback11674
Node: Document structure12460
Node: Outlines13226
Node: Headlines13886
Node: Visibility cycling14509
Node: Motion15705
Node: Structure editing16489
Node: Archiving18598
Node: Sparse trees19458
Ref: Sparse trees-Footnote-121443
Ref: Sparse trees-Footnote-221535
Node: Plain lists21650
Ref: Plain lists-Footnote-124944
Node: Tables25301
Node: Built-in table editor25849
Node: Narrow columns33462
Ref: Narrow columns-Footnote-135401
Node: Table calculations35447
Node: Formula syntax36767
Ref: Formula syntax-Footnote-139672
Node: Lisp formulas39971
Node: Column formulas40762
Node: Advanced features42523
Node: Named-field formulas45778
Node: Editing/debugging formulas46418
Node: Appetizer48176
Node: orgtbl-mode49278
Node: table.el49769
Node: Hyperlinks50746
Node: Link format51450
Node: Internal links52747
Node: Radio targets54697
Node: CamelCase links55412
Node: External links55910
Node: Handling links57835
Node: Search options62167
Ref: Search options-Footnote-163943
Node: Custom searches64024
Node: Remember65072
Ref: Remember-Footnote-168939
Node: TODO items69063
Node: TODO basics69986
Node: Progress logging71327
Node: TODO extensions72113
Node: Workflow states72913
Node: TODO types73781
Ref: TODO types-Footnote-175439
Node: Per file keywords75521
Ref: Per file keywords-Footnote-176974
Node: Priorities77202
Node: Timestamps78411
Node: Time stamps78732
Node: Creating timestamps81160
Node: Tags84289
Node: Tag inheritance85024
Node: Setting tags85961
Node: Tag searches86923
Node: Agenda views88132
Node: Agenda files89671
Ref: Agenda files-Footnote-190631
Ref: Agenda files-Footnote-290780
Node: Agenda dispatcher90972
Node: Weekly/Daily agenda93102
Node: Categories94237
Node: Time-of-day specifications94885
Node: Calendar/Diary integration96861
Node: Sorting of agenda items98238
Node: Global TODO list99070
Node: Matching headline tags100485
Node: Timeline101428
Node: Agenda commands102301
Node: Exporting107771
Node: ASCII export108901
Node: HTML export109791
Node: XML export111622
Node: iCalendar export112057
Node: Text interpretation113879
Node: Comment lines114356
Node: Enhancing text114825
Node: Export options116656
Node: Miscellaneous118258
Node: Completion119016
Node: Customization120012
Node: Summary of in-buffer settings120619
Node: The very busy C-c C-c key123380
Node: Clean view124785
Node: TTY keys127362
Node: FAQ128963
Node: Interaction135865
Node: Bugs138899
Node: Acknowledgments140853
Node: Index144222
Node: Key Index165665

End Tag Table

306
org.el
View File

@ -5,7 +5,7 @@
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
;; Version: 4.28
;; Version: 4.29
;;
;; This file is part of GNU Emacs.
;;
@ -81,6 +81,17 @@
;;
;; Changes since version 4.10:
;; ---------------------------
;; Version 4.29
;; - Inlining images in HTML export now depends on wheather the link
;; contains a description or not.
;; - TODO items can be scheduled from the global TODO list using C-c C-s.
;; - TODO items already scheduled can be made to disappear from the global
;; todo list, see `org-agenda-todo-ignore-scheduled'.
;; - In Tables, formulas may also be Lisp forms.
;; - Exporting the visible part of an outline with `C-c C-x v' works now
;; for all available exporters.
;; - Bug fixes, lots of them :-(
;;
;; Version 4.28
;; - Bug fixes.
;;
@ -149,7 +160,7 @@
;;; Customization variables
(defvar org-version "4.28"
(defvar org-version "4.29"
"The version number of the file org.el.")
(defun org-version ()
(interactive)
@ -1282,6 +1293,14 @@ potentially much shorter TODO lists."
:group 'org-todo
:type 'boolean)
(defcustom org-agenda-todo-ignore-scheduled nil
"Non-nil means, don't show scheduled entries in the global todo list.
The idea behind this is that by scheduling it, you have already taken care
of this item."
:group 'org-agenda
:group 'org-todo
:type 'boolean)
(defcustom org-agenda-include-all-todo nil
"Non-nil means, the agenda will always contain all TODO entries.
When nil, date-less entries will only be shown if `org-agenda' is called
@ -1316,7 +1335,7 @@ Needs to be set before org.el is loaded."
:group 'org-agenda-setup
:type 'boolean)
(defcustom org-agenda-start-with-follow-mode t
(defcustom org-agenda-start-with-follow-mode nil
"The initial value of follwo-mode in a newly created agenda window."
:group 'org-agenda-setup
:type 'boolean)
@ -1848,13 +1867,16 @@ When nil, the links still point to the plain `.org' file."
:group 'org-export-html
:type 'boolean)
(defcustom org-export-html-inline-images t
(defcustom org-export-html-inline-images 'maybe
"Non-nil means, inline images into exported HTML pages.
The link will still be to the original location of the image file.
So if you are moving the page, lets say to your public HTML site,
you will have to move the image and maybe change the link."
This is done using an <img> tag. When nil, an anchor with href is used to
link to the image. If this option is `maybe', then images in links with
an empty description will be inlined, while images with a description will
be linked only."
:group 'org-export-html
:type 'boolean)
:type '(choice (const :tag "Never" nil)
(const :tag "Always" t)
(const :tag "When there is no description" maybe)))
(defcustom org-export-html-expand t
"Non-nil means, for HTML export, treat @<...> as HTML tag.
@ -2434,11 +2456,31 @@ can be exported as a structured ASCII or HTML file.
The following commands are available:
\\{org-mode-map}"
;; Get rid of Outline menus, they are not needed
;; Need to do this here because define-derived-mode sets up
;; the keymap so late.
(if (featurep 'xemacs)
(if org-noutline-p
(progn
(easy-menu-remove outline-mode-menu-heading)
(easy-menu-remove outline-mode-menu-show)
(easy-menu-remove outline-mode-menu-hide))
(delete-menu-item '("Headings"))
(delete-menu-item '("Show"))
(delete-menu-item '("Hide"))
(set-menubar-dirty-flag))
(define-key org-mode-map [menu-bar headings] 'undefined)
(define-key org-mode-map [menu-bar hide] 'undefined)
(define-key org-mode-map [menu-bar show] 'undefined))
(easy-menu-add org-org-menu)
(easy-menu-add org-tbl-menu)
(org-install-agenda-files-menu)
(if org-descriptive-links (org-add-to-invisibility-spec '(org-link)))
(org-add-to-invisibility-spec '(org-cwidth))
(when (featurep 'xemacs)
(set (make-local-variable 'line-move-ignore-invisible) t))
(setq outline-regexp "\\*+")
;;(setq outline-regexp "\\(?:\\*+\\|[ \t]*\\(?:[-+*]\\|[0-9]+[.)]\\) \\)")
(setq outline-level 'org-outline-level)
@ -2467,19 +2509,6 @@ The following commands are available:
(= (point-min) (point-max)))
(insert " -*- mode: org -*-\n\n"))
;; Get rid of Outline menus, they are not needed
;; Need to do this here because define-derived-mode sets up
;; the keymap so late.
(if (featurep 'xemacs)
(progn
(delete-menu-item '("Headings"))
(delete-menu-item '("Show"))
(delete-menu-item '("Hide"))
(set-menubar-dirty-flag))
(define-key org-mode-map [menu-bar headings] 'undefined)
(define-key org-mode-map [menu-bar hide] 'undefined)
(define-key org-mode-map [menu-bar show] 'undefined))
(unless org-inhibit-startup
(if org-startup-align-all-tables
(org-table-map-tables 'org-table-align))
@ -3175,8 +3204,14 @@ or nil."
(defvar org-ignore-region nil
"To temporarily disable the active region.")
;; FIXME: Fix behavior if point is on the stars but not at bol.
(defun org-insert-heading (&optional force-heading)
"Insert a new heading or item with same depth at point."
"Insert a new heading or item with same depth at point.
If point is in a plain list and FORCE-HEADING is nil, create a new list item.
If point is at the beginning of a headline, insert a sibling before the
current headline. If point is in the middle of a headline, split the headline
at that position and make the rest of the headline part of the sibling below
the current headline."
(interactive "P")
(if (= (buffer-size) 0)
(insert "\n* ")
@ -3186,15 +3221,18 @@ or nil."
(org-back-to-heading)
(error (outline-next-heading)))
(prog1 (match-string 0)
(funcall outline-level)))))
(funcall outline-level))))
pos)
(cond
((and (org-on-heading-p) (bolp)
(save-excursion (backward-char 1) (not (org-invisible-p))))
(open-line 1))
((bolp) nil)
(t (newline)))
(insert head)
(just-one-space)
(insert head) (just-one-space)
(setq pos (point))
(end-of-line 1)
(unless (= (point) pos) (just-one-space) (backward-delete-char 1))
(run-hooks 'org-insert-heading-hook)))))
(defun org-insert-item ()
@ -3210,7 +3248,8 @@ Return t when things worked, nil when we are not in an item."
(let* ((bul (match-string 0))
(eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*")
(match-end 0)))
(eowcol (save-excursion (goto-char eow) (current-column))))
(eowcol (save-excursion (goto-char eow) (current-column)))
pos)
(cond
((and (org-at-item-p) (<= (point) eow))
;; before the bullet
@ -3220,7 +3259,10 @@ Return t when things worked, nil when we are not in an item."
(beginning-of-line 1))
(t (newline)))
(insert bul)
(just-one-space))
(just-one-space)
(setq pos (point))
(end-of-line 1)
(unless (= (point) pos) (just-one-space) (backward-delete-char 1)))
(org-maybe-renumber-ordered-list)
t))
@ -3232,7 +3274,9 @@ state (TODO by default). Also with prefix arg, force first state."
(org-insert-heading)
(save-excursion
(org-back-to-heading)
(outline-previous-heading)
(if org-noutline-p
(outline-previous-heading)
(outline-previous-visible-heading t))
(looking-at org-todo-line-regexp))
(if (or arg
(not (match-beginning 2))
@ -4059,9 +4103,9 @@ prefix arg, switch to that state."
(not (equal state org-done-string)))
(when org-log-done
(if (equal state org-done-string)
(org-log-done)
(org-add-planning-info 'closed (current-time) 'scheduled)
(if (not this)
(org-log-done t))))
(org-add-planning-info nil nil 'closed))))
;; Fixup tag positioning
(and org-auto-align-tags (org-set-tags nil t))
(run-hooks 'org-after-todo-state-change-hook)))
@ -4131,24 +4175,14 @@ of `org-todo-keywords'."
A timestamp is also inserted - use \\[org-timestamp-up] and \\[org-timestamp-down]
to modify it to the correct date."
(interactive)
(insert
org-deadline-string " "
(format-time-string (car org-time-stamp-formats)
(org-read-date nil 'to-time)))
(message "%s" (substitute-command-keys
"Use \\[org-timestamp-up-day] and \\[org-timestamp-down-day] to change the date.")))
(org-add-planning-info 'deadline nil nil)) ;; FIXME: remove closed?
(defun org-schedule ()
"Insert the SCHEDULED: string to schedule a TODO item.
A timestamp is also inserted - use \\[org-timestamp-up] and \\[org-timestamp-down]
to modify it to the correct date."
(interactive)
(insert
org-scheduled-string " "
(format-time-string (car org-time-stamp-formats)
(org-read-date nil 'to-time)))
(message "%s" (substitute-command-keys
"Use \\[org-timestamp-up-day] and \\[org-timestamp-down-day] to change the date.")))
(org-add-planning-info 'scheduled nil 'closed))
(defun org-add-planning-info (what &optional time &rest remove)
"Insert new timestamp with keyword in the line directly after the headline.
@ -4158,8 +4192,7 @@ REMOVE indicates what kind of entries to remove. An old WHAT entry will also
be removed."
(interactive)
(save-excursion
(let (beg end col list elt)
(org-show-entry) ; Avoid this.
(let (beg end col list elt (buffer-invisibility-spec nil) ts)
(org-back-to-heading t)
(setq beg (point))
(looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"))
@ -4196,15 +4229,17 @@ be removed."
((eq what 'closed) org-closed-string))
" ")
(insert
(format-time-string
(if (eq what 'closed)
(concat "[" (substring (cdr org-time-stamp-formats) 1 -1) "]")
(car org-time-stamp-formats))
(or time (org-read-date nil 'to-time)))))
(setq ts
(format-time-string
(if (eq what 'closed)
(concat "[" (substring (cdr org-time-stamp-formats) 1 -1) "]")
(car org-time-stamp-formats))
(or time (org-read-date nil 'to-time))))))
(goto-char (point-min))
(widen)
(if (looking-at "[ \t]+\r?\n")
(replace-match "")))))
(replace-match ""))
ts)))
(defun org-occur (regexp &optional callback)
"Make a compact tree which shows all matches of REGEXP.
@ -4468,6 +4503,7 @@ used to insert the time stamp into the buffer to include the time."
ct))
(calendar-move-hook nil)
(view-diary-entries-initially nil)
(view-calendar-holidays-initially nil)
(timestr (format-time-string
(if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time))
(prompt (format "YYYY-MM-DD [%s]: " timestr))
@ -4843,6 +4879,7 @@ A prefix ARG can be used to force the current date."
(interactive "P")
(let ((tsr org-ts-regexp) diff
(calendar-move-hook nil)
(view-calendar-holidays-initially nil)
(view-diary-entries-initially nil))
(if (or (org-at-timestamp-p)
(save-excursion
@ -4932,6 +4969,8 @@ The following commands are available:
(define-key org-agenda-mode-map [?\C-c ?\C-x (left)] 'org-agenda-date-earlier)
(define-key org-agenda-mode-map ">" 'org-agenda-date-prompt)
(define-key org-agenda-mode-map "\C-c\C-s" 'org-agenda-schedule)
(define-key org-agenda-mode-map "\C-c\C-d" 'org-agenda-deadline)
(let ((l '(1 2 3 4 5 6 7 8 9 0)))
(while l (define-key org-agenda-mode-map
(int-to-string (pop l)) 'digit-argument)))
@ -4995,10 +5034,12 @@ The following commands are available:
("Tags"
["Show all Tags" org-agenda-show-tags t]
["Set Tags" org-agenda-set-tags t])
("Reschedule"
("Schedule"
["Schedule" org-agenda-schedule t]
["Set Deadline" org-agenda-deadline t]
"--"
["Reschedule +1 day" org-agenda-date-later (org-agenda-check-type nil 'agenda 'timeline)]
["Reschedule -1 day" org-agenda-date-earlier (org-agenda-check-type nil 'agenda 'timeline)]
"--"
["Reschedule to ..." org-agenda-date-prompt (org-agenda-check-type nil 'agenda 'timeline)])
("Priority"
["Set Priority" org-agenda-priority t]
@ -6096,10 +6137,13 @@ the documentation of `org-diary'."
"\\)\\>")
org-not-done-regexp)
"[^\n\r]*\\)"))
(sched-re (concat ".*\n.*?" org-scheduled-time-regexp))
marker priority category tags
ee txt)
(goto-char (point-min))
(while (re-search-forward regexp nil t)
(when (not (and org-agenda-todo-ignore-scheduled
(save-match-data (looking-at sched-re))))
(goto-char (match-beginning 1))
(setq marker (org-agenda-new-marker (1+ (match-beginning 0)))
category (org-get-category)
@ -6116,9 +6160,9 @@ the documentation of `org-diary'."
'org-marker marker 'org-hd-marker marker
'priority priority 'category category)
(push txt ee)
(if org-agenda-todo-list-sublevels
(if org-agenda-todo-list-sublevels ; FIXME???? Change needed?
(goto-char (match-end 1))
(org-end-of-subtree 'invisible)))
(org-end-of-subtree 'invisible))))
(nreverse ee)))
(defconst org-agenda-no-heading-message
@ -6929,6 +6973,38 @@ be used to request time specification in the time stamp."
(org-time-stamp arg)
(message "Time stamp changed to %s" org-last-changed-timestamp))))
(defun org-agenda-schedule (arg)
"Schedule the item at point."
(interactive "P")
(org-agenda-check-type t 'agenda 'timeline 'todo 'tags)
(org-agenda-check-no-diary)
(let* ((marker (or (get-text-property (point) 'org-marker)
(org-agenda-error)))
(buffer (marker-buffer marker))
(pos (marker-position marker))
ts)
(with-current-buffer buffer
(widen)
(goto-char pos)
(setq ts (org-schedule))
(message "Item scheduled for %s" ts))))
(defun org-agenda-deadline (arg)
"Schedule the item at point."
(interactive "P")
(org-agenda-check-type t 'agenda 'timeline 'todo 'tags)
(org-agenda-check-no-diary)
(let* ((marker (or (get-text-property (point) 'org-marker)
(org-agenda-error)))
(buffer (marker-buffer marker))
(pos (marker-position marker))
ts)
(with-current-buffer buffer
(widen)
(goto-char pos)
(setq ts (org-deadline))
(message "Deadline for this item set to %s" ts))))
(defun org-get-heading ()
"Return the heading of the current entry, without the stars."
(save-excursion
@ -7033,6 +7109,7 @@ argument, latitude and longitude will be prompted for."
(error "Don't know which date to open in calendar")))
(date (calendar-gregorian-from-absolute day))
(calendar-move-hook nil)
(view-calendar-holidays-initially nil)
(view-diary-entries-initially nil))
(calendar)
(calendar-goto-date date)))
@ -8572,6 +8649,7 @@ RET on headline -> Store as sublevel entry to current headline
This function should be placed into `remember-mode-hook' and in fact requires
to be run from that hook to fucntion properly."
(if org-remember-templates
(let* ((entry (if (= (length org-remember-templates) 1)
(cdar org-remember-templates)
(message "Select template: %s"
@ -8579,8 +8657,8 @@ to be run from that hook to fucntion properly."
(lambda (x) (char-to-string (car x)))
org-remember-templates " "))
(cdr (assoc (read-char-exclusive) org-remember-templates))))
(tpl (if (consp (cdr entry)) (cadr entry) (cdr entry)))
(file (if (consp (cdr entry)) (nth 2 entry)))
(tpl (car entry))
(file (if (consp (cdr entry)) (nth 1 entry)))
(v-t (format-time-string (car org-time-stamp-formats) (org-current-time)))
(v-T (format-time-string (cdr org-time-stamp-formats) (org-current-time)))
(v-u (concat "[" (substring v-t 1 -1) "]"))
@ -10464,7 +10542,7 @@ not overwrite the stored one."
(org-table-get-formula equation (equal arg '(4)))))
(n0 (org-table-current-column))
(modes (copy-sequence org-calc-default-modes))
n form fmt x ev orig c)
n form fmt x ev orig c lispp)
;; Parse the format string. Since we have a lot of modes, this is
;; a lot of work. However, I think calc still uses most of the time.
(if (string-match ";" formula)
@ -10499,7 +10577,8 @@ not overwrite the stored one."
(lambda (x) (number-to-string (string-to-number x)))
fields)))
(setq ndown (1- ndown))
(setq form (copy-sequence formula))
(setq form (copy-sequence formula)
lispp (equal (substring form 0 2) "'("))
;; Insert the references to fields in same row
(while (string-match "\\$\\([0-9]+\\)?" form)
(setq n (if (match-beginning 1)
@ -10509,7 +10588,9 @@ not overwrite the stored one."
(unless x (error "Invalid field specifier \"%s\""
(match-string 0 form)))
(if (equal x "") (setq x "0"))
(setq form (replace-match (concat "(" x ")") t t form)))
(setq form (replace-match
(if lispp x (concat "(" x ")"))
t t form)))
;; Insert ranges in current column
(while (string-match "\\&[-I0-9]+" form)
(setq form (replace-match
@ -10517,8 +10598,14 @@ not overwrite the stored one."
(org-table-get-vertical-vector (match-string 0 form)
nil n0))
t t form)))
(setq ev (calc-eval (cons form modes)
(if org-table-formula-numbers-only 'num)))
;; (setq ev (calc-eval (cons form modes)
;; FIXME (if org-table-formula-numbers-only 'num)))
(if lispp
(setq ev (eval (eval (read form)))
ev (if (numberp ev) (number-to-string ev) ev))
(setq ev (calc-eval (cons form modes)
(if org-table-formula-numbers-only 'num))))
(when org-table-formula-debug
(with-output-to-temp-buffer "*Help*"
@ -11795,43 +11882,44 @@ underlined headlines. The default is 3."
(setq title (concat (org-section-number level) " " title)))
(insert title "\n" (make-string (string-width title) char) "\n"))))
(defun org-export-copy-visible ()
"Copy the visible part of the buffer to another buffer, for printing.
Also removes the first line of the buffer if it specifies a mode,
and all options lines."
(interactive)
(let* ((opt-plist (org-combine-plists (org-default-export-plist)
(org-infile-export-plist)))
(filename (concat (file-name-as-directory
(plist-get opt-plist :publishing-directory))
(file-name-sans-extension
(file-name-nondirectory buffer-file-name))
".txt"))
(buffer (find-file-noselect filename))
(ore (concat
(org-make-options-regexp
'("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO"
"STARTUP" "ARCHIVE"
"TITLE" "AUTHOR" "EMAIL" "TEXT" "OPTIONS" "LANGUAGE"))
(if org-noutline-p "\\(\n\\|$\\)" "")))
(defun org-export-visible (type arg)
"Create a copy of the visible part of the current buffer, and export it.
The copy is created in a temporary buffer and removed after use.
TYPE is the final key (as a string) of the `C-c C-x' key sequence that will
run the export command - in interactive use, the command prompts for this
key. As a special case, if the you type SPC at the prompt, the temporary
org-mode file will not be removed but presented to you so that you can
continue to use it. The prefix arg ARG is passed through to the exporting
command."
(interactive
(list (progn
(message "Export visible: [a]SCII [h]tml [b]rowse HTML [x]OXO [ ]keep buffer")
(char-to-string (read-char-exclusive)))
current-prefix-arg))
(if (not (member type '("a" "\C-a" "b" "\C-b" "h" "x" " ")))
(error "Invalid export key"))
(let* ((binding (key-binding (concat "\C-c\C-x" type)))
(keepp (equal type " "))
(file buffer-file-name)
(buffer (get-buffer-create "*Org Export Visible*"))
s e)
(with-current-buffer buffer
(erase-buffer)
(text-mode))
(with-current-buffer buffer (erase-buffer))
(save-excursion
(setq s (goto-char (point-min)))
(while (not (= (point) (point-max)))
(goto-char (org-find-invisible))
(append-to-buffer buffer s (point))
(setq s (goto-char (org-find-visible)))))
(switch-to-buffer-other-window buffer)
(newline)
(goto-char (point-min))
(if (looking-at ".*-\\*- mode:.*\n")
(replace-match ""))
(while (re-search-forward ore nil t)
(replace-match ""))
(goto-char (point-min))))
(setq s (goto-char (org-find-visible))))
(set-buffer buffer)
(let ((buffer-file-name file)
(org-inhibit-startup t))
(org-mode)
(show-all)
(unless keepp (funcall binding arg))))
(if (not keepp)
(kill-buffer buffer)
(switch-to-buffer-other-window buffer)
(goto-char (point-min)))))
(defun org-find-visible ()
(if (featurep 'noutline)
@ -12034,7 +12122,7 @@ org-mode's default settings, but still inferior to file-local settings."
table-open type
table-buffer table-orig-buffer
ind start-is-num starter
rpl path desc desc1 desc2 link
rpl path desc descp desc1 desc2 link
)
(message "Exporting...")
@ -12225,7 +12313,9 @@ org-mode's default settings, but still inferior to file-local settings."
(setq path (match-string 3 line))
(setq desc1 (if (match-end 5) (match-string 5 line))
desc2 (if (match-end 2) (concat type ":" path) path)
descp (and desc1 (not (equal desc1 desc2)))
desc (or desc1 desc2))
;; FIXME: do we need to unescape here somewhere?
(cond
((equal type "internal")
(setq rpl
@ -12266,8 +12356,10 @@ org-mode's default settings, but still inferior to file-local settings."
(setq desc (replace-match "" t t desc))
(if (string-match "\\.org$" desc)
(setq desc (replace-match "" t t desc))))))
(setq rpl (if (and org-export-html-inline-images
file-is-image-p)
(setq rpl (if (and file-is-image-p
(or (eq t org-export-html-inline-images)
(and org-export-html-inline-images
(not descp))))
(concat "<img src=\"" thefile "\"/>")
(concat "<a href=\"" thefile "\">" desc "</a>")))))
((member type '("bbdb" "vm" "wl" "mhe" "rmail" "gnus" "shell"))
@ -12741,9 +12833,9 @@ file, but with extension `.ics'."
(interactive)
(org-export-icalendar nil buffer-file-name))
(defun org-export-as-xml ()
(defun org-export-as-xml (arg)
"Export current buffer as XOXO XML buffer."
(interactive)
(interactive "P")
(cond ((eq org-export-xml-type 'xoxo)
(org-export-as-xoxo (current-buffer)))))
@ -13093,8 +13185,8 @@ a time), or the day by one (if it does not contain a time)."
(define-key org-mode-map "\C-c\C-q" 'org-table-wrap-region)
(define-key org-mode-map "\C-c\C-xa" 'org-export-as-ascii)
(define-key org-mode-map "\C-c\C-x\C-a" 'org-export-as-ascii)
(define-key org-mode-map "\C-c\C-xv" 'org-export-copy-visible)
(define-key org-mode-map "\C-c\C-x\C-v" 'org-export-copy-visible)
(define-key org-mode-map "\C-c\C-xv" 'org-export-visible)
(define-key org-mode-map "\C-c\C-x\C-v" 'org-export-visible)
;; OPML support is only an option for the future
;(define-key org-mode-map "\C-c\C-xo" 'org-export-as-opml)
;(define-key org-mode-map "\C-c\C-x\C-o" 'org-export-as-opml)
@ -13115,6 +13207,9 @@ a time), or the day by one (if it does not contain a time)."
(define-key org-mode-map "\C-c\C-x\M-w" 'org-copy-special)
(define-key org-mode-map "\C-c\C-x\C-y" 'org-paste-special)
(when (featurep 'xemacs)
(define-key org-mode-map 'button3 'popup-mode-menu))
(defsubst org-table-p () (org-at-table-p))
(defun org-self-insert-command (N)
@ -13613,7 +13708,7 @@ See the individual commands for more information."
"--"
("Export"
["ASCII" org-export-as-ascii t]
["Extract Visible Text" org-export-copy-visible t]
["Export visible part..." org-export-visible t]
["HTML" org-export-as-html t]
["HTML and Open" org-export-as-html-and-open t]
["XML (XOXO)" org-export-as-xml t]
@ -13843,7 +13938,7 @@ that can be added."
;; The following functions capture almost the entire compatibility code
;; between the different versions of outline-mode. The only other
;; places where this is important are the font-lock-keywords, and in
;; `org-export-copy-visible'. Search for `org-noutline-p' to find them.
;; `org-export-visible'. Search for `org-noutline-p' to find them.
;; C-a should go to the beginning of a *visible* line, also in the
;; new outline.el. I guess this should be patched into Emacs?
@ -13895,15 +13990,15 @@ to a visible line beginning. This makes the function of C-a more intuitive."
Only visible heading lines are considered, unless INVISIBLE-OK is non-nil."
(if org-noutline-p
(outline-back-to-heading invisible-ok)
(if (and (memq (char-before) '(?\n ?\r))
(if (and (or (bobp) (memq (char-before) '(?\n ?\r)))
(looking-at outline-regexp))
t
(if (re-search-backward (concat (if invisible-ok "\\([\r\n]\\|^\\)" "^")
outline-regexp)
nil t)
(if invisible-ok
(progn (goto-char (match-end 1))
(looking-at outline-regexp)))
(progn (goto-char (or (match-end 1) (match-beginning 0)))
(looking-at outline-regexp)))
(error "Before first heading")))))
(defun org-on-heading-p (&optional invisible-ok)
@ -14022,7 +14117,7 @@ Show the heading too, if it is currently invisible."
(save-excursion
(org-back-to-heading t)
(outline-flag-region
(1- (point))
(max 1 (1- (point)))
(save-excursion
(re-search-forward (concat "[\r\n]\\(" outline-regexp "\\)") nil 'move)
(or (match-beginning 1) (point-max)))
@ -14061,6 +14156,7 @@ Show the heading too, if it is currently invisible."
(run-hooks 'org-load-hook)
;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
;;; org.el ends here

BIN
org.pdf

Binary file not shown.

104
org.texi
View File

@ -4,8 +4,8 @@
@c @setfilename ../info/org
@settitle Org Mode Manual
@set VERSION 4.28
@set DATE April 2006
@set VERSION 4.29
@set DATE May 2006
@dircategory Emacs
@direntry
@ -119,6 +119,7 @@ Tables
Calculations in tables
* Formula syntax:: How to write a formula
* Lisp formulas:: An alternative way to write formulas
* Column formulas:: Formulas valid for all fields in a column
* Advanced features:: Field names, parameters and automatic recalc
* Named-field formulas:: Formulas valid in single fields
@ -644,9 +645,8 @@ To print a sparse tree, you can use the Emacs command
@code{ps-print-buffer-with-faces} which does not print invisible parts
of the document @footnote{This does not work under XEmacs, because
XEmacs uses selective display for outlining, not text properties.}.
Or you can use the command @kbd{C-c C-x v} to copy the visible part of
the document to another file (extension @file{.txt}) which can then be
printed in any desired way.
Or you can use the command @kbd{C-c C-x v} to export only the visible
part of the document and print the resulting file.
@node Plain lists, , Sparse trees, Document structure
@ -1044,19 +1044,20 @@ on a per-file basis with:
@cindex spreadsheet capabilities
@cindex @file{calc} package
The table editor makes use of the Emacs @file{calc} package to
implement spreadsheet-like capabilities. Org-mode has two levels of
complexity for table calculations. On the basic level, tables do only
horizontal computations, so a field can be computed from other fields
@emph{in the same row}, and Org-mode assumes that there is only one
formula for each column. This is very efficient to work with and
enough for many tasks. On the complex level, columns and individual
fields can be named for easier referencing in formulas, individual
named fields can have their own formula associated with them, and
recalculation can be automated.
The table editor makes use of the Emacs @file{calc} package to implement
spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to
derive fields from other fields. Org-mode has two levels of complexity
for table calculations. On the basic level, tables do only horizontal
computations, so a field can be computed from other fields @emph{in the
same row}, and Org-mode assumes that there is only one formula for each
column. This is very efficient to work with and enough for many tasks.
On the complex level, columns and individual fields can be named for
easier referencing in formulas, individual named fields can have their
own formula associated with them, and recalculation can be automated.
@menu
* Formula syntax:: How to write a formula
* Lisp formulas:: An alternative way to write formulas
* Column formulas:: Formulas valid for all fields in a column
* Advanced features:: Field names, parameters and automatic recalc
* Named-field formulas:: Formulas valid in single fields
@ -1064,7 +1065,7 @@ recalculation can be automated.
* Appetizer:: Taste the power of calc
@end menu
@node Formula syntax, Column formulas, Table calculations, Table calculations
@node Formula syntax, Lisp formulas, Table calculations, Table calculations
@subsection Formula syntax
@cindex formula syntax
@cindex syntax, of formulas
@ -1121,20 +1122,38 @@ respectively. In addition, you may provide a @code{printf} format
specifier to reformat the final result. A few examples:
@example
$1+$2 @r{Sum of first and second field}
$1+$2;%.2f @r{Same, format result to two decimals}
exp($2)+exp($1) @r{Math functions can be used}
$;%.1f @r{Reformat current cell to 1 decimal}
($3-32)*5/9 @r{Degrees F -> C conversion}
$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}}
tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1}
sin($1);Dp3%.1e @r{Same, but use printf specifier for display}
vmean($2..$7) @r{Compute column range mean, using vector function}
vsum(&III) @r{Sum numbers from 3rd hline above, up to here}
taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
$1+$2 @r{Sum of first and second field}
$1+$2;%.2f @r{Same, format result to two decimals}
exp($2)+exp($1) @r{Math functions can be used}
$;%.1f @r{Reformat current cell to 1 decimal}
($3-32)*5/9 @r{Degrees F -> C conversion}
$c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}}
tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1}
sin($1);Dp3%.1e @r{Same, but use printf specifier for display}
vmean($2..$7) @r{Compute column range mean, using vector function}
vsum(&III) @r{Sum numbers from 3rd hline above, up to here}
taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
@end example
@node Column formulas, Advanced features, Formula syntax, Table calculations
@node Lisp formulas, Column formulas, Formula syntax, Table calculations
@subsection Emacs Lisp forms as formulas
@cindex Lisp forms, as table fomulas
It is also possible to write a formula in Emacs lisp, this can be useful
for string manipulation and control structures. If a formula starts
with a single quote followed by an opening parenthesis, then it is
evaluated as a lisp form. The evaluation should return either a string
or a number. Just like with @file{calc} formulas, you can provide a
format specifier after a semicolon. A few examples:
@example
@r{swap the first two characters of the content of column 1}
'(concat (substring "$1" 1 2) (substring "$1" 0 1) (substring "$1" 2))
@r{Add columns 1 and 2, equivalent to the calc's @code{$1+$2}}
'(+ $1 $2)
@end example
@node Column formulas, Advanced features, Lisp formulas, Table calculations
@subsection Column formulas
@cindex column formula
@cindex formula, for table column
@ -2878,6 +2897,14 @@ key for this.
@itemx S-@key{down}
Decrease the priority of the current item.
@kindex C-c C-s
@item C-c C-s
Schedule this item
@kindex C-c C-d
@item C-c C-d
Set a deadline for this item.
@kindex S-@key{right}
@item S-@key{right}
Change the time stamp associated with the current line by one day into
@ -2993,6 +3020,9 @@ Export as ASCII file. If there is an active region, only the region
will be exported. For an org file @file{myfile.org}, the ASCII file
will be @file{myfile.txt}. The file will be overwritten without
warning.
@kindex C-c C-x v a
@item C-c C-x v a
Export only the visible part of the document.
@end table
@cindex headline levels, for exporting
@ -3026,6 +3056,11 @@ Export as HTML file @file{myfile.html}.
@kindex C-c C-x b
@item C-c C-x b
Export as HTML file and open it with a browser.
@kindex C-c C-x v h
@kindex C-c C-x v b
@item C-c C-x v h
@item C-c C-x v b
Export only the visible part of the document.
@end table
@cindex headline levels, for exporting
@ -3083,6 +3118,9 @@ does not interpret any additional Org-mode features.
@kindex C-c C-x C-x
@item C-c C-x C-x
Export as XML file @file{myfile.xml}.
@kindex C-c C-x v
@item C-c C-x v x
Export only the visible part of the document.
@end table
@node iCalendar export, Text interpretation, XML export, Exporting
@ -3919,6 +3957,9 @@ Remember.
Pavel Chalmoviansky influenced the agenda treatment of items with
specified time.
@item
Gregory Chenov patched support for lisp forms into table calculations
and improved XEmacs compatibility.
@item
Sacha Chua suggested to copy some linking code from Planner.
@item
Kees Dullemond inspired the use of narrowed tabled columns.
@ -3926,7 +3967,7 @@ Kees Dullemond inspired the use of narrowed tabled columns.
Christian Egli converted the documentation into TeXInfo format, patched
CSS formatting into the HTML exporter, and inspired the agenda.
@item
Nic Ferrier contributed mailcap and XML support.
Nic Ferrier contributed mailcap and XOXO support.
@item
Kai Grossjohann pointed out key-binding conflicts caused by Org-mode.
@item
@ -3942,6 +3983,8 @@ among other things.
@item
Pete Phillips helped the development of the TAGS feature.
@item
T.V. Raman reported bugs and suggested improvements.
@item
Matthias Rempe (Oelde) provided ideas, Windows support, and quality
control.
@item
@ -3958,6 +4001,9 @@ things.
Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
@file{organizer-mode.el}.
@item
David O'Toole wrote @file{org-publish.el} and came up with lots is ideas
for small changes.
@item
J@"urgen Vollmer contributed code generating the table of contents
in HTML output.
@item

Binary file not shown.

View File

@ -1,5 +1,5 @@
% Reference Card for Org Mode
\def\orgversionnumber{4.28}
\def\orgversionnumber{4.29}
\def\year{2006}
%
%**start of header
@ -562,11 +562,9 @@ To set categories, add lines like$^3$:
\key{set tags for current headline}{:}
\key{set priority of current item}{p}
\key{raise/lower priority of current item}{S-UP/DOWN$^4$}
%\key{lower priority of current item}{S-DOWN$^4$}
\key{display weighted priority of current item}{P}
\key{schedule/set deadline for this item}{C-c C-s/d}
\key{change timestamp to one day earlier/later}{S-LEFT/RIGHT$^4$}
%\key{change timestamp to one day earlier}{S-LEFT$^4$}
%\key{change timestamp to one day later}{S-RIGHT$^4$}
\key{change timestamp to today}{>}
\key{insert new entry into diary}{i}