emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: shripad sinari <shripad.sinari@gmail.com>
To: John Kitchin <jkitchin@andrew.cmu.edu>
Cc: Orgmode Mailing List <emacs-orgmode@gnu.org>
Subject: Re: Passing an image reference to source code block
Date: Tue, 27 Dec 2016 11:12:17 -0700	[thread overview]
Message-ID: <CAA_SOTb7tA1jzHtz7CjFr0wnXWhP7wqjF8==HzqpBV7WTafv5Q@mail.gmail.com> (raw)
In-Reply-To: <CAJ51ETqymEfQ7_xt7DVKJsCuz0ANZYmrvmSRN6aJ2o+9cqPk3g@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4227 bytes --]

Hello John,
Thanks for the suggestion. The proposed solution does not work since the
recent org versions generate their own labels and the label value cannot be
predetermined. See the LaTeX code generated by the above example with your
suggestion included:

----x-----------------x----

\section{Section name}
\label{sec:org62816be}
some text
\begin{figure}[htbp]
\centering
\includegraphics[width=.9\linewidth]{img.jpg}
\caption{\label{fig:org43b3d3f}
Fig Caption}
\end{figure}
some reference to figure \ref{fig:org43b3d3f}
\section{other section}
\label{sec:org1e9d137}
reference to Section \ref{sec:org62816be}

% latex table generated in R 3.3.1 by xtable 1.8-2 package
% Tue Dec 27 10:56:43 2016
\begin{table}[ht]
\centering
\begin{tabular}{rrr}
  \hline
 & Time & demand \\
  \hline
1 & 1.00 & 8.30 \\
  2 & 2.00 & 10.30 \\
  3 & 3.00 & 19.00 \\
  4 & 4.00 & 16.00 \\
  5 & 5.00 & 15.60 \\
  6 & 7.00 & 19.80 \\
   \hline
\end{tabular}
\caption{Link the image \ref{fig:image} to this table}
\end{table}
\end{document}


----x-----------------x----

the difference is the image is labelled "fig:org43b3d3f" and not
"fig:image".

Is there a way to solve this using CUSTOM_ID? Or is there a very different
approach to the way such table should be generated and then org-caption
should be used?

Any pointers are appreciated.

I believe this is common requirement in scientific writing which is what I
do most often. I use orgmode to write papers. Till org version 8.2.10 at
least I had a workaround in the following sense:

----x-----------------x----

* Section name
some text
#+CAPTION: Fig Caption
#+LABEL: fig:image
[[file:img.jpg]]
some reference to figure [[fig:image]]
* other section
reference to Section [[Section name]]

#+BEGIN_SRC R :session *sample* default :exports results :results output
latex :tangle yes :var plot="\\\\ref{fig:image}"
  library(xtable)
  print(xtable(BOD
             , caption = paste("Link the image", plot,"to this table")))
#+END_SRC

----x-----------------x----

which produced the following latex code:

----x-----------------x----

\begin{document}

\maketitle
\tableofcontents

\section{Section name}
\label{sec-1}
some text
\begin{figure}[htb]
\centering
\includegraphics[width=.9\linewidth]{img.jpg}
\caption{\label{fig:image}Fig Caption}
\end{figure}
some reference to figure \ref{fig:image}
\section{other section}
\label{sec-2}
reference to Section \ref{sec-1}

 % latex table generated in R 3.3.1 by xtable 1.8-2 package
% Tue Dec 27 11:08:40 2016
\begin{table}[ht]
\centering
\begin{tabular}{rrr}
  \hline
 & Time & demand \\
  \hline
1 & 1.00 & 8.30 \\
  2 & 2.00 & 10.30 \\
  3 & 3.00 & 19.00 \\
  4 & 4.00 & 16.00 \\
  5 & 5.00 & 15.60 \\
  6 & 7.00 & 19.80 \\
   \hline
\end{tabular}
\caption{Link the image \ref{fig:image} to this table}
\end{table}
% Emacs 24.5.1 (Org mode 8.2.10)
\end{document}


----x-----------------x----


This code compiles to the desired document.

Thanks and regards,


Shripad
Tucson, AZ

On Tue, Dec 27, 2016 at 9:05 AM, John Kitchin <jkitchin@andrew.cmu.edu>
wrote:

> Can you pass \ref{fig:image} in? I think that is what you would do in
> Latex.
>
>
> On Mon, Dec 26, 2016 at 7:00 PM shripad sinari <shripad.sinari@gmail.com>
> wrote:
>
>> Hello all,
>> I would like to know if there is a way to pass a reference for a figure
>> to a source block as in the following example:
>>
>> ----x-----------x---
>>
>> * Section name
>>
>> some text
>> #+CAPTION: Fig Caption
>> #+NAME: fig:image
>> [[file:img.jpg]]
>> some reference to figure [[fig:image]]
>>
>> * other section
>> reference to Section [[Section name]]
>>
>> #+BEGIN_SRC R :session *sample* default :exports results :results output
>> latex :tangle yes :var plot=[[fig:image]]
>>   library(xtable)
>>   print(xtable(BOD
>>              , caption = paste("Link the image", plot,"to this table")))
>> #+END_SRC
>>
>>
>> ----x-----------x---
>>
>> I would like the caption of the table to point to the image, at the point
>> where the word "plot" is located, in LaTeX export of the org file.
>>
>> Any help or other workarounds are appreciated. I am using org version
>> 9.0.3 in GNU Emacs 24.5.1.
>>
>> Thanks for your help and regards,
>>
>> Shripad
>> Tucson, AZ
>>
>>
>>
>>
>>

[-- Attachment #2: Type: text/html, Size: 8018 bytes --]

  reply	other threads:[~2016-12-27 18:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-27  2:00 Passing an image reference to source code block shripad sinari
2016-12-27 16:05 ` John Kitchin
2016-12-27 18:12   ` shripad sinari [this message]
     [not found]     ` <CAJ51ETonOMi3UFfT4QwxUbqqFqed1rit9Z0HA5-Qt1QzARWdKA@mail.gmail.com>
     [not found]       ` <CAJ51ETrvoF=EvRKuAWB77m489EmxmG3KP5FOovpgRpe_qT3XHQ@mail.gmail.com>
2016-12-27 19:18         ` [Away message] " shripad sinari
2016-12-27 20:36     ` Nick Dokos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAA_SOTb7tA1jzHtz7CjFr0wnXWhP7wqjF8==HzqpBV7WTafv5Q@mail.gmail.com' \
    --to=shripad.sinari@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=jkitchin@andrew.cmu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).