1

My goal is to draw a line in different colors and not start a new line, so this produces a line and is working:

\documentclass[tikz=true,border=0pt]{standalone}
\begin{document}%
\begin{tikzpicture}[x=1mm, y=1mm]%
    \draw [line width=5mm, color=green] (0,0) -- +(5,0) {};
    \draw [line width=5mm, color=red] (5,0) -- +(5,0) {};
    \draw [line width=5mm, color=green] (10,0) -- +(5,0) {};
    \draw [line width=5mm, color=red] (15,0) -- +(5,0) {};
\end{tikzpicture}%
\end{document}

It would be nice not to start a new line...like this:

...
    \draw [line width=5mm, color=green] (0,0) -- +(5,0) -- [color=red] - +(5,0) -- [color=blue] - +(5,0) {};
...

Cannot find an approach. It is just to ease things a bit.

  • 1
    According to this webpage, you cannot change the color option along path, you have to split your path as you did in the first version of the code. – KersouMan Oct 23 '19 at 7:15
  • You could define a pic-style that is a line with varying colours, but behind the scenes it would still work using multiple paths. – Skillmon Oct 23 '19 at 7:17
  • All right - would be easier sometimes. Thank you. – texpiet Oct 23 '19 at 7:33
3

You can use postaction with dash pattern.

\documentclass[tikz=true,border=0pt]{standalone}
\begin{document}%
\begin{tikzpicture}[x=1mm, y=1mm]%
    \draw [line width=5mm, color=red,postaction={draw=green,dash pattern=on
    5mm off 5mm}] (0,0) -- +(20,0) {};
\end{tikzpicture}%
\end{document}

enter image description here

The white gaps at the end come from the requirement that the bounding box is also correct if you use line cap=rect. You need the larger bounding box if the path is not just a horizontal line since otherwise parts would get clipped away.

  • If you do not like these white gaps, use \documentclass[tikz=true,border=0pt]{standalone} \begin{document}% \begin{tikzpicture}[x=1mm, y=1mm]% \clip (0,-2.5) rectangle ++ (20,5); \draw [line width=5mm, color=red,postaction={draw=green,dash pattern=on 5mm off 5mm}] (0,0) -- +(20,0) {}; \end{tikzpicture}% \end{document}. – user194703 Oct 23 '19 at 11:37
  • also a nice approach. thank you @Schrödinger's cat! This explains the gaps – texpiet Oct 23 '19 at 11:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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