我现有如下代码
\documentclass{ctexart}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{enumitem}
\usepackage{enumitem}
\setenumerate[1]{label={\sf\arabic*}.,labelwidth=1em,labelsep=0.2em,leftmargin=*,itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=0pt}
\usepackage{wrapfig2}
\begin{document}
测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
\WFclear
\begin{wrapfigure}[6]{r}
\includegraphics[scale=0.3]{example-image-a}
\end{wrapfigure}
\mbox{}
\begin{enumerate}
\item 字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文
\item 字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字
\end{enumerate}
测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
\WFclear
\begin{wrapfigure}[7]{r}
\includegraphics[scale=0.3]{example-image-a}
\end{wrapfigure}
\mbox{}
\begin{enumerate}[before=\vspace{-12pt}]
\item 字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文
\item 字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字
\end{enumerate}
\end{document}
图文混排的第一行上方会有不必要的空白,为了消灭空白,我用了before=vspace{-12pt},但这个是估计的,精确值如何确定呢?
这是由于你用了 \mbox{}
制造了一个空行。行间距为 \baselineskip
。设置 before=\vspace{-\baselineskip}
即可。
\documentclass{ctexart}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{enumitem}
\usepackage{enumitem}
\setenumerate[1]{label={\sf\arabic*}.,labelwidth=1em,labelsep=0.2em,leftmargin=*,itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=0pt}
\usepackage{wrapfig2}
\begin{document}
测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
\WFclear
\begin{wrapfigure}[7]{r}
\includegraphics[scale=0.3]{example-image-a}
\end{wrapfigure}
\mbox{}
\begin{enumerate}[before=\vspace{-\baselineskip}]
\item 字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文
\item 字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字文字
\end{enumerate}
\end{document}
明白了!感谢大佬!