Article View: comp.text
Article #5028EEPIC 1.0 (Part 1 of 2)
From: Conrad Kwok
Date: Mon, 22 Aug 1988 23:57
Date: Mon, 22 Aug 1988 23:57
878 lines
33376 bytes
33376 bytes
#! /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 <return> stars a new line, so if foo.tex ends with a <return>
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
Technical Details
Message-ID:
<2869@ucdavis.ucdavis.edu>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!ucdavis!iris!kwokShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!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