1 # -*- mode: org; fill-column: 65 -*-
4 <a href="/"><img src="http://orgmode.org/img/org-mode-unicorn.png" class="logo-link" /></a>
7 #+STARTUP: indent hidestars
9 * Version 6.35 (in preparation)
15 ** Incompatible Changes
17 *** Changes to the intended use of =org-export-latex-classes=
19 So far this variable has been used to specify the
20 =\documentclass= macro as well as all the =\usepackage= calls
21 necessary for the document. This setup makes it difficult to
22 maintain the list of packages that Org itself would like to call,
23 for example for the special symbol support it needs.
25 There are now two variables that should be used to list the LaTeX
26 packages that need to be included in all classes. The header
27 definition in =org-export-latex-classes= should then contain
28 the =\documentclass= macro and packages for this specific class
31 The two variables are:
33 1. =org-export-latex-default-packages-alist= :: This is the
34 variable where Org-mode itself puts the packages it needs.
35 The only reason to change it is when one of these packages
36 causes a conflict with another package you want to use.
37 Then you can remove that packages and hope that you are not
38 using Org-mode functionality that needs it.
40 2. =org-export-latex-packages-alist= :: This is the variable
41 where you can put the packages that you'd like to use across
42 all classes. For example, I am putting =amsmath= and =tikz=
43 here, because I always want to have them.
45 The sequence how these customizations will show up in the LaTeX
47 1. Header from =org-export-latex-classes=
48 2. =org-export-latex-default-packages-alist=
49 3. =org-export-latex-packages-alist=
50 4. Buffer-specific things set with =#+LaTeX_HEADER:=
52 If you have currently customized =org-export-latex-classes=, you
53 should revise that customization and remove any package call that
54 are covered by =org-export-latex-default-packages-alist=. You
55 can also consider moving packages that you use in all classes to
56 =org-export-latex-packages-alist=.
59 *** The constant =org-html-entities= is obsolete
61 Its content is now part of the new constant =org-entities=, which
62 is defined in the file org-entities.el. =org-html-entities= was
63 an internal variable, but it is possible that some users did
64 write code using it - this is why I am mentioning it here.
66 ** Editing Convenience and Appearance
68 *** New faces for title, date, author and email address lines.
70 The keywords in these lines are now dimmed out, and the title is
71 displayed in a larger font, and a special font is also used for
72 author, date, and email information. This is implemented by the
77 org-document-info-keyword
79 In addition, the variable org-hidden-keywords can be used to make the
80 corresponding keywords disappear.
84 *** Implement a simpler way to specify faces for tags and todo keywords
86 The variables =org-todo-keyword-faces=, =org-tag-faces=, and
87 =org-priority-faces= now accept simple color names as
88 specifications. The colors will be used as either foreground or
89 background color for the corresponding keyword. See also the
90 variable =org-faces-easy-properties=, which governs which face
91 property is affected by this setting.
93 This is really a great simplification for setting keyword faces.
94 The change is based on an idea and patch by Ryan Thompson.
96 *** <N> in tables now means fixed width, not maximum width
98 Requested by Michael Brand
100 *** Improve level cycling function
102 =TAB= in an empty headline cycles the level of that headline
103 through likely states. Ryan Thompson implemented an improved
104 version of this function, which does not depend upon when exactly
105 this command is used. Thanks to Ryan for this improvement.
107 *** Improve adaptive filling
109 For paragraph text, =org-adaptive-fill-function= did not handle the
110 base case of regular text which needed to be filled. This is now
111 fixed. Among other things, it allows email-style ">" comments
112 to be filled correctly.
114 Thanks to Dan Hackney for this patch.
116 *** Make `org-reveal' (=C-c C-r=) also decrypt encrypted entries
118 Thanks to Richard Riley for triggering this change.
120 *** Improve automatic letter selection for TODO keywords
122 When all first letters of keywords have been used, Org no assigns
123 more meaningful characters based on the keywords.
125 Thanks to Mikael Fornius for this patch.
129 *** Much better handling of entities for LaTeX export
131 Special entities like =\therefore= and =\alpha= now know if
132 they need to be in LaTeX math mode and are formatted accordingly.
134 Thanks to Ulf Stegemann for the tedious work to make this
137 *** LaTeX export: Set coding system automatically
139 The coding system of the LaTeX class will now be set to the value
140 corresponding to the buffer's file coding system. This happens
141 if your setup sets up the file to have a line
142 =\usepackage[AUTO]{inputenc}=.
144 *** New exporters to Latin-1 and UTF-8
146 While Ulf was going through the entities list to improve the
147 LaTeX export, he had the great idea to provide representations for
148 many of the entities in Latin-1, and for all of them in UTF-8.
149 This means that we can now export files rich in special symbols
150 to Latin-1 and to UTF-8 files. These new exporters can be
151 reached with the commands =C-c C-e n= and =C-c C-e u=,
154 When there is no representation for a given symbol in the
155 targeted coding system, you can choose to keep the TeX-macro-like
156 representation, or to get an "explanatory" representation. For
157 example, =\simeq= could be represented as "[approx. equal to]".
158 Please use the variable `org-entities-ascii-explanatory' to state
161 *** Full label/reference support in HTML, Docbook, and LaTeX backends
163 =#+LABEL= definitions for tables and figures are now fully
164 implemented in the LaTeX, Docbook, and HTML interfaces.
165 =\ref{xxx}= is expanded to a valid link in all backends.
167 *** BEAMER export: Title of the outline frame is now customizable
169 The new option =org-outline-frame-title= allows to set the
170 title for outline frames in Beamer presentations.
172 Patch by Lukasz Stelmach.
174 *** BEAMER export: fragile frames are better recognized
176 A =lstlisting= environment now also triggers the fragile option in
177 a beamer frame, just like =verbatim= environments do.
179 Thanks to Eric Schulte for this patch.
181 *** BEAMER export: Protect <...> macro arguments
183 Macros for the BEAMER package can have arguments in angular
184 brackets. These are now protected just like normal arguments.
186 Requested by Bill Jackson.
188 *** HTML export: Add class to outline containers using property
190 The =HTML_CONTAINER_CLASS= property can now be used to add a
191 class name to the outline container of a node in HTML export.
193 *** New option =org-export-email-info= to turn off export of the email address
195 Default is actually off now.
197 *** Throw an error when creating an image from a LaTeX snippet fails
199 This behavior can be configured with the new option variable
200 =org-format-latex-signal-error=.
204 Org-mode can now produce a 2-level subject index spanning an
205 entire publishing project. Write index entries in your files as
210 #+index: Definitions!Org-mode
213 where the first line will produce an index entry /Org-mode/,
214 while the second line will create /Definitions/ with a sub-item
215 /Org-mode/. Three-level entries are not supported.
217 To produce the index, set
219 #+begin_src emacs-lisp
223 in the project definition in =org-publish-project-alist=. You
224 may have to force re-export of all files to get the index by
225 using a =C-u= prefix to the publishing command:
228 C-u M-x org-publish-all
231 Whenever an Org file is published in this project, a new file
232 with the extension "orgx" will be written. It contains the index
233 entries. When all project files are published, Org will produce
234 a new file "theindex.inc" containing the index as a to-level
235 tree. This file can be included into any project file using
238 #+include: "theindex.inc"
241 Org-mode will also create a file "theindex.org" with this include
242 statement, and you can build a more complex structure (for
243 example style definitions, top and home links, etc) around this
244 statement. When this file already exists, it will not be
247 Thanks to Stefan Vollmar for initiating and driving this feature.
249 FIXME: Still need to do the LaTeX portion
253 *** Encrypting stage files for MobileOrg
255 Since the use of (often pubic) servers is needed for MobileOrg,
256 it is now possible to encrypt the files to be staged for
257 MobileOrg. Version 1.2 of MobileOrg will be needed for this
258 feature, and Richard Moreland will show instructions on his
259 website once that is available. Basically, on the Org-side this
260 will require the following settings:
262 #+begin_src emacs-lisp
263 (setq org-mobile-use-encryption t
264 org-mobile-encryption-password "My_MobileOrg_Password")
267 So the password will be visible in your local setup, but since
268 the encryption is only for the public server, this seems
273 *** Specify entry types as an option
275 Custom Agenda commands can now limit the sets of entry types
276 considered for this command by binding =org-agenda-entry-types=
277 temporarily in the options section of the command. This can lead
278 to significant speedups, because instead of laboriously finding
279 entries and then rejecting them, a whole search cycle is skipped.
280 For more information see the new section in [[http://orgmode.org/worg/org-tutorials/org-custom-agenda-commands.php#sec-5][Matt Lundin's agenda
281 custom command tutorial]].
283 Thanks to Matt Lundin for this feature.
285 *** Speed up multiple calls to org-diary by only doing buffer prep once
287 Also a patch by Matt Lundin.
289 *** Show and hide deadlines in the agenda
291 You can now hide all deadline entries in the agenda by pressing
294 Thanks to John Wiegley for this feature.
296 *** Agenda: Allow to suppress deadline warnings for entries also scheduled
298 The the docstring of the variable
299 =org-agenda-skip-deadline-prewarning-if-scheduled=.
301 *** Expand file names in org-agenda-files (external file case)
303 If you are using a file to manage the list of agenda files, the
304 names in this file can now contain environment variables and "~"
305 to write them more compactly and portable.
307 Thanks to Mikael Fornius for a patch to this effect.
309 *** Agenda: Allow TODO conditions in the skip functions
311 The agenda skip function has now special support for skipping
312 based on the TODO state. Here are just two examples, see the
313 manual for more information.
315 #+begin_src emacs-lisp
316 (org-agenda-skip-entry-if 'todo '(\"TODO\" \"WAITING\"))
317 (org-agenda-skip-entry-if 'nottodo 'done)
320 Thanks to Lukasz Stelmach for this patch.
322 *** Extracting the time-of-day when adding diary entries
324 The time of day can now be extracted from new diary entries made
325 from the agenda with (for example) =i d=. When
326 =org-agenda-insert-diary-extract-time= is set, this is done, and
327 the time is moved into the time stamp.
329 Thanks to Stephen Eglen for this feature.
331 *** The customization group org-font-lock has been renamed
332 The new name is `org-appearance'.
334 Thanks to Dan Davison for a patch to this effect.
336 *** The TODO list: Allow skipping scheduled or deadlined entries
338 Skipping TODO entries in the global TODO list based on whether
339 they are scheduled or have a deadline can now be controlled in
340 more detail. Please see the docstrings of
341 =org-agenda-todo-ignore-scheduled= and
342 =org-agenda-todo-ignore-deadline=.
344 Thanks to Lukasz Stelmach for patches to this effect.
348 *** Make =org-store-link= point to directory in a dired buffer
350 When, in a dired buffer, the cursor is not in a line listing a
351 file, `org-store-link' will store a link to the directory.
353 Patch by Stephen Eglen.
355 *** Allow regexps in =org-file-apps= to capture link parameters
357 The way extension regexps in =org-file-apps= are handled has
358 changed. Instead of matching against the file name, the regexps
359 are now matched against the whole link, and you can use grouping
360 to extract link parameters which you can then use in a command
361 string to be executed.
363 For example, to allow linking to PDF files using the syntax
364 =file:/doc.pdf::<page number>=, you can add the following entry to
368 Extension: \.pdf::\([0-9]+\)\'
369 Command: evince "%s" -p %1
372 Thanks to Jan Böker for a patch to this effect.
376 *** Show clock overruns in mode line
378 When clocking an item with a planned effort, overrunning the
379 planned time is now made visible in the mode line, for example
380 using the new face =org-mode-line-clock-overrun=, or by adding an
381 extra string given by =org-task-overrun-text=.
383 Thanks to Richard Riley for a patch to this effect.
387 *** Repair the broken support for table.el tables again.
389 Tables created with the table.el package now finally work again
390 in Org-mode. While you cannot edit the table directly in the
391 buffer, you can use =C-c '= to edit it nicely in a temporary
394 Export of these tables to HTML seem to work without problems.
395 Export to LaTeX is imperfect. If fails if the table contains
396 special characters that will be replaced by the exporter before
397 formatting the table. The replacement operation changes the
398 length of some lines, breaking the alignment of the table fields.
399 Unfortunately this is not easy to fix. It is also not an option
400 to not do these replacements. The table.el LaTeX exporter will
401 for example not escape "&" in table fields, causing the exported
406 *** Add logging support for refiling
408 Whenever you refile an item, a time stamp and even a note can be
409 added to this entry. For details, see the new option
412 Thanks to Charles Cave for this idea.
414 *** New helper functions in org-table.el
416 There are new functions to access and write to a specific table
417 field. This is for hackers, and maybe for the org-babel people.
422 org-table-current-line
426 *** Tables: Introduce field coordinates for formulas, improve docs
428 Calc and Emacs-Lisp formulas for tables can access the current
429 field coordinates with =@#= and =$#= for row and column,
430 respectively. These can be useful in some formulas. For
431 example, to sequentially number the fields in a column, use
432 ~=@#~ as column equation.
434 Thanks to Michael Brand for this feature.
436 *** Archiving: Allow to reverse order in target node
438 The new option =org-archive-reversed-order= allows to have
439 archived entries inserted in a last-on-top fashion in the target
444 *** Better documentation on calc accuracy in tables
446 Thanks to Michael Brand for this fix.
448 *** Clock reports can now include the running, incomplete clock
450 If you have a clock running, and the entry being clocked falls
451 into the scope when creating a clock table, the time so far spent
452 can be added to the total. This behavior depends on the setting
453 of =org-clock-report-include-clocking-task=. The default is
456 Thanks to Bernt Hansen for this useful addition.
458 *** American-style dates are now understood by =org-read-date=
460 So when you are prompted for a date, you can now answer like this
464 2/5 --> <CURRENT-YEAR>-02-05
467 *** Update org-timer.el so that we only allow one timer.
469 There is now only a single free timer supported by org-timer.el.
470 Thanks to Bastien for cleaning this up, after a bug report in
471 this area by Frédéric Couchet.
473 *** Remember: Allow to file as sibling of current clock
475 =C-3 C-c C-c= will file the remember entry as a sibling of the
478 Patch by Lukasz Stelmach.
480 *** Org-reveal: Double prefix arg show the entire subtree of the parent
482 This can help to get out of an inconsistent state produced for
483 example by viewing from the agenda.
485 This was a request by Matt Lundin.
487 *** Add org-secretary.el by Juan Reyero to the contrib directory
489 Org-secretary is a possible setup for group work using Org-mode.
491 Thanks to Juan Reyero for this contribution.
494 Eric and Dan have compiled the following list of changes in and
497 - Added support for Matlab and Octave.
498 - Added support for C and C++ code blocks.
499 - Added support for the Oz programming language.
500 Thanks to Torsten Anders for this contribution
501 - Can now force literal interpretation of table cell contents
502 with extra "$" in table formula.
503 Thanks to Maurizio Vitale for this suggestion.
504 - Variable references which look like lisp forms are now
506 - Inline source blocks will always return string output.
507 - No longer adding extension during tangling when filename is
509 Thanks to Martin G. Skjæveland and Nicolas Girard for prompting this.
510 - Code block parameters are now available when initializing a
512 - Added `org-babel-execute-hook' which runs after code block
514 - Working directories and remote execution
516 This introduces a new header argument :dir. For the duration of
517 source block execution, default-directory is set to the value
518 of this header argument. Consequences include:
520 - external interpreter processes run in that directory
521 - new session processes run in that directory (but existing
523 - relative paths for file output are relative to that directory
525 The name of a directory on a remote machine may be specified
526 with tramp syntax (/user@host:path), in which case the
527 interpreter executable will be sought in tramp-remote-path, and
528 if found will execute on the remote machine in the specified
530 - Tramp syntax can be used to tangle to remote files.
531 Thanks to Maurizio Vitale and Rémi Vanicat.
532 - org-R removed from contrib.
533 - gnuplot can now return it's string output -- when session is
535 - Prevent quoting of strings in shell variables.
536 - Now including source code block arguments w/source name on
538 - Now able to reference file links as results.
539 - Allow pdf/png generation directly from latex source blocks
540 with :file header argument.
548 ** Incompatible changes
550 *** Tags in org-agenda-auto-exclude-function must be lower case.
552 When defining an =org-agenda-auto-exclude-function=, you need to
553 be aware that tag that is being passed into the function is
554 always lower case - even if it was defined in upper case
559 *** Support for creating BEAMER presentations from Org-mode documents
561 Org-mode documents or subtrees can now be converted directly in
562 to BEAMER presentation. Turning a tree into a simple
563 presentations is straight forward, and there is also quite some
564 support to make richer presentations as well. See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER
565 section]] in the manual for more details.
567 Thanks to everyone who has contributed to the discussion about
568 BEAMER support and how it should work. This was a great example
569 for how this community can achieve a much better result than any
574 **** Add Paul Sexton's org-ctags.el
576 Targets like =<<my target>>= can now be found by Emacs' etag
577 functionality, and Org-mode links can be used to to link to
578 etags, also in non-Org-mode files. For details, see the file
581 This feature uses a new hook =org-open-link-functions= which will
582 call function to do something special with text links.
584 Thanks to Paul Sexton for this contribution.
586 **** Add Jan Böker's org-docview.el
588 This new module allows links to various file types using docview,
589 where Emacs displays images of document pages. Docview link
590 types can point to a specific page in a document, for example to
591 page 131 of the Org-mode manual:
593 : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]]
595 Thanks to Jan Böker for this contribution.
597 **** New link types that force special ways of opening the file
599 - =file+sys:/path/to/file= will use the system to open the file,
600 like double-clicking would.
601 - file+emacs:/path/to/file will force opening the linked file
604 This was a request by John Wiegley.
606 **** Open all links in a node
608 When using =C-c C-o= on a headline to get a list of links in the
609 entry, pressing =RET= will open *all* links. This allows
610 something like projects to be defined, with a number of files
611 that have to be opened by different applications.
613 This was a request by John Wiegley.
617 **** Improve the logic of the search view.
619 The logic of search views is changed a bit. See the docstring of
620 the function =or-search-view=.
622 These changes resulted from a discussion with Matt Lundin.
624 **** New face for entries from the Emacs diary
626 Entries that enter the Agenda through the Emacs diary now get the
627 face =org-agenda-diary=.
629 This was a request by Thierry Volpiatto.
631 **** New function `org-diary-class' to schedule classes with skipped weeks.
633 This was a request by Daniel Martins.
635 **** Empty matcher means prompt in agenda custom commands
637 When an agenda custom command has an empty string as MATCH
638 element, so far this would lead to a meaningless search using an
639 empty matcher. Now an empty (or white) string will be
640 interpreted just like a nil matcher, i.e. the user will be
641 prompted for the match.
643 **** Agenda: Selectively remove some tags from agenda display
645 If you use tags very extensively, you might want to exclude some
646 from being displayed in the agenda, in order to keep the display
647 compact. See the new option =org-agenda-hide-tags-regexp= for
650 This was largely a patch by Martin Pohlack.
654 **** Direct export of only the current subtree
656 Pressing =1= after =C-c C-e= and before the key that selects the
657 export backend, only the current subtree will be exported,
658 exactly as it you had selected it first with =C-c @=. So for
659 example, =C-c C-e 1 b= will export the current subtree to HTML
660 and open the result in the browser.
662 **** Direct export of enclosing node
664 Pressing =SPC= after =C-c C-e= and before the key that selects
665 the export backend, the enclosing subree that is set up for
666 subtree export will be exported, exactly as it you had selected
667 it first with =C-c @=. So for example, =C-c C-e SPC d= will find
668 the enclosing node with a LaTeX_CLASS property or an
669 EXPORT_FILE_NAME property and export that.
671 **** Caching export images
673 Images that are created for example using LaTeX or ditaa for
674 inclusion into exported files are now cached. This works by
675 adding a hash to the image name, that reflects the source code
676 and all relevant settings. So as long as the hash does not
677 change, the image does not have to be made again. His can lead
678 to a substantial reduction in export/publishing times.
680 Thanks to Eric Schulte for a patch to this effect.
682 **** Preserving line breaks for export no longer works
684 ASCII export always preserves them - no other export format
685 does. We had attempted to use =\obeylines= for this in LaTeX,
686 but that does create too many problems.
688 **** New symbols =\EUR= and =\checkmark=
690 =\EUR= symbols from Marvosym package, and =\checkmark= are now
691 supported symbols in Org-mode, i.e. they will be exported
692 properly to the various backends.
694 **** Allow LaTeX_CLASS_OPTIONS to set options, also from a property
696 You can set the options to the =\documentclass= command on a
697 per-file basis, using
699 : #+LaTeX_CLASS_OPTIONS: [11pt]
701 or on a per-tree basis using the corresponding property. The
702 defined string will replace the default options entirely.
704 **** The encoding of LaTeX files is now handled property
706 Org now makes sure that the encoding used by the file created
707 through the export mechanism is reflected correctly in the
709 : \usepackage[CODINGSYSTEM]{inputenc}
711 command. So as long as the =org-export-latex-classes= definition
712 contains an =\usepackage[utf8]{inputenc}= statement, that
713 statement will be modified so that the correct option is used.
715 If you wan to use special encodings, for example =utf8x= instead
716 of =utf8=, see the variable =org-export-latex-inputenc-alist=.
718 This was a request by Francesco Pizzolante.
720 *** Property API enhancements
722 **** Make a new special property BLOCKED, indicating if entry is blocked
724 A new special property BLOCKED returns "t" when the entry is
725 blocked from switching the TODO state to a DONE state.
727 This was a request by John Wiegley.
729 **** New hooks for external support for allowed property values
731 It is now possible to hook into Org in order to provide the
732 allowed values for any property with a lisp function. See the
733 docstring of the variable =org-property-allowed-value-functions=
735 **** Allow unrestricted completion on properties
737 When listing the allowed values for a property, for example with
738 a =:name_ALL:= property, completion on these values enforces that
739 one of the values will be chosen. Now, if you add ":ETC" to the
740 list of allowed values, it will be interpreted as a switch, and
741 the completion will be non-restrictive, so you can also choose to
744 *** Changes to Org-babel
746 - The documentation for Org-babel has been drastically improved
747 and is available on Worg at
748 http://orgmode.org/worg/org-contrib/babel/
749 - Source-code block names are now exported to HTML and LaTeX
750 - Org-babel functions are now bound to keys behind a common key
752 http://orgmode.org/worg/org-contrib/babel/reference.php#sec-5)
753 - Results are now foldable with TAB
754 - Header argument values can now be lisp forms
755 - Readable aliases for #+srcname: and #+resname:
756 - Sha1 hash based caching of results in buffer
757 - Can now index into variable values
758 - org-babel-clojure now supports multiple named sessions
760 *** Miscellaneous changes
762 **** Make =C-c r C= customize remember templates
764 =C-c r C= is now a shortcut for
766 : M-x customize-variable RET org-remember-templates RET
768 This was a proposal by Adam Spiers.
770 **** Use John Gruber's regular expression for URL's
772 We now use a better regexp to spot plain links in text. This
773 regexp is adopted from [[http://daringfireball.net/2009/11/liberal_regex_for_matching_urls][John Gruber's blogpost]].
775 Thanks to William Henney for the pointer.
777 **** Implement tag completion of all tags in all agenda files
779 The new option =org-complete-tags-always-offer-all-agenda-tags=
780 makes Org complete all tags from all agenda files if non-nil.
781 Usually, setting it locally to t in org-remember buffers is the
782 most useful application of this new feature.
784 Thanks to Tassilo Horn for a patch to this effect.
791 ** Incompatible changes
793 *** Reorganize key bindings for archiving
795 The following keys now do archiving
797 - C-c C-x C-a :: archive using the command specified in
798 =org-archive-default-command=. This variable is by default
799 set to =org-archive-subtree=, which means arching to the
802 The three specific archiving commands are available through
804 - C-c C-x C-s :: archive to archive file
805 - C-c C-x a :: toggle the archive tag
806 - C-c C-x A :: move to archive sibling
808 These bindings work the same in an Org file, and in the agenda.
812 - In the agenda you can also use =a= to call the default archiving
813 command, but you need to confirm the command with =y= so that this
814 cannot easily happen by accident.
816 - For backward compatibility, =C-c $= in an org-mode file, and
817 =$= in the agenda buffer continue to archive to archive file.
822 *** Level indentation cycling new empty entries and plain list items
824 :ID: 1CBF16C9-031C-4A03-A5EE-09B6AAB6209C
827 To speed up data entry, TAB now behaves special in an empty
828 headline, i.e. if the current line only contains the headline
829 starter stars, maybe a TOD keyword, but no further content. This
830 is usually the situation just after creating a new headline with
831 =M-RET= or =M-S-RET=.
833 Then, TAB will first make the current entry a child of the
834 entry above, then a parent, then a grand parent etc until it
835 reaches top level. Yet another TAB and you will be back at the
836 initial level at which the headline was created.
838 New plain list items behave in just the same way.
840 Sounds strange? Try it, it is insanely fast when entering data.
841 If you still don't like it, turn it off by customizing
842 =org-cycle-level-after-item/entry-creation=.
844 Thanks to [[http://thread.gmane.org/gmane.emacs.orgmode/18236][Samuel Wales]] and [[http://thread.gmane.org/gmane.emacs.orgmode/18447/focus%3D19015][John Wiegley]] for ideas that
845 contributed to this new feature.
847 *** Speed commands at the start of a headline
849 If you set the variable =org-use-speed-commands=, the cursor
850 position at the beginning of a headline (i.e. before the first
851 star) becomes special. Single keys execute special commands in
852 this place, for example outline navigation with =f=, =b=, =n=,
853 and =p=, equivalent to the corresponding =C-c C-f=, =C-c C-b=,
854 =C-c C-n=, and =C-c C-f= commands. The full list of commands can
855 be seen by pressing =?= at the special location. More commands
856 can be added and existing ones modified by configuring the
857 variable =org-speed-commands-user=.
859 This was a request by John Wiegley, based on similar speed
860 navigation in /allout.el/.
862 *** Logging changes in scheduling and deadline time stamps
864 Setting the variables =org-log-reschedule= and
865 =org-log-redeadline= to either =time= or =note= will arrange for
866 recording a logbook entry whenever a scheduling date or deadline
869 This was a request by Rick Moynihan.
871 *** File remember notes into a date tree
873 Remember notes can now be filed to a location in a date tree. A
874 date tree is an outline tree with years as top levels, months as
875 level 2 headings, and days as level three headings. These are
876 great for journals and for recording appointments and other loose
877 dates because it will be easy to find all entries referencing a
878 particular date, and it will be easy to archive all such entry
879 from last year, for example.
881 To select date tree filing, set the HEADLINE part of the remember
882 template to the symbol =date-tree=. The date tree will be build
883 in the file on top level. However, if the file contains an entry
884 with a non-nil =DATE_TREE= property, then the tree will be build
887 *** New commands to create entries from agenda and calendar
889 If you make the variable =org-agenda-diary-file= point to an
890 org-mode file, the =i= key in both the agenda buffer and in the
891 Emacs calendar will be made to insert entries into that Org file.
892 The dates at the cursor and the mark are being used when making
893 entries for specific dates or blocks. In the new file,
894 anniversaries will be collected under a special headline, and
895 day/block entries will be filed into a date tree (see previous
898 This was a request by Stephen Eglen.
900 *** A new freemind exporter has been integrated with Org-mode
902 org-freemind.el has a number of entry points (for details, see
903 the source code), but you can also use Org's =C-c C-e m= to
904 export a file or a selected subtree.
906 Thanks to Lennart Borgman for this contribution. An earlier
907 version of this file was part of the nxhtml package, under the
910 *** Drawers are now exported properly
912 Drawers are now exported when the configuration requires it,
913 i.e. if the variable `org-export-with-drawers' is t or a list
914 containing the drawers to export.
916 *** Min/Max/Mean age operators in Column View.
918 This lets you see how much time has passed since the specified
919 timestamp property each entry. The three operators (=@min=,
920 =@max=, =@mean=) show either the age of the youngest or oldest
921 entry or the average age of the children.
923 Thanks to James TD Smith for a patch to this effect.
925 *** Allow source code block indentation to be preserved
927 If =org-src-preserve-indentation= is non-nil, or if a block has a
928 =-i= switch, then the behavior of org-exp-blocks is altered as
931 1. Indentation is not removed before passing the block contents
932 to the block-transforming plugin.
934 2. The result returned by the plugin is not re-indented.
936 3. Editing the source code block with =C-c '= preserves it's
939 Thanks to Dan Davison for this feature.
941 *** Frame/window control when switching to source code edit buffer.
943 When switching to a source code editing buffer with =C-c '=, you
944 can now control the frame / window setup using the new variable
945 =org-src-window-setup=.
947 Thanks to Dan Davison for this feature.
949 *** Refile an entry to the current clock
951 You can now quickly refile an entry to become a child of the
952 entry currently being clocked. The keys for doing this are
955 This was a request by Bernt Hansen.
957 *** Make =C-c C-o= open the attachment directory is there are no links
959 If there is no link in an entry, =C-c C-o= will now open the
960 attachment directory instead.
962 This was a request/patch by John Wiegley.
964 *** org-mac-iCal.el: work with calendar "groups"
966 Some calendar systems (Google, Zimbra) handle subscriptions to
967 multiple calendars (or to an account) by grouping them under a
968 single caldav directory in the calendar tree. org-mac-iCal used
969 to assumes there is only one ics file created per caldav
970 directory, so while it *creates* all of the needed merged ics
971 files, it only copies one of them to ~/Library/Calendar before
972 importing the contents into the diary.
974 Thanks to Doug Hellmann for a patch to fix this.
976 *** New module /org-learn.el/ in the contrib directory
978 The file implements the learning algorithm described at
979 http://supermemo.com/english/ol/sm5.htm, which is a system for reading
980 material according to "spaced repetition". See
981 http://en.wikipedia.org/wiki/Spaced_repetition for more details.
983 Thanks to John Wiegley for this contribution.
985 *** New contributed package /org-git-link.el/
987 /org-git-link.el/ defines two new link types. The =git= link type
988 is meant to be used in the typical scenario and mimics the =file=
989 link syntax as closely as possible. The =gitbare= link type
990 exists mostly for debugging reasons, but also allows e.g.
991 linking to files in a bare git repository for the experts.
993 Thanks to Raimar Finken for this contribution.
995 *** /org-annotation-helper.el/ and /org-browser-url.e./ have been removed
996 Please switch to /org-protocol.el/, into which contains the same
997 functionality in a more general framework.
998 *** The contributed /org-export-freemind/ package has been removed.
999 Org now contains a new freemind exporter, /org-freemind.el/.
1001 ** Org-babel Changes
1002 - Clojure is supported [Thanks to Joel Boehland]
1004 - Ruby and Python now respond to the :file header argument
1005 - Added :results_switches header argument for passing switches
1006 through to raw src blocks
1007 - Preserve indentation in source blocks on export and tangle
1008 - Possible to evaluate noweb reference on tangling or code block
1010 - Allowing multiple noweb references on a single line
1011 - Cleaned up the passing of parameter values from Org-babel to
1012 language specific functions
1019 ** Rewrite of org-mobile.org, for MobileOrg 1.0 (build 20)
1021 MobileOrg is currently under review at the iPhone App Store. You
1022 will need Org-mode version 6.32 to interact with it.
1024 ** Added support for habit consistency tracking
1026 /org-habit.el/ contains new code to track habits. Please
1027 configure the variable org-modules to activate it. When active,
1028 habits (a special TODO entry) will be displayed in the agenda
1029 together with a "consistency graph". Habit tracking is described
1030 in a new [[http://orgmode.org/manual/Tracking-your-habits.html][manual section]].
1032 Thanks to John Wiegley for this contribution.
1034 ** New context-aware tag auto-exclusion
1036 After writing a function relating to location and context
1037 information, you will be able to press =/ RET= in the agenda to
1038 exclude tasks that cannot be done in the current context.
1039 For details, see the information about filtering in the manual.
1041 Thanks to John Wiegley for a patch to this effect.
1043 ** New clock resolving tools
1045 When clocking into a new task while no clock is running, Org now
1046 checks for orphaned CLOCK lines and offers to repair these before
1047 starting the clock. You can also configure this feature to check
1048 for idle time and prompt you to subtract that time from the
1051 See the new [[http://orgmode.org/manual/Resolving-idle-time.html][manual section]] for more details.
1053 Thanks to John Wiegley for a patch to this effect.
1055 ** Mutually exclusive tag groups can now have a name in the tags interface
1057 The customize interface allows to optionally add a string to the
1058 beginning or end of such a group.
1060 Thanks to James TD Smith for a patch to this effect.
1062 ** Agenda Search view: Search for substrings
1064 The default in search view (/C-c a s/)is now that the search
1065 expression is searched for as a /substring/, i.e. the different
1066 words must occur in direct sequence, and it may be only part of
1067 a word. If you want to look for a number of separate keywords
1068 with Boolean logic, all words must be preceded by =+= or =-=.
1070 This was, more-or-less, requested by John Wiegley.
1072 ** Make space and backspace scroll the show window in the agenda
1074 Pressing SPC again after using it to show an agenda item in
1075 another window will make the entire subtree visible, and show
1076 scroll it. Backspace and DEL will scroll back.
1078 This was a request by Eric Fraga.
1080 ** File tags are now offered for completion during a tag prompts
1082 Requested by Matt Lundin.
1084 ** Make `- SPC' an agenda filter that selects entries without any tags
1086 Request by John Wiegley.
1088 ** Better way to edit multi-line macro definitions
1090 The editing tool key =C-c '= now also edits =#+MACRO=
1091 definitions, including multiline macros.
1093 ** Restructured Manual
1095 The manual has been slightly reorganized. The archiving stuff,
1096 which was - somewhat obscurely - hidden in the /Document
1097 Structure/ chapter, has been moved into the new chapter
1098 /Capture-Refile-Archive/. Also, there is a new chapter /Markup/
1099 which contains both the markup rules (moved there from the Export
1100 chapter) and the documentation for embedded LaTeX.
1102 ** Improved figure placement in LaTeX and HTML export
1104 Text can now be wrapped around figures. See the manual for
1107 ** Allow date to be shifted into the future if time given is earlier than now
1111 : (setq org-read-date-prefer-future 'time)
1113 you indicate to Org that, if you only give a time at the
1114 date/time prompt, and if this time is earlier then the current
1115 time, then the date of tomorrow will be assumed to be valid for
1116 this event. A similar mechanism was already in place for dates,
1117 but now you can make it work for times as well.
1119 ** Collected changes in org-babel
1120 - Source blocks can now reference source-blocks in other files
1121 using =filepath:srcname= syntax.
1122 - Inline code blocks like =src_python{2+2}= are now exported
1123 - Remote source block calls using the =#+lob: srcname(arg=val)=
1124 syntax can now be exported.
1125 - When =:file= is supplied with an =R= block, graphics are
1126 automatically sent to file and linked from the org buffer, thus
1127 appearing on export. The image format is obtained from the
1128 filename extension. Possible values are =.png, .jpg, .jpeg,
1129 .tiff, .bmp, .pdf, .ps, .postscript=, defaulting to =png=.
1130 - Results can be returned as parseable code using =:results code=,
1131 and as pretty-printed code using =:results pp= (emacs-lisp,
1132 python, ruby). Thanks to Benny Andresen for the idea and patch
1134 - When =:file filename= is supplied, =:exports file= is unnecessary
1135 - Header args are taken from org-file-properties in addition to
1136 properties active in the subtree.
1137 - =:noweb= header argument now expands noweb references before
1138 source-block evaluation.
1139 - Tangling honours the new org variable
1140 org-src-preserve-indentation, so that correct code is output for
1141 a language like python that depends on indentation.
1143 ** Changes in org-exp-blocks.el
1144 - Interblocks export has been simplified.
1145 - Support for R code (=begin_R= blocks and inline =\R{}=) has been
1146 removed. Please use org-babel instead.
1153 ** Org-babel is now part of the Org distribution
1155 Org-babel provides the ability to execute source code in many
1156 different languages within org-mode documents. The results of
1157 code execution -- text, tables and graphics -- can be integrated
1158 into Org-mode documents and can be automatically updated during
1159 publishing. Since Org-babel allows execution of arbitrary code,
1160 the range of tasks that can be addressed from within an Org mode
1161 file becomes very large. Examples of ways in which Org-babel
1162 might be used include
1164 - Documenting a task that involves some programming so that it is
1165 automatically repeatable
1166 - Creating dynamic (executable) reports that respond to changes
1167 in the underlying data (Reproducible Research)
1168 - Exportation of code contained in an Org-mode document into
1169 regular source code files (Literate Programming)
1171 Additionally, Org-babel provides a programming environment within
1172 Org files, in which data can be transmitted between parameterised
1173 source code blocks in different languages, as well as between
1174 source code blocks and Org-mode tables.
1176 A simple API is defined so that users can add support for new
1177 "languages" (broadly construed). Languages currently supported
1195 Org-babel was designed and implemented Eric Schulte with continued
1196 significant help on both accounts from Dan Davison.
1198 ** MobileOrg support
1200 Richard Morelands iPhone/iPod Touch program [[http://mobileorg.ncogni.to/][MobileOrg]] can view
1201 Org files, mark entries as DONE, flag entries for later
1202 attention, and capture new entries on the road. Org-mode has now
1203 support to produce a staging area where MobileOrg can download
1204 its files, and to integrate changes done on the phone in a half
1205 automatic, half interactive way. See the new appendix B in the
1206 manual for more information.
1209 ** Indented lines starting with "#+ " are treated as comments
1211 To allow comments in plain lists without breaking the list
1212 structure, you can now have indented comment lines that start
1215 ** New STARTUP keyword `showeverything'
1217 This will make even drawer contents visible upon startup.
1218 Requested by Jeff Kowalczyk.
1220 ** New contributed package org-invoice.el
1222 This package collects clocking information for billing
1225 Thanks to Peter Jones for this contribution.
1227 ** Encrypting subtrees
1229 /org-crypt.el/ by John Wiegley and Peter Jones allows encryption
1230 of individual subtrees in Org-mode outlines. Thanks to John and
1231 Peter for this contribution.
1233 ** Agenda: Support for including a link in the category string
1235 The category (as specified by an #+CATEGORY line or CATEGORY
1236 property can contain a bracket link. While this sort-of worked
1237 in the past, it now is officially supported and should cause no
1238 problems in agenda display or update. The link can be followed
1239 by clicking on it, or with =C-c C-o 0=.
1241 This was a request by Peter Westlake.
1248 ** Inconsistent changes
1250 *** Agenda now uses =f= and =b= to move through time
1252 Up to now, the Org-mode agenda used the cursor keys =left= and
1253 =right= to switch the agenda view forward an backward through
1254 time. However, many people found this confusing, and others
1255 wanted to be able to do cursor motion in the agenda, for example
1256 to select text. Therefore, after an extensive discussion on
1257 =emacs-orgmode@gnu.org=, it was decided to use the =b= and
1258 =f= keys instead, and to let the cursor keys do cursor motion
1261 *** Agenda follow mode is now on the =F= key
1263 This was necessary to free up the =f= key, see above.
1269 **** New command to submit a bug report
1271 There is now a special command =M-x org-submit-bug-report=. This
1272 command will create a mail buffer with lots of useful details.
1273 In particular, it contains complete version information for Emacs
1274 and Org-mode. It will also (if you agree to it) contain all
1275 non-standard settings of org-mode and outline-mode related
1276 variables. Even if you do not sent your emails from within
1277 Emacs, please still use this command to generate the information
1278 and then copy it into your mail program.
1280 The command will not generate and include a =*Backtrace*= buffer,
1281 please do this yourself if you have hit an error. For more
1282 information, see the [[http://orgmode.org/manual/Feedback.html#Feedback][feedback section]] of the manual.
1284 **** New contributed package org-track.el
1286 This package allows to keep up-to-date with current Org
1287 development, using only Emacs on-board means. So if you don't
1288 want or cannot use =git=, but still want to run the latest and
1289 hottest Org-mode, this is for you.
1291 Thanks to Sebastian Rose for this contribution.
1295 **** Agenda now uses =f= and =b= to move through time
1297 Up to now, the Org-mode agenda used the cursor keys =left= and
1298 =right= to switch the agenda view forward an backward through
1299 time. However, many people found this confusing, and others
1300 wanted to be able to do cursor motion in the agenda, for example
1301 to select text. Therefore, after an extensive discussion on
1302 =emacs-orgmode@gnu.org=, it was decided to use the =b= and
1303 =f= keys instead, and to let the cursor keys do cursor motion
1306 **** Agenda follow mode is now on the =F= key
1308 This was necessary to free up the =f= key, see above.
1310 **** The agenda can be put into a dedicated frame
1312 When the variable =org-agenda-window-setup= has the value
1313 =other-frame=, then the new frame created to show the agenda
1314 will now have the window marked as /dedicated/. As a
1315 consequence, exiting the agenda while the agenda is the only
1316 window on the frame will kill that frame.
1318 This was a request by Henry Atting.
1320 **** New mode to show some entry body text in the agenda
1322 There is now a new agenda sub-mode called
1323 =org-agenda-entry-text-mode=. It is toggled with the =E= key.
1324 When active, all entries in the agenda will be accompanied by a
1325 few lines from the outline entry. The amount of text can be
1326 customized with the variable =org-agenda-entry-text-maxlines=.
1328 This was a request by Anthony Fairchild, Manish, and others.
1330 **** Improve following links from the agenda
1332 =C-c C-o= in the agenda will now offer all links in the headline
1333 and text of an entry. If there is only a single link, it will be
1334 followed immediately.
1336 **** Avoid some duplicate entries
1338 There is a new variable that can be used to avoid some duplicate
1339 agenda entries: =org-agenda-skip-scheduled-if-deadline-is-shown=
1340 If that is set, it avoids that an entry shows up in the agenda for
1341 today for both a scheduling and a deadline entry. See the
1342 docstring of the variables for more details.
1344 This partially addresses a request by Samuel Wales.
1346 **** Mark the running clock in the agenda.
1348 If the entry currently being clocked is present in the agenda, it
1349 will be highlighted with the face =org-agenda-clocking=.
1351 This was a request by Rainer Stengele.
1356 **** Allow LaTeX export to use the listings package
1358 The LaTeX =listings= package can now be used for formatting
1359 fontified source code in many programming languages. For more
1361 http://thread.gmane.org/gmane.emacs.orgmode/16269 and
1362 http://orgmode.org/worg/org-faq.php#fontified_source_code_w_latex
1364 Thanks to Eric Schulte for this patch.
1366 **** Remove table rows that only contain width and alignment markers
1368 The width and alignment in table columns can be set with a cookie
1369 like "<10>" or "<r>" or "<r10>". In order to keep Org from
1370 exporting such lines, the first column of a line should contain
1371 only "/". However, for convenience, there is now a special case:
1372 If the entire row contains only such markers, the line will
1373 automatically be discarded during export, even is the first
1376 **** Allow Macro calls to span several lines.
1378 Macro calls may now span several lines, to write several
1379 arguments in a cleaner way. The result of a macro call can also
1380 span several lines, by inserting the string "\n" (backslash
1381 followed by n) into the value in the macro definition.
1383 These were requests by Stefan Vollmar.
1387 **** Quick access to all links in an entry
1389 If =C-c C-o= is called while the cursor is in a headline, but not
1390 directly on a link, then all links in the entry will be offered
1391 in a small menu. If there is only a single link, it will be
1392 followed without a prompt.
1394 **** Visibility Cycling: Allow to show all empty lines after a headline
1396 =org-cycle-separator-lines= can now be set to a negative value,
1397 to indicate that, if the number of empty lines before a visible
1398 entry is greater than the specified number, then *all* empty
1399 lines should be shown.
1401 This was a request by "PT" whatever this means.
1403 **** Allow language names to replace some strange major mode names
1405 Sometimes a language uses a major mode which can't be guessed
1406 from it's name. There is now a new variable =org-src-lang-modes=
1407 which can be used to map language names to major modes when this
1408 is the case. This is used when editing a source-code
1409 block, or when exporting fontified source-code with htmlize.
1411 Thanks to Eric Schulte for a patch to this effect.
1413 **** iswitchb support for many completion prompts
1415 This is enabled using =org-completion-use-iswitchb=, and follows
1416 the same model of usage as for ido users.
1418 Thanks to John Wiegley for a patch to this effect.
1420 **** New commands to set the effort property of an entry
1422 There is now a special command, =C-c C-x e= to set the =Effort=
1423 property of an entry. From the agenda you can even use =e=.
1424 If you have set up allowed values for the =Effort= property, then
1425 using a prefix argument will directly select the nth allowed
1426 value. For example, in the agenda, =5 e= will select the 5th
1429 This was a request by Michael Gilbert
1431 **** Edit src works now better with killing buffer
1433 Thanks to Dan Davison for a patch to this effect
1438 For older Changes, see [[file:Changes_old.org]]
1444 #+STARTUP: showstars
1446 #+TITLE: Org-mode list of user-visible changes
1447 #+AUTHOR: Carsten Dominik
1448 #+EMAIL: carsten at orgmode dot org
1449 #+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:{} *:t TeX:t LaTeX:nil f:nil
1450 #+INFOJS_OPT: view:info toc:1 path:org-info.js tdepth:2 ftoc:t
1451 #+LINK_UP: index.html
1452 #+LINK_HOME: http://orgmode.org