Puedo usar el subfig
paquete en mis documentos, pero no dentro de un exercise
entorno:
\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}
Cuando el subflotador está integrado en un ejercicio, aparece el error "No en modo par externo", similar al de la pregunta! Error de LaTeX: no en modo par externo. Para esa pregunta, el error se debió a que no se permite un flotante en una minipágina.
Supongo que existe una restricción similar para los flotadores en entornos de ejercicio. Dada esta restricción, ¿hay alguna manera de organizar varias imágenes en grupos como con subfig pero de alguna manera que aún sea compatible con el ejercicio?
Respuesta1
Esto evita el uso de flotadores dentro del Exercise
ambiente.
\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}
Respuesta2
Parte de la respuesta se proporcionó en los comentarios (eliminar la figura y usarla includegraphics
directamente), pero se requiere trabajo adicional para recuperar las funciones disponibles en el entorno de la figura. En particular, se requiere el ajuste manual del espaciado y los subtítulos deben realizarse de manera diferente.
En cuanto al espaciado, de forma predeterminada, el espaciado no parece elegirse de forma inteligente includegraphics
y parte de mis gráficos pueden terminar fuera del borde de la página:
\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}
Con el espaciado ajustado manualmente y usando el captions
paquete, puedo obtener algo parecido a un aspecto figure
+ :subfloat
\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}
Desafortunadamente, pierdo los subfig
marcadores (a), (b), (c), (d), pero al menos esto está cerca.