Wrapfigure 将图像放置在页面的错误一侧

Wrapfigure 将图像放置在页面的错误一侧

我使用 wrapfigure 将图像放置在文档的外边缘 (o)。大多数情况下,它似乎工作正常,但有时图像会放置在错误的一侧。

您可以在第 3 页上看到问题。第一张图片的空间位于左侧而不是右侧,并且图像似乎放置不正确。

我认为这与某人曾经帮助我编写的强制结束 wrapfigure 环境的命令有关:

\documentclass[10pt]{report}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage[latin]{babel}
\usepackage{blindtext}
\usepackage{forloop}    
\usepackage[twoside,a4paper,portrait,lmargin=10mm,rmargin=10mm,tmargin=14mm,bmargin=9mm]{geometry}  
\begin{document}
% make a command, wrapfill, that forces the end of a wrapfigure
\makeatletter
\def\wrapfill{\par
  \ifx\parshape\WF@fudgeparshape
    \nobreak
    \ifnum\c@WF@wrappedlines>\@ne
      \advance\c@WF@wrappedlines\m@ne
      \vskip\c@WF@wrappedlines\baselineskip
      \global\c@WF@wrappedlines\z@
    \fi
    \allowbreak
    \WF@finale
  \fi
}
\makeatother
\newcounter{ct}
\forloop{ct}{1}{\value{ct} < 12 }%
{
\begin{wrapfigure}{o}{0pt}
  \includegraphics[width=12cm,height=25mm,keepaspectratio=true]{test.jpg}
\end{wrapfigure}
\blindtext
\blindtext
\wrapfill
}
\end{document}

tex 文件:https://www.dropbox.com/s/30rg37nv2dkpc56/t1.tex
测试.jpg:https://www.dropbox.com/s/w5y7ys7twvpmi9c/test.jpg

我稍后会发布 PDF 链接。由于声誉 < 10,我只能包含 2 个链接。

我知道如何追查到底发生了什么事或者怎样解决它吗?

答案1

其中一篇相关文章似乎给出了答案。

Wrapfigure 似乎在下一页上创建了虚拟空间

我需要在 wrapfill 宏的末尾添加 \leavevmode:

\makeatletter
\def\wrapfill{\par
  \ifx\parshape\WF@fudgeparshape
    \nobreak
    \ifnum\c@WF@wrappedlines>\@ne
      \advance\c@WF@wrappedlines\m@ne
      \vskip\c@WF@wrappedlines\baselineskip
      \global\c@WF@wrappedlines\z@
    \fi
    \allowbreak
    \WF@finale
  \fi
\leavevmode
}
\makeatother

相关内容