minipage 中的 Wrapfigure 效果实现 itemize 的垂直分隔

minipage 中的 Wrapfigure 效果实现 itemize 的垂直分隔

我想在 enumerate 环境中使用 wrapfigure。例如,

\documentclass{article}
\usepackage{multicol, lipsum, graphicx, wrapfig}
\usepackage{enumitem}
\setlist{leftmargin=*}

\begin{document}
\begin{multicols}{2}
\lipsum[1-4]
\lipsum[5][1-6]
\begin{itemize}
    \begin{minipage}[t]{\linewidth}
    \begin{wrapfigure}{r}{60pt}
        \includegraphics[width=60pt, height=30pt]{example-image} 
    \end{wrapfigure}
    \item \lipsum[5][7]
    \begin{itemize}
        \item \lipsum[5][8-9]
    \end{itemize}
    \end{minipage}
    \begin{itemize}
        \item \lipsum[5][10]
    \end{itemize}
    \begin{minipage}[t]{\linewidth}
    \begin{wrapfigure}{r}{50pt}
        \includegraphics[width=50pt, height=10pt]{example-image} 
    \end{wrapfigure}
    \item \lipsum[5][11-16]
    \end{minipage}
    \item \lipsum[5][17-18]
\end{itemize}
\lipsum[5][19-]
\lipsum[6-7]
\lipsum[1]
\end{multicols}\clearpage
\begin{multicols}{2}
\lipsum[1-4]
\lipsum[5][1-6]
\begin{itemize}
    \item \lipsum[5][7]
    \begin{itemize}
        \item \lipsum[5][8-9]
        \item \lipsum[5][10]
    \end{itemize}
    \item \lipsum[5][11-16]
    \item \lipsum[5][17-18]
\end{itemize}
\lipsum[5][19-]
\lipsum[6-7]
\lipsum[1]
\end{multicols}
\end{document}

(参见这里) 但是,似乎 minipage 影响(放大)了 itemize 环境顶部和底部的跳转:

在此处输入图片描述

有没有什么办法可以减少这些多余的分隔,而不用逐个修改它们(例如通过 \vspace)?

答案1

首先,minipage应该放在后面\item。第一个wrapfig是通过简单地减小文本宽度来替换的。第二个wrapfig是通过\hangindent与图像重叠来替换的。

为了更精细的垂直放置,请使用\raisebox而不是valign

\documentclass{article}
\usepackage[export]{adjustbox}% for [valign=...]
\usepackage{multicol, lipsum, graphicx, wrapfig}
\usepackage{enumitem}
\setlist{leftmargin=*}

\begin{document}
\begin{multicols}{2}
\lipsum[1-4]
\lipsum[5][1-6]
\begin{itemize}
    \item \lipsum[5][7]
    \begin{itemize} 
      \item \begin{minipage}[t]{\dimexpr \linewidth-60pt-\columnsep}
        \lipsum[5][8-9]
        \end{minipage}\hfill\includegraphics[width=60pt, height=30pt,valign=t]{example-image}
        
      \item \begin{minipage}[t]{\linewidth}
        \hangindent=-\dimexpr 50pt+\columnsep\relax
        \hangafter=-2
        \lipsum[5][10]
        \end{minipage}\llap{\includegraphics[width=50pt, height=10pt, valign=t]{example-image}}
    \end{itemize}
    \item \lipsum[5][11-16]
    \item \lipsum[5][17-18]
\end{itemize}
\lipsum[5][19-]
\lipsum[6-7]
\lipsum[1]
\end{multicols}\clearpage
\begin{multicols}{2}
\lipsum[1-4]
\lipsum[5][1-6]
\begin{itemize}
    \item \lipsum[5][7]
    \begin{itemize}
        \item \lipsum[5][8-9]
        \item \lipsum[5][10]
    \end{itemize}
    \item \lipsum[5][11-16]
    \item \lipsum[5][17-18]
\end{itemize}
\lipsum[5][19-]
\lipsum[6-7]
\lipsum[1]
\end{multicols}
\end{document}

相关内容