我使用 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
其中一篇相关文章似乎给出了答案。
我需要在 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