Ich kann das subfig
Paket in meinen Dokumenten verwenden, aber nicht in einer exercise
Umgebung:
\documentclass{scrreprt}
\usepackage{exercise}
\usepackage[demo]{graphicx}
\usepackage{subfig}
\newcommand{\onefigure}[2]{%
\includegraphics[#1]{../../figures/ece1229/#2}%
}
\newcommand{\fourfigures}[5]{%
\begin{figure}%
\centering%
\subfloat[][]{\onefigure{scale=#1}{#2}}%
\qquad%
\subfloat[][]{\onefigure{scale=#1}{#3}}%
\qquad%
\subfloat[][]{\onefigure{scale=#1}{#4}}%
\qquad%
\subfloat[][]{\onefigure{scale=#1}{#5}}%
\end{figure}%
}
\begin{document}
\begin{Exercise}
%\onefigure{scale=0.2}{blah1}
\fourfigures{0.2}{blah1}{blah2}{blah3}{blah4}
\end{Exercise}
\end{document}
Wenn der Subfloat in eine Übung eingebettet ist, erhalte ich einen Fehler „Nicht im äußeren Par-Modus“, ähnlich dem der Frage! LaTeX-Fehler: Nicht im äußeren Par-Modus. Bei dieser Frage lag der Fehler daran, dass Floats in einer Minipage nicht zulässig sind.
Ich gehe davon aus, dass es eine ähnliche Einschränkung für Floats in Übungsumgebungen gibt. Gibt es angesichts dieser Einschränkung eine Möglichkeit, mehrere Bilder in Gruppen anzuordnen, wie bei Subfig, aber auf eine Weise, die immer noch mit Übungen kompatibel ist?
Antwort1
Dadurch wird die Verwendung von Floats innerhalb der Exercise
Umgebung vermieden.
\documentclass{scrreprt}
\usepackage[margin=.5in]{geometry}
\usepackage{exercise}
\usepackage[demo]{graphicx}
\usepackage{stackengine,lipsum}
\newcommand\fourfigures[5]{%
\par\medskip{\centering%
\stackunder[6pt]{
\stackunder{\includegraphics[width=#1\textwidth]{#2}}{(a)}
\qquad%
\stackunder{\includegraphics[width=#1\textwidth]{#3}}{(b)}
}{
\stackunder{\includegraphics[width=#1\textwidth]{#4}}{(c)}
\qquad%
\stackunder{\includegraphics[width=#1\textwidth]{#5}}{(d)}
}\par}
}
\begin{document}
Pre-exeercise \lipsum[13]
\begin{Exercise}
In Exercise \lipsum[13]
\fourfigures{0.3}{blah1}{blah2}{blah3}{blah4}
\captionof{figure}{This is my figure caption}
\end{Exercise}
\begin{Exercise}
Next exercise \lipsum[13]
\fourfigures{0.2}{blah1}{blah2}{blah3}{blah4}
\captionof{figure}{This is my figure caption}
\end{Exercise}
\end{document}
Antwort2
Ein Teil der Antwort wurde in den Kommentaren gegeben (Entfernen der Abbildung und includegraphics
direkte Verwendung), aber es sind einige zusätzliche Arbeiten erforderlich, um die in der Abbildungsumgebung verfügbaren Funktionen wiederherzustellen. Insbesondere ist eine manuelle Anpassung des Abstands erforderlich, und Bildunterschriften müssen anders erstellt werden.
Was den Abstand betrifft, scheint der Abstand standardmäßig nicht intelligent gewählt zu sein includegraphics
, und ein Teil meiner Diagramme kann am Ende über den Seitenrand hinausragen:
\includegraphics[scale=0.7]{../../figures/ece1229/ps4p1PlotAdEquals0DegreesFig1}
\includegraphics[scale=0.7]{../../figures/ece1229/ps4p1PlotAdEquals90DegreesFig2}
\includegraphics[scale=0.7]{../../figures/ece1229/ps4p1PlotAdEquals180DegreesFig3}
\includegraphics[scale=0.7]{../../figures/ece1229/ps4p1PlotAdEquals270DegreesFig4}
Indem ich den Abstand manuell anpasse und das captions
Paket verwende, erziele ich etwas, das einem figure
+ subfloat
-Aussehen nahekommt:
\begin{center}
\captionsetup{type=figure}
\includegraphics[scale=0.7]{../../figures/ece1229/ps4p1PlotAdEquals0DegreesFig1}
\qquad
\includegraphics[scale=0.7]{../../figures/ece1229/ps4p1PlotAdEquals90DegreesFig2}
\par\vspace{5mm}
\includegraphics[scale=0.7]{../../figures/ece1229/ps4p1PlotAdEquals180DegreesFig3}
\qquad
\includegraphics[scale=0.7]{../../figures/ece1229/ps4p1PlotAdEquals270DegreesFig4}
\caption{Plots of ....}
\label{fig:fourangles}
\end{center}
Leider verliere ich die subfig
Markierungen (a), (b), (c), (d), aber das kommt dem zumindest nahe.