Una lista y una figura al lado de la otra

Una lista y una figura al lado de la otra

En varios documentos tengo que poner lado a lado una lista y una figura.

Utilizo dos entornos de minipáginas para eso, pero como la lista es demasiado larga, necesito dividirla y continuar fuera del minipage entorno (con numeración continua, de ahí la utilización de series de claves del enumitempaquete). Pero, como podemos ver, la separación entre el primer elemento del enumerateentorno fuera de minipage y el último elemento dentro de minipagees diferente de la separación entre cualquier otro elemento.

Entonces, mi pregunta es: ¿Hay alguna forma de asegurar una separación igual entre todos los elementos?

Naturalmente, agradezco cualquier sugerencia sobre una forma diferente y mejor de hacer esto.

\documentclass{article}

\usepackage{enumitem} 
\setlist[enumerate,1]{leftmargin=*,label=\arabic*.}
\setlist[enumerate,2]{leftmargin=*,itemsep=.3cm,label=(\alph*)}

\begin{document}

\begin{enumerate}
\item Algum texto com referencia a uma figura.

\begin{minipage}[t]{0.55\linewidth}
 Uma lista.
\begin{enumerate}[series=exercicio]
 \item primeiro item
 \item segundo item
 \item terceiro item
\end{enumerate}
\end{minipage}\hfill
\begin{minipage}[t][2cm][c]{0.35\linewidth}
 \centering
 \rule{50pt}{50pt}
\end{minipage}
\begin{enumerate}[resume*=exercicio]
 \item quarto item com bastante texto. mais texto e mais texto e mais
  texto
 \item quinto item
\end{enumerate}

\end{enumerate}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta1

Simplemente podrías superponer la imagen y usarla \rightskip. Por desgracia, \hangindentno parece funcionar con el artículo.

\documentclass{article}
\usepackage{mwe}
\usepackage{enumitem} 
\setlist[enumerate,1]{leftmargin=*,label=\arabic*.}
\setlist[enumerate,2]{leftmargin=*,itemsep=.3cm,label=(\alph*)}

\begin{document}

\begin{enumerate}
\item Algum texto com referencia a uma figura.

Uma lista.\hfill\llap{\raisebox{-\height}[0pt][0pt]{%
\begin{minipage}[t][2cm][c]{0.3\textwidth}% \linewidth is constantly changing here
 \centering
 \rule{50pt}{50pt}
\end{minipage}}}
\begin{enumerate}[series=exercicio]
 \par\rightskip=0.3\textwidth
 \item primeiro item.  Just to demonstrate the effect of \verb$\rightskip$ I am going to add more text here.
 \item segundo item.
 \par\rightskip=0pt
 \item terceiro item.
 \item quarto item com bastante texto. mais texto e mais texto e mais
  texto
 \item quinto item
\end{enumerate}

\end{enumerate}

\end{document}

cubrir

Respuesta2

Utilice el paquete wrapfig:

\documentclass{article}

\usepackage{enumitem,wrapfig}
\usepackage{graphicx}

\begin{document}

\begin{wrapfigure}{r}{0.5\textwidth}
  \begin{center}
     \rule{50pt}{50pt}
  \end{center}
\end{wrapfigure}

Algúm texto que não é parte de uma lista.

\begin{enumerate}
\item Algum texto com referencia a uma figura.

 Uma lista.
  \begin{enumerate}
   \item primeiro item
   \item segundo item
   \item terceiro item
   \item quarto item com bastante texto. mais texto e mais texto e mais texto
   \item quinto item
  \end{enumerate}
\end{enumerate}

\end{document}

Captura de pantalla

Elwrapfigdocumentacióncomienza con esta precaución:

No debe especificar a wrapfigureen ningún tipo de entorno de lista ni inmediatamente antes o inmediatamente después de uno. Está bien seguir una lista si hay una línea en blanco ( \par) entre ellas.

Por eso agregué una línea de texto antes de la lista.

Supongo que puedes jugar un poco para que la figura aparezca al lado de tus listas, pero las listas no pueden ser las primeras ni las únicas cosas que rodean la figura.

Respuesta3

La forma en que se distribuyen el texto/cuadros es utilizar un espacio mínimo \baselineskipentre dos líneas de base consecutivas, o \lineskipentre los límites inferior y superior de dos cuadros (lo que sea mayor).

Una forma de lograr un espaciado relativamente constante es colocar la línea base de la primera minipágina en la parte inferior y la línea base de la segunda minipágina en la parte superior.

Otra forma es comenzar y finalizar cada minipágina con un \strut.

En el caso de enumitem, agregar \struto \nullproduce demasiado espacio entre las dos minipáginas. En su lugar, solo necesita agregar aproximadamente 12 puntos de espacio entre las minipáginas predeterminadas (menos si agrega \struta la última \item). No estoy seguro exactamente de cómo se le ocurre a enumitem este 12 puntos, pero esta es mi mejor suposición.

Cabe señalar que el texto dentro de una minipágina no se estira ni se comprime para caber en la parte inferior de la página. También necesitarás usar \raggedbottomo incluir un archivo en \vfilalgún lugar, o colocar ambas minipáginas dentro de un archivo \vbox.

Manifestación:

\documentclass{article}
\usepackage{paracol}
\usepackage{enumitem}

\begin{document}
\begin{paracol}{2}

\noindent
\begin{minipage}{\columnwidth}
\begin{enumerate}[series=test1]
\item One
\item Two
\end{enumerate}
\end{minipage}
\begin{minipage}{\columnwidth}
\begin{enumerate}[resume*=test1]
\item Three
\item Four
\end{enumerate}
\end{minipage}
\switchcolumn

\noindent
\begin{minipage}{\columnwidth}
\begin{enumerate}[series=test2]
\item One
\item Two\strut
\end{enumerate}
\end{minipage}
\vskip\partopsep\vskip\itemsep\vskip\parsep\noindent
\begin{minipage}{\columnwidth}
\begin{enumerate}[resume*=test2]
\item Three
\item Four
\end{enumerate}
\end{minipage}
\bigskip
\switchcolumn*

\noindent
\begin{minipage}{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\begin{minipage}{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\switchcolumn

\noindent
\begin{minipage}[b]{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\begin{minipage}[t]{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\bigskip
\switchcolumn*

\noindent
\begin{minipage}{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\begin{minipage}{\columnwidth}
We need at least two lines here in order for this to work, so I hope that this is enough.
\end{minipage}
\switchcolumn

\noindent
\begin{minipage}{\columnwidth}
\strut
We need at least two lines here in order for this to work, so I hope that this is enough.
\strut
\end{minipage}
\begin{minipage}{\columnwidth}
\strut
We need at least two lines here in order for this to work, so I hope that this is enough.
\strut
\end{minipage}
\bigskip
\switchcolumn*


\end{paracol}
\end{document}

espaciado de minipágina

información relacionada