~ubuntu-branches/ubuntu/trusty/xcircuit/trusty

« back to all changes in this revision

Viewing changes to .pc/04_fix_manpage.patch/lib/xcircuit.1.in

  • Committer: Package Import Robot
  • Author(s): Roland Stigge
  • Date: 2012-04-06 14:39:32 UTC
  • mfrom: (0.9.1) (1.1.8) (3.1.8 sid)
  • Revision ID: package-import@ubuntu.com-20120406143932-c41e1tscchjvoxth
Tags: 3.7.39.dfsg-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.TH XCircuit 1 "January 5, 2000" "X11R6"
 
2
.SH NAME
 
3
xcircuit - Draw circuit schematics or almost anything; make
 
4
circuit netlists from schematics.
 
5
.SH SYNOPSIS
 
6
.B xcircuit [\fIfilename\fP[,...]] 
 
7
.SH DESCRIPTION
 
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.
 
14
.sp
 
15
\fIxcircuit\fP is mouse, menu, and keyboard\-driven, with the emphasis
 
16
on single-character keyboard macros.
 
17
.SH OPTIONS
 
18
.TP 8
 
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.
 
26
 
 
27
.SH BASIC ELEMENTS
 
28
There are five drawing elements.  These are as follows:  
 
29
.TP 3
 
30
.B a)
 
31
polygon (multiple lines which may or may not be closed and filled)
 
32
.TP 3
 
33
.B b)
 
34
arc (ellipse segment which may be closed and/or filled as above)
 
35
.TP 3
 
36
.B c)
 
37
label (any text)
 
38
.TP 3
 
39
.B d)
 
40
curve (based on the PostScript "curveto" algorithm)
 
41
.TP 3
 
42
.B e)
 
43
object instance (see below)
 
44
.PP
 
45
There are two composite elements, which are:
 
46
.TP 3
 
47
.B f)
 
48
path (a connected series of polygons, arcs, and curves)
 
49
.TP 3
 
50
.B g)
 
51
object (something containing polygons, arcs, labels, 
 
52
curves, paths, and instances of other objects)
 
53
 
 
54
.SH MOUSE BUTTONS
 
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").
 
58
.sp
 
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.
 
65
.sp
 
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.
 
72
.sp
 
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.
 
80
.sp
 
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.
 
84
.sp
 
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.
 
90
 
 
91
.SH BUILT-IN LIBRARY
 
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
 
99
script
 
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.
 
112
.sp
 
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.
 
118
 
 
119
.SH ZOOMING
 
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).
 
132
 
 
133
.SH SNAP-TO GRID
 
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").
 
142
 
 
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
 
159
of the text string.
 
160
.sp
 
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.
 
171
 
 
172
.SH COLOR
 
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
 
187
instance is changed.
 
188
 
 
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,
 
200
.br
 
201
http://opencircuitdesign.com/xcircuit/tutorial/tutorial2.html.
 
202
.br
 
203
 
 
204
Netlist types currently available are "SPICE", "sim", and "PCB".
 
205
 
 
206
.SH KEYBOARD COMMANDS
 
207
.br
 
208
.PP
 
209
\fBBasic keyboard commands:\fP
 
210
.TP 12
 
211
.B Z
 
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.
 
215
.TP 12
 
216
.B z
 
217
Zoom out by a factor of 3/2.
 
218
.TP 12
 
219
.B p
 
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.
 
225
.TP 12
 
226
.B cursors
 
227
The arrow keys perform a pan of one-half window size in the
 
228
direction of the arrow pressed.
 
229
.TP 12
 
230
.B l
 
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.
 
236
.TP 12
 
237
.B >
 
238
Push into an on-screen object in order to edit that object
 
239
.TP 12
 
240
.B <
 
241
Return from editing an object.  Object pushes and pops can
 
242
be stacked indefinitely.
 
243
.TP 12
 
244
.B space
 
245
Refresh the screen.
 
246
.TP 12
 
247
.B digits 0-9
 
248
Switch to one of the first ten editing pages.  Pages greater
 
249
than 10 can be reached from the "Window/Goto Page" menu
 
250
selection.
 
251
.TP 12
 
252
.B + and -
 
253
Change snap-to grid spacing by a factor of two up or down.
 
254
.TP 12
 
255
.B | : and _
 
256
(Bar, colon, and underline) Change style on the currently
 
257
selected object to dashed, dotted, and solid, respectively.
 
258
.TP 12
 
259
.B h or ?
 
260
Print a help page summary of commands
 
261
.PP
 
262
.sp
 
