Was ist falsch an dieser Arithmetik mit Schleife?

Was ist falsch an dieser Arithmetik mit Schleife?

Ich möchte 4x2-Abbildungen auf mehreren Seiten in einer Schleife anzeigen beamer. Die Seitenzahleinstellung schlägt fehl page=\numexp \ii * 2 \relax. Code

\documentclass{beamer}
\usepackage{pgffor}    
\usepackage{graphicx}                                                          
\usepackage{subcaption} % http://tex.stackexchange.com/a/37597/13173

\begin{document}
\begin{frame}[allowframebreaks]
    \foreach \ii in {1,...,4}{
    \begin{figure}
    \centering% not \center!
    \begin{subfigure}{0.5\textwidth}
      \includegraphics[scale=0.2, page=\ii]{{Rplots.bland.altman.1}.pdf}
      \caption{Image \ii.}
    \end{subfigure}
    \begin{subfigure}{0.5\textwidth}
      \includegraphics[scale=0.2, page=\numexp \ii * 2 \relax]{{Rplots.bland.altman.1}.pdf}
      \caption{Image \ii.}
    \end{subfigure}
    \end{figure}
    }
\end{frame}
\end{document}

Die Ausgabe ergibt für mich keinen Sinn; der Versuch, das Problem zu lösen, \newcounter{ii}hilft nicht.

! Undefined control sequence.
\GPT@page ->\numexp 
                    \ii * 2 \relax 
l.23 \end{frame}

Ausgabe mit\the\numexp ...

...
? 
! You can't use `the character 1' after \the.
\ii ->1

l.23 \end{frame}

? 
! Missing \endcsname inserted.
<to be read again> 
                   \relax 
l.23 \end{frame}

? 
! Missing { inserted.
<to be read again> 
                   *
l.23 \end{frame}

? 
! Missing \endcsname inserted.
<to be read again> 
                   \relax 
l.23 \end{frame}

TeXLive: 2016
Betriebssystem: Debian 8.5

Antwort1

Ich habe von beamerin konvertiert article, nur damit ich demoden Modus von verwenden konnte graphicx. Aber es gab zwei Probleme, wie ich in meinem Kommentar sagte:

  1. \numexpr, not \numexpist die richtige Syntax, und

  2. Sie müssen \the\numexpres für etwas, das nach einer Zeichenfolge sucht, verdaulich machen. (Um dies zu sehen, versuchen Sie die Ausgabe \numexpr 0\relaxin einem Dokument statt in \the\numexpr 0\relax.)

Wie der OP bemerkte, sind subfigurebei einer Breiteneinstellung 0.45\textwidthzwei Ziffern pro Zeile möglich.

Hier ist das MWE.

\documentclass{article}%{beamer}
\usepackage[demo]{graphicx}
\usepackage{pgffor,subcaption}                                                            

\begin{document}
%\begin{frame}[allowframebreaks]
    \foreach \ii in {1,...,4}{
    \begin{figure}
    \centering% not \center!
    \begin{subfigure}{0.45\textwidth}
      \includegraphics[scale=0.2, page=\ii]{{Rplots.bland.altman.1}.pdf}
      \caption{Image \ii.}
    \end{subfigure}
    \begin{subfigure}{0.45\textwidth}
      \includegraphics[scale=0.2, page=\the\numexpr \ii * 2 \relax]{{Rplots.bland.altman.1}.pdf}
      \caption{Image \ii.}
    \end{subfigure}
    \end{figure}
    }
%\end{frame}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen