On Sat, Jul 31, 2010 at 12:54 PM, Simon Guest <simon.guest@tesujimath.org>wrote:
> Hi,
>
> I'm making my first real Org mode Beamer presentation, using org-mode
> 7.01g, and trying to set the ignore_heading for a multi-column slide.
>
> In column mode, when I hit 'e' in the Env column, Emacs says:
> Wrong type argument: commandp, org-beamer-set-environment-tag
> (and org-beamer-set-environment-tag does not appear to be defined
> anywhere).
>
> It's triggered from this code in org-colview.el
> ((equal key "BEAMER_env")
> (setq eval '(org-with-point-at pom
> (call-interactively 'org-beamer-set-environment-tag))))
>
> Any idea what's wrong?
>
>
This function was renamed to org-beamer-select-environment and I think it
was not changed here.
The attached patch should solve the problem.
* lisp/org-colview.el
Use org-beamer-select-environment instead
of org-beamer-set-environment-tag
Thanks and Regards
Noorul
Nick Dokos <nicholas.dokos@hp.com> wrote:
> John Hendy <jw.hendy@gmail.com> wrote:
>
> > Just to be sure I created an blank org file with only this:
> >
> > * test
> >
> > #+CAPTION: test table
> > #+ATTR_LaTeX: placement=[H]
> > | 1 | 2 | 3 | 4 |
> > |------+------+------+------|
> > | test | test | test | test |
> > | test | test | test | test |
> >
> > It gets exported to this:
> >
> > \begin{table}[htb]
> > \caption{test table}
> > \begin{center}
> > \begin{tabular}{llll}
> >
> > Did something change between 6.35 and 7.01 or in the LaTeX table options?
> >
>
> I think that placement works fine for figures, but not for tables. In
> fact, I cannot find the code that's supposed to do this for tables: I
> suspect that it never existed. So unless I'm mistaken, it seems that
> tables never got the placement treatment that figures did.
>
Try the following patch (might be wrong in detail, and its scope might
be too limited, but I hope it's not too far off: at least it seems to
work on your simple table.) It may also be white-space damaged, so some
reformatting may be needed after applying it.
Nick
>From 4c8cdde9f3d80edc882efe83562a934fd9a6a8c8 Mon Sep 17 00:00:00 2001
From: Nick Dokos <nicholas.dokos@hp.com>
Date: Fri, 23 Jul 2010 17:54:06 -0400
Subject: [PATCH] Process latex placement attribute for tables.
Figures got placement attributes previously, but tables never did.
David Maus <dmaus@ictsoc.de> writes:
Hi David,
>>I'm trying to add a workaround to org-gnus.el which should save the
>>slowness of querying the IMAP server by looking up the article number
>>in the group's .overview file. But since I don't have nnimap groups,
>>we have to play some question & answer game. ;-)
>
>>Please apply this patch and set
>>`org-gnus-nnimap-query-article-no-from-file' to t.
>
> The patch does not work: It calls `nnimap-retrieve-headers-from-file'
> without the required arguments (group server)
Argh, stupid me! Here's a corrected patch.
--8<---------------cut here---------------start------------->8---
--8<---------------cut here---------------end--------------->8---
> and the headers are not fetched because
> `nnimap-retrieve-headers-from-file' looks for a NOV cache file, not
> .overview.
Aren't overview file and NOV file synonyms?
Hm, anyway. In the Gnus docs I've found this paragraph:
,----[ (info "(gnus)IMAP") ]
| `nnimap-nov-is-evil'
| Never generate or use a local NOV database. Defaults to the value
| of `gnus-agent'.
|
| Using a NOV database usually makes header fetching much faster,
| but it uses the `UID SEARCH UID' command, which is very slow on
| some servers (notably some versions of Courier). Since the Gnus
| Agent caches the information in the NOV database without using the
| slow command, this variable defaults to true if the Agent is in
| use, and false otherwise.
`----
So maybe we're trying to replace one slow command with another slow
command. Especially, the fact that Courier is explicitly mentioned is a
bit frustrating. Well, let's try it out and see if it helps a bit.
> Alas: I couldn't figure out how to enable NOV cache for my nnimap
> group. Setting `nnimap-nov-is-evil' to nil didn't help.
This variable defaults to the value of `gnus-agent', so I assume the
agent has to be enabled (which is default), and most probably the IMAP
server has to be agentized as well. That can be done in the server
buffer (`^' in *Group*), and then:
,----[ (info "(gnus)Server Agent Commands") ]
| `J a'
| Add the current server to the list of servers covered by the Gnus
| Agent (`gnus-agent-add-server').
`----
Bye,
Tassilo
* lisp/org.el (org-insert-time-stamp): Fix org-insert-time-stamp so
that the value of org-last-inserted-timestamp includes time range.
Previously, org-last-inserted-timestamp included only the
beginning of a time range (e.g., 10:00 instead of 10:00-12:00).
This caused parsing problems elsewhere, such as when rescheduling
items with repeating timestamps and a time range (the repeater
was removed during rescheduling).
* org-wl.el (org-wl-store-link-message): Provide link property
for message-id without angle brackets.
The message-id header field can be used to maintain the connection
between an Org entry and an internet message. The angle brackets have
a special meaning when performing a TAGS/PROPS/TODO query (Cf. Org
mode manual 10.3.3). To be able to use the message-id as an entry
property we have to remove the angle brackets to be able to perform a
search for the entry associated with a particular message.
* lisp/ob-tangle.el (org-babel-find-file-noselect-refresh): finds a
file ensuing that the latest changes on disk are represented
(org-babel-with-temp-filebuffer): now only kills the buffer of the
tangled file, and doesn't kill said buffer if the file is already
being visited
* lisp/org-capture.el (org-capture-finalize): Fix clock in of interrupted
task during capture finalize
Calling org-capture-get inside the org-with-point-at macro does not
work when the current clocking task and the capture target buffer are
the same. In this case the captured task would continue clocking
instead of switching back to the previously clocking task.
* lisp/org-agenda.el (org-agenda-filter-preset): Document the limitation
for the filter preset - it can only be used for an entire agenda view,
not in an individual block in a block agenda.
* doc/org.texi (Agenda commands): Document the limitation
for the filter preset - it can only be used for an entire agenda view,
not in an individual block in a block agenda.
* lisp/org-exp.el (org-export-format-source-code-or-example): escape
underscores in code block names on latex listings export
* lisp/org-latex.el (org-export-latex-listings-w-names): make export
of code block names to latex optional
* lisp/org-capture.el (org-capture-target-buffer): Throw an error
if we have no target file.
(org-capture-select-template): Use a default template if the user has
not specified any.
* lisp/ob-lob.el (org-babel-lob-execute): changing indentation to
improve line length
(org-babel-lob-get-info): now catching indexes passed through lob
calls
(org-babel-lob-one-liner-regexp): now matches optional indexes into
variable results
* lisp/org-table.el (org-table-convert-region): don't continue csv
importation which the point catches the end, this fixes an infinite
loop which was caused by the (point) never catching up with the
"end" marker
Hi,
I've just noticed that I get an infinite loop when importing csv tables
into Org-mode tables. For example calling
(org-table-convert-region (point-min) (point-max) '(4))
from inside of a simple text file containing the following
--8<---------------cut here---------------start------------->8---
1,2,3
1
2
3
5
--8<---------------cut here---------------end--------------->8---
results in an infinite loop. The attached patch fixes this issue [1],
however it seems weird that this would just surface now, given that the
code in question has been in the repo since last fall
,----
| commit 59c9c4cdd4
| Author: Carsten Dominik <carsten.dominik@gmail.com>
| Date: Mon Oct 26 12:31:16 2009 +0100
|
| Correctly interpret CVS tables with quoted fields
|
| The csv parser was very primitive, ignoring quoted fields. This is
| now fixed.
`----
Has anyone else noticed this problem? Should I go ahead and apply this
patch?
Best -- Eric
Footnotes:
[1]
>From 3c3f4ca9a34dca23051ca2f4e4518b416338d4f4 Mon Sep 17 00:00:00 2001
From: Eric Schulte <schulte.eric@gmail.com>
Date: Mon, 19 Jul 2010 13:45:25 -0700
Subject: [PATCH] org-table: fix infinite loop in table importation
* lisp/org-table.el (org-table-convert-region): don't continue csv
importation which the point catches the end, this fixes an infinite
loop which was caused by the (point) never catching up with the
"end" marker
* lisp/org-macs.el (org-string-nw-p): New function.
* lisp/org-capture.el (org-capture-import-remember-templates): Interpret
an empty string as request to use `org-default-notes-file'.
(org-capture-target-buffer): If the FILE is not a (non-empty) string,
use `org-default-notes-file'.
* lisp/org-colview-xemacs.el (org-columns-compile-map):
(org-columns-number-to-string):
(org-columns-string-to-number): Handle estimate ranges.
(org-estimate-mean-and-var): New function.
(org-estimate-combine): New function.
(org-estimate-print): New function.
(org-string-to-estimate): New function.
Carsten,
Here is a patch for a new 'est+' summary type, including corresponding changes for xemacs and the manual. I've done basic testing on the GNU emacs version, but not the xemacs code.
I'm not sure the change to the manual provides the right amount of information
in the right place; I'd be happy to re-write to make it find in
better. Similarly, the name of the summary type is entirely up to you.
I didn't know whether to send this directly to you, or to the list; if it should go to the list I'd be happy to send it there directly.
Thanks for the chance to contribute,
Mike
This is the eighth 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
* 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