263
\fBCommands to create elements:\fP
 
264
.TP 4
 
265
.B a
 
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.
 
273
.TP 4
 
274
.B b
 
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
 
279
complete the box.
 
280
.TP 4
 
281
.B s
 
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.
 
287
.TP 4
 
288
.B t
 
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.
 
303
.TP 4
 
304
.B M, m
 
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.
 
319
.sp
 
320
.PP
 
321
\fBMajor editing commands:\fP
 
322
.TP 4
 
323
.B d
 
324
Delete.  Select the nearest element or elements and delete it/them.
 
325
.TP 4
 
326
.B u
 
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.
 
332
.TP 4
 
333
.B x
 
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
 
337
deselects them all.
 
338
.TP 4
 
339
.B c
 
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.
 
344
.TP 4
 
345
.B e
 
346
Edit.  The action of Edit is dependent on the type of element
 
347
selected.  These are detailed below:
 
348
.TP 12
 
349
.B Label
 
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.
 
353
.TP 12
 
354
.B Polygon
 
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:
 
360
.sp
 
361
"x"---Breaks the polygon at the given point.
 
362
.sp
 
363
"e"---Moves edit position to the next point.
 
364
.sp
 
365
"i" or "Insert"---Inserts a new point at the position.
 
366
.sp
 
367
"d" or "Delete"---Deletes the current edit point.
 
368
.sp
 
369
There are four modes for polygon editing; see the
 
370
"\fBPolygon Edit\fP" section below for details.
 
371
.TP 12
 
372
.B Arc
 
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
 
378
aborts the command.
 
379
.TP 12
 
380
.B Curve
 
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.
 
390
.TP 12
 
391
.B Object instance
 
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"
 
395
from the menu.
 
396
.sp
 
397
.PP
 
398
\fBMinor editing commands:\fP
 
399
.TP 4
 
400
.B R
 
401
Rotate the selected element(s) or element under the cursor
 
402
counterclockwise in 15 degree intervals.
 
403
.TP 4
 
404
.B r
 
405
Rotate the selected element(s) or element under the cursor
 
406
clockwise in 15 degree intervals.
 
407
.TP 4
 
408
.B O
 
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.
 
412
.TP 4
 
413
.B o
 
414
Rotate the selected element(s) or element under the cursor
 
415
clockwise by 5 degree intervals.
 
416
.TP 4
 
417
.B f
 
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.
 
421
.TP 4
 
422
.B F
 
423
Flip an element around a horizontal axis defined
 
424
similarly to the "f" command.
 
425
.TP 4
 
426
.B X
 
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.
 
432
.TP 4
 
433
.B S
 
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.
 
438
.TP 4
 
439
.B j
 
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.
 
444
.TP 4
 
445
.B A
 
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.
 
455
.sp
 
456
.PP
 
457
\fBLibrary editing commands:\fP
 
458
.TP 4
 
459
.B D
 
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.
 
466
.TP 4
 
467
.B C
 
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.
 
471
.TP 4
 
472
.B M
 
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.
 
476
.TP 4
 
477
.B E
 
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.
 
481
.TP 4
 
482
.B H
 
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.
 
486
.sp
 
487
.SH MENU COMMANDS
 
488
.sp
 
489
.TP 4
 
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.
 
509
.sp
 
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.
 
516
.TP 4
 
517
.B Read PostScript
 
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".
 
527
.TP 4
 
528
.B Import PostScript
 
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.
 
532
.TP 4
 
533
.B Clear Page
 
534
Clears the current page of all elements and resets the
 
535
name.  The contents cannot be recovered.
 
536
.TP 4
 
537
.B Alt Color
 
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.
 
546
.TP 4
 
547
.B Grid
 
548
Turns the grid lines on and off.
 
549
.TP 4
 
550
.B Axes
 
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.
 
557
.TP 4
 
558
.B Grid spacing
 
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.
 
562
.TP 4
 
563
.B Grid type/display
 
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.
 
580
.TP 4
 
581
.B Snap-to
 
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.
 
585
.TP 4
 
586
.B Snap spacing
 
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.
 
590
.TP 4
 
591
.B Linewidth
 
592
Controls the default linewidth against which
 
593
all linewidths in the drawing are scaled.
 
594
.TP 4
 
595
.B Polygon Edit
 
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.
 
606
.TP 4
 
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.
 
621
.TP 4
 
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.
 
645
.TP 4
 
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.
 
656
.TP 4
 
657
.B Zoom Box
 
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.
 
662
.TP 4
 
663
.B Full View
 
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.
 
