1 ORG NEWS -- history of user-visible changes. -*- org -*-
3 Copyright (C) 2012 Free Software Foundation, Inc.
4 See the end of the file for license conditions.
6 Please send Org bug reports to emacs-orgmode@gnu.org.
10 ** New keys for TODO sparse trees
15 The key =C-c C-v= is now reserved for Org Babel action. TODO sparse
16 trees can still be made with =C-c / t= (all not-done states) and =C-c /
19 ** The Agenda =org-agenda-ndays= is now obsolete
24 The variable =org-agenda-ndays= is obsolete - please use
25 =org-agenda-span= instead.
27 Thanks to Julien Danjou for this.
29 ** Changes to the intended use of =org-export-latex-classes=
34 So far this variable has been used to specify the complete header of the
35 LaTeX document, including all the =\usepackage= calls necessary for the
36 document. This setup makes it difficult to maintain the list of
37 packages that Org itself would like to call, for example for the special
38 symbol support it needs.
40 First of all, you can *opt out of this change* in the following way: You
41 can say: /I want to have full control over headers, and I will take
42 responsibility to include the packages Org needs/. If that is what you
43 want, add this to your configuration and skip the rest of this section
44 (except maybe for the description of the =[EXTRA]= place holder):
46 #+begin_src emacs-lisp
47 (setq org-export-latex-default-packages-alist nil
48 org-export-latex-packages-alist nil)
51 /Continue to read here if you want to go along with the modified setup./
53 There are now two variables that should be used to list the LaTeX
54 packages that need to be included in all classes. The header definition
55 in =org-export-latex-classes= should then not contain the corresponding
56 =\usepackage= calls (see below).
58 The two new variables are:
60 1. =org-export-latex-default-packages-alist= :: This is the variable
61 where Org-mode itself puts the packages it needs. Normally you
62 should not change this variable. The only reason to change it
63 anyway is when one of these packages causes a conflict with another
64 package you want to use. Then you can remove that packages and
65 hope that you are not using Org-mode functionality that needs it.
67 2. =org-export-latex-packages-alist= :: This is the variable where you
68 can put the packages that you'd like to use across all classes.
70 The sequence how these customizations will show up in the LaTeX
73 1. Header from =org-export-latex-classes=
74 2. =org-export-latex-default-packages-alist=
75 3. =org-export-latex-packages-alist=
76 4. Buffer-specific things set with =#+LaTeX_HEADER:=
78 If you want more control about which segment is placed where, or if you
79 want, for a specific class, have full control over the header and
80 exclude some of the automatic building blocks, you can put the following
81 macro-like place holders into the header:
84 [DEFAULT-PACKAGES] \usepackage statements for default packages
85 [NO-DEFAULT-PACKAGES] do not include any of the default packages
86 [PACKAGES] \usepackage statements for packages
87 [NO-PACKAGES] do not include the packages
88 [EXTRA] the stuff from #+LaTeX_HEADER
89 [NO-EXTRA] do not include #+LaTeX_HEADER stuff
92 If you have currently customized =org-export-latex-classes=, you should
93 revise that customization and remove any package calls that are covered
94 by =org-export-latex-default-packages-alist=. This applies to the
113 If one of these packages creates a conflict with another package you are
114 using, you can remove it from =org-export-latex-default-packages-alist=.
115 But then you risk that some of the advertised export features of Org
116 will not work properly.
118 You can also consider moving packages that you use in all classes to
119 =org-export-latex-packages-alist=. If necessary, put the place holders
120 so that the packages get loaded in the right sequence. As said above,
121 for backward compatibility, if you omit the place holders, all the
122 variables will dump their content at the end of the header.
124 ** The constant =org-html-entities= is obsolete
129 Its content is now part of the new constant =org-entities=, which is
130 defined in the file org-entities.el. =org-html-entities= was an internal
131 variable, but it is possible that some users did write code using it.
133 ** `org-bbdb-anniversary-format-alist' has changed
138 Please check the docstring and update your settings accordingly.
140 ** Deleted =org-mode-p=
145 This function has been deleted: please update your code.
147 * Important new features
149 ** New Org to ODT exporter
154 Jambunathan's Org to ODT exporter is now part of Org.
156 To use it, it `C-c C-e o' in an Org file. See the documentation for more
157 information on how to customize it.
159 ** org-capture.el is now the default capture system
164 This replaces the earlier system org-remember. The manual only describes
165 org-capture, but for people who prefer to continue to use org-remember,
166 we keep a static copy of the former manual section [[http://orgmode.org/org-remember.pdf][chapter about
169 The new system has a technically cleaner implementation and more
170 possibilities for capturing different types of data. See [[http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441][Carsten's
171 announcement]] for more details.
173 To switch over to the new system:
177 : M-x org-capture-import-remember-templates RET
179 to get a translated version of your remember templates into the
180 new variable =org-capture-templates=. This will "mostly" work,
181 but maybe not for all cases. At least it will give you a good
182 place to modify your templates. After running this command,
183 enter the customize buffer for this variable with
185 : M-x customize-variable RET org-capture-templates RET
187 and convince yourself that everything is OK. Then save the
190 2. Bind the command =org-capture= to a key, similar to what you did
193 : (define-key global-map "\C-cc" 'org-capture)
195 If your fingers prefer =C-c r=, you can also use this key once
196 you have decided to move over completely to the new
197 implementation. During a test time, there is nothing wrong
198 with using both system in parallel.
203 *** org-eshell.el (Konrad Hinsen)
208 Implement links to eshell buffers.
210 *** org-special-blocks (Carsten Dominik)
215 This package generalizes the #+begin_foo and #+end_foo tokens.
217 To use, put the following in your init file:
220 (require 'org-special-blocks)
223 The tokens #+begin_center, #+begin_verse, etc. existed previously. This
224 package generalizes them (at least for the LaTeX and html exporters). When
225 a #+begin_foo token is encountered by the LaTeX exporter, it is expanded
226 into \begin{foo}. The text inside the environment is not protected, as
227 text inside environments generally is. When #+begin_foo is encountered by
228 the html exporter, a div with class foo is inserted into the HTML file. It
229 is up to the user to add this class to his or her stylesheet if this div is
232 *** org-taskjuggler.el (Christian Egli)
237 Christian Egli's /org-taskjuggler.el/ module is now part of Org. He
238 also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it.
240 *** org-ctags.el (Paul Sexton)
245 Targets like =<<my target>>= can now be found by Emacs' etag
246 functionality, and Org-mode links can be used to to link to etags, also
247 in non-Org-mode files. For details, see the file /org-ctags.el/.
249 This feature uses a new hook =org-open-link-functions= which will call
250 function to do something special with text links.
252 Thanks to Paul Sexton for this contribution.
254 *** org-docview.el (Jan Böcker)
259 This new module allows links to various file types using docview, where
260 Emacs displays images of document pages. Docview link types can point
261 to a specific page in a document, for example to page 131 of the
264 : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]]
266 Thanks to Jan Böcker for this contribution.
268 ** New Babel libraries
270 - ob-picolisp.el (Thorsten Jolitz)
271 - ob-fortran.el (Sergey Litvinov)
272 - ob-shen.el (Eric Schulte)
273 - ob-maxima.el (Eric S Fraga)
274 - ob-java.el (Eric Schulte)
275 - ob-lilypond.el (Martyn Jago)
276 - ob-awk.el (Eric Schulte)
278 * Other new features and various enhancements
282 *** Org-Bibtex -- major improvements
287 Provides support for managing bibtex bibliographical references
288 data in headline properties. Each headline corresponds to a
289 single reference and the relevant bibliographic meta-data is
290 stored in headline properties, leaving the body of the headline
291 free to hold notes and comments. Org-bibtex is aware of all
292 standard bibtex reference types and fields.
294 The key new functions are
296 - org-bibtex-check :: queries the user to flesh out all required
297 (and with prefix argument optional) bibtex fields available
298 for the specific reference =type= of the current headline.
300 - org-bibtex-create :: Create a new entry at the given level,
301 using org-bibtex-check to flesh out the relevant fields.
303 - org-bibtex-yank :: Yank a bibtex entry on the kill ring as a
304 formatted Org-mode headline into the current buffer
306 - org-bibtex-export-to-kill-ring :: Export the current headline
307 to the kill ring as a formatted bibtex entry.
311 *** org-gnus.el now allows link creation from messages
316 You can now create links from messages. This is particularly
317 useful when the user wants to stored messages that he sends, for
318 later check. Thanks to Ulf Stegemann for the patch.
322 *** Modified link escaping
327 David Maus worked on `org-link-escape'. See [[http://article.gmane.org/gmane.emacs.orgmode/37888][his message]]:
329 : Percent escaping is used in Org mode to escape certain characters
330 : in links that would either break the parser (e.g. square brackets
331 : in link target or description) or are not allowed to appear in
332 : a particular link type (e.g. non-ascii characters in a http:
335 : With this change in place Org will apply percent escaping and
336 : unescaping more consistently especially for non-ascii characters.
337 : Additionally some of the outstanding bugs or glitches concerning
338 : percent escaped links are solved.
340 Thanks a lot to David for this work.
344 *** Make =org-store-link= point to directory in a dired buffer
349 When, in a dired buffer, the cursor is not in a line listing a
350 file, `org-store-link' will store a link to the directory.
352 Patch by Stephen Eglen.
356 *** Allow regexps in =org-file-apps= to capture link parameters
361 The way extension regexps in =org-file-apps= are handled has
362 changed. Instead of matching against the file name, the regexps
363 are now matched against the whole link, and you can use grouping
364 to extract link parameters which you can then use in a command
365 string to be executed.
367 For example, to allow linking to PDF files using the syntax
368 =file:/doc.pdf::<page number>=, you can add the following entry to
372 Extension: \.pdf::\([0-9]+\)\'
373 Command: evince "%s" -p %1
376 Thanks to Jan Böcker for a patch to this effect.
380 *** Allow relative time when scheduling/adding a deadline
385 You can now use relative duration strings like "-2d" or "++3w"
386 when calling =org-schedule= or =org-deadline=: it will schedule
387 (or set the deadline for) the item respectively two days before
388 today and three weeks after the current timestamp, if any.
390 You can use this programmatically: =(org-schedule nil "+2d")=
391 will work on the current entry.
393 You can also use this while (bulk-)rescheduling and
394 (bulk-)resetting the deadline of (several) items from the agenda.
396 Thanks to Memnon Anon for a heads up about this!
401 *** American-style dates are now understood by =org-read-date=
406 So when you are prompted for a date, you can now answer like this
410 2/5 --> <CURRENT-YEAR>-02-05
415 *** =org-agenda-custom-commands= has a default value
420 This option used to be `nil' by default. This now has a default
421 value, displaying an agenda and all TODOs. See the docstring for
422 details. Thanks to Carsten for this.
425 *** Improved filtering through =org-agenda-to-appt=
430 The new function allows the user to refine the scope of entries
431 to pass to =org-agenda-get-day-entries= and allows to filter out
432 entries using a function.
434 Thanks to Peter Münster for raising a related issue and to
435 Tassilo Horn for this idea. Also thanks to Peter Münster for
436 [[git:68ffb7a7][fixing a small bug]] in the final implementation.
440 *** Allow ap/pm times in agenda time grid
445 Times in the agenda can now be displayed in am/pm format. See the new
446 variable =org-agenda-timegrid-use-ampm=. Thanks to C. A. Webber for
447 a patch to this effect.
451 *** Agenda: Added a bulk "scattering" command
456 =B S= in the agenda buffer will cause tasks to be rescheduled a random
457 number of days into the future, with 7 as the default. This is useful
458 if you've got a ton of tasks scheduled for today, you realize you'll
459 never deal with them all, and you just want them to be distributed
460 across the next N days. When called with a prefix arg, rescheduling
461 will avoid weekend days.
463 Thanks to John Wiegley for this.
467 *** Simplification of org-export-html-preamble/postamble
472 When set to `t', export the preamble/postamble as usual, honoring the
473 =org-export-email/author/creator-info= variables.
475 When set to a formatting string, insert this string. See the docstring
476 of these variable for details about available %-sequences.
478 You can set =:html-preamble= in publishing project in the same way: `t'
479 means to honor =:email/creator/author-info=, and a formatting string
480 will insert a string.
482 *** New exporters to Latin-1 and UTF-8
487 While Ulf Stegemann was going through the entities list to improve the
488 LaTeX export, he had the great idea to provide representations for many
489 of the entities in Latin-1, and for all of them in UTF-8. This means
490 that we can now export files rich in special symbols to Latin-1 and to
491 UTF-8 files. These new exporters can be reached with the commands =C-c
492 C-e n= and =C-c C-e u=, respectively.
494 When there is no representation for a given symbol in the targeted
495 coding system, you can choose to keep the TeX-macro-like
496 representation, or to get an "explanatory" representation. For
497 example, =\simeq= could be represented as "[approx. equal to]". Please
498 use the variable =org-entities-ascii-explanatory= to state your
501 *** HTML export: Add class to outline containers using property
506 The =HTML_CONTAINER_CLASS= property can now be used to add a class name
507 to the outline container of a node in HTML export.
509 *** Throw an error when creating an image from a LaTeX snippet fails
514 This behavior can be configured with the new option variable
515 =org-format-latex-signal-error=.
517 *** Support for creating BEAMER presentations from Org-mode documents
522 Org-mode documents or subtrees can now be converted directly in to
523 BEAMER presentation. Turning a tree into a simple presentations is
524 straight forward, and there is also quite some support to make richer
525 presentations as well. See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER section]] in the manual for more
528 Thanks to everyone who has contributed to the discussion about BEAMER
529 support and how it should work. This was a great example for how this
530 community can achieve a much better result than any individual could.
534 *** Refile targets can now be cached
539 You can turn on caching of refile targets by setting the variable
540 =org-refile-use-cache=. This should speed up refiling if you have many
541 eligible targets in many files. If you need to update the cache
542 because Org misses a newly created entry or still offers a deleted one,
545 *** New logging support for refiling
550 Whenever you refile an item, a time stamp and even a note can be added
551 to this entry. For details, see the new option =org-log-refile=.
553 Thanks to Charles Cave for this idea.
557 *** In-buffer completion is now done using John Wiegley's pcomplete.el
562 Thanks to John Wiegley for much of this code.
566 *** New command =org-table-transpose-table-at-point=
571 See the docstring. This hack from Juan Pechiar is now part of Org's
572 core. Thanks to Juan!
574 *** Display field's coordinates when editing it with =C-c `=
579 When editing a field with =C-c `=, the field's coordinate will the
580 displayed in the buffer.
582 Thanks to Michael Brand for a patch to this effect.
584 *** Spreadsheet computation of durations and time values
589 If you want to compute time values use the =T= flag, either in Calc
590 formulas or Elisp formulas:
592 | Task 1 | Task 2 | Total |
593 |--------+--------+---------|
594 | 35:00 | 35:00 | 1:10:00 |
595 #+TBLFM: @2$3=$1+$2;T
597 Values must be of the form =[HH:]MM:SS=, where hours are optional.
599 Thanks to Martin Halder, Eric Schulte and Carsten for code and feedback
602 *** Implement formulas applying to field ranges
607 Carsten implemented this field-ranges formulas.
609 : A frequently requested feature for tables has been to be able to define
610 : row formulas in a way similar to column formulas. The patch below allows
617 : as the left hand side for table formulas in order to write a formula that
618 : is valid for an entire column or for a rectangular section in a
621 Thanks a lot to Carsten for this.
623 *** Sending radio tables from org buffers is now allowed
628 Org radio tables can no also be sent inside Org buffers. Also, there
629 is a new hook which get called after a table has been sent.
631 Thanks to Seweryn Kokot.
635 *** Improved handling of lists
640 Nicolas Goaziou extended and improved the way Org handles lists.
642 1. Indentation of text determines again end of items in lists. So, some
643 text less indented than the previous item doesn't close the whole
644 list anymore, only all items more indented than it.
646 2. Alphabetical bullets are implemented, through the use of the
647 variable `org-alphabetical-lists'. This also adds alphabetical
648 counters like [@c] or [@W].
650 3. Lists can now safely contain drawers, inline tasks, or various
651 blocks, themselves containing lists. Two variables are controlling
652 this: `org-list-forbidden-blocks', and `org-list-export-context'.
654 4. Improve `newline-and-indent' (C-j): used in an item, it will keep
655 text from moving at column 0. This allows to split text and make
656 paragraphs and still not break the list.
658 5. Improve `org-toggle-item' (C-c -): used on a region with standard
659 text, it will change the region into one item. With a prefix
660 argument, it will fallback to the previous behavior and make every
661 line in region an item. It permits to easily integrate paragraphs
664 6. `fill-paragraph' (M-q) now understands lists. It can freely be used
665 inside items, or on text just after a list, even with no blank line
666 around, without breaking list structure.
668 Thanks a lot to Nicolas for all this!
670 ** Inline display of linked images
675 Images can now be displayed inline. The key C-c C-x C-v does toggle the
676 display of such images. Note that only image links that have no
677 description part will be inlined.
679 ** Implement offsets for ordered lists
684 If you want to start an ordered plain list with a number different from
685 1, you can now do it like this:
687 : 1. [@start:12] will star a lit a number 12
689 ** Babel: code block body expansion for table and preview
694 In org-babel, code is "expanded" prior to evaluation. I.e. the code that
695 is actually evaluated comprises the code block contents, augmented with
696 the extra code which assigns the referenced data to variables. It is now
697 possible to preview expanded contents, and also to expand code during
698 during tangling. This expansion takes into account all header arguments,
701 A new key-binding `C-c M-b p' bound to `org-babel-expand-src-block' can
702 be used from inside of a source code block to preview its expanded
703 contents (which can be very useful for debugging). tangling
705 The expanded body can now be tangled, this includes variable values
706 which may be the results of other source-code blocks, or stored in
707 headline properties or tables. One possible use for this is to allow
708 those using org-babel for their emacs initialization to store values
709 (e.g. usernames, passwords, etc...) in headline properties or in tables.
711 Org-babel now supports three new header arguments, and new default
712 behavior for handling horizontal lines in tables (hlines), column names,
713 and rownames across all languages.
715 ** Editing Convenience and Appearance
717 *** New command =org-copy-visible= (=C-c C-x v=)
722 This command will copy the visible text in the region into the kill
723 ring. Thanks to Florian Beck for this function and to Carsten for
724 adding it to org.el and documenting it!
726 *** Make it possible to protect hidden subtrees from being killed by =C-k=
731 See the new variable =org-ctrl-k-protect-subtree=. This was a request
734 *** Implement pretty display of entities, sub-, and superscripts.
739 The command =C-c C-x \= toggles the display of Org's special entities
740 like =\alpha= as pretty unicode characters. Also, sub and superscripts
741 are displayed in a pretty way (raised/lower display, in a smaller
742 font). If you want to exclude sub- and superscripts, see the variable
743 =org-pretty-entities-include-sub-superscripts=.
745 Thanks to Eric Schulte and Ulf Stegeman for making this possible.
747 *** New faces for title, date, author and email address lines
752 The keywords in these lines are now dimmed out, and the title is
753 displayed in a larger font, and a special font is also used for author,
754 date, and email information. This is implemented by the following new
759 =org-document-info-keyword=
761 In addition, the variable =org-hidden-keywords= can be used to make the
762 corresponding keywords disappear.
764 Thanks to Dan Davison for this feature.
766 *** Simpler way to specify faces for tags and todo keywords
771 The variables =org-todo-keyword-faces=, =org-tag-faces=, and
772 =org-priority-faces= now accept simple color names as specifications.
773 The colors will be used as either foreground or background color for
774 the corresponding keyword. See also the variable
775 =org-faces-easy-properties=, which governs which face property is
776 affected by this setting.
778 This is really a great simplification for setting keyword faces. The
779 change is based on an idea and patch by Ryan Thompson.
781 *** <N> in tables now means fixed width, not maximum width
786 Requested by Michael Brand.
788 *** Better level cycling function
793 =TAB= in an empty headline cycles the level of that headline through
794 likely states. Ryan Thompson implemented an improved version of this
795 function, which does not depend upon when exactly this command is used.
796 Thanks to Ryan for this improvement.
803 For paragraph text, =org-adaptive-fill-function= did not handle the
804 base case of regular text which needed to be filled. This is now
805 fixed. Among other things, it allows email-style ">" comments to be
808 Thanks to Dan Hackney for this patch.
810 *** `org-reveal' (=C-c C-r=) also decrypts encrypted entries (org-crypt.el)
815 Thanks to Richard Riley for triggering this change.
817 *** Better automatic letter selection for TODO keywords
822 When all first letters of keywords have been used, Org now assigns more
823 meaningful characters based on the keywords.
825 Thanks to Mikael Fornius for this patch.
829 *** Clock: Allow synchronous update of timestamps in CLOCK log
834 Using =S-M-<up/down>= on CLOCK log timestamps will increase/decrease
835 the two timestamps on this line so that duration will keep the same.
836 Note that duration can still be slightly modified in case a timestamp
839 Thanks to Rainer Stengele for this idea.
841 *** Localized clock tables
846 Clock tables now support a new new =:lang= parameter, allowing the user
847 to customize the localization of the table headers. See the variable
848 =org-clock-clocktable-language-setup= which controls available
851 *** Show clock overruns in mode line
856 When clocking an item with a planned effort, overrunning the planned
857 time is now made visible in the mode line, for example using the new
858 face =org-mode-line-clock-overrun=, or by adding an extra string given
859 by =org-task-overrun-text=.
861 Thanks to Richard Riley for a patch to this effect.
863 *** Clock reports can now include the running, incomplete clock
868 If you have a clock running, and the entry being clocked falls into the
869 scope when creating a clock table, the time so far spent can be added
870 to the total. This behavior depends on the setting of
871 =org-clock-report-include-clocking-task=. The default is =nil=.
873 Thanks to Bernt Hansen for this useful addition.
877 *** Improvements with inline tasks and indentation
882 There is now a configurable way on how to export inline tasks. See the
883 new variable =org-inlinetask-export-templates=.
885 Thanks to Nicolas Goaziou for coding these changes.
887 *** A property value of "nil" now means to unset a property
892 This can be useful in particular with property inheritance, if some
893 upper level has the property, and some grandchild of it would like to
894 have the default settings (i.e. not overruled by a property) back.
896 Thanks to Robert Goldman and Bernt Hansen for suggesting this change.
898 *** New helper functions in org-table.el
903 There are new functions to access and write to a specific table field.
904 This is for hackers, and maybe for the org-babel people.
909 org-table-current-line
913 *** Archiving: Allow to reverse order in target node
918 The new option =org-archive-reversed-order= allows to have archived
919 entries inserted in a last-on-top fashion in the target node.
921 This was requested by Tom.
923 *** Org-reveal: Double prefix arg shows the entire subtree of the parent
928 This can help to get out of an inconsistent state produced for example
929 by viewing from the agenda.
931 This was a request by Matt Lundin.
935 This file is part of GNU Emacs.
937 GNU Emacs is free software: you can redistribute it and/or modify
938 it under the terms of the GNU General Public License as published by
939 the Free Software Foundation, either version 3 of the License, or
940 (at your option) any later version.
942 GNU Emacs is distributed in the hope that it will be useful,
943 but WITHOUT ANY WARRANTY; without even the implied warranty of
944 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
945 GNU General Public License for more details.
947 You should have received a copy of the GNU General Public License
948 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.