Path: utzoo!attcan!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!ucdavis!iris!kwok From: kwok@iris (Conrad Kwok) Newsgroups: comp.text Subject: EEPIC 1.0 (Part 1 of 2) Message-ID: <2869@ucdavis.ucdavis.edu> Date: 22 Aug 88 23:57:19 GMT Sender: uucp@ucdavis.ucdavis.edu Reply-To: kwok@iris (Conrad Kwok) Organization: U.C. Davis - Department of Electrical Engineering and Computer Science Lines: 877 #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # README # eepic.tex # epic-eg3.tex # epic-eg4.tex # eepicemu.sty # This archive created: Sun Aug 21 00:03:56 1988 export PATH; PATH=/bin:$PATH if test -f 'README' then echo shar: will not over-write existing file "'README'" else sed 's/^X//' << \SHAR_EOF > 'README' XEEPIC is a set of TeX macros for LaTeX. It includes several extensions to EPIC Xand LaTeX picture drawing environement and provides several new commands. X X------------------------------ XAdditions to Version 1.00 Xo new commands to draw filled cirlces and ellipsis. Xo new command to set line thickness to any width. Xo bugs in EEPICEMU.sty are fixed. X------------------------------ X XExtensions to LaTeX and EPIC include: Xo drawing of lines in any slopes Xo drawing of circles in any radii Xo drawing of dotted lines and dash lines in a much faster way and much less X TeX memory X XIt also provides new commands for: Xo drawing ellipsis Xo drawing arcs Xo drawing of splines X XPlease read the manual for details. X X************IMPORTANT************** X XThe standard EEPIC style file generates tpic \special. If your printer does not Xsupport those specials, you have to either change "eepic" in the X\documentstyle command to "eepicemu" or rename "eepicemu.sty" to "eepic.sty" Xbefore formating the manual. "eepicemu.sty" is the emulation package of EEPIC Xusing EPIC and it does not generate any \special command. However, \arc Xcommand is not supported in the emulation package. Hence, you will get 3 error Xmessages if you use "eepicemu" to format the manual. Furthermore, the Xemulation package uses a lot more TeX memory. If your TeX run out of memory Xduring the formating of the manual, you can insert \clearpage between example X3 and example 4 to put them on different pages. X XEPIC is an TeX macro package for use with LaTeX. It is written by XSunil Podar, Dept of Computer Science, SUNY at Stony Brook, NY 11794. XThe "epic.sty" file is include in the distribution so that you can format the Xmanual. I strongly recommend everyone using EEPIC should get a full package of XEPIC. Information on getting EPIC and printer drivers that support tpic Xspecials are given at the end of this file. X X[ I tried to contact the author to get permission to include "epic.sty" ] X[ in EEPIC distribution but I did not get any reply. I hope this is okay ] X X********MISC*********** Xo Any line beginning with "%%" in eepic.sty may be removed for efficiency X X X*******E-MAIL Address******* X% Internet : kwok@iris X% csnet : kwok@ucd.csnet X% csnet : kwok%iris.ucdavis.edu@csnet.relay X% UUCP : ...!ucbvax!ucdavis!iris!kwok X X X--Conrad Kwok X X---------------------------------------------------------------------- XFirst, thanks to all who have responsed to my question. It seems Xto me that not many DVI drivers currently support tpic Xspecials but a number of people are planning to support tpic Xspecials in their new DVI drivers. Here is the summary. X X1) "iptex" written by Chris Torek --- This is for imagen printer. XIt is included in the UNIX TeX distribution. It is also Xavailable for anonymous ftp from a.cs.uiuc.edu in the file Xiptex.tar X X2) "texx" written by Dirk Grunwald --- DVI previewers for X11. XIt supports most of the tpic specials but not all. It is part of Xthe iptex package. See 1) above. X X3) "texsun" written by Dirk Grunwald --- DVI previewers for XSunview window system. It supports most of the tpic specials. It Xis also part of the iptex package. See 1) above. X X4) "dvips" written by Tomas Rokicki and tpic special codes are Xadded by Dorab Patel --- A DVI to Postscript translator. It is Xavailable for anonymous ftp from labrea.stanford.edu. X X5) L. Michael Gray in the University of New Hamsphire said he has Xmodified dln01 (for DEC LN01S), dvi2ps and xdvi (for X10.4) to Xhandle tpic specials. He may be reached at lmg%unhcs@RELAY.CS.NET. X X6) "dviis" previewers for Integrated Solutions. I think it is Xavailable on june.cs.washington.edu. X X7) DVI previewers written by Randy Buckland for VMS vaxstations. XThe program is written in Ada. The executable is available for Xanonymous ftp from argon.rti.org [128.109.139.64]. X X8) There are a number of DVI drivers in science.utah.edu but I Xdon't know which one support tpic specials and who one don't. X XSome of the information here come at second hand. Correct me if Xany of these are wrong. If you know any DVI drivers that support Xtpic specials but they are not list here. Please send me a Xmessage so that I can keep this list up-to-date. X XThanks. X X--Conrad SHAR_EOF fi # end of overwriting check if test -f 'eepic.tex' then echo shar: will not over-write existing file "'eepic.tex'" else sed 's/^X//' << \SHAR_EOF > 'eepic.tex' X\documentstyle[11pt,epic,eepic]{article} X% ALLTT DOCUMENT-STYLE OPTION - released 17 December 1987 X% for LaTeX version 2.09 X% Copyright (C) 1987 by Leslie Lamport X X% Defines the `alltt' environment, which is like the `verbatim' X% environment except that `\', `\{', and `\}' have their usual meanings. X% Thus, other commands and environments can appear within an `alltt' X% environment. Here are some things you may want to do in an `alltt' X% environment: X% X% * Change fonts--e.g., by typing `{\em emphasized text\/}'. X% X% * Insert text from a file foo.tex by typing `input{foo}'. Beware that X% each stars a new line, so if foo.tex ends with a X% you can wind up with an extra blank line if you're not careful. X% X% * Insert a math formula. Note that `$' just produces a dollar sign, X% so you'll have to type `\(...\)' or `\[...\]'. Also, `^' and `_' X% just produce their characters; use `\sp' or `\sb' for super- and X% subscripts, as in `\(x\sp{2}\)'. X\makeatletter X\def\docspecials{\do\ \do\$\do\&% X \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} X% X\def\alltt{\trivlist \item[]\if@minipage\else\vskip\parskip\fi X\leftskip\@totalleftmargin\rightskip\z@ X\parindent\z@\parfillskip\@flushglue\parskip\z@ X\@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par} X\obeylines \tt \catcode``=13 \@noligs \let\do\@makeother \docspecials X \frenchspacing\@vobeyspaces} X% X\let\endalltt=\endtrivlist X\makeatother X X\topmargin=-37pt\oddsidemargin=0pt\evensidemargin=0pt X\marginparsep 10pt\marginparwidth 60pt X\textheight 9truein\textwidth 6.5truein X X\chardef\BS=`\\ % It only works in \tt font X\newcommand{\PiCTeX}{PiC\TeX} X\newcommand{\epic}{{\sc epic}} X\newcommand{\eepic}{{\sc eepic}} X\newcommand{\plotchar}{\makebox(0,0){\large $\otimes$}} X\parskip=4pt plus 2pt minus 1pt X\title{EEPIC\\Extensions to epic\ and \LaTeX \\ Picture XEnvironment} X\author{Conrad Kwok\\ X Department of Electrical Engineering and Computer Science\\ X University of California, Davis} X\date{August 14, 1988} X\begin{document} X\maketitle X X X\section{Introduction} X\LaTeX\ provides a basic but limited picture drawing capability. X\epic\footnote{\epic\ is a \LaTeX\ macro package written by Sunil XPodar at S.U.N.Y at Stony Brook. Please read the section on Xinstallation for more information} is an enhancement to the Xpicture environment of \LaTeX\ which provides a simpler and more Xpowerful interface. It introduces new commands for drawing solid Xlines, dotted lines, dash lines and new environments suitable for Xplotting graphs. X XHowever, \epic\ still inherits many of the limitations of X\LaTeX\ in picture drawing and hence some of the functions either Xtake a long time to accomplish or the output is not very nice Xlooking. X Xtpic is preprocessor program for use with \TeX. It uses a set of X\verb|\special|s graphics commands for drawing pictures. More and Xmore DVI driver programs supports those specials. They are Xbecoming a standard set of \verb|\special|s for DVI files. XHowever, the major disadvantage of tpic is that the tpic Xpreprocessor itself is not readily available on most machines. It Xis written in yacc and C language. It is mainly for UNIX or Xsimilar system. X X\eepic, as an extension to both \LaTeX\ and \epic, tries to Xalleviate some of the limitations in \LaTeX, \epic\ and tpic by Xgenerating tpic \verb|special|s using \TeX\ commands instead of Xany preprocessor program, but at the same time provides Xcompatibility with the original commands such that when a DVI Xdriver which understands tpic \verb|special|s are not available, Xthe documents can still be formatted using standard \LaTeX\ and X\epic. However, the output probably will not be as good as Xoriginally intended. X XCurrently, \eepic\ extends \LaTeX\ and \epic\ in the following Xways: X\begin{itemize}\parskip=0pt X\item Draws lines in any slopes. X\item Draws circles and discs (filled circle) in any radii. X\item Draws dotted lines and dash lines in a much faster way and Xrequires much less \TeX\ internal memory. X\item Provides more line thickness options. X\end{itemize} X XFurthermore, \eepic\ introduces several new commands for: X\begin{itemize}\parskip=0pt X\item drawing of ellipsis and filled ellipsis X\item drawing of arcs X\item drawing of splines (cubic splines using control points) X\item drawing of polylines X\end{itemize} X XAll the affected commands in \LaTeX\ and \epic\ will be discussed Xin the subsequent sections. The compatibility issues will be Xdescribed in the section~\ref{compat}. X\clearpage X X X\section{Extension to \LaTeX} X XIn \LaTeX, drawing of lines and circles are done using special Xfonts. Therefore only limited functions are provided. The Xextensions in \eepic\ allow users to draw lines in any slope and Xto draw circles in any sizes. However, the limitation of slopes Xfor vectors remains the same in the mean time. That is the slope Xthat can be handled is $\frac{x}{y}$ where $x$ and $y$ are Xintegers in the range $[-4,4]$. Please read \LaTeX\ manual for Xdetails. X X X\subsection{\tt \BS line} XThe syntax of \verb|\line| is the same as that in \LaTeX: X\begin{quote} X\verb|\line(|$x$,$y$\verb|){|{\em length}\verb|}| X\end{quote} XBut now $x$ and $y$ can be any integer values within the limit of X\TeX. Furthermore, there is no more lower limit for {\em length} Xparameter. X X X\subsection{\tt \BS circle} XThe syntax of \verb|\circle| is the same as that in \LaTeX: X\begin{quote} X\verb|\circle{|{\em diameter}\verb|}| X\end{quote} Xor X\begin{quote} X\verb|\circle*{|{\em diameter}\verb|}| X\end{quote} XBut now the {\em diameter} parameter can be any number acceptable Xby \TeX\ and a circle with the specified diameter (exactly) will Xbe drawn. X X X\subsection{\tt \BS oval} XThe \verb|\oval| command is changed such that the maximum Xdiameter of the quarter circles at the corners can be set to any Xvalues. This is done by setting the variable \verb|\maxovaldiam| Xto the desire \TeX{} dimension. The default is 40pt. X X X\clearpage X X X\section{Extension to EPIC} X\epic\ is an enhancement to the Picture Environment of \LaTeX. X\epic\ generates standard DVI files and requires only standard X\LaTeX\ fonts. Some of the functions it provides are: X\begin{center} X\begin{tabular}{lll} X\verb|\multiputlist| & \verb|\dottedline| & \verb|\putfile| \\ X\verb|\matrixput| & \verb|\dashline| \\ X\verb|\grid| & \verb|\drawline| \\ X\end{tabular} X\end{center} XDetails can be found in the \epic\ manual. X XExtensions to \epic\ in \eepic\ include better line drawing Xoutput, faster operation and less memory requirement. The Xcommands affected are: X\begin{enumerate}\parskip=0pt X\item \verb|\drawline| X\item \verb|\dashline| X\item \verb|\dottedline| X\end{enumerate} XAnd the three ``\verb|*join|'' environments are indirectly Xaffected also. X X X\subsection{\tt \BS drawline} XThe syntax of \verb|\drawline| is: X\begin{quote} X\begin{alltt} X\BS{}drawline[{\em{}stretch}](\(x\sb{1}\),\(y\sb{1}\))(\(x\sb{2}\),\(y\sb{2}\))\ldots(\(x\sb{n}\),\(y\sb{n}\)) X\end{alltt} X\end{quote} Xwhere {\em stretch} is an integer between $-100$ and infinity. XHowever any number greater than 0 are the same. An negative {\em Xstretch} in \verb|\drawline| will call \verb|\dashline|. X XThe thickness of the line is affected by \verb|\thinlines|, X\verb|\thicklines| and \verb|\Thicklines| declarations. XHorizontal and vertical lines are drawn using rules. X X X\subsection{\tt \BS dottedline} XThe syntax of \verb|\dottedline| is: X\begin{quote} X\begin{alltt} X\BS{}dottedline[{\em{}dot character\/}]\{{\em{}dotgap\/}\}(\(x\sb{1}\),\(y\sb{1}\))(\(x\sb{2}\),\(y\sb{2}\))\ldots(\(x\sb{n}\),\(y\sb{n}\)) X\end{alltt} X\end{quote} Xwhere {\em dot character} is the character used in drawing the X``dotted'' line. {\em dotgap} is the interdot gap in terms of X\verb|\unitlength|. \verb|\special|s will only be generated if no Xoptional dot character is specified. X XThe size of the dots are affected by \verb|\thinlines|, X\verb|\thicklines| and \verb|\Thicklines| declarations. X X X\subsection{\tt \BS dashline} XThe syntax of \verb|\dashline| is: X\begin{quote} X\begin{alltt} X\BS{}dashline[{\em{}stretch}]\{{\em{}dash-length}\}[{\em{}inter-dot-gap}](\(x\sb{1}\),\(y\sb{1}\))(\(x\sb{2}\),\(y\sb{2}\))\ldots(\(x\sb{n}\),\(y\sb{n}\)) X\end{alltt} X\end{quote} Xwhere {\em stretch} is an integer between $-100$ and infinity. If X{\em inter-dot-gap} is not specified, dashes are drawn in solid Xlines, otherwise, dashes are drawn using dotted lines. X XThe thickness of the line is affected by \verb|\thinlines|, X\verb|\thicklines| and \verb|\Thicklines| declarations. X X X\clearpage X X X\section{New Commands} X\eepic\ introduces a number of new commands. Except the X\verb|\path| commands, all other new commands do not have any Xequivalents in \LaTeX\ and \epic. Please read Xsection~\ref{compat} about the compatibility issues. X X X\subsection{\tt \BS allinethickness} XSet the line thickness of all line drawing commands including Xlines in any slopes, circles, ellipsis, arcs, ovals and splines. XNote there are only two `l' in the command. The syntax is: X\begin{quote} X\verb|\allinethickness{|{\em dimension}\verb|}|. X\end{quote} X X X\subsection{\tt \BS Thicklines} XThe syntax is: X\begin{quote} X\verb|\Thicklines| X\end{quote} XWith the \verb|\Thicklines| declaration, thickness of lines drawn Xwill be about 1.5 times of \verb|\thicklines|. X X X\subsection{\tt \BS path} X\verb|\path| is a fast version of \verb|\drawline|. Optional {\em Xstretch\/} argument is not allowed and so it always draw solid Xlines. The syntax is: X\begin{quote} X\begin{alltt} X\BS{}path(\(x\sb{1}\),\(y\sb{1}\))(\(x\sb{2}\),\(y\sb{2}\))\ldots(\(x\sb{n}\),\(y\sb{n}\)) X\end{alltt} X\end{quote} X\verb|\path| is mainly used in drawing complex paths. X X X\subsection{\tt \BS spline} XSyntax of \verb|\spline| is the same as \verb|\path|. X\begin{quote} X\begin{alltt} X\BS{}spline(\(x\sb{1}\),\(y\sb{1}\))(\(x\sb{2}\),\(y\sb{2}\))\ldots(\(x\sb{n}\),\(y\sb{n}\)) X\end{alltt} X\end{quote} X\verb|\spline| draws an Chaikin's curve which passes through only Xthe first and last point. All other points are control points Xonly. X X X\subsection{\tt \BS ellipse} XThe command \verb|\ellipse| draws an ellipse by specifying the Xx-diameter and y-diameter. X\begin{quote} X\begin{alltt} X\BS{}ellipse\{{\em{}x-diameter}\}\{{\em{}y-diameter}\} X\end{alltt} X\end{quote} Xor X\begin{quote} X\begin{alltt} X\BS{}ellipse*\{{\em{}x-diameter}\}\{{\em{}y-diameter}\} X\end{alltt} X\end{quote} XWhen {\em x-diameter} is equal to {\em y-diameter}, the command Xis equivalent to \verb|\circle| or \verb|\circle*|. X X X\subsection{\tt \BS arc} X\verb|\arc| draws an circular arc. The syntax is X\begin{quote} X\begin{alltt} X\BS{}arc\{{\em{}diameter}\}\{{\em{}start-angle}\}\{{\em{}end-angle}\} X\end{alltt} X\end{quote} X{\em diameter} is specified in \verb|\unitlength| and both {\em Xstart-angle} and {\em end-angle} are in radian. {\em start-angle} Xmust be within 0 and $2\pi$ and {\em end-angle} can be any value Xbetween {\em start-angle} and {\em start-angle} + $2\pi$. Arcs Xare drawn in clockwise direction with angle 0 pointing to the Xright on the paper. X X X\clearpage X X X\section{Examples} XI shamelessly stole two examples from the \epic\ manual so that Xyou can compare the results. The third and fourth examples are Xcreated by FIG and then converted to \eepic\ using X\verb|fig2epic| which is also written by me. X X\unitlength=1mm X X X\subsection{Example 1} X\begin{figure}[h] X\begin{center} X%\newcommand{\plotchar}{\makebox(0,0){\large $\otimes$}} X\begin{picture}(100,100)(0,0) X\put(0,0){\tiny \grid(100,100)(5,5)[0,0]} X\drawline(10,5)(60,10)(85,20)(90,60)(100,95) X\drawline[-50](10,0)(65,5)(90,15)(95,55) X\thicklines X\dottedline{1.4}(10,10)(60,20)(75,35)(95,95) X\dashline{2}(80,90)(50,80)(30,50)(10,40) X\dashline{2}[0.5](80,80)(50,70)(30,40)(10,30) X\dashline[-30]{2}[0.5](80,70)(50,60)(30,30)(10,20) X\end{picture} X\end{center} X\caption[]{\normalsize An example of Various Line Drawing Commands} X\end{figure} X\clearpage X X X\subsection{Example 2} X\newcount\xjunk X\newcount\yjunk X\begin{figure}[h] X\begin{center} X\begin{tiny} X\begin{picture}(140,140)(-70,-70) X\thinlines X\xjunk=60 \yjunk=3 X\loop X\drawline(0,0)(\xjunk,\yjunk) X\drawline(0,0)(-\xjunk,\yjunk) X\drawline(0,0)(\xjunk,-\yjunk) X\drawline(0,0)(-\xjunk,-\yjunk) X\put(\xjunk,\yjunk){\plotchar} X\put(-\xjunk,\yjunk){\plotchar} X\put(\xjunk,-\yjunk){\plotchar} X\put(-\xjunk,-\yjunk){\plotchar} X\put(\xjunk,\yjunk){\makebox(8,0)[l]{\ \ (\number\xjunk,\number\yjunk)}} X\put(-\xjunk,\yjunk){\makebox(-4,0)[r]{(\number-\xjunk,\number\yjunk)}} X\put(\xjunk,-\yjunk){\makebox(8,0)[l]{\ \ (\number\xjunk,\number-\yjunk)}} X\put(-\xjunk,-\yjunk){\makebox(-4,0)[r]{(\number-\xjunk,\number-\yjunk)}} X\ifnum\yjunk < 53 \advance\yjunk by 10 %will go till 53. X\repeat X\xjunk=3 \yjunk=60 X\loop X\drawline(0,0)(\xjunk,\yjunk) X\drawline(0,0)(-\xjunk,\yjunk) X\drawline(0,0)(\xjunk,-\yjunk) X\drawline(0,0)(-\xjunk,-\yjunk) X\put(\xjunk,\yjunk){\plotchar} X\put(-\xjunk,\yjunk){\plotchar} X\put(\xjunk,-\yjunk){\plotchar} X\put(-\xjunk,-\yjunk){\plotchar} X\put(\xjunk,\yjunk){\makebox(0,7)[t]{(\number\xjunk,\number\yjunk)}} X\put(-\xjunk,\yjunk){\makebox(0,5)[t]{(\number-\xjunk,\number\yjunk)}} X\put(\xjunk,-\yjunk){\makebox(0,-4)[t]{(\number\xjunk,\number-\yjunk)}} X\put(-\xjunk,-\yjunk){\makebox(0,-6)[t]{(\number-\xjunk,\number-\yjunk)}} X\ifnum\xjunk < 53 \advance\xjunk by 10 X\repeat X\end{picture} X\end{tiny} X\end{center} X\caption[]{\normalsize Test Sample: Lines of various slopes with X\verb|thinlines|} X\end{figure} X\clearpage X X X\subsection{Example 3} X\begin{figure}[htbp] X\hrule X\begin{center} X\input{epic-eg3} X\end{center} X\caption{The finite automaton to detect occurrences of $P$=`$AABC$'.} X\medskip X\hrule X\end{figure} X X X\subsection{Example 4} X\begin{figure}[htbp] X\hrule X\begin{center} X\input{epic-eg4} X\end{center} X\caption{Breath-first search beginning at A} X\medskip X\hrule X\end{figure} X X X\clearpage X X X\section{Bugs} X\begin{itemize} X\item The \verb|\circle*| and \verb|\ellipse*| may not work on Xall DVI drivers especially some previewers. If you have any Xproblem, you should remove the related code in eepic.sty and use Xthe \LaTeX{} \verb|\cirlce*| commands. To find the related codes, Xsearch for \verb|\special{bk}| in the file. X\item The alignment of the quarter circles and the lines in X\verb|\oval| command may not be correct on all printers because Xthe command relies on the precise interpretation of the tpic Xspecials which are not defined clearly. If you have any problem, Xyou should either fixed that by changing the position of the Xquarter circles or remove the whole extended \verb|\oval| command Xfrom \verb|eepic.sty|. X\end{itemize} X X X\section{Compatibility}\label{compat} XIf you want your \TeX\ file to be compatible with \LaTeX\ and X\epic\ but at the same time you want a better print out by using X\eepic, you must avoid several features in \eepic. X\begin{itemize} X\item Try not to use \verb|\line| commands and use X\verb|\drawline| instead because \verb|\line| in \LaTeX\ only Xsupports a limited set of slope. X\item Do not use \verb|\arc| command. Use \verb|\spline| if a Xcurve is really necessary. X\item Avoid using solid or small inter-dot gap in drawing long Xdash lines. They used up a lot of \TeX\ memory in original \epic. XYou should use \verb|\drawline| with negative stretch to draw the Xdash lines. X\end{itemize} X XIf you want to use any of the extended commands in \eepic, you Xmust include the \eepic\ emulation macros (\verb|eepicemu|) in Xthe file. The extended commands are emulated in the following Xways. X\begin{itemize} X\item Circles larger than 40pt will be drawn using \verb|\oval|. X\item Ellipsis will be drawn using \verb|\oval|. X\item Spline will be approximated by \verb|\drawline|. X\item \verb|\path| will be substituted by \verb|\drawline|. X\item \verb|\Thicklines| will be substituted by X\verb|\thicklines|. X\item \verb|\allinethickness| will be substituted by X\verb|\thicklines| and \verb|\linethickness|. X\end{itemize} X X\clearpage X X X\section{Installation} XThere are two possible ways of installing \eepic. If your DVI Xprinter driver program supports the tpic specials, you should use Xthe standard \verb|eepic.sty| file. If your DVI printer driver Xdoes not supports the tpic specials or you want to generate a Xstandard DVI file without any special commands, you should use Xthe file \verb|eepicemu.sty|. X XTo get a copy of \epic, you can {\sc ftp} \verb|epic.shar1| and X\verb|epic.shar2| from \verb|cs.rochester.edu| in the directory X\verb|public/latex-style|. X X\subsection{Use tpic Specials} XFirst of all, you have to put a copy of \verb|epic.sty| and X\verb|eepic.sty| in a place where \LaTeX\ can find it. See Xsection 4 of \epic\ manual for more information. X XBoth \epic\ and \eepic\ have been implemented as document style Xoptions \verb|epic| and \verb|eepic|. To include \epic\ and X\eepic\ commands, \verb|epic| and \verb|eepic| must be added in Xthe \verb|\documentstyle| command and \verb|eepic| must come Xafter \verb|epic|. For example: X\begin{quote} X\begin{verbatim} X\documentstyle[epic,eepic]{article} X\end{verbatim} X\end{quote} X XIf you only need the extended \LaTeX\ commands and the new X\eepic\ commands, you may include only \verb|eepic| in the X\verb|\documentstyle| command. But then the \eepic\ emulation Xpackage will not work. I strongly recommend you to use X\eepic\ with \epic\ all the time. X X\subsection{No tpic Specials} XIf you want to get a standard DVI file but you need the extended X\eepic\ commands, you should rename \verb|eepicemu.sty| to X\verb|eepic.sty| and put that in a place where \LaTeX\ can find Xit. Remember \verb|\arc| command is not supported and the output Xwill not be as good as standard \eepic. Furthermore, you cannot Xuse the emulation package with \LaTeX\ alone. You have to include X\verb|epic| also. X X\subsection{Remarks} XMore and more DVI driver programs support the tpic X\verb|\special|s. The iptex program and screen previewers that Xcome with the standard UNIX \TeX\ distribution supports all the X\verb|\special| commands used by \eepic. In other words, you can Xprint as well as preview the output. You may also get the latest Xversion of iptex, texx and texsun from \verb|a.cs.uiuc.edu|. X X X\end{document} SHAR_EOF fi # end of overwriting check if test -f 'epic-eg3.tex' then echo shar: will not over-write existing file "'epic-eg3.tex'" else sed 's/^X//' << \SHAR_EOF > 'epic-eg3.tex' X\setlength{\unitlength}{0.0125in} X\begin{picture}(444,125)(0,-10) X\thicklines X\drawline(304.318,26.338)(303.000,31.000)(301.969,26.267) X\put(311.808,31.269){\arc{17.624}{4.8481}{9.3942}} X\drawline(158.742,66.792)(161.000,63.000)(160.792,67.408) X\put(168.688,65.312){\arc{16.054}{2.8495}{7.4287}} X\drawline(143.367,53.233)(147.000,54.000)(143.433,55.033) X\put(147.250,60.750){\arc{13.509}{1.6078}{6.2462}} X\put(34,46){\oval(68,26)} X\put(163,46){\ellipse{22}{22}} X\put(231,46){\ellipse{22}{22}} X\put(299,46){\ellipse{22}{22}} X\put(366,46){\ellipse{22}{22}} X\put(433,46){\ellipse{22}{22}} X\drawline(73,46)(146,46) X\drawline(138.000,44.000)(146.000,46.000)(138.000,48.000) X\drawline(181,46)(214,46) X\drawline(206.000,44.000)(214.000,46.000)(206.000,48.000) X\drawline(247,46)(282,46) X\drawline(274.000,44.000)(282.000,46.000)(274.000,48.000) X\drawline(315,46)(349,46) X\drawline(341.000,44.000)(349.000,46.000)(341.000,48.000) X\drawline(383,46)(416,46) X\drawline(408.000,44.000)(416.000,46.000)(408.000,48.000) X\spline(294,34) X(254,4)(194,-1)(164,14)(159,29) X\drawline(163.427,22.043)(159.000,29.000)(159.632,20.778) X\spline(229,34) X(209,19)(184,19)(169,34) X\drawline(176.071,29.757)(169.000,34.000)(173.243,26.929) X\spline(221,35) X(199,29)(175,35) X\drawline(183.246,35.000)(175.000,35.000)(182.276,31.119) X\spline(354,59) X(294,79)(244,59) X\drawline(250.685,63.828)(244.000,59.000)(252.171,60.114) X\spline(359,64) X(318,92)(224,84)(179,55) X\drawline(184.641,61.015)(179.000,55.000)(186.808,57.652) X\put(390,52){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt C}}} X\put(323,50){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt B}}} X\put(298,94){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt B}}} X\put(270,74){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt A}}} X\put(321,16){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt A}}} X\put(260,18){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt C}}} X\put(258,51){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt A}}} X\put(221,16){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt C}}} X\put(196,35){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt B}}} X\put(192,50){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt A}}} X\put(167,77){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt C}}} X\put(129,64){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt B}}} X\put(19,42){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt Start}}} X\put(162,42){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 1}}} X\put(228,42){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 2}}} X\put(298,42){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 3}}} X\put(363,42){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 4}}} X\put(432,42){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt *}}} X\end{picture} SHAR_EOF fi # end of overwriting check if test -f 'epic-eg4.tex' then echo shar: will not over-write existing file "'epic-eg4.tex'" else sed 's/^X//' << \SHAR_EOF > 'epic-eg4.tex' X\setlength{\unitlength}{0.0125in} X\begin{picture}(264,218)(0,-10) X\thinlines X\put(125,137){\ellipse{10}{10}} X\put(160,92){\ellipse{10}{10}} X\put(20,112){\ellipse{10}{10}} X\put(80,20){\ellipse{10}{10}} X\put(90,92){\ellipse{10}{10}} X\put(174,20){\ellipse{10}{10}} X\put(245,117){\ellipse{10}{10}} X\put(170,177){\ellipse{10}{10}} X\put(80,177){\ellipse{10}{10}} X\dashline{4.000}(173,31)(163,82) X\drawline(166.502,74.534)(163.000,82.000)(162.577,73.765) X\dashline{4.000}(88,85)(81,28) X\drawline(79.990,36.184)(81.000,28.000)(83.960,35.697) X\dashline{4.000}(164,20)(89,20) X\drawline(97.000,22.000)(89.000,20.000)(97.000,18.000) X\dashline{4.000}(180,27)(239,107) X\drawline(235.861,99.374)(239.000,107.000)(232.642,101.749) X\dashline{4.000}(151,90)(101,90) X\drawline(109.000,92.000)(101.000,90.000)(109.000,88.000) X\dashline{4.000}(95,99)(118,128) X\drawline(114.596,120.489)(118.000,128.000)(111.462,122.975) X\dashline{4.000}(154,100)(130,128) X\drawline(136.725,123.228)(130.000,128.000)(133.688,120.624) X\dashline{4.000}(119,143)(87,171) X\drawline(94.338,167.237)(87.000,171.000)(91.704,164.227) X\drawline(24,104)(73,28) X\drawline(66.984,33.640)(73.000,28.000)(70.346,35.807) X\drawline(166,168)(134,143) X\drawline(139.073,149.501)(134.000,143.000)(141.535,146.349) X\drawline(29,110)(80,95) X\drawline(71.761,95.339)(80.000,95.000)(72.889,99.176) X\drawline(237,112)(171,93) X\drawline(178.134,97.135)(171.000,93.000)(179.241,93.291) X\drawline(178,173)(239,124) X\drawline(231.511,127.451)(239.000,124.000)(234.016,130.569) X\drawline(88,177)(160,177) X\drawline(152.000,175.000)(160.000,177.000)(152.000,179.000) X\drawline(75,171)(27,119) X\drawline(30.957,126.235)(27.000,119.000)(33.896,123.522) X\put(194,107){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 7}}} X\put(47,109){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 6}}} X\put(33,61){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 5}}} X\put(156,149){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 4}}} X\put(207,156){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 3}}} X\put(39,151){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 2}}} X\put(121,180){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt 1}}} X\put(85,102){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt I}}} X\put(159,102){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt H}}} X\put(122,148){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt G}}} X\put(0,105){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt F}}} X\put(76,0){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt E}}} X\put(171,1){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt D}}} X\put(256,115){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt C}}} X\put(168,187){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt B}}} X\put(74,186){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\twltt A}}} X\end{picture} SHAR_EOF fi # end of overwriting check if test -f 'eepicemu.sty' then echo shar: will not over-write existing file "'eepicemu.sty'" else sed 's/^X//' << \SHAR_EOF > 'eepicemu.sty' X% eepicemy Version 1.0 < August 14, 1988 > X% Written by Conrad Kwok X% X% Internet : kwok@iris.ucdavis.edu X% csnet : kwok@ucd.csnet X% csnet : kwok%iris.ucdavis.edu@csnet.relay X% UUCP : ...!ucbvax!ucdavis!iris!kwok X% X% The macros are in public domain. X% You may distribute or modify it in any ways you like. X% Please report any bugs, enhancements, comments, suggestions, etc. X\makeatletter X\typeout{Emulation of EEPIC using EPIC. Version 1.0 - Release August 14, 1988} X\let\path\drawline X\def\ellipse{% X \@ifstar{\@ellipse}{\@ellipse}} X\def\@ellipse#1#2{% X \ifnum #1=#2% X \circle{#1}% X \else X \oval(#1,#2) X \fi\relax} X\let\Thicklines\thicklines X\def\circle{% X \@ifstar X {\@emudot}% X {\@emucirc}% X} X\def\@emudot#1{% X \@tempdimb #1\unitlength X \ifdim \@tempdimb > 15pt X \oval(#1,#1)% X \else X \@dot{#1}% X \fi X} X\def\@emucirc#1{% X \@tempdimb #1\unitlength X \ifdim \@tempdimb > 40pt X \oval(#1,#1)% X \else X \@circle{#1}% X \fi X} X\def\arc#1#2#3{\typeout{arc function is not supported in emulation package}} X\newcount\@spxcnt X\newcount\@spycnt X\newcount\@ispxcnt X\newcount\@ispycnt X\newcount\@cmidxcnt X\newcount\@cmidycnt X X\def\spline(#1,#2){% X \@ifnextchar ({\@ispline(#1,#2)}% X {\ignorespaces}} X\def\@ispline(#1,#2)(#3,#4){% X \@ifnextchar ({\@iispline(#1,#2)(#3,#4)}% X {\@drawline[0](#1,#2)(#3,#4)\ignorespaces}} X\def\@iispline(#1,#2)(#3,#4)(#5,#6){% X \@ifnextchar ({% X \@spxcnt=#3 \advance\@spxcnt by #5 \divide\@spxcnt by 2\relax X \@spycnt=#4 \advance\@spycnt by #6 \divide\@spycnt by 2\relax X \@chaikin{#1}{#2}{#3}{#4}{\@spxcnt}{\@spycnt}% X \@ispxcnt=\@spxcnt\relax \@ispycnt=\@spycnt\relax X \@iispline(\@ispxcnt,\@ispycnt)(#5,#6)}% X% else X {\@chaikin{#1}{#2}{#3}{#4}{#5}{#6}}} X\def\@chaikin#1#2#3#4#5#6{% X \@cmidxcnt=#1 \advance\@cmidxcnt by #3 X \advance\@cmidxcnt by #3 \advance\@cmidxcnt by #5 X \divide\@cmidxcnt by 4 X \@cmidycnt=#2 \advance\@cmidycnt by #4 X \advance\@cmidycnt by #4 \advance\@cmidycnt by #6 X \divide\@cmidycnt by 4 X \@drawline[0](#1,#2)(\@cmidxcnt,\@cmidycnt)% X \@drawline[0](\@cmidxcnt,\@cmidycnt)(#5,#6)% X} X\def\allinethickness#1{\thicklines\linethickness{#1}} X\makeatother SHAR_EOF fi # end of overwriting check # End of shell archive exit 0