667
.SH TEXT FEATURES
 
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.
 
672
.TP 4
 
673
.B Text Size
 
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
 
687
modifier).
 
688
.TP 4
 
689
.B \fPText\fB Font
 
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.
 
697
.TP 4
 
698
.B \fPText\fB Style
 
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
 
704
available.
 
705
.TP 4
 
706
.B \fPText\fB Insert
 
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
 
715
of the text.
 
716
.TP 4
 
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
 
723
a printer.
 
724
.TP 4
 
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
 
735
size and position.
 
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.
 
739
.TP 4
 
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
 
751
draw the line.
 
752
.TP 4
 
753
.B Tabbing
 
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.
 
765
.TP 4
 
766
.B Backspace
 
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.
 
770
.TP 4
 
771
.B Halfspace and Quarterspace
 
772
These options allow fine control over spacing, particularly
 
773
useful when writing equations.
 
774
.TP 4
 
775
.B Justification
 
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
 
786
whatever.
 
787
.SH .XCIRCUITRC FILE
 
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
 
792
variable $HOME.
 
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:
 
798
PYTHON .TP 6
 
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).
 
804
PYTHON .TP 6
 
805
PYTHON .B override("library")
 
806
PYTHON Causes the default libraries defined in "builtins.lps"
 
807
PYTHON \fInot\fP to be loaded.
 
808
PYTHON .TP 6
 
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.
 
813
PYTHON .TP 6
 
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.
 
817
PYTHON .TP 6 
 
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.
 
821
PYTHON .TP 6
 
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.
 
829
PYTHON .TP 6
 
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.
 
834
PYTHON .TP 6
 
835
PYTHON .B set("\fItype\fP", "\fIvalue\fP")
 
836
PYTHON Sets internal xcircuit variables, where \fItype\fP can be one of:
 
837
PYTHON .sp
 
838
PYTHON \fBboxedit\fP
 
839
PYTHON .sp
 
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.
 
843
PYTHON .sp
 
844
PYTHON \fBlinewidth\fP
 
845
PYTHON .sp
 
846
PYTHON Where \fIvalue\fP is a real number indicating the default
 
847
PYTHON width of lines.
 
848
PYTHON .sp
 
849
PYTHON set("\fBbeep\fP", "on"|"off")
 
850
PYTHON .sp
 
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.
 
854
PYTHON .sp
 
855
PYTHON set("\fBcolorscheme\fP", "normal"|"inverse")
 
856
PYTHON .sp
 
857
PYTHON Where \fIvalue\fP is \fBinverse\fP to swap the two color schemes
 
858
PYTHON and make the second scheme appear as default.
 
859
PYTHON .sp
 
860
PYTHON \fIh\fP = newelement("\fIname\fP")
 
861
PYTHON .sp
 
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".
 
865
PYTHON .sp
 
866
PYTHON \fId\fP = getattr(\fIh\fP)
 
867
PYTHON .sp
 
868
PYTHON Creates a dictionary \fId\fP of attributes for the element with handle
 
869
PYTHON \fIh\fP.  Dictionary keys depend on the element.
 
870
PYTHON .sp
 
871
PYTHON setattr(\fIh\fP, \fId\fP)
 
872
PYTHON .sp
 
873
PYTHON Applies the dictionary \fId\fP key:value pairs to the element pointed to
 
874
PYTHON by handle \fIh\fP.
 
875
PYTHON .sp
 
876
PYTHON \fId\fP = getpage(\fIvalue\fP)
 
877
PYTHON .sp
 
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.
 
882
PYTHON .sp
 
883
PYTHON \fId\fP = getlibrary(\fIname\fP)
 
884
PYTHON .sp
 
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.
 
888
PYTHON .sp
 
889
PYTHON \fId\fP = getobject(\fIname\fP)
 
890
PYTHON .sp
 
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.
 
897
PYTHON .sp
 
898
PYTHON zoom(\fIfactor\fP)
 
899
PYTHON .sp
 
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.
 
902
PYTHON .sp
 
903
PYTHON pan(\fIposition\fP)
 
904
PYTHON .sp
 
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.
 
907
PYTHON .sp
 
908
PYTHON refresh()
 
909
PYTHON .sp
 
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. 
 
913
PYTHON .sp
 
914
PYTHON pause(\fIdelay\fP)
 
915
PYTHON .sp
 
916
PYTHON Pauses for \fIdelay\fP seconds (is a floating-point number).  Useful in
 
917
PYTHON conjunction with \fBrefresh()\fP for animation effects.
 
918
PYTHON .sp
 
