* a better way with babel
@ 2010-06-21 10:03 Robert Cunningham
2010-06-21 16:00 ` Erik Iverson
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Robert Cunningham @ 2010-06-21 10:03 UTC (permalink / raw)
To: Emacs-orgmode
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
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!
All this with org version 6.36c
What have I missed? What is the best way to do this?
Cheers,
Robert Cunningham
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: a better way with babel
2010-06-21 10:03 a better way with babel Robert Cunningham
@ 2010-06-21 16:00 ` Erik Iverson
2010-06-21 16:12 ` Thomas S. Dye
2010-06-21 16:37 ` Eric Schulte
2 siblings, 0 replies; 6+ messages in thread
From: Erik Iverson @ 2010-06-21 16:00 UTC (permalink / raw)
To: Robert Cunningham; +Cc: Emacs-orgmode
<snip>
>
> 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 believe in the latest git version, that #+results are no longer exported just
because they appear in the buffer.
See:
http://www.mail-archive.com/emacs-orgmode@gnu.org/msg25917.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: a better way with babel
2010-06-21 10:03 a better way with babel Robert Cunningham
2010-06-21 16:00 ` Erik Iverson
@ 2010-06-21 16:12 ` Thomas S. Dye
2010-06-21 16:37 ` Eric Schulte
2 siblings, 0 replies; 6+ messages in thread
From: Thomas S. Dye @ 2010-06-21 16:12 UTC (permalink / raw)
To: Robert Cunningham; +Cc: Emacs-orgmode
Aloha Robert,
One solution might be to tangle the LaTeX code blocks instead of
exporting the buffer to LaTeX. I like this approach--the org-mode
buffer can be full of meta-data (and messy) but I retain fine control
over the LaTeX output.
> #+begin_src latex :noweb yes :tangle 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
All the best,
Tom
On Jun 21, 2010, at 12:03 AM, Robert Cunningham wrote:
> 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
>
>
> 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!
>
>
>
> 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: a better way with babel
2010-06-21 10:03 a better way with babel Robert Cunningham
2010-06-21 16:00 ` Erik Iverson
2010-06-21 16:12 ` Thomas S. Dye
@ 2010-06-21 16:37 ` Eric Schulte
2010-07-01 13:39 ` Carsten Dominik
2 siblings, 1 reply; 6+ messages in thread
From: Eric Schulte @ 2010-06-21 16:37 UTC (permalink / raw)
To: Robert Cunningham; +Cc: Emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 4403 bytes --]
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]
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-add-short-names-to-captions-with-support-for-latex-e.patch --]
[-- Type: text/x-diff, Size: 7883 bytes --]
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
[-- Attachment #3: Type: text/plain, Size: 201 bytes --]
_______________________________________________
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
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: a better way with babel
2010-06-21 16:37 ` Eric Schulte
@ 2010-07-01 13:39 ` Carsten Dominik
2010-07-01 15:19 ` Eric Schulte
0 siblings, 1 reply; 6+ messages in thread
From: Carsten Dominik @ 2010-07-01 13:39 UTC (permalink / raw)
To: Eric Schulte; +Cc: Emacs-orgmode
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: a better way with babel
2010-07-01 13:39 ` Carsten Dominik
@ 2010-07-01 15:19 ` Eric Schulte
0 siblings, 0 replies; 6+ messages in thread
From: Eric Schulte @ 2010-07-01 15:19 UTC (permalink / raw)
To: Carsten Dominik; +Cc: Emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 56 bytes --]
Of course, an updated patch is attached.
Best -- Eric
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-add-short-names-to-captions-with-support-for-latex-e.patch --]
[-- Type: text/x-diff, Size: 6828 bytes --]
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 | 6 +++++-
lisp/org-latex.el | 20 +++++++++++++-------
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/lisp/org-exp.el b/lisp/org-exp.el
index cf09799..80f6e11 100644
--- a/lisp/org-exp.el
+++ b/lisp/org-exp.el
@@ -1607,12 +1607,15 @@ 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)
(progn
(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)))
(delete-region (point-at-bol) (min (1+ (point-at-eol)) (point-max)))))
((match-end 2)
(progn
@@ -1629,6 +1632,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 e800bc1..d725fc8 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,8 +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}"
- (if label (concat "\\\label{" label "}") "")
+ "\\caption%s{%s%s}"
+ (if shortn (concat "[" shortn "]") "")
(or caption "")))
(if (and longtblp caption) "\\\\\n" "\n")
(if (and org-export-latex-tables-centered (not longtblp))
@@ -1680,10 +1682,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 +1724,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 +1826,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 +1864,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)
@@ -1922,7 +1927,7 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER."
(wrapp "\\begin{wrapfigure}%placement
\\centering
\\includegraphics[%attr]{%path}
-\\caption{%labelcmd%caption}
+\\caption%shortn{%labelcmd%caption}
\\end{wrapfigure}")
(multicolumnp "\\begin{figure*}%placement
\\centering
@@ -1953,6 +1958,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
[-- Attachment #3: Type: text/plain, Size: 13738 bytes --]
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
[-- Attachment #4: Type: text/plain, Size: 201 bytes --]
_______________________________________________
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
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-07-01 15:54 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-21 10:03 a better way with babel Robert Cunningham
2010-06-21 16:00 ` Erik Iverson
2010-06-21 16:12 ` Thomas S. Dye
2010-06-21 16:37 ` Eric Schulte
2010-07-01 13:39 ` Carsten Dominik
2010-07-01 15:19 ` Eric Schulte
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).