LaTeX How can I use texdraw to create diagrams in LaTeX?

  • Thread starter Thread starter EngWiPy
  • Start date Start date
  • Tags Tags
    Drawing Latex
AI Thread Summary
To draw figures in LaTeX, the figure environment is essential, but it can become cumbersome due to the numerous commands required for even simple illustrations. For those needing to create schematic diagrams, using external drawing software like GIMP or Xfig is recommended for efficiency. However, if using LaTeX directly, the PGF/TikZ package is a powerful option, though its manual can be overwhelming. A sample code snippet demonstrates how to create a source-relay-destination diagram using TikZ, showcasing its flexibility. Additionally, a Java applet tool is available that simplifies the drawing process by allowing users to create nodes and arrows visually, generating the corresponding LaTeX code automatically. This approach helps streamline the creation of diagrams while ensuring proper formatting within LaTeX documents.
EngWiPy
Messages
1,361
Reaction score
61
Hello,

How can I draw the following figure using latex?

attachment.php?attachmentid=20450&stc=1&d=1252317887.jpg

Thanks in advance
 

Attachments

  • Relay.JPG
    Relay.JPG
    4.8 KB · Views: 1,218
Physics news on Phys.org
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 a lot of time and effort.

Cheers
 
fatra2 said:
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 a lot of time and effort.

Cheers

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.

Regards
 
S_David said:
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.

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.

Cheers
 
The following code will draw the figure you want using the pgf/TikZ package that you downloaded:
Code:
\documentclass[12pt]{article}
\usepackage{tikz}

\begin{document}

\begin{figure}
\begin{center}
\begin{tikzpicture}
    % 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);
\end{tikzpicture}
\end{center}

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

\end{document}
attachment.php?attachmentid=20521&stc=1&d=1252724521.png
 

Attachments

  • tikz.png
    tikz.png
    6.8 KB · Views: 1,350
Last edited:
That is fantastic las3rjock. Actually, I drew it previousely, but this code has more flexibility.

Thank you
 
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 .

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:

Similar threads

Replies
4
Views
2K
Replies
1
Views
2K
Replies
1
Views
2K
Replies
9
Views
2K
Replies
3
Views
4K
Replies
11
Views
2K
Replies
12
Views
3K
Replies
4
Views
3K
Back
Top