TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking for something able to generate the following type of diagrams:

enter image description here


Addendum: Maybe I was not clear. I'm looking for a package that, with minimal effort, is able to produce block&arrows diagrams, such as the above. Of course I could generate the "exact" above diagram with some effort, but that is not the point, sorry :-)

share|improve this question
How do your recent efforts look like? You can show them best in form of a minimal example. – Thorsten Donig Mar 19 '12 at 21:45
@ThorstenDonig: While I'm generally a big fan of MWEs, I'm not sure if we need one here. Iiuc, Huge isn't striving to reproduce precisely this diagram, but generally looking for packages that help in producing such diagrams. – doncherry Mar 19 '12 at 22:10
If you don't want to code then Inkscape is your friend. – percusse Mar 19 '12 at 22:12
You can try to do it using tikedt (code.google.com/p/tikzedt), a semi graphical tikz editor. – Harish Kumar Mar 19 '12 at 22:16
@doncherry: If I see such questions here which only present a picture of an object to be reproduced, I often get the impression of missing own initiative. But if its only about suggesting packages, pgf/tikZ (Example Gallery) or PSTricks (Example Gallery) are surely worth to take a look. A search for the respective tags on the site could also be helpful. – Thorsten Donig Mar 21 '12 at 20:16

Although it was not requested, this is a short example with »pgf/tikZ«.



      rounded corners=2pt
    \coordinate (o) at (0,0);
    \node[border,minimum width=3em] (f) at (2,0.5) {$f$\strut};
    \node[border,rounded corners=2pt,minimum width=3em] (g) at (2,-0.5) {$g$\strut};
    \node[draw,circle,minimum size=2em] (plus) at (4.5,0) {$+$};
    \coordinate[above right=0.5 and 0.5 of o] (c1);
    \coordinate[right=1 of f] (c2);
    \coordinate[below right=0.5 and 0.5 of o] (c3);
    \coordinate[right=1 of g] (c4);
    \node (text) at (2.5,1.5) {$f\&\&\&g >\!\!>\!\!> \arr(\lambda(z,y)\to y+z)$};
    \node[border,fit=(o) (f) (g)]{};
    \node[border,minimum height=57.4pt,fit=(c2) (c4) (plus)]{};
    \draw (o) -- +(-1,0) node[above,midway] (x) {$x$};
    \draw[->] (o) -- (c1) -- (f);
    \draw[->] (f) -- node[above,midway] (y) {$y$} (c2)  -- (plus);
    \draw[->] (o) -- (c3) -- (g);
    \draw[->] (g) -- node[above,midway] (z) {$z$} (c4)  -- (plus);
    \draw[->] (plus) -- +(1.5,0) node[above,midway] (nil) {~~};
    \node[draw=orange,rounded corners=2pt,minimum height=92pt,fit=(x) (g) (nil) (text)]{};

Perhaps improvable at one place or another (i.e. by layers).

enter image description here

share|improve this answer

Your Answer


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.