図版の配置には,wrapfig.styによるwrapfigure環境を使っているのだが,たまに上手く行かないことがある。一番困るのは,図版はとっくに終わって,テキストの回り込み(短くなる部分)も終わっているのに,次の段落で,またもテキストが短くなってしまう現象だ。
前回これが発生したときは,wrapfigure環境の直後が垂直モードで,おそらくはそれが原因。そして \leavevmode を入れることで解決した。しかし,今回はそれとは違う。
原因は分からないものの,wrapfigureが行っている \parshape 関係の処理を強制的にリセットすれば何とかなるはず。検索したところ,同じ症状の人がいるようで,それを参考に以下のコードを挿入。
\makeatletter \@@par \ifnum\@@parshape=\z@ \let\WF@pspars\@empty \fi % reset `parshape' \global\advance\c@WF@wrappedlines-\prevgraf \prevgraf\z@ \ifnum\c@WF@wrappedlines< \tw@ \WF@finale \fi \makeatother
要するに,wrapfigureの内部マクロに直接アクセスしているわけで,いささか黒魔術的ではあるが,仕方ない。