dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

ORG-NEWS (264166B)


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