Я могу использовать subfig
пакет в своих документах, но не в exercise
среде:
\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}
Когда подплавающий элемент встроен в упражнение, я получаю ошибку «Не во внешнем режиме», похожую на ошибку в вопросе! Ошибка LaTeX: не в режиме внешнего пар.. В этом вопросе ошибка была в том, что плавающий элемент не допускается на мини-странице.
Я предполагаю, что есть похожее ограничение для float в среде упражнений. Учитывая это ограничение, есть ли способ организовать несколько изображений в группы, как в subfig, но каким-то образом, который все еще совместим с упражнениями?
решение1
Это позволяет избежать использования поплавков внутри Exercise
среды.
\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}
решение2
Часть ответа была предоставлена в комментариях (удаление рисунка и непосредственное использование includegraphics
), но требуется дополнительная работа для восстановления функций, доступных в среде рисунка. В частности, требуется ручная настройка интервалов, а подписи должны быть сделаны по-другому.
Что касается интервала, то по умолчанию он, похоже, не выбирается разумно includegraphics
, и часть моих графиков может оказаться за краем страницы:
\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}
Отрегулировав интервалы вручную и используя пакет captions
, я могу получить что-то близкое к виду 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}
К сожалению, я потерял subfig
маркеры (a), (b), (c), (d), но это, по крайней мере, близко к тому.