0

I have a large figure over 2 pages which I would like to include into my latex file. This figure is an external PDF and in landscape format already. I want to be able to reference the figure in the text via \ref, so it needs a label. The code below works fine, but as soon as I use the figure environment, the rotation of the image is wrong (no landscape anymore). I tried an alternative solution via. includegraphics, but the image was always too small (and somehow not centered). Is there any way to do that properly?

\documentclass{article}
\usepackage{pdfpages}

\begin{document}

Figure \ref{fig:document} shows\ldots

\begin{figure}[h!]
\includepdf[pages=1,landscape=true]{Figure1.pdf}  % exemplary landscape figure, 2 pages long
\label{fig:document}
\end{figure}

\end{document}

It doesnt really have to be a figure environment, as I do not use a list of figures. I just need to be able to link to it and reference it. Any hints highly appreciated.

Edit: Please note, in this case, a caption is not necessary. I am basically looking for a method to include a picture that already has a caption. But I want to link it from the text.

  • The figure environment can't span several pages. Therefore you should use the capt-of package (or caption if you already use it for something else) and the \captionof{figure}{<caption>} command. – Skillmon Mar 14 at 18:57
  • @Skillmon ah I see, thanks. So just use \captionof{figure}{<caption>}, that's it? Maybe you could make a full example? I don't fully understand how to use the command. It throws errors atm when I am trying. – ghx Mar 14 at 19:09
  • Did you use \usepackage{capt-of} or \usepackage{caption} in the preamble? – Skillmon Mar 14 at 21:16
  • I am using \usepackage{caption} – ghx Mar 14 at 23:03
  • \includepdf is not meant to produce something with a caption.. – Skillmon Mar 15 at 9:37
2

You could include them in a landscape environment and then use minipages to enforce that the caption is on the same page as the image. This will not lead to full width inclusion though:

\documentclass{article}
\usepackage[]{graphicx}
\usepackage{caption}
\usepackage{pdflscape}

\begin{document}

Figure \ref{fig:duck1} shows\ldots

\begin{landscape}
  \noindent
  \begin{minipage}{\linewidth}
    \centering
    \includegraphics
      [page=1,width=\linewidth,height=.95\textheight,keepaspectratio]
      {example-image-duck}
    \captionof{figure}{a duck\label{fig:duck1}}
  \end{minipage}
  \begin{minipage}{\linewidth}
    \includegraphics
      [page=2,width=\linewidth,height=.95\textheight,keepaspectratio]
      {example-image-duck}
    \captionof{figure}{another duck\label{fig:duck2}}
  \end{minipage}
\end{landscape}

\end{document}

enter image description here

A late edit:

The following produces two clickable links that make the PDF viewer jump to the pages the two ducks are placed:

\documentclass{article}
\usepackage{pdfpages}
\usepackage[]{hyperref}

\begin{document}

\hyperlink{hyp:duck1}{the first duck} and 
\hyperlink{hyp:duck2}{the second duck}

\clearpage % important or else the first link is on the wrong page
\hypertarget{hyp:duck1}
  {\includepdf[pages=1,landscape=true]{example-image-duck}}
\hypertarget{hyp:duck2}
  {\includepdf[pages=2,landscape=true]{example-image-duck}}

\end{document}
  • thanks, I actually had something similar working. The problem is that the image is pretty large and this method makes it shrink too much in the width. P.S: nice duck. – ghx Mar 15 at 13:05
  • I do not need a caption necessarily, I just want to have the image as large as possible, if that changes anything. – ghx Mar 15 at 13:06
  • @ghx but how do you want to reference it if there is no caption?! – Skillmon Mar 15 at 13:59
  • I don't know, I thought maybe by marking the area in the document before the inclusion of the file somehow and then link to the marker? That would be a workaround. I don't know if it is possible in Latex though – ghx Mar 15 at 14:39
  • If it should be just a hyper link that opens that page on clicking, it is possible. But how should that help in a document? You can't have any number of something like that in the text. Maybe placing a hyper target and saving the page number could help. Is that something you want? – Skillmon Mar 15 at 16:36

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.