[tikz] 破線に添えた分数式の横棒が…

[tikz] 破線に添えた分数式の横棒が…

- 匿 名 の投稿
返信数: 7
お世話になります。

tikz/pgf で次のように破線につけた node に分数式を書くと、分数の横棒まで破線になります。

\documentclass[dvipdfmx]{article}
% \documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=2]
\draw[->] (-1,0.2) -- node[above]{$\frac{abc}{abc}$} (1,0.2);
\draw[->,dashed] (-1,0) -- node[below]{$\frac{abc}{abc}$} (1,0);
\end{tikzpicture}
\end{document}

これは (ptex + dvipdfmx) や xetex で生じ、pdftex や luatex では起きません。なので (x)dvipdfmxの問題なのだと思います。

場当たり的には node[below,solid] のようにnode に solid オプションを付ける事で回避できますが、もっと根本的な解決は出来ませんでしょうか。
匿 名 への返信

Re: [tikz] 破線に添えた分数式の横棒が…

- 岩崎 隆盛 の投稿
tikz pgf - Dashed draw with a node including a fraction - TeX - LaTeX Stack Exchange:

shapeは点線で表示したいときは、{\tikz[solid]/node{$\frac{abc}{abc}$};}でいいんじゃないかな?
岩崎 隆盛 への返信

Re: [tikz] 破線に添えた分数式の横棒が…

- 匿 名 の投稿
お返事ありがとうございます。ただ私も既に

> node[below,solid] のようにnode に solid オプションを付ける事で回避できますが、

と記述しておりますように、毎度 solid をつければよいことはわかっております。そういう「回避策」ではない方法、たとえば dvipdfmx.def を修正するなどの方法が知られていないかと思って投稿いたしました。
匿 名 への返信

Re: [tikz] 破線に添えた分数式の横棒が…

- Z. R. の投稿

あまり検証してないですが、プレアンブルで

\tikzset{every node/.style={execute at begin node=\pgfsetdash{}{0pt}}}

を実行すると(だからこれだけ書いたパッケージを読み込む等でもよい)、全てのノードのテキストの箱の先頭でダッシュパターンがリセットされ、結果的にこの問題が回避されると思います。

Z. R. への返信

Re: [tikz] 破線に添えた分数式の横棒が…

- 匿 名 の投稿
お返事ありがとうございます。

なるほど。これなら毎度nodeに手で solid を入れる必要は無いですね。node の text box の中に 更に \tikz をネストするような事を繰り返しても大丈夫でした。
Z. R. への返信

Re: [tikz] 破線に添えた分数式の横棒が…

- 岩崎 隆盛 の投稿
どうもです。
screenshot01.jpg \draw[->,dashed,red] (-1,0) -- node[draw,below=5pt]{${abc}\over4$} (1,0);
おお!
添付 screenshot02.jpg
岩崎 隆盛 への返信

Re: [tikz] 破線に添えた分数式の横棒が…

- 匿 名 の投稿
箱の枠が破線になるのも pdftex や luatex と同じ挙動ですね。
\draw[->,dashed,red] (-1,0) -- node[solid,draw,below=5pt]{${abc}\over4$} (1,0);
で箱の枠も実線になってくれますね。
匿 名 への返信

Re: [tikz] 破線に添えた分数式の横棒が…

- 岩崎 隆盛 の投稿
「node=箱」は、わかりやすいですね。
・dashed(点線、破線)やsolid(実線)は「線の種類(dash pattern)」
・「箱の枠」=「箱の形状(shape)」(rectangle,circle)
・-- node[below]は線の下方、-- node[above]は線の上方

箱の中(=テキストの箱(矩形))は、いろんなものが入るのだが、
そこで
・「分数」は、線を引いて、下に「1つ分の個数(分母)」、上に「個数(分子)」なんだけど。。。
などと考えて、頭がパンクしてしまいました。(^_^;)

だから、ZRさんの「テキストの箱(矩形)の先頭でダッシュパターンがリセット」で、スッキリしました。