* lisp/org-exp.el (org-export-remove-comment-blocks-and-subtrees): Fix regexp.
Rasmus <rasmus.pank@gmail.com> wrote:
> Hi,
> It seems that
>
> ,----
> | #+BEGIN_COMMENT
> | ...
> | #+END_COMMENT
> `----
>
> Might be broken in Org-mode 7.5. According to the manual,
>
> ,----
> | Finally, regions surrounded by
> | #+BEGIN_COMMENT ... #+END_COMMENT will not be exported.
> `----
>
> Consider the following example generated with Org-mode 7.5 in Emacs 24.0.50
> (started without config files).
>
> ,----
> | #+TITLE: this is a test
> |
> | #+BEGIN_COMMENT
> | Don't export me
> | #+END_COMMENT
> |
> | I'd like to be exposed
> `----
>
> The HTML export is:
>
> ,----
> | <snip>
> | <h1 class="title">this is a test</h1>
> |
> | <div class="org-comment">
> | </br>
> | <p>
> | <p>
> | Don't export me
> | </p>
> | </div>
> |
> | I'd like to be exposed
> | <snip>
> `----
>
> The LaTeX export is:
>
> ,----
> | \begin{verbatim}
> | Don't export me
> | \end{verbatim}
> | I'd like to be exposed
> `----
>
Indeed.
It seems that one of the hair-raising regexps that Carsten manages
to come up with is not quite right. Try this patch for now:
--8<---------------cut here---------------start------------->8---
--8<---------------cut here---------------end--------------->8---
Nick
* lisp/org-exp.el (org-export-handle-comments): Add the org-protected
property to the replacement string.
Although org-export-handle-comments adds the org-protected property to
the matched string, the subsequent `replace-match' call to change the
comment character does not add this property to the entire format
string. Fix this by propertizing the entirety of the newtext argument
to replace-match.
* doc/org.texi (Selective export): Document exclusion of any tasks from
export.
* lisp/org-exp.el (org-export-with-tasks): New option.
(org-export-plist-vars): Add :tasks property.
* doc/org.texi (Selective export): Document how to exclude DONE tasks
from export.
(Publishing options): Document the properties to be used to turn off
export of DONE tasks.
* lisp/org-ascii.el (org-export-as-ascii):
* lisp/org-docbook.el (org-export-as-docbook):
* lisp/org-html.el (org-export-as-html):
* lisp/org-latex.el (org-export-as-latex): Pass the :done-tasks property
to the export preprocessor.
* lisp/org-exp.el (org-export-with-done-tasks): New option.
(org-export-plist-vars): Add entry for :done-tasks.
(org-export-preprocess-string): Call `org-export-remove-done-tasks'.
(org-export-remove-done-tasks): New function.
Hi,
I found a trivial error with this docstring.
--8<---------------cut here---------------start------------->8---
--8<---------------cut here---------------end--------------->8---
Best regards,
Seb
* org-html.el (org-format-org-table-html): fix anchors in HTML
export (thanks to <aankhen@gmail.com>)
(org-html-protect): fix a bug that prevents some target to be
rendered correctly.
* org-exp.el (org-solidify-link-text): a single "-" to avoid a
"&ndash" rewrite in HTML export later.
* org-exp.el (org-export-visible): Accept keys for
`org-export-as-html-to-buffer' and `org-export-region-as-html'.
H and R were not in the list of allowed keys but bound to the
respective function later.
Missing keys reported by Samuel Wales <samologist@gmail.com>.
* org-exp.el (org-export-table-remove-empty-lines): New custom
variable.
(org-export-remove-special-table-lines): Use it.
This was requested by Eric S Fraga.
* org-html.el (org-export-html-preamble)
(org-export-html-postamble): now default to `nil'.
(org-export-as-html): when :html-pre/postamble is nil, fall
back on the default pre/postamble, which depends on the
:author-info, :email-info, :creator-info options.
* org-exp.el (org-export-plist-vars): reorder the alist.
* org.texi (Export options): better document :html-preamble
and :html-postamble: setting these options will override any
:author-info, :email-info and :creator-info options for the
HTML export.
* org-exp.el (org-export-remove-headline-metadata): bugfix:
don't case-fold-search to avoid mixing TODO keywords with real
headline words.
Thanks to Samuel Wales for spotting and reporting this.
* org-special-blocks.el
(org-special-blocks-make-special-cookies): Use
`org-export-current-backend'.
* org-publish.el (org-publish-aux-preprocess): Use
`org-export-current-backend'.
* org-inlinetask.el (org-inlinetask-export-handler): Use
`org-export-current-backend'.
* org-exp.el (org-export-current-backend): New variable.
(org-export-preprocess-string)
(org-export-format-drawer-function)
(org-export-remove-or-extract-drawers)
(org-export-format-drawer)
(org-export-convert-protected-spaces)
(org-export-select-backend-specific-text)
(org-export-mark-list-end, org-export-mark-list-properties)
(org-export-attach-captions-and-attributes)
(org-export-replace-src-segments-and-examples)
(org-export-format-source-code-or-example)
(org-export-number-lines): Use the new global variable instead
of a local variable.
* org-exp-blocks.el (org-export-blocks-format-ditaa)
(org-export-blocks-format-dot)
(org-export-blocks-format-comment): Use
`org-export-current-backend'.
* lisp/org-exp.el (org-export-mark-list-end): change end marker
* lisp/org-docbook.el (org-export-docbook-list-line): use new marker.
* lisp/org-html.el (org-html-export-list-line): use new marker
* lisp/org-latex.el (org-export-latex-lists): use new marker
* lisp/org-exp.el (org-export-select-backend-specific-text): add
`original-indentation' property when replacing #+begin_backend and
#+backend blocks with their content. This is needed for lists, as
they must know if the block belonged to them.
* lisp/org-list.el (org-alphabetical-lists): new variable
(org-item-re, org-list-full-item, org-cycle-list-bullet,
org-list-struct-fix-bul, org-list-inc-bullet-maybe): reflect
introduction of the new variable.
(org-item-beginning-re): changed into a function, so any modification
of `org-alphabetical-lists' will not require reloading Org.
(org-at-item-p, org-toggle-checkbox, org-update-checkbox-count,
org-list-parse-list, org-list-send-list): reflect changes to
`org-item-beginning-re'.
(org-list-use-alpha-bul-p): new function.
* lisp/org.el (org-check-for-hidden): reflect changes to
`org-item-beginning-re'.
* lisp/org-capture.el (org-capture-place-item): reflect changes to
`org-item-beginning-re'.
* lisp/org-docbook.el (org-export-docbook-list-line): handle new type
of items.
* lisp/org-exp.el (org-export-mark-list-end,
org-export-mark-list-properties): reflect changes to
`org-item-beginning-re'.
* lisp/org-html.el (org-html-export-list-line): handle new type of
items.
* lisp/org-latex.el (org-export-latex-lists): handle new type of items
and reflect changes to `org-item-beginning-re'.
* lisp/org-ascii.el (org-export-ascii-preprocess): handle new counters.
Modified from a patch by Nathaniel Flath.
* lisp/org-list.el (org-list-end-re): removed function and made it a
variable. There's no need for the overhead of calling the function
every at every line in a list. User will have to reload Org if he
change value of either `org-list-end-regexp' or
`org-empty-line-terminates-plain-lists'.
(org-in-item-p,org-list-struct,org-list-parse-list): apply change.
* lisp/org-exp.el (org-export-mark-list-end,
org-export-mark-list-properties): apply change
* lisp/org-latex.el (org-export-latex-lists): apply change. Also
prevent items with org-example property to be considered as real
items.
* lisp/org-exp.el (org-export-preprocess-string): mark list endings
before babel blocks preprocessing starts, so blank lines that may be
inserted do not break list's structure. Then, mark list with special
properties required by exporters. Thus output from babel can easily
be included in lists.
(org-export-mark-list-end): new function
(org-export-mark-list-properties): new function
(org-export-mark-lists): removed function. It was split into the two
preceding functions.
* lisp/org-list.el (org-list-forbidden-blocks): variable renamed from
org-list-blocks.
(org-list-export-context): new variable
* list/org-exp.el (org-export-mark-lists): use new variable.
* list/org-latex.el (org-export-latex-lists): use new variable
* lisp/org-exp.el (org-export-mark-lists): new function, replacing
org-export-mark-list-ending. It adds information as text properties
to every list, before changes done by exporter destruct them.
* lisp/org-html.el (org-export-as-html): delegate list handling to
external function org-html-export-list-line.
(org-html-export-list-line): new function.
* lisp/org-latex.el (org-export-latex-lists): small modification.
* lisp/org.el (org-skip-over-state-notes,org-store-log-note): use new
accessors.
* list/ob.el (org-babel-result-end): use new accessors.
* list/org-exp.el (org-export-mark-list-ending): use new accessors.
* org-exp.el (org-export-preprocess-string): Set the source
buffer and use `org-clone-local-variables' to get local
variables from it.
* org.el (org-clone-local-variables): New function.
* lisp/org-exp.el (org-export-format-source-code-or-example):
Allow empty string as second element in minted/listings options
Both
(setq org-export-latex-minted-options
'(("frame" "lines")
("fontsize" "\\scriptsize")
("linenos" "")))
and
(setq org-export-latex-minted-options
'(("frame" "lines")
("fontsize" "\\scriptsize")
("linenos")))
will result in latex like
\begin{minted}[frame=lines,fontsize=\scriptsize,linenos]{common-lisp}
Three new user-customizable variables:
org-export-latex-listings-options (default nil)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Association list of options for the latex listings package.
These options are supplied as a comma-separated list to the
\\lstset command. Each element of the association list should be
a list containing two strings: the name of the option, and the
value. For example,
(setq org-export-latex-listings-options
'((\"basicstyle\" \"\\small\")
(\"keywordstyle\" \"\\color{black}\\bfseries\\underbar\")))
will typeset the code in a small size font with underlined, bold
black keywords.
Note that the same options will be applied to blocks of all
languages.
See ftp://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/listings/listings.pdf
customization group: org-export-latex
org-export-latex-minted-options (default nil)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Association list of options for the latex minted package.
These options are supplied within square brackets in
\\begin{minted} environments. Each element of the alist should be
a list containing two strings: the name of the option, and the
value. For example,
(setq org-export-latex-minted-options
'((\"bgcolor\" \"bg\") (\"frame\" \"lines\")))
will result in src blocks being exported with
\\begin{minted}[bgcolor=bg,frame=lines]{<LANG>}
as the start of the minted environment. Note that the same
options will be applied to blocks of all languages."
customization group: org-export-latex
See minted.googlecode.com/files/minted.pdf
org-export-latex-custom-lang-environments (default nil)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Association list mapping languages to language-specific latex
environments used during export of src blocks by the listings
and minted latex packages. For example,
(setq org-export-latex-custom-lang-environments
'((python \"pythoncode\")))
* lisp/org-exp.el (org-export-format-source-code-or-example):
Support new user-customizable options
(org-export-latex-custom-lang-environments): Ensure new variable is defined
(org-export-latex-listings-options): Ensure new variable is defined
(org-export-latex-minted-options): Ensure new variable is defined
* lisp/org-latex.el (org-export-latex-listings-options): New variable
(org-export-latex-minted-options): New variable
(org-export-latex-custom-lang-environments): New variable
* org-exp.el (org-export-add-options-to-plist): Require match to start
at a word-boundary.
Previously, if an option was the suffix of another option (such as TeX
and LaTeX) the setting for the former would propagator to the latter.
This seems like an unintended consequence of a lax regexp in
org-export-add-options-to-plist. This patch allows options to share a
suffix with another option by requiring that the match against an
option starts at a word-boundary.
* org-exp.el (org-export-initial-scope): new custom variable.
(org-export): Use this new variable. If there is an active
region, tell it when prompting the user for an export command.
Also change the way the function handles selection of buffer
and subtree export.
----
Now `1' switches between subtree/buffer export until the user
select an export command. Also, when there is an active region,
modify the message so that the user is aware he will only export
the surrounding subtree.
* org-html.el (org-export-html-auto-preamble)
(org-export-html-auto-postamble): Remove.
(org-export-html-preamble, org-export-html-postamble): Turn
into custom variables. Update the docstrings.
(org-export-html-preamble-format)
(org-export-html-postamble-format): New custom variables.
(org-export-as-html): Use org-export-html-postamble-format and
org-export-html-preamble-format.
(org-export-html-title-format): delete.
* org-exp.el (org-export-plist-vars): Remove
:auto-preamble and :auto-postamble. Rename :preamble and
:postamble to :html-preamble and :html-postamble.
* org-publish.el (org-publish-project-alist): Remove
:auto-preamble and :auto-postamble. Rename :preamble and
:postamble to :html-preamble and :html-postamble.
* org.texi (Publishing options): replace :preamble and
:auto-preamble by :html-preamble (same for postamble.)
Following on from Stephen's recent post, a
thing-that-slightly-bothers-me is the way the export dispatcher window
doesn't go away until export is complete. I've briefly looked at the
code twice now and it wasn't obvious to me why the save-window-excursion
(line 941 org-exp.el) wasn't already doing what I wanted. However, the
change below seems to have the effect I wanted. While this particular
solution may be a hack, I wonder whether people would prefer its
behaviour? E.g. try exporting this:
#+title: title
#+begin_src sh :exports results
sleep 5 && echo hello
#+end_src
export can often take several seconds and it's nice to be able to zone
out looking at your org document rather than the dispatcher window.
Modified lisp/org-exp.el
(I see that (sit-for .0001) is used in a couple of places in Org for
this effect, so maybe that should be used instead.)
Dan
* org-exp.el (org-export-target-internal-links): Locally turn
on `org-link-search-must-match-exact-headline' to match exact
internal links.
Thanks to Jambunathan K for spotting this.
* org-exp.el (org-export-with-LaTeX-fragments): Fix docstring so that
\\[ a = b \\] is not interpreted as a keybinding by
`substitute-command-keys'.
In a docstring \\[text] is used to indicate that text should be
interpreted by `substitute-command-keys'. To avoid this
interpretation, we need to prefix it with \\=.
I just found a left over in org-list.el. :)
Updated patch attached.
>From bf6c65a42e04d4753c58795442a479685bb5f318 Mon Sep 17 00:00:00 2001
From: Julien Danjou <julien@danjou.info>
Date: Wed, 26 Jan 2011 11:14:11 +0100
Subject: [PATCH] org: remove org-invisible-p
* org.el: Remove org-invisible-p: outline-invisible-p is
available in Emacs 22 and in recent XEmacs 21. Replace in
various files.
Signed-off-by: Julien Danjou <julien@danjou.info>
Hi Carsten,
On Sat, Jan 8, 2011 at 11:35 PM, Carsten Dominik
<carsten.dominik@gmail.com> wrote:
> Hi Puneeth,
>
> can cou please augment the patch with a propert ChangeLog-like entry, and
> with documentation for the manual, and then resubmit?
Here is a patch with a ChangeLog entry and documentation for the
manual. Please tell me if it looks OK. Also, I hope using
git-format-patch is the right way to send this page. If not, what is
the right way?
Thanks,
Puneeth
>From 4a9be5b1a7a19c5d092ed14a86d29ad83122e9a8 Mon Sep 17 00:00:00 2001
From: Puneeth Chaganti <punchagan@gmail.com>
Date: Sun, 9 Jan 2011 00:48:51 +0530
Subject: [PATCH] Include only specified range of line numbers of a file
* doc/org.texi (Include files): Document :lines.
* lisp/org-exp.el (org-export-handle-include-files): Support :lines
property.
(org-get-file-contents): New argument lines to include specify a range
of lines to include.
On Fri, Jan 7, 2011 at 1:29 PM, Puneeth <punchagan@gmail.com> wrote:
> On Fri, Jan 7, 2011 at 10:03 AM, Venkatesh Choppella
> <venkatesh.choppella@iiit.ac.in> wrote:
>> I would like to include a part of a file (between a given range of
>> line numbers) instead of the whole file. Is there a way to do that
>> in org-mode?
>
> It isn't possible to include files using line numbers, as of now.
> Here's a quick patch that would add this feature. I have tested it
> with small files and works fine. Can somebody tell me if it looks
> good?
>
> :lines "5-10" will include the lines from 5 to 10, 10 excluded.
> :lines "-10" will include the lines from 1 to 10, 10 excluded.
> :lines "5-" will include the lines from 1 to the end of the file.
>
> HTH,
> Puneeth
* lisp/org-exp.el (org-export-mark-list-ending): insert additional
newline characters if end-list-marker is at a wrong position.
This solves a problem arising when exporting a region to HTML with a
list ending at the end of region. The marker would then be inserted on
the last line, following text from the list.
* doc/org.texi (Include files): Document :minlevel.
* lisp/org-exp.el (org-export-handle-include-files): Support :minlevel
property.
(org-get-file-contents): New argument minlevel to demote included
content.
On Sat, Nov 13, 2010 at 1:12 AM, Carsten Dominik
<carsten.dominik@gmail.com> wrote:
>
> On Nov 10, 2010, at 3:46 AM, Jianshi Huang wrote:
>
>> Hi,
>>
>> I know I can include any file using #+INCLUDE.
>>
>> I need to include several org files, but they were edited
>> independently as a complete document.
>>
>> Now I want to lower the levels of headers in these org files
>> automatically during inclusion. Is there a way to do that?
>
> No. But since #+include accepts arguments, it could be implemented,
> something like
>
> #+include "aaa.org" :minlevel 4
>
> or so. I would accept a good patch to this effect.
Here's a patch. I tested it with a simple document and works fine.
Thanks,
Puneeth
* lisp/org.el (org-shorten-string): New function.
* lisp/org-exp.el (org-export-convert-protected-spaces): New function.
(org-export-preprocess-string): Call
`org-export-convert-protected-spaces' to handle new hard spaces.
* lisp/org-clock.el (org-clocktable): New customization group.
(org-clocktable-defaults): New option.
(org-clock-clocktable-formatter): New option.
(org-clock-clocktable-default-properties): New option.
(org-dblock-write:clocktable): Rewrite to split out functionality
into separate functions.
(org-clocktable-write-default):
(org-clocktable-indent-string):
(org-clock-get-table-data): New functions.
* lisp/org-agenda.el (org-agenda-list):
(org-agenda-redo):
(org-agenda-clockreport-mode):
(org-agenda-set-mode-name): Rewrite to implement filtered clock tables.
* doc/org.texi (Clocking commands):
(The clock table): New sections.
(Agenda commands): Document filtered clock reports.
* lisp/org-exp.el (org-export-format-source-code-or-example): Use
minted for latex source code export if `org-export-latex-listings' has
the value 'minted
* lisp/org-latex.el (org-export-latex-listings): Document special
value 'minted
* lisp/org-latex.el (org-export-latex-minted): Delete variable
The attached patch adds a new functions org-export-string.
,----
| org-export-string is a Lisp function in `org-exp.el'.
|
| (org-export-string STRING FMT &optional DIR)
|
| Export STRING to FMT using existing export facilities.
| During export STRING is saved to a temporary file whose location
| could vary. Optional argument DIR can be used to force the
| directory in which the temporary file is created during export
| which can be useful for resolving relative paths. Dir defaults
| to the value of `temporary-file-directory'.
`----
This function should be useful in user code, and can already reduce the
amount of code in ob-org.el and org-mime.el.
>From e51017e4d7051aad31384a470f0a695dca0d6716 Mon Sep 17 00:00:00 2001
From: Eric Schulte <schulte.eric@gmail.com>
Date: Sun, 17 Oct 2010 15:17:13 -0600
Subject: [PATCH] org-export-string -- exports a string of org-mode markup text
* lisp/org-exp.el (org-export-string): new function org-export-string
can be used to convert a string of test in org-mode markup to a
specified format
* contrib/lisp/org-mime.el (org-mime-htmlize): now using new
org-export-string function for exportation
* lisp/ob-org.el (org-babel-execute:org): now using new
org-export-string function for exportation
* doc/org.texi: Document the <c> cookie.
* lisp/org-exp.el (org-store-forced-table-alignment):
(org-export-remove-special-table-lines): Allow the "c" cookie for
table alignment.
* lisp/org-html.el (org-export-table-header-tags):
(org-export-table-data-tags): Add another %s format for the alignment.
(org-export-html-table-align-individual-fields): New option.
(org-format-org-table-html): Implement field-by-field alignment and
support centering.
(org-format-table-table-html): Make sure the new table tag formats
don't break this function.
* lisp/org-table.el (org-table-cookie-line-p):
(org-table-align): Allow for the <c> cookie.
* lisp/org.el (org-set-font-lock-defaults): Allow for the <c> cookie.
* org-exp.el (org-export-format-source-code-or-example): latex
formatting of source code blocks using the minted package
(org-export-plist-vars): Add :latex-minted property
(org-export-latex-minted): Ensure variable is defined
(org-export-latex-minted-langs): Ensure variable is defined
* org-latex.el (org-export-latex-minted): new variable
(org-export-latex-minted-langs): new variable
(org-export-latex-minted-with-line-numbers): new variable
(org-export-latex-minted):
* lisp/org-exp.el (org-export-language-setup): Fix Polish entries.
Hello.
There is no such named entity as ś. If you want to be 7bit clean
then use ś (or decimal ś).
Example:
{{{property(id)}}}
Will insert the ID property of current subtree if the Org buffer is
exported.
* lisp/org-exp.el (org-infile-export-plist): Define property macro
TINYCHANGE
* org-capture.el (org-capture-place-item): use `org-search-forward-unenclosed'
and `org-search-backward-unenclosed' and new variable `org-item-beginning-re'.
* org-list.el (org-item-beginning-re): regexp matching beginning of an item.
* org-exp.el (org-export-mark-list-ending): fix number of blank lines
inserted after a list.
* org-list.el (org-list-parse-list): fix case when `org-list-end-re'
would have an indentation greater than current list.
* org-html.el (org-export-html-preprocess): Remove unneeded insertion
of list end marker, as it is now handled by
`org-export-mark-list-ending'.
* org-html.el (org-export-as-html): Cleaner termination of lists.
* org-exp.el (org-export-mark-list-ending): New function to insert
specific markers at the end of lists when exporting to a backend not
using `org-list-parse-list'.
This function is called early in `org-export-preprocess-string',
while it is still able to recognize lists.
* org-latex.el (org-export-latex-lists): Better search for lists. It
now only finds items not enclosed and not protected.
* lisp/org-exp.el (org-export-preprocess-apply-macros): Fix the macro
argument parser.
The macro argument parser was swallowing white space after escaped commas.
* lisp/org-exp.el (org-export-with-LaTeX-fragments): New default t, which
now means to use MathJax processing for HTML. Also allow new value
`dvipng' to force the old image processing.
(org-infile-export-plist): Parse for MATHJAX setup line.
* lisp/org-html.el (org-export-html-mathjax-options): New option.
(org-export-html-mathjax-config): New function.
(org-export-html-mathjax-template): New option.
(org-export-html-preprocess): Call the LaTeX snippet processor with an
additional argument to declare special ways of processing.
(org-export-as-html): Bind the dynamical variable
`org-export-have-math'. Insert the MathJax script template when it is
needed by the document.
* lisp/org.el (org-preview-latex-fragment): Call `org-format-latex' with
the additional processing argument.
(org-export-have-math): New variable, for dynamic scoping.
(org-format-latex): Implement specific ways of processing. New
function argument for processing type.
(org-org-menu): Remove the entry to configure LaTeX snippet
processing.
MathJax is now the default for displaying math in a browser.
* contrib/lisp/org-wikinodes.el: New file.
* lisp/org-exp.el (org-export-preprocess-after-radio-targets-hook):
(org-export-define-heading-targets-headline-hook): New hooks.
* lisp/org.el (org-modules): Add entry for org-wikinodes.el.
(org-font-lock-set-keywords-hook): New hook.
(org-open-at-point-functions): New hook.
(org-find-exact-headling-in-buffer):
(org-find-exact-heading-in-directory): New functions.
(org-mode-flyspell-verify): Better cursor position for checking if
flyspell should ignore a word.
* lisp/org.el (org-link-search-must-match-exact-headline): New option.
(org-link-search-inhibit-query): New variable.
(org-link-search): Search for exact headline match in Org files
* doc/org.texi (Internal links): Document the changes in internal links.
Internal links used to do a fuzzy text search for the link text. This
patch changes the behavior for Org files. Here a link [[My Target]]
now searches for an exact headline match, i.e. for a headline that
does look like "* My Target", optionally with TODO keyword, priority
cookie and tags.
The new option `org-link-search-must-match-exact-headline' is
`query-to-create' by default. This means that a failed link search
will offer to create the headline as a top-level headline at the end
of the buffer. This corresponds to a wiki-like behavior where missing
targets are automatically created. If you do not like this behavior,
change the option to t.
* 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
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
* 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.
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-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.
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-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/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.
* 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.
* 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.
Jan Bcker writes:
> If you have a headline with an elisp code block containing the following
> line:
>
> " :ID:"
>
> the HTML code will be garbled at the beginning of the headline.
>
> I have attached a minimal test case and the resulting HTML file. The
> #+OPTIONS: line is not needed, but is included to make the HTML file
> less cluttered.
>
> There has to be whitespace between the " and :ID: and the string must be
> ended on the same line. For example, these lines trigger the bug:
>
> " :ID:"
> " :ID:"
> " :ID: garble-my-html"
>
> while these do not:
>
> ":ID:"
> ":ID: garble-my-html"
> " :ID:
>
This new code will search #+INDEX lines in the buffer. For LaTeX, it
will simple convert these into LaTeX \index{} commands. For other
backends, it will copy thee entries to a new file, with extension
orgx. These files can then later be post-processed to create the index.
Eric Fraga writes:
> What am I missing? I tried exporting the following to HTML and the
> caption and HTML attributes seem to be ignored completely. Also, the
> alignment directives are ignored as well.
>
> --8<---------------cut here---------------start------------->8---
> #+TITLE: test file for org mode
> #+DESCRIPTION: used for bug reports
> #+AUTHOR: Eric S Fraga
> #+EMAIL: Eric S Fraga <e.fraga@ucl.ac.uk>
> #+DATE: 2010-03-11 Thu
> #+KEYWORDS:
> #+LANGUAGE: en
> #+OPTIONS: H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
> #+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
> #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
> #+EXPORT_SELECT_TAGS: export
> #+EXPORT_EXCLUDE_TAGS: noexport
> #+LINK_UP:
> #+LINK_HOME:
>
> * tables
>
> #+caption: A very interesting table
> #+attr_html: border="1" rules="all" frame="all" align="center"
> | <r> | <l> |
> | Id | Description |
> |-----+--------------------------------|
> | 1. | The first item |
> | 2. | the second |
> | 4. | we don't have a third one |
> | 10. | a longer id to check alignment |
> |-----+--------------------------------|
> --8<---------------cut here---------------end--------------->8---
>
> I'm using org current as of yesterday Org-mode version 6.34trans
> (release_6.34c.186.g1902) and with GNU Emacs 23.1.1
> (i486-pc-linux-gnu, GTK+ Version 2.18.2) of 2009-11-02 on raven,
> modified by Debian
This change provides for better export of named source-code blocks,
with specific support for more attractive html export. The arguments
are included with the source code name, and both the source code name
and code body are wrapped in a div to support styling with css. For
example the following CSS can be used to associate a source-code block
name with it's code body, and to slightly indent the body.
.org-src-container {
border-left: 4px solid gray;
padding: 0.5em 0.5em 0.5em 1em; }
.org-src-container pre {
margin-left: 1em; }