summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/misc/isf.sty
blob: 6c30a2d72ad3d7fb1fcd74e9d0fbce77a67b25ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
% Save file as: ISF.STY                Source: FILESERV@SHSU.BITNET  
% Provide access to the italic san serif type style for LaTeX.  Once you
% have included "isf" as a style option, you can use the \isf command to
% select the italic san serif style, just as you would select the usual
% italic style with \it, EXCEPT:
%
%	The various fonts defined here are all "loaded on demand".  As
%	discussed in the LaTeX book, Section C.14.4, a loaded on demand
%	font is subject to two restrictions when used in math mode:
%
%	- The font must be used OUTSIDE of math mode before it is used
%	  INSIDE of math mode.  The \load command can be used to get
%	  around this restriction.
%
%	- Only a single font size is available within math mode - the
%	  display, text, script and scriptscriptfonts will all be the
%	  same.  This can be avoided ONLY by changing the definitions
%	  given here to pre-load the appropriate fonts; see LFONTS.TEX
%	  for further information.  (Alternatively, \@getfont could be
%	  made more clever.)  Note that pre-loading the fonts could cause
%	  you to fill font space with fonts you never really use.
%
% In order to allow other style files that need access to \isf to input this
% file safely, it is designed so that an attempt to input it a second time -
% or, more exactly, when command "\isf" is already defined - is ignored.
%
% This file can be adapted easily to define other font type styles.  The real
% limit is likely to come from the requirement that each style so defined must
% be given a unique family number - TeX only supports 16 families and LaTeX
% as usually configured already uses 10.  The right way to avoid this problem
% is to modify \@getfont so that it ignores a family number of -1.  Fonts
% so specified would not be usable in math mode, but that's no big deal; you
% don't WANT to use tons of non-math fonts in math mode anyway.
%
% As currently written, this file assumes that you have boldface san serif
% fonts available at the following point sizes:
%
%	lcmssi8
%	lcmssi8 at 9pt
%	cmssi10
%	cmssi10 at 11pt
%	cmssi10 at 12pt
%	cmssi10 at 17pt
%	cmssi10 at 20pt
%	cmssi10 at 25pt
%
% All but the last of these should be commonly available.  I'm not sure about
% the last one; LFONTS.TEX does not assume the availability of ANY 25 pt fonts
% other than Roman.  If necessary, change the definition of \isfxxv@ to
% \@subfont\isf\it.  (Alternatively, if you have italic sans serif fonts
% at sizes smaller than 8pt, you might want to change the definitions of
% \isfv@, \isfvi@, and \isfvii@.)
%
% Technical note:  It is possible to do without the \isf<size>@ macros by
% including their contents, with a whole bunch of \@prtct's, within the
% \@addfontinfo definitions.  This is a pain to do, and probably doesn't end
% up saving any space anyway.  This way costs you a bunch of extra macros,
% but it's a LOT easier to understand!
%
% Written by George D. Greenwade (BED_GDG@SHSU.BITMET) as a variation of
% BSF.STY Written by Jerry Leichter (LEICHTER-JERRY@CS.YALE.EDU)

\expandafter\ifx\csname isf\endcsname\relax		%Once only, please
% Note:  It's a pain to use \@ifundefined here - we don't want to pass the
% rest of the definitions as an argument, but we can't easily use \endinput
% since, with docsty, we can't control where the line breaks occur.

\typeout{Document Option `isf'  25 August 1989 (GDG)}
\def\isf{\protect\pisf}
\newfam\sfifam
\@addfontinfo\@vpt{\@prtct\isfv@}
  \def\isfv@{\def\pisf{\@subfont\isf\it}}
\@addfontinfo\@vipt{\@prtct\isfvi@}           
  \def\isfvi@{\def\pisf{\@subfont\isf\it}}
\@addfontinfo\@viipt{\@prtct\isfvii@}
  \def\isfvii@{\def\pisf{\@subfont\isf\it}}
\@addfontinfo\@viiipt{\@prtct\isfviii@}
  \def\isfviii@{\def\pisf{\@getfont\pisf\sfifam\@viiipt{lsmssi8}}}
\@addfontinfo\@ixpt{\@prtct\isfx@}
  \def\isfx@{\def\pisf{\@getfont\pisf\sfifam\@ixpt{lsmssi8\@halfmag}}}
\@addfontinfo\@xpt{\@prtct\isfx@}
  \def\isfx@{\def\pisf{\@getfont\pisf\sfifam\@xpt{cmssi10}}}
\@addfontinfo\@xipt{\@prtct\isfxi@}
  \def\isfxi@{\def\pisf{\@getfont\pisf\sfifam\@xipt{cmssi10\@halfmag}}}
\@addfontinfo\@xiipt{\@prtct\isfxii@}
  \def\isfxii@{\def\pisf{\@getfont\pisf\sfifam\@xiipt{cmssi10\@magscale1}}}
\@addfontinfo\@xivpt{\@prtct\isfxiv@}
  \def\isfxiv@{\def\pisf{\@getfont\pisf\sfifam\@xivpt{cmssi10\@magscale2}}}
\@addfontinfo\@xviipt{\@prtct\isfxvii@}
  \def\isfxvii@{\def\pisf{\@getfont\pisf\sfifam\@xviipt{cmssi10\@magscale3}}}
\@addfontinfo\@xxpt{\@prtct\isfxx@}
  \def\isfxx@{\def\pisf{\@getfont\pisf\sfifam\@xxpt{cmssi10\@magscale4}}}
\@addfontinfo\@xxvpt{\@prtct\isfxxv@}
  \def\isfxxv@{\def\pisf{\@getfont\pisf\sfifam\@xxvpt{cmssi10\@magscale5}}}
\fi