diff --git a/doc/Documentation_Standards.org b/doc/Documentation_Standards.org index c4dd862db..503d2c90c 100644 --- a/doc/Documentation_Standards.org +++ b/doc/Documentation_Standards.org @@ -112,6 +112,9 @@ version of the manual. - Use example blocks for Org syntax instead of "begin_src org". +- Prefer inline footnote definition when a footnote consists of a + single sentence. + - Internal links to headlines always start with a star. - Tags, node properties, are not shown with the surrounding colons. diff --git a/doc/org-manual.org b/doc/org-manual.org index b5b0c5e7d..a5fec8cf9 100644 --- a/doc/org-manual.org +++ b/doc/org-manual.org @@ -169,7 +169,8 @@ exhaustive. #+cindex: key bindings, global Org mode buffers need Font Lock to be turned on: this is the default -in Emacs[fn:1]. +in Emacs[fn:: If you do not use Font Lock globally turn it on in Org +buffer with =(add-hook 'org-mode-hook #'turn-on-font-lock)=.]. There are compatibility issues between Org mode and some other Elisp packages (see [[*Packages that conflict with Org mode]]). Please take the @@ -221,11 +222,16 @@ region by using the mouse to select a region, or pressing If you find problems with Org, or if you have questions, remarks, or ideas about it, please send an email to the Org mailing list -[[mailto:emacs-orgmode@gnu.org]]. You can subscribe to the list [[https://lists.gnu.org/mailman/listinfo/emacs-orgmode][from this -web page]]. If you are not a member of the mailing list, your mail will -be passed to the list after a moderator has approved it[fn:2]. We ask -you to read and respect the [[https://www.gnu.org/philosophy/kind-communication.html][GNU Kind Communications Guidelines]] when -sending messages on this mailing list. +[[mailto:emacs-orgmode@gnu.org]]. You can subscribe to the list +[[https://lists.gnu.org/mailman/listinfo/emacs-orgmode][from this web +page]]. If you are not a member of the mailing list, your mail will +be passed to the list after a moderator has approved it[fn:: Please +consider subscribing to the mailing list in order to minimize the work +the mailing list moderators have to do.]. We ask you to read and +respect the +[[https://www.gnu.org/philosophy/kind-communication.html][GNU Kind +Communications Guidelines]] when sending messages on this mailing +list. #+findex: org-version #+findex: org-submit-bug-report @@ -404,7 +410,7 @@ the entire show and hide functionalities into a single command, #+vindex: org-ctrl-k-protect-subtree Headlines define the structure of an outline tree. Org headlines -start on the left margin[fn:3] with one or more stars followed by +start on the left margin[fn:1] with one or more stars followed by a space. For example: #+begin_example @@ -473,7 +479,8 @@ Org uses just two commands, bound to {{{kbd(TAB)}}} and #+end_example #+vindex: org-cycle-emulate-tab - Point must be on a headline for this to work[fn:4]. + Point must be on a headline for this to work[fn:: See, however, the + option ~org-cycle-emulate-tab~.]. - {{{kbd(S-TAB)}}} (~org-global-cycle~), {{{kbd(C-u TAB)}}} :: @@ -552,7 +559,7 @@ Org uses just two commands, bound to {{{kbd(TAB)}}} and #+kindex: C-c C-x b #+findex: org-tree-to-indirect-buffer - Show the current subtree in an indirect buffer[fn:5]. With + Show the current subtree in an indirect buffer[fn:2]. With a numeric prefix argument {{{var(N)}}}, go up to level {{{var(N)}}} and then take that tree. If {{{var(N)}}} is negative then go up that many levels. With a {{{kbd(C-u)}}} prefix, do not remove the @@ -571,10 +578,12 @@ Org uses just two commands, bound to {{{kbd(TAB)}}} and #+vindex: org-startup-folded When Emacs first visits an Org file, the global state is set to -~showeverything~, i.e., all file content is visible[fn:6]. This can -be configured through the variable ~org-startup-folded~, or on -a per-file basis by adding one of the following lines anywhere in the -buffer: +~showeverything~, i.e., all file content is visible[fn:: When +~org-agenda-inhibit-startup~ is non-~nil~, Org does not honor the +default visibility state when first opening a file for the agenda (see +[[*Speeding Up Your Agendas]]).]. This can be configured through the +variable ~org-startup-folded~, or on a per-file basis by adding one of +the following lines anywhere in the buffer: #+cindex: @samp{STARTUP}, keyword #+begin_example @@ -921,8 +930,10 @@ keys have different functionality. An important feature of Org mode is the ability to construct /sparse trees/ for selected information in an outline tree, so that the entire document is folded as much as possible, but the selected information -is made visible along with the headline structure above it[fn:7]. -Just try it out and you will see immediately how it works. +is made visible along with the headline structure above it[fn:: See +also the variable ~org-show-context-detail~ to decide how much context +is shown around each match.]. Just try it out and you will see +immediately how it works. Org mode contains several commands creating such trees, all these commands can be accessed through a dispatcher: @@ -940,16 +951,18 @@ commands can be accessed through a dispatcher: #+kindex: C-c / / #+findex: org-occur #+vindex: org-remove-highlights-with-change - Prompts for a regexp (see [[*Regular Expressions]]) and shows a sparse - tree with all matches. If the match is in a headline, the headline - is made visible. If the match is in the body of an entry, headline - and body are made visible. In order to provide minimal context, - also the full hierarchy of headlines above the match is shown, as - well as the headline following the match. Each match is also - highlighted; the highlights disappear when the buffer is changed by - an editing command, or by pressing {{{kbd(C-c C-c)}}}[fn:8]. When - called with a {{{kbd(C-u)}}} prefix argument, previous highlights - are kept, so several calls to this command can be stacked. + Prompts for a regexp (see [[*Regular Expressions]]) and shows a + sparse tree with all matches. If the match is in a headline, the + headline is made visible. If the match is in the body of an entry, + headline and body are made visible. In order to provide minimal + context, also the full hierarchy of headlines above the match is + shown, as well as the headline following the match. Each match is + also highlighted; the highlights disappear when the buffer is + changed by an editing command, or by pressing {{{kbd(C-c + C-c)}}}[fn:: This depends on the option + ~org-remove-highlights-with-change~.]. When called with a + {{{kbd(C-u)}}} prefix argument, previous highlights are kept, so + several calls to this command can be stacked. - {{{kbd(M-g n)}}} or {{{kbd(M-g M-n)}}} (~next-error~) :: @@ -1010,17 +1023,18 @@ every exporter (see [[*Exporting]]) can parse and format them. Org knows ordered lists, unordered lists, and description lists. #+attr_texinfo: :indic @bullet -- /Unordered/ list items start with =-=, =+=, or =*=[fn:9] as bullets. +- /Unordered/ list items start with =-=, =+=, or =*=[fn:3] as bullets. - #+vindex: org-plain-list-ordered-item-terminator #+vindex: org-alphabetical-lists - /Ordered/ list items start with a numeral followed by either - a period or a right parenthesis[fn:10], such as =1.= or =1)=[fn:11] - If you want a list to start with a different value---e.g., - 20---start the text of the item with =[@20]=[fn:12]. Those - constructs can be used in any item of the list in order to enforce - a particular numbering. + /Ordered/ list items start with a numeral followed by either a + period or a right parenthesis[fn:: You can filter out any of them by + configuring ~org-plain-list-ordered-item-terminator~.], such as =1.= + or =1)=[fn:4] If you want a list to start with a different + value---e.g., 20---start the text of the item with =[@20]=[fn:5]. + Those constructs can be used in any item of the list in order to + enforce a particular numbering. - /Description/ list items are unordered list items, and contain the separator =::= to distinguish the description /term/ from the @@ -1099,12 +1113,13 @@ to disable them individually. #+kindex: M-RET #+findex: org-insert-heading #+vindex: org-M-RET-may-split-line - Insert new item at current level. With a prefix argument, force - a new heading (see [[*Structure Editing]]). If this command is used in - the middle of an item, that item is /split/ in two, and the second - part becomes the new item[fn:13]. If this command is executed - /before item's body/, the new item is created /before/ the current - one. + Insert new item at current level. With a prefix argument, force a + new heading (see [[*Structure Editing]]). If this command is used + in the middle of an item, that item is /split/ in two, and the + second part becomes the new item[fn:: If you do not want the item to + be split, customize the variable ~org-M-RET-may-split-line~.]. If + this command is executed /before item's body/, the new item is + created /before/ the current one. - {{{kbd(M-S-RET)}}} :: @@ -1119,17 +1134,19 @@ to disable them individually. #+vindex: org-support-shift-select #+vindex: org-list-use-circular-motion Jump to the previous/next item in the current list, but only if - ~org-support-shift-select~ is off[fn:14]. If not, you can still use - paragraph jumping commands like {{{kbd(C-UP)}}} and - {{{kbd(C-DOWN)}}} to quite similar effect. + ~org-support-shift-select~ is off[fn:: If you want to cycle around + items that way, you may customize ~org-list-use-circular-motion~.]. + If not, you can still use paragraph jumping commands like + {{{kbd(C-UP)}}} and {{{kbd(C-DOWN)}}} to quite similar effect. - {{{kbd(M-UP)}}}, {{{kbd(M-DOWN)}}} :: #+kindex: M-UP #+kindex: M-DOWN - Move the item including subitems up/down[fn:15], i.e., swap with - previous/next item of same indentation. If the list is ordered, - renumbering is automatic. + Move the item including subitems up/down[fn:: See + ~org-list-use-circular-motion~ for a cyclic behavior.], i.e., swap + with previous/next item of same indentation. If the list is + ordered, renumbering is automatic. - {{{kbd(M-LEFT)}}}, {{{kbd(M-RIGHT)}}} :: @@ -1238,7 +1255,7 @@ Org mode uses this special drawer for storing properties (see [[*Properties and Columns]]). You cannot use it for anything else. Completion over drawer keywords is also possible using -{{{kbd(M-TAB)}}}[fn:16]. +{{{kbd(M-TAB)}}}[fn:6]. Visibility cycling (see [[*Visibility Cycling]]) on the headline hides and shows the entry, but keep the drawer collapsed to a single line. In @@ -1298,10 +1315,11 @@ Calculator Manual]]). #+cindex: table syntax Org makes it easy to format tables in plain ASCII. Any line with =|= as the first non-whitespace character is considered part of a table. -=|= is also the column separator[fn:17]. Moreover, a line starting -with =|-= is a horizontal rule. It separates rows explicitly. Rows -before the first horizontal rule are header lines. A table might look -like this: +=|= is also the column separator[fn:: To insert a vertical bar into a +table field, use =\vert= or, inside a word =abc\vert{}def=.]. +Moreover, a line starting with =|-= is a horizontal rule. It +separates rows explicitly. Rows before the first horizontal rule are +header lines. A table might look like this: #+begin_example | Name | Phone | Age | @@ -1863,7 +1881,7 @@ Formulas can reference the value of another field in two ways. Like in any other spreadsheet, you may reference fields with a letter/number combination like =B3=, meaning the second field in the third row. However, Org prefers to use another, more general -representation that looks like this:[fn:18] +representation that looks like this:[fn:7] : @ROW$COLUMN @@ -1970,7 +1988,9 @@ and ~org-table-current-column~. Examples: #+texinfo: @noindent For the second and third examples, table {{{var(FOO)}}} must have at least as many rows or columns as the current table. Note that this is -inefficient[fn:19] for large number of rows. +inefficient[fn:: The computation time scales as O(N^2) because table +{{{var(FOO)}}} is parsed for each field to be copied.] for large +number of rows. **** Named references :PROPERTIES: @@ -1998,7 +2018,7 @@ constants in table formulas: for a property =Xyz= use the name entry and in the hierarchy above it. If you have the =constants.el= package, it will also be used to resolve constants, including natural constants like =$h= for Planck's constant, and units like =$km= for -kilometers[fn:20]. Column names and parameters can be specified in +kilometers[fn:8]. Column names and parameters can be specified in special table lines. These are described below, see [[*Advanced features]]. All names must start with a letter, and further consist of letters and numbers. @@ -2119,7 +2139,7 @@ Unless you use large integer numbers or high-precision calculation and display for floating point numbers you may alternatively provide a ~printf~ format specifier to reformat the Calc result after it has been passed back to Org instead of letting Calc already do the -formatting[fn:21]. A few examples: +formatting[fn:9]. A few examples: | =$1+$2= | Sum of first and second field | | =$1+$2;%.2f= | Same, format result to two decimals | @@ -2706,9 +2726,10 @@ following commands: :END: If you want the recalculation of fields to happen automatically, or if -you want to be able to assign /names/[fn:22] to fields and columns, -you need to reserve the first column of the table for special marking -characters. +you want to be able to assign /names/[fn:: Such names must start with +an alphabetic character and use only alphanumeric/underscore +characters.] to fields and columns, you need to reserve the first +column of the table for special marking characters. - {{{kbd(C-#)}}} (~org-table-rotate-recalc-marks~) :: @@ -3015,7 +3036,7 @@ links to other files, Usenet articles, emails, and much more. #+cindex: angle bracket links #+cindex: plain links Org recognizes plain URIs, possibly wrapped within angle -brackets[fn:23], and activate them as clickable links. +brackets[fn:10], and activate them as clickable links. #+cindex: bracket links The general link format, however, looks like this: @@ -3059,11 +3080,13 @@ the {{{var(LINK)}}} part, if there is no description, or the If you place point at the beginning or just behind the end of the displayed text and press {{{kbd(BS)}}}, you remove -the---invisible---bracket at that location[fn:24]. This makes the link +the---invisible---bracket at that location[fn:: More accurately, the +precise behavior depends on how point arrived there---see +[[info:elisp#Invisible Text][Invisible Text]].]. This makes the link incomplete and the internals are again displayed as plain text. Inserting the missing bracket hides the link internals again. To show -the internal structure of all links, use the menu: Org \rarr Hyperlinks \rarr -Literal links. +the internal structure of all links, use the menu: Org \rarr +Hyperlinks \rarr Literal links. ** Internal Links :PROPERTIES: @@ -3082,7 +3105,7 @@ Org provides several refinements to internal navigation within a document. Most notably, a construct like =[[#my-custom-id]]= specifically targets the entry with the =CUSTOM_ID= property set to =my-custom-id=. Also, an internal link looking like =[[*Some -section]]= points to a headline with the name =Some section=[fn:25]. +section]]= points to a headline with the name =Some section=[fn:11]. #+cindex: targets, for links When the link does not belong to any of the cases above, Org looks for @@ -3115,8 +3138,9 @@ you in the process, if needed. See [[*Org Syntax]]. During export, internal links are used to mark objects and assign them a number. Marked objects are then referenced by links pointing to them. In particular, links without a description appear as the number -assigned to the marked object[fn:26]. In the following excerpt from -an Org buffer +assigned to the marked object[fn:: When targeting a =NAME= keyword, +the =CAPTION= keyword is mandatory in order to get proper numbering +(see [[*Captions]]).]. In the following excerpt from an Org buffer #+begin_example 1. one item @@ -3269,7 +3293,7 @@ options: | | =/ssh:me@some.where:papers/last.pdf= (same as above) | | | =file:sometextfile::NNN= (jump to line number) | | | =file:projects.org= | -| | =file:projects.org::some words= (text search)[fn:27] | +| | =file:projects.org::some words= (text search)[fn:12] | | | =file:projects.org::*task title= (headline search) | | | =file:projects.org::#custom-id= (headline search) | | attachment | =attachment:projects.org= | @@ -3352,7 +3376,9 @@ current buffer: For Org files, if there is a =<>= at point, the link points to the target. Otherwise it points to the current headline, which - is also the description[fn:28]. + is also the description[fn:: If the headline contains a timestamp, + it is removed from the link, which results in a wrong link---you + should avoid putting a timestamp in the headline.]. #+vindex: org-id-link-to-org-use-id #+cindex: @samp{CUSTOM_ID}, property @@ -3360,12 +3386,15 @@ current buffer: If the headline has a =CUSTOM_ID= property, store a link to this custom ID. In addition or alternatively, depending on the value of ~org-id-link-to-org-use-id~, create and/or use a globally unique - =ID= property for the link[fn:29]. So using this command in Org - buffers potentially creates two links: a human-readable link from - the custom ID, and one that is globally unique and works even if the - entry is moved from file to file. The =ID= property can be either a - UUID (default) or a timestamp, depending on ~org-id-method~. Later, - when inserting the link, you need to decide which one to use. + =ID= property for the link[fn:: The Org Id library must first be + loaded, either through ~org-customize~, by enabling ~id~ in + ~org-modules~, or by adding =(require 'org-id)= in your Emacs init + file.]. So using this command in Org buffers potentially creates + two links: a human-readable link from the custom ID, and one that is + globally unique and works even if the entry is moved from file to + file. The =ID= property can be either a UUID (default) or a + timestamp, depending on ~org-id-method~. Later, when inserting the + link, you need to decide which one to use. - /Email/News clients: VM, Rmail, Wanderlust, MH-E, Gnus/ :: @@ -3422,11 +3451,11 @@ generally, act on links. #+cindex: completion, of links #+cindex: inserting links #+vindex: org-link-keep-stored-after-insertion - Insert a link[fn:30]. This prompts for a link to be inserted into + Insert a link[fn:13]. This prompts for a link to be inserted into the buffer. You can just type a link, using text for an internal link, or one of the link type prefixes mentioned in the examples above. The link is inserted into the buffer, along with - a descriptive text[fn:31]. If some text was selected at this time, + a descriptive text[fn:14]. If some text was selected at this time, it becomes the default description. - /Inserting stored links/ :: @@ -3441,11 +3470,12 @@ generally, act on links. prefixes like =http= or =ftp=, including the prefixes defined through link abbreviations (see [[*Link Abbreviations]]). If you press {{{kbd(RET)}}} after inserting only the prefix, Org offers - specific completion support for some link types[fn:32]. For - example, if you type {{{kbd(f i l e RET)}}}---alternative access: - {{{kbd(C-u C-c C-l)}}}, see below---Org offers file name - completion, and after {{{kbd(b b d b RET)}}} you can complete - contact names. + specific completion support for some link types[fn:: This works if + a function has been defined in the ~:complete~ property of a link + in ~org-link-parameters~.]. For example, if you type {{{kbd(f i l + e RET)}}}---alternative access: {{{kbd(C-u C-c C-l)}}}, see + below---Org offers file name completion, and after {{{kbd(b b d b + RET)}}} you can complete contact names. - {{{kbd(C-u C-c C-l)}}} :: @@ -3512,7 +3542,8 @@ generally, act on links. #+vindex: org-link-use-indirect-buffer-for-internals #+kindex: mouse-3 Like {{{kbd(mouse-2)}}}, but force file links to be opened with - Emacs, and internal links to be displayed in another window[fn:33]. + Emacs, and internal links to be displayed in another window[fn:: See + the variable ~org-link-use-indirect-buffer-for-internals~.]. - {{{kbd(C-c %)}}} (~org-mark-ring-push~) :: @@ -3646,11 +3677,12 @@ the link completion function like this: File links can contain additional information to make Emacs jump to a particular location in the file when following a link. This can be a -line number or a search option after a double colon[fn:34]. For +line number or a search option after a double colon[fn:: For backward +compatibility, line numbers can also follow a single colon.]. For example, when the command ~org-store-link~ creates a link (see -[[*Handling Links]]) to a file, it encodes the words in the current line -as a search string that can be used to find this line back later when -following the link with {{{kbd(C-c C-o)}}}. +[[*Handling Links]]) to a file, it encodes the words in the current +line as a search string that can be used to find this line back later +when following the link with {{{kbd(C-c C-o)}}}. Note that all search options apply for Attachment links in the same way that they apply for File links. @@ -3730,12 +3762,13 @@ implementation example. See the file =ol-bibtex.el=. :END: #+cindex: TODO items -Org mode does not maintain TODO lists as separate documents[fn:35]. -Instead, TODO items are an integral part of the notes file, because -TODO items usually come up while taking notes! With Org mode, simply -mark any entry in a tree as being a TODO item. In this way, -information is not duplicated, and the entire context from which the -TODO item emerged is always present. +Org mode does not maintain TODO lists as separate documents[fn:: Of +course, you can make a document that contains only long lists of TODO +items, but this is not required.]. Instead, TODO items are an +integral part of the notes file, because TODO items usually come up +while taking notes! With Org mode, simply mark any entry in a tree as +being a TODO item. In this way, information is not duplicated, and +the entire context from which the TODO item emerged is always present. Of course, this technique for managing TODO items scatters them throughout your notes file. Org mode compensates for this by @@ -3849,7 +3882,9 @@ TODO items in particular (see [[*Tags]]). #+cindex: workflow states as TODO keywords You can use TODO keywords to indicate different, possibly /sequential/ -states in the process of working on an item, for example[fn:36]: +states in the process of working on an item, for example[fn:: Changing +the variable ~org-todo-keywords~ only becomes effective after +restarting Org mode in a buffer.]: #+begin_src emacs-lisp (setq org-todo-keywords @@ -3898,22 +3933,22 @@ Using TODO types, it would be set up like this: (setq org-todo-keywords '((type "Fred" "Sara" "Lucy" "|" "DONE"))) #+end_src -In this case, different keywords do not indicate states, but -rather different types. So the normal work flow would be to assign -a task to a person, and later to mark it DONE. Org mode supports this -style by adapting the workings of the command {{{kbd(C-c -C-t)}}}[fn:37]. When used several times in succession, it still -cycles through all names, in order to first select the right type for -a task. But when you return to the item after some time and execute -{{{kbd(C-c C-t)}}} again, it will switch from any name directly to -=DONE=. Use prefix arguments or completion to quickly select -a specific name. You can also review the items of a specific TODO -type in a sparse tree by using a numeric prefix to {{{kbd(C-c / t)}}}. -For example, to see all things Lucy has to do, you would use -{{{kbd(C-3 C-c / t)}}}. To collect Lucy's items from all agenda files -into a single buffer, you would use the numeric prefix argument as -well when creating the global TODO list: {{{kbd(C-3 M-x org-agenda -t)}}}. +In this case, different keywords do not indicate states, but rather +different types. So the normal work flow would be to assign a task to +a person, and later to mark it DONE. Org mode supports this style by +adapting the workings of the command {{{kbd(C-c C-t)}}}[fn:: This is +also true for the {{{kbd(t)}}} command in the agenda buffer.]. When +used several times in succession, it still cycles through all names, +in order to first select the right type for a task. But when you +return to the item after some time and execute {{{kbd(C-c C-t)}}} +again, it will switch from any name directly to =DONE=. Use prefix +arguments or completion to quickly select a specific name. You can +also review the items of a specific TODO type in a sparse tree by +using a numeric prefix to {{{kbd(C-c / t)}}}. For example, to see all +things Lucy has to do, you would use {{{kbd(C-3 C-c / t)}}}. To +collect Lucy's items from all agenda files into a single buffer, you +would use the numeric prefix argument as well when creating the global +TODO list: {{{kbd(C-3 M-x org-agenda t)}}}. *** Multiple keyword sets in one file :PROPERTIES: @@ -3974,8 +4009,9 @@ correct sequence. In addition to typing a keyword or using completion If you would like to quickly change an entry to an arbitrary TODO state instead of cycling through the states, you can set up keys for single-letter access to the states. This is done by adding the -selection character after each keyword, in parentheses[fn:38]. For -example: +selection character after each keyword, in parentheses[fn:: All +characters are allowed except =@=, =^= and =!=, which have a special +meaning here.]. For example: #+begin_src emacs-lisp (setq org-todo-keywords @@ -3987,7 +4023,7 @@ example: #+vindex: org-fast-tag-selection-include-todo If you then press {{{kbd(C-c C-t)}}} followed by the selection key, the entry is switched to this state. {{{kbd(SPC)}}} can be used to -remove any TODO keyword from an entry[fn:39]. +remove any TODO keyword from an entry[fn:15]. *** Setting up keywords for individual files :PROPERTIES: @@ -4032,7 +4068,10 @@ Remember that the keywords after the vertical bar---or the last keyword if no bar is there---must always mean that the item is DONE, although you may use a different word. After changing one of these lines, use {{{kbd(C-c C-c)}}} with point still in the line to make the -changes known to Org mode[fn:40]. +changes known to Org mode[fn:: Org mode parses these lines only when +Org mode is activated after visiting a file. {{{kbd(C-c C-c)}}} with +point in a line starting with =#+= is simply restarting Org mode for +the current buffer.]. *** Faces for TODO keywords :PROPERTIES: @@ -4175,7 +4214,8 @@ clock working time for a task, see [[*Clocking Work Time]]. :END: The most basic automatic logging is to keep track of /when/ a certain -TODO item was marked as done. This can be achieved with[fn:41] +TODO item was marked as done. This can be achieved with[fn:: The +corresponding in-buffer setting is: =#+STARTUP: logdone=.] #+begin_src emacs-lisp (setq org-log-done 'time) @@ -4189,8 +4229,9 @@ after the headline. If you turn the entry back into a TODO item through further state cycling, that line is removed again. If you turn the entry back to a non-TODO state (by pressing {{{kbd(C-c C-t SPC)}}} for example), that line is also removed, unless you set -~org-closed-keep-when-no-todo~ to non-~nil~. If you want to record -a note along with the timestamp, use[fn:42] +~org-closed-keep-when-no-todo~ to non-~nil~. If you want to record a +note along with the timestamp, use[fn:: The corresponding in-buffer +setting is: =#+STARTUP: lognotedone=.] #+begin_src emacs-lisp (setq org-log-done 'note) @@ -4212,13 +4253,16 @@ entry with a =Closing Note= heading. You might want to automatically keep track of when a state change occurred and maybe take a note about this change. You can either record just a timestamp, or a time-stamped note. These records are -inserted after the headline as an itemized list, newest first[fn:43]. -When taking a lot of notes, you might want to get the notes out of the -way into a drawer (see [[*Drawers]]). Customize the variable -~org-log-into-drawer~ to get this behavior---the recommended drawer -for this is called =LOGBOOK=[fn:44]. You can also overrule the -setting of this variable for a subtree by setting a =LOG_INTO_DRAWER= -property. +inserted after the headline as an itemized list, newest first[fn:: See +the variable ~org-log-states-order-reversed~.]. When taking a lot of +notes, you might want to get the notes out of the way into a drawer +(see [[*Drawers]]). Customize the variable ~org-log-into-drawer~ to +get this behavior---the recommended drawer for this is called +=LOGBOOK=[fn:: Note that the =LOGBOOK= drawer is unfolded when +pressing {{{kbd(SPC)}}} in the agenda to show an entry---use +{{{kbd(C-u SPC)}}} to keep it folded here.]. You can also overrule +the setting of this variable for a subtree by setting a +=LOG_INTO_DRAWER= property. Since it is normally too much to record a note for every state, Org mode expects configuration on a per-keyword basis for this. This is @@ -4235,7 +4279,7 @@ example, with the setting You not only define global TODO keywords and fast access keys, but also request that a time is recorded when the entry is set to =DONE=, and that a note is recorded when switching to =WAIT= or -=CANCELED=[fn:45]. The setting for =WAIT= is even more special: the +=CANCELED=[fn:16]. The setting for =WAIT= is even more special: the =!= after the slash means that in addition to the note taken when entering the state, a timestamp should be recorded when /leaving/ the =WAIT= state, if and only if the /target/ state does not configure @@ -4440,10 +4484,11 @@ TODO items. #+findex: org-priority-up #+findex: org-priority-down #+vindex: org-priority-start-cycle-with-default - Increase/decrease the priority of the current headline[fn:46]. Note - that these keys are also used to modify timestamps (see [[*Creating - Timestamps]]). See also [[*Packages that conflict with Org mode]], for - a discussion of the interaction with shift-selection. + Increase/decrease the priority of the current headline[fn:: See also + the option ~org-priority-start-cycle-with-default~.]. Note that + these keys are also used to modify timestamps (see [[*Creating + Timestamps]]). See also [[*Packages that conflict with Org mode]], + for a discussion of the interaction with shift-selection. #+vindex: org-priority-highest #+vindex: org-priority-lowest @@ -4472,11 +4517,13 @@ Or, using numeric values: #+vindex: org-agenda-todo-list-sublevels It is often advisable to break down large tasks into smaller, manageable subtasks. You can do this by creating an outline tree -below a TODO item, with detailed subtasks on the tree[fn:47]. To keep -an overview of the fraction of subtasks that have already been marked -as done, insert either =[/]= or =[%]= anywhere in the headline. These -cookies are updated each time the TODO status of a child changes, or -when pressing {{{kbd(C-c C-c)}}} on the cookie. For example: +below a TODO item, with detailed subtasks on the tree[fn:: To keep +subtasks out of the global TODO list, see the option +~org-agenda-todo-list-sublevels~.]. To keep an overview of the +fraction of subtasks that have already been marked as done, insert +either =[/]= or =[%]= anywhere in the headline. These cookies are +updated each time the TODO status of a child changes, or when pressing +{{{kbd(C-c C-c)}}} on the cookie. For example: #+begin_example ,* Organize Party [33%] @@ -4528,7 +4575,7 @@ of) a large number of subtasks (see [[*Checkboxes]]). #+cindex: checkboxes #+vindex: org-list-automatic-rules -Every item in a plain list[fn:48] (see [[*Plain Lists]]) can be made into +Every item in a plain list[fn:17] (see [[*Plain Lists]]) can be made into a checkbox by starting it with the string =[ ]=. This feature is similar to TODO items (see [[*TODO Items]]), but is more lightweight. Checkboxes are not included into the global TODO list, so they are @@ -4564,14 +4611,17 @@ idea on how many checkboxes remain, even without opening a folded entry. The cookies can be placed into a headline or into (the first line of) a plain list item. Each cookie covers checkboxes of direct children structurally below the headline/item on which the cookie -appears[fn:49]. You have to insert the cookie yourself by typing -either =[/]= or =[%]=. With =[/]= you get an =n out of m= result, as -in the examples above. With =[%]= you get information about the -percentage of checkboxes checked (in the above example, this would be -=[50%]= and =[33%]=, respectively). In a headline, a cookie can count -either checkboxes below the heading or TODO states of children, and it -displays whatever was changed last. Set the property =COOKIE_DATA= to -either =checkbox= or =todo= to resolve this issue. +appears[fn:: Set the variable ~org-hierarchical-checkbox-statistics~ +if you want such cookies to count all checkboxes below the cookie, not +just those belonging to direct children.]. You have to insert the +cookie yourself by typing either =[/]= or =[%]=. With =[/]= you get +an =n out of m= result, as in the examples above. With =[%]= you get +information about the percentage of checkboxes checked (in the above +example, this would be =[50%]= and =[33%]=, respectively). In a +headline, a cookie can count either checkboxes below the heading or +TODO states of children, and it displays whatever was changed last. +Set the property =COOKIE_DATA= to either =checkbox= or =todo= to +resolve this issue. #+cindex: blocking, of checkboxes #+cindex: checkbox blocking @@ -4588,8 +4638,10 @@ The following commands work with checkboxes: #+findex: org-toggle-checkbox Toggle checkbox status or---with prefix argument---checkbox presence at point. With a single prefix argument, add an empty checkbox or - remove the current one[fn:50]. With a double prefix argument, set - it to =[-]=, which is considered to be an intermediate state. + remove the current one[fn:: {{{kbd(C-u C-c C-c)}}} on the /first/ + item of a list with no checkbox adds checkboxes to the rest of the + list.]. With a double prefix argument, set it to =[-]=, which is + considered to be an intermediate state. - {{{kbd(C-c C-x C-b)}}} (~org-toggle-checkbox~) :: @@ -4701,7 +4753,9 @@ the final heading has the tags =work=, =boss=, =notes=, and =action= even though the final heading is not explicitly marked with those tags. You can also set tags that all entries in a file should inherit just as if these tags were defined in a hypothetical level zero that -surrounds the entire file. Use a line like this[fn:51] +surrounds the entire file. Use a line like this[fn:: As with all +these in-buffer settings, pressing {{{kbd(C-c C-c)}}} activates any +changes in the line.] #+cindex: @samp{FILETAGS}, keyword : #+FILETAGS: :Peter:Boss:Secret: @@ -4715,10 +4769,11 @@ use the variables ~org-use-tag-inheritance~ and #+vindex: org-tags-match-list-sublevels When a headline matches during a tags search while tag inheritance is turned on, all the sublevels in the same tree---for a simple match -form---match as well[fn:52]. The list of matches may then become -very long. If you only want to see the first tags match in a subtree, -configure the variable ~org-tags-match-list-sublevels~ (not -recommended). +form---match as well[fn:: This is only true if the search does not +involve more complex tests including properties (see [[*Property +Searches]]).]. The list of matches may then become very long. If you +only want to see the first tags match in a subtree, configure the +variable ~org-tags-match-list-sublevels~ (not recommended). #+vindex: org-agenda-use-tag-inheritance Tag inheritance is relevant when the agenda search tries to match @@ -4768,9 +4823,12 @@ also a special command for inserting tags: #+cindex: @samp{TAGS}, keyword Org supports tag insertion based on a /list of tags/. By default this list is constructed dynamically, containing all tags currently used in -the buffer[fn:53]. You may also globally specify a hard list of tags -with the variable ~org-tag-alist~. Finally you can set the default -tags for a given file using the =TAGS= keyword, like +the buffer[fn:: To extend this default list to all tags used in all +agenda files (see [[*Agenda Views]]), customize the variable +~org-complete-tags-always-offer-all-agenda-tags~.]. You may also +globally specify a hard list of tags with the variable +~org-tag-alist~. Finally you can set the default tags for a given +file using the =TAGS= keyword, like #+begin_example ,#+TAGS: @work @home @tennisclub @@ -4854,7 +4912,8 @@ by the following configuration: If at least one tag has a selection key then pressing {{{kbd(C-c C-c)}}} automatically presents you with a special interface, listing inherited tags, the tags of the current headline, and a list of all -valid tags with corresponding keys[fn:54]. +valid tags with corresponding keys[fn:: Keys are automatically +assigned to tags that have no configured keys.]. Pressing keys assigned to tags adds or removes them from the list of tags in the current line. Selecting a tag in a group of mutually @@ -5494,7 +5553,9 @@ optional. The individual parts have the following meaning: - {{{var(SUMMARY-TYPE)}}} :: The summary type. If specified, the column values for parent nodes - are computed from the children[fn:55]. + are computed from the children[fn:: If more than one summary type + applies to the same property, the parent values are computed + according to the first of them.]. Supported summary types are: @@ -5511,7 +5572,7 @@ optional. The individual parts have the following meaning: | =:min= | Smallest time value in column. | | =:max= | Largest time value. | | =:mean= | Arithmetic mean of time values. | - | =@min= | Minimum age[fn:56] (in days/hours/mins/seconds). | + | =@min= | Minimum age[fn:18] (in days/hours/mins/seconds). | | =@max= | Maximum age (in days/hours/mins/seconds). | | =@mean= | Arithmetic mean of ages (in days/hours/mins/seconds). | | =est+= | Add low-high estimates. | @@ -5539,7 +5600,9 @@ contrast, =est+= estimates the full job more realistically, at 10--15 days. Here is an example for a complete columns definition, along with -allowed values[fn:57]. +allowed values[fn:: Please note that the =COLUMNS= definition must be +on a single line; it is wrapped here only because of formatting +constraints.]. #+begin_example :COLUMNS: %25ITEM %9Approved(Approved?){X} %Owner %11Status \ @@ -5812,7 +5875,9 @@ recalculated automatically after an update. An alternative way to capture and process property values into a table is provided by Eric Schulte's =org-collector.el=, which is a package -in =org-contrib=[fn:58]. It provides a general API to collect +in =org-contrib=[fn:: Contributed packages are not part of Emacs, but +are distributed with the main distribution of Org---visit +[[https://orgmode.org]].]. It provides a general API to collect properties from entries in a certain scope, and arbitrary Lisp expressions to process these values before inserting them into a table or a dynamic block. @@ -5845,7 +5910,7 @@ is used in a much wider sense. A timestamp is a specification of a date (possibly with a time or a range of times) in a special format, either =<2003-09-16 Tue>= or -=<2003-09-16 Tue 09:39>= or =<2003-09-16 Tue 12:00-12:30>=[fn:59]. +=<2003-09-16 Tue 09:39>= or =<2003-09-16 Tue 12:00-12:30>=[fn:19]. A timestamp can appear anywhere in the headline or body of an Org tree entry. Its presence causes entries to be shown on specific dates in the agenda (see [[*Weekly/daily agenda]]). We distinguish: @@ -5891,7 +5956,7 @@ the agenda (see [[*Weekly/daily agenda]]). We distinguish: For more complex date specifications, Org mode supports using the special expression diary entries implemented in the Emacs Calendar - package[fn:60]. For example, with optional time: + package[fn:20]. For example, with optional time: #+begin_example ,* 22:00-23:00 The nerd meeting on every 2nd Thursday of the month @@ -6043,7 +6108,7 @@ a range, it is taken from the stamp in the buffer. When filling in information, Org mode assumes that most of the time you want to enter a date in the future: if you omit the month/year and the given day/month is /before/ today, it assumes that you mean a future -date[fn:61]. If the date has been automatically shifted into the +date[fn:21]. If the date has been automatically shifted into the future, the time prompt shows this with =(=>F)=. For example, let's assume that today is *June 13, 2006*. Here is how @@ -6108,11 +6173,13 @@ separator in the latter case, e.g.: #+cindex: calendar, for selecting date #+vindex: org-popup-calendar-for-date-prompt -Parallel to the minibuffer prompt, a calendar is popped up[fn:62]. -When you exit the date prompt, either by clicking on a date in the -calendar, or by pressing {{{kbd(RET)}}}, the date selected in the -calendar is combined with the information entered at the prompt. You -can control the calendar fully from the minibuffer: +Parallel to the minibuffer prompt, a calendar is popped up[fn:: If you +do not need/want the calendar, configure the variable +~org-popup-calendar-for-date-prompt~.]. When you exit the date +prompt, either by clicking on a date in the calendar, or by pressing +{{{kbd(RET)}}}, the date selected in the calendar is combined with the +information entered at the prompt. You can control the calendar fully +from the minibuffer: #+kindex: < #+kindex: > @@ -6141,14 +6208,15 @@ can control the calendar fully from the minibuffer: | {{{kbd(<)}}} | Scroll calendar backward by one month. | | {{{kbd(M-v)}}} | Scroll calendar forward by 3 months. | | {{{kbd(C-v)}}} | Scroll calendar backward by 3 months. | -| {{{kbd(C-.)}}} | Select today's date[fn:63] | +| {{{kbd(C-.)}}} | Select today's date[fn:22] | #+vindex: org-read-date-display-live The actions of the date/time prompt may seem complex, but I assure you they will grow on you, and you will start getting annoyed by pretty much any other way of entering a date/time out there. To help you understand what is going on, the current interpretation of your input -is displayed live in the minibuffer[fn:64]. +is displayed live in the minibuffer[fn:: If you find this distracting, +turn off the display with ~org-read-date-display-live~.]. *** Custom time format :PROPERTIES: @@ -6240,7 +6308,7 @@ immediately after the task they refer to. date. #+vindex: org-agenda-skip-scheduled-if-done - The headline is listed under the given date[fn:65]. In addition, + The headline is listed under the given date[fn:23]. In addition, a reminder that the scheduled date has passed is present in the compilation for /today/, until the entry is marked as done, i.e., the task is automatically forwarded until completed. @@ -6292,7 +6360,7 @@ expression entry matches. :END: The following commands allow you to quickly insert a deadline or to -schedule an item:[fn:66] +schedule an item:[fn:24] - {{{kbd(C-c C-d)}}} (~org-deadline~) :: @@ -6304,7 +6372,8 @@ schedule an item:[fn:66] timestamp . When called with a prefix argument, also remove any existing deadline from the entry. Depending on the variable ~org-log-redeadline~, take a note when changing an existing - deadline[fn:67]. + deadline[fn:: Note the corresponding =STARTUP= options + =logredeadline=, =lognoteredeadline=, and =nologredeadline=.]. - {{{kbd(C-c C-s)}}} (~org-schedule~) :: @@ -6316,7 +6385,8 @@ schedule an item:[fn:66] =CLOSED= timestamp. When called with a prefix argument, also remove the scheduling date from the entry. Depending on the variable ~org-log-reschedule~, take a note when changing an existing - scheduling time[fn:68]. + scheduling time[fn:: Note the corresponding =STARTUP= options + =logreschedule=, =lognotereschedule=, and =nologreschedule=.]. - {{{kbd(C-c / d)}}} (~org-check-deadlines~) :: @@ -6356,7 +6426,7 @@ any current timestamp. Some tasks need to be repeated again and again. Org mode helps to organize such tasks using a so-called repeater in a =DEADLINE=, -=SCHEDULED=, or plain timestamps[fn:69]. In the following example: +=SCHEDULED=, or plain timestamps[fn:25]. In the following example: #+begin_example ,** TODO Pay the rent @@ -6377,16 +6447,19 @@ period last #+vindex: org-todo-repeat-to-state Deadlines and scheduled items produce entries in the agenda when they are over-due, so it is important to be able to mark such an entry as -done once you have done so. When you mark a =DEADLINE= or -a =SCHEDULED= with the TODO keyword =DONE=, it no longer produces +done once you have done so. When you mark a =DEADLINE= or a +=SCHEDULED= with the TODO keyword =DONE=, it no longer produces entries in the agenda. The problem with this is, however, is that then also the /next/ instance of the repeated entry will not be active. Org mode deals with this in the following way: when you try to mark such an entry as done, using {{{kbd(C-c C-t)}}}, it shifts the base date of the repeating timestamp by the repeater interval, and -immediately sets the entry state back to TODO[fn:70]. In the example -above, setting the state to =DONE= would actually switch the date like -this: +immediately sets the entry state back to TODO[fn:: In fact, the target +state is taken from, in this sequence, the =REPEAT_TO_STATE= property, +the variable ~org-todo-repeat-to-state~ if it is a string, the +previous TODO state if ~org-todo-repeat-to-state~ is ~t~, or the first +state of the TODO state sequence.]. In the example above, setting the +state to =DONE= would actually switch the date like this: #+begin_example ,** TODO Pay the rent @@ -6397,7 +6470,7 @@ To mark a task with a repeater as DONE, use {{{kbd(C-- 1 C-c C-t)}}}, i.e., ~org-todo~ with a numeric prefix argument of =-1=. #+vindex: org-log-repeat -A timestamp[fn:71] is added under the deadline, to keep a record that +A timestamp[fn:26] is added under the deadline, to keep a record that you actually acted on the previous instance of this deadline. As a consequence of shifting the base date, this entry is no longer @@ -6467,7 +6540,7 @@ a project. When you start working on an item, you can start the clock. When you stop working on that task, or when you mark the task done, the clock is stopped and the corresponding time interval is recorded. It also computes the total time spent on each -subtree[fn:72] of a project. And it remembers a history or tasks +subtree[fn:27] of a project. And it remembers a history or tasks recently clocked, so that you can jump quickly between a number of tasks absorbing your time. @@ -6480,8 +6553,10 @@ To save the clock history across Emacs sessions, use: #+vindex: org-clock-persist When you clock into a new task after resuming Emacs, the incomplete -clock[fn:73] is retrieved (see [[*Resolving idle time]]) and you are -prompted about what to do with it. +clock[fn:: To resume the clock under the assumption that you have +worked on this task while outside Emacs, use =(setq org-clock-persist +t)=.] is retrieved (see [[*Resolving idle time]]) and you are prompted +about what to do with it. *** Clocking commands :PROPERTIES: @@ -6517,17 +6592,20 @@ prompted about what to do with it. While the clock is running, Org shows the current clocking time in the mode line, along with the title of the task. The clock time shown is all time ever clocked for this task and its children. If - the task has an effort estimate (see [[*Effort Estimates]]), the mode - line displays the current clocking time against it[fn:74]. If the - task is a repeating one (see [[*Repeated tasks]]), show only the time - since the last reset of the task[fn:75]. You can exercise more - control over show time with the =CLOCK_MODELINE_TOTAL= property. It - may have the values =current= to show only the current clocking - instance, =today= to show all time clocked on this tasks today---see - also the variable ~org-extend-today-until~, ~all~ to include all - time, or ~auto~ which is the default[fn:76]. Clicking with - {{{kbd(mouse-1)}}} onto the mode line entry pops up a menu with - clocking options. + the task has an effort estimate (see [[*Effort Estimates]]), the + mode line displays the current clocking time against it[fn:: To add + an effort estimate "on the fly", hook a function doing this to + ~org-clock-in-prepare-hook~.]. If the task is a repeating one (see + [[*Repeated tasks]]), show only the time since the last reset of the + task[fn:: The last reset of the task is recorded by the + =LAST_REPEAT= property.]. You can exercise more control over show + time with the =CLOCK_MODELINE_TOTAL= property. It may have the + values =current= to show only the current clocking instance, =today= + to show all time clocked on this tasks today---see also the variable + ~org-extend-today-until~, ~all~ to include all time, or ~auto~ which + is the default[fn:: See also the variable + ~org-clock-mode-line-total~.]. Clicking with {{{kbd(mouse-1)}}} + onto the mode line entry pops up a menu with clocking options. - {{{kbd(C-c C-x C-o)}}} (~org-clock-out~) :: @@ -6539,7 +6617,8 @@ prompted about what to do with it. computes the resulting time in inserts it after the time range as ==>HH:MM=. See the variable ~org-log-note-clock-out~ for the possibility to record an additional note together with the clock-out - timestamp[fn:77]. + timestamp[fn:: The corresponding in-buffer setting is: =#+STARTUP: + lognoteclock-out=.]. - {{{kbd(C-c C-x C-x)}}} (~org-clock-in-last~) :: @@ -6719,16 +6798,16 @@ be selected: absolutely, or relative to the current time and may be any of these formats: - | =2007-12-31= | New year eve 2007 | - | =2007-12= | December 2007 | - | =2007-W50= | ISO-week 50 in 2007 | - | =2007-Q2= | 2nd quarter in 2007 | - | =2007= | the year 2007 | - | =today=, =yesterday=, =today-N= | a relative day | - | =thisweek=, =lastweek=, =thisweek-N= | a relative week | - | =thismonth=, =lastmonth=, =thismonth-N= | a relative month | - | =thisyear=, =lastyear=, =thisyear-N= | a relative year | - | =untilnow=[fn:78] | all clocked time ever | + | =2007-12-31= | New year eve 2007 | + | =2007-12= | December 2007 | + | =2007-W50= | ISO-week 50 in 2007 | + | =2007-Q2= | 2nd quarter in 2007 | + | =2007= | the year 2007 | + | =today=, =yesterday=, =today-N= | a relative day | + | =thisweek=, =lastweek=, =thisweek-N= | a relative week | + | =thismonth=, =lastmonth=, =thismonth-N= | a relative month | + | =thisyear=, =lastyear=, =thisyear-N= | a relative year | + | =untilnow=[fn:: When using ~:step~, ~untilnow~ starts from the beginning of 2003, not the beginning of time.] | all clocked time ever | #+vindex: org-clock-display-default-range When this option is not set, Org falls back to the value in @@ -6790,7 +6869,9 @@ using the =:formatter= parameter. - =:lang= :: - Language[fn:79] to use for descriptive cells like "Task". + Language[fn:: Language terms can be set through the variable + ~org-clock-clocktable-language-setup~.] to use for descriptive cells + like "Task". - =:link= :: @@ -6874,7 +6955,9 @@ day, you could write: #+end_example #+texinfo: @noindent -To use a specific time range you could write[fn:80] +To use a specific time range you could write[fn:: Note that all +parameters must be specified in a single line---the line is broken +here only to fit it into the manual.] #+begin_example ,#+BEGIN: clocktable :tstart "<2006-08-10 Thu 10:00>" @@ -6930,7 +7013,7 @@ current clock, or applying it to another one. #+vindex: org-clock-x11idle-program-name By customizing the variable ~org-clock-idle-time~ to some integer, such as 10 or 15, Emacs can alert you when you get back to your -computer after being idle for that many minutes[fn:81], and ask what +computer after being idle for that many minutes[fn:28], and ask what you want to do with the idle time. There will be a question waiting for you when you get back, indicating how much idle time has passed constantly updated with the current amount, as well as a set of @@ -7099,12 +7182,14 @@ displayed. #+vindex: org-agenda-columns-add-appointments-to-effort-sum If you switch to column view in the daily/weekly agenda, the effort -column summarizes the estimated work effort for each day[fn:82], and -you can use this to find space in your schedule. To get an overview -of the entire part of the day that is committed, you can set the -option ~org-agenda-columns-add-appointments-to-effort-sum~. The -appointments on a day that take place over a specified time interval -are then also added to the load estimate of the day. +column summarizes the estimated work effort for each day[fn:: Please +note the pitfalls of summing hierarchical data in a flat list (see +[[*Using Column View in the Agenda]]).], and you can use this to find +space in your schedule. To get an overview of the entire part of the +day that is committed, you can set the option +~org-agenda-columns-add-appointments-to-effort-sum~. The appointments +on a day that take place over a specified time interval are then also +added to the load estimate of the day. Effort estimates can be used in secondary agenda filtering that is triggered with the {{{kbd(/)}}} key in the agenda (see [[*Commands in @@ -7232,14 +7317,15 @@ special command: By default, all level 1 headlines in the current buffer are considered to be targets, but you can have more complex definitions across a number of files. See the variable ~org-refile-targets~ for - details. If you would like to select a location via - a file-path-like completion along the outline path, see the - variables ~org-refile-use-outline-path~ and + details. If you would like to select a location via a + file-path-like completion along the outline path, see the variables + ~org-refile-use-outline-path~ and ~org-outline-path-complete-in-steps~. If you would like to be able to create new nodes as new parents for refiling on the fly, check the variable ~org-refile-allow-creating-parent-nodes~. When the - variable ~org-log-refile~[fn:83] is set, a timestamp or a note is - recorded whenever an entry is refiled. + variable ~org-log-refile~[fn:: Note the corresponding =STARTUP= + options =logrefile=, =lognoterefile=, and =nologrefile=.] is set, a + timestamp or a note is recorded whenever an entry is refiled. - {{{kbd(C-u C-c C-w)}}} :: @@ -7720,7 +7806,7 @@ Now lets look at the elements of a template definition. Each entry in - =(file+olp+datetree "filename" [ "Level 1 heading" ...])= :: - This target[fn:84] creates a heading in a date tree[fn:85] for + This target[fn:29] creates a heading in a date tree[fn:30] for today's date. If the optional outline path is given, the tree will be built under the node it is pointing to, instead of at top level. Check out the ~:time-prompt~ and ~:tree-type~ properties @@ -7745,8 +7831,9 @@ Now lets look at the elements of a template definition. Each entry in empty, an appropriate default template will be used. Otherwise this is a string with escape codes, which will be replaced depending on time and context of the capture call. You may also get this - template string from a file[fn:86], or dynamically, from a function - using either syntax: + template string from a file[fn:: When the file name is not absolute, + Org assumes it is relative to ~org-directory~.], or dynamically, + from a function using either syntax: : (file "/path/to/template-file") : (function FUNCTION-RETURNING-THE-TEMPLATE) @@ -7849,9 +7936,10 @@ Now lets look at the elements of a template definition. Each entry in :DESCRIPTION: Filling in information about time and context. :END: -In the template itself, special "%-escapes"[fn:87] allow dynamic -insertion of content. The templates are expanded in the order given -here: +In the template itself, special "%-escapes"[fn:: If you need one of +these sequences literally, escape the =%= with a backslash.] allow +dynamic insertion of content. The templates are expanded in the order +given here: - =%[FILE]= :: @@ -7981,7 +8069,10 @@ here: After completing the template, position point here. #+vindex: org-store-link-props -For specific link types, the following keywords are defined[fn:88]: +For specific link types, the following keywords are defined[fn:: If +you define your own link types (see [[*Adding Hyperlink Types]]), any +property you store with ~org-store-link-props~ can be accessed in +capture templates in a similar way.]: #+vindex: org-link-from-user-regexp | Link type | Available keywords | @@ -7994,7 +8085,7 @@ For specific link types, the following keywords are defined[fn:88]: | | =%:date= (message date header field) | | | =%:date-timestamp= (date as active timestamp) | | | =%:date-timestamp-inactive= (date as inactive timestamp) | -| | =%:fromto= (either "to NAME" or "from NAME")[fn:89] | +| | =%:fromto= (either "to NAME" or "from NAME")[fn:31] | | gnus | =%:group=, for messages also all email fields | | w3, w3m | =%:url= | | info | =%:file=, =%:node= | @@ -8053,7 +8144,9 @@ By default, Org attach uses ID properties when adding attachments to outline nodes. This makes working with attachments fully automated. There is no decision needed for folder-name or location. ID-based directories are by default located in the =data/= directory, which -lives in the same directory where your Org file lives[fn:90]. +lives in the same directory where your Org file lives[fn:: If you move +entries or Org files from one directory to another, you may want to +configure ~org-attach-id-dir~ to contain an absolute path.]. When attachments are made using ~org-attach~ a default tag =ATTACH= is added to the node that gets the attachments. @@ -8450,13 +8543,18 @@ the window configuration is restored when the agenda exits: #+vindex: org-agenda-files The information to be shown is normally collected from all /agenda -files/, the files listed in the variable ~org-agenda-files~[fn:91]. -If a directory is part of this list, all files with the extension -=.org= in this directory are part of the list. +files/, the files listed in the variable ~org-agenda-files~[fn:: If +the value of that variable is not a list, but a single file name, then +the list of agenda files in maintained in that external file.]. If a +directory is part of this list, all files with the extension =.org= in +this directory are part of the list. Thus, even if you only work with a single Org file, that file should -be put into the list[fn:92]. You can customize ~org-agenda-files~, -but the easiest way to maintain it is through the following commands +be put into the list[fn:: When using the dispatcher, pressing +{{{kbd(<)}}} before selecting a command actually limits the command to +the current file, and ignores ~org-agenda-files~ until the next +dispatcher command.]. You can customize ~org-agenda-files~, but the +easiest way to maintain it is through the following commands #+attr_texinfo: :sep and - {{{kbd(C-c [)}}} (~org-agenda-file-to-front~) :: @@ -8592,18 +8690,20 @@ commands: - {{{kbd(<)}}} :: #+kindex: < @r{(Agenda dispatcher)} - Restrict an agenda command to the current buffer[fn:93]. If - narrowing is in effect restrict to the narrowed part of the buffer. - After pressing {{{kbd(<)}}}, you still need to press the character - selecting the command. + Restrict an agenda command to the current buffer[fn:: For backward + compatibility, you can also press {{{kbd(1)}}} to restrict to the + current buffer.]. If narrowing is in effect restrict to the + narrowed part of the buffer. After pressing {{{kbd(<)}}}, you still + need to press the character selecting the command. - {{{kbd(< <)}}} :: #+kindex: < < @r{(Agenda dispatcher)} If there is an active region, restrict the following agenda command - to the region. Otherwise, restrict it to the current - subtree[fn:94]. After pressing {{{kbd(< <)}}}, you still need to - press the character selecting the command. + to the region. Otherwise, restrict it to the current subtree[fn:: + For backward compatibility, you can also press {{{kbd(0)}}} to + restrict to the current region/subtree.]. After pressing {{{kbd(< + <)}}}, you still need to press the character selecting the command. - {{{kbd(*)}}} :: @@ -8652,7 +8752,7 @@ a paper agenda, showing all the tasks for the current week or day. #+cindex: org-agenda, command Compile an agenda for the current week from a list of Org files. The agenda shows the entries for each day. With a numeric prefix - argument[fn:95]---like {{{kbd(C-u 2 1 M-x org-agenda a)}}}---you may + argument[fn:32]---like {{{kbd(C-u 2 1 M-x org-agenda a)}}}---you may set the number of days to be displayed. #+vindex: org-agenda-span @@ -8711,7 +8811,10 @@ move the entries into an Org file. Org mode evaluates diary-style expression entries, and does it faster because there is no overhead for first creating the diary display. Note that the expression entries must start at the left margin, no whitespace is allowed before -them, as seen in the following segment of an Org file:[fn:96] +them, as seen in the following segment of an Org file:[fn:: The +variable ~org-anniversary~ used in the example is just like +~diary-anniversary~, but the argument order is always according to ISO +and therefore independent of the value of ~calendar-date-style~.] #+begin_example ,* Holidays @@ -9213,8 +9316,10 @@ Time ranges can be specified with two timestamps: : <2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15> #+vindex: org-agenda-search-headline-for-time -In the headline of the entry itself, a time(range)---like =12:45= or -a =8:30-1pm=---may also appear as plain text[fn:97]. +In the headline of the entry itself, a time(range)---like =12:45= or a +=8:30-1pm=---may also appear as plain text[fn:: You can, however, +disable this by setting ~org-agenda-search-headline-for-time~ variable +to a ~nil~ value.]. If the agenda integrates the Emacs diary (see [[*Weekly/daily agenda]]), time specifications in diary entries are recognized as well. @@ -9304,7 +9409,7 @@ filters and limits allow to flexibly narrow down the list of agenda entries. /Filters/ only change the visibility of items, are very fast and are -mostly used interactively[fn:98]. You can switch quickly between +mostly used interactively[fn:33]. You can switch quickly between different filters without having to recreate the agenda. /Limits/ on the other hand take effect before the agenda buffer is populated, so they are mostly useful when defined as local variables within custom @@ -9766,11 +9871,13 @@ the other commands, point needs to be in the desired line. agenda always shows a table with the clocked times for the time span and file scope covered by the current agenda view. The initial setting for this mode in new agenda buffers can be set with the - variable ~org-agenda-start-with-clockreport-mode~. By using - a prefix argument when toggling this mode (i.e., {{{kbd(C-u R)}}}), + variable ~org-agenda-start-with-clockreport-mode~. By using a + prefix argument when toggling this mode (i.e., {{{kbd(C-u R)}}}), the clock table does not show contributions from entries that are - hidden by agenda filtering[fn:99]. See also the variables - ~org-clock-report-include-clocking-task~ and ~org-agenda-clock-report-header~. + hidden by agenda filtering[fn:: Only tags filtering is respected + here, effort filtering is ignored.]. See also the variables + ~org-clock-report-include-clocking-task~ and + ~org-agenda-clock-report-header~. - {{{kbd(v c)}}} :: @@ -10209,9 +10316,10 @@ the other commands, point needs to be in the desired line. - {{{kbd(f)}}} :: #+vindex: org-agenda-bulk-custom-functions - Apply a function[fn:100] to marked entries. For example, the - function below sets the =CATEGORY= property of the entries to - =web=. + Apply a function[fn:: You can also create persistent custom + functions through ~org-agenda-bulk-custom-functions~.] to marked + entries. For example, the function below sets the =CATEGORY= + property of the entries to =web=. #+begin_src emacs-lisp (defun set-category () @@ -10249,9 +10357,10 @@ the other commands, point needs to be in the desired line. #+cindex: diary entries, creating from agenda Insert a new entry into the diary, using the date at point and (for block entries) the date at the mark. This adds to the Emacs diary - file[fn:101], in a way similar to the {{{kbd(i)}}} command in the - calendar. The diary file pops up in another window, where you can - add the entry. + file[fn:: This file is parsed for the agenda when + ~org-agenda-include-diary~ is set.], in a way similar to the + {{{kbd(i)}}} command in the calendar. The diary file pops up in + another window, where you can add the entry. #+vindex: org-agenda-diary-file If you configure ~org-agenda-diary-file~ to point to an Org file, @@ -10375,13 +10484,14 @@ after the dispatcher command in order to access the command. Usually this is just a single character, but if you have many similar commands, you can also define two-letter combinations where the first character is the same in several combinations and serves as a prefix -key[fn:102]. The second parameter is the search type, followed by the -string or regular expression to be used for the matching. The example -above will therefore define: +key[fn:: You can provide a description for a prefix key by inserting a +cons cell with the prefix and the description.]. The second parameter +is the search type, followed by the string or regular expression to be +used for the matching. The example above will therefore define: - {{{kbd(x)}}} :: - as a global search for agenda entries planned[fn:103] this week/day. + as a global search for agenda entries planned[fn:34] this week/day. - {{{kbd(y)}}} :: @@ -10561,11 +10671,13 @@ See the docstring of the variable for more information. :END: #+cindex: agenda views, exporting -If you are away from your computer, it can be very useful to have -a printed version of some agenda views to carry around. Org mode can -export custom agenda views as plain text, HTML[fn:104], Postscript, -PDF[fn:105], and iCalendar files. If you want to do this only -occasionally, use the following command: +If you are away from your computer, it can be very useful to have a +printed version of some agenda views to carry around. Org mode can +export custom agenda views as plain text, HTML[fn:: For HTML you need +to install Hrvoje Nikšić's =htmlize.el= as an Emacs package from MELPA +or from [[https://github.com/hniksic/emacs-htmlize][Hrvoje Nikšić's +repository]].], Postscript, PDF[fn:35], and iCalendar files. If you +want to do this only occasionally, use the following command: - {{{kbd(C-x C-w)}}} (~org-agenda-write~) :: #+kindex: C-x C-w @@ -10578,11 +10690,14 @@ occasionally, use the following command: If you need to export certain agenda views frequently, you can associate any custom agenda command with a list of output file -names[fn:106]. Here is an example that first defines custom commands -for the agenda and the global TODO list, together with a number of -files to which to export them. Then we define two block agenda -commands and specify file names for them as well. File names can be -relative to the current working directory, or absolute. +names[fn:: If you want to store standard views like the weekly agenda +or the global TODO list as well, you need to define custom commands +for them in order to be able to specify file names.]. Here is an +example that first defines custom commands for the agenda and the +global TODO list, together with a number of files to which to export +them. Then we define two block agenda commands and specify file names +for them as well. File names can be relative to the current working +directory, or absolute. #+begin_src emacs-lisp (setq org-agenda-custom-commands @@ -10666,7 +10781,8 @@ emacs -eval (org-batch-store-agenda-views) -kill #+end_src #+texinfo: @noindent -or, if you need to modify some parameters[fn:107] +or, if you need to modify some parameters[fn:: Quoting depends on the +system you use, please check the FAQ for examples.] #+begin_src shell emacs -eval '(org-batch-store-agenda-views \ @@ -10936,7 +11052,9 @@ becomes = = in HTML and =~= in LaTeX. #+cindex: special symbols, in-buffer display If you would like to see entities displayed as UTF-8 characters, use -the following command[fn:108]: +the following command[fn:: You can turn this on by default by setting +the variable ~org-pretty-entities~, or on a per-file base with the +=STARTUP= option =entitiespretty=.]: - {{{kbd(C-c C-x \)}}} (~org-toggle-pretty-entities~) :: #+kindex: C-c C-x \ @@ -10949,8 +11067,9 @@ the following command[fn:108]: #+cindex: shy hyphen, special symbol #+cindex: dash, special symbol #+cindex: ellipsis, special symbol -In addition to regular entities defined above, Org exports in -a special way[fn:109] the following commonly used character +In addition to regular entities defined above, Org exports in a +special way[fn:: This behavior can be disabled with =-= export setting +(see [[*Export Settings]]).] the following commonly used character combinations: =\-= is treated as a shy hyphen, =--= and =---= are converted into dashes, and =...= becomes a compact set of dots. @@ -10963,7 +11082,7 @@ converted into dashes, and =...= becomes a compact set of dots. Plain ASCII is normally sufficient for almost all note taking. Exceptions include scientific notes, which often require mathematical -symbols and the occasional formula. LaTeX[fn:110] is widely used to +symbols and the occasional formula. LaTeX[fn:36] is widely used to typeset scientific documents. Org mode supports embedding LaTeX code into its files, because many academics are used to writing and reading LaTeX source code, and because it can be readily processed to produce @@ -10985,7 +11104,7 @@ into images (see [[*Previewing LaTeX fragments]]). LaTeX fragments do not need any special marking at all. The following snippets are identified as LaTeX source code: -- Environments of any kind[fn:111]. The only requirement is that the +- Environments of any kind[fn:37]. The only requirement is that the =\begin= statement appears on a new line, preceded by only whitespace. @@ -11029,7 +11148,7 @@ lines: #+vindex: org-preview-latex-default-process If you have a working LaTeX installation and =dvipng=, =dvisvgm= or -=convert= installed[fn:112], LaTeX fragments can be processed to +=convert= installed[fn:38], LaTeX fragments can be processed to produce images of the typeset expressions to be used for inclusion while exporting to HTML (see [[*LaTeX fragments]]), or for inline previewing within Org mode. @@ -11099,10 +11218,12 @@ more details see the documentation of CDLaTeX mode): - {{{kbd(TAB)}}} :: #+kindex: TAB - The {{{kbd(TAB)}}} key expands the template if point is inside - a LaTeX fragment[fn:113]. For example, {{{kbd(TAB)}}} expands =fr= - to =\frac{}{}= and position point correctly inside the first brace. - Another {{{kbd(TAB)}}} gets you into the second brace. + The {{{kbd(TAB)}}} key expands the template if point is inside a + LaTeX fragment[fn:: Org mode has a method to test if point is inside + such a fragment, see the documentation of the function + ~org-inside-LaTeX-fragment-p~.]. For example, {{{kbd(TAB)}}} + expands =fr= to =\frac{}{}= and position point correctly inside the + first brace. Another {{{kbd(TAB)}}} gets you into the second brace. Even outside fragments, {{{kbd(TAB)}}} expands environment abbreviations at the beginning of a line. For example, if you write @@ -11183,9 +11304,9 @@ Here is an example #+vindex: org-latex-src-block-backend If the example is source code from a programming language, or any other text that can be marked up by Font Lock in Emacs, you can ask -for the example to look like the fontified Emacs buffer[fn:114]. This +for the example to look like the fontified Emacs buffer[fn:39]. This is done with the code block, where you also need to specify the name -of the major mode that should be used to fontify the example[fn:115], +of the major mode that should be used to fontify the example[fn:40], see [[*Structure Templates]] for shortcuts to easily insert code blocks. #+cindex: @samp{BEGIN_SRC} @@ -11226,9 +11347,12 @@ In HTML, hovering the mouse over such a link remote-highlights the corresponding code line, which is kind of cool. You can also add a =-r= switch which /removes/ the labels from the -source code[fn:116]. With the =-n= switch, links to these references -are labeled by the line numbers from the code listing. Otherwise -links use the labels with no parentheses. Here is an example: +source code[fn:: Adding =-k= to =-n -r= /keeps/ the labels in the +source code while using line numbers for the links, which might be +useful to explain those in an Org mode example code.]. With the =-n= +switch, links to these references are labeled by the line numbers from +the code listing. Otherwise links use the labels with no parentheses. +Here is an example: #+begin_example -l "(dumb-reference:%s)" ,#+BEGIN_SRC emacs-lisp -n -r @@ -11270,10 +11394,11 @@ a shortcut is provided (see [[*Structure Templates]]). works by switching to a temporary buffer with the source code. You need to exit by pressing {{{kbd(C-c ')}}} again. The edited version then replaces the old version in the Org buffer. Fixed-width - regions---where each line starts with a colon followed by - a space---are edited using Artist mode[fn:117] to allow creating - ASCII drawings easily. Using this command in an empty line creates - a new fixed-width region. + regions---where each line starts with a colon followed by a + space---are edited using Artist mode[fn:: You may select a different + mode with the variable ~org-edit-fixed-width-region-mode~.] to allow + creating ASCII drawings easily. Using this command in an empty line + creates a new fixed-width region. #+cindex: storing link, in a source code buffer Calling ~org-store-link~ (see [[*Handling Links]]) while editing a source @@ -11290,8 +11415,10 @@ the end of the current line. Then the label is stored as a link #+cindex: inlining images #+cindex: images, markup rules -An image is a link to an image file[fn:118] that does not have -a description part, for example +An image is a link to an image file[fn:: What Emacs considers to be an +image depends on ~image-file-name-extensions~ and +~image-file-name-regexps~.] that does not have a description part, for +example : ./img/cat.jpg @@ -11314,17 +11441,22 @@ command: #+kindex: C-c C-x C-v #+findex: org-toggle-inline-images #+vindex: org-startup-with-inline-images - Toggle the inline display of linked images. When called with - a prefix argument, also display images that do have a link + Toggle the inline display of linked images. When called with a + prefix argument, also display images that do have a link description. You can ask for inline images to be displayed at startup by configuring the variable - ~org-startup-with-inline-images~[fn:119]. + ~org-startup-with-inline-images~[fn:: The variable + ~org-startup-with-inline-images~ can be set within a buffer with the + =STARTUP= options =inlineimages= and =noinlineimages=.]. #+vindex: org-image-actual-width #+cindex: @samp{ORG-IMAGE-ACTUAL-WIDTH}, property - By default, Org mode displays inline images according to their actual width. - You can customize the displayed image width using ~org-image-actual-width~ variable (globally) or =ORG-IMAGE-ACTUAL-WIDTH= property (subtree-level)[fn:120]. + By default, Org mode displays inline images according to their + actual width. You can customize the displayed image width using + ~org-image-actual-width~ variable (globally) or + =ORG-IMAGE-ACTUAL-WIDTH= property (subtree-level)[fn:: The width can + be customized in Emacs >= 24.1, built with imagemagick support.]. Their value can be the following: - (default) Non-nil, use the actual width of images when inlining them. - When set to a number, use imagemagick (when available) to set the @@ -11387,7 +11519,7 @@ text. Markers always start with =fn:=. For example: #+begin_example The Org website[fn:1] now looks a lot better than it used to. ... -[fn:1] The link is: https://orgmode.org +[fn:55] The link is: https://orgmode.org #+end_example Org mode extends the number-based syntax to /named/ footnotes and @@ -11428,9 +11560,11 @@ The following command handles footnotes: #+vindex: org-footnote-define-inline #+vindex: org-footnote-section Otherwise, create a new footnote. Depending on the variable - ~org-footnote-define-inline~[fn:121], the definition is placed right - into the text as part of the reference, or separately into the - location determined by the variable ~org-footnote-section~. + ~org-footnote-define-inline~[fn:: The corresponding in-buffer + setting is: =#+STARTUP: fninline= or =#+STARTUP: nofninline=.], the + definition is placed right into the text as part of the reference, + or separately into the location determined by the variable + ~org-footnote-section~. When this command is called with a prefix argument, a menu of additional options is offered: @@ -11443,9 +11577,10 @@ The following command handles footnotes: | {{{kbd(d)}}} | Delete the footnote at point, including definition and references. | #+vindex: org-footnote-auto-adjust - Depending on the variable ~org-footnote-auto-adjust~[fn:122], - renumbering and sorting footnotes can be automatic after each - insertion or deletion. + Depending on the variable ~org-footnote-auto-adjust~[fn:: The + corresponding in-buffer options are =#+STARTUP: fnadjust= and + =#+STARTUP: nofnadjust=.], renumbering and sorting footnotes can be + automatic after each insertion or deletion. - {{{kbd(C-c C-c)}}} :: @@ -11611,7 +11746,7 @@ can be inserted from the export dispatcher (see [[*The Export Dispatcher]]) using the =Insert template= command by pressing {{{kbd(#)}}}. To insert keywords individually, a good way to make sure the keyword is correct is to type =#+= and then to use -{{{kbd(M-TAB)}}}[fn:16] for completion. +{{{kbd(M-TAB)}}}[fn:6] for completion. The export keywords available for every back-end, and their equivalent global variables, include: @@ -11633,7 +11768,9 @@ global variables, include: #+cindex: @samp{DATE}, keyword #+vindex: org-export-date-timestamp-format - A date or a time-stamp[fn:123]. + A date or a time-stamp[fn:: The variable + ~org-export-date-timestamp-format~ defines how this timestamp are + exported.]. - =EMAIL= :: @@ -11648,7 +11785,7 @@ global variables, include: Language to use for translating certain strings (~org-export-default-language~). With =#+LANGUAGE: fr=, for example, Org translates =Table of contents= to the French =Table des - matières=[fn:124]. + matières=[fn:41]. - =SELECT_TAGS= :: @@ -11925,7 +12062,7 @@ keyword: #+cindex: excluding entries from table of contents #+cindex: table of contents, exclude entries Org includes both numbered and unnumbered headlines in the table of -contents[fn:125]. If you need to exclude an unnumbered headline, +contents[fn:42]. If you need to exclude an unnumbered headline, along with all its children, set the =UNNUMBERED= property to =notoc= value. @@ -12044,7 +12181,7 @@ be omitted to use the obvious defaults. | =#+INCLUDE: "~/.emacs" :lines "10-"= | Include lines from 10 to EOF | Inclusions may specify a file-link to extract an object matched by -~org-link-search~[fn:126] (see [[*Search Options in File Links]]). The +~org-link-search~[fn:43] (see [[*Search Options in File Links]]). The ranges for =:lines= keyword are relative to the requested element. Therefore, @@ -12084,7 +12221,7 @@ following syntax: : #+MACRO: name replacement text; $1, $2 are arguments #+texinfo: @noindent -which can be referenced using ={{{name(arg1, arg2)}}}=[fn:127]. For +which can be referenced using ={{{name(arg1, arg2)}}}=[fn:44]. For example #+begin_example @@ -12203,8 +12340,9 @@ are not exported. Finally, a =COMMENT= keyword at the beginning of an entry, but after any other keyword or priority cookie, comments out the entire subtree. In this case, the subtree is not exported and no code block within it -is executed either[fn:128]. The command below helps changing the -comment status of a headline. +is executed either[fn:: For a less drastic behavior, consider using a +select tag (see [[*Export Settings]]) instead.]. The command below +helps changing the comment status of a headline. - {{{kbd(C-c ;)}}} (~org-toggle-comment~) :: #+kindex: C-c ; @@ -12475,7 +12613,7 @@ should in principle be exportable as a Beamer presentation. - Org exports a Beamer frame's objects as block environments. Org can enforce wrapping in special block types when =BEAMER_ENV= property - is set[fn:129]. For valid values see + is set[fn:45]. For valid values see ~org-beamer-environments-default~. To add more values, see ~org-beamer-environments-extra~. #+vindex: org-beamer-environments-default @@ -13062,10 +13200,13 @@ as-is. #+vindex: org-html-mathjax-options~ LaTeX math snippets (see [[*LaTeX fragments]]) can be displayed in two -different ways on HTML pages. The default is to use the [[https://www.mathjax.org][MathJax]], -which should work out of the box with Org[fn:130][fn:131]. Some MathJax -display options can be configured via ~org-html-mathjax-options~, or -in the buffer. For example, with the following settings, +different ways on HTML pages. The default is to use the +[[https://www.mathjax.org][MathJax]], which should work out of the box +with Org[fn:: By default Org loads MathJax from +[[https://cdnjs.com][cdnjs.com]] as recommended by +[[https://www.mathjax.org][MathJax]].][fn:46]. Some MathJax display +options can be configured via ~org-html-mathjax-options~, or in the +buffer. For example, with the following settings, #+begin_example ,#+HTML_MATHJAX: align: left indent: 5em tagside: left font: Neo-Euler @@ -13075,7 +13216,10 @@ in the buffer. For example, with the following settings, #+texinfo: @noindent equation labels are displayed on the left margin and equations are five em from the left margin. In addition, it loads the two MathJax -extensions =cancel.js= and =noErrors.js=[fn:132]. +extensions =cancel.js= and =noErrors.js=[fn:: See +[[http://docs.mathjax.org/en/latest/input/tex/extensions.html#tex-and-latex-extensions][TeX +and LaTeX extensions]] in the [[http://docs.mathjax.org][MathJax +manual]] to learn about extensions.]. #+vindex: org-html-mathjax-template See the docstring of ~org-html-mathjax-options~ for all supported @@ -13138,10 +13282,12 @@ line. #+vindex: org-export-html-todo-kwd-class-prefix #+vindex: org-export-html-tag-class-prefix You can modify the CSS style definitions for the exported file. The -HTML exporter assigns the following special CSS classes[fn:133] to -appropriate parts of the document---your style specifications may -change these, in addition to any of the standard classes like for -headlines, tables, etc. +HTML exporter assigns the following special CSS classes[fn:: If the +classes on TODO keywords and tags lead to conflicts, use the variables +~org-html-todo-kwd-class-prefix~ and ~org-html-tag-class-prefix~ to +make them unique.] to appropriate parts of the document---your style +specifications may change these, in addition to any of the standard +classes like for headlines, tables, etc. | ~p.author~ | author information, including email | | ~p.date~ | publishing date | @@ -13375,7 +13521,7 @@ LaTeX export back-end finds the compiler version to use from Org file. See the docstring for the ~org-latex-default-packages-alist~ for loading packages with certain compilers. Also see ~org-latex-bibtex-compiler~ to set the -bibliography compiler[fn:134]. +bibliography compiler[fn:47]. *** LaTeX specific export settings :PROPERTIES: @@ -13913,8 +14059,11 @@ The LaTeX export back-end passes string values in =:options= to LaTeX packages for customization of that specific source block. In the example below, the =:options= are set for Engraved or Minted. Minted is a source code highlighting LaTeX package with many configurable -options[fn:135]. Both Minted and Engraved are built on [[https://www.ctan.org/pkg/fvextra][fvextra]], and -so support many of the same options. +options[fn:: Minted uses an external Python package for code +highlighting, which requires the flag =-shell-escape= to be added to +~org-latex-pdf-process~.]. Both Minted and Engraved are built on +[[https://www.ctan.org/pkg/fvextra][fvextra]], and so support many of +the same options. #+begin_example ,#+ATTR_LATEX: :options mathescape @@ -14166,8 +14315,10 @@ a limit to a level before the absolute limit (see [[*Export Settings]]). The ODT export back-end handles creating of OpenDocument Text (ODT) format. Documents created by this exporter use the -{{{cite(OpenDocument-v1.2 specification)}}}[fn:136] and are compatible -with LibreOffice 3.4. +{{{cite(OpenDocument-v1.2 specification)}}}[fn:: See +[[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][Open +Document Format for Office Applications (OpenDocument) Version 1.2]].] +and are compatible with LibreOffice 3.4. *** Pre-requisites for ODT export :PROPERTIES: @@ -14567,8 +14718,10 @@ document in one of the following ways: variables ~org-latex-to-mathml-convert-command~ and ~org-latex-to-mathml-jar-file~. - If you prefer to use MathToWeb[fn:137] as your converter, you can - configure the above variables as shown below. + If you prefer to use MathToWeb[fn:: See + [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]].] + as your converter, you can configure the above variables as shown + below. #+begin_src emacs-lisp (setq org-latex-to-mathml-convert-command @@ -14578,7 +14731,8 @@ document in one of the following ways: #+end_src #+texinfo: @noindent - or, to use LaTeX​ML[fn:138] instead, + or, to use LaTeX​ML[fn:: See [[http://dlmf.nist.gov/LaTeXML/]].] + instead, #+begin_src emacs-lisp (setq org-latex-to-mathml-convert-command @@ -14897,7 +15051,9 @@ with the =#+ATTR_ODT= line. For a discussion on default formatting of tables, see [[*Tables in ODT export]]. This feature closely mimics the way table templates are defined in the -OpenDocument-v1.2 specification[fn:139]. +OpenDocument-v1.2 specification[fn:: +[[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][OpenDocument-v1.2 +Specification]]]. #+vindex: org-odt-table-styles For quick preview of this feature, install the settings below and export the @@ -14931,7 +15087,8 @@ templates, define new styles there. To use this feature proceed as follows: -1. Create a table template[fn:140]. +1. Create a table template[fn:: See the == + element of the OpenDocument-v1.2 specification.]. A table template is set of =table-cell= and =paragraph= styles for each of the following table cell categories: @@ -14970,7 +15127,12 @@ To use this feature proceed as follows: == element of the content template file (see [[x-orgodtcontenttemplate-xml][Factory styles]]). -2. Define a table style[fn:141]. +2. Define a table style[fn:: See the attributes =table:template-name=, + =table:use-first-row-styles=, =table:use-last-row-styles=, + =table:use-first-column-styles=, =table:use-last-column-styles=, + =table:use-banding-rows-styles=, and + =table:use-banding-column-styles= of the == element in + the OpenDocument-v1.2 specification.]. #+vindex: org-odt-table-styles To define a table style, create an entry for the style in the @@ -16201,7 +16363,9 @@ If you want to publish the Org file as an =.org= file but with ~org-org-publish-to-org~. This produces =file.org= and puts it in the publishing directory. If you want a htmlized version of this file, set the parameter ~:htmlized-source~ to ~t~. It produces -=file.org.html= in the publishing directory[fn:142]. +=file.org.html= in the publishing directory[fn:: If the publishing +directory is the same as the source directory, =file.org= is exported +as =file.org.org=, so you probably do not want to do this.]. Other files like images only need to be copied to the publishing destination; for this you can use ~org-publish-attachment~. For @@ -17822,13 +17986,15 @@ See [[*Languages]] to enable other languages. #+kindex: C-c C-v e #+findex: org-babel-execute-src-block Org provides many ways to execute code blocks. {{{kbd(C-c C-c)}}} or -{{{kbd(C-c C-v e)}}} with the point on a code block[fn:143] calls the +{{{kbd(C-c C-v e)}}} with the point on a code block[fn:: The option +~org-babel-no-eval-on-ctrl-c-ctrl-c~ can be used to remove code +evaluation from the {{{kbd(C-c C-c)}}} key binding.] calls the ~org-babel-execute-src-block~ function, which executes the code in the block, collects the results, and inserts them in the buffer. #+cindex: @samp{CALL}, keyword #+vindex: org-babel-inline-result-wrap -By calling a named code block[fn:144] from an Org mode buffer or +By calling a named code block[fn:48] from an Org mode buffer or a table. Org can call the named code blocks from the current Org mode buffer or from the "Library of Babel" (see [[*Library of Babel]]). @@ -18029,7 +18195,7 @@ they are mutually exclusive. - =value= :: - Default for most Babel libraries[fn:144]. Functional mode. Org + Default for most Babel libraries[fn:48]. Functional mode. Org gets the value by wrapping the code in a function definition in the language of the source block. That is why when using =:results value=, code should execute like a function and return a value. For @@ -18764,7 +18930,8 @@ for Python and Emacs Lisp languages. #+cindex: @samp{noweb-ref}, header argument Source code blocks can include references to other source code blocks, -using a noweb[fn:145] style syntax: +using a noweb[fn:: For noweb literate programming details, see +http://www.cs.tufts.edu/~nr/noweb/.] style syntax: : <> @@ -19292,7 +19459,8 @@ Org Tempo expands snippets to structures defined in ~org-structure-template-alist~ and ~org-tempo-keywords-alist~. For example, {{{kbd(< s TAB)}}} creates a code block. Enable it by customizing ~org-modules~ or add =(require 'org-tempo)= to your Emacs -init file[fn:146]. +init file[fn:: For more information, please refer to the commentary +section in =org-tempo.el=.]. #+attr_texinfo: :columns 0.1 0.9 | {{{kbd(a)}}} | =#+BEGIN_EXPORT ascii= ... =#+END_EXPORT= | @@ -19372,7 +19540,7 @@ in the desired amount with hard spaces and hiding leading stars. To display the buffer in the indented view, activate Org Indent minor mode, using {{{kbd(M-x org-indent-mode)}}}. Text lines that are not headlines are prefixed with virtual spaces to vertically align with -the headline text[fn:147]. +the headline text[fn:49]. #+vindex: org-indent-indentation-per-level To make more horizontal space, the headlines are shifted by two @@ -19400,9 +19568,10 @@ use =STARTUP= keyword as follows: It is possible to use hard spaces to achieve the indentation instead, if the bare ASCII file should have the indented look also outside -Emacs[fn:148]. With Org's support, you have to indent all lines to -line up with the outline headers. You would use these -settings[fn:149]: +Emacs[fn:50]. With Org's support, you have to indent all lines to +line up with the outline headers. You would use these settings[fn:: +~org-adapt-indentation~ can also be set to ='headline-data=, in which +case only data lines below the headline will be indented.]: #+begin_src emacs-lisp (setq org-adapt-indentation t @@ -19673,7 +19842,10 @@ changes. #+vindex: org-startup-indented Dynamic virtual indentation is controlled by the variable - ~org-startup-indented~[fn:150]. + ~org-startup-indented~[fn:: Note that Org Indent mode also sets the + ~wrap-prefix~ property, such that Visual Line mode (or purely + setting ~word-wrap~) wraps long lines, including headlines, + correctly indented.]. | =indent= | Start with Org Indent mode turned on. | | =noindent= | Start with Org Indent mode turned off. | @@ -20531,7 +20703,7 @@ Tags]]) only for those set in these variables. #+vindex: org-mobile-directory The mobile application needs access to a file directory on -a server[fn:151] to interact with Emacs. Pass its location through +a server[fn:51] to interact with Emacs. Pass its location through the ~org-mobile-directory~ variable. If you can mount that directory locally just set the variable to point to that directory: @@ -20552,10 +20724,12 @@ With a public server, consider encrypting the files. Org also requires OpenSSL installed on the local computer. To turn on encryption, set the same password in the mobile application and in Emacs. Set the password in the variable -~org-mobile-use-encryption~[fn:152]. Note that even after the mobile -application encrypts the file contents, the file name remains visible -on the file systems of the local computer, the server, and the mobile -device. +~org-mobile-use-encryption~[fn:: If Emacs is configured for safe +storing of passwords, then configure the variable +~org-mobile-encryption-password~; please read the docstring of that +variable.]. Note that even after the mobile application encrypts the +file contents, the file name remains visible on the file systems of +the local computer, the server, and the mobile device. *** Pushing to the mobile application :PROPERTIES: @@ -20568,16 +20742,19 @@ The command ~org-mobile-push~ copies files listed in ~org-mobile-files~ into the staging area. Files include agenda files (as listed in ~org-agenda-files~). Customize ~org-mobile-files~ to add other files. File names are staged with paths relative to -~org-directory~, so all files should be inside this directory[fn:153]. +~org-directory~, so all files should be inside this directory[fn:: +Symbolic links in ~org-directory~ need to have the same name as their +targets.]. Push creates a special Org file =agendas.org= with custom agenda views -defined by the user[fn:154]. +defined by the user[fn:52]. Finally, Org writes the file =index.org=, containing links to other files. The mobile application reads this file first from the server to determine what other files to download for agendas. For faster -downloads, it is expected to only read files whose checksums[fn:155] -have changed. +downloads, it is expected to only read files whose checksums[fn:: +Checksums are stored automatically in the file =checksums.dat=.] have +changed. *** Pulling from the mobile application :PROPERTIES: @@ -20593,11 +20770,12 @@ data in an inbox file format, through the following steps: 1. #+vindex: org-mobile-inbox-for-pull - Org moves all entries found in =mobileorg.org=[fn:156] and appends - them to the file pointed to by the variable - ~org-mobile-inbox-for-pull~. It should reside neither in the - staging area nor on the server. Each captured entry and each - editing event is a top-level entry in the inbox file. + Org moves all entries found in =mobileorg.org=[fn:: The file will + be empty after this operation.] and appends them to the file + pointed to by the variable ~org-mobile-inbox-for-pull~. It should + reside neither in the staging area nor on the server. Each + captured entry and each editing event is a top-level entry in the + inbox file. 2. #+cindex: @samp{FLAGGED}, tag @@ -20887,11 +21065,12 @@ of these strategies: #+cindex: @LaTeX{}, and Orgtbl mode To wrap a source table in LaTeX, use the =comment= environment -provided by =comment.sty=[fn:157]. To activate it, put -~\usepackage{comment}~ in the document header. Orgtbl mode inserts -a radio table skeleton[fn:158] with the command {{{kbd(M-x -orgtbl-insert-radio-table)}}}, which prompts for a table name. For -example, if =salesfigures= is the name, the template inserts: +provided by =comment.sty=[fn:: https://www.ctan.org/pkg/comment]. To +activate it, put ~\usepackage{comment}~ in the document header. +Orgtbl mode inserts a radio table skeleton[fn:53] with the command +{{{kbd(M-x orgtbl-insert-radio-table)}}}, which prompts for a table +name. For example, if =salesfigures= is the name, the template +inserts: #+begin_example % BEGIN RECEIVE ORGTBL salesfigures @@ -20908,7 +21087,7 @@ The line =#+ORGTBL: SEND= tells Orgtbl mode to use the function ~orgtbl-to-latex~ to convert the table to LaTeX format, then insert the table at the target (receive) location named =salesfigures=. Now the table is ready for data entry. It can even use spreadsheet -features[fn:159]: +features[fn:54]: #+begin_example % BEGIN RECEIVE ORGTBL salesfigures @@ -21124,10 +21303,12 @@ Dynamic blocks, like any other block, can be narrowed with #+vindex: org-agenda-skip-function #+vindex: org-agenda-skip-function-global Org provides a special hook to further limit items in agenda views: -~agenda~, ~agenda*~[fn:160], ~todo~, ~alltodo~, ~tags~, ~tags-todo~, -~tags-tree~. Specify a custom function that tests inclusion of every -matched item in the view. This function can also skip as much as is -needed. +~agenda~, ~agenda*~[fn:: The ~agenda*~ view is the same as ~agenda~ +except that it only considers /appointments/, i.e., scheduled and +deadline items that have a time specification =[h]h:mm= in their +time-stamps.], ~todo~, ~alltodo~, ~tags~, ~tags-todo~, ~tags-tree~. +Specify a custom function that tests inclusion of every matched item +in the view. This function can also skip as much as is needed. For a global condition applicable to agenda views, use the ~org-agenda-skip-function-global~ variable. Org uses a global @@ -21167,9 +21348,11 @@ meaningful string suitable for the agenda view. #+vindex: org-agenda-skip-function Search for entries with a limit set on levels for the custom search. This is a general approach to creating custom searches in Org. To -include all levels, use =LEVEL>0=[fn:161]. Then to selectively pick -the matched entries, use ~org-agenda-skip-function~, which also -accepts Lisp forms, such as ~org-agenda-skip-entry-if~ and +include all levels, use =LEVEL>0=[fn:: Note that, for +~org-odd-levels-only~, a level number corresponds to order in the +hierarchy, not to the number of stars.]. Then to selectively pick the +matched entries, use ~org-agenda-skip-function~, which also accepts +Lisp forms, such as ~org-agenda-skip-entry-if~ and ~org-agenda-skip-subtree-if~. For example: - =(org-agenda-skip-entry-if 'scheduled)= :: @@ -22066,228 +22249,106 @@ modify this GNU manual." * Footnotes -[fn:1] If you do not use Font Lock globally turn it on in Org buffer -with =(add-hook 'org-mode-hook #'turn-on-font-lock)=. - -[fn:2] Please consider subscribing to the mailing list in order to -minimize the work the mailing list moderators have to do. - -[fn:3] See the variables ~org-special-ctrl-a/e~, ~org-special-ctrl-k~, +[fn:1] See the variables ~org-special-ctrl-a/e~, ~org-special-ctrl-k~, and ~org-ctrl-k-protect-subtree~ to configure special behavior of {{{kbd(C-a)}}}, {{{kbd(C-e)}}}, and {{{kbd(C-k)}}} in headlines. Note also that clocking only works with headings indented less than 30 stars. -[fn:4] See, however, the option ~org-cycle-emulate-tab~. - -[fn:5] The indirect buffer contains the entire buffer, but is narrowed +[fn:2] The indirect buffer contains the entire buffer, but is narrowed to the current tree. Editing the indirect buffer also changes the original buffer, but without affecting visibility in that buffer. For more information about indirect buffers, see [[info:emacs#Indirect Buffers][GNU Emacs Manual]]. -[fn:6] When ~org-agenda-inhibit-startup~ is non-~nil~, Org does not -honor the default visibility state when first opening a file for the -agenda (see [[*Speeding Up Your Agendas]]). - -[fn:7] See also the variable ~org-show-context-detail~ to decide how -much context is shown around each match. - -[fn:8] This depends on the option ~org-remove-highlights-with-change~. - -[fn:9] When using =*= as a bullet, lines must be indented so that they +[fn:3] When using =*= as a bullet, lines must be indented so that they are not interpreted as headlines. Also, when you are hiding leading stars to get a clean outline view, plain list items starting with a star may be hard to distinguish from true headlines. In short: even though =*= is supported, it may be better to not use it for plain list items. -[fn:10] You can filter out any of them by configuring -~org-plain-list-ordered-item-terminator~. - -[fn:11] You can also get =a.=, =A.=, =a)= and =A)= by configuring +[fn:4] You can also get =a.=, =A.=, =a)= and =A)= by configuring ~org-list-allow-alphabetical~. To minimize confusion with normal text, those are limited to one character only. Beyond that limit, bullets automatically become numbers. -[fn:12] If there's a checkbox in the item, the cookie must be put +[fn:5] If there's a checkbox in the item, the cookie must be put /before/ the checkbox. If you have activated alphabetical lists, you can also use counters like =[@b]=. -[fn:13] If you do not want the item to be split, customize the -variable ~org-M-RET-may-split-line~. - -[fn:14] If you want to cycle around items that way, you may customize -~org-list-use-circular-motion~. - -[fn:15] See ~org-list-use-circular-motion~ for a cyclic behavior. - -[fn:16] Many desktops intercept {{{kbd(M-TAB)}}} to switch windows. +[fn:6] Many desktops intercept {{{kbd(M-TAB)}}} to switch windows. Use {{{kbd(C-M-i)}}} or {{{kbd(ESC TAB)}}} instead. -[fn:17] To insert a vertical bar into a table field, use =\vert= or, -inside a word =abc\vert{}def=. - -[fn:18] Org understands references typed by the user as =B4=, but it +[fn:7] Org understands references typed by the user as =B4=, but it does not use this syntax when offering a formula for editing. You can customize this behavior using the variable ~org-table-use-standard-references~. -[fn:19] The computation time scales as O(N^2) because table -{{{var(FOO)}}} is parsed for each field to be copied. - -[fn:20] The file =constants.el= can supply the values of constants in +[fn:8] The file =constants.el= can supply the values of constants in two different unit systems, =SI= and =cgs=. Which one is used depends on the value of the variable ~constants-unit-system~. You can use the =STARTUP= options =constSI= and =constcgs= to set this value for the current buffer. -[fn:21] The printf reformatting is limited in precision because the +[fn:9] The printf reformatting is limited in precision because the value passed to it is converted into an "integer" or "double". The "integer" is limited in size by truncating the signed value to 32 bits. The "double" is limited in precision to 64 bits overall which leaves approximately 16 significant decimal digits. -[fn:22] Such names must start with an alphabetic character and use -only alphanumeric/underscore characters. - -[fn:23] Plain URIs are recognized only for a well-defined set of +[fn:10] Plain URIs are recognized only for a well-defined set of schemes. See [[*External Links]]. Unlike URI syntax, they cannot contain parenthesis or white spaces, either. URIs within angle brackets have no such limitation. -[fn:24] More accurately, the precise behavior depends on how point -arrived there---see [[info:elisp#Invisible Text][Invisible Text]]. - -[fn:25] To insert a link targeting a headline, in-buffer completion +[fn:11] To insert a link targeting a headline, in-buffer completion can be used. Just type a star followed by a few optional letters into the buffer and press {{{kbd(M-TAB)}}}. All headlines in the current buffer are offered as completions. -[fn:26] When targeting a =NAME= keyword, the =CAPTION= keyword is -mandatory in order to get proper numbering (see [[*Captions]]). - -[fn:27] The actual behavior of the search depends on the value of the +[fn:12] The actual behavior of the search depends on the value of the variable ~org-link-search-must-match-exact-headline~. If its value is ~nil~, then a fuzzy text search is done. If it is ~t~, then only the exact headline is matched, ignoring spaces and statistic cookies. If the value is ~query-to-create~, then an exact headline is searched; if it is not found, then the user is queried to create it. -[fn:28] If the headline contains a timestamp, it is removed from the -link, which results in a wrong link---you should avoid putting -a timestamp in the headline. - -[fn:29] The Org Id library must first be loaded, either through -~org-customize~, by enabling ~id~ in ~org-modules~, or by adding -=(require 'org-id)= in your Emacs init file. - -[fn:30] Note that you do not have to use this command to insert +[fn:13] Note that you do not have to use this command to insert a link. Links in Org are plain text, and you can type or paste them straight into the buffer. By using this command, the links are automatically enclosed in double brackets, and you will be asked for the optional descriptive text. -[fn:31] After insertion of a stored link, the link will be removed +[fn:14] After insertion of a stored link, the link will be removed from the list of stored links. To keep it in the list for later use, use a triple {{{kbd(C-u)}}} prefix argument to {{{kbd(C-c C-l)}}}, or configure the option ~org-link-keep-stored-after-insertion~. -[fn:32] This works if a function has been defined in the ~:complete~ -property of a link in ~org-link-parameters~. - -[fn:33] See the variable ~org-link-use-indirect-buffer-for-internals~. - -[fn:34] For backward compatibility, line numbers can also follow a -single colon. - -[fn:35] Of course, you can make a document that contains only long -lists of TODO items, but this is not required. - -[fn:36] Changing the variable ~org-todo-keywords~ only becomes -effective after restarting Org mode in a buffer. - -[fn:37] This is also true for the {{{kbd(t)}}} command in the agenda -buffer. - -[fn:38] All characters are allowed except =@=, =^= and =!=, which have -a special meaning here. - -[fn:39] Check also the variable ~org-fast-tag-selection-include-todo~, +[fn:15] Check also the variable ~org-fast-tag-selection-include-todo~, it allows you to change the TODO state through the tags interface (see [[*Setting Tags]]), in case you like to mingle the two concepts. Note that this means you need to come up with unique keys across both sets of keywords. -[fn:40] Org mode parses these lines only when Org mode is activated -after visiting a file. {{{kbd(C-c C-c)}}} with point in a line -starting with =#+= is simply restarting Org mode for the current -buffer. - -[fn:41] The corresponding in-buffer setting is: =#+STARTUP: logdone=. - -[fn:42] The corresponding in-buffer setting is: =#+STARTUP: -lognotedone=. - -[fn:43] See the variable ~org-log-states-order-reversed~. - -[fn:44] Note that the =LOGBOOK= drawer is unfolded when pressing -{{{kbd(SPC)}}} in the agenda to show an entry---use {{{kbd(C-u -SPC)}}} to keep it folded here. - -[fn:45] It is possible that Org mode records two timestamps when you +[fn:16] It is possible that Org mode records two timestamps when you are using both ~org-log-done~ and state change logging. However, it never prompts for two notes: if you have configured both, the state change recording note takes precedence and cancel the closing note. -[fn:46] See also the option ~org-priority-start-cycle-with-default~. - -[fn:47] To keep subtasks out of the global TODO list, see the option -~org-agenda-todo-list-sublevels~. - -[fn:48] With the exception of description lists. But you can allow it +[fn:17] With the exception of description lists. But you can allow it by modifying ~org-list-automatic-rules~ accordingly. -[fn:49] Set the variable ~org-hierarchical-checkbox-statistics~ if you -want such cookies to count all checkboxes below the cookie, not just -those belonging to direct children. - -[fn:50] {{{kbd(C-u C-c C-c)}}} on the /first/ item of a list with no -checkbox adds checkboxes to the rest of the list. - -[fn:51] As with all these in-buffer settings, pressing {{{kbd(C-c -C-c)}}} activates any changes in the line. - -[fn:52] This is only true if the search does not involve more complex -tests including properties (see [[*Property Searches]]). - -[fn:53] To extend this default list to all tags used in all agenda -files (see [[*Agenda Views]]), customize the variable -~org-complete-tags-always-offer-all-agenda-tags~. - -[fn:54] Keys are automatically assigned to tags that have no -configured keys. - -[fn:55] If more than one summary type applies to the same property, -the parent values are computed according to the first of them. - -[fn:56] An age can be defined as a duration, using units defined in +[fn:18] An age can be defined as a duration, using units defined in ~org-duration-units~, e.g., =3d 1h=. If any value in the column is as such, the summary is also expressed as a duration. -[fn:57] Please note that the =COLUMNS= definition must be on a single -line; it is wrapped here only because of formatting constraints. - -[fn:58] Contributed packages are not part of Emacs, but are -distributed with the main distribution of Org---visit -[[https://orgmode.org]]. - -[fn:59] The Org date format is inspired by the standard ISO 8601 +[fn:19] The Org date format is inspired by the standard ISO 8601 date/time format. To use an alternative format, see [[*Custom time format]]. The day name is optional when you type the date yourself. However, any date inserted or modified by Org adds that day name, for reading convenience. -[fn:60] When working with the standard diary expression functions, you +[fn:20] When working with the standard diary expression functions, you need to be very careful with the order of the arguments. That order depends evilly on the variable ~calendar-date-style~. For example, to specify a date December 1, 2005, the call might look like @@ -22300,75 +22361,35 @@ functions, but with stable ISO order of arguments (year, month, day) wherever applicable, independent of the value of ~calendar-date-style~. -[fn:61] See the variable ~org-read-date-prefer-future~. You may set +[fn:21] See the variable ~org-read-date-prefer-future~. You may set that variable to the symbol ~time~ to even make a time before now shift the date to tomorrow. -[fn:62] If you do not need/want the calendar, configure the variable -~org-popup-calendar-for-date-prompt~. - -[fn:63] You can also use the calendar command {{{kbd(.)}}} to jump to +[fn:22] You can also use the calendar command {{{kbd(.)}}} to jump to today's date, but if you are inserting an hour specification for your timestamp, {{{kbd(.)}}} will then insert a dot after the hour. By contrast, {{{kbd(C-.)}}} will always jump to today's date. -[fn:64] If you find this distracting, turn off the display with -~org-read-date-display-live~. - -[fn:65] It will still be listed on that date after it has been marked +[fn:23] It will still be listed on that date after it has been marked as done. If you do not like this, set the variable ~org-agenda-skip-scheduled-if-done~. -[fn:66] The =SCHEDULED= and =DEADLINE= dates are inserted on the line +[fn:24] The =SCHEDULED= and =DEADLINE= dates are inserted on the line right below the headline. Do not put any text between this line and the headline. -[fn:67] Note the corresponding =STARTUP= options =logredeadline=, -=lognoteredeadline=, and =nologredeadline=. - -[fn:68] Note the corresponding =STARTUP= options =logreschedule=, -=lognotereschedule=, and =nologreschedule=. - -[fn:69] Org does not repeat inactive timestamps, however. See +[fn:25] Org does not repeat inactive timestamps, however. See [[*Timestamps]]. -[fn:70] In fact, the target state is taken from, in this sequence, the -=REPEAT_TO_STATE= property, the variable ~org-todo-repeat-to-state~ if -it is a string, the previous TODO state if ~org-todo-repeat-to-state~ -is ~t~, or the first state of the TODO state sequence. - -[fn:71] You can change this using the option ~org-log-repeat~, or the +[fn:26] You can change this using the option ~org-log-repeat~, or the =STARTUP= options =logrepeat=, =lognoterepeat=, and =nologrepeat=. With =lognoterepeat=, you will also be prompted for a note. -[fn:72] Clocking only works if all headings are indented with less +[fn:27] Clocking only works if all headings are indented with less than 30 stars. This is a hard-coded limitation of ~lmax~ in ~org-clock-sum~. -[fn:73] To resume the clock under the assumption that you have worked -on this task while outside Emacs, use =(setq org-clock-persist t)=. - -[fn:74] To add an effort estimate "on the fly", hook a function doing -this to ~org-clock-in-prepare-hook~. - -[fn:75] The last reset of the task is recorded by the =LAST_REPEAT= -property. - -[fn:76] See also the variable ~org-clock-mode-line-total~. - -[fn:77] The corresponding in-buffer setting is: =#+STARTUP: -lognoteclock-out=. - -[fn:78] When using ~:step~, ~untilnow~ starts from the beginning of -2003, not the beginning of time. - -[fn:79] Language terms can be set through the variable -~org-clock-clocktable-language-setup~. - -[fn:80] Note that all parameters must be specified in a single -line---the line is broken here only to fit it into the manual. - -[fn:81] On computers using macOS, idleness is based on actual user +[fn:28] On computers using macOS, idleness is based on actual user idleness, not just Emacs' idle time. For X11, you can install a utility program =x11idle.c=, available in the =org-contrib/= repository, or install the xprintidle package and set it to the @@ -22376,67 +22397,25 @@ variable ~org-clock-x11idle-program-name~ if you are running Debian, to get the same general treatment of idleness. On other systems, idle time refers to Emacs idle time only. -[fn:82] Please note the pitfalls of summing hierarchical data in -a flat list (see [[*Using Column View in the Agenda]]). - -[fn:83] Note the corresponding =STARTUP= options =logrefile=, -=lognoterefile=, and =nologrefile=. - -[fn:84] Org used to offer four different targets for date/week tree +[fn:29] Org used to offer four different targets for date/week tree capture. Now, Org automatically translates these to use ~file+olp+datetree~, applying the ~:time-prompt~ and ~:tree-type~ properties. Please rewrite your date/week-tree targets using ~file+olp+datetree~ since the older targets are now deprecated. -[fn:85] A date tree is an outline structure with years on the highest +[fn:30] A date tree is an outline structure with years on the highest level, months or ISO weeks as sublevels and then dates on the lowest level. Tags are allowed in the tree structure. -[fn:86] When the file name is not absolute, Org assumes it is relative -to ~org-directory~. - -[fn:87] If you need one of these sequences literally, escape the =%= -with a backslash. - -[fn:88] If you define your own link types (see [[*Adding Hyperlink -Types]]), any property you store with ~org-store-link-props~ can be -accessed in capture templates in a similar way. - -[fn:89] This is always the other, not the user. See the variable +[fn:31] This is always the other, not the user. See the variable ~org-link-from-user-regexp~. -[fn:90] If you move entries or Org files from one directory to -another, you may want to configure ~org-attach-id-dir~ to contain -an absolute path. - -[fn:91] If the value of that variable is not a list, but a single file -name, then the list of agenda files in maintained in that external -file. - -[fn:92] When using the dispatcher, pressing {{{kbd(<)}}} before -selecting a command actually limits the command to the current file, -and ignores ~org-agenda-files~ until the next dispatcher command. - -[fn:93] For backward compatibility, you can also press {{{kbd(1)}}} to -restrict to the current buffer. - -[fn:94] For backward compatibility, you can also press {{{kbd(0)}}} to -restrict to the current region/subtree. - -[fn:95] For backward compatibility, the universal prefix argument +[fn:32] For backward compatibility, the universal prefix argument {{{kbd(C-u)}}} causes all TODO entries to be listed before the agenda. This feature is deprecated, use the dedicated TODO list, or a block agenda instead (see [[*Block agenda]]). -[fn:96] The variable ~org-anniversary~ used in the example is just -like ~diary-anniversary~, but the argument order is always according -to ISO and therefore independent of the value of -~calendar-date-style~. - -[fn:97] You can, however, disable this by setting -~org-agenda-search-headline-for-time~ variable to a ~nil~ value. - -[fn:98] Custom agenda commands can preset a filter by binding one of +[fn:33] Custom agenda commands can preset a filter by binding one of the variables ~org-agenda-tag-filter-preset~, ~org-agenda-category-filter-preset~, ~org-agenda-effort-filter-preset~ or ~org-agenda-regexp-filter-preset~ as an option. This filter is @@ -22446,232 +22425,97 @@ property of the entire agenda view---in a block agenda, you should only set this in the global options section, not in the section of an individual block. -[fn:99] Only tags filtering is respected here, effort filtering is -ignored. - -[fn:100] You can also create persistent custom functions through -~org-agenda-bulk-custom-functions~. - -[fn:101] This file is parsed for the agenda when -~org-agenda-include-diary~ is set. - -[fn:102] You can provide a description for a prefix key by inserting -a cons cell with the prefix and the description. - -[fn:103] /Planned/ means here that these entries have some planning +[fn:34] /Planned/ means here that these entries have some planning information attached to them, like a time-stamp, a scheduled or a deadline string. See ~org-agenda-entry-types~ on how to set what planning information is taken into account. -[fn:104] For HTML you need to install Hrvoje Nikšić's =htmlize.el= -as an Emacs package from MELPA or from [[https://github.com/hniksic/emacs-htmlize][Hrvoje Nikšić's repository]]. - -[fn:105] To create PDF output, the Ghostscript ps2pdf utility must be +[fn:35] To create PDF output, the Ghostscript ps2pdf utility must be installed on the system. Selecting a PDF file also creates the postscript file. -[fn:106] If you want to store standard views like the weekly agenda or -the global TODO list as well, you need to define custom commands for -them in order to be able to specify file names. - -[fn:107] Quoting depends on the system you use, please check the FAQ -for examples. - -[fn:108] You can turn this on by default by setting the variable -~org-pretty-entities~, or on a per-file base with the =STARTUP= option -=entitiespretty=. - -[fn:109] This behavior can be disabled with =-= export setting (see -[[*Export Settings]]). - -[fn:110] LaTeX is a macro system based on Donald\nbsp{}E.\nbsp{}Knuth's TeX +[fn:36] LaTeX is a macro system based on Donald\nbsp{}E.\nbsp{}Knuth's TeX system. Many of the features described here as "LaTeX" are really from TeX, but for simplicity I am blurring this distinction. -[fn:111] When MathJax is used, only the environments recognized by +[fn:37] When MathJax is used, only the environments recognized by MathJax are processed. When dvipng, dvisvgm, or ImageMagick suite is used to create images, any LaTeX environment is handled. -[fn:112] These are respectively available at +[fn:38] These are respectively available at [[http://sourceforge.net/projects/dvipng/]], [[http://dvisvgm.bplaced.net/]] and from the ImageMagick suite. Choose the converter by setting the variable ~org-preview-latex-default-process~ accordingly. -[fn:113] Org mode has a method to test if point is inside such -a fragment, see the documentation of the function -~org-inside-LaTeX-fragment-p~. - -[fn:114] This works automatically for the HTML backend (it requires +[fn:39] This works automatically for the HTML backend (it requires version 1.34 of the =htmlize.el= package, which you need to install). Fontified code chunks in LaTeX can be achieved using either the [[https://www.ctan.org/pkg/listings][listings]] LaTeX package, [[https://www.ctan.org/pkg/minted][minted]] LaTeX package, or by using [[https://elpa.gnu.org/packages/engrave-faces.html][engrave-faces]] . Refer to ~org-latex-src-block-backend~ for details. -[fn:115] Source code in code blocks may also be evaluated either +[fn:40] Source code in code blocks may also be evaluated either interactively or on export. See [[*Working with Source Code]] for more information on evaluating code blocks. -[fn:116] Adding =-k= to =-n -r= /keeps/ the labels in the source code -while using line numbers for the links, which might be useful to -explain those in an Org mode example code. - -[fn:117] You may select a different mode with the variable -~org-edit-fixed-width-region-mode~. - -[fn:118] What Emacs considers to be an image depends on -~image-file-name-extensions~ and ~image-file-name-regexps~. - -[fn:119] The variable ~org-startup-with-inline-images~ can be set -within a buffer with the =STARTUP= options =inlineimages= and -=noinlineimages=. - -[fn:120] The width can be customized in Emacs >= 24.1, built with -imagemagick support. - -[fn:121] The corresponding in-buffer setting is: =#+STARTUP: fninline= -or =#+STARTUP: nofninline=. - -[fn:122] The corresponding in-buffer options are =#+STARTUP: fnadjust= -and =#+STARTUP: nofnadjust=. - -[fn:123] The variable ~org-export-date-timestamp-format~ defines how -this timestamp are exported. - -[fn:124] For export to LaTeX format---or LaTeX-related formats such as +[fn:41] For export to LaTeX format---or LaTeX-related formats such as Beamer---, the =org-latex-package-alist= variable needs further configuration. See [[LaTeX specific export settings]]. -[fn:125] At the moment, some export back-ends do not obey this +[fn:42] At the moment, some export back-ends do not obey this specification. For example, LaTeX export excludes every unnumbered headline from the table of contents. -[fn:126] Note that ~org-link-search-must-match-exact-headline~ is +[fn:43] Note that ~org-link-search-must-match-exact-headline~ is locally bound to non-~nil~. Therefore, ~org-link-search~ only matches headlines and named elements. -[fn:127] Since commas separate the arguments, commas within arguments +[fn:44] Since commas separate the arguments, commas within arguments have to be escaped with the backslash character. So only those backslash characters before a comma need escaping with another backslash character. -[fn:128] For a less drastic behavior, consider using a select tag (see -[[*Export Settings]]) instead. - -[fn:129] If =BEAMER_ENV= is set, Org export adds =B_environment= tag +[fn:45] If =BEAMER_ENV= is set, Org export adds =B_environment= tag to make it visible. The tag serves as a visual aid and has no semantic relevance. -[fn:130] By default Org loads MathJax from [[https://cdnjs.com][cdnjs.com]] as recommended by -[[https://www.mathjax.org][MathJax]]. - -[fn:131] Please note that exported formulas are part of an HTML +[fn:46] Please note that exported formulas are part of an HTML document, and that signs such as =<=, =>=, or =&= have special meanings. See [[http://docs.mathjax.org/en/latest/input/tex/html.html#tex-and-latex-in-html-documents][MathJax TeX and LaTeX in HTML documents]]. -[fn:132] See [[http://docs.mathjax.org/en/latest/input/tex/extensions.html#tex-and-latex-extensions][TeX and LaTeX extensions]] in the [[http://docs.mathjax.org][MathJax manual]] to learn -about extensions. - -[fn:133] If the classes on TODO keywords and tags lead to conflicts, -use the variables ~org-html-todo-kwd-class-prefix~ and -~org-html-tag-class-prefix~ to make them unique. - -[fn:134] This does not allow setting different bibliography compilers +[fn:47] This does not allow setting different bibliography compilers for different files. However, "smart" LaTeX compilation systems, such as latexmk, can select the correct bibliography compiler. -[fn:135] Minted uses an external Python package for code highlighting, -which requires the flag =-shell-escape= to be added to -~org-latex-pdf-process~. - -[fn:136] See [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][Open Document Format for Office Applications -(OpenDocument) Version 1.2]]. - -[fn:137] See [[http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl][MathToWeb]]. - -[fn:138] See [[http://dlmf.nist.gov/LaTeXML/]]. - -[fn:139] [[http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html][OpenDocument-v1.2 Specification]] - -[fn:140] See the == element of the -OpenDocument-v1.2 specification. - -[fn:141] See the attributes =table:template-name=, -=table:use-first-row-styles=, =table:use-last-row-styles=, -=table:use-first-column-styles=, =table:use-last-column-styles=, -=table:use-banding-rows-styles=, and =table:use-banding-column-styles= -of the == element in the OpenDocument-v1.2 specification. - -[fn:142] If the publishing directory is the same as the source -directory, =file.org= is exported as =file.org.org=, so you probably -do not want to do this. - -[fn:143] The option ~org-babel-no-eval-on-ctrl-c-ctrl-c~ can be used -to remove code evaluation from the {{{kbd(C-c C-c)}}} key binding. - -[fn:144] Actually, the constructs =call_()= and =src_{}= +[fn:48] Actually, the constructs =call_()= and =src_{}= are not evaluated when they appear in a keyword (see [[*Summary of In-Buffer Settings]]). -[fn:145] For noweb literate programming details, see -http://www.cs.tufts.edu/~nr/noweb/. - -[fn:146] For more information, please refer to the commentary section -in =org-tempo.el=. - -[fn:147] Org Indent mode also sets ~wrap-prefix~ correctly for +[fn:49] Org Indent mode also sets ~wrap-prefix~ correctly for indenting and wrapping long lines of headlines or text. This minor mode also handles Visual Line mode and directly applied settings through ~word-wrap~. -[fn:148] This works, but requires extra effort. Org Indent mode is +[fn:50] This works, but requires extra effort. Org Indent mode is more convenient for most applications. -[fn:149] ~org-adapt-indentation~ can also be set to ='headline-data=, -in which case only data lines below the headline will be indented. - -[fn:150] Note that Org Indent mode also sets the ~wrap-prefix~ -property, such that Visual Line mode (or purely setting ~word-wrap~) -wraps long lines, including headlines, correctly indented. - -[fn:151] For a server to host files, consider using a WebDAV server, +[fn:51] For a server to host files, consider using a WebDAV server, such as [[https://nextcloud.com][Nextcloud]]. Additional help is at this [[https://orgmode.org/worg/org-faq.html#mobileorg_webdav][FAQ entry]]. -[fn:152] If Emacs is configured for safe storing of passwords, then -configure the variable ~org-mobile-encryption-password~; please read -the docstring of that variable. - -[fn:153] Symbolic links in ~org-directory~ need to have the same name -as their targets. - -[fn:154] While creating the agendas, Org mode forces =ID= properties +[fn:52] While creating the agendas, Org mode forces =ID= properties on all referenced entries, so that these entries can be uniquely identified if Org Mobile flags them for further action. To avoid setting properties configure the variable ~org-mobile-force-id-on-agenda-items~ to ~nil~. Org mode then relies on outline paths, assuming they are unique. -[fn:155] Checksums are stored automatically in the file -=checksums.dat=. - -[fn:156] The file will be empty after this operation. - -[fn:157] https://www.ctan.org/pkg/comment - -[fn:158] By default this works only for LaTeX, HTML, and Texinfo. +[fn:53] By default this works only for LaTeX, HTML, and Texinfo. Configure the variable ~orgtbl-radio-table-templates~ to install templates for other modes. -[fn:159] If the =TBLFM= keyword contains an odd number of dollar +[fn:54] If the =TBLFM= keyword contains an odd number of dollar characters, this may cause problems with Font Lock in LaTeX mode. As shown in the example you can fix this by adding an extra line inside the =comment= environment that is used to balance the dollar expressions. If you are using AUCTeX with the font-latex library, a much better solution is to add the =comment= environment to the variable ~LaTeX-verbatim-environments~. - -[fn:160] The ~agenda*~ view is the same as ~agenda~ except that it -only considers /appointments/, i.e., scheduled and deadline items that -have a time specification =[h]h:mm= in their time-stamps. - -[fn:161] Note that, for ~org-odd-levels-only~, a level number -corresponds to order in the hierarchy, not to the number of stars.