This question already has an answer here:

I'm looking to create the following block diagram in Tikz. Any suggestions? Tips?

enter image description here

marked as duplicate by Gonzalo Medina tikz-pgf Dec 3 '14 at 19:56

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    Welcome to TeX.SX! On this site, a question should typically revolve around an abstract issue (e.g. "How do I get a double horizontal line in a table?") rather than a concrete application (e.g. "How do I make this table?"). Questions that look like "Please do this complicated thing for me" tend to get closed because they are either "off topic", "too broad", or "unclear". Please try to make your question clear and simple by giving a minimal working example (MWE): you'll stand a greater chance of getting help. – Werner Dec 3 '14 at 19:41

This doesn't look too complicated. There might even be some examples in the TikZ manual to get you started.

Here's how I might go about it:

  1. Create \nodes for the rectangles and rounded rectangles. Also for the text in the right column, just with no rectangles. Give them names so you can draw the arrows between them. Use the positioning TikZ library to position the nodes relative to each other. You might also try the matrix library to create and space out the blocks of nodes that look similar.

  2. Use the fit library TikZ library to draw the dotted line around the four nodes at the top left.

  3. You might need to create \coordinate nodes to mark the intersections and turning points of your arrows.

  4. Draw the arrows with \draw[->] paths. You might cut down on the number of intermediate coordinates with -| and |- instead of --. These will make L-shaped paths instead of straight line paths.

  5. Don't worry about styling until the end. Create styles with \tikzset so that you can alter and update styles quickly.

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