* lisp/org-capture.el (org-capture-fill-template): Do inserting file
contents and expanding sexp escapes first, so that further escape
processing can happen in the inserted text.
This was a request by Sebastian Rose.
This is the fifth patch in a series that makes some straightforward
corrections to a number of docstrings. Each change is normally to:
- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
and tips given in the Elisp manual
No attempt is made to provide missing docstrings or document arguments.
Cheers,
Phil
* lisp/ob-tangle.el (org-babel-with-temp-filebuffer): a macro for
quickly visiting files with cleanup
(org-babel-tangle): now using the locally defined
with-temp-filebuffer macro
Thanks for Nicolas Goaziou for pointing this out
* lisp/ob-exp.el (org-babel-exp-src-blocks): don't attempt to export
blocks when there is no info match -- this fixes a bug in the latex
export of code blocks located before the first headline
* lisp/ob-ocaml.el (org-babel-expand-body:ocaml): now able to
initialize complex ocaml values without error
(org-babel-execute:ocaml): more sophisticated parsing of results,
only grabbing the line immediately preceding the eoe indicator
(org-babel-ocaml-elisp-to-ocaml): a new function for converting
complex elisp values like lists to ocaml syntax
(org-babel-ocaml-read-array): quoting arrays so that they aren't
interpreted as function calls
This is the third patch in a series that makes some straightforward
corrections to a number of docstrings. Each change is normally to:
- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
and tips given in the Elisp manual
No attempt is made to provide missing docstrings or document arguments.
Cheers,
Phil
This is a second patch in a series that makes some straightforward
corrections to a number of docstrings. Each change is normally to:
- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
and tips given in the Elisp manual
No attempt is made to provide missing docstrings or document arguments.
Cheers,
Phil
This patch makes some straightforward corrections to a number of
docstrings. Each change is normally to:
- correct a typo, or
- fix up hyperlinks to function or variable names, or
- ensure slightly better conformance with the documentation guidelines
and tips given in the Elisp manual
No attempt is made to provide missing docstrings or document arguments.
Cheers,
Phil
* org-agenda.el (org-search-view): Fixed inclusion of agenda-archives
in org-agenda-text-search-extra-files.
org-search-view lacked a local binding for
org-agenda-text-search-extra-files. Thus when pop was called on the
variable, the agenda-archives symbol was removed and subsequent
searches failed to include the archives.
* lisp/ob-ref.el (org-babel-ref-resolve-reference): removed an error
introduced while fixing compiler warnings -- required mirroring of
the count cl-seqs function under the org-mode namespace.
* lisp/org.el (org-count): adding an org-mode version of the cl-seqs
count function
* lisp/ob-dot.el (org-babel-expand-body:dot): now inserts variable
arguments rather than ignoring them
(org-babel-execute:dot): making use of org-babel-expand-body:dot
* lisp/ob-ref.el (org-babel-ref-index-list): slight code cleanup, also
now allowing an empty index to mean the entire range
* doc/org.texi (var): updated the documentation of Babel index
referencing to include working examples covering the full range of
index behavior
* lisp/org-capture.el (org-capture-set-plist): Make sure txt is a string
before calling `string-match'.
(org-capture-templates): Fix customization type.
Modified from a patch proposal by Johan Friis.
TINYCHANGE
* lisp/org-latex.el (org-export-latex-preprocess): Make a special case for \nbsp.
(org-latex-entities): Remove the entry for \nbsp.
(org-latex-entities-exceptions): Variable removed.
* lisp/org-list.el (org-list-send-list): Parse list from its true beginning.
* lisp/org.el (org-ctrl-c-ctrl-c): Maybe send the list when at a list item.
* doc/org.texi (Radio lists): Fix bug in description of radio lists.
* lisp/org.el (org-insert-link): Correctly determine if we should use
a relative path.
Aidan Gauland writes:
> If I create a link with C-c C-l and give it a relative "file:" link, a
> link is created with an absolute path. For example, C-c C-l
> file:../foo.org <RET> foo puts
> [[file:~/path/to/working-directory/foo.org][foo]] in the buffer. I was
> expecting [[file:../foo.org][foo]].
* lisp/ob.el (org-babel-get-src-block-info): ensure that we don't
match (and return info for) source blocks without a language
* lisp/org-exp.el (org-export-replace-src-segments-and-examples):
updated source code block regexp so that the presence of a language
can be explicitly checked. Also now raising an error when a source
block does not have a language.
* lisp/org-agenda.el (org-agenda-action): Document capture key and add it
to the prompt.
TINYCHANGE
A trivial patch to add some documentation for 'capture' to org-agenda (against
HEAD).
Thanks to Austin Frank for suggesting these features and to Jonathan
Arkell for an implementation suggestion
This commit
- adds `org-babel-goto-named-result' for jumping to named results
- adds TAB-completion to `org-babel-goto-named-src-block'
- standardizes on "-src-" instead of "-source-" in all babel functions
- adds `org-babel-[next/previous]-src-block' functions and keybindings
- documents the above in orgcard.tex
* doc/orgcard.tex: update documentation of babel keybindings
* lisp/ob-exp.el (org-exp-res/src-name-cleanup): standardized on
"-src-" instead of "-source-"
* lisp/ob-keys.el (org-babel-key-bindings): updating keybindings for
new movement functions
* lisp/ob-lob.el (org-babel-lob-ingest): standardized on "-src-"
instead of "-source-"
* lisp/ob-ref.el (org-babel-ref-resolve-reference): standardized on
"-src-" instead of "-source-"
* lisp/ob-tangle.el (org-babel-tangle-collect-blocks): standardized on
"-src-" instead of "-source-"
* lisp/ob.el (org-babel-src-name-regexp): standardized on "-src-"
instead of "-source-"
(org-babel-src-name-w-name-regexp): adding regexp for matching
source names along with their names
(org-babel-get-src-block-info): using new named source block regexp
(org-babel-result-regexp): adding optional whitespace after result
regexp
(org-babel-result-w-name-regexp): adding regexp for matching results
which have names
(org-babel-named-src-block-regexp-for-name): standardized on "-src-"
instead of "-source-"
(org-babel-map-src-blocks): standardized on "-src-" instead of
"-source-"
(org-babel-where-is-src-block-head): standardized on "-src-" instead of
"-source-"
(org-babel-goto-named-src-block): standardized on "-src-" instead of
"-source-", also added completing read
(org-babel-src-block-names): collects source block names from a file
or the current buffer
(org-babel-goto-named-result): function for jumping to a named
result
(org-babel-result-names): returns results names from a file or the
current buffer
(org-babel-next-src-block): jump to the next source block
(org-babel-previous-src-block): jump to the previous source block
* lisp/ob-sqlite.el (org-babel-expand-body:sqlite): now this function
expands variables
(org-babel-execute:sqlite): support for input of tabular data and
multiline code bodies
(org-babel-sqlite-expand-vars): support for tabular data
* lisp/ob-python.el (org-babel-python-mode): adding configuration
option to allow users to control whether they use python.el or
python-mode.el
(org-babel-python-initiate-session-by-key): updated for use with new
configuration option
* lisp/ob-tangle.el (org-babel-tangle): applying optional target-file
argument through integration into the default header arguments
(allowing overwriting through standard header-argument merging), and
allowing a default setting of (:tangle . "no") to be overwritten
when a target-file is specified.
* org-capture.el (org-capture): Check if
`org-capture-link-is-already-stored' is bound before evaluating.
If `org-protocol-capture' is the first function that calls
`org-capture', this variable is locally bound while it is globally
unbound. I.e. org-capture.el was not loaded before, the defvar not
evaluated. If `org-protocol-capture' exits, Emacs restores the global
value, which is void.
* lisp/ob-tangle.el (org-babel-post-tangle-hook): adding hook which
can be used to call functions from inside of code files tangled by
org-babel-tangle
(org-babel-tangle): added call to org-babel-post-tangle-hook
* lisp/ob-exp.el (org-export-babel-evaluate): customization variable
which can be used to inhibit the evaluation of code blocks on export
(org-babel-exp-results): code block evaluation is now contingent on
the value of org-export-babel-evaluate
* lisp/ob.el (org-babel-default-header-args): Added (:tangle . "no")
to the default header arguments. This is already the intended
behavior, but it's better to be more explicit about such things.
* org-feed.el (org-feed-unescape, org-feed-parse-atom-feed): Load XML
library if necessary.
Function that use xml.el must require 'xml to make sure it is loaded
at runtime.
* lisp/org-beamer.el (org-beamer-amend-header): Put extra header
last in header.
Tassilo Horn writes:
> I'm doing a LaTeX beamer presentation with org. The org doc starts with
> these lines:
>
> --8<---------------cut here---------------start------------->8---
> #+STARTUP: beamer
> #+LaTeX_CLASS: beamer
> #+TITLE: Implementieren, Integrieren, Installieren
> #+AUTHOR: Tassilo Horn
> #+EMAIL: horn@uni-koblenz.de
> #+LANGUAGE: de
> #+BEAMER_FRAME_LEVEL: 2
> #+LaTeX_CLASS_OPTIONS: [presentation]
> #+BEAMER_HEADER_EXTRA: \usetheme[secheader]{Boadilla} \institute{Universitt Koblenz, IST}
> --8<---------------cut here---------------end--------------->8---
>
> In the presentation, the in Universitt is printed as an A with a ~ on
> top, followed by a d'. The reason is that the BEAMER_HEADER_EXTRA is
> put before the input encoding declaration. To be clear, org produces a
> TeX file that starts with
>
> --8<---------------cut here---------------start------------->8---
> % Created 2010-07-06 Tue 08:57
> \documentclass[presentation]{beamer}
> \usetheme[secheader]{Boadilla} \institute{Universitt Koblenz, IST}
> \usepackage[utf8]{inputenc}
> \usepackage[T1]{fontenc}
> --8<---------------cut here---------------end--------------->8---
>
> but it should be at least:
>
> --8<---------------cut here---------------start------------->8---
> % Created 2010-07-06 Tue 08:57
> \documentclass[presentation]{beamer}
> \usepackage[utf8]{inputenc}
> \usetheme[secheader]{Boadilla} \institute{Universitt Koblenz, IST}
> \usepackage[T1]{fontenc}
> --8<---------------cut here---------------end--------------->8---
>
> In general, I'd say that it would be even more safe to put the extra
> headers below all default headers.
Org-publish: correctly find files in projects which didn't define a base-extension.
Previously, (org-publish-get-project-from-filename "~/org/file.org") would return nil because the constructed regular expression "^/home/dc/org/.+\\.\\(\\)$" required a dot at the end.
#+BEGIN_QUOTE
#+END_QUOTE
* org-exp-blocks.el (org-export-blocks-format-ditaa)
(org-export-blocks-format-dot): Remove text properties of body before
calculating cache hash.
Otherwise one and the same ditta/graphviz image has a different hash
depending on the text properties of the body.
E.g. `org-export-region-as-html' with target buffer 'string passed the
body of the block without possible indentation property `wrap-prefix'
while `org-export-as-html' does.
* lisp/org-capture.el (org-capture-templates): Allow the template
to come from a file or function call.
(org-capture-place-entry): Get the template from file or function.
* org-agenda.el (org-agenda-bulk-action): Don't create marker for
position if target is entire file.
If the target of a bulk refile operation is the entire file,
`org-refile-get-location' returns nil for the refile position.
Creating a marker for the target file's buffer at position nil returns
a marker that points nowhere (Cf. GNU Emacs Lisp Reference Manual,
31.6). `org-refile' adds headings to level 1 if the target position
for the target file is nil -- and hence a marker that points nowhere
is not nil, tries to jump to nowhere.
from the comments of the new file
This software provides EMACS org-babel export support for message
sequence charts. The mscgen utility is used for processing the
sequence definition, and must therefore be installed in the system.
Mscgen is available and documented at
http://www.mcternan.me.uk/mscgen/index.html
This code is directly inspired by Eric Schulte's ob-dot.el
Example:
msc {
A,B;
A -> B [ label = "send message" ];
A <- B [ label = "get answer" ];
}
Header for alternative file type:
This differs from most standard languages in that
1) there is no such thing as a "session" in mscgen
2) we are generally only going to return results of type "file"
3) we are adding the "file" and "filetype" header arguments
4) there are no variables
* lisp/ob.el (org-babel-confirm-evaluate): adding a new :eval header
argument which can be used to control evaluation
* doc/org.texi (eval): adding documentation for the new :eval header
argument
* lisp/ob-tangle.el (org-babel-spec-to-string): removed
`org-babel-tangle-w-comments', now just use the :comments header arg
to control the insertion of comments on tangling
For some reason ob-R refuses to compile when it requires ob-comint.
When (require 'ob-comint) is not included in ob-R.el everything
compiles without error, but warnings are thrown because the
arguments to a macro defined in ob-comint are mis-interpreted as
functions.
When (require 'ob-comint) is added to ob-R.el then it throws errors
complaining that the last argument to a function is nil and should
be a string. I don't understand this error at all and can't fix it.
* lisp/org.el (org-babel-load-languages): this variable controls which
languages will be loaded by org-babel. It is customizable through
the customize interface.
(org-babel-do-load-languages): load those languages in
org-babel-load-languages and disable those with nil cdr's
* lisp/babel/ob.el (org-confirm-babel-evaluate): variable used to
control evaluation of code blocks, default value it t, meaning all
code block evaluation requires confirmation
(org-babel-confirm-evaluate): function used to request confirmation
of code block evaluation from the user
(org-babel-execute-src-block): this function is the single point of
entry for evaluation of code blocks (whether initiated through lob
call, through direct code block evaluation, or as part of file
exportation). Every time this function is called it will now
request confirmation from the user. The newly added
`org-confirm-babel-evaluate' variable can be used to configure this
behavior.
(org-babel-no-eval-on-ctrl-c-ctrl-c): This variable can be used to
inhibit evaluation of code blocks with C-c C-c.
* lisp/org.el (org-ctrl-c-ctrl-c): added documentation of code block
evaluation behavior
* lisp/babel/ob-keys.el (org-babel-key-bindings): adding keybindings
for executing code blocks and for opening their results
* lisp/org-capture.el (org-capture-set-target-location): Store
exact positions for file+regexp and file+function targets.
(org-capture-place-entry, org-capture-place-item)
(org-capture-place-table-line, org-capture-place-plain-text): Respect
exact positions.
(org-capture-finalize): Make sure we are at the beginning of a line
when fixing the empty lines after the entry.
* lisp/org.el (org-entry-get-with-inheritance): New argument LITERAL-NIL.
(org-entry-get): Pass `literal-nil' into
`org-entry-get-with-inheritance'.
(org-todo): React to nil values of the LOGGING property.
Of course, an updated patch is attached.
Best -- Eric
Carsten Dominik <carsten.dominik@gmail.com> writes:
> Hi Eric,
>
> I tried to apply the patch, but it does not apply cleanly, maybe due
> to other changes. Can I ask you to update and resubmit?
>
> Thanks!
>
> - Carsten
>
> On Jun 21, 2010, at 6:37 PM, Eric Schulte wrote:
>
>> Hi Robert,
>>
>> Thanks for the thoughtful message.
>>
>> I present a couple of solutions below.
>>
>> Robert Cunningham <robut@iinet.net.au> writes:
>>
>>> G'day All,
>>>
>>> I wonder if I've missed something and there is a better way.
>>>
>>> Essentially I'm trying to use org babel with R and LaTeX to create
>>> figures
>>> with both long and short captions (for contents)
>>>
>>> I'd started with:
>>>
>>> #+CAPTION: Nice data (filled points indicate less nice data)
>>> #+LABEL: fig:nicedata
>>> #+ATTR_LaTeX: width=0.98\textwidth
>>> #+begin_src R :file ndata.pdf :width 1000 :height 617 :exports
>>> results
>>> dotchart(data$ndata)
>>> #+end_src
>>>
>>> which pointed to the need for long/short captions...
>>>
>>> feeling hopeful I tried:
>>>
>>> #+CAPTION: Nice data [Nice data (filled points indicate less nice
>>> data)]
>>> #+LABEL: fig:nicedata
>>> #+ATTR_LaTeX: width=0.98\textwidth
>>> #+begin_src R :file ndata.pdf :width 1000 :height 617 :exports
>>> results
>>> dotchart(data$ndata)
>>> #+end_src
>>>
>>
>> I'm attaching a patch [1] which adds shortname support for captions.
>> Once
>> applied, the following syntax will result in a caption with a
>> shortname
>> and a longname.
>>
>> --8<---------------cut here---------------start------------->8---
>> some pre-table text
>>
>> #+source: g-nicedata
>> #+begin_src gnuplot :file graph.png :exports results
>> plot sin(x)
>> #+end_src
>>
>> #+Caption: [nice data]{a longer description of the niceness of the
>> data}
>> #+results: g-nicedata
>> [[file:graph.png]]
>>
>> some post-table text
>> --8<---------------cut here---------------end--------------->8---
>>
>> however, while this patch is still pending there is an Org-babel
>> solution below which should work immediately.
>>
>>>
>>>
>>> but no luck there.
>>>
>>> Next effort was to try to use R and LaTex more directly with
>>> noweb. I tried
>>> this:
>>>
>>>
>>>
>>> #+srcname: r-nicedata
>>> #+begin_src R :session :file ndata.pdf :results output :exports
>>> results
>>> dotchart(data$ndata)
>>> #+end_src
>>>
>>>
>>> #+begin_src latex :noweb yes
>>> \begin{figure}[htb!]
>>> \centering
>>> \includegraphics[width=0.98\textwidth]{<<r-nicedata()>>}
>>> \caption[Nice data]{Nice data (filled points indicate less nice
>>> data)}
>>> \label{fig:nicedata}
>>> \end{figure}
>>> #+end_src
>>>
>>>
>>>
>>> This does produce the figure and long/short contents BUT ALSO
>>> produces this:
>>>
>>> #+results: r-nicedata
>>> [[file:ndata.pdf]]
>>>
>>> which upon export results in a link and consequently the plot
>>> appearing both
>>> in the figure and elsewhere. This second plot is unwelcome.
>>>
>>> I've tried assorted :results and :output options but have not found
>>> how to
>>> suppress the #+results: but still obtain the figure. I've always used
>>> the :session option.
>>>
>>> I've also tried twigging an org-export option to suppress pdf
>>> export but the
>>> link is still exported so that is not a solution.
>>>
>>> The current "working" solution is to use the noweb approach and
>>> then use sed
>>> to clean out the links to the second image-ugly to say the least!
>>>
>>
>> You were very close with the noweb approach. The following
>> combination
>> should work -- notice the ":results silent" header argument to the
>> source block.
>>
>> --8<---------------cut here---------------start------------->8---
>> some pre-table text
>>
>> #+source: g-nicedata
>> #+begin_src gnuplot :file graph.png :results silent :exports none
>> plot sin(x)
>> #+end_src
>>
>> #+begin_src latex :noweb yes
>> \begin{figure}[htb!]
>> \centering
>> \includegraphics[width=0.98\textwidth]{<<g-nicedata()>>}
>> \caption[Nice data]{some nice data -- filled points indicate less
>> nice data}
>> \label{fig:nicedata}
>> \end{figure}
>> #+end_src
>>
>> some post-table text
>> --8<---------------cut here---------------end--------------->8---
>>
>> is exported to the following latex,
>>
>> --8<---------------cut here---------------start------------->8---
>> some pre-table text
>>
>>
>>
>> \begin{figure}[htb!]
>> \centering
>> \includegraphics[width=0.98\textwidth]{graph.png}
>> \caption[Nice data]{some nice data -- filled points indicate less
>> nice data}
>> \label{fig:nicedata}
>> \end{figure}
>>
>> some post-table text
>> --8<---------------cut here---------------end--------------->8---
>>
>> Hope this helps,
>>
>> Best -- Eric
>>
>>>
>>>
>>>
>>> All this with org version 6.36c
>>>
>>>
>>> What have I missed? What is the best way to do this?
>>>
>>>
>>> Cheers,
>>>
>>> Robert Cunningham
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>
>> Footnotes:
>> [1] From 6a55dcab99bbd7840117b8390ab5db347d2573ef Mon Sep 17
>> 00:00:00 2001
>> From: Eric Schulte <schulte.eric@gmail.com>
>> Date: Mon, 21 Jun 2010 09:02:37 -0700
>> Subject: [PATCH] add short-names to #+captions with support for
>> latex export
>>
>> captions specified with the following syntax
>> #+CAPTION: [shortname]{longname}
>> will have their short and longnames handled appropriately.
>>
>> Thanks to Robert Cunningham for suggesting this feature.
>>
>> * lisp/org-exp.el (org-export-attach-captions-and-attributes): adding
>> a shortname attribute to caption strings under the symbol name
>> org-caption-shortn.
>>
>> * lisp/org-latex.el (org-export-latex-tables): handling caption short
>> names on table export
>>
>> (org-export-latex-convert-table.el-table): handling caption short
>> names on table.el type table export
>>
>> (org-export-latex-links): handling caption short names on link/image
>> export
>>
>> (org-export-latex-format-image): now takes an optional argument
>> specifying a caption short name
>> ---
>> lisp/org-exp.el | 14 +++++++++-----
>> lisp/org-latex.el | 21 ++++++++++++++-------
>> 2 files changed, 23 insertions(+), 12 deletions(-)
>>
>> diff --git a/lisp/org-exp.el b/lisp/org-exp.el
>> index 029e4d7..466d7da 100644
>> --- a/lisp/org-exp.el
>> +++ b/lisp/org-exp.el
>> @@ -1256,7 +1256,7 @@ the current file."
>> (goto-char (point-min))
>> (while (re-search-forward org-bracket-link-regexp nil t)
>> (org-if-unprotected-at (1+ (match-beginning 0))
>> - (let* ((md (match-data))
>> + (let* ((md (match-data))
>> (desc (match-end 2))
>> (link (org-link-unescape (match-string 1)))
>> (slink (org-solidify-link-text link))
>> @@ -1381,8 +1381,8 @@ removed as well."
>> select-tags "\\|")
>> "\\):"))
>> (re-excl (concat ":\\(" (mapconcat 'regexp-quote
>> - exclude-tags "\\|")
>> - "\\):"))
>> + exclude-tags "\\|")
>> + "\\):"))
>> beg end cont)
>> (goto-char (point-min))
>> (when (and select-tags
>> @@ -1593,11 +1593,14 @@ table line. If it is a link, add it to the
>> line containing the link."
>> "^[ \t]*\\(|[^-]\\)"
>> "\\|"
>> "^[ \t]*\\[\\[.*\\]\\][ \t]*$"))
>> - cap attr label end)
>> + cap shortn attr label end)
>> (while (re-search-forward re nil t)
>> (cond
>> ((match-end 1)
>> - (setq cap (concat cap (if cap " " "") (org-trim (match-string 1)))))
>> + (setq cap (concat cap (if cap " " "") (org-trim (match-string 1))))
>> + (when (string-match "\\[\\(.*\\)\\]{\\(.*\\)}" cap)
>> + (setq shortn (match-string 1 cap)
>> + cap (match-string 2 cap))))
>> ((match-end 2)
>> (setq attr (concat attr (if attr " " "") (org-trim
>> (match-string 2)))))
>> ((match-end 3)
>> @@ -1609,6 +1612,7 @@ table line. If it is a link, add it to the
>> line containing the link."
>> (point-at-eol)))
>> (add-text-properties (point-at-bol) end
>> (list 'org-caption cap
>> + 'org-caption-shortn shortn
>> 'org-attributes attr
>> 'org-label label))
>> (if label (push (cons label label) target-alist))
>> diff --git a/lisp/org-latex.el b/lisp/org-latex.el
>> index 01a4b05..6c2aab2 100644
>> --- a/lisp/org-latex.el
>> +++ b/lisp/org-latex.el
>> @@ -1576,7 +1576,7 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>> (org-table-last-column-widths (copy-sequence
>> org-table-last-column-
>> widths))
>> fnum fields line lines olines gr colgropen line-fmt align
>> - caption label attr floatp longtblp)
>> + caption shortn label attr floatp longtblp)
>> (if org-export-latex-tables-verbatim
>> (let* ((tbl (concat "\\begin{verbatim}\n" raw-table
>> "\\end{verbatim}\n")))
>> @@ -1585,6 +1585,8 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>> (progn
>> (setq caption (org-find-text-property-in-string
>> 'org-caption raw-table)
>> + shortn (org-find-text-property-in-string
>> + 'org-caption-shortn raw-table)
>> attr (org-find-text-property-in-string
>> 'org-attributes raw-table)
>> label (org-find-text-property-in-string
>> @@ -1652,7 +1654,8 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>> (if floatp "\\begin{table}[htb]\n"))
>> (if floatp
>> (format
>> - "\\caption{%s%s}"
>> + "\\caption%s{%s%s}"
>> + (if shortn (concat "[" shortn "]") "")
>> (if label (concat "\\\label{" label
>> "}") "")
>> (or caption "")))
>> (if (and longtblp caption) "\\\\\n" "\n")
>> @@ -1680,10 +1683,11 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>>
>> (defun org-export-latex-convert-table.el-table ()
>> "Replace table.el table at point with LaTeX code."
>> - (let (tbl caption label line floatp attr align rmlines)
>> + (let (tbl caption shortn label line floatp attr align rmlines)
>> (setq line (buffer-substring (point-at-bol) (point-at-eol))
>> label (org-get-text-property-any 0 'org-label line)
>> caption (org-get-text-property-any 0 'org-caption line)
>> + shortn (org-get-text-property-any 0 'org-caption-shortn line)
>> attr (org-get-text-property-any 0 'org-attributes line)
>> align (and attr (stringp attr)
>> (string-match "\\<align=\\([^ \t\n\r,]+\\)" attr)
>> @@ -1721,7 +1725,8 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>> (setq tbl (concat "\\begin{center}\n" tbl "\\end{center}")))
>> (when floatp
>> (setq tbl (concat "\\begin{table}\n"
>> - (format "\\caption{%s%s}\n"
>> + (format "\\caption%s{%s%s}\n"
>> + (if shortn (format "[%s]" shortn) "")
>> (if label (format "\\label{%s}" label) "")
>> (or caption ""))
>> tbl
>> @@ -1822,6 +1827,7 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>> "file")))
>> (coderefp (equal type "coderef"))
>> (caption (org-find-text-property-in-string 'org-caption
>> raw-
>> path))
>> + (shortn (org-find-text-property-in-string
>> org-caption-shortn raw-path))
>> (attr (or (org-find-text-property-in-string
>> org-attributes raw-
>> path)
>> (plist-get org-export-latex-options-plist
>> :latex-image-
>> options)))
>> (label (org-find-text-property-in-string 'org-label raw-path))
>> @@ -1859,7 +1865,7 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>> (plist-get org-export-latex-options-plist :inline-images))
>> ;; OK, we need to inline an image
>> (insert
>> - (org-export-latex-format-image raw-path caption label attr)))
>> + (org-export-latex-format-image raw-path caption label
>> attr shortn)))
>> (coderefp
>> (insert (format
>> (org-export-get-coderef-format path desc)
>> @@ -1889,7 +1895,7 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>> (t (insert "\\texttt{" desc "}")))))))
>>
>>
>> -(defun org-export-latex-format-image (path caption label attr)
>> +(defun org-export-latex-format-image (path caption label attr
>> &optional shortn)
>> "Format the image element, depending on user settings."
>> (let (ind floatp wrapp multicolumnp placement figenv)
>> (setq floatp (or caption label))
>> @@ -1932,7 +1938,7 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>> (floatp "\\begin{figure}%placement
>> \\centering
>> \\includegraphics[%attr]{%path}
>> -\\caption{%labelcmd%caption}
>> +\\caption%shortn{%labelcmd%caption}
>> \\end{figure}")
>> (t "\\includegraphics[%attr]{%path}")))
>>
>> @@ -1953,6 +1959,7 @@ The conversion is made depending of STRING-
>> BEFORE and STRING-AFTER."
>> (expand-file-name path)
>> path))
>> (cons "attr" attr)
>> + (cons "shortn" (if shortn (format "[%s]" shortn) ""))
>> (cons "labelcmd" (if label (format "\\label{%s}"
>> label)""))
>> (cons "caption" (or caption ""))
>> --
>> 1.7.0.4
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
> - Carsten
>From 5cbb38e25a2d2eae7c3c688d347f80619ecb8463 Mon Sep 17 00:00:00 2001
From: Eric Schulte <schulte.eric@gmail.com>
Date: Thu, 1 Jul 2010 08:07:17 -0700
Subject: [PATCH] add short-names to #+captions with support for latex export
captions specified with the following syntax
#+CAPTION: [shortname]{longname}
will have their short and longnames handled appropriately.
Thanks to Robert Cunningham for suggesting this feature.
* lisp/org-exp.el (org-export-attach-captions-and-attributes): adding
a shortname attribute to caption strings under the symbol name
org-caption-shortn.
* lisp/org-latex.el (org-export-latex-tables): handling caption short
names on table export
(org-export-latex-convert-table.el-table): handling caption short
names on table.el type table export
(org-export-latex-links): handling caption short names on link/image
export
(org-export-latex-format-image): now takes an optional argument
specifying a caption short name
* lisp/org.el (org-switchb): Renamed from `org-iswitchb'. Improve
docstring.
(org-iswitchb): New alias.
(org-ido-switchb): Make alias point to `org-switchb'.
* lisp/org-capture.el (org-capture-fill-template): Respect
time-of-day preference in template prompt.
In an interactive time prompt in a capture template, the users
preference of getting a stamp with time was not respected.
Reported by Markus Heller
* lisp/babel/langs/ob-python.el (org-babel-python-buffers):
technically this should be initialized as an alist, although in
practice this doesn't really make any functional difference because
whenever this variable is used it has new values properly assigned
to it, and it is supposed to start basically empty.
This patch removes an obsolete declaration and call of the function
`org-publish-initialize-files-alist' from org-protocol.el.
This function does not exist anymore. It was removed when we
implemented the new publishing cache.
Best wishes
Sebastian
* org-feed.el (org-feed-unescape): New function. Unescape
protected entities.
(org-feed-parse-atom-entry): Use function for atom:content
type text and html.
* lisp/org.el (org-time-string-to-absolute): Ignore cyclic repeater
when displaying items on todays agenda date.
Ignore the cyclic repeater when displaying items on today's agenda
date. If you have a weekly task and miss the date the agenda view
will show more than a week late now instead of resetting on the
cyclic repeating date. This makes it much more obvious when you
missed a repeating task after the repeater.
* lisp/org-agenda.el (org-agenda-get-progress): Avoid reusing previous
value of EXTRA.
Sebastien Vauban writes:
> Finally reporting the following bug. Has been there for as long as I can
> remember, but never did report it when seeing it. And kept forgetting.
>
> So, now...
>
> --8<---------------cut here---------------start------------->8---
> * 2010
>
> ** 2010-06 June
>
> *** Admin
>
> **** Organization
> :LOGBOOK:
> CLOCK: [2010-06-30 Wed 13:30]--[2010-06-30 Wed 17:50] => 4:20
> - DUPLICATED TeXt.
> :END:
>
> **** Emails and News
> :LOGBOOK:
> CLOCK: [2010-06-28 Mon 09:10]--[2010-06-28 Mon 10:40] => 1:30
> CLOCK: [2010-06-30 Wed 10:30]--[2010-06-30 Wed 12:30] => 2:00
> :END:
>
> *** ABC
> :LOGBOOK:
> CLOCK: [2010-06-30 Wed 09:30]--[2010-06-30 Wed 10:30] => 1:00
> - Transfer of files to ABC.
> :END:
> --8<---------------cut here---------------end--------------->8---
>
> generates the following timeline:
>
> --8<---------------cut here---------------start------------->8---
> Timeline of file /home/sva/Projects/ecm.org
>
> 2010-06-28 Mon _________________________________
> Clocked: (1:30) Emails and News
>
> 2010-06-29 Tue _________________________________
>
> 2010-06-30 Wed _________________________________
> Clocked: (1:00) ABC - Transfer of files to ABC.
> Clocked: (2:00) Emails and News - DUPLICATED TeXt.
> Clocked: (4:20) Organization - DUPLICATED TeXt.
> --8<---------------cut here---------------end--------------->8---
>
> As you can see, the fact that I never put a descriptive text for "reading
> emails" is wrongly reported: previous text is used in the timeline, instead.
* lisp/org-html.el (org-export-html-preprocess): Call org-format-latex,
possibly with a protect-only argument.
* lisp/org.el (org-format-latex): New argument PROTECT-ONLY.
with the switch #+OPTIONS: LaTeX:verbatim ,
LaTeX code will be exported verbatim to HTML, so that jsmath can grab
and convert it.
Proposed by Christian Moe.
* lisp/org-exp.el (org-export-handle-table-metalines): this function
removes table specific meta-lines, now that we aren't wiping
everything that looks remotely like a comment at the end of the
export process we have to be sure to catch all of the specific lines
in org-exp.el
* lisp/org-exp.el: (org-export-select-backend-specific-text) Properly
get rid of #+Backend and #+ATTR_Backend specifics to backends not
matching the one we're exporting to.
This patch changes the functionality of orgtbl-to-orgtbl so that it will
remove newline characters from the text of table cells and replace them
with "\n". This protects the final table from such newlines.
This patch will probably only have any noticeable effect for tables
imported form external files, or from the results of code blocks.
Best -- Eric
>From 34aacc9aa037e8f17c8d32ed61a25f0a350713a0 Mon Sep 17 00:00:00 2001
From: Eric Schulte <schulte.eric@gmail.com>
Date: Fri, 18 Jun 2010 12:38:26 -0700
Subject: [PATCH] org-table: will now strip newlines from the text of table cells
* lisp/org-table.el (orgtbl-to-generic): added the :remove-newlines
option which will strip newline characters from the text of table
cells and replace then with "\n"
(orgtbl-to-orgtbl): now using the new :remove-newlines option to
orgtbl-to-generic
Patch by Carsten
* lisp/org-exp.el (org-export-mark-blockquote-verse-center): fixed
small bug, now grabbing match data before overwritten by looking-at
this fixes a problem with remainders of #+end_quote lines appearing
in exported output
* lisp/org-latex.el (org-export-latex-fixed-width): now checking
org-example rather than org-protected on verbatim export, because by
default all ": " prefixed lines are marked protected
thanks to Christopher Allan Webber for catching this
* lisp/babel/langs/ob-python.el (org-babel-python-table-or-string):
now more careful not to replace "None"s which are not isolated
portions of lists
Thanks to Christopher Witte for raising these issues
* lisp/babel/langs/ob-haskell.el (org-babel-expand-body:haskell):
replaced missing () wrapping, and now using correct variable
expansion
(org-babel-execute:haskell): now using
org-babel-haskell-initiate-session to start sessions
(org-babel-haskell-initiate-session): only starting sessions if none
exists, also added a .25 second wait on brand new sessions to allow
the Haskell interpreter to fire up
(org-babel-load-session:haskell): now optionally accepts processed
params to avoid over-execution of variable resolution
(org-babel-prep-session:haskell): now optionally accepts processed
params to avoid over-execution of variable resolution, also placing
the variable definitions directly in the session instead of loading
them from a separate file
* lisp/org-entities.el (org-entities): Restructure the list.
(org-entities-help): Turn the help output into a buffer
in Org-mode, so that it becomes easier to find a symbol
in the structure.
(org-entities-create-table): Deal with new structure.
Thanks to Daniel Mahler for finding this problem and proposing the fix
* lisp/babel/ob.el (unless): ensure `declare-function' is available in
all Emacsen
* lisp/org-macs.el (org-not-nil): Return the value if not interpreted
as nil.
* lisp/org.el (org-entry-get):
(org-entry-get-with-inheritance): Interpret the value "nil"
as nil for properties.
Bernt Hansen writes:
> Carsten Dominik <carsten.dominik@gmail.com> writes:
>
> > On Jun 25, 2010, at 3:23 PM, Robert Goldman wrote:
> >
> > > Question: what is the proper way to get a NIL into a property? Are
> > > we
> > > to use () instead of "nil"? Or are property values always interpreted
> > > as strings?
> > >
> > > Apologies in advance if this is a stupid question!
> >
> > Not a stupid question at all.
> >
> > There is no way, currently. Property values are string - the only
> > way to make
> > org-entry-get return nil is to not have the property defined at all.
>
> I've wanted a similar thing in the past for the LOGGING property where
> the parent task has special logging set via the LOGGING property but I
> want to undo that for some of the child tasks so they use the default
> logging setup.
>
> Having a way to undefine a property would be good in general I think.
-Bernt
* lisp/org-macs.el (org-not-nil): New function.
* lisp/org.el (org-block-todo-from-children-or-siblings-or-parent):
Use `org-not-nil' to interpret a property value of nil.
Robert Goldman writes:
> I have found what I believe to be a bug in handling ordered subtasks.
> Here is the behavior:
>
> I have a top level set of tasks that is ordered.
>
> One of the outline items below the top level set is a grab bag of tasks
> that will be performed in parallel. So this task is NOT ordered
> (ORDERED: nil).
>
> The problem is that the blocking behavior from ordered tasks seems to be
> inherited from the top level task list into the second level of the
> outline, even though the ORDERED property at the second level is
> explicitly overridden.
>
> I am attaching an org file that displays this issue. To see the
> problem, put your cursor on the "Bar" task and attempt to change its
> status to DONE.
The problem was here that the value of the property is the string
"nil", which is of course not nil.
This patches introduces a special case to interpret "nil" as nil.
* lisp/babel/langs/ob-emacs-lisp.el
(org-babel-expand-body:emacs-lisp): removed extra call to
`org-babel-process-params' which was causing referenced code blocks
to be run multiple times
(org-babel-execute:emacs-lisp): now passing processed-params through
to `org-babel-expand-body:emacs-lisp' which keeps references from
being evaluated multiple times
* lisp/org-agenda.el (org-agenda-get-timestamps): No errors
while getting TODO state.
(org-agenda-highlight-todo): No error when no keyword has
been matched.
Eric Arneson writes:
> I've discovered a bug in `org-agenda-get-timestamps' wherein an active
> timestamp before the first headline causes it to fail. I realize that
> this is probably an error in my use of active timestamps, but there was
> no really handy error message and this bugged me for weeks.
>
> I'm not familiar enough with org-mode to know what the correct behavior
> should be here (it'd be nice to get an error message saying "Don't use
> active timestamps that way!"), but here's an example .org file that will
> trigger the bug:
>
> --8<---------------cut here---------------start------------->8---
> #+BEGIN: clocktable :maxlevel 3 :scope today
> Clock summary at [2010-06-20 Sun 13:09]
>
> | L | Headline | Time |
> |---+---------------------------------------+--------|
> | | *Total time* | *0:13* |
> |---+---------------------------------------+--------|
> | 1 | Track down funky bug <2010-06-20 Sun> | 0:13 |
> #+END:
>
> * Track down funky bug <2010-06-20 Sun>
> :LOGBOOK:
> CLOCK: [2010-06-20 Sun 12:43]
> CLOCK: [2010-06-20 Sun 12:30]--[2010-06-20 Sun 12:43] => 0:13
> :END:
> --8<---------------cut here---------------end--------------->8---
>
> I hope this can help somebody else track down the right place to fix
> this bug.
* lisp/babel/ob-exp.el (org-babel-exp-results): now checking to see if
return value of `org-babel-ref-literal' is equal to the null
indicator flag -- meaning it's now possible to accept a value of
null
* lisp/babel/ob-ref.el (org-babel-ref-parse): now checking to see if
return value of `org-babel-ref-literal' is equal to the null
indicator flag -- meaning it's now possible to accept a value of
null
(org-babel-ref-literal): now returning a null indicator flag when
the value is *not* a literal value, meaning it is possible to pass
in a literal value of null
Carsten Dominik <carsten.dominik@gmail.com> writes:
> 3 Why a new name?
> ~~~~~~~~~~~~~~~~~~
>
> I have - at least for now - chosen a new name for the new setup:
> ` org-capture'. There are two reasons for this:
In the manual it is "Capture - Refile - Archive". I remember searching
for "Remember" and never found it :)
> 5 Setup
> ~~~~~~~~
>
> To use the new setup, do the following:
>
> 1. Run
>
> M-x org-capture-import-remember-templates RET
Worked perfectly here :)
I tested all my important templates and they work.
Abandoning org-remember seems painless.
> '(("t" "templates adding table lines")
> ("ta" "add to table a" table-line (file+headline "~/notes.org" "Table A))
> ("tb" "add to table b" table-line (file+headline "~/notes.org" "Table B))
> ("tc" "add to table c" table-line (file+headline "~/notes.org" "Table C)))
>
> When starting capture, you can then first press "t" and then see
> the individual options.
This is great. Number of templates is constantly growing and the new
features will increase the speed of this process.
> 7 Request for comments
> ~~~~~~~~~~~~~~~~~~~~~~~
>
> None of what I describe is set in stone yet - let me know if you have
> comments, change requests or other ideas.
>
> My feeling right now is that this should become the default capture
> system, and that we will keep the current org-remember in the
> distribution for quite some time, for compatibility.
Good track I guess.
Here's the tested and working patch for org-protocol.el.
To use `org-remember' and/or `org-capture' alike, copy your org-remember
link and change
javascript:location.href='org-protocol://remember://'+...
to
javascript:location.href='org-protocol://capture://'+...
The template char used is the same for both --- which is OK for me, but
could be changed.
* lisp/org.el (org-timestamp-change): New optional argument UPDOWN.
Use this to identify calls from org-timestamp-up/down, so that we can
skip by rounding minutes in this case.
(org-timestamp-up):
(org-timestamp-down):
(org-timestamp-up-day):
(org-timestamp-down-day): Call org-timestamp-change with the
updown argument.
This function used to look only if there was a prefix argument in the
current interactive call. Now we have an explicit marker indicating
that the function is called from the updown commands.
Bernt Hansen writes:
> I was talking to Jeff Stern about tags todo matching offlist and we
> think the documentation for tags-todo matching can probably be improved.
>
> The description of C-c a M at
> http://orgmode.org/manual/Matching-tags-and-properties.html
> states
>
> C-c a M
>
> Like C-c a m, but only select headlines that are also TODO items and
> force checking subitems (see variable
> org-tags-match-list-sublevels). To exclude scheduled/deadline items,
> see the variable org-agenda-tags-todo-honor-ignore-options. Matching
> specific TODO keywords together with a tags match is also possible,
> see Tag searches.
>
> When I read this I think TODO items is any todo keyword but this isn't
> the case. It is only non-done TODO state keywords. This makes
> tags-todo matching not work for finding tasks to archive (normally
> DONE | CANCELLED keywords in my setup)
>
> Should we explicitly state that 'headlines that are also TODO items'
> does not match DONE state keywords? Or alternatively should TODO items
> and DONE items be separate (and explicitly defined) in the documentation
> -- like org-todo-keywords and org-done-keywords?
>
> I still think 'TODO keyword' matches any todo keyword defined in
> org-todo-keywords and maybe I need to be re-educated :)
Bernt is right, and this patch tries to clarify the issue.
* lisp/org-agenda.el (org-agenda-action): Make `c' key call org-capture.
* lisp/org-capture.el: New file.
* lisp/org-compat.el (org-get-x-clipboard): Function moved here from
remember.el.
* lisp/org-mks.el: New file
* lisp/org.el (org-set-regexps-and-options): Allow statistic cookies as
part of complex headlines.
(org-find-olp): New argument THIS-BUFFER. When set, assume that the
OLP does not contain a file name.
* lisp/org.el (org-mode): Set `comment-start' instead of changing the
syntax of the `#' character.
Leo writes:
> Setting a comment starter without a corresponding comment ender is
> problematic and the # creeps in mysteriously under auto-fill. For
> example, in my current running emacs, this happens almost certainly in
> all org files that has # in their header. The only (temporary) solution
> seems to reboot emacs (which is painful and disruptive).
>
> If you try eval (forward-comment 1) at the beginning of an org file that
> has some "#+..." it will move to the end of file (the whole file is
> regarded as one single comment). So when auto-fill a long text, it will
> find the common prefix to be #.
>
> In addition, I don't think org mode has clear comment syntax or ideas on
> what to do with it.
>
> I can't see any gain from (modify-syntax-entry ?# "<") so I am proposing
> removing it entirely and get rid of this mysterious and annoying bug
> once and for all.
>
> The attached patch may (though I think it is quite safe) cause some bugs
> but those will be fixable unlike the one mentioned above.
>
> Best wishes,
>
> Leo
* lisp/org-exp.el (org-export-format-source-code-or-example): Mark examples
by a property. o
* lisp/org-html.el (org-export-html-close-lists-maybe): Check if raw
HTML stuff was actually made from an example
Daniel Mahler writes:
> 2. I would like to embed source blocks in numbered lists, without
> breaking the numbering ie:
>
> 1) get ready
> #+BEGIN_SRC sh
> get_ready
> #+END_SRC
> 2) go
> #+BEGIN_SRC sh
> go
> #+END_SRC
>
> currently the src blocks cause the numbering to reset, so all
> items in a sequence like this are numbered 1
This patch fixes this issue - but I cannot say anymore why the code in
org-export-html-close-lists-maybe does in fact work. The code looks
wrong, but it seems to work. What looks wrong is that i does not
check for the true indentation in the case when the line is not
protected. It must be that this case is covered by some other code
further down in the exporter.
* lisp/babel/ob.el (org-babel-src-block-regexp):
ensure no whitespace in language names
(org-babel-inline-src-block-regexp):
ensure no whitespace in language names
- Removed the org-babel-tangle-langs variable.
- Added the org-babel-tangle-lang-exts alist for associating
languages with file extensions
- Comments now only added when the :comments header argument is set
to yes
* lisp/babel/ob-tangle.el (org-babel-tangle-w-comments):
this is now a defcustom
(org-babel-tangle-lang-exts): alist associating languages with file
extension, this is also a defcustom
(org-babel-spec-to-string): no longer using the complex tangle-lang
variables
* lisp/babel/ob.el (org-babel-interpreters): define this before it is
first used
* lisp/babel/ob.el (org-babel-call-process-region-original): define
this before it is first used
* lisp/babel/ob.el (org-babel-execute-src-block):
call-process-region-original is no longer free
(org-babel-org-babel-call-process-region-original):
call-process-region-original is no longer free and is now renamed
org-babel-call-process-region-original
(org-babel-tramp-handle-call-process-region):
call-process-region-original is no longer free
* lisp/babel/ob.el (org-babel-execute-src-block): now passing
additional optional argument to `org-babel-inert-results'
(org-babel-insert-result): now accepting additional language
variable
* lisp/babel/ob-comint.el (org-babel-comint-with-output):
Fixed egregious oversight in which we were assuming that the
`full-body' variable would be in scope at the time of macro
execution. Thanks to the compiler for finding this bug.
* lisp/babel/langs/ob-R.el (org-babel-R-evaluate): now using the fixed
`org-babel-comint-with-output' macro
* lisp/babel/langs/ob-haskell.el (org-babel-execute:haskell): now
using the fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-ocaml.el (org-babel-execute:ocaml): now using
the fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-octave.el (org-babel-octave-evaluate-session):
now using the fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-python.el (org-babel-python-evaluate): now using
the fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-ruby.el (org-babel-ruby-evaluate): now using the
fixed `org-babel-comint-with-output' macro
* lisp/babel/langs/ob-sh.el (org-babel-sh-evaluate): now using the
fixed `org-babel-comint-with-output' macro
we are keeping two things in the contrib directory
1) the library-of-babel.org file, this is with the goal of lowering
the barrier of entry for contribution of functions to the library
of babel
2) we are also keeping a langs directory in the contrib directory
because some language files do not have FSF copyright assignment
-- current org-babel-oz.el is the only such file
* lisp/org-latex.el: items are no longer skipped when their first line
ends on a protected element.
* lisp/org-list.el: protected environments looking like lists are not
exported anymore.
Thanks to Nicolas Goaziou <n.goaziou@gmail.com> for this patch.
* lisp/org-exp.el: comment regexp now matches documentation. No more
protection check when deleting comments before export.
Thanks to Nicolas Goaziou <n.goaziou@gmail.com> for this patch.
* lisp/org-exp.el (org-export-preprocess-string):
now using `org-export-handle-include-files-recurse' to resolve
included files
(org-export-handle-include-files): now returns a list of the
included files
(org-export-handle-include-files-recurse): recursively calls
`org-export-handle-include-files' while checking to see if the
process has entered an infinite loop.
Thanks to Eric Schulte for this patch.
(org-agenda-get-scheduled):
* lisp/org.el (org-time-string-to-seconds):
For deadline and scheduled agenda display ignore the cyclic repeater
when calculating how many days late the task is. If you have a weekly
task and miss the date the agenda view will show more than a week late
now instead of resetting on the cyclic repeating date. This makes it
much more obvious when you missed a repeating task after the repeater.
Thanks to Bernt Hansen for this patch.
* org.el (org-raise-scripts): Do not fontify sub/superscripts of text
with face `org-special-keyword'. Makes property keys as :LAST_REPEAT:
display correctly.
This patch adds a modification hook to remove inline-image overlays if
the underlying text is modified. This prevents blind editing of text
behind images.
* lisp/org-exp-blocks.el (org-export-blocks-postblock-hook): adding
documentation to and turning into a defcustom
(org-export-blocks-preprocess): actually running the
`org-export-blocks-postblock-hook' hook after preprocessing
Environments coming from latex backend specific instructions (#+LaTeX)
are already protected and won't be treated as normal environments.
* lisp/org-latex.el (org-export-latex-preprocess): Environments coming
from latex backend specific instructions (#+LaTeX) are already
protected and won't be treated as normal environments.
use a property named "task_id" instead as we do not search for task
ids across files. For resources use a property named "resource_id" or
only as a fall back the ID property.
Also issue a warning if a dependency cannot be resolved.
- Attributes are now insetred generically based on an item (resource
or task) a list of attrbutes
- project end is now solely calculated and no longer inserted in the
node
* lisp/org.el (org-raise-scripts): Do not act in links.
Matt Lundin writes:
> Git commit 70d24c5d03 causes underscores
> in hyperlinks to display parts of link and description as subscripts.
> E.g., this link...
>
> [[http://www.samplepage.com/an_underscore][Some description words]]
>
> ...displays the word "Some" in the description as a subscript. With M-x
> visible-mode, the substring "underscore][Some" is displayed as a
> subscript.
* lisp/org-exp.el (org-export-remove-special-table-lines): Only fix table
lines that are not protected text.
Giovanni Moretti writes:
> I'm working up a presentation on orgmode for a local club and needed
> to prefix it with a brief emacs overview, and so included this:
>
> #+BEGIN_EXAMPLE
> ctrl-P (previous line)
> |
> |
> Ctrl-A <<< Ctrl-B <---- o ----> Ctrl-F >>> Ctrl-E
> Col 1 back char ! fwd char EOL
> !
> ctrl-N (next line)
> #+END_EXAMPLE
>
> : ctrl-P (previous line)
> : |
> : |
> : Ctrl-A <<< Ctrl-B <---- o ----> Ctrl-F >>> Ctrl-E
> : Col 1 back char | fwd char EOL
> : |
> : ctrl-N (next line)
>
> I'm using Orgmode v6.36c and when exporting to HTML (and LaTex
> Beamer), the two lines containing the single vertical bar immediately
> below the "ctrl-P" line in the #+EXAMPLE block vanish, whereas using
> the alternate colon at the beginning of the line notation, the
> rendering is as expected.
>
> Interestingly, enabling the +n option (#+BEGIN_EXAMPLE +n) causes the
> missing lines (lines 2 & 3) to reappear.
* lisp/org.el (org-edit-special): Make sure source code editing goes
before table formula editing.
* lisp/org-table.el (org-table-fedit-map): "C-c '" will now also exit
the formula editor.
Carsten Dominik <dominik@uva.nl> writes:
> Hi Dan,
>
> after a long time, I tried to edit a fixed width region today.
> So I entered
>
> : a
> : b
> : c
>
> and pressed "C-c '" in there. The edit buffer came up in
> read-only mode, which should not be so.
>
> Also, when I do "C-c '" in an empty line, it used to be the case
> that I get an empty artist buffer which I can then edit. Also this
> buffer comes up as read-only.
>
> I suspect that this has to do with the changes you made for read-only
> view buffers. Before I dive into this issue myself, maybe it will be
> much
> easier if you do this?
Hi Carsten,
You're right that it dates from then. Here's the fix I suggest. I've
tested that this results in writable fixed-width edit buffers, writable
src edit buffers, and non-writable babel preview buffers.
Dan
--8<---------------cut here---------------start------------->8---
commit ed4eb9d150
Author: Dan Davison <davison@stats.ox.ac.uk>
Date: Sat Jun 5 12:35:19 2010 +0100
* lisp/org-src.el: Prevent fixed-width region edit buffers
being created as read-only.
Modified lisp/org-src.el
* contrib/lisp/org-special-blocks.el (org-special-blocks-make-special-cookies):
Emacs 22 doesn't have string-match-p
* lisp/org-freemind.el (org-freemind-write-mm-buffer):
(org-freemind-get-node-style):
Emacs 22 doesn't have string-match-p
* lisp/org-html.el (org-html-make-link):
Use new org-string-match-p for compatibility
* lisp/org.el (org-read-date-analyze): Fix regular expression for
matching american dates
Daniel E. Doherty writes:
> In playing around with the date prompt (C-.), I ran across the following
> puzzling behavior from rather simple inputs.
>
> I entered the following on June 1, 2010. Here is a date entered as
> "3/15": <2011-03-15 Tue>. It interpreted it as the upcoming March 15 as
> expected.
>
> But here is a date entered as "5/21": <2021-06-05 Sat>. Note how it
> interpreted the "21" as the year 2021, not at all what I expected from
> the documentation or the analogous "3/15" example.
>
> Maybe there is some underlying logic here that I'm not getting. Perhaps
> it has to do with how 2-digit years are interpreted?
>
> What's going on here? I am using org-version 6.36trans on emacs 23.1.
What was going on here is that the regular expression for matching
american-style dates was wrong. It was looking for month numbers in
the second field and day numbers in the first field - wrong, of
course.
* lisp/org-macs.el (org-rm-props): Add org-emphasis to the properties
that must be removed.
* lisp/org.el (org-do-emphasis-faces): Add org-emphasis property to
items that have emphasis done wit font-lock.
(org-fontify-entities): Do not do anything in commented lines.
(org-unfontify-region): Decompose the region as well, because we do
composition during font-lock.
(org-raise-scripts): Do nothing inside an emphasis string.
Reported by Eric Fraga in http://article.gmane.org/gmane.emacs.orgmode/25940
* lisp/org-compat.el (org-string-match-p):
(org-looking-at-p): New functions.
* lisp/org-table.el (org-table-align): Handle raised text with
invisible characters.
* lisp/org.el (org-script-display): Add raise properties for tables.
(org-raise-scripts): Handle raising differently inside tables.
Pretty display of subscripts and superscripts no longer messes up
table alignment. This is achieved by two things:
1. Inside tables, the raised characters are not made smaller, they
remains at the same size. Instead they are raise/lowered more, by
a full half character height to still be clearly readable as
subscript or superscript.
2. The invisible characters are taken into account when computing the
field width.
* lisp/org.el (org-ctrl-k-protect-subtree): New option.
(org-kill-line): Protect hidden subtrees if the user wants it.
* doc/org.texi (Headlines): Mention the special behavior of C-k
in headlines.
Scott Otterson writes:
> For what must be the dozenth time, I've just accidentally deleted a
> large tree by typing C-k while in a headline.
>
> This is really easy to do because emacs users have "C-k deletes to the
> end of the line" worn deeply into their neural pathways -- it's so
> automatic for me that the keystroke is close to subconscious. A
> mistaken C-k is especially hard to detect because org-mode displays
> the result exactly like what your subconscious expects, that is, a
> collapsed headline is deleted to the end -- and the tree underneath is
> wiped out with no noticeable warning.
>
> Feature request: add an option preventing tree deletion with C-k
> without user confirmation. Actually, I'd like an option to prevent it
> period.
>
> If this option is already in there, then you're encouraged to tell me
> to RTFM. But then also please tell me where it is, because I can't
> find it.
Carsten replies
> This is now possible due to the variable
> `org-ctrl-k-protect-subtree'. But I predict that you are going to set
> it to nil again soon :D
* doc/org.texi (Subscripts and superscripts): Document that `C-c C-x \'
will also format sub and superscripts.
* doc/orgcard.tex: Document that `C-c C-x \'
will also format sub and superscripts.
* lisp/org.el (org-use-sub-superscripts):
(org-pretty-entities-include-sub-superscripts): Move here from
org-exp.el.
(org-set-regexps-and-options): Parse subscript option and set
`org-use-sub-superscripts' as a local variable.
(org-match-sexp-depth):
(org-create-multibrace-regexp):
(org-match-substring-regexp):
(org-match-substring-with-braces-regexp): Moved here from org-exp.el
(org-set-font-lock-defaults): Call `org-raise-scripts'.
(org-remove-font-lock-display-properties): New function.
(org-unfontify-region): Call
`org-remove-font-lock-display-properties'.
(org-script-display): New constant.
(org-raise-scripts): New function.
When turning on entity display with `C-c C-x \', sub- and superscripts
will also be displayed in a smaller font, and raised/lowered.
* lisp/org-latex.el (org-export-latex-fontify): Avoid fontifying
several stars in a row.
* lisp/org.el (org-emphasis-alist): Mention
`org-export-docbook-emphasis-alist' in the docstring.
Called with a numeric prefix argument, `org-timer-set-timer' uses
this numeric value as the duration of the timer.
Called with a `C-u' prefix argument, use `org-timer-default-timer'
without prompting the user for a duration.
With two `C-u' prefix arguments, use `org-timer-default-timer'
without prompting the user for a duration and automatically
replace any running timer."
* lisp/org.el (org-store-link): Don't call org-store-link
interactively when called through remember from the agenda
Samuel Wales writes:
> For months, I found ID properties where they didn't belong.
> Finally I found that they are added when I do M-x
> org-remember in an agenda buffer, to the headline under
> point. Feels like a bug. [...]
The new function `org-agenda-file-p' checks if a given file is an org
agenda file. Such a function is very useful in hooks, for example if
you want to export agenda files automatically when saving:
(defun th-org-mode-init ()
;; Update appointments and export to iCalendar when saving.
(when (org-agenda-file-p)
(add-hook 'after-save-hook 'th-org-agenda-to-appt t t)
(add-hook 'after-save-hook 'org-export-icalendar-this-file t t)))
(add-hook 'org-agenda-mode-hook 'th-org-agenda-mode-init)
I'd appreciate if this one could be applied. I'll fix XEmacs to accept
#B<binary> in the future, but I'd appreciate this one anyway. Doesn't
really add complexity ...
Org-refile-cache fails when org-refile-use-outline-path is set to file.
Specifically, org-refile-cache-check-set throws a markerp error when it
encounters file targets, since they have nil instead a marker object.
This patch applies the test only to targets with markers (i.e.,
headings).
The function org-get-refile-targets was building org-refile-cache even
if org-refile-use-cache was set to nil. This caused every refile
attempt to call org-refile-cache-clear and to produce the message
"Refile cache has been cleared."
* lisp/org-publish.el (org-publish-write-cache-file):
Write a serialized version of the cache hash.
(org-publish-initialize-cache): Reset the cache hash before creating a
new one.Serialize publishing project cache with `puthash' expressions.
* doc/org.texi (Plain lists): Document
`org-list-demote-modify-bullet'.
* lisp/org-list.el (org-list-demote-modify-bullet): Improve docstring
by showing an example.
This change was triggered by a request by Livin Stephen Sharma.
* org-clock.el (org-dblock-write:clocktable): Return total time.
(org-clocktable-steps): Skip step when time is zero and the
:stepskip0 property is set.
Rainer Stengele writes:
> Creating clocktables for each day of a month is an excellent feature
> in org! Problem for me is that many resulting tables have a total
> time of 0:00. The problem is not really the zero time I spent but the
> appearance of the tables with zero total time.
>
> Is there a possibility to skip getting such tables? Rational: I do
> not need to show my boss or customer days where I spent 0:00 time on
> the project.
Now you can set :stepskip0 to achieve this.