1

I wanted to draw something :

\begin{center}
  \begin{tikzpicture}[
      >=stealth,
      bullet/.style={
        fill=black,
        circle,
        inner sep=1pt
      },
      projection/.style={
        ->,
        thick,
        shorten <=2pt,
        shorten >=2pt
      },
    ]

    \draw (0, 0) circle [x radius=1, y radius=1.7];
    \node [bullet, label=left:\(   a  \)] (a) at (0,1.2) {};
    \node [bullet, label=left:\(   b  \)] (b) at (0,0.4) {};
    \node [bullet, label=left:\(   c  \)] (c) at (0,-0.4) {};
    \node [bullet, label=left:\(   d  \)] (d) at (0,-1.2) {};
    \node[font=\large] (E) at (0, 2) {\(E\)};

    \begin{scope}[xshift=3.5cm]
      \draw (0, 0) circle [x radius=1, y radius=1.7]; 
      \node [bullet, label=right:\(    \tilde{a}     \)] (w) at (0,1.2) {};
      \node [bullet, label=right:\(    \tilde{b}     \)] (x) at (0,0.4) {};
      \node [bullet, label=right:\(    \tilde{c}     \)] (h) at (0,-0.4) {};
      \node [bullet, label=right:\(    \tilde{d}     \)] (v) at (0,-1.2) {};
      \node[font=\large] (F) at (0, 2) {\(F\)};
    \end{scope}

    \draw [projection] (a) -- (x);
    \draw [projection] (b) -- (h);
    \draw [projection] (c) -- (v);
    \draw [projection] (d) -- (x);
  \end{tikzpicture}
\end{center}

I'm already really proud of myself to succeed in doing this, but now I wanted to draw smaller arrows tips (because it doesn't look nice).

Do you know how ?

I'm struggling. I tried to change a few parameters but it is either telling me it don't know what I'm doing or that it don't change anything. I'm surely doing something wrong.

2

This is very simple with the arrows.meta library.

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
  \begin{tikzpicture}[
      >={Stealth[scale=0.5]},
      bullet/.style={
        fill=black,
        circle,
        inner sep=1pt
      },
      projection/.style={
        ->,
        thick,
        shorten <=2pt,
        shorten >=2pt
      },
    ]

    \draw (0, 0) circle [x radius=1, y radius=1.7];
    \node [bullet, label=left:\(   a  \)] (a) at (0,1.2) {};
    \node [bullet, label=left:\(   b  \)] (b) at (0,0.4) {};
    \node [bullet, label=left:\(   c  \)] (c) at (0,-0.4) {};
    \node [bullet, label=left:\(   d  \)] (d) at (0,-1.2) {};
    \node[font=\large] (E) at (0, 2) {\(E\)};

    \begin{scope}[xshift=3.5cm]
      \draw (0, 0) circle [x radius=1, y radius=1.7]; 
      \node [bullet, label=right:\(    \tilde{a}     \)] (w) at (0,1.2) {};
      \node [bullet, label=right:\(    \tilde{b}     \)] (x) at (0,0.4) {};
      \node [bullet, label=right:\(    \tilde{c}     \)] (h) at (0,-0.4) {};
      \node [bullet, label=right:\(    \tilde{d}     \)] (v) at (0,-1.2) {};
      \node[font=\large] (F) at (0, 2) {\(F\)};
    \end{scope}

    \draw [projection] (a) -- (x);
    \draw [projection] (b) -- (h);
    \draw [projection] (c) -- (v);
    \draw [projection] (d) -- (x);
  \end{tikzpicture}
\end{document}

enter image description here

  • ohhh thank you very much :) Can you tell me please what means shorten <=2pt, shorten >=2pt ? – Marine Galantin Apr 27 '18 at 20:11
  • 1
    @MarineGalantin shorten <=2pt means "make the path shorter by 2pt at its start" and likewise shorten >=2pt means "make the path shorter by 2pt at its end". It has nothing to do with arrows, and I was confused by this also when I saw it some time ago. (And I guess we are not alone ;-) – marmot Apr 27 '18 at 20:14

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.