Varias figuras por fila con etiqueta vertical

Varias figuras por fila con etiqueta vertical

Quiero hacer algo parecido a lo que se hace enestepapel:

ingrese la descripción de la imagen aquí

En particular estoy interesado en:

  1. Misma cantidad de imágenes por fila
  2. Usar una etiqueta vertical para categorizar cada fila
  3. Agregar un título
  4. Envolviendo la imagen (para que pueda haber texto en un lado)

He leído algunas preguntas (aquíyaquí) pero son muy diferentes a lo que quiero, ¿pueden ayudarme?

Intenté esto, pero recibo errores:

\usepackage{subcaption} % for subfigures

\begin{table}[ht]
\begin{tabular}{ccc}
\begin{subfigure}{0.4\textwidth}\includegraphics[width=0.3\columnwidth]{Figures/all_souls_000021.jpg}&
\begin{subfigure}{0.4\textwidth}\includegraphics[width=0.3\columnwidth]{Figures/all_souls_000091.jpg}&
\begin{subfigure}{0.4\textwidth}\includegraphics[width=0.3\columnwidth]{Figures/oxford_000177.jpg}\\
\end{tabular}
\caption{A table with figures}
\label{tab:mytable}
\end{table}

Error:

! Missing } inserted.<inserted text>} ...olumnwidth]{Figures/all_souls_000021.jpg}&

Respuesta1

Con una práctica interfaz:

\documentclass{article}
\usepackage{graphicx,xparse,booktabs}

\ExplSyntaxOn
\NewDocumentEnvironment{places}{mm}
 {% #1 is the desired width, #2 is the number of photos per line
  \setlength{\tabcolsep}{0pt} % no space between rows
  \dim_set:Nn \l_places_width_dim
   {
    (#1-\ht\strutbox-\dp\strutbox-2pt)/(#2)
   }
  \begin{tabular}{r @{\hspace{2pt}} *{#2}{c}}
 }
 {
  \end{tabular}
 }

\NewDocumentCommand{\place}{mm}
 {% #1 is the name of the place, #2 is the comma separated list of images
  \seq_set_from_clist:Nn \l_places_images_in_seq { #2 }
  \seq_set_map:NNn \l_places_images_out_seq \l_places_images_in_seq { \places_set_image:n {##1} }
  \seq_put_left:Nn \l_places_images_out_seq
   {
    \begin{tabular}{c}\rotatebox[origin=c]{90}{\strut#1}\end{tabular}
   }
  \seq_use:Nn \l_places_images_out_seq { & } \\ \addlinespace
 }

\dim_new:N \l_places_width_dim
\seq_new:N \l_places_images_in_seq
\seq_new:N \l_places_images_out_seq

\cs_new_protected:Nn \places_set_image:n
 {
  \makebox[\l_places_width_dim]
   {
    \begin{tabular}{c}
    \includegraphics[
      width=\l_places_width_dim,
      height=\l_places_width_dim,
      keepaspectratio,
    ]{#1}
    \end{tabular}
   }
 }

\ExplSyntaxOff

\begin{document}

\begin{figure}[htp]
\centering

\begin{places}{\textwidth}{5}
\place{Hertford}{
  example-image,
  example-image-a,
  example-image-b,
  example-image-a,
  example-image-b
}
\place{Pitt Rivers}{
  example-image,
  example-image-9x16,
  example-image-b,
  example-image-a,
  example-image-b
}
\end{places}

\caption{Images}

\end{figure}

\begin{figure}[htp]
\centering

\begin{places}{.5\textwidth}{5}
\place{Hertford}{
  example-image,
  example-image-a,
  example-image-b,
  example-image-a,
  example-image-b
}
\place{Pitt Rivers}{
  example-image,
  example-image-9x16,
  example-image-b,
  example-image-a,
  example-image-b
}
\end{places}

\caption{Images}

\end{figure}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Sospecho que te gusta tener algo como esto:

ingrese la descripción de la imagen aquí

pero no estoy seguro. El fragmento de código de la figura anterior es:

    \begin{figure}
\setlength\tabcolsep{1pt}
\settowidth\rotheadsize{Radcliffe Cam}
\begin{tabularx}{\linewidth}{l XXX }
\rothead{text 1}        &   \includegraphics[width=\hsize,valign=m]{image-1}
                        &   \includegraphics[width=\hsize,valign=m]{image-2}    
                        &   \includegraphics[width=\hsize,valign=m]{image-3}     \\  \addlinespace[2pt]
\rothead{Radcliffe Cam} &   \includegraphics[width=\hsize,valign=m]{image-4}
                        &   \includegraphics[width=\hsize,valign=m]{image-5}
                        &   \includegraphics[width=\hsize,valign=m]{image-6}
\end{tabularx}
    \caption{A table with figures}
\label{tab:mytable}
    \end{figure}

En el preámbulo de su documento se deben cargar (entre otros) los siguientes paquetes:

\usepackage[demo]{graphicx}
\usepackage{booktabs, makecell, tabularx}
\usepackage{rotating}
\usepackage[export]{adjustbox}

Apéndice: En los casos en los que desee tener imágenes en "bloque" más estrechas que el ancho del texto, deberá prescribir un ancho más estrecho tabularx(no en el entorno de la figura, esto no puede hacerlo en el camino como se muestra en el comentario):

\documentclass{article}
\usepackage[demo,   % in real document remove "demo" 
            export]{adjustbox}
\usepackage{rotating}
\usepackage{booktabs, makecell, tabularx}

\begin{document}
    \begin{figure}
\setlength\tabcolsep{1pt}
\settowidth\rotheadsize{Radcliffe Cam}
\setkeys{Gin}{width=\hsize}
\begin{tabularx}{0.8\linewidth}{l XXX }% <-- here is determined table width
\rothead{\centering
         text 1}        &   \includegraphics[valign=m]{image-1}
                        &   \includegraphics[valign=m]{image-2}    
                        &   \includegraphics[valign=m]{image-3}     \\  
    \addlinespace[2pt]
\rothead{Radcliffe Cam} &   \includegraphics[valign=m]{image-4}
                        &   \includegraphics[valign=m]{image-5}
                        &   \includegraphics[valign=m]{image-6}
\end{tabularx}
    \caption{A table with figures}
\label{tab:mytable}
    \end{figure}
\end{document}

Editar: Después de dos años y medio... :-) el fragmento de código del apéndice se amplía para completar MWE. También se realizan algunas pequeñas mejoras. Ahora MWE debería ser sencillamente comprobable.

información relacionada