How can I use texdraw to create diagrams in LaTeX?

  • Context: LaTeX 
  • Thread starter Thread starter EngWiPy
  • Start date Start date
  • Tags Tags
    Drawing Latex
Click For Summary

Discussion Overview

The discussion revolves around methods for creating diagrams in LaTeX, specifically using the texdraw and pgf/TikZ packages. Participants explore various approaches to drawing figures, including the use of external drawing tools and direct coding in LaTeX.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Homework-related

Main Points Raised

  • Some participants suggest using the figure environment in LaTeX for including images, but express that it can be cumbersome for drawing directly.
  • Others recommend external drawing tools like GIMP or xfig to create diagrams and then include them in LaTeX, arguing it saves time.
  • A participant mentions the challenges of using the pgf package, noting that the manual is lengthy and not straightforward for urgent needs.
  • One participant provides a sample code using the pgf/TikZ package to create a specific diagram, highlighting its flexibility.
  • Another participant shares a Java applet they developed for generating diagrams, outlining a step-by-step process for using texdraw to create nodes and arrows.
  • Some participants express appreciation for the shared code and tools, indicating they find them useful for their own diagramming needs.

Areas of Agreement / Disagreement

Participants generally agree that drawing directly in LaTeX can be complex and time-consuming, with some advocating for external tools while others provide coding solutions. There is no consensus on the best approach, as multiple methods are discussed.

Contextual Notes

Participants mention limitations in the manuals and the need for frequent compilation when drawing directly in LaTeX, which may hinder efficiency. The discussion reflects varying levels of familiarity with the tools and packages mentioned.

Who May Find This Useful

This discussion may be useful for LaTeX users looking for ways to create diagrams, particularly those under time constraints or seeking alternatives to direct coding in LaTeX.

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,245
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 environment, 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,381
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 ·
Replies
4
Views
3K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 12 ·
Replies
12
Views
4K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 12 ·
Replies
12
Views
4K