Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Drawing using Latex

  1. Sep 7, 2009 #1

    How can I draw the following figure using latex?


    Thanks in advance

    Attached Files:

  2. jcsd
  3. Sep 7, 2009 #2
    Hi there,

    Do you desperately want to draw a picture in LaTeX??? If so, you can always do it in the figure environment: \begin{figure} \end{figure}. From this environment, you will need to tell LaTeX what, where, and how each piece of the drawing should be placed. As you can imagine, even for a very small figure, you need to add many, many, many commands, which become terribly cumbersome.

    I suggest you to use a drawing environment, like gimp or xfig (opensource), to draw your pciture. Then you simply need to include it in your text wherever you want to. I believe you will save alot of time and effort.

  4. Sep 7, 2009 #3
    There are figures (.eps files) that I must add them using the figure enviroment, and I already did. But I want to draw schematic diagrams to illustrate something like the figure I attached in the first post. I have downloaded the pgf package, but I don't know where to start, its manual quite long and doesn't give you things in direct way, where I have to deliver my thesis soon.

  5. Sep 8, 2009 #4
    That is the problem with drawing directly in LaTeX: it's quite long. On top of it, you will have to compile very often, to see the output result of your picture, which will consume more time.

    To answer your question simply, the only I made drawing directly in LaTeX is by reading part of the manual (the one that could be necessary for you). Try and see the output result. I am sure that when you get to know the package, you can come up with decent results in no time. But at first, and specially if you are in a bit of hurry, I suggest you look into something like xfig (Winfig for MS Windows). You will be able to make this drawing, and save it into a .eps file.

  6. Sep 10, 2009 #5


    User Avatar
    Gold Member

    Check out

    PSTricks. It has latex examples if you download the packages. One is a ring diagram, and there are other flow charts/etc. Just download the examples and modify them.
  7. Sep 11, 2009 #6
    The following code will draw the figure you want using the pgf/TikZ package that you downloaded:
    Code (Text):



        % draw nodes (pgf/TikZ v2.00 manual sections 3.4, 3.7, 3.9)
        \node (source) at (0,0) [circle,draw,label=below:Source] {$S$};
        \node (relay) at (3,2) [circle,draw,label=below:Relay] {$R$};
        \node (destination) at (6,0) [circle,draw,label=below:Destination] {$D$};
        % connect nodes (pgf/TikZ v2.00 manual section 3.11)
        \draw [->] (source.60) to node [auto] {$\alpha_1$} (relay.west);
        \draw [->] (relay.east) to node [auto] {$\alpha_2$} (destination.120);
        \draw [->] (source.east) to node [auto,swap] {$\alpha_0$} (destination.west);

    \caption{\label{fig:SRD} Source-relay-destination figure.}


    Attached Files:

    • tikz.png
      File size:
      10.6 KB
    Last edited: Sep 11, 2009
  8. Sep 12, 2009 #7
    That is fantastic las3rjock. Actually, I drew it previousely, but this code has more flexibility.

    Thank you
  9. Apr 1, 2010 #8
    That's just the kind of problem that I wrote my own code generator for. It's a java applet, you can see it on my homepage at http://artsci.wustl.edu/~jplate/pasi.html#applet_section [Broken].

    To draw your diagram, you just need to do these basic steps:

    0. Add "\usepackage{texdraw}" to your preamble.
    1. Create the 3 nodes (shift-click on three locations on the screen, then click "Add Node").
    2. Create the arrows (shift-click on two or more nodes, then select a kind of arrow in the menu on the right and click on "Create").
    3. Create labels for the nodes (select all nodes, e.g., by 'lassoing'; select "Label" in menu'; click on "Create" twice, to create two labels for each node).
    4. Fill in the text for the labels (select the labels individually, then enter text in the text area on the right).
    5. "Center" the labels that should be centered (you can do that for each one individually or for all three in one go, viz, if you select all three of them first).
    6. To place an existing label *below* the respective node, set the "Preferred Angle" to -90.
    7. Create labels for the arrows: first select the arrows, then create and edit labels in the same way as for nodes. (This will make additional nodes appear that are centered on the arrows. You can make these invisible by scrolling down to "Node Properties" and setting "Line Width" to 0.)
    8. Once you're done editing, click on "Generate" and copy the code into your latex file (surrounded by "\begin{figure}\begin{center}...\end{center}\end{figure}"). (If this doesn't work directly, use the "To Webpage" button, which will send the text to the web page. From there, you'll always be able to copy the generated text.)

    Note that you'll be able to adjust the positions of the nodes even after you've created the diagram; the arrows and labels will stay connected to them. Also, note that you won't have to do any cropping, since texdraw takes care of this itself.
    Last edited by a moderator: May 4, 2017
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook