我正在使用 wrapfigure 將圖像放置在文件的外 (o) 邊緣。大多數情況下,它似乎工作正常,但有時圖像會放置在錯誤的一側。
您可以在第 3 頁上看到問題。
我認為這與某人幫助我編寫的一個命令有關,該命令強制結束了包裝圖環境:
\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
一篇相關文章似乎給了答案。
我需要將 \leavevmode 新增到 wrapfill 巨集的末尾:
\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