mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-02-05 20:43:08 +00:00
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
* org-agenda.el (org-format-agenda-item) (org-agenda-filter-make-matcher): Make sure tags are stored and compared donwcased. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org.el (org-insert-todo-heading): Fix bug with force-heading argument. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org-exp.el (org-export-as-ascii): Handle the case that we are bulishing from an indirect buffer. * org-table.el (org-table-copy-down): Fix bug with time stamp increment. * org-mouse.el (org-mouse-features): New option. (org-mode-hook): Turn on features depending on `org-mouse-features'. * org.el (org-insert-heading-respect-content): Force heading creation. (org-insert-heading): keep the folding state of the heading before the inserted one. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org-archive.el (org-archive-to-archive-sibling): Handle top level headlines better. 2008-10-26 Bastien Guerry <bzg@altern.org> * org-export-latex.el (org-export-latex-classes): Added \usepackage{graphicx} to the default list of packages. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org-agenda.el (org-agenda-filter): Renamed from `org-agenda-filter-tags'. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org.el (org-entry-properties): Add CATEGORY property, iven if it is not defined as a property in this entry. (org-add-log-note): Mask prefix argument when immediately storing the note. * org-agenda.el (org-agenda-filter-effort-default-operator): New option. 2008-10-26 James TD Smith <ahktenzero@mohorovi.cc> * org.el (org-add-log-setup): Bugfix; code to find insertion point after drawers was skipping ahead one line too many, so notes were inserted after the first note instead of before it. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org-agenda.el (org-agenda-filter-tags,org-agenda-filter-form): New variables. (org-prepare-agenda): Reset the filter tags. (org-agenda-filter-by-tag, org-agenda-filter-by-tag-show-all): Show filter tags in mode line. * org-table.el (orgtbl-to-html): Bind `html-table-tag' for the formatter. * org-export-latex.el (org-latex-entities-regexp): New constant. (org-export-as-pdf): Use two calls to `shell-command'. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org-export-latex.el (org-export-latex-treat-sub-super-char): Honor the {} value of the subsuperscript setting. Make sure that longer subsuperscripts are typeset in a roman font. * org.el (org-clock-update-time-maybe): Compute negative clock intervals correctly. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org.el (org-add-log-setup): Respect `org-log-state-notes-insert-after-drawers'. (org-log-state-notes-insert-after-drawers): New option. (org-todo-trigger-tag-changes): New function. (org-todo): Call `org-todo-trigger-tag-changes'. 2008-10-26 James TD Smith <ahktenzero@mohorovi.cc> * org.el (org-add-log-setup): Only skip drawers if the are immediately after the scheduling keywords. * org-clock.el (org-clock-in-switch-to-state): Allow this to be a function (org-clock-in): If `org-clock-in-switch-to-state' is a function, call it with the current todo state to get the state to switch to when clocking in. (org-clock-in): Use org-indent-line-function to indent clock lines. (org-clock-find-position): Fix indentation of empty clock drawers. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org-publish.el (org-publish-org-to): Handle case when org-export-to-pdf does return a file name, not a buffer. (org-publish-org-to-pdf): New function. * org-export-latex.el (org-export-as-pdf) (org-export-as-pdf-and-open): New commands. * org-table.el (org-table-eval-formula): Avoid parsing Calc's HMS forms as ranges. * org-export-latex.el (org-export-latex-lists): Ignore lists-like things in protexted regions. 2008-10-26 Carsten Dominik <dominik@science.uva.nl> * org-export-latex.el (org-export-latex-preprocess): Improve quoting of LaTeX environments.
This commit is contained in:
parent
7f5cd5548e
commit
71d35b2418
@ -3,7 +3,7 @@
|
||||
@setfilename ../../info/org
|
||||
@settitle The Org Manual
|
||||
|
||||
@set VERSION 6.09a
|
||||
@set VERSION 6.10c
|
||||
@set DATE October 2008
|
||||
|
||||
@dircategory Emacs
|
||||
@ -291,7 +291,7 @@ Exporting
|
||||
* The export dispatcher:: How to access exporter commands
|
||||
* ASCII export:: Exporting to plain ASCII
|
||||
* HTML export:: Exporting to HTML
|
||||
* LaTeX export:: Exporting to LaTeX
|
||||
* LaTeX and PDF export:: Exporting to LaTeX, and processing to PDF
|
||||
* XOXO export:: Exporting to XOXO
|
||||
* iCalendar export:: Exporting in iCalendar format
|
||||
|
||||
@ -321,9 +321,9 @@ HTML export
|
||||
* CSS support:: Changing the appearance of the output
|
||||
* Javascript support:: Info and Folding in a web browser
|
||||
|
||||
LaTeX export
|
||||
LaTeX and PDF export
|
||||
|
||||
* LaTeX export commands:: How to invoke LaTeX export
|
||||
* LaTeX/PDF export commands::
|
||||
* Quoting LaTeX code:: Incorporating literal LaTeX code
|
||||
* Sectioning structure:: Changing sectioning in LaTeX output
|
||||
|
||||
@ -541,7 +541,7 @@ You need to fix the single quotes by hand, or copy from Info
|
||||
documentation.}
|
||||
@end iftex
|
||||
|
||||
Add the following lines to your @file{.emacs} file. The last two lines
|
||||
Add the following lines to your @file{.emacs} file. The last three lines
|
||||
define @emph{global} keys for the commands @command{org-store-link},
|
||||
@command{org-agenda}, and @command{org-iswitchb} - please choose suitable
|
||||
keys yourself.
|
||||
@ -859,11 +859,14 @@ you can use the following keys to find your destination:
|
||||
@example
|
||||
@key{TAB} @r{Cycle visibility.}
|
||||
@key{down} / @key{up} @r{Next/previous visible headline.}
|
||||
@key{RET} @r{Select this location.}
|
||||
@kbd{/} @r{Do a Sparse-tree search}
|
||||
@r{The following keys work if you turn off @code{org-goto-auto-isearch}}
|
||||
n / p @r{Next/previous visible headline.}
|
||||
f / b @r{Next/previous headline same level.}
|
||||
u @r{One level up.}
|
||||
0-9 @r{Digit argument.}
|
||||
@key{RET} @r{Select this location.}
|
||||
q @r{Quit}
|
||||
@end example
|
||||
@end table
|
||||
|
||||
@ -897,8 +900,9 @@ of a headline), then a headline like the current one will be inserted
|
||||
after the end of the subtree.
|
||||
@kindex C-@key{RET}
|
||||
@item C-@key{RET}
|
||||
Just like @kbd{M-@key{RET}}, but if the heading is inserted after the current,
|
||||
insert it actually after the entire subtree.
|
||||
Just like @kbd{M-@key{RET}}, except when adding a new heading below the
|
||||
current heading, the new heading is placed after the body instead of before
|
||||
it. This command works from anywhere in the entry.
|
||||
@kindex M-S-@key{RET}
|
||||
@item M-S-@key{RET}
|
||||
Insert new TODO entry with same level as current heading.
|
||||
@ -927,9 +931,7 @@ level).
|
||||
@item M-S-@key{down}
|
||||
Move subtree down (swap with next subtree of same level).
|
||||
@kindex C-c C-x C-w
|
||||
@kindex C-c C-x C-k
|
||||
@item C-c C-x C-w
|
||||
@itemx C-c C-x C-k
|
||||
Kill subtree, i.e. remove it from buffer but save in kill ring.
|
||||
With a numeric prefix argument N, kill N sequential subtrees.
|
||||
@kindex C-c C-x M-w
|
||||
@ -2272,12 +2274,10 @@ functions.
|
||||
@cindex plot tables using gnuplot
|
||||
|
||||
Org Plot can produce 2D and 3D graphs of information stored in org tables
|
||||
using @file{Gnuplot} (see @uref{http://www.gnuplot.info/, the Gnuplot
|
||||
website}) and @file{gnuplot-mode} (see
|
||||
@uref{http://cars9.uchicago.edu/~ravel/software/gnuplot-mode.html, the
|
||||
gnuplot-mode website}). To see this in action ensure that you have both
|
||||
Gnuplot and Gnuplot-mode installed on your system, then call
|
||||
@code{org-plot/gnuplot} on the following table.
|
||||
using @file{Gnuplot} @uref{http://www.gnuplot.info/} and @file{gnuplot-mode}
|
||||
@uref{http://cars9.uchicago.edu/~ravel/software/gnuplot-mode.html}. To see
|
||||
this in action ensure that you have both Gnuplot and Gnuplot-mode installed
|
||||
on your system, then call @code{org-plot/gnuplot} on the following table.
|
||||
|
||||
@example
|
||||
@group
|
||||
@ -2296,8 +2296,8 @@ Notice that Org Plot is smart enough to apply the tables headers as labels.
|
||||
Further control over the labels, type, content, and appearance of plots can
|
||||
be exercised through the @code{#+Plot:} lines preceding a table. See below
|
||||
for a complete list of Org plot options. For more information and examples
|
||||
@uref{http://orgmode.org/worg/org-tutorials/org-plot.php, the org-plot
|
||||
tutorial}.
|
||||
see the org-plot tutorial at
|
||||
@uref{http://legito.org/worg/org-tutorials/org-plot.php}.
|
||||
|
||||
@subsubheading Plot Options
|
||||
|
||||
@ -2312,8 +2312,10 @@ Specify the title of the plot.
|
||||
Specify which column of the table to use as the @code{x} axis.
|
||||
|
||||
@item deps
|
||||
Specify (as a comma seperated list with no spaces) which columns of the table
|
||||
to graph against the ind (defaults to all other columns).
|
||||
Specify the columns to graph as a lisp style list, surrounded by parenthesis
|
||||
and separated by spaces for example @code{dep:(3 4)} to graph the third and
|
||||
fourth columns (defaults to graphing all other columns aside from the ind
|
||||
column).
|
||||
|
||||
@item type
|
||||
Specify whether the plot will be @code{2d}, @code{3d}, or @code{grid}.
|
||||
@ -2895,6 +2897,10 @@ commands}). @xref{Global TODO list}, for more information.
|
||||
Insert a new TODO entry below the current one.
|
||||
@end table
|
||||
|
||||
@noindent
|
||||
Changing a TODO state can also trigger tag changes. See the docstring of the
|
||||
option @code{org-todo-state-tags-triggers} for details.
|
||||
|
||||
@node TODO extensions, Progress logging, TODO basics, TODO Items
|
||||
@section Extended use of TODO keywords
|
||||
@cindex extended TODO keywords
|
||||
@ -3225,7 +3231,6 @@ settings like @code{TODO(!)}. For example
|
||||
:END:
|
||||
@end example
|
||||
|
||||
|
||||
@node Priorities, Breaking down tasks, Progress logging, TODO Items
|
||||
@section Priorities
|
||||
@cindex priorities
|
||||
@ -3471,8 +3476,8 @@ After a colon, @kbd{M-@key{TAB}} offers completion on tags. There is
|
||||
also a special command for inserting tags:
|
||||
|
||||
@table @kbd
|
||||
@kindex C-c C-c
|
||||
@item C-c C-c
|
||||
@kindex C-c C-q
|
||||
@item C-c C-q
|
||||
@cindex completion, of tags
|
||||
Enter new tags for the current headline. Org mode will either offer
|
||||
completion or a special single-key interface for setting tags, see
|
||||
@ -3481,6 +3486,9 @@ to @code{org-tags-column}. When called with a @kbd{C-u} prefix, all
|
||||
tags in the current buffer will be aligned to that column, just to make
|
||||
things look nice. TAGS are automatically realigned after promotion,
|
||||
demotion, and TODO state changes (@pxref{TODO basics}).
|
||||
@kindex C-c C-c
|
||||
@item C-c C-c
|
||||
When the cursor is in a headline, this does the same as @kbd{C-c C-q}.
|
||||
@end table
|
||||
|
||||
Org will support tag insertion based on a @emph{list of tags}. By
|
||||
@ -4857,10 +4865,10 @@ you want to clock your time). For a specific buffer you can use
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
or you can set up these values globally by customizing the variables
|
||||
@code{org-global-properties} and @code{org-columns-default-format}. In
|
||||
particular if you want to use this setup also in the agenda, a global setup
|
||||
may be advised.
|
||||
or, even better, you can set up these values globally by customizing the
|
||||
variables @code{org-global-properties} and @code{org-columns-default-format}.
|
||||
In particular if you want to use this setup also in the agenda, a global
|
||||
setup may be advised.
|
||||
|
||||
The way to assign estimates to individual items is then to switch to column
|
||||
mode, and to use @kbd{S-@key{right}} and @kbd{S-@key{left}} to change the
|
||||
@ -4876,6 +4884,10 @@ option @code{org-agenda-columns-add-appointments-to-effort-sum}. The
|
||||
appointments on a day that take place over a specified time interval will
|
||||
then also be added to the load estimate of the day.
|
||||
|
||||
Effort estimates can be used in secondary agenda filtering that is triggered
|
||||
with the @kbd{/} key in the agenda (@pxref{Agenda commands}). If you have
|
||||
these estimates defined consistently, two or three key presses will narrow
|
||||
down the list to stuff that fits into an available time slot.
|
||||
|
||||
@node Capture, Agenda Views, Dates and Times, Top
|
||||
@chapter Capture
|
||||
@ -5829,9 +5841,7 @@ sequence in which they are found in the agenda files.
|
||||
|
||||
Sorting can be customized using the variable
|
||||
@code{org-agenda-sorting-strategy}, and may also include criteria based on
|
||||
the estimated effort of an entry.
|
||||
@c FIXME: link!!!!!!!!
|
||||
|
||||
the estimated effort of an entry (@pxref{Effort estimates}).
|
||||
|
||||
@node Agenda commands, Custom agenda views, Presentation and sorting, Agenda Views
|
||||
@section Commands in the agenda buffer
|
||||
@ -5988,17 +5998,48 @@ that entry would be in the original buffer (taken from a property, from a
|
||||
@code{org-columns-default-format}), will be used in the agenda.
|
||||
|
||||
@tsubheading{Secondary filtering and query editing}
|
||||
@cindex filtering, by tag and effort, in agenda
|
||||
@cindex tag filtering, in agenda
|
||||
@cindex effort filtering, in agenda
|
||||
@cindex query editing, in agenda
|
||||
|
||||
@kindex /
|
||||
@item /
|
||||
Filter the current agenda view with respect to a tag. You will be prompted
|
||||
for a tag selection letter. Pressing @key{TAB} at that prompt will offer use
|
||||
completion to select a tag (including any tags that do not have a selection
|
||||
character). The command then hides all entries that do not contain or
|
||||
inherit this tag. When called with prefix arg, remove the entries that
|
||||
@emph{do} have the tag. A second @kbd{/} at the prompt will unhide any
|
||||
hidden entries.
|
||||
Filter the current agenda view with respect to a tag and/or effort estimates.
|
||||
The difference between this and a custom agenda commands is that filtering is
|
||||
very fast, so that you can switch quickly between different filters without
|
||||
having to recreate the agenda.
|
||||
|
||||
You will be prompted for a tag selection letter. Pressing @key{TAB} at that
|
||||
prompt will offer use completion to select a tag (including any tags that do
|
||||
not have a selection character). The command then hides all entries that do
|
||||
not contain or inherit this tag. When called with prefix arg, remove the
|
||||
entries that @emph{do} have the tag. A second @kbd{/} at the prompt will
|
||||
turn off the filter and unhide any hidden entries. If the first key you
|
||||
press is either @kbd{+} or @kbd{-}, the previous filter will be narrowed by
|
||||
requiring or forbidding the selected additional tag. Instead of pressing
|
||||
@kbd{+} or @kbd{-}, you can also use the @kbd{\} command.
|
||||
|
||||
In order to filter for effort estimates, you should set-up allowed
|
||||
efforts globally, for example
|
||||
@lisp
|
||||
(setq org-global-properties
|
||||
'(("Effort_ALL". "0 0:10 0:30 1:00 2:00 3:00 4:00")))
|
||||
@end lisp
|
||||
You can then filter for an effort by first typing an operator, one of @kbd{<},
|
||||
@kbd{>}, and @kbd{=}, and then the one-digit index of an effort estimate in
|
||||
your array of allowed values, where @kbd{0} means the 10th value. The filter
|
||||
will then restrict to entries with effort smaller-or-equal, equal, or
|
||||
larger-or-equal than the selected value. If the digits 0-9 are not used as
|
||||
fast access keys to tags, you can also simply press the index digit directly
|
||||
without an operator. In this case, @kbd{<} will be assumed.
|
||||
|
||||
@kindex \
|
||||
@item \
|
||||
Narrow the current agenda filter by an additional condition. When called with
|
||||
prefix arg, remove the entries that @emph{do} have the tag, or that do match
|
||||
the effort criterion. You can achieve the same effect by pressing @kbd{+} or
|
||||
@kbd{-} as the first key after the @kbd{/} command.
|
||||
|
||||
@kindex [
|
||||
@kindex ]
|
||||
@ -6520,7 +6561,8 @@ From the command line you may also use
|
||||
emacs -f org-batch-store-agenda-views -kill
|
||||
@end example
|
||||
@noindent
|
||||
or, if you need to modify some parameters
|
||||
or, if you need to modify some parameters@footnote{Quoting may depend on the
|
||||
system you use, please check th FAQ for examples.}
|
||||
@example
|
||||
emacs -eval '(org-batch-store-agenda-views \
|
||||
org-agenda-ndays 30 \
|
||||
@ -6930,7 +6972,7 @@ Org mode only supports export, not import of these different formats.
|
||||
* The export dispatcher:: How to access exporter commands
|
||||
* ASCII export:: Exporting to plain ASCII
|
||||
* HTML export:: Exporting to HTML
|
||||
* LaTeX export:: Exporting to LaTeX
|
||||
* LaTeX and PDF export:: Exporting to LaTeX, and processing to PDF
|
||||
* XOXO export:: Exporting to XOXO
|
||||
* iCalendar export:: Exporting in iCalendar format
|
||||
@end menu
|
||||
@ -7454,7 +7496,7 @@ the body text. Any indentation larger than this is adjusted to preserve
|
||||
the layout relative to the first line. Should there be lines with less
|
||||
indentation than the first, these are left alone.
|
||||
|
||||
@node HTML export, LaTeX export, ASCII export, Exporting
|
||||
@node HTML export, LaTeX and PDF export, ASCII export, Exporting
|
||||
@section HTML export
|
||||
@cindex HTML export
|
||||
|
||||
@ -7698,19 +7740,23 @@ You can choose default values for these options by customizing the variable
|
||||
@code{org-infojs-options}. If you always want to apply the script to your
|
||||
pages, configure the variable @code{org-export-html-use-infojs}.
|
||||
|
||||
@node LaTeX export, XOXO export, HTML export, Exporting
|
||||
@section LaTeX export
|
||||
@node LaTeX and PDF export, XOXO export, HTML export, Exporting
|
||||
@section LaTeX and PDF export
|
||||
@cindex LaTeX export
|
||||
@cindex PDF export
|
||||
|
||||
Org mode contains a La@TeX{} exporter written by Bastien Guerry.
|
||||
Org mode contains a La@TeX{} exporter written by Bastien Guerry. With
|
||||
further processing, this backend is also used to produce PDF output. Since
|
||||
the LaTeX output uses @file{hyperref} to implement links and cross
|
||||
references, the PDF output file will be fully linked.
|
||||
|
||||
@menu
|
||||
* LaTeX export commands:: How to invoke LaTeX export
|
||||
* LaTeX/PDF export commands::
|
||||
* Quoting LaTeX code:: Incorporating literal LaTeX code
|
||||
* Sectioning structure:: Changing sectioning in LaTeX output
|
||||
@end menu
|
||||
|
||||
@node LaTeX export commands, Quoting LaTeX code, LaTeX export, LaTeX export
|
||||
@node LaTeX/PDF export commands, Quoting LaTeX code, LaTeX and PDF export, LaTeX and PDF export
|
||||
@subsection LaTeX export commands
|
||||
|
||||
@table @kbd
|
||||
@ -7738,6 +7784,12 @@ buffer.
|
||||
@item M-x org-replace-region-by-latex
|
||||
Replace the active region (assumed to be in Org mode syntax) by La@TeX{}
|
||||
code.
|
||||
@kindex C-c C-e p
|
||||
@item C-c C-e p
|
||||
Export as LaTeX and then process to PDF.
|
||||
@kindex C-c C-e d
|
||||
@item C-c C-e d
|
||||
Export as LaTeX and then process to PDF, then open the resulting PDF file.
|
||||
@end table
|
||||
|
||||
@cindex headline levels, for exporting
|
||||
@ -7757,7 +7809,7 @@ with a numeric prefix argument. For example,
|
||||
@noindent
|
||||
creates two levels of headings and does the rest as items.
|
||||
|
||||
@node Quoting LaTeX code, Sectioning structure, LaTeX export commands, LaTeX export
|
||||
@node Quoting LaTeX code, Sectioning structure, LaTeX/PDF export commands, LaTeX and PDF export
|
||||
@subsection Quoting LaTeX code
|
||||
|
||||
Embedded La@TeX{} as described in @ref{Embedded LaTeX} will be correctly
|
||||
@ -7778,7 +7830,7 @@ All lines between these markers are exported literally
|
||||
#+END_LaTeX
|
||||
@end example
|
||||
|
||||
@node Sectioning structure, , Quoting LaTeX code, LaTeX export
|
||||
@node Sectioning structure, , Quoting LaTeX code, LaTeX and PDF export
|
||||
@subsection Sectioning structure
|
||||
@cindex LaTeX class
|
||||
@cindex LaTeX sectioning structure
|
||||
@ -7786,13 +7838,13 @@ All lines between these markers are exported literally
|
||||
By default, the La@TeX{} output uses the class @code{article}.
|
||||
|
||||
You can change this globally by setting a different value for
|
||||
@code{org-export-latex-default-class} or locally by adding an option
|
||||
like @code{#+LaTeX_CLASS: myclass} in your file. The class should be
|
||||
listed in @code{org-export-latex-classes}, where you can also define the
|
||||
sectioning structure for each class.
|
||||
@code{org-export-latex-default-class} or locally by adding an option like
|
||||
@code{#+LaTeX_CLASS: myclass} in your file. The class should be listed in
|
||||
@code{org-export-latex-classes}, where you can also define the sectioning
|
||||
structure for each class, as well as defining additonal classes.
|
||||
|
||||
|
||||
@node XOXO export, iCalendar export, LaTeX export, Exporting
|
||||
@node XOXO export, iCalendar export, LaTeX and PDF export, Exporting
|
||||
@section XOXO export
|
||||
@cindex XOXO export
|
||||
|
||||
@ -7984,14 +8036,14 @@ and @code{:exclude}.
|
||||
@cindex action, for publishing
|
||||
|
||||
Publishing means that a file is copied to the destination directory and
|
||||
possibly transformed in the process. The default transformation is to
|
||||
export Org files as HTML files, and this is done by the function
|
||||
@code{org-publish-org-to-html} which calls the HTML exporter
|
||||
(@pxref{HTML export}). But you also can publish your files in La@TeX{} by
|
||||
using the function @code{org-publish-org-to-latex} instead. Other files
|
||||
like images only need to be copied to the publishing destination. For
|
||||
non-Org files, you need to specify the publishing function.
|
||||
|
||||
possibly transformed in the process. The default transformation is to export
|
||||
Org files as HTML files, and this is done by the function
|
||||
@code{org-publish-org-to-html} which calls the HTML exporter (@pxref{HTML
|
||||
export}). But you also can publish your files in La@TeX{} by using the
|
||||
function @code{org-publish-org-to-latex} instead, or as PDF files using
|
||||
@code{org-publish-org-to-pdf}. Other files like images only need to be
|
||||
copied to the publishing destination. For non-Org files, you need to provide
|
||||
your own publishing function:
|
||||
|
||||
@multitable @columnfractions 0.3 0.7
|
||||
@item @code{:publishing-function}
|
||||
@ -8633,7 +8685,7 @@ tty you would rather use @kbd{C-c .} to re-insert the timestamp.
|
||||
@item @kbd{S-@key{TAB}} @tab @kbd{C-u @key{TAB}} @tab
|
||||
@item @kbd{M-@key{left}} @tab @kbd{C-c C-x l} @tab @kbd{@key{Esc} @key{left}}
|
||||
@item @kbd{M-S-@key{left}} @tab @kbd{C-c C-x L} @tab
|
||||
@item @kbd{M-@key{right}} @tab @kbd{C-c C-x r} @tab @kbd{@key{Esc} @key{right}}
|
||||
@item @kbd{M-@key{right}} @tab @kbd{C-c C-x i} @tab @kbd{@key{Esc} @key{right}}
|
||||
@item @kbd{M-S-@key{right}} @tab @kbd{C-c C-x R} @tab
|
||||
@item @kbd{M-@key{up}} @tab @kbd{C-c C-x u} @tab @kbd{@key{Esc} @key{up}}
|
||||
@item @kbd{M-S-@key{up}} @tab @kbd{C-c C-x U} @tab
|
||||
|
@ -1,5 +1,5 @@
|
||||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{6.09a}
|
||||
\def\orgversionnumber{6.10c}
|
||||
\def\versionyear{2008} % latest update
|
||||
\def\year{2008} % latest copyright year
|
||||
|
||||
@ -539,8 +539,8 @@ after ``{\tt :}'', and dictionary words elsewhere.
|
||||
|
||||
\section{Tags}
|
||||
|
||||
\key{set tags for current heading}{C-c C-c}
|
||||
\key{realign tags in all headings}{C-u C-c C-c}
|
||||
\key{set tags for current heading}{C-c C-q}
|
||||
\key{realign tags in all headings}{C-u C-c C-q}
|
||||
\key{create sparse tree with matching tags}{C-c \\}
|
||||
\key{globally (agenda) match tags at cursor}{C-c C-o}
|
||||
|
||||
@ -607,7 +607,7 @@ after ``{\tt :}'', and dictionary words elsewhere.
|
||||
\key{compile agenda for the current week}{C-c a a$^1$}
|
||||
\key{compile global TODO list}{C-c a t$^1$}
|
||||
\key{compile TODO list for specific keyword}{C-c a T$^1$}
|
||||
\key{match tags, ODO kwds, properties}{C-c a m$^1$}
|
||||
\key{match tags, TODO kwds, properties}{C-c a m$^1$}
|
||||
\key{match only in TODO entries}{C-c a M$^1$}
|
||||
\key{find stuck projects}{C-c a \#$^1$}
|
||||
\key{show timeline of current org file}{C-c a L$^1$}
|
||||
|
@ -1,3 +1,126 @@
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-agenda.el (org-format-agenda-item)
|
||||
(org-agenda-filter-make-matcher): Make sure tags are stored and
|
||||
compared donwcased.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org.el (org-insert-todo-heading): Fix bug with force-heading
|
||||
argument.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-exp.el (org-export-as-ascii): Handle the case that we are
|
||||
bulishing from an indirect buffer.
|
||||
|
||||
* org-table.el (org-table-copy-down): Fix bug with time stamp
|
||||
increment.
|
||||
|
||||
* org-mouse.el (org-mouse-features): New option.
|
||||
(org-mode-hook): Turn on features depending on
|
||||
`org-mouse-features'.
|
||||
|
||||
* org.el (org-insert-heading-respect-content): Force heading
|
||||
creation.
|
||||
(org-insert-heading): keep the folding state of the heading before
|
||||
the inserted one.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-archive.el (org-archive-to-archive-sibling): Handle top
|
||||
level headlines better.
|
||||
|
||||
2008-10-26 Bastien Guerry <bzg@altern.org>
|
||||
|
||||
* org-export-latex.el (org-export-latex-classes): Added
|
||||
\usepackage{graphicx} to the default list of packages.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-agenda.el (org-agenda-filter): Renamed from
|
||||
`org-agenda-filter-tags'.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org.el (org-entry-properties): Add CATEGORY property, iven if it
|
||||
is not defined as a property in this entry.
|
||||
(org-add-log-note): Mask prefix argument when immediately storing
|
||||
the note.
|
||||
|
||||
* org-agenda.el (org-agenda-filter-effort-default-operator): New
|
||||
option.
|
||||
|
||||
2008-10-26 James TD Smith <ahktenzero@mohorovi.cc>
|
||||
|
||||
* org.el (org-add-log-setup): Bugfix; code to find insertion point
|
||||
after drawers was skipping ahead one line too many, so notes were
|
||||
inserted after the first note instead of before it.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-agenda.el (org-agenda-filter-tags,org-agenda-filter-form):
|
||||
New variables.
|
||||
(org-prepare-agenda): Reset the filter tags.
|
||||
(org-agenda-filter-by-tag, org-agenda-filter-by-tag-show-all):
|
||||
Show filter tags in mode line.
|
||||
|
||||
* org-table.el (orgtbl-to-html): Bind `html-table-tag' for the
|
||||
formatter.
|
||||
|
||||
* org-export-latex.el (org-latex-entities-regexp): New constant.
|
||||
(org-export-as-pdf): Use two calls to `shell-command'.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-export-latex.el (org-export-latex-treat-sub-super-char):
|
||||
Honor the {} value of the subsuperscript setting. Make sure that
|
||||
longer subsuperscripts are typeset in a roman font.
|
||||
|
||||
* org.el (org-clock-update-time-maybe): Compute negative clock
|
||||
intervals correctly.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org.el (org-add-log-setup): Respect
|
||||
`org-log-state-notes-insert-after-drawers'.
|
||||
(org-log-state-notes-insert-after-drawers): New option.
|
||||
(org-todo-trigger-tag-changes): New function.
|
||||
(org-todo): Call `org-todo-trigger-tag-changes'.
|
||||
|
||||
2008-10-26 James TD Smith <ahktenzero@mohorovi.cc>
|
||||
|
||||
* org.el (org-add-log-setup): Only skip drawers if the are
|
||||
immediately after the scheduling keywords.
|
||||
|
||||
* org-clock.el (org-clock-in-switch-to-state): Allow this to be a
|
||||
function
|
||||
(org-clock-in): If `org-clock-in-switch-to-state' is a function,
|
||||
call it with the current todo state to get the state to switch to
|
||||
when clocking in.
|
||||
(org-clock-in): Use org-indent-line-function to indent clock lines.
|
||||
(org-clock-find-position): Fix indentation of empty clock drawers.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-publish.el (org-publish-org-to): Handle case when
|
||||
org-export-to-pdf does return a file name, not a buffer.
|
||||
(org-publish-org-to-pdf): New function.
|
||||
|
||||
* org-export-latex.el (org-export-as-pdf)
|
||||
(org-export-as-pdf-and-open): New commands.
|
||||
|
||||
* org-table.el (org-table-eval-formula): Avoid parsing Calc's HMS
|
||||
forms as ranges.
|
||||
|
||||
* org-export-latex.el (org-export-latex-lists): Ignore lists-like
|
||||
things in protexted regions.
|
||||
|
||||
2008-10-26 Carsten Dominik <dominik@science.uva.nl>
|
||||
|
||||
* org-export-latex.el (org-export-latex-preprocess): Improve
|
||||
quoting of LaTeX environments.
|
||||
|
||||
2008-10-19 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* org.el (org-default-notes-file):
|
||||
|
@ -6,7 +6,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -32,6 +32,7 @@
|
||||
|
||||
(require 'org)
|
||||
(eval-when-compile
|
||||
(require 'cl)
|
||||
(require 'calendar))
|
||||
|
||||
(declare-function diary-add-to-list "diary-lib"
|
||||
@ -386,6 +387,14 @@ or `C-c a #' to produce the list."
|
||||
(repeat :tag "Projects are *not* stuck if they have an entry with TAG being any of" (string))
|
||||
(regexp :tag "Projects are *not* stuck if this regexp matches\ninside the subtree")))
|
||||
|
||||
(defcustom org-agenda-filter-effort-default-operator "<"
|
||||
"The default operator for effort estimate filtering.
|
||||
If you select an effort estimate limit with first pressing an operator,
|
||||
this one will be used."
|
||||
:group 'org-agenda-custom-commands
|
||||
:type '(choice (const :tag "less or equal" "<")
|
||||
(const :tag "greater or equal"">")
|
||||
(const :tag "equal" "=")))
|
||||
|
||||
(defgroup org-agenda-skip nil
|
||||
"Options concerning skipping parts of agenda files."
|
||||
@ -1092,6 +1101,7 @@ The following commands are available:
|
||||
(org-defkey org-agenda-mode-map "t" 'org-agenda-todo)
|
||||
(org-defkey org-agenda-mode-map "a" 'org-agenda-toggle-archive-tag)
|
||||
(org-defkey org-agenda-mode-map ":" 'org-agenda-set-tags)
|
||||
(org-defkey org-agenda-mode-map "\C-c\C-q" 'org-agenda-set-tags)
|
||||
(org-defkey org-agenda-mode-map "." 'org-agenda-goto-today)
|
||||
(org-defkey org-agenda-mode-map "j" 'org-agenda-goto-date)
|
||||
(org-defkey org-agenda-mode-map "d" 'org-agenda-day-view)
|
||||
@ -1167,6 +1177,7 @@ The following commands are available:
|
||||
(org-defkey org-agenda-mode-map "{" 'org-agenda-manipulate-query-add-re)
|
||||
(org-defkey org-agenda-mode-map "}" 'org-agenda-manipulate-query-subtract-re)
|
||||
(org-defkey org-agenda-mode-map "/" 'org-agenda-filter-by-tag)
|
||||
(org-defkey org-agenda-mode-map "\\" 'org-agenda-filter-by-tag-refine)
|
||||
|
||||
(defvar org-agenda-keymap (copy-keymap org-agenda-mode-map)
|
||||
"Local keymap for agenda entries from Org-mode.")
|
||||
@ -1953,9 +1964,11 @@ higher priority settings."
|
||||
(defvar org-pre-agenda-window-conf nil)
|
||||
(defvar org-agenda-columns-active nil)
|
||||
(defvar org-agenda-name nil)
|
||||
(defvar org-agenda-filter nil)
|
||||
(defun org-prepare-agenda (&optional name)
|
||||
(setq org-todo-keywords-for-agenda nil)
|
||||
(setq org-done-keywords-for-agenda nil)
|
||||
(setq org-agenda-filter nil)
|
||||
(if org-agenda-multi
|
||||
(progn
|
||||
(setq buffer-read-only nil)
|
||||
@ -3737,7 +3750,7 @@ Any match of REMOVE-RE will be removed from TXT."
|
||||
|
||||
;; And finally add the text properties
|
||||
(org-add-props rtn nil
|
||||
'org-category (downcase category) 'tags tags
|
||||
'org-category (downcase category) 'tags (mapcar 'downcase tags)
|
||||
'org-highest-priority org-highest-priority
|
||||
'org-lowest-priority org-lowest-priority
|
||||
'prefix-length (- (length rtn) (length txt))
|
||||
@ -3934,7 +3947,7 @@ HH:MM."
|
||||
(t nil))))
|
||||
|
||||
(defsubst org-cmp-tag (a b)
|
||||
"Compare the string values of categories of strings A and B."
|
||||
"Compare the string values of the first tags of A and B."
|
||||
(let ((ta (car (last (get-text-property 1 'tags a))))
|
||||
(tb (car (last (get-text-property 1 'tags b)))))
|
||||
(cond ((not ta) +1)
|
||||
@ -4101,6 +4114,7 @@ So this is just a shortcut for `\\[org-agenda]', available in the agenda."
|
||||
When this is the global TODO list, a prefix argument will be interpreted."
|
||||
(interactive)
|
||||
(let* ((org-agenda-keep-modes t)
|
||||
(filter org-agenda-filter)
|
||||
(cols org-agenda-columns-active)
|
||||
(line (org-current-line))
|
||||
(window-line (- line (org-current-line (window-start))))
|
||||
@ -4111,52 +4125,138 @@ When this is the global TODO list, a prefix argument will be interpreted."
|
||||
(setq org-agenda-undo-list nil
|
||||
org-agenda-pending-undo-list nil)
|
||||
(message "Rebuilding agenda buffer...done")
|
||||
(and filter (org-agenda-filter-apply filter))
|
||||
(and cols (interactive-p) (org-agenda-columns))
|
||||
(goto-line line)
|
||||
(recenter window-line)))
|
||||
|
||||
|
||||
(defvar org-global-tags-completion-table nil)
|
||||
(defun org-agenda-filter-by-tag (strip &optional char)
|
||||
(defvar org-agenda-filter-form nil)
|
||||
(defun org-agenda-filter-by-tag (strip &optional char narrow)
|
||||
"Keep only those lines in the agenda buffer that have a specific tag.
|
||||
The tag is selected with its fast selection letter, as configured.
|
||||
With prefix argument STRIP, remove all lines that do have the tag."
|
||||
With prefix argument STRIP, remove all lines that do have the tag.
|
||||
A lisp caller can specify CHAR. NARROW means that the new tag should be
|
||||
used to narrow the search - the interactive user can also press `-' or `+'
|
||||
to switch to narrowing."
|
||||
(interactive "P")
|
||||
(let (char a tag tags (inhibit-read-only t))
|
||||
(message "Select tag [%s] or no tag [ ], [TAB] to complete, [/] to restore: "
|
||||
(mapconcat
|
||||
(lambda (x) (if (cdr x) (char-to-string (cdr x)) ""))
|
||||
org-tag-alist-for-agenda ""))
|
||||
(let* ((alist org-tag-alist-for-agenda)
|
||||
(tag-chars (mapconcat
|
||||
(lambda (x) (if (cdr x) (char-to-string (cdr x)) ""))
|
||||
alist ""))
|
||||
(efforts (org-split-string
|
||||
(or (cdr (assoc (concat org-effort-property "_ALL")
|
||||
org-global-properties))
|
||||
"0 0:10 0:30 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00" "")))
|
||||
(effort-op org-agenda-filter-effort-default-operator)
|
||||
(effort-prompt "")
|
||||
(inhibit-read-only t)
|
||||
(current org-agenda-filter)
|
||||
char a n tag tags)
|
||||
(unless char
|
||||
(message
|
||||
"%s by tag [%s ], [TAB], [/]:off, [+-]:narrow, [>=<]:effort: "
|
||||
(if narrow "Narrow" "Filter") tag-chars)
|
||||
(setq char (read-char)))
|
||||
(when (member char '(?+ ?-))
|
||||
;; Narrowing down
|
||||
(cond ((equal char ?-) (setq strip t narrow t))
|
||||
((equal char ?+) (setq strip nil narrow t)))
|
||||
(message
|
||||
"Narrow by tag [%s ], [TAB], [/]:off, [>=<]:effort: " tag-chars)
|
||||
(setq char (read-char)))
|
||||
(when (member char '(?< ?> ?=))
|
||||
;; An effort operator
|
||||
(setq effort-op (char-to-string char))
|
||||
(loop for i from 0 to 9 do
|
||||
(setq effort-prompt
|
||||
(concat
|
||||
effort-prompt " ["
|
||||
(if (= i 9) "0" (int-to-string (1+ i)))
|
||||
"]" (nth i efforts))))
|
||||
(setq alist nil) ; to make sure it will be interpreted as effort.
|
||||
(message "Effort%s: %s " effort-op effort-prompt)
|
||||
(setq char (read-char))
|
||||
(when (equal char ?\t)
|
||||
(unless (local-variable-p 'org-global-tags-completion-table)
|
||||
(org-set-local 'org-global-tags-completion-table
|
||||
(org-global-tags-completion-table)))
|
||||
(let ((completion-ignore-case t))
|
||||
(setq tag (completing-read
|
||||
"Tag: " org-global-tags-completion-table))))
|
||||
(cond
|
||||
((equal char ?/) (org-agenda-filter-by-tag-show-all))
|
||||
((or (equal char ?\ )
|
||||
(setq a (rassoc char org-tag-alist-for-agenda))
|
||||
(and tag (setq a (cons tag nil))))
|
||||
(org-agenda-filter-by-tag-show-all)
|
||||
(setq tag (car a))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (not (eobp))
|
||||
(if (get-text-property (point) 'org-marker)
|
||||
(progn
|
||||
(setq tags (get-text-property (point) 'tags))
|
||||
(if (not tag)
|
||||
(if (or (and strip (not tags))
|
||||
(and (not strip) tags))
|
||||
(org-agenda-filter-by-tag-hide-line))
|
||||
(if (or (and (member tag tags) strip)
|
||||
(and (not (member tag tags)) (not strip)))
|
||||
(org-agenda-filter-by-tag-hide-line)))
|
||||
(beginning-of-line 2))
|
||||
(beginning-of-line 2)))))
|
||||
(t (error "Invalid tag selection character %c" char)))))
|
||||
(when (or (< char ?0) (> char ?9))
|
||||
(error "Need 1-9,0 to select effort" )))
|
||||
(when (equal char ?\t)
|
||||
(unless (local-variable-p 'org-global-tags-completion-table (current-buffer))
|
||||
(org-set-local 'org-global-tags-completion-table
|
||||
(org-global-tags-completion-table)))
|
||||
(let ((completion-ignore-case t))
|
||||
(setq tag (completing-read
|
||||
"Tag: " org-global-tags-completion-table))))
|
||||
(cond
|
||||
((equal char ?/) (org-agenda-filter-by-tag-show-all))
|
||||
((or (equal char ?\ )
|
||||
(setq a (rassoc char alist))
|
||||
(and (>= char ?0) (<= char ?9)
|
||||
(setq n (if (= char ?0) 9 (- char ?0 1))
|
||||
tag (concat effort-op (nth n efforts))
|
||||
a (cons tag nil)))
|
||||
(and tag (setq a (cons tag nil))))
|
||||
(org-agenda-filter-by-tag-show-all)
|
||||
(setq tag (car a))
|
||||
(setq org-agenda-filter
|
||||
(cons (concat (if strip "-" "+") tag)
|
||||
(if narrow current nil)))
|
||||
(org-agenda-filter-apply org-agenda-filter))
|
||||
(t (error "Invalid tag selection character %c" char)))))
|
||||
|
||||
(defun org-agenda-filter-by-tag-refine (strip &optional char)
|
||||
"Refine the current filter. See `org-agenda-filter-by-tag."
|
||||
(interactive "P")
|
||||
(org-agenda-filter-by-tag strip char 'refine))
|
||||
|
||||
(defun org-agenda-filter-make-matcher ()
|
||||
"Create the form that tests a line for the agenda filter."
|
||||
(let (f f1)
|
||||
(dolist (x org-agenda-filter)
|
||||
(if (member x '("-" "+"))
|
||||
(setq f1 '(not tags))
|
||||
(if (string-match "[<=>]" x)
|
||||
(setq f1 (org-agenda-filter-effort-form x))
|
||||
(setq f1 (list 'member (downcase (substring x 1)) 'tags)))
|
||||
(if (equal (string-to-char x) ?-)
|
||||
(setq f1 (list 'not f1))))
|
||||
(push f1 f))
|
||||
(cons 'and (nreverse f))))
|
||||
|
||||
(defun org-agenda-filter-effort-form (e)
|
||||
"Return the form to compare the effort of the current line with what E says.
|
||||
E looks line \"+<2:25\"."
|
||||
(let (op)
|
||||
(setq e (substring e 1))
|
||||
(setq op (string-to-char e) e (substring e 1))
|
||||
(setq op (if (equal op ?<) '<= (if (equal op ?>) '>= '=)))
|
||||
(list 'org-agenda-compare-effort (list 'quote op)
|
||||
(org-hh:mm-string-to-minutes e))))
|
||||
|
||||
(defun org-agenda-compare-effort (op value)
|
||||
"Compare the effort of the current line with VALUE, using OP.
|
||||
If the line does not have an effort defined, return nil."
|
||||
(let ((eff (get-text-property (point) 'effort-minutes)))
|
||||
(if (not eff)
|
||||
nil ; we don't have an effort defined
|
||||
(funcall op eff value))))
|
||||
|
||||
(defun org-agenda-filter-apply (filter)
|
||||
"Set FILTER as the new agenda filter and apply it."
|
||||
(let (tags)
|
||||
(setq org-agenda-filter filter
|
||||
org-agenda-filter-form (org-agenda-filter-make-matcher))
|
||||
(org-agenda-set-mode-name)
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (not (eobp))
|
||||
(if (get-text-property (point) 'org-marker)
|
||||
(progn
|
||||
(setq tags (get-text-property (point) 'tags))
|
||||
(if (not (eval org-agenda-filter-form))
|
||||
(org-agenda-filter-by-tag-hide-line))
|
||||
(beginning-of-line 2))
|
||||
(beginning-of-line 2))))))
|
||||
|
||||
(defvar org-agenda-filter-overlays nil)
|
||||
|
||||
@ -4168,9 +4268,23 @@ With prefix argument STRIP, remove all lines that do have the tag."
|
||||
(org-overlay-put ov 'type 'tags-filter)
|
||||
(push ov org-agenda-filter-overlays)))
|
||||
|
||||
(defun org-agenda-fix-tags-filter-overlays-at (&optional pos)
|
||||
(setq pos (or pos (point)))
|
||||
(save-excursion
|
||||
(dolist (ov (org-overlays-at pos))
|
||||
(when (and (org-overlay-get ov 'invisible)
|
||||
(eq (org-overlay-get ov 'type) 'tags-filter))
|
||||
(goto-char pos)
|
||||
(if (< (org-overlay-start ov) (point-at-eol))
|
||||
(org-move-overlay ov (point-at-eol)
|
||||
(org-overlay-end ov)))))))
|
||||
|
||||
(defun org-agenda-filter-by-tag-show-all ()
|
||||
(mapc 'org-delete-overlay org-agenda-filter-overlays)
|
||||
(setq org-agenda-filter-overlays nil))
|
||||
(setq org-agenda-filter-overlays nil)
|
||||
(setq org-agenda-filter nil)
|
||||
(setq org-agenda-filter-form nil)
|
||||
(org-agenda-set-mode-name))
|
||||
|
||||
(defun org-agenda-manipulate-query-add ()
|
||||
"Manipulate the query by adding a search term with positive selection.
|
||||
@ -4509,6 +4623,9 @@ so that the date SD will be in that range."
|
||||
(if org-agenda-include-diary " Diary" "")
|
||||
(if org-agenda-use-time-grid " Grid" "")
|
||||
(if org-agenda-show-log " Log" "")
|
||||
(if org-agenda-filter
|
||||
(concat " {" (mapconcat 'identity org-agenda-filter "") "}")
|
||||
"")
|
||||
(if org-agenda-archives-mode
|
||||
(if (eq org-agenda-archives-mode t)
|
||||
" Archives"
|
||||
@ -5002,13 +5119,15 @@ the same tree node, and the headline of the tree node in the Org-mode file."
|
||||
(defun org-agenda-show-new-time (marker stamp &optional prefix)
|
||||
"Show new date stamp via text properties."
|
||||
;; We use text properties to make this undoable
|
||||
(let ((inhibit-read-only t))
|
||||
(let ((inhibit-read-only t)
|
||||
(buffer-invisibility-spec))
|
||||
(setq stamp (concat " " prefix " => " stamp))
|
||||
(save-excursion
|
||||
(goto-char (point-max))
|
||||
(while (not (bobp))
|
||||
(when (equal marker (get-text-property (point) 'org-marker))
|
||||
(org-move-to-column (- (window-width) (length stamp)) t)
|
||||
(org-agenda-fix-tags-filter-overlays-at (point))
|
||||
(if (featurep 'xemacs)
|
||||
;; Use `duplicable' property to trigger undo recording
|
||||
(let ((ex (make-extent nil nil))
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -322,12 +322,13 @@ sibling does not exist, it will be created at the end of the subtree."
|
||||
(setq pos (point))
|
||||
(condition-case nil
|
||||
(outline-up-heading 1 t)
|
||||
(error (goto-char (point-min))))
|
||||
(error (setq e (point-max)) (goto-char (point-min))))
|
||||
(setq b (point))
|
||||
(condition-case nil
|
||||
(org-end-of-subtree t t)
|
||||
(error (goto-char (point-max))))
|
||||
(setq e (point))
|
||||
(unless e
|
||||
(condition-case nil
|
||||
(org-end-of-subtree t t)
|
||||
(error (goto-char (point-max))))
|
||||
(setq e (point)))
|
||||
(goto-char b)
|
||||
(unless (re-search-forward
|
||||
(concat "^" (regexp-quote leader)
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
;; Author: John Wiegley <johnw@newartisans.com>
|
||||
;; Keywords: org data task
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -6,7 +6,7 @@
|
||||
;; Thomas Baumann <thomas dot baumann at ch dot tum dot de>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Bastien Guerry <bzg at altern dot org>
|
||||
;; Carsten Dominik <carsten dot dominik at gmail dot com>
|
||||
;; Keywords: org, wp, remember
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -67,12 +67,16 @@ A nil value means, clock will keep running until stopped explicitly with
|
||||
|
||||
(defcustom org-clock-in-switch-to-state nil
|
||||
"Set task to a special todo state while clocking it.
|
||||
The value should be the state to which the entry should be switched."
|
||||
The value should be the state to which the entry should be
|
||||
switched. If the value is a function, it must take one
|
||||
parameter (the current TODO state of the item) and return the
|
||||
state to switch it to."
|
||||
:group 'org-clock
|
||||
:group 'org-todo
|
||||
:type '(choice
|
||||
(const :tag "Don't force a state" nil)
|
||||
(string :tag "State")))
|
||||
(string :tag "State")
|
||||
(symbol :tag "Function")))
|
||||
|
||||
(defcustom org-clock-history-length 5
|
||||
"Number of clock tasks to remember in history."
|
||||
@ -265,12 +269,16 @@ the clocking selection, associated with the letter `d'."
|
||||
(org-back-to-heading t)
|
||||
(or interrupting (move-marker org-clock-interrupted-task nil))
|
||||
(org-clock-history-push)
|
||||
(when (and org-clock-in-switch-to-state
|
||||
(not (looking-at (concat outline-regexp "[ \t]*"
|
||||
org-clock-in-switch-to-state
|
||||
"\\>"))))
|
||||
(org-todo org-clock-in-switch-to-state))
|
||||
(setq org-clock-heading-for-remember
|
||||
(cond ((functionp org-clock-in-switch-to-state)
|
||||
(looking-at org-complex-heading-regexp)
|
||||
(let ((newstate (funcall org-clock-in-switch-to-state (match-string 2))))
|
||||
(if newstate (org-todo newstate))))
|
||||
((and org-clock-in-switch-to-state
|
||||
(not (looking-at (concat outline-regexp "[ \t]*"
|
||||
org-clock-in-switch-to-state
|
||||
"\\>"))))
|
||||
(org-todo org-clock-in-switch-to-state)))
|
||||
(setq org-clock-heading-for-remember
|
||||
(and (looking-at org-complex-heading-regexp)
|
||||
(match-end 4)
|
||||
(org-trim (buffer-substring (match-end 1) (match-end 4)))))
|
||||
@ -283,9 +291,9 @@ the clocking selection, associated with the letter `d'."
|
||||
(t "???")))
|
||||
(setq org-clock-heading (org-propertize org-clock-heading 'face nil))
|
||||
(org-clock-find-position)
|
||||
|
||||
|
||||
(insert "\n") (backward-char 1)
|
||||
(indent-relative)
|
||||
(org-indent-line-function)
|
||||
(insert org-clock-string " ")
|
||||
(setq org-clock-start-time (current-time))
|
||||
(setq ts (org-insert-time-stamp (current-time) 'with-hm 'inactive))
|
||||
@ -348,11 +356,12 @@ the clocking selection, associated with the letter `d'."
|
||||
(or (bolp) (newline)))
|
||||
(when (eq t org-clock-into-drawer)
|
||||
(insert ":CLOCK:\n:END:\n")
|
||||
(beginning-of-line -1)
|
||||
(beginning-of-line 0)
|
||||
(org-indent-line-function)
|
||||
(beginning-of-line 0)
|
||||
(org-flag-drawer t)
|
||||
(beginning-of-line 2)
|
||||
(org-indent-line-function)))))
|
||||
(org-indent-line-function)
|
||||
(beginning-of-line 2)))))
|
||||
|
||||
(defun org-clock-out (&optional fail-quietly)
|
||||
"Stop the currently running clock.
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -176,7 +176,7 @@ that can be added."
|
||||
((fboundp 'add-to-invisibility-spec)
|
||||
(add-to-invisibility-spec arg))
|
||||
((or (null buffer-invisibility-spec) (eq buffer-invisibility-spec t))
|
||||
(setq buffer-invisibility-spec (list arg)))
|
||||
(setq buffer-invisibility-spec (list arg)))
|
||||
(t
|
||||
(setq buffer-invisibility-spec
|
||||
(cons arg buffer-invisibility-spec)))))
|
||||
@ -197,56 +197,56 @@ that can be added."
|
||||
|
||||
(defun org-indent-to-column (column &optional minimum buffer)
|
||||
"Work around a bug with extents with invisibility in XEmacs."
|
||||
(if (featurep 'xemacs)
|
||||
(let ((ext-inv (extent-list
|
||||
nil (point-at-bol) (point-at-eol)
|
||||
'all-extents-closed-open 'invisible))
|
||||
ext-inv-specs)
|
||||
(dolist (ext ext-inv)
|
||||
(when (extent-property ext 'invisible)
|
||||
(add-to-list 'ext-inv-specs (list ext (extent-property
|
||||
ext 'invisible)))
|
||||
(set-extent-property ext 'invisible nil)))
|
||||
(indent-to-column column minimum buffer)
|
||||
(dolist (ext-inv-spec ext-inv-specs)
|
||||
(set-extent-property (car ext-inv-spec) 'invisible
|
||||
(cadr ext-inv-spec))))
|
||||
(indent-to-column column minimum)))
|
||||
(if (featurep 'xemacs)
|
||||
(let ((ext-inv (extent-list
|
||||
nil (point-at-bol) (point-at-eol)
|
||||
'all-extents-closed-open 'invisible))
|
||||
ext-inv-specs)
|
||||
(dolist (ext ext-inv)
|
||||
(when (extent-property ext 'invisible)
|
||||
(add-to-list 'ext-inv-specs (list ext (extent-property
|
||||
ext 'invisible)))
|
||||
(set-extent-property ext 'invisible nil)))
|
||||
(indent-to-column column minimum buffer)
|
||||
(dolist (ext-inv-spec ext-inv-specs)
|
||||
(set-extent-property (car ext-inv-spec) 'invisible
|
||||
(cadr ext-inv-spec))))
|
||||
(indent-to-column column minimum)))
|
||||
|
||||
(defun org-indent-line-to (column)
|
||||
"Work around a bug with extents with invisibility in XEmacs."
|
||||
(if (featurep 'xemacs)
|
||||
(let ((ext-inv (extent-list
|
||||
nil (point-at-bol) (point-at-eol)
|
||||
'all-extents-closed-open 'invisible))
|
||||
ext-inv-specs)
|
||||
(dolist (ext ext-inv)
|
||||
(when (extent-property ext 'invisible)
|
||||
(add-to-list 'ext-inv-specs (list ext (extent-property
|
||||
ext 'invisible)))
|
||||
(set-extent-property ext 'invisible nil)))
|
||||
(indent-line-to column)
|
||||
(dolist (ext-inv-spec ext-inv-specs)
|
||||
(set-extent-property (car ext-inv-spec) 'invisible
|
||||
(cadr ext-inv-spec))))
|
||||
(indent-line-to column)))
|
||||
(if (featurep 'xemacs)
|
||||
(let ((ext-inv (extent-list
|
||||
nil (point-at-bol) (point-at-eol)
|
||||
'all-extents-closed-open 'invisible))
|
||||
ext-inv-specs)
|
||||
(dolist (ext ext-inv)
|
||||
(when (extent-property ext 'invisible)
|
||||
(add-to-list 'ext-inv-specs (list ext (extent-property
|
||||
ext 'invisible)))
|
||||
(set-extent-property ext 'invisible nil)))
|
||||
(indent-line-to column)
|
||||
(dolist (ext-inv-spec ext-inv-specs)
|
||||
(set-extent-property (car ext-inv-spec) 'invisible
|
||||
(cadr ext-inv-spec))))
|
||||
(indent-line-to column)))
|
||||
|
||||
(defun org-move-to-column (column &optional force buffer)
|
||||
(if (featurep 'xemacs)
|
||||
(let ((ext-inv (extent-list
|
||||
nil (point-at-bol) (point-at-eol)
|
||||
'all-extents-closed-open 'invisible))
|
||||
ext-inv-specs)
|
||||
(dolist (ext ext-inv)
|
||||
(when (extent-property ext 'invisible)
|
||||
(add-to-list 'ext-inv-specs (list ext (extent-property ext
|
||||
'invisible)))
|
||||
(set-extent-property ext 'invisible nil)))
|
||||
(move-to-column column force buffer)
|
||||
(dolist (ext-inv-spec ext-inv-specs)
|
||||
(set-extent-property (car ext-inv-spec) 'invisible
|
||||
(cadr ext-inv-spec))))
|
||||
(move-to-column column force)))
|
||||
(if (featurep 'xemacs)
|
||||
(let ((ext-inv (extent-list
|
||||
nil (point-at-bol) (point-at-eol)
|
||||
'all-extents-closed-open 'invisible))
|
||||
ext-inv-specs)
|
||||
(dolist (ext ext-inv)
|
||||
(when (extent-property ext 'invisible)
|
||||
(add-to-list 'ext-inv-specs (list ext (extent-property ext
|
||||
'invisible)))
|
||||
(set-extent-property ext 'invisible nil)))
|
||||
(move-to-column column force buffer)
|
||||
(dolist (ext-inv-spec ext-inv-specs)
|
||||
(set-extent-property (car ext-inv-spec) 'invisible
|
||||
(cadr ext-inv-spec))))
|
||||
(move-to-column column force)))
|
||||
|
||||
(defun org-get-x-clipboard-compat (value)
|
||||
"Get the clipboard value on XEmacs or Emacs 21"
|
||||
@ -263,7 +263,7 @@ that can be added."
|
||||
(if (featurep 'xemacs)
|
||||
(add-text-properties 0 (length string) properties string)
|
||||
(apply 'propertize string properties)))
|
||||
|
||||
|
||||
(provide 'org-compat)
|
||||
|
||||
;; arch-tag: a0a0579f-e68c-4bdf-9e55-93768b846bbe
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -856,6 +856,7 @@ in this hook gets a chance to modify this property list. Each function
|
||||
must accept the property list as an argument, and must return the (possibly
|
||||
modified) list.")
|
||||
|
||||
;; FIXME: should we fold case here?
|
||||
(defun org-infile-export-plist ()
|
||||
"Return the property list with file-local settings for export."
|
||||
(save-excursion
|
||||
@ -1008,6 +1009,8 @@ value of `org-export-run-in-background'."
|
||||
\[x] export as XOXO
|
||||
|
||||
\[l] export as LaTeX
|
||||
\[p] export as LaTeX and process to PDF
|
||||
\[d] export as LaTeX, process to PDF, and open the resulting PDF document
|
||||
\[L] export as LaTeX to temporary buffer
|
||||
|
||||
\[i] export current file as iCalendar file
|
||||
@ -1028,6 +1031,8 @@ value of `org-export-run-in-background'."
|
||||
(?R org-export-region-as-html nil)
|
||||
(?x org-export-as-xoxo t)
|
||||
(?l org-export-as-latex t)
|
||||
(?p org-export-as-pdf t)
|
||||
(?d org-export-as-pdf-and-open t)
|
||||
(?L org-export-as-latex-to-buffer nil)
|
||||
(?i org-export-icalendar-this-file t)
|
||||
(?I org-export-icalendar-all-agenda-files t)
|
||||
@ -1041,12 +1046,17 @@ value of `org-export-run-in-background'."
|
||||
(delete-other-windows)
|
||||
(with-output-to-temp-buffer "*Org Export/Publishing Help*"
|
||||
(princ help))
|
||||
(if (fboundp 'fit-window-to-buffer)
|
||||
(fit-window-to-buffer (get-buffer-window
|
||||
"*Org Export/Publishing Help*")))
|
||||
(message "Select command: ")
|
||||
(setq r1 (read-char-exclusive)))
|
||||
(setq r2 (if (< r1 27) (+ r1 96) r1))
|
||||
(unless (setq ass (assq r2 cmds))
|
||||
(error "No command associated with key %c" r1))
|
||||
(if (and bg (nth 2 ass))
|
||||
(if (and bg (nth 2 ass)
|
||||
(not (buffer-base-buffer))
|
||||
(not (org-region-active-p)))
|
||||
;; execute in background
|
||||
(let ((p (start-process
|
||||
(concat "Exporting " (file-name-nondirectory (buffer-file-name)))
|
||||
@ -1496,7 +1506,6 @@ on this string to produce the exported version."
|
||||
;; Remove or replace comments
|
||||
(org-export-handle-comments (plist-get parameters :comments))
|
||||
|
||||
|
||||
(setq rtn (buffer-string)))
|
||||
(kill-buffer " org-mode-tmp")
|
||||
rtn))
|
||||
@ -2181,16 +2190,17 @@ underlined headlines. The default is 3."
|
||||
(umax nil)
|
||||
(umax-toc nil)
|
||||
(case-fold-search nil)
|
||||
(bfname (buffer-file-name (or (buffer-base-buffer) (current-buffer))))
|
||||
(filename (concat (file-name-as-directory
|
||||
(org-export-directory :ascii opt-plist))
|
||||
(file-name-sans-extension
|
||||
(or (and subtree-p
|
||||
(org-entry-get (region-beginning)
|
||||
"EXPORT_FILE_NAME" t))
|
||||
(file-name-nondirectory buffer-file-name)))
|
||||
(file-name-nondirectory bfname)))
|
||||
".txt"))
|
||||
(filename (if (equal (file-truename filename)
|
||||
(file-truename buffer-file-name))
|
||||
(file-truename bfname))
|
||||
(concat filename ".txt")
|
||||
filename))
|
||||
(buffer (find-file-noselect filename))
|
||||
@ -2204,7 +2214,7 @@ underlined headlines. The default is 3."
|
||||
(plist-get opt-plist :skip-before-1st-heading))
|
||||
(org-export-grab-title-from-buffer))
|
||||
(file-name-sans-extension
|
||||
(file-name-nondirectory buffer-file-name))))
|
||||
(file-name-nondirectory bfname))))
|
||||
(email (plist-get opt-plist :email))
|
||||
(language (plist-get opt-plist :language))
|
||||
(quote-re0 (concat "^[ \t]*" org-quote-string "\\>"))
|
||||
|
@ -4,7 +4,7 @@
|
||||
;;
|
||||
;; Emacs Lisp Archive Entry
|
||||
;; Filename: org-export-latex.el
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;; Author: Bastien Guerry <bzg AT altern DOT org>
|
||||
;; Maintainer: Bastien Guerry <bzg AT altern DOT org>
|
||||
;; Keywords: org, wp, tex
|
||||
@ -36,6 +36,8 @@
|
||||
;; The interactive functions are similar to those of the HTML exporter:
|
||||
;;
|
||||
;; M-x `org-export-as-latex'
|
||||
;; M-x `org-export-as-pdf'
|
||||
;; M-x `org-export-as-pdf-and-open'
|
||||
;; M-x `org-export-as-latex-batch'
|
||||
;; M-x `org-export-as-latex-to-buffer'
|
||||
;; M-x `org-export-region-as-latex'
|
||||
@ -88,6 +90,7 @@
|
||||
"\\documentclass[11pt,a4paper]{article}
|
||||
\\usepackage[utf8]{inputenc}
|
||||
\\usepackage[T1]{fontenc}
|
||||
\\usepackage{graphicx}
|
||||
\\usepackage{hyperref}"
|
||||
("\\section{%s}" . "\\section*{%s}")
|
||||
("\\subsection{%s}" . "\\subsection*{%s}")
|
||||
@ -98,6 +101,7 @@
|
||||
"\\documentclass[11pt,a4paper]{report}
|
||||
\\usepackage[utf8]{inputenc}
|
||||
\\usepackage[T1]{fontenc}
|
||||
\\usepackage{graphicx}
|
||||
\\usepackage{hyperref}"
|
||||
("\\part{%s}" . "\\part*{%s}")
|
||||
("\\chapter{%s}" . "\\chapter*{%s}")
|
||||
@ -108,6 +112,7 @@
|
||||
"\\documentclass[11pt,a4paper]{book}
|
||||
\\usepackage[utf8]{inputenc}
|
||||
\\usepackage[T1]{fontenc}
|
||||
\\usepackage{graphicx}
|
||||
\\usepackage{hyperref}"
|
||||
("\\part{%s}" . "\\part*{%s}")
|
||||
("\\chapter{%s}" . "\\chapter*{%s}")
|
||||
@ -120,30 +125,38 @@ associated information. Here is the structure of each cell:
|
||||
|
||||
\(class-name
|
||||
header-string
|
||||
(unnumbered-section numbered-section\)
|
||||
(numbered-section . unnumbered-section\)
|
||||
...\)
|
||||
|
||||
A %s formatter is mandatory in each section string and will be
|
||||
replaced by the title of the section."
|
||||
replaced by the title of the section.
|
||||
|
||||
Instead of a cons cell (numbered . unnumbered), you can also provide a list
|
||||
of 2-4 elements,
|
||||
|
||||
(numbered-open numbered-close)
|
||||
|
||||
or
|
||||
|
||||
(numbered-open numbered-close unnumbered-open unnumbered-close)
|
||||
|
||||
providing opening and closing strings for an environment that should
|
||||
represent the document section. The opening clause should have a %s
|
||||
to represent the section title."
|
||||
:group 'org-export-latex
|
||||
:type '(repeat
|
||||
:type '(repeat
|
||||
(list (string :tag "LaTeX class")
|
||||
(string :tag "LaTeX header")
|
||||
(cons :tag "Level 1"
|
||||
(string :tag "Numbered")
|
||||
(string :tag "Unnumbered"))
|
||||
(cons :tag "Level 2"
|
||||
(string :tag "Numbered")
|
||||
(string :tag "Unnumbered"))
|
||||
(cons :tag "Level 3"
|
||||
(string :tag "Numbered")
|
||||
(string :tag "Unnumbered"))
|
||||
(cons :tag "Level 4"
|
||||
(string :tag "Numbered")
|
||||
(string :tag "Unnumbered"))
|
||||
(cons :tag "Level 5"
|
||||
(string :tag "Numbered")
|
||||
(string :tag "Unnumbered")))))
|
||||
(repeat :tag "Levels" :inline t
|
||||
(choice
|
||||
(cons :tag "Heading"
|
||||
(string :tag "numbered")
|
||||
(string :tag "unnumbered)"))
|
||||
(list :tag "Environment"
|
||||
(string :tag "Opening (numbered) ")
|
||||
(string :tag "Closing (numbered) ")
|
||||
(string :tag "Opening (unnumbered)")
|
||||
(string :tag "Closing (unnumbered)")))))))
|
||||
|
||||
(defcustom org-export-latex-emphasis-alist
|
||||
'(("*" "\\textbf{%s}" nil)
|
||||
@ -224,6 +237,18 @@ Don't remove the keys, just change their values."
|
||||
:group 'org-export-latex
|
||||
:type 'coding-system)
|
||||
|
||||
(defgroup org-export-pdf nil
|
||||
"Options for exporting Org-mode files to PDF, via LaTeX."
|
||||
:tag "Org Export LaTeX"
|
||||
:group 'org-export-latex
|
||||
:group 'org-export)
|
||||
|
||||
(defcustom org-export-pdf-remove-logfiles t
|
||||
"Non-nil means, remove the logfiles produced by PDF production.
|
||||
These are the .aux, .log, .out, and .toc files."
|
||||
:group 'org-export-latex
|
||||
:type 'boolean)
|
||||
|
||||
;;; Autoload functions:
|
||||
|
||||
;;;###autoload
|
||||
@ -454,6 +479,44 @@ when PUB-DIR is set, use this as the publishing directory."
|
||||
(current-buffer))
|
||||
(set-window-configuration wcf))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-export-as-pdf (arg &optional hidden ext-plist
|
||||
to-buffer body-only pub-dir)
|
||||
"Export as LaTeX, then process through to PDF."
|
||||
(interactive "P")
|
||||
(message "Exporting to PDF...")
|
||||
(let* ((wconfig (current-window-configuration))
|
||||
(lbuf (org-export-as-latex arg hidden ext-plist
|
||||
to-buffer body-only pub-dir))
|
||||
(file (buffer-file-name lbuf))
|
||||
(base (file-name-sans-extension (buffer-file-name lbuf)))
|
||||
(pdffile (concat base ".pdf")))
|
||||
(and (file-exists-p pdffile) (delete-file pdffile))
|
||||
(message "Processing LaTeX file...")
|
||||
(shell-command (format "pdflatex -interaction nonstopmode %s"
|
||||
(shell-quote-argument file)))
|
||||
(shell-command (format "pdflatex -interaction nonstopmode %s"
|
||||
(shell-quote-argument file)))
|
||||
(message "Processing LaTeX file...done")
|
||||
(if (not (file-exists-p pdffile))
|
||||
(error "PDF file was not produced")
|
||||
(set-window-configuration wconfig)
|
||||
(when org-export-pdf-remove-logfiles
|
||||
(dolist (ext '("aux" "log" "out" "toc"))
|
||||
(setq file (concat base "." ext))
|
||||
(and (file-exists-p file) (delete-file file))))
|
||||
(message "Exporting to PDF...done")
|
||||
pdffile)))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-export-as-pdf-and-open (arg)
|
||||
"Export as LaTeX, then process through to PDF, and open."
|
||||
(interactive "P")
|
||||
(let ((pdffile (org-export-as-pdf arg)))
|
||||
(if pdffile
|
||||
(org-open-file pdffile)
|
||||
(error "PDF file was not produced"))))
|
||||
|
||||
;;; Parsing functions:
|
||||
|
||||
(defun org-export-latex-parse-global (level odd)
|
||||
@ -554,12 +617,18 @@ If NUM, export sections as numerical sections."
|
||||
(cond
|
||||
;; Normal conversion
|
||||
((<= level org-export-latex-sectioning-depth)
|
||||
(let ((sec (nth (1- level) org-export-latex-sectioning)))
|
||||
(insert (format (if num (car sec) (cdr sec)) heading) "\n"))
|
||||
(when label (insert (format "\\label{%s}\n" label)))
|
||||
(insert (org-export-latex-content content))
|
||||
(cond ((stringp subcontent) (insert subcontent))
|
||||
((listp subcontent) (org-export-latex-sub subcontent))))
|
||||
(let* ((sec (nth (1- level) org-export-latex-sectioning))
|
||||
start end)
|
||||
(if (consp (cdr sec))
|
||||
(setq start (nth (if num 0 2) sec)
|
||||
end (nth (if num 1 3) sec))
|
||||
(setq start (if num (car sec) (cdr sec))))
|
||||
(insert (format start heading) "\n")
|
||||
(when label (insert (format "\\label{%s}\n" label)))
|
||||
(insert (org-export-latex-content content))
|
||||
(cond ((stringp subcontent) (insert subcontent))
|
||||
((listp subcontent) (org-export-latex-sub subcontent)))
|
||||
(if end (insert end "\n"))))
|
||||
;; At a level under the hl option: we can drop this subsection
|
||||
((> level org-export-latex-sectioning-depth)
|
||||
(cond ((eq org-export-latex-low-levels 'description)
|
||||
@ -877,12 +946,15 @@ Convert CHAR depending on STRING-BEFORE and STRING-AFTER."
|
||||
((string-match "[({]?\\([^)}]+\\)[)}]?" string-after)
|
||||
(format "%s%s{%s}" string-before char
|
||||
(match-string 1 string-after))))))
|
||||
((and subsup
|
||||
(> (length string-after) 1)
|
||||
((and (> (length string-after) 1)
|
||||
(or (eq subsup t)
|
||||
(and (equal subsup '{}) (eq (string-to-char string-after) ?\{)))
|
||||
(string-match "[({]?\\([^)}]+\\)[)}]?" string-after))
|
||||
(format "$%s%s{%s}$" string-before char
|
||||
(match-string 1 string-after)))
|
||||
(subsup (concat "$" string-before char string-after "$"))
|
||||
(format "%s$%s{%s}$" string-before char
|
||||
(if (> (match-end 1) (1+ (match-beginning 1)))
|
||||
(concat "\\mathrm{" (match-string 1 string-after) "}")
|
||||
(match-string 1 string-after))))
|
||||
((eq subsup t) (concat string-before "$" char string-after "$"))
|
||||
(t (org-export-latex-protect-string
|
||||
(concat string-before "\\" char "{}" string-after)))))
|
||||
(t (org-export-latex-protect-string
|
||||
@ -1084,6 +1156,7 @@ If TIMESTAMPS, convert timestamps, otherwise delete them."
|
||||
(t (insert "\\texttt{" desc "}")))))))
|
||||
|
||||
(defvar org-latex-entities) ; defined below
|
||||
(defvar org-latex-entities-regexp) ; defined below
|
||||
|
||||
(defun org-export-latex-preprocess ()
|
||||
"Clean stuff in the LaTeX export."
|
||||
@ -1096,11 +1169,12 @@ If TIMESTAMPS, convert timestamps, otherwise delete them."
|
||||
|
||||
;; Preserve latex environments
|
||||
(goto-char (point-min))
|
||||
(while (search-forward "\\begin{" nil t)
|
||||
(let ((start (progn (beginning-of-line) (point)))
|
||||
(end (or (and (search-forward "\\end{" nil t)
|
||||
(end-of-line) (point))
|
||||
(point-max))))
|
||||
(while (re-search-forward "^[ \t]*\\begin{\\([a-zA-Z]+\\)}" nil t)
|
||||
(let* ((start (progn (beginning-of-line) (point)))
|
||||
(end (or (and (re-search-forward
|
||||
(concat "^[ \t]*\\end{" (match-string 1) "}" nil t)
|
||||
(point-at-eol)))
|
||||
(point-max))))
|
||||
(add-text-properties start end '(org-protected t))))
|
||||
|
||||
;; Convert LaTeX to \LaTeX{}
|
||||
@ -1139,7 +1213,7 @@ If TIMESTAMPS, convert timestamps, otherwise delete them."
|
||||
|
||||
;; Protect LaTeX entities
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward (regexp-opt org-latex-entities) nil t)
|
||||
(while (re-search-forward org-latex-entities-regexp nil t)
|
||||
(add-text-properties (match-beginning 0) (match-end 0)
|
||||
'(org-protected t)))
|
||||
|
||||
@ -1204,8 +1278,9 @@ If TIMESTAMPS, convert timestamps, otherwise delete them."
|
||||
"Convert lists to LaTeX."
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward org-list-beginning-re nil t)
|
||||
(beginning-of-line)
|
||||
(insert (org-list-to-latex (org-list-parse-list t)) "\n")))
|
||||
(org-if-unprotected
|
||||
(beginning-of-line)
|
||||
(insert (org-list-to-latex (org-list-parse-list t)) "\n"))))
|
||||
|
||||
(defconst org-latex-entities
|
||||
'("\\!"
|
||||
@ -1383,6 +1458,15 @@ If TIMESTAMPS, convert timestamps, otherwise delete them."
|
||||
"\\vspace")
|
||||
"A list of LaTeX commands to be protected when performing conversion.")
|
||||
|
||||
(defconst org-latex-entities-regexp
|
||||
(let (names rest)
|
||||
(dolist (x org-latex-entities)
|
||||
(if (string-match "[a-z][A-Z]$" x)
|
||||
(push x names)
|
||||
(push x rest)))
|
||||
(concat "\\(" (regexp-opt (nreverse names)) "\\>\\)"
|
||||
"\\|\\(" (regexp-opt (nreverse rest)) "\\)")))
|
||||
|
||||
(provide 'org-export-latex)
|
||||
|
||||
;; arch-tag: 23c2b87d-da04-4c2d-ad2d-1eb6487bc3ad
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -4,7 +4,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -116,7 +116,8 @@ be added."
|
||||
:group 'org-id
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-id-locations-file (convert-standard-filename "~/.org-id-locations")
|
||||
(defcustom org-id-locations-file (convert-standard-filename
|
||||
"~/.org-id-locations")
|
||||
"The file for remembering the last ID number generated."
|
||||
:group 'org-id
|
||||
:type 'file)
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -4,7 +4,7 @@
|
||||
;;
|
||||
;; Author: Philip Jackson <emacs@shellarchive.co.uk>
|
||||
;; Keywords: erc, irc, link, org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -6,7 +6,7 @@
|
||||
;; Bastien Guerry <bzg AT altern DOT org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -3,7 +3,7 @@
|
||||
;; Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: John Wiegley <johnw@gnu.org>
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Tokuya Kameshima <kames at fa2 dot so-net dot ne dot jp>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Thomas Baumann <thomas dot baumann at ch dot tum dot de>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -4,7 +4,7 @@
|
||||
;;
|
||||
;; Author: Piotr Zielinski <piotr dot zielinski at gmail dot com>
|
||||
;; Maintainer: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -166,6 +166,18 @@ indirectly, for example, through the agenda buffer.")
|
||||
:group 'org-mouse
|
||||
:type 'string)
|
||||
|
||||
(defcustom org-mouse-features
|
||||
'(context-menu yank-link activate-stars activate-bullets activate-checkboxes)
|
||||
"The features of org-mouse that should be activated.
|
||||
Changing this variable requires a restart of Emacs to get activated."
|
||||
:group 'org-mouse
|
||||
:type '(set :greedy t
|
||||
(const :tag "Mouse-3 shows context menu" context-menu)
|
||||
(const :tag "C-mouse-1 and mouse-3 move trees" move-tree)
|
||||
(const :tag "S-mouse-2 and drag-mouse-3 yank link" yank-link)
|
||||
(const :tag "Activate headline stars" activate-stars)
|
||||
(const :tag "Activate item bullets" activate-bullets)
|
||||
(const :tag "Activate checkboxes" activate-checkboxes)))
|
||||
|
||||
(defun org-mouse-re-search-line (regexp)
|
||||
"Search the current line for a given regular expression."
|
||||
@ -410,7 +422,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
|
||||
|
||||
(defun org-mouse-tag-menu () ;todo
|
||||
(append
|
||||
(let ((tags (org-split-string (org-get-tags) ":")))
|
||||
(let ((tags (org-get-tags)))
|
||||
(org-mouse-keyword-menu
|
||||
(sort (mapcar 'car (org-get-buffer-tags)) 'string-lessp)
|
||||
`(lambda (tag)
|
||||
@ -890,26 +902,42 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
|
||||
'(lambda ()
|
||||
(setq org-mouse-context-menu-function 'org-mouse-context-menu)
|
||||
|
||||
; (define-key org-mouse-map [follow-link] 'mouse-face)
|
||||
(define-key org-mouse-map (if (featurep 'xemacs) [button3] [mouse-3]) nil)
|
||||
(define-key org-mode-map [mouse-3] 'org-mouse-show-context-menu)
|
||||
(when (memq 'context-menu org-mouse-features)
|
||||
(define-key org-mouse-map (if (featurep 'xemacs) [button3] [mouse-3]) nil)
|
||||
(define-key org-mode-map [mouse-3] 'org-mouse-show-context-menu))
|
||||
(define-key org-mode-map [down-mouse-1] 'org-mouse-down-mouse)
|
||||
(define-key org-mouse-map [C-drag-mouse-1] 'org-mouse-move-tree)
|
||||
(define-key org-mouse-map [C-down-mouse-1] 'org-mouse-move-tree-start)
|
||||
(define-key org-mode-map [S-mouse-2] 'org-mouse-yank-link)
|
||||
(define-key org-mode-map [drag-mouse-3] 'org-mouse-yank-link)
|
||||
(define-key org-mouse-map [drag-mouse-3] 'org-mouse-move-tree)
|
||||
(define-key org-mouse-map [down-mouse-3] 'org-mouse-move-tree-start)
|
||||
(when (memq 'context-menu org-mouse-features)
|
||||
(define-key org-mouse-map [C-drag-mouse-1] 'org-mouse-move-tree)
|
||||
(define-key org-mouse-map [C-down-mouse-1] 'org-mouse-move-tree-start))
|
||||
(when (memq 'yank-link org-mouse-features)
|
||||
(define-key org-mode-map [S-mouse-2] 'org-mouse-yank-link)
|
||||
(define-key org-mode-map [drag-mouse-3] 'org-mouse-yank-link))
|
||||
(when (memq 'move-tree org-mouse-features)
|
||||
(define-key org-mouse-map [drag-mouse-3] 'org-mouse-move-tree)
|
||||
(define-key org-mouse-map [down-mouse-3] 'org-mouse-move-tree-start))
|
||||
|
||||
(font-lock-add-keywords nil
|
||||
(when (memq 'activate-stars org-mouse-features)
|
||||
(font-lock-add-keywords
|
||||
nil
|
||||
`((,outline-regexp
|
||||
0 `(face org-link mouse-face highlight keymap ,org-mouse-map)
|
||||
'prepend)
|
||||
("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +"
|
||||
(1 `(face org-link keymap ,org-mouse-map mouse-face highlight) 'prepend))
|
||||
("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)"
|
||||
'prepend))
|
||||
t))
|
||||
|
||||
(when (memq 'activate-bullets org-mouse-features)
|
||||
(font-lock-add-keywords
|
||||
nil
|
||||
`(("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +"
|
||||
(1 `(face org-link keymap ,org-mouse-map mouse-face highlight)
|
||||
'prepend)))
|
||||
t))
|
||||
|
||||
(when (memq 'activate-checkboxes org-mouse-features)
|
||||
(font-lock-add-keywords
|
||||
nil
|
||||
`(("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)"
|
||||
(2 `(face bold keymap ,org-mouse-map mouse-face highlight) t)))
|
||||
t)
|
||||
t))
|
||||
|
||||
(defadvice org-open-at-point (around org-mouse-open-at-point activate)
|
||||
(let ((context (org-context)))
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Eric Schulte <schulte dot eric at gmail dot com>
|
||||
;; Keywords: tables, plotting
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.06b
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -4,7 +4,7 @@
|
||||
;; Author: David O'Toole <dto@gnu.org>
|
||||
;; Maintainer: Bastien Guerry <bzg AT altern DOT org>
|
||||
;; Keywords: hypermedia, outlines, wp
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -276,8 +276,8 @@ When nil, do no timestamp checking and always publish all files."
|
||||
:group 'org-publish
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-publish-timestamp-directory
|
||||
(convert-standard-filename "~/.org-timestamps/")
|
||||
(defcustom org-publish-timestamp-directory (convert-standard-filename
|
||||
"~/.org-timestamps/")
|
||||
"Name of directory in which to store publishing timestamps."
|
||||
:group 'org-publish
|
||||
:type 'directory)
|
||||
@ -479,38 +479,48 @@ PUB-DIR is the publishing directory."
|
||||
(require 'org)
|
||||
(unless (file-exists-p pub-dir)
|
||||
(make-directory pub-dir t))
|
||||
(let* ((visiting (find-buffer-visiting filename))
|
||||
(plist (cons :buffer-will-be-killed (cons t plist)))
|
||||
(init-buf (or visiting (find-file filename)))
|
||||
(init-point (point))
|
||||
(init-buf-string (buffer-string)) export-buf)
|
||||
;; run hooks before exporting
|
||||
(run-hooks 'org-publish-before-export-hook)
|
||||
;; export the possibly modified buffer
|
||||
(setq export-buf
|
||||
(funcall (intern (concat "org-export-as-" format))
|
||||
(plist-get plist :headline-levels)
|
||||
nil plist nil nil pub-dir))
|
||||
(set-buffer export-buf)
|
||||
;; run hooks after export and save export
|
||||
(and (run-hooks 'org-publish-after-export-hook)
|
||||
(if (buffer-modified-p) (save-buffer)))
|
||||
(kill-buffer export-buf)
|
||||
;; maybe restore buffer's content
|
||||
(set-buffer init-buf)
|
||||
(when (buffer-modified-p init-buf)
|
||||
(erase-buffer)
|
||||
(insert init-buf-string)
|
||||
(save-buffer)
|
||||
(goto-char init-point))
|
||||
(unless visiting
|
||||
(kill-buffer init-buf))))
|
||||
(let ((visiting (find-buffer-visiting filename)))
|
||||
(save-excursion
|
||||
(switch-to-buffer (or visiting (find-file filename)))
|
||||
(let* ((plist (cons :buffer-will-be-killed (cons t plist)))
|
||||
(init-buf (current-buffer))
|
||||
(init-point (point))
|
||||
(init-buf-string (buffer-string))
|
||||
export-buf-or-file)
|
||||
;; run hooks before exporting
|
||||
(run-hooks 'org-publish-before-export-hook)
|
||||
;; export the possibly modified buffer
|
||||
(setq export-buf-or-file
|
||||
(funcall (intern (concat "org-export-as-" format))
|
||||
(plist-get plist :headline-levels)
|
||||
nil plist nil nil pub-dir))
|
||||
(when (and (bufferp export-buf-or-file)
|
||||
(buffer-live-p export-buf-or-file))
|
||||
(set-buffer export-buf-or-file)
|
||||
;; run hooks after export and save export
|
||||
(and (run-hooks 'org-publish-after-export-hook)
|
||||
(if (buffer-modified-p) (save-buffer)))
|
||||
(kill-buffer export-buf-or-file))
|
||||
;; maybe restore buffer's content
|
||||
(set-buffer init-buf)
|
||||
(when (buffer-modified-p init-buf)
|
||||
(erase-buffer)
|
||||
(insert init-buf-string)
|
||||
(save-buffer)
|
||||
(goto-char init-point))
|
||||
(unless visiting
|
||||
(kill-buffer init-buf))))))
|
||||
|
||||
(defun org-publish-org-to-latex (plist filename pub-dir)
|
||||
"Publish an org file to LaTeX.
|
||||
See `org-publish-org-to' to the list of arguments."
|
||||
(org-publish-org-to "latex" plist filename pub-dir))
|
||||
|
||||
(defun org-publish-org-to-pdf (plist filename pub-dir)
|
||||
"Publish an org file to PDF (via LaTeX).
|
||||
See `org-publish-org-to' to the list of arguments."
|
||||
(org-publish-org-to "pdf" plist filename pub-dir))
|
||||
|
||||
(defun org-publish-org-to-html (plist filename pub-dir)
|
||||
"Publish an org file to HTML.
|
||||
See `org-publish-org-to' to the list of arguments."
|
||||
@ -667,6 +677,7 @@ Default for INDEX-FILENAME is 'index.org'."
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; Interactive publishing functions
|
||||
|
||||
;;;###autoload
|
||||
(defalias 'org-publish-project 'org-publish)
|
||||
|
||||
;;;###autoload
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -43,7 +43,7 @@
|
||||
(declare-function org-format-org-table-html "org-exp" (lines &optional splice))
|
||||
(defvar orgtbl-mode) ; defined below
|
||||
(defvar orgtbl-mode-menu) ; defined when orgtbl mode get initialized
|
||||
|
||||
(defvar org-export-html-table-tag) ; defined in org-exp.el
|
||||
(defvar constants-unit-system)
|
||||
|
||||
(defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized)
|
||||
@ -894,7 +894,7 @@ in order to easily repeat the interval."
|
||||
(insert txt)
|
||||
(org-move-to-column col)
|
||||
(if (and org-table-copy-increment (org-at-timestamp-p t))
|
||||
(org-timestamp-up 1)
|
||||
(org-timestamp-up-day)
|
||||
(org-table-maybe-recalculate-line))
|
||||
(org-table-align)
|
||||
(org-move-to-column col))
|
||||
@ -2116,7 +2116,8 @@ not overwrite the stored one."
|
||||
;; Check for old vertical references
|
||||
(setq form (org-rewrite-old-row-references form))
|
||||
;; Insert complex ranges
|
||||
(while (string-match org-table-range-regexp form)
|
||||
(while (and (string-match org-table-range-regexp form)
|
||||
(> (length (match-string 0 form)) 1))
|
||||
(setq form
|
||||
(replace-match
|
||||
(save-match-data
|
||||
@ -3926,6 +3927,7 @@ The general parameters :skip and :skipcols have already been applied when
|
||||
this function is called. The function does *not* use `orgtbl-to-generic',
|
||||
so you cannot specify parameters for it."
|
||||
(let* ((splicep (plist-get params :splice))
|
||||
(html-table-tag org-export-html-table-tag)
|
||||
html)
|
||||
;; Just call the formatter we already have
|
||||
;; We need to make text lines for it, so put the fields back together.
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -5,7 +5,7 @@
|
||||
;; Author: Tokuya Kameshima <kames at fa2 dot so-net dot ne dot jp>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
116
lisp/org/org.el
116
lisp/org/org.el
@ -5,7 +5,7 @@
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
;; Keywords: outlines, hypermedia, calendar, wp
|
||||
;; Homepage: http://orgmode.org
|
||||
;; Version: 6.09a
|
||||
;; Version: 6.10c
|
||||
;;
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
@ -92,7 +92,7 @@
|
||||
|
||||
;;; Version
|
||||
|
||||
(defconst org-version "6.09a"
|
||||
(defconst org-version "6.10c"
|
||||
"The version number of the file org.el.")
|
||||
|
||||
(defun org-version (&optional here)
|
||||
@ -1140,6 +1140,7 @@ See `org-file-apps'.")
|
||||
'(
|
||||
(auto-mode . emacs)
|
||||
("\\.x?html?\\'" . default)
|
||||
("\\.pdf\\'" . default)
|
||||
)
|
||||
"External applications for opening `file:path' items in a document.
|
||||
Org-mode uses system defaults for different file types, but
|
||||
@ -1426,6 +1427,27 @@ Lisp variable `state'."
|
||||
:group 'org-todo
|
||||
:type 'hook)
|
||||
|
||||
(defcustom org-todo-state-tags-triggers nil
|
||||
"Tag changes that should be triggered by TODO state changes.
|
||||
This is a list. Each entry is
|
||||
|
||||
(state-change (tag . flag) .......)
|
||||
|
||||
State-change can be a string with a state, and empty string to indicate the
|
||||
state that has no TODO keyword, or it can be one of the symbols `todo'
|
||||
or `done', meaning any not-done or done state, respectively."
|
||||
:group 'org-todo
|
||||
:group 'org-tags
|
||||
:type '(repeat
|
||||
(cons (choice :tag "When changing to"
|
||||
(const :tag "Not-done state" todo)
|
||||
(const :tag "Done state" done)
|
||||
(string :tag "State"))
|
||||
(repeat
|
||||
(cons :tag "Tag action"
|
||||
(string :tag "Tag")
|
||||
(choice (const :tag "Add" t) (const :tag "Remove" nil)))))))
|
||||
|
||||
(defcustom org-log-done nil
|
||||
"Non-nil means, record a CLOSED timestamp when moving an entry to DONE.
|
||||
When equal to the list (done), also prompt for a closing note.
|
||||
@ -1491,6 +1513,16 @@ empty string.
|
||||
(unless (assq 'note org-log-note-headings)
|
||||
(push '(note . "%t") org-log-note-headings))
|
||||
|
||||
(defcustom org-log-state-notes-insert-after-drawers nil
|
||||
"Non-nil means, insert state change notes after any drawers in entry.
|
||||
Only the drawers that *immediately* follow the headline and the
|
||||
deadline/scheduled line are skipped.
|
||||
When nil, insert notes right after the heading and perhaps the line
|
||||
with deadline/scheduling if present."
|
||||
:group 'org-todo
|
||||
:group 'org-progress
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-log-states-order-reversed t
|
||||
"Non-nil means, the latest state change note will be directly after heading.
|
||||
When nil, the notes will be orderer according to time."
|
||||
@ -1690,7 +1722,7 @@ This has influence for the following applications:
|
||||
|
||||
IMPORTANT: This is a feature whose implementation is and likely will
|
||||
remain incomplete. Really, it is only here because past midnight seems to
|
||||
ne the favorite working time of John Wiegley :-)"
|
||||
be the favorite working time of John Wiegley :-)"
|
||||
:group 'org-time
|
||||
:type 'number)
|
||||
|
||||
@ -2490,7 +2522,7 @@ Otherwise, return nil."
|
||||
(let ((re (concat "[ \t]*" org-clock-string
|
||||
" *[[<]\\([^]>]+\\)[]>]\\(-+[[<]\\([^]>]+\\)[]>]"
|
||||
"\\([ \t]*=>.*\\)?\\)?"))
|
||||
ts te h m s)
|
||||
ts te h m s neg)
|
||||
(cond
|
||||
((not (looking-at re))
|
||||
nil)
|
||||
@ -2512,11 +2544,13 @@ Otherwise, return nil."
|
||||
(apply 'encode-time (org-parse-time-string te)))
|
||||
(time-to-seconds
|
||||
(apply 'encode-time (org-parse-time-string ts))))
|
||||
neg (< s 0)
|
||||
s (abs s)
|
||||
h (floor (/ s 3600))
|
||||
s (- s (* 3600 h))
|
||||
m (floor (/ s 60))
|
||||
s (- s (* 60 s)))
|
||||
(insert " => " (format "%2d:%02d" h m))
|
||||
(insert " => " (format (if neg "-%d:%02d" "%2d:%02d") h m))
|
||||
t))))))
|
||||
|
||||
(defun org-check-running-clock ()
|
||||
@ -4573,7 +4607,7 @@ but create the new hedline after the current line."
|
||||
(match-string 0))
|
||||
(error "*"))))
|
||||
(blank (cdr (assq 'heading org-blank-before-new-entry)))
|
||||
pos)
|
||||
pos hide-previous)
|
||||
(cond
|
||||
((and (org-on-heading-p) (bolp)
|
||||
(or (bobp)
|
||||
@ -4588,6 +4622,9 @@ but create the new hedline after the current line."
|
||||
nil)
|
||||
(t
|
||||
;; in the middle of the line
|
||||
(save-excursion
|
||||
(end-of-line)
|
||||
(setq hide-previous (org-invisible-p)))
|
||||
(org-show-entry)
|
||||
(let ((split
|
||||
(org-get-alist-option org-M-RET-may-split-line 'headline))
|
||||
@ -4618,6 +4655,10 @@ but create the new hedline after the current line."
|
||||
(setq pos (point))
|
||||
(end-of-line 1)
|
||||
(unless (= (point) pos) (just-one-space) (backward-delete-char 1))
|
||||
(when (and org-insert-heading-respect-content hide-previous)
|
||||
(save-excursion
|
||||
(outline-previous-visible-heading 1)
|
||||
(hide-entry)))
|
||||
(run-hooks 'org-insert-heading-hook)))))
|
||||
|
||||
(defun org-get-heading (&optional no-tags)
|
||||
@ -4641,20 +4682,20 @@ but create the new hedline after the current line."
|
||||
(defun org-insert-heading-respect-content ()
|
||||
(interactive)
|
||||
(let ((org-insert-heading-respect-content t))
|
||||
(call-interactively 'org-insert-heading)))
|
||||
(org-insert-heading t)))
|
||||
|
||||
(defun org-insert-todo-heading-respect-content ()
|
||||
(interactive)
|
||||
(defun org-insert-todo-heading-respect-content (&optional force-state)
|
||||
(interactive "P")
|
||||
(let ((org-insert-heading-respect-content t))
|
||||
(call-interactively 'org-insert-todo-todo-heading)))
|
||||
(org-insert-todo-heading force-state t)))
|
||||
|
||||
(defun org-insert-todo-heading (arg)
|
||||
(defun org-insert-todo-heading (arg &optional force-heading)
|
||||
"Insert a new heading with the same level and TODO state as current heading.
|
||||
If the heading has no TODO state, or if the state is DONE, use the first
|
||||
state (TODO by default). Also with prefix arg, force first state."
|
||||
(interactive "P")
|
||||
(when (not (org-insert-item 'checkbox))
|
||||
(org-insert-heading)
|
||||
(when (or force-heading (not (org-insert-item 'checkbox)))
|
||||
(org-insert-heading force-heading)
|
||||
(save-excursion
|
||||
(org-back-to-heading)
|
||||
(outline-previous-heading)
|
||||
@ -7209,7 +7250,7 @@ and will therefore always be up-to-date.
|
||||
|
||||
At the target location, the entry is filed as a subitem of the target heading.
|
||||
Depending on `org-reverse-note-order', the new subitem will either be the
|
||||
first of the last subitem.
|
||||
first or the last subitem.
|
||||
|
||||
With prefix arg GOTO, the command will only visit the target location,
|
||||
not actually move anything.
|
||||
@ -7876,6 +7917,7 @@ For calling through lisp, arg is also interpreted in the following way:
|
||||
;; This is a non-nil state, and we need to log it
|
||||
(org-add-log-setup 'state state 'findpos dolog)))
|
||||
;; Fixup tag positioning
|
||||
(org-todo-trigger-tag-changes state)
|
||||
(and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t))
|
||||
(when org-provide-todo-statistics
|
||||
(org-update-parent-todo-statistics))
|
||||
@ -7942,6 +7984,21 @@ when there is a statistics cookie in the headline!
|
||||
(let (org-log-done org-log-states) ; turn off logging
|
||||
(org-todo (if (= n-not-done 0) \"DONE\" \"TODO\"))))
|
||||
")
|
||||
|
||||
(defun org-todo-trigger-tag-changes (state)
|
||||
"Apply the changes defined in `org-todo-state-tags-triggers'."
|
||||
(let ((l org-todo-state-tags-triggers)
|
||||
changes)
|
||||
(when (or (not state) (equal state ""))
|
||||
(setq changes (append changes (cdr (assoc "" l)))))
|
||||
(when (and (stringp state) (> (length state) 0))
|
||||
(setq changes (append changes (cdr (assoc state l)))))
|
||||
(when (member state org-not-done-keywords)
|
||||
(setq changes (append changes (cdr (assoc 'todo l)))))
|
||||
(when (member state org-done-keywords)
|
||||
(setq changes (append changes (cdr (assoc 'done l)))))
|
||||
(dolist (c changes)
|
||||
(org-toggle-tag (car c) (if (cdr c) 'on 'off)))))
|
||||
|
||||
(defun org-local-logging (value)
|
||||
"Get logging settings from a property VALUE."
|
||||
@ -8346,13 +8403,19 @@ EXTRA is additional text that will be inserted into the notes buffer."
|
||||
(org-back-to-heading t)
|
||||
(narrow-to-region (point) (save-excursion
|
||||
(outline-next-heading) (point)))
|
||||
(while (re-search-forward
|
||||
(concat "\\(" org-drawer-regexp "\\|" org-property-end-re "\\)")
|
||||
(point-max) t) (forward-line))
|
||||
(looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"
|
||||
"\\(\n[^\r\n]*?" org-keyword-time-not-clock-regexp
|
||||
"[^\r\n]*\\)?"))
|
||||
(goto-char (match-end 0))
|
||||
(when (and org-log-state-notes-insert-after-drawers
|
||||
(save-excursion
|
||||
(forward-line) (looking-at org-drawer-regexp)))
|
||||
(progn (forward-line)
|
||||
(while (looking-at org-drawer-regexp)
|
||||
(goto-char (match-end 0))
|
||||
(re-search-forward org-property-end-re (point-max) t)
|
||||
(forward-line))
|
||||
(forward-line -1)))
|
||||
(unless org-log-states-order-reversed
|
||||
(and (= (char-after) ?\n) (forward-char 1))
|
||||
(org-skip-over-state-notes)
|
||||
@ -8383,7 +8446,7 @@ EXTRA is additional text that will be inserted into the notes buffer."
|
||||
(org-switch-to-buffer-other-window "*Org Note*")
|
||||
(erase-buffer)
|
||||
(if (memq org-log-note-how '(time state))
|
||||
(org-store-log-note)
|
||||
(let (current-prefix-arg) (org-store-log-note))
|
||||
(let ((org-inhibit-startup t)) (org-mode))
|
||||
(insert (format "# Insert note for %s.
|
||||
# Finish with C-c C-c, or cancel with C-c C-k.\n\n"
|
||||
@ -9127,6 +9190,15 @@ If ONOFF is `on' or `off', don't toggle but set to this state."
|
||||
(org-move-to-column (min ncol col) t))
|
||||
(goto-char pos))))
|
||||
|
||||
(defun org-set-tags-command (&optional arg just-align)
|
||||
"Call the set-tags command for the current entry."
|
||||
(interactive "P")
|
||||
(if (org-on-heading-p)
|
||||
(org-set-tags arg just-align)
|
||||
(save-excursion
|
||||
(org-back-to-heading t)
|
||||
(org-set-tags arg just-align))))
|
||||
|
||||
(defun org-set-tags (&optional arg just-align)
|
||||
"Set the tags for the current headline.
|
||||
With prefix ARG, realign all tags in headings in the current buffer."
|
||||
@ -9756,6 +9828,11 @@ If WHICH is nil or `all', get all properties. If WHICH is
|
||||
(org-columns-number-to-string (/ (float clocksum) 60.)
|
||||
'add_times))
|
||||
props))
|
||||
(unless (assoc "CATEGORY" props)
|
||||
(setq value (or (org-get-category)
|
||||
(progn (org-refresh-category-properties)
|
||||
(org-get-category))))
|
||||
(push (cons "CATEGORY" value) props))
|
||||
(append sum-props (nreverse props)))))))
|
||||
|
||||
(defun org-entry-get (pom property &optional inherit)
|
||||
@ -12042,6 +12119,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
|
||||
(org-defkey org-mode-map "\C-c\C-xb" 'org-tree-to-indirect-buffer)
|
||||
(org-defkey org-mode-map "\C-c\C-j" 'org-goto)
|
||||
(org-defkey org-mode-map "\C-c\C-t" 'org-todo)
|
||||
(org-defkey org-mode-map "\C-c\C-q" 'org-set-tags-command)
|
||||
(org-defkey org-mode-map "\C-c\C-s" 'org-schedule)
|
||||
(org-defkey org-mode-map "\C-c\C-d" 'org-deadline)
|
||||
(org-defkey org-mode-map "\C-c;" 'org-toggle-comment)
|
||||
@ -12850,7 +12928,7 @@ See the individual commands for more information."
|
||||
["Priority Up" org-shiftup t]
|
||||
["Priority Down" org-shiftdown t])
|
||||
("TAGS and Properties"
|
||||
["Set Tags" 'org-ctrl-c-ctrl-c (org-at-heading-p)]
|
||||
["Set Tags" 'org-set-tags-command t]
|
||||
["Change tag in region" 'org-change-tag-in-region (org-region-active-p)]
|
||||
"--"
|
||||
["Set property" 'org-set-property t]
|
||||
|
Loading…
x
Reference in New Issue
Block a user