Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Consider the following code:

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\begin{document}
  \tikz{\draw (0,0) -- plot[mark=o] (0.5,0) -- (1,0);}
\end{document}

It seems that the mark is not smoothly drawn:

Output

Using the smooth option does not have any effects since the interpolation algorithm only affects line drawing; here the distortion occurs on the marks. Any ideas?

share|improve this question
    
Welcome to TeX.sx! Could you please add a Minimal Working Example (MWE), that is a complete code that demonstrates the problem (incl any packages that are read). –  Peter Jansson Jan 6 '13 at 18:30
1  
@rkmylo maybe you could add \pgfuseplotmark{o} to your example, to show the difference (which i can see too). –  bloodworks Jan 6 '13 at 18:56
    
@zeroth you are wrong. zooming in does not remove the distortion. I have made a similar question here. In the link I pointed, observe the difference between the triangle mark in the actual plot and the corresponding triangle mark shown in the legend. Both, have been drawn using tikz/pgf and the one is smoothly drawn, while the other is not. –  rkmylo Jan 6 '13 at 19:07
    
@zeroth the image shown in my post is from TexShop viewer with 1000% zoom. I also tried Adobe Reader with 6400% zoom and the difference is still obvious. –  rkmylo Jan 6 '13 at 19:16
    
@zeroth to make the difference as clear as possible, take a look at these two pictures 1 2. Both, are shown in Adobe Reader with 6400% zoom. –  rkmylo Jan 6 '13 at 19:28

1 Answer 1

up vote 10 down vote accepted

You're using the wrong syntax for plotting a point: plot (0.5,0) is assumed to be a function, so it's evaluated several times (depending on the sample number), and several instances of your point are plotted on top of each other. Fixes: Either set samples at=1 to make sure your point is only plotted once, or use the official syntax for plotting points, which is plot coordinates {(0.5,0)}

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{plotmarks}
\begin{document}
  \tikz{\draw (0,0) -- plot[mark=o] (0.5,0) -- (1,0);}
  \tikz{\draw (0,0) -- plot[samples at={1}, mark=o] (0.5,0) -- (1,0);}
  \tikz{\draw (0,0) -- plot[mark=o] coordinates {(0.5,0)} -- (1,0);}
\end{document}
share|improve this answer
    
@Jake thank you very much. The coordinates keyword indeed solves the problem (enables anti-aliasing). –  rkmylo Jan 6 '13 at 19:43

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.