Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

My current picture of a Petri net is below

The problem: the 'bars' (in grey) are too tall, although minimum height=0.1mm (seems doesn't have any effect). Is it possible to make these grey rectangles even thinner?


The code is (no need to read the whole, just look into two comments):

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,automata,positioning,calc,patterns,petri}

\begin{document}
\begin{tikzpicture}[node distance=1.3cm,>=stealth',bend angle=45,auto]

\tikzstyle{place}=[circle,thick,draw=blue!75,fill=blue!20,minimum size=6mm]
\tikzstyle{red place}=[place,draw=red!75,fill=red!20]
\tikzstyle{transition}=[rectangle,  % <------Can we make them thinner?
          thick,     
          draw=black!75,
          fill=black!25,
          minimum height=0.1mm,     %<------------------ this doesn't help
          minimum width=8mm,
          rounded corners]

\tikzstyle{every label}=[red]

\node [place,tokens=1] (start)                    {$start$};
\node [transition] (start_to_start_q0) [below left of=start] {};
\node [transition] (start_to_q0_ok) [below right of=start] {};

\node [place]          (q0)     [below of=start_to_start_q0]  {$q_0$};
\node [place]          (ok)     [below of=start_to_q0_ok]     {$ok$};

\node [place] (q) [below left of=q0]             {$q$};
\node [transition] (from_q_ok) [below right of=q] {};

\node [place] (qsa) [below left of=from_q_ok]           {$q_{a!!}$};
\node [place] (a) [right of=qsa]                    {$a$};
\node [transition] (from_qsa_a) [below right of=qsa] {};

\node [place] (p) [right of=a]                    {$p$};
\node [transition] (from_a_p) [below right of=a] {};

\node [place] (qend) [below of=from_qsa_a]             {$q'$};

\node [place] (pra) [below of=from_a_p]             {$p_{a??}$};
\node [transition] (from_ok_pra) [right of=pra] {};
\node [place] (pend) [right of=from_ok_pra]             {$p'$};

\path (start_to_start_q0)
  edge [pre,bend right]                (start)
  edge [post]                          (start)
  edge [post]                          (q0);

\path (start_to_q0_ok)
  edge [pre]                           (start)
  edge [post]                          (q0)
  edge [post]                          (ok);

\path (from_q_ok)
  edge [pre]                          (q)
  edge [pre]                          (ok)
  edge [post]                         (qsa)
  edge [post]                         (a);

\path (from_qsa_a)
  edge [pre]                          (qsa)
  edge [pre]                          (a)
  edge [post]                         (qend)
  edge [post]                         (ok);

\path (from_a_p)
  edge [pre]                          (a)
  edge [pre]                          (p)
  edge [post]                         (pra)
  edge [post]                         (a);

\path (from_ok_pra)
  edge [pre]                          (ok)
  edge [pre]                          (pra)
  edge [post]                         (ok)
  edge [post]                         (pend);    

\end{tikzpicture}

\end{document}
share|improve this question
    
Welcome to TeX.SX! Please make your code compilable, starting with \documentclass{...} and ending with \end{document}. That may seem tedious to you, but think of the extra work it represents for TeX.SX users willing to help you. Help them help you: remove that one hurdle between you and a solution to your problem. –  Jubobs Sep 30 '13 at 18:41
    
Sorry - I gave up half way through an answer. -Too much code, where only a small part is nedded, and it is not compileable. I think you need to look at inner sep option. –  Hans-Peter E. Kristiansen Sep 30 '13 at 18:48
1  
Yes - If you add inner sep=0 to your nodes, then you can control the heigth with minimum height. But be aware, that the rounded corners will look strange with a very small height. –  Hans-Peter E. Kristiansen Sep 30 '13 at 19:00
    
@Hans-PeterE.Kristiansen i would accept your comment as an answer, but cannot.) rounded corners are not an issue -- i removed them. thaanks! –  Ayrat Sep 30 '13 at 19:09

1 Answer 1

up vote 4 down vote accepted

The inner sep node option is a node padding, that insures space between node text and node border. By setting it to zero, you can control the node height with minimum height as wished.

This code:

\tikzstyle{transition}=[rectangle,
          thick,     
          draw=black!75,
          fill=black!25,
          minimum height=1mm,
          minimum width=8mm,
          rounded corners,
          inner sep=0]

1 mm nodes

gives 1 mm high nodes, but the rounded corners now look odd. Maybe that is an issue for an other question.

share|improve this answer
1  
You may use rounded corners=.5mm (half of minimum height). –  Paul Gaborit Sep 30 '13 at 22:26
    
Or even the shape rounded rectangle which needs the library shapes.misc. Moreover, do not use \tikzscale, but rather \tikzset: see Should \tikzset or \tikzstyle be used to define TikZ styles? –  Claudio Fiandrino Oct 1 '13 at 6:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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