919
PYTHON \fIt\fP = getcursor()
 
920
PYTHON .sp
 
921
PYTHON Returns a tuple \fIt\fP containing the current X and Y position of the cursor.
 
922
PYTHON .sp
 
923
PYTHON .sp
 
924
PYTHON \fIt\fP = getwindow()
 
925
PYTHON .sp
 
926
PYTHON Returns a tuple \fIt\fP containing the current window width and height.
 
927
PYTHON .sp
 
928
PYTHON popupprompt(\fIprompt\fP, \fIfunction\fP)
 
929
PYTHON .sp
 
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.
 
935
PYTHON .sp
 
936
PYTHON filepopup(\fIprompt\fP, \fIfunction\fP)
 
937
PYTHON .sp
 
938
PYTHON Operates exactly like \fBpopupprompt()\fP, except that the window is a file
 
939
PYTHON browser instead of a simple text entry window.
 
940
PYTHON .sp
 
941
PYTHON .sp
 
942
PYTHON simplepopup(\fIprompt\fP, \fIfunction\fP)
 
943
PYTHON .sp
 
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".
 
946
PYTHON .sp
 
947
PYTHON newbutton(\fIparent\fP, \fIname\fP, \fIfunction\fP)
 
948
PYTHON .sp
 
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.
 
952
PYTHON .sp
 
953
PYTHON page(\fInumber\fP)
 
954
PYTHON .sp
 
955
PYTHON Go to the page numbered \fInumber\fP.
 
956
PYTHON .sp
 
957
PYTHON reset()
 
958
PYTHON .sp
 
959
PYTHON Erases the current page unconditionally, unless dependencies such as a link
 
960
PYTHON to a symbol exist.
 
961
 
 
962
NOINTERP Commands are:
 
963
NOINTERP .TP 6
 
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.
 
967
NOINTERP .TP 6
 
968
NOINTERP .B override default library
 
969
NOINTERP Causes the default libraries defined in "builtins.lps"
 
970
NOINTERP \fInot\fP to be loaded.
 
971
NOINTERP .TP 6
 
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.
 
976
NOINTERP .TP 6
 
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.
 
980
NOINTERP .TP 6 
 
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.
 
984
NOINTERP .TP 6
 
985
NOINTERP .B set \fItype\fP \fIvalue\fP
 
986
NOINTERP Sets internal xcircuit variables, where \fItype\fP can be one of:
 
987
NOINTERP .sp
 
988
NOINTERP \fBboxedit\fP
 
989
NOINTERP .sp
 
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.
 
993
NOINTERP .sp
 
994
NOINTERP \fBlinewidth\fP
 
995
NOINTERP .sp
 
996
NOINTERP Where \fIvalue\fP is a real number indicating the default
 
997
NOINTERP width of lines.
 
998
NOINTERP .sp
 
999
NOINTERP \fBbeep\fP
 
1000
NOINTERP .sp
 
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.
 
1004
NOINTERP .sp
 
1005
NOINTERP \fBcolorscheme\fP
 
1006
NOINTERP .sp
 
1007
NOINTERP Where \fIvalue\fP is \fBinverse\fP to swap the two color schemes
 
1008
NOINTERP and make the second scheme appear as default.
 
1009
 
 
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
 
1012
TCL .sp
 
1013
TCL \fBhttp://www.opencircuitdesign.com/xcircuit/\fP.
 
1014
TCL .sp
 
1015
 
 
1016
.SH CRASH RECOVERY
 
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.
 
1027
 
 
1028
.SH KEY BINDINGS
 
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:
 
1042
.br
 
1043
.sp
 
1044
 
 
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
   ------------------------------------------------------------------
 
1128
.br
 
1129
.sp
 
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
 
1132
script:
 
1133
.br
 
1134
.sp
 
1135
bind('Escape', 'Cancel')
 
1136
.br
 
