config

Personal configuration.
git clone git://code.dwrz.net/config
Log | Files | Refs

ORG-NEWS (329136B)


      1 ORG NEWS -- history of user-visible changes.   -*- mode: org; coding: utf-8 -*-
      2 
      3 #+STARTUP: overview
      4 
      5 #+LINK: doc https://orgmode.org/worg/doc.html#%s
      6 #+LINK: msg https://list.orgmode.org/%s/
      7 #+LINK: git https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=%s
      8 
      9 Copyright (C) 2012-2024 Free Software Foundation, Inc.
     10 See the end of the file for license conditions.
     11 
     12 Please send Org bug reports to mailto:emacs-orgmode@gnu.org.
     13 
     14 * Version 9.7
     15 
     16 ** Important announcements and breaking changes
     17 
     18 # Here, we list the *most important* changes and changes that _likely_
     19 # require user action for most Org mode users.
     20 # Sorted from most important to least important.
     21 *** Arbitrary shell commands may no longer run when turning on Org mode
     22 
     23 This is for security reasons, to avoid running malicious commands.
     24 
     25 *** =python-mode.el (MELPA)= support in =ob-python.el= is removed
     26 
     27 =python-mode.el= support has been removed from =ob-python.el=.  The
     28 related customization =org-babel-python-mode= has been changed to a
     29 constant.
     30 
     31 If you still want to use python-mode with ob-python, you might
     32 consider [[https://gitlab.com/jackkamm/ob-python-mode-mode][ob-python-mode-mode]], where the code to support python-mode
     33 has been ported to.
     34 *** It is no longer possible to reveal hidden parts of the links during isearch
     35 
     36 Org 9.6 introduced support for searching hidden parts of the links.
     37 
     38 Unfortunately, we had to drop this support because its implementation
     39 turned out to be unreliable for many users. Proper implementation
     40 would require patching =isearch.el= and possibly a number of external
     41 libraries implementing isearch equivalents. It cannot be done on Org
     42 side alone.
     43 
     44 *** =ox-latex=: ~org-latex-line-break-safe~ is deprecated
     45 
     46 ~org-latex-line-break-safe~ constant was previously introduced to deal
     47 with edge cases when LaTeX interprets [...] as LaTeX command
     48 argument.  However, it caused a number of other issues and proved
     49 itself not to be as "safe" as it supposed to be.
     50 
     51 We now use a Pandoc's approach to deal with the same problem,
     52 utilizing ={[}= to escape =[...]= instances where needed.
     53 
     54 *** ~tab-width~ value is now assumed to be 8
     55 
     56 Org mode now assumes tab width to be 8 characters, when calculating
     57 list and other indentation.  ~tab-width~ is also set to 8 when Org
     58 major mode is loaded.
     59 
     60 This is done to improve consistency of the markup for lists, where
     61 indentation affects list items.
     62 
     63 Users with non-default values of ~tab-width~ should avoid overriding
     64 the value of 8 set by Org mode.  If the custom ~tab-width~ value is
     65 _smaller_ than 8, the existing Org documents can be converted to the
     66 new standard tab width using the following helper command:
     67 
     68 #+begin_src emacs-lisp
     69 (defun org-compat-adjust-tab-width-in-buffer (old-width)
     70   "Adjust visual indentation from `tab-width' equal OLD-WIDTH to 8."
     71   (interactive "nOld `tab-width': ")
     72   (cl-assert (derived-mode-p 'org-mode))
     73   (unless (= old-width 8)
     74     (org-with-wide-buffer
     75      (goto-char (point-min))
     76      (let (bound
     77 	   (repl (if (< old-width 8)
     78 		     (make-string old-width ?\s)
     79                    (concat "\t" (make-string (- old-width 8) ?\s)))))
     80        (while (re-search-forward "^ *\t" nil t)
     81 	 (skip-chars-forward " \t")
     82 	 (setq bound (point-marker))
     83 	 (forward-line 0)
     84 	 (while (search-forward "\t" bound t)
     85 	   (replace-match repl)))))))
     86 #+end_src
     87 
     88 *** ~org-ctags~ is not activated by default any more
     89 
     90 To follow Emacs [[info:elisp#Coding Conventions][coding conventions]] and to avoid confusion of users
     91 who accidentally get ~org-ctags~ autoloaded due to help completion,
     92 the library does not modify ~org-open-link-functions~ during loading
     93 any more.  Run ~org-ctags-enable~ to setup hooks and advices:
     94 
     95 #+begin_src emacs-lisp
     96 (with-eval-after-load "org-ctags"
     97   (org-ctags-enable))
     98 #+end_src
     99 
    100 *** "Priority" used to sort items in agenda is renamed to "urgency"
    101 
    102 Previously, ~priority-up~ and ~priority-down~ in
    103 ~org-agenda-sorting-strategy~ used a composite rank depending on
    104 item's priority (=[#A]=, =[#B]=, =[#C]=, etc) and overdue time to
    105 order agenda items (see "11.4.3 Sorting of agenda items" section of
    106 Org manual).
    107 
    108 Now, this composite rank is renamed to =urgency= and the relevant
    109 sorting strategies are renamed to ~urgency-up~ and ~urgency-down~.
    110 ~priority-up~ and ~priority-down~ sort by item's priority only.
    111 
    112 Users relying on the previous composite ranking should adjust their
    113 agenda sorting settings.
    114 
    115 *** ~org-priority-show~ command no longer adjusts for scheduled/deadline
    116 
    117 In agenda views, ~org-priority-show~ command previously displayed the
    118 composite rank consisting of the item priority and overdue.  This is
    119 no longer the case.  The displayed and returned value only depends on
    120 the item priority now.
    121 
    122 The behavior in Org buffers is unchanged.
    123 
    124 *** =ox-icalendar.el= line ending fix may affect downstream packages
    125 
    126 iCalendar export now uses dos-style CRLF ("\r\n") line endings
    127 throughout, as required by the iCalendar specification (RFC 5545).
    128 Previously, the export used an inconsistent mix of dos and unix line
    129 endings.
    130 
    131 This might cause errors in external packages that parse output from
    132 ox-icalendar.  In particular, older versions of org-caldav may
    133 encounter issues, and users are advised to update to the most recent
    134 version of org-caldav.  See [[https://github.com/dengste/org-caldav/commit/618bf4cdc9be140ca1993901d017b7f18297f1b8][this org-caldav commit]] for more information.
    135 
    136 *** Icalendar export of unscheduled TODOs no longer have start time of today
    137 
    138 For TODOs without a scheduled start time, ox-icalendar no longer
    139 forces them to have a scheduled start time of today when exporting.
    140 
    141 Instead, the new customization ~org-icalendar-todo-unscheduled-start~
    142 controls the exported start date for unscheduled tasks.  Its default
    143 is ~recurring-deadline-warning~ which will export unscheduled tasks
    144 with no start date, unless it has a recurring deadline (in which case
    145 the iCalendar spec demands a start date, and
    146 ~org-deadline-warning-days~ is used for that).
    147 
    148 To revert to the old behavior, set
    149 ~org-icalendar-todo-unscheduled-start~ to ~current-datetime~.
    150 
    151 *** Built-in HTML, LaTeX, Man, Markdown, ODT, and Texinfo exporters preserve the link protocol during export
    152 
    153 Previously, some link types where not exported as =protocol:uri= but
    154 as bare =uri=. This is now changed.
    155 
    156 When a link is known by Org mode and does not have a custom ~:export~
    157 parameter (see A.3 Adding Hyperlink Types section of the manual), the
    158 link protocol is now not stripped.
    159 
    160 For example, if one adds a link type =tel=, but does not define
    161 ~:export~ parameter
    162 : (org-link-set-parameters "tel")
    163 =[[tel:12345][John Doe]]= link will be correctly exported to LaTeX as
    164 =\href{tel:12345}{John Doe}=, not =\href{12345}{John Doe}=.
    165 
    166 However, links like =[[elisp:(+ 1 2)]]= will be exported as
    167 =\url{elisp:(+ 1 2)}=, which may be somewhat unexpected.
    168 
    169 *** =ox-html=: When exporting footnotes with custom non-number names, the names are used as link anchors
    170 
    171 Previously, link anchors for footnote references and footnote
    172 definitions were based on the footnote number: =fn.1=, =fnr.15=, etc.
    173 
    174 Now, when the footnote has a non-number name, it is used as an anchor:
    175 =fn.name=, =fnr.name=.
    176 
    177 *** =ox-org= disables citation processors by default
    178 
    179 Previously, when exporting to Org, all the citations and
    180 =print_bibliography= keywords, were transformed according to the
    181 chosen citation processor.
    182 
    183 This is no longer the case.  All the citation-related markup is now
    184 exported as is.
    185 
    186 The previous behavior can be reverted by setting new custom option
    187 ~org-org-with-cite-processors~.
    188 
    189 *** ODT export no longer opens the exported file in the background
    190 
    191 ODT exporter used to open the exported file in ~archive-mode~ "for
    192 examination".  This was not documented, was done in the background,
    193 and is not consistent with all other export backends. Now, this
    194 feature is removed.
    195 
    196 *** Inline image width value in =#+attr_org= is preferred over other =#+attr_...= keywords
    197 
    198 Previously, when ~org-image-actual-width~ is a list or nil, Org used the
    199 first =#+attr_...= keyword containing =:width ...= to compute the inline
    200 image width.  Now, =#+attr_org=, if present, takes precedence.
    201 In the following example the image preview has width of 75%
    202 while earlier versions pick 33%.
    203 
    204 : #+attr_html: :width 33%
    205 : #+attr_org:  :width 0.75
    206 : [[image.png]]
    207 
    208 *** ~org-latex-to-mathml-convert-command~ and ~org-latex-to-html-convert-command~ may need to be adjusted
    209 
    210 Previously, =%i= placeholders in the
    211 ~org-latex-to-mathml-convert-command~ and
    212 ~org-latex-to-html-convert-command~ user options were replaced with
    213 raw LaTeX fragment text, potentially triggering shell-expansion and
    214 incorrect result.
    215 
    216 Now, the =%i= placeholders are shell-escaped to prevent shell
    217 expansion.
    218 
    219 If you have single or double quotes around =%i= then update
    220 customizations and remove quotes.
    221 
    222 *** ~org-insert-subheading~ no longer inserts a sub-heading above current when point is at the beginning of line
    223 
    224 Previously, calling ~org-insert-subheading~ on
    225 
    226 : * Heading 1
    227 : <point>* Heading 2
    228 
    229 yielded
    230 
    231 : * Heading 1
    232 : ** <point>
    233 : * Heading 2
    234 
    235 This is no longer the case.  The sub-heading is always created below
    236 current heading (prefix arguments have the same meaning as in
    237 ~org-insert-heading~):
    238 
    239 : * Heading 1
    240 : * Heading 2
    241 : ** <point>
    242 
    243 *** It is no longer allowed to tangle into the same file as Org source
    244 
    245 Previously, =file.org= with the following contents
    246 
    247 : #+begin_src org :tangle file.org
    248 : Text
    249 : #+end_src
    250 
    251 would overwrite itself.
    252 
    253 Now, an error is thrown.
    254 
    255 ** New features
    256 
    257 # We list the most important features, and the features that may
    258 # require user action to be used.
    259 
    260 *** Images and files in clipboard can be pasted
    261 
    262 Org asks the user what must be done when pasting images and files
    263 copied to the clipboard from a file manager using the ~yank-media~
    264 command.  The default action can be set by customizing
    265 ~org-yank-dnd-method~.  The ~yank-media~ command was added in Emacs 29.
    266 
    267 Images can be saved to a separate directory instead of being attached,
    268 customize ~org-yank-image-save-method~.
    269 
    270 Image filename chosen can be customized by setting
    271 ~org-yank-image-file-name-function~ which by default autogenerates a
    272 filename based on the current time.
    273 
    274 Note that ~yank-media~, as of Emacs 30, does not yet support Windows
    275 (Emacs bug#71909) and may not be always reliable on Mac (Emacs
    276 bug#71731).
    277 
    278 *** Files and images can be attached by dropping onto Emacs
    279 
    280 By default, Org asks the user what to do with the dropped file like
    281 for pasted files.  The same user option ~org-yank-dnd-method~ is
    282 respected.
    283 
    284 Images dropped also respect the value of ~org-yank-image-save-method~
    285 when ~org-yank-dnd-method~ is =attach=.
    286 
    287 *** Alignment of image previews can be customized
    288 
    289 Previously, all the image previews were always left-aligned.
    290 
    291 Now, you can customize image previews to be left-aligned, centered, or right-aligned.
    292 
    293 The customization can be done globally, via ~org-image-align~, or per
    294 image, using =#+attr_...:=.  Example:
    295 
    296 : #+attr_org: :align center
    297 : [[/path/to/image/file/png]]
    298 :
    299 : or
    300 :
    301 : #+attr_org: :center t
    302 : [[/path/to/image/file/png]]
    303 
    304 When =#+attr_org= is not present, ~:align~ and ~:center~ attributes
    305 from other =#+attr_...:= keywords will be used.
    306 
    307 *** =id:= links support search options; ~org-id-store-link~ adds search option by default
    308 
    309 Adding search option by ~org-id-store-link~ can be disabled by setting
    310 ~org-id-link-use-context~ to ~nil~, or toggled for a single call by
    311 passing universal argument.
    312 
    313 When using this feature, IDs should not include =::=, which is used in
    314 links to indicate the start of the search string.  For backwards
    315 compatibility, existing IDs including =::= will still be matched (but
    316 cannot be used together with search option).  A new org-lint checker
    317 has been added to warn about this.
    318 
    319 *** Org mode no longer disallows configuring ~display-buffer-alist~ to open Org popups in other frame
    320 
    321 Previously, Org mode disallowed pop-up frames when displaying dispatch buffers.
    322 This is no longer the case. ~display-buffer-alist~ is fully obeyed.
    323 
    324 ~org-switch-to-buffer-other-window~ and ~org-no-popups~ are now deprecated.
    325 
    326 *** Asynchronous code evaluatation in ~ob-shell~
    327 
    328 Running shell blocks with the ~:session~ header freezes Emacs until
    329 execution completes.  The new ~:async~ header allows users to continue
    330 editing with Emacs while a ~:session~ block executes.
    331 
    332 *** Add support for repeating tasks in iCalendar export
    333 
    334 Repeating Scheduled and Deadline timestamps in TODOs are now exported
    335 as recurring tasks in iCalendar export.
    336 
    337 In case the TODO has just a single planning timestamp (Scheduled or
    338 Deadline, but not both), its repeater is used as the iCalendar
    339 recurrence rule (RRULE).
    340 
    341 If the TODO has both Scheduled and Deadline planning timestamps, then
    342 the following cases are implemented:
    343 
    344 - If both have the same repeater, then it is used as the RRULE.
    345 - Scheduled has repeater but Deadline does not: the Scheduled repeater
    346   is used as RRULE, and Deadline is used as UNTIL (the end date for
    347   the repeater). This is similar to ~repeated-after-deadline~ in
    348   ~org-agenda-skip-scheduled-if-deadline-is-shown~.
    349 
    350 The following 2 cases are not yet implemented, and the repeater is
    351 skipped (with a warning) if the ox-icalendar export encounters them:
    352 
    353 - Deadline has a repeater but Scheduled does not.
    354 - Scheduled and Deadline have different repeaters.
    355 
    356 Also note that only vanilla repeaters are currently exported; the
    357 special repeaters ~++~ and ~.+~ are skipped.
    358 
    359 *** Babel references =FILE:REFERENCE= now search current buffer when =FILE= does not exist
    360 
    361 When =FILE= does not exist, the reference is searched in the current
    362 file, using the verbatim reference.  This way,
    363 =:var table=tbl:example= will be searched inside the current buffer.
    364 
    365 *** Folded lines can now extend their face beyond ellipsis
    366 
    367 Previously, ~:extend t~ face attribute did not make folded headlines,
    368 blocks, and drawers extend their face beyond end of line.
    369 
    370 Now, the ellipsis and trailing newline use the same face as the last
    371 character before the fold.
    372 
    373 *** iCalendar export now supports multiline =SUMMARY=, =LOCATION=, and =DESCRIPTION= properties
    374 
    375 Previously, it was not possible to specify multi-line location,
    376 summary, or description when exporting to iCalendar.
    377 
    378 In the following example, =LOCATION= was exported as "Someplace",
    379 ignoring the other lines.
    380 
    381 #+begin_src org
    382 ,* heading with multi-line property
    383 :PROPERTIES:
    384 :LOCATION: Someplace
    385 :LOCATION+: Some Street 5
    386 :LOCATION+: 12345 Small Town
    387 :END:
    388 #+end_src
    389 
    390 Now, =SUMMARY+=, =LOCATION+=, and =DESCRIPTION+= properties can be
    391 used to create multi-line values.
    392 
    393 In the above example, =LOCATION= is now exported as
    394 
    395 : Someplace
    396 : Some Street 5
    397 : 12345 Small Town
    398 
    399 *** Org export backends can now disable citation processors
    400 
    401 A new global export option ~:with-cite-processors~, when set to nil,
    402 disables citation processors completely.  This option is available to
    403 export backends via ~:options-alist~ when defining the backend.
    404 
    405 The backends disabling citation processors must take care about
    406 exporting citation objects and =print_bibliography= keywords via
    407 transcoders.
    408 
    409 Users can disable citations processors by customizing new
    410 ~org-export-process-citations~ option.
    411 
    412 *** Org babel backends are now expected to define an additional API function ~org-babel-session-buffer:<lang>~
    413 
    414 Org babel now uses session buffer (if it exists) to retrieve
    415 ~default-directory~ environment during src block evaluation.
    416 
    417 By default, buffer named like session is checked.  All the backends
    418 that create sessions inside buffers named differently should provide a
    419 function ~org-babel-session-buffer:<lang>~.  The function must accept
    420 two arguments - session name and info list (as returned by
    421 ~org-babel-get-src-block-info~); and return the session buffer name.
    422 
    423 *** ~org-paste-subtree~ now handles =C-u= and =C-u C-u= prefix arguments specially
    424 
    425 With =C-u= prefix argument, force inserting a sibling heading below.
    426 With =C-u C-u= prefix argument, force inserting a child heading.
    427 
    428 *** ~org-metaup~ and ~org-metadown~ now act on headings in region
    429 
    430 When region is active and starts at a heading, ~org-metaup~ and
    431 ~org-metadown~ will move all the selected subtrees.
    432 
    433 *** Many structure editing commands now do not deactivate region
    434 
    435 Moving, promoting, and demoting of headings and items in region now do
    436 not deactivate Transient mark mode.
    437 
    438 Users can thus conveniently select multiple headings/items and use,
    439 for example, =M-<down>=/=M-<up>= repeatedly without losing the
    440 selection.
    441 
    442 *** Capture templates now support ~(here)~ as a target
    443 
    444 A capture template can target ~(here)~ which is the equivalent of
    445 invoking a capture template with a zero prefix.
    446 
    447 *** =colview= dynamic block supports custom formatting function
    448 
    449 The =colview= dynamic block understands a new ~:formatter~ parameter,
    450 which specifies a user-supplied function to format and insert the data
    451 in the dynamic block.
    452 
    453 A global default formatting function for =colview= dynamic blocks can
    454 be set via the new option ~org-columns-dblock-formatter~ which
    455 defaults to the new function ~org-columns-dblock-write-default~, that
    456 implements the previous (fixed) formatting behavior. Hence, the
    457 default behavior is identical to previous versions.
    458 
    459 The global default function can be overridden for any given =colview=
    460 dynamic block individually by specifying a custom formatter function
    461 using the new ~:formatter~ parameter on the block's =BEGIN= line.
    462 
    463 This new feature replicates the ~:formatter~ option already available
    464 for =clocktable= dynamic blocks.
    465 
    466 *** =colview= dynamic block can link to headlines
    467 
    468 The =colview= dynamic block understands a new ~:link~ parameter, which
    469 when non-~nil~ causes =ITEM= headlines in the table to be linked to
    470 their origins.
    471 
    472 *** =ob-tangle.el=: New flag to remove tangle targets before writing
    473 
    474 When ~org-babel-tangle-remove-file-before-write~ is set to ~t~ the
    475 tangle target is removed before writing.  This will allow overwriting
    476 read-only tangle targets.  However, when tangle target is a symlink,
    477 this will convert the tangle target into an ordinary file.
    478 
    479 The default value is ~auto~ -- overwrite tangle targets when they are
    480 read-only.
    481 
    482 *** ~org-bibtex-yank~ accepts a prefix argument
    483 
    484 When called with a prefix argument, ~org-bibtex-yank~ adds data to the
    485 headline of the entry at point instead of creating a new one.
    486 
    487 *** =ob-plantuml.el=: Support tikz file format output
    488 
    489 =ob-plantuml.el= now output =tikz= :file format via
    490 =-tlatex:nopreamble= option.  So that the output tikz file can be an
    491 input into the exported latex correctly.
    492 
    493 For example, exporting the following to LaTeX
    494 
    495 #+begin_src plantuml :file test.tikz :exports results
    496 Bob -> Alice : Hello World!
    497 #+end_src
    498 
    499 will include the generated =.tikz= into the exported LaTeX source.
    500 
    501 *** =UNNUMBERED= property inheritance is now honored by ~org-num-mode~
    502 
    503 When ~org-num-skip-unnumbered~ is non-nil, ~org-num-mode~ now honors
    504 ~org-use-property-inheritance~ for =UNNUMBERED= property (see manual
    505 section "Property Inheritance").  Previously, only local =UNNUMBERED=
    506 property was taken into account.
    507 
    508 Users can add ="UNNUMBERED"= to ~org-use-property-inheritance~ and set
    509 ~org-numb-skip-unnumbered~ to ~t~ to make ~org-num-mode~ skip
    510 numbering of all the sub-headings with non-nil =UNNUMBERED= property.
    511 
    512 *** ~org-insert-todo-heading-respect-content~ now accepts prefix arguments
    513 
    514 The prefix arguments are passed to ~org-insert-todo-heading~.
    515 
    516 *** Make ~ob-sqlite~ use in-memory databases by default
    517 
    518 ~sqlite~ source blocks with no ~:db~ header argument now make SQLite
    519 use a temporary in-memory database instead of throwing an error,
    520 matching the behavior of the official ~sqlite3~ shell.  As a result,
    521 ~sqlite~ source blocks are now usable out of the box, that is with no
    522 header arguments.
    523 
    524 *** ~org-return~ now acts on citations at point
    525 
    526 When ~org-return-follows-link~ is non-nil and cursor is over an
    527 org-cite citation, ~org-return~ will call ~org-open-at-point~.
    528 
    529 *** ~org-tags-view~ supports more property operators
    530 
    531 It supports inequality operators ~!=~ and ~/=~ in addition to the less
    532 common (BASIC?  Pascal?  SQL?) ~<>~.  And it supports starred versions
    533 of all relational operators (~<*~, ~=*~, ~!=*~, etc.) that work like
    534 the regular, unstarred operators but match a headline only if the
    535 tested property is actually present.
    536 
    537 *** =ob-python.el=: Support for more result types and plotting
    538 
    539 =ob-python= now converts the following objects to org-mode tables when
    540 ":results table" header arg is set:
    541 
    542 - Dictionaries
    543 - Numpy arrays
    544 - Pandas DataFrames
    545 - Pandas Series
    546 
    547 When the header argument =:results graphics= is set, =ob-python= will
    548 use matplotlib to save graphics. The behavior depends on whether value
    549 or output results are used. For value results, the last line should
    550 return a matplotlib Figure object to plot. For output results, the
    551 current figure (as returned by =pyplot.gcf()=) is cleared before
    552 evaluation, and then plotted afterwards.
    553 
    554 *** =ob-maxima.el=: Support for ~batch~ and ~draw~
    555 
    556 =ob-maxima= has two new header arguments: ~:batch~ and
    557 ~:graphics-pkg~.
    558 
    559 The ~:batch~ header argument can be set to one of Maxima's file
    560 loaders (~batch~, ~load~ or ~batchload~); the default remains
    561 ~batchload~. The ~:graphics-pkg~ header argument can be set to one of
    562 Maxima's graphics packages (~draw~ or ~plot~); the default remains
    563 ~plot~.  The graphics terminal is now determined from the file-ending
    564 of the file-name set in the ~:file~ header argument.
    565 
    566 *** =ob-calc.el=: Support for tables in ~:var~
    567 
    568 =ob-calc= now supports tables in ~:var~.  They are converted to a
    569 matrix or a vector depending on the dimensionality of the table.  A
    570 table with a single row is converted to a vector, the rest are
    571 converted to a matrix.
    572 
    573 *** ox-texinfo always generates a ~@direntry~
    574 
    575 We use defaults based on the file name and title of the document, and
    576 place the entry in the ~Misc~ category if ~TEXINFO_DIR_CATEGORY~ is missing.
    577 
    578 =TEXINFO_DIR_TITLE= is renamed to =TEXINFO_DIR_NAME=.
    579 The old name is obsolete.
    580 
    581 ** New and changed options
    582 
    583 # Changes dealing with changing default values of customizations,
    584 # adding new customizations, or changing the interpretation of the
    585 # existing customizations.
    586 
    587 *** Org mode faces are now consistently combined, with markup faces taking precedence over the containing element faces
    588 
    589 Previously, fontification of inline source blocks, macros, footnotes,
    590 target links, timestamps, radio targets, targets, inline export
    591 snippets, verbatim code, and COMMENT keyword in headings replaced the
    592 containing element fontification. Now, this is changed - the inner
    593 markup faces and the containing element faces are combined, with
    594 "inner" faces taking precedence; just as for all other markup.
    595 
    596 *** Org mode now fontifies whole table lines (including newline) according to ~org-table~ face
    597 
    598 Previously, leading indentation and trailing newline in table rows
    599 were not fontified using ~org-table~ face.  ~default~ face was used instead.
    600 This made it impossible to scale line height when ~org-table~ face has
    601 smaller height than default (Emacs calculates line height using the tallest face).
    602 
    603 Now, new ~org-table-row~ face is used on the whole table row lines,
    604 including indentation and the final newline. This face, by default,
    605 inherits from ~org-table~ face.
    606 
    607 If the new behavior is not desired, ~org-table-row~ face can be
    608 changed to inherit from ~default~ face.  See "Customizing Faces"
    609 section of Emacs manual or "Face Attribute Functions" section of Elisp
    610 manual.
    611 
    612 ~org-table~ takes precedence over ~org-table-row~ for the parts of
    613 table rows without indentation and newline.
    614 
    615 *** ~org-auto-align-tags~ is now respected universally
    616 
    617 Previously, only a subset of Org editing commands respected
    618 ~org-auto-align-tags~ option.  Now, it is no longer the case.  All the
    619 editing commands, including typing (~org-self-insert-command~) and
    620 deletion respect the option.
    621 
    622 ~org-auto-align-tags~ is still enabled by default.  For users who
    623 customized ~org-auto-align-tags~ to nil, ~org-edit-headline~,
    624 ~org-priority~, ~org-set-tags~, ~org-entry-put~, ~org-kill-line~, and
    625 typing/deleting in headlines will no longer unconditionally auto-align
    626 the tags.
    627 
    628 *** New export option ~org-export-expand-links~
    629 
    630 The new option makes Org expand environment variables in link and INCLUDE paths.
    631 The option is on by default.
    632 
    633 Users who do not want variable expansion can set
    634 ~org-export-expand-links~ variable to nil or provide
    635 =expand-links:nil= in-file export option.
    636 
    637 *** New hook ~org-after-note-stored-hook~
    638 
    639 This new hook runs when a note has been stored.
    640 
    641 *** New option controlling how Org mode sorts things ~org-sort-function~
    642 
    643 Sorting of agenda items, tables, menus, headlines, etc can now be
    644 controlled using a new custom option ~org-sort-function~.
    645 
    646 By default, Org mode sorts things according to the operating system
    647 language.  However, language sorting rules may or may not produce good
    648 results depending on the use case.  For example, multi-language
    649 documents may be sorted weirdly when sorting rules for system language
    650 are applied on the text written using different language.  Also, some
    651 operations systems (e.g. MacOS), do not provide accurate string
    652 sorting rules.
    653 
    654 Org mode provides 3 possible values for ~org-sort-function~:
    655 1. (default) Sort using system language rules.
    656 2. Sort using string comparison (~compare-strings~), making use of UTF
    657    case conversion.  This may work better for mixed-language documents
    658    and on MacOS.
    659 3. Custom function, if the above does not fit the needs.
    660 
    661 *** =ob-latex= now uses a new option ~org-babel-latex-process-alist~ to generate png output
    662 
    663 Previously, =ob-latex= used ~org-preview-latex-default-process~ from
    664 ~org-preview-latex-process-alist~ to produce png output.  Now, the
    665 process settings are separated into a new dedicated option
    666 ~org-babel-latex-process-alist~.
    667 
    668 The default value is pulled from =dvipng= process type from
    669 ~org-preview-latex-process-alist~, preserving the existing behavior.
    670 However, the output is now immune to changes in
    671 ~org-preview-latex-default-process~ and can be customized
    672 independently of the image preview settings.
    673 
    674 *** New option ~org-babel-lua-multiple-values-separator~
    675 
    676 The string that separates the values of multi-valued results returned
    677 from Lua code blocks.
    678 
    679 *** =.avif= images are now recognized in ~org-html-inline-image-rules~
    680 
    681 In =ox-html=, =.avif= image links are now inlined by default.
    682 
    683 *** New option ~org-beamer-frame-environment~
    684 
    685 The new option defines name of an alternative environment to be used
    686 for fragile beamer frames.  This option is needed to work around
    687 beamer bug with frame contents containing literal =\end{frame}= string
    688 (for example, inside example blocks).  See
    689 https://github.com/josephwright/beamer/issues/360
    690 
    691 The default value is =orgframe=.
    692 
    693 The option should normally not be changed, except when you need to put
    694 =\end{orgframe}= string inside beamer frames.
    695 
    696 A checker has been added to =M-x org-lint= to detect instances of
    697 ~org-beamer-frame-environment~ in Org documents.
    698 
    699 *** New option ~org-export-process-citations~
    700 
    701 The new option controls whether to use citation processors to process
    702 citations.
    703 
    704 *** New option ~org-org-with-cite-processors~
    705 
    706 The new option controls whether to use citation processors to process
    707 citations when exporting to Org.
    708 
    709 *** New option ~org-org-with-special-rows~
    710 
    711 The new options controls whether to export special table rows in
    712 Org-Org (=ox-org=) export.  The default value is ~t~.
    713 
    714 *** New option ~org-babel-comint-fallback-regexp-threshold~
    715 
    716 Org babel is often using Emacs's interactive REPL feature to implement
    717 :session functionality in code blocks.  However, Emacs's REPLs use
    718 heuristics to detect which lines in the REPL buffer correspond to
    719 output and which lines are user prompts.
    720 
    721 Normally, Org babel changes the default prompt to something unique. It
    722 avoids incorrect detection of code block output.
    723 
    724 Sometimes, the Org-configured prompt is changed manually by users or
    725 when running a sub-REPL (for example, when running ssh/python
    726 interpreter inside shell).
    727 
    728 The new option controls Org mode's heuristics for catching
    729 user-changed prompt in interactive Org babel sessions.  When Org mode
    730 cannot find REPL's prompt for more than
    731 ~org-babel-comint-fallback-regexp-threshold~ seconds, imprecise
    732 generic prompt is tried to detect whether the code block output has
    733 arrived.
    734 
    735 Users who often work with altering REPL prompts may consider reducing
    736 the default 5 second value of the new option.
    737 
    738 *** ~repeated-after-deadline~ value of ~org-agenda-skip-scheduled-if-deadline-is-shown~ is moved to a new customization
    739 
    740 A new custom option ~org-agenda-skip-scheduled-repeats-after-deadline~
    741 is introduced in place of ~repeated-after-deadline~ value of
    742 ~org-agenda-skip-scheduled-if-deadline-is-shown~.
    743 
    744 The following example would no longer show in the agenda as scheduled
    745 after January 5th with the new customization set to ~t~.
    746 
    747 : * TODO Do me every day until Jan, 5th (inclusive)
    748 : SCHEDULED: <2024-01-03 Wed +1d> DEADLINE: <2024-01-05 Fri>
    749 
    750 The old customization will continue to work, ensuring backwards compatibility.
    751 
    752 *** New custom setting ~org-icalendar-ttl~ for the ~ox-icalendar~ backend
    753 
    754 The option ~org-icalendar-ttl~ allows to advise a subscriber to the
    755 exported =.ics= file to reload after the given time interval.
    756 
    757 This is useful i.e. if a calendar server subscribes to your exported
    758 file and that file is updated regularly.
    759 
    760 See IETF RFC 5545, Section 3.3.6 Duration and
    761 https://en.wikipedia.org/wiki/ICalendar#Other_component_types for
    762 details.
    763 
    764 Default for ~org-icalendar-ttl~ is ~nil~.  In that case the setting
    765 will not be used in the exported ICS file.
    766 
    767 The option may also be set using the =ICAL-TTL= keyword.
    768 
    769 *** The default value of ~org-attach-store-link-p~ is now ~attached~
    770 
    771 Now, after attaching a file, =[[attach:...]]= link to the attached file
    772 is stored.  It can later be inserted using =M-x org-insert-link=.
    773 
    774 *** ~org-link-descriptive~ can now be set per-buffer via =#+STARTUP= options
    775 
    776 In addition to ~org-link-descriptive~ custom option, link display can
    777 now be controlled per-buffer as:
    778 
    779 : #+STARTUP: literallinks
    780 : #+STARTUP: descriptivelinks
    781 
    782 *** New option ~org-fast-tag-selection-maximum-tags~
    783 
    784 You can now limit the total number of tags displayed in the fast tag
    785 selection interface.  Useful in buffers with huge number of tags.
    786 
    787 *** New variable ~org-clock-out-removed-last-clock~
    788 
    789 The variable is intended to be used by ~org-clock-out-hook~.  It is a
    790 flag used to signal when the =CLOCK= line has been removed.  This can
    791 happen when ~org-clock-out-remove-zero-time-clocks~ is customized to
    792 be non-nil.
    793 
    794 *** ~org-info-other-documents~ is now a custom option
    795 
    796 Users can now extend the value of ~org-info-other-documents~ to
    797 specify Urls to third-party (non-Emacs) online info nodes when
    798 exporting =info:= links.
    799 
    800 *** ~org-export-smart-quotes-alist~ is now a custom option
    801 
    802 Previously, smart quotes rules for different languages where
    803 hard-coded.  Now, they can be customized by users.
    804 
    805 *** Commands affected by ~org-fold-catch-invisible-edits~ can now be customized
    806 
    807 New user option ~org-fold-catch-invisible-edits-commands~ controls
    808 which commands trigger checking for invisible edits.
    809 
    810 The full list of affected commands is:
    811 - ~org-self-insert-command~
    812 - ~org-delete-backward-char~
    813 - ~org-delete-char~
    814 - ~org-meta-return~
    815 - ~org-return~ (not checked in earlier Org versions)
    816 
    817 *** New customization ~org-image-max-width~ limiting the displayed inline image width
    818 
    819 New custom variable ~org-image-max-width~ limits the maximum inline
    820 image width, but only when the inline image width is not explicitly
    821 set via ~org-image-actual-width~, =ORG-IMAGE-ACTUAL-WIDTH= property,
    822 or =#+ATTR*= keyword.
    823 
    824 By default, when ~org-image-actual-width~ is set to t,
    825 ~org-image-max-width~ takes effect.  Its default value is set to
    826 ~fill-column~, limiting the image previews to ~fill-column~ number of
    827 characters.
    828 
    829 To fall back to previous defaults, where the inline image width is not
    830 constrained, set ~org-image-max-width~ to nil.
    831 
    832 *** ~org-src-block-faces~ now accepts empty string ~""~ as language name
    833 
    834 It is now possible to customize face of source blocks without language specifier.
    835 
    836 : #+begin_src
    837 : Source block with no language
    838 : #+end_src
    839 
    840 For example, to set ~highlight~ face, use
    841 
    842 #+begin_src emacs-lisp
    843 (setq org-src-fontify-natively t)
    844 (add-to-list 'org-src-block-faces '("" highlight))
    845 #+end_src
    846 
    847 *** New ~org-cite-natbib-export-bibliography~ option defining fallback bibliography style
    848 
    849 ~natbib~ citation export processor now uses
    850 ~org-cite-natbib-export-bibliography~ (defaults to ~unsrtnat~) as a
    851 fallback bibliography style if none is specified by user in
    852 =#+cite_export:= keyword.
    853 
    854 Previously, export would fail without explicitly selected bibliography
    855 style.
    856 
    857 *** New escape in ~org-beamer-environments-extra~ for labels in Beamer export
    858 The escape =%l= in ~org-beamer-environments-extra~ inserts the label
    859 obtained from ~org-beamer--get-label~.  This is added to the default
    860 environments =theorem=, =definition=, =example=, and =exampleblock= in
    861 ~org-beamer-environments-default~.
    862 
    863 *** ~org-clock-x11idle-program-name~ now defaults to =xprintidle=, when available
    864 
    865 When =xprintidle= executable is available at =org-clock= load time, it
    866 is used as the default value for ~org-clock-x11idle-program-name~.
    867 The old =x11idle= default is used as the fallback.
    868 
    869 =xprintidle= is available as system package in most Linux
    870 distributions, unlike ancient =x11idle= that is distributed via WORG.
    871 
    872 *** New options for the "csl" citation export processor's LaTeX output
    873 
    874 The ~org-cite-csl-latex-label-separator~ and
    875 ~org-cite-csl-latex-label-width-per-char~ options allow the user to
    876 control the indentation of entries for labeled bibliography styles
    877 when the "csl" citation processor is used for LaTeX export.  The
    878 indentation length is computed as the sum of
    879 ~org-cite-csl-latex-label-separator~ and the maximal label width, for
    880 example:
    881 
    882 #+begin_example
    883     indentation length
    884 <------------------------->
    885 max. label width  separator
    886 <---------------><-------->
    887 [Doe22]                    John Doe. A title...
    888 [DoeSmithJones19]          John Doe, Jane Smith and...
    889 [SmithDoe02]               Jane Smith and John Doe...
    890 #+end_example
    891 
    892 The maximal label width, in turn, is calculated as the product of
    893 ~org-cite-csl-latex-label-width-per-char~ and the maximal label length
    894 measured in characters.
    895 
    896 The ~org-cite-csl-latex-preamble~ option makes it possible to
    897 customize the entire LaTeX fragment that the "csl" citation processor
    898 injects into the preamble.
    899 
    900 *** New ~org-latex-listings-src-omit-language~ option for LaTeX export
    901 
    902 The ~org-latex-listings-src-omit-language~ option allows omitting the
    903 =language= parameter in the exported =lstlisting= environment.  This
    904 is necessary when the =listings= backend delegates listing generation
    905 to another package like =fancyvrb= using the following setup in the
    906 document header:
    907 
    908 #+BEGIN_src org
    909 ,#+LATEX_HEADER: \RequirePackage{fancyvrb}
    910 ,#+LATEX_HEADER: \DefineVerbatimEnvironment{verbatim}{Verbatim}{...whatever...}
    911 ,#+LATEX_HEADER: \DefineVerbatimEnvironment{lstlisting}{Verbatim}{...whatever...}
    912 #+END_src
    913 
    914 *** New face: ~org-agenda-calendar-daterange~
    915 The face ~org-agenda-calendar-daterange~ is used to show entries with
    916 a date range in the agenda.  It inherits from the default face in
    917 order to remain backward-compatible.
    918 
    919 *** New ~org-babel-clojurescript-backend~ option to choose ClojureScript backend
    920 
    921 Before, a ClojureScript source block used the same backend as Clojure,
    922 configured in ~org-babel-clojure-backend~ and relied on an undocumented
    923 ~:target~ parameter.
    924 
    925 Now, there's ~org-babel-clojurescript-backend~ to determine the
    926 backend used for evaluation of ClojureScript.
    927 
    928 *** Support for Clojure CLI in ~ob-clojure~
    929 
    930 ~ob-clojure~ now supports executing babel source blocks with the
    931 official [[https://clojure.org/guides/deps_and_cli][Clojure CLI tools]].
    932 The command can be customized with ~ob-clojure-cli-command~.
    933 
    934 *** New customization options for ~org-export-dispatch~
    935 
    936 New custom variables ~org-export-body-only~,
    937 ~org-export-visible-only~, and ~org-export-force-publishing~ allow the
    938 default settings of "Body only", "Visible only", and "Force
    939 publishing" in the ~org-export-dispatch~ UI to be customized,
    940 respectively.
    941 
    942 *** New option ~org-icalendar-todo-unscheduled-start~ to control unscheduled TODOs in ox-icalendar
    943 
    944 ~org-icalendar-todo-unscheduled-start~ controls how ox-icalendar
    945 exports the starting datetime for unscheduled TODOs.  Note this option
    946 only has an effect when ~org-icalendar-include-todo~ is non-nil.
    947 
    948 By default, ox-icalendar will not export a start datetime for
    949 unscheduled TODOs, except in cases where the iCalendar spec demands a
    950 start (specifically, for recurring deadlines, in which case
    951 ~org-deadline-warning-days~ is used).
    952 
    953 Currently implemented options are:
    954 
    955 - ~recurring-deadline-warning~: The default as described above.
    956 - ~deadline-warning~: Use ~org-deadline-warning-days~ to set the start
    957   time if the unscheduled task has a deadline (recurring or not).
    958 - ~current-datetime~: Revert to old behavior, using the current
    959   datetime as the start of unscheduled tasks.
    960 - ~nil~: Never add a start time for unscheduled tasks.  For repeating
    961   tasks this technically violates the iCalendar spec, but some
    962   iCalendar programs support this usage.
    963 
    964 *** Capture template expansion now supports ID links
    965 
    966 The capture template expansion element =%K= creates links using
    967 ~org-store-link~, which respects the values of ~org-id-link-to-use-id~.
    968 
    969 *** Changes to ~org-babel-python-command~, and new session/nonsession specific options
    970 
    971 The default Python command used by interactive sessions has been
    972 changed to match ~python-shell-interpreter~ and
    973 ~python-shell-interpreter-args~ by default.  The default Python
    974 command for nonsessions has not changed.
    975 
    976 New options ~org-babel-python-command-nonsession~ and
    977 ~org-babel-python-command-session~ control the default Python command
    978 for nonsessions and sessions, respectively.  By default,
    979 ~org-babel-python-command-session~ is ~auto~, which means to use the
    980 configuration for ~python-shell-interpreter(-args)~ as default.
    981 
    982 The old option ~org-babel-python-command~ has been changed to have
    983 default value of ~auto~.  When not ~auto~, it overrides both
    984 ~org-babel-python-command-nonsession~ and
    985 ~org-babel-python-command-session~.  Therefore, users who had
    986 previously set ~org-babel-python-command~ will not experience any
    987 changes.
    988 
    989 Likewise, users who had neither set ~org-babel-python-command~ nor
    990 ~python-shell-interpreter(-args)~ will not see any changes -- ~python~
    991 remains the default command.
    992 
    993 The main change will be for users who did not configure
    994 ~org-babel-python-command~, but did configure
    995 ~python-shell-interpreter~, e.g. to use IPython.  In this case,
    996 ~ob-python~ will now start interactive sessions in a more consistent
    997 manner with ~run-python~.
    998 
    999 *** New hook option ~org-indent-post-buffer-init-functions~
   1000 
   1001 This allows to run functions after ~org-indent~ initializes a buffer to
   1002 enrich its properties.
   1003 *** New option ~org-agenda-start-with-archives-mode~
   1004 
   1005 This option starts the agenda to automatically include archives,
   1006 propagating the value for this variable to ~org-agenda-archives-mode~.
   1007 For acceptable values and their meaning, see the value of that variable.
   1008 
   1009 *** New option ~org-id-link-consider-parent-id~ to allow =id:= links to parent headlines
   1010 
   1011 For =id:= links, when this option is enabled, ~org-store-link~ will
   1012 look for ids from parent/ancestor headlines, if the current headline
   1013 does not have an id.
   1014 
   1015 Combined with the new ability for =id:= links to use search options
   1016  [fn:: when =org-id-link-use-context= is =t=, which is the default],
   1017 this allows linking to specific headlines without requiring every
   1018 headline to have an id property, as long as the headline is unique
   1019 within a subtree that does have an id property.
   1020 
   1021 For example, given this org file:
   1022 
   1023 #+begin_src org
   1024 ,* Parent
   1025 :PROPERTIES:
   1026 :ID: abc
   1027 :END:
   1028 ,** Child 1
   1029 ,** Child 2
   1030 #+end_src
   1031 
   1032 Storing a link with point at "Child 1" will produce a link
   1033 =<id:abc::*Child 1>=, which precisely links to the "Child 1" headline
   1034 even though it does not have its own ID.  By giving files top-level id
   1035 properties, links to headlines in the file can also be made more
   1036 robust by using the file id instead of the file path.
   1037 
   1038 *** New option ~latex-default-footnote-command~ to customize the LaTeX footnote command
   1039 
   1040 This new option allows you to define the LaTeX command the Org mode
   1041 footnotes are converted to (for example ~\sidenote{%s%s}~ instead of
   1042 the default ~\footnote{%s%s}~).
   1043 
   1044 The option can be customized either by
   1045 
   1046 1. setting the global variable in the ~org-export-latex~ customization
   1047    group or
   1048 2. by setting the file local keyword =LATEX_FOOTNOTE_COMMAND=
   1049 
   1050 *** Options for ~#+cite_export: biblatex~ can use the package's option syntax
   1051 
   1052 When using =biblatex= to export bibliographies, you can use the format
   1053 as specified in the =biblatex= package documentation as
   1054 =key=val,key=val,...=
   1055 
   1056 *** New option ~org-columns-dblock-formatter~
   1057 
   1058 =colview= dynamic blocks now understand a new ~:formatter~ parameter
   1059 to use a specific function for formatting and inserting the contents
   1060 of the dynamic block. This new option can be used to set the global
   1061 default formatting function that will be used for =colview= dynamic
   1062 blocks that do not specify any ~:formatter~ parameter. Its default
   1063 value (the new function ~org-columns-dblock-write-default~) yields the
   1064 previous (fixed) formatting behavior.
   1065 
   1066 *** New allowed value of ~org-md-headline-style~ to mix ATX and Setext style headlines
   1067 
   1068 Setting ~org-md-headline-style~ to ~'mixed~ will export headline
   1069 levels one and two as Setext style headlines, and headline levels
   1070 three through six will be exported as ATX style headlines.
   1071 
   1072 *** ~org-footnote-new~ can be configured to create anonymous footnotes
   1073 
   1074 When ~org-footnote-auto-label~ is set to ~'anonymous~, create
   1075 anonymous footnotes automatically with ~org-footnote-new~.
   1076 
   1077 The same can be done via startup options:
   1078 : #+STARTUP: fnanon
   1079 
   1080 *** New final hooks for Modifier-Cursor keys
   1081 
   1082 Final hooks are added to the following commands:
   1083 - ~org-metaleft-final-hook~ to ~org-metaleft~ (bound to =M-<left>=).
   1084 - ~org-metaright-final-hook~ to ~org-metaright~ (bound to
   1085   =M-<right>=).
   1086 - ~org-metaup-final-hook~ to ~org-metaup~ (bound to =M-<up>=).
   1087 - ~org-metadown-final-hook~ to ~org-metadown~ (bound to =M-<down>=).
   1088 - ~org-shiftmetaleft-final-hook~ to ~org-shiftmetaleft~ (bound to
   1089   =M-S-<left>=).
   1090 - ~org-shiftmetaright-final-hook~ to ~org-shiftmetaright~ (bound to
   1091   =M-S-<right>=).
   1092 - ~org-shiftmetaup-final-hook~ to ~org-shiftmetaup~ (bound to
   1093   =M-S-<up>=).
   1094 - ~org-shiftmetadown-final-hook~ to ~org-shiftmetadown~ (bound to
   1095   =M-S-<down>=).
   1096 
   1097 ** Major changes and additions to Org element API and Org syntax
   1098 *** Diary type timestamps now support optional time/timerange
   1099 
   1100 Previously, diary type timestamps could not specify time.
   1101 Now, it is allowed to add a time or time range:
   1102 
   1103 : <%%(diary-float t 4 2) 22:00-23:00>
   1104 : <%%(diary-float t 4 2) 10:30>
   1105 
   1106 The parsed representation of such timestamps will have ~:hour-start~,
   1107 ~:minute-start~, ~:hour-end~, ~:minute-end~, and ~:range-type~
   1108 properties set appropriately.  In addition, a new ~:diary-sexp~
   1109 property will store the diary sexp value.
   1110 
   1111 For example,
   1112 
   1113 : <%%(diary-float t 4 2) 22:00-23:00>
   1114 
   1115 will have the following properties
   1116 
   1117 #+begin_src emacs-lisp
   1118 :type: diary
   1119 :range-type: timerange
   1120 :raw-value: "<%%(diary-float t 4 2) 22:00-23:00>"
   1121 :year-start: nil
   1122 :month-start: nil
   1123 :day-start: nil
   1124 :hour-start: 22
   1125 :minute-start: 0
   1126 :year-end: nil
   1127 :month-end: nil
   1128 :day-end: nil
   1129 :hour-end: 23
   1130 :minute-end: 0
   1131 :diary-sexp: "(diary-float t 4 2)"
   1132 #+end_src
   1133 
   1134 *** Underline syntax now takes priority over subscript when both are applicable
   1135 
   1136 Previously, Org mode interpreted =(_text_)= as subscript.
   1137 Now, the interpretation is changed to underline.
   1138 
   1139 =(_text_)= matches both subscript and underline markup.  The
   1140 interpretation is changed to keep consistency with other emphasis like
   1141 =(*bold*)=.
   1142 
   1143 Most of the users should not be affected by this change - it only applies when character immediately preceding =_= is one of =-=, =(=, ='=, and ={=.
   1144 
   1145 *** New term: "syntax node"
   1146 
   1147 To reduce confusion with "element" referring to both "syntax element"
   1148 and "element/object" class, we now prefer using "syntax node" when
   1149 referring to generic Org syntax elements.  "Elements" and "objects"
   1150 now refer to different syntax node classes of paragraph-like nodes and
   1151 markup-like nodes.
   1152 
   1153 *** New element type ~anonymous~
   1154 
   1155 Secondary strings can now be recognized as ~anonymous~ type to
   1156 distinguish from non-elements.  With a new optional argument,
   1157 ~org-element-type~ will return ~anonymous~ for secondary strings
   1158 instead of nil.
   1159 
   1160 The new element type can be used in ~org-element-lineage~,
   1161 ~org-element-map~, and other functions that filter by element type.
   1162 
   1163 *** Internal structure of Org parse tree has been changed
   1164 
   1165 The code relying upon the previously used =(TYPE PROPERTIES-PLIST CONTENTS-LIST)=
   1166 structure may no longer work.  Please use ~org-element-create~,
   1167 ~org-element-property~, and other Org element API functions to work
   1168 with Org syntax trees.
   1169 
   1170 Some syntax node properties are no longer stored as property list elements.
   1171 Instead, they are kept in a special vector value of a new
   1172 =:standard-properties= property.  This is done to improve performance.
   1173 
   1174 If there is a need to traverse all the node properties, a new API
   1175 function ~org-element-properties-map~ can be used.
   1176 
   1177 Properties and their values can now be deferred to avoid overheads
   1178 when parsing.  They are calculated lazily, when the value/property is
   1179 requested by ~org-element-property~ and other getter functions.  Using
   1180 ~plist-get~ to retrieve values of =PROPERTIES-PLIST= is not
   1181 recommended as deferred properties will not be resolved in such
   1182 scenario.
   1183 
   1184 New special property =:secondary= is used internally to record which
   1185 properties store secondary objects.
   1186 
   1187 New special property =:deferred= is used to keep information how to
   1188 calculate property names lazily.
   1189 
   1190 See the commentary in =lisp/org-element-ast.el= for more details.
   1191 
   1192 *** Multiple affiliated keyword values are now stored in the order they appear in buffer
   1193 
   1194 Previously,
   1195 
   1196 : #+caption: foo
   1197 : #+caption: bar
   1198 : Paragraph
   1199 
   1200 would have its =:caption= property set to ~(("bar") ("foo"))~ in reverse order.
   1201 
   1202 Now, the order is not reversed: ~(("foo") ("bar"))~.
   1203 
   1204 *** Some property values may now be calculated lazily and require original Org buffer to be live
   1205 
   1206 ~org-element-at-point~, ~org-element-context~, and
   1207 ~org-element-at-point-no-context~ may now not calculate all the
   1208 property values at the call time.  Instead, the calculation will be
   1209 deferred until ~org-element-property~ or the equivalent getter
   1210 function is called.  The property names may not all be calculated as
   1211 well.
   1212 
   1213 It may often be necessary to have the original Org buffer open when
   1214 resolving the deferred values.
   1215 
   1216 One can ensure that all the deferred values are resolved using new
   1217 function ~org-element-resolve-deferred~ and new optional argument for
   1218 ~org-element-property~.
   1219 
   1220 ~org-element-parse-buffer~ and ~org-element-parse-secondary-string~
   1221 will resolve all the deferred values by default.  No adjustment is
   1222 needed for their users.
   1223 
   1224 *** New API functions and macros
   1225 **** New property accessors and setters
   1226 
   1227 New functions to retrieve and set (via ~setf~) commonly used element properties:
   1228 - =:begin= :: ~org-element-begin~
   1229 - =:end= :: ~org-element-end~
   1230 - =:contents-begin= :: ~org-element-contents-begin~
   1231 - =:contents-end= :: ~org-element-contents-end~
   1232 - =:post-affiliated= :: ~org-element-post-affiliated~
   1233 - =:post-blank= :: ~org-element-post-blank~
   1234 - =:parent= :: ~org-element-parent~
   1235 
   1236 **** New macro ~org-element-with-enabled-cache~
   1237 
   1238 The macro arranges the element cache to be active during =BODY= execution.
   1239 When cache is enabled, the macro is identical to ~progn~.  When cache
   1240 is disabled, the macro arranges a new fresh cache that is discarded
   1241 upon completion of =BODY=.
   1242 
   1243 **** New function ~org-element-property-raw~
   1244 
   1245 This function is like ~org-element-property~ but does not try to
   1246 resolve deferred properties.
   1247 
   1248 ~org-element-property-raw~ can be used with ~setf~.
   1249 
   1250 **** New function ~org-element-put-property-2~
   1251 
   1252 Like ~org-element-put-property~, but the argument list is changed to have
   1253 =NODE= as the last argument.  Useful with threading macros like
   1254 ~thread-last~.
   1255 
   1256 **** New function ~org-element-properties-resolve~
   1257 
   1258 This function resolves all the deferred values in a =NODE=, modifying
   1259 the =NODE= for side effect.
   1260 
   1261 **** New functions ~org-element-properties-map~ and ~org-element-properties-mapc~
   1262 
   1263 New functions to map over =NODE= properties.
   1264 
   1265 **** New function ~org-element-ast-map~
   1266 
   1267 This is a more general equivalent of ~org-element-map~.  It allows
   1268 more precise control over recursion into secondary strings.
   1269 
   1270 **** New function ~org-element-lineage-map~
   1271 
   1272 Traverse syntax tree ancestor list, applying arbitrary function to
   1273 each ancestor.
   1274 
   1275 **** New function ~org-element-property-inherited~
   1276 
   1277 Like ~org-element-property~, but can be used to retrieve and combine
   1278 multiple different properties for a given =NODE= and its parents.
   1279 
   1280 *** ~org-element-cache-map~ can now be used even when element cache is disabled
   1281 
   1282 *** =org-element= API functions and macros can now accept syntax nodes as =POM= argument
   1283 
   1284 The following functions are updated:
   1285 - ~org-agenda-entry-get-agenda-timestamp~
   1286 - ~org-element-at-point~
   1287 - ~org-is-habit-p~
   1288 - ~org-id-get~
   1289 - ~org-with-point-at~
   1290 - ~org-entry-properties~
   1291 - ~org-entry-get~
   1292 - ~org-entry-delete~
   1293 - ~org-entry-add-to-multivalued-property~
   1294 - ~org-entry-remove-from-multivalued-property~
   1295 - ~org-entry-member-in-multivalued-property~
   1296 - ~org-entry-put-multivalued-property~
   1297 - ~org-entry-get-with-inheritance~
   1298 - ~org-entry-put~
   1299 - ~org-read-property-value~
   1300 - ~org-property-get-allowed-values~
   1301 
   1302 *** ~org-element-map~ now traverses main value in dual keywords before the secondary value
   1303 
   1304 The traverse order for dual keywords is reversed.  The main value is
   1305 now traversed first, followed by the secondary value.
   1306 
   1307 *** Org parse tree is now non-printable
   1308 
   1309 Org parser now assigns a new property =:buffer= that holds
   1310 non-printable buffer object.  This makes syntax tree non-printable.
   1311 Using ~print~/~read~ is no longer safe.
   1312 
   1313 *** Some Org API functions no longer preserve match data
   1314 
   1315 ~org-element-at-point~, ~org-element-context~, ~org-get-category~, and
   1316 ~org-get-tags~ may modify the match data.
   1317 
   1318 The relevant function docstrings now explicitly mention that match
   1319 data may be modified.
   1320 
   1321 *** ~org-element-create~ now treats a single ~anonymous~ =CHILDREN= argument as a list of child nodes
   1322 
   1323 When =CHILDREN= is a single anonymous node, use its contents as children
   1324 nodes.  This way,
   1325 
   1326 : (org-element-create 'section nil (org-element-contents node))
   1327 
   1328 will yield expected results with contents of another node adopted into
   1329 a newly created one.
   1330 
   1331 Previously, one had to use
   1332 
   1333 : (apply #'org-element-create 'section nil (org-element-contents node))
   1334 *** New property ~:range-type~ for org-element timestamp object
   1335 
   1336 ~org-element-timestamp-parser~ now adds =:range-type= property to each
   1337 timestamp object.  Possible values: ~timerange~, ~daterange~, ~nil~.
   1338 
   1339 ~org-element-timestamp-interpreter~ takes into account this property
   1340 and returns an appropriate timestamp string.
   1341 
   1342 *** New properties =:repeater-deadline-value= and =:repeater-deadline-unit= for org-element timestamp object
   1343 
   1344 ~org-element-timestamp-parser~ now adds =:repeater-deadline-value= and
   1345 =:repeater-deadline-unit= properties to each timestamp object that has
   1346 a repeater deadline.  For example, in =<2012-03-29 Thu ++1y/2y>=, =2y=
   1347 is the repeater deadline with a value of =2= and unit of =y=.  See
   1348 "5.3.3 Tracking your habits" section in the manual.
   1349 
   1350 Possible values for =:repeater-deadline-value=: ~positive integer~, ~nil~.
   1351 
   1352 Possible values for =:repeater-deadline-unit=: ~hour~, ~day~, ~week~,
   1353 ~month~, ~year~.
   1354 
   1355 ~org-element-timestamp-interpreter~ takes into account these properties
   1356 and returns an appropriate timestamp string.
   1357 
   1358 *** =org-link= store functions are passed an ~interactive?~ argument
   1359 
   1360 The ~:store:~ functions set for link types using
   1361 ~org-link-set-parameters~ are now passed an ~interactive?~ argument,
   1362 indicating whether ~org-store-link~ was called interactively.
   1363 
   1364 Existing store functions will continue to work.
   1365 
   1366 ** New functions and changes in function arguments
   1367 
   1368 # This also includes changes in function behavior from Elisp perspective.
   1369 
   1370 *** ~org-babel-lilypond-compile-lilyfile~ ignores optional second argument
   1371 
   1372 The =TEST= parameter is better served by Emacs debugging tools.
   1373 
   1374 *** ~org-print-speed-command~ is now an internal function
   1375 
   1376 The old name is marked obsolete and the new name is
   1377 ~org--print-speed-command~.
   1378 
   1379 This function was always aimed for internal use when building speed
   1380 command help buffer.  Now, it is stated explicitly.
   1381 
   1382 *** When ~org-link-file-path-type~ is a function, its argument is now a filename as it is read by ~org-insert-link~; not an absolute path
   1383 
   1384 Previously, when ~org-link-file-path-type~ is set to a function, the
   1385 function argument was the filename from the link expanded via
   1386 ~expand-file-name~.  Now, a bare filename is passed to the function.
   1387 
   1388 *** ~org-create-file-search-functions~ can use ~org-list-store-props~ to suggest link description
   1389 
   1390 In Org <9.0, ~org-create-file-search-functions~ could set ~description~
   1391 variable to suggest link description for the stored link.  However,
   1392 this feature stopped working since Org 9.0 switched to lexical binding.
   1393 
   1394 Now, it is again possible for ~org-create-file-search-functions~ to
   1395 supply link descriptions using ~(org-list-store-props :description
   1396 "suggested description")~ in the search function body.
   1397 
   1398 *** New API functions to store data within ~org-element-cache~
   1399 
   1400 Elisp programs can now store data inside Org element cache.
   1401 
   1402 The data will remain stored as long as the Org buffer text associated
   1403 with the cached elements remains unchanged.
   1404 
   1405 Two options are available:
   1406  - Store the data until any text within element boundaries is changed
   1407  - Store the data, but ignore any changes inside element contents that
   1408    do not affect the high-level element structure. For example,
   1409    changes inside subheadings can be ignored for the data stored
   1410    inside parent heading element.
   1411 
   1412 The new functions are: ~org-element-cache-store-key~ and
   1413 ~org-element-cache-get-key~.
   1414 
   1415 *** New optional argument =UPDATE-HEADING= for ~org-bibtex-yank~
   1416 
   1417 When the new argument is non-nil, add data to the headline of the
   1418 entry at point.
   1419 
   1420 *** ~org-fold-hide-drawer-all~ is now interactive
   1421 
   1422 ~org-fold-hide-drawer-all~ is now a command, accepting two optional
   1423 arguments - region to act on.
   1424 
   1425 *** =TYPES= argument in ~org-element-lineage~ can now be a symbol
   1426 
   1427 When =TYPES= is symbol, only check syntax nodes of that type.
   1428 
   1429 *** New optional argument =KEEP-CONTENTS= for ~org-element-copy~
   1430 
   1431 With the new argument, the contents is copied recursively.
   1432 
   1433 *** ~org-element-property~ can now be used with ~setf~
   1434 
   1435 *** New optional arguments for ~org-element-property~
   1436 
   1437 The value of the new optional argument =DFLT= is returned if the
   1438 property with given name is not present.  Same as =DEFAULT= argument
   1439 for ~alist-get~.
   1440 
   1441 New optional argument =FORCE-UNDEFER= modifies the =NODE=, storing the
   1442 resolved deferred values.
   1443 
   1444 See the top comment in =lisp/org-element-ast.el= for more details
   1445 about the deferred values.
   1446 
   1447 *** New optional argument =NO-UNDEFER= in ~org-element-map~ and changed argument conventions
   1448 
   1449 New optional argument =NO-UNDEFER=, when non-nil, will make
   1450 ~org-element-map~ keep deferred secondary string values in their raw
   1451 form.  See the top comment in =lisp/org-element-ast.el= for more
   1452 details about the deferred values.
   1453 
   1454 =TYPES= argument can now be set to ~t~.  This will match all the
   1455 syntax nodes when traversing the tree.
   1456 
   1457 ~FUN~ can now be a lisp form that will be evaluated with symbol ~node~
   1458 assigned to the current syntax node.
   1459 
   1460 ~FUN~ can now throw ~:org-element-skip~ signal to skip recursing into
   1461 current element children and secondary strings.
   1462 
   1463 *** New optional argument =KEEP-DEFERRED= in ~org-element-parse-buffer~
   1464 
   1465 When non-nil, the deferred values and properties will not be resolved.
   1466 See the top comment in =lisp/org-element-ast.el= for more details
   1467 about the deferred values.
   1468 
   1469 *** New optional argument =ANONYMOUS= for ~org-element-type~
   1470 
   1471 When the new argument is non-nil, return symbol ~anonymous~ for anonymous elements.
   1472 Previously, ~nil~ would be returned.
   1473 
   1474 *** ~org-element-adopt-elements~ is renamed to ~org-element-adopt~
   1475 
   1476 The old name is kept as an alias.  The new name creates less confusion
   1477 as the function can also act on objects.
   1478 
   1479 *** ~org-element-extract-element~ is renamed to ~org-element-extract~
   1480 
   1481 The old name is kept as an alias.  The new name creates less confusion
   1482 as the function can also act on objects.
   1483 
   1484 *** ~org-element-set-element~ is renamed to ~org-element-set~
   1485 
   1486 The old name is kept as an alias.  The new name creates less confusion
   1487 as the function can also act on objects.
   1488 
   1489 *** ~org-export-get-parent~ is renamed to ~org-element-parent~ and moved to =lisp/org-element.el=
   1490 
   1491 *** ~org-export-get-parent-element~ is renamed to ~org-element-parent-element~ and moved to =lisp/org-element.el=
   1492 
   1493 *** ~org-insert-heading~ optional argument =TOP= is now =LEVEL=
   1494 
   1495 A numeric value forces a heading at that level to be inserted.  For
   1496 backwards compatibility, non-numeric non-nil values insert level 1
   1497 headings as before.
   1498 
   1499 *** New optional argument for ~org-id-get~
   1500 
   1501 New optional argument =INHERIT= means inherited ID properties from
   1502 parent entries are considered when getting an entry's ID (see
   1503 ~org-id-link-consider-parent-id~ option).
   1504 
   1505 *** New optional argument for ~org-link-search~
   1506 
   1507 If a missing heading is created to match the search string, the new
   1508 optional argument =NEW-HEADING-CONTAINER= specifies where in the
   1509 buffer it will be added.  If not specified, new headings are created
   1510 at level 1 at the end of the accessible part of the buffer, as before.
   1511 
   1512 ** Miscellaneous
   1513 *** Add completion for links to man pages
   1514 
   1515 Completion is enabled for links to man pages added using ~org-insert-link~:
   1516 =C-c C-l man RET emacscl TAB= to get =emacsclient=.  Of course, the ~ol-man~
   1517 library should be loaded first.
   1518 
   1519 *** Datetree structure headlines can now be complex
   1520 
   1521 TODO state, priority, tags, statistics cookies, and COMMENT keywords
   1522 are allowed in the tree structure.
   1523 
   1524 *** Org links now support ~thing-at-point~
   1525 
   1526 You can now retrieve the destination of a link by calling
   1527 ~(thing-at-point 'url)~.  Requires Emacs 28 or newer.
   1528 
   1529 In Emacs 30 or newer, ~forward-thing~ and ~bounds-of-thing-at-point~
   1530 is also supported for links.
   1531 
   1532 *** Add support for ~logind~ idle time in ~org-user-idle-seconds~
   1533 
   1534 When Emacs is built with =dbus= support and
   1535 the =org.freedesktop.login1= interface is available, fallback to
   1536 checking the =IdleSinceHint= property when
   1537 determining =org-user-idle-seconds= as the penultimate step.
   1538 
   1539 *** =colview= dynamic block now writes column width specifications
   1540 
   1541 When column format contains width specifications, =colview= dynamic
   1542 block now writes these specifications as column width in the generated
   1543 tables and automatically shrinks the columns on display.
   1544 
   1545 Example:
   1546 
   1547 : * PROYECTO EMACS
   1548 : :PROPERTIES:
   1549 : :COLUMNS:  %10ITEM(PROJECT)
   1550 : :END:
   1551 :
   1552 : Before
   1553 :
   1554 : #+BEGIN: columnview :id local
   1555 : | PROJECT        |
   1556 : |----------------|
   1557 : | PROYECTO EMACS |
   1558 : #+END:
   1559 :
   1560 : After
   1561 :
   1562 : #+BEGIN: columnview :id local
   1563 : | <10>           |
   1564 : | PROJECT        |
   1565 : |----------------|
   1566 : | PROYECTO EMACS |
   1567 : #+END:
   1568 
   1569 *** =ob-lua=: Support all types and multiple values in results
   1570 
   1571 Lua code blocks can now return values of any type and can also return
   1572 multiple values.  Previously, values of certain types were incorrectly
   1573 converted to the empty string =""=, which broke HTML export for inline
   1574 code blocks, and multiple values were incorrectly concatenated, where
   1575 ~return 1, 2, 3~ was evaluated as =123=.
   1576 
   1577 Multiple values are comma-separated by default, so that they work well
   1578 with inline code blocks.  To change the string used as the separator,
   1579 customize ~org-babel-lua-multiple-values-separator~.
   1580 
   1581 *** ~org-store-link~ now moves an already stored link to front of the ~org-stored-links~
   1582 
   1583 Previously, when the link to be stored were stored already,
   1584 ~org-store-link~ displayed a message and did nothing.
   1585 
   1586 Now, ~org-store-link~ moves the stored link to front of the list of
   1587 stored links.  This way, the link will show up first in the completion
   1588 and when inserting all the stored links with ~org-insert-all-links~.
   1589 
   1590 *** ob-python now sets ~python-shell-buffer-name~ in Org edit buffers
   1591 
   1592 When editing a Python src block, the editing buffer is now associated
   1593 with the Python shell specified by the src block's ~:session~ header,
   1594 which means users can now send code directly from the edit buffer,
   1595 e.g., using ~C-c C-c~, to the session specified in the Org buffer.
   1596 
   1597 *** ~org-edit-special~ no longer force-starts session in R and Julia source blocks
   1598 
   1599 Previously, when R/Julia source block had =:session= header argument
   1600 set to a session name with "earmuffs" (like =*session-name*=),
   1601 ~org-edit-special~ always started a session, if it does not exist.
   1602 
   1603 Now, ~org-edit-special~ arranges that a new session with correct name
   1604 is initiated only when user explicitly executes R/Julia-mode commands
   1605 that trigger session interactions (requires ESS 24.01.0 or newer).
   1606 The same session will remain available in the context of Org babel.
   1607 
   1608 *** ~org-store-link~ behavior storing additional =CUSTOM_ID= links has changed
   1609 
   1610 Previously, when storing =id:= link, ~org-store-link~ stored an
   1611 additional "human readable" link using a node's =CUSTOM_ID= property.
   1612 
   1613 This behavior has been expanded to store an additional =CUSTOM_ID=
   1614 link when storing any type of external link type in an Org file, not
   1615 just =id:= links.
   1616 
   1617 *** =org-habit.el= now optionally inherits ~:STYLE: habit~ properties
   1618 
   1619 Currently, the ~STYLE~ property of habits is not inherited when searching
   1620 for entries.
   1621 
   1622 This change allows the property to be inherited optionally by customizing
   1623 the ~org-use-property-inheritance~ variable.
   1624 
   1625 This change aims to provide more flexibility in managing habits, allowing
   1626 users to dedicate separate subtrees or files to habits without manually
   1627 setting the ~STYLE~ property for each sub-task.
   1628 
   1629 The change is breaking when ~org-use-property-inheritance~ is set to ~t~.
   1630 
   1631 *** =ox-org= preserves header arguments in src blocks
   1632 
   1633 Previously, all the header arguments where stripped from src blocks
   1634 during export.  Now, header arguments are preserved.
   1635 
   1636 *** =ox-org= now exports special table rows by default
   1637 
   1638 Previously, when exporting to Org, special table rows (for example,
   1639 width cookies) were not exported.   Now, they are exported by default.
   1640 
   1641 You can customize new option ~org-org-with-special-rows~ to fall back to previous behavior.
   1642 
   1643 *** ~org-agenda-search-headline-for-time~ now ignores all the timestamp in headings
   1644 
   1645 Previously, ~org-agenda-search-headline-for-time~ made Org agenda
   1646 match anything resembling time inside headings.  Even when the time
   1647 was a part of a timestamp.
   1648 
   1649 Now, all the timestamps in headings are ignored when searching the time.
   1650 
   1651 *** =org-crypt.el= now applies initial visibility settings to decrypted entries
   1652 
   1653 Previously, all the text was unfolded unconditionally, including property drawers.
   1654 
   1655 *** Blank lines after removed objects are now retained during export
   1656 
   1657 When certain objects in Org document are to be excluded from export,
   1658 spaces after these objects were previously removed as well.
   1659 
   1660 For example, if ~org-export-with-footnotes~ is set to nil, the footnote in
   1661 
   1662 : Pellentesque dapibus suscipit ligula.[fn:1]  Donec posuere augue in quam.
   1663 
   1664 would be removed, leading to the following exported ASCII document
   1665 
   1666 : Pellentesque dapibus suscipit ligula.Donec posuere augue in quam.
   1667 
   1668 This is because spaces after footnote (and other markup) are
   1669 considered a part of the preceding AST object in Org.
   1670 
   1671 Now, unless there is a whitespace before an object to be removed,
   1672 spaces are preserved during export:
   1673 
   1674 : Pellentesque dapibus suscipit ligula.  Donec posuere augue in quam.
   1675 
   1676 *** Remove undocumented ~:target~ header parameter in ~ob-clojure~
   1677 
   1678 The ~:target~ header was only used internally to distinguish
   1679 from Clojure and ClojureScript.
   1680 This is now handled with an optional function parameter in
   1681 the respective functions that need this information.
   1682 
   1683 *** New org-entity alias: =\P= for =\para=
   1684 
   1685 For symmetry with =\S= and =\sect= for the section symbol, =\P= has
   1686 been added as an another form for the pilcrow symbol currently
   1687 available as =\para=.
   1688 
   1689 *** ~org-table-to-lisp~ no longer clobbers the regexp global state
   1690 
   1691 It does no longer use regexps.
   1692 
   1693 It is also faster. Large tables can be read quickly.
   1694 
   1695 * Version 9.6
   1696 
   1697 ** Important announcements and breaking changes
   1698 *** =python-mode.el (MELPA)= support in =ob-python.el= is deprecated
   1699 
   1700 We no longer aim to support third-party =python-mode.el= implementation of Python REPL.
   1701 Only the built-in =python.el= will be supported from now on.
   1702 
   1703 We still keep the old, partially broken, code in =ob-python.el= for
   1704 the time being.  It will be removed in the next release.
   1705 
   1706 See https://orgmode.org/list/87r0yk7bx8.fsf@localhost for more details.
   1707 
   1708 *** Element cache is enabled by default and works for headings
   1709 
   1710 The old element cache code has been refactored.  Emacs does not hang
   1711 anymore when the cache is enabled.
   1712 
   1713 When cache is enabled, ~org-element-at-point~ for headings is
   1714 guaranteed to return valid =:parent= property.  The highest-level
   1715 headings contain new =org-data= element as their parent.
   1716 
   1717 The new =org-data= element provides properties from top-level property
   1718 drawer, buffer-global category, and =:path= property containing file
   1719 path for file Org buffers.
   1720 
   1721 The new cache still need to be tested extensively.  Please, report any
   1722 warning coming from element cache.  If you see warnings regularly, it
   1723 would be helpful to set ~org-element--cache-self-verify~ to
   1724 ='backtrace= and provide the backtrace to Org mailing list.
   1725 
   1726 *** Element cache persists across Emacs sessions
   1727 
   1728 The cache state is saved between Emacs sessions.  Enabled by default.
   1729 
   1730 The cache persistence can be controlled via
   1731 ~org-element-cache-persistent~.
   1732 
   1733 *** Users experiencing performance issues can use new folding backend
   1734 
   1735 The old folding backend used in Org is poorly scalable when the file
   1736 size increases beyond few Mbs.  The symptoms usually include slow
   1737 cursor motion, especially in long-running Emacs sessions.
   1738 
   1739 A new optimized folding backend is now available, and enabled by
   1740 default.  To disable it, put the following to the Emacs config *before*
   1741 loading Org:
   1742 
   1743 #+begin_src emacs-lisp
   1744 (setq org-fold-core-style 'overlays)
   1745 #+end_src
   1746 
   1747 Even more performance optimization can be enabled by customizing
   1748 =org-fold-core--optimise-for-huge-buffers=.  However, this option may
   1749 be dangerous.  Please, read the variable docstring carefully to
   1750 understand the possible consequences.
   1751 
   1752 When =org-fold-core-style= is set to =text-properties=, several new
   1753 features will become available and several notable changes will happen
   1754 to the Org behavior.  The new features and changes are listed below.
   1755 
   1756 **** Hidden parts of the links can now be searched and revealed during isearch
   1757 
   1758 [2024-06-09 Sun] Since Org 9.7, this is no longer working.  See
   1759 changes for Org 9.7.
   1760 
   1761 In the past, hidden parts of the links could not be searched using
   1762 isearch (=C-s=).  Now, they are searchable by default.  The hidden
   1763 match is also revealed temporarily during isearch.
   1764 
   1765 To restore the old behavior add the following core to your Emacs
   1766 config:
   1767 
   1768 #+begin_src emacs-lisp
   1769 (defun org-hidden-link-ignore-isearch ()
   1770   "Do not match hidden parts of links during isearch."
   1771   (org-fold-core-set-folding-spec-property 'org-link :isearch-open nil)
   1772   (org-fold-core-set-folding-spec-property 'org-link :isearch-ignore t))
   1773 (add-hook 'org-mode-hook #'org-hidden-link-ignore-isearch)
   1774 #+end_src
   1775 
   1776 See docstring of =org-fold-core--specs= to see more details about
   1777 =:isearch-open= and =:isearch-ignore= properties.
   1778 
   1779 **** =org-catch-invisible-edits= now works for hidden parts of the links and for emphasis markers
   1780 
   1781 In the past, user could edit invisible parts of the links and emphasis markers.  Now, the editing is respecting the value of =org-catch-invisible-edits=.
   1782 
   1783 Note that hidden parts of sub-/super-scripts are still not handled.
   1784 
   1785 **** Breaking structure of folded elements automatically reveals the folded text
   1786 
   1787 In the past, the user could be left with unfoldable text after breaking the org structure.
   1788 
   1789 For example, if
   1790 
   1791 #+begin_src org
   1792 :DRAWER:
   1793 like this
   1794 :END:
   1795 #+end_src
   1796 
   1797 is folded and then edited into
   1798 
   1799 #+begin_src org
   1800 DRAWER:
   1801 like this
   1802 :END:
   1803 #+end_src
   1804 The hidden text would not be revealed.
   1805 
   1806 Now, breaking structure of drawers, blocks, and headings automatically
   1807 reveals the folded text.
   1808 
   1809 **** Folding state of the drawers is now preserved when cycling headline visibility
   1810 
   1811 In the past drawers were folded every time a headline is unfolded.
   1812 
   1813 Now, it is not the case anymore.  The drawer folding state is
   1814 preserved.  The initial folding state of all the drawers in buffer is
   1815 set according to the startup visibility settings.
   1816 
   1817 To restore the old behavior, add the following code to Emacs config:
   1818 
   1819 #+begin_src emacs-lisp
   1820 (add-hook 'org-cycle-hook #'org-cycle-hide-drawers)
   1821 #+end_src
   1822 
   1823 Note that old behavior may cause performance issues when cycling
   1824 headline visibility in large buffers.
   1825 
   1826 **** =outline-*= functions may no longer work correctly in Org mode
   1827 
   1828 The new folding backend breaks some of the =outline-*= functions that
   1829 rely on the details of visibility state implementation in
   1830 =outline.el=.  The old Org folding backend was compatible with the
   1831 =outline.el= folding, but it is not the case anymore with the new
   1832 backend.  From now on, using =outline-*= functions is strongly
   1833 discouraged when working with Org files.
   1834 
   1835 *** HTML export uses MathJax 3+ instead of MathJax 2
   1836 
   1837 Org now uses MathJax 3 by default instead of MathJax 2.  During HTML
   1838 exports, Org automatically converts all legacy MathJax 2 options to
   1839 the corresponding MathJax 3+ options, except for the ~path~ option in
   1840 which now /must/ point to a file containing MathJax version 3 or
   1841 later.  The new Org does /not/ work with the legacy MathJax 2.
   1842 
   1843 Further, if you need to use a non-default ~font~ or ~linebreaks~ (now
   1844 ~overflow~), then the ~path~ must point to MathJax 4 or later.
   1845 
   1846 See the updated ~org-html-mathjax-options~ for more details.
   1847 
   1848 MathJax 3, a ground-up rewrite of MathJax 2 came out in 2019.  The new
   1849 version brings modularity, better and faster rendering, improved LaTeX
   1850 support, and more.
   1851 
   1852 For more information about new features, see:
   1853 
   1854 https://docs.mathjax.org/en/latest/upgrading/whats-new-3.0.html
   1855 https://docs.mathjax.org/en/latest/upgrading/whats-new-3.1.html
   1856 https://docs.mathjax.org/en/latest/upgrading/whats-new-3.2.html
   1857 
   1858 MathJax 3 comes with useful extensions.  For instance, you can typeset
   1859 calculus with the ~physics~ extension or chemistry with the ~mhchem~
   1860 extension, like in LaTeX.
   1861 
   1862 Note that the Org manual does not discuss loading of MathJax
   1863 extensions via ~+HTML_MATHJAX~ anymore.  It has never worked anyway.
   1864 To actually load extensions, consult the official documentation:
   1865 
   1866 https://docs.mathjax.org/en/latest/input/tex/extensions.html
   1867 
   1868 Lastly, MathJax 3 changed the default JavaScript content delivery
   1869 network (CDN) provider from CloudFlare to jsDelivr.  You can find the
   1870 new terms of service, including the privacy policy, at
   1871 https://www.jsdelivr.com/terms.
   1872 
   1873 *** List references in source block variable assignments are now proper lists
   1874 
   1875 List representation of named lists is now converted to a simple list
   1876 as promised by the manual section [[info:org#Environment of a Code Block][org#Environment of a Code Block]].
   1877 Previously, it was converted to a list of lists.
   1878 
   1879 Before:
   1880 
   1881 #+begin_src org
   1882 ,#+NAME: example-list
   1883 - simple
   1884   - not
   1885   - nested
   1886 - list
   1887 
   1888 ,#+BEGIN_SRC emacs-lisp :var x=example-list :results value
   1889 (format "%S" x)
   1890 ,#+END_SRC
   1891 
   1892 ,#+RESULTS:
   1893 : (("simple" (unordered ("not") ("nested"))) ("list"))
   1894 #+end_src
   1895 
   1896 After:
   1897 
   1898 #+begin_src org
   1899 ,#+BEGIN_SRC emacs-lisp :var x=example-list :results value
   1900 (format "%S" x)
   1901 ,#+END_SRC
   1902 
   1903 ,#+RESULTS:
   1904 : ("simple" "list")
   1905 #+end_src
   1906 
   1907 
   1908 ** New features
   1909 *** Column view: new commands to move rows up & down
   1910 You can move rows up & down in column view with
   1911 ~org-columns-move-row-up~ and ~org-columns-move-row-down~.
   1912 Keybindings are the same as ~org-move-subtree-up~ and ~org-move-subtree-down~
   1913 =M-<up>= and =M-<down>=.
   1914 *** Clock table can now produce quarterly reports
   1915 
   1916 =:step= clock table parameter can now be set to =quarter=.
   1917 *** Publishing now supports links to encrypted Org files
   1918 
   1919 Links to other published Org files are automatically converted to the
   1920 corresponding html links.  Now, this feature is also available when
   1921 links point to encrypted Org files, like
   1922 =[[file:foo.org.gpg::Heading]]=.
   1923 
   1924 *** Interactive commands now support escaping text inside comment blocks
   1925 
   1926 ~org-edit-special~ and ~org-insert-structure-template~ now handle
   1927 comment blocks.
   1928 
   1929 See [[*New command ~org-edit-comment-block~ to edit comment block at
   1930 point]].
   1931 
   1932 *** New customization option =org-property-separators=
   1933 A new alist variable to control how properties are combined.
   1934 
   1935 If a property is specified multiple times with a =+=, like
   1936 
   1937 #+begin_src org
   1938 :PROPERTIES:
   1939 :EXPORT_FILE_NAME: some/path
   1940 :EXPORT_FILE_NAME+: to/file
   1941 :END:
   1942 #+end_src
   1943 
   1944 the old behavior was to always combine them with a single space
   1945 (=some/path to/file=).  For the new variable, the car of each item in
   1946 the alist should be either a list of property names or a regular
   1947 expression, while the cdr should be the separator to use when
   1948 combining that property.
   1949 
   1950 The default value for the separator is a single space, if none of the
   1951 provided items in the alist match a given property.
   1952 
   1953 For example, in order to combine =EXPORT_FILE_NAME= properties with a
   1954 forward slash =/=, one can use
   1955 
   1956 #+begin_src emacs-lisp
   1957 (setq org-property-separators '((("EXPORT_FILE_NAME") . "/")))
   1958 #+end_src
   1959 
   1960 The example above would then produce the property value
   1961 =some/path/to/file=.
   1962 
   1963 *** New library =org-persist.el= implements variable persistence across Emacs sessions
   1964 
   1965 The library stores variable data in ~org-persist-directory~ (set to XDG
   1966 cache dir by default).
   1967 
   1968 The entry points are ~org-persist-register~, ~org-persist-unregister~,
   1969 ~org-persist-read~, and ~org-persist-read-all~.  Storing circular
   1970 structures is supported.  Storing references between different
   1971 variables is also supported (see =:inherit= key in
   1972 ~org-persist-register~).
   1973 
   1974 The library permits storing buffer-local variables.  Such variables
   1975 are linked to the buffer text, file =inode=, and file path.
   1976 
   1977 *** New =:options= attribute when exporting tables to LaTeX
   1978 
   1979 The =:options= attribute allows adding an optional argument with a
   1980 list of various table options (between brackets in LaTeX export),
   1981 since certain tabular environments, such as longtblr of the
   1982 tabularray LaTeX package, provides this structure.
   1983 
   1984 *** New =:compact= attribute when exporting lists to Texinfo
   1985 
   1986 The =:compact= attribute allows exporting multiple description list
   1987 items to one =@item= command and one or more =@itemx= commands.  This
   1988 feature can also be enabled for all description lists in a file using
   1989 the =compact-itemx= export option, or globally using the
   1990 ~org-texinfo-compact-itemx~ variable.
   1991 
   1992 *** New shorthands recognized when exporting to Texinfo
   1993 
   1994 Items in a description list that begin with =Function:=, =Variable:=
   1995 or certain related prefixes are converted using Texinfo definition
   1996 commands.
   1997 *** New =:noweb-prefix= babel header argument
   1998 
   1999 =:noweb-prefix= can be set to =no= to prevent the prefix characters
   2000 from being repeated when expanding a multiline noweb reference.
   2001 
   2002 *** New =:noweb= babel header argument value =strip-tangle=
   2003 
   2004 =:noweb= can be set to =strip-tangle= to strip the noweb syntax references
   2005 before tangling.
   2006 
   2007 *** New LaTeX source block backend using =engraved-faces-latex=
   2008 
   2009 When ~org-latex-src-block-backend~ is set to ~engraved~,
   2010 =engrave-faces-latex= from [[http://elpa.gnu.org/packages/engrave-faces.html][engrave-faces]] is used to transcode source
   2011 blocks to LaTeX. This requires the =fvextra=, =float=, and (by
   2012 default, but not necessarily) =tcolorbox= LaTeX packages be
   2013 installed. It uses Emacs's font-lock information, and so tends to
   2014 produce results superior to Minted or Listings.
   2015 *** Support for =#+include=-ing URLs
   2016 
   2017 =#+include: FILE= will now accept URLs as the file.
   2018 *** Structure templates now respect case used in ~org-structure-template-alist~
   2019 
   2020 The block type in ~org-structure-template-alist~ is not case-sensitive.
   2021 When the block type starts from the upper case, structure template
   2022 will now insert =#+BEGIN_TYPE=.  Previously, lower-case =#+begin_type= was inserted unconditionally.
   2023 *** New ox-latex tabbing support for tables.
   2024 
   2025 LaTeX tables can now be exported to the latex tabbing environment
   2026 tabbing environment]].
   2027 This is done by adding =#+ATTR_LATEX: :mode tabbing= at the top
   2028 of the table.
   2029 The default column width is set to 1/n times the latex textwidth,
   2030 where n is the number of columns.
   2031 This behavior can be changed by supplying a =:align= parameter.
   2032 
   2033 The tabbing environment can be useful when generating simple tables which
   2034 can be span multiple pages and when table cells are allowed to overflow.
   2035 *** Support for =nocite= citations and sub-bibliographies in the "csl" export processor
   2036 
   2037 The "csl" citation export processor now supports =nocite= style
   2038 citations that add items to the printed bibliography without visible
   2039 references in the text. Using the key =*= in a nocite citation, for
   2040 instance,
   2041 
   2042 #+begin_src org
   2043 [cite/n:@*]
   2044 #+end_src
   2045 
   2046 includes all available items in the printed bibliography.
   2047 
   2048 The "csl" export processor now also supports sub-bibliographies that
   2049 show only a subset of the references based on some criterion.  For
   2050 example,
   2051 
   2052 #+begin_src org
   2053 #+print_bibliography: :type book :keyword ai
   2054 #+end_src
   2055 
   2056 prints a sub-bibliography containing the book entries with =ai= among
   2057 their keywords.
   2058 *** New =:filetitle= option for clock table
   2059 
   2060 The =:filetitle= option for clock tables can be set to ~t~ to show org
   2061 file title (set by =#+title:=) in the File column instead of the
   2062 file name.  For example:
   2063 
   2064 #+begin_src org
   2065 ,#+BEGIN: clocktable :scope agenda :maxlevel 2 :block thisweek :filetitle t
   2066 #+end_src
   2067 
   2068 If a file does not have a title, the table will show the file name
   2069 instead.
   2070 *** New =org-md-toplevel-hlevel= variable for Markdown export
   2071 
   2072 The =org-md-toplevel-hlevel= customization variable sets the heading
   2073 level used for top level headings, much like how
   2074 =org-html-toplevel-hlevel= sets the heading level used for top level
   2075 headings in HTML export.
   2076 *** Babel: new syntax to pass the contents of a src block as argument
   2077 
   2078 Use the header argument =:var x=code-block[]= or
   2079 : #+CALL: fn(x=code-block[])
   2080 to pass the contents of a named code block as a string argument.
   2081 *** New property =ORG-IMAGE-ACTUAL-WIDTH= for overriding global ~org-image-actual-width~
   2082 
   2083 The new property =ORG-IMAGE-ACTUAL-WIDTH= can override the global
   2084 variable ~org-image-actual-width~ value for inline images display width.
   2085 
   2086 *** Outline cycling can now include inline image visibility
   2087 
   2088 New ~org-cycle-hook~ function ~org-cycle-display-inline-images~ for
   2089 auto-displaying inline images in the visible parts of the subtree.
   2090 This behavior is controlled by new custom option
   2091 ~org-cycle-inline-images-display~.
   2092 
   2093 *** New ~org-babel-tangle-finished-hook~ hook run at the very end of ~org-babel-tangle~
   2094 
   2095 This provides a proper counterpart to ~org-babel-pre-tangle-hook~, as
   2096 ~org-babel-post-tangle-hook~ is run
   2097 per-tangle-destination. ~org-babel-tangle-finished-hook~ is just run
   2098 once after the post tangle hooks.
   2099 
   2100 *** New =:backend= header argument for clojure code blocks
   2101 
   2102 The =:backend= header argument on clojure code blocks can override the
   2103 value of ~org-babel-clojure-backend~. For example:
   2104 
   2105 #+begin_src clojure :backend babashka
   2106 (range 2)
   2107 #+end_src
   2108 
   2109 *** New =:results discard= header argument
   2110 
   2111 Unlike =:results none=, the return value of code blocks called with
   2112 =:results discard= header argument is always ~nil~.  Org does not
   2113 attempt to analyze the results and simply returns nil.  This can be
   2114 useful when the code block is used for side effects only but generates
   2115 large outputs that may be slow to analyze for Org.
   2116 
   2117 *** Add Capture template hook properties
   2118 
   2119 Capture templates can now attach template specific hooks via the
   2120 following properties: ~:hook~, ~:prepare-finalize~,
   2121 ~:before-finalize~, ~:after-finalize~.  These nullary functions run
   2122 prior to their global counterparts for the selected template.
   2123 
   2124 ** New options
   2125 *** New option ~org-columns-checkbox-allowed-values~
   2126 
   2127 This would allow to use more than two states ("[ ]", "[X]") in
   2128 columns with SUMMARY-TYPE that use checkbox ("X", "X/", "X%").
   2129 For example you can add an intermediate state ("[-]").
   2130 Or empty state ("") to remove checkbox.
   2131 
   2132 *** A new option for custom setting ~org-refile-use-outline-path~ to show document title in refile targets
   2133 
   2134 Setting ~org-refile-use-outline-path~ to ~'title~ will show title
   2135 instead of the file name in refile targets.  If the document do not have
   2136 a title, the filename will be used, similar to ~'file~ option.
   2137 
   2138 *** A new option for custom setting ~org-agenda-show-outline-path~ to show document title
   2139 
   2140 Setting ~org-agenda-show-outline-path~ to ~'title~ will show title
   2141 instead of the file name at the beginning of the outline.  The title of
   2142 the document can be set by special keyword =#+title:=.
   2143 
   2144 *** New custom settings =org-icalendar-scheduled-summary-prefix= and =org-icalendar-deadline-summary-prefix=
   2145 
   2146 These settings allow users to define prefixes for exported summary
   2147 lines in ICS exports.  The customization can be used to disable
   2148 the prefixes completely or make them a little bit more verbose
   2149 (e.g. "Deadline: " instead of the default "DL: ").
   2150 
   2151 The same settings can also be applied via corresponding exporter
   2152 options:
   2153 =:icalendar-scheduled-summary-prefix=,
   2154 =:icalendar-deadline-summary-prefix=
   2155 
   2156 *** A new custom setting =org-hide-drawer-startup= to control initial folding state of drawers
   2157 
   2158 Previously, all the drawers were always folded when opening an Org
   2159 file.  This only had an effect on the drawers outside folded
   2160 headlines.  The drawers inside folded headlines were re-folded because
   2161 =org-cycle-hide-drawers= was present inside =org-cycle-hook=.
   2162 
   2163 With the new folding backend, running =org-cycle-hide-drawers= is no
   2164 longer needed if all the drawers are truly folded on startup: [[*Folding
   2165 state of the drawers is now preserved when cycling headline
   2166 visibility]].  However, this has an unwanted effect when a user does
   2167 not want the drawers to be folded (see [[https://orgmode.org/list/m2r14f407q.fsf@ntnu.no][this bug report]]).
   2168 
   2169 The new custom setting gives more control over initial folding state
   2170 of the drawers.  When set to =nil= (default is =t=), the drawers are
   2171 not folded on startup.
   2172 
   2173 The folding state can also be controlled on per-file basis using
   2174 =STARTUP= keyword:
   2175 
   2176 : #+startup: hidedrawers
   2177 : #+startup: nohidedrawers
   2178 
   2179 *** New custom setting ~org-icalendar-force-alarm~
   2180 
   2181 The new setting, when set to non-nil, makes Org create alarm at the
   2182 event time when the alarm time is set to 0.  The default value is
   2183 nil -- do not create alarms at the event time.
   2184 
   2185 *** New special value ~'attach~ for src block =:dir= option
   2186 
   2187 Passing the symbol ~attach~ or string ="'attach"= (with quotes) to the =:dir=
   2188 option of a src block is now equivalent to =:dir (org-attach-dir) :mkdir yes=
   2189 and any file results with a path descended from the attachment directory will
   2190 use =attachment:= style links instead of the standard =file:= link type.
   2191 
   2192 ** New functions and changes in function arguments
   2193 *** New function ~org-get-title~ to get =#+TITLE:= property from buffers
   2194 
   2195 A function to collect the document title from the org-mode buffer.
   2196 
   2197 *** ~org-fold-show-entry~ does not fold drawers by default anymore
   2198 
   2199 ~org-fold-show-entry~ now accepts an optional argument HIDE-DRAWERS.
   2200 When the argument is non-nil, the function folds all the drawers
   2201 inside entry.  This was the default previously.
   2202 
   2203 Now, ~org-fold-show-entry~ does not fold drawers by default.
   2204 
   2205 *** New command ~org-edit-comment-block~ to edit comment block at point
   2206 
   2207 As the contents of comments blocks is not parsed as Org markup, the
   2208 headlines and keywords inside should be escaped, similar to src
   2209 blocks, example blocks, and export blocks.  This in inconvenient to do
   2210 manually and ~org-edit-special~ is usually advised to edit text in
   2211 such kind of blocks.
   2212 
   2213 Now, comment block editing is also supported via this new function.
   2214 
   2215 *** New function ~org-element-cache-map~ for quick mapping across Org elements
   2216 
   2217 When element cache is enabled, the new function provides the best
   2218 possible performance to map across large Org buffers.
   2219 
   2220 It is recommended to provide =:next-re= and =:fail-re= parameters for
   2221 best speed.
   2222 
   2223 Diagnostic information about execution speed can be provided according
   2224 to ~org-element--cache-map-statistics~ and
   2225 ~org-element--cache-map-statistics-threshold~.
   2226 
   2227 ~org-scan-tags~ and tag views in agenda utilize the new function.
   2228 *** New function ~org-element-at-point-no-context~
   2229 
   2230 This function is like ~org-element-at-point~, but it does not try to
   2231 update the cache and does not guarantee correct =:parent= properties
   2232 for =headline= elements.
   2233 
   2234 This function is faster than ~org-element-at-point~ when used together
   2235 with frequent buffer edits.
   2236 *** Various Org API functions now use cache and accept Org elements as optional arguments
   2237 
   2238 ~org-in-archived-heading-p~, ~org-in-commented-heading-p~,
   2239 ~org-up-heading-safe~, ~org-end-of-subtree~, ~org-goto-first-child~,
   2240 ~org-back-to-heading~, ~org-entry-get-with-inheritance~, and
   2241 ~org-narrow-to-subtree~ all accept Org element as an extra optional
   2242 argument.
   2243 
   2244 ~org-get-tags~ now accepts Org element or buffer position as first
   2245 argument.
   2246 
   2247 *** New function ~org-texinfo-kbd-macro~
   2248 
   2249 This function is intended for us in the definition of a ~kbd~ macro in
   2250 files that are exported to Texinfo.
   2251 
   2252 *** =org-at-heading-p= now recognizes optional argument. Its meaning is inverted.
   2253 
   2254 =org-at-heading-p= now returns t by default on headings inside folds.
   2255 Passing optional argument will produce the old behavior.
   2256 
   2257 *** =org-babel-execute:plantuml= can output ASCII graphs in the buffer
   2258 
   2259 Previously, executing PlantUML src blocks always exported to a file.  Now, if
   2260 :results is set to a value which does not include "file", no file will be
   2261 exported and an ASCII graph will be inserted below the src block.
   2262 
   2263 ** Removed or renamed functions and variables
   2264 *** =org-plantump-executable-args= is renamed and applies to jar as well
   2265 
   2266 The new variable name is =org-plantuml-args=.  It now applies to both
   2267 jar PlantUML file and executable.
   2268 *** Default values and interpretations of ~org-time-stamp-formats~ and ~org-time-stamp-custom-formats~ are changed
   2269 
   2270 Leading =<= and trailing =>= in the default values of
   2271 ~org-time-stamp-formats~ and ~org-time-stamp-custom-formats~ are
   2272 stripped.
   2273 
   2274 The Org functions that are using these variables also ignore leading
   2275 and trailing brackets (=<...>= and =[...]=, if present).
   2276 
   2277 This change makes the Org code more consistent and also makes the
   2278 docstring for ~org-time-stamp-custom-formats~ accurate.
   2279 
   2280 No changes on the user side are needed if
   2281 ~org-time-stamp-custom-formats~ was customized.
   2282 *** ~org-timestamp-format~ is renamed to ~org-format-timestamp~
   2283 
   2284 The old function name is similar to other ~org-time-stamp-format~
   2285 function.  The new name emphasizes that ~org-format-timestamp~ works
   2286 on =timestamp= objects.
   2287 
   2288 *** Updated argument list in ~org-time-stamp-format~
   2289 
   2290 New =custom= argument in ~org-time-stamp-format~ makes the function
   2291 use ~org-time-stamp-custom-formats~ instead of
   2292 ~org-time-stamp-formats~ to determine the format.
   2293 
   2294 Optional argument =long= is renamed to =with-time=, emphasizing that it refers to time stamp format with time specification.
   2295 
   2296 Optional argument =inactive= can now have a value =no-brackets= to
   2297 return format string with brackets stripped.
   2298 
   2299 ** Miscellaneous
   2300 *** SQL Babel ~:dbconnection~ parameter can be mixed with other SQL Babel parameters
   2301 
   2302 Before you could either specify SQL parameters like ~:dbhost~,
   2303 ~:dbuser~, ~:database~, etc or a ~:dbconnection~ parameter which looks
   2304 up all other parameters from the ~sql-connection-alist~ variable.  Now
   2305 it's possible to specify a ~:dbconnection~ and additionally other
   2306 parameters that will add or overwrite the parameters coming from
   2307 ~sql-connection-alist~.
   2308 
   2309 E.g. if you have a connection in your ~sql-connection-alist~ to a
   2310 server that has many databases, you don't need an entry for every
   2311 database but instead can just specify ~:database~ next to your
   2312 ~:dbconnection~ parameter.
   2313 
   2314 *** Post-processing code blocks can return an empty list
   2315 
   2316 When the result of a regular code block is nil, then that was already
   2317 treated as an empty list.  Now that is also the case for code blocks
   2318 that post-process the result of another block.
   2319 
   2320 *** Styles are customizable in ~biblatex~ citation processor
   2321 
   2322 It is now possible to add new styles or modify old ones in ~biblatex~
   2323 citation processor.  See ~org-cite-biblatex-styles~ for more
   2324 information.
   2325 
   2326 *** Citation processors can declare styles dynamically
   2327 
   2328 When a citation processor is registered, it is now possible to set
   2329 ~:cite-styles~ key to a function, which will be called whenever the
   2330 list of styles is required.
   2331 
   2332 *** Org also searches for CSL style files in default directory
   2333 
   2334 When CSL style file name is relative, Org first looks into
   2335 default-directory before trying ~org-cite-csl-styles-dir~.
   2336 
   2337 *** Users can add checkers to the linting process
   2338 
   2339 The function ~org-lint-add-checker~ allows one to add personal checks
   2340 when calling ~org-lint~.   See its docstring for more information.
   2341 
   2342 *** New =transparent-image-converter= property for =dvipng=
   2343 
   2344 The =dvipng= option in ~org-preview-latex-process-alist~ has a new
   2345 property =transparent-image-converter= which is used instead of
   2346 =image-converter= when producing transparent images.
   2347 
   2348 *** =:tangle-mode= now accepts more permissions formats
   2349 
   2350 Previously =:tangle-mode (identity #o755)= was the only reasonable way
   2351 to set the file mode. ~org-babel-interpret-file-mode~ has been
   2352 introduced which will accept three new formats:
   2353 + Short octals, e.g. =:tangle-mode o755=
   2354 + ls-style, e.g. =:tangle-mode rwxrw-rw-=
   2355 + chmod-style, e.g. =:tangle-mode u+x=
   2356 
   2357 Chmod-style permissions are based on the new variable
   2358 ~org-babel-tangle-default-file-mode~.
   2359 
   2360 *** A new custom setting =org-agenda-clock-report-header= to add a header to org agenda clock report
   2361 
   2362 *** ~org-latex-listings~ has been replaced with ~org-latex-src-block-backend~
   2363 
   2364 ~org-latex-listings~ has been renamed to better reflect the current
   2365 purpose of the variable.  The replacement variable
   2366 ~org-latex-src-block-backend~ acts in exactly the same way, however it
   2367 accepts =listings= and =verbatim= in place of =t= and =nil= (which
   2368 still work, but are no longer listed as valid options).
   2369 
   2370 *** ~org-link-parameters~ has a new ~:insert-description~ parameter
   2371 
   2372 The value of ~:insert-description~ is used as the initial input when
   2373 prompting for a link description.  It can be a string (used as-is) or
   2374 a function (called with the same arguments as
   2375 ~org-make-link-description-function~ to return a string to use).
   2376 
   2377 An example of a such function for =info:= links is
   2378 ~org-info-description-as-command~.  To access a manual section outside
   2379 of Org, description may be pasted to shell prompt or evaluated within
   2380 Emacs using =M-:= (wrapped into parenthesis).  For example,
   2381 description of the =info:org#Tags= link is =info "(org) Tags"=.  To
   2382 restore earlier behavior add to your Emacs init file the following:
   2383 #+begin_src elisp :results silent :eval never-export
   2384   (with-eval-after-load 'ol-info
   2385     (org-link-set-parameters "info" :insert-description nil))
   2386 #+end_src
   2387 
   2388 *** New list of languages for LaTeX export: ~org-latex-language-alist~
   2389 
   2390 ~org-latex-language-alist~ unifies into a single list the old language
   2391 lists for the =babel= and =polyglossia= LaTeX packages:
   2392 ~org-latex-babel-language-alist~ and
   2393 ~org-latex-polyglossia-language-alist~, respectively, which are
   2394 declared obsolete.
   2395 
   2396 This new list captures the current state of art regarding language
   2397 support in LaTeX.  The new =babel= syntax for loading languages via
   2398 =ini= files and the new command =\babelprovide= (see:
   2399 https://mirrors.ctan.org/macros/latex/required/babel/base/babel.pdf)
   2400 are also supported.
   2401 *** Texinfo exports include LaTeX
   2402 
   2403 With the new customization option ~org-texinfo-with-latex~ set to (its
   2404 default value) ~'detect~, if the system runs Texinfo 6.8 (3 July 2021)
   2405 or newer, Org will export all LaTeX fragments and environments using
   2406 Texinfo ~@math~ and ~@displaymath~ commands respectively.
   2407 *** More flexible ~org-attach-id-to-path-function-list~
   2408 
   2409 List entries may return nil if they are unable to handle the passed
   2410 ID.  So, responsibility is passed to the next item in the list.
   2411 Default entries ~org-attach-id-uuid-folder-format~ and
   2412 ~org-attach-id-ts-folder-format~ now return nil for too short IDs.
   2413 Earlier an obscure error has been thrown.
   2414 
   2415 After the change, error text suggests adjusting
   2416 ~org-attach-id-to-path-function-list~ value.  The
   2417 ~org-attach-dir-from-id~ function is adapted to ignore nil values and
   2418 to take first non-nil value instead of the value returned by first
   2419 ~org-attach-id-to-path-function-list~ item.
   2420 
   2421 New policy allows mixing different ID styles while keeping subfolder
   2422 layout suited best for each one.  For example, one can use the
   2423 following snippet to allow multiple different ID formats in Org files.
   2424 
   2425 #+begin_src emacs-lisp
   2426 (setq org-attach-id-to-path-function-list
   2427       '(;; When ID looks like an UUIDs or Org internal ID, use
   2428         ;; `org-attach-id-uuid-folder-format'.
   2429         (lambda (id)
   2430           (and (or (org-uuidgen-p id)
   2431                    (string-match-p "[0-9a-z]\\{12\\}" id))
   2432                (org-attach-id-uuid-folder-format id)))
   2433         ;; When ID looks like a timestamp-based ID. Group by year-month
   2434         ;; folders.
   2435         (lambda (id)
   2436           (and (string-match-p "[0-9]\\{8\\}T[0-9]\\{6\\}\.[0-9]\\{6\\}" id)
   2437                (org-attach-id-ts-folder-format id)))
   2438         ;; Any other ID goes into "important" folder.
   2439         (lambda (id) (format "important/%s/%s" (substring id 0 1) id))
   2440         ;; Fallback to detect existing attachments for old defaults.
   2441         ;; All the above functions, even when return non-nil, would
   2442         ;; point to non-existing folders.
   2443         org-attach-id-uuid-folder-format
   2444         org-attach-id-ts-folder-format))
   2445 #+end_src
   2446 * Version 9.5
   2447 
   2448 ** Important announcements and breaking changes
   2449 
   2450 *** The =contrib/= now lives in a separate repository
   2451 
   2452 Org's repository has been trimmed from the =contrib/= directory.
   2453 
   2454 The old contents of the =contrib/= directory now lives in a separate
   2455 repository at https://git.sr.ht/~bzg/org-contrib.
   2456 
   2457 You can install this repository by cloning it and updating your
   2458 ~load-path~ accordingly.  You can also install =org-contrib= as a
   2459 [[https://elpa.nongnu.org/nongnu/][NonGNU ELPA]] package.
   2460 
   2461 *** Org ELPA and Org archives won't be available for Org > 9.5
   2462 
   2463 [[https://orgmode.org/elpa.html][Org ELPA]] is still available for installing Org 9.5, either with or
   2464 without contributed packages, but future versions won't be available
   2465 via Org ELPA, as we are deprecating this installation method.
   2466 
   2467 Also, Org 9.5 is available as =tar.gz= and =zip= archives, but this
   2468 installation method is also deprecated.
   2469 
   2470 If you want to install the latest stable versions of Org, please use
   2471 the GNU ELPA package.  If you want to install the contributed files,
   2472 please use the NonGNU ELPA package.  If you want to keep up with the
   2473 latest unstable Org, please install from the Git repository.
   2474 
   2475 See https://orgmode.org/org.html#Installation for the details.
   2476 
   2477 *** =ditaa.jar= is not bundled with Org anymore
   2478 
   2479 =ditaa.jar= used to be bundled with Org but it is not anymore.
   2480 See [[https://github.com/stathissideris/ditaa][the ditaa repository]] on how to install it.
   2481 
   2482 *** ~org-adapt-indentation~ now defaults to =nil=
   2483 
   2484 If you want to automatically indent headlines' metadata, set it to
   2485 =headline-data=.
   2486 
   2487 If you want to automatically indent every line to the headline's
   2488 current indentation, set it to =t=.
   2489 
   2490 Indent added by =RET= and =C-j= also depends on the value of
   2491 ~electric-indent-mode~.  Enabling this mode by default in 9.4 revealed
   2492 some bugs caused confusing behavior.  If you disabled
   2493 ~electric-indent-mode~ for this reason, it is time to try it again.
   2494 Hopefully problems have been fixed.  See [[https://orgmode.org/worg/org-faq.html#indentation][this FAQ]] for more details.
   2495 
   2496 *** ~org-speed-commands-user~ is obsolete, use ~org-speed-commands~
   2497 
   2498 Setting ~org-speed-commands-user~ in your configuration won't have any
   2499 effect.  Please set ~org-speed-commands~ instead, which see.
   2500 
   2501 *** Some =ob-*.el= files have been moved to the org-contrib repo
   2502 
   2503 These files have been moved to https://git.sr.ht/~bzg/org-contrib:
   2504 
   2505 - ob-abc.el
   2506 - ob-asymptote.el
   2507 - ob-coq.el
   2508 - ob-ebnf.el
   2509 - ob-hledger.el
   2510 - ob-io.el
   2511 - ob-J.el
   2512 - ob-ledger.el
   2513 - ob-mscgen.el
   2514 - ob-picolisp.el
   2515 - ob-shen.el
   2516 - ob-stan.el
   2517 - ob-vala.el
   2518 
   2519 See the discussion [[msg::87bl9rq29m.fsf@gnu.org][here]].
   2520 
   2521 *** Compatibility with Emacs versions
   2522 
   2523 We made it explicit that we aim at keeping the latest stable version
   2524 of Org compatible with at least Emacs V, V-1 and V-2, where V is the
   2525 stable major version of Emacs.
   2526 
   2527 For example, if the current major version of Emacs is 28.x, then the
   2528 latest stable version of Org should be compatible with Emacs 28.x,
   2529 27.x and 26.x – but not with Emacs 25.x.
   2530 
   2531 See [[https://orgmode.org/worg/org-maintenance.html#emacs-compatibility][this note on Worg]] and [[git::519947e508e081e71bf67db99e27b1c171ba4dfe][this commit]].
   2532 
   2533 *** The keybinding for ~org-table-blank-field~ has been removed
   2534 
   2535 If you prefer to keep the keybinding, you can add it back to
   2536 ~org-mode-map~ like so:
   2537 
   2538 #+begin_src emacs-lisp
   2539 (define-key org-mode-map (kbd "C-c SPC") #'org-table-blank-field)
   2540 #+end_src
   2541 
   2542 ** New features
   2543 
   2544 *** New citation engine
   2545 
   2546 Org 9.5 provides a new library =oc.el= which provides tooling to
   2547 handle citations in Org, e.g., activate, follow, insert, and export
   2548 them, respectively called "activate", "follow", "insert" and "export"
   2549 capabilities.  Libraries responsible for providing some, or all, of
   2550 these capabilities are called "citation processors".
   2551 
   2552 The manual contains a few pointers to let you start and you may want
   2553 to check [[https://blog.tecosaur.com/tmio/2021-07-31-citations.html][this blog post]].  If you need help using this new features,
   2554 please ask on the mailing list.
   2555 
   2556 Thanks to Nicolas Goaziou for implementing this, to Bruce D’Arcus for
   2557 helping him and to John Kitchin for paving the way with =org-ref.el=.
   2558 
   2559 *** Async session evaluation
   2560 
   2561 The =:async= header argument can be used for asynchronous evaluation
   2562 in session blocks for certain languages.
   2563 
   2564 Currently, async evaluation is supported in Python.  There is also
   2565 functionality to implement async evaluation in other languages that
   2566 use comint, but this needs to be done on a per-language basis.
   2567 
   2568 By default, async evaluation is disabled unless the =:async= header
   2569 argument is present.  You can also set =:async no= to force it off
   2570 (for example if you've set =:async= in a property drawer).
   2571 
   2572 Async evaluation is disabled during export.
   2573 *** ~ox-koma-letter.el~ is now part of Org's core
   2574 
   2575 ~ox-koma-letter.el~ provides a KOMA scrlttr2 back-end for the Org
   2576 export engine.  It used to be in the =contrib/= directory but it is
   2577 now part of Org's core.
   2578 
   2579 *** Support exporting DOI links
   2580 
   2581 Org now supports export for DOI links, through its new =ol-doi.el=
   2582 library.  For backward compatibility, it is loaded by default.
   2583 
   2584 *** Add a new ~:refile-targets~ template option
   2585 
   2586 When exiting capture mode via ~org-capture-refile~, the variable
   2587 ~org-refile-targets~ will be temporarily bound to the value of this
   2588 template option.
   2589 
   2590 *** New startup options =#+startup: show<n>levels=
   2591 
   2592 These startup options complement the existing =overview=, =content=,
   2593 =showall=, =showeverything= with a way to start the document with n
   2594 levels shown, where n goes from 2 to 5.
   2595 
   2596 Example:
   2597 
   2598 : #+startup: show3levels
   2599 
   2600 *** New =u= table formula flag to enable Calc units simplification mode
   2601 
   2602 A new =u= mode flag for Calc formulas in Org tables has been added to
   2603 enable Calc units simplification mode.
   2604 
   2605 *** Support fontification of inline export snippets
   2606 
   2607 See [[msg:87im57fh8j.fsf@gmail.com][this thread]].
   2608 
   2609 *** New command =org-refile-reverse= bound to =C-c C-M-w=
   2610 
   2611 You can now use =C-c C-M-w= to run ~org-refile-reverse~.
   2612 
   2613 It is almost identical to ~org-refile~, except that it temporarily
   2614 toggles how ~org-reverse-note-order~ applies to the current buffer.
   2615 So if ~org-refile~ would append the entry as the last entry under the
   2616 target heading, ~org-refile-reverse~ will prepend it as the first
   2617 entry, and vice-versa.
   2618 
   2619 *** LaTeX attribute ~:float~ now passes through arbitrary values
   2620 
   2621 LaTeX users are able to define arbitrary float types, e.g. with the
   2622 float package.  The Org mode LaTeX exporter is now able to process and
   2623 export arbitrary float types.  The user is responsible for ensuring
   2624 that Org mode configures LaTeX to process any new float type.
   2625 
   2626 *** Support verse and quote blocks in LaTeX export
   2627 
   2628 The LaTeX export back-end accepts four attributes for verse blocks:
   2629 =:lines=, =:center=, =:versewidth= and =:latexcode=. The three first
   2630 require the external LaTeX package =verse.sty=, which is an extension
   2631 of the standard LaTeX environment.
   2632 
   2633 The LaTeX export back-end accepts two attributes for quote blocks:
   2634 =:environment=, for an arbitrary quoting environment (the default
   2635 value is that of =org-latex-default-quote-environment=: ="quote"=) and
   2636 =:options=.
   2637 
   2638 *** =org-set-tags-command= selects tags from ~org-global-tags-completion-table~
   2639 
   2640 Let ~org-set-tags-command~ TAB fast tag completion interface complete
   2641 tags including from both buffer local and user defined persistent
   2642 global list (~org-tag-alist~ and ~org-tag-persistent-alist~).  Now
   2643 option ~org-complete-tags-always-offer-all-agenda-tags~ is honored.
   2644 
   2645 *** Clocktable option =:formula %= now shows the per-file time percentages
   2646 
   2647 This change only has an effect when multiple files are contributing to
   2648 a given clocktable (such as when =:scope agenda= has been specified).
   2649 The existing behavior is that such tables have an extra 'File' column,
   2650 and each individual file that contributes has its own summary line
   2651 with the headline value '*File time*'.  Those summary rows also
   2652 produce a rollup time value for the file in the 'Time' column.
   2653 
   2654 Prior to this change, the built-in =%= formula did not produce a
   2655 calculation for those per-file times in the '%' column (the relevant
   2656 cells in the '%' column were blank).  With this change, the percentage
   2657 contribution of each individual file time to the total time is shown.
   2658 
   2659 The more agenda files you have, the more useful this behavior becomes.
   2660 
   2661 *** =ob-python.el= improvements to =:return= header argument
   2662 
   2663 The =:return= header argument in =ob-python= now works for session
   2664 blocks as well as non-session blocks.  Also, it now works with the
   2665 =:epilogue= header argument -- previously, setting the =:return=
   2666 header would cause the =:epilogue= to be ignored.
   2667 
   2668 This change allows more easily moving boilerplate out of the main code
   2669 block and into the header. For example, for plotting, we need to add
   2670 boilerplate to save the figure to a file and return the
   2671 filename. Instead of doing this within the code block, we can now
   2672 handle it through the header arguments as follows:
   2673 
   2674 #+BEGIN_SRC org
   2675 ,#+header: :var fname="/home/jack/tmp/plot.svg"
   2676 ,#+header: :epilogue plt.savefig(fname)
   2677 ,#+header: :return fname
   2678 ,#+begin_src python :results value file
   2679   import matplotlib, numpy
   2680   import matplotlib.pyplot as plt
   2681   fig=plt.figure(figsize=(4,2))
   2682   x=numpy.linspace(-15,15)
   2683   plt.plot(numpy.sin(x)/x)
   2684   fig.tight_layout()
   2685 ,#+end_src
   2686 
   2687 ,#+RESULTS:
   2688 [[file:/home/jack/tmp/plot.svg]]
   2689 #+END_SRC
   2690 
   2691 As another example, we can use =:return= with the external [[https://pypi.org/project/tabulate/][tabulate]]
   2692 package, to convert pandas Dataframes into orgmode tables:
   2693 
   2694 #+begin_src org
   2695 ,#+header: :prologue from tabulate import tabulate
   2696 ,#+header: :return tabulate(table, headers=table.columns, tablefmt="orgtbl")
   2697 ,#+begin_src python :results value raw :session
   2698   import pandas as pd
   2699   table = pd.DataFrame({
   2700       "a": [1,2,3],
   2701       "b": [4,5,6]
   2702   })
   2703 ,#+end_src
   2704 
   2705 ,#+RESULTS:
   2706 |   | a | b |
   2707 |---+---+---|
   2708 | 0 | 1 | 4 |
   2709 | 1 | 2 | 5 |
   2710 | 2 | 3 | 6 |
   2711 #+end_src
   2712 
   2713 *** Display images with width proportional to the buffer text width
   2714 
   2715 Previously, if you used a =:width= attribute like =#+attr_html: :width 70%= or
   2716 =#+attr_latex: :width 0.7\linewidth= this would be interpreted as a 70px wide and
   2717 0.7px wide width specification respectively.
   2718 
   2719 Now, percentages are transformed into floats (i.e. 70% becomes 0.7),
   2720 and float width specifications between 0.0 and 2.0 are now interpreted
   2721 as that portion of the text width in the buffer. For instance, the
   2722 above examples of =70%= and =0.7\linewidth= will result in an image
   2723 with width equal to the pixel-width of the buffer text multiplied by 0.7.
   2724 
   2725 This functionality is implemented in a new function,
   2726 ~org-display-inline-image--width~ which contains the width
   2727 determination logic previously in ~org-display-inline-images~ and the
   2728 new behavior.
   2729 
   2730 ** New options
   2731 *** Option ~org-hidden-keywords~ now also applies to #+SUBTITLE:
   2732 
   2733 The option ~org-hidden-keywords~ previously applied
   2734 to #+TITLE:, #+AUTHOR:, #+DATE:, and #+EMAIL:.  Now it can also be
   2735 used to hide the #+SUBTITLE: keyword.
   2736 
   2737 *** New formatting directive ~%L~ for org-capture
   2738 
   2739 The new ~%L~ formatting directive contains the bare link target, and
   2740 may be used to create links with programmatically generated
   2741 descriptions.
   2742 
   2743 *** New option ~org-id-ts-format~
   2744 
   2745 Earlier, IDs generated using =ts= method had a hard-coded format (i.e. =20200923T160237.891616=).
   2746 The new option allows user to customize the format.
   2747 Defaults are unchanged.
   2748 
   2749 *** New argument for ~file-desc~ babel header
   2750 
   2751 It is now possible to provide the =file-desc= header argument for a
   2752 babel source block but omit the description by passing an empty vector
   2753 as an argument (i.e., :file-desc []).  This can be useful because
   2754 providing =file-desc= without an argument results in the result of
   2755 =file= being used in the description.  Previously, the only way to
   2756 omit a file description was to omit the header argument entirely,
   2757 which made it difficult/impossible to provide a default value for
   2758 =file-desc=.
   2759 
   2760 *** New option to set ~org-link-file-path-type~ to a function
   2761 
   2762 ~org-link-file-path-type~ can now be set to a function that takes the
   2763 full filename as an argument and returns the path to link to.
   2764 
   2765 For example, if you use ~project.el~, you can set this function to use
   2766 relative links within a project as follows:
   2767 
   2768 #+begin_src emacs-lisp
   2769 (setq (org-link-file-path-type
   2770        (lambda (path)
   2771          (let* ((proj (project-current))
   2772                 (root (if proj (project-root proj) default-directory)))
   2773            (if (string-prefix-p (expand-file-name root) path)
   2774                (file-relative-name path)
   2775              (abbreviate-file-name path))))))
   2776 #+end_src
   2777 
   2778 *** New options and new behavior for babel LaTeX SVG image files
   2779 
   2780 Org babel now uses a two-stage process for converting latex source
   2781 blocks to SVG image files (when the extension of the output file is
   2782 ~.svg~).  The first stage in the process converts the latex block into
   2783 a PDF file, which is then converted into an SVG file in the second
   2784 stage.  The TeX->PDF part uses the existing infrastructure for
   2785 ~org-babel-latex-tex-to-pdf~.  The PDF->SVG part uses a command
   2786 specified in a new customization,
   2787 ~org-babel-latex-pdf-svg-process~. By default, this uses inkscape for
   2788 conversion, but since it is fully customizable, any other command can
   2789 be used in its place. For instance, dvisvgm might be used here. This
   2790 two-part processing replaces the previous use of htlatex to process
   2791 LaTeX directly to SVG (htlatex is still used for HTML conversion).
   2792 
   2793 Conversion to SVG exposes a number of additional customizations that
   2794 give the user full control over the contents of the latex source
   2795 block. ~org-babel-latex-preamble~, ~org-babel-latex-begin-env~ and
   2796 ~org-babel-latex-end-env~ are new customization options added to allow
   2797 the user to specify the preamble and code that precedes and proceeds
   2798 the contents of the source block.
   2799 
   2800 *** New option ~org-html-meta-tags~ allows for HTML meta tags customization
   2801 
   2802 New variable ~org-html-meta-tags~ makes it possible to customize the
   2803 =<meta>= tags used in an HTML export.  Accepts either a static list of
   2804 values, or a function that generates such a list (see
   2805 ~org-html-meta-tags-default~ as an example of the latter).
   2806 
   2807 *** Option ~org-agenda-bulk-custom-functions~ now supports collecting bulk arguments
   2808 
   2809 When specifying a custom agenda bulk option, you can now also specify
   2810 a function which collects the arguments to be used with each call to
   2811 the custom function.
   2812 
   2813 *** New faces to improve the contextuality of Org agenda views
   2814 
   2815 Four new faces improve certain styles and offer more flexibility for
   2816 some Org agenda views: ~org-agenda-date-weekend-today~,
   2817 ~org-imminent-deadline~, ~org-agenda-structure-secondary~,
   2818 ~org-agenda-structure-filter~.  They inherit from existing faces in
   2819 order to remain backward-compatible.
   2820 
   2821 Quoting from [[https://list.orgmode.org/87lf7q7gpq.fsf@protesilaos.com/][this thread]]:
   2822 
   2823 #+begin_quote
   2824 + The 'org-imminent-deadline' is useful to disambiguate generic
   2825   warnings from deadlines.  For example, a warning could be rendered
   2826   in a yellow colored text and have a bold weight, whereas a deadline
   2827   might be red and styled with italics.
   2828 
   2829 + The 'org-agenda-structure-filter' applies to all tag/term filters
   2830   in agenda views that search for keywords or patterns.  It is
   2831   designed to inherit from 'org-agenda-structure' in addition to the
   2832   'org-warning' face that was present before (and removes the
   2833   generic 'warning' face from one place).  This offers the benefit
   2834   of consistency, as, say, an increase in font height or a change in
   2835   font family in 'org-agenda-structure' will propagate to the filter
   2836   as well.  The whole header line thus looks part of a singular
   2837   design.
   2838 
   2839 + The 'org-agenda-structure-secondary' complements the above for those
   2840   same views where a description follows the header.  For instance, the
   2841   tags view provides information to "Press N r" to filter by a
   2842   numbered tag.  Themes/users may prefer to disambiguate this line
   2843   from the header above it, such as by using a less intense color or by
   2844   reducing its height relative to the 'org-agenda-structure'.
   2845 
   2846 + The 'org-agenda-date-weekend-today' provides the option to
   2847   differentiate the current date on a weekend from the current date on
   2848   weekdays.
   2849 #+end_quote
   2850 
   2851 *** New option ~org-clock-ask-before-exiting~
   2852 
   2853 By default, a function is now added to ~kill-emacs-query-functions~
   2854 that asks whether to clock out and save when there's a running clock.
   2855 Customize ~org-clock-ask-before-exiting~~ to nil to disable this new
   2856 behavior.
   2857 
   2858 *** Option ~org-html-inline-image-rules~ now includes .webp
   2859 
   2860 By default ox-html now inlines webp images.
   2861 
   2862 *** ~org-html-head-include-scripts~ is now =nil= by default
   2863 
   2864 See [[msg:498dbe2e-0cd2-c81e-7960-4a26c566a1f7@memebeam.org][this thread]].
   2865 
   2866 *** New option ~org-html-content-class~
   2867 
   2868 This is the CSS class name to use for the top level content wrapper.
   2869 
   2870 *** New option ~org-babel-plantuml-svg-text-to-path~
   2871 
   2872 This option, nil by default, allows to add a SVG-specific post-export
   2873 step that runs inkscape text-to-path replacement over the output file.
   2874 
   2875 *** You can now configure ~org-html-scripts~ and ~org-html-style-default~
   2876 
   2877 ~org-html-scripts~ and ~org-html-style-default~ used to be constants,
   2878 you can now configure them.
   2879 
   2880 *** New option ~org-attach-git-dir~
   2881 
   2882 ~org-attach-git-dir~ will decide whether to use ~org-attach-git-dir~
   2883 (the default) or use the attachment directory of the current node, if
   2884 it is correctly configured as a Git repository.
   2885 
   2886 *** New option ~org-attach-sync-delete-empty-dir~
   2887 
   2888 ~org-attach-sync-delete-empty-dir~ controls the deletion of an empty
   2889 attachment directory at calls of ~org-attach-sync~.  There is
   2890 Never delete, Always delete and Query the user (default).
   2891 
   2892 *** ~org-babel-default-header-args~ can now be specified as closures or strings
   2893 
   2894 ~org-babel-default-header-args~ now also accepts closures that
   2895 evaluate to a string. Previously, only direct strings were
   2896 supported. These closures are evaluated when point is at the source
   2897 block, which allows them to make use of contextual information at the
   2898 relevant source block. One example that illustrates the usefulness of
   2899 this addition (also given in the documentation for
   2900 ~org-babel-default-header-args~) is:
   2901 
   2902 #+begin_src elisp
   2903 (defun org-src-sha ()
   2904   (let ((elem (org-element-at-point)))
   2905     (concat (sha1 (org-element-property :value elem)) \".svg\")))
   2906 
   2907 (setq org-babel-default-header-args:latex
   2908       `((:results . \"file link replace\")
   2909         (:file . (lambda () (org-src-sha)))))
   2910 #+end_src
   2911 
   2912 This will set the ~:file~ header argument to the sha1 checksum of the
   2913 contents of the current latex source block.
   2914 
   2915 Finally, the closures are only evaluated if they're not overridden for
   2916 a source block. This improves efficiency in cases where the result of
   2917 a compute-expensive closure would otherwise be discarded.
   2918 
   2919 ** Miscellaneous
   2920 *** =org-bibtex= includes =doi= and =url= entries when exporting to BiBTeX
   2921 =doi= and =url= entries have been made optional for some publication
   2922 types and will be exported if present for those types.
   2923 *** Missing or empty placeholders in "eval" macros are now =nil=
   2924 They used to be the empty string.
   2925 *** =org-goto-first-child= now works before first heading
   2926 
   2927 When point is before first heading =org-goto-first-child= will move
   2928 point to the first child heading, or return nil if no heading exist
   2929 in buffer.  This is in line with the fact that everything before first
   2930 heading is regarded as outline level 0, i.e. the parent level of all
   2931 headings in the buffer.
   2932 
   2933 Previously =org-goto-first-child= would do nothing before first
   2934 heading, except return nil.
   2935 
   2936 *** Faces of all the heading text elements now conform to the headline face
   2937 
   2938 In the past, faces of todo keywords, emphasized text, tags, and
   2939 priority cookies inherited =default= face.  The resulting headline
   2940 fontification was not always consistent, as discussed in [[msg::87h7sawubl.fsf@protesilaos.com][this bug
   2941 report]].  Now, the relevant faces adapt to face used to fontify the
   2942 current headline level.
   2943 
   2944 Users who prefer to keep the old behavior should change their face
   2945 customization explicitly stating that =default= face is inherited.
   2946 
   2947 Example of old face customization:
   2948 
   2949 #+begin_src emacs-lisp
   2950 (setq org-todo-keyword-faces '(("TODO"
   2951                                 :background "chocolate"
   2952                                 :height 0.75)))
   2953 #+end_src
   2954 
   2955 To preserve the old behavior the above customization should be
   2956 changed to
   2957 
   2958 #+begin_src emacs-lisp
   2959 (setq org-todo-keyword-faces '(("TODO"
   2960                                 :inherit default
   2961                                 :background "chocolate"
   2962                                 :height 0.75)))
   2963 #+end_src
   2964 
   2965 *** Storing ID-links before first heading uses title as description
   2966 
   2967 Storing links to files using ~org-store-link~ (=<C-c l>=) when
   2968 ~org-id-link-to-org-use-id~ is not nil will now store the title as
   2969 description of the link, if available.  If no title exists it falls
   2970 back to the filename as before.
   2971 
   2972 *** Change in =org-tags-expand= signature
   2973 
   2974 The function does not allow for a third optional parameter anymore.
   2975 *** LaTeX environment =#+results= are now removed
   2976 
   2977 If a babel src block produces a raw LaTeX environment, it will now be
   2978 recognized as a result, and so replaced when re-evaluated.
   2979 
   2980 *** Tag completion now uses =completing-read-multiple=
   2981 
   2982 Tag completion now uses =completing-read-multiple= with a simple
   2983 completion table, which should allow better interoperability with
   2984 custom completion functions.
   2985 
   2986 *** Providing =directory-empty-p= from Emacs 28 as =org-directory-empty-p=
   2987 
   2988 *** =org-get-last-sibling= marked as obsolete
   2989 
   2990 Use =org-get-previous-sibling= instead.  This is just a rename to have
   2991 a more consistent naming.  E.g. recall the pair of funtctions
   2992 =next-line= / =previous-line=.
   2993 
   2994 *** Make org-protocol compatible with =URLSearchParams= JavaScript class
   2995 
   2996 Decoder of query part of org-protocol URI recognizes "+" as an encoded
   2997 space characters now, so it is possible to avoid call to =encodeURIComponent=
   2998 for each parameter and use more readable expression in bookmarklet:
   2999 
   3000 #+begin_example
   3001 'org-protocol://store-link?' + new URLSearchParams({
   3002       url: location.href, title: document.title})
   3003 #+end_example
   3004 
   3005 *** Remove obsolete LaTeX packages from ~org-latex-default-packages-alist~
   3006 
   3007 The LaTeX packages =grffile= and =textcomp= are redundant, with their
   3008 capabilities being merged into =graphicx= and the LaTeX core
   3009 respectively a while ago.
   3010 
   3011 * Version 9.4
   3012 ** Incompatible changes
   3013 *** Possibly broken internal file links: please check and fix
   3014 
   3015 A bug has been affecting internal links to headlines, like
   3016 
   3017 : [[*Headline][A link to a headline]]
   3018 
   3019 Storing a link to a headline may have been broken in your setup and
   3020 those links may appear as
   3021 
   3022 : [[*TODO Headline][A link to a headline]]
   3023 
   3024 Following the link above will result in an error: the TODO keyword
   3025 should not be part of internal file links.
   3026 
   3027 You can use the following command to fix links in an Org buffer:
   3028 
   3029 #+begin_src emacs-lisp
   3030 (defun org-fix-links ()
   3031   "Fix ill-formatted internal links.
   3032 E.g. replace [[*TODO Headline][headline]] by [[*Headline][headline]].
   3033 Go through the buffer and ask for the replacement."
   3034   (interactive)
   3035   (visible-mode 1)
   3036   (save-excursion
   3037     (goto-char (point-min))
   3038     (let ((regexp (format "\\[\\[\\*%s\\s-+"
   3039                           (regexp-opt org-todo-keywords-1 t))))
   3040       (while (re-search-forward regexp nil t)
   3041         (when (and (save-excursion
   3042                      (goto-char (match-beginning 0))
   3043                      (looking-at-p org-link-bracket-re))
   3044                    (y-or-n-p "Fix link (remove TODO keyword)? "))
   3045           (replace-match "[[*")))))
   3046   (visible-mode -1))
   3047 #+end_src
   3048 
   3049 *** Calling conventions changes when opening or exporting custom links
   3050 
   3051 This changes affects export back-ends, and libraries providing new
   3052 link types.
   3053 
   3054 Function used in ~:follow~ link parameter is required to accept a
   3055 second argument.  Likewise, function used in ~:export~ parameter needs
   3056 to accept a fourth argument.  See ~org-link-set-parameters~ for
   3057 details.
   3058 
   3059 Eventually, the function ~org-export-custom-protocol-maybe~ is now
   3060 called with a fourth argument.  Even though the 3-arguments definition
   3061 is still supported, at least for now, we encourage back-end developers
   3062 to switch to the new signature.
   3063 
   3064 *** Python session return values must be top-level expression statements
   3065 
   3066 Python blocks with ~:session :results value~ header arguments now only
   3067 return a value if the last line is a top-level expression statement.
   3068 Also, when a None value is returned, "None" will be printed under
   3069 "#+RESULTS:", as it already did with ~:results value~ for non-session
   3070 blocks.
   3071 
   3072 *** In HTML export, change on how outline-container-* is set
   3073 
   3074 When the headline has a =CUSTOM_ID=, use this custom id to build the
   3075 div id.  For example, if you have =:CUSTOM_ID: my-headline= then the
   3076 resulting <div> will be ~<div id="outline-container-my-headline">~.
   3077 
   3078 You may want to check whether your HTML files are rendered differently
   3079 after this change.
   3080 
   3081 *** New keybinding =<C-c C-TAB>= for ~org-force-cycle-archived~
   3082 
   3083 ~org-force-cycle-archived~ used to be associated with =<C-TAB>= but
   3084 this keybinding is used in Emacs for navigating tabs in Emacs.  The
   3085 new keybinding is =<C-c C-TAB>=.
   3086 
   3087 ** New default settings for some options
   3088 
   3089 These options now default to =t=:
   3090 
   3091 - ~org-loop-over-headlines-in-active-region~
   3092 - ~org-fontify-done-headline~
   3093 - ~org-src-tab-acts-natively~
   3094 
   3095 You may want to read the docstrings of these options to understand the
   3096 consequences of this change.
   3097 
   3098 Also, ~org-startup-folded~ now defaults to ~showeverything~.
   3099 
   3100 ** New features
   3101 
   3102 *** =RET= and =C-j= now obey ~electric-indent-mode~
   3103 
   3104 Since Emacs 24.4, ~electric-indent-mode~ is enabled by default.  In
   3105 most major modes, this causes =RET= to reindent the current line and
   3106 indent the new line, and =C-j= to insert a newline without indenting.
   3107 
   3108 Org mode now obeys this minor mode: when ~electric-indent-mode~ is
   3109 enabled, and point is neither in a table nor on a timestamp or a link:
   3110 
   3111 - =RET= (bound to ~org-return~) reindents the current line and indents
   3112   the new line;
   3113 - =C-j= (bound to the new command ~org-return-and-maybe-indent~)
   3114   merely inserts a newline.
   3115 
   3116 To get the previous behavior back, disable ~electric-indent-mode~
   3117 explicitly:
   3118 
   3119 #+begin_src emacs-lisp
   3120 (add-hook 'org-mode-hook (lambda () (electric-indent-local-mode -1)))
   3121 #+end_src
   3122 
   3123 Alternatively, if you wish to keep =RET= as the "smart-return" key,
   3124 but dislike Org's default indentation of sections, you may prefer to
   3125 customize ~org-adapt-indentation~ to either nil or =headline-data=.
   3126 
   3127 *** New allowed value for ~org-adapt-indentation~
   3128 
   3129 ~org-adapt-indentation~ now accepts a new value, =headline-data=.
   3130 
   3131 When set to this value, Org will only adapt indentation of headline
   3132 data lines, such as planning/clock lines and property/logbook drawers.
   3133 Also, with this setting, =org-indent-mode= will keep these data lines
   3134 correctly aligned with the headline above.
   3135 
   3136 *** Looping agenda commands over headlines
   3137 
   3138 ~org-agenda-loop-over-headlines-in-active-region~ allows you to loop
   3139 agenda commands over the active region.
   3140 
   3141 When set to =t= (the default), loop over all headlines.  When set to
   3142 ='start-level=, loop over headlines with the same level as the first
   3143 headline in the region.  When set to a string, loop over lines
   3144 matching this regular expression.
   3145 
   3146 *** New minor mode ~org-table-header-line-mode~
   3147 
   3148 Turn on the display of the first data row of the table at point in the
   3149 window header line when this first row is not visible anymore in the
   3150 buffer.
   3151 
   3152 You can activate this minor mode by default by setting the option
   3153 ~org-table-header-line-p~ to =t=.  You can also change the face for
   3154 the header line by customizing the ~org-table-header~ face.
   3155 
   3156 *** New minor mode ~org-list-checkbox-radio-mode~
   3157 
   3158 When this minor mode is on, checkboxes behave as radio buttons: if a
   3159 checkbox is turned on, other checkboxes at the same level are turned
   3160 off.
   3161 
   3162 If you want to occasionally toggle a checkbox as a radio button
   3163 without turning this minor mode on, you can use =<C-c C-x C-r>= to
   3164 call ~org-toggle-radio-button~.
   3165 
   3166 You can also add =#+ATTR_ORG: :radio t= right before the list to tell
   3167 Org to use radio buttons for this list only.
   3168 
   3169 *** Numeric priorities are now allowed (up to 65)
   3170 
   3171 You can now set ~org-priority-highest/lowest/default~ to integers to
   3172 use numeric priorities globally or set, for example
   3173 
   3174 #+PRIORITIES: 1 10 5
   3175 
   3176 to define a buffer-local range and default for priorities.  Priority
   3177 commands should work as usual.  You cannot use numbers superior to 64
   3178 for numeric priorities, as it would clash with priorities like [#A]
   3179 where the "A" is internally converted to its numeric value of 65.
   3180 
   3181 *** Property drawers allowed before first headline
   3182 
   3183 Property drawers are now allowed before the first headline.
   3184 
   3185 Org mode is moving more towards making things before the first
   3186 headline behave just as if it was at outline level 0.  Inheritance for
   3187 properties will work also for this level.  In other words: defining
   3188 things in a property drawer before the first headline will make them
   3189 "inheritable" for all headlines.
   3190 
   3191 *** Refinement in window behavior on exiting Org source buffer
   3192 
   3193 After editing a source block, Org will restore the window layout when
   3194 ~org-src-window-setup~ is set to a value that modifies the layout.
   3195 
   3196 *** Display remote inline images
   3197 
   3198 Org now knows how to display remote images inline.
   3199 
   3200 Whether the images are actually displayed is controlled by the new
   3201 option ~org-display-remote-inline-images~.
   3202 
   3203 *** New option to resolve open clock at a provided time
   3204 
   3205 ~org-resolve-clocks~ now has a `t' option, which works just like the
   3206 `k' option, but the user specifies a time of day, not a number of
   3207 minutes.
   3208 
   3209 *** New step value =semimonth= accepted for clock tables
   3210 
   3211 *** Allow text rescaling in column view
   3212 
   3213 You can now use =C-x C-+= in column view: the columns face size will
   3214 increase or decrease, together with the column header size.
   3215 
   3216 *** New startup option =#+startup: num=
   3217 
   3218 When this startup option is set, display headings as numerated.
   3219 
   3220 Use =#+startup: nonum= to turn this off.
   3221 
   3222 *** New tool for custom links
   3223 
   3224 Org provides a new tool ~org-link-open-as-file~, useful when defining
   3225 new link types similar to "file"-type links.  See docstring for
   3226 details.
   3227 
   3228 *** New optional numeric argument for ~org-return~
   3229 
   3230 In situations where ~org-return~ calls ~newline~, multiple newlines
   3231 can now be inserted with this prefix argument.
   3232 
   3233 *** New source code block header argument =:file-mode=
   3234 
   3235 Source code block header argument =:file-mode= can set file
   3236 permissions if =:file= argument is provided.
   3237 
   3238 *** =ob-C.el= allows the inclusion of non-system header files
   3239 
   3240 In C and C++ blocks, ~:includes~ arguments that do not start with a
   3241 ~<~ character will now be formatted as double-quoted ~#include~
   3242 statements.
   3243 
   3244 *** =ob-clojure.el= supports inf-clojure.el and ClojureScript evaluation
   3245 
   3246 You can now set ~(setq org-babel-clojure-backend 'inf-clojure)~ and
   3247 evaluate Clojure source blocks using [[https://github.com/clojure-emacs/inf-clojure][inf-clojure]].  With a header
   3248 argument like =:alias "alias"= the Clojure REPL will boot with
   3249 =clojure -Aalias=.  Otherwise Clojure will boot with =lein=, =boot= or
   3250 =tools.deps=, depending on whether the current directory contains a
   3251 =project.clj=, =build.boot= or =deps.edn=, falling back on
   3252 ~inf-clojure-generic-cmd~ in case no such file is present.
   3253 
   3254 Also, when using [[https://github.com/clojure-emacs/cider][cider]], you can now use =#+begin_src clojurescript= to
   3255 execute ClojureScript code from Org files.  Note that this works only
   3256 if your Org file is associated with a cider session that knows how to
   3257 run ClojureScript code.  A bare =lein repl= session outside of a
   3258 directory configured for ClojureScript will /not/ work.
   3259 
   3260 *** =ob-java.el= supports Java command line arguments
   3261 
   3262 Babel Java blocks recognize header argument =:cmdargs= and pass its
   3263 value in call to =java=.
   3264 
   3265 *** =ob-screen.el= now accepts =:screenrc= header argument
   3266 
   3267 Screen blocks now recognize the =:screenrc= header argument and pass
   3268 its value to the screen command via the "-c" option. The default
   3269 remains =/dev/null= (i.e. a clean screen session)
   3270 
   3271 *** =ob-plantuml=: now supports using PlantUML executable to generate diagrams
   3272 
   3273 Set =org-plantuml-exec-mode= to ='plantuml= in order to use the
   3274 executable instead of JAR. When using an executable it is also
   3275 possible to configure executable location as well as arguments via:
   3276 =org-plantuml-executable-path= and =org-plantuml-executable-args=.
   3277 
   3278 ** New commands
   3279 *** ~org-table-header-line-mode~
   3280 
   3281 Turn on a minor mode to display the first data row of the table at
   3282 point in the header-line when the beginning of the table is invisible.
   3283 
   3284 *** ~org-agenda-ctrl-c-ctrl-c~
   3285 
   3286 Hitting =<C-c C-c>= in an agenda view now calls ~org-agenda-set-tags~.
   3287 
   3288 *** ~org-hide-entry~
   3289 
   3290 This command is the counterpart of ~org-show-entry~.
   3291 
   3292 *** ~org-columns-toggle-or-columns-quit~
   3293 
   3294 =<C-c C-c>= bound to ~org-columns-toggle-or-columns-quit~ replaces the
   3295 recent ~org-columns-set-tags-or-toggle~.  Tag setting is still
   3296 possible via column view value edit or with =<C-c C-q>=.
   3297 
   3298 *** ~org-datetree-find-month-create~
   3299 
   3300 Find or create a month entry for a date.
   3301 
   3302 ** New options and settings
   3303 *** New option ~org-html-prefer-user-labels~
   3304 
   3305 When non-nil, use =NAME= affiliated keyword, or raw target values, to
   3306 generate anchor's ID.  Otherwise, consistently use internal naming
   3307 scheme.
   3308 
   3309 =CUSTOM_ID= values are still always used, when available.
   3310 *** New option for using tabs in ~org-agenda-window-setup~
   3311 
   3312 Choosing ~other-tab~ for ~org-agenda-window-setup~ will open the
   3313 agenda view in a new tab.  This will work with versions of Emacs since
   3314 27.1 when ~tab-bar-mode~ was introduced.
   3315 
   3316 *** New option ~org-table-header-line-p~
   3317 
   3318 Setting this option to =t= will activate ~org-table-header-line-mode~
   3319 in org-mode buffers.
   3320 
   3321 *** New option ~org-startup-numerated~
   3322 
   3323 When this option is =t=, Org files will start using ~(org-num-mode 1)~
   3324 and headings will be visually numerated.
   3325 
   3326 You can turn this on/off on a per-file basis with =#+startup: num= or
   3327 =#+startup: nonum=.
   3328 
   3329 *** New option ~org-clock-auto-clockout-timer~
   3330 
   3331 When this option is set to a number and the user configuration
   3332 contains =(org-clock-auto-clockout-insinuate)=, Org will clock out the
   3333 currently clocked in task after that number of seconds of idle time.
   3334 
   3335 This is useful when you often forget to clock out before being idle
   3336 and don't want to have to manually set the clocking time to take into
   3337 account.
   3338 
   3339 *** New option to group captured datetime entries by month
   3340 
   3341 A new `:tree-type month' option was added to org-capture-templates to
   3342 group new datetime entries by month.
   3343 
   3344 *** New option to show source buffers using "plain" display-buffer
   3345 
   3346 There is a new option ~plain~ to ~org-src-window-setup~ to show source
   3347 buffers using ~display-buffer~.  This allows users to control how
   3348 source buffers are displayed by modifying ~display-buffer-alist~ or
   3349 ~display-buffer-base-action~.
   3350 
   3351 *** New option ~org-archive-subtree-save-file-p~
   3352 
   3353 Archiving a subtree used to always save the target archive buffer.
   3354 Commit [[git::b186d1d7][b186d1d7]] changed this behavior by always not saving the target
   3355 buffer, because batch archiving from agenda could take too much time.
   3356 
   3357 This new option ~org-archive-subtree-save-file-p~ defaults to the
   3358 value =from-org= so that archiving a subtree will save the target
   3359 buffer when done from an org-mode buffer, but not from the agenda.
   3360 You can also set this option to =t= or to =from-agenda=.
   3361 
   3362 *** New option ~org-show-notification-timeout~
   3363 
   3364 This option will add a timeout to notifications.
   3365 
   3366 *** New option ~org-latex-to-html-convert-command~
   3367 
   3368 This new option allows you to convert a LaTeX fragment directly into
   3369 HTML.
   3370 
   3371 *** New option ~org-babel-shell-results-defaults-to-output~
   3372 
   3373 By default, source code blocks are executed in "functional mode": it
   3374 means that the results of executing them are the value of their last
   3375 statement (see [[https://orgmode.org/manual/Results-of-Evaluation.html][the documentation]].)
   3376 
   3377 The value of a shell script's execution is its exit code.  But most
   3378 users expect the results of executing a shell script to be its output,
   3379 not its exit code.
   3380 
   3381 So we introduced this option, that you can set to nil if you want to
   3382 stick using ~:results value~ as the implicit header.
   3383 
   3384 In all Babel libraries, the absence of a ~:results~ header should
   3385 produce the same result than setting ~:results value~, unless there is
   3386 an option to explicitly create an exception.
   3387 
   3388 See [[msg:CA+A2iZaziAfMeGpBqL6qGrzrWEVvLvC0DUw++T4gCF3NGuW-DQ@mail.gmail.com][this thread]] for more context.
   3389 
   3390 *** New option in ~org-attach-store-link-p~
   3391 
   3392 ~org-attach-store-link-p~ has a new option to store a file link to the
   3393 attachment.
   3394 *** New option ~org-fontify-todo-headline~
   3395 
   3396 This feature is the same as ~org-fontify-done-headline~, but for TODO
   3397 headlines instead.  This allows you to distinguish TODO headlines from
   3398 normal headlines.  The face can be customized via ~org-headline-todo~.
   3399 
   3400 *** New default value for ~org-file-apps~
   3401 
   3402 The new value uses Emacs as the application for opening directory.
   3403 
   3404 *** New hook ~org-agenda-filter-hook~
   3405 
   3406 Functions in this hook are run after ~org-agenda-filter~ is called.
   3407 
   3408 ** Removed or renamed functions and variables
   3409 *** Deprecated ~org-flag-drawer~ function
   3410 
   3411 Use ~org-hide-drawer-toggle~ instead.
   3412 
   3413 *** Deprecated ~org-hide-block-toggle-maybe~ function
   3414 
   3415 Use ~org-hide-block-toggle~ instead.
   3416 
   3417 *** Deprecated ~org-hide-block-toggle-all~ function
   3418 
   3419 This function was not used in the code base, and has no clear use
   3420 either.  It has been marked for future removal.  Please contact the
   3421 mailing list if you use this function.
   3422 
   3423 *** Deprecated ~org-return-indent~ function
   3424 
   3425 In Elisp code, use ~(org-return t)~ instead.  Interactively, =C-j= is
   3426 now bound to ~org-return-and-maybe-indent~, which indents the new line
   3427 when ~electric-indent-mode~ is disabled.
   3428 
   3429 *** Removed ~org-maybe-keyword-time-regexp~
   3430 
   3431 The variable was not used in the code base.
   3432 
   3433 *** Removed ~org-export-special-keywords~
   3434 
   3435 The variable was not used in the code base.
   3436 
   3437 *** Renamed ~org-at-property-block-p~
   3438 
   3439 The new name is ~org-at-property-drawer-p~, which is less confusing.
   3440 
   3441 *** Renamed ~org-columns-set-tags-or-toggle~
   3442 
   3443 See [[*~org-columns-toggle-or-columns-quit~]].
   3444 
   3445 *** Renamed priority options
   3446 
   3447 From ~org-lowest-priority~ to ~org-priority-lowest~.
   3448 From ~org-default-priority~ to ~org-priority-default~.
   3449 From ~org-highest-priority~ to ~org-priority-highest~.
   3450 From ~org-enable-priority-commands~ to ~org-priority-enable-commands~.
   3451 From ~org-show-priority~ to ~org-priority-show~.
   3452 
   3453 ** Miscellaneous
   3454 *** =ob-screen.el= now respects screen =:session= name
   3455 
   3456 Screen babel session are now named based on the =:session= header
   3457 argument (defaults to ~default~).
   3458 
   3459 Previously all session names had  ~org-babel-session-~ prepended.
   3460 
   3461 *** Forward/backward paragraph functions in line with the rest of Emacs
   3462 
   3463 ~org-forward-paragraph~ and ~org-backward-paragraph~, bound to
   3464 ~<C-UP>~ and ~<C-DOWN>~ functions mimic more closely behavior of
   3465 ~forward-paragraph~ and ~backward-paragraph~ functions when
   3466 available.
   3467 
   3468 They also accept an optional argument for multiple calls.
   3469 
   3470 See their docstring for details.
   3471 *** ~org-table-to-lisp~ no longer checks if point is at a table
   3472 
   3473 The caller is now responsible for the check.  It can use, e.g.,
   3474 ~org-at-table-p~.
   3475 
   3476 The function is also much more efficient than it used to be, even on
   3477 very large tables.
   3478 
   3479 *** New function ~org-collect-keywords~
   3480 *** Drawers' folding use an API similar to block's
   3481 
   3482 Tooling for folding drawers interactively or programmatically is now
   3483 on par with block folding.  In particular, ~org-hide-drawer-toggle~,
   3484 a new function, is the central place for drawer folding.
   3485 
   3486 *** Duration can be read and written in compact form
   3487 
   3488 ~org-duration-to-minutes~ understands =1d3h5min= as a duration,
   3489 whereas ~org-duration-from-minutes~ can output this compact form if
   3490 the duration format contains the symbol ~compact~.
   3491 
   3492 *** C-n, C-p, SPC and DEL in agenda commands dispatch window
   3493 
   3494 You can now use =<C-n>=, =<C-p>=, =<SPC>= and =<DEL>= key to scroll up
   3495 and down the agenda and attach dispatch window.
   3496 
   3497 *** =<C-c C-c>= in agenda calls ~org-agenda-set-tags~
   3498 
   3499 Both =<C-c C-q>= and =<C-c C-c>= set the tags of the headline in the
   3500 Org buffer.  Both keybindings are now available from the agenda too.
   3501 
   3502 *** Allow to use an empty HTML extension
   3503 
   3504 Using =(setq org-html-extension "")= or setting the HTML extension in
   3505 any fashion will produce the expected output, with no trailing period
   3506 to the resulting HTML file.
   3507 
   3508 *** Handle repeated tasks with =.+= type and hours step
   3509 
   3510 A task using a =.+= repeater and hours step is repeated starting from
   3511 now. E.g.,
   3512 
   3513 #+begin_example
   3514 ,,** TODO Wash my hands
   3515    DEADLINE: <2019-04-05 08:00 Sun .+1h>
   3516    Marking this DONE shifts the date to exactly one hour from now.
   3517 #+end_example
   3518 
   3519 *** The format of equation reference in HTML export can now be specified
   3520 
   3521 By default, HTML (via MathJax) and LaTeX export equation references
   3522 using different commands. LaTeX must use ~\ref{%s}~ because it is used
   3523 for all labels; however, HTML (via MathJax) uses ~\eqref{%s}~ for
   3524 equations producing inconsistent output. New option
   3525 ~org-html-equation-reference-format~ sets the command used in HTML
   3526 export.
   3527 
   3528 *** =ob-haskell.el= supports compilation with =:compile= header argument
   3529 
   3530 By default, Haskell blocks are interpreted. By adding =:compile yes=
   3531 to a Haskell source block, it will be compiled, executed and the
   3532 results will be displayed.
   3533 
   3534 *** Support for ~org-edit-special~ with LaTeX fragments
   3535 
   3536 Calling ~org-edit-special~ on an inline LaTeX fragment calls a new
   3537 function, ~org-edit-latex-fragment~. This functions in a comparable
   3538 manner to editing inline source blocks, bringing up a minibuffer set
   3539 to LaTeX mode. The math-mode deliminators are read only.
   3540 
   3541 *** ~org-capture-current-plist~ is now accessible during ~org-capture-mode-hook~
   3542 *** New =org-refile.el= file
   3543 
   3544 Org refile variables and functions have been moved to a new file.
   3545 
   3546 *** The end of a 7 years old bug
   3547 
   3548 This bug [[https://lists.gnu.org/archive/html/emacs-orgmode/2013-08/msg00072.html][originally reported]] by Matt Lundin and investigated by Andrew
   3549 Hyatt has been fixed.  Thanks to both of them.
   3550 
   3551 * Version 9.3
   3552 
   3553 ** Incompatible changes
   3554 *** Change bracket link escaping syntax
   3555 
   3556 Org used to percent-encode sensitive characters in the URI part of the
   3557 bracket links.
   3558 
   3559 Now, escaping mechanism uses the usual backslash character, according
   3560 to the following rules:
   3561 
   3562 1. All =[= and =]= characters in the URI must be escaped;
   3563 2. Every =\= character preceding either =[= or =]= must be escaped;
   3564 3. Every =\= character at the end of the URI must be escaped.
   3565 
   3566 When in doubt, use the function ~org-link-escape~ in order to turn
   3567 a link string into its properly escaped form.
   3568 
   3569 The following function will help switching your links to the new
   3570 syntax:
   3571 
   3572 #+begin_src emacs-lisp
   3573 (defun org-update-link-syntax (&optional no-query)
   3574   "Update syntax for links in current buffer.
   3575 Query before replacing a link, unless optional argument NO-QUERY
   3576 is non-nil."
   3577   (interactive "P")
   3578   (org-with-point-at 1
   3579     (let ((case-fold-search t))
   3580       (while (re-search-forward "\\[\\[[^]]*?%\\(?:2[05]\\|5[BD]\\)" nil t)
   3581         (let ((object (save-match-data (org-element-context))))
   3582           (when (and (eq 'link (org-element-type object))
   3583                      (= (match-beginning 0)
   3584                         (org-element-property :begin object)))
   3585             (goto-char (org-element-property :end object))
   3586             (let* ((uri-start (+ 2 (match-beginning 0)))
   3587                    (uri-end (save-excursion
   3588                               (goto-char uri-start)
   3589                               (re-search-forward "\\][][]" nil t)
   3590                               (match-beginning 0)))
   3591                    (uri (buffer-substring-no-properties uri-start uri-end)))
   3592               (when (or no-query
   3593                         (y-or-n-p
   3594                          (format "Possibly obsolete URI syntax: %S.  Fix? "
   3595                                  uri)))
   3596                 (setf (buffer-substring uri-start uri-end)
   3597                       (org-link-escape (org-link-decode uri)))))))))))
   3598 #+end_src
   3599 
   3600 The old ~org-link-escape~ and ~org-link-unescape~ functions have been
   3601 renamed into ~org-link-encode~ and ~org-link-decode~.
   3602 
   3603 *** Change match group number in ~org-link-bracket-re~
   3604 
   3605 Link description, if any, is located in match group 2 instead of match
   3606 group 3.
   3607 
   3608 *** ob-clojure does not auto prepend ~(ns ..)~ statement anymore
   3609 
   3610 When tangling, user usually just wants to tangle literally code instead
   3611 of prepend inserting a ~(ns ..)~ statement before source block
   3612 code.  Now, when you have no ~:ns~ header argument specified, this
   3613 behavior will not happen automatically.
   3614 
   3615 *** Change in behavior on exit from an Org edit buffer
   3616 
   3617 Org will no longer attempt to restore the window configuration in the
   3618 frame to which the user returns after editing a source block with
   3619 ~org-edit-src-code~.  Instead, the window configuration will remain as
   3620 it is.
   3621 
   3622 *** Change default value for ~org-email-link-description-format~
   3623 
   3624 When linking from a mail buffer, Org used to truncate the subject of
   3625 the message to 30 characters in order to build the description of the
   3626 link.  This behavior was considered as too surprising.  As
   3627 a consequence, Org no longer truncates subjects.
   3628 
   3629 You can get the old behavior back with the following:
   3630 
   3631 : (setq org-email-link-description-format "Email %c: %.30s")
   3632 
   3633 *** ~:file~ header argument no longer assume "file" ~:results~
   3634 
   3635 The "file" ~:results~ value is now mandatory for a code block
   3636 returning a link to a file.  The ~:file~ or ~:file-ext~ header
   3637 arguments no longer imply a "file" result is expected.
   3638 
   3639 *** Plain numbers are hours in Column View mode
   3640 
   3641 See [[git:3367ac9457]] for details.
   3642 
   3643 *** All LaTeX preview backends use now xcolor
   3644 
   3645 The dvipng backend was previously relying on fg and bg parameters to
   3646 be passed to the CLI. This didn't work when xcolor was directly or
   3647 indirectly used in the document (e.g. tkiz is a user of xcolor). Since
   3648 every other backend was already using xcolor to set fg and bg, the CLI
   3649 alternative was removed and there is no more a :use-xcolor options
   3650 since now it's implicitly always true.
   3651 
   3652 *** Org-Attach Git commit
   3653 
   3654 [[*Org-Attach has been refactored and extended][Refactoring of Org-Attach]] affected the Git commit functionality.  Not
   3655 much, but the following changes are required if you still need to
   3656 auto-commit attachments to git:
   3657 
   3658 - Customization of ~org-attach-annex-auto-get~ needs to be renamed to
   3659   ~org-attach-git-annex-auto-get~.
   3660 
   3661 - Customization of ~org-attach-commit~ is no longer needed.  Instead
   3662   one need to require the =org-attach-git= module in the startup.
   3663 
   3664 ** New features
   3665 *** New option to wrap source code lines in HTML export
   3666 
   3667 When new option ~html-wrap-src-lines~ (with variable
   3668 ~org-html-wrap-src-lines~) is non-nil, HTML export wraps source code
   3669 lines in HTML ~code~ elements.
   3670 
   3671 *** New option to handle schedules and deadlines in iCalendar export
   3672 
   3673 Export ignore done tasks with a deadline when
   3674 ~org-icalendar-use-deadline~ contains ~event-if-todo-not-done~.
   3675 Likewise, scheduled done tasks are also ignored when
   3676 ~org-icalendar-use-scheduled~ contains the same symbol.
   3677 
   3678 *** Add ~split-window-right~ option for src block edit window placement
   3679 
   3680 Given the increasing popularity of wide screen monitors, splitting
   3681 horizontally may make more sense than splitting vertically.  An
   3682 option, ~split-window-right~, to request horizontal splitting has been
   3683 added to ~org-src-window-setup~.
   3684 
   3685 *** Org-Attach has been refactored and extended
   3686 
   3687 Org attach has been refactored and the functionality extended.  It
   3688 should now be easier to understand how it works.  A few improvements
   3689 and extra options have been added as well.
   3690 
   3691 From the initial comment in org-attach source-code:
   3692 
   3693 - Attachments are managed either by using a custom property DIR or by
   3694   using property ID from org-id.  When DIR is defined, a location in
   3695   the filesystem is directly attached to the outline node.  When
   3696   org-id is used, attachments are stored in a folder named after the
   3697   ID, in a location defined by ~org-attach-id-dir~.  DIR has
   3698   precedence over ID when both parameters are defined for the current
   3699   outline node (also when inherited parameters are taken into
   3700   account).
   3701 
   3702 From now on inheritance requires no extra property and will adhere to
   3703 ~org-attach-use-inheritance~ by default.  Inheritance can be
   3704 customized to always be activated or never be activated in
   3705 ~org-attach-use-inheritance~.
   3706 
   3707 The ATTACH_DIR property is deprecated in favor of the shorter
   3708 property DIR.  Links to folders inside the DIR property can now be
   3709 declared as relative links.  This is not enabled by default, but can
   3710 be set in ~org-attach-dir-relative~.
   3711 
   3712 When adding new attachment to the outline node the preferred way of
   3713 doing so can be customized.  Take a look at
   3714 ~org-attach-preferred-new-method~.  It defaults to using ID since that
   3715 was the behavior before this change.
   3716 
   3717 If both DIR and ID properties are set on the same node, DIR has
   3718 precedence and will be used.
   3719 
   3720 One can now also choose to build attachment-directory-paths in a
   3721 customized way.  This is an advanced topic, but in some case it makes
   3722 sense to parse an ID in a different way than the default one.  Create
   3723 your own function and add it to the beginning of
   3724 ~org-attach-id-to-path-function~list~ if you want to customize the ID
   3725 based folder structure.
   3726 
   3727 If you've used ATTACH_DIR properties to manage attachments, use the
   3728 following code to rename that property to DIR which supports the same
   3729 functionality.  ATTACH_DIR_INHERIT is no longer supported and is
   3730 removed.
   3731 
   3732 #+begin_src emacs-lisp
   3733   (defun org-update-attach-properties ()
   3734       "Change properties for Org-Attach."
   3735       (interactive)
   3736       (org-with-point-at 1
   3737         (while (outline-next-heading)
   3738           (let ((DIR (org--property-local-values "ATTACH_DIR" nil)))
   3739             (when DIR
   3740               (org-set-property "DIR" (car DIR))
   3741               (org-delete-property "ATTACH_DIR"))))
   3742         (org-delete-property-globally "ATTACH_DIR_INHERIT")))
   3743 #+end_src
   3744 
   3745 For those who hate breaking changes, even though the changes are made
   3746 to clean things up; fear not.  ATTACH_DIR will still continue to work.
   3747 It's just not documented any longer.  When you get the chance, run the
   3748 code above to clean things up anyway!
   3749 
   3750 **** New hooks
   3751 Two hooks are added to org-attach:
   3752 - org-attach-after-change-hook
   3753 - org-attach-open-hook
   3754 
   3755 They are added mostly for internal restructuring purposes, but can
   3756 ofc. be used for other things as well.
   3757 
   3758 *** New link-type: Attachment
   3759 
   3760 Attachment-links are now first-class citizens.  They mimic file-links
   3761 in everything they do but use the existing attachment-folder as a base
   3762 when expanding the links. Both =DIR= and =ID= properties are used to
   3763 try to resolve the links, in exactly the same way as Org-Attach uses
   3764 those properties.
   3765 
   3766 *** Handle overlay specification for notes in Beamer export
   3767 
   3768 This aligns Beamer notes with slide overlays.
   3769 
   3770 *** Add support for lettered lists in Texinfo
   3771 
   3772 Using =:enum A= or =:enum a= Texinfo attribute switches an otherwise
   3773 numbered list to a lettered list.
   3774 
   3775 *** Add a dispatcher command to insert dynamic blocks
   3776 
   3777 You can add new dynamic blocks with function
   3778 ~org-dynamic-block-define~.  All such dynamic blocks can be used by
   3779 ~org-dynamic-block-insert-dblock~ command.
   3780 
   3781 *** Babel
   3782 
   3783 **** ob-emacs-lisp sets ~lexical-binding~ in Org edit buffers
   3784 
   3785 When editing an Elisp src block, the editing buffer's
   3786 ~lexical-binding~ is set according to the src block's =:lexical=
   3787 parameter.
   3788 
   3789 **** Add LaTeX output support in PlantUML
   3790 
   3791 *** New minor mode to display headline numbering
   3792 
   3793 Use =<M-x org-num-mode>= to get a visual indication of the numbering
   3794 in the outline.  The numbering is also automatically updated upon
   3795 changes in the buffer.
   3796 
   3797 *** New property =HTML_HEADLINE_CLASS= in HTML export
   3798 
   3799 The new property =HTML_HEADLINE_CLASS= assigns a class attribute to
   3800 a headline.
   3801 
   3802 *** Allow LaTeX attributes and captions for "table.el" tables
   3803 
   3804 Supported LaTeX attributes are ~:float~, ~:center~, ~:font~ and
   3805 ~:caption~.
   3806 
   3807 *** Attach buffer contents to headline
   3808 
   3809 With =<b>= key from attachment dispatcher (=<C-c C-a>=), it is now
   3810 possible to write the contents of a buffer to a file in the headline
   3811 attachment directory.
   3812 
   3813 *** iCalendar export respects a =CLASS= property
   3814 
   3815 Set the =CLASS= property on an entry to specify a visibility class for
   3816 that entry only during iCalendar export. The property can be set to
   3817 anything the calendar server supports. The iCalendar standard defines
   3818 the values =PUBLIC=, =CONFIDENTIAL=, =PRIVATE=, which can be
   3819 interpreted as publicly visible, accessible to a specific group, and
   3820 private respectively.
   3821 
   3822 This property can be inherited during iCalendar export, depending on
   3823 the value of ~org-use-property-inheritance~.
   3824 
   3825 *** New parameter for =INCLUDE= keyword
   3826 
   3827 Add =:coding CODING-SYSTEM= to include files using a different coding
   3828 system than the main Org document.  For example:
   3829 
   3830 #+begin_example
   3831 ,#+INCLUDE: "myfile.cmd" src cmd :coding cp850-dos
   3832 #+end_example
   3833 
   3834 *** New values in clock tables' step: =month= and =year=
   3835 *** ODT export handles numbers cookies in lists
   3836 *** New cell movement functions in tables
   3837 
   3838 ~S-<UP>~, ~S-<DOWN>~, ~S-<RIGHT>~, and ~S-<LEFT>~ now move cells in
   3839 the corresponding direction by swapping with the adjacent cell.
   3840 
   3841 *** New option to natively fontify LaTeX snippets and environments
   3842 
   3843 A 'native option was added to org-highlight-latex-and-related. It
   3844 matches the same structures than 'latex but it calls
   3845 org-src-font-lock-fontify-block instead, thus bringing about full
   3846 LaTeX font locking.
   3847 
   3848 *** ~org-clone-subtree-with-time-shift~ learned to shift backward in time
   3849 
   3850 =<C-c C-x c>= (~org-clone-subtree-with-time-shift~) now takes a
   3851 negative value as a valid repeater to shift time stamps in backward
   3852 in cloned subtrees.  You can give, for example, ‘-3d’ to shift three
   3853 days in the past.
   3854 
   3855 *** Toggle display of all vs. undone scheduled habits conveniently
   3856 
   3857 =<C-u K>= (~org-habit-toggle-display-in-agenda~) in an agenda toggles
   3858 the display of all habits to those which are undone and scheduled.
   3859 This is a function for convenience.
   3860 
   3861 *** New parameter for SQL Babel blocks: ~:dbconnection~
   3862 
   3863 The new parameter ~:dbconnection~ allows to specify a connection name
   3864 in a SQL block header: this name is used to look up connection
   3865 parameters in ~sql-connection-alist~.
   3866 
   3867 *** New =:scale= attribute supported by LaTeX exporters
   3868 
   3869 The builtin "latex" exporters now accept and use a =:scale= attribute,
   3870 which scales an image by a given factor.
   3871 
   3872 This attribute is wrapped around the =scale= parameter of LaTeX's
   3873 =\includegraphics= (bitmap images) or a TiKZ's =\scalebox=.
   3874 Therefore, its value should be some string palatable to LaTeX as
   3875 a positive float Its default value is an empty string (i.e. disabled).
   3876 
   3877 This attribute overrides the =:width= and =:height= attributes.
   3878 
   3879 #+begin_example
   3880 ,#+name: Beastie
   3881 ,#+caption: I think I saw this curious horse already, but where ?
   3882 ,#+LATEX_ATTR: :scale 2
   3883 [[https://orgmode.org/img/org-mode-unicorn-logo.png]]
   3884 #+end_example
   3885 
   3886 *** Allow specifying the target for a table of contents
   3887 
   3888 The =+TOC= keyword now accepts a =:target:= attribute that specifies
   3889 the headline to use for making the table of contents.
   3890 
   3891 #+begin_example
   3892 ,* Target
   3893   :PROPERTIES:
   3894   :CUSTOM_ID: TargetSection
   3895   :END:
   3896 ,** Heading A
   3897 ,** Heading B
   3898 ,* Another section
   3899 ,#+TOC: headlines 1 :target "#TargetSection"
   3900 #+end_example
   3901 
   3902 ** New functions
   3903 *** ~org-dynamic-block-insert-dblock~
   3904 
   3905 Use default keybinding =<C-c C-x x>= to run command
   3906 ~org-dynamic-block-insert-dblock~.  It will prompt user to select
   3907 dynamic block in ~org-dynamic-block-alist~.
   3908 
   3909 *** ~org-table-cell-up~
   3910 *** ~org-table-cell-down~
   3911 *** ~org-table-cell-left~
   3912 *** ~org-table-cell-right~
   3913 *** ~org-habit-toggle-display-in-agenda~
   3914 ** Removed functions and variables
   3915 *** Removed Org Drill
   3916 
   3917 You can install it back from MELPA.
   3918 
   3919 *** ~org-babel-set-current-result-hash~
   3920 *** ~org-capture-insert-template-here~
   3921 *** ~org-attach-directory~
   3922 
   3923 It has been deprecated in favor of ~org-attach-id-dir~ which is less
   3924 ambiguous given the restructured org-attach.
   3925 
   3926 *** ~org-enable-fixed-width-editor~
   3927 
   3928 This variable was not used through the code base.
   3929 
   3930 ** Miscellaneous
   3931 *** Change signature for ~org-list-to-subtree~
   3932 
   3933 The function now accepts the level of the subtree as an optional
   3934 argument.  It no longer deduces it from the current level.
   3935 
   3936 *** LaTeX preview is simplified
   3937 
   3938 Function ~org-latex-preview~, formerly known as
   3939 ~org-toggle-latex-fragment~, has a hopefully simpler and more
   3940 predictable behavior.  See its docstring for details.
   3941 
   3942 *** ~org-table-copy-down~ supports patterns
   3943 
   3944 When ~org-table-copy-increment~ is non-nil, it is now possible to
   3945 increment fields like =A1=, or =0A=, i.e., any string prefixed or
   3946 suffixed with a whole number.
   3947 
   3948 *** No more special indentation for description items
   3949 
   3950 Descriptions items are indented like regular ones, i.e., text starts
   3951 after the bullet.  Special indentation used to introduce bugs when
   3952 inserting sub-items in a description list.
   3953 
   3954 *** New hook: ~org-todo-repeat-hook~
   3955 
   3956 This hook was actually introduced in Org 9.2.1, but wasn't advertised.
   3957 
   3958 *** Org Table reads numbers starting with 0 as strings
   3959 *** Disable fast tag selection interface via prefix arg
   3960 
   3961 A call of ~org-set-tags-command~ with prefix argument C-u C-u avoids
   3962 the fast tag selection interface and instead offers the plain
   3963 interface.
   3964 
   3965 *** ~:mkdirp~ now supports create directory for ~:dir~ path
   3966 
   3967 The ~:mkdirp~ header argument used to only work for ~:tangle~ tangle
   3968 files. Now ~:mkdirp~ works for ~:dir~ too. This is more convenient for
   3969 specify default directory and with ~:file~ header argument.
   3970 
   3971 *** New variable: ~org-agenda-breadcrumbs-separator~
   3972 
   3973 If breadcrumbs are showed in org-agenda with the help of "%b" format
   3974 in ~org-agenda-prefix-format~, user can customize breadcrumbs's
   3975 separator using ~org-agenda-breadcrumbs-separator~.
   3976 
   3977 *** New variable ~org-attach-commands~
   3978 
   3979 This variable makes it possible to customize the list of commands for
   3980 the attachment dispatcher.
   3981 
   3982 *** New ID method based on timestamp
   3983 
   3984 If one chooses, it is now possible to create ID's based on timestamp
   3985 (ISO8601) instead of UUID by changing org-id-method to ts.
   3986 
   3987 For an improved folder structure when using timestamp as ID, make sure
   3988 to promote ~org-attach-id-ts-folder-format~ to the first element of
   3989 ~org-attach-id-to-path-function-list~ in your configuration at the
   3990 same time.
   3991 
   3992 *** New customization: ~org-id-locations-relative~
   3993 
   3994 New customization to make the persisting of org-id-locations between
   3995 sessions to store links to files as relative instead of absolute.  The
   3996 links will be stored as relative to the path of org-id-locations-file.
   3997 
   3998 *** ~org-ctrl-c-tab~ is functional before the first headline
   3999 
   4000 I.e. treat the whole file as if it was a subtree.
   4001 
   4002 Also fold everything below the chosen level.  Former behavior was to
   4003 leave unfolded subtrees unfolded.
   4004 
   4005 *** ~org-kill-note-or-show-branches~ is functional before the first headline
   4006 
   4007 I.e. treat the whole file as if it was a subtree.
   4008 
   4009 *** Respect narrowing when agenda command is restricted to buffer
   4010 
   4011 *** ~org-table-insert-column~ inserts the column at point position
   4012 
   4013 Before, the new column was inserted to the right of the column at
   4014 point position.
   4015 
   4016 *** Table column deletion now consistent with row deletion
   4017 
   4018 Point stays in the column at deletion, except when deleting the
   4019 rightmost column.
   4020 
   4021 * Version 9.2
   4022 ** Incompatible changes
   4023 *** Removal of OrgStruct mode mode and radio lists
   4024 
   4025 OrgStruct minor mode and radio lists mechanism (~org-list-send-list~
   4026 and ~org-list-radio-lists-templates~) are removed from the code base.
   4027 
   4028 Note that only radio /lists/ have been removed, not radio tables.
   4029 
   4030 If you want to manipulate lists like in Org in other modes, we suggest
   4031 to use =orgalist.el=, which you can install from GNU ELPA.
   4032 
   4033 If you want to use Org folding outside of Org buffers, you can have a
   4034 look at the outshine package in the MELPA repository.
   4035 
   4036 *** Change in the structure template expansion
   4037 
   4038 Org 9.2 comes with a new template expansion mechanism, combining
   4039 ~org-insert-structure-template~ bound to ~C-c C-,~.
   4040 
   4041 If you customized the ~org-structure-template-alist~ option manually,
   4042 you probably need to update it, see the docstring for accepted values.
   4043 
   4044 If you prefer using previous patterns, e.g. =<s=, you can activate
   4045 them again by requiring Org Tempo library:
   4046 
   4047 : (require 'org-tempo)
   4048 
   4049 or add it to ~org-modules~.
   4050 
   4051 If you need complex templates, look at the ~tempo-define-template~
   4052 function or at solutions like Yasnippet.
   4053 
   4054 *** Change to Noweb expansion
   4055 
   4056 Expansion check =:noweb-ref= only if no matching named block is found
   4057 in the buffer.  As a consequence, any =:noweb-ref= value matching the
   4058 name of a source block in the buffer is ignored. A simple fix is to
   4059 give every concerned source-block, including the named one, a new,
   4060 unique, Noweb reference.
   4061 
   4062 #+BEGIN_SRC org
   4063   ,#+NAME: foo
   4064   ,#+BEGIN_SRC emacs-lisp
   4065     1
   4066   ,#+END_SRC
   4067 
   4068   ,#+BEGIN_SRC emacs-lisp :noweb-ref foo
   4069     2
   4070   ,#+END_SRC
   4071 
   4072   ,#+BEGIN_SRC emacs-lisp :noweb yes
   4073     <<foo>>
   4074   ,#+END_SRC
   4075 #+END_SRC
   4076 
   4077 should become
   4078 
   4079 #+BEGIN_SRC org
   4080   ,#+NAME: foo
   4081   ,#+BEGIN_SRC emacs-lisp :noweb-ref bar
   4082     1
   4083   ,#+END_SRC
   4084 
   4085   ,#+BEGIN_SRC emacs-lisp :noweb-ref bar
   4086     2
   4087   ,#+END_SRC
   4088 
   4089   ,#+BEGIN_SRC emacs-lisp :noweb yes
   4090     <<bar>>
   4091   ,#+END_SRC
   4092 #+END_SRC
   4093 
   4094 *** Default/accepted values of ~org-calendar-to-agenda-key~
   4095 
   4096 The default value and accepted value of  ~org-calendar-to-agenda-key~
   4097 changed.  This is an excerpt of the new docstring:
   4098 
   4099 : When set to ‘default’, bind the function to ‘c’, but only if it is
   4100 : available in the Calendar keymap.  This is the default choice because
   4101 : ‘c’ can then be used to switch back and forth between agenda and calendar.
   4102 :
   4103 : When nil, ‘org-calendar-goto-agenda’ is not bound to any key.
   4104 
   4105 Check the full docstring for more.
   4106 
   4107 *** Change the signature of the ~org-set-effort~ function
   4108 
   4109 Here is the new docstring:
   4110 
   4111 : (org-set-effort &optional INCREMENT VALUE)
   4112 :
   4113 : Set the effort property of the current entry.
   4114 : If INCREMENT is non-nil, set the property to the next allowed
   4115 : value.  Otherwise, if optional argument VALUE is provided, use
   4116 : it.  Eventually, prompt for the new value if none of the previous
   4117 : variables is set.
   4118 
   4119 *** Placeholders in =(eval ...)= macros are always strings
   4120 
   4121 Within =(eval ...)= macros, =$1=-like placeholders are always replaced
   4122 with a string.  As a consequence, they must not be enclosed within
   4123 quotes. As an illustration, consider the following, now valid,
   4124 examples:
   4125 
   4126 #+begin_example
   4127   ,#+macro: join (eval (concat $1 $2))
   4128   ,#+macro: sum (eval (+ (string-to-number $1) (string-to-number $2)))
   4129 
   4130   {{{join(a,b)}}} => ab
   4131   {{{sum(1,2)}}}  => 3
   4132 #+end_example
   4133 
   4134 However, there is no change in non-eval macros:
   4135 
   4136 #+begin_example
   4137   ,#+macro: disp argument: $1
   4138 
   4139   {{{disp(text)}}} => argument: text
   4140 #+end_example
   4141 
   4142 *** =align= STARTUP value no longer narrow table columns
   4143 
   4144 Columns narrowing (or shrinking) is now dynamic. See [[*Dynamically
   4145 narrow table columns]] for details. In particular, it is decoupled from
   4146 aligning.
   4147 
   4148 If you need to automatically shrink columns upon opening an Org
   4149 document, use =shrink= value instead, or in addition to align:
   4150 
   4151 #+BEGIN_EXAMPLE
   4152 ,#+STARTUP: align shrink
   4153 #+END_EXAMPLE
   4154 
   4155 *** ~org-get-tags~ meaning change
   4156 
   4157 Function ~org-get-tags~ used to return local tags to the current
   4158 headline.  It now returns all the inherited tags in addition to the
   4159 local tags.  In order to get the old behavior back, you can use:
   4160 
   4161 : (org-get-tags nil t)
   4162 
   4163 *** Alphabetic sorting in tables and lists
   4164 
   4165 When sorting alphabetically, ~org-table-sort-lines~ and ~org-sort-list~
   4166 now sort according to the locale’s collation rules instead of by
   4167 code-point.
   4168 
   4169 *** Change the name of the :tags clocktable option to :match
   4170 
   4171 The =:match= (renamed from =:tags=) option allows to limit clock entries
   4172 to those matching a todo-tags matcher.
   4173 
   4174 The old =:tags= option can be set to =t= to display a headline's tags in a
   4175 dedicated column.
   4176 
   4177 This is consistent with the naming of =org-dblock-write:columnview=
   4178 options, where =:match= is also used as a headlines filter.
   4179 
   4180 ** New features
   4181 *** Add ~:session~ support of ob-clojure for CIDER
   4182 You can initialize source block session with Babel default keybinding
   4183 =[C-c C-v C-z]= to use =sesman= session manager to link current
   4184 project, directory or buffer with specific Clojure session, or
   4185 =cider-jack-in= a new CIDER REPL if no CIDER REPLs available. In older
   4186 CIDER version which has not =sesman= integrated, only has
   4187 =cider-jack-in= without Clojure project is supported.
   4188 #+begin_src clojure :session
   4189 (dissoc Clojure 'JVM)
   4190 (conj clojurists "stardiviner")
   4191 #+end_src
   4192 
   4193 *** Add ~:results link~ support for Babel
   4194 
   4195 With this output format, create a link to the file specified in
   4196 ~:file~ header argument, without actually writing any result to it:
   4197 
   4198 #+begin_example
   4199 ,#+begin_src shell :dir "data/tmp" :results link :file "crackzor_1.0.c.gz"
   4200 wget -c "https://ben.akrin.com/crackzor/crackzor_1.0.c.gz"
   4201 ,#+end_src
   4202 
   4203 ,#+results:
   4204 [[file:data/tmp/crackzor_1.0.c.gz]]
   4205 #+end_example
   4206 
   4207 *** Add ~:session~ support of ob-js for js-comint
   4208 #+begin_src js :session "*Javascript REPL*"
   4209 console.log("stardiviner")
   4210 #+end_src
   4211 
   4212 *** Add ~:session~ support of ob-js for Indium
   4213 #+begin_src js :session "*JS REPL*"
   4214 console.log("stardiviner")
   4215 #+end_src
   4216 
   4217 *** Add ~:session~ support of ob-js for skewer-mode
   4218 #+begin_src js :session "*skewer-repl*"
   4219 console.log("stardiviner")
   4220 #+end_src
   4221 
   4222 *** Add support for links to LaTeX equations in HTML export
   4223 Use MathJax links when enabled (by ~org-html-with-latex~), otherwise
   4224 add a label to the rendered equation.
   4225 *** Org Tempo may used for snippet expansion of structure template.
   4226 See manual and the commentary section in ~org-tempo.el~ for details.
   4227 *** Exclude unnumbered headlines from table of contents
   4228 Set their =UNNUMBERED= property to the special =notoc= value.  See
   4229 manual for details.
   4230 *** ~org-archive~ functions update status cookies
   4231 
   4232 Archiving headers through ~org-archive-subtree~ and
   4233 ~org-archive-to-archive-sibling~ such as the ones listed below:
   4234 
   4235 #+BEGIN_SRC org
   4236   ,* Top [1/2]
   4237   ,** DONE Completed
   4238   ,** TODO Working
   4239 #+END_SRC
   4240 
   4241 Will update the status cookie in the top level header.
   4242 
   4243 *** Disable =org-agenda-overriding-header= by setting to empty string
   4244 
   4245 The ~org-agenda-overriding-header~ inserted into agenda views can now
   4246 be disabled by setting it to an empty string.
   4247 
   4248 *** Dynamically narrow table columns
   4249 
   4250 With ~C-c TAB~, it is now possible to narrow a column to the width
   4251 specified by a width cookie in the column, or to 1 character if there
   4252 is no such cookie.  The same keybinding expands a narrowed column to
   4253 its previous state.
   4254 
   4255 Editing the column automatically expands the whole column to its full
   4256 size.
   4257 
   4258 *** =org-columns-summary-types= entries can take an optional COLLECT function
   4259 
   4260 You can use this to make collection of a property from an entry
   4261 conditional on another entry. E.g. given this configuration:
   4262 
   4263 #+BEGIN_SRC emacs-lisp
   4264   (defun custom/org-collect-confirmed (property)
   4265     "Return `PROPERTY' for `CONFIRMED' entries"
   4266     (let ((prop (org-entry-get nil property))
   4267           (confirmed (org-entry-get nil "CONFIRMED")))
   4268       (if (and prop (string= "[X]" confirmed))
   4269           prop
   4270         "0")))
   4271 
   4272   (setq org-columns-summary-types
   4273         '(("X+" org-columns--summary-sum
   4274            custom/org-collect-confirmed)))
   4275 #+END_SRC
   4276 
   4277 You can have a file =bananas.org= containing:
   4278 
   4279 #+BEGIN_SRC org
   4280   ,#+columns: %ITEM %CONFIRMED %Bananas{+} %Bananas(Confirmed Bananas){X+}
   4281 
   4282   ,* All shipments
   4283   ,** Shipment 1
   4284      :PROPERTIES:
   4285      :CONFIRMED: [X]
   4286      :Bananas:  4
   4287      :END:
   4288 
   4289   ,** Shipment 2
   4290      :PROPERTIES:
   4291      :CONFIRMED: [ ]
   4292      :BANANAS:  7
   4293      :END:
   4294 #+END_SRC
   4295 
   4296 ... and when going to the top of that file and entering column view
   4297 you should expect to see something like:
   4298 
   4299 | ITEM          | CONFIRMED | Bananas | Confirmed Bananas |
   4300 |---------------+-----------+---------+-------------------|
   4301 | All shipments |           |      11 |                 4 |
   4302 | Shipment 1    | [X]       |       4 |                 4 |
   4303 | Shipment 2    | [ ]       |       7 |                 7 |
   4304 
   4305 #+BEGIN_EXAMPLE
   4306   ,#+STARTUP: shrink
   4307 #+END_EXAMPLE
   4308 
   4309 *** Allow to filter by tags/property when capturing colview
   4310 
   4311 You can now use =:match= to filter entries using a todo/tags/properties
   4312 matcher.
   4313 
   4314 *** Add support for Oracle's database alias in Babel blocks
   4315 =ob-sql= library already support running SQL blocks against an Oracle
   4316 database using ~sqlplus~.  Now it's possible to use alias names
   4317 defined in =TNSNAMES= file instead of specifying full connection
   4318 parameters.  See example below.
   4319 
   4320 #+BEGIN_SRC org
   4321   you can use the previous full connection parameters
   4322   ,#+BEGIN_SRC sql :engine oracle :dbuser me :dbpassword my_insecure_password :database my_db_name :dbhost my_db_host :dbport 1521
   4323   select sysdate from dual;
   4324   ,#+END_SRC
   4325 
   4326   or the alias defined in your TNSNAMES file
   4327   ,#+BEGIN_SRC sql :engine oracle :dbuser me :dbpassword my_insecure_password :database my_tns_alias
   4328   select sysdate from dual;
   4329   ,#+END_SRC
   4330 #+END_SRC
   4331 
   4332 *** ~org-agenda-set-restriction-lock~ toggle agenda restriction at point
   4333 
   4334 You can set an agenda restriction lock with =C-x C-x <= or with =<= at the
   4335 beginning of a headline when using Org speed commands.  Now, if there
   4336 is already a restriction at point, hitting =<= again (or =C-x C-x <=) will
   4337 remove it.
   4338 
   4339 *** Headlines can now link to themselves in HTML export
   4340 
   4341 When enabling ~org-html-self-link-headlines~ the headlines exported to
   4342 HTML contain a hyperlink to themselves.
   4343 
   4344 ** New commands and functions
   4345 
   4346 *** ~org-insert-structure-template~
   4347 
   4348 This function can be used to wrap existing text of Org elements in
   4349 a #+BEGIN_FOO/#+END_FOO block.  Bound to C-c C-x w by default.
   4350 
   4351 *** ~org-export-excluded-from-toc-p~
   4352 
   4353 See docstring for details.
   4354 
   4355 *** ~org-timestamp-to-time~
   4356 *** ~org-timestamp-from-string~
   4357 *** ~org-timestamp-from-time~
   4358 *** ~org-attach-dired-to-subtree~
   4359 
   4360 See docstring for details.
   4361 
   4362 *** ~org-toggle-narrow-to-subtree~
   4363 
   4364 Toggle the narrowing state of the buffer: when in a narrowed state,
   4365 widen, otherwise call ~org-narrow-to-subtree~ to narrow.
   4366 
   4367 This is attached to the "s" speed command, so that hitting "s" twice
   4368 will go back to the widen state.
   4369 
   4370 *** ~org-browse-news~
   4371 
   4372 Browse https://orgmode.org/Changes.html to let users read information
   4373 about the last major release.
   4374 
   4375 There is a new menu entry for this in the "Documentation" menu item.
   4376 
   4377 *** ~org-info-find-node~
   4378 
   4379 From an Org file or an agenda switch to a suitable info page depending
   4380 on the context.
   4381 
   4382 The function is bound to =C-c C-x I=.
   4383 
   4384 ** Removed commands and functions
   4385 *** ~org-outline-overlay-data~
   4386 Use ~org-save-outline-visibility~ instead.
   4387 *** ~org-set-outline-overlay-data~
   4388 Use ~org-save-outline-visibility~ instead.
   4389 *** ~org-get-string-indentation~
   4390 It was not used throughout the code base.
   4391 *** ~org-fix-indentation~
   4392 It was not used throughout code base.
   4393 *** ~org-context-p~
   4394 Use ~org-element-at-point~ instead.
   4395 *** ~org-preserve-lc~
   4396 It is no longer used in the code base.
   4397 *** ~org-try-structure-completion~
   4398 Org Tempo may be used as a replacement.  See details above.
   4399 ** Removed options
   4400 
   4401 *** org-babel-use-quick-and-dirty-noweb-expansion
   4402 
   4403 See [[*Change to Noweb expansion][Change to Noweb expansion]] for explanations.
   4404 
   4405 ** Miscellaneous
   4406 
   4407 *** New default value for ~org-texinfo-table-scientific-notation~
   4408 
   4409 It is now nil, which means numbers in scientific notation are not
   4410 handled specially by default.
   4411 
   4412 *** New default value for ~org-latex-table-scientific-notation~
   4413 
   4414 It is now nil, which means numbers in scientific notation are not
   4415 handled specially by default.
   4416 
   4417 *** New face: ~org-upcoming-distant-deadline~
   4418 
   4419 It is meant to be used as the face for distant deadlines, see
   4420 ~org-agenda-deadline-faces~
   4421 
   4422 *** ~org-paste-subtree~ no longer breaks sections
   4423 
   4424 Unless point is at the beginning of a headline, ~org-paste-subtree~
   4425 now pastes the tree before the next visible headline.  If you need to
   4426 break the section, use ~org-yank~ instead.
   4427 
   4428 *** ~org-table-insert-column~ inserts a column to the right
   4429 
   4430 It used to insert it on the left.  With this change,
   4431 ~org-table-insert-column~ and ~org-table-delete-column~ are
   4432 reciprocal.
   4433 
   4434 *** ~org-publish-resolve-external-link~ accepts a new optional argument.
   4435 *** ~org-irc.el~ now supports exporting =irc:= links properly
   4436 
   4437 Previously, irc links were exported by ~ox-md~ and ~ox-html~ as normal
   4438 file links, which lead to them being broken in web browsers. Now both
   4439 of these exporters will properly export to =irc:= links, which will
   4440 open properly in irc clients from web browsers.
   4441 
   4442 *** ~org-comment-dwim~ (bound to =M-;=) now comments headings, if point is on a heading
   4443 *** Add support for open source block in window below
   4444 
   4445 Set option ~org-src-window-setup~ to ~split-window-below~.
   4446 
   4447 *** Alphabetic sorting in headings and tags now uses the locale’s sorting rules
   4448 
   4449 When sorting alphabetically, ~org-sort-entries~ and
   4450 ~org-tags-sort-function~ now sort according to the locale’s collation
   4451 rules instead of by code-point.
   4452 *** New speed command "k" to kill (cut) the subtree at point
   4453 * Version 9.1
   4454 
   4455 ** Incompatible changes
   4456 
   4457 *** Variables relative to clocksum duration are obsolete
   4458 
   4459 ~org-time-clocksum-format~, ~org-time-clocksum-use-fractional~ and
   4460 ~org-time-clocksum-fractional-format~ are obsolete.  If you changed
   4461 them, consider modifying ~org-duration-format~ instead.
   4462 
   4463 Variable ~org-time-clocksum-use-effort-durations~ is also obsolete.
   4464 Consider setting ~org-duration-units~ instead.
   4465 
   4466 *** ~org-at-timestamp-p~ optional argument accepts different values
   4467 
   4468 See docstrings for the allowed values.  For backward compatibility,
   4469 ~(org-at-timestamp-p t)~ is still supported, but should be updated
   4470 accordingly.
   4471 
   4472 *** ~org-capture-templates~ no longer accepts S-expressions as file names
   4473 
   4474 Since functions are allowed there, a straightforward way to migrate
   4475 is to turn, e.g.,
   4476 
   4477 : (file (sexp))
   4478 
   4479 into
   4480 
   4481 : (file (lambda () (sexp)))
   4482 
   4483 *** Deleted contributed packages
   4484 
   4485 =org-ebib.el, =org-bullets.el= and =org-mime.el= have been deleted
   4486 from the contrib/ directory.
   4487 
   4488 You can now find them here :
   4489 
   4490 - https://github.com/joostkremers/ebib
   4491 - https://github.com/sabof/org-bullets
   4492 - https://github.com/org-mime/org-mime
   4493 
   4494 *** Change ~org-texinfo-classes~ value
   4495 The value cannot support functions to create sectioning commands
   4496 anymore.  Also, the sectioning commands should include commands for
   4497 appendices.  See the docstring for more information.
   4498 *** Removal of ~:sitemap-sans-extension~
   4499 
   4500 The publishing property is no longer recognized, as a consequence of
   4501 changes to site-map generation.
   4502 
   4503 You can get the same functionality by setting ~:sitemap-format-entry~
   4504 to the following
   4505 
   4506 #+BEGIN_SRC elisp
   4507 (lambda (entry style project)
   4508   (cond ((not (directory-name-p entry))
   4509          (format "[[file:%s][%s]]"
   4510                  (file-name-sans-extension entry)
   4511                  (org-publish-find-title entry project)))
   4512         ((eq style 'tree) (file-name-nondirectory (directory-file-name entry)))
   4513         (t entry)))
   4514 #+END_SRC
   4515 
   4516 *** Change signature for ~:sitemap-function~
   4517 
   4518 ~:sitemap-function~ now expects to be called with two arguments.  See
   4519 ~org-publish-project-alist~ for details.
   4520 
   4521 *** Change signature for some properties in ~org-list-to-generic~
   4522 
   4523 ~:istart~, ~:icount~, ~:iend~ and ~:isep~ now expect the type of the
   4524 list as their first argument.
   4525 
   4526 *** Change signature for ~org-get-repeater~
   4527 The optional argument is now a string to extract the repeater from.
   4528 See docstring for details.
   4529 
   4530 *** Change signature for ~org-time-string-to-time~
   4531 See docstring for changes.
   4532 
   4533 *** Change order of items in ~org-agenda-time-grid~
   4534 ~org-agenda-time-grid~ gained an extra item to allow users to customize
   4535 the string displayed after times in the agenda. See docstring for
   4536 details.
   4537 
   4538 *** ~tags-todo~ custom searches now include DONE keywords
   4539 
   4540 Use "/!" markup when filtering TODO keywords to get only not-done TODO
   4541 keywords.
   4542 
   4543 *** ~org-split-string~ returns ~("")~ when called on an empty string
   4544 
   4545 It used to return nil.
   4546 
   4547 *** Removal of =ob-scala.el=
   4548 
   4549 See [[https://github.com/ensime/emacs-scala-mode/issues/114][this github issue]].
   4550 
   4551 You can use =ob-scala.el= as packaged in scala-mode, available from the
   4552 MELPA repository.
   4553 
   4554 ** New features
   4555 *** iCalendar export uses inheritance for TIMEZONE and LOCATION properties
   4556 Both these properties can be inherited during iCalendar export,
   4557 depending on the value of ~org-use-property-inheritance~.
   4558 *** iCalendar export respects a TIMEZONE property
   4559 Set the TIMEZONE property on an entry to specify a time zone for that
   4560 entry only during iCalendar export.  The property value should be
   4561 specified as in "Europe/London".
   4562 *** ~org-attach~ can move directory contents
   4563 When setting a new directory for an entry, org-attach offers to move
   4564 files over from the old directory.  Using a prefix arg will reset the
   4565 directory to old, ID based one.
   4566 *** New Org duration library
   4567 This new library implements tools to read and print time durations in
   4568 various formats (e.g., "H:MM", or "1d 2h 3min"...).
   4569 
   4570 See ~org-duration-to-minutes~ and ~org-duration-from-minutes~
   4571 docstrings.
   4572 
   4573 *** Agenda
   4574 **** New variable : ~org-agenda-show-future-repeats~
   4575 **** New variable : ~org-agenda-prefer-last-repeat~
   4576 **** New variable : ~org-deadline-past-days~
   4577 See docstring for details.
   4578 **** Binding C-c C-x < for ~org-agenda-set-restriction-lock-from-agenda~
   4579 **** New auto-align default setting for =org-agenda-tags-column=
   4580 
   4581 =org-agenda-tags-column= can now be set to =auto=, which will
   4582 automatically align tags to the right edge of the window.  This is now
   4583 the default setting.
   4584 *** New value for ~org-publish-sitemap-sort-folders~
   4585 
   4586 The new ~ignore~ value effectively allows toggling inclusion of
   4587 directories in published site-maps.
   4588 
   4589 *** Babel
   4590 
   4591 **** Scheme: support for tables
   4592 **** Scheme: new variable: ~org-babel-scheme-null-to~
   4593 
   4594 This new custom option allows you to use an empty list or null symbol to
   4595 format the table output, initially assigned to ~hlines~.
   4596 
   4597 **** Scheme: new header ~:prologue~
   4598 
   4599 A new block code header has been created for Org Babel that enables
   4600 developers to prepend code to the scheme block being processed.
   4601 
   4602 Multiple ~:prologue~ headers can be added each of them using a string
   4603 with the content to be added.
   4604 
   4605 The scheme blocks are prepared by surrounding the code in the block
   4606 with a let form. The content of the ~:prologue~ headers are prepended
   4607 before this let form.
   4608 
   4609 **** Support for hledger accounting reports added
   4610 **** Clojure: new setting ~org-babel-clojure-sync-nrepl-timeout~
   4611 
   4612 Creation of a new setting to specify the Cider timeout.  By setting
   4613 the =org-babel-clojure-sync-nrepl-timeout= setting option.  The value
   4614 is in seconds and if set to nil then no timeout will occur.
   4615 
   4616 **** Clojure: new header ~:show-process~
   4617 
   4618 A new block code header has been created for Org Babel that enables
   4619 developers to output the process of an ongoing process into a new
   4620 window/buffer.
   4621 
   4622 You can tell Org Babel to output the process of a running code block.
   4623 
   4624 To show that output you only have to specify the =:show-process=
   4625 option in the code block's header like this:
   4626 
   4627 #+begin_example
   4628 ,#+BEGIN_SRC clojure :results output :show-process t
   4629   (dotimes [n 10]
   4630     (println n ".")
   4631     (Thread/sleep 500))
   4632 ,#+END_SRC
   4633 #+end_example
   4634 
   4635 If =:show-process= is specified that way, then when you will run the
   4636 code using =C-c C-c= a new window will open in Emacs.  Everything that
   4637 is output by the REPL will immediately be added to that new window.
   4638 
   4639 When the processing of the code is finished, then the window and its
   4640 buffer will be closed and the results will be reported in the
   4641 =#+RESULTS= section.
   4642 
   4643 Note that the =:results= parameter's behavior is *not* changed.  If
   4644 =silent= is specified, then no result will be displayed.  If =output=
   4645 is specified then all the output from the window will appears in the
   4646 results section.  If =value= is specified, then only the last returned
   4647 value of the code will be displayed in the results section.
   4648 
   4649 **** Maxima: new headers ~:prologue~ and ~:epilogue~
   4650 Babel options ~:prologue~ and ~:epilogue~ have been implemented for
   4651 Maxima source blocks which prepend and append, respectively, the given
   4652 code strings.  This can be useful for specifying formatting settings
   4653 which would add clutter to exported code.  For instance, you can use
   4654 this ~:prologue "fpprintprec: 2; linel: 50;"~ for presenting Maxima
   4655 results in a beamer presentation.
   4656 **** PlantUML: add support for header arguments
   4657 
   4658 [[https://plantuml.com/][Plantuml]] source blocks now support the [[https://orgmode.org/manual/prologue.html#prologue][~:prologue~]], [[https://orgmode.org/manual/epilogue.html#epilogue][~:epilogue~]] and
   4659 [[https://orgmode.org/manual/var.html#var][~:var~]] header arguments.
   4660 
   4661 **** SQL: new engine added ~sqsh~
   4662 
   4663 A new engine was added to support ~sqsh~ command line utility for use
   4664 against Microsoft SQL Server or Sybase SQL server.
   4665 
   4666 More information on ~sqsh~ can be found here: [[https://sourceforge.net/projects/sqsh/][sourceforge/sqsh]]
   4667 
   4668 To use ~sqsh~ in an *sql* =SRC_BLK= set the =:engine= like this:
   4669 
   4670 #+begin_example
   4671 ,#+BEGIN_SRC sql :engine sqsh :dbhost my_host :dbuser master :dbpassword pass :database support
   4672 Select * From Users
   4673 Where clue > 0
   4674 ,#+END_SRC
   4675 #+end_example
   4676 
   4677 **** SQL: new engine added =vertica=
   4678 
   4679 A new engine was added to support vsql command line utility for use
   4680 against HP Vertica.
   4681 
   4682 More information on =vsql= can be found here: [[https://my.vertica.com/docs/7.2.x/HTML/index.htm#Authoring/ConnectingToHPVertica/vsql/UsingVsql.htm][my.vertica.com]]
   4683 
   4684 To use =vertica= in an sql =SRC_BLK= set the =:engine= like this:
   4685 
   4686 #+BEGIN_EXAMPLE
   4687   ,#+BEGIN_SRC sql :engine vertica :dbhost my_host :dbuser dbadmin :dbpassword pw :database vmart
   4688   SELECT * FROM nodes;
   4689   ,#+END_SRC
   4690 #+END_EXAMPLE
   4691 
   4692 **** C++: New header ~:namespaces~
   4693 
   4694 The new ~:namespaces~ export option can be used to specify namespaces
   4695 to be used within a C++ org source block.  Its usage is similar to
   4696 ~:includes~, in that it can accept multiple, space-separated
   4697 namespaces to use.  This header is equivalent to adding ~using
   4698 namespace <name>;~ in the source block. Here is a "Hello World" in C++
   4699 using ~:namespaces~:
   4700 
   4701 #+begin_example
   4702   ,#+BEGIN_SRC C++ :results output :namespaces std :includes <iostream>
   4703     cout << "Hello World" << endl;
   4704   ,#+END_SRC
   4705 #+end_example
   4706 
   4707 **** Support for Vala language
   4708 
   4709 [[https://wiki.gnome.org/Projects/Vala][Vala]] language blocks support two special header arguments:
   4710 
   4711 - ~:flags~ passes arguments to the compiler
   4712 - ~:cmdline~ passes commandline arguments to the generated executable
   4713 
   4714 Support for [[https://orgmode.org/manual/var.html#var][~:var~]] does not exist yet, also there is no [[https://orgmode.org/manual/session.html#session][~:session~]]
   4715 support because Vala is a compiled language.
   4716 
   4717 The Vala compiler binary can be changed via the ~defcustom~
   4718 ~org-babel-vala-compiler~.
   4719 
   4720 *** New ~function~ scope argument for the Clock Table
   4721 Added a nullary function that returns a list of files as a possible
   4722 argument for the scope of the clock table.
   4723 *** Export
   4724 **** Implement vernacular table of contents in Markdown exporter
   4725 Global table of contents are generated using vanilla Markdown syntax
   4726 instead of HTML.  Also #+TOC keyword, including local table of
   4727 contents, are now supported.
   4728 **** Add Slovenian translations
   4729 **** Implement ~org-export-insert-image-links~
   4730 This new function is meant to be used in back-ends supporting images
   4731 as descriptions of links, a.k.a. image links.  See its docstring for
   4732 details.
   4733 **** New macro : ~{{{n}}}~
   4734 This macro creates and increment multiple counters in a document.  See
   4735 manual for details.
   4736 **** Add global macros through ~org-export-global-macros~
   4737 With this variable, one can define macros available for all documents.
   4738 **** New keyword ~#+EXPORT_FILE_NAME~
   4739 Similarly to ~:EXPORT_FILE_NAME:~ property, this keyword allows the
   4740 user to specify the name of the output file upon exporting the
   4741 document.  This also has an effect on publishing.
   4742 **** Horizontal rules are no longer ignored in LaTeX table math mode
   4743 **** Use ~compilation-mode~ for compilation output
   4744 **** Plain lists accept a new ~:separator~ attribute in Texinfo
   4745 
   4746 The new ~:separator~ attribute splits a tag from a description list
   4747 item into multiple parts.  This allows to have two-column tables with
   4748 multiple entries in the first column.  See manual for more details.
   4749 
   4750 **** ~latex-environment~ elements support ~caption~ keywords for LaTeX export
   4751 *** ~org-edit-special~ can edit LaTeX environments
   4752 
   4753 Using ~C-c '~ on a LaTeX environment opens a sub-editing buffer.  By
   4754 default, major mode in that buffer is ~latex-mode~, but it can be
   4755 changed by configuring ~org-src-lang-modes~.
   4756 
   4757 *** ~org-list-to-generic~ includes a new property: ~:ifmt~
   4758 
   4759 ~:ifmt~ is a function to be called on the body of each item.  See
   4760 ~org-list-to-generic~ documentation for details.
   4761 
   4762 *** New variable : ~org-bibtex-headline-format-function~
   4763 This allow to use a different title than entry title.
   4764 
   4765 *** ~org-attach~ supports attaching files from URLs
   4766 
   4767 Using ~C-c C-a u~ prompts for a URL pointing to a file to be attached
   4768 to the document.
   4769 
   4770 *** New option for ~org-refile-use-outline-path~
   4771 ~org-refile-use-outline-path~ now supports the setting ~buffer-name~,
   4772 which causes refile targets to be prefixed with the buffer’s
   4773 name. This is particularly useful when used in conjunction with
   4774 ~uniquify.el~.
   4775 
   4776 *** ~org-file-contents~ now allows the FILE argument to be a URL.
   4777 This allows ~#+SETUPFILE:~ to accept a URL instead of a local file
   4778 path.  The URL contents are auto-downloaded and saved to a temporary
   4779 cache ~org--file-cache~.  A new optional argument ~NOCACHE~ is added
   4780 to ~org-file-contents~.
   4781 
   4782 *** ~org-mode-restart~ now resets the newly added ~org--file-cache~.
   4783 Using ~C-c C-c~ on any keyword (like ~#+SETUPFILE~) will reset the
   4784 that file cache.
   4785 
   4786 *** New option : ~org-table-duration-hour-zero-padding~
   4787 This variable allow computed durations in tables to be zero-padded.
   4788 
   4789 *** New mode switch for table formulas : =U=
   4790 This mode omits seconds in durations.
   4791 
   4792 ** Removed functions
   4793 
   4794 *** Org Timeline
   4795 
   4796 This feature has been removed.  Use a custom agenda view, possibly
   4797 narrowed to current buffer to achieve a similar functionality.
   4798 
   4799 *** ~org-agenda-skip-entry-when-regexp-matches~ is obsolete
   4800 
   4801 Use ~org-agenda-skip-if~ instead.
   4802 
   4803 *** ~org-agenda-skip-subtree-when-regexp-matches~ is obsolete
   4804 
   4805 Use ~org-agenda-skip-if~ instead.
   4806 
   4807 *** ~org-agenda-skip-entry-when-regexp-matches-in-subtree~ is obsolete
   4808 
   4809 Use ~org-agenda-skip-if~ instead.
   4810 
   4811 *** ~org-minutes-to-clocksum-string~ is obsolete
   4812 
   4813 Use ~org-duration-from-minutes~ instead.
   4814 
   4815 *** ~org-hh:mm-string-to-minutes~ is obsolete
   4816 
   4817 Use ~org-duration-to-minutes~ instead.
   4818 
   4819 *** ~org-duration-string-to-minutes~ is obsolete
   4820 
   4821 Use ~org-duration-to-minutes~ instead.
   4822 
   4823 *** ~org-gnus-nnimap-cached-article-number~ is removed.
   4824 
   4825 This function relied on ~nnimap-group-overview-filename~, which was
   4826 removed from Gnus circa September 2010.
   4827 
   4828 ** Removed options
   4829 
   4830 *** ~org-agenda-repeating-timestamp-show-all~ is removed.
   4831 
   4832 For an equivalent to a nil value, set ~org-agenda-show-future-repeats~
   4833 to nil and ~org-agenda-prefer-last-repeat~ to =t=.
   4834 
   4835 *** ~org-gnus-nnimap-query-article-no-from-file~ is removed.
   4836 
   4837 This variable has no effect, as it was relying on a function that was
   4838 removed from Gnus circa September 2010.
   4839 
   4840 *** ~org-usenet-links-prefer-google~ is obsolete.
   4841 
   4842 Use ~org-gnus-prefer-web-links~ instead.
   4843 
   4844 *** ~org-publish-sitemap-file-entry-format~ is deprecated
   4845 
   4846 One can provide new ~:sitemap-format-entry~ property for a function
   4847 equivalent to the removed format string.
   4848 
   4849 *** ~org-enable-table-editor~ is removed.
   4850 
   4851 Setting it to a nil value broke some other features (e.g., speed
   4852 keys).
   4853 
   4854 *** ~org-export-use-babel~ cannot be set to ~inline-only~
   4855 
   4856 The variable is now a boolean.
   4857 
   4858 *** ~org-texinfo-def-table-markup~ is obsolete
   4859 
   4860 Use ~org-texinfo-table-default-markup~ instead.
   4861 
   4862 ** New functions
   4863 
   4864 *** ~org-publish-find-property~
   4865 
   4866 This function can be used as a tool to format entries in a site-map,
   4867 in addition to ~org-publish-find-title~ and ~org-publish-find-date~.
   4868 
   4869 *** ~org-list-to-org~
   4870 
   4871 It is the reciprocal of ~org-list-to-lisp~, which see.
   4872 
   4873 *** ~org-agenda-set-restriction-lock-from-agenda~
   4874 
   4875 Call ~org-agenda-set-restriction-lock~ from the agenda.
   4876 
   4877 ** Miscellaneous
   4878 
   4879 *** The Library of Babel now on Worg
   4880 
   4881 The library-of-babel.org used to be accessible from the =doc/=
   4882 directory, distributed with Org’s core.  It is now accessible
   4883 from the Worg community-driven documentation [[https://orgmode.org/worg/library-of-babel.html][here]].
   4884 
   4885 If you want to contribute to it, please see [[https://orgmode.org/worg/org-contribute.html][how to contribute]].
   4886 
   4887 *** Allow multiple columns view
   4888 
   4889 Columns view is not limited to a single buffer anymore.
   4890 *** Org Attach obeys ~dired-dwim-target~
   4891 
   4892 When a Dired buffer is opened next to the Org document being edited,
   4893 the prompt for file to attach can start in the Dired buffer's
   4894 directory if `dired-dwim-target' in non-nil.
   4895 
   4896 *** ~org-fill-paragraph~ can now fill a whole region
   4897 *** More specific anniversary descriptions
   4898 
   4899 Anniversary descriptions (used in the agenda view, for instance)
   4900 include the point in time, when the anniversary appears.  This is,
   4901 in its most general form, just the date of the anniversary.  Or
   4902 more specific terms, like "today", "tomorrow" or "in n days" are
   4903 used to describe the time span.
   4904 
   4905 This feature allows to automatically change the description of an
   4906 anniversary, depending on if it occurs in the next few days or
   4907 far away in the future.
   4908 
   4909 *** Computed dates in tables appear as inactive time stamps
   4910 
   4911 *** Save point before opening a file with an unknown search option
   4912 
   4913 When following a file link with a search option (e.g., =::#custom-id=)
   4914 that doesn't exist in the target file, save position before raising an
   4915 error.  As a consequence, it is possible to jump back to the original
   4916 document with ~org-mark-ring-goto~ (default binding =C-c &=).
   4917 
   4918 *** ~org-get-heading~ accepts two more optional arguments
   4919 
   4920 See docstring for details.
   4921 
   4922 *** New option ~org-babel-uppercase-example-markers~
   4923 
   4924 This variable is a ~defcustom~ and replaces the variable
   4925 ~org-babel-capitalize-example-region-markers~, which is a ~defvar~ and
   4926 is now obsolete.
   4927 *** =INCLUDE= keywords in commented trees are now ignored.
   4928 *** Default value for ~org-texinfo-text-markup-alist~ changed.
   4929 
   4930 Now ~=...=~ markup uses ~@samp{}~ instead of ~@verb{}~.  You can use
   4931 ~@verb{}~ again by customizing the variable.
   4932 
   4933 *** Texinfo exports example blocks as ~@example~
   4934 *** Texinfo exports inline source blocks as ~@code{}~
   4935 *** Texinfo default table markup is ~@asis~
   4936 
   4937 It used to be ~@samp~ but ~@asis~ is neutral and, therefore, more
   4938 suitable as a default value.
   4939 
   4940 *** Texinfo default process includes ~--no-split~ option
   4941 *** New entities : ~\dollar~ and ~\USD~
   4942 *** Support for date style URLs in =org-protocol://open-source=
   4943 
   4944 URLs like =https://cool-blog.com/2017/05/20/cool-post/= are covered by
   4945 rewrite rules.
   4946 
   4947 *** Add (C) =COMMENT= support to ~org-structure-template-alist~
   4948 
   4949 * Version 9.0
   4950 
   4951 ** Incompatible changes
   4952 
   4953 *** Emacs 23 support has been dropped
   4954 
   4955 From now on, Org expects at least Emacs 24.3, although Emacs 24.4 or
   4956 above is suggested.
   4957 
   4958 *** XEmacs support has been dropped
   4959 
   4960 Incomplete compatibility layer with XEmacs has been removed.  If you
   4961 want to take over maintenance of this compatibility, please contact
   4962 our mailing list.
   4963 
   4964 *** New syntax for export blocks
   4965 
   4966 Export blocks are explicitly marked as such at the syntax level to
   4967 disambiguate their parsing from special blocks.  The new syntax is
   4968 
   4969 #+BEGIN_SRC org
   4970 ,#+BEGIN_EXPORT backend
   4971 ...
   4972 ,#+END_EXPORT
   4973 #+END_SRC
   4974 
   4975 instead of
   4976 
   4977 #+BEGIN_SRC org
   4978 ,#+BEGIN_backend
   4979 ...
   4980 ,#+END_backend
   4981 #+END_SRC
   4982 
   4983 As a consequence, =INCLUDE= keywords syntax is modified, e.g.,
   4984 
   4985 #+BEGIN_SRC org
   4986 ,#+INCLUDE: "file.org" HTML
   4987 #+END_SRC
   4988 
   4989 becomes
   4990 
   4991 #+BEGIN_SRC org
   4992 ,#+INCLUDE: "file.org" export html
   4993 #+END_SRC
   4994 
   4995 The following function repairs export blocks and =INCLUDE= keywords
   4996 using previous syntax:
   4997 
   4998 #+BEGIN_SRC emacs-lisp
   4999 (defun org-repair-export-blocks ()
   5000   "Repair export blocks and INCLUDE keywords in current buffer."
   5001   (interactive)
   5002   (when (eq major-mode 'org-mode)
   5003     (let ((case-fold-search t)
   5004           (back-end-re (regexp-opt
   5005                         '("HTML" "ASCII" "LATEX" "ODT" "MARKDOWN" "MD" "ORG"
   5006                           "MAN" "BEAMER" "TEXINFO" "GROFF" "KOMA-LETTER")
   5007                         t)))
   5008       (org-with-wide-buffer
   5009        (goto-char (point-min))
   5010        (let ((block-re (concat "^[ \t]*#\\+BEGIN_" back-end-re)))
   5011          (save-excursion
   5012            (while (re-search-forward block-re nil t)
   5013              (let ((element (save-match-data (org-element-at-point))))
   5014                (when (eq (org-element-type element) 'special-block)
   5015                  (save-excursion
   5016                    (goto-char (org-element-property :end element))
   5017                    (save-match-data (search-backward "_"))
   5018                    (forward-char)
   5019                    (insert "EXPORT")
   5020                    (delete-region (point) (line-end-position)))
   5021                  (replace-match "EXPORT \\1" nil nil nil 1))))))
   5022        (let ((include-re
   5023               (format "^[ \t]*#\\+INCLUDE: .*?%s[ \t]*$" back-end-re)))
   5024          (while (re-search-forward include-re nil t)
   5025            (let ((element (save-match-data (org-element-at-point))))
   5026              (when (and (eq (org-element-type element) 'keyword)
   5027                         (string= (org-element-property :key element) "INCLUDE"))
   5028                (replace-match "EXPORT \\1" nil nil nil 1)))))))))
   5029 #+END_SRC
   5030 
   5031 Moreover, ~:export-block~ keyword used in ~org-export-define-backend~ and
   5032 ~org-export-define-derived-backend~ is no longer used and needs to be
   5033 removed.
   5034 
   5035 *** Footnotes changes
   5036 
   5037 **** [1]-like constructs are not valid footnotes
   5038 
   5039 Using =[1]= as a footnote was already discouraged in the manual, since
   5040 it introduced too many false-positives in many Org documents.  These
   5041 constructs are now unsupported.
   5042 
   5043 If you used =[N]= in some of your documents, consider turning them into
   5044 =[fn:N]=.
   5045 
   5046 **** /Org Footnote/ library doesn't handle non-Org buffers
   5047 
   5048 Commands for footnotes in an Org document no longer try to do
   5049 something in non-Org ones.  If you need to have footnotes there,
   5050 consider using the =footnote.el= library, shipped with Emacs.
   5051 
   5052 In particular, ~org-footnote-tag-for-non-org-mode-files~ no longer
   5053 exists.
   5054 
   5055 *** ~org-file-apps~ no longer accepts S-expressions as commands
   5056 
   5057 The variable now accepts functions of two arguments instead of plain
   5058 S-expressions.  Replacing an S-expression with an appropriate function
   5059 is straightforward.  For example
   5060 
   5061 : ("pdf" . (foo))
   5062 
   5063 becomes
   5064 
   5065 : ("pdf" . (lambda (file link) (foo)))
   5066 
   5067 *** The ~{{{modification-time}}}~ macro can get time via =vc=
   5068 
   5069 The modification time will be determined via =vc.el= if the second
   5070 argument is non-nil.  See the manual for details.
   5071 
   5072 *** Preparation and completion functions in publishing projects change signature
   5073 
   5074 Preparation and completion functions are now called with an argument,
   5075 which is the project property list.  It used to be dynamically scoped
   5076 through the ~project-plist~ variable.
   5077 
   5078 *** Old Babel header properties are no longer supported
   5079 
   5080 Using header arguments as property names is no longer possible.  As
   5081 such, the following
   5082 
   5083 #+BEGIN_EXAMPLE
   5084 ,* Headline
   5085 :PROPERTIES:
   5086 :exports: code
   5087 :var: a=1 b=2
   5088 :var+: c=3
   5089 :END:
   5090 #+END_EXAMPLE
   5091 
   5092 should be written instead
   5093 
   5094 #+BEGIN_EXAMPLE
   5095 ,* Headline
   5096 :PROPERTIES:
   5097 :header-args: :exports code
   5098 :header-args+: :var a=1 b=2
   5099 :header-args+: :var c=3
   5100 :END:
   5101 #+END_EXAMPLE
   5102 
   5103 Please note that, however, old properties were defined at the source
   5104 block definition.  Current ones are defined where the block is called.
   5105 
   5106 ** New features
   5107 
   5108 *** ~org-eww~ has been moved into core
   5109 *** New org-protocol key=value syntax
   5110 
   5111 Org-protocol can now handle query-style parameters such as:
   5112 
   5113 #+begin_example
   5114 org-protocol://store-link?url=http:%2F%2Flocalhost%2Findex.html&title=The%20title
   5115 org-protocol://capture?template=x&title=Hello&body=World&url=http:%2F%2Fexample.com
   5116 #+end_example
   5117 
   5118 Old-style links such as
   5119 : org-protocol://store-link:/http:%2F%2Flocalhost%2Findex.html/The%20title
   5120 continue to be supported.
   5121 
   5122 If you have defined your own handler functions for
   5123 ~org-protocol-protocol-alist~, change them to accept either a property
   5124 list (for new-style links) or a string (for old-style links).  Use
   5125 ~org-protocol-parse-parameters~ to convert old-style links into property
   5126 lists.
   5127 
   5128 *** New Org linter library
   5129 
   5130 ~org-lint~ can check syntax and report common issues in Org documents.
   5131 
   5132 *** New option ~date-tree-last~ for ~org-agenda-insert-diary-strategy~
   5133 
   5134 When ~org-agenda-insert-diary-strategy~ is set to ~date-tree-last~, diary
   5135 entries are added to last in the date tree.
   5136 
   5137 *** New ~vbar~ entity
   5138 
   5139 ~\vbar~ or ~\vbar{}~ will be exported unconditionally as a =|=,
   5140 unlike to existing ~\vert~, which is expanded as ~&vert;~ when using
   5141 a HTML derived export back-end.
   5142 
   5143 *** Export
   5144 
   5145 **** New =#+latex_compiler= keyword to set LaTeX compiler.
   5146 
   5147 PDFLaTeX, XeLaTeX, and LuaLaTeX are supported.  See the manual for
   5148 details.
   5149 
   5150 **** New option ~org-export-with-broken-links~
   5151 
   5152 This option tells the export process how to behave when encountering
   5153 a broken internal link.  See its docstring for more information.
   5154 
   5155 **** Attributes support in custom language environments for LaTeX export
   5156 
   5157 Custom language environments for LaTeX export can now define the
   5158 string to be inserted during export, using attributes to indicate the
   5159 position of the elements. See variable ~org-latex-custom-lang-environments~
   5160 for more details.
   5161 
   5162 **** New Texinfo ~options~ attribute on special blocks
   5163 
   5164 Using ~:options~ as a Texinfo attribute, it is possible to add
   5165 information to custom environments.  See manual for details.
   5166 
   5167 **** New HTML ~id~ attributes on special, example and quote blocks
   5168 
   5169 If the block has a =#+NAME:= attribute assigned, then the HTML element
   5170 will have an ~id~ attribute with that name in the HTML export. This
   5171 enables one to create links to these elements in other places, e.g.,
   5172 ~<a href="#name">text</a>~.
   5173 
   5174 **** Listings with captions are now numbered in HTML export
   5175 
   5176 The class associated to the numbering is "listing-number".  If you
   5177 don't want these blocks to be numbered, as it was the case until now,
   5178 You may want to add ~.listing-number { display: none; }~ to the CSS
   5179 used.
   5180 
   5181 **** Line Numbering in SRC/EXAMPLE blocks support arbitrary start number
   5182 
   5183 The ~-n~ option to ~SRC~ and ~EXAMPLE~ blocks can now take a numeric
   5184 argument to specify the staring line number for the source or example
   5185 block.  The ~+n~ option can now take a numeric argument that will be
   5186 added to the last line number from the previous block as the starting
   5187 point for the SRC/EXAMPLE block.
   5188 
   5189 #+BEGIN_SRC org
   5190 ,#+BEGIN_SRC emacs-lisp -n 20
   5191 ;; this will export with line number 20
   5192 (message "This is line 21")
   5193 ,#+END_SRC
   5194 ,#+BEGIN_SRC emacs-lisp +n 10
   5195 ;; This will be listed as line 31
   5196 (message "This is line 32")
   5197 ,#+END_SRC
   5198 #+END_SRC
   5199 
   5200 **** Allow toggling center for images in LaTeX export
   5201 
   5202 With the global variable ~org-latex-images-centered~ or the local
   5203 attribute ~:center~ it is now possible to center an image in LaTeX
   5204 export.
   5205 
   5206 **** Default CSS class ~org-svg~ for SVG images in HTML export
   5207 
   5208 SVG images exported in HTML are now by default assigned a CSS class
   5209 ~org-svg~ if no CSS class is specified with the ~:class~ attribute. By
   5210 default, the CSS styling of class ~org-svg~ specifies an image width of
   5211 90\thinsp{}% of the container the image.
   5212 
   5213 **** Markdown footnote export customization
   5214 
   5215 Variables ~org-md-footnotes-section~ and ~org-md-footnote-format~
   5216 introduced for =ox-md.el=.  Both new variables define template strings
   5217 which can be used to customize the format of the exported footnotes
   5218 section and individual footnotes, respectively.
   5219 
   5220 *** Babel
   5221 
   5222 **** Blocks with coderefs labels can now be evaluated
   5223 
   5224 The labels are removed prior to evaluating the block.
   5225 
   5226 **** Support for Lua language
   5227 **** Support for SLY in Lisp blocks
   5228 
   5229 See ~org-babel-lisp-eval-fn~ to activate it.
   5230 
   5231 **** Support for Stan language
   5232 
   5233 New ob-stan.el library.
   5234 
   5235 Evaluating a Stan block can produce two different results.
   5236 
   5237 1. Dump the source code contents to a file.
   5238 
   5239    This file can then be used as a variable in other blocks, which
   5240    allows interfaces like RStan to use the model.
   5241 
   5242 2. Compile the contents to a model file.
   5243 
   5244    This provides access to the CmdStan interface.  To use this, set
   5245    ~org-babel-stan-cmdstan-directory~ and provide a ~:file~ argument
   5246    that does not end in ".stan".
   5247 
   5248 For more information and usage examples, visit
   5249 https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-stan.html
   5250 
   5251 **** Support for Oracle databases via ~sqlplus~
   5252 
   5253 =ob-sql= library supports running SQL blocks against an Oracle
   5254 database using ~sqlplus~.  Use with properties like this (all
   5255 mandatory):
   5256 
   5257 #+BEGIN_EXAMPLE
   5258 :engine oracle
   5259 :dbhost <host.com>
   5260 :dbport <1521>
   5261 :dbuser <username>
   5262 :database <database>
   5263 :dbpassword <secret>
   5264 #+END_EXAMPLE
   5265 
   5266 **** Improved support to Microsoft SQL Server via ~sqlcmd~
   5267 
   5268 =ob-sql= library removes support to the ~msosql~ engine which uses the
   5269 deprecated ~osql~ command line tool, and replaces it with ~mssql~
   5270 engine which uses the ~sqlcmd~ command line tool.  Use with properties
   5271 like this:
   5272 
   5273 #+BEGIN_EXAMPLE
   5274 :engine mssql
   5275 :dbhost <host.com>
   5276 :dbuser <username>
   5277 :dbpassword <secret>
   5278 :database <database>
   5279 #+END_EXAMPLE
   5280 
   5281 If you want to use the *trusted connection* feature, omit *both* the
   5282 =dbuser= and =dbpassword= properties and add =cmdline -E= to the properties.
   5283 
   5284 If your Emacs is running in a Cygwin environment, the =ob-sql= library
   5285 can pass the converted path to the =sqlcmd= tool.
   5286 
   5287 **** Improved support of header arguments for postgresql
   5288 
   5289 The postgresql engine in a sql code block now supports ~:dbport~ and
   5290 ~:dbpassword~ as header arguments.
   5291 
   5292 **** Support for additional plantuml output formats
   5293 
   5294 The support for output formats of [[https://plantuml.com/][plantuml]] has been extended to now
   5295 include:
   5296 
   5297 All Diagrams:
   5298 - png ::
   5299 - svg ::
   5300 - eps ::
   5301 - pdf ::
   5302 - vdx ::
   5303 - txt :: ASCII art
   5304 - utxt :: ASCII art using unicode characters
   5305 
   5306 Class Diagrams:
   5307 - xmi ::
   5308 - html ::
   5309 
   5310 State Diagrams:
   5311 - scxml ::
   5312 
   5313 The output formats are determined by the file extension specified
   5314 using the :file property, e.g.:
   5315 
   5316 #+begin_src plantuml :file diagram.png
   5317 @startuml
   5318 Alice -> Bob: Authentication Request
   5319 Bob --> Alice: Authentication Response
   5320 
   5321 Alice -> Bob: Another authentication Request
   5322 Alice <-- Bob: another authentication Response
   5323 @enduml
   5324 #+end_src
   5325 
   5326 Please note that *pdf* *does not work out of the box* and needs additional
   5327 setup in addition to plantuml.  See [[https://plantuml.com/pdf.html]] for
   5328 details and setup information.
   5329 
   5330 *** Rewrite of radio lists
   5331 
   5332 Radio lists, i.e, Org plain lists in foreign buffers, have been
   5333 rewritten to be on par with Radio tables.  You can use a large set of
   5334 parameters to control how a given list should be rendered.  See manual
   5335 for details.
   5336 
   5337 *** org-bbdb-anniversaries-future
   5338 
   5339 Used like ~org-bbdb-anniversaries~, it provides a few days warning for
   5340 upcoming anniversaries (default: 7 days).
   5341 
   5342 *** Clear non-repeated SCHEDULED upon repeating a task
   5343 
   5344 If the task is repeated, and therefore done at least one, scheduling
   5345 information is no longer relevant.  It is therefore removed.
   5346 
   5347 See [[git:481719fbd5751aaa9c672b762cb43aea8ee986b0][commit message]] for more information.
   5348 
   5349 *** Support for ISO week trees
   5350 
   5351 ISO week trees are an alternative date tree format that orders entries
   5352 by ISO week and not by month.
   5353 
   5354 For example:
   5355 
   5356 : * 2015
   5357 : ** 2015-W35
   5358 : ** 2015-W36
   5359 : *** 2015-08-31 Monday
   5360 
   5361 They are supported in org-capture via ~file+weektree~ and
   5362 ~file+weektree+prompt~ target specifications.
   5363 
   5364 *** Accept ~:indent~ parameter when capturing column view
   5365 
   5366 When defining a "columnview" dynamic block, it is now possible to add
   5367 an :indent parameter, much like the one in the clock table.
   5368 
   5369 On the other hand, stars no longer appear in an ITEM field.
   5370 
   5371 *** Columns view
   5372 
   5373 **** ~org-columns~ accepts a prefix argument
   5374 
   5375 When called with a prefix argument, ~org-columns~ apply to the whole
   5376 buffer unconditionally.
   5377 
   5378 **** New variable : ~org-agenda-view-columns-initially~
   5379 
   5380 The variable used to be a ~defvar~, it is now a ~defcustom~.
   5381 
   5382 **** Allow custom summaries
   5383 
   5384 It is now possible to add new summary types, or override those
   5385 provided by Org by customizing ~org-columns-summary-types~, which see.
   5386 
   5387 **** Allow multiple summaries for any property
   5388 
   5389 Columns can now summarize the same property using different summary
   5390 types.
   5391 
   5392 *** Preview LaTeX snippets in buffers not visiting files
   5393 *** New option ~org-attach-commit~
   5394 
   5395 When non-nil, commit attachments with git, assuming the document is in
   5396 a git repository.
   5397 
   5398 *** Allow conditional case-fold searches in ~org-occur~
   5399 
   5400 When set to ~smart~, the new variable ~org-occur-case-fold-search~ allows
   5401 to mimic =isearch.el=: if the regexp searched contains any upper case
   5402 character (or character class), the search is case sensitive.
   5403 Otherwise, it is case insensitive.
   5404 
   5405 *** More robust repeated =ox-latex= footnote handling
   5406 
   5407 Repeated footnotes are now numbered by referring to a label in the
   5408 first footnote.
   5409 
   5410 *** The ~org-block~ face is inherited by ~src-blocks~
   5411 
   5412 This works also when =org-src-fontify-natively= is non-nil.  It is also
   5413 possible to specify per-languages faces.  See =org-src-block-faces= and
   5414 the manual for details.
   5415 
   5416 *** Links are now customizable
   5417 
   5418 Links can now have custom colors, tooltips, keymaps, display behavior,
   5419 etc.  Links are now centralized in ~org-link-parameters~.
   5420 
   5421 ** New functions
   5422 
   5423 *** ~org-next-line-empty-p~
   5424 
   5425 It replaces the deprecated ~next~ argument to ~org-previous-line-empty-p~.
   5426 
   5427 *** ~org-show-children~
   5428 
   5429 It is a faster implementation of ~outline-show-children~.
   5430 
   5431 ** Removed functions
   5432 
   5433 *** ~org-agenda-filter-by-tag-refine~ has been removed.
   5434 
   5435 Use ~org-agenda-filter-by-tag~ instead.
   5436 
   5437 *** ~org-agenda-todayp~ is deprecated.
   5438 
   5439 Use ~org-agenda-today-p~ instead.
   5440 
   5441 *** ~org-babel-get-header~ is removed.
   5442 
   5443 Use ~org-babel--get-vars~ or ~assq~ instead, as applicable.
   5444 
   5445 *** ~org-babel-trim~ is deprecated.
   5446 
   5447 Use ~org-trim~ instead.
   5448 
   5449 *** ~org-element-remove-indentation~ is deprecated.
   5450 
   5451 Use ~org-remove-indentation~ instead.
   5452 
   5453 *** ~org-image-file-name-regexp~ is deprecated
   5454 
   5455 Use ~image-file-name-regexp~ instead.
   5456 The never-used-in-core ~extensions~ argument has been dropped.
   5457 
   5458 *** ~org-list-parse-list~ is deprecated
   5459 
   5460 Use ~org-list-to-lisp~ instead.
   5461 
   5462 *** ~org-on-heading-p~ is deprecated
   5463 
   5464 A comment to this effect was in the source code since 7.8.03, but
   5465 now a byte-compiler warning will be generated as well.
   5466 
   5467 *** ~org-table-p~ is deprecated
   5468 
   5469 Use ~org-at-table-p~ instead.
   5470 
   5471 *** ~org-table-recognize-table.el~ is deprecated
   5472 
   5473 It was not called by any org code since 2010.
   5474 
   5475 *** Various reimplementations of cl-lib functions are deprecated
   5476 
   5477 The affected functions are:
   5478 - ~org-count~
   5479 - ~org-remove-if~
   5480 - ~org-remove-if-not~
   5481 - ~org-reduce~
   5482 - ~org-every~
   5483 - ~org-some~
   5484 
   5485 Additionally, ~org-sublist~ is deprecated in favor of ~cl-subseq~.  Note
   5486 the differences in indexing conventions: ~org-sublist~ is 1-based and
   5487 end-inclusive; ~cl-subseq~ is 0-based and end-exclusive.
   5488 
   5489 ** Removed options
   5490 
   5491 *** Remove all options related to ~ido~ or ~iswitchb~
   5492 
   5493 This includes ~org-completion-use-iswitchb~ and ~org-completion-use-ido~.
   5494 Instead Org uses regular functions, e.g., ~completion-read~ so as to
   5495 let those libraries operate.
   5496 
   5497 *** Remove ~org-list-empty-line-terminates-plain-lists~
   5498 
   5499 Two consecutive blank lines always terminate all levels of current
   5500 plain list.
   5501 
   5502 *** ~fixltx2e~ is removed from ~org-latex-default-packages-alist~
   5503 
   5504 fixltx2e is obsolete, see LaTeX News 22.
   5505 
   5506 ** Miscellaneous
   5507 *** Add Icelandic smart quotes
   5508 *** Allow multiple receiver locations in radio tables and lists
   5509 *** Allow angular links within link descriptions
   5510 
   5511 It is now allowed to write, e.g.,
   5512 ~[[http:orgmode.org][<file:unicorn.png>]]~ as an equivalent to
   5513 ~[[http:orgmode.org][file:unicorn.png]]~.  The advantage of the former
   5514 is that spaces are allowed within the path.
   5515 
   5516 *** Beamer export back-ends uses ~org-latex-prefer-user-labels~
   5517 *** ~:preparation-function~ called earlier during publishing
   5518 
   5519 Functions in this list are called before any file is associated to the
   5520 current project.  Thus, they can be used to generate to be published
   5521 Org files.
   5522 
   5523 *** Function ~org-remove-indentation~ changes.
   5524 
   5525 The new algorithm doesn't remove TAB characters not used for
   5526 indentation.
   5527 
   5528 *** Secure placeholders in capture templates
   5529 
   5530 Placeholders in capture templates are no longer expanded recursively.
   5531 However, ~%(...)~ constructs are expanded very late, so you can fill
   5532 the contents of the S-exp with the replacement text of non-interactive
   5533 placeholders.  As before, interactive ones are still expanded as the
   5534 very last step, so the previous statement doesn't apply to them.
   5535 
   5536 Note that only ~%(...)~ placeholders initially present in the
   5537 template, or introduced using a file placeholder, i.e., ~%[...]~ are
   5538 expanded.  This prevents evaluating potentially malicious code when
   5539 another placeholder, e.g., ~%i~ expands to a S-exp.
   5540 
   5541 *** Links stored by ~org-gnus-store-link~ in nnir groups
   5542 
   5543 Since gnus nnir groups are temporary, ~org-gnus-store-link~ now refers
   5544 to the article's original group.
   5545 
   5546 *** ~org-babel-check-confirm-evaluate~ is now a function instead of a macro
   5547 
   5548 The calling convention has changed.
   5549 
   5550 *** HTML export table row customization changes
   5551 
   5552 Variable ~org-html-table-row-tags~ has been split into
   5553 ~org-html-table-row-open-tag~ and ~org-html-table-row-close-tag~.
   5554 Both new variables can be either a string or a function which will be
   5555 called with 6 parameters.
   5556 
   5557 *** =ITEM= special property returns headline without stars
   5558 *** Rename ~org-insert-columns-dblock~ into ~org-columns-insert-dblock~
   5559 
   5560 The previous name is, for the time being, kept as an obsolete alias.
   5561 
   5562 *** ~org-trim~ can preserve leading indentation.
   5563 
   5564 When setting a new optional argument to a non-nil value, ~org-trim~
   5565 preserves leading indentation while removing blank lines at the
   5566 beginning of the string.  The behavior is identical for white space at
   5567 the end of the string.
   5568 
   5569 *** Function ~org-info-export~ changes.
   5570 
   5571 HTML links created from certain info links now point to =gnu.org= URL's rather
   5572 than just to local files. For example info links such as =info:emacs#List
   5573 Buffers= used to be converted to HTML links like this:
   5574 
   5575 : <a href="emacs.html#List-Buffers">emacs#List Buffers</a>
   5576 
   5577 where local file =emacs.html= is referenced.
   5578 For most folks this file does not exist.
   5579 Thus the new behavior is to generate this HTML link instead:
   5580 
   5581 : <a href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#List-Buffers">emacs#List Buffers</a>
   5582 
   5583 All emacs related info links are similarly translated plus few other
   5584 =gnu.org= manuals.
   5585 
   5586 *** Repeaters with a ~++~ interval and a time can be shifted to later today
   5587 
   5588 Previously, if a recurring task had a timestamp of
   5589 ~<2016-01-01 Fri 20:00 ++1d>~ and was completed on =2016-01-02= at
   5590 =08:00=, the task would skip =2016-01-02= and would be rescheduled for
   5591 =2016-01-03=.  Timestamps with ~++~ cookies and a specific time will
   5592 now shift to the first possible future occurrence, even if the
   5593 occurrence is later the same day the task is completed.  (Timestamps
   5594 already in the future are still shifted one time further into the
   5595 future.)
   5596 
   5597 *** ~org-mobile-action-alist~ is now a defconst
   5598 
   5599 It used to be a defcustom, with a warning that it shouldn't be
   5600 modified anyway.
   5601 
   5602 *** ~file+emacs~ and ~file+sys~ link types are deprecated
   5603 
   5604 They are still supported in Org 9.0 but will eventually be removed in
   5605 a later release.  Use ~file~ link type along with universal arguments
   5606 to force opening it in either Emacs or with system application.
   5607 
   5608 *** New defcustom ~org-babel-J-command~ stores the j command
   5609 *** New defalias ~org-babel-execute:j~
   5610 
   5611 Allows J source blocks be indicated by letter j.  Previously the
   5612 indication letter was solely J.
   5613 
   5614 *** ~org-open-line~ ignores tables at the very beginning of the buffer
   5615 
   5616 When ~org-special-ctrl-o~ is non-nil, it is impractical to create
   5617 a blank line above a table at the beginning of the document. Now, as
   5618 a special case, ~org-open-line~ behaves normally in this situation.
   5619 
   5620 *** ~org-babel-hash-show-time~ is now customizable
   5621 
   5622 The experimental variable used to be more or less confidential, as
   5623 a ~defvar~.
   5624 
   5625 *** New ~:format~ property to parsed links
   5626 
   5627 It defines the format of the original link.  Possible values are:
   5628 ~plain~, ~bracket~ and ~angle~.
   5629 
   5630 * Version 8.3
   5631 
   5632 ** Incompatible changes
   5633 
   5634 *** Properties drawers syntax changes
   5635 
   5636 Properties drawers are now required to be located right after a
   5637 headline and its planning line, when applicable.
   5638 
   5639 It will break some documents as TODO states changes were sometimes
   5640 logged before the property drawer.
   5641 
   5642 The following function will repair them:
   5643 
   5644 #+BEGIN_SRC emacs-lisp
   5645 (defun org-repair-property-drawers ()
   5646   "Fix properties drawers in current buffer.
   5647 Ignore non Org buffers."
   5648   (when (eq major-mode 'org-mode)
   5649     (org-with-wide-buffer
   5650      (goto-char (point-min))
   5651      (let ((case-fold-search t)
   5652            (inline-re (and (featurep 'org-inlinetask)
   5653                            (concat (org-inlinetask-outline-regexp)
   5654                                    "END[ \t]*$"))))
   5655        (org-map-entries
   5656         (lambda ()
   5657           (unless (and inline-re (org-looking-at-p inline-re))
   5658             (save-excursion
   5659               (let ((end (save-excursion (outline-next-heading) (point))))
   5660                 (forward-line)
   5661                 (when (org-looking-at-p org-planning-line-re) (forward-line))
   5662                 (when (and (< (point) end)
   5663                            (not (org-looking-at-p org-property-drawer-re))
   5664                            (save-excursion
   5665                              (and (re-search-forward org-property-drawer-re end t)
   5666                                   (eq (org-element-type
   5667                                        (save-match-data (org-element-at-point)))
   5668                                       'drawer))))
   5669                   (insert (delete-and-extract-region
   5670                            (match-beginning 0)
   5671                            (min (1+ (match-end 0)) end)))
   5672                   (unless (bolp) (insert "\n"))))))))))))
   5673 #+END_SRC
   5674 
   5675 *** Using "COMMENT" is now equivalent to commenting with "#"
   5676 
   5677 If you used "COMMENT" in headlines to prevent a subtree from being
   5678 exported, you can still do it but all information within the subtree
   5679 is now commented out, i.e. no #+OPTIONS line will be parsed or taken
   5680 into account when exporting.
   5681 
   5682 If you want to exclude a headline from export while using its contents
   5683 for setting options, use =:noexport:= (see =org-export-exclude-tags=.)
   5684 
   5685 *** =#+CATEGORY= keywords no longer apply partially to document
   5686 
   5687 It was possible to use several such keywords and have them apply to
   5688 the text below until the next one, but strongly deprecated since Org
   5689 5.14 (2008).
   5690 
   5691 =#+CATEGORY= keywords are now global to the document.  You can use node
   5692 properties to set category for a subtree, e.g.,
   5693 
   5694 #+BEGIN_SRC org
   5695 ,* Headline
   5696    :PROPERTIES:
   5697    :CATEGORY: some category
   5698    :END:
   5699 #+END_SRC
   5700 
   5701 *** New variable to control visibility when revealing a location
   5702 
   5703 ~org-show-following-heading~, ~org-show-siblings~, ~org-show-entry-below~
   5704 and ~org-show-hierarchy-above~ no longer exist.  Instead, visibility is
   5705 controlled through a single variable: ~org-show-context-detail~, which
   5706 see.
   5707 
   5708 *** Replace disputed keys again when reading a date
   5709 
   5710 ~org-replace-disputed-keys~ has been ignored when reading date since
   5711 version 8.1, but the former behavior is restored again.
   5712 
   5713 Keybinding for reading date can be customized with a new variable
   5714 ~org-read-date-minibuffer-local-map~.
   5715 
   5716 *** No default title is provided when =TITLE= keyword is missing
   5717 
   5718 Skipping =TITLE= keyword no longer provides the current file name, or
   5719 buffer name, as the title.  Instead, simply ignore the title.
   5720 
   5721 *** Default bindings of =C-c C-n= and =C-c C-p= changed
   5722 
   5723 The key sequences =C-c C-n= and =C-c C-p= are now bound to
   5724 ~org-next-visible-heading~ and ~org-previous-visible-heading~
   5725 respectively, rather than the =outline-mode= versions of these
   5726 functions.  The Org version of these functions skips over inline tasks
   5727 (and even-level headlines when ~org-odd-levels-only~ is set).
   5728 
   5729 *** ~org-element-context~ no longer return objects in keywords
   5730 
   5731 ~org-element-context~ used to return objects on some keywords, i.e.,
   5732 =TITLE=, =DATE= and =AUTHOR=.  It now returns only the keyword.
   5733 
   5734 *** ~org-timer-default-timer~ type changed from number to string
   5735 
   5736 If you have, in your configuration, something like =(setq
   5737 org-timer-default-timer 10)= replace it with =(setq
   5738 org-timer-default-timer "10")=.
   5739 
   5740 *** Functions signature changes
   5741 
   5742 The following functions require an additional argument.  See their
   5743 docstring for more information.
   5744 
   5745 - ~org-export-collect-footnote-definitions~
   5746 - ~org-html-format-headline-function~
   5747 - ~org-html-format-inlinetask-function~
   5748 - ~org-latex-format-headline-function~
   5749 - ~org-latex-format-inlinetask-function~
   5750 - ~org-link-search~
   5751 
   5752 ** New features
   5753 
   5754 *** Default lexical evaluation of emacs-lisp source blocks
   5755 
   5756 Emacs-lisp source blocks in Babel are now evaluated using lexical
   5757 scoping.  There is a new header to control this behavior.
   5758 
   5759 The default results in an eval with lexical scoping.
   5760 :lexical yes
   5761 
   5762 This turns lexical scoping off in the eval (the former behavior).
   5763 :lexical no
   5764 
   5765 This uses the lexical environment with x=42 in the eval.
   5766 :lexical '((x . 42))
   5767 
   5768 *** Behavior of ~org-return~ changed
   5769 
   5770 If point is before or after the headline title, insert a new line
   5771 without changing the headline.
   5772 
   5773 *** Hierarchies of tags
   5774 
   5775 The functionality of nesting tags in hierarchies is added to Org mode.
   5776 This is the generalization of what was previously called "Tag groups"
   5777 in the manual.  That term is now changed to "Tag hierarchy".
   5778 
   5779 The following in-buffer definition:
   5780 
   5781 #+BEGIN_SRC org
   5782   ,#+TAGS: [ Group : SubOne SubTwo ]
   5783   ,#+TAGS: [ SubOne : SubOne1 SubOne2 ]
   5784   ,#+TAGS: [ SubTwo : SubTwo1 SubTwo2 ]
   5785 #+END_SRC
   5786 
   5787 Should be seen as the following tree of tags:
   5788 
   5789 - Group
   5790   - SubOne
   5791     - SubOne1
   5792     - SubOne2
   5793   - SubTwo
   5794     - SubTwo1
   5795     - SubTwo2
   5796 
   5797 Searching for "Group" should return all tags defined above.  Filtering
   5798 on SubOne filters also it's sub-tags.  Etc.
   5799 
   5800 There is no limit on the depth for the tag hierarchy.
   5801 
   5802 *** Additional syntax for non-unique grouptags
   5803 
   5804 Additional syntax is defined for grouptags if the tags in the group
   5805 don't have to be distinct on a heading.
   5806 
   5807 Grouptags had to previously be defined with { }.  This syntax is
   5808 already used for exclusive tags and Grouptags need their own,
   5809 non-exclusive syntax.  This behavior is achieved with [ ].  Note: { }
   5810 can still be used also for Grouptags but then only one of the given
   5811 tags can be used on the headline at the same time.  Example:
   5812 
   5813 [ group : sub1 sub2 ]
   5814 
   5815 #+BEGIN_SRC org
   5816 ,* Test                                                            :sub1:sub2:
   5817 #+END_SRC
   5818 
   5819 This is a more general case than the already existing syntax for
   5820 grouptags; { }.
   5821 
   5822 *** Define regular expression patterns as tags
   5823 
   5824 Tags can be defined as grouptags with regular expressions as
   5825 "sub-tags".
   5826 
   5827 The regular expressions in the group must be marked up within { }.
   5828 Example use:
   5829 
   5830 : #+TAGS: [ Project : {P@.+} ]
   5831 
   5832 Searching for the tag Project will now list all tags also including
   5833 regular expression matches for P@.+.  This is good for example for
   5834 projects tagged with a common identifier, i.e. P@2014_OrgTags.
   5835 
   5836 *** Filtering in the agenda on grouptags (Tag hierarchies)
   5837 
   5838 Filtering in the agenda on grouptags filters all of the related tags.
   5839 Except if a filter is applied with a (double) prefix-argument.
   5840 
   5841 Filtering in the agenda on subcategories does not filter the "above"
   5842 levels anymore.
   5843 
   5844 If a grouptag contains a regular expression the regular expression
   5845 is also used as a filter.
   5846 
   5847 *** Minor refactoring of ~org-agenda-filter-by-tag~
   5848 
   5849 Now uses the argument ARG and optional argument exclude instead of
   5850 strip and narrow.  ARG because the argument has multiple purposes and
   5851 makes more sense than strip now.  The term "narrowing" is changed to
   5852 exclude.
   5853 
   5854 The main purpose is for the function to make more logical sense when
   5855 filtering on tags now when tags can be structured in hierarchies.
   5856 
   5857 *** Babel: support for sed scripts
   5858 
   5859 Thanks to Bjarte Johansen for this feature.
   5860 
   5861 *** Babel: support for Processing language
   5862 
   5863 New ob-processing.el library.
   5864 
   5865 This library implements necessary functions for implementing editing
   5866 of Processing code blocks, viewing the resulting sketches in an
   5867 external viewer, and HTML export of the sketches.
   5868 
   5869 Check the documentation for more details.
   5870 
   5871 Thanks to Jarmo Hurri for this feature.
   5872 
   5873 *** New behavior for ~org-toggle-latex-fragment~
   5874 
   5875 The new behavior is the following:
   5876 
   5877 - With a double prefix argument or with a single prefix argument when
   5878   point is before the first headline, toggle overlays in the whole
   5879   buffer;
   5880 
   5881 - With a single prefix argument, toggle overlays in the current
   5882   subtree;
   5883 
   5884 - On latex code, toggle overlay at point;
   5885 
   5886 - Otherwise, toggle overlays in the current section.
   5887 
   5888 *** Additional markup with =#+INCLUDE= keyword
   5889 
   5890 The content of the included file can now be optionally marked up, for
   5891 instance as HTML.  See the documentation for details.
   5892 
   5893 *** File links with =#+INCLUDE= keyword
   5894 
   5895 Objects can be extracted via =#+INCLUDE= using file links.  It is
   5896 possible to include only the contents of the object.  See manual for
   5897 more information.
   5898 
   5899 *** Drawers do not need anymore to be referenced in =#+DRAWERS=
   5900 
   5901 One can use a drawer without listing it in the =#+DRAWERS= keyword,
   5902 which is now obsolete.  As a consequence, this change also deprecates
   5903 ~org-drawers~ variable.
   5904 
   5905 *** ~org-edit-special~ can edit export blocks
   5906 
   5907 Using C-c ' on an export block now opens a sub-editing buffer.  Major
   5908 mode in that buffer is determined by export backend name (e.g.,
   5909 "latex" \to "latex-mode").  You can define exceptions to this rule by
   5910 configuring ~org-src-lang-modes~, which see.
   5911 
   5912 *** Additional =:hline= processing to ob-shell
   5913 
   5914 If the argument =:hlines yes= is present in a babel call, an optional
   5915 argument =:hlines-string= can be used to define a string to use as a
   5916 representation for the lisp symbol ='hline= in the shell program.  The
   5917 default is =hline=.
   5918 
   5919 *** Markdown export supports switches in source blocks
   5920 
   5921 For example, it is now possible to number lines using the =-n= switch in
   5922 a source block.
   5923 
   5924 *** New option in ASCII export
   5925 
   5926 Plain lists can have an extra margin by setting ~org-ascii-list-margin~
   5927 variable to an appropriate integer.
   5928 
   5929 *** New blocks in ASCII export
   5930 
   5931 ASCII export now supports =#+BEGIN_JUSTIFYRIGHT= and =#+BEGIN_JUSTIFYLEFT=
   5932 blocks.  See documentation for details.
   5933 
   5934 *** More back-end specific publishing options
   5935 
   5936 The number of publishing options specific to each back-end has been
   5937 increased.  See manual for details.
   5938 
   5939 *** Export inline source blocks
   5940 
   5941 Inline source code was used to be removed upon exporting.  They are
   5942 now handled as standard code blocks, i.e., the source code can appear
   5943 in the output, depending on the parameters.
   5944 
   5945 *** Extend ~org-export-first-sibling-p~ and ~org-export-last-sibling-p~
   5946 
   5947 These functions now support any element or object, not only headlines.
   5948 
   5949 *** New function: ~org-export-table-row-in-header-p~
   5950 
   5951 *** New function: ~org-export-get-reference~
   5952 
   5953 *** New function: ~org-element-lineage~
   5954 
   5955 This function deprecates ~org-export-get-genealogy~.  It also provides
   5956 more features.  See docstring for details.
   5957 
   5958 *** New function: ~org-element-copy~
   5959 
   5960 *** New filter: ~org-export-filter-body-functions~
   5961 
   5962 Functions in this filter are applied on the body of the exported
   5963 document, before wrapping it within the template.
   5964 
   5965 *** New :environment parameter when exporting example blocks to LaTeX
   5966 
   5967 : #+ATTR_LATEX: :environment myverbatim
   5968 : #+BEGIN_EXAMPLE
   5969 : This sentence is false.
   5970 : #+END_EXAMPLE
   5971 
   5972 will be exported using =@samp(myverbatim)= instead of =@samp(verbatim)=.
   5973 
   5974 *** Various improvements on radio tables
   5975 
   5976 Radio tables feature now relies on Org's export framework ("ox.el").
   5977 ~:no-escape~ parameter no longer exists, but additional global
   5978 parameters are now supported: ~:raw~, ~:backend~.  Moreover, there are new
   5979 parameters specific to some pre-defined translators, e.g.,
   5980 ~:environment~ and ~:booktabs~ for ~orgtbl-to-latex~.  See translators
   5981 docstrings (including ~orgtbl-to-generic~) for details.
   5982 
   5983 *** Non-floating minted listings in LaTeX export
   5984 
   5985 It is not possible to specify =#+attr_latex: :float nil= in conjunction
   5986 with source blocks exported by the minted package.
   5987 
   5988 *** Field formulas can now create columns as needed
   5989 
   5990 Previously, evaluating formulas that referenced out-of-bounds columns
   5991 would throw an error. A new variable ~org-table-formula-create-columns~
   5992 was added to adjust this behavior. It is now possible to silently add
   5993 new columns, to do so with a warning or to explicitly ask the user
   5994 each time.
   5995 
   5996 *** ASCII plot
   5997 
   5998 Ability to plot values in a column through ASCII-art bars.  See manual
   5999 for details.
   6000 
   6001 *** New hook: ~org-archive-hook~
   6002 
   6003 This hook is called after successfully archiving a subtree, with point
   6004 on the original subtree, not yet deleted.
   6005 
   6006 *** New option: ~org-attach-archive-delete~
   6007 
   6008 When non-nil, attachments from archived subtrees are removed.
   6009 
   6010 *** New option: ~org-latex-caption-above~
   6011 
   6012 This variable generalizes ~org-latex-table-caption-above~, which is now
   6013 deprecated.  In addition to tables, it applies to source blocks,
   6014 special blocks and images.  See docstring for more information.
   6015 
   6016 *** New option: ~org-latex-prefer-user-labels~
   6017 
   6018 See the docstring for more information.
   6019 
   6020 *** Export unnumbered headlines
   6021 
   6022 Headlines, for which the property ~UNNUMBERED~ is non-nil, are now
   6023 exported without section numbers irrespective of their levels.  The
   6024 property is inherited by children.
   6025 
   6026 *** Tables can be sorted with an arbitrary function
   6027 
   6028 It is now possible to specify a function, both programmatically,
   6029 through a new optional argument, and interactively with ~f~ or ~F~ keys,
   6030 to sort a table.
   6031 
   6032 *** Table of contents can be local to a section
   6033 
   6034 The ~TOC~ keywords now accepts an optional ~local~ parameter.  See manual
   6035 for details.
   6036 
   6037 *** Countdown timers can now be paused
   6038 
   6039 ~org-timer-pause-time~ now pauses and restarts both relative and
   6040 countdown timers.
   6041 
   6042 *** New option ~only-window~ for ~org-agenda-window-setup~
   6043 
   6044 When ~org-agenda-window-setup~ is set to ~only-window~, the agenda is
   6045 displayed as the sole window of the current frame.
   6046 
   6047 *** ~{{{date}}}~ macro supports optional formatting argument
   6048 
   6049 It is now possible to supply and optional formatting argument to
   6050 ~{{{date}}}~. See manual for details.
   6051 
   6052 *** ~{{{property}}}~ macro supports optional search argument
   6053 
   6054 It is now possible to supply an optional search option to
   6055 ~{{{property}}}~ in order to retrieve remote properties optional.  See
   6056 manual for details.
   6057 
   6058 *** New option ~org-export-with-title~
   6059 
   6060 It is possible to suppress the title insertion with ~#+OPTIONS:
   6061 title:nil~ or globally using the variable ~org-export-with-title~.
   6062 
   6063 *** New entities family: "\_ "
   6064 
   6065 "\_ " are used to insert up to 20 contiguous spaces in various
   6066 back-ends.  In particular, this family can be used to introduce
   6067 leading spaces within table cells.
   6068 
   6069 *** New MathJax configuration options
   6070 
   6071 Org uses the MathJax CDN by default.  See the manual and the docstring
   6072 of ~org-html-mathjax-options~ for details.
   6073 
   6074 *** New behavior in `org-export-options-alist'
   6075 
   6076 When defining a back-end, it is now possible to specify to give
   6077 `parse' behavior on a keyword.  It is equivalent to call
   6078 `org-element-parse-secondary-string' on the value.
   6079 
   6080 However, parsed =KEYWORD= is automatically associated to an
   6081 =:EXPORT_KEYWORD:= property, which can be used to override the keyword
   6082 value during a subtree export.  Moreover, macros are expanded in such
   6083 keywords and properties.
   6084 
   6085 *** Viewport support in html export
   6086 
   6087 Viewport for mobile-optimized website is now automatically inserted
   6088 when exporting to html.  See ~org-html-viewport~ for details.
   6089 
   6090 *** New ~#+SUBTITLE~ export keyword
   6091 
   6092 Org can typeset a subtitle in some export backends.  See the manual
   6093 for details.
   6094 
   6095 *** Remotely edit a footnote definition
   6096 
   6097 Calling ~org-edit-footnote-reference~ (C-c ') on a footnote reference
   6098 allows to edit its definition, as long as it is not anonymous, in a
   6099 dedicated buffer.  It works even if buffer is currently narrowed.
   6100 
   6101 *** New function ~org-delete-indentation~ bound to ~M-^~
   6102 
   6103 Work as ~delete-indentation~ unless at heading, in which case text is
   6104 added to headline text.
   6105 
   6106 *** Support for images in Texinfo export
   6107 
   6108 ~Texinfo~ back-end now handles images.  See the manual for details.
   6109 
   6110 *** Support for captions in Texinfo export
   6111 
   6112 Tables and source blocks can now have captions.  Additionally, lists
   6113 of tables and lists of listings can be inserted in the document with
   6114 =#+TOC= keyword.
   6115 
   6116 *** Countdown timer support hh:mm:ss format
   6117 
   6118 In addition to setting countdown timers in minutes, they can also be
   6119 set using the hh:mm:ss format.
   6120 
   6121 *** Extend ~org-clone-subtree-with-time-shift~
   6122 
   6123 ~org-clone-subtree-with-time-shift~ now accepts 0 as an argument for the
   6124 number of clones, which removes the repeater from the original subtree
   6125 and creates one shifted, repeating clone.
   6126 
   6127 *** New time block for clock tables: ~untilnow~
   6128 
   6129 It encompasses all past closed clocks.
   6130 
   6131 *** Support for the ~polyglossia~ LaTeX package
   6132 
   6133 See the docstring of ~org-latex-classes~ and
   6134 ~org-latex-guess-polyglossia-language~ for details.
   6135 
   6136 *** None-floating tables, graphics and blocks can have captions
   6137 
   6138 *** `org-insert-heading' can be forced to insert top-level headline
   6139 
   6140 ** Removed functions
   6141 
   6142 *** Removed function ~org-translate-time~
   6143 
   6144 Use ~org-timestamp-translate~ instead.
   6145 
   6146 *** Removed function ~org-beamer-insert-options-template~
   6147 
   6148 This function inserted a Beamer specific template at point or in
   6149 current subtree.  Use ~org-export-insert-default-template~ instead, as
   6150 it provides more features and covers all export back-ends.  It is also
   6151 accessible from the export dispatcher.
   6152 
   6153 *** Removed function ~org-timer-cancel-timer~
   6154 
   6155 ~org-timer-stop~ now stops both relative and countdown timers.
   6156 
   6157 *** Removed function ~org-export-solidify-link-text~
   6158 
   6159 This function, being non-bijective, introduced bug in internal
   6160 references.  Use ~org-export-get-reference~ instead.
   6161 
   6162 *** Removed function ~org-end-of-meta-data-and-drawers~
   6163 
   6164 The function is superseded by ~org-end-of-meta-data~, called with an
   6165 optional argument.
   6166 
   6167 *** Removed functions ~org-table-colgroup-line-p~, ~org-table-cookie-line-p~
   6168 
   6169 These functions were left-over from pre 8.0 era.  They are not correct
   6170 anymore.  Since they are not needed, they have no replacement.
   6171 
   6172 ** Removed options
   6173 
   6174 *** ~org-list-empty-line-terminates-plain-lists~ is deprecated
   6175 
   6176 It will be kept in code base until next release, for backward
   6177 compatibility.
   6178 
   6179 If you need to separate consecutive lists with blank lines, always use
   6180 two of them, as if this option was nil (default value).
   6181 
   6182 *** ~org-export-with-creator~ is a boolean
   6183 
   6184 Special ~comment~ value is no longer allowed.  It is possible to use a
   6185 body filter to add comments about the creator at the end of the
   6186 document instead.
   6187 
   6188 *** Removed option =org-html-use-unicode-chars=
   6189 
   6190 Setting this to non-nil was problematic as it converted characters
   6191 everywhere in the buffer, possibly corrupting URLs.
   6192 
   6193 *** Removed option =org-babel-sh-command=
   6194 
   6195 This undocumented option defaulted to the value of =shell-file-name= at
   6196 the time of loading =ob-shell=.  The new behavior is to use the value
   6197 of =shell-file-name= directly when the shell language is =shell=.  To chose
   6198 a different shell, either customize =shell-file-name= or bind this
   6199 variable locally.
   6200 
   6201 *** Removed option =org-babel-sh-var-quote-fmt=
   6202 
   6203 This undocumented option was supposed to provide different quoting
   6204 styles when changing the shell type.  Changing the shell type can now
   6205 be done directly from the source block and the quoting style has to be
   6206 compatible across all shells, so a customization doesn't make sense
   6207 anymore.  The chosen hard coded quoting style conforms to POSIX.
   6208 
   6209 *** Removed option ~org-insert-labeled-timestamps-at-point~
   6210 
   6211 Setting this option to anything else that the default value (nil)
   6212 would create invalid planning info.  This dangerous option is now
   6213 removed.
   6214 
   6215 *** Removed option ~org-koma-letter-use-title~
   6216 
   6217 Use org-export-with-title instead.  See also below.
   6218 
   6219 *** Removed option ~org-entities-ascii-explanatory~
   6220 
   6221 This variable has no effect since Org 8.0.
   6222 
   6223 *** Removed option ~org-table-error-on-row-ref-crossing-hline~
   6224 
   6225 This variable has no effect since August 2009.
   6226 
   6227 *** Removed MathML-related options from ~org-html-mathjax-options~
   6228 
   6229 MathJax automatically chooses the best display technology based on the
   6230 end-users browser.  You may force initial usage of MathML via
   6231 ~org-html-mathjax-template~ or by setting the ~path~ property of
   6232 ~org-html-mathjax-options~.
   6233 
   6234 *** Removed comment-related filters
   6235 
   6236 ~org-export-filter-comment-functions~ and
   6237 ~org-export-filter-comment-block-functions~ variables do not exist
   6238 anymore.
   6239 
   6240 ** Miscellaneous
   6241 
   6242 *** Strip all meta data from ITEM special property
   6243 
   6244 ITEM special property does not contain TODO, priority or tags anymore.
   6245 
   6246 *** File names in links accept are now compatible with URI syntax
   6247 
   6248 Absolute file names can now start with =///= in addition to =/=. E.g.,
   6249 =[[file:///home/me/unicorn.jpg]]=.
   6250 
   6251 *** Footnotes in included files are now local to the file
   6252 
   6253 As a consequence, it is possible to include multiple Org files with
   6254 footnotes in a master document without being concerned about footnote
   6255 labels colliding.
   6256 
   6257 *** Mailto links now use regular URI syntax
   6258 
   6259 This change deprecates old Org syntax for mailto links:
   6260 =mailto:user@domain::Subject=.
   6261 
   6262 *** =QUOTE= keywords do not exist anymore
   6263 
   6264 =QUOTE= keywords have been deprecated since Org 8.2.
   6265 
   6266 *** Select tests to perform with the build system
   6267 
   6268 The build system has been enhanced to allow test selection with a
   6269 regular expression by defining =BTEST_RE= during the test invocation.
   6270 This is especially useful during bisection to find just when a
   6271 particular test failure was introduced.
   6272 
   6273 *** Exact heading search for external links ignore spaces and cookies
   6274 
   6275 Exact heading search for links now ignore spaces and cookies. This is
   6276 the case for links of the form ~file:projects.org::*task title~, as well
   6277 as links of the form ~file:projects.org::some words~ when
   6278 ~org-link-search-must-match-exact-headline~ is not nil.
   6279 
   6280 *** ~org-latex-hyperref-template~, ~org-latex-title-command~ formatting
   6281 
   6282 New formatting keys are supported.  See the respective docstrings.
   6283 Note, ~org-latex-hyperref-template~ has a new default value.
   6284 
   6285 *** ~float, wasysym, marvosym~ are removed from ~org-latex-default-packages-alist~
   6286 
   6287 If you require any of these package add them to your preamble via
   6288 ~org-latex-packages-alist~. Org also uses default LaTeX ~\tolerance~ now.
   6289 
   6290 *** When exporting, throw an error on unresolved id/fuzzy links and code refs
   6291 
   6292 This helps spotting wrong links.
   6293 
   6294 * Version 8.2
   6295 
   6296 ** Incompatible changes
   6297 *** =ob-sh.el= renamed to =ob-shell=
   6298 This may require two changes in user config.
   6299 
   6300 1. In =org-babel-do-load-languages=, change =(sh . t)= to =(shell . t)=.
   6301 2. Edit =local.mk= files to change the value of =BTEST_OB_LANGUAGES=
   6302    to remove "sh" and include "shell".
   6303 
   6304 *** Combine org-mac-message.el and org-mac-link-grabber into org-mac-link.el
   6305 
   6306 Please remove calls to =(require 'org-mac-message)= and =(require
   6307 'org-mac-link-grabber)= in your =.emacs= initialization file.  All you
   6308 need now is =(require 'org-mac-link)=.
   6309 
   6310 Additionally, replace any calls to =ogml-grab-link= to
   6311 =org-mac-grab-link=.  For example, replace this line:
   6312 
   6313 : (define-key org-mode-map (kbd "C-c g") 'omgl-grab-link)
   6314 
   6315 with this:
   6316 
   6317 : (define-key org-mode-map (kbd "C-c g") 'org-mac-grab-link)
   6318 
   6319 *** HTML export: Replace =HTML_HTML5_FANCY= by =:html-html5-fancy= (...)
   6320 
   6321 Some of the HTML specific export options in Org <8.1 are either nil or
   6322 t, like =#+HTML_INCLUDE_STYLE=.  We replaced these binary options with
   6323 option keywords like :html-include-style.
   6324 
   6325 So you need to replace
   6326 
   6327 : #+HTML_INCLUDE_STYLE: t
   6328 
   6329 by
   6330 
   6331 : #+OPTIONS: :html-include-style t
   6332 
   6333 Options affected by this change: =HTML5_FANCY=, =HTML_INCLUDE_SCRIPTS=
   6334 and =HTML_INCLUDE_STYLE=.
   6335 
   6336 *** Add an argument to ~org-export-to-file~ and ~org-export-to-buffer~
   6337 
   6338 ~org-export-to-file~ and ~org-export-to-file~ can run in a different
   6339 process when provided a non-nil =ASYNC= optional argument, without
   6340 relying on ~org-export-async-start~ macro.
   6341 
   6342 Since =ASYNC= is the first of optional arguments, you have to shift
   6343 the other optional arguments accordingly.
   6344 
   6345 *** Export back-ends are now structures
   6346 
   6347 Export back-ends are now structures, and stored as such in the
   6348 communication channel during an export process.  In other words, from
   6349 now on, ~(plist-get info :back-end)~ will return a structure instead
   6350 of a symbol.
   6351 
   6352 Arguments in hooks and in filters are still symbols, though.
   6353 
   6354 ** Important bugfixes
   6355 
   6356 *** [[doc:org-insert-heading][org-insert-heading]] has been rewritten and bugs are now fixed
   6357 *** The replacement of disputed keys is now turned of when reading a date
   6358 
   6359 *** Match string for sparse trees can now contain a slash in a property value
   6360 
   6361     You can now have searches like SOMEPROP="aaa/bbb".  Until now,
   6362     this would break because the slash would be interpreted as the
   6363     separator starting a TOTO match string.
   6364 ** New features
   6365 
   6366 *** =C-c ^ x= will now sort checklist items by their checked status
   6367 
   6368 See [[doc:org-sort-list][org-sort-list]]: hitting =C-c ^ x= will put checked items at the end
   6369 of the list.
   6370 *** Various LaTeX export enhancements
   6371 
   6372 - Support SVG images
   6373 - Support for .pgf files
   6374 - LaTeX Babel blocks can now be exported as =.tikz= files
   6375 - Allow =latexmk= as an option for [[doc:org-latex-pdf-process][org-latex-pdf-process]]
   6376 - When using =\usepackage[AUTO]{babel}=, AUTO will automatically be
   6377   replaced with a value compatible with ~org-export-default-language~
   6378   or ~LANGUAGE~ keyword.
   6379 - The dependency on the =latexsym= LaTeX package has been removed, we
   6380   now use =amssymb= symbols by default instead.
   6381 
   6382 *** New functions for paragraph motion
   6383 
   6384     The commands =C-down= and =C-up= now invoke special commands
   6385     that use knowledge from the org-elements parser to move the cursor
   6386     in a paragraph-like way.
   6387 
   6388 *** New entities in =org-entities.el=
   6389 
   6390 Add support for ell, imath, jmath, varphi, varpi, aleph, gimel, beth,
   6391 dalet, cdots, S (§), dag, ddag, colon, therefore, because, triangleq,
   6392 leq, geq, lessgtr, lesseqgtr, ll, lll, gg, ggg, prec, preceq,
   6393 preccurlyeq, succ, succeq, succurlyeq, setminus, nexist(s), mho,
   6394 check, frown, diamond.  Changes loz, vert, checkmark, smile and tilde.
   6395 
   6396 *** Anonymous export back-ends
   6397 
   6398 ~org-export-create-backend~ can create anonymous export back-ends,
   6399 which can then be passed to export functions like
   6400 ~org-export-to-file~, ~org-export-to-buffer~ or ~org-export-as~.
   6401 
   6402 It allows for quick translation of Org syntax without the overhead of
   6403 registering a new back-end.
   6404 
   6405 *** New agenda fortnight view
   6406 
   6407     The agenda has not, in addition to day, week, month, and year
   6408     views, also a fortnight view covering 14 days.
   6409 ** New options
   6410 
   6411 *** New option [[doc:org-bookmark-names-plist][org-bookmark-names-plist]]
   6412 
   6413 This allows to specify the names of automatic bookmarks.
   6414 *** New option [[doc:org-agenda-ignore-drawer-properties][org-agenda-ignore-drawer-properties]]
   6415 
   6416 This allows more flexibility when optimizing the agenda generation.
   6417 See https://orgmode.org/worg/agenda-optimization.html for details.
   6418 *** New option: [[doc:org-html-link-use-abs-url][org-html-link-use-abs-url]] to force using absolute URLs
   6419 
   6420 This is an export/publishing option, and should be used either within
   6421 the =#+OPTIONS= line(s) or within a [[doc:org-publish-project-alist][org-publish-project-alist]].
   6422 
   6423 Setting this option to =t= is needed when the HTML output does not
   6424 allow relative URLs.  For example, the =contrib/lisp/ox-rss.el=
   6425 library produces a RSS feed, and RSS feeds need to use absolute URLs,
   6426 so a combination of =:html-link-home "..." and :html-link-use-abs-url
   6427 t= is required---see the configuration example in the comment section
   6428 of =ox-rss.el=.
   6429 
   6430 *** New option [[doc:org-babel-ditaa-java-cmd][org-babel-ditaa-java-cmd]]
   6431 
   6432 This makes java executable configurable for ditaa blocks.
   6433 
   6434 *** New options [[doc:org-babel-latex-htlatex][org-babel-latex-htlatex]] and [[doc:org-babel-latex-htlatex-packages][org-babel-latex-htlatex-packages]]
   6435 
   6436 This enables SVG generation from latex code blocks.
   6437 
   6438 *** New option: [[doc:org-habit-show-done-always-green][org-habit-show-done-always-green]]
   6439 
   6440 See [[https://lists.gnu.org/r/emacs-orgmode/2013-05/msg00214.html][this message]] from Max Mikhanosha.
   6441 
   6442 *** New option: [[doc:org-babel-inline-result-wrap][org-babel-inline-result-wrap]]
   6443 
   6444 If you set this to the following
   6445 
   6446 : (setq org-babel-inline-result-wrap "$%s$")
   6447 
   6448 then inline code snippets will be wrapped into the formatting string.
   6449 
   6450 *** New option: [[doc:org-special-ctrl-o][org-special-ctrl-o]]
   6451 
   6452     This variable can be used to turn off the special behavior of
   6453     =C-o= in tables.
   6454 ** New contributed packages
   6455 
   6456 - =ox-bibtex.el= by Nicolas Goaziou :: an utility to handle BibTeX
   6457      export to both LaTeX and HTML exports.  It uses the [[https://www.lri.fr/~filliatr/bibtex2html/][bibtex2html]]
   6458      software.
   6459 
   6460 - =org-screenshot.el= by Max Mikhanosha :: an utility to handle
   6461      screenshots easily from Org, using the external tool [[https://freecode.com/projects/scrot][scrot]].
   6462 
   6463 ** Miscellaneous
   6464 
   6465 *** "QUOTE" keywords in headlines are deprecated
   6466 
   6467 "QUOTE" keywords are an undocumented feature in Org.  When a headline
   6468 starts with the keyword "QUOTE", its contents are parsed as
   6469 a ~quote-section~ and treated as an example block.  You can achieve
   6470 the same with example blocks.
   6471 
   6472 This feature is deprecated and will be removed in the next Org
   6473 release.
   6474 
   6475 * Version 8.0.1
   6476 
   6477 ** Installation
   6478 
   6479 Installation instructions have been updated and simplified.
   6480 
   6481 If you have troubles installing or updating Org, focus on these
   6482 instructions:
   6483 
   6484 - when updating via a =.zip/.tar.gz= file, you only need to set the
   6485   =load-path= in your =.emacs=.  Set it before any other Org
   6486   customization that would call autoloaded Org functions.
   6487 
   6488 - when updating by pulling Org's Git repository, make sure to create the
   6489   correct autoloads.  You can do this by running =~$ make autoloads= (to
   6490   only create the autoloads) or by running =~$ make= (to also compile
   6491   the Emacs lisp files.)  =~$ make help= and =~$ make helpall= gives you
   6492   detailed explanations.
   6493 
   6494 - when updating through ELPA (either from GNU ELPA or from Org ELPA),
   6495   you have to install Org's ELPA package in a session where no Org
   6496   function has been called already.
   6497 
   6498 When in doubt, run =M-x org-version RET= and see if you have a mixed-up
   6499 installation.
   6500 
   6501 See https://orgmode.org/org.html#Installation for details.
   6502 
   6503 ** Incompatible changes
   6504 
   6505 Org 8.0 is the most disruptive major version of Org.
   6506 
   6507 If you configured export options, you will have to update some of them.
   6508 
   6509 If you used =#+ATTR_*= keywords, the syntax of the attributes changed and
   6510 you will have to update them.
   6511 
   6512 Below is a list of changes for which you need to take action.
   6513 
   6514 See https://orgmode.org/worg/org-8.0.html for the most recent version of
   6515 this list and for detailed instructions on how to migrate.
   6516 
   6517 **** New export engine
   6518 
   6519 Org 8.0 comes with a new export engine written by Nicolas Goaziou.  This
   6520 export engine relies on ~org-element.el~ (Org's syntax parser), which was
   6521 already in Org's core.  This new export engine triggered the rewriting of
   6522 /all/ export back-ends.
   6523 
   6524 The most visible change is the export dispatcher, accessible through the
   6525 keybinding =C-c C-e=.  By default, this menu only shows some of the
   6526 built-in export formats, but you can add more formats by loading them
   6527 directly (e.g., =(require 'ox-texinfo)= or by configuring the option
   6528 [[doc:org-export-backends][org-export-backends]].
   6529 
   6530 More contributed back-ends are available from the =contrib/= directory, the
   6531 corresponding files start with the =ox-= prefix.
   6532 
   6533 If you customized an export back-end (like HTML or LaTeX), you will need to
   6534 rename some options so that your customization is not lost.  Typically, an
   6535 option starting with =org-export-html-= is now named =org-html-=.  See the
   6536 manual for details and check [[https://orgmode.org/worg/org-8.0.html][this Worg page]] for directions.
   6537 
   6538 **** New syntax for #+ATTR_HTML/LaTeX/... options
   6539 
   6540      : #+ATTR_HTML width="200px"
   6541 
   6542      should now be written
   6543 
   6544      : #+ATTR_HTML :width 200px
   6545 
   6546      Keywords like =#+ATTR_HTML= and =#+ATTR_LaTeX= are defined in their
   6547      respective back-ends, and the list of supported parameters depends on
   6548      each backend.  See Org's manual for details.
   6549 
   6550 **** ~org-remember.el~ has been removed
   6551 
   6552      You cannot use =remember.el= anymore to capture notes.
   6553 
   6554      Support for remember templates has been obsoleted since long, it is
   6555      now fully removed.
   6556 
   6557      Use =M-x org-capture-import-remember-templates RET= to import your
   6558      remember templates into capture templates.
   6559 
   6560 **** ~org-jsinfo.el~ has been merged into ~ox-html.el~
   6561 
   6562      If you were requiring ~ox-jsinfo.el~ in your ~.emacs.el~ file, you
   6563      will have to remove this requirement from your initialization file.
   6564 
   6565 **** Note for third-party developers
   6566 
   6567      The name of the files for export back-end have changed: we now use the
   6568      prefix =ox-= for those files (like we use the =ob-= prefix for Babel
   6569      files.)  For example ~org-html.el~ is now ~ox-html.el~.
   6570 
   6571      If your code relies on these files, please update the names in your
   6572      code.
   6573 
   6574 **** Packages moved from core to contrib
   6575 
   6576      Since packages in Org's core are meant to be part of GNU Emacs, we try
   6577      to be minimalist when it comes to adding files into core.  For 8.0, we
   6578      moved some contributions into the =contrib/= directory.
   6579 
   6580      The rationale for deciding that these files should live in =contrib/=
   6581      is either because they rely on third-party software that is not
   6582      included in Emacs, or because they are not targeting a significant
   6583      user-base.
   6584 
   6585      - org-colview-xemacs.el
   6586      - org-mac-message.el
   6587      - org-mew.el
   6588      - org-wl.el
   6589      - ox-freedmind.el
   6590      - ox-taskjuggler.el
   6591 
   6592      Note that ~ox-freedmind.el~ has been rewritten by Jambunathan,
   6593      ~org-mew.el~ has been enhanced by Tokuya Kameshima and
   6594      ~ox-taskjuggler.el~ by Nicolas Goaziou and others.
   6595 
   6596      Also, the Taskjuggler exporter now uses TJ3 by default.  John Hendy
   6597      wrote [[https://orgmode.org/worg/org-tutorials/org-taskjuggler3.html][a tutorial on Worg]] for the TJ3 export.
   6598 
   6599 ** New packages in core
   6600 
   6601 *** ~ob-makefile.el~ by Eric Schulte and Thomas S. Dye
   6602 
   6603     =ob-makefile.el= implements Org Babel support for Makefile tangling.
   6604 
   6605 *** ~ox-man.el~ by Luis Anaya
   6606 
   6607     =ox-man.el= allows you to export Org files to =man= pages.
   6608 
   6609 *** ~ox-md.el~ by Nicolas Goaziou
   6610 
   6611     =ox-md.el= allows you to export Org files to Markdown files, using the
   6612     vanilla [[https://daringfireball.net/projects/markdown/][Markdown syntax]].
   6613 
   6614 *** ~ox-texinfo.el~ by Jonathan Leech-Pepin
   6615 
   6616     =ox-texinfo.el= allows you to export Org files to [[https://www.gnu.org/software/texinfo/][Texinfo]] files.
   6617 
   6618 ** New packages in contrib
   6619 
   6620 *** ~ob-julia.el~ by G. Jay Kerns
   6621 
   6622     [[https://julialang.org/][Julia]] is a new programming language.
   6623 
   6624     =ob-julia.el= provides Org Babel support for evaluating Julia source
   6625     code.
   6626 
   6627 *** ~ob-mathomatic.el~ by Luis Anaya
   6628 
   6629     [[https://www.mathomatic.org/][mathomatic]] a portable, command-line, educational CAS and calculator
   6630     software, written entirely in the C programming language.
   6631 
   6632     ~ob-mathomatic.el~ provides Org Babel support for evaluating mathomatic
   6633     entries.
   6634 
   6635 *** ~ob-tcl.el~ by Luis Anaya
   6636 
   6637     ~ob-tcl.el~ provides Org Babel support for evaluating [[https://www.tcl.tk/][Tcl]] source code.
   6638 
   6639 *** ~org-bullets.el~ by Evgeni Sabof
   6640 
   6641     Display bullets instead of stars for headlines.
   6642 
   6643     Also see [[https://orgmode.org/worg/org-faq.html#sec-8-12][this updated FAQ]] on how to display another character than "*"
   6644     for starting headlines.
   6645 
   6646 *** ~org-favtable.el~ by Marc-Oliver Ihm
   6647 
   6648     ~org-favtable.el~ helps you to create and update a table of favorite
   6649     locations in org, keeping the most frequently visited lines right at
   6650     the top.  This table is called "favtable".  See the documentation on
   6651     [[https://orgmode.org/worg/org-contrib/org-favtable.html][Worg]].
   6652 
   6653 *** ~ox-confluence.el~ by Sébastien Delafond
   6654 
   6655     ~ox-confluence.el~ lets you convert Org files to [[https://confluence.atlassian.com/display/DOC/Confluence%2BWiki%2BMarkup][Confluence Wiki]] files.
   6656 
   6657 *** ~ox-deck.el~ and ~ox-s5.el~ by Rick Frankel
   6658 
   6659     [[http://imakewebthings.com/deck.js/][deck.js]] is a javascript library for displaying HTML ages as
   6660     presentations.  ~ox-deck.el~ exports Org files to HTML presentations
   6661     using =deck.js=.
   6662 
   6663     [[https://meyerweb.com/eric/tools/s5/][s5]] is a set of scripts which also allows to display HTML pages as
   6664     presentations.  ~ox-s5.el~ exports Org files to HTML presentations
   6665     using =s5=.
   6666 
   6667 *** ~ox-groff.el~ by Luis Anaya and Nicolas Goaziou
   6668 
   6669     The [[https://www.gnu.org/software/groff/][groff]] (GNU troff) software is a typesetting package which reads
   6670     plain text mixed with formatting commands and produces formatted
   6671     output.
   6672 
   6673     Luis Anaya and Nicolas Goaziou implemented ~ox-groff.el~ to allow
   6674     conversion from Org files to groff.
   6675 
   6676 *** ~ox-koma-letter.el~ by Nicolas Goaziou and Alan Schmitt
   6677 
   6678     This back-end allow to export Org pages to the =KOMA Scrlttr2= format.
   6679 
   6680 *** ~ox-rss.el~ by Bastien
   6681 
   6682     This back-end lets you export Org pages to RSS 2.0 feeds.  Combined
   6683     with the HTML publishing feature, this allows you to build a blog
   6684     entirely with Org.
   6685 
   6686 ** New features
   6687 
   6688 *** Export
   6689 
   6690 **** New export generic options
   6691 
   6692 If you use Org exporter, we advise you to re-read [[https://orgmode.org/org.html#Exporting][the manual section about
   6693 it]].  It has been updated and includes new options.
   6694 
   6695 Among the new/updated export options, three are of particular importance:
   6696 
   6697 - [[doc:org-export-allow-bind-keywords][org-export-allow-bind-keywords]] :: This option replaces the old option
   6698      =org-export-allow-BIND= and the default value is =nil=, not =confirm=.
   6699      You will need to explicitly set this to =t= in your initialization
   6700      file if you want to allow =#+BIND= keywords.
   6701 
   6702 - [[doc:org-export-with-planning][org-export-with-planning]] :: This new option controls the export of
   6703      =SCHEDULED:, DEADLINE:, CLOSED:= lines, and planning information is
   6704      now skipped by default during export.  This use to be the job of
   6705      [[doc:org-export-with-timestamps][org-export-with-timestamps]], but this latter option has been given a
   6706      new role: it controls the export of /standalone time-stamps/.  When
   6707      set to =nil=, Org will not export active and inactive time-stamps
   6708      standing on a line by themselves or within a paragraph that only
   6709      contains time-stamps.
   6710 
   6711 To check if an option has been introduced or its default value changed in
   6712 Org 8.0, do =C-h v [option] RET= and check if the documentation says that
   6713 the variable has been introduced (or changed) in version 24.4 of Emacs.
   6714 
   6715 **** Enhanced default stylesheet for the HTML exporter
   6716 
   6717 See the new default value of [[doc:org-html-style-default][org-html-style-default]].
   6718 
   6719 **** New tags, classes and ids for the HTML exporter
   6720 
   6721 See the new default value of [[doc:org-html-divs][org-html-divs]].
   6722 
   6723 **** Support for tikz pictures in LaTeX export
   6724 **** ~org-man.el~: New export function for "man" links
   6725 **** ~org-docview.el~: New export function for docview links
   6726 *** Structure editing
   6727 
   6728 **** =C-u C-u M-RET= inserts a heading at the end of the parent subtree
   6729 **** Cycling to the =CONTENTS= view keeps inline tasks folded
   6730 
   6731 [[doc:org-cycle-hook][org-cycle-hook]] as a new function [[doc:org-cycle-hide-inline-tasks][org-cycle-hide-inline-tasks]] which
   6732 prevents the display of inline tasks when showing the content of a subtree.
   6733 
   6734 **** =C-c -= in a region makes a list item for each line
   6735 
   6736 This is the opposite of the previous behavior, where =C-c -= on a region
   6737 would create one item for the whole region, and where =C-u C-c -= would
   6738 create an item for each line.  Now =C-c -= on the selected region creates
   6739 an item per line, and =C-u C-c -= creates a single item for the whole
   6740 region.
   6741 
   6742 **** When transposing words, markup characters are now part of the words
   6743 
   6744 In Emacs, you can transpose words with =M-t=.  Transposing =*these*
   6745 _words__= will preserve markup.
   6746 
   6747 **** New command [[doc:org-set-property-and-value][org-set-property-and-value]] bound to =C-c C-x P=
   6748 
   6749 This command allows you to quickly add both the property and its value.  It
   6750 is useful in buffers where there are many properties and where =C-c C-x p=
   6751 can slow down the flow of editing too much.
   6752 
   6753 **** New commands [[doc:org-next-block][org-next-block]] and [[doc:org-previous-block][org-previous-block]]
   6754 
   6755 These commands allow you to go to the previous block (=C-c M-b= or the
   6756 speedy key =B=) or to the next block (=C-c M-f= or the speedy key =F=.)
   6757 
   6758 **** New commands [[doc:org-drag-line-forward][org-drag-line-forward]] and [[doc:org-drag-line-backward][org-drag-line-backward]]
   6759 
   6760 These commands emulate the old behavior of =M-<down>= and =M-<up>= but are
   6761 now bound to =S-M-<down>= and =S-M-<up>= respectively, since =M-<down>= and
   6762 =M-<up>= now drag the whole element at point (a paragraph, a table, etc.)
   6763 forward and backward.
   6764 
   6765 **** When a list item has a checkbox, inserting a new item uses a checkbox too
   6766 **** When sorting entries/items, only the description of links is considered
   6767 
   6768 Now Org will sort this list
   6769 
   6770 : - [[https://abc.org][B]]
   6771 : - [[https://def.org][A]]
   6772 
   6773 like this:
   6774 
   6775 : - [[https://def.org][A]]
   6776 : - [[https://abc.org][B]]
   6777 
   6778 by comparing the descriptions, not the links.
   6779 Same when sorting headlines instead of list items.
   6780 **** New option =orgstruct-heading-prefix-regexp=
   6781 
   6782 For example, setting this option to "^;;; " in Emacs lisp files and using
   6783 =orgstruct-mode= in those files will allow you to cycle through visibility
   6784 states as if lines starting with ";;; *..." where headlines.
   6785 
   6786 In general, you want to set =orgstruct-heading-prefix-regexp= as a file
   6787 local variable.
   6788 
   6789 **** New behavior of [[doc:org-clone-subtree-with-time-shift][org-clone-subtree-with-time-shift]]
   6790 
   6791 The default is now to ask for a time-shift only when there is a time-stamp.
   6792 When called with a universal prefix argument =C-u=, it will not ask for a
   6793 time-shift even if there is a time-stamp.
   6794 
   6795 **** New option [[doc:org-agenda-restriction-lock-highlight-subtree][org-agenda-restriction-lock-highlight-subtree]]
   6796 
   6797 This defaults to =t= so that the whole subtree is highlighted when you
   6798 restrict the agenda view to it with =C-c C-x <= (or the speed command =<=).
   6799 The default setting helps ensuring that you are not adding tasks after the
   6800 restricted region.  If you find this highlighting too intrusive, set this
   6801 option to =nil=.
   6802 **** New option [[doc:org-closed-keep-when-no-todo][org-closed-keep-when-no-todo]]
   6803 
   6804 When switching back from a =DONE= keyword to a =TODO= keyword, Org now
   6805 removes the =CLOSED= planning information, if any.  It also removes this
   6806 information when going back to a non-TODO state (e.g., with =C-c C-t SPC=).
   6807 If you want to keep the =CLOSED= planning information when removing the
   6808 TODO keyword, set [[doc:org-closed-keep-when-no-todo][org-closed-keep-when-no-todo]] to =t=.
   6809 
   6810 **** New option [[doc:org-image-actual-width][org-image-actual-width]]
   6811 
   6812 This option allows you to change the width of in-buffer displayed images.
   6813 The default is to use the actual width of the image, but you can use a
   6814 fixed value for all images, or fall back on an attribute like
   6815 
   6816 : #+attr_html: :width 300px
   6817 *** Scheduled/deadline
   6818 
   6819 **** Implement "delay" cookies for scheduled items
   6820 
   6821 If you want to delay the display of a scheduled task in the agenda, you can
   6822 now use a delay cookie like this: =SCHEDULED: <2004-12-25 Sat -2d>=.  The
   6823 task is still scheduled on the 25th but will appear in your agenda starting
   6824 from two days later (i.e. from March 27th.)
   6825 
   6826 Imagine for example that your co-workers are not done in due time and tell
   6827 you "we need two more days".  In that case, you may want to delay the
   6828 display of the task in your agenda by two days, but you still want the task
   6829 to appear as scheduled on March 25th.
   6830 
   6831 In case the task contains a repeater, the delay is considered to affect all
   6832 occurrences; if you want the delay to only affect the first scheduled
   6833 occurrence of the task, use =--2d= instead.  See [[doc:org-scheduled-delay-days][org-scheduled-delay-days]]
   6834 and [[doc:org-agenda-skip-scheduled-delay-if-deadline][org-agenda-skip-scheduled-delay-if-deadline]] for details on how to
   6835 control this globally or per agenda.
   6836 
   6837 **** Use =C-u C-u C-c C-s= will insert a delay cookie for scheduled tasks
   6838 
   6839 See the previous section for why delay cookies may be useful.
   6840 
   6841 **** Use =C-u C-u C-c C-d= will insert a warning delay for deadline tasks
   6842 
   6843 =C-u C-u C-c C-d= now inserts a warning delay to deadlines.
   6844 *** Calendar, diary and appts
   6845 
   6846 **** New variable [[doc:org-read-date-minibuffer-local-map][org-read-date-minibuffer-local-map]]
   6847 
   6848 By default, this new local map uses "." to go to today's date, like in the
   6849 normal =M-x calendar RET=.  If you want to deactivate this and to reassign
   6850 the "@" key to =calendar-goto-today=, use this:
   6851 
   6852 #+BEGIN_SRC emacs-lisp
   6853   ;; Unbind "." in Org's calendar:
   6854   (define-key org-read-date-minibuffer-local-map (kbd ".") nil)
   6855 
   6856   ;; Bind "@" to `calendar-goto-today':
   6857   (define-key org-read-date-minibuffer-local-map
   6858               (kbd "@")
   6859               (lambda () (interactive) (org-eval-in-calendar '(calendar-goto-today))))
   6860 #+END_SRC
   6861 
   6862 **** In Org's calendar, =!= displays diary entries of the date at point
   6863 
   6864 This is useful when you want to check if you don't already have an
   6865 appointment when setting new ones with =C-c .= or =C-c s=.  =!= will
   6866 call =diary-view-entries= and display the diary in a separate buffer.
   6867 
   6868 **** [[doc:org-diary][org-diary]]: only keep the descriptions of links
   6869 
   6870 [[doc:org-diary][org-diary]] returns diary information from Org files, but it returns it
   6871 in a diary buffer, not in an Org mode buffer.  When links are displayed,
   6872 only show their description, not the full links.
   6873 *** Agenda
   6874 
   6875 **** New agenda type =agenda*= and entry types =:scheduled* :deadline*=
   6876 
   6877 When defining agenda custom commands, you can now use =agenda*=: this will
   6878 list entries that have both a date and a time.  This is useful when you
   6879 want to build a list of appointments.
   6880 
   6881 You can also set [[doc:org-agenda-entry-types][org-agenda-entry-types]] either globally or locally in
   6882 each agenda custom command and use =:timestamp*= and/or =:deadline*= there.
   6883 
   6884 Another place where this is useful is your =.diary= file:
   6885 
   6886 : %%(org-diary :scheduled*) ~/org/rdv.org
   6887 
   6888 This will list only entries from =~/org/rdv.org= that are scheduled with a
   6889 time value (i.e. appointments).
   6890 
   6891 **** New agenda sorting strategies
   6892 
   6893 [[doc:org-agenda-sorting-strategy][org-agenda-sorting-strategy]] allows these new sorting strategies:
   6894 
   6895 | Strategy       | Explanations                             |
   6896 |----------------+------------------------------------------|
   6897 | timestamp-up   | Sort by any timestamp, early first       |
   6898 | timestamp-down | Sort by any timestamp, late first        |
   6899 | scheduled-up   | Sort by scheduled timestamp, early first |
   6900 | scheduled-down | Sort by scheduled timestamp, late first  |
   6901 | deadline-up    | Sort by deadline timestamp, early first  |
   6902 | deadline-down  | Sort by deadline timestamp, late first   |
   6903 | ts-up          | Sort by active timestamp, early first    |
   6904 | ts-down        | Sort by active timestamp, late first     |
   6905 | tsia-up        | Sort by inactive timestamp, early first  |
   6906 | tsia-down      | Sort by inactive timestamp, late first   |
   6907 
   6908 **** New options to limit the number of agenda entries
   6909 
   6910 You can now limit the number of entries in an agenda view.  This is
   6911 different from filters: filters only /hide/ the entries in the agenda,
   6912 while limits are set while generating the list of agenda entries.
   6913 
   6914 These new options are available:
   6915 
   6916 - [[doc:org-agenda-max-entries][org-agenda-max-entries]] :: limit by number of entries.
   6917 - [[doc:org-agenda-max-todos][org-agenda-max-todos]] :: limit by number of TODOs.
   6918 - [[doc:org-agenda-max-tags][org-agenda-max-tags]] :: limit by number of tagged entries.
   6919 - [[doc:org-agenda-max-effort][org-agenda-max-effort]] :: limit by effort (minutes).
   6920 
   6921 For example, if you locally set [[doc:org-agenda-max-todos][org-agenda-max-todos]] to 3 in an agenda
   6922 view, the agenda will be limited to the first three todos.  Other entries
   6923 without a TODO keyword or beyond the third TODO headline will be ignored.
   6924 
   6925 When setting a limit (e.g. about an effort's sum), the default behavior is
   6926 to exclude entries that cannot be checked against (e.g. entries that have
   6927 no effort property.)  To include other entries too, you can set the limit
   6928 to a negative number.  For example =(setq org-agenda-max-tags -3)= will not
   6929 show the fourth tagged headline (and beyond), but it will also show
   6930 non-tagged headlines.
   6931 
   6932 **** =~= in agenda view sets temporary limits
   6933 
   6934 You can hit =~= in the agenda to temporarily set limits: this will
   6935 regenerate the agenda as if the limits were set.  This is useful for
   6936 example when you want to only see a list of =N= tasks, or a list of tasks
   6937 that take only =N= minutes.
   6938 
   6939 **** "=" in agenda view filters by regular expressions
   6940 
   6941 You can now filter agenda entries by regular expressions using ~=~.  =C-u
   6942 == will filter entries out.  Regexp filters are cumulative.  You can set
   6943 [[doc:org-agenda-regexp-filter-preset][org-agenda-regexp-filter-preset]] to suit your needs in each agenda view.
   6944 
   6945 **** =|= in agenda view resets all filters
   6946 
   6947 Since it's common to combine tag filters, category filters, and now regexp
   6948 filters, there is a new command =|= to reset all filters at once.
   6949 
   6950 **** Allow writing an agenda to an =.org= file
   6951 
   6952 You can now write an agenda view to an =.org= file.  It copies the
   6953 headlines and their content (but not subheadings) into the new file.
   6954 
   6955 This is useful when you want to quickly share an agenda containing the full
   6956 list of notes.
   6957 
   6958 **** New commands to drag an agenda line forward (=M-<down>=) or backward (=M-<up>=)
   6959 
   6960 It sometimes handy to move agenda lines around, just to quickly reorganize
   6961 your tasks, or maybe before saving the agenda to a file.  Now you can use
   6962 =M-<down>= and =M-<up>= to move the line forward or backward.
   6963 
   6964 This does not persist after a refresh of the agenda, and this does not
   6965 change the =.org= files who contribute to the agenda.
   6966 
   6967 **** Use =%b= for displaying "breadcrumbs" in the agenda view
   6968 
   6969 [[doc:org-agenda-prefix-format][org-agenda-prefix-format]] now allows to use a =%b= formatter to tell Org
   6970 to display "breadcrumbs" in the agenda view.
   6971 
   6972 This is useful when you want to display the task hierarchy in your agenda.
   6973 
   6974 **** Use =%l= for displaying the headline's level in the agenda view
   6975 
   6976 [[doc:org-agenda-prefix-format][org-agenda-prefix-format]] allows to use a =%l= formatter to tell Org to
   6977 display entries with additional spaces corresponding to their level in the
   6978 outline tree.
   6979 
   6980 **** [[doc:org-agenda-write][org-agenda-write]] will ask before overwriting an existing file
   6981 
   6982 =M-x org-agenda-write RET= (or =C-c C-w= from an agenda buffer) used to
   6983 overwrite preexisting file with the same name without confirmation.  It now
   6984 asks for a confirmation.
   6985 
   6986 **** New commands =M-m= and =M-*= to toggle (all) mark(s) for bulk action
   6987 
   6988 - [[doc:org-agenda-bulk-toggle][org-agenda-bulk-toggle]] :: this command is bound to =M-m= and toggles
   6989      the mark of the entry at point.
   6990 
   6991 - [[doc:org-agenda-bulk-toggle-all][org-agenda-bulk-toggle-all]] :: this command is bound to =M-*= and
   6992      toggles all the marks in the current agenda.
   6993 
   6994 **** New option [[doc:org-agenda-search-view-max-outline-level][org-agenda-search-view-max-outline-level]]
   6995 
   6996 This option sets the maximum outline level to display in search view.
   6997 E.g. when this is set to 1, the search view will only show headlines of
   6998 level 1.
   6999 
   7000 **** New option [[doc:org-agenda-todo-ignore-time-comparison-use-seconds][org-agenda-todo-ignore-time-comparison-use-seconds]]
   7001 
   7002 This allows to compare times using seconds instead of days when honoring
   7003 options like =org-agenda-todo-ignore-*= in the agenda display.
   7004 
   7005 **** New option [[doc:org-agenda-entry-text-leaders][org-agenda-entry-text-leaders]]
   7006 
   7007 This allows you to get rid of the ">" character that gets added in front of
   7008 entries excerpts when hitting =E= in the agenda view.
   7009 
   7010 **** New formatting string for past deadlines in [[doc:org-agenda-deadline-leaders][org-agenda-deadline-leaders]]
   7011 
   7012 The default formatting for past deadlines is ="%2d d. ago: "=, which makes
   7013 it explicit that the deadline is in the past.  You can configure this via
   7014 [[doc:org-agenda-deadline-leaders][org-agenda-deadline-leaders]].  Note that the width of the formatting
   7015 string is important to keep the agenda alignment clean.
   7016 
   7017 **** New allowed value =repeated-after-deadline= for [[doc:org-agenda-skip-scheduled-if-deadline-is-shown][org-agenda-skip-scheduled-if-deadline-is-shown]]
   7018 
   7019 When [[doc:org-agenda-skip-scheduled-if-deadline-is-shown][org-agenda-skip-scheduled-if-deadline-is-shown]] is set to
   7020 =repeated-after-deadline=, the agenda will skip scheduled items if they are
   7021 repeated beyond the current deadline.
   7022 
   7023 **** New option for [[doc:org-agenda-skip-deadline-prewarning-if-scheduled][org-agenda-skip-deadline-prewarning-if-scheduled]]
   7024 
   7025 This variable may be set to nil, t, the symbol `pre-scheduled', or a number
   7026 which will then give the number of days before the actual deadline when the
   7027 prewarnings should resume.  The symbol `pre-scheduled' eliminates the
   7028 deadline prewarning only prior to the scheduled date.
   7029 
   7030 Read the full docstring for details.
   7031 
   7032 **** [[doc:org-class][org-class]] now supports holiday strings in the skip-weeks parameter
   7033 
   7034 For example, this task will now be skipped only on new year's day:
   7035 
   7036     : * Task
   7037     :   <%%(org-class 2012 1 1 2013 12 12 2 "New Year's Day")>
   7038 *** Capture
   7039 
   7040 **** Allow =C-1= as a prefix for [[doc:org-agenda-capture][org-agenda-capture]] and [[doc:org-capture][org-capture]]
   7041 
   7042 With a =C-1= prefix, the capture mechanism will use the =HH:MM= value at
   7043 point (if any) or the current =HH:MM= time as the default time for the
   7044 capture template.
   7045 
   7046 **** Expand keywords within %(sexp) placeholder in capture templates
   7047 
   7048 If you use a =%:keyword= construct within a =%(sexp)= construct, Org will
   7049 expand the keywords before expanding the =%(sexp)=.
   7050 
   7051 **** Allow to contextualize capture (and agenda) commands by checking the name of the buffer
   7052 
   7053 [[doc:org-capture-templates-contexts][org-capture-templates-contexts]] and [[doc:org-agenda-custom-commands-contexts][org-agenda-custom-commands-contexts]]
   7054 allow you to define what capture templates and what agenda commands should
   7055 be available in various contexts.  It is now possible for the context to
   7056 check against the name of the buffer.
   7057 *** Tag groups
   7058 
   7059 Using =#+TAGS: { Tag1 : Tag2 Tag3 }= will define =Tag1= as a /group tag/
   7060 (note the colon after =Tag1=).  If you search for =Tag1=, it will return
   7061 headlines containing either =Tag1=, =Tag2= or =Tag3= (or any combination
   7062 of those tags.)
   7063 
   7064 You can use group tags for sparse tree in an Org buffer, for creating
   7065 agenda views, and for filtering.
   7066 
   7067 See https://orgmode.org/org.html#Tag-groups for details.
   7068 
   7069 *** Links
   7070 
   7071 **** =C-u C-u M-x org-store-link RET= will ignore non-core link functions
   7072 
   7073 Org knows how to store links from Org buffers, from info files and from
   7074 other Emacs buffers.  Org can be taught how to store links from any buffer
   7075 through new link protocols (see [[https://orgmode.org/org.html#Adding-hyperlink-types]["Adding hyperlink types"]] in the manual.)
   7076 
   7077 Sometimes you want Org to ignore added link protocols and store the link
   7078 as if the protocol was not known.
   7079 
   7080 You can now do this with =C-u C-u M-x org-store-link RET=.
   7081 
   7082 **** =C-u C-u C-u M-x org-store-link RET= on an active region will store links for each lines
   7083 
   7084 Imagine for example that you want to store a link for every message in a
   7085 Gnus summary buffer.  In that case =C-x h C-u C-u C-u M-x org-store-link
   7086 RET= will store a link for every line (i.e. message) if the region is
   7087 active.
   7088 
   7089 **** =C-c C-M-l= will add a default description for links which don't have one
   7090 
   7091 =C-c C-M-l= inserts all stored links.  If a link does not have a
   7092 description, this command now adds a default one, so that we are not mixing
   7093 with-description and without-description links when inserting them.
   7094 
   7095 **** No curly braces to bracket links within internal links
   7096 
   7097 When storing a link to a headline like
   7098 
   7099 : * See [[https://orgmode.org][Org website]]
   7100 
   7101 [[doc:org-store-link][org-store-link]] used to convert the square brackets into curly brackets.
   7102 It does not anymore, taking the link description or the link path, when
   7103 there is no description.
   7104 *** Table
   7105 
   7106 **** Switching between #+TBLFM lines
   7107 
   7108 If you have several =#+TBLFM= lines below a table, =C-c C-c= on a line will
   7109 apply the formulas from this line, and =C-c C-c= on another line will apply
   7110 those other formulas.
   7111 
   7112 **** You now use "nan" for empty fields in Calc formulas
   7113 
   7114 If empty fields are of interest, it is recommended to reread the section
   7115 [[https://orgmode.org/org.html#Formula-syntax-for-Calc][3.5.2 Formula syntax for Calc]] of the manual because the description for the
   7116 mode strings has been clarified and new examples have been added towards
   7117 the end.
   7118 
   7119 **** Handle localized time-stamps in formulas evaluation
   7120 
   7121 If your =LOCALE= is set so that Org time-stamps use another language than
   7122 english, and if you make time computations in Org's table, it now works by
   7123 internally converting the time-stamps with a temporary =LOCALE=C= before
   7124 doing computation.
   7125 
   7126 **** New lookup functions
   7127 
   7128 There are now three lookup functions:
   7129 
   7130 - [[doc:org-lookup-first][org-lookup-first]]
   7131 - [[doc:org-lookup-last][org-lookup-last]]
   7132 - [[doc:org-lookup-all][org-lookup-all]]
   7133 
   7134 See [[https://orgmode.org/org.html#Lookup-functions][the manual]] for details.
   7135 *** Startup keywords
   7136 
   7137 These new startup keywords are now available:
   7138 
   7139 | Startup keyword                  | Option                                      |
   7140 |----------------------------------+---------------------------------------------|
   7141 | =#+STARTUP: logdrawer=           | =(setq org-log-into-drawer t)=              |
   7142 | =#+STARTUP: nologdrawer=         | =(setq org-log-into-drawer nil)=            |
   7143 |----------------------------------+---------------------------------------------|
   7144 | =#+STARTUP: logstatesreversed=   | =(setq org-log-states-order-reversed t)=    |
   7145 | =#+STARTUP: nologstatesreversed= | =(setq org-log-states-order-reversed nil)=  |
   7146 |----------------------------------+---------------------------------------------|
   7147 | =#+STARTUP: latexpreview=        | =(setq org-startup-with-latex-preview t)=   |
   7148 | =#+STARTUP: nolatexpreview=      | =(setq org-startup-with-latex-preview nil)= |
   7149 
   7150 *** Clocking
   7151 
   7152 **** New option [[doc:org-clock-rounding-minutes][org-clock-rounding-minutes]]
   7153 
   7154 E.g. if [[doc:org-clock-rounding-minutes][org-clock-rounding-minutes]] is set to 5, time is 14:47 and you
   7155 clock in: then the clock starts at 14:45.  If you clock out within the next
   7156 5 minutes, the clock line will be removed; if you clock out 8 minutes after
   7157 your clocked in, the clock out time will be 14:50.
   7158 
   7159 **** New option [[doc:org-time-clocksum-use-effort-durations][org-time-clocksum-use-effort-durations]]
   7160 
   7161 When non-nil, =C-c C-x C-d= uses effort durations.  E.g., by default, one
   7162 day is considered to be a 8 hours effort, so a task that has been clocked
   7163 for 16 hours will be displayed as during 2 days in the clock display or in
   7164 the clocktable.
   7165 
   7166 See [[doc:org-effort-durations][org-effort-durations]] on how to set effort durations and
   7167 [[doc:org-time-clocksum-format][org-time-clocksum-format]] for more on time clock formats.
   7168 
   7169 **** New option [[doc:org-clock-x11idle-program-name][org-clock-x11idle-program-name]]
   7170 
   7171 This allows to set the name of the program which prints X11 idle time in
   7172 milliseconds.  The default is to use =x11idle=.
   7173 
   7174 **** New option [[doc:org-use-last-clock-out-time-as-effective-time][org-use-last-clock-out-time-as-effective-time]]
   7175 
   7176 When non-nil, use the last clock out time for [[doc:org-todo][org-todo]].  Note that this
   7177 option has precedence over the combined use of [[doc:org-use-effective-time][org-use-effective-time]] and
   7178 [[doc:org-extend-today-until][org-extend-today-until]].
   7179 
   7180 **** =S-<left/right>= on a clocksum column will update the sum by updating the last clock
   7181 **** =C-u 3 C-S-<up/down>= will update clock timestamps synchronously by 3 units
   7182 **** New parameter =:wstart= for clocktables to define the week start day
   7183 **** New parameter =:mstart= to state the starting day of the month
   7184 **** Allow relative times in clocktable tstart and tend options
   7185 **** The clocktable summary is now a caption
   7186 **** =:tstart= and =:tend= and friends allow relative times like "<-1w>" or "<now>"
   7187 *** Babel
   7188 
   7189 **** You can now use =C-c C-k= for [[doc:org-edit-src-abort][org-edit-src-abort]]
   7190 
   7191 This allows you to quickly cancel editing a source block.
   7192 
   7193 **** =C-u C-u M-x org-babel-tangle RET= tangles by the target file of the block at point
   7194 
   7195 This is handy if you want to tangle all source code blocks that have the
   7196 same target than the block at point.
   7197 
   7198 **** New options for auto-saving the base buffer or the source block editing buffer
   7199 
   7200 When [[doc:org-edit-src-turn-on-auto-save][org-edit-src-turn-on-auto-save]] is set to =t=, editing a source block
   7201 in a new window will turn on =auto-save-mode= and save the code in a new
   7202 file under the same directory than the base Org file.
   7203 
   7204 When [[doc:org-edit-src-auto-save-idle-delay][org-edit-src-auto-save-idle-delay]] is set to a number of minutes =N=,
   7205 the base Org buffer will be saved after this number of minutes of idle
   7206 time.
   7207 
   7208 **** New =:post= header argument post-processes results
   7209 
   7210      This header argument may be used to pass the results of the current
   7211      code block through another code block for post-processing.  See the
   7212      manual for a usage example.
   7213 
   7214 **** Commented out heading are ignored when collecting blocks for tangling
   7215 
   7216 If you comment out a heading (with =C-c ;= anywhere on the heading or in
   7217 the subtree), code blocks from within this heading are now ignored when
   7218 collecting blocks for tangling.
   7219 
   7220 **** New option [[doc:org-babel-hash-show-time][org-babel-hash-show-time]] to show a time-stamp in the result hash
   7221 **** Do not ask for confirmation if cached value is current
   7222 
   7223 Do not run [[doc:org-babel-confirm-evaluate][org-babel-confirm-evaluate]] if source block has a cache and the
   7224 cache value is current as there is no evaluation involved in this case.
   7225 **** =ob-sql.el= and =ob-python.el= have been improved.
   7226 **** New Babel files only need to =(require 'ob)=
   7227 
   7228 When writing a new Babel file, you now only need to use =(require 'ob)=
   7229 instead of requiring each Babel library one by one.
   7230 *** Faces
   7231 
   7232 - Org now fontifies radio link targets by default
   7233 - In the agenda, use [[doc:org-todo-keyword-faces][org-todo-keyword-faces]] to highlight selected TODO keywords
   7234 - New face [[doc:org-priority][org-priority]], enhanced fontification of priority cookies in agenda
   7235 - New face [[doc:org-tag-group][org-tag-group]] for group tags
   7236 
   7237 ** Miscellaneous
   7238 
   7239 - New speedy key =s= pour [[doc:org-narrow-to-subtree][org-narrow-to-subtree]]
   7240 - Handling of [[doc:org-html-table-row][org-html-table-row]] has been updated (incompatible change)
   7241 - [[doc:org-export-html-table-tag][org-export-html-table-tag]] is replaced by [[doc:org-html-table-default-attributes][org-html-table-default-attributes]]
   7242 - Support using =git-annex= with Org attachments
   7243 - org-protocol: Pass optional value using query in url to capture from protocol
   7244 - When the refile history is empty, use the current filename as default
   7245 - When you cannot change the TODO state of a task, Org displays the blocking task
   7246 - New option [[doc:org-mobile-allpriorities][org-mobile-allpriorities]]
   7247 - org-bibtex.el now use =visual-line-mode= instead of the deprecated =longlines-mode=
   7248 - [[doc:org-format-latex-options][org-format-latex-options]] allows to set the foreground/background colors automatically
   7249 - New option [[doc:org-archive-file-header-format][org-archive-file-header-format]]
   7250 - New "neg" entity in [[doc:org-entities][org-entities]]
   7251 - New function [[doc:org-docview-export][org-docview-export]] to export docview links
   7252 - New =:eps= header argument for ditaa code blocks
   7253 - New option [[doc:org-gnus-no-server][org-gnus-no-server]] to start Gnus with =gnus-no-server=
   7254 - Org is now distributed with =htmlize.el= version 1.43
   7255 - ~org-drill.el~ has been updated to version 2.3.7
   7256 - ~org-mac-iCal.el~ now supports OS X versions up to 10.8
   7257 - Various improvements to ~org-contacts.el~ and =orgpan.el=
   7258 
   7259 ** Outside Org
   7260 
   7261 *** Spanish translation of the Org guide by David Arroyo Menéndez
   7262 
   7263 David (and others) translated the Org compact guide in spanish:
   7264 
   7265 You can read the [[https://orgmode.org/worg/orgguide/orgguide.es.pdf][PDF guide]].
   7266 
   7267 *** ~poporg.el~ and ~outorg.el~
   7268 
   7269 Two new libraries (~poporg.el~ by François Pinard and ~outorg.el~ by
   7270 Thorsten Jolitz) now enable editing of comment-sections from source-code
   7271 buffers in temporary Org-mode buffers, making the full editing power of
   7272 Org-mode available.  ~outorg.el~ comes together with ~outshine.el~ and
   7273 ~navi-mode.el~, two more libraries by Thorsten Jolitz with the goal to give
   7274 source-code buffers the /look & feel/ of Org-mode buffers while greatly
   7275 improving navigation and structure editing.  A detailed description can be
   7276 found here: https://orgmode.org/worg/org-tutorials/org-outside-org.html
   7277 
   7278 Here are two screencasts demonstrating Thorsten's tools:
   7279 
   7280 - [[https://youtu.be/nqE6YxlY0rw]["Modern conventions for Emacs Lisp files"]]
   7281 - [[https://www.youtube.com/watch?v%3DII-xYw5VGFM][Exploring Bernt Hansen's Org-mode tutorial with 'navi-mode']]
   7282 
   7283 *** MobileOrg for iOS
   7284 
   7285 MobileOrg for iOS back in the App Store The 1.6.0 release was focused on
   7286 the new Dropbox API and minor bug fixes but also includes a new ability to
   7287 launch in Capture mode.  Track development and contribute [[https://github.com/MobileOrg/mobileorg/issues][on github]].
   7288 
   7289 * Version 7.9.3
   7290 
   7291 ** New option [[doc::org-agenda-use-tag-inheritance][org-agenda-use-tag-inheritance]]
   7292 
   7293 [[doc::org-use-tag-inheritance][org-use-tag-inheritance]] controls whether tags are inherited when
   7294 org-tags-view is called (either in =tags=, =tags-tree= or =tags-todo=
   7295 agenda views.)
   7296 
   7297 When generating other agenda types such as =agenda=, =todo= and
   7298 =todo-tree=, tags inheritance is not used when selecting the entries
   7299 to display.  Still, you might want to have all tag information correct
   7300 in the agenda buffer, e.g. for tag filtering.  In that case, add the
   7301 agenda type to this variable.
   7302 
   7303 Setting this variable to nil should considerably speeds up the agenda
   7304 generation.
   7305 
   7306 Note that the default was to display inherited tags in the agenda
   7307 lines even if `org-use-tag-inheritance' was nil.  The default is now
   7308 to *never* display inherited tags in agenda lines, but to /know/ about
   7309 them when the agenda type is listed in [[doc::org-agenda-use-tag-inheritance][org-agenda-use-tag-inheritance]].
   7310 
   7311 ** New default value =nil= for [[doc::org-agenda-dim-blocked-tasks][org-agenda-dim-blocked-tasks]]
   7312 
   7313 Using `nil' as the default value speeds up the agenda generation.  You
   7314 can hit `#' (or `C-u #') in agenda buffers to temporarily dim (or turn
   7315 invisible) blocked tasks.
   7316 
   7317 ** New speedy keys for [[doc::org-speed-commands-default][org-speed-commands-default]]
   7318 
   7319 You can now use `:' (instead of `;') for setting tags---this is
   7320 consistent with using the `:' key in agenda view.
   7321 
   7322 You can now use `=' for [[doc::org-columns][org-columns]].
   7323 
   7324 ** =org-float= is now obsolete, use =diary-float= instead
   7325 ** No GPL manual anymore
   7326 
   7327 There used to be a GPL version of the Org manual, but this is not the
   7328 case anymore, the Free Software Foundation does not permit this.
   7329 
   7330 The GNU FDL license is now included in the manual directly.
   7331 
   7332 ** Enhanced compatibility with Emacs 22 and XEmacs
   7333 
   7334 Thanks to Achim for his work on enhancing Org's compatibility with
   7335 various Emacsen.  Things may not be perfect, but Org should work okay
   7336 in most environments.
   7337 
   7338 * Version 7.9.2
   7339 
   7340 ** New ELPA repository for Org packages
   7341 
   7342 You can now add the Org ELPA repository like this:
   7343 
   7344 #+BEGIN_SRC emacs-lisp
   7345 (add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t)
   7346 #+END_SRC
   7347 
   7348 It contains both the =org-*.tar= package (the core Org distribution, also
   7349 available through https://elpa.gnu.org) and the =org-plus*.tar= package (the
   7350 extended Org distribution, with non-GNU packages from the =contrib/=
   7351 directory.)
   7352 
   7353 See https://orgmode.org/elpa/
   7354 
   7355 ** Overview of the new keybindings
   7356 
   7357    | Keybinding      | Speedy | Command                     |
   7358    |-----------------+--------+-----------------------------|
   7359    | =C-c C-x C-z=   |        | [[doc::org-clock-resolve][org-clock-resolve]]           |
   7360    | =C-c C-x C-q=   |        | [[doc::org-clock-cancel][org-clock-cancel]]            |
   7361    | =C-c C-x C-x=   |        | [[doc::org-clock-in-last][org-clock-in-last]]           |
   7362    | =M-h=           |        | [[doc::org-mark-element][org-mark-element]]            |
   7363    | =*=             |        | [[doc::org-agenda-bulk-mark-all][org-agenda-bulk-mark-all]]    |
   7364    | =C-c C-M-l=     |        | [[doc::org-insert-all-links][org-insert-all-links]]        |
   7365    | =C-c C-x C-M-v= |        | [[doc::org-redisplay-inline-images][org-redisplay-inline-images]] |
   7366    | =C-c C-x E=     | =E=    | [[doc::org-inc-effort][org-inc-effort]]              |
   7367    |                 | =#=    | [[doc::org-toggle-comment][org-toggle-comment]]          |
   7368    |                 | =:=    | [[doc::org-columns][org-columns]]                 |
   7369    |                 | =W=    | Set =APPT_WARNTIME=         |
   7370    | =k=             |        | [[doc::org-agenda-capture][org-agenda-capture]]          |
   7371    | C-c ,           | ,      | [[doc::org-priority][org-priority]]                |
   7372 
   7373 ** New package and Babel language
   7374 
   7375 *** =org-eshell.el= by Konrad Hinsen is now in Org
   7376 
   7377     =org-eshell.el= allows you to create links from [[https://www.gnu.org/software/emacs/manual/html_node/eshell/index.html][Eshell]].
   7378 
   7379 *** Support for execution of Scala code blocks (see ob-scala.el)
   7380 *** Support for execution of IO code blocks (see ob-io.el)
   7381 
   7382 ** Incompatible changes
   7383 
   7384    - If your code relies on =org-write-agenda=, please use
   7385      [[doc::org-agenda-write][org-agenda-write]] from now on.
   7386 
   7387    - If your code relies on =org-make-link=, please use =concat=
   7388      instead.
   7389 
   7390    - =org-link-to-org-use-id= has been renamed to
   7391      =org-id-link-to-org-use-id= and its default value is nil.  The
   7392      previous default was =create-if-interactive-and-no-custom-id=.
   7393 
   7394 ** New features and user-visible changes
   7395 
   7396 *** Org Element
   7397 
   7398     =org-element.el= is a toolbox for parsing and analyzing "elements"
   7399     in an Org-mode buffer.  This has been written by Nicolas Goaziou
   7400     and has been tested for quite some time.  It is now part of Org's
   7401     core and many core functions rely on this package.
   7402 
   7403     Two functions might be particularly handy for users:
   7404     =org-element-at-point= and =org-element-context=.
   7405 
   7406     See the docstrings for more details.
   7407 
   7408     Below is a list of editing and navigating commands that now rely
   7409     on =org-element.el=.
   7410 
   7411 **** [[doc::org-fill-paragraph][org-fill-paragraph]] has been completely rewritten
   7412 
   7413      The filling mechanisms now rely on org-element, trying to do the
   7414      right thing on each element in various contexts.  E.g. filling in
   7415      a list item will preserve indentation; filling in message-mode
   7416      will fall back on the relevant filling functions; etc.
   7417 
   7418 **** [[doc::org-metaup][org-metaup]] and [[doc::org-metadown][org-metadown]] will drag the element backward/forward
   7419 
   7420      If you want to get the old behavior (i.e. moving a line up and
   7421      down), you can first select the line as an active region, then
   7422      =org-metaup= or =org-metadown= to move the region backward or
   7423      forward.  This also works with regions bigger than just one line.
   7424 
   7425 **** [[doc::org-up-element][org-up-element]] and [[doc::org-down-element][org-down-element]] (respectively =C-c C-^= and =C-c C-_=)
   7426 
   7427      This will move the point up/down in the hierarchy of elements.
   7428 
   7429 **** [[doc::org-backward-element][org-backward-element]] and [[doc::org-forward-element][org-forward-element]] (respectively =M-{= and =M-}=)
   7430 
   7431      This will move the point backward/forward in the hierarchy of
   7432      elements.
   7433 
   7434 **** [[doc::org-narrow-to-element][org-narrow-to-element]] will narrow to the element at point
   7435 **** [[doc::org-mark-element][org-mark-element]] will mark the element at point
   7436 
   7437      This command is bound to =M-h= and will mark the element at
   7438      point.  If the point is at a paragraph, it will mark the
   7439      paragraph.  If the point is at a list item, it will mark the list
   7440      item.  Etc.
   7441 
   7442      Note that if point is at the beginning of a list, it will mark
   7443      the whole list.
   7444 
   7445      To mark a subtree, you can either use =M-h= on the headline
   7446      (since there is no ambiguity about the element you're at) or
   7447      [[doc::org-mark-subtree][org-mark-subtree]] (=C-c @=) anywhere in the subtree.
   7448 
   7449      Invoking [[doc::org-mark-element][org-mark-element]] repeatedly will try to mark the next
   7450      element on top of the previous one(s).  E.g. hitting =M-h= twice
   7451      on a headline will mark the current subtree and the next one on
   7452      the same level.
   7453 
   7454 *** Org Agenda
   7455 
   7456 **** New option [[doc::org-agenda-sticky][org-agenda-sticky]]
   7457 
   7458      There is a new option =org-agenda-sticky= which enables "sticky"
   7459      agendas.  Sticky agendas remain opened in the background so that
   7460      you don't need to regenerate them each time you hit the
   7461      corresponding keystroke.  This is a big time saver.
   7462 
   7463      When [[doc::org-agenda-sticky][org-agenda-sticky]] is =non-nil=, the agenda buffer will be
   7464      named using the agenda key and its description.  In sticky
   7465      agendas, the =q= key will just bury the agenda buffers and
   7466      further agenda commands will show existing buffer instead of
   7467      generating new ones.
   7468 
   7469      If [[doc::org-agenda-sticky][org-agenda-sticky]] is set to =nil=, =q= will kill the single
   7470      agenda buffer.
   7471 
   7472 **** New option [[doc::org-agenda-custom-commands-contexts][org-agenda-custom-commands-contexts]]
   7473 
   7474      Setting this option allows you to define specific context where
   7475      agenda commands should be available from.  For example, when set
   7476      to this value
   7477 
   7478      #+BEGIN_SRC emacs-lisp
   7479   (setq org-agenda-custom-commands-contexts
   7480         '(("p" (in-file . "\\.txt"))))
   7481 #+END_SRC
   7482 
   7483      then the =p= agenda command will only be available from buffers
   7484      visiting *.txt files.  See the docstring and the manual for more
   7485      details on how to use this.
   7486 
   7487 **** Changes in bulk actions
   7488 
   7489      The set of commands starting with =k ...= as been deleted and the
   7490      features have been merged into the "bulk action" feature.
   7491 
   7492      After you marked some entries in the agenda, if you call =B s=,
   7493      the agenda entries will be rescheduled using the date at point if
   7494      on a date header.  If you are on an entry with a timestamp, you
   7495      will be prompted for a date to reschedule your marked entries to,
   7496      using the timestamp at point as the default prompt.
   7497 
   7498      You can now use =k= to capture the marked entry and use the date
   7499      at point as an overriding date for the capture template.
   7500 
   7501      To bind this behavior to =M-x org-capture RET= (or its
   7502      keybinding), set the new option [[doc::org-capture-use-agenda-date][org-capture-use-agenda-date]] to
   7503      =t=.
   7504 
   7505 **** =N= and =P= in the agenda will move to the next/previous item
   7506 
   7507 **** New command [[doc::org-agenda-bulk-mark-all][org-agenda-bulk-mark-all]] to mark all items
   7508 
   7509      This new command is bound to =*= in agenda mode.
   7510 
   7511      There is also a new option [[doc::org-agenda-bulk-mark-char][org-agenda-bulk-mark-char]] to set the
   7512      character to use as a mark for bulk actions.
   7513 
   7514 **** New option [[doc::org-agenda-persistent-marks][org-agenda-persistent-marks]]
   7515 
   7516      When set to =non-nil=, marks will remain visible after a bulk
   7517      action.  You can temporarily toggle this by pressing =p= when
   7518      invoking [[doc::org-agenda-bulk-action][org-agenda-bulk-action]].  Marks are deleted if your
   7519      rebuild the agenda buffer or move to another date/span (e.g. with
   7520      =f= or =w=).
   7521 
   7522 **** New option [[doc::org-agenda-skip-timestamp-if-deadline-is-shown][org-agenda-skip-timestamp-if-deadline-is-shown]]
   7523 
   7524      =Non-nil= means skip timestamp line if same entry shows because
   7525      of deadline.
   7526 
   7527      In the agenda of today, an entry can show up multiple times
   7528      because it has both a plain timestamp and has a nearby deadline.
   7529      When this variable is t, then only the deadline is shown and the
   7530      fact that the entry has a timestamp for or including today is not
   7531      shown.  When this variable is =nil=, the entry will be shown
   7532      several times.
   7533 
   7534 **** New =todo-unblocked= and =nottodo-unblocked= skip conditions
   7535 
   7536      See the [[https://orgmode.org/cgit.cgi/org-mode.git/commit/?id=f426da][git commit]] for more explanations.
   7537 
   7538 **** Allow category filtering in the agenda
   7539 
   7540      You can now filter the agenda by category.  Pressing "<" will
   7541      filter by the category of the item on the current line, and
   7542      pressing "<" again will remove the filter.  You can combine tag
   7543      filters and category filters.
   7544 
   7545      You can use =org-agenda-category-filter= in your custom agenda
   7546      views and =org-agenda-category-filter-preset= in your main
   7547      configuration.
   7548 
   7549      See also the new command [[doc::org-agenda-filter-by-top-category][org-agenda-filter-by-top-category]]:
   7550      hitting =^= will filter by "Top" category: only show entries that
   7551      are of the same category than the Top category of the entry at
   7552      point.
   7553 
   7554 *** Org Links
   7555 
   7556 **** Inserting links
   7557 
   7558      When inserting links through [[doc::org-insert-link][org-insert-link]], the description is
   7559      now displayed first, followed by the literal link, as the
   7560      description is often more useful when you look for the link you
   7561      want to insert.
   7562 
   7563      Completion now complete both literal links and description.  If
   7564      you complete a description, the literal link and its description
   7565      will be inserted directly, whereas when you complete the literal
   7566      link, you will be prompted for a description (as with Org 7.8.)
   7567 
   7568      In the completion buffer, links to the current buffer are now
   7569      highlighted.
   7570 
   7571 **** New templates =%h= and =%(sexp)= for abbreviated links
   7572 
   7573      On top of =%s= template, which is replaced by the link tag in
   7574      abbreviated links, you can now use =%h= (which does the same than =%s=
   7575      but does not hexify the tag) and =%(sexp)= (which can run a function
   7576      that takes the tag as its own argument.)
   7577 
   7578 **** New link type =help=
   7579 
   7580      You can now create links from =help= buffers.
   7581 
   7582      For example, if you request help for the command [[doc::org-agenda][org-agenda]] with
   7583      =C-h f org-agenda RET=, creating a link from this buffer will let
   7584      you go back to the same buffer.
   7585 
   7586 **** New command [[doc::org-insert-all-links][org-insert-all-links]]
   7587 
   7588      This will insert all links as list items.  With a universal
   7589      prefix argument, links will not be deleted from the variable
   7590      =org-stored-links=.
   7591 
   7592      This new command is bound to =C-c C-M-l=.
   7593 
   7594 **** New option [[doc::org-url-hexify-p][org-url-hexify-p]]
   7595 
   7596      When set to =nil=, the =URL= part of a link will not be hexified.
   7597 
   7598 **** Org can now open multiple shell links
   7599 
   7600 **** New option [[doc::org-doi-server-url][org-doi-server-url]] to specify an alternate DOI server
   7601 
   7602 **** RET now follows time stamps links
   7603 
   7604 *** Org Editing
   7605 
   7606 **** [[doc::org-todo][org-todo]] and =org-archive-*= can now loop in the active region
   7607 
   7608      When [[doc::org-loop-over-headlines-in-active-region][org-loop-over-headlines-in-active-region]] is =non-nil=, using
   7609      [[doc::org-todo][org-todo]] or =org-archive-*= commands in the active region will
   7610      loop over headlines.  This is handy if you want to set the TODO
   7611      keyword for several items, or archive them quickly.
   7612 
   7613 **** You can now set tags for headlines in a region
   7614 
   7615      If [[doc::org-loop-over-headlines-in-active-region][org-loop-over-headlines-in-active-region]] is =non-nil=, then
   7616      selecting the region and hitting =C-c C-q= will set the tags for
   7617      all headlines in the region.
   7618 
   7619 **** New command [[doc::org-insert-drawer][org-insert-drawer]] to insert a drawer interactively
   7620 
   7621 **** Comments start with "^[ \t]*# " anywhere on a line
   7622 
   7623      Note that the space after the hashtag is mandatory.  Comments
   7624      with "^#+" are not supported anymore.
   7625 
   7626 **** New speed key =#= to toggle the COMMENT cookie on a headline
   7627 
   7628 **** =indent-region-function= is now set to [[doc::org-indent-region][org-indent-region]]
   7629 
   7630      =C-M-\= should now produce useful results.
   7631 
   7632      You can unindent the buffer with [[doc::org-unindent-buffer][org-unindent-buffer]].
   7633 
   7634 **** New option [[doc::org-allow-promoting-top-level-subtree][org-allow-promoting-top-level-subtree]]
   7635 
   7636      When =non-nil=, =S-M-<left>= will promote level-1 subtrees
   7637      containing other subtrees.  The level-1 headline will be
   7638      commented out.  You can revert to the previous state with =M-x
   7639      undo RET=.
   7640 
   7641 *** Org Clock
   7642 
   7643 **** New keybinding =C-c C-x C-z= for [[doc::org-clock-resolve][org-clock-resolve]]
   7644 
   7645 **** New keybinding =C-c C-x C-q= for [[doc::org-clock-cancel][org-clock-cancel]]
   7646 
   7647 **** New command [[doc::org-clock-in-last][org-clock-in-last]] to clock in the last clocked item
   7648 
   7649      This command is bound to =C-c C-x C-x= and will clock in the last
   7650      clocked entry, if any.
   7651 
   7652 **** =C-u M-x= [[doc::org-clock-out][org-clock-out]] =RET= now prompts for a state to switch to
   7653 
   7654 **** =S-M-<up/down>= on a clock timestamps adjusts the previous/next clock
   7655 
   7656 **** New option [[doc::org-clock-continuously][org-clock-continuously]]
   7657 
   7658      When set to =nil=, clocking in a task will first try to find the
   7659      last clocked out task and restart from when that task was clocked
   7660      out.
   7661 
   7662      You can temporarily activate continuous clocking with =C-u C-u
   7663      C-u M-x= [[doc::org-clock-in][org-clock-in]] =RET= (three universal prefix arguments)
   7664      and =C-u C-u M-x= [[doc::org-clock-in-last][org-clock-in-last]] =RET= (two universal prefix
   7665      arguments).
   7666 
   7667 
   7668 **** New option [[doc::org-clock-frame-title-format][org-clock-frame-title-format]]
   7669 
   7670      This option sets the value of =frame-title-format= when clocking
   7671      in.
   7672 
   7673 **** New options for controlling the clockreport display
   7674 
   7675      [[doc::org-clock-file-time-cell-format][org-clock-file-time-cell-format]]: Format string for the file time
   7676      cells in clockreport.
   7677 
   7678      [[doc::org-clock-total-time-cell-format][org-clock-total-time-cell-format]]: Format string for the total
   7679      time cells in clockreport.
   7680 
   7681 
   7682 **** New options for controlling the clock/timer display
   7683 
   7684      [[doc::org-clock-clocked-in-display][org-clock-clocked-in-display]]: control whether the current clock
   7685      is displayed in the mode line and/or frame title.
   7686 
   7687      [[doc::org-timer-display][org-timer-display]]: control whether the current timer is displayed
   7688      in the mode line and/or frame title.
   7689 
   7690      This allows the clock and timer to be displayed in the frame
   7691      title instead of, or as well as, the mode line.  This is useful
   7692      for people with limited space in the mode line but with ample
   7693      space in the frame title.
   7694 
   7695 *** Org Appearance
   7696 
   7697 **** New option [[doc::org-custom-properties][org-custom-properties]]
   7698 
   7699      The visibility of properties listed in this options can be turn
   7700      on/off with [[doc::org-toggle-custom-properties-visibility][org-toggle-custom-properties-visibility]].  This might
   7701      be useful for properties used by third-part tools or that you
   7702      don't want to see temporarily.
   7703 
   7704 **** New command [[doc::org-redisplay-inline-images][org-redisplay-inline-images]]
   7705 
   7706      This will redisplay all images.  It is bound to =C-c C-x C-M-v=.
   7707 
   7708 **** New entities in =org-entities.el=
   7709 
   7710      There are these new entities:
   7711 
   7712      : ("tilde" "\\~{}" nil "&tilde;" "~" "~" "~")
   7713      : ("slash" "/" nil "/" "/" "/" "/")
   7714      : ("plus" "+" nil "+" "+" "+" "+")
   7715      : ("under" "\\_" nil "_" "_" "_" "_")
   7716      : ("equal" "=" nil "=" "=" "=" "=")
   7717      : ("asciicirc" "\\textasciicircum{}" nil "^" "^" "^" "^")
   7718 
   7719 **** New face =org-list-dt= for definition terms
   7720 **** New face =org-date-selected= for the selected calendar day
   7721 **** New face value for =org-document-title=
   7722 
   7723      The face is back to a normal height.
   7724 
   7725 *** Org Columns
   7726 
   7727 **** New speed command =:= to activate the column view
   7728 **** New special property =CLOCKSUM_T= to display today's clocked time
   7729 
   7730      You can use =CLOCKSUM_T= the same way you use =CLOCKSUM=.  It
   7731      will display the time spent on tasks for today only.
   7732 
   7733 **** Use the =:COLUMNS:= property in columnview dynamic blocks
   7734 
   7735      If the =:COLUMNS:= is set in a subtree, the columnview dynamic
   7736      block will use its value as the column format.
   7737 
   7738 **** Consider inline tasks when computing a sum
   7739 
   7740 *** Org Dates and Time Stamps
   7741 
   7742 **** Enhanced [[doc::org-sparse-tree][org-sparse-tree]]
   7743 
   7744      =C-c /= can now check for time ranges.
   7745 
   7746      When checking for dates with =C-c /= it is useful to change the
   7747      type of dates that you are interested in.  You can now do this
   7748      interactively with =c= after =C-c /= and/or by setting
   7749      [[doc::org-sparse-tree-default-date-type][org-sparse-tree-default-date-type]] to the default value you want.
   7750 
   7751 **** Support for hourly repeat cookies
   7752 
   7753      You can now use
   7754 
   7755      : SCHEDULED: <2012-08-20 lun. 08:00 +1h>
   7756 
   7757      if you want to add an hourly repeater to an entry.
   7758 
   7759 **** =C-u C-u C-c .= inserts a time-stamp with no prompt
   7760 
   7761 **** When (setq [[doc::org-read-date-prefer-future][org-read-date-prefer-future]] 'time), accept days in the prompt
   7762 
   7763      "8am Wed" and "Wed 8am" are now acceptable values when entering a
   7764      date from the prompt.  If [[doc::org-read-date-prefer-future][org-read-date-prefer-future]] is set to
   7765      =time=, this will produce the expected prompt indication.
   7766 
   7767 **** New option [[doc::org-datetree-add-timestamp][org-datetree-add-timestamp]]
   7768 
   7769      When set to =non-nil=, datetree entries will also have a
   7770      timestamp.  This is useful if you want to see these entries in a
   7771      sparse tree with =C-c /=.
   7772 
   7773 *** Org Capture
   7774 
   7775 **** New command [[doc::org-capture-string][org-capture-string]]
   7776 
   7777      M-x [[doc::org-capture-string][org-capture-string]] RET will prompt for a string and a capture
   7778      template.  The string will be used as an annotation for the
   7779      template.  This is useful when capturing in batch mode as it lets
   7780      you define the content of the template without being in Emacs.
   7781 
   7782 **** New option [[doc::org-capture-templates-contexts][org-capture-templates-contexts]]
   7783 
   7784      Setting this option allows you to define specific context where
   7785      capture templates should be available from.  For example, when
   7786      set to this value
   7787 
   7788      #+BEGIN_SRC emacs-lisp
   7789   (setq org-capture-templates-contexts
   7790         '(("c" (in-mode . "message-mode"))))
   7791 #+END_SRC
   7792 
   7793      then the =c= capture template will only be available from
   7794      =message-mode= buffers.  See the docstring and the manual for
   7795      more details on how to use this.
   7796 
   7797 **** New =%l= template to insert the literal link
   7798 **** New option [[doc::org-capture-bookmark][org-capture-bookmark]]
   7799 
   7800      Org used to automatically add a bookmark with capture a note.
   7801      You can now turn this on by setting [[doc::org-capture-bookmark][org-capture-bookmark]] to
   7802      =nil=.
   7803 
   7804 **** Expand =%<num>= escape sequences into text entered for <num>'th =%^{PROMPT}= escape
   7805 
   7806      See the manual for more explanations.
   7807 
   7808 **** More control over empty lines
   7809 
   7810      You can use =:empty-lines-before= and =:empty-lines-after= to
   7811      control the insertion of empty lines.  Check the manual for more
   7812      explanations.
   7813 
   7814 **** New hook [[doc::org-capture-prepare-finalize-hook][org-capture-prepare-finalize-hook]]
   7815 
   7816      This new hook runs before the finalization process starts.
   7817 
   7818 *** Org Export
   7819 
   7820 **** New functions =orgtbl-to-table.el= and =orgtbl-to-unicode=
   7821 
   7822      =orgtbl-to-table.el= convert the table to a =table.el= table, and
   7823      =orgtbl-to-unicode= will use =ascii-art-to-unicode.el= (when
   7824      available) to print beautiful tables.
   7825 
   7826 **** [[doc::org-table-export][org-table-export]] now a bit clever about the target format
   7827 
   7828      When you specify a file name like =table.csv=, [[doc::org-table-export][org-table-export]]
   7829      will now suggest =orgtbl-to-csv= the default method for exporting
   7830      the table.
   7831 
   7832 **** New option [[doc::org-export-date-timestamp-format][org-export-date-timestamp-format]]
   7833 
   7834      The option allows to set a time string format for Org timestamps
   7835      in the #+DATE option.
   7836 
   7837 **** LaTeX: New options for exporting table rules :tstart, :hline and :tend
   7838 
   7839      See [[doc::org-export-latex-tables-hline][org-export-latex-tables-hline]] and [[doc::org-export-latex-tables-tend][org-export-latex-tables-tend]].
   7840 
   7841 **** LaTeX: You can now set =:hfmt= from =#+ATTR_LaTeX=
   7842 **** Beamer: Add support and keybinding for the =exampleblock= environment
   7843 
   7844      Add support for these languages in [[doc::org-export-language-setup][org-export-language-setup]].
   7845      More languages are always welcome.
   7846 
   7847 **** Beamer: New option [[doc::org-beamer-inherited-properties][org-beamer-inherited-properties]]
   7848 
   7849      This option allows Beamer export to inherit some properties.
   7850      Thanks to Carsten for implementing this.
   7851 
   7852 **** ODT: Add support for ODT export in org-bbdb.el
   7853 **** ODT: Add support for indented tables (see [[https://orgmode.org/cgit.cgi/org-mode.git/commit/?id=e9fd33][this commit]] for details)
   7854 **** ODT: Improve the conversion from ODT to other formats
   7855 **** ASCII: Swap the level-1/level-2 characters to underline the headlines
   7856 **** Support for Chinese, simplified Chinese, Russian, Ukrainian and Japanese
   7857 **** HTML: New option [[doc::org-export-html-date-format-string][org-export-html-date-format-string]]
   7858 
   7859      Format string to format the date and time in HTML export.  Thanks
   7860      to Sébastien Vauban for this patch.
   7861 
   7862 *** Org Babel
   7863 
   7864 **** New =:results drawer= parameter
   7865 
   7866 =:results drawer= replaces =:results wrap=, which is deprecated but still
   7867 supported.
   7868 
   7869 **** =:results org= now put results in a =#+BEGIN_SRC org= block
   7870 
   7871 =:results org= used to put results in a =#+BEGIN_ORG= block but it now puts
   7872 results in a =#+BEGIN_SRC org= block, with comma-escaped lines.
   7873 
   7874 =#+BEGIN_ORG= blocks are obsolete.
   7875 
   7876 **** Exporting =#+BEGIN_SRC org= blocks exports the code
   7877 
   7878 It used to exports the results of the code.
   7879 
   7880 *** Miscellaneous
   7881 
   7882 **** New menu entry for [[doc::org-refile][org-refile]]
   7883 **** Allow capturing to encrypted entries
   7884 
   7885 If you capture to an encrypted entry, it will be decrypted before
   7886 inserting the template then re-encrypted after finalizing the capture.
   7887 
   7888 **** Inactive timestamps are now handled in tables
   7889 
   7890 Calc can do computation on active time-stamps like <2012-09-29 sat.>.
   7891 Inactive time-stamps in a table's cell are now internally deactivated so
   7892 that Calc formulas can operate on them.
   7893 
   7894 **** [[doc::org-table-number-regexp][org-table-number-regexp]] can now accept comma as decimal mark
   7895 **** Org allows a new property =APPT_WARNTIME=
   7896 
   7897      You can set it with the =W= speedy key or set it manually.  When
   7898      set, exporting to iCalendar and [[doc::org-agenda-to-appt][org-agenda-to-appt]] will use the
   7899      value of this property as the number of minutes for the warning
   7900      alarm.
   7901 
   7902 **** New command [[doc::org-inc-effort][org-inc-effort]]
   7903 
   7904      This will increment the effort value.
   7905 
   7906      It is bound to =C-c C-x E= and to =E= as a speedy command.
   7907 
   7908 **** Attach: Add support for creating symbolic links
   7909 
   7910      =org-attach-method= now supports a new method =lns=, allowing to
   7911      attach symbolic links.
   7912 
   7913 **** Archive: you can now archive to a datetree
   7914 
   7915 **** New option [[doc::org-inlinetask-show-first-star][org-inlinetask-show-first-star]]
   7916 
   7917      =Non-nil= means display the first star of an inline task as
   7918      additional marker.  When =nil=, the first star is not shown.
   7919 
   7920 **** New option [[doc::org-latex-preview-ltxpng-directory][org-latex-preview-ltxpng-directory]]
   7921 
   7922      This lets you define the path for the =ltxpng/= directory.
   7923 
   7924 **** You can now use imagemagick instead of dvipng to preview LaTeX fragments
   7925 **** You can now turn off [[doc::orgstruct++-mode][orgstruct++-mode]] safely
   7926 **** =C-u C-c C-c= on list items to add check boxes
   7927 
   7928      =C-u C-c C-c= will add an empty check box on a list item.
   7929 
   7930      When hit from the top of the list, it will add check boxes for
   7931      all top level list items.
   7932 
   7933 **** =org-list-ending-method= and =org-list-end-regexp= are now obsolete
   7934 
   7935      Fall back on using =org-list-end-re= only, which see.
   7936 
   7937 **** org-feed.el now expands =%(sexp)= templates
   7938 **** New option [[doc::org-protocol-data-separator][org-protocol-data-separator]]
   7939 
   7940 **** New option [[doc::org-ditaa-jar-option][org-ditaa-jar-option]] to specify the ditaa jar file
   7941 
   7942 **** New possible value for [[doc::org-loop-over-headlines-in-active-region][org-loop-over-headlines-in-active-region]]
   7943 
   7944      When [[doc::org-loop-over-headlines-in-active-region][org-loop-over-headlines-in-active-region]] is set to
   7945      =start-level=, the command will loop over the active region but
   7946      will only act upon entries that are of the same level than the
   7947      first headline in the region.
   7948 
   7949 **** New option [[doc::org-habit-show-all-today][org-habit-show-all-today]]
   7950 
   7951      When set to =t=, show all (even unscheduled) habits on today's
   7952      agenda.
   7953 
   7954 ** Important bug fixes
   7955 
   7956 *** M-TAB on options keywords perform completion correctly again
   7957 
   7958     If you hit =M-TAB= on keywords like =#+TITLE=, Org will try to
   7959     perform completion with meaningful values.
   7960 
   7961 *** Add licenses to javascript embedded and external code snippets
   7962 
   7963     Embedded javascript code produced when exporting an Org file to
   7964     HTML is now licensed under GPLv3 (or later), and the copyright is
   7965     owned by the Free Software Foundation, Inc.
   7966 
   7967     The javascript code for embedding MathJax in the browser mentions
   7968     the MathJax copyright and the Apache 2.0 license.
   7969 
   7970     The javascript code for embedding =org-injo.js= in the browser
   7971     mentions the copyright of Sebastian Rose and the GPLv3 (or later)
   7972     license.
   7973 
   7974     =org-export-html-scripts= is now a variable, so that you can adapt
   7975     the code and the license to your needs.
   7976 
   7977     See https://www.gnu.org/philosophy/javascript-trap.html for
   7978     explanations on why these changes were necessary.
   7979 
   7980 * Version 7.8.11
   7981 
   7982 ** Incompatible changes
   7983 
   7984 *** Emacs 21 support has been dropped
   7985 
   7986     Do not use Org mode 7.xx with Emacs 21, use [[https://orgmode.org/org-6.36c.zip][version 6.36c]] instead.
   7987 
   7988 *** XEmacs support requires the XEmacs development version
   7989 
   7990     To use Org mode 7.xx with XEmacs, you need to run the developer
   7991     version of XEmacs.  We were about to drop XEmacs support entirely,
   7992     but Michael Sperber stepped in and made changes to XEmacs that
   7993     made it easier to keep the support.  Thanks to Michael for this
   7994     last-minute save.
   7995 
   7996 *** New keys for TODO sparse trees
   7997 
   7998     The key =C-c C-v= is now reserved for Org Babel action.  TODO
   7999     sparse trees can still be made with =C-c / t= (all not-done
   8000     states) and =C-c / T= (specific states).
   8001 
   8002 *** The Agenda =org-agenda-ndays= is now obsolete
   8003 
   8004     The variable =org-agenda-ndays= is obsolete - please use
   8005     =org-agenda-span= instead.
   8006 
   8007     Thanks to Julien Danjou for this.
   8008 
   8009 *** Changes to the intended use of =org-export-latex-classes=
   8010 
   8011     So far this variable has been used to specify the complete header
   8012     of the LaTeX document, including all the =\usepackage= calls
   8013     necessary for the document.  This setup makes it difficult to
   8014     maintain the list of packages that Org itself would like to call,
   8015     for example for the special symbol support it needs.
   8016 
   8017     First of all, you can *opt out of this change* in the following
   8018     way: You can say: /I want to have full control over headers, and I
   8019     will take responsibility to include the packages Org needs/.  If
   8020     that is what you want, add this to your configuration and skip the
   8021     rest of this section (except maybe for the description of the
   8022     =[EXTRA]= place holder):
   8023 
   8024     #+begin_src emacs-lisp
   8025    (setq org-export-latex-default-packages-alist nil
   8026          org-export-latex-packages-alist nil)
   8027     #+end_src
   8028 
   8029     /Continue to read here if you want to go along with the modified
   8030     setup./
   8031 
   8032     There are now two variables that should be used to list the LaTeX
   8033     packages that need to be included in all classes.  The header
   8034     definition in =org-export-latex-classes= should then not contain
   8035     the corresponding =\usepackage= calls (see below).
   8036 
   8037     The two new variables are:
   8038 
   8039     1. =org-export-latex-default-packages-alist= :: This is the
   8040          variable where Org-mode itself puts the packages it needs.
   8041          Normally you should not change this variable.  The only
   8042          reason to change it anyway is when one of these packages
   8043          causes a conflict with another package you want to use.  Then
   8044          you can remove that packages and hope that you are not using
   8045          Org-mode functionality that needs it.
   8046 
   8047     2. =org-export-latex-packages-alist= :: This is the variable where
   8048          you can put the packages that you'd like to use across all
   8049          classes.
   8050 
   8051     The sequence how these customizations will show up in the LaTeX
   8052     document are:
   8053 
   8054     1. Header from =org-export-latex-classes=
   8055     2. =org-export-latex-default-packages-alist=
   8056     3. =org-export-latex-packages-alist=
   8057     4. Buffer-specific things set with =#+LaTeX_HEADER:=
   8058 
   8059     If you want more control about which segment is placed where, or
   8060     if you want, for a specific class, have full control over the
   8061     header and exclude some of the automatic building blocks, you can
   8062     put the following macro-like place holders into the header:
   8063 
   8064     #+begin_example
   8065     [DEFAULT-PACKAGES]      \usepackage statements for default packages
   8066     [NO-DEFAULT-PACKAGES]   do not include any of the default packages
   8067     [PACKAGES]              \usepackage statements for packages
   8068     [NO-PACKAGES]           do not include the packages
   8069     [EXTRA]                 the stuff from #+LaTeX_HEADER
   8070     [NO-EXTRA]              do not include #+LaTeX_HEADER stuff
   8071     #+end_example
   8072 
   8073     If you have currently customized =org-export-latex-classes=, you
   8074     should revise that customization and remove any package calls that
   8075     are covered by =org-export-latex-default-packages-alist=.  This
   8076     applies to the following packages:
   8077 
   8078     - inputenc
   8079     - fontenc
   8080     - fixltx2e
   8081     - graphicx
   8082     - longtable
   8083     - float
   8084     - wrapfig
   8085     - soul
   8086     - t1enc
   8087     - textcomp
   8088     - marvosym
   8089     - wasysym
   8090     - latexsym
   8091     - amssymb
   8092     - hyperref
   8093 
   8094     If one of these packages creates a conflict with another package
   8095     you are using, you can remove it from
   8096     =org-export-latex-default-packages-alist=.  But then you risk that
   8097     some of the advertised export features of Org will not work
   8098     properly.
   8099 
   8100     You can also consider moving packages that you use in all classes
   8101     to =org-export-latex-packages-alist=.  If necessary, put the place
   8102     holders so that the packages get loaded in the right sequence.  As
   8103     said above, for backward compatibility, if you omit the place
   8104     holders, all the variables will dump their content at the end of
   8105     the header.
   8106 
   8107 *** The constant =org-html-entities= is obsolete
   8108 
   8109     Its content is now part of the new constant =org-entities=, which
   8110     is defined in the file org-entities.el.  =org-html-entities= was
   8111     an internal variable, but it is possible that some users did write
   8112     code using it.
   8113 
   8114 *** =org-bbdb-anniversary-format-alist= has changed
   8115 
   8116     Please check the docstring and update your settings accordingly.
   8117 
   8118 *** Deleted =org-mode-p=
   8119 
   8120     This function has been deleted: please update your code.
   8121 
   8122 ** Important new features
   8123 
   8124 *** New Org to ODT exporter
   8125 
   8126     Jambunathan's Org to ODT exporter is now part of Org.
   8127 
   8128     To use it, it `C-c C-e o' in an Org file.  See the documentation
   8129     for more information on how to customize it.
   8130 
   8131 *** org-capture.el is now the default capture system
   8132 
   8133     This replaces the earlier system org-remember.  The manual only
   8134     describes org-capture, but for people who prefer to continue to
   8135     use org-remember, we keep a static copy of the former manual
   8136     section [[https://orgmode.org/org-remember.pdf][chapter about remember]].
   8137 
   8138     The new system has a technically cleaner implementation and more
   8139     possibilities for capturing different types of data.  See
   8140     [[msg:C46F10DC-DE51-43D4-AFFE-F71E440D1E1F@gmail.com][Carsten's announcement]] for more details.
   8141 
   8142     To switch over to the new system:
   8143 
   8144     1. Run
   8145 
   8146      : M-x org-capture-import-remember-templates RET
   8147 
   8148        to get a translated version of your remember templates into the
   8149        new variable =org-capture-templates=.  This will "mostly" work,
   8150        but maybe not for all cases.  At least it will give you a good
   8151        place to modify your templates.  After running this command,
   8152        enter the customize buffer for this variable with
   8153 
   8154      : M-x customize-variable RET org-capture-templates RET
   8155 
   8156        and convince yourself that everything is OK.  Then save the
   8157        customization.
   8158 
   8159     2. Bind the command =org-capture= to a key, similar to what you did
   8160        with org-remember:
   8161 
   8162      : (define-key global-map "\C-cc" 'org-capture)
   8163 
   8164        If your fingers prefer =C-c r=, you can also use this key once
   8165        you have decided to move over completely to the new
   8166        implementation.  During a test time, there is nothing wrong
   8167        with using both system in parallel.
   8168 
   8169 ** New libraries
   8170 
   8171 *** New Org libraries
   8172 **** org-eshell.el (Konrad Hinsen)
   8173 
   8174      Implement links to eshell buffers.
   8175 
   8176 **** org-special-blocks (Carsten Dominik)
   8177 
   8178      This package generalizes the #+begin_foo and #+end_foo tokens.
   8179 
   8180      To use, put the following in your init file:
   8181 
   8182      #+BEGIN_EXAMPLE
   8183 (require 'org-special-blocks)
   8184 #+END_EXAMPLE
   8185 
   8186      The tokens #+begin_center, #+begin_verse, etc. existed
   8187      previously.  This package generalizes them (at least for the
   8188      LaTeX and html exporters).  When a #+begin_foo token is
   8189      encountered by the LaTeX exporter, it is expanded
   8190      into \begin{foo}.  The text inside the environment is not
   8191      protected, as text inside environments generally is.
   8192      When #+begin_foo is encountered by the html exporter, a div with
   8193      class foo is inserted into the HTML file.  It is up to the user
   8194      to add this class to his or her stylesheet if this div is to mean
   8195      anything.
   8196 
   8197 **** org-taskjuggler.el (Christian Egli)
   8198 
   8199      Christian Egli's /org-taskjuggler.el/ module is now part of Org.
   8200      He also wrote a [[https://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it.
   8201 
   8202 **** org-ctags.el (Paul Sexton)
   8203 
   8204      Targets like =<<my target>>= can now be found by Emacs's etag
   8205      functionality, and Org-mode links can be used to link to
   8206      etags, also in non-Org-mode files.  For details, see the file
   8207      /org-ctags.el/.
   8208 
   8209      This feature uses a new hook =org-open-link-functions= which will
   8210      call function to do something special with text links.
   8211 
   8212      Thanks to Paul Sexton for this contribution.
   8213 
   8214 **** org-docview.el (Jan Böcker)
   8215 
   8216      This new module allows links to various file types using docview, where
   8217      Emacs displays images of document pages.  Docview link types can point
   8218      to a specific page in a document, for example to page 131 of the
   8219      Org-mode manual:
   8220 
   8221      : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]]
   8222 
   8223      Thanks to Jan Böcker for this contribution.
   8224 
   8225 *** New Babel libraries
   8226 
   8227 - ob-picolisp.el (Thorsten Jolitz)
   8228 - ob-fortran.el (Sergey Litvinov)
   8229 - ob-shen.el (Eric Schulte)
   8230 - ob-maxima.el (Eric S Fraga)
   8231 - ob-java.el (Eric Schulte)
   8232 - ob-lilypond.el (Martyn Jago)
   8233 - ob-awk.el (Eric Schulte)
   8234 
   8235 ** Other new features and various enhancements
   8236 
   8237 *** Hyperlinks
   8238 
   8239 **** Org-BibTeX -- major improvements
   8240 
   8241      Provides support for managing bibtex bibliographical references
   8242      data in headline properties.  Each headline corresponds to a
   8243      single reference and the relevant bibliographic meta-data is
   8244      stored in headline properties, leaving the body of the headline
   8245      free to hold notes and comments.  Org-bibtex is aware of all
   8246      standard bibtex reference types and fields.
   8247 
   8248      The key new functions are
   8249 
   8250      - org-bibtex-check :: queries the user to flesh out all required
   8251           (and with prefix argument optional) bibtex fields available
   8252           for the specific reference =type= of the current headline.
   8253 
   8254      - org-bibtex-create :: Create a new entry at the given level,
   8255           using org-bibtex-check to flesh out the relevant fields.
   8256 
   8257      - org-bibtex-yank :: Yank a bibtex entry on the kill ring as a
   8258           formatted Org-mode headline into the current buffer
   8259 
   8260      - org-bibtex-export-to-kill-ring :: Export the current headline
   8261           to the kill ring as a formatted bibtex entry.
   8262 
   8263 **** org-gnus.el now allows link creation from messages
   8264 
   8265      You can now create links from messages.  This is particularly
   8266      useful when the user wants to stored messages that he sends, for
   8267      later check.  Thanks to Ulf Stegemann for the patch.
   8268 
   8269 **** Modified link escaping
   8270 
   8271      David Maus worked on `org-link-escape'.  See [[msg:87k4gysacq.wl%dmaus@ictsoc.de][his message]]:
   8272 
   8273      : Percent escaping is used in Org mode to escape certain characters
   8274      : in links that would either break the parser (e.g. square brackets
   8275      : in link target or description) or are not allowed to appear in
   8276      : a particular link type (e.g. non-ascii characters in a http:
   8277      : link).
   8278      :
   8279      : With this change in place Org will apply percent escaping and
   8280      : unescaping more consistently especially for non-ascii characters.
   8281      : Additionally some of the outstanding bugs or glitches concerning
   8282      : percent escaped links are solved.
   8283 
   8284      Thanks a lot to David for this work.
   8285 
   8286 **** Make =org-store-link= point to directory in a dired buffer
   8287 
   8288      When, in a dired buffer, the cursor is not in a line listing a
   8289      file, `org-store-link' will store a link to the directory.
   8290 
   8291      Patch by Stephen Eglen.
   8292 
   8293 **** Allow regexps in =org-file-apps= to capture link parameters
   8294 
   8295      The way extension regexps in =org-file-apps= are handled has
   8296      changed.  Instead of matching against the file name, the regexps
   8297      are now matched against the whole link, and you can use grouping
   8298      to extract link parameters which you can then use in a command
   8299      string to be executed.
   8300 
   8301      For example, to allow linking to PDF files using the syntax
   8302      =file:/doc.pdf::<page number>=, you can add the following entry
   8303      to org-file-apps:
   8304 
   8305      #+begin_example
   8306      Extension: \.pdf::\([0-9]+\)\'
   8307      Command:   evince "%s" -p %1
   8308      #+end_example
   8309 
   8310      Thanks to Jan Böcker for a patch to this effect.
   8311 
   8312 *** Dates and time
   8313 
   8314 **** Allow relative time when scheduling/adding a deadline
   8315 
   8316      You can now use relative duration strings like "-2d" or "++3w"
   8317      when calling =org-schedule= or =org-deadline=: it will schedule
   8318      (or set the deadline for) the item respectively two days before
   8319      today and three weeks after the current timestamp, if any.
   8320 
   8321      You can use this programmatically: =(org-schedule nil "+2d")=
   8322      will work on the current entry.
   8323 
   8324      You can also use this while (bulk-)rescheduling and
   8325      (bulk-)resetting the deadline of (several) items from the agenda.
   8326 
   8327      Thanks to Memnon Anon for a heads up about this!
   8328 
   8329 **** American-style dates are now understood by =org-read-date=
   8330 
   8331      So when you are prompted for a date, you can now answer like this
   8332 
   8333      #+begin_example
   8334      2/5/3         --> 2003-02-05
   8335      2/5           --> <CURRENT-YEAR>-02-05
   8336      #+end_example
   8337 
   8338 *** Agenda
   8339 
   8340 **** =org-agenda-custom-commands= has a default value
   8341 
   8342      This option used to be `nil' by default.  This now has a default
   8343      value, displaying an agenda and all TODOs.  See the docstring for
   8344      details.  Thanks to Carsten for this.
   8345 
   8346 **** Improved filtering through =org-agenda-to-appt=
   8347 
   8348      The new function allows the user to refine the scope of entries
   8349      to pass to =org-agenda-get-day-entries= and allows to filter out
   8350      entries using a function.
   8351 
   8352      Thanks to Peter Münster for raising a related issue and to
   8353      Tassilo Horn for this idea.  Also thanks to Peter Münster for
   8354      [[git:68ffb7a7][fixing a small bug]] in the final implementation.
   8355 
   8356 **** Allow ap/pm times in agenda time grid
   8357 
   8358      Times in the agenda can now be displayed in am/pm format.  See
   8359      the new variable =org-agenda-timegrid-use-ampm=.  Thanks to
   8360      C. A. Webber for a patch to this effect.
   8361 
   8362 **** Agenda: Added a bulk "scattering" command
   8363 
   8364      =B S= in the agenda buffer will cause tasks to be rescheduled a
   8365      random number of days into the future, with 7 as the default.
   8366      This is useful if you've got a ton of tasks scheduled for today,
   8367      you realize you'll never deal with them all, and you just want
   8368      them to be distributed across the next N days.  When called with
   8369      a prefix arg, rescheduling will avoid weekend days.
   8370 
   8371      Thanks to John Wiegley for this.
   8372 
   8373 *** Exporting
   8374 
   8375 **** Simplification of org-export-html-preamble/postamble
   8376 
   8377      When set to `t', export the preamble/postamble as usual, honoring
   8378      the =org-export-email/author/creator-info= variables.
   8379 
   8380      When set to a formatting string, insert this string.  See the
   8381      docstring of these variable for details about available
   8382      %-sequences.
   8383 
   8384      You can set =:html-preamble= in publishing project in the same
   8385      way: `t' means to honor =:email/creator/author-info=, and a
   8386      formatting string will insert a string.
   8387 
   8388 **** New exporters to Latin-1 and UTF-8
   8389 
   8390      While Ulf Stegemann was going through the entities list to
   8391      improve the LaTeX export, he had the great idea to provide
   8392      representations for many of the entities in Latin-1, and for all
   8393      of them in UTF-8.  This means that we can now export files rich
   8394      in special symbols to Latin-1 and to UTF-8 files.  These new
   8395      exporters can be reached with the commands =C-c C-e n= and =C-c
   8396      C-e u=, respectively.
   8397 
   8398      When there is no representation for a given symbol in the
   8399      targeted coding system, you can choose to keep the TeX-macro-like
   8400      representation, or to get an "explanatory" representation.  For
   8401      example, =\simeq= could be represented as "[approx. equal to]".
   8402      Please use the variable =org-entities-ascii-explanatory= to state
   8403      your preference.
   8404 
   8405 **** HTML export: Add class to outline containers using property
   8406 
   8407      The =HTML_CONTAINER_CLASS= property can now be used to add a
   8408      class name to the outline container of a node in HTML export.
   8409 
   8410 **** Throw an error when creating an image from a LaTeX snippet fails
   8411 
   8412      This behavior can be configured with the new option variable
   8413      =org-format-latex-signal-error=.
   8414 
   8415 **** Support for creating BEAMER presentations from Org-mode documents
   8416 
   8417      Org-mode documents or subtrees can now be converted directly in
   8418      to BEAMER presentation.  Turning a tree into a simple
   8419      presentations is straight forward, and there is also quite some
   8420      support to make richer presentations as well.  See the [[https://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER
   8421      section]] in the manual for more details.
   8422 
   8423      Thanks to everyone who has contributed to the discussion about
   8424      BEAMER support and how it should work.  This was a great example
   8425      for how this community can achieve a much better result than any
   8426      individual could.
   8427 
   8428 *** Refiling
   8429 
   8430 **** Refile targets can now be cached
   8431 
   8432      You can turn on caching of refile targets by setting the variable
   8433      =org-refile-use-cache=.  This should speed up refiling if you
   8434      have many eligible targets in many files.  If you need to update
   8435      the cache because Org misses a newly created entry or still
   8436      offers a deleted one, press =C-0 C-c C-w=.
   8437 
   8438 **** New logging support for refiling
   8439 
   8440      Whenever you refile an item, a time stamp and even a note can be
   8441      added to this entry.  For details, see the new option
   8442      =org-log-refile=.
   8443 
   8444      Thanks to Charles Cave for this idea.
   8445 
   8446 *** Completion
   8447 
   8448 **** In-buffer completion is now done using John Wiegley's pcomplete.el
   8449 
   8450      Thanks to John Wiegley for much of this code.
   8451 
   8452 *** Tables
   8453 
   8454 **** New command =org-table-transpose-table-at-point=
   8455 
   8456      See the docstring.  This hack from Juan Pechiar is now part of
   8457      Org's core.  Thanks to Juan!
   8458 
   8459 **** Display field's coordinates when editing it with =C-c `=
   8460 
   8461      When editing a field with =C-c `=, the field's coordinate will
   8462      the displayed in the buffer.
   8463 
   8464      Thanks to Michael Brand for a patch to this effect.
   8465 
   8466 **** Spreadsheet computation of durations and time values
   8467 
   8468      If you want to compute time values use the =T= flag, either in
   8469      Calc formulas or Elisp formulas:
   8470 
   8471      | Task 1 | Task 2 |   Total |
   8472      |--------+--------+---------|
   8473      |  35:00 |  35:00 | 1:10:00 |
   8474      #+TBLFM: @2$3=$1+$2;T
   8475 
   8476      Values must be of the form =[HH:]MM:SS=, where hours are
   8477      optional.
   8478 
   8479      Thanks to Martin Halder, Eric Schulte and Carsten for code and
   8480      feedback on this.
   8481 
   8482 **** Implement formulas applying to field ranges
   8483 
   8484      Carsten implemented this field-ranges formulas.
   8485 
   8486      : A frequently requested feature for tables has been to be able to define
   8487      : row formulas in a way similar to column formulas.  The patch below allows
   8488      : things like
   8489      :
   8490      : @3=
   8491      : @2$2..@5$7=
   8492      : @I$2..@II$4=
   8493      :
   8494      : as the left hand side for table formulas in order to write a formula that
   8495      : is valid for an entire column or for a rectangular section in a
   8496      : table.
   8497 
   8498      Thanks a lot to Carsten for this.
   8499 
   8500 **** Sending radio tables from org buffers is now allowed
   8501 
   8502      Org radio tables can no also be sent inside Org buffers.  Also,
   8503      there is a new hook which get called after a table has been sent.
   8504 
   8505      Thanks to Seweryn Kokot.
   8506 
   8507 *** Lists
   8508 
   8509 **** Improved handling of lists
   8510 
   8511      Nicolas Goaziou extended and improved the way Org handles lists.
   8512 
   8513      1. Indentation of text determines again end of items in
   8514         lists. So, some text less indented than the previous item
   8515         doesn't close the whole list anymore, only all items more
   8516         indented than it.
   8517 
   8518      2. Alphabetical bullets are implemented, through the use of the
   8519         variable `org-alphabetical-lists'. This also adds alphabetical
   8520         counters like [@c] or [@W].
   8521 
   8522      3. Lists can now safely contain drawers, inline tasks, or various
   8523         blocks, themselves containing lists. Two variables are
   8524         controlling this: `org-list-forbidden-blocks', and
   8525         `org-list-export-context'.
   8526 
   8527      4. Improve `newline-and-indent' (C-j): used in an item, it will
   8528         keep text from moving at column 0. This allows to split text
   8529         and make paragraphs and still not break the list.
   8530 
   8531      5. Improve `org-toggle-item' (C-c -): used on a region with
   8532         standard text, it will change the region into one item. With a
   8533         prefix argument, it will fallback to the previous behavior and
   8534         make every line in region an item. It permits to easily
   8535         integrate paragraphs inside a list.
   8536 
   8537      6. `fill-paragraph' (M-q) now understands lists. It can freely be
   8538         used inside items, or on text just after a list, even with no
   8539         blank line around, without breaking list structure.
   8540 
   8541      Thanks a lot to Nicolas for all this!
   8542 
   8543 *** Inline display of linked images
   8544 
   8545     Images can now be displayed inline.  The key C-c C-x C-v does
   8546     toggle the display of such images.  Note that only image links
   8547     that have no description part will be inlined.
   8548 
   8549 *** Implement offsets for ordered lists
   8550 
   8551     If you want to start an ordered plain list with a number different
   8552     from 1, you can now do it like this:
   8553 
   8554     : 1. [@start:12] will star a lit a number 12
   8555 
   8556 *** Babel: code block body expansion for table and preview
   8557 
   8558     In org-babel, code is "expanded" prior to evaluation. I.e. the
   8559     code that is actually evaluated comprises the code block contents,
   8560     augmented with the extra code which assigns the referenced data to
   8561     variables. It is now possible to preview expanded contents, and
   8562     also to expand code during tangling. This expansion takes
   8563     into account all header arguments, and variables.
   8564 
   8565     A new keybinding `C-c M-b p' bound to `org-babel-expand-src-block'
   8566     can be used from inside of a source code block to preview its
   8567     expanded contents (which can be very useful for debugging).
   8568     tangling
   8569 
   8570     The expanded body can now be tangled, this includes variable
   8571     values which may be the results of other source-code blocks, or
   8572     stored in headline properties or tables. One possible use for this
   8573     is to allow those using org-babel for their emacs initialization
   8574     to store values (e.g. usernames, passwords, etc...) in headline
   8575     properties or in tables.
   8576 
   8577     Org-babel now supports three new header arguments, and new default
   8578     behavior for handling horizontal lines in tables (hlines), column
   8579     names, and rownames across all languages.
   8580 
   8581 *** Editing Convenience and Appearance
   8582 
   8583 **** New command =org-copy-visible= (=C-c C-x v=)
   8584 
   8585      This command will copy the visible text in the region into the
   8586      kill ring.  Thanks to Florian Beck for this function and to
   8587      Carsten for adding it to org.el and documenting it!
   8588 
   8589 **** Make it possible to protect hidden subtrees from being killed by =C-k=
   8590 
   8591      See the new variable =org-ctrl-k-protect-subtree=.  This was a
   8592      request by Scott Otterson.
   8593 
   8594 **** Implement pretty display of entities, sub-, and superscripts.
   8595 
   8596      The command =C-c C-x \= toggles the display of Org's special
   8597      entities like =\alpha= as pretty unicode characters.  Also, sub
   8598      and superscripts are displayed in a pretty way (raised/lower
   8599      display, in a smaller font).  If you want to exclude sub- and
   8600      superscripts, see the variable
   8601      =org-pretty-entities-include-sub-superscripts=.
   8602 
   8603      Thanks to Eric Schulte and Ulf Stegeman for making this possible.
   8604 
   8605 **** New faces for title, date, author and email address lines
   8606 
   8607      The keywords in these lines are now dimmed out, and the title is
   8608      displayed in a larger font, and a special font is also used for
   8609      author, date, and email information.  This is implemented by the
   8610      following new faces:
   8611 
   8612      =org-document-title=
   8613      =org-document-info=
   8614      =org-document-info-keyword=
   8615 
   8616      In addition, the variable =org-hidden-keywords= can be used to
   8617      make the corresponding keywords disappear.
   8618 
   8619      Thanks to Dan Davison for this feature.
   8620 
   8621 **** Simpler way to specify faces for tags and todo keywords
   8622 
   8623      The variables =org-todo-keyword-faces=, =org-tag-faces=, and
   8624      =org-priority-faces= now accept simple color names as
   8625      specifications.  The colors will be used as either foreground or
   8626      background color for the corresponding keyword.  See also the
   8627      variable =org-faces-easy-properties=, which governs which face
   8628      property is affected by this setting.
   8629 
   8630      This is really a great simplification for setting keyword faces.
   8631      The change is based on an idea and patch by Ryan Thompson.
   8632 
   8633 **** <N> in tables now means fixed width, not maximum width
   8634 
   8635      Requested by Michael Brand.
   8636 
   8637 **** Better level cycling function
   8638 
   8639      =TAB= in an empty headline cycles the level of that headline
   8640      through likely states.  Ryan Thompson implemented an improved
   8641      version of this function, which does not depend upon when exactly
   8642      this command is used.  Thanks to Ryan for this improvement.
   8643 
   8644 **** Adaptive filling
   8645 
   8646      For paragraph text, =org-adaptive-fill-function= did not handle
   8647      the base case of regular text which needed to be filled.  This is
   8648      now fixed.  Among other things, it allows email-style ">"
   8649      comments to be filled correctly.
   8650 
   8651      Thanks to Dan Hackney for this patch.
   8652 
   8653 **** `org-reveal' (=C-c C-r=) also decrypts encrypted entries (org-crypt.el)
   8654 
   8655      Thanks to Richard Riley for triggering this change.
   8656 
   8657 **** Better automatic letter selection for TODO keywords
   8658 
   8659      When all first letters of keywords have been used, Org now
   8660      assigns more meaningful characters based on the keywords.
   8661 
   8662      Thanks to Mikael Fornius for this patch.
   8663 
   8664 *** Clocking
   8665 
   8666 **** Clock: Allow synchronous update of timestamps in CLOCK log
   8667 
   8668      Using =S-M-<up/down>= on CLOCK log timestamps will
   8669      increase/decrease the two timestamps on this line so that
   8670      duration will keep the same.  Note that duration can still be
   8671      slightly modified in case a timestamp needs some rounding.
   8672 
   8673      Thanks to Rainer Stengele for this idea.
   8674 
   8675 **** Localized clock tables
   8676 
   8677      Clock tables now support a new =:lang= parameter, allowing
   8678      the user to customize the localization of the table headers.  See
   8679      the variable =org-clock-clocktable-language-setup= which controls
   8680      available translated strings.
   8681 
   8682 **** Show clock overruns in mode line
   8683 
   8684      When clocking an item with a planned effort, overrunning the
   8685      planned time is now made visible in the mode line, for example
   8686      using the new face =org-mode-line-clock-overrun=, or by adding an
   8687      extra string given by =org-task-overrun-text=.
   8688 
   8689      Thanks to Richard Riley for a patch to this effect.
   8690 
   8691 **** Clock reports can now include the running, incomplete clock
   8692 
   8693      If you have a clock running, and the entry being clocked falls
   8694      into the scope when creating a clock table, the time so far spent
   8695      can be added to the total.  This behavior depends on the setting
   8696      of =org-clock-report-include-clocking-task=.  The default is
   8697      =nil=.
   8698 
   8699      Thanks to Bernt Hansen for this useful addition.
   8700 
   8701 *** Misc
   8702 
   8703 **** Improvements with inline tasks and indentation
   8704 
   8705      There is now a configurable way on how to export inline tasks.
   8706      See the new variable =org-inlinetask-export-templates=.
   8707 
   8708      Thanks to Nicolas Goaziou for coding these changes.
   8709 
   8710 **** A property value of =nil= now means to unset a property
   8711 
   8712      This can be useful in particular with property inheritance, if
   8713      some upper level has the property, and some grandchild of it
   8714      would like to have the default settings (i.e. not overruled by a
   8715      property) back.
   8716 
   8717      Thanks to Robert Goldman and Bernt Hansen for suggesting this
   8718      change.
   8719 
   8720 **** New helper functions in org-table.el
   8721 
   8722      There are new functions to access and write to a specific table field.
   8723      This is for hackers, and maybe for the org-babel people.
   8724 
   8725      #+begin_example
   8726      org-table-get
   8727      org-table-put
   8728      org-table-current-line
   8729      org-table-goto-line
   8730      #+end_example
   8731 
   8732 **** Archiving: Allow to reverse order in target node
   8733 
   8734      The new option =org-archive-reversed-order= allows to have
   8735      archived entries inserted in a last-on-top fashion in the target
   8736      node.
   8737 
   8738      This was requested by Tom.
   8739 
   8740 **** Org-reveal: Double prefix arg shows the entire subtree of the parent
   8741 
   8742      This can help to get out of an inconsistent state produced for
   8743      example by viewing from the agenda.
   8744 
   8745      This was a request by Matt Lundin.
   8746 
   8747 * License
   8748 
   8749   This file is part of GNU Emacs.
   8750 
   8751   GNU Emacs is free software: you can redistribute it and/or modify
   8752   it under the terms of the GNU General Public License as published by
   8753   the Free Software Foundation, either version 3 of the License, or
   8754   (at your option) any later version.
   8755 
   8756   GNU Emacs is distributed in the hope that it will be useful,
   8757   but WITHOUT ANY WARRANTY; without even the implied warranty of
   8758   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   8759   GNU General Public License for more details.
   8760 
   8761   You should have received a copy of the GNU General Public License
   8762   along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.