将列表和文本环绕在图形周围很麻烦。wrapfig
例如,该包无法做到这一点。我现在正在尝试使用\tcbsidebyside
带有选项的框blanker
来实现它。
问题是:有没有一种干净的方法可以将左侧第一行的基线与周围基线精确对齐?在下面的 MNWE 中,我想让框内的第一行与enumerate
标签对齐。
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{blindtext}
\begin{document}
\begin{enumerate}
\item First item
\item \tcbsidebyside[blanker, sidebyside adapt=right,
halign upper=justify, halign lower=right,
sidebyside align=top seam]{\blindtext}{<Some image>}
\end{enumerate}
\end{document}
答案1
您可以使用普通的 TeX 宏包insbox
和enumitem
包来实现这一点:后者允许您定义right margin
列表,并具有stop and resume
功能。前者定义\InsertBoxL
和\InsertBoxR
命令,它们接受两个强制参数:插入框之前下一段开头未触及的行数,以及要插入的对象。此外,一个可选参数(将在末尾给出)是补充短行的数量,以防 TeX 计算出错误的短行数。
例子:
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{graphicx}
\usepackage{enumitem}
\usepackage{blindtext}
\input{insbox}
\begin{document}
\InsertBoxR{4}{\fboxsep = 0pt\fbox{\includegraphics[width = 4cm]{lepursuit1}}}
\begin{enumerate}[rightmargin =4.5cm]
\item First item
\item \blindtext
\end{enumerate}
\begin{enumerate}[resume]
\item \blindtext
\end{enumerate}
\end{document}