diff options
author | Karl Berry <karl@freefriends.org> | 2009-11-28 01:05:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-11-28 01:05:10 +0000 |
commit | 6b73d01df72c987e63321e8a8a8dd1be840827cd (patch) | |
tree | e5391c65c74b53e7c4d77c16c27546565264a740 /Master/texmf-dist/tex/plain/jsmisc/xfig.tex | |
parent | c640640a7c7fd4928b8ecff3af70ce914c60807c (diff) |
rm jsmisc, renamed to js-misc
git-svn-id: svn://tug.org/texlive/trunk@16212 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/plain/jsmisc/xfig.tex')
-rw-r--r-- | Master/texmf-dist/tex/plain/jsmisc/xfig.tex | 626 |
1 files changed, 0 insertions, 626 deletions
diff --git a/Master/texmf-dist/tex/plain/jsmisc/xfig.tex b/Master/texmf-dist/tex/plain/jsmisc/xfig.tex deleted file mode 100644 index 95a86cff5e9..00000000000 --- a/Master/texmf-dist/tex/plain/jsmisc/xfig.tex +++ /dev/null @@ -1,626 +0,0 @@ -% $Id: xfig.tex,v 1.4 1995/05/07 16:52:05 schrod Exp $ -%------------------------------------------------------------ -% Hacked together by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de> -% Put into public domain. - -% -% Support for xfig pictures in plain TeX -% orginally written for transfig 2.1.7 -% support last checked for transfig 3.1.3 -% - - -% USAGE: -% -% To include xfig figures in plain TeX documents, just input these -% macros and then input the (La)TeX file you got by exporting your -% figure as `LaTeX picture' or by calling fig2dev with option `-L -% latex'. No other ``language'' is supported by these macros; in -% particular, `Combined PS/LaTeX' is not supported. - -% You can select the used types for text by redefining some macros: -% \FigFontType<type> (with <type> equal `rm', `bf', `it', `sf', or -% `tt') must expand to the external font name that's used for the -% respective xfig font selection. -% \FigFontDefault specifies the font that's used for the `Default' -% font selection. That macro is only accessed if you use the new xfig, -% or if you repaired the no-NFSS code of fig2dev (in texfonts.h, see -% comments at \xfig@bindSetFigFont implementation below). -% -% At the start of each figure \pictureHook is evaluated, you might -% want to bind that to some code that does document-specific setup. -% Each figure is set in a group, so you can rebind other control -% sequences in that hook. - - -% ------------------------------------------------------------ - -% IMPLEMENTATION NOTES: -% -% The macros might not work in all circumstances, it's updated and improved -% by need... -% -% In particular: -% -- The font selection in \SetFigFont could be improved. -% -- The environment code (\begin/\end) is very rough and should -% check for erroneous input. - - -% Code structure: -% -% After general setup, code from DEK that implements most parts of -% LaTeX's picture environment is used. Then we add definitions for the -% missing and xfig-specific tags. -% -% In Emacs, each section starts on a new page. - - -% ============================================================ - -% standard setup: - -\ifx \CatEscape\undefined - \chardef\CatEscape=0 - \chardef\CatOpen=1 - \chardef\CatClose=2 - \chardef\CatIgnore=9 - \chardef\CatLetter=11 - \chardef\CatOther=12 - \chardef\CatActive=13 % \active of plain.tex - \chardef\CatInvalid=15 - - \chardef\CatAtCode=\catcode`\@ - \chardef\CatUsCode=\catcode`\_ -\fi - -\catcode`\@=\CatLetter % top level macro file - -\begingroup - \catcode`\$=\CatIgnore - \catcode`\:=\CatIgnore - \message{xfig pictures, $Revision: 1.4 $} -\endgroup - - -% This macro file allocates registers and might be read in multiple -% times, in groups. (Actually, this occured for the first time when we -% wanted to use xfig pictures in Texinfo documents. There they are -% typeset in a `tex' environment, and xfig is read in anew for each -% figure.) As all register allocations are globally, we define some -% macros that help us to define them only once. - -\def\xfig@newskip#1{% - \ifx #1\undefined \csname newskip\endcsname #1\fi - } -\def\xfig@newdimen#1{% - \ifx #1\undefined \csname newdimen\endcsname #1\fi - } -\def\xfig@newcount#1{% - \ifx #1\undefined \csname newcount\endcsname #1\fi - } -\def\xfig@newbox#1{% - \ifx #1\undefined \csname newbox\endcsname #1\fi - } - - -% ============================================================ - -%% First comes an implementation of the picture environment's features, -%% by the Grand Wizard of TeX Arcana himself. This is from picture.tex, -%% I deleted the \cpic macro and the squines. \makebox did not support -%% position specifiers, I substituted the definition by the one from -%% LaTeX2e. In addition, all register allocations are made with the -%% macros defined above. - -% -------------------------------------------------- - -% Pictures (a subset of \LaTeX's conventions, plus squines) - -%% [start of change to DEK's code] -%% -%% At's catcode is changed above already. -%% Allocation info for registers should go to log file. - -% \chardef\CatcodeAt=\catcode`\@ -% \catcode`\@=11 % enable private control sequences -% \def\wlog#1{} % don't put allocation info into the log - -%% [end of change] - -\xfig@newskip\hsssglue \hsssglue=0pt plus 1fill minus 1fill -\def\hsss{\hskip\hsssglue} - -\xfig@newdimen\unitlength \xfig@newdimen\linethickness -\xfig@newdimen\@picheight \xfig@newdimen\@xdim \xfig@newdimen\@ydim \xfig@newdimen\@len -\xfig@newdimen\@save -\xfig@newcount\@multicount \xfig@newcount\@xarg \xfig@newcount\@yarg -\xfig@newbox\@picbox \xfig@newbox\@mpbox - -\font\tenln=line10 \font\tenlnw=linew10 -\font\tencirc=lcircle10 \font\tencircw=lcirclew10 - -\xfig@newdimen\@halfwidth - -\def\thinlines{\let\linefont=\tenln \let\circlefont=\tencirc - \linethickness=\fontdimen8\linefont \@halfwidth .5\linethickness} -\def\thicklines{\let\linefont=\tenlnw \let\circlefont=\tencircw - \linethickness=\fontdimen8\linefont \@halfwidth .5\linethickness} -\thinlines - -\def\beginpicture(#1,#2)(#3,#4){\@picheight=#2\unitlength - \setbox\@picbox=\hbox to#1\unitlength\bgroup \let\line=\@line - \kern-#3\unitlength \lower#4\unitlength\hbox\bgroup\ignorespaces} -\def\endpicture{\egroup\hss\egroup - \ht\@picbox=\@picheight \dp\@picbox=\z@ - \leavevmode\box\@picbox} - -\def\put(#1,#2)#3{\raise#2\unitlength\rlap{\kern#1\unitlength #3}\ignorespaces} - -\def\multiput(#1,#2)(#3,#4)#5#6{\@multicount=#5\relax - \@xdim=#1\unitlength \@ydim=#2\unitlength \setbox\@mpbox=\hbox{#6}% - \loop\ifnum\@multicount>0 - \raise\@ydim\rlap{\kern\@xdim \unhcopy\@mpbox}% - \advance\@xdim#3\unitlength \advance\@ydim#4\unitlength - \advance\@multicount\m@ne \repeat\ignorespaces} - -\def\@ifnextchar#1#2#3{\let\@tempe=#1\def\@tempa{#2}\def\@tempb{#3}\futurelet - \@tempc\@ifnch} -\def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch - \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi - \fi \@tempd} - -%% [start of change to DEK's code] -%% -%% \makebox is called with an optional argument, the position -%% specifier. The code below is copied from the LaTeX2e beta-test -%% release. - -\def\makebox(#1,#2){% - \@ifnextchar[{\@makebox(#1,#2)}{\@makebox(#1,#2)[]}} - -\def\@nnil{\@nil} -\def\@fornoop#1\@@#2#3{} -\def\@tfor#1:=#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\empty \else - \@tforloop#2\@nil\@nil\@@#1{#3}\fi} -\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil - \let\@nextwhile\@fornoop \else - #4\relax\let\@nextwhile\@tforloop\fi\@nextwhile#2\@@#3{#4}} - -\long\def\@makebox(#1,#2)[#3]#4{% - \vbox to#2\unitlength - {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss - \let\mb@t\vss - \@tfor\@tempa :=#3\do{% - \if s\@tempa - \let\mb@l\relax\let\mb@r\relax - \else - \expandafter\let\csname mb@\@tempa\endcsname\relax - \fi}% - \mb@t - \hbox to #1\unitlength{\mb@l #4\mb@r}% - \mb@b - \kern\z@}} - -%% [end of change] - -\newif\ifneg -\def\@line(#1,#2)#3{\@xarg=#1 \@yarg=#2 \@len=#3\unitlength \leavevmode - \ifnum\@xarg<0 \reverseline \else \negfalse \@ydim=\z@\fi - \ifnum\@xarg=0 \@vline - \else\ifnum\@yarg=0 \@hline \else\@sline\fi\fi - \ifneg\kern-\@len\else\@save=\@ydim\fi} -\def\reverseline{\negtrue \kern-\@len \@xarg=-\@xarg - \@ydim=\@len \multiply\@ydim\@yarg \divide\@ydim\@xarg \@yarg=-\@yarg} - -\def\@hline{\vrule height.5\linethickness depth.5\linethickness width\@len} -\def\@vline{\kern-.5\linethickness\vrule width\linethickness - \ifnum\@yarg<0 height\z@ depth\else depth\z@ height\fi\@len - \kern-.5\linethickness} - -\def\@sline{\setbox\@picbox=\hbox{\linefont \count@=\@xarg \multiply\count@ 8 - \ifnum\@yarg>0 \advance\count@\@yarg \advance\count@-9 - \else \advance\count@-\@yarg \advance\count@ 55 \fi \char\count@}% - \ifnum\@yarg<0 \@picheight=-\ht\@picbox \advance\@ydim\@picheight - \else \@picheight=\ht\@picbox \fi - \@xdim=\wd\@picbox \@save=\@ydim - \loop\ifdim\@xdim<\@len \raise\@ydim\copy\@picbox - \advance\@xdim\wd\@picbox \advance\@ydim\@picheight \repeat - \advance\@xdim-\@len \kern-\@xdim - \multiply\@xdim\@yarg \divide\@xdim\@xarg \advance\@ydim-\@xdim - \raise\@ydim\box\@picbox} - -\def\vector(#1,#2)#3{\@line(#1,#2){#3}% - \ifnum\@xarg=0 \@vvector \else\ifnum\@yarg=0 \@hvector \else\@svector\fi\fi} -\def\@hvector{\ifneg\rlap{\linefont\char27}\else - \smash{\llap{\linefont\char45}}\fi} % we have to smash because of font bug -\def\@vvector{\ifnum\@yarg<0 \raise-\@len\rlap{\linefont\char63}% - \else\setbox\@picbox=\rlap{\linefont\char54}\advance\@len-\ht\@picbox - \raise\@len\box\@picbox\fi} - -\def\@svector{\setbox\@picbox=\hbox to\z@{\linefont - \ifnum\@yarg<0 \count@=55 \@yarg=-\@yarg \else\count@=-9 \fi - \ifneg\multiply\@xarg16 \multiply\@yarg2 - \else\hss % \llap - \ifnum\@xarg>2 \multiply\@xarg9 \multiply\@yarg2 \advance\count@29 - \else\ifnum\@yarg>2 \multiply\@xarg16 \multiply\@yarg9 \advance\count@-20 - \else\multiply\@xarg24 \multiply\@yarg3 \fi\fi\fi - \advance\count@\@xarg \advance\count@\@yarg \char\count@ - \ifneg\hss\fi}% \rlap - \raise\@save\box\@picbox} - -\def\disk#1{\@len=#1\unitlength \count@='160 \@diskcirc} -\def\circle#1{\@len=#1\unitlength \count@='140 \@diskcirc} -\def\@diskcirc{\setbox\@picbox=\hbox{\circlefont\char\count@}\@xdim=\wd\@picbox - \leavevmode \ifdim\@len>15.499\@xdim \@bigdc \else \@smalldc\fi} -\def\@bigdc{\ifnum\count@<'160 \@bigcirc - \else \@len=15\@xdim \@diskcirc\fi} -\def\@smalldc{{\advance\@len-.5\@xdim - \loop\ifdim\@xdim<\@len \advance\count@\@ne \advance\@xdim\wd\@picbox\repeat - \hbox{\circlefont\char\count@}}} -\def\@bigcirc{{\circlefont\count@=15 - \setbox\@picbox=\hbox{\char\count@}\@xdim=\wd\@picbox - \ifdim\@len>2.5\@xdim \@len=2.5\@xdim\fi - \advance\@len-.125\wd\@picbox - \loop\ifdim\@xdim<\@len \advance\count@ 4 \advance\@xdim.25\wd\@picbox\repeat - \@ydim=.5\@xdim \advance\@ydim.5\linethickness - \setbox\@picbox=\vbox{\hbox{\char\count@\advance\count@-3\char\count@}% - \nointerlineskip - \hbox{\advance\count@\m@ne\char\count@\advance\count@\m@ne\char\count@}}% - \kern-\@ydim\lower\@ydim\box\@picbox}} - -\newif\ifovaltl \newif\ifovaltr \newif\ifovalbl \newif\ifovalbr -\ovaltltrue \ovaltrtrue \ovalbltrue \ovalbrtrue -\def\oval(#1,#2){\@xdim=#1\unitlength \@ydim=#2\unitlength - {\circlefont \setbox\@picbox=\hbox{\char0} - \ifdim\@xdim<\wd\@picbox \@xdim=\wd\@picbox\fi - \ifdim\@ydim<\wd\@picbox \@ydim=\wd\@picbox\fi - \@save=\@xdim \ifdim\@ydim<\@save \@save=\@ydim \fi - \count@=39 - \loop \setbox\@picbox=\hbox{\char\count@}\ifdim\@save<\wd\@picbox - \advance\count@-4 \repeat - \setbox\strutbox=\hbox{\vrule height\ht\@picbox depth\dp\@picbox width\z@ - \kern\wd\@picbox}% - \@save=.5\wd\@picbox \advance\@save-.5\linethickness - \setbox0=\hbox to\@xdim{\ifovaltl\char\count@\else\strut\fi - \kern-\@save\leaders\hrule height\ifovaltl\linethickness\else\z@\fi\hfil - \leaders\hrule height\ifovaltr\linethickness\else\z@\fi\hfil\kern\@save - \ifovaltr\advance\count@-3\char\count@\else\strut\fi\kern-\wd\@picbox}% - \advance\count@\m@ne - \setbox2=\hbox to\@xdim{\ifovalbl\char\count@\else\strut\fi - \kern-\@save\leaders\hrule height\ifovalbl\linethickness\else\z@\fi\hfil - \leaders\hrule height\ifovalbr\linethickness\else\z@\fi\hfil\kern\@save - \ifovalbr\advance\count@\m@ne\char\count@\else\strut\fi\kern-\wd\@picbox}% - \@save=\@ydim \advance\@save-\wd\@picbox \divide\@save 2 - \setbox\@picbox=\vbox{\box0\nointerlineskip - \hbox to\@xdim{\vrule height\@save width\ifovaltl\linethickness\else\z@\fi - \hfil\ifovaltr\vrule width\linethickness\kern-\linethickness\fi}% - \nointerlineskip - \hbox to\@xdim{\vrule height\@save width\ifovalbl\linethickness\else\z@\fi - \hfil\ifovalbr\vrule width\linethickness\kern-\linethickness\fi}% - \nointerlineskip\box2}% - \@save=.5\@ydim \advance\@save.5\linethickness \leavevmode - \kern-.5\@xdim \kern-.5\linethickness \lower\@save\box\@picbox}} - -% ============================================================ - -%% More picture environment tags, output by fig2dev - - -%% The framebox tag was missing in DEK's code. Below is a copy from -%% the 1994/06/01 version of ltboxes.dtx. Actually, we need only the -%% \@framepicbox tag. - -% \DescribeMacro\framebox -% |\framebox| ... : like |\makebox|, except it puts a `frame' around -% the box. The frame is made of lines of thickness -% |\fboxrule|, separated by space |\fboxsep| from the -% text -- except for |\framebox(X,Y)| ... , where the -% thickness of the lines is as for the picture environment, -% and there is no separation added. - -\def\framebox(#1,#2){% - \@ifnextchar[{\@framebox(#1,#2)}{\@framebox(#1,#2)[]}% ] (Emacs) - } -\long\def\@framebox(#1,#2)[#3]#4{% - \frame{\makebox(#1,#2)[#3]{#4}}} - -\long\def\frame#1{% - \leavevmode - \hbox{% - \hskip-\linethickness - \vbox{% - \vskip-\linethickness - \hrule height\linethickness - \hbox{% - \vrule width\linethickness - #1% - \vrule width\linethickness}% - \hrule height\linethickness - \vskip -\linethickness}% - \hskip -\linethickness}} - - -%% The dashbox tag was also missing. We copy it from ltpictur.dtx, -%% 1994/05/22 v1.0e LaTeX Kernel (Picture Mode). The (missing) -%% indentation is from there, not introduced by me. Sorry, but this -%% must be emphasized. - -% \@wholewidth -> \linethickness -% \@makepicbox -> \makebox - -\xfig@newdimen\@dashdim -\xfig@newbox\@dashbox -\xfig@newcount\@dashcnt - -\def\@whilenoop#1{} -\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax - #2\relax}\fi} -\def\@iwhilenum#1{\ifnum #1\let\@nextwhile\@iwhilenum - \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}} - -\def\dashbox#1(#2,#3){\leavevmode\hbox to\z@{\baselineskip \z@skip -\lineskip \z@skip -\@dashdim #2\unitlength -\@dashcnt \@dashdim \advance\@dashcnt 200 -\@dashdim #1\unitlength\divide\@dashcnt \@dashdim -\ifodd\@dashcnt\@dashdim \z@ -\advance\@dashcnt \@ne \divide\@dashcnt \tw@ -\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@ -\advance\@dashcnt \m@ne -\setbox\@dashbox \hbox{\vrule height \@halfwidth depth \@halfwidth -width \@dashdim}\put(0,0){\copy\@dashbox}% -\put(0,#3){\copy\@dashbox}% -\put(#2,0){\hskip-\@dashdim\copy\@dashbox}% -\put(#2,#3){\hskip-\@dashdim\box\@dashbox}% -\multiply\@dashdim \thr@@ -\fi -\setbox\@dashbox \hbox{\vrule height \@halfwidth depth \@halfwidth -width #1\unitlength\hskip #1\unitlength}\count@\z@ -\put(0,0){\hskip\@dashdim \@whilenum \count@ <\@dashcnt -\do{\copy\@dashbox\advance\count@ \@ne }}\count@\z@ -\put(0,#3){\hskip\@dashdim \@whilenum \count@ <\@dashcnt -\do{\copy\@dashbox\advance\count@ \@ne }}% -\@dashdim #3\unitlength -\@dashcnt \@dashdim \advance\@dashcnt 200 -\@dashdim #1\unitlength\divide\@dashcnt \@dashdim -\ifodd\@dashcnt \@dashdim \z@ -\advance\@dashcnt \@ne \divide\@dashcnt \tw@ -\else -\divide\@dashdim \tw@ \divide\@dashcnt \tw@ -\advance\@dashcnt \m@ne -\setbox\@dashbox\hbox{\hskip -\@halfwidth -\vrule width \linethickness -height \@dashdim}\put(0,0){\copy\@dashbox}% -\put(#2,0){\copy\@dashbox}% -\put(0,#3){\lower\@dashdim\copy\@dashbox}% -\put(#2,#3){\lower\@dashdim\copy\@dashbox}% -\multiply\@dashdim \thr@@ -\fi -\setbox\@dashbox\hbox{\vrule width \linethickness -height #1\unitlength}\count@\z@ -\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \count@ <\@dashcnt -\do{\vskip #1\unitlength\copy\@dashbox\advance\count@ \@ne }% -\vskip\@dashdim}}\count@\z@ -\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \count@<\@dashcnt -\do{\vskip #1\unitlength\copy\@dashbox\advance\count@ \@ne }% -\vskip\@dashdim}}}\makebox(#2,#3)} - - -% ============================================================ - -%% Then we must supply the LaTeX tags that are inserted by fig2dev. - -% \setlength is the LaTeX PC way of setting a register. -\def\setlength#1#2{#1=#2\relax} - -% -------------------------------------------------- - -% \makeatletter is called to access private macros in the \SetFigFont -% definition. Since we never expand that definition, we could ignore -% the catcode change. But we should not define a macro with a nonsense -% name... -\ifx \makeatletter\undefined - \def\makeatletter{\catcode`\@=11 } % <-- Space -\fi - -% -------------------------------------------------- - -% The real hassle in that macro file is the font switch code. Once -% there was an interface, in transfig 2.1.7 & 2.1.8: A macro named -% \SetFigFont was used to select the type for texts. The macro -% definition itself is written by fig2dev, it is part of the figure -% code. -% -% Then transfig 3 was released and the interface disappeared. There's -% still the macro \SetFigFont and the macro definition is still -% written by fig2dev, but it may be defined with 3 arguments or with 5 -% arguments, one cannot determine what's used. The second form is used -% when NFSS is added to the defines of fig2dev and should be the -% default. (After all, LaTeX2e subsumed NFSS.) The first form must be -% used for LaTeX 2.09 w/OFSS. -% -% \SetFigFont is not defined if it is defined already when the figure -% code is read. OK, one might think, let's define a plain TeX version. -% (Actually, xfig.tex up to revision 1.3 did so.) But which interface -% shall we use for our definition? In a typical installation one has -% old documents with xfig pictures that were created with an old -% fig2dev, we must therefore support the three-arg-variant. Newly -% created figures will use the five-arg-variant, though. There is no -% obvious way to determine which variant will be used in the -% respective figure. - -% Please note that the information above -- and the one below about -% the actual possible interfaces of \SetFigFont -- was determined by -% looking at the output of example files and the code in setfigfont.c -% and texfonts.h, as not even the comments in these files got updated -% when the new \SetFigFont interface was introduced. (Sigh.) -% -% The changes were not even marked in the list of changes, I learned -% about them when folks from the Net sent me complaints about revision -% 1.1 of xfig.tex. (I hadn't installed xfig 3 at this time.) -% -% Do I really have to tell you what I think about these kinds of -% changes, in terms of software quality? (Don't ask me when I'm in a -% bad mood if you want polite answers.) - -% Well, here's the solution: As told above, I've analyzed the possible -% expansions of \SetFigFont. I'll define macros for every cseq that's -% in the expansion, one of these macros will bind \SetFigFont to -% \SetFigFontOFSS or \SetFigFontNFSS, respectively. Let's have a look: -% -% OFSS: evaluates \@setsize. This macro has supposed to have 4 -% arguments (type, baselineskip, font-setup, font-setup). Then the -% type specifier is evaluated by a \csname. Passing nothing there will -% effectively be a nop. -% -% NFSS: The \SetFigfont expansion uses more cseqs, but is more -% regular, too. We may supply empty expansions for everything that -% shall setup the font parameters: \reset@font, \fontsize (2 args), -% \fontfamily & \fontseries & \fontshape (each 1 arg). Then -% \selectfont is evaluated, here we bind the appropriate expansion of -% \SetFigFont. - -% Now we may setup the macro definitions, evaluate one pseudo -% \SetFigFont and \SetFigFont will be bound to the correct expansion. -% -% The first argument must be a number, as the OFSS \SetFigFont version -% assigns it to a count register. -\def\xfig@bindSetFigFont{% - % OFSS - \def\@setsize##1##2##3##4{\let\SetFigFont\SetFigFontOFSS}% - % NFSS - \let\reset@font\relax - \def\fontsize##1##2{}% - \def\fontfamily##1{}% - \def\fontseries##1{}% - \def\fontshape##1{}% - \def\selectfont{\let\SetFigFont\SetFigFontNFSS}% - % Now bind correct \SetFigFont by evaluating \SetFigFont. - \SetFigFont{0}{}{}{}{}% - } - -% -------------------------------------------------- - -% The interface of \SetFigFontOFSS: -% #1 is the size (w/o pt), -% #2 the baselineskip (w/o pt), -% #3 a plain TeX type specifier. -% If #3 is empty we assume that a default font should be taken. -% This default font can be named by \FigFontDefault. Note, that -% this parameter is not empty if you choose the font `Default' in -% xfig. You have to chang texfonts.h accordingly. I did it -% already for 2.1.7 and sent the diffs to the maintainer, but -% obviously he dumped them since they did not appear in 3.x. -% -% It's a pity, that we can't use the plain TeX type specifier. We -% demand an appropriate font scaled to the correct size. This is not -% the best solution, but nowadays most DVI drivers generate the fonts on -% the fly anyhow. - -\def\FigFontDefault{cmr10} -\def\FigFontType{\FigFontDefault\space} -\def\FigFontTyperm{cmr10} -\def\FigFontTypebf{cmbx10} -\def\FigFontTypeit{cmti10} -\def\FigFontTypesf{cmss10} -\def\FigFontTypett{cmtt10} -\def\SetFigFontOFSS#1#2#3{% - \font\FigFont \csname FigFontType#3\endcsname\space at #1pt - \FigFont - \baselineskip #2pt\relax - } - -% The interface of \SetFigFontNFSS: -% #1 is the size (w/o pt), -% #2 the baselineskip (w/o pt), -% #3 the NFSS font family (as a cseq), -% #4 the NFSS font series (as a cseq), and -% #5 the NFSS font shape (as a cseq). -% -% The current font state is reset before the arguments take effect. -% The call to \SetFigFont doesn't use the full possibilities of NFSS; -% only fixed combinations of arguments are supplied, as xfig itself -% knows only about a fixed set of fonts (default, roman, bold, italic, -% sans serif, and typewriter). - -% We map that interface back to the one of \SetFigFontOFSS. To do that -% we redefine the NFSS font specifiers locally to create plain TeX -% font specifiers. That's mostly easy, medium density (`md') series -% and upright (`up') shape are ignored in plain anyhow. The default is -% explicitely specified by \familydefault, we don't need to infer it. -% But there is one exception: bold is specified as `roman bold', ie, -% as `rmbf'. For that exception we just define a new FigFontType macro. - -\def\FigFontTypermbf{\FigFontTypebf} -\def\SetFigFontNFSS#1#2#3#4#5{% - \begingroup - \let\familydefault\empty - \def\rmdefault{rm}% - \def\sfdefault{sf}% - \def\ttdefault{tt}% - \let\mddefault\empty - \def\bfdefault{bf}% - \let\updefault\empty - \def\itdefault{it}% - \xdef\FigFontSpec{#3#4#5}% - \endgroup - \SetFigFontOFSS{#1}{#2}{\FigFontSpec}% - } - -% -------------------------------------------------- - -% Environments are enclosed in \begin{foo} ... \end{foo}. -% I don't check if the call is ok -- this file is specific for -% machine-generated code, that shall be correct by definition. -% -% We need to setup the correct \SetFigFont binding, as explained above. -% And let's evaluate a hook to enable document specific adaptions. - -\def\begin#1{% - \begingroup - \def\end##1{% - \csname end##1\endcsname - \endgroup - }% - \xfig@bindSetFigFont - \csname #1Hook\endcsname - \csname begin#1\endcsname - } - - -% ============================================================ - -\catcode`\@=\CatAtCode - -\endinput - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% $Log: xfig.tex,v $ -% Revision 1.4 1995/05/07 16:52:05 schrod -% Determine \SetFigFont variant automatically. \OldXfig is not -% looked at any more, \SetFigFontOld and \SetFigFontNew are renamed to -% \SetFigFontOFSS and \SetFigFontNFSS. -% -% Revision 1.3 1995/04/17 00:01:08 schrod -% Don't allocate registers anew if xfig.tex is read in the second -% time. -% -% Revision 1.2 1995/03/16 01:15:51 schrod -% Support output of transfig 3.1.1. -% -% Revision 1.1 1995/03/13 23:18:15 schrod -% Started to manage this package with CVS. Made minor code cleanup. -% - -% 94-06-10 js Initial revision. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -Local Variables: -mode: plain-tex -TeX-master: t -TeX-brace-indent-level: 4 -page-delimiter: "^% ==*$" -End: |