목록과 그림이 나란히 있음

목록과 그림이 나란히 있음

여러 문서에서 목록과 그림을 나란히 놓아야 했습니다.

이를 위해 두 개의 미니페이지 환경을 사용하지만 목록이 너무 길기 때문에 이를 나누어 환경 외부에서 계속해야 합니다 minipage (연속 번호 매기기를 사용하므로 패키지의 주요 시리즈 활용 enumitem). 그러나 우리가 볼 수 있듯이 enumerate외부 환경 의 첫 번째 항목 minipage 과 환경 내부의 마지막 항목 간의 구분은 minipage다른 항목 간의 구분과 다릅니다.

그래서 내 질문은 다음과 같습니다. 모든 항목을 균등하게 분리할 수 있는 방법이 있습니까?

당연히 이 작업을 수행하는 다른 더 나은 방법에 대한 힌트를 주시면 감사하겠습니다.

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

여기에 이미지 설명을 입력하세요

답변1

간단히 이미지를 오버레이하여 사용할 수 있습니다 \rightskip. 아아, \hangindent아이템에는 적용되지 않는 것 같습니다.

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

씌우다

답변2

패키지를 사용하십시오 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}

스크린샷

그만큼wrapfig선적 서류 비치다음과 같은 주의 사항으로 시작합니다.

wrapfigure어떤 유형의 목록 환경이나 목록 환경 바로 앞이나 바로 뒤에 a를 지정하면 안 됩니다 . \par목록 사이에 빈 줄( )이 있으면 목록을 따라가도 괜찮습니다 .

그래서 목록 앞에 텍스트 한 줄을 추가했습니다.

그림이 실제로 목록 옆에 나타나도록 약간의 플레이를 할 수 있을 것 같지만 목록이 그림을 둘러싸는 첫 번째 또는 유일한 항목이 될 수는 없습니다.

답변3

텍스트/상자가 배치되는 방식은 \baselineskip두 개의 연속 기준선 사이 또는 \lineskip두 상자의 아래쪽 경계와 위쪽 경계 사이(둘 중 더 큰 쪽)의 최소 간격을 사용하는 것입니다.

상대적으로 일정한 간격을 유지하는 한 가지 방법은 첫 번째 미니페이지의 기준선을 아래쪽에 배치하고 두 번째 미니페이지의 기준선을 위쪽에 배치하는 것입니다.

또 다른 방법은 모든 미니페이지를 \strut로 시작하고 끝내는 것입니다.

열거 항목의 경우 두 미니페이지 사이에 너무 많은 공간을 추가하거나 생성합니다 \strut. \null대신 기본 미니페이지 사이에 약 12pt의 공간을 추가하면 됩니다( \strut마지막 미니페이지에 를 추가하는 경우 더 적습니다 \item). enumitem이 이 12pt를 어떻게 만들어내는지는 정확히 모르겠지만 이것이 최선의 추측입니다.

미니페이지 내부의 텍스트는 페이지 하단에 맞추기 위해 늘어나거나 줄어들지 않습니다. 또한 \raggedbottom어딘가에 를 사용하거나 \vfil던지거나 두 미니페이지를 공통 \vbox.

데모:

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

미니페이지 간격

관련 정보