# Why do TikZ Bézier curves print as rectangles when part of a closed path?

When we compile this code:

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
% Some variants of closing the path
\coordinate (a) at (0,0) ;
\coordinate (b) at (2,0) ;
\draw[] (a) .. controls +(0,1) and +(0,1) .. (b) -- (a);

\coordinate (c) at (3,0) ;
\coordinate (d) at (5,0) ;
\draw[] (c) .. controls +(0,1) and +(0,1) .. (d) -- cycle;

\coordinate (e) at (6,0) ;
\coordinate (f) at (8,0) ;
\draw[] (e) .. controls +(0,1) and +(0,1) .. (f) -- (e) -- cycle;

% Without closing the path
\coordinate (g) at (0,-1) ;
\coordinate (h) at (2,-1) ;
\draw[] (g) .. controls +(0,1) and +(0,1) .. (h);

\coordinate (i) at (3,-1) ;
\coordinate (j) at (5,-1) ;
\draw[] (i) .. controls +(0,1) and +(0,1) .. (j)
(j) -- (i);
\end{tikzpicture}
\end{document}


This is the output we expect and get using pdflatex (TeXLive 2014, TikZ 3.0.0):

When we print the PDF, however, we get this:

The same happens when converting the PDF with pdftops (that is how I obtained the image).

We would certainly expect Bézier curves to print in all cases. What happens here and how do we work around or fix this?

• I've not tried to print it, but compiled with pdflatex (MikTeX) and converted to ps with pdf2ps, the result is correct. – Ignasi Dec 11 '14 at 17:52
• Looks like a driver or PDF viewer problem though. That's very interesting to see. – percusse Dec 11 '14 at 18:05
• Using TeXLive 2014 I can replicate the problem when viewing a postscript file generated using pdftops with both evince and gv. However, pdf2ps produces a postscript file which renders correctly in both viewers. – Mark Wibrow Dec 11 '14 at 21:38
• I get the same results as @MarkWibrow except that my viewer is Okular. pdftops is provided by poppler (at least on my system) while pdf2ps is part of ghostscript. Something to do with the cairo dependency? – cfr Dec 11 '14 at 22:56

Following the comments above, I have confirmed that pdf2ps produces correct PS files. Therefore, pdftops seems to have a bug, which cfr has reported.