wrapfigでうまくtikzの図が挿入できない

wrapfigでうまくtikzの図が挿入できない

- Edward Elric の投稿
返信数: 5
¥begin{wrapfigure}{r}{40mm}
¥vspace*{-¥intextsep}
 ¥begin{tikzpicture}
  ¥draw[thick] (0,-1)--(0.8,1.5)--(3,-1.2)--cycle nodeat(-0.3,-1){¥rm A}nodeat(0.8,1.7){¥rm O}nodeat(3.2,-1.4){¥rm B};
¥end{tikzpicture}
¥end{wrapfigure}

{¥huge ¥bf 2} 三角形OABにおいて$¥rm OA=3$,$¥rm OB=4$,$¥overrightarrow{¥rm OA}¥cdot ¥overrightarrow{¥rm OB}=7$とする.また,BからOAに下ろした垂線の足をPとおく.このとき$¥overrightarrow{¥rm OP}$を$¥overrightarrow{¥rm OA}$を使って表せ.

と入力すると、文章と重なってうまく出力されませんでした。どうすればよいでしょうか。
Edward Elric への返信

Re: wrapfigでうまくtikzの図が挿入できない

- 和田 勇 の投稿
インタネットを tikz wrapfigure で検索すると以下のような情報に巡り会いました。

http://tex.stackexchange.com/questions/125178/how-can-i-make-tikzpicture-flow-smoothly-around-text

どうやら {40mm} としているところを {0pt} に、本文の最初に \noindent のようにすると良いかと思います。

提示された本文の量では noindent しなくても図は重ならないのですが wrap していません。もう少し量が多くなると本文と図が重なりますので noindent で本文を始めてください。


\begin{wrapfigure}{r}{0pt}
 \begin{tikzpicture}
...
\end{wrapfigure}

\noindent{\huge \bf 2}
Edward Elric への返信

Re: wrapfigでうまくtikzの図が挿入できない

- 本田 知亮 の投稿
そもそもtikzに関係なく,
回り込みできないんじゃないでしょうか

例:
\documentclass[a4j]{jarticle}
\usepackage{wrapfig}
\begin{document}
\begin{wrapfigure}{r}{40mm}
\vspace*{10mm}
\end{wrapfigure}
%%%\noindent
{\huge \bf 2} 三角形OABにおいて$\rm OA=3$,$\rm OB=4$,$\overrightarrow{\rm OA}\cdot \overrightarrow{\rm OB}=7$とする.また,BからOAに下ろした垂線の足をPとおく.このとき$\overrightarrow{\rm OP}$を$\overrightarrow{\rm OA}$を使って表せ.
\end{document}

\noindentの有無で回り込んだり,しなかったりしませんでしょうか.
この動作はおかしいように思います.

stackexcnangeの方はまだみてないので
どういう議論かわかりませんが
当方,TeXLive2015のwrapfig.styで動かしています.

ざっくりとしか追いかけてないですが,
このwrapfig.styには\WF@boxというのがあって,
これが,\noindentの有無で中身が
変わってしまってるようで
\noindentがないと回り込みが始まる前に
終わったことになってるように見えます.
\WF@@everyparというのを中身をみると
そんな感じをうけます.

ところで,LaTeX2eのこの間の怒涛の更新で
float回りが変わってる部分があったと思いますが,
そこらへんの影響はどうなんでしょうね
wrapfig.styのドキュメントには
float.styの併用の注意があるようです.

Edward Elric への返信

Re: wrapfigでうまくtikzの図が挿入できない

- Z. R. の投稿

wrapfigure 直後の段落が { で始まっているのがまずいようです。

\documentclass[a4paper]{article}
\usepackage{wrapfig}
\begin{document}
\begin{wrapfigure}{r}{40mm}
\vspace*{-\intextsep}
\rule{3.5cm}{2.9cm}
\end{wrapfigure}
{X} % ←これがあると失敗する
Blah blah blah blah blah blah.
Blah blah blah blah blah blah.
Blah blah blah blah blah blah.
Blah blah blah blah blah blah.
\end{document}

取りあえず、段落の先頭に \mbox{} を入れれば回避できるようです。

\mbox{}% 先頭に空ボックスを入れる
{X} %
Blah blah blah blah blah blah.

なぜ先頭が { だとダメなのか、詳細は調べてないですが、\everypar の絡みだとよくある(よくない)話ですね。

Z. R. への返信

Re: wrapfigでうまくtikzの図が挿入できない

- 本田 知亮 の投稿
>wrapfigure 直後の段落が { で始まっているのがまずいようです

うわー・・\aftergroupとか
\afterasignmentとかの類ですか,
全然思いもよらなかったです.


#実際,\everyparとか使うと
#よくミスるのは否定できませんです(火暴)
本田 知亮 への返信

Re: wrapfigでうまくtikzの図が挿入できない

- 本田 知亮 の投稿
>うわー・・\aftergroupとか
>\afterasignmentとかの類ですか,

ちがいますね・・・グループによる局所化ですね

{\bf 1}だと

{%%グループ開始
\everyparの中身%%回り込みの設定
1%%段落開始
}%%グループ終了

このグループ終了のため回り込みの設定が消えてしまう

という流れでしょうね,たぶん.