TransWikia.com

What does "on grid" do in TikZ?

TeX - LaTeX Asked on October 1, 2021

On page 60/1318 TikZ manual there is an example to draw a Petri net as below:

enter image description here

Below is my code:

documentclass{standalone}
usepackage{tikz}
usetikzlibrary {arrows.meta,backgrounds,fit,positioning,petri}
begin{document}

begin{tikzpicture}[node distance=1.3cm, on grid,>={Stealth[round]},auto,
every place/.style= {minimum size=6mm,thick,draw=blue!75,fill=blue!20},
every transition/.style={thick,draw=black!75,fill=black!20},
red place/.style= {place,draw=red!75,fill=red!20},
bend angle=45, every label/.style={red},
place/.style={circle,draw=blue!50,fill=blue!20,thick,
inner sep=0pt,minimum size=10 pt},
transition/.style={rectangle,draw=black!50,fill=black!20,thick,
inner sep=0pt,minimum size=10 pt}, bend angle=45,
pre/.style={<-,shorten <=1pt,>={Stealth[round]},semithick},
post/.style={->,shorten >=1pt,>={Stealth[round]},semithick}]

node [place, tokens=1] (w1) {};
node [place] (c1) [below=of w1] {};
node [place] (s) [below=of c1,label=above:$sle 3$] {};
node [place] (c2) [below=of s] {};
node [place,tokens=1] (w2) [below=of c2] {};
node [transition] (e1) [left=of c1] {}
edge [pre,bend left] (w1)
edge [post,bend right] (s)
edge [post] (c1);
node [transition] (e2) [left=of c2] {}
edge [pre,bend right] (w2)
edge [post,bend left] (s)
edge [post] (c2);
node [transition] (l1) [right=of c1] {}
edge [pre] (c1)
edge [pre,bend left] (s)
edge [post,bend right] node[swap] {2} (w1);
node [transition] (l2) [right=of c2] {}
edge [pre] (c2)
edge [pre,bend right] (s)
edge [post,bend left] node {2} (w2);
end{tikzpicture}
end{document}

I could not understand what "on grid" does. Any idea?

One Answer

According to page 242, section 17.5.3, of the tikz manual (Version 3.1.5b):

/tikz/on grid=⟨boolean⟩ (no default, initially false) When this key is set to true, an ⟨of-part⟩ of the current form behaves differently: The anchors set for the current node as well as the anchor used for the other ⟨node name⟩ are set to center. This has the following effect: When you say above=1cm of somenode with on grid set to true, the new node will be placed in such a way that its center is 1cm above the center of somenode. Repeatedly placing nodes in this way will result in nodes that are centered on “grid coordinate”, hence the name of the option.

So on grid makes coordinates that are specified using of=... shift to the nearest grid coordinates.

Correct answer by user30471 on October 1, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP