* 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 external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.