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 ~|~ 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 "˜" "~" "~" "~") 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/>.