diff options
author | Karl Berry <karl@freefriends.org> | 2008-09-20 00:38:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-09-20 00:38:11 +0000 |
commit | 4047de0425ceb45ea0b331e48efe2c6937a4a961 (patch) | |
tree | 62cdcb17409b431cbf1d56c887ddf71689c0911d /Master/texmf-dist/doc/generic | |
parent | 4be602aabb747be11a542f7d567a76e126ecef88 (diff) |
interim dratex update
git-svn-id: svn://tug.org/texlive/trunk@10648 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic')
-rw-r--r-- | Master/texmf-dist/doc/generic/dratex/Examples.tex | 2058 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/dratex/README | 2 |
2 files changed, 0 insertions, 2060 deletions
diff --git a/Master/texmf-dist/doc/generic/dratex/Examples.tex b/Master/texmf-dist/doc/generic/dratex/Examples.tex deleted file mode 100644 index ade0a511abb..00000000000 --- a/Master/texmf-dist/doc/generic/dratex/Examples.tex +++ /dev/null @@ -1,2058 +0,0 @@ -%\def\TexFiles{} -\def\ext{Changeable} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Compile this file with TeX and review the document. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hfill 15 Apr. 94 -\bigskip -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Code of examples and exercises from % -% % -% TeX and LaTeX: Drawing and Literate Programming % -% % -% gurari@cis.ohio-state.edu % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\immediate\write16{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} -\immediate\write16{<<< tex Examples.tex <<<<<<<<<<<} -\immediate\write16{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - %% - %% -\input ProTex.sty %%%%%%%%%%%%%%%%%%%% - - -\expandafter\def\csname :warn\endcsname#1{} -\Code\top{}{\immediate\write16{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} -\immediate\write16{<<<<< \op \name.\ext} -\immediate\write16{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} - -% \com -} - - \ifx \TexFiles\empty %%%%%%%%%%%%%%%%%%%%%%%% -\def\tex{tex} - -\def\DEFEND{\% LaTeX requires a {\tt\string\Defend} here \%} - -\Code\Open{}{\files -\startInput -} - -\Code\Close{}{ -\endInput -\\bye} - \else %%%%%%%%%%%%%%%%%%%%%%%% -\def\tex{latex} - -\Code\DEFEND{{\it LaTeX requires a {\tt\string\Defend} - here}}{\% LaTeX requires a \string\Defend here \%\string\Defend} - -\Code\Open{}{\\documentstyle{book} -\files -\\begin{document} -\startInput} - -\Code\Close{}{ -\endInput -\\end{document}} - \fi %%%%%%%%%%%%%%%%%%%%%%%% - -\Code\fileD{}{ -\\input DraTex.sty } - -\Code\fileAD{}{ -\\input DraTex.sty -\\input AlDraTex.sty } - -\Code\fileP{}{ -\\input ProTex.sty } - -\Code\startInput{}{\\Draw} -\Code\endInput{}{\\EndDraw} - -\AlProTex{\ext,<<<>>>,[],list,|,ShowFile,NoShow} %%%%%%%%%%%%%%%%%%%% - -\let\SC=\ShowCode -\Code\execute{}<<< ->>> - -\newcount\exron -\def\nop#1{\ifnum \exron>0 #1 \fi} - -\catcode`\^^M=13 \catcode`\#=12 % -\def\<<<{% - \edef\temp{% - \noexpand\AppendCode\noexpand\execute<<< - \nop#\op\space\space \name.\ext\space\space\space # \com - \nop#xdvi\space\space \name.dvi - >>>}\ShowOff\temp\ShowOn% - \def\ShowCode{% - \expandafter\OutputCode\csname\name\endcsname \def\top - {} \global\let\ShowCode=\SC \ShowCode}% - \expandafter\Code\csname\name\endcsname{}<<< - \top}% -\catcode`\^^M=5 \catcode`\#=6 - -\def\newpage{\def\newpage{\par\vfill\break}} -\newcount\1 \newcount\2 \newcount\3 - -\def\ForTex{tex} - -\def\Ex#1#2#3{\global\advance\exron by -1 - \edef\op{#1} - \edef\For{for \ifx \op\ForTex \else La\fi TeX} - \def\com{#2} - \def\name{#3} \hrule - \medskip\noindent$\underline{\hbox{#1\quad\name.\ext}}$ - \qquad{\it #2\/} {\rm(\For)}\medskip} - -\def\Exr#1#2#3{\global\exron=2 - \setbox0=\hbox{\global\1#1 \global\2#2 \global\3#3} - \Ex{\tex}{Exercise \the\1.\the\2.\the\3}{exr#1#2#3}} - -\def\Lib#1{\newpage\hrule - \noindent\hfil{\bf \strut#1}\hrule} - -\hbadness=10000 \vbadness=10000 \hfuzz=99in \vfuzz=99in - %% - %% - %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent NOTES - -(a) If you want to get TeX files instead of LaTeX files, remove `\%' -from the first line of file `{\tt Examples.tex}'.%%% first line of this file - - -(b) If you want different extensions in the files' names, -change the definition of {\tt\string\ext} in the second line -of file `{\tt Examples.tex}'.%%% second line of this file - -(c) Files carrying names that start with `exr' have been retrieved -from exercises. Many of these files are incomplete, and they expect -that the reader will provide the missing code. (La)TeX will prompt you -with `?' on incomplete files. In such cases, type `x' followed by -RETURN. - -\bigskip \Lib{DraTeX} \def\files{\fileD} - -\Ex{tex}{First example in section 6.2}{sec62a} - -\<<< -\input DraTex.sty -\Draw - \LineAt(0.1, 0,-18,-10) - \LineAt(-18,-10,- 6, 26) - \LineAt(- 6, 26, 18,- 4) - \LineAt( 18,- 4, 12,-40) - \LineAt( 18,- 4, 24,-40) - \LineAt( 18,- 4, 58,- 4) - \LineAt( 58,- 4, 52,-40) - \LineAt(58,-4,64,-40) \LineAt(58,-4,66,4) -\EndDraw -\bye >>> - -\Ex{latex}{First example in section 6.2}{sec62b} - -\<<< -\documentstyle{report} - \input DraTex.sty -\begin{document} -\Draw - \LineAt(0.1, 0,-18,-10) - \LineAt(-18,-10,- 6, 26) - \LineAt(- 6, 26, 18,- 4) - \LineAt( 18,- 4, 12,-40) - \LineAt( 18,- 4, 24,-40) - \LineAt( 18,- 4, 58,- 4) - \LineAt( 58,- 4, 52,-40) - \LineAt(58,-4,64,-40) \LineAt( 58,-4,66,4) -\EndDraw -\end{document}>>> - - -\Ex{latex}{First example in section 6.2---second version}{sec62c} - -\<<< -\documentstyle[DraTex]{report} -\begin{document} -\Draw - \LineAt(0.1, 0,-18,-10) - \LineAt(-18,-10,- 6, 26) - \LineAt(- 6, 26, 18,- 4) - \LineAt( 18,- 4, 12,-40) - \LineAt( 18,- 4, 24,-40) - \LineAt( 18,- 4, 58,- 4) - \LineAt( 58,- 4, 52,-40) - \LineAt(58,-4,64,-40) \LineAt(58,-4,66,4) -\EndDraw -\end{document}>>> - - - -\Exr672 - -\<<< -|Open - \MarkLoc(a) \Move(50,0) - \MarkLoc(A) \Move(50,0) - \MarkLoc(b) \Move(-30,30) - \MarkLoc(B) \Move(-30,30) - \MarkLoc(c) \Move(-20,-30) - \MarkLoc(C) - \Curve(A,b,b,B) - \Curve(B,c,c,C) - \Curve(C,a,a,A) -|Close>>> - - - \Ex{tex}{First example in section 6.1}{sec61} - -\<<< -\input DraTex.sty - -We can draw clocks of -different styles and sizes. - -\Draw - \Move(0,20) \Line(0,-50) \Line(50,0) - \PenSize(1.5pt) \Line(0,50) \Line(-50,0) - \Move(5,-25) \Text(--9--) - \Move(20,-18) \Text(--6--) - \Move(20,18) \Text(--3--) - \Move(-20,18) \Text(--12--) - \Move(0,-18) {\RotateTo(60) \LineF(19)} - \RotateTo(210) \LineF(14) -\EndDraw - -We can draw people of -different shapes and looks. - -\Draw(0.6pt,0.6pt) - \DrawOvalArc(30,45)(0,180) - \DrawOvalArc(30,12)(180,360) - \DrawOvalArc(60,25)(140,400) - \Move(0,5) - \DrawOvalArc(30,60)(225,315) - \DrawOvalArc(20,52)(260,280) - \Move(-10,-37) {\Text(--$\cdotp$--)} \Text(--o--) - \Move(20,0) {\Text(--$\cdotp$--)} \Text(--o--) -\EndDraw - -And we can produce many other -types of drawings. \bye>>> - - - -\Ex{latex}{First example in section 6.1}{sec61a} - -\<<< -\documentstyle{report} -\input DraTex.sty -\begin{document} - -We can draw clocks of -different styles and sizes. - -\Draw - \Move(0,20) \Line(0,-50) \Line(50,0) - \PenSize(1.5pt) \Line(0,50) \Line(-50,0) - \Move(5,-25) \Text(--9--) - \Move(20,-18) \Text(--6--) - \Move(20,18) \Text(--3--) - \Move(-20,18) \Text(--12--) - \Move(0,-18) {\RotateTo(60) \LineF(19)} - \RotateTo(210) \LineF(14) -\EndDraw - -We can draw people of -different shapes and looks. - -\Draw(0.6pt,0.6pt) - \DrawOvalArc(30,45)(0,180) - \DrawOvalArc(30,12)(180,360) - \DrawOvalArc(60,25)(140,400) - \Move(0,5) - \DrawOvalArc(30,60)(225,315) - \DrawOvalArc(20,52)(260,280) - \Move(-10,-37) {\Text(--$\cdotp$--)} \Text(--o--) - \Move(20,0) {\Text(--$\cdotp$--)} \Text(--o--) -\EndDraw - -And we can produce many other -types of drawings. \end{document}>>> - -\Ex{latex}{First example in section 6.1---second version}{sec61b} - -\<<< -\documentstyle[DraTex]{report} -\begin{document} - -We can draw clocks of -different styles and sizes. - -\Draw - \Move(0,20) \Line(0,-50) \Line(50,0) - \PenSize(1.5pt) \Line(0,50) \Line(-50,0) - \Move(5,-25) \Text(--9--) - \Move(20,-18) \Text(--6--) - \Move(20,18) \Text(--3--) - \Move(-20,18) \Text(--12--) - \Move(0,-18) {\RotateTo(60) \LineF(19)} - \RotateTo(210) \LineF(14) -\EndDraw - -We can draw people of -different shapes and looks. - -\Draw(0.6pt,0.6pt) - \DrawOvalArc(30,45)(0,180) - \DrawOvalArc(30,12)(180,360) - \DrawOvalArc(60,25)(140,400) - \Move(0,5) - \DrawOvalArc(30,60)(225,315) - \DrawOvalArc(20,52)(260,280) - \Move(-10,-37) {\Text(--$\cdotp$--)} \Text(--o--) - \Move(20,0) {\Text(--$\cdotp$--)} \Text(--o--) -\EndDraw - -And we can produce many other -types of drawings. \end{document}>>> - - -\Exr732 - -\<<< -|Open -\font\ARROWS=line10\space scaled\magstep5 -\font\CIRCLES=lcircle10\space scaled\magstep5 -% \newfont{\ARROWS}{line10\space scaled\magstep5} -% \newfont{\CIRCLES}{lcircle10\space scaled\magstep5} - - \Text(--\CIRCLES \char 10--) -\Text(--\CIRCLES \char 11--) \Text(--\ARROWS \char 55--) -\Text(--\CIRCLES \char 110--)\EntryExit(-1,0,-1,0) -\Text(--\CIRCLES \char 114--)|Close>>> - -\Exr741 - -\<<< -|Open -\Ragged(8) -\Line(10,-10) \Line(10,20) -\LineTo(0,0) -|Close>>> - - -\Ex{\tex}{First example in section 8.1}{sec81} - -\<<< -|Open -\ThreeDim(-150,-60,-600) - \Line(60,0,0) \Line(0,0,60) - \Line(-60,0,0) \Line(0,0,-60) - \LineTo(0,60,0) \Line(60,0,0) - \Line(0,-60,0) - \LineAt(0,60,0,0,60,60) - \Line(0,-60,0) -\EndThreeDim |Close>>> - - -\Ex{\tex}{Example of USA map in section 9.3}{usa} - -\<<< -|Open(0.9pt,0.9pt) -\Table\USA{ % California - -60,-35 & -77,-30 & -80, - -20 & -90,-15 & -100,40 & - % Oregon - -100,50 & -90,80 & - % Wash - -90,95 & -78,90 & -75,95 & - % Minn - 100,70 & 85,60 & - % Wisc-Mich - 95,60 & 105,65 & 102,63 & 110,60 & 125,60 & 110,55 & 110,30 & - 115,25 & 120,30 & 115,40 & 115,50 & 120,55 & 130,55 & 140,40 & - 135,25 & - % Ohio-NY-Vt - 145,25 & 155,30 & 160,45 & 175,45 & 175,55 & 180,60 & 195,65 & - % Maine - 200,75 & 200,85 & 205,90 & 210,90 & 215,80 & 220,75 & 205,60 & 205,50 & - % Mass--NY - 210,43 & 208,47 & 215,43 & 190,30 & 202,35 & - % NJ--Va - 197,25 & 190,18 & 185,20 & 190,15 & 190,5 & 182,18 & 182,0 & 185,0 & - % NC - 190,-8 & 185,-4 & 183,-6 & 186,-6 & 182,-15 & - 190,-18 & 190,-10 & 192,-10 & - 195,-18 & - % Ga-Fl - 165,-40 & 160,-50 & 175,-80 & 175,-90 & 170,-100 & 165,-100 & - 155,-80 & 155,-65 & 145,-60 & 140,-62 & 136,-62 & 120,-60 & - % Alaba--La - 102,-63 & 107,-67 & 107,-72 & 110,-75 & 90,-65 & - 78,-65 & - % Texas - 62,-78 & 57,-78 & 50,-82 & 53,-92 & 48,-90 & 25,-65 & 15,-65 & - 15,-68 & -10,-50 & - % New Mexico - -40,-50 & - % Back to California - -60,-35 } -{ \USA(0,0){\MoveTo} \USA(1,99){\LineTo} } \Text(--USA--) -\Scale(0.5,0.5) \USA(46,46){\MoveTo} \USA(47,92){\LineTo} -\MoveTo(-30,0) \MarkLoc(a) \USA(0,0){\Move} \MarkLoc(b) -\USA(0,46){{\LineToLoc(b)} \MarkLoc(b) \MoveToLoc(a) \Move} -|Close>>> - - -\Exr{10}1{1a} -\<<< -|Open -\Text(--Government~% - Bonds (\%)--) -\Table\B{Britain,9.59 & - Canada,7.98 & Japan,5.46 & - U.S., 6.84 & Mexico,14.9} -\B(0,4){\PutBar} -|Close >>> - -\Exr{10}1{1b} -\<<< -|Open -\chick(0,75) \Scale(-1,1) -\chick(0,140) -|Close >>> - -\Exr{10}1{1c} -\<<< -|Open -\Table\x{ 30,40 - & 15,60 & 27,15 & 35,35 - & 50,45 & 25,70 & 20,20 - & 25,75 } \x(0,99){\Tr} -|Close >>> - -\Exr{10}1{1d} -\<<< -|Open -\sqr(-24,0) -\sqr(0,32) -\sqr(24,-32) -|Close >>> - -\Exr{10}1{1e} -\<<< -|Open -\engine(90) \MoveTo(50,0) -\engine(180) \MoveTo(100,0) -\engine(-30) -|Close >>> - -\Exr{10}1{1f} -\<<< -|Open -\MarkLoc(A) -\spring(110) \Rotate(70) -\spring(60) \MarkLoc(B) -\DSeg\RotateTo(B,A) -\LSeg\spring(B,A) -|Close >>> - -\Exr{10}21 -\<<< -|Open -\new(BODY) \<BODY>(20) -\LineF(20) \Rotate(55) \LineF(16) -\new(hand) \<BODY>(140) \LineF(35) -\new(hand) \<BODY>(90) \LineF(7) -\new(head) \<BODY>(-60) \LineF(19) -\new(left-leg) \<BODY>(210) \LineF(12) -\Rotate(30) \LineF(14) \new(right-leg) -\Do(1,11){\I+15; \<head>(\Val\I) -\LineF(11)} -|Close >>> - - -\Exr{10}22 - -\<<< -|Open -\def\DefineSymbol#1{% - \Indirect\Define<#1>} - -\def\DrawText(--#1--){% - \let\xNextSym=\xDrawSym \xNextSym#1{}} - -\def\xDrawSym#1{\def\temp{#1}% - \ifx \temp\empty \let \xNextSym=\relax - \else \Indirect<#1>\fi \xNextSym } - -\DefineSymbol A{{ \Line(21,60) - \Line(21,-60) \Move(-7,20) - \Line(-28,0) } \Move(52,0) } -\DefineSymbol B{{ \DrawText(--P--) - \Move(-25,18) - \DrawOvalArc(15,18)(-90,90) - \Move(0,-18) \Line(-25,0)} - \Move(50,0) } \DefineSymbol P -{{ \Line(0,60) \Line(25,0) - \Move(0,-12) \DrawOvalArc(15,12)(-90,90) - \Move(0,-12) \Line(-25,0) } \Move(50,0) } - \DefineSymbol C{{ \Move(20,30) - \DrawOvalArc(20,30)(45,315) } \Move(46.6,0) } - \DefineSymbol D{{ \Line(0,60) \Line(20,0) - \Move(0 ,-30) \DrawOvalArc(20,30)(-90,90) \Move(0,-30) - \Line(-20,0) } \Move(50,0) } - \DefineSymbol E{{ \DrawText(--F--) \Move(-50,0) - \Line(40,0) } \Move(50,0) } - \DefineSymbol F{{ \Line(0,60) \Line(40,0) - \Move(-40,-30) \Line(30,0) } \Move(50,0) } - \DefineSymbol G{{ \DrawText(--C--) - \Move(-10,30) {\Line(-20,0)} \Line(0,-30) } - \Move(46.6,0) } - \DefineSymbol H{{ \Line(0,60) \Move(40,0) - \Line(0,-60) \Move(0,30) \Line(-40,0) } \Move(50,0) } - \DefineSymbol I{{ \Line(0,60) } \Move(10,0) } - \DefineSymbol J{{ \Move(20,17) \DrawOvalArc(20,17)(180,360) - \Move(20,0) \Line(0,43) } \Move(50,0) } - \DefineSymbol K{{ \Line(0,60) \Move(0,-35) - \Line(40,35) \Move(-32,-28) \Line(32,-32) } \Move(50,0) } - \DefineSymbol L{{ { \Line(0,60) } \Line(40,0) } \Move(50,0) } - \DefineSymbol M{{ \Line(0,60) \Line(25,-60) - \Line(25,60) \Line(0,-60) } \Move(60,0) } - \DefineSymbol N{{ \Line(0,60) \Line(40,-60) - \Line(0,60) } \Move(50,0) } - \DefineSymbol O{{ \Move(22,30) \DrawOval(22,30) } \Move(54,0) } - \DefineSymbol P{{ \Line(0,60) \Line(25,0) - \Move(0,-12) \DrawOvalArc(15,12)(-90,90) - \Move(0,-12) \Line(-25,0) } \Move(50,0) } - \DefineSymbol Q{{ \DrawText(--O--) \Move(-10,-5) - \Line(-15,15) } \Move(55,0) } - \DefineSymbol R{{ \DrawText(--P--) \Move(-10,0) - \Line(-15,36) } \Move(50,0) } - \DefineSymbol S{{ \Move(20,18) \DrawOvalArc(20,18)(-140,90) - \Move(0,30) \DrawOvalArc(20,12)(40,270) } \Move(50,0) } - \DefineSymbol T{{ \Move(22,0) \Line(0,60) \Move(-22,0) - \Line(44,0) } \Move(54,0) } - \DefineSymbol U{{ \Move(20,15) \DrawOvalArc(20,15)(180,360) - \Move(-20,0) \Line(0,45) \Move(40,0) \Line(0,-45) } - \Move(50,0) } - \DefineSymbol V{{ \Move(0,60) \Line(22,-60) - \Line(22,60) } \Move(54,0) } - \DefineSymbol W{{ \Move(0,60) \Line(15,-60) - \Line(15,60) \Line(15,-60) \Line(15,60) } \Move(70,0) } - \DefineSymbol X{{ \Line(40,60) \Move(-40,0) - \Line(40,-60) } \Move(50,0) } - \DefineSymbol Y{{ \Move(20,0) \Line(0,34) { \Line(-20,26)} - \Line(20,26) } \Move(50,0) } - \DefineSymbol Z{{ \Move(0,60) \Line(40,0) \Line(-40,-60) - \Line(40,0) } \Move(50,0) } - \DefineSymbol 0{{ \Move(25,30) \DrawOval(25,30) } \Move(60,0) } - \DefineSymbol 1{{ \Line(0,60) } \Move(10,0) } - \DefineSymbol 2{{ \MarkLoc(a) \Move(0,10) - \MarkLoc(a') \Move(40,30) \MarkLoc(b) - \Move(0,-10) \MarkLoc(b') \Curve(a,a',b',b) - \Move(-20,10) \DrawOvalArc(20,20)(0,180) - \Move(-20,-40) \Line(40,0) } \Move(50,0) } - \DefineSymbol 3{{ \MarkLoc(a') \Move(0,10) \MarkLoc(a) - \Move(20,-10) \MarkLoc(b) \Move(-10,0) \MarkLoc(b') - \Curve(a,a',b',b) \Move(22,0) \MarkLoc(b') - \Move(8,8) \MarkLoc(a') \Move(0,10) \MarkLoc(a) - \Curve(a,a',b',b) \Move(0,10) \MarkLoc(a') - \Move(-8,8) \MarkLoc(b') \Move(-10,0) - \MarkLoc(b) \Curve(a,a',b',b) \Move(-5,0) - \MarkLoc(b') \Move(-5,-3) \MarkLoc(a') - \Move(0,-2) \MarkLoc(a) \Curve(a,a',b',b) - \Line(30,29) \Line(-40,0) } \Move(50,0) } -\DefineSymbol 4{{ \Move(35,0) \Line(0,60) - \Line(-35,-35) \Line(45,0)} \Move(55,0) } - \DefineSymbol 5{{ \Move(15,20) \DrawOvalArc(19,20)(-140,140) - \Move(-15,10) \Line(0,30) \Line(30,0) } \Move(44,0) } - \DefineSymbol 6{{ \Move(22,30) \DrawOvalArc(22,30)(70,270) - \Move(0,-10) \DrawOvalArc(22,15)(0,174) - \DrawOvalArc(22,20)(270,360) } \Move(54,0) } - \DefineSymbol 7{{ \Move(0,60) \Line(40,0) - \MarkLoc(a) \Move(-20,-60) \MarkLoc(b) - \DSeg\RotateTo(b,a) \Rotate(20) \MoveF(10) \MarkLoc(b') - \MoveToLoc(a) - \DSeg\RotateTo(a,b) \Rotate(-20) \MoveF(10) \MarkLoc(a') - \Curve(a,a',b',b) } \Move(50,0) } - \DefineSymbol 8{{ \Move(20,17) \DrawOval(20,17) - \Move(0,30) \DrawOval(20,13) } \Move(50,0) } - \DefineSymbol 9{{\Move(50,60) \Scale(-1,-1) \DrawText(--6--) } \Move(54,0) -} - -\Scale(0.1,0.1) \Ragged(1) -\DrawText(--BOLD--) -\PenSize(0.2pt) \MoveTo(0,-100) -{ \Scale(-1,1) - \DrawText(--BACKWARD--) } -\MoveTo(0,-200) \RotatedAxes(0,75) \DrawText(--SLANTED--) -\EndRotatedAxes \MoveTo(0,-300) \RotatedAxes(-45,45) -\DrawText(--ROTATED--) \EndRotatedAxes -|Close>>> - -\Ex{\tex}{Last example in section 11.2}{boxes} - -\<<< -|Open -\Object\ch(1){\Text(--#1--) - \MoveToExit(-1,-1) - \FigSize\Q\R{\Text(--#1--)} - \DrawRect(\Val\Q,\Val\R) } -\Define\chrs(1){\font\f=#1\space scaled\magstep4 \f - \Table\chrs{A & l & l & ~ & i & n & ~ & - b & o & x & e & s & .} \chrs(0,99){\ch} } -\PenSize(0.2pt) \EntryExit(-1,-1,1,-1) -{\chrs(cmtt10)} \Move(0,-20) \chrs(cmsl10) -|Close>>> - -\Exr{11}21 -\<<< -|Open -\Define\side(3){ - \ProjectedAxes(#1,#2)(#1,#3) - \DrawRect(1,1) \Move(0.5,0.5) - \DrawCircle(0.5) - \EndProjectedAxes } -\ThreeDim(80,70,-40) \MarkPLoc(a) - \Move(0,-50,0) \MarkPLoc(b) - \Move(0,50,25) \MarkPLoc(c) - \Move(-25,0,-25) \MarkPLoc(d) - \side(a,b,d) \side(a,b,c) \side(a,c,d) -\EndThreeDim -|Close >>> - - -\Exr{11}24 - -\<<< -|Open -\Define\Spline(1){ - \MarkLoc(0) \MoveTo(0,0) \MarkLoc(00) - \Table\P{#1} \Define\Count(1){\K+1;} \K=-4; - \P(0,999){\Count} - \Do(0,\Val\K){ - \GetCoefficients - \MoveTo(\Val\Ao,\Val\Bo) \CSeg\Move(00,0) - \MarkLoc(o) \f \MarkLoc(x) - \Do(1,30){ - \T=\DoReg; \T/30; - \X=\Aiii; \X*\T; \X+\Aii; \X*\T; \X+\Ai; \X*\T; - \Y=\Biii; \Y*\T; \Y+\Bii; \Y*\T; \Y+\Bi; \Y*\T; - \MoveToLoc(o) \Move(\Val\X,\Val\Y) \f - {\LineToLoc(x)} \MarkLoc(x) }} - \MoveToLoc(0)} - -\Define\f{} -\DecVar\Ao \DecVar\Ai \DecVar\Aii \DecVar\Aiii \DecVar\X -\DecVar\Bo \DecVar\Bi \DecVar\Bii \DecVar\Biii \DecVar\Y - -\Define\GetCoefficients{ - \I=\DoReg; \P(\Val\I,\Val\I){\First} - \I+1; \P(\Val\I,\Val\I){\Second} - \I+1; \P(\Val\I,\Val\I){\Third} - \I+1; \P(\Val\I,\Val\I){\Fourth} } -\Define\First(2){\Ao=#1; \Ai=-#1; \Aii=#1; \Aiii=-#1; - \Bo=#2; \Bi=-#2; \Bii=#2; \Biii=-#2;} -\Define\Second(2){ - \T=#1; \T* 4; \Ao +\T; \T=#2; \T* 4; \Bo +\T; - \T=#1; \T*-2; \Aii+\T; \T=#2; \T*-2; \Bii+\T; - \T=#1; \T* 3; \Aiii +\T; \T=#2; \T* 3; \Biii +\T;} -\Define\Third(2){ \Ao +#1; \Ao /6; \Bo +#2; \Bo /6; - \Ai +#1; \Ai /2; \Bi +#2; \Bi /2; - \Aii+#1; \Aii/2; \Bii+#2; \Bii/2; - \T=#1; \T*-3; \Aiii+\T; \T=#2; \T*-3; \Biii+\T;} -\Define\Fourth(2){ - \Aiii+#1; \Aiii/6; \Biii+#2; \Biii/6;} - -\Spline(0,15 & 30,-70 - & 40,-50 & 10,0 & 15,30 - & 50,5 &60,10 & 8,45 & - 8,55 & 30,70 & 0,80 & - -30,70 &-8,55 & -8,45 & - -60,10 &-50,5 & -15,30 & - -10,0 &-40,-50 &-30,-70 & - 0,15 & 30,-70 & 40,-50 ) -\Define\ShowPoint(2){ - \MoveToLoc(0) \Move(#1,#2) - \Text(--$\circ$--)} -\P(0,99){\ShowPoint} - -\Define\TEX{ - \Spline(0,-15 & 0,-15 & - 0,-15 & 0, 15 & - 0, 15 & 0, 15 ) - \Spline(-10,15 & - -10,15 & -10,15 & 10,15 & - 10,15 & 10,15) - \Move(12,0) - \Spline(0,0 & 0,0 & 0,0 & 14,0 & 14,0 & 14,0) - \Spline( 20,15 &20,15 &20,15 & 0,15 & 0,15 - & 0,-15 & 0,-15 & 20,-15 &20,-15&20,-15) - \Move(32,0) \Spline( -10,-15 & -10,-15 & - -10,-15 & 10,15 & 10,15 & 10,15) - \Spline( -10,15 & - -10,15 & -10,15 & 10,-15 & 10,-15 & 10,-15) } -\TEX \MoveTo(0,0) \F -\TEX \MoveTo(0,-35) \G -\TEX -|Close >>> - - -\Exr{11}31 -\<<< -|Open -\Define\put(2){ - \IF \EqText(,#1) \THEN - \top \Define\put(1){} - \ELSE \push(#1) \FI \put(#2)} -\Define\stack(1){ - {\put(#1,,)} \Move(0,-13)} -\Table\x{ & 1& 1, 2& -1, 2, 3& 1, 2, 3, 4& -1, 2, 3, 4, *& 1, 2, 12& -1, 2, 12,+& 1, 14& 1, 14,+& 15} -\x(0,100){\stack} -|Close >>> - - -\Exr{11}32 -\<<< -|Open -\Table\g{ - 16 & 8 & 4 & 2 & 1 & - 20 & 16 & 8 & 4 & 2 & - 17 & 12 & 16 & 8 & 4 & - 23 & 20 & 12 & 13 & 17 } -\ThreeDim(160,75,-70) - \Scale(20,5,20) - \g(0,140){\surface} -\EndThreeDim -|Close >>> - - - - - - -\Ex{\tex}{NEW OPTION FOR {\tt\char92}ThreeDim}{NewThreeDim} - - - -{\tt\string\ThreeDim($x_e$,$y_e$,$z_e$)} perspective projections (old option) - -{\tt\string\ThreeDim($\alpha_{xy}$,$\alpha_z$)} parallel projections (new additional option): -$\alpha_{xy}$ --- direction within xy plane, -$\alpha_z$ --- direction with respect to xy plane. - - e.g., {\tt\string\ThreeDim(30,60)} or -{\tt\string \ThreeDim(45,60)} - - -\<<< -|Open -\Define\cube{ - \Line(50,0,0){\Line(0,0,50)} - \Line(0,50,0){\Line(0,0,50)} - \Line(-50,0,0){\Line(0,0,50)} - \Line(0,-50,0) \Move(0,0,50) - \Move(50,0,0) \Line(0,50,0) - \Line(-50,0,0) } -\ThreeDim(80,80,-100) \cube \EndThreeDim -\MoveTo(0,-130) -\ThreeDim(45,60) \cube \EndThreeDim -\MoveTo(0,-260) -\ThreeDim(30,60) \cube \EndThreeDim -|Close>>> - -\Lib{AlDraTeX} \def\files{\fileAD} - - -\Ex{tex}{Example in section 13.2}{sec132} - -\<<< -\input DraTex.sty -\input AlDraTex.sty -\Draw - \Scale(1,0.5) - \PieChartSpec(1,50,20)() - \PieChart(15 & 10 & 30) - \Move(0,-6) - \DrawOvalArc(50,50)(180,360) -\EndDraw -\bye>>> - -\Ex{tex}{Example in section 13.2---second version}{sec132a} - -\<<< -\input DraTex.sty - \def\AlDraTex{pie} -\input AlDraTex.sty -\Draw - \Scale(1,0.5) - \PieChartSpec(1,50,20)() - \PieChart(15 & 10 & 30) - \Move(0,-6) - \DrawOvalArc(50,50)(180,360) -\EndDraw -\bye>>> - - -\Ex{latex}{Example in section 13.2}{sec132b} - -\<<< -\documentstyle{report} - \input DraTex.sty - \input AlDraTex.sty -\begin{document} -\Draw - \Scale(1,0.5) - \PieChartSpec(1,50,20)() - \PieChart(15 & 10 & 30) - \Move(0,-6) - \DrawOvalArc(50,50)(180,360) -\EndDraw -\end{document}>>> - -\Ex{latex}{Example in section 13.2---second version}{sec132c} - -\<<< -\documentstyle[DraTex,AlDraTex]{report} -\begin{document} -\Draw - \Scale(1,0.5) - \PieChartSpec(1,50,20)() - \PieChart(15 & 10 & 30) - \Move(0,-6) - \DrawOvalArc(50,50)(180,360) -\EndDraw -\end{document}>>> - -\Ex{latex}{Example in section 13.2---third version}{sec132d} - -\<<< -\documentstyle{report} - \input DraTex.sty - \def\AlDraTex{pie} - \input AlDraTex.sty -\begin{document} -\Draw - \Scale(1,0.5) - \PieChartSpec(1,50,20)() - \PieChart(15 & 10 & 30) - \Move(0,-6) - \DrawOvalArc(50,50)(180,360) -\EndDraw -\end{document}>>> - -\Ex{latex}{Example in section 13.2---forth version}{sec132e} - -\<<< -\def\AlDraTex{pie} -\documentstyle[DraTex,AlDraTex]{report} -\begin{document} -\Draw - \Scale(1,0.5) - \PieChartSpec(1,50,20)() - \PieChart(15 & 10 & 30) - \Move(0,-6) - \DrawOvalArc(50,50)(180,360) -\EndDraw -\end{document}>>> - -\Ex{\tex}{Chemical diagram in section 16.1}{sec161} - -\<<< -|Open -\Define\ChemEdge(3){{ - \MoveToNodeDir(#2,#1) - \MarkLoc(b) \MoveToNodeDir(#1,#2) - \MarkLoc(a) \DSeg\RotateTo(a,b) - \Rotate(-90)\Q=#3; \Q/2; \Q-0.5; - \Q*2.2; \MoveF(\Val\Q) - \Do(1,#3){ {\CSeg\Line(a,b)} - \MoveF(-2.2) } }} -\Do(1,6){ \MoveF(30) - \Node(\DoReg)(--C--) \MoveF(20) \Node(x)(--H--) - \ChemEdge(\DoReg,x,1) \MoveTo(0,0) \Rotate(60) } -\ChemEdge(1,2,2) \ChemEdge(2,3,1) \ChemEdge(3,4,2) -\ChemEdge(4,5,1) \ChemEdge(5,6,2) \ChemEdge(6,1,1) -|Close >>> - - -\Ex{\tex}{Finite automaton in last example of chapter 17}{FA} - -\<<< -|Open -\NewCIRCNode(\StateNode,106,) -\NewCIRCNode(\AStateNode,106,103) -\Define\StateAt(3){ \MoveTo(#2,#3) - \StateNode(#1)(--$q_{#1}$--)} -\Define\AStateAt(3){ - \MoveTo(#2,#3) - \AStateNode(#1)(--$q_{#1}$--)} -\DiagramSpec(\StateAt& - \AStateAt&\TransEdge) -\ArrowHeads(1) \Diagram - ( 0,0,0 & 1,50,50 & - 3,90,-50 & 4,20,-50 )(2,75,0) - (0,1,a,b & 1,2,a, & 0,2, ,b & 2,2,0,b & 0,4,a, & 4,3,a,b ) -\CurvedEdgeAt(3,1,0,1,1,0)(20,0.3,0,0.5) \EdgeLabel[+](--a--) -|Close>>> - - -\noindent\dotfill\ - -New commands in AlDraTeX for setting spread diagrams (add to end of ch -17) - -\noindent\dotfill\ - -\begingroup -\leftskip= 1.5em -\parindent = -\leftskip - -\def\item{\medskip\leavevmode\hbox to \leftskip{$\circ$\hss}} - -\item - `{\tt\string\DefNode}'. A prefix to a node-generating command. The -prefix asks that the command will produce an invisble node. The -invisible node is assigned addresses but is not drawn into the -figure. - - -\item - `{\tt\string\PutNode(N)}'. This command realizes, according to the current -conditions, a specified invisible node that has been defined earlier -by `{\tt\string\DefNode}'. - -\item - `{\tt\string\ZeroNodesDim}'. Sets the pseudovariables `{\tt\string\WidthX}', -`{\tt\string\WidthY}', `{\tt\string\MaxX}', and `{\tt\string\MaxY}' to 0. - -\item - `{\tt\string\AddNodeDim(N)}'. Inserts the horizontal and vertical -dimensions of node N to the pseudovariables `{\tt\string\Widthx}' and -`{\tt\string\Widthy}', respectively. Adds these values to the -pseudovariables `{\tt\string\WidthX}' and `{\tt\string\WidthY}', -respectively. In addition, half the horizontal dimension of node N is -stored in `{\tt\string\MaxX}' if the pseudovariable contains a smaller -value, and a similar outcome holds for the vertical dimension with -respect to the pseudovariable `{\tt\string\MaxY}'. -\par\endgroup - -\Ex{\tex}{}{newA} - -\<<< -|Open -\DefNode\CircleNode(a)(--Two--) -\MoveToNode(a,0,0) \MarkLoc(A) -\MoveToNode(a,1,0) \MarkLoc(B) -\LSeg\R(A,B) \MoveTo(0,0) -\OvalNode(b)(--Touching Nodes--) -\RotateTo(19.5) \MoveF(5) \MarkLoc(A) -\MoveToNodeDir(b,A) \MarkLoc(A) -\MoveToNode(b,0,0) -\RotateTo(20.5) \MoveF(5) \MarkLoc(B) -\MoveToNodeDir(b,B) \MarkLoc(B) -\RotateTo(20) \MoveF(5) \MarkLoc(C) -\MoveToNode(b,0,0) \MoveToNodeDir(b,C) -\DSeg\RotateTo(A,B) \Rotate(-90) -\MoveF(\Val\R) \PutNode(a) -|Close>>> - - -\Ex{\tex}{}{newB} - -\<<< -|Open - -\def\Dist#1(#2,#3,#4){\MarkLoc(a*)% - \MoveToNode(#2,0,0)\MarkLoc(b*)% - \MoveToNode(#2,#3,#4)\MarkLoc(c*)% - \LSeg#1(b*,c*)\MoveToLoc(a*)} - -\EntryExit(1,1,1,-1.5) -\Object\G(3){ - \RectNode(a)(--#1--) - \DefNode\RectNode(b)(--#2--) - \DefNode\RectNode(c)(--#3--) - \Dist\T(a,1,0) \Dist\R(b,1,0) \Dist\Q(c,1,0) - \R+\Q; \T-\R; \T*2; - \ZeroNodesDim \AddNodeDim(b) - \AddNodeDim(c) \Q=\MaxY; - \Dist\R(a,0,1) \Q+\R; - \Q+20; \EntryExit(-1,0,1,0) - \IF \GtDec(\T,40) \THEN - \T+40; \T/3; - \SetNodes(20,\Val\T) - \ELSE \T=-\T; \T+60; \T/2; - \SetNodes(\Val\T,20) \FI - \Edge(b,c) \ArrowHeads(1) - \VHEdge(A,c) \VHEdge(B,b) } -\Define\SetNodes(2){ - \MoveToNode(a, 1,0) \Line( #1,0) \FcNode(A) - \MoveToNode(a,-1,0) \Line(-#1,0) \FcNode(B) - \Move(#2,-\Val\Q) \PutNode(b) - \Move(#2, 0) \PutNode(c) } -\G(short~~and~~deep,d~~e~~e~~p,shallow) -\G(very~very~long~node,shallow,d~~e~~e~~p) -|Close>>> - - -\Ex{\tex}{}{newC} - - - - -\<<< -|Open -\Define\Vertex(2){ - \IF \EqText(r,#1) \THEN \Define\NodeType{\RectNode} - \ELSE \IF \EqText(d,#1) \THEN \Define\NodeType{\DiamondNode} - \ELSE \IF \EqText(o,#1) \THEN \Define\NodeType{\OvalNode} - \ELSE \Define\NodeType{\Node} - \FI\FI\FI - \DefNode\NodeType(\Val\I..\Val\J)(--#2--) - \AddNodeDim(\Val\I..\Val\J) } -\Define\DefRow(1){ - \IF \EqText({},{#1}) \THEN \Define\g{\MoveToLoc(start)} - \ELSE \ZeroNodesDim \J=-1; - \Table\x{#1} \x(0,99){\J+1; \Vertex} - \Move( 0,-\MaxY) \MarkLoc(\Val\I) \Move(5,0) \MarkLoc(\Val\I') - \Move(-5,-\MaxY) \Move(0,-\Sy) \I+1; - \FI \g } - -\Define\ProjectToRow(1){ - \MarkLoc(x) \Move(0,5) \MarkLoc(x') - \MoveToLL(#1,#1')(x,x') } - -\Define\VSpace(1){ \Define\Sy{#1} } -\VSpace(15) - -\Define\DefRowDiagram{ - \MarkLoc(start) \I=0; \Define\g{\DefRow} \g} - -\DefRowDiagram - ( o, An~ approach~~ for~ setting~~ flow~ diagrams - & r, Use~~ {\tt\char92DefineRowDiagram}~~ - to~ define~~ the~ rows~~ of~ nodes - )( r, Derive~~ x~ coordinate~~ for~ N~ then~ - call~~ {\tt\char92ProjectToRow} - & r, Choose~~ nonrealized~~ node~ N - & d, More~ nodes~~ to~ realize? - )( r, Realize~ N~~ with~ {\tt\char92PutNode} - & o, Done - )() -\ProjectToRow(0) \EntryExit(0,0,-1,0) \PutNode(0..0) -\ProjectToRow(2) \MarkLoc(A) -\ProjectToRow(1) \EntryExit(-1,0,1,0) \PutNode(1..0) -\Move(20,0) \PutNode(1..1) \Move(20,0) -\EntryExit(-1,0,0,0) \PutNode(1..2) -\ProjectToRow(0) \EntryExit(0,0, 0,0) \PutNode(0..1) -\ProjectToRow(2) \EntryExit(0,0,-1,0) \PutNode(2..1) -\MarkLoc(B) \CSeg[0.5]\Move(B,A) \PutNode(2..0) -\ArrowHeads(1) \Edge(0..0,0..1) \Edge(0..1,1..2) - \Edge(1..2,1..1) \EdgeLabel(--Yes--) - \Edge(1..2,2..1) \EdgeLabel(--No--) -\Edge(1..1,1..0) \VHEdge(1..0,2..0) -\EdgeFrom(2..0,1,0,1..2) -|Close>>> - -\begingroup - \def\startInput{} - \def\endInput{} - -\Ex{\tex}{}{newD} - -\<<< -|Open -\Define\DefNd(1){ - \DefNode\RectNode(\Val\I)(--#1--) - \AddNodeDim(\Val\I) \I+1; } -\Define\D(1){ - \IF \EqText({},{#1}) \THEN \Define\g{} - \ELSE \ZeroNodesDim \J=-1; - \Table\x{#1} \x(0,99){\J+1; \DefNd} - \T=\J; \T*15; \T+\WidthX; \T/\F; - \Move(0,-\MaxY) \MarkLoc(a) \Move(\Val\T,0) - \K=\I; - \Do(0,\Val\J){ \K-1; \PutNode(\Val\K) \Move(-15,0) } - \MoveToLoc(a) \Move(0,-\MaxY) \Move(0,-15) - \FI \g } -\Define\G(1){\I=0; \EntryExit(1,0,-1,0) - \Define\g{\D} \Define\F{#1} \g} - -\Draw -\G(2)(first & diagram) - (centers & of~~rows~~on & vertical~~line ) - (distance~=~15 & between~~rows) - () -\Table\x{0,2 & 0,3 & 1,3 & 1,4 & 2,5 & 3,5 & 3,6 & 4,6} -\x(0,99){\Edge} -\EndDraw - -\Draw\Move(0,-15) -\G(1)(new~diagram) - (left~~margins & for~rows) () -\Edge(0,1) \Edge(1,2) \Edge(2,0) -\EndDraw - -\Draw -\Move(0,-15) -\G(10000)(new~diagram) - (right~margins & for~~rows) () -\Edge(0,1) \Edge(1,2) \Edge(2,0) -\EndDraw -|Close>>> - - -\Ex{\tex}{}{newE} - -\<<< -|Open -\Define\DefNd(1){ - \DefNode\RectNode(\Val\I..\Val\J)(--#1--) - \AddNodeDim(\Val\I..\Val\J) } -\Define\DefG(1){ - \IF \EqText({},{#1}) \THEN \Define\g{\PutG} - \ELSE \ZeroNodesDim \J=-1; - \Table\x{#1} \x(0,99){\J+1; \DefNd} - \Indirect\let<\Val\I.width>=\WidthX - \Indirect\edef<\Val\I.size>{\Val\J} - \T=\J; \T*\Sx; \T+\WidthX; - \IF \GtDec(\T,\Q) \THEN \Q=\T; \FI - \Move(0,-\MaxY) \MarkLoc(\Val\I) - \Move(0,-\MaxY) \Move(0,-\Sy) \I+1; - \FI \g } -\Define\PutG(1){ \I-1; \EntryExit(-1,0,1,0) - \Do(0,\Val\I){ \MoveToLoc(\DoReg) - \R=\Q; \Indirect{\R-}<\DoReg.width>; - \Indirect{\J=}<\DoReg.size>; \K=\J; - \DiagType - \IF \GtDec(\Q,\T) \THEN - \K+2; \R/\K; \Move(\Val\R,0) - \ELSE - \IF \GtInt(\J,0) \THEN \R/\K; \FI - \FI - \I=\DoReg; - \Do(0,\Val\J){ \J=\DoReg; - \PutNode(\Val\I..\Val\J) \Move(\Val\R,0) } - } - \Table\x{#1} \x(0,99){\Edge} } -\Define\G{ \I=0; \Q=0; - \Define\g{\DefG} \g} - -\Define\FillDiagram{ - \Define\DiagType{\T=\Q;} - \G} -\Define\MarginsDiagram{ - \Define\DiagType{\T=\J; \T*\Sx; \Indirect{\T+}<\DoReg.width>;} - \G} -\Define\HVSpaces(2){ \Define\Sx{#1} \Define\Sy{#2} } -\HVSpaces(15,15) - -\Draw -\FillDiagram(Fill & Diagram) - (fixed & distances & between~~rows) - (uniform & spaces &within~~each &row) - () - ( 0..0,1..0 & 0..0,1..1 & 0..1,1..1 & 0..1,1..2 - & 1..0,2..0 & 1..0,2..1 & 1..1,2..1 & 1..1,2..2 - & 1..2,2..2 & 1..2,2..3) -\EndDraw - -\Draw \HVSpaces(25,15) -\MarginsDiagram(Margins & Diagram) - (fixed & distances &between~~rows) - (uniform~~spaces&between~nodes&within~~each~row) - () - ( 0..0,1..0 & 0..0,1..1 & 0..1,1..1 & 0..1,1..2 - & 1..0,2..0 & 1..0,2..1 & 1..1,2..1 & 1..1,2..2 - & 1..2,2..2 ) - -\EndDraw -|Close>>> - -\endgroup -\noindent\dotfill\ - -End new commands for setting spread diagrams (end of ch 17) - -\noindent\dotfill\ - - - -\Ex{\tex}{Commutative diagram in last example of section 18.3}{CM} - -\<<< -|Open -\GridDiagramSpec()(\MyEdge) -\Define\L(4){,+#1..+#2\,L\,#3\,#4} -\Define\D(4){,+#1..+#2\,D\,#3\,#4} -\Define\MyEdge(5){ - \IF \EqText(#3,D) \THEN\EdgeSpec(D) - \ELSE \EdgeSpec(L) \FI - \IF \EqText(#1,#2) \THEN - \RotateTo(#4) \CycleEdge(#1) - \EdgeLabel(--$#5$--) - \ELSE\Edge(#1,#2) - \IF \EqText(,#4) \THEN \EdgeLabel(--$#5$--) - \ELSE \EdgeLabel[#4](--$#5$--) \FI - \FI} -\ArrowHeads(1) -\GridDiagram(3,3)()()({ -& T \D(0,1,,f) \D(2,0,,h) & N \L(2,0,,\sigma)// -S \L(0,0,180,t) \L(-1,1,,f) \L(1,1,+,g\circ f)// -& W \L(0,1,,f) & X \D(0,0,-45,r)//}) -|Close >>> - - -\Ex{\tex}{Second example in section 20.2}{sec202} - -\<<< -|Open -\NewNode(\MyNode,\MoveToRect){ - \Move(-24,-8) \DrawRect(48,16) - \Move(16,0) {\Line(0,16)} - \Move(16,0) \Line(0,16) } -\Define\MyEdge(2){ - \CSeg\FindSign(#1,#2) - \EdgeAt(#1,\sign 0.66,0,#2,0,1)} -\Define\FindSign(2){ - \IF \GtDec(#1,0) \THEN - \Define\sign{} - \ELSE \Define\sign{-} \FI} -\TextNode(2){ \Text(--$#2$--) - \IF \EqInt(#1,0) \THEN { - \Move(-16,0) \Text(--$\Lambda$--) - \Move(32,0) \Text(--$\Lambda$--) - }\FI } -\ArrowHeads(1) -\TreeSpace(D,10,20) -\TreeSpec(\MyNode)()(\MyEdge) -\Tree()(2,2,A// 0,0,B&2,2,C// 2,2,D&0,0,E// 0,0,F&0,0,G//) -|Close >>> - - -\Ex{\tex}{Last example in section 20.2}{LR} - -\<<< -|Open -\GridDiagramSpec(\RNode)(\MyEdge) -\GridSpace(10,10) \ArrowSpec(F,5,3,3) -\ArrowHeads(1) \CycleEdgeSpec(-30,20) -\NewNode(\RNode,\MoveToOval){ - \GetNodeSize \Va+4; \Vb+4; - \SetMinNodeSize \Move(0,3) - \DrawOval(\Val\Va,\Val\Vb) } -\Define\MyEdge(3){ - \IF \EqText(#1,#2) \THEN - \RotateTo(45) \LabelPos(+0.5;,3) - \CycleEdge(#1) - \ELSE \DSeg\Q(#1,#2) - \IF \GtDec(\Q,180) \THEN - \LabelPos(+0.4;,3) \ELSE \LabelPos(0.5;,3) - \FI \Edge(#1,#2) \FI \EdgeLabel(--$#3$--) } -\baselineskip=9pt \Define\NEXT(3){,#1..#2\,#3} -\def\/#1/#2.#3;{\hbox{$\scriptstyle#1\rightarrow #2\cdotp#3$}~~} -\GridDiagram(3,3)()()({ -& \/S'/ S. ; \/A / S.a; $I_1$ \NEXT(+0,+1,a) -& \/A / Sa.; $I_2$ -// \/S'/ .S ; \/S / .AS; \/ / .b ; - \/A / .Sa; \/ / .a ; $I_0$ \NEXT(-1,+1,S) \NEXT(+0,+1,A) - \NEXT(+1,+1,b) \NEXT(+1,+0,a) -& \/S /A.S ; \/S /.AS ; \/ /.b ; - \/A /.Sa ; \/ /.a ; $I_3$ \NEXT(+0,+1,S) \NEXT(+0,+0,A) -& \/A/ S.a ; $I_4$ \NEXT(+1,+0,a) -// - \/A/a.; $I_5$ -& \/S/ b. ; $I_6$ -& \/A/ Sa. ; $I_7$ -// -}) -|Close >>> - - - -\Ex{\tex}{Last example in chapter 20}{TM} - - -\<<< -|Open -\NewCIRCNode(\StateNode,104,) -\NewCIRCNode(\AStateNode,104,102) -\Define\StateAt(3){ \MoveTo(#2,#3) - \StateNode(#1)(--$q_{#1}$--)} -\Define\AStateAt(3){\MoveTo(#2,#3) - \AStateNode(#1)(--$q_{#1}$--)} -\LabelSpec(4){\PictLabel{ - { \Move(1,-5) \Line(8,20) } - { \Move(4,10) { \EntryExit(1,0,0,0) - \Text(--\strut$#1$--) } \Move(6,0) - \EntryExit(-1,0,0,0) \Text(--\strut$#3$--) } - { \EntryExit( 1,0,0,0) \Text(--\strut$#2$--) } - \Move(6,0) \EntryExit(-1,0,0,0) \Text(--\strut$#4$--) }} -\DiagramSpec(\StateAt&\AStateAt&\TransEdge) \ArrowHeads(1) -\Diagram( 0,0,0 & 1,80,0 )(2,80,-60)( - 0,0,90,{a,B,+1,a{,+}1} & - 0,1, {a,B,+1,a{,+}1}, {b,B,0,B{,-}1} & - 1,2, {|DEFEND\$,B,0,B{, }0}, ) -|Close >>> - - - - - -\Lib{ProTeX and AlProTex} \def\files{\fileP} \def\LLL{>>>} - -\let\startInput=\empty - -\let\endInput=\empty - -NOTE. The La\TeX{} files of this part put the -{\tt\string\AlProTex....} command after the -{\tt\string\begin\string{document\string}} command. This is not a nice -style for files. - -\Exr{22}2{2a} -\<<< -|Open -\AlProTex{awk,<<<|LLL,@,% - list,title,[]} -\catcode`\@=0 - -An Awk program for deriving -the distribution of words. - -@<dist@><<< -BEGIN {print"words\t lines"} -@<count the words@> -END { i=0 - while (i<=m) - {if (c[i]>0) - {print i "\t " c[i]} - i=i+1 }} -|LLL - -NF is a built-in variable -that holds the number of -words in the current input -line. - -@<count the words@><<< -{ c[NF]=c[NF]+1 - {if (NF>m) m=NF} } -|LLL \OutputCode@<dist@> -|Close >>> - - -\Exr{22}2{2b} -\<<< -|Open -\AlProTex{awk,<<<|LLL,@,% - list,title,[]} - -An Awk program for deriving -the distribution of words. - -\<dist\><<< -BEGIN {print"words\t lines"} -@<count the words@> -END { i=0 - while (i<=m) - {if (c[i]>0) - {print i "\t " c[i]} - i=i+1 }} -|LLL - -NF is a built-in variable -that holds the number of -words in the current input -line. - -\<count the words\><<< -{ c[NF]=c[NF]+1 - {if (NF>m) m=NF} } -|LLL \OutputCode\<dist\> -|Close >>> - - -\Exr{22}2{3} - -\<<< -|Open -\AlProTex{p,<<<|LLL,% - title,list,[]} - -\<prog\><<< -PROGRAM prog;|LLL - -\<body\><<< -{ comment } |LLL - -\<prog\><<< -BEGIN - \<body\> -END.|LLL - -\OutputCode\<prog\> -|Close >>> - -\Exr{22}2{4a} - -\<<< -|Open -\AlProTex{p,list,% - <<<|LLL,title,[]} - -\<\><<< -PROGRAM prog;|LLL - -\<body\><<< -{ comment } |LLL - -\<\><<< -BEGIN - \<body\> -END.|LLL - -\OutputCode\<\> -|Close >>> - -\Exr{22}2{4b} - -\<<< -|Open -\AlProTex{p,% - <<<|LLL,title,[]} - -\<\><<< -PROGRAM prog;|LLL -\ShowCode-\<\> - -\<body\><<< -{ comment } |LLL -\ShowCode\<body\> - -\<\><<< -BEGIN - \<body\> -END.|LLL -\ShowCode\<\> -\OutputCode\<\> -|Close >>> - -\Exr{22}2{4c} - -\<<< -|Open -\AlProTex{p,% - <<<|LLL,title,[]} - -\<\><<< -PROGRAM prog;|LLL - -\<body\><<< -{ comment } |LLL - -\<\><<< -BEGIN - \<body\> -END.|LLL - -\OutputCode\<\> -|Close >>> - - - -\Exr{22}2{5a} - -\<<< -|Open -\AlProTex{p,<<<|LLL,% - title,list,[]} - -\<myprog\><<< -PROGRAM prog;|LLL - -\<body\><<< -{ comment } |LLL - -\<myprog\><<< -BEGIN - \<body\> -END.|LLL -\OutputCode\<myprog\> - -|Close >>> - -\Exr{22}2{5b} - -\<<< -|Open -\AlProTex{p,title,list,[]} - -\<myprog\>{PROGRAM prog;} - -\<body\>{ \{ comment \} } - -\<myprog\>{BEGIN - \<body\> -END.} -\OutputCode\<myprog\> - -|Close >>> - - - - -\Exr{22}2{6a} - -\<<< -|Open -\AlProTex{p,<<<|LLL,[],% - title,list} -\<myprog\><<< -PROGRAM prog; -BEGIN - \<body\> -END.|LLL - -\<body\><<< -{ comment: \\@||` } |LLL -|Close >>> - -\Exr{22}2{6b} - -\<<< -|Open -\AlProTex{p,<<<|LLL,[],% - title,list,@} -\<myprog\><<< -PROGRAM prog; -BEGIN - @<body@> -END.|LLL - -\<body\><<< -{ comment: \@@||` } |LLL -|Close >>> - -\Exr{22}2{6c} - - -\<<< -|Open -\AlProTex{p,<<<|LLL,[],% - title,list,||} -\<myprog\><<< -PROGRAM prog; -BEGIN - ||<body||> -END.|LLL - -\<body\><<< -{ comment: \@||||` } |LLL -|Close >>> - - -\Exr{22}2{6d} - -\<<< -|Open -\AlProTex{p,<<<|LLL,[],% - title,list,`} -\<myprog\><<< -PROGRAM prog; -BEGIN - `<body`> -END.|LLL - -\<body\><<< -{ comment: \@||`` } |LLL -|Close >>> - -\Exr{22}2{7} - -\<<< -|Open -\AlProTex{p,<<<|LLL,[],% - title,list,||} - -\<temp\><<< -\<prog\><<< -PROGRAM prog; -BEGIN - ||||<body||||> -END.>||empty>> - -\<body\><<< -{comment: \@||||||||} >||empty>> - -\OutputCode\<prog\> |LLL - -\OutputCode[prg]\<temp\> -\input temp.prg -|Close >>> - - -\Exr{22}2{8a} - -\<<< -|Open -\Code\myprog{my - program}{PROGRAM prog;} -\ShowCode-\myprog - -\AppendCode\myprog{BEGIN - \body -END.} -\Code\body{body}{} -\ShowCode-\myprog - -\AppendCode\body{\{comment\}} -\ShowCode\body - -Code of title \myprog{} -linearized within -the paragraph: -`\ShowCode-\myprog'. - -\OutputCode\myprog -|Close >>> - -\Exr{22}2{8b} - - -\<<< -|Open -\AlProTex{p,<<<|LLL,list,@} - -\Code\myprog{my program}<<< -PROGRAM prog;|LLL - -\Code\body{body}<<< -|LLL -\AppendCode\myprog<<< -BEGIN - @body -END.|LLL - -\AppendCode\body<<< - {comment} |LLL - -Code of title \myprog{} -linearized within the -paragraph: -`\ShowCode-\myprog'. - -\OutputCode\myprog -|Close >>> - - -\Exr{22}2{9} - -\<<< -|Open -\AlProTex{p,<<<|LLL,% - title,list,[]} - -\<myprog\><<< -PROGRAM prog;|LLL - -\<body\><<< -{ comment } |LLL - -\<myprog\><<< -BEGIN - \<body\> -END.|LLL - -\OutputCode\<myprog\> -|Close >>> - -\Exr{22}2{10a} - -\<<< -|Open -\AlProTex{p,<<<|LLL,title,% - list,[],enumerate} - -See lines \RefLine[*]. - -\<myprog\><<< -PROGRAM prog;\TagLine[*] |LLL - -\<body\><<< -{comment: see \RefLine[*]}|LLL - -\<myprog\><<< -BEGIN - \<body\> \TagLine[*] |LLL - -\ResetLineCount -\<myprog\><<< -END.|LLL \OutputCode\<myprog\> -|Close >>> - -\Exr{22}2{10b} - - -\<<< -|Open -\AlProTex{p,<<<|LLL,title,% - list,[]} -\def\CodeRef[#1]{\Ref{#1}} -\def\CodeTag[#1][#2]{% - \Tag{#1}{#2}} - -See lines \Ref{*}. - -\<myprog\><<< -PROGRAM prog;\CodeTag[*][1]|LLL - -\<body\><<< -{comment: see \CodeRef[*]}|LLL - -\<myprog\><<< -BEGIN - \<body\> \CodeTag[*][2]|LLL - -\ResetLineCount \Tag{*}{3} -\<myprog\><<< -END.|LLL \OutputCode\<myprog\> -|Close >>> - - - - -\Exr{22}2{11} - -\<<< -|Open -\AlProTex{p,<<<|LLL,title,% - list,[],ShowIndex} - -\<myprog\><<< -PROGRAM prog;|LLL - -\<body\><<< -{ comment } |LLL -\TextIndex{Tracing} -\SecIndex{***} - -\<myprog\><<< -BEGIN - \<body\> -END.|LLL - -\def\BeforeIndex{Index} -\ShowIndex -|Close >>> - - - \Exr{22}2{12} - -\<<< -|Open -\AlProTex{p,<<<|LLL,% - title,[],ShowTop} - -\<my prog\><<< -PROGRAM prog; -BEGIN \<body\> -END.|LLL -\<body\><<< -{ comment 1} -|LLL -\<body\><<< -\<subbody\> -|LLL -\<subbody\><<< -{ comment 2 } |LLL -\ShowTop\<body\> - -\def\ShowSep{(* ***** *)\par} -\ShowTop\<body\> -|Close >>> - - \Exr{22}2{13} - - -\<<< -|Open -\AlProTex{p,<<<|LLL,title,% - list,[],NoShow} - -First piece of text. - -\<myprog\><<< -PROGRAM prog; |LLL - -\ShowOff Second piece of text. - -\<body\><<< -{ comment } |LLL - -\Note Third piece of -text. \EndNote\ShowOn - -\<myprog\><<< -BEGIN - \<body\> -END.|LLL - -Last piece of text. -|Close >>> - - \Exr{22}2{14} - -\<<< -|Open -\AlProTex{p,<<<|LLL,title,% - list,ShowIndex,ClearCode} - -Chapter 1 - -\<progA\><<< -PROGRAM prog; -|LLL -\<progA\><<< -BEGIN - { comment 1 } -END.|LLL \ShowIndex - \ClearCode -\vfil\break Chapter 2 - -\<progB\><<< -PROGRAM prog; -|LLL -\<progB\><<< -BEGIN - { comment 2 } -END.|LLL \ShowIndex -|Close >>> - -\begingroup -\def\tex{tex}\let\op=\ForTex \Exr{22}2{15}\par\nobreak - -\<<< -\hsize=2.5in \noindent{\bf -LITERATE PROGRAM IN WEB} -\medskip We compute a -two-dimensional view of a -three-dimensional point. - -@* The mapping. The view - {\tt (x,y)} is on the - {\tt Z=0} plane. -@<map(x,y) := mapping of - (X,Y,Z)@>= - x := X * D DIV (D + Z); - -@ The viewer is located - at {\tt (0,0,-D)}. -@<CONST + VAR @>= - CONST D=100; - VAR X {x}, Z: INTEGER; - -@ -@<map...@>= - y := Y * D DIV (D + Z); - -@ -@<CON...@>=Y {y}: INTEGER; - -@* Main program. -@p PROGRAM D2view; - @<CON...@> - BEGIN read(X,Y,Z); - @<map...@> - write(x,y) - END. -\bye>>> -\endgroup - - -\Ex{\tex}{NEW OPTION `[[]]' FOR {\tt\char92}AlProTex}{NewAlPrOptionA} - -An extension of `[]' which frame also the code fragments. - -\<<< -|Open -\AlProTex{p,<<<|LLL,% - title,list,[[]]} - -Foooo... - -\<myprog\><<< -PROGRAM prog;|LLL - -Foooo... - -\<body\><<< -{ comment } |LLL - -Foooo... - -\<myprog\><<< -BEGIN - \<body\> -END.|LLL - -Foooo... - -\OutputCode\<myprog\> -|Close >>> - -\begingroup -\def\tex{latex}\let\op=\ForTex - - -\Ex{\tex}{NEW OPTION `basic' FOR {\tt\char92}AlProTex}{NewAlPrOptionB} - - -An option that requires compilation by latex. The following -are the only available commands. - - -A. References to code segments: \hfill {\tt\string\<code title\string\>} - -B. Definitions of code fragments: \hfill {\tt\string\<code title\string\><<< - -\hfill code fragment>>>} - -B. Output file of code (`[{\it extension}]' is optional): - \hfill{\tt\string\o[{\it extention}]\string\<code title\string\>} - - -C. The character `{\tt\char92}' \hfill{\tt\string\\} - -D. End of source program \hfill{\tt\string\e} - -E. Logical partitioning of prose (chapters, sections, subsections, and verbatim): -\hfill\hbox{\tt\string\c, \string\s, \string\u, \string\v{$\cdots$}{\char92}} - -\noindent\phantom{E.} A title -must be delimited by an empty line. - -F. Reference to {\tt\string\ClearCode} \hfill {\tt\string\c} - - - - -\<<< -\input ProTex.sty -\AlProTex{foo,basic} - -\cFirst Chapter - -Foooo... - -\sSsssss... - -Foooo. - -\uUuuuuuu..... - -\vVerbatim -verbatim\ -\<myprog\><<< -PROGRAM prog;|LLL -\cCccc... - -Foooo... - -\<body\><<< -{ comment } |LLL - -Foooo... - -\<myprog\><<< -BEGIN - \<body\> -END.|LLL - -Foooo... - -\o\<myprog\> - -\e - >>> - -\Ex{\tex}{variant of `basic'}{NewAlPrOptionC} - -The options `{\tt @}', `{\tt|}', and `{\tt`}' ask that the listed -characters will be used instead of `{\tt\char92}', respectively, -within the commands of option `{\tt basic}'. - -\<<< -\input ProTex.sty -\AlProTex{foo,@,basic} - -@cFirst Chapter - -Foooo... - -@sSsssss... - -Foooo. - -@uUuuuuuu..... - -@vVerbatim -verbatim@ - -@<myprog@><<< -PROGRAM prog;|LLL -@cCccc... - -Foooo... - -@<body@><<< -{ comment } |LLL - -Foooo... - -@<myprog@><<< -BEGIN - @<body@> -END.|LLL - -Foooo... - -@o@<myprog@> - -@e ->>> - -\endgroup - -\newpage \OutputCode[me]\execute - - - On a Unix system containing the xdvi application, the instructions of - the following file can be executed with the compound command - `chmod 777 execute.me ; execute.me'. - - \bigskip - \ShowFile{execute.me} - -\write16{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} -\write16{<< Please review the document <<} -\write16{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} - -\bye diff --git a/Master/texmf-dist/doc/generic/dratex/README b/Master/texmf-dist/doc/generic/dratex/README deleted file mode 100644 index 32f9a71ce18..00000000000 --- a/Master/texmf-dist/doc/generic/dratex/README +++ /dev/null @@ -1,2 +0,0 @@ -Documentation can be found at - http://www.cis.ohio-state.edu/~gurari/systems.html |