虚线不打印(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 环境中使用 PrinterSafe。希望这对您有所帮助!

答案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 箭头

相关内容