以自动方式刷新包裹图形?

以自动方式刷新包裹图形?

这是同一页上有两个环绕图,出现排版错误吗?

考虑一下这个案例:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{wrapfig}

\def\a{One two three four five six. }
\def\b{\a\a Red green blue yellow white black. }
\def\c{\b\b\a\b\b\b\a\b\b}

\begin{document}

\begin{wrapfigure}{r}{0.4\textwidth}
\centering
    \includegraphics[width=0.38\textwidth]{none}
  \caption{Figure with little text}
  \label{hausdorffShapes}
\end{wrapfigure}
\b

\begin{wrapfigure}{l}{0.4\textwidth}
\centering
    \includegraphics[width=0.38\textwidth]{none}
  \caption{Another figure here}
  \label{hausdorffBadExample}
\end{wrapfigure}
\b\b\c

\end{document}

当我写电子练习的解决方案时,这种情况很常见 --- 有很多示意图,有时只有少量文字。不幸的是,由于出现警告,我得到了以下输出:

侧面的文字放错了位置

我可以像这样修复它(手动添加[3]\vspace{},通过在最后进行视觉编辑)。

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{wrapfig}

\def\a{One two three four five six. }
\def\b{\a\a Red green blue yellow white black. }
\def\c{\b\b\a\b\b\b\a\b\b}

\begin{document}

\begin{wrapfigure}[3]{r}{0.4\textwidth}
\centering
    \includegraphics[width=0.38\textwidth]{none}
  \caption{Figure with little text}
  \label{hausdorffShapes}
\end{wrapfigure}
\b

\vspace{4cm}

\begin{wrapfigure}{l}{0.4\textwidth}
\centering
    \includegraphics[width=0.38\textwidth]{none}
  \caption{Another figure here}
  \label{hausdorffBadExample}
\end{wrapfigure}
\b\b\c

\end{document}

这导致了正确的(至少在这种情况下;我承认不是那么好)文档:

看起来还不错,空间很大,但是嘿......

可以自动完成吗?我的意思是,\clearwrapfigure发出必要的垂直空间并重新启动正常段落形状的命令?

答案1

类似这样的事情似乎有效,您可能更喜欢使用它\mbox{}而不是\mbox{zz}但这表明它正在做什么。

在此处输入图片描述

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{wrapfig}

\def\a{One two three four five six. }
\def\b{\a\a Red green blue yellow white black. }
\def\c{\b\b\a\b\b\b\a\b\b}

\makeatletter
\def\clearwf{\par{\count@\c@WF@wrappedlines\zz}\par}

\def\zz{{%
\ifnum\count@>\@ne
\noindent\mbox{zz}\\%
\advance\count@\m@ne
\expandafter\zz
\else
\ifhmode\unskip\unpenalty\fi
\fi}}

\makeatother

\begin{document}

\begin{wrapfigure}{r}{0.4\textwidth}
\centering
    \includegraphics[width=0.38\textwidth]{none}
  \caption{Figure with little text}
  \label{hausdorffShapes}
\end{wrapfigure}
\b


\clearwf

\begin{wrapfigure}{l}{0.4\textwidth}
\centering
    \includegraphics[width=0.38\textwidth]{none}
  \caption{Another figure here}
  \label{hausdorffBadExample}
\end{wrapfigure}
\b\b\c

\end{document}

相关内容