1

Is there a possibility to define figures in the sections and then use a parameter/label to tell TeX, that this picture shall printed in an extra Appendix. I would like to use this way for big pictures, par example for screenshots; because it is not really nice to have this big pictures in the sections.

  • Should the figure be printed in the section (smaller) and in the appendix, or only in the appendix? – Sam Oct 22 '17 at 11:18
  • That would be very good, if I could also define the scaling and a rotation of 90 degree (In Appendix on picture at one side, turned and maximal size) . But I am also happy without that. – user146304 Oct 22 '17 at 12:17
  • 1
    @user146304: could you please rephrase your question. I don't really understand what you are after, there are some typos – user31729 Oct 22 '17 at 15:09
  • @user146304 Well, I'm not aware of any package giving this sort of options, so it seems that you'll have to write your own macro for this. I'll see, if I find the time later this day, I'll try it... – Sam Oct 23 '17 at 5:59
  • I thought a bit about this and I don't have a simple solution. I'll post my ideas and the problems I see, maybe one of the more experienced users (like @ChristianHupfer) can help. – Sam Oct 23 '17 at 14:24
2

NOT a working solution, only some ideas that could help solving this


Firstly I'm not a big fan of redefining the LaTeX environments, so I think we'll have to define a new environment which I now called appendixfig. Currently, I also ignored the option to define whether the image should or shouldn't be printed at the place of its definition.

Printing data in two different places reminds me on the collect package which allows you to collect data in an "array". Later on, you can then print this array. That's almost what we need.

Here is an MWE of that:

\documentclass{article}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[demo]{graphicx}
\usepackage{collect}
\usepackage{lscape}

\definecollection{appendixfig}

\newenvironment{appendixfig}{}{}

\makeatletter
    \newenvironment{appendixfig}[1]{%
            \appendixfig
            \@nameuse{collect*}{appendixfig}{\begin{figure}[#1]}{\end{figure}}{\begin{landscape}}{\end{landscape}}%
        }{%
            \@nameuse{endcollect*} %
            \endappendixfig
        }
\makeatother

\begin{document}
    \section{Section 1}
    \begin{appendixfig}{!htb}
        \centering
        \includegraphics[height=5cm]{images/02-merge-image}
        \caption{The picture}
    \end{appendixfig}

    \newpage
    \appendix
    \section{Figures}
    \includecollection{appendixfig}
\end{document}

Pretty straightforward I would say. The problem is, that you will write everything inside the new environment, what you would write in the default figure environment. Well, in fact, that's not really a problem, the problem with that is, that the output in the appendix will be exaclty the same as the one inside the document... I didn't find a nice solution to pass the orientation of angle=90, origin=c or the height=0.9\textheight or whatever.

A partly solution could be the use of the lscape package. This lets you wrap some code around a landscape environment, so at least the appendix images would appear in landscape, but still be the same height/width of the original image.

A second problem I see is the caption. It would be great to have the same numbering in the appendix-figure-caption as you have on the original figure. Maybe you could even let LaTeX automatically print add a sting behind the caption text referring to the page the original image is located at.

All these problems normally are no big deal, but inside the collect environment, I can't figure out how to do this.


As said, take this answer as a starting point. With a bit of luck, a more experienced LaTeX developer or hacker comes along and provides a working solution.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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