17

Arrow heads added to arches with small radius look ugly, they do not look symmetrical. Here is an example :

    \documentclass{article}
    \usepackage{tikz}
    \usetikzlibrary{arrows.meta}

    \begin{document}
    \begin{tikzpicture}[>=stealth]
    \draw[->] (0,0) arc (00:290:.15cm);
    \end{tikzpicture}
    \end{document}

This gives an arrow like (screenshot of 24x magnification):

enter image description here

What I would like to have is something like:

enter image description here

Is it possible, how?

5
  • Take a look at Create curved TikZ single arrow for one way of doing this.
    – Jake
    Commented May 12, 2014 at 17:38
  • 1
    With TikZ 3.0.0 you might want to have a look to flexing and bending libraries (untested). Commented May 12, 2014 at 17:40
  • 1
    @ClaudioFiandrino it's enough to load bending. Could you turn your comment into an answer? Commented May 12, 2014 at 17:54
  • @GonzaloMedina: sure, I will do it tomorrow: this laptop is TikZ 3.0.0 free ;) Commented May 12, 2014 at 18:02
  • Hugely successful image of the problem. Google shows it, and you know the question is the one you want to ask.
    – dEmigOd
    Commented Mar 8, 2022 at 12:07

2 Answers 2

17

TikZ 3.0.0 provides a bending library for arrow tips placed on non-straight paths (see 16.3.8 Bending and Flexing on pgfmanual).

Loading the library makes flex=1 the default choice, but sometimes it worth to use custom values:

\documentclass[tikz,border=3pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,bending}

\begin{document}
\begin{tikzpicture}[>=stealth]
\draw[->] (0,0) arc (00:290:.15cm); % <= default flex=1
\end{tikzpicture}

\begin{tikzpicture}[>=stealth]
\draw[-{>[flex=0.75]}] (0,0) arc (00:290:.15cm); % <= custom flex, better output
\end{tikzpicture}

\end{document}

Output with flex=1:

enter image description here

Output with flex=0.75:

enter image description here

1
  • Notice that you can use this also in low-level pgf, as \pgfsetarrowsend{Latex[flex=0.75]} for example. Thanks
    – Rmano
    Commented Mar 7, 2019 at 11:19
6

You can add a small unseen straight line at the end - to correct the arrow direction. You can use the shorten option. Like this:

\documentclass{article}        
\usepackage{tikz}
\usetikzlibrary{arrows}

\begin{document}
\begin{tikzpicture}[>=stealth]
  \draw[->, shorten >=-1pt] (0,0) arc (00:290:.15cm);
\end{tikzpicture}
\end{document}

Arc with arrow

Edit: This answer was written before I knew about Bending and Flexing in the pgfmanual 16.3.8 that is specific for this purpose. See answer by @Claudio Fiandrino.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .