一部の写真にキャプションを付けた、フローティングしない写真グリッドを取得する方法

一部の写真にキャプションを付けた、フローティングしない写真グリッドを取得する方法

私はこれに本当に苦労しています... 約 5,000 枚の写真とテキストを含むブログから本を作成したいと考えています。ブログから取得した xml ファイルから有効な tex ファイルを作成するための小さなコンバータを作成しました。

写真の数が多いので、サイズを縮小して、最大 4 枚の写真が連続するようにします。次のテキスト要素が表示されるまでに、30 枚以上の写真がある場合もあります。その場合は、数ページに及ぶ写真用のグリッドが必要です。テキストには実際の参照がないため、画像はフローティングにしないでください。位置によって意味がわかるだけです。一部の写真にはキャプションも表示されます。

そこで、画像の表を生成しようとしましたが、「longtable」パッケージを使用しても、表を 1 ページ以上に拡張することはできないようです。そのため、写真の各行に表を作成しようとしました。進歩はしていますが、非フローティングの表形式ではキャプションが機能しません。

すでにいくつかのオプションを試しましたが、どれも私の要件をすべて満たしていないようです。

\begin{center}
\begin{tabular}[c]{cccc}
\includegraphics[width=0.24\textwidth]{D:/Blogfotos3/wpid-p8220063.jpg}\captionof{figure}{Testing}&
\includegraphics[width=0.24\textwidth]{D:/Blogfotos3/wpid-p8220070.jpg}&
\includegraphics[width=0.24\textwidth]{D:/Blogfotos3/wpid-p8220092.jpg}
\end{tabular}
\end{center}

このソリューションでは間隔はかなり良好に見えますが、キャプションは機能しません。

\begin{figure}[H]
\centering
\begin{subfigure}[t]{0.24\textwidth}\includegraphics[width=\textwidth]{D:/Blogfotos3/wpid-img_7064.jpg}\end{subfigure}
\begin{subfigure}[t]{0.24\textwidth}\includegraphics[width=\textwidth]{D:/Blogfotos3/wpid-dsc5085-edit.jpg}\caption{\centering Scorpionfish}\end{subfigure}
\begin{subfigure}[t]{0.24\textwidth}\includegraphics[width=\textwidth]{D:/Blogfotos3/wpid-dsc5195-edit.jpg}\caption{\centering Schnegge}\end{subfigure}
\begin{subfigure}[t]{0.24\textwidth}\includegraphics[width=\textwidth]{D:/Blogfotos3/wpid-dsc5236.jpg}\caption{\centering Noch ne Schnegge}\end{subfigure}
\end{figure}
\begin{figure}[H]
\centering
\begin{subfigure}[t]{0.24\textwidth}\includegraphics[width=\textwidth]{D:/Blogfotos3/wpid-dsc5178.jpg}\caption{\centering Orang-utan-Crab}\end{subfigure}
\begin{subfigure}[t]{0.24\textwidth}\includegraphics[width=\textwidth]{D:/Blogfotos3/wpid-dsc5022.jpg}\end{subfigure}
\begin{subfigure}[t]{0.24\textwidth}\includegraphics[width=\textwidth]{D:/Blogfotos3/wpid-dsc5139.jpg}\end{subfigure}
\begin{subfigure}[t]{0.24\textwidth}\includegraphics[width=\textwidth]{D:/Blogfotos3/wpid-dsc5251.jpg}\caption{\centering Ghostpipefish}\end{subfigure}
\end{figure}

ここではキャプションは機能しますが、配置に苦労しています。つまり、H は写真を正しい位置に配置させますが、未使用の空白がたくさんあり、本のページ数を 500 ページ以上にしたくないのです ;-)

私のニーズに合う他の提案やパッケージはありますか?

よろしくお願いします、フロ

答え1

次のようなページのリストが作成されます。

ここに画像の説明を入力してください

私は\captionofキャプションのあるものだけに番号を付ける方法をとりましたが、要件に応じてすべてに番号を付けたり、番号を付けなかったりするように簡単に調整できます。

\documentclass{article}
\usepackage{capt-of,graphicx}
\newcounter{pics}

\newcommand\z[2][]{%
  \ifnum\value{pics}=4\par\setcounter{pics}{1}\else\stepcounter{pics}\fi
  \ifhmode\unskip\hfill\fi
  \parbox[t]{.23\textwidth}{%
   \centering\includegraphics[width=\linewidth]{#2}\par
   \ifx\relax#1\relax\else\captionof{figure}{#1}\fi}}
\errorcontextlines100
\begin{document}
\raggedright
\setlength\parskip{.5cm}
\z[zzz]{example-image}\z[hmmm]{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-a}\z[wwwwheeee]{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-b}
\z{example-image}\z[this...]{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-b}
\z[a caption]{example-image}\z{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-b}
\z{example-image}\z[caption]{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-b}\z{example-image-b}
\z{example-image}\z{example-image-b}\z{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-a}
\z{example-image}\z{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-b}
\z{example-image}\z{example-image-a}\z{example-image-b}


\end{document}

関連情報