1
.TH XCircuit 1 "January 5, 2000" "X11R6"
3
xcircuit - Draw circuit schematics or almost anything; make
4
circuit netlists from schematics.
6
.B xcircuit [\fIfilename\fP[,...]]
8
The program xcircuit is a generic drawing program tailored
9
especially for making publication-quality renderings of
10
circuit diagrams (hence the name). The output is pure
11
PostScript, and the graphical interface attempts to maintain
12
as much consistency as possible between the X11 window
13
rendering and the final printer output.
15
\fIxcircuit\fP is mouse, menu, and keyboard\-driven, with the emphasis
16
on single-character keyboard macros.
19
.B \fIfilename\fP[,...]
20
Begin running xcircuit by loading in the PostScript file
21
filename. If filename does not have a .ps extension,
22
xcircuit will attempt to look for both the filename
23
as entered and, upon failure, with the .ps extension.
24
The file must be in xcircuit format. \fIfilename\fP
25
may also be a comma-separated list of files.
28
There are five drawing elements. These are as follows:
31
polygon (multiple lines which may or may not be closed and filled)
34
arc (ellipse segment which may be closed and/or filled as above)
40
curve (based on the PostScript "curveto" algorithm)
43
object instance (see below)
45
There are two composite elements, which are:
48
path (a connected series of polygons, arcs, and curves)
51
object (something containing polygons, arcs, labels,
52
curves, paths, and instances of other objects)
55
The mouse button system, the object library, and the paged buffer
56
system are loosely based on the
57
Caltech circuit-simulation program "log" (either "analog" or "diglog").
59
The general idea is to make the most commonly-used functions the
60
easiest to perform, and (to the extent possible) to scale (inversely)
61
the complexity of performing a function with the frequency of that task.
62
Because this program is tailored to circuit drawing, the most common
63
functions are drawing lines and moving object instances. The next most
64
common function is selection of elements singly or in groups.
66
Mouse button 1 can be tapped to start a connected chain of lines, the
67
most common drawing function. In addition, button 1
68
has a function called "grab", which occurs after the button has
69
been continually pressed for a short length of time (about 1/5 second).
70
As the name implies, "grab" grabs hold of an element which can then
71
be moved around the screen.
73
Button 2 can be used to select an item if tapped, and if pressed
74
and held down, a box will be drawn and everything inside that box
75
selected when the button is released. In all other cases, button 2
76
will complete a command. For users who have only two mouse buttons
77
and do not emulate the middle mouse button with the combination of
78
buttons 1 and 3, use the combination of the Shift key and mouse
79
button 1 to emulate mouse button 2.
81
Button 3 will normally abort a command. During editing of an arc,
82
spline, or polygon, button 3 will revert back to the previous form,
83
or abort if there is no remaining edit history.
85
All other commands are
86
available from the pulldown menus and/or from the keyboard using
87
single-key macros (with easy-to-remember mnemonics).
88
Keyboard commands are quicker, since they act on the present cursor
89
position, whereas menu commands require an extra step.
92
The library is intended to provide a convenient way to store and
93
retrieve elements of a picture which will be used more than once.
94
For the application of circuit drawing, a built-in library provides
95
basic objects such as transistors, amplifiers, resistors, capacitors,
96
arrows, circles, power and ground symbols, and the like. This file
97
is a composite of several library files (such as "builtins.lps",
98
"analog.lps", and "digital.lps") which are called by the startup
100
PYTHON ("xcstartup.py")
101
TCL ("xcstartup.tcl")
102
NOINTERP ("startup.script")
103
The program first looks for the startup script in
104
the current directory, and then searches in the directory given by
105
the environment variable "XCIRCUIT_LIB_DIR", and finally, in the
106
hard-coded global directory (LIBDIR) if it could not find it elsewhere.
107
Thus each user can add to or modify the file of builtins to reflect
108
personal taste. Since the PostScript output contains all object
109
definitions, these changes to the built-in functions are inherently
110
transferrable. Xcircuit will automatically resolve conflicts between
111
objects having the same name but different contents.
113
The library is accesible from the pull-down menu or with the "l"
114
keyboard macro. When inside the library, clicking the first mouse
115
button on an object "grabs" that object and returns the graphics
116
state immediately to the page being edited, so that the object
117
will be placed when the mouse button is released.
120
Xcircuit has unconstrained zooming and snap-to positioning. Objects
121
scale completely: line widths and text sizes will increase/decrease
122
proportionally with the zoom, as well as dot/dash spacing and all
123
other features. Xcircuit does have a minimum integer grid in
124
coordinate space, which translates to 0.005 inches at an output scale
125
of 1. The maximum zoom scale gives a screen size translating to
126
about 100 by 100 inches at an output scale of 1. The effective
127
scale can be varied by changing the output scale (reached from the
128
"File/Write" menu selection) in order to fit a drawing to a page or
129
to get a grid matched to a specific dimension. A separate scale
130
parameter changes the scale of the reported position relative to
131
the output scale (as it will appear on a printed page).
134
The snap-to grid is an all-important feature for circuit drawing,
135
wherein it is critical that elements line up properly with one another.
136
In \fIxcircuit\fP, there is no way to get off the snap-to grid except by
137
turning the snap function off and physically pushing elements off
138
the grid. Generally, it is most convenient to leave the snap functon
139
on and use key macros "+" and "-" to double/halve it as necessary.
140
In any case, objects can always be returned to the snap grid with
141
the "snap" function (key macro "S").
143
.SH SELECTION MECHANISM
144
Objects are selected using a variety of search methods. The
145
select box (formed by holding down mouse button 2 and dragging
146
the pointer) uses the simplest method, searching for
147
curve/polygon segment endpoints, arc centers, and label
148
and object bounding boxes falling within the select box frame.
149
General object selection is more complicated. Polygons, Arcs,
150
and Curves are selected by their outer edges, not the interiors.
151
Currently this is also true for filled instances of those types.
152
A line is selected if the pointer is in a
153
region describing a box around it, which is adusted according
154
to the scale (zoom factor). Every object has an
155
associated bounding box, which is rectangular but may be rotated
156
with respect to the top level window. An object instance is
157
selected if the pointer falls within its bounding box. Each
158
label also has a bounding box carefully calculated from the width
161
Often the selection mechanism will find multiple elements in
162
range of the pointer. In this case, each object in turn will be
163
presented, colored in blue (or the specified "querycolor" in the
164
defaults file), and the user has the option of accepting the
165
highlighted element for selection using the mouse button 1, or
166
rejecting it with mouse button 3. When all the elements under
167
consideration have been accepted or rejected, the program
168
proceeds to execute whatever function was in progress. This
169
selection method takes a little while to get used to, but is
170
sensible and seems to work well.
173
Color in xcircuit is implemented with the idea of "color inheritance".
174
Every page has a "default color" of black. All elements which have
175
color value "Inherit" will inherit the default color, black. If an
176
object instance is painted blue (for instance), all components in
177
that object which have color value "Inherit" will inherit its color,
178
blue. The reason for this is that it allows different object
179
instances to be painted different colors (such as if one part of
180
a circuit is highlighted for emphasis), while making it possible for
181
object instances to be multicolored, if necessary. Changing the
182
color of an object instance will have no observable effect on the
183
drawing if none of the components of the object inherit that color.
184
An object may have both normally colored components and components
185
which inherit their color, in which case only those components with
186
the "Inherit" value will change color when the color of the object
189
.SH SCHEMATIC CAPTURE
190
XCircuit implements a sophisticated schematic capture. Unlike
191
virtually all schematic capture software currently available,
192
xcircuit allows the designer to draw the circuit in a "natural"
193
way, making use both of schematic hierarchies and simple
194
hierarchies created simply by grouping elements together. If
195
the chosen netlist format is hierarchical (like SPICE), both
196
hierarchical forms will be retained in the output. For element
197
grouping, input/output ports connecting into to the group will
198
be determined automatically, from context. A schematic capture
199
tutorial is available from the xcircuit website,
201
http://opencircuitdesign.com/xcircuit/tutorial/tutorial2.html.
204
Netlist types currently available are "SPICE", "sim", and "PCB".
206
.SH KEYBOARD COMMANDS
209
\fBBasic keyboard commands:\fP
212
Zoom in by a factor of 3/2. If this key is pressed while a
213
selection box is active (created with the middle mouse
214
button), then acts like Zoom Box function.
217
Zoom out by a factor of 3/2.
220
Pan the screen so that the point under the mouse is brought
221
to the center of the program window. This function can also
222
be conveniently performed by clicking on the scrollbars.
223
The scrollbars cannot be moved continuously due to the slow
224
time for screen refresh.
227
The arrow keys perform a pan of one-half window size in the
228
direction of the arrow pressed.
231
Go to the Library of built-in objects. From the library,
232
use mouse button1 to grab an object and bring it back to
233
the edit screen, or button3 to return without selecting
234
an object instance. While in the library screen, the
235
zoom and pan functions can be used to move around.
238
Push into an on-screen object in order to edit that object
241
Return from editing an object. Object pushes and pops can
242
be stacked indefinitely.
248
Switch to one of the first ten editing pages. Pages greater
249
than 10 can be reached from the "Window/Goto Page" menu
253
Change snap-to grid spacing by a factor of two up or down.
256
(Bar, colon, and underline) Change style on the currently
257
selected object to dashed, dotted, and solid, respectively.
260
Print a help page summary of commands
263
\fBCommands to create elements:\fP
266
Arc. Center is fixed at the initial position of the cursor.
267
The mouse position changes the radius of the circle.
268
In snap-to mode the arc boundry will pass through the snap point
269
closest to the cursor. Mouse button 1 cycles from controlling
270
the radius to controlling the starting point, the ending point,
271
and separately controlling the minor axis to create ellipse.
272
Mouse button 2 completes the arc.
275
Box. This is a convenience function for generating rectangular
276
closed polygons. Creates a rectangle with one corner fixed at
277
the position of the cursor. Subsequent movement of the cursor
278
defines the point diametrically opposed. Mouse buttons 1 or 2
282
Spline curve. The first endpoint is defined by the initial cursor
283
position. Mouse position adjusts the other endpoint of the curve.
284
Mouse button 1 cycles from controlling position of the endpoint
285
to controlling positions of the curve control points and the curve
286
starting point. Mouse button 2 completes the curve.
289
Text. Text starts out justified according to the styles chosen
290
in the pull-down menu. Text can be rejustified using the menu
291
or by typing the numbers on the keypad (\fBshift-keypad-1\fP through
292
\fBshift-keypad-9\fP). The position of the keys on the keypad
293
matches the justification. Subscripts, superscripts, font
294
changes, text size changes, underlining, and overlining are all
295
available from the pull-down menu. Text edit mode recognizes
296
\fBHome\fP and \fBEnd\fP keys to move to the beginning and end
297
of the string, respectively. If the X11 environment maps
298
control key sequences to character encodings (such as ISO-Latin1),
299
these may be used to insert non-ASCII text. Another method of
300
inserting non-ASCII characters is the use of the backslash
301
character, which duplicates the action of the
302
Text/Insert/Character menu button.
305
Make object. Takes all the elements currently selected and
306
compiles them into an object. The object is then placed in the
307
user library. The elements just selected are deleted from the
308
screen and replaced by the new object. The center point of the
309
resulting object is chosen as the closest snap-to point to the
310
center of the object's bounding box; if another center is desired,
311
then the object can be edited using the ">" command and its contents
312
moved with respect to its origin. \fINote:\fP Objects cannot have
313
the same name as PostScript commands or have the same name as any
314
other object in memory. If such a name is found, an underscore ("_")
315
will be prepended to the name as many times as is necessary to
316
differentiate it from all other known objects.
317
The name also cannot contain special PostScript characters such as
318
slash; any such characters found will be replaced with underscores.
321
\fBMajor editing commands:\fP
324
Delete. Select the nearest element or elements and delete it/them.
327
Undelete. Xcircuit saves up to 10 delete events to be recovered.
328
Delete events are stored in order of occurrence, and the most
329
recent delete event is the first to be recovered.
330
When multiple elements are deleted at the same time, all of them
331
are stored as one delete event, and restored together.
334
Deselect. Elements which have been selected can be deselected on
335
a per-item basis. In order not to be too confusing, deselect does
336
not query if multiple items are found under the cursor; it just
340
Copy. Make a copy of the object(s) nearest the cursor. Object
341
is automatically grabbed for moving to a new position. The
342
next button1 or button2 press will place the element. Button2
343
will end the copy, and button1 will continue the copy function.
346
Edit. The action of Edit is dependent on the type of element
347
selected. These are detailed below:
350
Returns to text editing mode, starting with the cursor
351
at the end of the string. Mode is like regular text entry
352
except that Button 3 returns text to its original string.
355
Grabs one point of a polygon for repositioning. Button 1 cycles
356
between points, button 2 accepts the new polygon, and button 3
357
returns to the previous state, unless there is no remaining edit
358
history, in which case it aborts the command.
359
Key macros available during polygon edit are:
361
"x"---Breaks the polygon at the given point.
363
"e"---Moves edit position to the next point.
365
"i" or "Insert"---Inserts a new point at the position.
367
"d" or "Delete"---Deletes the current edit point.
369
There are four modes for polygon editing; see the
370
"\fBPolygon Edit\fP" section below for details.
373
Allows resizing of the radius. Mouse button 1 or the "e" key
374
will cycle between control of the radius, the endpoint angles,
375
and the ellipse minor axis. Mouse button 2 accepts the new
376
arc. Button 3 returns to the previous editing state,
377
unless there is no remaining edit history, in which case it
381
Allows repositioning of one end of the curve.
382
Originally, the starting angle of the curve is kept fixed.
383
Mouse button 1 or the "e" key cycles between the four
384
control points of the curve, allowing control over the
385
angle of the curve at its endpoint and the shape of the
386
curve. Mouse button 2 accepts the new curve. Button 3
387
reverts back to the previous edit state
388
unless there is no remaining edit history, in which case
389
it terminates the command.
392
Object instances have no properties to change
393
except scale, and do not respond to the "edit" command.
394
Scale can be changed by selecting "Options/Other/Object Size"
398
\fBMinor editing commands:\fP
401
Rotate the selected element(s) or element under the cursor
402
counterclockwise in 15 degree intervals.
405
Rotate the selected element(s) or element under the cursor
406
clockwise in 15 degree intervals.
409
Rotate the selected element(s) or element under the cursor
410
counterclockwise by 5 degree intervals. This is currently
411
the smallest angle resolution available to xcircuit.
414
Rotate the selected element(s) or element under the cursor
415
clockwise by 5 degree intervals.
418
Flip an element around a vertical axis defined by an object's
419
origin for an object instance, or across an axis defined by
420
the pointer position for arcs, polygons, and curves.
423
Flip an element around a horizontal axis defined
424
similarly to the "f" command.
427
If two elements are selected, their order is exchanged
428
(this is only relevant if one element occludes another).
429
If one element is selected, it is raised up one in the
430
stack, and if it is already on top of the stack, it is
431
shuffled to the bottom.
434
Snap the nearest object to the snap-to grid. For
435
curves the control and endpoints are snapped; for polygons, each
436
point is snapped; for arcs, the centerpoint is snapped; for labels
437
and object instances, the designated point of origin is snapped.
440
Join polygons together. This only makes sense if it is possible
441
to make a single continuous (open or closed) polygon from the
442
selected parts. Otherwise a warning will be posted and the parts
443
will remain separate.
446
Attach an element to a polygon, arc, or curve.
447
The element to be attached must be the one currently grabbed
448
(either by a "drag", copy command, or edit command).
449
Until it is released, it will be forced to align
450
its center (object, arc), endpoint (polygon, curve), or
451
position (label) with the closest polygon, arc, or curve.
452
Note that this is a very powerful tool for generating, for
453
example, lines tangent to a curve, or objects arranged in
454
a circle or along a line.
457
\fBLibrary editing commands:\fP
460
Delete. The selected objects will be deleted from the library
461
unless other library objects or pages contain references to that
462
object. \fBNote:\fP Unlike deleting object instances with the
463
"\fBd\fP" command, this command deletes the actual object and
464
releases all memory associated with that object, so the
465
object cannot be undeleted.
468
Copy. Makes a copy of an object from either library page and
469
places the new copy in the user library. The new object will
470
be renamed to avoid naming conflicts.
473
Move. If one object has been selected, it is moved to the
474
position of the cursor. If two objects have been selected,
475
their positions in the library are exchanged.
478
Edit label. Edit the object name whose label is under the
479
cursor. After editing, the object name will be checked for
480
conflicts with other object names, and altered if necessary.
483
Hide object. If the object is a sub-instance of another object,
484
but is not meant to be used by itself, it can be "hidden" so
485
that it will not appear by itself on the library page.
490
.B Write Postscript (W)
491
This command brings up a popup menu with a number of options.
492
First, it gives the name of the file if one exists, or else it
493
gives the default name of the buffer (usually \fBPage\fP \fIn\fP,
494
where \fIn\fP is the number of the buffer).
495
Next, it gives a preview of the picture scale and output
496
styles, which include Landscape/Portrait orientation and
497
Encapulated/Unencapsulated (full page) PostScript modes.
498
The former allows adjustment of the nominal size of the picture
499
when drawn in PostScript. The default scale is 1.00, which
500
makes the text scale of 1.0 about 14 points on the PostScript
501
page. The width and height of the resulting
502
picture are also given, in inches, and any of the three
503
values can be changed. The values of the other two will
504
be updated accordingly. Pages which have the same name
505
will be grouped together into a single file, allowing
506
multiple pages to be stored in the same PostScript file.
507
However, as Encapsulated PostScript does not make sense
508
for this kind of file, it is not an option.
510
The \fBWrite File\fP button writes the current page to an
511
output file. If the page has a name other than the default,
512
the file will automatically be saved under that name. Otherwise,
513
it is necessary to change the name of the buffer. If a file of
514
that name already exists on the disk, the button will read
515
\fBOverwrite File\fP.
518
Reads in a file of Xcircuit format. The
519
file name is requested by a popup prompt, and an extension
520
of ".ps" will be added if necessary. The file is read
521
into the current page, which is cleared first if anything
522
is in it. If the file is a multiple-page file, the current
523
page will be overwritten with the first page from the file,
524
but other pages will be loaded into empty buffers.
525
LGF Xcircuit can also read "lgf"-format files from
526
LGF the Chipmunk CAD tools programs "analog" and "diglog".
529
Acts like "Read PostScript" except that the page is not
530
reset first, so graphics are added on top of existing
531
graphics on the page.
534
Clears the current page of all elements and resets the
535
name. The contents cannot be recovered.
538
Switches between the two xcircuit color schemes. The
539
color schemes can be redefined through XDefaults
540
(see below). The default color schemes are black-on-white
541
and white-on-black. The latter is less straining to the
542
eyes, but the former matches the black ink on white paper
543
PostScript output. Any color scheme other than black-on-white
544
is not recommended for drawings with color, as the actual
545
output does not match the observed xcircuit screen.
548
Turns the grid lines on and off.
551
Turns the axis lines on and off. The axes mark the
552
origin (0,0) of the page. On the top level (TopObject),
553
the origin has no particular relevance, since encapsulated
554
output will define its own boundaries, and full-page
555
(unencapsulated) output will be centered on the output
556
page, not according to the Xcircuit coordinate system.
559
Changes the spacing of the grid lines.
560
Default spacing is 1/6 inch, which is about
561
the width of the letter 'W' in default text scale.
564
This is a submenu allowing the coordinates and coordinate
565
grid to be specified in alternate units. Listing of
566
coordinates in the top window can be in default fractional
567
inches, decimal inches, or centimeters. Default spacing
568
of grid lines is either one-quarter inch or one-half
569
centimeter. Selecting an A:B scale With option
570
"\fBDrawing Scale\fP" causes all listed coordinates to be
571
multiplied by the scale. \fINote:\fP Xcircuit will make
572
an attempt to keep objects on the snap/grid spacing when
573
switching between inch and centimeter scales. In order
574
to do this, it will change the output scale by the ratio
575
of 2.54 to 2.5, thus keeping a closer correspondence between
576
inches and centimeters. To get true centimeters on the
577
output page, the output scale (from the "File/Write Xcircuit PS")
578
can be reset to 1.0 at the expense of having all objects
579
intended for the inch grid displaced off of the snap grid.
582
Turns the snap-to grid on and off. When the grid
583
is on, movement and placement of elements is restricted
584
to points on the snap-to grid.
587
Determines the spacing of the points in the
588
snap-to grid. Default is 1/12 inch, which is half
589
the grid line spacing.
592
Controls the default linewidth against which
593
all linewidths in the drawing are scaled.
596
The options in this submenu control how the position of
597
lines are affected when a point in a polygon is selected
598
for editing. "\fBRhomboid-X\fP" mode moves adjoining
599
points as necessary to keep all horizontal lines horizontal;
600
"\fBRhomboid-Y\fP" mode acts similarly to keep all vertical
601
lines vertical. "\fBRhomboid-A\fP" is similar to Manhattan
602
mode but also tracks non-Manhattan lines.
603
The default mode is "\fBManhattan Box Edit\fP",
604
which is a combination of Rhomboid-X and Rhomboid-Y. In
605
"\fBNormal\fP" mode, only the point being edited can be moved.
607
.B \fPArc/Box/Curve\fB Border
608
The options under this menu determine the
609
border style of arcs, polygons, and curves. If an element
610
is selected, it will be modified; otherwise, if
611
no objects are selected, the style chosen is made
612
default for all subsequent arcs, polygons, and curves.
613
Elements may be drawn with or without borders (but
614
for obvious reasons cannot be made both borderless
615
and unfilled, which would be invisible)
616
The borders may be closed or unclosed. For an arc,
617
closed means that a chord is drawn connecting the two
618
endpoints, if the beginning and ending angles do not
619
complete a full circle. Borders may be solid, dashed,
620
dotted, and of varying width.
622
.B \fPArc/Box/Curve\fB Fill
623
The options under this menu determine the
624
fill style of arcs, polygons, and curves.
625
Fill style may be solid, empty, or one of 7 stipple
626
patterns varying from light to dark, which are drawn
627
both in xcircuit and PostScript as stipple patterns.
628
Stipples can be transparent or opaque.
629
\fIWarning\fP: Transparent
630
stipples are NOT inherent to PostScript and the hacks
631
necessary to implement them cause slow rendering on
632
a printer or PostScript previewer. Due to the
633
device-dependent nature of the routines, patterns
634
will look abnormally large on PostScript previewers.
635
This transparancy feature has been added with the
636
expectation that most circuit schematics will not
637
rely heavily upon halftoning. Complicated color
638
patterns can be created using transparent colored,
639
stippled elements on top of solid-color elements.
640
\fINote\fP: Ordering of elements is according to
641
order created. A different ordering can be achieved
642
using the "\fBX\fP" (exchange) command. This method
643
is not especially easy to work with, and hopefully
644
something better will be implemented in the future.
646
.B \fPArc/Box/Curve\fB Color
647
See the COLOR section above for a discussion of color
648
inheritance. This menu shows all the colors available
649
to xcircuit with the option of adding more colors.
650
Currently the entry style for colors is by name or by
651
RGB content in the X11 style of #rrggbb where rr, gg,
652
and bb are hex values ranging from 00 to FF. The only
653
limit to the number of colors is the X Server's colormap
654
depth. If the colormap is full, xcircuit attempts to
655
allocate the closest possible color to the one requested.
658
This zoom feature requests the user to create a box
659
(using either mouse button 1 or 2, expanding the box
660
while holding down the button). When the button is
661
released, the view will zoom to the area of that box.
664
This zoom feature calculates the bounding box
665
of the entire picture and adjusts the scale to make
666
it fit comfortably inside the program window.
668
Xcircuit's ability to handle text is arguably the
669
most complicated part of the program, and also of
670
the PostScript output. Careful attention to text
671
justification and style is the key to a good drawing.
674
Alters the size of the labels. The value is
675
a scale, with a default of 1.0 which translates to
676
14 points on the PostScript page if the default page
677
scale of 1 is used. If a label is selected, only that
678
label is affected. If a label is being edited, scale
679
changes starting at the edit position. Otherwise, it
680
becomes the default size for all subsequent labels. Size
681
affects the entire text string. Text size can be changed
682
anywhere inside of a string. However, text sizes inside
683
a string are all given relative to the label size, not as
684
an absolute point size. Sizes of subscripts and superscripts
685
are given relative to the natural size of the subscript or
686
superscript (2/3 the size of the text for which it is a
690
Standard printer fonts Times-Roman, Helvetica,
691
Courier, and Symbol, are readily available.
692
"User-defined" fonts can also be added; however,
693
support is currently limited, and requires a font
694
object (.lps) file and encoding (.xfe) file,
695
examples of which are found in the fonts subdirectory
696
of the xcircuit library directory.
699
Four standard font styles are available,
700
matching the standard printer font variations: Normal,
701
Italic (or oblique), Bold, and BoldItalic.
702
PostScript matrix manipulation allows slanted versions
703
of any font, such as Symbol, for which none is otherwise
707
The Insert menu allows insertion of special characters
708
which are otherwise not (necessarily) allowed from the
709
keyboard. These include tab-stop, tab-forward, tab-backward,
710
kern, half-space, quarter-space, and "Character". The latter
711
option brings up a page showing the 256-character encoding
712
vector for the font, allowing point-and-click entry of any
713
character in the font. "Kern" instructions allow characters
714
to be offset vertically or horizontally relative to the rest
717
.B \fPText\fB Encoding
718
Two standard font encodings are available by default,
719
Standard (Adobe) Encoding, and ISO-Latin1 encoding.
720
ISO-Latin2 and ISO-Latin5 encodings exist in the
721
library directory, but require the use of the program
722
"ogonkify" (not included) to produce correct output on
725
.B Super and Subscripts
726
Superscript and subscript are
727
designed to closely match those in TeX output, though
728
they lack the proper context-dependent kerning and
729
other fancy features of TeX. A superscript following
730
a subscript results in a superscripted subscript.
731
To get a superscript on top of a subscript, use the
732
backspace character (see below).
733
The Normalscript style is the way to get
734
out of a sub or superscript and return to the normal
736
Quick super/sub/normalscripting is available from the
737
keypad with the "\fB+\fP" (plus), "\fB-\fP" (minus),
738
and "\fBEnter\fP" keys, respectively.
740
.B Overline and Underline
741
Overlining and underlining styles
742
remain in effect until the next occurrence of a style
743
or font change. Overlining is
744
lower if all the characters are lowercase and do not
745
include the "tall" lowercase characters. Overlining
746
or underlining can be stopped at any time using the No
747
Line style. Over and Underlining is *always* preferable
748
to using a line. PostScript will adjust the over or
749
underline to the text size and extent and actually grab
750
the "_" character and compute its thickness in order to
754
From version 2.3, xcircuit allows embedded tab stops.
755
Tab stops must be defined before using tab-forward or
756
tab-backward. The "Tab" keyboard key inserts an
757
embedded tab-forward instruction into a label. Tab-stop
758
and tab-backward can be inserted using the Text->Insert
759
menu. A tab-forward instruction moves the cursor
760
to the first defined tab stop forward of the current
761
position. A tab-backward instruction moves the cursor
762
to the first defined tab stop backward of the current
763
position. If no appropriate tab stop exists, the
764
instruction has no effect.
767
The use of the backspace character is deprecated from
768
xcircuit version 2.3. The effect of an embedded backspace
769
is more reliably produced using tab-stop and tab-backward.
771
.B Halfspace and Quarterspace
772
These options allow fine control over spacing, particularly
773
useful when writing equations.
776
Text justification always starts with the
777
default, chosen from the options in the menu, but may
778
be changed at any time using the numbers on the keypad.
779
The position of the keys on the keypad reflect the
780
point of justification: 1, 4, and 7 are right-justified,
781
7, 8, and 9 are bottom justified, 5 is centered in both
782
directions. Since the letters drawn by xcircuit are
783
optimized for the Helvetica font, correct justification
784
is the main way to get text to come out on the PostScript
785
page in the desired way, relative to objects or boxes or
788
Certain parameters of the xcircuit program can be
789
initialized from a file called \fB.xcircuitrc\fP, which
790
is first searched for in the current directory, and then
791
in the user's home directory as defined by the environment
793
PYTHON The XCircuitrc file is written in
794
PYTHON Python (see www.python.org), with certain commands whose
795
PYTHON main purpose is to transfer data structures between
796
PYTHON the Python interpreter and XCircuit.
797
PYTHON These commands are as follows:
799
PYTHON .B library("\fIlibname\fP" [, \fInum\fP])
800
PYTHON Loads a library named \fIlibname\fP (with or without .lps
801
PYTHON extension) into the set of built-in objects. \fInum\fP,
802
PYTHON if specified, puts the specified library onto library page
803
PYTHON \fInum\fP (starts at 1).
805
PYTHON .B override("library")
806
PYTHON Causes the default libraries defined in "builtins.lps"
807
PYTHON \fInot\fP to be loaded.
809
PYTHON .B override("colors")
810
PYTHON Causes the default colors \fInot\fP to be loaded; this will
811
PYTHON not override the allocation of black and white, however,
812
PYTHON for obvious reasons.
814
PYTHON .B font("\fIfontname\fP")
815
PYTHON Adds a font named \fIfontname\fP (as recognized by a
816
PYTHON printer) to the menu of selectable fonts.
818
PYTHON .B color("\fIcolorname\fP")
819
PYTHON Adds a color named \fIcolorname\fP (standard X11
820
PYTHON conventions) to the menu of selectable colors.
822
PYTHON .B bind("\fIkey\fP", "\fIfunction\fP")
823
PYTHON Binds the key (or button) named \fIkey\fP to the function named
824
PYTHON \fIfunction\fP. If only one argument is given, it can be
825
PYTHON either a key name or a function name, and bind() returns
826
PYTHON the associated binding(s). If no argument is given, then
827
PYTHON bind() returns a dictionary of all key bindings.
828
PYTHON Valid function names are listed in section "KEY BINDINGS" below.
830
PYTHON .B unbind("\fIkey\fP", "\fIfunction\fP")
831
PYTHON Unbinds the key (or button) named \fIkey\fP from the function named
832
PYTHON \fIfunction\fP.
833
PYTHON Valid function names are listed in section "KEY BINDINGS" below.
835
PYTHON .B set("\fItype\fP", "\fIvalue\fP")
836
PYTHON Sets internal xcircuit variables, where \fItype\fP can be one of:
840
PYTHON Where \fIvalue\fP is one of "manhattan", "rhomboid-x", "rhomboid-y",
841
PYTHON or "normal". Determines the default way manhattan-aligned polygon
842
PYTHON edges are manupulated during edits.
844
PYTHON \fBlinewidth\fP
846
PYTHON Where \fIvalue\fP is a real number indicating the default
847
PYTHON width of lines.
849
PYTHON set("\fBbeep\fP", "on"|"off")
851
PYTHON Where \fIvalue\fP can be \fBon\fP or \fBoff\fP, depending on
852
PYTHON whether or not you want the machine beeping at you when it
853
PYTHON gives critical warnings.
855
PYTHON set("\fBcolorscheme\fP", "normal"|"inverse")
857
PYTHON Where \fIvalue\fP is \fBinverse\fP to swap the two color schemes
858
PYTHON and make the second scheme appear as default.
860
PYTHON \fIh\fP = newelement("\fIname\fP")
862
PYTHON Creates a new element and returns a handle (pointer) \fIh\fP to it which
863
PYTHON can be used to get and set element attributes. Valid names are
864
PYTHON "Arc", "Spline", "Polygon", "Object Instance", "Label", and "Path".
866
PYTHON \fId\fP = getattr(\fIh\fP)
868
PYTHON Creates a dictionary \fId\fP of attributes for the element with handle
869
PYTHON \fIh\fP. Dictionary keys depend on the element.
871
PYTHON setattr(\fIh\fP, \fId\fP)
873
PYTHON Applies the dictionary \fId\fP key:value pairs to the element pointed to
874
PYTHON by handle \fIh\fP.
876
PYTHON \fId\fP = getpage(\fIvalue\fP)
878
PYTHON Returns a dictionary \fId\fP containing information about the page \fIvalue\fP.
879
PYTHON If \fIvalue\fP is not specified, returns information about the current page.
880
PYTHON The dictionary includes a list "\fIparts\fP" of handles to every element drawn
881
PYTHON on the indicated page.
883
PYTHON \fId\fP = getlibrary(\fIname\fP)
885
PYTHON Returns a dictionary of objects for the indicated library,
886
PYTHON referenced by \fIname\fP, or by page number. The dictionary contains a
887
PYTHON list "\fIobjects\fP" of names of every object in the library.
889
PYTHON \fId\fP = getobject(\fIname\fP)
891
PYTHON Returns a dictionary containing all information about an object, which
892
PYTHON is referenced by \fIname\fP. The dictionary contains keys "\fIname\fP",
893
PYTHON containing the object name, "\fIwidth\fP" and "\fIheight\fP", a
894
PYTHON list "\fIparts\fP" containing handles to each element comprising the
895
PYTHON object, and a list "\fIparameters\fP" containing all the parameters
896
PYTHON defined for the object and their default values.
898
PYTHON zoom(\fIfactor\fP)
900
PYTHON Zooms by amount \fIfactor\fP. Values greater than 1 indicate a zoom in;
901
PYTHON values less than 1 indicate a zoom out.
903
PYTHON pan(\fIposition\fP)
905
PYTHON Centers the screen on the (user) coordinate \fIposition\fP, which can be
906
PYTHON either a (X,Y) tuple or two integers X, Y.
910
PYTHON Refreshes the screen. The screen is automatically refreshed after every
911
PYTHON Python command, but the \fBrefresh()\fP function can be used along with the
912
PYTHON \fBpause()\fP function for animation effects.
914
PYTHON pause(\fIdelay\fP)
916
PYTHON Pauses for \fIdelay\fP seconds (is a floating-point number). Useful in
917
PYTHON conjunction with \fBrefresh()\fP for animation effects.
919
PYTHON \fIt\fP = getcursor()
921
PYTHON Returns a tuple \fIt\fP containing the current X and Y position of the cursor.
924
PYTHON \fIt\fP = getwindow()
926
PYTHON Returns a tuple \fIt\fP containing the current window width and height.
928
PYTHON popupprompt(\fIprompt\fP, \fIfunction\fP)
930
PYTHON Generates a popup window with text entry. \fIprompt\fP will be printed above
931
PYTHON the text entry window. Python function \fIfunction\fP (referenced by name)
932
PYTHON will be called when clicking the "Okay" button or pressing the Return key
933
PYTHON ends the text entry. The function will be passed the contents of the text
934
PYTHON window as its (only) parameter.
936
PYTHON filepopup(\fIprompt\fP, \fIfunction\fP)
938
PYTHON Operates exactly like \fBpopupprompt()\fP, except that the window is a file
939
PYTHON browser instead of a simple text entry window.
942
PYTHON simplepopup(\fIprompt\fP, \fIfunction\fP)
944
PYTHON Operates exactly like \fBpopupprompt()\fP, except that there is no text entry
945
PYTHON window, only a prompt string and the choice of "Okay" and "Cancel".
947
PYTHON newbutton(\fIparent\fP, \fIname\fP, \fIfunction\fP)
949
PYTHON Generates a new menu button under the menu cascade labeled \fIparent\fP.
950
PYTHON The new button will display the label \fIname\fP, and pushing the button
951
PYTHON will call the Python function \fIfunction\fP.
953
PYTHON page(\fInumber\fP)
955
PYTHON Go to the page numbered \fInumber\fP.
959
PYTHON Erases the current page unconditionally, unless dependencies such as a link
960
PYTHON to a symbol exist.
962
NOINTERP Commands are:
964
NOINTERP .B library \fIlibname\fP
965
NOINTERP Loads a library named \fIlibname\fP (with or without .lps
966
NOINTERP extension) into the set of built-in objects.
968
NOINTERP .B override default library
969
NOINTERP Causes the default libraries defined in "builtins.lps"
970
NOINTERP \fInot\fP to be loaded.
972
NOINTERP .B override default colors
973
NOINTERP Causes the default colors \fInot\fP to be loaded; this will
974
NOINTERP not override the allocation of black and white, however,
975
NOINTERP for obvious reasons.
977
NOINTERP .B font \fIfontname\fP
978
NOINTERP Adds a font named \fIfontname\fP (as recognized by a
979
NOINTERP printer) to the menu of selectable fonts.
981
NOINTERP .B color \fIcolorname\fP
982
NOINTERP Adds a color named \fIcolorname\fP (standard X11
983
NOINTERP conventions) to the menu of selectable colors.
985
NOINTERP .B set \fItype\fP \fIvalue\fP
986
NOINTERP Sets internal xcircuit variables, where \fItype\fP can be one of:
988
NOINTERP \fBboxedit\fP
990
NOINTERP Where \fIvalue\fP is one of "manhattan", "rhomboid-x", "rhomboid-y",
991
NOINTERP or "normal". Determines the default way manhattan-aligned polygon
992
NOINTERP edges are manupulated during edits.
994
NOINTERP \fBlinewidth\fP
996
NOINTERP Where \fIvalue\fP is a real number indicating the default
997
NOINTERP width of lines.
1001
NOINTERP Where \fIvalue\fP can be \fBon\fP or \fBoff\fP, depending on
1002
NOINTERP whether or not you want the machine beeping at you when it
1003
NOINTERP gives critical warnings.
1005
NOINTERP \fBcolorscheme\fP
1007
NOINTERP Where \fIvalue\fP is \fBinverse\fP to swap the two color schemes
1008
NOINTERP and make the second scheme appear as default.
1010
TCL The startup file is written in Tcl. The command-line interface can
1011
TCL be found in the online documentation on the website
1013
TCL \fBhttp://www.opencircuitdesign.com/xcircuit/\fP.
1017
XCircuit implements a crash recovery system by which a copy of the current
1018
file is made every 15 minutes (see Xdefaults, below, for changing this
1019
value). XCircuit deletes this file upon a normal exit. If, however,
1020
XCircuit crashes or is terminated by Control-C or other sudden death,
1021
the backup copy will remain. On startup, XCircuit checks the /tmp
1022
directory for any XCircuit backup files belonging to the user. If one
1023
is found, XCircuit will prompt the user for recovery. Note that the
1024
backup is unique in that it contains a copy of the entire user space at
1025
the time of the crash. Filenames may get overwritten, as the backup
1026
will treat all pages as belonging to the same file.
1029
As noted above, keys can be bound and unbound through command-line
1030
functions "bind" and "unbind". Default key bindings are used throughout
1031
this manual page. Key names use the notation of
1032
/usr/X11R6/include/keysymdef.h, but with the notation "XK_" being
1033
optional, and including the addition of prefixes "Shift_", "Control_",
1034
"Capslock_", and "Alt_", which may be used in any combination. Note
1035
that "Shift_" is not used for ASCII characters (e.g., "A" is used
1036
instead of "Shift_a") unless used in combination with other special
1037
keys (such as "Control_Shift_A" to distinguish from "Control_a",
1038
should that be desired). "Button1", "Button2", and "Button3" are
1039
also valid names indicating functions attached to the mouse buttons
1040
in normal drawing mode. Valid functions which may be bound are as
1041
follows, with their default values given:
1045
Function name Function performed Default key binding
1046
---------------------------------------------------------------------
1047
"Page", change page, Number keys 1-9 and 0
1048
"Justify", change text justification, Keypad keys 1-9
1049
"Superscript", set text superscript, Keypad +
1050
"Subscript", set text subscript, Keypad -
1051
"Normalscript", cancel sub/superscript, Keypad Enter
1052
"Nextfont", change to next font, Alt-f
1053
"Boldfont", change to bold font, Alt-b
1054
"Italicfont", change to italic font, Alt-i
1055
"Normalfont", cancel italic/bold, Alt-n
1056
"Underline", generate underline, Alt-u
1057
"Overline", generate overline, Alt-o
1058
"ISO Encoding", change to ISO encoding, Alt-e
1059
"Return", embedded return character, Alt-Enter
1060
"Halfspace", embedded half-space, Alt-h
1061
"Quarterspace", embedded quarter-space, Alt-q
1062
"Special", special character, Alt-c
1063
"Parameter", embedded parameter, Alt-p
1064
"Edit Break", break at point, x
1065
"Edit Delete", delete point, d, Delete
1066
"Edit Insert", insert point, i, Insert
1067
"Edit Next", go to next point, e
1068
"Attach", attach line to object, A
1069
"Next Library", go to next library, l
1070
"Library Directory", library directory, L
1071
"Library Move", arrange library objects, M
1072
"Library Copy", get object in copy mode, c
1073
"Library Edit", edit library name, E
1074
"Library Delete", delete library object, D
1075
"Library Duplicate", duplicate object, C
1076
"Library Hide", hide library object, H
1077
"Page Directory ", page directory, P
1078
"Library Pop", return from library, <
1079
"Help", generate help screen, h, ?
1080
"Redraw", redraw the window, space
1081
"View", fit page to window, v
1082
"Zoom In", zoom in, Z
1083
"Zoom Out", zoom out, z
1084
"Pan", center pan, p
1085
"Double Snap", increase snap space, +
1086
"Halve Snap", decrease snap space, -
1087
"Pan Left", pan left one-half page, Left arrow
1088
"Pan Right", pan right one-half page, Right arrow
1089
"Pan Up", pan up one-half page, Up arrow
1090
"Pan Down", pan down one-half page, Down arrow
1091
"Write", popup output window, W
1092
"Rotate", Rotate, r,R,o,O
1093
"Flip X", Flip horizontal, f
1094
"Flip Y", Flip vertical, F
1095
"Snap", Snap to grid, S
1096
"Pop", Return from object edit, <
1097
"Push", Edit object, >
1098
"Delete", Delete element, d
1099
"Select", Select element, Select
1100
"Box", Create box, b
1101
"Arc", Create arc, a
1102
"Text", Create label, t
1103
"Exchange", Exchange vertical order, X
1104
"Copy", Copy element, c
1105
"Join", Join into path, j
1106
"Unjoin", Split path into elements, J
1107
"Spline", Create spline, s
1108
"Edit", Edit element, e
1109
"Undelete", Undelete last deleted, u
1110
"Select Save", Make object from selected, M,m
1111
"Unselect", Unselect element, x
1112
"Dashed", Set line style to dashed, |
1113
"Dotted", Set line style to dotted, :
1114
"Solid", Set line style to solid, _
1115
"Prompt", Execute from command line, %
1116
"Dot", Place dot at location, .
1117
"Exit", Exit xcircuit Ctrl-Alt-q
1118
"Netlist", Generate a netlist, Alt-q
1119
"Swap", Swap schematic, symbol, /
1120
"Pin Label", Create pin label, T
1121
"Info Label", Create info label, I
1122
"Connectivity", Show wire connectivity, Alt-w
1123
"Sim", Generate sim netlist, Alt-s
1124
"SPICE", Generate SPICE netlist, Alt-S
1125
"PCB", Generate PCB netlist, Alt-p
1126
"SPICE Flat" Generate flattened SPICE, Alt-f
1127
------------------------------------------------------------------
1130
2-Button mouse users may find it useful to forego the Shift-Button1
1131
combination and instead put the following commands in the startup
1135
bind('Escape', 'Cancel')
1137
unbind('Button3', Cancel')
1139
bind('Button3', 'Finish')
1142
This will move the 3rd mouse button bindings to the "Escape" key, and
1143
duplicate the 2nd mouse button bindings onto the 3rd.
1147
The color scheme of xcircuit has a default setup, but accepts
1148
alternate color schemes using the following keywords which can be put
1149
in the X Defaults (.Xdefaults, .Xresources) file, such as:
1154
! Sample X defaults for xcircuit, black-on-white version
1158
xcircuit*foreground : Black
1160
xcircuit*background : White
1162
xcircuit*gridcolor : Gray85
1164
xcircuit*snapcolor : Orange
1166
xcircuit*selectcolor : Blue
1168
xcircuit*querycolor : Green
1170
xcircuit*axescolor : NavajoWhite3
1172
xcircuit*offbuttoncolor : Gray30
1174
xcircuit*auxiliarycolor : MediumOrchid1
1177
Two color schemes are supported at a time, ostensibly for those people
1178
who prefer the lessened eye strain of a white-on-black scheme. The
1179
names of the secondary colors are the same as those for the primary
1180
colors, but followed by "2", e.g., "xcircuit*foreground2".
1183
One other resource defines the number of minutes between automatic saves
1184
to the temporary file (in case of a crash or emergency Ctrl-C exit):
1187
xcircuit.timeout : 15
1190
Xcircuit also recognizes the core resources, such as width and height:
1193
xcircuit.width : 600
1195
xcircuit.height : 500
1198
All xcircuit foreground and background colors are taken from the
1199
Xdefaults foreground and background. To get, for instance, white-on-black
1200
menus and buttons with a black-on-white drawing area, use the following:
1203
xcircuit*foreground : White
1205
xcircuit*background : DarkSlateGray
1207
xcircuit.foreground : Black
1209
xcircuit.background : White
1211
This will ensure that only the drawing area is black-on-white, but all other
1212
windows will appear in the less eye-straining white-on-black.
1214
Five different fonts can be specified in the Xdefaults. \fihelpfont\fp is
1215
the style of fonts on the help popup window. \fifilefont\fp is the style
1216
of fonts in the list of files in the file selection popup window. \fitextfont\fp
1217
is the style of font for entering text in the popup dialog boxes. \fititlefont\fp
1218
is the style of font for the cascade menu titles. All other fonts take the
1219
type \fifont\fp. For example:
1221
xcircuit*font : *times-bold-r-normal--14*
1223
xcircuit*helpfont : *times-medium-r-normal--12*
1225
xcircuit*filefont : *times-medium-r-normal--14*
1227
xcircuit*textfont : *courier-medium-r-normal--14*
1229
xcircuit*titlefont : *times-bold-r-normal--18*
1231
The file path used by xcircuit to find library files is system-dependent
1232
(i.e., can be changed at compile time), and can be overridden in many
1233
ways (in .xcircuitrc or by the XCIRCUIT_LIB_DIR environment variable),
1241
PostScript prolog appended to each file
1243
PYTHON .B xcstartup.py
1244
TCL .B xcstartup.tcl
1245
NOINTERP .B startup.script
1246
This startup script contains commands of the type
1247
PYTHON \fBlibrary\fP("\fIname\fP", \fInumber\fP
1248
TCL \fBlibrary\fP \fIname\fP \fInumber\fP
1249
NOINTERP \fBlibrary\fP \fIname\fP \fInumber\fP
1250
which cause the designated library \fIname\fP to be immediately loaded
1251
into library page \fInumber\fP. The startup script is also responsible
1252
for loading fonts, and may also be used to load colors on the color
1253
palette, set other options, and execute commands.
1255
.B generic.lps, analog.lps, digital.lps, avlsi.lps, analoglib2.lps
1256
Files containing pre-compiled circuit elements. The \fB.lps\fP extension
1257
is unique for xcircuit libraries.
1260
This subdirectory contains font definition files for xcircuit's
1261
vector-drawn fonts. Characters are defined by xcircuit objects and
1262
stored in a \fB.lps\fP library. The encoding scheme and other font
1263
information is stored in a \fB.xfe\fP ("xcircuit font encoding")
1266
.B ~/.xcircuitrc \fPor\fB ./xcircuitrc
1267
Personal xcircuit initializer; commands are outlined above.
1268
Libraries listed in this file will be appended to the builtin libraries.
1269
.SH ENVIRONMENT VARIABLES
1270
\fBxcircuit\fP understands the following environment variables:
1274
Directory for temporary (e.g., backup) files (defaults to TEMP_DIR).
1278
Directory where xcircuit libraries and startup files can be found
1279
(defaults to BUILTINS_DIR).
1283
Directory where the xcircuit application defaults can be found
1284
(defaults to RESOURCES_DIR)
1288
Directory where xcircuit will look for startup files, after searching the
1292
.B HOST, HOSTNAME, USER
1293
Environment variables which xcircuit uses to fill in header information
1294
in the PostScript output (HOST and HOSTNAME are equivalent).
1297
PostScript printers have device-dependent limits on the number of
1298
statements within a "def" definition. If an object definition has an
1299
unusually large number of components, xcircuit will flag a warning when
1300
writing the file. However, there is no way to ensure that a file will be
1301
accepted by a given printer. The best way to avoid the problem is to make
1302
sure that large drawings make good use of hierarchically nested user-defined
1303
objects. Note that printer errors arising from this problem have not been
1304
observed in practice, and given the typical size of on-board memory on most
1305
modern laser printers, probably never will be.
1307
A list of bugs can be found in the Manifest file in the source directory.
1309
Look for the xcircuit online tutorial at
1311
http://opencircuitdesign.com/xcircuit/tutorial/tutorial.html
1313
xfig(1), another powerful freeware drawing program worthy of mention
1315
Another schematic capture package worth noting is "gschem" from the
1316
gEDA package (see www.geda.seul.org).
1318
PostScript is a registered trademark of Adobe Systems Incorporated.
1320
XCircuit Copyright (c) 2002 Tim Edwards. XCircuit is freely distributed
1321
under a generous public license. See the source distribution for details.
1323
Xw widget set Copyright (c) 1988 by Hewlett-Packard Company and the
1324
Massachusetts Institute of Technology.
1326
Tim Edwards <tim@opencircuitdesign.com>. Thanks to Tomas Rokicki for
1327
the PostScript routine which manufactures a Symbol-Oblique font.
1328
Thanks to Dave Gillespie and John Lazzaro for the program "analog"
1329
on which the graphical interface of xcircuit is (roughly) based.
1330
Thanks to many beta-testers, some of whom were kind enough to send
1331
patches. Most contributors have been named in the Manifest file in
1332
the source distribution.