Я использую 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 позже. Я могу включить только 2 ссылки, так как репутация < 10.
Есть идеи, как я могу отследить, что происходит, или как это исправить?
решение1
в одной из статей по теме, по-видимому, был ответ.
Wrapfigure, по-видимому, создает фиктивное пространство на следующей странице
Мне нужно было добавить \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