5

I would like to make a graph in tikz as in enter image description here

However I would like to have an implies symbol instead of an arrow. How can I make a figure such as above but with implies (as well as not implies signs) as edges?

6
  • By implies do you mean a \Rightarrow ? (ie one with a double horizontal bar?
    – Thruston
    Commented Jun 12, 2014 at 13:57
  • 4
    Did you try \tikz \graph[edges=double] { a -> { b, c} -> d };? Is that what you need?
    – Thruston
    Commented Jun 12, 2014 at 14:13
  • @Thruston: Thanks a lot,+1. (Wonder why I could not find this in the manual) and suppose one also needs a not implies sign i.e. the sign as above but with a slanted line segment that cuts through it, is it ok to overlay or is there a more direct and elegant way like the one you have suggested? Cheers Commented Jun 12, 2014 at 14:31
  • I'd suggest that you create the graph you want with edges=double and use some form of edge label for the not sign. If you update the question with your effort, you might get some more detailed suggestions or answers.
    – Thruston
    Commented Jun 12, 2014 at 21:21
  • 1
    You can use a decoration to put the slash midway.
    – user11232
    Commented Jun 12, 2014 at 23:56

2 Answers 2

4

you can use double and implies (Note: the credit goes to @percusse for not implie command (i.e. degil).

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,decorations.pathmorphing,decorations.markings} 
\usetikzlibrary{arrows}

\tikzset{degil/.style={
            decoration={markings,
            mark= at position 0.5 with {
                  \node[transform shape] (tempnode) {$\backslash$};
                  }
              },
              postaction={decorate}
}
}


\begin{document}
\begin{tikzpicture}[>=stealth,>=implies]
 \graph  {
  a ->[double] {b,c} ->[double,degil] d
};
\end{tikzpicture}
\end{document}

enter image description here

4

Perhaps this...

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{graphs,graphs.standard,arrows}
\tikzgraphsset{
  implies/.style={edges={double, double equal sign distance, -implies}},
  not implies/.style={implies,
    edge node={ node [sloped, xscale=-1] {$\backslash$} }
  },
  !/.style={not implies}
}
\begin{document}
\tikz\graph [implies] {
  a -> {b, c} ->[!] d;
};
\end{document}

enter image description here

You must log in to answer this question.

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