% figtotal.tex 25 Mar 91 %------------------------------------------------------------ % (c) 1991 by J.Schrod (TeXsys). % % Picture of the components and used file types of TeX (data flow) % (thanks to Nico Poppelier who contributed this better structured version) % % LaTeX picture % check if \OutputInFigtotal and \DriverInFigtotal is defined \ifx \OutputInFigtotal\undefined \errhelp{It should be defined as the term `output' in the used language} \errmessage{You must define \string\OutputInFigtotal} \def\OutputInFigtotal{output} \fi \ifx \DriverInFigtotal\undefined \errhelp{It should be defined as the term `driver' in the used language} \errmessage{You must define \string\DriverInFigtotal} \def\DriverInFigtotal{\DVI{} driver} \fi \def\file#1{\framebox(3,2){\tt \uppercase{#1}}} \def\prog(#1)#2{% \oval(#1,2)% \makebox(0,0){#2}% } % X and Y variables \newcount\X \newcount\Y % needed for \Program % macros for objects \def\File(#1,#2)#3{% \put(#1,#2){\framebox(20,10){\tt\uppercase{#3}}}} \def\CopyFile(#1,#2)#3{% \put(#1,#2){\dashbox{2}(20,10){#3}}} \def\Program(#1,#2)#3{% \X=#1 \Y=#2 \advance\X by 15 \advance\Y by 5 \put(\X,\Y){\oval(30,10)}% \put(#1,#2){\makebox(30,10){#3}}} \def\Device(#1,#2)#3{% \put(#1,#2){\line(1,2){5}} \put(#1,#2){\line(1,0){25}} \X=#1 \Y=#2 \advance\X by 30 \advance\Y by 10 \put(\the\X,\the\Y){\line(-1,-2){5}} \put(\the\X,\the\Y){\line(-1,0){25}} \put(#1,#2){\makebox(30,10){#3}}} % don't ask me why it's 0.7mm, that's from Nico! -js \unitlength=0.7mm \begin{picture}(260,160)(80,0) % this code provides a dotted grid that makes modification easier %\multiput( 70, 0)(10,0){20}{% % \vbox to 160\unitlength{% % \leaders % \vbox to 2.5\unitlength{% % \vfill % \hbox{\fivrm .}% % \vfill % }% % \vfill % }% % } %\multiput( 70, 0)(0,10){17}{% % \hbox to 190\unitlength{% % \leaders % \hbox to 2.5\unitlength{% % \hfill % \hbox{\fivrm .}% % \hfill % }% % \hfill % }% % } % % IniTeX block % \File( 75,145){tfm} \File(105,145){hyp} \File(135,145){mac} \File(165,145){pool} \multiput( 85,145)(30,0){4}{\line(0,-1){5}} \put( 85,140){\line(1,0){90}} \put(115,140){\vector(0,-1){5}} \Program(100,125){\INITeX} \put(115,125){\line(0,-1){5}} \put(100,120){\line(1,0){30}} \multiput(100,120)(30,0){2}{\vector(0,-1){5}} \File( 90,105){log} \File(120,105){fmt} \File(150,105){tex} \File(180,105){sty} \File(210,105){mac} \File(240,105){tfm} % % TeX block % \multiput(130,105)(30,0){5}{\line(0,-1){5}} \put(130,100){\line(1,0){120}} \put(175,100){\vector(0,-1){5}} \Program(160, 85){\TeX82} \put(175, 85){\line(0,-1){5}} \put(130, 80){\line(1,0){90}} \multiput(130, 80)(30,0){4}{\vector(0,-1){5}} \File(120, 65){dvi} \File(150, 65){log} \File(180, 65){idx} \File(210, 65){aux} % loop back to TeX \put(230, 70){\line(1,0){10}} \put(240, 70){\vector(0,1){10}} \put(240, 80){\line(0,1){10}} % % BibTeX block % \File(195, 45){bib} \File(225, 45){bst} \multiput(205, 45)(30,0){2}{\line(0,-1){5}} \put(205, 40){\line(1,0){30}} \put(220, 65){\vector(0,-1){30}} \Program(205, 25){\BibTeX} \put(220, 25){\line(0,-1){5}} \put(205, 20){\line(1,0){30}} \multiput(205, 20)(30,0){2}{\vector(0,-1){5}} \File(195, 5){blg} \File(225, 5){bbl} % loop back to TeX \put(245, 10){\line(1,0){10}} \put(255, 10){\vector(0,1){10}} \put(255, 20){\line(0,1){70}} % % MakeIndex block % \File(150, 45){ist} \put(190, 65){\line(0,-1){20}} \multiput(160, 45)(30,0){2}{\line(0,-1){5}} \put(160, 40){\line(1,0){30}} \put(175, 40){\vector(0,-1){5}} \Program(160, 25){\MakeIndex} \put(175, 25){\line(0,-1){5}} \put(145, 20){\line(1,0){30}} \multiput(145, 20)(30,0){2}{\vector(0,-1){5}} \File(135, 5){ilg} \File(165, 5){ind} % loop back to TeX \put(175, 5){\line(0,-1){5}} \put(175, 0){\line(1,0){85}} \put(260, 0){\vector(0,1){10}} \put(260, 10){\line(0,1){80}} \put(260, 90){\vector(-1,0){70}} % % device driver block % \File( 90, 65){fnt} \multiput(100, 65)(30,0){2}{\line(0,-1){25}} \put(100, 40){\line(1,0){30}} \put(115, 40){\vector(0,-1){5}} \Program(100, 25){\DriverInFigtotal} \put(115, 25){\vector(0,-1){10}} \Device(100, 5){\OutputInFigtotal} \end{picture} \endinput