여러 문서에서 목록과 그림을 나란히 놓아야 했습니다.
이를 위해 두 개의 미니페이지 환경을 사용하지만 목록이 너무 길기 때문에 이를 나누어 환경 외부에서 계속해야 합니다 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}