subfig vs exercise: LaTeX エラー: 外部 par モードではありません

subfig vs exercise: LaTeX エラー: 外部 par モードではありません

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 エラー: 外部 par モードではありませんこの質問の場合、エラーはミニページでは 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}

4つの数字

間隔を手動で調整し、パッケージを使用すると、 + の外観captionsに近いものを得ることができます。figuresubfloat

\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}

4つの数字2

残念ながら、(a)、(b)、(c)、(d) のマーカーは失われましたsubfigが、少なくとも近いものです。

関連情報