1137
unbind('Button3', Cancel')
 
1138
.br
 
1139
bind('Button3', 'Finish')
 
1140
.br
 
1141
.sp
 
1142
This will move the 3rd mouse button bindings to the "Escape" key, and
 
1143
duplicate the 2nd mouse button bindings onto the 3rd.
 
1144
.br
 
1145
.sp
 
1146
.SH X DEFAULTS
 
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:
 
1150
.sp
 
1151
.EX 0
 
1152
  !
 
1153
.br
 
1154
  ! Sample X defaults for xcircuit, black-on-white version
 
1155
.br
 
1156
  !
 
1157
.br
 
1158
  xcircuit*foreground     : Black
 
1159
.br
 
1160
  xcircuit*background     : White
 
1161
.br
 
1162
  xcircuit*gridcolor      : Gray85
 
1163
.br
 
1164
  xcircuit*snapcolor      : Orange
 
1165
.br
 
1166
  xcircuit*selectcolor    : Blue
 
1167
.br
 
1168
  xcircuit*querycolor     : Green
 
1169
.br
 
1170
  xcircuit*axescolor      : NavajoWhite3
 
1171
.br
 
1172
  xcircuit*offbuttoncolor : Gray30
 
1173
.br
 
1174
  xcircuit*auxiliarycolor : MediumOrchid1
 
1175
.EE
 
1176
.sp
 
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".
 
1181
.sp
 
1182
.sp
 
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):
 
1185
.sp
 
1186
.EX 0
 
1187
  xcircuit.timeout              : 15
 
1188
.EE
 
1189
.sp
 
1190
Xcircuit also recognizes the core resources, such as width and height:
 
1191
.sp
 
1192
.EX 0
 
1193
  xcircuit.width                : 600
 
1194
.br
 
1195
  xcircuit.height               : 500
 
1196
.EE
 
1197
.sp
 
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:
 
1201
.sp
 
1202
.EX 0
 
1203
  xcircuit*foreground           : White
 
1204
.br
 
1205
  xcircuit*background           : DarkSlateGray
 
1206
.br
 
1207
  xcircuit.foreground           : Black
 
1208
.br
 
1209
  xcircuit.background           : White
 
1210
.br
 
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.
 
1213
.br
 
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:
 
1220
.br
 
1221
  xcircuit*font           : *times-bold-r-normal--14*
 
1222
.br
 
1223
  xcircuit*helpfont       : *times-medium-r-normal--12*
 
1224
.br
 
1225
  xcircuit*filefont       : *times-medium-r-normal--14*
 
1226
.br
 
1227
  xcircuit*textfont       : *courier-medium-r-normal--14*
 
1228
.br
 
1229
  xcircuit*titlefont      : *times-bold-r-normal--18*
 
1230
.SH FILES
 
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),
 
1234
but by default is:
 
1235
.sp
 
1236
.TP 28
 
1237
.B LIBDIR
 
1238
.sp
 
1239
.TP 15 
 
1240
.B xcircps2.pro
 
1241
PostScript prolog appended to each file
 
1242
.TP 15 
 
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.
 
1254
.TP 15
 
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.
 
1258
.TP 15
 
1259
.B fonts
 
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")
 
1264
file.
 
1265
.TP 15
 
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:
 
1271
.sp
 
1272
.TP 15
 
1273
.B TMPDIR
 
1274
Directory for temporary (e.g., backup) files (defaults to TEMP_DIR).
 
1275
 
 
1276
.TP 15
 
1277
.B XCIRCUIT_LIB_DIR
 
1278
Directory where xcircuit libraries and startup files can be found
 
1279
(defaults to BUILTINS_DIR).
 
1280
 
 
1281
.TP 15
 
1282
.B XAPPLRESDIR
 
1283
Directory where the xcircuit application defaults can be found
 
1284
(defaults to RESOURCES_DIR)
 
1285
 
 
1286
.TP 15
 
1287
.B HOME
 
1288
Directory where xcircuit will look for startup files, after searching the
 
1289
current directory.
 
1290
 
 
1291
.TP 15
 
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).
 
1295
 
 
1296
.SH BUGS
 
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.
 
1306
.sp
 
1307
A list of bugs can be found in the Manifest file in the source directory.
 
1308
.SH ONLINE TUTORIAL
 
1309
Look for the xcircuit online tutorial at
 
1310
.sp
 
1311
http://opencircuitdesign.com/xcircuit/tutorial/tutorial.html
 
1312
.SH SEE ALSO
 
1313
xfig(1), another powerful freeware drawing program worthy of mention
 
1314
(see www.xfig.org). 
 
1315
Another schematic capture package worth noting is "gschem" from the
 
1316
gEDA package (see www.geda.seul.org).
 
1317
.SH NOTES
 
1318
PostScript is a registered trademark of Adobe Systems Incorporated.
 
1319
.br
 
1320
XCircuit Copyright (c) 2002 Tim Edwards.  XCircuit is freely distributed
 
1321
under a generous public license.  See the source distribution for details.
 
1322
.br
 
1323
Xw widget set Copyright (c) 1988 by Hewlett-Packard Company and the
 
1324
Massachusetts Institute of Technology.
 
1325
.SH AUTHOR
 
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.