diff options
| author | Carsten Dominik | 2006-05-24 07:56:03 +0000 |
|---|---|---|
| committer | Carsten Dominik | 2006-05-24 07:56:03 +0000 |
| commit | 8ef8f2e63ced6db89dfc0807d8dc536a2eb780c2 (patch) | |
| tree | 624832f853cdf9d505b54e595338d6771440ae0f | |
| parent | 4b3a9ba762af11f671ee66e2ce335f9fd26fa66e (diff) | |
| download | emacs-8ef8f2e63ced6db89dfc0807d8dc536a2eb780c2.tar.gz emacs-8ef8f2e63ced6db89dfc0807d8dc536a2eb780c2.zip | |
(Plain lists): Added new item navigation commands.
(External links): Documented elisp and info links.
(Custom searches): New section.
(Publishing): New chapter.
(HTML export): Include a list of supported CSS classes.
(Setting tags): Describe the fast-tag-setting interface.
| -rw-r--r-- | man/org.texi | 1086 |
1 files changed, 861 insertions, 225 deletions
diff --git a/man/org.texi b/man/org.texi index 40e24d30146..6f8d4c329f2 100644 --- a/man/org.texi +++ b/man/org.texi | |||
| @@ -1,11 +1,12 @@ | |||
| 1 | \input texinfo | 1 | \input texinfo |
| 2 | |||
| 2 | @c %**start of header | 3 | @c %**start of header |
| 3 | @c @setfilename org | 4 | @c @setfilename org |
| 4 | @setfilename ../info/org | 5 | @setfilename ../info/org |
| 5 | @settitle Org Mode Manual | 6 | @settitle Org Mode Manual |
| 6 | 7 | ||
| 7 | @set VERSION 4.26 | 8 | @set VERSION 4.33 |
| 8 | @set DATE April 2006 | 9 | @set DATE May 2006 |
| 9 | 10 | ||
| 10 | @dircategory Emacs | 11 | @dircategory Emacs |
| 11 | @direntry | 12 | @direntry |
| @@ -84,6 +85,7 @@ Software Foundation raise funds for GNU development.'' | |||
| 84 | * Tags:: Tagging headlines and matching sets of tags | 85 | * Tags:: Tagging headlines and matching sets of tags |
| 85 | * Agenda views:: Collecting information into views | 86 | * Agenda views:: Collecting information into views |
| 86 | * Exporting:: Sharing and publishing of notes | 87 | * Exporting:: Sharing and publishing of notes |
| 88 | * Publishing:: Create a web site of linked Org-mode files | ||
| 87 | * Miscellaneous:: All the rest which did not fit elsewhere | 89 | * Miscellaneous:: All the rest which did not fit elsewhere |
| 88 | * Index:: The fast road to specific information | 90 | * Index:: The fast road to specific information |
| 89 | * Key Index:: Key bindings and where they are described | 91 | * Key Index:: Key bindings and where they are described |
| @@ -97,7 +99,7 @@ Introduction | |||
| 97 | * Installation and activation:: How to install Org-mode | 99 | * Installation and activation:: How to install Org-mode |
| 98 | * Feedback:: Bug reports, ideas, patches etc. | 100 | * Feedback:: Bug reports, ideas, patches etc. |
| 99 | 101 | ||
| 100 | Document structure | 102 | Document Structure |
| 101 | 103 | ||
| 102 | * Outlines:: Org-mode is based on outline-mode | 104 | * Outlines:: Org-mode is based on outline-mode |
| 103 | * Headlines:: How to typeset org-tree headlines | 105 | * Headlines:: How to typeset org-tree headlines |
| @@ -119,6 +121,7 @@ Tables | |||
| 119 | Calculations in tables | 121 | Calculations in tables |
| 120 | 122 | ||
| 121 | * Formula syntax:: How to write a formula | 123 | * Formula syntax:: How to write a formula |
| 124 | * Lisp formulas:: An alternative way to write formulas | ||
| 122 | * Column formulas:: Formulas valid for all fields in a column | 125 | * Column formulas:: Formulas valid for all fields in a column |
| 123 | * Advanced features:: Field names, parameters and automatic recalc | 126 | * Advanced features:: Field names, parameters and automatic recalc |
| 124 | * Named-field formulas:: Formulas valid in single fields | 127 | * Named-field formulas:: Formulas valid in single fields |
| @@ -131,7 +134,8 @@ Hyperlinks | |||
| 131 | * Internal links:: Links to other places in the current file | 134 | * Internal links:: Links to other places in the current file |
| 132 | * External links:: URL-like links to the world | 135 | * External links:: URL-like links to the world |
| 133 | * Handling links:: Creating, inserting and following | 136 | * Handling links:: Creating, inserting and following |
| 134 | * Search Options:: Linking to a specific location | 137 | * Search options:: Linking to a specific location |
| 138 | * Custom searches:: When the default search is not enough | ||
| 135 | * Remember:: Org-trees store quick notes | 139 | * Remember:: Org-trees store quick notes |
| 136 | 140 | ||
| 137 | Internal links | 141 | Internal links |
| @@ -163,7 +167,7 @@ Tags | |||
| 163 | * Setting tags:: How to assign tags to a headline | 167 | * Setting tags:: How to assign tags to a headline |
| 164 | * Tag searches:: Searching for combinations of tags | 168 | * Tag searches:: Searching for combinations of tags |
| 165 | 169 | ||
| 166 | Agenda views | 170 | Agenda Views |
| 167 | 171 | ||
| 168 | * Agenda files:: Files being searched for agenda information | 172 | * Agenda files:: Files being searched for agenda information |
| 169 | * Agenda dispatcher:: Keyboard access to agenda views | 173 | * Agenda dispatcher:: Keyboard access to agenda views |
| @@ -184,7 +188,7 @@ Exporting | |||
| 184 | 188 | ||
| 185 | * ASCII export:: Exporting to plain ASCII | 189 | * ASCII export:: Exporting to plain ASCII |
| 186 | * HTML export:: Exporting to HTML | 190 | * HTML export:: Exporting to HTML |
| 187 | * XML export:: Exporting to XML | 191 | * XOXO export:: Exporting to XOXO |
| 188 | * iCalendar export:: Exporting in iCalendar format | 192 | * iCalendar export:: Exporting in iCalendar format |
| 189 | * Text interpretation:: How the exporter looks at the file | 193 | * Text interpretation:: How the exporter looks at the file |
| 190 | 194 | ||
| @@ -194,6 +198,27 @@ Text interpretation by the exporter | |||
| 194 | * Enhancing text:: Subscripts, symbols and more | 198 | * Enhancing text:: Subscripts, symbols and more |
| 195 | * Export options:: How to influence the export settings | 199 | * Export options:: How to influence the export settings |
| 196 | 200 | ||
| 201 | Publishing | ||
| 202 | |||
| 203 | * Configuration:: Defining projects | ||
| 204 | * Sample configuration:: Example projects | ||
| 205 | * Triggering publication:: Publication commands | ||
| 206 | |||
| 207 | Configuration | ||
| 208 | |||
| 209 | * Project alist:: The central configuration variable | ||
| 210 | * File sources and destinations:: From here to there | ||
| 211 | * Selecting files:: What files are part of the project? | ||
| 212 | * Publishing action:: Setting the function doing the publishing | ||
| 213 | * Publishing options:: Tweaking HTML export | ||
| 214 | * Publishing links:: Which links keep working after publishing? | ||
| 215 | * Project page index:: Publishing a list of project files | ||
| 216 | |||
| 217 | Sample configuration | ||
| 218 | |||
| 219 | * Simple example:: One-component publishing | ||
| 220 | * Complex example:: A multi-component publishing example | ||
| 221 | |||
| 197 | Miscellaneous | 222 | Miscellaneous |
| 198 | 223 | ||
| 199 | * Completion:: M-TAB knows what you need | 224 | * Completion:: M-TAB knows what you need |
| @@ -207,6 +232,12 @@ Miscellaneous | |||
| 207 | * Bugs:: Things which do not work perfectly | 232 | * Bugs:: Things which do not work perfectly |
| 208 | * Acknowledgments:: These people provided feedback and more | 233 | * Acknowledgments:: These people provided feedback and more |
| 209 | 234 | ||
| 235 | Interaction with other packages | ||
| 236 | |||
| 237 | * Extensions:: Third-party extensions for Org-mode | ||
| 238 | * Cooperation:: Packages Org-mode cooperates with | ||
| 239 | * Conflicts:: Packages that lead to conflicts | ||
| 240 | |||
| 210 | @end detailmenu | 241 | @end detailmenu |
| 211 | @end menu | 242 | @end menu |
| 212 | 243 | ||
| @@ -239,21 +270,23 @@ Plain text URL-like links connect to websites, emails, Usenet | |||
| 239 | messages, BBDB entries, and any files related to the projects. For | 270 | messages, BBDB entries, and any files related to the projects. For |
| 240 | printing and sharing of notes, an Org-mode file can be exported as a | 271 | printing and sharing of notes, an Org-mode file can be exported as a |
| 241 | structured ASCII file, as HTML, or (todo and agenda items only) as an | 272 | structured ASCII file, as HTML, or (todo and agenda items only) as an |
| 242 | iCalendar file. | 273 | iCalendar file. It can also serve as a publishing tool for a set of |
| 274 | linked webpages. | ||
| 243 | 275 | ||
| 244 | Org-mode keeps simple things simple. When first fired up, it should | 276 | Org-mode keeps simple things simple. When first fired up, it should |
| 245 | feel like a simple, easy to use outliner. Complexity is not imposed, | 277 | feel like a straightforward, easy to use outliner. Complexity is not |
| 246 | but a large amount of functionality is available when you need it. | 278 | imposed, but a large amount of functionality is available when you need |
| 247 | Org-mode can be used on different levels and in different ways, for | 279 | it. Org-mode can be used on different levels and in different ways, for |
| 248 | example: | 280 | example: |
| 249 | 281 | ||
| 250 | @example | 282 | @example |
| 251 | @r{@bullet{} as an outline extension with visibility cycling and structure editing} | 283 | @r{@bullet{} as an outline extension with visibility cycling and structure editing} |
| 252 | @r{@bullet{} as an ASCII system and table editor for taking structured notes} | 284 | @r{@bullet{} as an ASCII system and table editor for taking structured notes} |
| 253 | @r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities} | 285 | @r{@bullet{} as an ASCII table editor with spreadsheet-like capabilities} |
| 254 | @r{@bullet{} as a simple hypertext system, with HTML export} | ||
| 255 | @r{@bullet{} as a TODO list editor} | 286 | @r{@bullet{} as a TODO list editor} |
| 256 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} | 287 | @r{@bullet{} as a full agenda and planner with deadlines and work scheduling} |
| 288 | @r{@bullet{} as a simple hypertext system, with HTML export} | ||
| 289 | @r{@bullet{} as a publishing tool to create a set of interlinked webpages} | ||
| 257 | @end example | 290 | @end example |
| 258 | 291 | ||
| 259 | The Org-mode table editor can be integrated into any major mode by | 292 | The Org-mode table editor can be integrated into any major mode by |
| @@ -286,19 +319,22 @@ choose suitable keys yourself. | |||
| 286 | (define-key global-map "\C-ca" 'org-agenda) | 319 | (define-key global-map "\C-ca" 'org-agenda) |
| 287 | @end lisp | 320 | @end lisp |
| 288 | 321 | ||
| 289 | If you have downloaded Org-mode from the Web, you must byte-compile | 322 | Furthermore, you must activate @code{font-lock-mode} in org-mode |
| 290 | @file{org.el} and put it on your load path. In addition to the Emacs | 323 | buffers, because significant functionality depends on font-locking being |
| 291 | Lisp lines above, you also need to add the following lines to | 324 | active. You can do this with either one of the following two lines: |
| 325 | @lisp | ||
| 326 | (global-font-lock-mode 1) ; for all buffers | ||
| 327 | (add-hook 'org-mode-hook 'turn-on-font-lock) ; org-mode buffers only | ||
| 328 | @end lisp | ||
| 329 | |||
| 330 | If you have downloaded Org-mode from the Web, you must take additional | ||
| 331 | action: Byte-compile @file{org.el} and @file{org-publish.el} and put | ||
| 332 | them together with @file{org-install.el} on your load path. Then add to | ||
| 292 | @file{.emacs}: | 333 | @file{.emacs}: |
| 293 | 334 | ||
| 294 | @lisp | 335 | @lisp |
| 295 | ;; These lines only if org-mode is not part of the X/Emacs distribution. | 336 | ;; This line only if org-mode is not part of the X/Emacs distribution. |
| 296 | (autoload 'org-mode "org" "Org mode" t) | 337 | (require 'org-install) |
| 297 | (autoload 'org-diary "org" "Diary entries from Org mode") | ||
| 298 | (autoload 'org-agenda "org" "Multi-file agenda from Org mode" t) | ||
| 299 | (autoload 'org-store-link "org" "Store a link to the current location" t) | ||
| 300 | (autoload 'orgtbl-mode "org" "Org tables as a minor mode" t) | ||
| 301 | (autoload 'turn-on-orgtbl "org" "Org tables as a minor mode") | ||
| 302 | @end lisp | 338 | @end lisp |
| 303 | 339 | ||
| 304 | @cindex org-mode, turning on | 340 | @cindex org-mode, turning on |
| @@ -405,33 +441,40 @@ starters. @ref{Clean view} describes a setup to realize this. | |||
| 405 | @cindex hide text | 441 | @cindex hide text |
| 406 | 442 | ||
| 407 | Outlines make it possible to hide parts of the text in the buffer. | 443 | Outlines make it possible to hide parts of the text in the buffer. |
| 408 | Org-mode uses a single command bound to the @key{TAB} key to change | 444 | Org-mode uses just two commands, bound to @key{TAB} and |
| 409 | the visibility in the buffer. | 445 | @kbd{S-@key{TAB}} to change the visibility in the buffer. |
| 410 | 446 | ||
| 411 | @cindex subtree visibility states | 447 | @cindex subtree visibility states |
| 448 | @cindex subtree cycling | ||
| 412 | @cindex folded, subtree visibility state | 449 | @cindex folded, subtree visibility state |
| 413 | @cindex children, subtree visibility state | 450 | @cindex children, subtree visibility state |
| 414 | @cindex subtree, subtree visibility state | 451 | @cindex subtree, subtree visibility state |
| 415 | @table @kbd | 452 | @table @kbd |
| 416 | @kindex @key{TAB} | 453 | @kindex @key{TAB} |
| 417 | @item @key{TAB} | 454 | @item @key{TAB} |
| 418 | Rotate current subtree between the states | 455 | @emph{Subtree cycling}: Rotate current subtree between the states |
| 419 | 456 | ||
| 420 | @example | 457 | @example |
| 421 | ,-> FOLDED -> CHILDREN -> SUBTREE --. | 458 | ,-> FOLDED -> CHILDREN -> SUBTREE --. |
| 422 | '-----------------------------------' | 459 | '-----------------------------------' |
| 423 | @end example | 460 | @end example |
| 424 | 461 | ||
| 425 | At the beginning of the buffer (or when called with @kbd{C-u}), this does | 462 | The cursor must be on a headline for this to work@footnote{see, however, |
| 426 | the same as the command @kbd{S-@key{TAB}} below. | 463 | the option @code{org-cycle-emulate-tab}.}. When the cursor is at the |
| 464 | beginning of the buffer and the first line is not a headline, then | ||
| 465 | @key{TAB} actually runs global cycling (see below)@footnote{see the | ||
| 466 | option @code{org-cycle-global-at-bob}.}. Also when called with a prefix | ||
| 467 | argument (@kbd{C-u @key{TAB}}), global cycling is invoked. | ||
| 427 | 468 | ||
| 428 | @cindex global visibility states | 469 | @cindex global visibility states |
| 470 | @cindex global cycling | ||
| 429 | @cindex overview, global visibility state | 471 | @cindex overview, global visibility state |
| 430 | @cindex contents, global visibility state | 472 | @cindex contents, global visibility state |
| 431 | @cindex show all, global visibility state | 473 | @cindex show all, global visibility state |
| 432 | @kindex S-@key{TAB} | 474 | @kindex S-@key{TAB} |
| 433 | @item S-@key{TAB} | 475 | @item S-@key{TAB} |
| 434 | Rotate the entire buffer between the states | 476 | @itemx C-u @key{TAB} |
| 477 | @emph{Global cycling}: Rotate the entire buffer between the states | ||
| 435 | 478 | ||
| 436 | @example | 479 | @example |
| 437 | ,-> OVERVIEW -> CONTENTS -> SHOW ALL --. | 480 | ,-> OVERVIEW -> CONTENTS -> SHOW ALL --. |
| @@ -512,7 +555,7 @@ creation of a new headline, use a prefix arg, or first press @key{RET} | |||
| 512 | to get to the beginning of the next line. When this command is used in | 555 | to get to the beginning of the next line. When this command is used in |
| 513 | the middle of a line, the line is split and the rest of the line becomes | 556 | the middle of a line, the line is split and the rest of the line becomes |
| 514 | the new headline. If the command is used at the beginning of a | 557 | the new headline. If the command is used at the beginning of a |
| 515 | headline, the new headline is created before the current line. It at | 558 | headline, the new headline is created before the current line. If at |
| 516 | the beginning of any other line, the content of that line is made the | 559 | the beginning of any other line, the content of that line is made the |
| 517 | new heading. | 560 | new heading. |
| 518 | @kindex M-S-@key{RET} | 561 | @kindex M-S-@key{RET} |
| @@ -615,7 +658,7 @@ If the match is in a headline, the headline is made visible. If the | |||
| 615 | match is in the body of an entry, headline and body are made visible. | 658 | match is in the body of an entry, headline and body are made visible. |
| 616 | In order to provide minimal context, also the full hierarchy of | 659 | In order to provide minimal context, also the full hierarchy of |
| 617 | headlines above the match is shown, as well as the headline following | 660 | headlines above the match is shown, as well as the headline following |
| 618 | the match. Each match is also highlighted, the highlights disappear | 661 | the match. Each match is also highlighted; the highlights disappear |
| 619 | when the buffer is changed with an editing command. | 662 | when the buffer is changed with an editing command. |
| 620 | @end table | 663 | @end table |
| 621 | @noindent | 664 | @noindent |
| @@ -633,7 +676,7 @@ For example: | |||
| 633 | @noindent will define the key @kbd{C-c a f} as a shortcut for creating | 676 | @noindent will define the key @kbd{C-c a f} as a shortcut for creating |
| 634 | a sparse tree matching the string @samp{FIXME}. | 677 | a sparse tree matching the string @samp{FIXME}. |
| 635 | 678 | ||
| 636 | Other commands are using sparse trees as well. For example @kbd{C-c | 679 | Other commands use sparse trees as well. For example @kbd{C-c |
| 637 | C-v} creates a sparse TODO tree (@pxref{TODO basics}). | 680 | C-v} creates a sparse TODO tree (@pxref{TODO basics}). |
| 638 | 681 | ||
| 639 | @kindex C-c C-x v | 682 | @kindex C-c C-x v |
| @@ -643,9 +686,8 @@ To print a sparse tree, you can use the Emacs command | |||
| 643 | @code{ps-print-buffer-with-faces} which does not print invisible parts | 686 | @code{ps-print-buffer-with-faces} which does not print invisible parts |
| 644 | of the document @footnote{This does not work under XEmacs, because | 687 | of the document @footnote{This does not work under XEmacs, because |
| 645 | XEmacs uses selective display for outlining, not text properties.}. | 688 | XEmacs uses selective display for outlining, not text properties.}. |
| 646 | Or you can use the command @kbd{C-c C-x v} to copy the visible part of | 689 | Or you can use the command @kbd{C-c C-x v} to export only the visible |
| 647 | the document to another file (extension @file{.txt}) which can then be | 690 | part of the document and print the resulting file. |
| 648 | printed in any desired way. | ||
| 649 | 691 | ||
| 650 | 692 | ||
| 651 | @node Plain lists, , Sparse trees, Document structure | 693 | @node Plain lists, , Sparse trees, Document structure |
| @@ -657,7 +699,7 @@ printed in any desired way. | |||
| 657 | 699 | ||
| 658 | Headlines define both the structure of the Org-mode file, and also lists | 700 | Headlines define both the structure of the Org-mode file, and also lists |
| 659 | (for example, TODO items (@pxref{TODO items}) should be created using | 701 | (for example, TODO items (@pxref{TODO items}) should be created using |
| 660 | headline levels). However, when taking notes, the plain text is | 702 | headline levels). When taking notes, however, the plain text is |
| 661 | sometimes easier to read with hand-formatted lists. Org-mode supports | 703 | sometimes easier to read with hand-formatted lists. Org-mode supports |
| 662 | editing such lists, and the HTML exporter (@pxref{Exporting}) does | 704 | editing such lists, and the HTML exporter (@pxref{Exporting}) does |
| 663 | parse and format them. | 705 | parse and format them. |
| @@ -668,7 +710,7 @@ bullet, lines must be indented or they will be seen as top-level | |||
| 668 | headlines. Also, when you are hiding leading stars to get a clean | 710 | headlines. Also, when you are hiding leading stars to get a clean |
| 669 | outline view, plain list items starting with a star are visually | 711 | outline view, plain list items starting with a star are visually |
| 670 | indistinguishable from true headlines. In short: even though @samp{*} | 712 | indistinguishable from true headlines. In short: even though @samp{*} |
| 671 | is supported, it may be better to not use it for plain list items} as | 713 | is supported, it may be better not to use it for plain list items} as |
| 672 | bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items | 714 | bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items |
| 673 | belonging to the same list must have the same indentation on the first | 715 | belonging to the same list must have the same indentation on the first |
| 674 | line. In particular, if an ordered list reaches number @samp{10.}, then | 716 | line. In particular, if an ordered list reaches number @samp{10.}, then |
| @@ -693,17 +735,30 @@ But in the end, not individual scenes matter but the film as a whole. | |||
| 693 | @end example | 735 | @end example |
| 694 | 736 | ||
| 695 | Org-mode supports these lists by tuning filling and wrapping commands | 737 | Org-mode supports these lists by tuning filling and wrapping commands |
| 696 | to correctly deal with them. Furthermore, the following commands act | 738 | to deal with them correctly. |
| 697 | on items when the cursor is in the first line of an item (the line | 739 | |
| 698 | with the bullet or number). | 740 | @cindex checkboxes |
| 741 | Every item in a plain list can be made a checkbox by starting it with | ||
| 742 | the string @samp{[ ]}. The checkbox status can conveniently be toggled | ||
| 743 | with @kbd{C-c C-c}. | ||
| 744 | |||
| 745 | @example | ||
| 746 | * Stupid mistakes when distributing a new version | ||
| 747 | - [ ] update also Emacs CVS | ||
| 748 | - [X] forget to update index.html on the website | ||
| 749 | - [X] leaving a `(debug)' form in the code | ||
| 750 | @end example | ||
| 751 | |||
| 752 | The following commands act on items when the cursor is in the first line | ||
| 753 | of an item (the line with the bullet or number). | ||
| 699 | 754 | ||
| 700 | @table @kbd | 755 | @table @kbd |
| 701 | @kindex @key{TAB} | 756 | @kindex @key{TAB} |
| 702 | @item @key{TAB} | 757 | @item @key{TAB} |
| 703 | Items can be folded just like headline levels if you set the variable | 758 | Items can be folded just like headline levels if you set the variable |
| 704 | @code{org-cycle-include-plain-lists}. The level of an item is then | 759 | @code{org-cycle-include-plain-lists}. The level of an item is then |
| 705 | given by the indentation of the bullet/number. However, items are | 760 | given by the indentation of the bullet/number. Items are always |
| 706 | always subordinate to real headlines, the hierarchies remain | 761 | subordinate to real headlines, however; the hierarchies remain |
| 707 | completely separated. | 762 | completely separated. |
| 708 | @kindex M-@key{RET} | 763 | @kindex M-@key{RET} |
| 709 | @item M-@key{RET} | 764 | @item M-@key{RET} |
| @@ -715,6 +770,14 @@ number}, the new item is created @emph{before} the current item. If the | |||
| 715 | command is executed in the white space before the text that is part of | 770 | command is executed in the white space before the text that is part of |
| 716 | an item but does not contain the bullet, a bullet is added to the | 771 | an item but does not contain the bullet, a bullet is added to the |
| 717 | current line. | 772 | current line. |
| 773 | @kindex M-S-@key{RET} | ||
| 774 | @item M-S-@key{RET} | ||
| 775 | Insert a new item with a checkbox. | ||
| 776 | @kindex S-@key{up} | ||
| 777 | @kindex S-@key{down} | ||
| 778 | @item S-@key{up} | ||
| 779 | @itemx S-@key{down} | ||
| 780 | Jump to the previous/next item in the current list. | ||
| 718 | @kindex M-S-@key{up} | 781 | @kindex M-S-@key{up} |
| 719 | @kindex M-S-@key{down} | 782 | @kindex M-S-@key{down} |
| 720 | @item M-S-@key{up} | 783 | @item M-S-@key{up} |
| @@ -734,7 +797,9 @@ would imply a different hierarchy. To use the new hierarchy, break | |||
| 734 | the command chain with a cursor motion or so. | 797 | the command chain with a cursor motion or so. |
| 735 | @kindex C-c C-c | 798 | @kindex C-c C-c |
| 736 | @item C-c C-c | 799 | @item C-c C-c |
| 737 | Renumber the ordered list at the cursor. | 800 | If there is a checkbox in the item line, toggle the state of the |
| 801 | checkbox. Otherwise, if this is an ordered list, renumber the ordered | ||
| 802 | list at the cursor. | ||
| 738 | @end table | 803 | @end table |
| 739 | 804 | ||
| 740 | @node Tables, Hyperlinks, Document structure, Top | 805 | @node Tables, Hyperlinks, Document structure, Top |
| @@ -806,7 +871,7 @@ If not, lines are split at whitespace into fields. You can use a prefix | |||
| 806 | argument to indicate the minimum number of consecutive spaces required | 871 | argument to indicate the minimum number of consecutive spaces required |
| 807 | to identify a field separator (default: just one).@* | 872 | to identify a field separator (default: just one).@* |
| 808 | If there is no active region, this command creates an empty Org-mode | 873 | If there is no active region, this command creates an empty Org-mode |
| 809 | table. However, it's easier to just start typing, like | 874 | table. But it's easier just to start typing, like |
| 810 | @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}. | 875 | @kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}. |
| 811 | 876 | ||
| 812 | @tsubheading{Re-aligning and field motion} | 877 | @tsubheading{Re-aligning and field motion} |
| @@ -953,7 +1018,7 @@ When not empty, copy current field down to next row and move cursor | |||
| 953 | along with it. Depending on the variable | 1018 | along with it. Depending on the variable |
| 954 | @code{org-table-copy-increment}, integer field values will be | 1019 | @code{org-table-copy-increment}, integer field values will be |
| 955 | incremented during copy. This key is also used by CUA-mode | 1020 | incremented during copy. This key is also used by CUA-mode |
| 956 | (@pxref{Interaction}). | 1021 | (@pxref{Cooperation}). |
| 957 | 1022 | ||
| 958 | @tsubheading{Miscellaneous} | 1023 | @tsubheading{Miscellaneous} |
| 959 | @kindex C-c ` | 1024 | @kindex C-c ` |
| @@ -990,7 +1055,7 @@ it off with | |||
| 990 | (setq org-enable-table-editor nil) | 1055 | (setq org-enable-table-editor nil) |
| 991 | @end lisp | 1056 | @end lisp |
| 992 | 1057 | ||
| 993 | @noindent The only table command which then still works is | 1058 | @noindent Then the only table command that still works is |
| 994 | @kbd{C-c C-c} to do a manual re-align. | 1059 | @kbd{C-c C-c} to do a manual re-align. |
| 995 | 1060 | ||
| 996 | @node Narrow columns, Table calculations, Built-in table editor, Tables | 1061 | @node Narrow columns, Table calculations, Built-in table editor, Tables |
| @@ -1043,19 +1108,20 @@ on a per-file basis with: | |||
| 1043 | @cindex spreadsheet capabilities | 1108 | @cindex spreadsheet capabilities |
| 1044 | @cindex @file{calc} package | 1109 | @cindex @file{calc} package |
| 1045 | 1110 | ||
| 1046 | The table editor makes use of the Emacs @file{calc} package to | 1111 | The table editor makes use of the Emacs @file{calc} package to implement |
| 1047 | implement spreadsheet-like capabilities. Org-mode has two levels of | 1112 | spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to |
| 1048 | complexity for table calculations. On the basic level, tables do only | 1113 | derive fields from other fields. Org-mode has two levels of complexity |
| 1049 | horizontal computations, so a field can be computed from other fields | 1114 | for table calculations. On the basic level, tables do only horizontal |
| 1050 | @emph{in the same row}, and Org-mode assumes that there is only one | 1115 | computations, so a field can be computed from other fields @emph{in the |
| 1051 | formula for each column. This is very efficient to work with and | 1116 | same row}, and Org-mode assumes that there is only one formula for each |
| 1052 | enough for many tasks. On the complex level, columns and individual | 1117 | column. This is very efficient to work with and enough for many tasks. |
| 1053 | fields can be named for easier referencing in formulas, individual | 1118 | On the complex level, columns and individual fields can be named for |
| 1054 | named fields can have their own formula associated with them, and | 1119 | easier referencing in formulas, individual named fields can have their |
| 1055 | recalculation can be automated. | 1120 | own formula associated with them, and recalculation can be automated. |
| 1056 | 1121 | ||
| 1057 | @menu | 1122 | @menu |
| 1058 | * Formula syntax:: How to write a formula | 1123 | * Formula syntax:: How to write a formula |
| 1124 | * Lisp formulas:: An alternative way to write formulas | ||
| 1059 | * Column formulas:: Formulas valid for all fields in a column | 1125 | * Column formulas:: Formulas valid for all fields in a column |
| 1060 | * Advanced features:: Field names, parameters and automatic recalc | 1126 | * Advanced features:: Field names, parameters and automatic recalc |
| 1061 | * Named-field formulas:: Formulas valid in single fields | 1127 | * Named-field formulas:: Formulas valid in single fields |
| @@ -1063,7 +1129,7 @@ recalculation can be automated. | |||
| 1063 | * Appetizer:: Taste the power of calc | 1129 | * Appetizer:: Taste the power of calc |
| 1064 | @end menu | 1130 | @end menu |
| 1065 | 1131 | ||
| 1066 | @node Formula syntax, Column formulas, Table calculations, Table calculations | 1132 | @node Formula syntax, Lisp formulas, Table calculations, Table calculations |
| 1067 | @subsection Formula syntax | 1133 | @subsection Formula syntax |
| 1068 | @cindex formula syntax | 1134 | @cindex formula syntax |
| 1069 | @cindex syntax, of formulas | 1135 | @cindex syntax, of formulas |
| @@ -1108,8 +1174,8 @@ described below, see @ref{Advanced features}. | |||
| 1108 | A formula can contain an optional mode string after a semicolon. This | 1174 | A formula can contain an optional mode string after a semicolon. This |
| 1109 | string consists of flags to influence calc's modes@footnote{By | 1175 | string consists of flags to influence calc's modes@footnote{By |
| 1110 | default, Org-mode uses the standard calc modes (precision 12, angular | 1176 | default, Org-mode uses the standard calc modes (precision 12, angular |
| 1111 | units degrees, fraction and symbolic modes off). However, the display | 1177 | units degrees, fraction and symbolic modes off). The display format, |
| 1112 | format has been changed to @code{(float 5)} to keep tables compact. | 1178 | however, has been changed to @code{(float 5)} to keep tables compact. |
| 1113 | The default settings can be configured using the variable | 1179 | The default settings can be configured using the variable |
| 1114 | @code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to | 1180 | @code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to |
| 1115 | switch the internal precision to 20 digits, @samp{n3}, @samp{s3}, | 1181 | switch the internal precision to 20 digits, @samp{n3}, @samp{s3}, |
| @@ -1120,20 +1186,38 @@ respectively. In addition, you may provide a @code{printf} format | |||
| 1120 | specifier to reformat the final result. A few examples: | 1186 | specifier to reformat the final result. A few examples: |
| 1121 | 1187 | ||
| 1122 | @example | 1188 | @example |
| 1123 | $1+$2 @r{Sum of first and second field} | 1189 | $1+$2 @r{Sum of first and second field} |
| 1124 | $1+$2;%.2f @r{Same, format result to two decimals} | 1190 | $1+$2;%.2f @r{Same, format result to two decimals} |
| 1125 | exp($2)+exp($1) @r{Math functions can be used} | 1191 | exp($2)+exp($1) @r{Math functions can be used} |
| 1126 | $;%.1f @r{Reformat current cell to 1 decimal} | 1192 | $;%.1f @r{Reformat current cell to 1 decimal} |
| 1127 | ($3-32)*5/9 @r{Degrees F -> C conversion} | 1193 | ($3-32)*5/9 @r{Degrees F -> C conversion} |
| 1128 | $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} | 1194 | $c/$1/$cm @r{Hz -> cm conversion, using @file{constants.el}} |
| 1129 | tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} | 1195 | tan($1);Dp3s1 @r{Compute in degrees, precision 3, display SCI 1} |
| 1130 | sin($1);Dp3%.1e @r{Same, but use printf specifier for display} | 1196 | sin($1);Dp3%.1e @r{Same, but use printf specifier for display} |
| 1131 | vmean($2..$7) @r{Compute column range mean, using vector function} | 1197 | vmean($2..$7) @r{Compute column range mean, using vector function} |
| 1132 | vsum(&III) @r{Sum numbers from 3rd hline above, up to here} | 1198 | vsum(&III) @r{Sum numbers from 3rd hline above, up to here} |
| 1133 | taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} | 1199 | taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree} |
| 1200 | @end example | ||
| 1201 | |||
| 1202 | @node Lisp formulas, Column formulas, Formula syntax, Table calculations | ||
| 1203 | @subsection Emacs Lisp forms as formulas | ||
| 1204 | @cindex Lisp forms, as table formulas | ||
| 1205 | |||
| 1206 | It is also possible to write a formula in Emacs lisp; this can be useful | ||
| 1207 | for string manipulation and control structures. If a formula starts | ||
| 1208 | with a single quote followed by an opening parenthesis, then it is | ||
| 1209 | evaluated as a lisp form. The evaluation should return either a string | ||
| 1210 | or a number. Just as with @file{calc} formulas, you can provide a | ||
| 1211 | format specifier after a semicolon. A few examples: | ||
| 1212 | |||
| 1213 | @example | ||
| 1214 | @r{swap the first two characters of the content of column 1} | ||
| 1215 | '(concat (substring "$1" 1 2) (substring "$1" 0 1) (substring "$1" 2)) | ||
| 1216 | @r{Add columns 1 and 2, equivalent to the calc's @code{$1+$2}} | ||
| 1217 | '(+ $1 $2) | ||
| 1134 | @end example | 1218 | @end example |
| 1135 | 1219 | ||
| 1136 | @node Column formulas, Advanced features, Formula syntax, Table calculations | 1220 | @node Column formulas, Advanced features, Lisp formulas, Table calculations |
| 1137 | @subsection Column formulas | 1221 | @subsection Column formulas |
| 1138 | @cindex column formula | 1222 | @cindex column formula |
| 1139 | @cindex formula, for table column | 1223 | @cindex formula, for table column |
| @@ -1203,7 +1287,7 @@ features: | |||
| 1203 | 1287 | ||
| 1204 | @noindent @b{Important}: Please note that for these special tables, | 1288 | @noindent @b{Important}: Please note that for these special tables, |
| 1205 | recalculating the table with @kbd{C-u C-c *} will only affect rows | 1289 | recalculating the table with @kbd{C-u C-c *} will only affect rows |
| 1206 | which are marked @samp{#} or @samp{*}, and named fields. The column | 1290 | that are marked @samp{#} or @samp{*}, and named fields. The column |
| 1207 | formulas are not applied in rows with empty first field. | 1291 | formulas are not applied in rows with empty first field. |
| 1208 | 1292 | ||
| 1209 | @cindex marking characters, tables | 1293 | @cindex marking characters, tables |
| @@ -1300,7 +1384,7 @@ Detailed information will be displayed. | |||
| 1300 | @node Appetizer, , Editing/debugging formulas, Table calculations | 1384 | @node Appetizer, , Editing/debugging formulas, Table calculations |
| 1301 | @subsection Appetizer | 1385 | @subsection Appetizer |
| 1302 | 1386 | ||
| 1303 | Finally, just to wet your appetite on what can be done with the fantastic | 1387 | Finally, just to whet your appetite on what can be done with the fantastic |
| 1304 | @file{calc} package, here is a table that computes the Taylor series | 1388 | @file{calc} package, here is a table that computes the Taylor series |
| 1305 | for a couple of functions (homework: try that with Excel :-) | 1389 | for a couple of functions (homework: try that with Excel :-) |
| 1306 | 1390 | ||
| @@ -1326,7 +1410,7 @@ for a couple of functions (homework: try that with Excel :-) | |||
| 1326 | @cindex minor mode for tables | 1410 | @cindex minor mode for tables |
| 1327 | 1411 | ||
| 1328 | If you like the intuitive way the Org-mode table editor works, you | 1412 | If you like the intuitive way the Org-mode table editor works, you |
| 1329 | might want to use it also in other modes like text-mode or mail-mode. | 1413 | might also want to use it in other modes like text-mode or mail-mode. |
| 1330 | The minor mode Orgtbl-mode makes this possible. You can always toggle | 1414 | The minor mode Orgtbl-mode makes this possible. You can always toggle |
| 1331 | the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for | 1415 | the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for |
| 1332 | example in mail mode, use | 1416 | example in mail mode, use |
| @@ -1369,15 +1453,16 @@ possible. | |||
| 1369 | @chapter Hyperlinks | 1453 | @chapter Hyperlinks |
| 1370 | @cindex hyperlinks | 1454 | @cindex hyperlinks |
| 1371 | 1455 | ||
| 1372 | Just like HMTL, Org-mode provides links inside a file, and external | 1456 | Just like HTML, Org-mode provides links inside a file, and external |
| 1373 | links to other files, Usenet articles, emails and much more. | 1457 | links to other files, Usenet articles, emails, and much more. |
| 1374 | 1458 | ||
| 1375 | @menu | 1459 | @menu |
| 1376 | * Link format:: How links in Org-mode are formatted | 1460 | * Link format:: How links in Org-mode are formatted |
| 1377 | * Internal links:: Links to other places in the current file | 1461 | * Internal links:: Links to other places in the current file |
| 1378 | * External links:: URL-like links to the world | 1462 | * External links:: URL-like links to the world |
| 1379 | * Handling links:: Creating, inserting and following | 1463 | * Handling links:: Creating, inserting and following |
| 1380 | * Search Options:: Linking to a specific location | 1464 | * Search options:: Linking to a specific location |
| 1465 | * Custom searches:: When the default search is not enough | ||
| 1381 | * Remember:: Org-trees store quick notes | 1466 | * Remember:: Org-trees store quick notes |
| 1382 | @end menu | 1467 | @end menu |
| 1383 | 1468 | ||
| @@ -1387,7 +1472,7 @@ links to other files, Usenet articles, emails and much more. | |||
| 1387 | @cindex format, of links | 1472 | @cindex format, of links |
| 1388 | 1473 | ||
| 1389 | Org-mode will recognize plain URL-like links and activate them as | 1474 | Org-mode will recognize plain URL-like links and activate them as |
| 1390 | clickable links. However, the general link format looks like this: | 1475 | clickable links. The general link format, however, looks like this: |
| 1391 | 1476 | ||
| 1392 | @example | 1477 | @example |
| 1393 | [[link][description]] @r{or alternatively} [[link]] | 1478 | [[link][description]] @r{or alternatively} [[link]] |
| @@ -1407,7 +1492,7 @@ If you place the cursor at the beginning or just behind the end of the | |||
| 1407 | displayed text and press @key{BACKSPACE}, you will remove the | 1492 | displayed text and press @key{BACKSPACE}, you will remove the |
| 1408 | (invisible) bracket at that location. This makes the link incomplete | 1493 | (invisible) bracket at that location. This makes the link incomplete |
| 1409 | and the internals are again displayed as plain text. Inserting the | 1494 | and the internals are again displayed as plain text. Inserting the |
| 1410 | missing bracket does hide the link internals again. To show the | 1495 | missing bracket hides the link internals again. To show the |
| 1411 | internal structure of all links, use the menu entry | 1496 | internal structure of all links, use the menu entry |
| 1412 | @code{Org->Hyperlinks->Literal links}. | 1497 | @code{Org->Hyperlinks->Literal links}. |
| 1413 | 1498 | ||
| @@ -1422,16 +1507,18 @@ the current file. Links such as @samp{[[My Target]]} or @samp{[[My | |||
| 1422 | Target][Find my target]]} lead to a text search in the current file. | 1507 | Target][Find my target]]} lead to a text search in the current file. |
| 1423 | The link can be followed with @kbd{C-c C-o} when the cursor is on the | 1508 | The link can be followed with @kbd{C-c C-o} when the cursor is on the |
| 1424 | link, or with a mouse click (@pxref{Handling links}). The preferred | 1509 | link, or with a mouse click (@pxref{Handling links}). The preferred |
| 1425 | match for such a link is a dedicated target: The same string in double | 1510 | match for such a link is a dedicated target: the same string in double |
| 1426 | angular brackets. Targets may be located anywhere, often it is | 1511 | angular brackets. Targets may be located anywhere; often it is |
| 1427 | convenient to put them into a comment line, for example | 1512 | convenient to put them into a comment line. For example |
| 1428 | 1513 | ||
| 1429 | @example | 1514 | @example |
| 1430 | # <<My Target>> | 1515 | # <<My Target>> |
| 1431 | @end example | 1516 | @end example |
| 1432 | 1517 | ||
| 1433 | @noindent In HTML export (@pxref{HTML export}), such targets will become | 1518 | @noindent In HTML export (@pxref{HTML export}), such targets will become |
| 1434 | named anchors for direct access through @samp{http} links. | 1519 | named anchors for direct access through @samp{http} links@footnote{Note |
| 1520 | that text before the first headline will never be exported, so the first | ||
| 1521 | such target must be after the first headline.}. | ||
| 1435 | 1522 | ||
| 1436 | If no dedicated target exists, Org-mode will search for the words in the | 1523 | If no dedicated target exists, Org-mode will search for the words in the |
| 1437 | link. In the above example the search would be for @samp{my target}. | 1524 | link. In the above example the search would be for @samp{my target}. |
| @@ -1502,30 +1589,35 @@ text search such that @samp{CamelCaseLink} is equivalent to | |||
| 1502 | @cindex MH-E links | 1589 | @cindex MH-E links |
| 1503 | @cindex USENET links | 1590 | @cindex USENET links |
| 1504 | @cindex SHELL links | 1591 | @cindex SHELL links |
| 1592 | @cindex Info links | ||
| 1593 | @cindex elisp links | ||
| 1505 | 1594 | ||
| 1506 | Org-mode supports links to files, websites, Usenet and email messages; | 1595 | Org-mode supports links to files, websites, Usenet and email messages, |
| 1507 | and BBDB database entries. External links are URL-like locators. The | 1596 | and BBDB database entries. External links are URL-like locators. They |
| 1508 | following list shows examples for each link type. | 1597 | start with a short identifying string followed by a colon. There can be |
| 1598 | no space after the colon. The following list shows examples for each | ||
| 1599 | link type. | ||
| 1509 | 1600 | ||
| 1510 | @example | 1601 | @example |
| 1511 | http://www.astro.uva.nl/~dominik @r{on the web} | 1602 | http://www.astro.uva.nl/~dominik @r{on the web} |
| 1512 | file:/home/dominik/images/jupiter.jpg @r{file, absolute path} | 1603 | file:/home/dominik/images/jupiter.jpg @r{file, absolute path} |
| 1513 | file:papers/last.pdf @r{file, relative path} | 1604 | file:papers/last.pdf @r{file, relative path} |
| 1514 | news:comp.emacs @r{Usenet link} | 1605 | news:comp.emacs @r{Usenet link} |
| 1515 | mailto:adent@@galaxy.net @r{Mail link} | 1606 | mailto:adent@@galaxy.net @r{Mail link} |
| 1516 | vm:folder @r{VM folder link} | 1607 | vm:folder @r{VM folder link} |
| 1517 | vm:folder#id @r{VM message link} | 1608 | vm:folder#id @r{VM message link} |
| 1518 | vm://myself@@some.where.org/folder#id @r{VM on remote machine} | 1609 | vm://myself@@some.where.org/folder#id @r{VM on remote machine} |
| 1519 | wl:folder @r{WANDERLUST folder link} | 1610 | wl:folder @r{WANDERLUST folder link} |
| 1520 | wl:folder#id @r{WANDERLUST message link} | 1611 | wl:folder#id @r{WANDERLUST message link} |
| 1521 | mhe:folder @r{MH-E folder link} | 1612 | mhe:folder @r{MH-E folder link} |
| 1522 | mhe:folder#id @r{MH-E message link} | 1613 | mhe:folder#id @r{MH-E message link} |
| 1523 | rmail:folder @r{RMAIL folder link} | 1614 | rmail:folder @r{RMAIL folder link} |
| 1524 | rmail:folder#id @r{RMAIL message link} | 1615 | rmail:folder#id @r{RMAIL message link} |
| 1525 | gnus:group @r{GNUS group link} | 1616 | gnus:group @r{GNUS group link} |
| 1526 | gnus:group#id @r{GNUS article link} | 1617 | gnus:group#id @r{GNUS article link} |
| 1527 | bbdb:Richard Stallman @r{BBDB link} | 1618 | bbdb:Richard Stallman @r{BBDB link} |
| 1528 | shell:ls *.org @r{A shell command} | 1619 | shell:ls *.org @r{A shell command} |
| 1620 | elisp:(find-file-other-frame "Elisp.org") @r{An elisp form to evaluate} | ||
| 1529 | @end example | 1621 | @end example |
| 1530 | 1622 | ||
| 1531 | A link should be enclosed in double brackets and may contain a | 1623 | A link should be enclosed in double brackets and may contain a |
| @@ -1540,10 +1632,10 @@ format}), for example: | |||
| 1540 | @cindex plain text external links | 1632 | @cindex plain text external links |
| 1541 | Org-mode also finds external links in the normal text and activates them | 1633 | Org-mode also finds external links in the normal text and activates them |
| 1542 | as links. If spaces must be part of the link (for example in | 1634 | as links. If spaces must be part of the link (for example in |
| 1543 | @samp{bbdb:Richard Stallman}) or to remove ambiguities about the end of | 1635 | @samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of |
| 1544 | the link, enclose them in angular brackets. | 1636 | the link, enclose them in angular brackets. |
| 1545 | 1637 | ||
| 1546 | @node Handling links, Search Options, External links, Hyperlinks | 1638 | @node Handling links, Search options, External links, Hyperlinks |
| 1547 | @section Handling links | 1639 | @section Handling links |
| 1548 | 1640 | ||
| 1549 | Org-mode provides methods to create a link in the correct syntax, to | 1641 | Org-mode provides methods to create a link in the correct syntax, to |
| @@ -1559,13 +1651,16 @@ stored for later insertion into an Org-mode buffer (see below). For | |||
| 1559 | Org-mode files, if there is a @samp{<<target>>} at the cursor, the link | 1651 | Org-mode files, if there is a @samp{<<target>>} at the cursor, the link |
| 1560 | points to the target. Otherwise it points to the current headline. For | 1652 | points to the target. Otherwise it points to the current headline. For |
| 1561 | VM, RMAIL, WANDERLUST, MH-E, GNUS and BBDB buffers, the link will | 1653 | VM, RMAIL, WANDERLUST, MH-E, GNUS and BBDB buffers, the link will |
| 1562 | indicate to the current article/entry. For W3 and W3M buffers, the link | 1654 | indicate the current article/entry. For W3 and W3M buffers, the link |
| 1563 | goes to the current URL. For any other files, the link will point to | 1655 | goes to the current URL. For any other files, the link will point to |
| 1564 | the file, with a search string (@pxref{Search Options}) pointing to the | 1656 | the file, with a search string (@pxref{Search options}) pointing to the |
| 1565 | contents of the current line. If there is an active region, the | 1657 | contents of the current line. If there is an active region, the |
| 1566 | selected words will form the basis of the search string. The key | 1658 | selected words will form the basis of the search string. If the |
| 1567 | binding @kbd{C-c l} is only a suggestion - see @ref{Installation and | 1659 | automatically created link is not working correctly or accurately |
| 1568 | activation}. | 1660 | enough, you can write custom functions to select the search string and |
| 1661 | to do the search for particular file types - see @ref{Custom searches}. | ||
| 1662 | The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation | ||
| 1663 | and activation}. | ||
| 1569 | 1664 | ||
| 1570 | @kindex C-c C-l | 1665 | @kindex C-c C-l |
| 1571 | @cindex link completion | 1666 | @cindex link completion |
| @@ -1581,7 +1676,9 @@ that you don't have to use this command to insert a link. Links in | |||
| 1581 | Org-mode are plain text, and you can type or paste them straight into | 1676 | Org-mode are plain text, and you can type or paste them straight into |
| 1582 | the buffer. By using this command, the links are automatically enclosed | 1677 | the buffer. By using this command, the links are automatically enclosed |
| 1583 | in double brackets, and you will be asked for the optional descriptive | 1678 | in double brackets, and you will be asked for the optional descriptive |
| 1584 | text. | 1679 | text. If the link is a @samp{file:} link and the linked file is located |
| 1680 | in the same directory as the current file or a subdirectory of it, the | ||
| 1681 | path of the file will be inserted relative to the current directory. | ||
| 1585 | 1682 | ||
| 1586 | @kindex C-u C-c C-l | 1683 | @kindex C-u C-c C-l |
| 1587 | @cindex file name completion | 1684 | @cindex file name completion |
| @@ -1597,7 +1694,7 @@ is used, if possible with @samp{~/} for your home directory. You can | |||
| 1597 | force an absolute path with two @kbd{C-u} prefixes. | 1694 | force an absolute path with two @kbd{C-u} prefixes. |
| 1598 | 1695 | ||
| 1599 | @item C-c C-l @r{with cursor on existing link} | 1696 | @item C-c C-l @r{with cursor on existing link} |
| 1600 | When the cursor is on an existing link, @kbd{C-c C-l} allows to edit the | 1697 | When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the |
| 1601 | link and description parts of the link. | 1698 | link and description parts of the link. |
| 1602 | 1699 | ||
| 1603 | @cindex following links | 1700 | @cindex following links |
| @@ -1607,7 +1704,7 @@ Open link at point. This will launch a web browser for URLs (using | |||
| 1607 | @command{browse-url-at-point}), run vm/mh-e/wanderlust/rmail/gnus/bbdb | 1704 | @command{browse-url-at-point}), run vm/mh-e/wanderlust/rmail/gnus/bbdb |
| 1608 | for the corresponding links, and execute the command in a shell link. | 1705 | for the corresponding links, and execute the command in a shell link. |
| 1609 | When the cursor is on an internal link, this commands runs the | 1706 | When the cursor is on an internal link, this commands runs the |
| 1610 | corresponding search. When the cursor is on a TAGS list in a headline, | 1707 | corresponding search. When the cursor is on a TAG list in a headline, |
| 1611 | it creates the corresponding TAGS view. If the cursor is on a time | 1708 | it creates the corresponding TAGS view. If the cursor is on a time |
| 1612 | stamp, it compiles the agenda for that date. Furthermore, it will visit | 1709 | stamp, it compiles the agenda for that date. Furthermore, it will visit |
| 1613 | text files in @samp{file:} links with Emacs and select a suitable | 1710 | text files in @samp{file:} links with Emacs and select a suitable |
| @@ -1620,7 +1717,7 @@ override the default application and visit the file with Emacs, use a | |||
| 1620 | @kindex mouse-1 | 1717 | @kindex mouse-1 |
| 1621 | @item mouse-2 | 1718 | @item mouse-2 |
| 1622 | @itemx mouse-1 | 1719 | @itemx mouse-1 |
| 1623 | On links, @kbd{mouse-2} will open the link just like @kbd{C-c C-o} | 1720 | On links, @kbd{mouse-2} will open the link just as @kbd{C-c C-o} |
| 1624 | would. Under Emacs 22, also @kbd{mouse-1} will follow a link. | 1721 | would. Under Emacs 22, also @kbd{mouse-1} will follow a link. |
| 1625 | 1722 | ||
| 1626 | @kindex mouse-3 | 1723 | @kindex mouse-3 |
| @@ -1643,7 +1740,7 @@ previously recorded positions. | |||
| 1643 | @end table | 1740 | @end table |
| 1644 | 1741 | ||
| 1645 | 1742 | ||
| 1646 | @node Search Options, Remember, Handling links, Hyperlinks | 1743 | @node Search options, Custom searches, Handling links, Hyperlinks |
| 1647 | @section Search options in file links | 1744 | @section Search options in file links |
| 1648 | @cindex search option in file links | 1745 | @cindex search option in file links |
| 1649 | @cindex file links, searching | 1746 | @cindex file links, searching |
| @@ -1651,8 +1748,14 @@ previously recorded positions. | |||
| 1651 | File links can contain additional information to make Emacs jump to a | 1748 | File links can contain additional information to make Emacs jump to a |
| 1652 | particular location in the file when following a link. This can be a | 1749 | particular location in the file when following a link. This can be a |
| 1653 | line number or a search option after a double@footnote{For backward | 1750 | line number or a search option after a double@footnote{For backward |
| 1654 | compatibility, line numbers can also follow a single colon.} colon. | 1751 | compatibility, line numbers can also follow a single colon.} colon. For |
| 1655 | For example: | 1752 | example, when the command @kbd{C-c l} creates a link (@pxref{Handling |
| 1753 | links}) to a file, it encodes the words in the current line as a search | ||
| 1754 | string that can be used to find this line back later when following the | ||
| 1755 | link with @kbd{C-c C-o}. | ||
| 1756 | |||
| 1757 | Here is the syntax of the different ways to attach a search to a file | ||
| 1758 | link, together with an explanation: | ||
| 1656 | 1759 | ||
| 1657 | @example | 1760 | @example |
| 1658 | [[file:~/code/main.c::255]] | 1761 | [[file:~/code/main.c::255]] |
| @@ -1661,8 +1764,6 @@ For example: | |||
| 1661 | [[file:~/xx.org::/regexp/]] | 1764 | [[file:~/xx.org::/regexp/]] |
| 1662 | @end example | 1765 | @end example |
| 1663 | 1766 | ||
| 1664 | @noindent Here is what these options do. | ||
| 1665 | |||
| 1666 | @table @code | 1767 | @table @code |
| 1667 | @item 255 | 1768 | @item 255 |
| 1668 | Jump to line 255. | 1769 | Jump to line 255. |
| @@ -1670,7 +1771,7 @@ Jump to line 255. | |||
| 1670 | Search for a link target @samp{<<My Target>>}, or do a text search for | 1771 | Search for a link target @samp{<<My Target>>}, or do a text search for |
| 1671 | @samp{my target}, similar to the search in internal links, see | 1772 | @samp{my target}, similar to the search in internal links, see |
| 1672 | @ref{Internal links}. In HTML export (@pxref{HTML export}), such a file | 1773 | @ref{Internal links}. In HTML export (@pxref{HTML export}), such a file |
| 1673 | link will become an html reference to the corresponding named anchor in | 1774 | link will become an HTML reference to the corresponding named anchor in |
| 1674 | the linked file. | 1775 | the linked file. |
| 1675 | @item *My Target | 1776 | @item *My Target |
| 1676 | In an Org-mode file, restrict search to headlines. | 1777 | In an Org-mode file, restrict search to headlines. |
| @@ -1685,10 +1786,33 @@ sparse tree with the matches. | |||
| 1685 | 1786 | ||
| 1686 | As a degenerate case, a file link with an empty file name can be used | 1787 | As a degenerate case, a file link with an empty file name can be used |
| 1687 | to search the current file. For example, @code{<file:::find me>} does | 1788 | to search the current file. For example, @code{<file:::find me>} does |
| 1688 | a search for @samp{find me} in the current file, just like | 1789 | a search for @samp{find me} in the current file, just as |
| 1689 | @samp{[[find me]]} would. | 1790 | @samp{[[find me]]} would. |
| 1690 | 1791 | ||
| 1691 | @node Remember, , Search Options, Hyperlinks | 1792 | @node Custom searches, Remember, Search options, Hyperlinks |
| 1793 | @section Custom Searches | ||
| 1794 | @cindex custom search strings | ||
| 1795 | |||
| 1796 | The default mechanism for creating search strings and for doing the | ||
| 1797 | actual search related to a file link may not work correctly in all | ||
| 1798 | cases. For example, BibTeX database files have many entries like | ||
| 1799 | @samp{year="1993"} which would not result in good search strings, | ||
| 1800 | because the only unique identification for a BibTeX entry is the | ||
| 1801 | citation key. | ||
| 1802 | |||
| 1803 | If you come across such a problem, you can write custom functions to set | ||
| 1804 | the right search string for a particular file type, and to do the search | ||
| 1805 | for the string in the file. Using @code{add-hook}, these functions need | ||
| 1806 | to be added to the hook variables | ||
| 1807 | @code{org-create-file-search-functions} and | ||
| 1808 | @code{org-execute-file-search-functions}. See the docstring for these | ||
| 1809 | variables for more information. Org-mode actually uses this mechanism | ||
| 1810 | for Bib@TeX{} database files, and you can use the corresponding code as | ||
| 1811 | an implementation example. Search for @samp{BibTeX links} in the source | ||
| 1812 | file. | ||
| 1813 | |||
| 1814 | |||
| 1815 | @node Remember, , Custom searches, Hyperlinks | ||
| 1692 | @section Remember | 1816 | @section Remember |
| 1693 | @cindex @file{remember.el} | 1817 | @cindex @file{remember.el} |
| 1694 | 1818 | ||
| @@ -1698,19 +1822,14 @@ store quick notes with little interruption of your work flow. See | |||
| 1698 | @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more | 1822 | @uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more |
| 1699 | information. The notes produced by @emph{Remember} can be stored in | 1823 | information. The notes produced by @emph{Remember} can be stored in |
| 1700 | different ways, and Org-mode files are a good target. Org-mode allows | 1824 | different ways, and Org-mode files are a good target. Org-mode allows |
| 1701 | to file away notes either to a default file, or directly to the | 1825 | you to file away notes either to a default file, or directly to the correct |
| 1702 | correct location in your Org-mode outline tree. The following | 1826 | location in your Org-mode outline tree. The following customization |
| 1703 | customization@footnote{The three autoload forms are only necessary if | 1827 | will tell @emph{Remember} to use org files as target, and to create |
| 1704 | @file{org.el} is not part of the Emacs distribution or an XEmacs | 1828 | annotations compatible with Org-mode links. |
| 1705 | package.} will tell @emph{Remember} to use org files as target, and to | ||
| 1706 | create annotations compatible with Org-mode links. | ||
| 1707 | 1829 | ||
| 1708 | @example | 1830 | @example |
| 1709 | (setq org-directory "~/path/to/my/orgfiles/") | 1831 | (setq org-directory "~/path/to/my/orgfiles/") |
| 1710 | (setq org-default-notes-file "~/.notes") | 1832 | (setq org-default-notes-file "~/.notes") |
| 1711 | (autoload 'org-remember-annotation "org") | ||
| 1712 | (autoload 'org-remember-apply-template "org") | ||
| 1713 | (autoload 'org-remember-handler "org") | ||
| 1714 | (setq remember-annotation-functions '(org-remember-annotation)) | 1833 | (setq remember-annotation-functions '(org-remember-annotation)) |
| 1715 | (setq remember-handler-functions '(org-remember-handler)) | 1834 | (setq remember-handler-functions '(org-remember-handler)) |
| 1716 | (add-hook 'remember-mode-hook 'org-remember-apply-template) | 1835 | (add-hook 'remember-mode-hook 'org-remember-apply-template) |
| @@ -1833,6 +1952,12 @@ Rotate the TODO state of the current item between | |||
| 1833 | 1952 | ||
| 1834 | The same rotation can also be done ``remotely'' from the timeline and | 1953 | The same rotation can also be done ``remotely'' from the timeline and |
| 1835 | agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}). | 1954 | agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}). |
| 1955 | @kindex S-@key{right} | ||
| 1956 | @kindex S-@key{left} | ||
| 1957 | @item S-@key{right} | ||
| 1958 | @itemx S-@key{left} | ||
| 1959 | Select the following/preceding TODO state, similar to cycling. Mostly | ||
| 1960 | useful if more than two TODO states are possible (@pxref{TODO extensions}). | ||
| 1836 | @kindex C-c C-v | 1961 | @kindex C-c C-v |
| 1837 | @cindex sparse tree, for TODO | 1962 | @cindex sparse tree, for TODO |
| 1838 | @item C-c C-v | 1963 | @item C-c C-v |
| @@ -1907,7 +2032,7 @@ of working on an item, for example: | |||
| 1907 | @end lisp | 2032 | @end lisp |
| 1908 | 2033 | ||
| 1909 | @cindex completion, of TODO keywords | 2034 | @cindex completion, of TODO keywords |
| 1910 | Changing these variables becomes only effective in a new Emacs session. | 2035 | Changing these variables only becomes effective in a new Emacs session. |
| 1911 | With this setup, the command @kbd{C-c C-t} will cycle an entry from | 2036 | With this setup, the command @kbd{C-c C-t} will cycle an entry from |
| 1912 | TODO to FEEDBACK, then to VERIFY, and finally to DONE. You may also | 2037 | TODO to FEEDBACK, then to VERIFY, and finally to DONE. You may also |
| 1913 | use a prefix argument to quickly select a specific state. For example | 2038 | use a prefix argument to quickly select a specific state. For example |
| @@ -1976,7 +2101,7 @@ anywhere in the file: | |||
| 1976 | 2101 | ||
| 1977 | @cindex DONE, final TODO keyword | 2102 | @cindex DONE, final TODO keyword |
| 1978 | Remember that the last keyword must always mean that the item is DONE | 2103 | Remember that the last keyword must always mean that the item is DONE |
| 1979 | (you may use a different word, though). Also note that in each file, | 2104 | (although you may use a different word). Also note that in each file, |
| 1980 | only one of the two aspects of TODO keywords can be used. After | 2105 | only one of the two aspects of TODO keywords can be used. After |
| 1981 | changing one of these lines, use @kbd{C-c C-c} with the cursor still | 2106 | changing one of these lines, use @kbd{C-c C-c} with the cursor still |
| 1982 | in the line to make the changes known to Org-mode@footnote{Org-mode | 2107 | in the line to make the changes known to Org-mode@footnote{Org-mode |
| @@ -2017,7 +2142,7 @@ difference only in the agenda (@pxref{Weekly/Daily agenda}). | |||
| 2017 | @table @kbd | 2142 | @table @kbd |
| 2018 | @kindex @kbd{C-c ,} | 2143 | @kindex @kbd{C-c ,} |
| 2019 | @item @kbd{C-c ,} | 2144 | @item @kbd{C-c ,} |
| 2020 | Set the priority of the current item. The command prompts for a | 2145 | Set the priority of the current headline. The command prompts for a |
| 2021 | priority character @samp{A}, @samp{B} or @samp{C}. When you press | 2146 | priority character @samp{A}, @samp{B} or @samp{C}. When you press |
| 2022 | @key{SPC} instead, the priority cookie is removed from the headline. | 2147 | @key{SPC} instead, the priority cookie is removed from the headline. |
| 2023 | The priorities can also be changed ``remotely'' from the timeline and | 2148 | The priorities can also be changed ``remotely'' from the timeline and |
| @@ -2027,10 +2152,9 @@ agenda buffer with the @kbd{,} command (@pxref{Agenda commands}). | |||
| 2027 | @kindex S-@key{down} | 2152 | @kindex S-@key{down} |
| 2028 | @item S-@key{up} | 2153 | @item S-@key{up} |
| 2029 | @itemx S-@key{down} | 2154 | @itemx S-@key{down} |
| 2030 | Increase/decrease priority of current item. Note that these keys are | 2155 | Increase/decrease priority of current headline. Note that these keys |
| 2031 | also used to modify time stamps (@pxref{Creating timestamps}). | 2156 | are also used to modify time stamps (@pxref{Creating timestamps}). |
| 2032 | Furthermore, these keys are also used by CUA-mode | 2157 | Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}). |
| 2033 | (@pxref{Interaction}). | ||
| 2034 | @end table | 2158 | @end table |
| 2035 | 2159 | ||
| 2036 | @node Timestamps, Tags, TODO items, Top | 2160 | @node Timestamps, Tags, TODO items, Top |
| @@ -2060,15 +2184,15 @@ of an org-tree entry. Its presence allows entries to be shown on specific | |||
| 2060 | dates in the agenda (@pxref{Weekly/Daily agenda}). We distinguish: | 2184 | dates in the agenda (@pxref{Weekly/Daily agenda}). We distinguish: |
| 2061 | 2185 | ||
| 2062 | @table @var | 2186 | @table @var |
| 2187 | @item Plain time stamp | ||
| 2063 | @cindex timestamp | 2188 | @cindex timestamp |
| 2064 | @item TIMESTAMP | ||
| 2065 | A simple time stamp just assigns a date/time to an item. This is just | 2189 | A simple time stamp just assigns a date/time to an item. This is just |
| 2066 | like writing down an appointment in a paper agenda, or like writing down | 2190 | like writing down an appointment in a paper agenda, or like writing down |
| 2067 | an event in a diary, when you want to take not of when something | 2191 | an event in a diary, when you want to take not of when something |
| 2068 | happened. In the timeline and agenda displays, the headline of an entry | 2192 | happened. In the timeline and agenda displays, the headline of an entry |
| 2069 | associated with a plain time stamp will be shown exactly on that date. | 2193 | associated with a plain time stamp will be shown exactly on that date. |
| 2070 | 2194 | ||
| 2071 | @item TIMERANGE | 2195 | @item Time stamp range |
| 2072 | @cindex timerange | 2196 | @cindex timerange |
| 2073 | Two time stamps connected by @samp{--} denote a time range. The | 2197 | Two time stamps connected by @samp{--} denote a time range. The |
| 2074 | headline will be shown on the first and last day of the range, and on | 2198 | headline will be shown on the first and last day of the range, and on |
| @@ -2080,7 +2204,7 @@ example: | |||
| 2080 | <2004-08-23 Mon>--<2004-08-26 Thu> | 2204 | <2004-08-23 Mon>--<2004-08-26 Thu> |
| 2081 | @end example | 2205 | @end example |
| 2082 | 2206 | ||
| 2083 | @item SCHEDULED | 2207 | @item Time stamp with SCHEDULED keyword |
| 2084 | @cindex SCHEDULED keyword | 2208 | @cindex SCHEDULED keyword |
| 2085 | If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you | 2209 | If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you |
| 2086 | are planning to start working on that task on the given date. So this is | 2210 | are planning to start working on that task on the given date. So this is |
| @@ -2095,7 +2219,7 @@ automatically be forwarded until completed. | |||
| 2095 | SCHEDULED: <2004-12-25 Sat> | 2219 | SCHEDULED: <2004-12-25 Sat> |
| 2096 | @end example | 2220 | @end example |
| 2097 | 2221 | ||
| 2098 | @item DEADLINE | 2222 | @item Time stamp with DEADLINE keyword |
| 2099 | @cindex DEADLINE keyword | 2223 | @cindex DEADLINE keyword |
| 2100 | If a time stamp is preceded by the word @samp{DEADLINE:}, the task | 2224 | If a time stamp is preceded by the word @samp{DEADLINE:}, the task |
| 2101 | (most likely a TODO item) is supposed to be finished on that date, and | 2225 | (most likely a TODO item) is supposed to be finished on that date, and |
| @@ -2109,6 +2233,12 @@ continuing until the entry is marked DONE. An example: | |||
| 2109 | The editor in charge is <bbdb:Ford Prefect> | 2233 | The editor in charge is <bbdb:Ford Prefect> |
| 2110 | DEADLINE: <2004-02-29 Sun> | 2234 | DEADLINE: <2004-02-29 Sun> |
| 2111 | @end example | 2235 | @end example |
| 2236 | @item Time stamp with CLOSED keyword | ||
| 2237 | @cindex CLOSED keyword | ||
| 2238 | When @code{org-log-done} is non-nil, Org-mode will automatically insert | ||
| 2239 | a special time stamp each time a TODO entry is marked done | ||
| 2240 | (@pxref{Progress logging}). This time stamp is enclosed in square | ||
| 2241 | brackets instead of angular brackets. | ||
| 2112 | @end table | 2242 | @end table |
| 2113 | 2243 | ||
| 2114 | @node Creating timestamps, , Time stamps, Timestamps | 2244 | @node Creating timestamps, , Time stamps, Timestamps |
| @@ -2155,7 +2285,10 @@ Access the agenda for the date given by the time stamp at point | |||
| 2155 | 2285 | ||
| 2156 | @kindex C-c C-d | 2286 | @kindex C-c C-d |
| 2157 | @item C-c C-d | 2287 | @item C-c C-d |
| 2158 | Insert @samp{DEADLINE} keyword along with a stamp. | 2288 | Insert @samp{DEADLINE} keyword along with a stamp. The insertion will |
| 2289 | happen in the line directly following the headline. | ||
| 2290 | @c FIXME Any CLOSED timestamp will be removed.???????? | ||
| 2291 | |||
| 2159 | @kindex C-c C-w | 2292 | @kindex C-c C-w |
| 2160 | @cindex sparse tree, for deadlines | 2293 | @cindex sparse tree, for deadlines |
| 2161 | @item C-c C-w | 2294 | @item C-c C-w |
| @@ -2167,14 +2300,16 @@ all deadlines due tomorrow. | |||
| 2167 | 2300 | ||
| 2168 | @kindex C-c C-s | 2301 | @kindex C-c C-s |
| 2169 | @item C-c C-s | 2302 | @item C-c C-s |
| 2170 | Insert @samp{SCHEDULED} keyword along with a stamp. | 2303 | Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will |
| 2304 | happen in the line directly following the headline. Any CLOSED | ||
| 2305 | timestamp will be removed. | ||
| 2171 | 2306 | ||
| 2172 | @kindex S-@key{left} | 2307 | @kindex S-@key{left} |
| 2173 | @kindex S-@key{right} | 2308 | @kindex S-@key{right} |
| 2174 | @item S-@key{left} | 2309 | @item S-@key{left} |
| 2175 | @itemx S-@key{right} | 2310 | @itemx S-@key{right} |
| 2176 | Change date at cursor by one day. These key bindings conflict with | 2311 | Change date at cursor by one day. These key bindings conflict with |
| 2177 | CUA-mode (@pxref{Interaction}). | 2312 | CUA-mode (@pxref{Conflicts}). |
| 2178 | 2313 | ||
| 2179 | @kindex S-@key{up} | 2314 | @kindex S-@key{up} |
| 2180 | @kindex S-@key{down} | 2315 | @kindex S-@key{down} |
| @@ -2184,7 +2319,7 @@ Change the item under the cursor in a timestamp. The cursor can be on | |||
| 2184 | a year, month, day, hour or minute. Note that if the cursor is not at | 2319 | a year, month, day, hour or minute. Note that if the cursor is not at |
| 2185 | a time stamp, these same keys modify the priority of an item. | 2320 | a time stamp, these same keys modify the priority of an item. |
| 2186 | (@pxref{Priorities}). The key bindings also conflict with CUA-mode | 2321 | (@pxref{Priorities}). The key bindings also conflict with CUA-mode |
| 2187 | (@pxref{Interaction}). | 2322 | (@pxref{Conflicts}). |
| 2188 | 2323 | ||
| 2189 | 2324 | ||
| 2190 | @kindex C-c C-y | 2325 | @kindex C-c C-y |
| @@ -2245,9 +2380,9 @@ Choose date in calendar (only if nothing typed into minibuffer). | |||
| 2245 | @cindex matching, tags | 2380 | @cindex matching, tags |
| 2246 | @cindex sparse tree, tag based | 2381 | @cindex sparse tree, tag based |
| 2247 | 2382 | ||
| 2248 | If you wish to implement a system to cross-correlate information, an | 2383 | If you wish to implement a system of labels and contexts for |
| 2249 | excellent way is to assign @i{tags} to headline. Org-mode has | 2384 | cross-correlating information, an excellent way is to assign @i{tags} to |
| 2250 | extensive support for using tags. | 2385 | headlines. Org-mode has extensive support for using tags. |
| 2251 | 2386 | ||
| 2252 | Every headline can contain a list of tags, at the end of the headline. | 2387 | Every headline can contain a list of tags, at the end of the headline. |
| 2253 | Tags are normal words containing letters, numbers, @samp{_}, and | 2388 | Tags are normal words containing letters, numbers, @samp{_}, and |
| @@ -2279,8 +2414,8 @@ the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:}, | |||
| 2279 | @samp{:NOTES:}, and @samp{:ACTION:}. When executing tag searches and | 2414 | @samp{:NOTES:}, and @samp{:ACTION:}. When executing tag searches and |
| 2280 | Org-mode finds that a certain headline matches the search criterion, it | 2415 | Org-mode finds that a certain headline matches the search criterion, it |
| 2281 | will not check any sublevel headline, assuming that these likely also | 2416 | will not check any sublevel headline, assuming that these likely also |
| 2282 | match, and that the list of matches can become very long. However, this | 2417 | match, and that the list of matches can become very long. This may |
| 2283 | may not be what you want, and you can influence inheritance and | 2418 | not be what you want, however, and you can influence inheritance and |
| 2284 | searching using the variables @code{org-use-tag-inheritance} and | 2419 | searching using the variables @code{org-use-tag-inheritance} and |
| 2285 | @code{org-tags-match-list-sublevels}. | 2420 | @code{org-tags-match-list-sublevels}. |
| 2286 | 2421 | ||
| @@ -2289,25 +2424,75 @@ searching using the variables @code{org-use-tag-inheritance} and | |||
| 2289 | @cindex setting tags | 2424 | @cindex setting tags |
| 2290 | 2425 | ||
| 2291 | @kindex M-@key{TAB} | 2426 | @kindex M-@key{TAB} |
| 2292 | As Org-mode deals with plain text files, tags can simply be typed into | 2427 | Tags can simply be typed into the buffer at the end of a headline. |
| 2293 | the buffer. After a colon, @kbd{M-@key{TAB}} offers completion on all | 2428 | After a colon, @kbd{M-@key{TAB}} offers completion on tags. There is |
| 2294 | tags being used in the current buffer. There is also a special command | 2429 | also a special command for inserting tags: |
| 2295 | for inserting tags: | ||
| 2296 | 2430 | ||
| 2297 | @table @kbd | 2431 | @table @kbd |
| 2298 | @kindex C-c C-c | 2432 | @kindex C-c C-c |
| 2299 | @item C-c C-c | 2433 | @item C-c C-c |
| 2300 | @cindex completion, of tags | 2434 | @cindex completion, of tags |
| 2301 | Enter new tags for the current headline. The minibuffer will prompt for | 2435 | Enter new tags for the current headline. Org-mode will either offer |
| 2302 | a list of tags and offer completion with respect to all other tags used | 2436 | completion or a special single-key interface for setting tags, see |
| 2303 | in the current buffer. Several tags, separated by colons, may be | 2437 | below. After pressing @key{RET}, the tags will be inserted and aligned |
| 2304 | specified at the prompt. After pressing @key{RET}, the tags will be | 2438 | to @code{org-tags-column}. When called with a @kbd{C-u} prefix, all |
| 2305 | inserted and aligned to @code{org-tags-column}. When called with a | 2439 | tags in the current buffer will be aligned to that column, just to make |
| 2306 | @kbd{C-u} prefix, all tags in the current buffer will be aligned to that | 2440 | things look nice. TAGS are automatically realigned after promotion, |
| 2307 | column, just to make things look nice. TAGS are automatically realigned | 2441 | demotion, and TODO state changes (@pxref{TODO basics}). |
| 2308 | after promotion, demotion, and TODO state changes (@pxref{TODO basics}). | ||
| 2309 | @end table | 2442 | @end table |
| 2310 | 2443 | ||
| 2444 | Org will support tag insertion based on a @emph{list of tags}. By | ||
| 2445 | default this list is constructed dynamically, containing all tags | ||
| 2446 | currently used in the buffer. You may also globally specify a hard list | ||
| 2447 | of tags with the variable @code{org-tag-alist}. Finally you can set | ||
| 2448 | the allowed tags for a given file with lines like | ||
| 2449 | |||
| 2450 | @example | ||
| 2451 | #+TAGS: @@WORK @@HOME @@TENNISCLUB | ||
| 2452 | #+TAGS: Laptop Car PC Sailboat | ||
| 2453 | @end example | ||
| 2454 | |||
| 2455 | The default method Org-mode uses to support setting tags is completion. | ||
| 2456 | However, it also implements a much better method: @emph{fast tag | ||
| 2457 | selection}. This method allows to select and deselect tags with a | ||
| 2458 | single key per tag. To function efficiently, you need to assign unique | ||
| 2459 | keys to all tags. This can be done globally with | ||
| 2460 | |||
| 2461 | @lisp | ||
| 2462 | (setq org-tag-alist '(("@@WORK" . ?w) ("@@HOME" . ?h) ("Laptop" . ?l))) | ||
| 2463 | @end lisp | ||
| 2464 | |||
| 2465 | @noindent or on a per-file basis with | ||
| 2466 | |||
| 2467 | @example | ||
| 2468 | #+TAGS: @@WORK(w) @@HOME(h) @@TENNISCLUB(t) | ||
| 2469 | #+TAGS: Laptop(l) Car(c) PC(p) Sailboat(s) | ||
| 2470 | @end example | ||
| 2471 | |||
| 2472 | @noindent Don't forget to press @kbd{C-c C-c} with the cursor in one of | ||
| 2473 | these lines to activate any changes. | ||
| 2474 | |||
| 2475 | If selection keys have been configured, pressing @kbd{C-c C-c} will | ||
| 2476 | automatically present you with a special interface, listing inherited | ||
| 2477 | tags, the tags of the current headline, and a list of all legal tags | ||
| 2478 | with corresponding keys. Pressing keys for the tags will add or remove | ||
| 2479 | them from the list of tags in the current line. @key{SPC} clears all | ||
| 2480 | tags for this line, @kbd{RET} accepts the modified set, and @kbd{C-g} | ||
| 2481 | aborts without installing changes. This method lets you assing tags to | ||
| 2482 | a headline with very few keys. With the above setup, you could clear | ||
| 2483 | the current tags and set @samp{@@HOME}, @samp{Laptop} and @samp{PC} tags | ||
| 2484 | with just the following keys: @kbd{C-c C-c @key{SPC} h l p @key{RET}}. | ||
| 2485 | |||
| 2486 | What if you have globally defined your preferred set of tags using the | ||
| 2487 | variable @code{org-tag-alist}, but would like to use a dynamic tag list | ||
| 2488 | in a specific file? Just add and empty TAGS option line to that file: | ||
| 2489 | |||
| 2490 | @example | ||
| 2491 | #+TAGS: | ||
| 2492 | @end example | ||
| 2493 | |||
| 2494 | |||
| 2495 | |||
| 2311 | @node Tag searches, , Setting tags, Tags | 2496 | @node Tag searches, , Setting tags, Tags |
| 2312 | @section Tag searches | 2497 | @section Tag searches |
| 2313 | @cindex tag searches | 2498 | @cindex tag searches |
| @@ -2750,7 +2935,9 @@ Go to the original location of the item and delete other windows. | |||
| 2750 | @item f | 2935 | @item f |
| 2751 | Toggle Follow mode. In Follow mode, as you move the cursor through | 2936 | Toggle Follow mode. In Follow mode, as you move the cursor through |
| 2752 | the agenda buffer, the other window always shows the corresponding | 2937 | the agenda buffer, the other window always shows the corresponding |
| 2753 | location in the org file. | 2938 | location in the org file. The initial setting for this mode in new |
| 2939 | agenda buffers can be set with the variable | ||
| 2940 | @code{org-agenda-start-with-follow-mode}. | ||
| 2754 | 2941 | ||
| 2755 | @kindex l | 2942 | @kindex l |
| 2756 | @item l | 2943 | @item l |
| @@ -2844,6 +3031,14 @@ key for this. | |||
| 2844 | @itemx S-@key{down} | 3031 | @itemx S-@key{down} |
| 2845 | Decrease the priority of the current item. | 3032 | Decrease the priority of the current item. |
| 2846 | 3033 | ||
| 3034 | @kindex C-c C-s | ||
| 3035 | @item C-c C-s | ||
| 3036 | Schedule this item | ||
| 3037 | |||
| 3038 | @kindex C-c C-d | ||
| 3039 | @item C-c C-d | ||
| 3040 | Set a deadline for this item. | ||
| 3041 | |||
| 2847 | @kindex S-@key{right} | 3042 | @kindex S-@key{right} |
| 2848 | @item S-@key{right} | 3043 | @item S-@key{right} |
| 2849 | Change the time stamp associated with the current line by one day into | 3044 | Change the time stamp associated with the current line by one day into |
| @@ -2869,7 +3064,7 @@ on my keyboard. | |||
| 2869 | @item i | 3064 | @item i |
| 2870 | Insert a new entry into the diary. Prompts for the type of entry | 3065 | Insert a new entry into the diary. Prompts for the type of entry |
| 2871 | (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new | 3066 | (day, weekly, monthly, yearly, anniversary, cyclic) and creates a new |
| 2872 | entry in the diary, just like @kbd{i d} etc. would do in the calendar. | 3067 | entry in the diary, just as @kbd{i d} etc. would do in the calendar. |
| 2873 | The date is taken from the cursor position. | 3068 | The date is taken from the cursor position. |
| 2874 | 3069 | ||
| 2875 | @tsubheading{Calendar commands} | 3070 | @tsubheading{Calendar commands} |
| @@ -2917,14 +3112,14 @@ visit org files will not be removed. | |||
| 2917 | 3112 | ||
| 2918 | @end table | 3113 | @end table |
| 2919 | 3114 | ||
| 2920 | @node Exporting, Miscellaneous, Agenda views, Top | 3115 | @node Exporting, Publishing, Agenda views, Top |
| 2921 | @chapter Exporting | 3116 | @chapter Exporting |
| 2922 | @cindex exporting | 3117 | @cindex exporting |
| 2923 | 3118 | ||
| 2924 | Org-mode documents can be exported into a variety of other formats. For | 3119 | Org-mode documents can be exported into a variety of other formats. For |
| 2925 | printing and sharing of notes, ASCII export produces a readable and | 3120 | printing and sharing of notes, ASCII export produces a readable and |
| 2926 | simple version of an Org-mode file. HTML export allows to publish a | 3121 | simple version of an Org-mode file. HTML export allows you to publish a |
| 2927 | notes file on the web, while the XML format provides a solid base for | 3122 | notes file on the web, while the XOXO format provides a solid base for |
| 2928 | exchange with a broad range of other applications. To incorporate | 3123 | exchange with a broad range of other applications. To incorporate |
| 2929 | entries with associated times like deadlines or appointments into a | 3124 | entries with associated times like deadlines or appointments into a |
| 2930 | desktop calendar program like iCal, Org-mode can also produce extracts | 3125 | desktop calendar program like iCal, Org-mode can also produce extracts |
| @@ -2937,7 +3132,7 @@ produced. @xref{Text interpretation}, for more details. | |||
| 2937 | @menu | 3132 | @menu |
| 2938 | * ASCII export:: Exporting to plain ASCII | 3133 | * ASCII export:: Exporting to plain ASCII |
| 2939 | * HTML export:: Exporting to HTML | 3134 | * HTML export:: Exporting to HTML |
| 2940 | * XML export:: Exporting to XML | 3135 | * XOXO export:: Exporting to XOXO |
| 2941 | * iCalendar export:: Exporting in iCalendar format | 3136 | * iCalendar export:: Exporting in iCalendar format |
| 2942 | * Text interpretation:: How the exporter looks at the file | 3137 | * Text interpretation:: How the exporter looks at the file |
| 2943 | @end menu | 3138 | @end menu |
| @@ -2959,6 +3154,9 @@ Export as ASCII file. If there is an active region, only the region | |||
| 2959 | will be exported. For an org file @file{myfile.org}, the ASCII file | 3154 | will be exported. For an org file @file{myfile.org}, the ASCII file |
| 2960 | will be @file{myfile.txt}. The file will be overwritten without | 3155 | will be @file{myfile.txt}. The file will be overwritten without |
| 2961 | warning. | 3156 | warning. |
| 3157 | @kindex C-c C-x v a | ||
| 3158 | @item C-c C-x v a | ||
| 3159 | Export only the visible part of the document. | ||
| 2962 | @end table | 3160 | @end table |
| 2963 | 3161 | ||
| 2964 | @cindex headline levels, for exporting | 3162 | @cindex headline levels, for exporting |
| @@ -2974,7 +3172,7 @@ at a different level, specify it with a prefix argument. For example, | |||
| 2974 | @noindent | 3172 | @noindent |
| 2975 | creates only top level headlines and does the rest as items. | 3173 | creates only top level headlines and does the rest as items. |
| 2976 | 3174 | ||
| 2977 | @node HTML export, XML export, ASCII export, Exporting | 3175 | @node HTML export, XOXO export, ASCII export, Exporting |
| 2978 | @section HTML export | 3176 | @section HTML export |
| 2979 | @cindex HTML export | 3177 | @cindex HTML export |
| 2980 | 3178 | ||
| @@ -2992,6 +3190,11 @@ Export as HTML file @file{myfile.html}. | |||
| 2992 | @kindex C-c C-x b | 3190 | @kindex C-c C-x b |
| 2993 | @item C-c C-x b | 3191 | @item C-c C-x b |
| 2994 | Export as HTML file and open it with a browser. | 3192 | Export as HTML file and open it with a browser. |
| 3193 | @kindex C-c C-x v h | ||
| 3194 | @kindex C-c C-x v b | ||
| 3195 | @item C-c C-x v h | ||
| 3196 | @item C-c C-x v b | ||
| 3197 | Export only the visible part of the document. | ||
| 2995 | @end table | 3198 | @end table |
| 2996 | 3199 | ||
| 2997 | @cindex headline levels, for exporting | 3200 | @cindex headline levels, for exporting |
| @@ -3008,12 +3211,36 @@ at a different level, specify it with a prefix argument. For example, | |||
| 3008 | creates two levels of headings and does the rest as items. | 3211 | creates two levels of headings and does the rest as items. |
| 3009 | 3212 | ||
| 3010 | If you want to include HTML tags which should be interpreted as such, | 3213 | If you want to include HTML tags which should be interpreted as such, |
| 3011 | mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}. | 3214 | mark them with @samp{@@} as in @samp{@@<b>bold text@@</b>}. |
| 3012 | Plain @samp{<} and @samp{>} are always transformed to @samp{<} and | 3215 | Plain @samp{<} and @samp{>} are always transformed to @samp{<} and |
| 3013 | @samp{>} in HTML export. | 3216 | @samp{>} in HTML export. |
| 3014 | 3217 | ||
| 3015 | You can also give style information for the exported file. The | 3218 | @cindex links, in HTML export |
| 3016 | default specification can be configured through the option | 3219 | @cindex internal links, in HTML export |
| 3220 | @cindex external links, in HTML export | ||
| 3221 | Internal links (@pxref{Internal links}) will continue to work in HTML | ||
| 3222 | files only if they match a dedicated @samp{<<target>>}. Automatic links | ||
| 3223 | created by radio targets (@pxref{Radio targets}) will also work in the | ||
| 3224 | HTML file. Links to external files will still work if the HTML file is | ||
| 3225 | in the same directory as the Org-mode file. Links to other @file{.org} | ||
| 3226 | files will be translated into HTML links under the assumption that an | ||
| 3227 | HTML version also exists of the linked file. For information related to | ||
| 3228 | linking files while publishing them to a publishing directory see | ||
| 3229 | @ref{Publishing links}. | ||
| 3230 | |||
| 3231 | You can also give style information for the exported file. The HTML | ||
| 3232 | exporter assigns the following CSS classes to appropriate parts of the | ||
| 3233 | document - your style specifications may change these: | ||
| 3234 | @example | ||
| 3235 | .todo @r{TODO keywords} | ||
| 3236 | .done @r{the DONE keyword} | ||
| 3237 | .timestamp @r{time stamp} | ||
| 3238 | .timestamp-kwd @r{keyword associated with a time stamp, like SCHEDULED} | ||
| 3239 | .tag @r{tag in a headline} | ||
| 3240 | .target @r{target for links} | ||
| 3241 | @end example | ||
| 3242 | |||
| 3243 | The default style specification can be configured through the option | ||
| 3017 | @code{org-export-html-style}. If you want to use a file-local style, | 3244 | @code{org-export-html-style}. If you want to use a file-local style, |
| 3018 | you may use file variables, best wrapped into a COMMENT section at the | 3245 | you may use file variables, best wrapped into a COMMENT section at the |
| 3019 | end of the outline tree. For example: | 3246 | end of the outline tree. For example: |
| @@ -3037,21 +3264,24 @@ section in the buffer. | |||
| 3037 | @c FIXME: More about header and footer styles | 3264 | @c FIXME: More about header and footer styles |
| 3038 | @c FIXME: Talk about links and targets. | 3265 | @c FIXME: Talk about links and targets. |
| 3039 | 3266 | ||
| 3040 | @node XML export, iCalendar export, HTML export, Exporting | 3267 | @node XOXO export, iCalendar export, HTML export, Exporting |
| 3041 | @section XML export | 3268 | @section XOXO export |
| 3042 | @cindex XML export | 3269 | @cindex XOXO export |
| 3043 | 3270 | ||
| 3044 | Org-mode contains an XML exporter that produces XOXO-style XML. | 3271 | Org-mode contains an exporter that produces XOXO-style output. |
| 3045 | Currently, this exporter only handles the general outline structure and | 3272 | Currently, this exporter only handles the general outline structure and |
| 3046 | does not interpret any additional Org-mode features. | 3273 | does not interpret any additional Org-mode features. |
| 3047 | 3274 | ||
| 3048 | @table @kbd | 3275 | @table @kbd |
| 3049 | @kindex C-c C-x C-x | 3276 | @kindex C-c C-x C-x |
| 3050 | @item C-c C-x C-x | 3277 | @item C-c C-x C-x |
| 3051 | Export as XML file @file{myfile.xml}. | 3278 | Export as XOXO file @file{myfile.html}. |
| 3279 | @kindex C-c C-x v | ||
| 3280 | @item C-c C-x v x | ||
| 3281 | Export only the visible part of the document. | ||
| 3052 | @end table | 3282 | @end table |
| 3053 | 3283 | ||
| 3054 | @node iCalendar export, Text interpretation, XML export, Exporting | 3284 | @node iCalendar export, Text interpretation, XOXO export, Exporting |
| 3055 | @section iCalendar export | 3285 | @section iCalendar export |
| 3056 | @cindex iCalendar export | 3286 | @cindex iCalendar export |
| 3057 | 3287 | ||
| @@ -3231,7 +3461,7 @@ you can: | |||
| 3231 | @cindex section-numbers | 3461 | @cindex section-numbers |
| 3232 | @cindex table of contents | 3462 | @cindex table of contents |
| 3233 | @cindex linebreak preservation | 3463 | @cindex linebreak preservation |
| 3234 | @cindex quoted html tags | 3464 | @cindex quoted HTML tags |
| 3235 | @cindex fixed-width sections | 3465 | @cindex fixed-width sections |
| 3236 | @cindex tables | 3466 | @cindex tables |
| 3237 | @cindex @TeX{}-like syntax for sub- and superscripts | 3467 | @cindex @TeX{}-like syntax for sub- and superscripts |
| @@ -3242,7 +3472,7 @@ H: @r{set the number of headline levels for export} | |||
| 3242 | num: @r{turn on/off section-numbers} | 3472 | num: @r{turn on/off section-numbers} |
| 3243 | toc: @r{turn on/off table of contents} | 3473 | toc: @r{turn on/off table of contents} |
| 3244 | \n: @r{turn on/off linebreak-preservation} | 3474 | \n: @r{turn on/off linebreak-preservation} |
| 3245 | @@: @r{turn on/off quoted html tags} | 3475 | @@: @r{turn on/off quoted HTML tags} |
| 3246 | :: @r{turn on/off fixed-width sections} | 3476 | :: @r{turn on/off fixed-width sections} |
| 3247 | |: @r{turn on/off tables} | 3477 | |: @r{turn on/off tables} |
| 3248 | ^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.} | 3478 | ^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.} |
| @@ -3250,7 +3480,313 @@ toc: @r{turn on/off table of contents} | |||
| 3250 | TeX: @r{turn on/off @TeX{} macros} | 3480 | TeX: @r{turn on/off @TeX{} macros} |
| 3251 | @end example | 3481 | @end example |
| 3252 | 3482 | ||
| 3253 | @node Miscellaneous, Index, Exporting, Top | 3483 | @node Publishing, Miscellaneous, Exporting, Top |
| 3484 | @chapter Publishing | ||
| 3485 | |||
| 3486 | Org-mode includes@footnote{@file{org-publish.el} is not yet part of | ||
| 3487 | emacs, so if you are using @file{org.el} as it comes with Emacs, you | ||
| 3488 | need to download this file separately. Also make sure org.el is at | ||
| 3489 | least version 4.27.} a publishing management system | ||
| 3490 | that allows you to configure automatic HTML conversion of | ||
| 3491 | @emph{projects} composed of interlinked org files. This system is | ||
| 3492 | called @emph{org-publish}. You can also configure org-publish to | ||
| 3493 | automatically upload your exported HTML pages and related attachments, | ||
| 3494 | such as images and source code files, to a web server. Org-publish turns | ||
| 3495 | org-mode into a web-site authoring tool. | ||
| 3496 | |||
| 3497 | Org-publish has been contributed to Org-mode by David O'Toole. | ||
| 3498 | |||
| 3499 | @menu | ||
| 3500 | * Configuration:: Defining projects | ||
| 3501 | * Sample configuration:: Example projects | ||
| 3502 | * Triggering publication:: Publication commands | ||
| 3503 | @end menu | ||
| 3504 | |||
| 3505 | @node Configuration, Sample configuration, Publishing, Publishing | ||
| 3506 | @section Configuration | ||
| 3507 | |||
| 3508 | Publishing needs significant configuration to specify files, destination | ||
| 3509 | and many other properties of a project. | ||
| 3510 | |||
| 3511 | @menu | ||
| 3512 | * Project alist:: The central configuration variable | ||
| 3513 | * File sources and destinations:: From here to there | ||
| 3514 | * Selecting files:: What files are part of the project? | ||
| 3515 | * Publishing action:: Setting the function doing the publishing | ||
| 3516 | * Publishing options:: Tweaking HTML export | ||
| 3517 | * Publishing links:: Which links keep working after publishing? | ||
| 3518 | * Project page index:: Publishing a list of project files | ||
| 3519 | @end menu | ||
| 3520 | |||
| 3521 | @node Project alist, File sources and destinations, Configuration, Configuration | ||
| 3522 | @subsection The variable @code{org-publish-project-alist} | ||
| 3523 | |||
| 3524 | Org-publish is configured almost entirely through setting the value of | ||
| 3525 | one variable, called @code{org-publish-project-alist}. | ||
| 3526 | Each element of the list configures one project, and may be in one of | ||
| 3527 | the two following forms: | ||
| 3528 | |||
| 3529 | @lisp | ||
| 3530 | ("project-name" :property value :property value ...) | ||
| 3531 | |||
| 3532 | @r{or} | ||
| 3533 | |||
| 3534 | ("project-name" | ||
| 3535 | ("component1" :property value :property value ...) | ||
| 3536 | ("component2" :property value :property value ...) | ||
| 3537 | ...) | ||
| 3538 | @end lisp | ||
| 3539 | |||
| 3540 | In both cases, projects are configured by specifying property values. | ||
| 3541 | A project defines the set of files that will be published, as well as | ||
| 3542 | the publishing configuration to use when publishing those files. | ||
| 3543 | When a project takes the second form listed above, the individual | ||
| 3544 | property lists are taken to be "components" of the project, which | ||
| 3545 | group together files requiring different publishing options. | ||
| 3546 | |||
| 3547 | @node File sources and destinations, Selecting files, Project alist, Configuration | ||
| 3548 | @subsection Sources and destinations for files | ||
| 3549 | |||
| 3550 | Most properties are optional, but some should always be set. In | ||
| 3551 | particular, org-publish needs to know where to look for source files, | ||
| 3552 | and where to put published files. | ||
| 3553 | |||
| 3554 | @multitable @columnfractions 0.3 0.7 | ||
| 3555 | @item @code{:base-directory} | ||
| 3556 | @tab Directory containing publishing source files | ||
| 3557 | @item @code{:publishing-directory} | ||
| 3558 | @tab Directory (possibly remote) where output files will be published. | ||
| 3559 | @end multitable | ||
| 3560 | @noindent | ||
| 3561 | |||
| 3562 | @node Selecting files, Publishing action, File sources and destinations, Configuration | ||
| 3563 | @subsection Selecting files | ||
| 3564 | |||
| 3565 | By default, all files with extension @file{.org} in the base directory | ||
| 3566 | are considered part of the project. This can be modified by setting the | ||
| 3567 | properties | ||
| 3568 | @multitable @columnfractions 0.25 0.75 | ||
| 3569 | @item @code{:base-extension} | ||
| 3570 | @tab Extension (without the dot!) of source files. This actually is a | ||
| 3571 | regular expression. | ||
| 3572 | |||
| 3573 | @item @code{:exclude} | ||
| 3574 | @tab Regular expression to match file names that should not be | ||
| 3575 | published, even though they have been selected on the basis of their | ||
| 3576 | extension. | ||
| 3577 | |||
| 3578 | @item @code{:include} | ||
| 3579 | @tab List of files to be included regardless of @code{:base-extension} | ||
| 3580 | and @code{:exclude}. | ||
| 3581 | @end multitable | ||
| 3582 | |||
| 3583 | @node Publishing action, Publishing options, Selecting files, Configuration | ||
| 3584 | @subsection Publishing Action | ||
| 3585 | |||
| 3586 | Publishing means that a file is copied to the destination directory and | ||
| 3587 | possibly transformed in the process. The default transformation is to | ||
| 3588 | export Org-mode files as HTML files, and this is done by the function | ||
| 3589 | @code{org-publish-org-to-html} which calls the HTML exporter | ||
| 3590 | (@pxref{HTML export}). Other files like images only need to be copied | ||
| 3591 | to the publishing destination. For non-Org-mode files, you need to | ||
| 3592 | specify the publishing function. | ||
| 3593 | |||
| 3594 | @multitable @columnfractions 0.3 0.7 | ||
| 3595 | @item @code{:publishing-function} | ||
| 3596 | @tab Function executing the publication of a file. | ||
| 3597 | @end multitable | ||
| 3598 | |||
| 3599 | The function must accept two arguments: a property list containing at | ||
| 3600 | least a @code{:publishing-directory} property, and the name of the file | ||
| 3601 | to be published. I should take the specified file, make the necessary | ||
| 3602 | transformation (if any) and place the result into the destination folder. | ||
| 3603 | You can write your own publishing function, but @code{org-publish} | ||
| 3604 | provides one for attachments (files that only need to be copied): | ||
| 3605 | @code{org-publish-attachment}. | ||
| 3606 | |||
| 3607 | @node Publishing options, Publishing links, Publishing action, Configuration | ||
| 3608 | @subsection Options for the HTML exporter | ||
| 3609 | |||
| 3610 | The property list can be used to set many export options for the HTML | ||
| 3611 | exporter. In most cases, these properties correspond to user variables | ||
| 3612 | in Org-mode. The table below lists these properties along with the | ||
| 3613 | variable they belong to. See the documentation string for the | ||
| 3614 | respective variable for details. | ||
| 3615 | |||
| 3616 | @multitable @columnfractions 0.3 0.7 | ||
| 3617 | @item @code{:language} @tab @code{org-export-default-language} | ||
| 3618 | @item @code{:headline-levels} @tab @code{org-export-headline-levels} | ||
| 3619 | @item @code{:section-numbers} @tab @code{org-export-with-section-numbers} | ||
| 3620 | @item @code{:table-of-contents} @tab @code{org-export-with-toc} | ||
| 3621 | @item @code{:emphasize} @tab @code{org-export-with-emphasize} | ||
| 3622 | @item @code{:sub-superscript} @tab @code{org-export-with-sub-superscripts} | ||
| 3623 | @item @code{:TeX-macros} @tab @code{org-export-with-TeX-macros} | ||
| 3624 | @item @code{:fixed-width} @tab @code{org-export-with-fixed-width} | ||
| 3625 | @item @code{:timestamps} .@tab @code{org-export-with-timestamps} | ||
| 3626 | @item @code{:tags} .@tab @code{org-export-with-tags} | ||
| 3627 | @item @code{:tables} @tab @code{org-export-with-tables} | ||
| 3628 | @item @code{:table-auto-headline} @tab @code{org-export-highlight-first-table-line} | ||
| 3629 | @item @code{:style} @tab @code{org-export-html-style} | ||
| 3630 | @item @code{:convert-org-links} @tab @code{org-export-html-link-org-files-as-html} | ||
| 3631 | @item @code{:inline-images} @tab @code{org-export-html-inline-images} | ||
| 3632 | @item @code{:expand-quoted-html} @tab @code{org-export-html-expand} | ||
| 3633 | @item @code{:timestamp} @tab @code{org-export-html-with-timestamp} | ||
| 3634 | @item @code{:publishing-directory} @tab @code{org-export-publishing-directory} | ||
| 3635 | @item @code{:preamble} @tab @code{org-export-html-preamble} | ||
| 3636 | @item @code{:postamble} @tab @code{org-export-html-postamble} | ||
| 3637 | @item @code{:auto-preamble} @tab @code{org-export-html-auto-preamble} | ||
| 3638 | @item @code{:auto-postamble} @tab @code{org-export-html-auto-postamble} | ||
| 3639 | @item @code{:author} @tab @code{user-full-name} | ||
| 3640 | @item @code{:email} @tab @code{user-mail-address} | ||
| 3641 | @end multitable | ||
| 3642 | |||
| 3643 | When a property is given a value in org-publish-project-alist, its | ||
| 3644 | setting overrides the value of the corresponding user variable (if any) | ||
| 3645 | during publishing. options set within a file (@pxref{Export | ||
| 3646 | options}), however, override everything. | ||
| 3647 | |||
| 3648 | @node Publishing links, Project page index, Publishing options, Configuration | ||
| 3649 | @subsection Links between published files | ||
| 3650 | |||
| 3651 | To create a link from one Org-mode file to another, you would use | ||
| 3652 | something like @samp{[[file:foo.org][The foo]]} or simply | ||
| 3653 | @samp{file:foo.org.} (@pxref{Hyperlinks}). Upon publishing this link | ||
| 3654 | becomes a link to @file{foo.html}. In this way, you can interlink the | ||
| 3655 | pages of your "org web" project and the links will work as expected when | ||
| 3656 | you publish them to HTML. | ||
| 3657 | |||
| 3658 | You may also link to related files, such as images. Provided you are | ||
| 3659 | careful with relative pathnames, and provided you have also configured | ||
| 3660 | org-publish to upload the related files, these links will work | ||
| 3661 | too. @ref{Complex example} for an example of this usage. | ||
| 3662 | |||
| 3663 | @node Project page index, , Publishing links, Configuration | ||
| 3664 | @subsection Project page index | ||
| 3665 | |||
| 3666 | The following properties may be used to control publishing of an | ||
| 3667 | index of files or summary page for a given project. | ||
| 3668 | |||
| 3669 | @multitable @columnfractions 0.25 0.75 | ||
| 3670 | @item @code{:auto-index} | ||
| 3671 | @tab When non-nil, publish an index during org-publish-current-project or | ||
| 3672 | org-publish-all. | ||
| 3673 | |||
| 3674 | @item @code{:index-filename} | ||
| 3675 | @tab Filename for output of index. Defaults to @file{index.org} (which | ||
| 3676 | becomes @file{index.html}). | ||
| 3677 | |||
| 3678 | @item @code{:index-title} | ||
| 3679 | @tab Title of index page. Defaults to name of file. | ||
| 3680 | |||
| 3681 | @item @code{:index-function} | ||
| 3682 | @tab Plugin function to use for generation of index. | ||
| 3683 | Defaults to @code{org-publish-org-index}, which generates a plain list | ||
| 3684 | of links to all files in the project. | ||
| 3685 | @end multitable | ||
| 3686 | |||
| 3687 | @node Sample configuration, Triggering publication, Configuration, Publishing | ||
| 3688 | @section Sample configuration | ||
| 3689 | |||
| 3690 | Below we provide two example configurations. The first one is a simple | ||
| 3691 | project publishing only a set of Org-mode files. The second example is | ||
| 3692 | more complex, with a multi-component project. | ||
| 3693 | |||
| 3694 | @menu | ||
| 3695 | * Simple example:: One-component publishing | ||
| 3696 | * Complex example:: A multi-component publishing example | ||
| 3697 | @end menu | ||
| 3698 | |||
| 3699 | @node Simple example, Complex example, Sample configuration, Sample configuration | ||
| 3700 | @subsection Example: simple publishing configuration | ||
| 3701 | |||
| 3702 | This example publishes a set of Org-mode files to the @file{public_html} | ||
| 3703 | directory on the local machine. | ||
| 3704 | |||
| 3705 | @lisp | ||
| 3706 | (setq org-publish-project-alist | ||
| 3707 | '(("org" | ||
| 3708 | :base-directory "~/org/" | ||
| 3709 | :publishing-directory "~/public_html" | ||
| 3710 | :section-numbers nil | ||
| 3711 | :table-of-contents nil | ||
| 3712 | :style "<link rel=stylesheet | ||
| 3713 | href=\"../other/mystyle.css\" | ||
| 3714 | type=\"text/css\">"))) | ||
| 3715 | @end lisp | ||
| 3716 | |||
| 3717 | @node Complex example, , Simple example, Sample configuration | ||
| 3718 | @subsection Example: complex publishing configuration | ||
| 3719 | |||
| 3720 | This more complicated example publishes an entire website, including | ||
| 3721 | org files converted to HTML, image files, emacs lisp source code, and | ||
| 3722 | stylesheets. The publishing-directory is remote and private files are | ||
| 3723 | excluded. | ||
| 3724 | |||
| 3725 | To ensure that links are preserved, care should be taken to replicate | ||
| 3726 | your directory structure on the web server, and to use relative file | ||
| 3727 | paths. For example, if your org files are kept in @file{~/org} and your | ||
| 3728 | publishable images in @file{~/images}, you'd link to an image with | ||
| 3729 | @c | ||
| 3730 | @example | ||
| 3731 | file:../images/myimage.png | ||
| 3732 | @end example | ||
| 3733 | @c | ||
| 3734 | On the web server, the relative path to the image should be the | ||
| 3735 | same. You can accomplish this by setting up an "images" folder in the | ||
| 3736 | right place on the webserver, and publishing images to it. | ||
| 3737 | |||
| 3738 | @lisp | ||
| 3739 | (setq org-publish-project-alist | ||
| 3740 | '(("website" | ||
| 3741 | ("orgfiles" | ||
| 3742 | :base-directory "~/org/" | ||
| 3743 | :base-extension "org" | ||
| 3744 | :publishing-directory "/ssh:user@@host:~/html/notebook/" | ||
| 3745 | :publishing-function org-publish-org-to-html | ||
| 3746 | :exclude "PrivatePage.org" ;; regexp | ||
| 3747 | :headline-levels 3 | ||
| 3748 | :section-numbers nil | ||
| 3749 | :table-of-contents nil | ||
| 3750 | :style "<link rel=stylesheet | ||
| 3751 | href=\"../other/mystyle.css\" type=\"text/css\">" | ||
| 3752 | :auto-preamble t | ||
| 3753 | :auto-postamble nil) | ||
| 3754 | |||
| 3755 | ("images" | ||
| 3756 | :base-directory "~/images/" | ||
| 3757 | :base-extension "jpg\\|gif\\|png" | ||
| 3758 | :publishing-directory "/ssh:user@@host:~/html/images/" | ||
| 3759 | :publishing-function org-publish-attachment) | ||
| 3760 | |||
| 3761 | ("other" | ||
| 3762 | :base-directory "~/other/" | ||
| 3763 | :base-extension "css\\|el" | ||
| 3764 | :publishing-directory "/ssh:user@@host:~/html/other/" | ||
| 3765 | :publishing-function org-publish-attachment)))) | ||
| 3766 | @end lisp | ||
| 3767 | |||
| 3768 | @node Triggering publication, , Sample configuration, Publishing | ||
| 3769 | @section Triggering publication | ||
| 3770 | |||
| 3771 | Once org-publish is properly configured, you can publish with the | ||
| 3772 | following functions: | ||
| 3773 | |||
| 3774 | @table @kbd | ||
| 3775 | @item C-c C-e c | ||
| 3776 | Prompts for a specific project to publish. | ||
| 3777 | @item C-c C-e p | ||
| 3778 | Publishes the project the current file is part of. | ||
| 3779 | @item C-c C-e f | ||
| 3780 | Publishes only the current file. | ||
| 3781 | @item C-c C-e a | ||
| 3782 | Publish all projects. | ||
| 3783 | @end table | ||
| 3784 | |||
| 3785 | Org uses timestamps to track when a file has changed. The above | ||
| 3786 | functions normally only publish changed files. You can override this and | ||
| 3787 | force publishing of all files by giving a prefix argument. | ||
| 3788 | |||
| 3789 | @node Miscellaneous, Index, Publishing, Top | ||
| 3254 | @chapter Miscellaneous | 3790 | @chapter Miscellaneous |
| 3255 | 3791 | ||
| 3256 | @menu | 3792 | @menu |
| @@ -3359,6 +3895,12 @@ variable is @code{org-startup-align-all-tables}, with a default value | |||
| 3359 | align @r{align all tables} | 3895 | align @r{align all tables} |
| 3360 | noalign @r{don't align tables on startup} | 3896 | noalign @r{don't align tables on startup} |
| 3361 | @end example | 3897 | @end example |
| 3898 | Logging when a TODO item is marked DONE (variable @code{org-log-done}) | ||
| 3899 | can be configured using these options. | ||
| 3900 | @example | ||
| 3901 | logging @r{record a timestamp when an item is marked DONE} | ||
| 3902 | nologging @r{don't record when items are marked DONE} | ||
| 3903 | @end example | ||
| 3362 | Here are the options for hiding leading stars in outline headings. The | 3904 | Here are the options for hiding leading stars in outline headings. The |
| 3363 | corresponding variables are @code{org-hide-leading-stars} and | 3905 | corresponding variables are @code{org-hide-leading-stars} and |
| 3364 | @code{org-odd-levels-only}, both with a default setting @code{nil} | 3906 | @code{org-odd-levels-only}, both with a default setting @code{nil} |
| @@ -3373,6 +3915,10 @@ oddeven @r{allow all outline levels} | |||
| 3373 | These lines that the TODO keywords and their interpretation in the | 3915 | These lines that the TODO keywords and their interpretation in the |
| 3374 | current file. The corresponding variables are @code{org-todo-keywords} | 3916 | current file. The corresponding variables are @code{org-todo-keywords} |
| 3375 | and @code{org-todo-interpretation}. | 3917 | and @code{org-todo-interpretation}. |
| 3918 | @item #+TAGS: TAG1(c1) TAG2(c2) | ||
| 3919 | These lines (several such lines are allowed) specify the legal tags in | ||
| 3920 | this file, and (potionally) the corresponding @emph{fast tag selection} | ||
| 3921 | keys. The corresponding variable is @code{org-tag-alist}. | ||
| 3376 | @item #+CATEGORY: | 3922 | @item #+CATEGORY: |
| 3377 | This line sets the category for the agenda file. The category applies | 3923 | This line sets the category for the agenda file. The category applies |
| 3378 | for all subsequent lines until the next @samp{#+CATEGORY} line, or the | 3924 | for all subsequent lines until the next @samp{#+CATEGORY} line, or the |
| @@ -3392,7 +3938,7 @@ The key @kbd{C-c C-c} has many purposes in org-mode, which are all | |||
| 3392 | mentioned scattered throughout this manual. One specific function of | 3938 | mentioned scattered throughout this manual. One specific function of |
| 3393 | this key is to add @emph{tags} to a headline (@pxref{Tags}). In many | 3939 | this key is to add @emph{tags} to a headline (@pxref{Tags}). In many |
| 3394 | other circumstances it means something like @emph{Hey Org-mode, look | 3940 | other circumstances it means something like @emph{Hey Org-mode, look |
| 3395 | here and update according to what you see here}. Here is a summary what | 3941 | here and update according to what you see here}. Here is a summary of what |
| 3396 | this means in different contexts. | 3942 | this means in different contexts. |
| 3397 | 3943 | ||
| 3398 | @itemize @minus | 3944 | @itemize @minus |
| @@ -3401,14 +3947,14 @@ this means in different contexts. | |||
| 3401 | @c into the current line, aligned to `org-tags-column'. When called | 3947 | @c into the current line, aligned to `org-tags-column'. When called |
| 3402 | @c with prefix arg, realign all tags in the current buffer. | 3948 | @c with prefix arg, realign all tags in the current buffer. |
| 3403 | @item | 3949 | @item |
| 3404 | If the cursor is in one of the special #+KEYWORD lines, this | 3950 | If the cursor is in one of the special @code{#+KEYWORD} lines, this |
| 3405 | triggers scanning the buffer for these lines and updating the | 3951 | triggers scanning the buffer for these lines and updating the |
| 3406 | information. | 3952 | information. |
| 3407 | @item | 3953 | @item |
| 3408 | If the cursor is inside a table, realign the table. This command | 3954 | If the cursor is inside a table, realign the table. This command |
| 3409 | works even if the automatic table editor has been turned off. | 3955 | works even if the automatic table editor has been turned off. |
| 3410 | @item | 3956 | @item |
| 3411 | If the cursor is on a #+TBLFM line, re-apply the formulas to | 3957 | If the cursor is on a @code{#+TBLFM} line, re-apply the formulas to |
| 3412 | the entire table. | 3958 | the entire table. |
| 3413 | @item | 3959 | @item |
| 3414 | If the cursor is inside a table created by the @file{table.el} package, | 3960 | If the cursor is inside a table created by the @file{table.el} package, |
| @@ -3418,8 +3964,11 @@ If the current buffer is a remember buffer, close note and file it. | |||
| 3418 | with a prefix argument, file it without further interaction to the default | 3964 | with a prefix argument, file it without further interaction to the default |
| 3419 | location. | 3965 | location. |
| 3420 | @item | 3966 | @item |
| 3421 | If the cursor is on a <<<target>>>, update radio targets and corresponding | 3967 | If the cursor is on a @code{<<<target>>>}, update radio targets and |
| 3422 | links in this buffer. | 3968 | corresponding links in this buffer. |
| 3969 | @item | ||
| 3970 | If the cursor is in a plain list item with a checkbox, toggle the status | ||
| 3971 | of the checkbox. | ||
| 3423 | @item | 3972 | @item |
| 3424 | If the cursor is on a numbered item in a plain list, renumber the | 3973 | If the cursor is on a numbered item in a plain list, renumber the |
| 3425 | ordered list. | 3974 | ordered list. |
| @@ -3568,27 +4117,50 @@ rather use @kbd{C-c .} to re-insert the timestamp. | |||
| 3568 | @cindex FAQ | 4117 | @cindex FAQ |
| 3569 | 4118 | ||
| 3570 | @enumerate | 4119 | @enumerate |
| 3571 | |||
| 3572 | @cindex allout.el, conflict with | ||
| 3573 | @cindex @code{keymapp nil} error | 4120 | @cindex @code{keymapp nil} error |
| 3574 | @item @b{When I try to use Org-mode, I always get | 4121 | @item @b{When I try to use Org-mode, I always get |
| 3575 | @code{(wrong-type-argument keymapp nil)}}.@* | 4122 | @code{(wrong-type-argument keymapp nil)}}.@* |
| 3576 | This is a conflict with an outdated version of the @file{allout.el} | 4123 | @cindex allout.el, conflict with |
| 3577 | package which pretends to be also the standard outline-mode but is not. | 4124 | This is a conflict with an outdated version of the @file{allout.el}. |
| 3578 | This happens with older versions of @file{allout.el}, for example the | 4125 | See @ref{Conflicts}. |
| 3579 | one distributed with Emacs 21. Upgrade to Emacs 22 and this problem | ||
| 3580 | will disappear. If for some reason you cannot do this, make sure that | ||
| 3581 | org.el is loaded @emph{before} @file{allout.el}, for example by putting | ||
| 3582 | @code{(require 'org)} early enough into your @file{.emacs} file. | ||
| 3583 | 4126 | ||
| 3584 | @item @b{Org-mode seems to be a useful default mode for the various | 4127 | @item @b{Org-mode seems to be a useful default mode for the various |
| 3585 | @file{README} files I have scattered through my directories. How do I | 4128 | @file{README} files I have scattered through my directories. How do I |
| 3586 | turn it on for all @file{README} files?} | 4129 | turn it on for all @file{README} files?} |
| 3587 | @c @* | ||
| 3588 | 4130 | ||
| 3589 | @example | 4131 | @lisp |
| 3590 | (add-to-list 'auto-mode-alist '("README$" . org-mode)) | 4132 | (add-to-list 'auto-mode-alist '("README$" . org-mode)) |
| 3591 | @end example | 4133 | @end lisp |
| 4134 | |||
| 4135 | @item @b{I would like to use editing features of org-mode in other | ||
| 4136 | modes, is his possible?}@* | ||
| 4137 | @c | ||
| 4138 | Not really. For tables there is @code{orgtbl-mode} which implements the | ||
| 4139 | table editor as a minor mode. For other features you need to switch to | ||
| 4140 | Org-mode temporarily, or prepare text in a different buffer. | ||
| 4141 | |||
| 4142 | @item @b{Can I get the visibility-cycling features in outline-mode and | ||
| 4143 | outline-minor-mode?}@* | ||
| 4144 | @c | ||
| 4145 | Yes, these functions are written in a way that they are independent of | ||
| 4146 | the outline setup. The following setup provides standard Org-mode | ||
| 4147 | functionality in outline-mode on @key{TAB} and @kbd{S-@key{TAB}}. For | ||
| 4148 | outline-minor-mode, we use @kbd{C-@key{TAB}} instead of @key{TAB}, | ||
| 4149 | because @key{TAB} usually has mode-specific tasks. | ||
| 4150 | @lisp | ||
| 4151 | (add-hook 'outline-minor-mode-hook | ||
| 4152 | (lambda () | ||
| 4153 | (define-key outline-minor-mode-map [(control tab)] 'org-cycle) | ||
| 4154 | (define-key outline-minor-mode-map [(shift tab)] 'org-global-cycle))) | ||
| 4155 | (add-hook 'outline-mode-hook | ||
| 4156 | (lambda () | ||
| 4157 | (define-key outline-mode-map [(tab)] 'org-cycle) | ||
| 4158 | (define-key outline-mode-map [(shift tab)] 'org-global-cycle))) | ||
| 4159 | @end lisp | ||
| 4160 | |||
| 4161 | Or check out @file{outline-magic.el}, which does this and also provides | ||
| 4162 | promotion and demotion functionality. @file{outline-magic.el} is | ||
| 4163 | available at @url{http://www.astro.uva.nl/~dominik/Tools/OutlineMagic}. | ||
| 3592 | 4164 | ||
| 3593 | @item @b{Some of my links stopped working after I upgraded to a version | 4165 | @item @b{Some of my links stopped working after I upgraded to a version |
| 3594 | 4.20 or later. Why is this, and how can I fix it?}@* | 4166 | 4.20 or later. Why is this, and how can I fix it?}@* |
| @@ -3617,8 +4189,8 @@ Would I let you down like that? If you must, you can do this | |||
| 3617 | org-link-format "<%s>") | 4189 | org-link-format "<%s>") |
| 3618 | @end lisp | 4190 | @end lisp |
| 3619 | 4191 | ||
| 3620 | @item @b{When I am executing shell links I always get a | 4192 | @item @b{When I am executing shell/elisp links I always get a |
| 3621 | confirmation prompt and need to type @kbd{yes @key{RET}}, thats 4 key | 4193 | confirmation prompt and need to type @kbd{yes @key{RET}}, that's 4 key |
| 3622 | presses! Can I get rid of this?}@* | 4194 | presses! Can I get rid of this?}@* |
| 3623 | @c | 4195 | @c |
| 3624 | @cindex shell links, confirmation | 4196 | @cindex shell links, confirmation |
| @@ -3628,10 +4200,11 @@ potentially dangerous commands. For example, imagine a link | |||
| 3628 | @samp{[[shell:rm -rf ~/*][Google Search]]}. In an Org-mode buffer, this | 4200 | @samp{[[shell:rm -rf ~/*][Google Search]]}. In an Org-mode buffer, this |
| 3629 | command would look like @samp{Google Search}, but really it would remove | 4201 | command would look like @samp{Google Search}, but really it would remove |
| 3630 | your home directory. If you wish, you can make it easier to respond to | 4202 | your home directory. If you wish, you can make it easier to respond to |
| 3631 | the query by setting @code{org-confirm-shell-links} to @code{y-or-n-p}. | 4203 | the query by setting @code{org-confirm-shell-link-function} and/or |
| 3632 | Then a single @kbd{y} keypress will be enough to confirm shell links. | 4204 | @code{org-confirm-elisp-link-function} to @code{y-or-n-p}. Then a |
| 3633 | It is also possible to turn off this check entirely, but I do not | 4205 | single @kbd{y} keypress will be enough to confirm those links. It is |
| 3634 | recommend to do this. Be warned. | 4206 | also possible to turn off this check entirely, but I do not recommend to |
| 4207 | do this. Be warned. | ||
| 3635 | 4208 | ||
| 3636 | @item @b{All these stars are driving me mad, I just find the Emacs | 4209 | @item @b{All these stars are driving me mad, I just find the Emacs |
| 3637 | outlines unreadable. Can't you just put white space and a single star as a | 4210 | outlines unreadable. Can't you just put white space and a single star as a |
| @@ -3681,7 +4254,7 @@ export. Marking can be done with @kbd{C-c @@ C-x C-x}, for example. | |||
| 3681 | 4254 | ||
| 3682 | @item @b{Org-mode takes over the S-cursor keys. I also want to use | 4255 | @item @b{Org-mode takes over the S-cursor keys. I also want to use |
| 3683 | CUA-mode, is there a way to fix this conflict?}@* | 4256 | CUA-mode, is there a way to fix this conflict?}@* |
| 3684 | Yes, see @ref{Interaction}. | 4257 | Yes, see @ref{Conflicts}. |
| 3685 | 4258 | ||
| 3686 | @item @b{One of my table columns has started to fill up with | 4259 | @item @b{One of my table columns has started to fill up with |
| 3687 | @samp{#ERROR}. What is going on?}@* | 4260 | @samp{#ERROR}. What is going on?}@* |
| @@ -3712,10 +4285,8 @@ emacs diary?}@* | |||
| 3712 | Since the org-mode agenda is much more powerful and can contain the | 4285 | Since the org-mode agenda is much more powerful and can contain the |
| 3713 | diary (@pxref{Calendar/Diary integration}), you should think twice | 4286 | diary (@pxref{Calendar/Diary integration}), you should think twice |
| 3714 | before deciding to do this. Integrating Org-mode information into the | 4287 | before deciding to do this. Integrating Org-mode information into the |
| 3715 | diary is, however, possible. The following steps are necessary: | 4288 | diary is, however, possible. You need to turn on @emph{fancy diary |
| 3716 | Autoload the function @command{org-diary} as shown above under | 4289 | display} by setting in @file{.emacs}: |
| 3717 | @ref{Installation and activation}. You also need to use @emph{fancy | ||
| 3718 | diary display} by setting in @file{.emacs}: | ||
| 3719 | 4290 | ||
| 3720 | @lisp | 4291 | @lisp |
| 3721 | (add-hook 'diary-display-hook 'fancy-diary-display) | 4292 | (add-hook 'diary-display-hook 'fancy-diary-display) |
| @@ -3738,7 +4309,7 @@ You may also select specific files with | |||
| 3738 | 4309 | ||
| 3739 | If you now launch the calendar and press @kbd{d} to display a diary, the | 4310 | If you now launch the calendar and press @kbd{d} to display a diary, the |
| 3740 | headlines of entries containing a timestamp, date range, schedule, or | 4311 | headlines of entries containing a timestamp, date range, schedule, or |
| 3741 | deadline referring to the selected date will be listed. Just like in | 4312 | deadline referring to the selected date will be listed. Just like |
| 3742 | Org-mode's agenda view, the diary for @emph{today} contains additional | 4313 | Org-mode's agenda view, the diary for @emph{today} contains additional |
| 3743 | entries for overdue deadlines and scheduled items. See also the | 4314 | entries for overdue deadlines and scheduled items. See also the |
| 3744 | documentation of the @command{org-diary} function. Under XEmacs, it is | 4315 | documentation of the @command{org-diary} function. Under XEmacs, it is |
| @@ -3751,20 +4322,50 @@ the agenda buffer. | |||
| 3751 | @node Interaction, Bugs, FAQ, Miscellaneous | 4322 | @node Interaction, Bugs, FAQ, Miscellaneous |
| 3752 | @section Interaction with other packages | 4323 | @section Interaction with other packages |
| 3753 | @cindex packages, interaction with other | 4324 | @cindex packages, interaction with other |
| 3754 | Org-mode can cooperate with the following packages: | 4325 | Org-mode lives in the world of GNU Emacs and interacts in various ways |
| 4326 | with other code out there. | ||
| 4327 | |||
| 4328 | @menu | ||
| 4329 | * Extensions:: Third-party extensions for Org-mode | ||
| 4330 | * Cooperation:: Packages Org-mode cooperates with | ||
| 4331 | * Conflicts:: Packages that lead to conflicts | ||
| 4332 | @end menu | ||
| 4333 | |||
| 4334 | @node Extensions, Cooperation, Interaction, Interaction | ||
| 4335 | @subsection Third-party extensions for Org-mode | ||
| 4336 | |||
| 4337 | The following extensions for Org-mode have been written by other people: | ||
| 3755 | 4338 | ||
| 3756 | @table @asis | 4339 | @table @asis |
| 4340 | @cindex @file{org-checklet.el} | ||
| 4341 | @item @file{org-checklet.el} by Frank Ruell | ||
| 4342 | Provides checklist of items which can be either checked or unchecked. | ||
| 4343 | This is similar to the TODO functionality in Org-mode, but never shows | ||
| 4344 | up in the agenda. @file{org-checklet} is freely available at | ||
| 4345 | @url{http://www.emacswiki.org/cgi-bin/emacs/org-checklet.el}. | ||
| 3757 | @cindex @file{org-mouse.el} | 4346 | @cindex @file{org-mouse.el} |
| 3758 | @item @file{org-mouse.el} by Piotr Zielinski | 4347 | @item @file{org-mouse.el} by Piotr Zielinski |
| 3759 | This package implements extended mouse functionality for Org-mode. It | 4348 | This package implements extended mouse functionality for Org-mode. It |
| 3760 | allows you to cycle visibility and to edit the document structure with | 4349 | allows you to cycle visibility and to edit the document structure with |
| 3761 | the mouse. Best of all, it provides a context-sensitive menu on | 4350 | the mouse. Best of all, it provides a context-sensitive menu on |
| 3762 | @key{mouse-3} that changes depending on the context of a mouse-click. | 4351 | @key{mouse-3} that changes depending on the context of a mouse-click. |
| 3763 | Use a search engine to find this package on the web. | 4352 | @file{org-mouse.el} is freely available at @url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}. |
| 3764 | @cindex @file{table.el} | 4353 | @cindex @file{org-publish.el} |
| 3765 | @item @file{table.el} by Takaaki Ota | 4354 | @item @file{org-publish.el} by David O'Toole |
| 3766 | Org mode cooperates with table.el, see @ref{table.el}. @file{table.el} | 4355 | This package provides facilities for publishing related sets of Org-mode |
| 3767 | is part of Emacs 22. | 4356 | files together with linked files like images as a webpages. It is |
| 4357 | highly configurable and can be used for other publishing purposes as | ||
| 4358 | well. As of Org-mode version 4.30, @file{org-publish.el} is part of | ||
| 4359 | the Org-mode distribution. It is not yet part of Emacs, however, due to | ||
| 4360 | a pending copyright assignment. In the mean time, @file{org-publish.el} | ||
| 4361 | can be downloaded from David's site: | ||
| 4362 | @url{http://dto.freeshell.org/e/org-publish.el}. | ||
| 4363 | @end table | ||
| 4364 | |||
| 4365 | @node Cooperation, Conflicts, Extensions, Interaction | ||
| 4366 | @subsection Packages that Org-mode cooperates with | ||
| 4367 | |||
| 4368 | @table @asis | ||
| 3768 | @cindex @file{calc.el} | 4369 | @cindex @file{calc.el} |
| 3769 | @item @file{calc.el} by Dave Gillespie | 4370 | @item @file{calc.el} by Dave Gillespie |
| 3770 | Org-mode uses the calc package for implementing spreadsheet | 4371 | Org-mode uses the calc package for implementing spreadsheet |
| @@ -3787,7 +4388,31 @@ at @url{http://www.astro.uva.nl/~dominik/Tools}. Org-mode checks for | |||
| 3787 | the function @code{constants-get}, which has to be autoloaded in your | 4388 | the function @code{constants-get}, which has to be autoloaded in your |
| 3788 | setup. See the installation instructions in the file | 4389 | setup. See the installation instructions in the file |
| 3789 | @file{constants.el}. | 4390 | @file{constants.el}. |
| 4391 | @item @file{remember.el} by John Wiegley | ||
| 3790 | @cindex @file{remember.el} | 4392 | @cindex @file{remember.el} |
| 4393 | Org mode cooperates with remember, see @ref{Remember}. | ||
| 4394 | @file{Remember.el} is not part of Emacs, find it on the web. | ||
| 4395 | @cindex @file{table.el} | ||
| 4396 | @item @file{table.el} by Takaaki Ota | ||
| 4397 | Org mode cooperates with table.el, see @ref{table.el}. @file{table.el} | ||
| 4398 | is part of Emacs 22. | ||
| 4399 | @end table | ||
| 4400 | |||
| 4401 | @node Conflicts, , Cooperation, Interaction | ||
| 4402 | @subsection Packages that lead to conflicts with Org-mode | ||
| 4403 | |||
| 4404 | @table @asis | ||
| 4405 | |||
| 4406 | @cindex @file{allout.el} | ||
| 4407 | @item @file{allout.el} by Ken Manheimer | ||
| 4408 | Startup of Org-mode may fail with the error message | ||
| 4409 | @code{(wrong-type-argument keymapp nil)} when there is an outdated | ||
| 4410 | version @file{allout.el} on the load path, for example the version | ||
| 4411 | distributed with Emacs 21.x. Upgrade to Emacs 22 and this problem will | ||
| 4412 | disappear. If for some reason you cannot do this, make sure that org.el | ||
| 4413 | is loaded @emph{before} @file{allout.el}, for example by putting | ||
| 4414 | @code{(require 'org)} early enough into your @file{.emacs} file. | ||
| 4415 | |||
| 3791 | @cindex @file{CUA.el} | 4416 | @cindex @file{CUA.el} |
| 3792 | @item @file{CUA.el} by Kim. F. Storm | 4417 | @item @file{CUA.el} by Kim. F. Storm |
| 3793 | Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys | 4418 | Keybindings in Org-mode conflict with the @kbd{S-<cursor>} keys |
| @@ -3807,11 +4432,13 @@ S-RET -> C-S-RET | |||
| 3807 | Yes, these are unfortunately more difficult to remember. If you want | 4432 | Yes, these are unfortunately more difficult to remember. If you want |
| 3808 | to have other replacement keys, look at the variable | 4433 | to have other replacement keys, look at the variable |
| 3809 | @code{org-disputed-keys}. | 4434 | @code{org-disputed-keys}. |
| 3810 | @item @file{remember.el} by John Wiegley | 4435 | @item @file{windmove.el} by Hovav Shacham |
| 3811 | Org mode cooperates with remember, see @ref{Remember}. | 4436 | @cindex @file{windmove.el} |
| 3812 | @file{Remember.el} is not part of Emacs, find it on the web. | 4437 | Also this package uses the @kbd{S-<cursor>} keys, so everything written |
| 4438 | in the paragraph above about CUA mode also applies here. | ||
| 3813 | @end table | 4439 | @end table |
| 3814 | 4440 | ||
| 4441 | |||
| 3815 | @node Bugs, Acknowledgments, Interaction, Miscellaneous | 4442 | @node Bugs, Acknowledgments, Interaction, Miscellaneous |
| 3816 | @section Bugs | 4443 | @section Bugs |
| 3817 | @cindex bugs | 4444 | @cindex bugs |
| @@ -3835,7 +4462,7 @@ Text in an entry protected with the @samp{QUOTE} keyword should not | |||
| 3835 | autowrap. | 4462 | autowrap. |
| 3836 | @item | 4463 | @item |
| 3837 | When the application called by @kbd{C-c C-o} to open a file link fails | 4464 | When the application called by @kbd{C-c C-o} to open a file link fails |
| 3838 | (for example because the application does not exits or refuses to open | 4465 | (for example because the application does not exist or refuses to open |
| 3839 | the file), it does so silently. No error message is displayed. | 4466 | the file), it does so silently. No error message is displayed. |
| 3840 | @item | 4467 | @item |
| 3841 | Plain list items should be able to hold a TODO item. Unfortunately this | 4468 | Plain list items should be able to hold a TODO item. Unfortunately this |
| @@ -3851,9 +4478,8 @@ Recalculating a table line applies the formulas from left to right. | |||
| 3851 | If a formula uses @emph{calculated} fields further down the row, | 4478 | If a formula uses @emph{calculated} fields further down the row, |
| 3852 | multiple recalculation may be needed to get all fields consistent. | 4479 | multiple recalculation may be needed to get all fields consistent. |
| 3853 | @item | 4480 | @item |
| 3854 | You can only make a single word boldface or italic. To emphasize | 4481 | Several words in a row may @b{*be made bold*}, but this does not work if |
| 3855 | several words in a row, each must have the emphasize markers, like in | 4482 | the string is distributed over two lines. |
| 3856 | @samp{*three* *bold* *words*}. | ||
| 3857 | @item | 4483 | @item |
| 3858 | The exporters work well, but could be made more efficient. | 4484 | The exporters work well, but could be made more efficient. |
| 3859 | @end itemize | 4485 | @end itemize |
| @@ -3881,6 +4507,9 @@ Remember. | |||
| 3881 | Pavel Chalmoviansky influenced the agenda treatment of items with | 4507 | Pavel Chalmoviansky influenced the agenda treatment of items with |
| 3882 | specified time. | 4508 | specified time. |
| 3883 | @item | 4509 | @item |
| 4510 | Gregory Chenov patched support for lisp forms into table calculations | ||
| 4511 | and improved XEmacs compatibility. | ||
| 4512 | @item | ||
| 3884 | Sacha Chua suggested to copy some linking code from Planner. | 4513 | Sacha Chua suggested to copy some linking code from Planner. |
| 3885 | @item | 4514 | @item |
| 3886 | Kees Dullemond inspired the use of narrowed tabled columns. | 4515 | Kees Dullemond inspired the use of narrowed tabled columns. |
| @@ -3888,12 +4517,14 @@ Kees Dullemond inspired the use of narrowed tabled columns. | |||
| 3888 | Christian Egli converted the documentation into TeXInfo format, patched | 4517 | Christian Egli converted the documentation into TeXInfo format, patched |
| 3889 | CSS formatting into the HTML exporter, and inspired the agenda. | 4518 | CSS formatting into the HTML exporter, and inspired the agenda. |
| 3890 | @item | 4519 | @item |
| 3891 | Nic Ferrier contributed mailcap and XML support. | 4520 | Nic Ferrier contributed mailcap and XOXO support. |
| 3892 | @item | 4521 | @item |
| 3893 | Kai Grossjohann pointed out key-binding conflicts caused by Org-mode. | 4522 | Kai Grossjohann pointed out key-binding conflicts caused by Org-mode. |
| 3894 | @item | 4523 | @item |
| 3895 | Stefan Monnier provided a patch to keep the Emacs-Lisp compiler happy. | 4524 | Stefan Monnier provided a patch to keep the Emacs-Lisp compiler happy. |
| 3896 | @item | 4525 | @item |
| 4526 | Todd Neal provided patches for links to Info files and elisp forms. | ||
| 4527 | @item | ||
| 3897 | Tim O'Callaghan suggested in-file links, search options for | 4528 | Tim O'Callaghan suggested in-file links, search options for |
| 3898 | general file links, and TAGS. | 4529 | general file links, and TAGS. |
| 3899 | @item | 4530 | @item |
| @@ -3904,6 +4535,8 @@ among other things. | |||
| 3904 | @item | 4535 | @item |
| 3905 | Pete Phillips helped the development of the TAGS feature. | 4536 | Pete Phillips helped the development of the TAGS feature. |
| 3906 | @item | 4537 | @item |
| 4538 | T.V. Raman reported bugs and suggested improvements. | ||
| 4539 | @item | ||
| 3907 | Matthias Rempe (Oelde) provided ideas, Windows support, and quality | 4540 | Matthias Rempe (Oelde) provided ideas, Windows support, and quality |
| 3908 | control. | 4541 | control. |
| 3909 | @item | 4542 | @item |
| @@ -3920,6 +4553,9 @@ things. | |||
| 3920 | Linking to VM/BBDB/GNUS was inspired by Tom Shannon's | 4553 | Linking to VM/BBDB/GNUS was inspired by Tom Shannon's |
| 3921 | @file{organizer-mode.el}. | 4554 | @file{organizer-mode.el}. |
| 3922 | @item | 4555 | @item |
| 4556 | David O'Toole wrote @file{org-publish.el} and came up with lots is ideas | ||
| 4557 | for small changes. | ||
| 4558 | @item | ||
| 3923 | J@"urgen Vollmer contributed code generating the table of contents | 4559 | J@"urgen Vollmer contributed code generating the table of contents |
| 3924 | in HTML output. | 4560 | in HTML output. |
| 3925 | @item | 4561 | @item |
| @@ -3931,7 +4567,7 @@ system. | |||
| 3931 | John Wiegley wrote @file{emacs-wiki.el} and @file{planner.el}. The | 4567 | John Wiegley wrote @file{emacs-wiki.el} and @file{planner.el}. The |
| 3932 | development of Org-mode was fully independent, and both systems are | 4568 | development of Org-mode was fully independent, and both systems are |
| 3933 | really different beasts in their basic ideas and implementation details. | 4569 | really different beasts in their basic ideas and implementation details. |
| 3934 | However, I have later looked at John's code and learned from his | 4570 | I later looked at John's code, however, and learned from his |
| 3935 | implementation of (i) links where the link itself is hidden and only a | 4571 | implementation of (i) links where the link itself is hidden and only a |
| 3936 | description is shown, and (ii) popping up a calendar to select a date. | 4572 | description is shown, and (ii) popping up a calendar to select a date. |
| 3937 | @item | 4573 | @item |