all messages for Emacs-related lists mirrored at yhetil.org
 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

* 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 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.