There are drawing programs, and there are schematic capture programs. All schematic capture programs will produce output for inclusion in publications. However, these programs have different goals, and it shows. Rarely is the output of a schematic capture program really suitable for publication; often it is not even readable, or cannot be scaled. Engineers who really want to have a useful schematic drawing of a circuit usually redraw the circuit in a general drawing program, which can be both tedious and prone to introducing new errors.
XCircuit is a UNIX/X11 (and Windows, if you have an X-Server running, or Windows API, if not) program for drawing publishable-quality electrical circuit schematic diagrams and related figures, and produce circuit netlists through schematic capture. XCircuit regards circuits as inherently hierarchical, and writes both hierarchical PostScript output and hierarchical SPICE netlists. Circuit components are saved in and retrieved from libraries which are fully editable. XCircuit does not separate artistic expression from circuit drawing; it maintains flexibility in style without compromising the power of schematic capture.
XCircuit is flexible enough to be used as a generic program for drawing just about anything, and is competitive with powerful programs such as “xfig”. It is especially good for any task requiring repeated use of a standard set of graphical objects, including architectural drawing, printed circuit board layouts, and (my personal favorite) music typography.
XCircuit was written and is maintained by Tim Edwards, currently with the Johns Hopkins University Applied Physics Laboratory in Laurel, Maryland. XCircuit started life in the summer of 1993 as a drawing program to render circuit diagrams for an undergraduate electrical engineering course in the Johns Hopkins University Whiting School of Engineering Part-time programs. Since then, it has expanded to encompass schematic capture and is used by people all over the world for both presentations and as an EDA (Electonic Design Automation) tool.