william@CS.UCLA.EDU (William Cheng) (03/14/91)
Submitted-by: william@CS.UCLA.EDU (William Cheng) Posting-number: Volume 12, Issue 39 Archive-name: tgif/part23 ---------------------------------> cut here <--------------------------------- #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 23 (of 23)." # Contents: prtgif.man tgif.man tgif2ps.man example.tex # an-sr-flip-flop.obj fonts.obj slide-demo.obj flip-flop.sym # nand2.sym pin.sym tangram.sym # Wrapped by william@oahu on Wed Mar 6 09:58:22 1991 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'prtgif.man' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'prtgif.man'\" else echo shar: Extracting \"'prtgif.man'\" \(1561 characters\) sed "s/^X//" >'prtgif.man' <<'END_OF_FILE' X.\"@(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/prtgif.man,v 2.0 91/03/05 12:50:39 william Exp $ X.TH PRTGIF 1 "Version 2.0 or above" "PrTgif" X.SH NAME X\fIprtgif\fR - Prints a \fItgif\fR object file without opening windows Xor fonts. X.SH SYNOPSIS X.B prtgif X[\fB-eps\fR] X[\fB-p\fR] X[\fB-ps\fR] X[\fB-f\fR] X[\fIfile1\fR \fIfile2\fR ...] X.SH DESCRIPTION X\fIprtgif\fR prints \fIfile.obj\fR (generated by \fItgif\fR) Xinto a PostScript(TM) page description file Xand pipes it to \fIlpr\fR if none of the X\fB-eps\fR, \fB-p\fR, \fB-ps\fR, or \fB-f\fR options are not specified; Xin this case, any other command line options are sent to \fIlpr\fR. X.PP XIf the \fB-eps\fR or the \fB-p\fR option is specified, Xit generates an encapsulated PostScript file in \fIfile.eps\fR; Xthis file is supposed to be included in a LaTeX file through the X\\psfig, \\epsf, or \\psfile construct (see the man pages of X\fItgif\fR for details). XIf the \fB-ps\fR or the \fB-f\fR option is specified, Xit generates a PostScript file in \fIfile.ps\fR; Xthis file can be printed to a PostScript printer with lpr. X(Note that if any of the \fB-eps\fR, \fB-p\fR, \fB-ps\fR, or \fB-f\fR Xoptions are specified, Xany other command line options are ignored.) X.PP XNote that prtgif is no longer calling \fItgif2ps\fR. XAlso note that while tgif can generate X11 bitmap or X11 pixmap files, Xprtgif can not. X.SH SEE ALSO X\fBlpr\fR(1), \fBtgif\fR(1), \fBlatex\fR(1L) X.SH COPYRIGHT XPlease see the ``Copyright'' file for details on the copyrights. X.SH AUTHOR XWilliam Chia-Wei Cheng (william@cs.ucla.edu) END_OF_FILE if test 1561 -ne `wc -c <'prtgif.man'`; then echo shar: \"'prtgif.man'\" unpacked with wrong size! fi # end of 'prtgif.man' fi if test -f 'tgif.man' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tgif.man'\" else echo shar: Extracting \"'tgif.man'\" \(22597 characters\) sed "s/^X//" >'tgif.man' <<'END_OF_FILE' X.\"@(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/tgif.man,v 2.0 91/03/05 12:50:40 william Exp $ X.TH TGIF 1 "Version 2.0 and Above" "Tgif" X.SH NAME X\fItgif\fR \- Xlib based 2-D drawing facility under X11. Also supports Xhierarchical construction of drawings. X.SH SYNOPSIS X.B tgif X[\fB=Geometry\fR] X[\fIfile\fR] X.SH DESCRIPTION X\fITgif\fR is an interactive drawing tool that allows the user to draw and Xmanipulate objects in the X Window System. XThe command line argument \fIfile\fR Xspecifies a file of objects to be initially edited by tgif. XTgif is purely based on \fIXlib\fR. XIt is tested under X11-R4, and Xit requires a 3 button mouse. X.PP XPrimitive objects supported by tgif Xare rectanges, ovals, rounded-corner rectangles, arcs, Xpolylines, polygons, open-splines, closed-splines, X11 bitmaps, Xand text. Objects can be grouped together to form a \fIgrouped\fR object. XA grouped object can be made into an \fIicon\fR object or a X\fIsymbol\fR object through user commands. (Grouped, icon, and symbol Xobjects are also refered to as \fIcomplex\fR objects.) X.PP XTgif objects are stored in two types of files. A file with a X.I \.obj Xextension (refered to as an \fIobject\fR file) Xis a file of objects, and a file with a X.I \.sym Xextension (refered to as a \fIsymbol\fR file) Xspecifies a ``building-block'' object. XA building-block object consists of the X\fIrepresentation\fR part and the \fIdefinition\fR Xpart of the object. XTgif supports the ``bottom-up'' construction of hierarchical Xdrawings by providing the capability to ``instantiate'' a Xbuilding-block object in a drawing. Tgif also supports the ``top-down'' Xspecification of drawings by allowing the user to make any Xcomplex object the \fIrepresentation\fR Xof an un-specified subsystem. Both types of files are stored in the Xform of Prolog facts. Prolog code can be written to interpret Xthe drawings! (It is left to the user to produce this code. XSee \fItgif.pl\fR for hints.) Prolog engines will be refered to as X\fIdrivers\fR in the sections follows. X.PP X\fIAttributes\fR can be attached to any non-text Xobjects. XAttributes specified in the representation part of a Xbuilding-block object are non-detachable, when such an object is instantiated. XSee \fBATTRIBUTES\fR section for details. X.PP XTgif can generate outputs in three different format. XBy default, the output is in PostScript(TM) format (color PostScript Xis supported), and it is generated in to a file named X/tmp/Tgifa* (produced by mktemp() calls) where * is a number Xand this file is piped to lpr. This takes place when the Xlaser-printer icon is displayed in the Choice Window (see below Xfor the naming of tgif windows). XThis output can be redirected to a file with a X.I \.ps Xextension. This takes place when the \fIPS\fR icon is displayed. XWhen the \fILaTeX\fR icon is display, the output generated with the X.I \.eps Xextension, and the file is in Xthe encapsulated PostScript format. XThis file can be included in a LaTeX document with the X\fIpsfig\fR or \fIepsf\fR construct; this will be discussed later. XWhen the \fIx11bm\fR (X11 bitmap) icon is displayed in the XChoice Window and color output is \fInot\fR selected, Xtgif generates the output with the X.I \.xbm Xextension, and the output is in the X11 bitmap format. XHowever, if the \fIx11bm\fR (X11 bitmap) icon is displayed in the XChoice Window and color output \fIis\fR selected (through the ^#K Xkeyboard command), Xtgif generates the output with the X.I \.xpm Xextension, and the output is in the X11 pitmap format. XAn X11 bitmap file can be \fIimported\fR into tgif and be represented Xas an tigf primitive object. X.SH GRAPHICAL OBJECTS XAn object in an \fIobject\fR file can be a primitive object, a grouped Xobject, or an \fIicon\fR object. XA \fIsymbol\fR file is an object file with exactly one \fIsymbol\fR Xobject. (Recall that a symbol file specifies a building-block Xobject.) The symbol object in a symbol file is the representation Xpart of the building-block object, and the rest of the Xsymbol file is the definition Xpart of the building-block object. The symbol object is highlighted Xwith a dashed outline to distinguished it from the rest of Xthe objects. When a building-block object is instantiated, Xthe symbol part of the file is copied into the graphics editor and becomes Xthe icon for the building-block object. X.PP XAll objects in tgif can be moved, duplicated, deleted, rotated, Xand flipped. (However, flipping text objects horizontally will Xcause the text justification to change, and flipping text objects Xvertically will usually cause the text object to move.) XAll objects except text, bitmap, and icon objects can be stretched X(scaled). X.PP XTgif supports 20 fill patterns, 20 pen patterns, 7 line widths, 4 line Xstyles (plain, head arrow, tail arrow, double arrows) for Xpolyline and open-splines, 5 dash patterns, X3 types of text justifications, 4 text Xstyles (roman, itatlic, bold, bold-italic), 12 text sizes X(8, 10, 12, 14, 18, and 24 for the 75dpi fonts and X11, 14, 17, 20, 25, and 34 for the 100dpi fonts), 5 fonts (Times, Courier, XHelvetica, New-Century-Schoolbook, Symbol), and 10 default colors (magenta, Xred, green, blue, yellow, pink, cyan, cadet-blue, white, black). XOnly right-angle rotations are supported. XMost commands in tgif can either be activated by a Xpop-up menu or by typing an appropriate Xnon-alphanumeric key. X.SH TGIF SUBWINDOWS XThe tgif windows are described below. X.TP X.I Top Window XDisplays the name of the file tgif is looking at. Mouse clicks Xand key presses have no effect. X.TP X.I Message Window XThis is right under the top window on the left. XIt displays tgif messages. Clicking the left mouse button Xin this window scrolls Xthe messages towards the bottom, clicking the right mouse Xbutton scrolls towards Xthe top, and clicking hte middle mouse button scrolls Xto the location in the Xmessage history depending on where the mouse is clicked. X.TP X.I Panel (Choice) Window XThis is the window to the right of the message window. XIt displays the current choice (in top/bottom, left/right order) of the Xdrawing mode, color, horizontal alignment (L C R -), Xvertical alignment (T M B -), Xtext justification, font, text rotation, special (see below), Xline width, line style, Xpoly or spline, dash pattern, print mode, file (see below), Xfill pattern, and pen pattern. XKey presses have no effect in this window. X.PP X.RS XThe ``special'' and ``file'' mentioned above are dummy icons Xthat allow the ``special'' menu and the ``file'' menu to be Xaccesses in the Choice Window. X.PP XLeft mouse button advances a particular choice; right mouse button Xadvances in the reverse direction, and the middle button generates a pop-up Xmenu to set a particular choice. If there are objects selected in the Xcanvas window, then the action of the mouse will cause the selected Xobjects to change to the newly selected choice; note that in this Xcase, the current choice won't change if the middle button Xis used; also, icon objects Xwill not change because they should be thought of as ``bitmaps''. X.PP XThe settings of the horizontal and vertical Xalignments determine how objects align with Xeach other when the ^L keyboard command is issued, they Xdetermine how each individual object aligns with the grids Xwhen the ^T keyboard command is issued, and they Xdetermine how each icon replaces the old icion when the ^#U Xkeyboard comand is issued. The horizontal Xalignments are left (L), center (C), right (R), and ignore (-). XThe vertical alignments are top (T), middle (M), bottom (B), and Xignore (-). The best way to understand them is to try them out. X.RE X.TP X.I Canvas Window XThis is the drawing area. Left mouse button selects, moves, stretches, Xand reshapes objects. XHolding down the shift key and clicking the left mouse Xon an object which is not currently selected will add the Xobject to the list of already selected objects. The same Xaction applied to an object which is already selected will cause Xit to be de-selected. XWhen the drawing mode is set to Xtext, clicking left mouse button causes selected text to go into edit mode. XIn the text edit mode, clicking the middle mouse button highlights sub-strings Xof the text. XRight mouse button always generates the main Xtgif pop-up menu. Holding down the shift key and clicking the right Xmouse button will change the drawing mode to \fIselect\fR. XNon-alphanumeric key presses are treated as tgif commands, and their Xbindings are summarized in the following section. X.TP X.I Scrollbars XOnly the left mouse button has effect in the scrollbar windows. XClicking the left mouse button in the arrow portion of a scrollbar Xwindow causes the canvas window to scroll a small distance on the page, Xand clicking in the main area of the scrollbar window causes the Xpage to scroll to the specified location from the Xtop or the left of the page. X.TP X.I Rulers X.br XThey track the mouse location. XMouse clicks and key presses have no effect. X.SH NON-ALPHANUMERIC KEY BINDINGS XWe use ``^'' for the control key and ``#'' for the meta key in the following Xdescription. X.PP X.DS X ^A select all\br X ^B send selected objects to the back\br X ^C change domain\br X ^D duplicate selected objects\br X ^F send selected objects to the front\br X ^G group selected objects\br X ^I instantiate a building-block object\br X ^K pop back to (or return to) a higher level and close the symbol file X(reverse of ^V)\br X ^L align selected objects\br X ^N open a new un-named object file\br X ^O open an object file to edit\br X ^P print the current page\br X ^Q quit tgif\br X ^R redraw the page\br X ^S save the current object or symbol file\br X ^T align selected objects to the grid\br X ^U ungroup selected objects\br X ^V push into (or edit) the definition part of a building-block object X(selected object just be an icon object)\br X ^W change the drawing mode to text\br X ^X delete all selected objects\br X ^Y copy selected object to cut buffer\br X ^Z escape to driver\br X ^, scroll left\br X ^. scroll right\br X ^- print the current page with a specified command\br X\br X #A attach selected attributes to the selected complex object\br X #B escape to driver\br X #C rotate selected objects counter-clockwise\br X #D decrement grid size\br X #E send a token on a selected polyline\br X #F flash the selected polyline\br X #G show/un-show grid points\br X #H flip the selected object horizontally\br X #I increment the grid size\br X #J hide attribute names of the selected objects\br X #K change the drawing mode to select\br X #L give the line style and line width pop-up menu\br X #M move the attributes of a selected object\br X #N show all attribute names of the selected objects\br X #O zoom out\br X #P import a .obj file into the current file\br X #Q change the drawing mode to polyline/open-spline\br X #R change the drawing mode to rectangle\br X #S escapt to driver\br X #T detach the attributes of the selected objects\br X #U undo the previous delete operation\br X #V flip the selected object vertically\br X #W rotate the selected objects clockwise\br X #X escape to driver\br X #Y escape to driver\br X #Z zoom in\br X #0 change the font size to 8 (11)\br X #1 change the font size to 10 (14)\br X #2 change the font size to 12 (17)\br X #3 change the font size to 14 (20)\br X #4 change the font size to 18 (25)\br X #5 change the font size to 24 (34)\br X #, scroll up\br X #. scroll down\br X\br X ^#A add points to the selected poly or spline\br X ^#B change the text style to bold\br X ^#C change the text justification to center justified\br X ^#D delete points from the selected poly or spline\br X ^#E change the drawing mode to rounded-corner rectangles\br X ^#F invert selected bitmap objects\br X ^#G toggle snapping to the grid points\br X ^#I make the selected complex object iconic\br X ^#J make the selected icon object a grouped object\br X ^#K select color or black-and-white output\br X ^#L change the text justification to left justified\br X ^#M make the selected complex object symbolic\br X ^#N make the selected symbolic object a grouped object\br X ^#O change the text style to roman\br X ^#P change the text style to bold-italic\br X ^#Q change the drawing mode to polygon/closed-spline\br X ^#R change the text justification to right justified\br X ^#S save the file under a new name\br X ^#T change the text style to italic\br X ^#U update iconic representations of selected objects\br X ^#V change the drawing mode to oval\br X ^#W toggle between poly and spline\br X ^#X rotate among the various output file formats\br X ^#Y paste from the cut buffer\br X ^#Z change the drawing mode to arcs\br X ^#. import a X11 bitmap file\br X.DE X.br X.SH ATTRIBUTES XAttributes are text strings of the form \fIname=value\fR or \fIvalue\fR Xwhich are attached to any non-text objects. XAttributes can be attached and detached from these objects Xexcept in the following case: X.IP XAttributes of a symbol object in a building-block object file can not Xbe detached when the building-block object is instantiated. XThese attributes are considered to be the ``inherited'' attributes Xof the icon object. X.PP XThe user has control over which part of an attribute is displayed. XAn entire attribute can be made invisible, or only its name Xcan be made invisible (accomplished through the #M command). X.SH DOMAINS XA \fIdomain\fR is a collection of library symbols suitable for Xinstantiations. A library is implemented as a directoy of .sym files, Xand therefore, a domain is implemented as a search path. XIf there are symbols with the same file names but reside Xin different directories specified in the search path, then Xthe one closer to the front of the search path will be made Xavailable for the user to instantiate. X.PP XThe number of domains is be specified by the MaxDomains X default, Xand the names of the domains are specified by the Domain# X default. XThe library search paths are specified by csh environment variables. XSee the section on X DEFAULTS and ENVIRONMENT VARIABLES for more details. X.SH HOW TO MAKE A BUILDING-BLOCK OBJECT (SYMBOL FILE) XHere are the steps for defining a building-block object, to be used Xin a hierarchical design. X.IP 1) XDraw the representation part of the building-block object. Group everything Xtogether. Select this grouped object. X.IP 2) XPop-up the main menu with the right mouse button; select ``Special''. XSelect ``MakeSymbolic'' from the next pop-up menu. XThe selected object becomes a symbol and gets a dashed boundary. X.IP 3) XType in attributes as individual text strings. Select the Xsymbol object and all the Xtext strgings to be attached to the symbol. Type #A (for \fIAttach\fR) Xto attach attributes to the symbol. X.IP 4) XBuild the definition part of the building-block object. Look at the X``flip-flop.sym'' file for an example. To look at that file, first, Xinstantiate a ``flip-flop'' by typing ^I (for \fIInstantialte\fR). XSelect the flip-flop from Xthe pop-up window; place the flip-flop; select the flip-flop and Xtype ^V (for \fIPush\fR) to see the symbol file. X.IP 5) XSave and name the file. X.SH LATEX FIGURE FORMATS XHere we show how to make a figure for a LaTeX file, first with Xthe \fIpsfig\fR (or \fIepsf\fR) special construct, then with the X\fIpsfile\fR special construct. (The author does not recommand Xthe \fIpsfile\fR construct.) An example of both can be found Xin ``example.tex'' included with this distribution. X.PP XTo print a tgif file to be included in a LaTeX document with Xthe \fIpsfig\fR or \fIepsf\fR special construct X(files generated will be in the X\fIencapsulated PostScript\fR format), first Xselect LaTeX format in the panel window (click the left mouse Xbutton on the laser printer icon), then type ^P to generate Xthe encapsulated PostScript file. XIf the file name is ``an-sr-flip-flop.obj'', Xthen the LaTeX figure file generated will be named X``an-sr-flip-flop.eps''. This file can be included in a LaTeX Xdocument as follows, X.PP X.DS I X\\begin{figure*}[htb] X.br X\\input{psfig} X.br X\\centerline{\\psfig{figure=an-sr-flip-flop.eps}} X.br X\\caption{An SR flip-flop. \\label{fig:an-sr-flip-flop}} X.br X\\end{figure*} X.br X.DE X.br X.PP XAn alternative way is to use the \fIepsf\fR construct as follows, X.PP X.DS I X\\begin{figure*}[htb] X.br X\\input{epsf} X.br X\\centerline{\\epsffile{an-sr-flip-flop.eps}} X.br X\\caption{An SR flip-flop. \\label{fig:an-sr-flip-flop}} X.br X\\end{figure*} X.br X.DE X.br X.PP XThe \\centerline command above centers the picture. XIf you have multiple tgif figures in your LaTeX document, Xyou only have to include the psfig macro (\\input{psfig} or \\input{epsf}) Xonce right after X\\begin{document}. Then within each figure environment, Xyou wouldn't need the \\input{psfig} (or \\input{epsf} line. X.PP XIf encapsulated PostScript is not desired, the \fIpsfile\fR Xspecial construct can be used as described here. XFirst, center the picture Xon the page (e.g., the width of a portrait style page is 7.5 inch, so the Xcenter of the page is at the 3.75 inch mark), Xand make the top object on the page as close to Xthe top of the page as possible. XSelect LaTeX format in the panel window, Xthen print in the LaTeX format. XSame as with the \fIpsfig\fR construct, a file with the \fI.eps\fR Xextention will be generated. XThis file can be included in a LaTeX document as follows, X.PP X.DS I X\\begin{figure*}[htb] X.br X\\special{psfile="an-sr-flip-flop.eps" hoffset=-40} X.br X\\rule{0in}{1.1in} X.br X\\caption{An SR flip-flop. \\label{fig:an-sr-flip-flop}} X.br X\\end{figure*} X.br X.DE X.br X.PP XThe \\rule{0in}{1.1in} above specifies an invisible box of 1.1 inches Xhigh, which is the total height of the picture in an-sr-flip-flop. X.SH X DEFAULTS X.TP X.I Tgif*Geometry: WIDTHxHEIGHT+X+Y X.TP X.I Tgif*IconGeometry: +X+Y X.TP X.I Tgif*Foreground: COLORSTRING X.TP X.I Tgif*Background: COLORSTRING X.TP X.I Tgif*BorderColor: COLORSTRING X.TP X.I Tgif*ReverseVideo: [on,off] XFor black and white terminal, reverse video ``on'' means the background Xis black. For color terminal, reverse video ``on'' means the background Xis specified by the Tgif*Foreground color. X.TP X.I Tgif*InitialFont: [Times,Courier,Helvetica,NewCentury,Symbol] XThis specified the initial font. XThe default is Courier. X.TP X.I Tgif*InitialFontStyle: [Roman,Bold,Italic,BoldItalic] XThis specified the initial font style. XThe default is Roman. X.TP X.I Tgif*InitialFontJust: [Left,Center,Right] XThis specified the initial font justification. XThe default is Left. X.TP X.I Tgif*InitialFontDPI: [75,100] XThis specified the initial font DPI (dots-per-inch). XThe default is 75. X.TP X.I Tgif*InitialFontSizeIndex: [0,1,2,3,4,5] XThis specified the initial size \fIindex\fR of the start-up font. XFor the 75dpi font, the indices correspond to point sizes X8, 10, 12, 14, 18, and 24. XFor the 100dpi font, the indices correspond to point sizes X11, 14, 17, 20, 25, 34. XThe default is 4 (18 points) for the 75dpi font and 2 (17 points) Xfor the 100dpi font. X.TP X.I Tgif*MaxColors: NUMBER XThis specified the maximum number of colors. Color0 through ColorMax, Xwhere Max is NUMBER-1, and they all must exist in .Xdefaults. X.TP X.I Tgif*Color#: COLORSTRING XThis specified the correspondance between the color number and a color. X.TP X.I Tgif*DefaultColorIndex: NUMBER XThis specified the default color index if certain color can not be found. XDefault is 0. X.TP X.I Tgif*PrintCommand: COMMAND XThis specified the print command used for printing the PostScript file. XDefault is \fIlpr\fR (without any quotes). An example would be X\fIlpr -h -Pprintername\fR. X.TP X.I Tgif*Synchronize: [on,off] XXSynchronize is called if this default is set to \fIon\fR. Default is X\fIoff\fR. X.TP X.I Tgif*DoubleClickInterval: NUMBER XThis specifies the maximum interval (in milli-seconds) Xbetween two clicked to be recognized as one double-click. XDefault is 300. X.TP X.I Tgif*MaxDomains: NUMBER XThis specified the maximum number of domains. Domain0 through DomainMax, Xwhere Max is NUMBER-1, and they all must exist in .Xdefaults. X.TP X.I Tgif*Domain#: DOMAINSTRING XThis specified the correspondance between the domain number and a domain name. XSee the ENVIRONMENT VARIABLE section to see how to specify a path associated Xwith a domain. X.TP X.I Tgif*DefaultDomain: NUMBER XThis specified the default domain when tgif starts up. XDefault is 0 if not specified. X.SH ENVIRONMENT VARIABLE X.TP X.I TGIFPATH XThis environment variable should be set such that the files, mentioned in the X\fBFILES\fR section below, can be found. X.TP X.I TGIFICON XThis environment variable should be set to the name of the object Xfile to be displayed when tgif is iconified. By default, it is Xset to ``tgificon''. XIf it starts with a / character, absolute path is used; otherwise, Xthe icon file is assumed to be $TGIFPATH/$TGIFICON. X.TP X.I TGIF_[Domain] XFor each \fIDomain\fR name defined in the X defaults, \fITGIF_Domain\fR Xspecifies a search path for the symbol files. Each search path Xshould have the same format as the \fIPATH\fR csh environment variable. XFor example, to specify the symbol path for domain \fIDEFAULT\fR Xto look for symbol files in the library directory /tmp/tgif/symbols Xthen in the current directory, Xthe following command should be executed in csh. X.PP X.DS X.RS X.RS Xsetenv TGIF_DEFAULT /tmp/tgif/symbols:. X.br X.RE X.RE X.DE X.br X.SH FILES X$TGIFPATH/tgificon.obj contains the default tgif icon. X.br X.PP X$TGIFPATH/.psmac contains tgif PostScript macros. X.br X.SH SEE ALSO X\fBlatex\fR(1L), \fBlpr\fR(1), \fBenv\fR(1), \fBX\fR(1), X\fBdvips\fR(1), \fBcsh\fR(1) X.SH IDIOSYNCHRASIES XWhen any of the ``escape to driver'' commands are (accidentally) Xexecuted, the current content of the drawing is saved into X``tmpmodel.obj'' if the drawing indicates that it is an .obj file. XThen tgif escapes to the driver and returns right away. XIf the drawing indicates that it is a .sym file, then the content Xis saved into ``tmpmodel.sym'' but tgif does not return to the driver. X.PP XThe paste operation works on a cut buffer generated by tgif or by non-tgif Xtools (such as \fIxterm\fR). XIf the cut buffer is \fInot\fR generated by tgif, its content is treated as XASCII character strings, which is inserted into the current drawing Xas a text object (current settings for text objects are used Xto create the text object). XIf the cut buffer \fIis\fR generated by tgif, then all the current Xsettings are ignored. X.SH BUGS XThere seems to be a problem printing certain objects with the XApple LaserWriter. Specifically, ovals and Courier fonts Xwith non-solid pens would not work in color PostScript printing. XHowever, they work fine with ghostscript and dxpsview. Xthe Apple LaserWriter. X.SH COPYRIGHT XPlease see the ``Copyright'' file for details on the copyrights. X.SH AUTHOR XWilliam Chia-Wei Cheng (william@cs.ucla.edu) END_OF_FILE if test 22597 -ne `wc -c <'tgif.man'`; then echo shar: \"'tgif.man'\" unpacked with wrong size! fi # end of 'tgif.man' fi if test -f 'tgif2ps.man' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tgif2ps.man'\" else echo shar: Extracting \"'tgif2ps.man'\" \(1202 characters\) sed "s/^X//" >'tgif2ps.man' <<'END_OF_FILE' X.\"@(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/tgif2ps.man,v 2.0 91/03/05 12:50:45 william Exp $ X.TH TGIF2PS 1 "Version 1.0" "Tgif2ps" X.SH NAME X\fItgif2ps\fR \- Convert the PostScript(TM) output page generated by X\fItgif\fR into a PostScript file that can be included in a LaTeX Xdocument with the \fIpsfile\fR special construct. X.SH SYNOPSIS X.B tgif2ps X< /tmp/DRAW.PS > \fIfile.ps\fR X.SH DESCRIPTION X\fITgif\fR normally generates a PostScript page description file /tmp/DRAW.PS Xto be piped to \fIlpr\fR. This file can not be included Xin a LaTeX document, which only accepts PostScript instructions. X\fITgif2ps\fR filters out some header information, some translation/rotation Xinstructions, and the command to force out a page from the standard Xinput. See the tgif man pages for details on how to incorporate X\fIfile.ps\fR in a LaTeX document. X X\fINote:\fR This program should be installed in the path, Xsince it is called within tgif when printing into a LaTeX file. X.SH FILES X/tmp/DRAW.PS X.SH SEE ALSO X\fBlatex\fR(1L), \fBlpr\fR(1), \fBtgif\fR(1) X.SH COPYRIGHT XPlease see the ``Copyright'' file for details on the copyrights. X.SH AUTHOR XWilliam Chia-Wei Cheng (william@cs.ucla.edu) END_OF_FILE if test 1202 -ne `wc -c <'tgif2ps.man'`; then echo shar: \"'tgif2ps.man'\" unpacked with wrong size! fi # end of 'tgif2ps.man' fi if test -f 'example.tex' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'example.tex'\" else echo shar: Extracting \"'example.tex'\" \(1754 characters\) sed "s/^X//" >'example.tex' <<'END_OF_FILE' X% X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/example.tex,v 2.0 91/03/05 12:50:47 william Exp $ X% X\documentstyle[12pt]{article} X% X\oddsidemargin=0in X\textwidth=6.5in X\topmargin=0in X\textheight=609pt X\parskip=14pt X\setlength{\unitlength}{0.5cm} X\begin{document} X% XFigure \ref{fig:psfig} is an example of a tgif \LaTeX\,\, figure printed with Xthe ``psfig'' macro. As you can see, the figure fits nicely between the Xsurrounding text. X% X\begin{figure*}[htb] X\input{psfig} X\centerline{\psfig{figure=an-sr-flip-flop.eps}} X\caption{Example Tgif Diagram Printed with ``psfig'' Macro.\label{fig:psfig}} X\end{figure*} X% XThe bounding box seems to be pretty tight. In XFigure \ref{fig:epsf} below, the same figure is Xgenerated with the ``epsf'' construct. X% X\begin{figure*}[htb] X\input{epsf} X\centerline{\epsffile{an-sr-flip-flop.eps}} X\caption{Example Tgif Diagram Printed with ``epsf'' Macro.\label{fig:epsf}} X\end{figure*} X% XAll these are just trying the illustrate that the bounding boxes Xgenerated by tgif is pretty tight, and there's really no need for Xthe ``psfile'' construct. I don't know if there are cases where Xsome documentation generation software only supports the ``psfile'' Xconstruct, but I an putting in the example anyways. X XFigure \ref{fig:psfile} is an example of a tgif \LaTeX\,\, figure Xprinted with the ``psfile'' macro. Notice the \\rule command. X% X\begin{figure*}[htb] X\special{psfile="an-sr-flip-flop.eps" hoffset=-40} X\rule{0in}{1.1in} X\caption{Example Tgif Diagram Printed with ``psfile'' Macro.\label{fig:psfile}} X\end{figure*} X% XIt is reserving a space of 1.1 inch for the figure. This can Xbe figured out from the ruler within tgif. As a general rule, Xthe ``psfile'' construct should be avoided. X\end{document} END_OF_FILE if test 1754 -ne `wc -c <'example.tex'`; then echo shar: \"'example.tex'\" unpacked with wrong size! fi # end of 'example.tex' fi if test -f 'an-sr-flip-flop.obj' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'an-sr-flip-flop.obj'\" else echo shar: Extracting \"'an-sr-flip-flop.obj'\" \(1783 characters\) sed "s/^X//" >'an-sr-flip-flop.obj' <<'END_OF_FILE' Xstate(0,10,0,0,0,8,1,6,0,2,0,1,0,0,1,1,0,0,4,0,0). X% X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/an-sr-flip-flop.obj,v 2.0 91/03/05 12:50:03 william Exp $ X% Xicon([ Xgroup([ Xbox('yellow',448,0,512,80,0,0,1,11,0,[ X]), Xpoly('yellow',2,[424,16,448,16],0,0,1,47,0,0,0,[ X]), Xpoly('yellow',2,[424,64,448,64],0,0,1,48,0,0,0,[ X]), Xpoly('yellow',2,[512,16,536,16],0,0,1,49,0,0,0,[ X]), Xpoly('yellow',2,[512,64,536,64],0,0,1,50,0,0,0,[ X]) X],[ X]), Xicon([ Xbox('yellow',520,0,552,32,0,0,0,51,0,[ X]), Xbox('yellow',532,12,540,20,2,0,1,52,0,[ X]) X], X"pin",43,[ Xattr("name=", "Q", 1, 0, 1, Xtext('green',504,8,1,0,4,1,1,0,1,11,19,53,0,15,4,[ X "Q"])), Xattr("num=", "", 0, 1, 1, Xtext('green',536,-24,1,0,4,1,1,0,1,44,19,54,0,15,4,[ X "num="])) X]), Xicon([ Xbox('yellow',520,48,552,80,0,0,0,55,0,[ X]), Xbox('yellow',532,60,540,68,2,0,1,56,0,[ X]) X], X"pin",44,[ Xattr("num=", "", 0, 1, 1, Xtext('green',536,24,1,0,4,1,1,0,1,44,19,57,0,15,4,[ X "num="])), Xattr("name=", "Q'", 1, 0, 1, Xtext('green',496,56,1,0,4,1,1,0,1,22,19,58,0,15,4,[ X "Q'"])) X]), Xicon([ Xbox('yellow',408,0,440,32,0,0,0,59,0,[ X]), Xbox('yellow',420,12,428,20,2,0,1,60,0,[ X]) X], X"pin",45,[ Xattr("num=", "", 0, 1, 1, Xtext('green',424,-24,1,0,4,1,1,0,1,44,19,61,0,15,4,[ X "num="])), Xattr("name=", "S'", 1, 0, 1, Xtext('green',464,8,1,0,4,1,1,0,1,22,19,62,0,15,4,[ X "S'"])) X]), Xicon([ Xbox('yellow',408,48,440,80,0,0,0,63,0,[ X]), Xbox('yellow',420,60,428,68,2,0,1,64,0,[ X]) X], X"pin",46,[ Xattr("name=", "R'", 1, 0, 1, Xtext('green',464,56,1,0,4,1,1,0,1,22,19,65,0,15,4,[ X "R'"])), Xattr("num=", "", 0, 1, 1, Xtext('green',424,24,1,0,4,1,1,0,1,44,19,66,0,15,4,[ X "num="])) X]) X], X"flip-flop",51,[ X]). Xtext('white',480,104,0,0,4,2,1,0,1,405,42,67,0,17,4,[ X "This is a SR flip-flop", X "Select the flip-flop with left mouse button and type ^V"]). END_OF_FILE if test 1783 -ne `wc -c <'an-sr-flip-flop.obj'`; then echo shar: \"'an-sr-flip-flop.obj'\" unpacked with wrong size! fi # end of 'an-sr-flip-flop.obj' fi if test -f 'fonts.obj' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fonts.obj'\" else echo shar: Extracting \"'fonts.obj'\" \(8799 characters\) sed "s/^X//" >'fonts.obj' <<'END_OF_FILE' Xstate(0,10,0,0,0,16,1,0,1,1,1,0,1,2,7,0,0,3,4,0,0). X% X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/fonts.obj,v 2.0 91/03/05 12:50:05 william Exp $ X% Xtext('yellow',64,64,0,0,4,1,0,0,1,83,21,11,0,17,4,[ X "hello world"]). Xtext('yellow',64,80,1,0,4,1,0,0,1,121,19,12,0,15,4,[ X "hello world"]). Xtext('yellow',64,96,2,0,4,1,0,0,1,90,22,13,0,18,4,[ X "hello world"]). Xtext('yellow',64,112,3,0,4,1,0,0,1,94,22,14,0,18,4,[ X "hello world"]). Xtext('yellow',64,128,4,0,4,1,0,0,1,105,25,15,0,18,7,[ X "hello world"]). Xtext('yellow',256,64,0,1,4,1,0,0,1,89,21,16,0,17,4,[ X "hello world"]). Xtext('yellow',256,80,1,1,4,1,0,0,1,121,20,17,0,15,5,[ X "hello world"]). Xtext('yellow',256,96,2,1,4,1,0,0,1,98,22,18,0,17,5,[ X "hello world"]). Xtext('yellow',256,112,3,1,4,1,0,0,1,107,22,19,0,18,4,[ X "hello world"]). Xtext('yellow',256,128,4,1,4,1,0,0,1,105,25,20,0,18,7,[ X "hello world"]). Xtext('yellow',448,64,0,2,4,1,0,0,1,84,22,21,0,17,5,[ X "hello world"]). Xtext('yellow',448,80,1,2,4,1,0,0,1,121,19,22,0,15,4,[ X "hello world"]). Xtext('yellow',448,96,2,2,4,1,0,0,1,88,22,23,0,17,5,[ X "hello world"]). Xtext('yellow',448,112,3,2,4,1,0,0,1,94,22,24,0,16,6,[ X "hello world"]). Xtext('yellow',448,128,4,2,4,1,0,0,1,105,25,25,0,18,7,[ X "hello world"]). Xtext('yellow',640,64,0,3,4,1,0,0,1,85,21,26,0,17,4,[ X "hello world"]). Xtext('yellow',640,80,1,3,4,1,0,0,1,121,20,27,0,15,5,[ X "hello world"]). Xtext('yellow',640,96,2,3,4,1,0,0,1,93,22,28,0,17,5,[ X "hello world"]). Xtext('yellow',640,112,3,3,4,1,0,0,1,104,22,29,0,16,6,[ X "hello world"]). Xtext('yellow',640,128,4,3,4,1,0,0,1,105,25,30,0,18,7,[ X "hello world"]). Xtext('yellow',64,192,0,0,5,1,0,0,1,109,28,31,0,22,6,[ X "hello world"]). Xtext('yellow',64,208,1,0,5,1,0,0,1,165,24,32,0,19,5,[ X "hello world"]). Xtext('yellow',64,224,2,0,5,1,0,0,1,117,29,33,0,24,5,[ X "hello world"]). Xtext('yellow',64,240,3,0,5,1,0,0,1,125,28,34,0,23,5,[ X "hello world"]). Xtext('yellow',64,256,4,0,5,1,0,0,1,140,32,35,0,24,8,[ X "hello world"]). Xtext('yellow',288,192,0,1,5,1,0,0,1,121,28,36,0,22,6,[ X "hello world"]). Xtext('yellow',288,208,1,1,5,1,0,0,1,165,25,37,0,20,5,[ X "hello world"]). Xtext('yellow',288,224,2,1,5,1,0,0,1,128,29,38,0,24,5,[ X "hello world"]). Xtext('yellow',288,240,3,1,5,1,0,0,1,148,29,39,0,24,5,[ X "hello world"]). Xtext('yellow',288,256,4,1,5,1,0,0,1,140,32,40,0,24,8,[ X "hello world"]). Xtext('yellow',512,192,0,2,5,1,0,0,1,110,29,41,0,23,6,[ X "hello world"]). Xtext('yellow',512,208,1,2,5,1,0,0,1,165,24,42,0,19,5,[ X "hello world"]). Xtext('yellow',512,224,2,2,5,1,0,0,1,117,29,43,0,24,5,[ X "hello world"]). Xtext('yellow',512,240,3,2,5,1,0,0,1,127,28,44,0,23,5,[ X "hello world"]). Xtext('yellow',512,256,4,2,5,1,0,0,1,140,32,45,0,24,8,[ X "hello world"]). Xtext('yellow',736,192,0,3,5,1,0,0,1,113,28,46,0,22,6,[ X "hello world"]). Xtext('yellow',736,208,1,3,5,1,0,0,1,165,25,47,0,20,5,[ X "hello world"]). Xtext('yellow',736,224,2,3,5,1,0,0,1,128,29,48,0,24,5,[ X "hello world"]). Xtext('yellow',736,240,3,3,5,1,0,0,1,140,29,49,0,24,5,[ X "hello world"]). Xtext('yellow',736,256,4,3,5,1,0,0,1,140,32,50,0,24,8,[ X "hello world"]). Xtext('yellow',64,320,0,0,3,1,0,0,1,63,18,51,0,14,4,[ X "hello world"]). Xtext('yellow',64,336,1,0,3,1,0,0,1,99,16,52,0,13,3,[ X "hello world"]). Xtext('yellow',64,352,2,0,3,1,0,0,1,67,17,53,0,14,3,[ X "hello world"]). Xtext('yellow',64,368,3,0,3,1,0,0,1,72,17,54,0,14,3,[ X "hello world"]). Xtext('yellow',64,384,4,0,3,1,0,0,1,84,20,55,0,14,6,[ X "hello world"]). Xtext('yellow',192,320,0,1,3,1,0,0,1,70,18,56,0,14,4,[ X "hello world"]). Xtext('yellow',192,336,1,1,3,1,0,0,1,99,16,57,0,12,4,[ X "hello world"]). Xtext('yellow',192,352,2,1,3,1,0,0,1,76,17,58,0,14,3,[ X "hello world"]). Xtext('yellow',192,368,3,1,3,1,0,0,1,84,18,59,0,15,3,[ X "hello world"]). Xtext('yellow',192,384,4,1,3,1,0,0,1,84,20,60,0,14,6,[ X "hello world"]). Xtext('yellow',320,320,0,2,3,1,0,0,1,64,18,61,0,14,4,[ X "hello world"]). Xtext('yellow',320,336,1,2,3,1,0,0,1,99,16,62,0,13,3,[ X "hello world"]). Xtext('yellow',320,352,2,2,3,1,0,0,1,68,17,63,0,14,3,[ X "hello world"]). Xtext('yellow',320,368,3,2,3,1,0,0,1,71,17,64,0,14,3,[ X "hello world"]). Xtext('yellow',320,384,4,2,3,1,0,0,1,84,20,65,0,14,6,[ X "hello world"]). Xtext('yellow',448,320,0,3,3,1,0,0,1,66,17,66,0,14,3,[ X "hello world"]). Xtext('yellow',448,336,1,3,3,1,0,0,1,99,16,67,0,12,4,[ X "hello world"]). Xtext('yellow',448,352,2,3,3,1,0,0,1,75,17,68,0,14,3,[ X "hello world"]). Xtext('yellow',448,368,3,3,3,1,0,0,1,82,17,69,0,14,3,[ X "hello world"]). Xtext('yellow',448,384,4,3,3,1,0,0,1,84,20,70,0,14,6,[ X "hello world"]). Xtext('yellow',64,448,0,0,2,1,0,0,1,55,15,71,0,12,3,[ X "hello world"]). Xtext('yellow',64,464,1,0,2,1,0,0,1,77,14,72,0,11,3,[ X "hello world"]). Xtext('yellow',64,480,2,0,2,1,0,0,1,61,15,73,0,12,3,[ X "hello world"]). Xtext('yellow',64,496,3,0,2,1,0,0,1,64,15,74,0,12,3,[ X "hello world"]). Xtext('yellow',64,512,4,0,2,1,0,0,1,75,16,75,0,12,4,[ X "hello world"]). Xtext('yellow',192,448,0,1,2,1,0,0,1,59,15,76,0,12,3,[ X "hello world"]). Xtext('yellow',192,464,1,1,2,1,0,0,1,77,14,77,0,11,3,[ X "hello world"]). Xtext('yellow',192,480,2,1,2,1,0,0,1,64,15,78,0,12,3,[ X "hello world"]). Xtext('yellow',192,496,3,1,2,1,0,0,1,77,15,79,0,12,3,[ X "hello world"]). Xtext('yellow',192,512,4,1,2,1,0,0,1,75,16,80,0,12,4,[ X "hello world"]). Xtext('yellow',320,448,0,2,2,1,0,0,1,55,15,81,0,12,3,[ X "hello world"]). Xtext('yellow',320,464,1,2,2,1,0,0,1,77,14,82,0,11,3,[ X "hello world"]). Xtext('yellow',320,480,2,2,2,1,0,0,1,60,15,83,0,12,3,[ X "hello world"]). Xtext('yellow',320,496,3,2,2,1,0,0,1,64,15,84,0,12,3,[ X "hello world"]). Xtext('yellow',320,512,4,2,2,1,0,0,1,75,16,85,0,12,4,[ X "hello world"]). Xtext('yellow',448,448,0,3,2,1,0,0,1,58,15,86,0,12,3,[ X "hello world"]). Xtext('yellow',448,464,1,3,2,1,0,0,1,77,14,87,0,11,3,[ X "hello world"]). Xtext('yellow',448,480,2,3,2,1,0,0,1,63,15,88,0,12,3,[ X "hello world"]). Xtext('yellow',448,496,3,3,2,1,0,0,1,70,15,89,0,12,3,[ X "hello world"]). Xtext('yellow',448,512,4,3,2,1,0,0,1,75,16,90,0,12,4,[ X "hello world"]). Xtext('yellow',64,576,0,0,1,1,0,0,1,50,13,91,0,10,3,[ X "hello world"]). Xtext('yellow',64,592,1,0,1,1,0,0,1,66,11,92,0,9,2,[ X "hello world"]). Xtext('yellow',64,608,2,0,1,1,0,0,1,50,13,93,0,11,2,[ X "hello world"]). Xtext('yellow',64,624,3,0,1,1,0,0,1,54,13,94,0,11,2,[ X "hello world"]). Xtext('yellow',64,640,4,0,1,1,0,0,1,60,14,95,0,10,4,[ X "hello world"]). Xtext('yellow',192,576,0,1,1,1,0,0,1,49,13,96,0,10,3,[ X "hello world"]). Xtext('yellow',192,592,1,1,1,1,0,0,1,66,11,97,0,9,2,[ X "hello world"]). Xtext('yellow',192,608,2,1,1,1,0,0,1,54,13,98,0,11,2,[ X "hello world"]). Xtext('yellow',192,624,3,1,1,1,0,0,1,66,13,99,0,11,2,[ X "hello world"]). Xtext('yellow',192,640,4,1,1,1,0,0,1,60,14,100,0,10,4,[ X "hello world"]). Xtext('yellow',320,576,0,2,1,1,0,0,1,47,13,101,0,10,3,[ X "hello world"]). Xtext('yellow',320,592,1,2,1,1,0,0,1,66,11,102,0,9,2,[ X "hello world"]). Xtext('yellow',320,608,2,2,1,1,0,0,1,49,13,103,0,11,2,[ X "hello world"]). Xtext('yellow',320,624,3,2,1,1,0,0,1,54,13,104,0,11,2,[ X "hello world"]). Xtext('yellow',320,640,4,2,1,1,0,0,1,60,14,105,0,10,4,[ X "hello world"]). Xtext('yellow',448,576,0,3,1,1,0,0,1,47,13,106,0,10,3,[ X "hello world"]). Xtext('yellow',448,592,1,3,1,1,0,0,1,66,11,107,0,9,2,[ X "hello world"]). Xtext('yellow',448,608,2,3,1,1,0,0,1,54,13,108,0,11,2,[ X "hello world"]). Xtext('yellow',448,624,3,3,1,1,0,0,1,61,13,109,0,11,2,[ X "hello world"]). Xtext('yellow',448,640,4,3,1,1,0,0,1,60,14,110,0,10,4,[ X "hello world"]). Xtext('yellow',64,704,0,0,0,1,0,0,1,40,10,111,0,8,2,[ X "hello world"]). Xtext('yellow',64,720,1,0,0,1,0,0,1,55,10,112,0,8,2,[ X "hello world"]). Xtext('yellow',64,736,2,0,0,1,0,0,1,41,11,113,0,9,2,[ X "hello world"]). Xtext('yellow',64,752,3,0,0,1,0,0,1,43,10,114,0,8,2,[ X "hello world"]). Xtext('yellow',64,768,4,0,0,1,0,0,1,48,11,115,0,8,3,[ X "hello world"]). Xtext('yellow',192,704,0,1,0,1,0,0,1,39,10,116,0,8,2,[ X "hello world"]). Xtext('yellow',192,720,1,1,0,1,0,0,1,55,9,117,0,7,2,[ X "hello world"]). Xtext('yellow',192,736,2,1,0,1,0,0,1,42,11,118,0,9,2,[ X "hello world"]). Xtext('yellow',192,752,3,1,0,1,0,0,1,55,10,119,0,8,2,[ X "hello world"]). Xtext('yellow',192,768,4,1,0,1,0,0,1,48,11,120,0,8,3,[ X "hello world"]). Xtext('yellow',320,704,0,2,0,1,0,0,1,38,10,121,0,8,2,[ X "hello world"]). Xtext('yellow',320,720,1,2,0,1,0,0,1,55,9,122,0,7,2,[ X "hello world"]). Xtext('yellow',320,736,2,2,0,1,0,0,1,40,11,123,0,9,2,[ X "hello world"]). Xtext('yellow',320,752,3,2,0,1,0,0,1,43,10,124,0,8,2,[ X "hello world"]). Xtext('yellow',320,768,4,2,0,1,0,0,1,48,11,125,0,8,3,[ X "hello world"]). Xtext('yellow',448,704,0,3,0,1,0,0,1,37,10,126,0,8,2,[ X "hello world"]). Xtext('yellow',448,720,1,3,0,1,0,0,1,55,9,127,0,7,2,[ X "hello world"]). Xtext('yellow',448,736,2,3,0,1,0,0,1,42,11,128,0,9,2,[ X "hello world"]). Xtext('yellow',448,752,3,3,0,1,0,0,1,50,10,129,0,8,2,[ X "hello world"]). Xtext('yellow',448,768,4,3,0,1,0,0,1,48,11,130,0,8,3,[ X "hello world"]). END_OF_FILE if test 8799 -ne `wc -c <'fonts.obj'`; then echo shar: \"'fonts.obj'\" unpacked with wrong size! fi # end of 'fonts.obj' fi if test -f 'slide-demo.obj' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'slide-demo.obj'\" else echo shar: Extracting \"'slide-demo.obj'\" \(2187 characters\) sed "s/^X//" >'slide-demo.obj' <<'END_OF_FILE' Xstate(4,10,0,0,0,16,1,0,1,2,0,0,1,2,1,1,1,0,4,0,0). X% X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/slide-demo.obj,v 2.0 91/03/05 12:50:08 william Exp $ X% Xpolygon('yellow',5,[144,32,144,152,336,152,336,32,144,32],1,4,10,1,131,0,[ X]). Xtext('yellow',240,48,0,0,5,1,1,0,2,71,28,132,0,22,6,[ X "A Slide"]). Xtext('yellow',240,112,3,2,5,1,1,0,2,43,28,133,0,23,5,[ X "Tgif"]). Xgroup([ Xbox('yellow',16,176,48,208,0,0,0,134,0,[ X]), Xoval('yellow',28,188,36,196,1,0,1,135,0,[ X]) X],[ X]). Xtext('yellow',64,183,0,1,4,1,0,0,1,241,21,136,0,17,4,[ X "Dot is at 0.5 inch from the left."]). Xtext('yellow',64,246,2,0,4,1,0,0,1,239,22,137,0,18,4,[ X "Text is at 1 inch from the left."]). Xtext('yellow',96,308,3,3,4,1,0,0,1,322,22,138,0,16,6,[ X "This text is at 1.5 inch from the left."]). Xgroup([ Xbox('yellow',64,304,80,336,0,0,0,139,0,[ X]), Xbox('yellow',64,318,80,322,1,0,1,140,0,[ X]) X],[ X]). Xtext('yellow',128,464,0,0,3,1,1,0,1,17,18,141,0,14,4,[ X "2in"]). Xtext('yellow',256,464,0,0,3,1,1,0,1,17,18,142,0,14,4,[ X "4in"]). Xtext('yellow',384,464,0,0,3,1,1,0,1,17,18,143,0,14,4,[ X "6in"]). Xtext('yellow',448,512,0,0,3,1,1,0,1,17,18,144,0,14,4,[ X "7in"]). Xtext('yellow',320,512,0,0,3,1,1,0,1,17,18,145,0,14,4,[ X "5in"]). Xtext('yellow',192,512,0,0,3,1,1,0,1,17,18,146,0,14,4,[ X "3in"]). Xtext('yellow',64,512,0,0,3,1,1,0,1,17,18,147,0,14,4,[ X "1in"]). Xtext('yellow',384,144,1,0,0,1,1,0,1,15,10,148,0,8,2,[ X "8pt"]). Xtext('yellow',384,160,1,0,1,1,1,0,1,24,11,149,0,9,2,[ X "10pt"]). Xtext('yellow',384,176,1,0,2,1,1,0,1,28,14,150,0,11,3,[ X "12pt"]). Xtext('yellow',384,192,1,0,3,1,1,0,1,36,16,151,0,13,3,[ X "14pt"]). Xtext('yellow',384,208,1,0,4,1,1,0,1,44,19,152,0,15,4,[ X "18pt"]). Xtext('yellow',384,224,1,0,5,1,1,0,1,60,24,153,0,19,5,[ X "24pt"]). Xpoly('yellow',2,[384,336,384,456],2,0,1,8,0,0,0,[ X]). Xpoly('yellow',2,[256,336,256,456],2,0,1,10,0,0,0,[ X]). Xpoly('yellow',2,[128,336,128,456],2,0,1,12,0,0,0,[ X]). Xpoly('yellow',2,[448,336,448,504],2,0,1,7,0,0,0,[ X]). Xpoly('yellow',2,[320,336,320,504],2,0,1,9,0,0,0,[ X]). Xpoly('yellow',2,[192,336,192,504],2,0,1,11,0,0,0,[ X]). Xpoly('yellow',2,[64,336,64,504],2,0,1,13,0,0,0,[ X]). Xtext('yellow',240,80,2,0,5,1,1,0,7,145,29,154,0,24,5,[ X "Presented by"]). END_OF_FILE if test 2187 -ne `wc -c <'slide-demo.obj'`; then echo shar: \"'slide-demo.obj'\" unpacked with wrong size! fi # end of 'slide-demo.obj' fi if test -f 'flip-flop.sym' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'flip-flop.sym'\" else echo shar: Extracting \"'flip-flop.sym'\" \(5728 characters\) sed "s/^X//" >'flip-flop.sym' <<'END_OF_FILE' Xstate(0,10,0,0,0,8,1,8,0,2,0,1,0,0,1,0,0,0,4,0,0). X% X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/flip-flop.sym,v 2.0 91/03/05 12:50:10 william Exp $ X% Xtext('white',496,184,0,0,4,1,0,0,1,252,21,71,0,17,4,[ X "definition part of the NAND gate."]). Xtext('white',448,160,0,0,4,1,0,0,1,317,21,72,0,17,4,[ X "Select a NAND gate and type ^V to see the"]). Xtext('white',496,136,0,0,4,1,0,0,1,164,21,73,0,17,4,[ X "building-block object."]). Xtext('white',448,112,0,0,4,1,0,0,1,341,21,74,0,17,4,[ X "The rest of this file is the definition part of the"]). Xtext('white',496,88,0,0,4,1,0,0,1,264,21,75,0,17,4,[ X "is highlighted with a dashed outline."]). Xtext('white',448,64,0,0,4,1,0,0,1,293,21,76,0,17,4,[ X "The representation part of the flip-flop"]). Xtext('white',448,40,0,0,4,1,0,0,1,321,21,77,0,17,4,[ X "The SR flip-flop is a building-block object."]). Xicon([ Xgroup([ Xpoly('yellow',2,[192,272,168,272],0,0,1,20,1,0,0,[ X]), Xpoly('yellow',2,[192,320,168,320],0,0,1,21,1,0,0,[ X]), Xpoly('yellow',2,[312,296,288,296],0,0,1,22,1,0,0,[ X]), Xgroup([ Xoval('yellow',264,284,288,308,2,0,1,78,0,[ X]), Xpoly('yellow',4,[224,264,192,264,192,328,224,328],0,0,1,23,0,0,0,[ X]), Xpoly('yellow',3,[224,264,264,264,264,296],0,0,1,24,1,0,0,[ X]), Xpoly('yellow',3,[224,328,264,328,264,296],0,0,1,25,1,0,0,[ X]) X],[ X]) X],[ X]), Xicon([ Xbox('yellow',296,280,328,312,0,0,0,79,0,[ X]), Xbox('yellow',308,292,316,300,2,0,1,80,0,[ X]) X], X"pin",17,[ Xattr("name=", "out", 0, 1, 1, Xtext('green',312,272,1,0,4,1,1,0,1,88,19,81,0,15,4,[ X "name=out"])), Xattr("num=", "3", 1, 0, 1, Xtext('green',296,280,1,0,4,1,1,0,1,11,19,82,0,15,4,[ X "3"])) X]), Xicon([ Xbox('yellow',152,256,184,288,0,0,0,83,0,[ X]), Xbox('yellow',164,268,172,276,2,0,1,84,0,[ X]) X], X"pin",18,[ Xattr("num=", "1", 1, 0, 1, Xtext('green',184,256,1,0,4,1,1,0,1,11,19,85,0,15,4,[ X "1"])), Xattr("name=", "in1", 0, 1, 1, Xtext('green',168,248,1,0,4,1,1,0,1,88,19,86,0,15,4,[ X "name=in1"])) X]), Xicon([ Xbox('yellow',152,304,184,336,0,0,0,87,0,[ X]), Xbox('yellow',164,316,172,324,2,0,1,88,0,[ X]) X], X"pin",19,[ Xattr("name=", "in2", 0, 1, 1, Xtext('green',168,296,1,0,4,1,1,0,1,88,19,89,0,15,4,[ X "name=in2"])), Xattr("num=", "2", 1, 0, 1, Xtext('green',184,304,1,0,4,1,1,0,1,11,19,90,0,15,4,[ X "2"])) X]) X], X"nand2",26,[ Xattr("LOC=", "", 1, 1, 1, Xtext('red',228,285,1,0,5,1,1,0,1,60,24,91,0,19,5,[ X "LOC="])) X]). Xicon([ Xgroup([ Xpoly('yellow',2,[192,392,168,392],0,0,1,27,1,0,0,[ X]), Xpoly('yellow',2,[192,440,168,440],0,0,1,28,1,0,0,[ X]), Xpoly('yellow',2,[312,416,288,416],0,0,1,29,1,0,0,[ X]), Xgroup([ Xoval('yellow',264,404,288,428,2,0,1,92,0,[ X]), Xpoly('yellow',4,[224,384,192,384,192,448,224,448],0,0,1,30,0,0,0,[ X]), Xpoly('yellow',3,[224,384,264,384,264,416],0,0,1,31,1,0,0,[ X]), Xpoly('yellow',3,[224,448,264,448,264,416],0,0,1,32,1,0,0,[ X]) X],[ X]) X],[ X]), Xicon([ Xbox('yellow',296,400,328,432,0,0,0,93,0,[ X]), Xbox('yellow',308,412,316,420,2,0,1,94,0,[ X]) X], X"pin",33,[ Xattr("num=", "3", 1, 0, 1, Xtext('green',296,400,1,0,4,1,1,0,1,11,19,95,0,15,4,[ X "3"])), Xattr("name=", "out", 0, 1, 1, Xtext('green',312,392,1,0,4,1,1,0,1,88,19,96,0,15,4,[ X "name=out"])) X]), Xicon([ Xbox('yellow',152,376,184,408,0,0,0,97,0,[ X]), Xbox('yellow',164,388,172,396,2,0,1,98,0,[ X]) X], X"pin",34,[ Xattr("name=", "in1", 0, 1, 1, Xtext('green',168,368,1,0,4,1,1,0,1,88,19,99,0,15,4,[ X "name=in1"])), Xattr("num=", "1", 1, 0, 1, Xtext('green',184,376,1,0,4,1,1,0,1,11,19,100,0,15,4,[ X "1"])) X]), Xicon([ Xbox('yellow',152,424,184,456,0,0,0,101,0,[ X]), Xbox('yellow',164,436,172,444,2,0,1,102,0,[ X]) X], X"pin",35,[ Xattr("num=", "2", 1, 0, 1, Xtext('green',184,424,1,0,4,1,1,0,1,11,19,103,0,15,4,[ X "2"])), Xattr("name=", "in2", 0, 1, 1, Xtext('green',168,416,1,0,4,1,1,0,1,88,19,104,0,15,4,[ X "name=in2"])) X]) X], X"nand2",36,[ Xattr("LOC=", "", 1, 1, 1, Xtext('red',228,405,1,0,5,1,1,0,1,60,24,105,0,19,5,[ X "LOC="])) X]). Xpoly('cyan',6,[312,416,336,416,336,392,144,344,144,320,168,320],0,0,1,41,0,0,0,[ X]). Xpoly('cyan',6,[312,296,336,296,336,320,144,368,144,392,168,392],0,0,1,42,0,0,0,[ X]). Xsym([ Xgroup([ Xbox('yellow',208,88,272,168,0,0,1,106,0,[ X]), Xpoly('yellow',2,[184,104,208,104],0,0,1,47,0,0,0,[ X]), Xpoly('yellow',2,[184,152,208,152],0,0,1,48,0,0,0,[ X]), Xpoly('yellow',2,[272,104,296,104],0,0,1,49,0,0,0,[ X]), Xpoly('yellow',2,[272,152,296,152],0,0,1,50,0,0,0,[ X]) X],[ X]), Xicon([ Xbox('yellow',280,88,312,120,0,0,0,107,0,[ X]), Xbox('yellow',292,100,300,108,2,0,1,108,0,[ X]) X], X"pin",43,[ Xattr("name=", "Q", 1, 0, 1, Xtext('green',264,96,1,0,4,1,1,0,1,11,19,109,0,15,4,[ X "Q"])), Xattr("num=", "", 0, 1, 1, Xtext('green',296,64,1,0,4,1,1,0,1,44,19,110,0,15,4,[ X "num="])) X]), Xicon([ Xbox('yellow',280,136,312,168,0,0,0,111,0,[ X]), Xbox('yellow',292,148,300,156,2,0,1,112,0,[ X]) X], X"pin",44,[ Xattr("num=", "", 0, 1, 1, Xtext('green',296,112,1,0,4,1,1,0,1,44,19,113,0,15,4,[ X "num="])), Xattr("name=", "Q'", 1, 0, 1, Xtext('green',256,144,1,0,4,1,1,0,1,22,19,114,0,15,4,[ X "Q'"])) X]), Xicon([ Xbox('yellow',168,88,200,120,0,0,0,115,0,[ X]), Xbox('yellow',180,100,188,108,2,0,1,116,0,[ X]) X], X"pin",45,[ Xattr("num=", "", 0, 1, 1, Xtext('green',184,64,1,0,4,1,1,0,1,44,19,117,0,15,4,[ X "num="])), Xattr("name=", "S'", 1, 0, 1, Xtext('green',224,96,1,0,4,1,1,0,1,22,19,118,0,15,4,[ X "S'"])) X]), Xicon([ Xbox('yellow',168,136,200,168,0,0,0,119,0,[ X]), Xbox('yellow',180,148,188,156,2,0,1,120,0,[ X]) X], X"pin",46,[ Xattr("name=", "R'", 1, 0, 1, Xtext('green',224,144,1,0,4,1,1,0,1,22,19,121,0,15,4,[ X "R'"])), Xattr("num=", "", 0, 1, 1, Xtext('green',184,112,1,0,4,1,1,0,1,44,19,122,0,15,4,[ X "num="])) X]) X],[ X]). Xpoly('cyan',4,[184,104,80,104,80,272,168,272],0,0,1,51,0,0,0,[ X]). Xpoly('cyan',4,[184,152,64,152,64,440,168,440],0,0,1,52,0,0,0,[ X]). Xpoly('cyan',4,[312,296,360,296,360,104,296,104],0,0,1,53,0,0,0,[ X]). Xpoly('cyan',4,[312,416,376,416,376,152,296,152],0,0,1,54,0,0,0,[ X]). END_OF_FILE if test 5728 -ne `wc -c <'flip-flop.sym'`; then echo shar: \"'flip-flop.sym'\" unpacked with wrong size! fi # end of 'flip-flop.sym' fi if test -f 'nand2.sym' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'nand2.sym'\" else echo shar: Extracting \"'nand2.sym'\" \(2780 characters\) sed "s/^X//" >'nand2.sym' <<'END_OF_FILE' Xstate(0,10,0,0,0,8,1,8,0,2,0,1,0,0,1,0,0,0,4,0,0). X% X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/nand2.sym,v 2.0 91/03/05 12:50:11 william Exp $ X% Xtext('white',320,264,0,0,4,1,0,0,1,428,21,123,0,17,4,[ X "Select a pin icon and type #M to look at the pin attributes."]). Xtext('white',320,240,0,0,4,1,0,0,1,436,21,124,0,17,4,[ X "You can actually push into the little squares which are pins."]). Xtext('white',320,216,0,0,4,1,0,0,1,377,21,125,0,17,4,[ X "Ungroup the little pieces and see what is it made of."]). Xtext('white',384,192,0,0,4,1,0,0,1,94,21,126,0,17,4,[ X "box go away."]). Xtext('white',320,168,0,0,4,1,0,0,1,390,21,127,0,17,4,[ X "Select the UnMakeSymbolic item and see the dashed"]). Xtext('white',384,144,0,0,4,1,0,0,1,129,21,128,0,17,4,[ X "named ``special''."]). Xtext('white',384,120,0,0,4,1,0,0,1,356,21,129,0,17,4,[ X "the right mouse button, then select the last entry"]). Xtext('white',320,96,0,0,4,1,0,0,1,438,21,130,0,17,4,[ X "Select one of the NAND gates, pop up the main menu using"]). Xtext('white',320,72,0,0,4,1,0,0,1,237,21,131,0,17,4,[ X "Make a copy of the NAND gate."]). Xtext('white',320,48,0,0,4,1,0,0,1,374,21,132,0,17,4,[ X "It is therefore a ``primitive'' building-block object."]). Xtext('white',320,24,0,0,4,1,0,0,1,338,21,133,0,17,4,[ X "The NAND gate has no implementation part."]). Xsym([ Xgroup([ Xpoly('yellow',2,[136,104,112,104],0,0,1,20,1,0,0,[ X]), Xpoly('yellow',2,[136,152,112,152],0,0,1,21,1,0,0,[ X]), Xpoly('yellow',2,[256,128,232,128],0,0,1,22,1,0,0,[ X]), Xgroup([ Xoval('yellow',208,116,232,140,2,0,1,134,0,[ X]), Xpoly('yellow',4,[168,96,136,96,136,160,168,160],0,0,1,23,0,0,0,[ X]), Xpoly('yellow',3,[168,96,208,96,208,128],0,0,1,24,1,0,0,[ X]), Xpoly('yellow',3,[168,160,208,160,208,128],0,0,1,25,1,0,0,[ X]) X],[ X]) X],[ X]), Xicon([ Xbox('yellow',240,112,272,144,0,0,0,135,0,[ X]), Xbox('yellow',252,124,260,132,2,0,1,136,0,[ X]) X], X"pin",17,[ Xattr("name=", "out", 0, 1, 1, Xtext('green',256,104,1,0,4,1,1,0,1,88,19,137,0,15,4,[ X "name=out"])), Xattr("num=", "3", 1, 0, 1, Xtext('green',240,112,1,0,4,1,1,0,1,11,19,138,0,15,4,[ X "3"])) X]), Xicon([ Xbox('yellow',96,88,128,120,0,0,0,139,0,[ X]), Xbox('yellow',108,100,116,108,2,0,1,140,0,[ X]) X], X"pin",18,[ Xattr("num=", "1", 1, 0, 1, Xtext('green',128,88,1,0,4,1,1,0,1,11,19,141,0,15,4,[ X "1"])), Xattr("name=", "in1", 0, 1, 1, Xtext('green',112,80,1,0,4,1,1,0,1,88,19,142,0,15,4,[ X "name=in1"])) X]), Xicon([ Xbox('yellow',96,136,128,168,0,0,0,143,0,[ X]), Xbox('yellow',108,148,116,156,2,0,1,144,0,[ X]) X], X"pin",19,[ Xattr("name=", "in2", 0, 1, 1, Xtext('green',112,128,1,0,4,1,1,0,1,88,19,145,0,15,4,[ X "name=in2"])), Xattr("num=", "2", 1, 0, 1, Xtext('green',128,136,1,0,4,1,1,0,1,11,19,146,0,15,4,[ X "2"])) X]) X],[ Xattr("LOC=", "", 1, 1, 0, Xtext('red',172,117,1,0,5,1,1,0,1,60,24,147,0,19,5,[ X "LOC="])) X]). END_OF_FILE if test 2780 -ne `wc -c <'nand2.sym'`; then echo shar: \"'nand2.sym'\" unpacked with wrong size! fi # end of 'nand2.sym' fi if test -f 'pin.sym' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'pin.sym'\" else echo shar: Extracting \"'pin.sym'\" \(449 characters\) sed "s/^X//" >'pin.sym' <<'END_OF_FILE' Xstate(0,10,0,0,0,16,1,4,2,2,0,0,0,0,1,1,1,0,5,0,0). X% X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/pin.sym,v 2.0 91/03/05 12:50:12 william Exp $ X% Xsym([ Xbox('yellow',96,96,128,128,0,0,0,76,0,[ X]), Xbox('yellow',108,108,116,116,2,0,1,77,0,[ X]) X],[ Xattr("name=", "", 1, 1, 0, Xtext('green',112,88,1,0,4,1,1,0,1,55,19,78,0,15,4,[ X "name="])), Xattr("num=", "", 1, 1, 0, Xtext('green',112,72,1,0,4,1,1,0,1,44,19,79,0,15,4,[ X "num="])) X]). END_OF_FILE if test 449 -ne `wc -c <'pin.sym'`; then echo shar: \"'pin.sym'\" unpacked with wrong size! fi # end of 'pin.sym' fi if test -f 'tangram.sym' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tangram.sym'\" else echo shar: Extracting \"'tangram.sym'\" \(630 characters\) sed "s/^X//" >'tangram.sym' <<'END_OF_FILE' Xstate(0,10,0,0,0,16,1,4,1,1,0,0,1,2,1,0,0,0,7,0,0). X% X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/tangram.sym,v 2.0 91/03/05 12:50:29 william Exp $ X% Xsym([ Xpolygon('yellow',5,[128,96,96,128,128,160,160,128,128,96],0,0,1,0,79,0,[ X]), Xpoly('yellow',2,[96,128,160,128],0,0,1,0,0,0,0,[ X]), Xpoly('yellow',2,[112,112,144,112],0,0,1,1,0,0,0,[ X]), Xpoly('yellow',2,[128,112,128,160],0,0,1,2,0,0,0,[ X]), Xpoly('yellow',2,[112,112,112,128],0,0,1,3,0,0,0,[ X]), Xpoly('yellow',2,[128,112,144,128],0,0,1,4,0,0,0,[ X]) X],[ Xattr("name=", "Tangram", 1, 0, 0, Xtext('yellow',128,160,3,2,3,1,1,0,1,65,17,80,0,14,3,[ X "Tangram"])) X]). END_OF_FILE if test 630 -ne `wc -c <'tangram.sym'`; then echo shar: \"'tangram.sym'\" unpacked with wrong size! fi # end of 'tangram.sym' fi echo shar: End of archive 23 \(of 23\). cp /dev/null ark23isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 23 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 ---------------------------------> cut here <--------------------------------- -- Bill Cheng // UCLA Computer Science Department // (213) 206-7135 3277 Boelter Hall // Los Angeles, California 90024 // USA william@CS.UCLA.EDU ...!{uunet|ucbvax}!cs.ucla.edu!william -- Dan Heller ------------------------------------------------ O'Reilly && Associates Z-Code Software Senior Writer President argv@ora.com argv@zipcode.com ------------------------------------------------ General Email: argv@sun.com Comp-sources-x stuff: comp-sources.x@uunet.uu.net