破線が印刷されない (TikZ)

破線が印刷されない (TikZ)

破線を含むグラフィックがいくつかあります。PDF ではすべてが正しく表示されます。ただし、印刷すると破線が完全に消えてしまいます。これを防ぐにはどうすればよいですか?

\begin{tikzpicture}
\node (a) at (0,1) [vertex] {};
\node (b) at (0.7,1.7) [vertex] {};
\node (c) at (1.7,1.7) [vertex] {};
\node (d) at (2.4,1) [vertex] {};
\node (e) at (1.7,0.3) [vertex] {};
\node (f) at (0.7,0.3) [vertex] {};
\draw (a) -- (b);
\draw (b) -- (c);
\draw (c) -- (d);
\draw (d) -- (e);
\draw (e) -- (f);
\draw [dashed] (f) -- (a);
\end{tikzpicture}

答え1

私の仕事には、印刷用に大量の PDF を電子メールで送信することが含まれるため、「プリンター ドライバーを更新する」という解決策はあまり役に立ちません。

しかし、私が発見したのは、点線や破線では印刷を拒否する、点線または破線正弦波振幅がゼロであっても、問題なく表示されます。そこで、次のコードをドキュメントの先頭に記述します。

\usetikzlibrary{snakes}
\tikzstyle{printersafe}=[snake=snake,segment amplitude=0 pt]

次に、コード内のすべての点線にスタイルとして [printersafe] を追加します。例:

\draw [densely dotted,printersafe] (0,-6) -- (10,-6);

これらの線は、元の問題を経験した TA によって印刷された場合でも、問題なく表示されます。

答え2

そこで、最近この問題に遭遇し、@Jonah の解決策を見つけました。問題は、それが現在の tikz の動作と実際には一致しないため、次の変更を加えて、このコードをより最新のものにするということです。

\usetikzlibrary{decorations.pathmorphing}
\tikzstyle{printersafe}=[decoration={snake,amplitude=0pt}]

これにより、tikz-cd 環境内でも printsafe を使用できるようになります。お役に立てば幸いです。

答え3

新しいプリンターを使用すると問題は解決したので、どうやらポールが示唆したようにドライバーの問題だったようです。

答え4

別の解決策:独自の破線を描く

Tikzは、必ずしも期待通りに動作するとは限らないようです。特に、次のようなものedge[transform canvas={xshift=4}]や、丸い矢印のようなカスタム関数と組み合わせると、この郵便受けこのような場合、プリンターが通常の破線を印刷しないことがあります。そのため、回避策を使用する必要があります。

もう一つの答えはプリンターセーフ私にはうまくいきませんでした。また、他の人に PDF を送信したいので、その人のプリンターを更新できません。常に機能するソリューションが必要でした。

foreach通常の線を使ったループを使用して破線を模倣する回避策を見つけました。

\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{figure}[h!]
\begin{tikzpicture}[every path/.style={>=latex}]

% Normal dashed line
\draw[->,thick,black,dashed] (0,1) -- (4,1) node[anchor=west] {Normal dashed line};

% Specify dashed line starting coordinate and length
\def\x{0}; \def\y{0}; \def\length{4} \def\N{19}; 
% Draw dashed line using normal lines
\pgfmathsetmacro{\step}{(0.5+1/(4*\N))*\length/\N}; \pgfmathparse{\N-1};
\foreach \i in {0,...,\pgfmathresult} {\draw[thick,black] (\x+2*\i*\step,\y) -- (\x+2*\i*\step+\step,\y);}; 
\draw[->,thick,black] (\x+\length,\y) -- (\x+\length+0.01,\y) node[anchor=west] {Custom dashed line};

\end{tikzpicture}
\end{figure}
\end{document}

これは、複数の線を次々に描画することで、通常の破線を模倣するだけです。パラメータは\x、開始 X 座標、\y線の Y レベル、\length線の座標の長さ、\Nおよびストライプの数です。

提供されている例では、左から右への水平線のみが描画されますが、コードは簡単に調整して、他の破線 (垂直線、右から左など) を描画できます。

この解決策では、プリンタがする通常の線は印刷されますが、破線は表示されません (何らかの理由で)。

PDF出力:

pdf 矢印

関連情報