# What GUI applications are there to assist in generating graphics for TeX?

I found GeoGebra to be a useful tool to help generate code for graphs. I suppose there must be other tools to help draw diagrams such as Sets/Venn Diagrams or Electrical Circuits (Logic Gates). Which ones would you suggest?

• Check out TeXample and look at the section "Tools that generate PGF/TikZ code" for some other ideas. LaTeXDraw is good for PSTricks. – DJP Aug 30 '11 at 14:47
• Geogebra makes use of free software, but the author of Geogebra is very creative in trying to evade the idea of free software and split the tool in one open source part and a non free part. So it is good to look for alternatives until they switch to a complete and fair free license. In most cases you will have a professional alternative with Inkscape. – Jonas Stein Jan 11 '18 at 8:24
• For general IDEs see tex.stackexchange.com/questions/339/latex-editors-ides. Maybe, the question should be edited to also contain direct pointers to the answers? – koppor Jan 31 '18 at 13:05

I think the best option for diagrams, circuits, etc. is Dia.

Dia is roughly inspired by the commercial Windows program 'Visio,' though more geared towards informal diagrams for casual use. It can be used to draw many different kinds of diagrams. It currently has special objects to help draw entity relationship diagrams, UML diagrams, flowcharts, network diagrams, and many other diagrams. It is also possible to add support for new shapes by writing simple XML files, using a subset of SVG to draw the shape.

It can export diagrams to a number of formats, including EPS, SVG, XFIG, WMF and PNG, as well as LaTeX formats such as PGF, PStricks and Metapost.

• Seems like Dia does not work with macOS Catalina – alper Feb 19 at 21:07

The list misses TikzEdt. It provides a GUI and semi automatic drawing tools. For details: TikzEdt web site. Available for linux/windows. Upon right clicking in the figure (on right) window, it offers a number of options to draw using the mouse. After drawing the tikz code will be inserted in the left window automatically. On the left panel, there are some styles/shapes etc from where the corresponding code can be inserted. The figure can be exported to number of formats like pdf, png, jpeg etc. And it is free.

• Just a small note - tried to install it on Ubuntu 11.04 Natty; first tried getting the source from SVN, but there is no README I could see; and I don't know much of C#, which this is programmed in. Luckily, there is a binary Linux build, see TikzEdt_0_2_2_linux_x86.tar.gz - TikzEdt 0.2.2 for Linux 32bit; unfortunately it requires 60MB of mono-complete, and my version is also too old; luckily the same link has instructions on how to get it working on 11.04, and thankfully it works for me! – sdaau Feb 17 '14 at 19:48
• Also, nice that this version (0.2.2), renders nodes according to their width/height settings in code (in contrast, tikzit 0.7 doesn't - it always shows the nodes in same size, even if I modify minimum width and minimum height in the code). – sdaau Feb 17 '14 at 19:52
• tizkedt have not been updated since june 2013. That is verylong time in computer scale. I wonder if it is still alive. – Nasser Dec 1 '14 at 5:52
• I'm wondering if it is still alive, too: tex.stackexchange.com/questions/316548/… – CarLaTeX Aug 10 '16 at 6:38
• I primarily used TikzEdt as a rapid prototyping tool for larger TikZ drawings. Pretty much the same can be accomplished using the standalone class. The only downsides compared to TikzEdt are then the missing grid (which can be added easily using TikZ) and the shortcuts to commonly used TikZ commands, which I honestly never used but could probably also added easily to your favorite TikZ IDE. – Big-Blue Mar 10 '17 at 9:17

Another approach is to use Inkscape. If you export to eps or pdf it puts the vector drawing in one file and the text in a tex file, see http://tug.ctan.org/info/svg-inkscape/InkscapePDFLaTeX.pdf. The integration is perhaps not as elegant as with software designed as an interface for LaTeX packages but offers the full potential of Inkscape.

• Inkscape knows how to export to TeX with PSTricks...so you can go this route, though the export is not complete yet. There is a begining of an extension to do this for TikZ, but it's very primitive. – Yossi Farjoun Aug 30 '11 at 19:41

LaTeXDraw is a Java-based graphical drawing editor.

• Generates PSTricks code, or directly creates PDF or PS pictures.
• Imports: SVG, PSTricks.
• Exports: SVG, eps, jpg, bmp, png, ppm.

• This is exactly what I was looking for, thanks. – Alfredo Hernández Feb 17 '14 at 17:23

Xfig is another GUI that has very good interaction with LaTeX. It is an X Windows drawing utility that comes with a library for drawing circuit diagrams. It runs on Windows through Cygwin/X.

Here's a screenshot from the homepage showing the interface:

Here is a list of all the available libraries (you would probably be interested in the electrical/logical libraries):

• Various 3D arrows
• Audiovisual components
• Some buildings
• Some charts (polar, log-log)
• Various computers
• DSP (Digital Signal Processor) components
• Electrical - electrical objects, e.g. connectors
• Electronic Physical - symbols for creating electronic wiring diagrams or layouts
• Electronic Schematic - symbols for creating electronic schematics
• ERD (Chen's model of Entity Relations)
• Examples - various examples of xfig drawings contributed by users
• Flags of various countries and some U.S. states
• Flowchart symbols
• GUI widgets (buttons, sliders, etc.)
• Hospital equipment
• Knitting symbols
• Various printer labels (CD, Avery address labels)
• Logic symbols
• Maps - outline maps of countries, U.S. states and Canadian provinces
• DIN Mechanical symbols
• Miscellaneous - various fun items here
• Music symbols
• Networking devices
• Office equipment - filing cabinet, telephone, overhead projector
• Optics symbols
• Process Flowsheet - chemical process flow symbols
• Structural Analysis symbols
• Unified Modelling Language (UML) symbols
• Welding - common welding patterns and errors

Interaction with LaTeX is done by exporting the canvas:

• as 2 separate files: One containing the lines graphics (in EPS or PDF format), and one containing the formatted text; or
• as a single EPS or PDF from which you can use the psfragx package (or psfrag) to convert literal strings into LaTeX typeset. Although I've never used it, there's a deprecated xfigfrag extension to Xfig that provides a pdffrag functionality.
• Unfortunately, Xfig is also practically dead, even though many people still use it productively. The project has not seen a new version for more than 10 years and the user interface is pretty old-fashioned and awkward. So while Xfig certainly is a powerful tool for those that are accustomed to it, I would not recommend it to newbies. – Daniel Mar 4 '12 at 16:07
• Xfig was replaced/extended a while ago by Ipe (ipe has 'figtoipe' converter). ipe was last updated on : 2013-11-07 – user11232 Nov 25 '13 at 2:33

The list misses Ipe. From wikipedia link:

Ipe extensible drawing editor is a free vector graphics editor for creating figures in PDF or EPS format. It can be used for making small figures for inclusion into LaTeX documents as well as making multi-page PDF presentations. It is developed by Otfried Cheong since 1993 and initially worked on SGI workstations only. Ipe 6 was released in 2003 which changed the file format into XML code embedded into PDF and EPS files. Ipe 7 was released in 2009. Ipe 7 (see below) can be compiled under Windows, Mac OS X and Unix but binaries are available for many distributions.

Also

IPE allows the user to insert text objects containing LaTeX code. This is converted to vector graphics by parsing the output of pdfTeX. This is useful for creating figures to be included in scientific documents which often contain equations. It also results in the same font being used for both the text and figures of the document. This is often not the case if other drawing programs are used.

Below an example drawing using different fonts.

• Just a small note about ipe - for some reason, I always thought you can draw in ipe, and then export as Tikz / Latex code; but I just checked my install (Ipe 7.0.10), and it can only save as .ipe .xml, .pdf or .eps ; and the same goes for input files (although, it cannot open arbitrary .pdf - apparently can open only those produced by itself). – sdaau Mar 25 '14 at 13:10
• @sdaau pdftoipe converts an arbitrary PDF file to an XML file readable by ipe. The Ubuntu 12.04 LTS repository also offers svgtoipe and figtoipe. – Serge Stroobandt Apr 3 '14 at 17:18
• As mentioned above, ipe can be considered the successor to Xfig. Be sure to check out ipe's Wikipedia entry as it features amongst others a link to a primer as well as a nice screenshot absent on the official site. – Serge Stroobandt Apr 7 '14 at 9:50

jpgfdraw is a Java program for creating vector graphics which can be used with LaTeX. You can construct and edit shapes using lines, cubic Bézier segments and text.

A screenshot from the documentation:

You can export the pictures as

• a pgfpicture environment for inclusion in a LaTeX document
• a complete LaTeX single-paged document
• a LaTeX package based on flowfram
• an EPS image
• a scalable vector graphics (SVG) image
• a PNG image

Another nice tool is TikZit, but you won't be happy if you don't want to code Tikz/PGF manually. But probably it helps a lot if you don't want to select coordinates manually.

The manual page contains some screenshots.

 a screenshot of tikzit 0.7 on Ubuntu 11.04 Natty:

• Note about the edit screenshot: on Ubuntu 11.04 Natty, I cannot install a compiler with Objective C 2 features; and Browse /tikzit-0.9 at SourceForge.net notes: "Changes since 0.7: Compilers without basic Objective C 2 support cannot be used to compile TikZiT any more"; which is why I could only compile and screenshot that version at this time. – sdaau Feb 17 '14 at 18:01
• Its simple interface is a bit intimidating at first. But, that is the best feature of tikzit. Tikzit assumes you know tikz, but could use some help in visualizing. Current version tikzit 2.1 supports a lot more (eg: Ctrl+R for preview) – Cyriac Antony Aug 3 '19 at 6:16

There is KtikZ/QtikZ available for linux/windows. This is very useful for writing tikz code as the output is displayed on the fly. It is freely available.

• The project has no activity anymore. The last release was Version 0.10 (2010-08-26) – Jonas Stein Jan 17 '19 at 15:14

Another Java program is jPicEdt. It is described as "open source, multi-platform and interactive picture editor for LaTeX and PSTricks".

A screenshot with the according Latex output and the code produced by jPicEdt:

As you can see it supports formulae:

The code it exports:

%%Created by jPicEdt 1.4.1_03: mixed JPIC-XML/LaTeX format
%%Sun Mar 04 13:56:51 CET 2012
%%Begin JPIC-XML
%<?xml version="1.0" standalone="yes"?>
%<jpic x-min="15" x-max="140" y-min="30" y-max="80" auto-bounding="true">
%<multicurve points= "(15,55);(20,70);(40,65);(40,65);(40,65);(60,45);
%   (60,45);(60,45);(85,70);(85,70);(85,70);(90,70);
%   (90,70)"
%    fill-style= "none"
%    />
%<ellipse p3= "(140,30)"
%    p2= "(140,55)"
%    p1= "(105,55)"
%    closure= "pie"
%    angle-end= "256.61"
%    angle-start= "98.13"
%    fill-style= "none"
%    />
%<text text-vert-align= "center-v"
%    anchor-point= "(50,30)"
%    text-frame= "noframe"
%    text-hor-align= "center-h"
%    fill-style= "none"
%    >
%$a_4=3*\int z dz$
%</text>
%<parallelogram p3= "(135,65)"
%    p2= "(135,80)"
%    p1= "(105,80)"
%    fill-style= "none"
%    />
%</jpic>
%%End JPIC-XML
%LaTeX-picture environment using emulated lines and arcs
%You can rescale the whole picture (to 80% for instance) by using the command \def\JPicScale{0.8}
\ifx\JPicScale\undefined\def\JPicScale{1}\fi
\unitlength \JPicScale mm
\begin{picture}(140,80)(0,0)
\linethickness{0.3mm}
\qbezier(15,55)(19.84,65.47)(29.38,65.62)
\qbezier(29.38,65.62)(38.91,65.78)(40,65)
\multiput(40,65)(0.12,-0.12){167}{\line(1,0){0.12}}
\multiput(60,45)(0.12,0.12){208}{\line(1,0){0.12}}
\put(85,70){\line(1,0){5}}
\linethickness{0.3mm}
\multiput(119.53,30.18)(0.49,-0.06){1}{\line(1,0){0.49}}
\multiput(119.04,30.25)(0.49,-0.07){1}{\line(1,0){0.49}}
\multiput(118.55,30.32)(0.49,-0.08){1}{\line(1,0){0.49}}
\multiput(118.07,30.41)(0.48,-0.09){1}{\line(1,0){0.48}}
\multiput(117.59,30.5)(0.48,-0.1){1}{\line(1,0){0.48}}
\multiput(117.11,30.61)(0.48,-0.1){1}{\line(1,0){0.48}}
\multiput(116.64,30.72)(0.47,-0.11){1}{\line(1,0){0.47}}
\multiput(116.17,30.85)(0.47,-0.12){1}{\line(1,0){0.47}}
\multiput(115.71,30.98)(0.46,-0.13){1}{\line(1,0){0.46}}
\multiput(115.25,31.12)(0.46,-0.14){1}{\line(1,0){0.46}}
\multiput(114.8,31.27)(0.45,-0.15){1}{\line(1,0){0.45}}
\multiput(114.36,31.44)(0.44,-0.16){1}{\line(1,0){0.44}}
\multiput(113.92,31.61)(0.44,-0.17){1}{\line(1,0){0.44}}
\multiput(113.49,31.79)(0.43,-0.18){1}{\line(1,0){0.43}}
\multiput(113.06,31.97)(0.21,-0.09){2}{\line(1,0){0.21}}
\multiput(112.65,32.17)(0.21,-0.1){2}{\line(1,0){0.21}}
\multiput(112.24,32.38)(0.2,-0.1){2}{\line(1,0){0.2}}
\multiput(111.84,32.59)(0.2,-0.11){2}{\line(1,0){0.2}}
\multiput(111.45,32.81)(0.2,-0.11){2}{\line(1,0){0.2}}
\multiput(111.06,33.04)(0.19,-0.11){2}{\line(1,0){0.19}}
\multiput(110.69,33.28)(0.19,-0.12){2}{\line(1,0){0.19}}
\multiput(110.33,33.52)(0.18,-0.12){2}{\line(1,0){0.18}}
\multiput(109.97,33.77)(0.18,-0.13){2}{\line(1,0){0.18}}
\multiput(109.63,34.03)(0.17,-0.13){2}{\line(1,0){0.17}}
\multiput(109.3,34.3)(0.17,-0.13){2}{\line(1,0){0.17}}
\multiput(108.98,34.57)(0.16,-0.14){2}{\line(1,0){0.16}}
\multiput(108.66,34.85)(0.16,-0.14){2}{\line(1,0){0.16}}
\multiput(108.36,35.13)(0.15,-0.14){2}{\line(1,0){0.15}}
\multiput(108.08,35.42)(0.14,-0.15){2}{\line(0,-1){0.15}}
\multiput(107.8,35.72)(0.14,-0.15){2}{\line(0,-1){0.15}}
\multiput(107.53,36.02)(0.13,-0.15){2}{\line(0,-1){0.15}}
\multiput(107.28,36.33)(0.13,-0.15){2}{\line(0,-1){0.15}}
\multiput(107.04,36.64)(0.12,-0.16){2}{\line(0,-1){0.16}}
\multiput(106.81,36.96)(0.11,-0.16){2}{\line(0,-1){0.16}}
\multiput(106.6,37.28)(0.11,-0.16){2}{\line(0,-1){0.16}}
\multiput(106.4,37.61)(0.1,-0.16){2}{\line(0,-1){0.16}}
\multiput(106.21,37.94)(0.09,-0.16){2}{\line(0,-1){0.16}}
\multiput(106.03,38.27)(0.18,-0.33){1}{\line(0,-1){0.33}}
\multiput(105.87,38.61)(0.16,-0.34){1}{\line(0,-1){0.34}}
\multiput(105.72,38.95)(0.15,-0.34){1}{\line(0,-1){0.34}}
\multiput(105.59,39.29)(0.14,-0.34){1}{\line(0,-1){0.34}}
\multiput(105.47,39.63)(0.12,-0.35){1}{\line(0,-1){0.35}}
\multiput(105.36,39.98)(0.11,-0.35){1}{\line(0,-1){0.35}}
\multiput(105.26,40.33)(0.09,-0.35){1}{\line(0,-1){0.35}}
\multiput(105.19,40.68)(0.08,-0.35){1}{\line(0,-1){0.35}}
\multiput(105.12,41.04)(0.07,-0.35){1}{\line(0,-1){0.35}}
\multiput(105.07,41.39)(0.05,-0.35){1}{\line(0,-1){0.35}}
\multiput(105.03,41.75)(0.04,-0.36){1}{\line(0,-1){0.36}}
\multiput(105.01,42.1)(0.02,-0.36){1}{\line(0,-1){0.36}}
\multiput(105,42.46)(0.01,-0.36){1}{\line(0,-1){0.36}}
\multiput(105,42.46)(0.01,0.36){1}{\line(0,1){0.36}}
\multiput(105.01,42.82)(0.02,0.36){1}{\line(0,1){0.36}}
\multiput(105.03,43.17)(0.03,0.36){1}{\line(0,1){0.36}}
\multiput(105.06,43.53)(0.05,0.35){1}{\line(0,1){0.35}}
\multiput(105.11,43.88)(0.06,0.35){1}{\line(0,1){0.35}}
\multiput(105.17,44.24)(0.08,0.35){1}{\line(0,1){0.35}}
\multiput(105.25,44.59)(0.09,0.35){1}{\line(0,1){0.35}}
\multiput(105.34,44.94)(0.1,0.35){1}{\line(0,1){0.35}}
\multiput(105.44,45.29)(0.12,0.35){1}{\line(0,1){0.35}}
\multiput(105.56,45.63)(0.13,0.34){1}{\line(0,1){0.34}}
\multiput(105.69,45.98)(0.15,0.34){1}{\line(0,1){0.34}}
\multiput(105.84,46.32)(0.16,0.34){1}{\line(0,1){0.34}}
\multiput(106,46.66)(0.17,0.33){1}{\line(0,1){0.33}}
\multiput(106.17,46.99)(0.09,0.17){2}{\line(0,1){0.17}}
\multiput(106.35,47.32)(0.1,0.16){2}{\line(0,1){0.16}}
\multiput(106.55,47.65)(0.11,0.16){2}{\line(0,1){0.16}}
\multiput(106.77,47.97)(0.11,0.16){2}{\line(0,1){0.16}}
\multiput(106.99,48.29)(0.12,0.16){2}{\line(0,1){0.16}}
\multiput(107.23,48.6)(0.12,0.15){2}{\line(0,1){0.15}}
\multiput(107.48,48.91)(0.13,0.15){2}{\line(0,1){0.15}}
\multiput(107.74,49.22)(0.14,0.15){2}{\line(0,1){0.15}}
\multiput(108.01,49.51)(0.14,0.15){2}{\line(0,1){0.15}}
\multiput(108.3,49.81)(0.15,0.14){2}{\line(1,0){0.15}}
\multiput(108.6,50.09)(0.15,0.14){2}{\line(1,0){0.15}}
\multiput(108.91,50.37)(0.16,0.14){2}{\line(1,0){0.16}}
\multiput(109.23,50.65)(0.17,0.13){2}{\line(1,0){0.17}}
\multiput(109.56,50.91)(0.17,0.13){2}{\line(1,0){0.17}}
\multiput(109.9,51.17)(0.18,0.13){2}{\line(1,0){0.18}}
\multiput(110.25,51.43)(0.18,0.12){2}{\line(1,0){0.18}}
\multiput(110.61,51.67)(0.19,0.12){2}{\line(1,0){0.19}}
\multiput(110.98,51.91)(0.19,0.12){2}{\line(1,0){0.19}}
\multiput(111.36,52.14)(0.19,0.11){2}{\line(1,0){0.19}}
\multiput(111.75,52.36)(0.2,0.11){2}{\line(1,0){0.2}}
\multiput(112.15,52.58)(0.2,0.1){2}{\line(1,0){0.2}}
\multiput(112.55,52.79)(0.21,0.1){2}{\line(1,0){0.21}}
\multiput(112.97,52.98)(0.21,0.09){2}{\line(1,0){0.21}}
\multiput(113.39,53.17)(0.21,0.09){2}{\line(1,0){0.21}}
\multiput(113.82,53.35)(0.44,0.17){1}{\line(1,0){0.44}}
\multiput(114.26,53.53)(0.44,0.16){1}{\line(1,0){0.44}}
\multiput(114.7,53.69)(0.45,0.15){1}{\line(1,0){0.45}}
\multiput(115.15,53.84)(0.46,0.15){1}{\line(1,0){0.46}}
\multiput(115.61,53.99)(0.46,0.14){1}{\line(1,0){0.46}}
\multiput(116.07,54.13)(0.47,0.13){1}{\line(1,0){0.47}}
\multiput(116.54,54.25)(0.47,0.12){1}{\line(1,0){0.47}}
\multiput(117.01,54.37)(0.48,0.11){1}{\line(1,0){0.48}}
\multiput(117.48,54.48)(0.48,0.1){1}{\line(1,0){0.48}}
\multiput(117.96,54.57)(0.48,0.09){1}{\line(1,0){0.48}}
\multiput(120.03,30.13)(0.12,0.59){21}{\line(0,1){0.59}}\multiput(118.45,54.66)(0.12,-0.36){34}{\line(0,-1){0.36}}
\put(50,30){\makebox(0,0)[cc]{$a_4=3*\int z dz$}}

\linethickness{0.3mm}
\put(105,80){\line(1,0){30}}
\put(105,65){\line(0,1){15}}
\put(135,65){\line(0,1){15}}
\put(105,65){\line(1,0){30}}
\end{picture}


mathematical tool GCLC/WinGCLC by Predrag Janicic

GCLC (from "Geometry Constructions->LaTeX converter") is a tool for visualizing and teaching geometry, and for producing mathematical illustrations. GCLC provides easy-to-use support for many geometrical constructions, isometric transformations, conics, parametric curves, flow control, automated theorem proving, etc. The basic idea behind GCLC is that constructions are formal procedures, rather than drawings. Thus, in GCLC, producing mathematical illustrations is based on "describing figures" rather than of "drawing figures". Figures can be displayed and exported to LaTeX and other formats. WinGCLC is the Windows version of GCLC and provides a range of additional functionalities.

http://www.emis.de/misc/software/gclc/

I didn't see Cirkuit mentioned here already, so here are a few words from the homepage:

Cirkuit is a KDE4 application to generate publication-ready figures. It was born as a KDE frontend for the Circuit macros by Dwight Aplevich, but it now supports different backends. Cirkuit builds a live preview of the source code and can export the resulting images in several formats (EPS, PDF, PNG, SVG, ...). ...
In addition to Circuit Macros, the TikZ and Gnuplot backends are currently supported. Some examples generated with TikZ can be found here. ...

... and a screenshot:

• cirkuit development is dead and it is still a qt4 application. Most distributions have already dropped the qt4 support and cirkuit see: repology.org/metapackage/cirkuit/versions – Jonas Stein Jan 17 '19 at 15:28

LatexDraw is very good in generating PStricks Codes. Its very easy to generate these codes automatically by drawing the figures using LatexDraw. You can get this amazing free software at this link: http://latexdraw.sourceforge.net/

We have to draw somewhat like this:

and the PStricks codes are generated side by side !!

• LaTeXDraw was already mentioned by Lian Tze Lim. – Torbjørn T. May 30 '14 at 8:45
• Yes I have seen .. and I voted up for that. Just wanted to share my views too. – Debashish May 30 '14 at 8:46
• Personally, I don't really see the point of having two answers mentioning the same software. (I don't mean to sound hostile or anything, I just don't think this answer was necessary.) – Torbjørn T. May 30 '14 at 8:53
• ok ... i don't mind – Debashish May 30 '14 at 8:55
• @Debashish You could have edited the answer mentioning LaTeXDraw to include more information. This is the standard practice on the Stackexchange network. – shivams Jun 1 '15 at 7:27

TeXCAD generates figures using pure LaTeX code and the picture enviroment. It is very bare bones compared to LaTeXDraw. Only windows binaries are available on the website.

I actually stumbled upon TeXCAD while searching for an alternative to LaTeXDraw that generates PGF/TikZ code instead of PSTricks code.

• It seems very interesting, I'll try it because I'm searching for an alternative to TikzEdt which is not maintained anymore. Could you please complete your answer with some sample images and a little bit more info about how it works? – CarLaTeX Dec 29 '17 at 3:45

TpX: TeX drawing tool

TpX is a simple graphical editor for Windows for inclusion graphics into TeX files. It can also be used as a standalone editor for vector graphics.

http://tpx.sourceforge.net/

http://sourceforge.net/projects/tpx/

And generates PsTricks, PGF, TikZ and MetaPost.

• Dead project: Last Version: 1.5 (2008-12-07). Besides that it requires Microsoft Windows. – Jonas Stein Jan 17 '19 at 15:38

Actually there is another GUI called WinFIG (see picture) and it is a similar to the XFig but with a restriction to save the objects. WinFIG (free) only saves a maximum of 15 objects per figure. As by important comment of the user @andselisk WinFIG is not free: "WinFIG is shareware and requires registration. Without a keyfile WinFIG only saves a maximum of 15 objects per figure. The registration fee is EUR 30,00 or USD 35.00." See this link: http://winfig.com/registration/.

Yet, there is another GUI that is not mentioned: Xcircuit where the html guide cites a clear reference to LaTeX.

• I think it is worth mentioning that WinFIG is not free: "WinFIG is shareware and requires registration. Without a keyfile WinFIG only saves a maximum of 15 objects per figure. The registration fee is EUR 30,00 or USD 35.00." – andselisk Dec 21 '18 at 17:18

One of the best solutions to draw electric circuits is KiCad.

You can export (plot) the schematic to SVG and do some fine tuning in Inkscape.

Inkscape can render LaTeX directly in the picture and save the picture as PDF for LaTeX.

This fantastic online tool: Mathcha.

It works like a charm, dragging visual lines, shapes, text (or Latex formulae), and others to make your diagram, and outputting TikZ code finally. I tried most of tools mentioned in this post, and none of them can compare this one. I would like to express a huge thank to the developers.

• Its cool but seems like you cannot bind lines to the shapes like circle or rectangle – alper Feb 19 at 21:20

I have been using TpX for a long time. The following are my experiences with TpX only. Other editors may have the following features. I have not used other editors.

After drawing the diagram using the tools for point, vector, curves, shapes etc, (you don't have to use Tikz commands or any other languages.) Press Ctrl + Shift + R to invoke TeX engine which, after running the code, opens (the installed) PDF viewer and displays your diagram!

If you want to change or redraw, go back to TpX program and make the changes. (There is no need to run all of the source code to see a single diagram).

Once completed drawing, save the diagram using the file menu or tool menu.
Wait. Before that you can choose the format (from the tool menu item)

• for output to the printer (available ones are: TeX, pgf, PDF, PNG, metapost, tikz, epstopdf and none) and
• for view on the monitor (available ones are all of the above plus: BMP, EMF and EPS).

The diagram will be saved in an ASCII file (say foo.tpx) with the relevant code suitable both for printer and monitor. (Please include \usepackage{ifpdf} in the preamble).

In the LaTeX source file use \input{foo.tpx}.

If you want to change anything in the diagram just 'switch' over to TpX, make the changes and save it.

• The formulas are rendered in LaTeX!
• You can directly insert pictures of format: JPG, BMP, and EMF.
• Moreover the images copied by Ctrl + C from any MSWin program can be inserted in to your diagram, by using capture EMF tool that is available in the menu!
• TpX program can be invoked from the WinEDT also.

Other tools which are missing:

I add also pictikz there is also an additional extension for InkScape that converts a svg image to tikz code. Here there is the link of the official site on GiTHub: https://github.com/mgmillani/pictikz and an external link http://hackage.haskell.org/package/pictikz where it is possible to find the instructions to install this extension.

Since early X11, I've been using tgif as my main tools for drawing diagrams. I've been using it to draw circuit-related diagrams and general diagrams. The reason I am still using this tool (after zillion years ago) is that it is small (light weight) and quick for simple graphs. The output is also small.

It's available here: http://bourbon.usc.edu/tgif/

(On my Linux machine is as simple as "apt install tgif"

Here is an example of the screen. I used to have logic gates in my collections, but don't have them in this (example) screenshot.

• The project development stopped at version 4.2, patchlevel 5 -- Jun 27, 2011. – Jonas Stein Jan 17 '19 at 15:41