latex209-25.may.1992.orig/ 40775 144 144 0 6271446675 14033 5ustar nakaharastafflatex209-25.may.1992.orig/fonts/ 40775 144 144 0 6271446675 15164 5ustar nakaharastafflatex209-25.may.1992.orig/fonts/lcircle10.mf100664 144 144 610 5162216360 17320 0ustar nakaharastaff%% RmS 91/11/14: check that cmbase is NOT loaded %% RmS 92/03/18: changed message to errmessage inner bye; if not unknown cmbase: errhelp "This font must be generated using the plain base."; errmessage "You can't use cmbase for this font!"; expandafter bye fi font_identifier "CIRCLE"; font_size 10pt#; font_coding_scheme:="LATEX CIRCLE"; mode_setup; thickness#:=.4pt#; input circle latex209-25.may.1992.orig/fonts/sromanu.mf100664 144 144 4265 5161754600 17263 0ustar nakaharastaff% File: MF Inputs sromanu.mf % Author: Pierre A. MacKay % Internet: mackay@cs.washington.edu % Date: June 25, 1991 % % This for the SLITeX fonts: lcmss8, lcmssb8, lcmssi8. % All characters in romanu.mf except I are generated % A special I with slab serifs is then substituted for the % normal, confusing, sans-serif I of cmss* fonts. % Based on the macros in the METAFONTbook, Appendix E, % page 307 & 312. Just as in the case of the iff % macro, this depends on the expectation that every % character program will end with endchar. string currenttitle; def exclude_I expr t = currenttitle:= t; if t = "The letter I" : let next_ = lose_it_ else: let next_ = use_it_ fi; next_ enddef; % Add _ to the macro names used by iff to avoid confusion. def use_it_ = relax; enddef; def lose_it_ = let endchar = fi; let ; = fix_ semi_ if false: enddef; let cmchar = exclude_I; input romanu let cmchar=relax; % Uppercase I provided by Pierre A. MacKay, in June l986. % The I has slab serifs based on the proportions of % the upper and lower horizontals of upper case E. cmchar "The letter I"; beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0); italcorr cap_height#*slant-.25u#; adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem pickup crisp.nib; % arms based on proportions of uppercase E pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90); x3=x4=x1; top y3r=h; bot y4r=0; pos5(hair,0); pos6(hair,0); % top and bottom right arms rt x5r=rt x6r=hround(w-u); pos7(hair,180); pos8(hair,180); % top and bottom left arms lft x7r=lft x8r=hround(u); y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif! y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar; endinput; latex209-25.may.1992.orig/fonts/sroman.mf100664 144 144 6160 5161754600 17072 0ustar nakaharastaff% This is the driver file sroman.mf based on roman.mf in the % Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985) % It differs from roman.mf only in that it has been % adjusted to call for sromanu.mf with a special uppercase I % for the SLITeX fonts: lcmss8, lcmssb8, and lcmssi8. % Written by Pierre A. MacKay, 16 Sept. 1986 if ligs>1: font_coding_scheme:="TeX text"; spanish_shriek=oct"074"; spanish_query=oct"076"; else: font_coding_scheme:=if ligs=0: "TeX typewriter text" else: "TeX text without f-ligatures" fi; spanish_shriek=oct"016"; spanish_query=oct"017"; fi mode_setup; font_setup; input sromanu; % upper case (majuscules) input romanl; % lower case (minuscules) input greeku; % upper case Greek letters input romand; % numerals input romanp; % ampersand, question marks, currency sign input romspl; % lowercase specials (dotless \i, ligature \ae, etc.) input romspu; % uppercase specials (\AE, \OE, \O) input punct; % punctuation symbols common to roman and italic text input accent; % accents common to roman and italic text if ligs>1: input romlig; fi % letter ligatures if ligs>0: input comlig; fi % ligatures common with italic text if ligs<=1: input romsub; fi % substitutes for ligatures ligtable "!": "`" =: spanish_shriek; ligtable "?": "`" =: spanish_query; font_slant slant; font_x_height x_height#; if monospace: font_normal_space 9u#; % no stretching or shrinking font_quad 18u#; font_extra_space 9u#; else: font_normal_space 6u#+2letter_fit#; font_normal_stretch 3u#; font_normal_shrink 2u#; font_quad 18u#+4letter_fit#; font_extra_space 2u#; k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning ligtable "k": if serifs: "v": "a" kern -u#, fi\\"w": "e" kern k#, "a" kern k#, "o" kern k#, "c" kern k#; ligtable "P": "A" kern kk#, "y": "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, "," kern kk#; ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#, "u" kern kk#, "r" kern kk#, "a" kern kk#, "A" kern kkk#, else: "o" kern k#, "e" kern k#, "u" kern k#, "r" kern k#, "a" kern k#, "A" kern kk#, fi "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#; ligtable "T": "y" kern if serifs: k# else: kk# fi, "Y": "e" kern kk#, "o" kern kk#, "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#; ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#, "V" kern k#, "Y" kern k#; if serifs: ligtable "h": "m": "n": "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#; ligtable "c": "h" kern k#, "k" kern k#; fi ligtable "o": "b": "p": "e" kern -k#, "o" kern -k#, "x" kern k#, "d" kern -k#, "c" kern -k#, "q" kern -k#, "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi "t": "y" kern k#, "u": "w" kern k#; ligtable "A": if serifs: "R": fi\\ "t" kern k#, "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#, "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#; ligtable "g": "j" kern -k#; % logjam ligtable "I": "I" kern -k#; fi % Richard III % there are ligature/kern programs for |"f"| in the {\tt romlig} file % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file bye. latex209-25.may.1992.orig/fonts/line10.mf100664 144 144 1064 5162216360 16656 0ustar nakaharastaff%% RmS 91/11/14: check that cmbase is NOT loaded %% RmS 92/03/18: changed message to errmessage inner bye; if not unknown cmbase: errhelp "This font must be generated using the plain base."; errmessage "You can't use cmbase for this font!"; expandafter bye fi font_identifier "LINE"; font_size 10pt#; font_coding_scheme:="LATEX LINE"; mode_setup; qqs#=.4pt#; %width of lines qqh#=10pt#; %height of vertical stroke. qqw#=10pt#; %length of horizontal stroke. %arrow dimensions: arrowlen#=.4*qqw#; arrowht#=.15*qqw#; arrowcurve#=.1*arrowht#; input line; latex209-25.may.1992.orig/fonts/linew10.mf100664 144 144 1065 5162216360 17046 0ustar nakaharastaff%% RmS 91/11/14: check that cmbase is NOT loaded %% RmS 92/03/18: changed message to errmessage inner bye; if not unknown cmbase: errhelp "This font must be generated using the plain base."; errmessage "You can't use cmbase for this font!"; expandafter bye fi font_identifier "LINEW"; font_size 10pt#; font_coding_scheme:="LATEX LINE"; mode_setup; qqs#=.8pt#; %width of lines qqh#=10pt#; %height of vertical stroke. qqw#=10pt#; %length of horizontal stroke. %arrow dimensions: arrowlen#=.6*qqw#; arrowht#=.22*qqw#; arrowcurve#=.1*arrowht#; input line; latex209-25.may.1992.orig/fonts/line.mf100664 144 144 21436 5162216360 16542 0ustar nakaharastaffqqs:=ceiling(qqs#*hppp); % the way rule widths are calculated define_pixels(qqh,qqw,arrowlen,arrowht,arrowcurve); def line (expr delx, dely) = numeric qht,qwd,absdely; if dely > 0: if delx > dely: qwd# := qqw#; qht# := dely*qqw#/delx; else: qht# := qqw#; qwd# := delx*qqw#/dely; fi; beginchar( 8(delx-1)+(dely-1),qwd#,qht#,0pt#); x0=0; y0=0; x1=w; y1=h; else: absdely=-dely; if delx > absdely: qwd# := qqw#; qht# := absdely*qqw#/delx; else: qht# := qqw#; qwd# := delx*qqw#/absdely; fi; beginchar(64+8(delx-1)+(absdely-1),qwd#,qht#,0pt#); x0=0; y0=h; x1=w; y1=0; fi; pickup pencircle scaled qqs; draw z0..z1 enddef; def larrow (expr char, delx, dely) = numeric rxa,rxb,rxc,rxd,rxe,rya,ryb,ryc,ryd,rye; numeric qht,qwd,absdely; if dely > 0: if delx > dely: qwd# := qqw#; qht# := dely*qqw#/delx; else: qht# := qqw#; qwd# := delx*qqw#/dely; fi; % fixed by DEK on 24 Jan 89; previous code buggy but caused no harm else: absdely=-dely; if delx > absdely: qwd# := qqw#; qht# := absdely*qqw#/delx; else: qht# := qqw#; qwd# := delx*qqw#/absdely; fi; fi; beginchar(char,qwd#,qht#,0pt#); if dely > 0: y0=0; else: y0=h; fi; x0=0; rxa=arrowlen; rya=0; rxb=arrowlen; ryb=arrowht; rxc=arrowlen; ryc=-arrowht; rxd=.5rxa; ryd=.5ryb-arrowcurve; rxe=rxd; rye=-ryd; numeric rlen; rlen = sqrt(delx*delx + dely*dely); x1=(rxa*delx - rya*dely)/rlen; y1=(rxa*dely+rya*delx)/rlen + y0; %x2=rxb; y2=ryb; x2=(rxb*delx - ryb*dely)/rlen; y2=(rxb*dely+ryb*delx)/rlen + y0; %x3=rxc; y3=ryc; x3=(rxc*delx - ryc*dely)/rlen; y3=(rxc*dely+ryc*delx)/rlen + y0; %x4=rxd; y4=ryd; x4=(rxd*delx - ryd*dely)/rlen; y4=(rxd*dely+ryd*delx)/rlen + y0; %x5=rxe; y5=rye; x5=(rxe*delx - rye*dely)/rlen; y5=(rxe*dely+rye*delx)/rlen + y0; fill z0..z5..z3--z1--z2..z4..z0--cycle enddef; def rarrow (expr char, delx, dely) = numeric rxa,rxb,rxc,rxd,rxe,rya,ryb,ryc,ryd,rye; numeric qht,qwd,absdely; if dely > 0: if delx > dely: qwd# := qqw#; qht# := dely*qqw#/delx; else: qht# := qqw#; qwd# := delx*qqw#/dely; fi; else: absdely=-dely; if delx > absdely: qwd# := qqw#; qht# := absdely*qqw#/delx; else: qht# := qqw#; qwd# := delx*qqw#/absdely; fi; fi; beginchar(char,qwd#,qht#,0pt#); if dely > 0: y0=h; else: y0=0; fi; x0=w; rxa=-arrowlen; rya=0; rxb=rxa; ryb=arrowht; rxc=rxa; ryc=-arrowht; rxd=.5rxa; ryd=.5ryb-arrowcurve; rxe=rxd; rye=-ryd; numeric rlen; rlen = sqrt(delx*delx + dely*dely); %x1= rxa;y1=rya; %%%% replace the following by rotations x1=(rxa*delx - rya*dely)/rlen + x0; y1=(rxa*dely+rya*delx)/rlen + y0; %x2=rxb; y2=ryb; x2=(rxb*delx - ryb*dely)/rlen + x0; y2=(rxb*dely+ryb*delx)/rlen + y0; %x3=rxc; y3=ryc; x3=(rxc*delx - ryc*dely)/rlen + x0; y3=(rxc*dely+ryc*delx)/rlen + y0; %x4=rxd; y4=ryd; x4=(rxd*delx - ryd*dely)/rlen + x0; y4=(rxd*dely+ryd*delx)/rlen + y0; %x5=rxe; y5=rye; x5=(rxe*delx - rye*dely)/rlen + x0; y5=(rxe*dely+rye*delx)/rlen + y0; fill z0..z5..z3--z1--z2..z4..z0--cycle enddef; % character code rules, for % line(x,y): % 0 < x,y <= 6 : 8*(x-1) + (y-1) % % larrow(x,y): % 0 < x,y <= 4 : 8*(2x-1) + (2y-1) % y=0 : '33 % rarrow(x,y): % 0 < x,y < 3 : 8*(3x-1) + (3y-1) % 0 < x <= 4, y=3 : 8*(2x-1) + 6 % 0 < x < 4, y = 4 : 8*(2x) + 7 % x=3, 0 < y <=4 : 8*6 + (2y-1) % x = 4, 0 < y < 4 : 8*7 + 2y % y=0 : 55 % % for y < 0: value is 64 + value for (x, |y|) % % up arrow: '66 down arrow: '77 fontdimen 1: 0,0,0,0,0,0,0,qqs#; % line thickness in points let cmchar=\; % cmchar should precede each character, for testing purposes font_coding_scheme:= "LaTeX line"; cmchar "Character '00"; line(1,1); endchar; cmchar "Character '11"; larrow(9,1,1); endchar; cmchar "Character '22"; rarrow(18,1,1); endchar; cmchar "Character '01"; line(1,2); endchar; cmchar "Character '13"; larrow(11,1,2); endchar; cmchar "Character '25"; rarrow(21,1,2); endchar; cmchar "Character '02"; line(1,3); endchar; cmchar "Character '15"; larrow(13,1,3); endchar; cmchar "Character '16"; rarrow(14,1,3); endchar; cmchar "Character '03"; line(1,4); endchar; cmchar "Character '17"; larrow(15,1,4); endchar; cmchar "Character '27"; rarrow(23,1,4); endchar; cmchar "Character '04"; line(1,5); endchar; cmchar "Character '05"; line(1,6); endchar; cmchar "Character '10"; line(2,1); endchar; cmchar "Character '31"; larrow(25,2,1); endchar; cmchar "Character '52"; rarrow(42,2,1); endchar; cmchar "Character '12"; line(2,3); endchar; cmchar "Character '35"; larrow(29,2,3); endchar; cmchar "Character '36"; rarrow(30,2,3); endchar; cmchar "Character '14"; line(2,5); endchar; cmchar "Character '20"; line(3,1); endchar; cmchar "Character '51"; larrow(41,3,1); endchar; cmchar "Character '61"; rarrow(49,3,1); endchar; cmchar "Character '21"; line(3,2); endchar; cmchar "Character '53"; larrow(43,3,2); endchar; cmchar "Character '63"; rarrow(51,3,2); endchar; cmchar "Character '23"; line(3,4); endchar; cmchar "Character '57"; larrow(47,3,4); endchar; cmchar "Character '67"; rarrow(55,3,4); endchar; cmchar "Character '24"; line(3,5); endchar; cmchar "Character '30"; line(4,1); endchar; cmchar "Character '71"; larrow(57,4,1); endchar; cmchar "Character '72"; rarrow(58,4,1); endchar; cmchar "Character '32"; line(4,3); endchar; cmchar "Character '75"; larrow(61,4,3); endchar; cmchar "Character '76"; rarrow(62,4,3); endchar; cmchar "Character '34"; line(4,5); endchar; cmchar "Character '40"; line(5,1); endchar; cmchar "Character '41"; line(5,2); endchar; cmchar "Character '42"; line(5,3); endchar; cmchar "Character '43"; line(5,4); endchar; cmchar "Character '45"; line(5,6); endchar; cmchar "Character '50"; line(6,1); endchar; cmchar "Character '54"; line(6,5); endchar; cmchar "Character '100"; line(1,-1); endchar; cmchar "Character '111"; larrow(73,1,-1); endchar; cmchar "Character '122"; rarrow(82,1,-1); endchar; cmchar "Character '101"; line(1,-2); endchar; cmchar "Character '113"; larrow(75,1,-2); endchar; cmchar "Character '125"; rarrow(85,1,-2); endchar; cmchar "Character '102"; line(1,-3); endchar; cmchar "Character '115"; larrow(77,1,-3); endchar; cmchar "Character '116"; rarrow(78,1,-3); endchar; cmchar "Character '103"; line(1,-4); endchar; cmchar "Character '117"; larrow(79,1,-4); endchar; cmchar "Character '127"; rarrow(87,1,-4); endchar; cmchar "Character '104"; line(1,-5); endchar; cmchar "Character '105"; line(1,-6); endchar; cmchar "Character '110"; line(2,-1); endchar; cmchar "Character '131"; larrow(89,2,-1); endchar; cmchar "Character '152"; rarrow(106,2,-1); endchar; cmchar "Character '112"; line(2,-3); endchar; cmchar "Character '135"; larrow(93,2,-3); endchar; cmchar "Character '136"; rarrow(94,2,-3); endchar; cmchar "Character '114"; line(2,-5); endchar; cmchar "Character '120"; line(3,-1); endchar; cmchar "Character '151"; larrow(105,3,-1); endchar; cmchar "Character '161"; rarrow(113,3,-1); endchar; cmchar "Character '121"; line(3,-2); endchar; cmchar "Character '153"; larrow(107,3,-2); endchar; cmchar "Character '163"; rarrow(115,3,-2); endchar; cmchar "Character '123"; line(3,-4); endchar; cmchar "Character '157"; larrow(111,3,-4); endchar; cmchar "Character '167"; rarrow(119,3,-4); endchar; cmchar "Character '124"; line(3,-5); endchar; cmchar "Character '130"; line(4,-1); endchar; cmchar "Character '171"; larrow(121,4,-1); endchar; cmchar "Character '172"; rarrow(122,4,-1); endchar; cmchar "Character '132"; line(4,-3); endchar; cmchar "Character '175"; larrow(125,4,-3); endchar; cmchar "Character '176"; rarrow(126,4,-3); endchar; cmchar "Character '134"; line(4,-5); endchar; cmchar "Character '140"; line(5,-1); endchar; cmchar "Character '141"; line(5,-2); endchar; cmchar "Character '142"; line(5,-3); endchar; cmchar "Character '143"; line(5,-4); endchar; cmchar "Character '145"; line(5,-6); endchar; cmchar "Character '150"; line(6,-1); endchar; cmchar "Character '154"; line(6,-5); endchar; %%%Horizontal arrows: cmchar "Character '33"; larrow(27,1,0); endchar; cmchar "Character '55"; %right arrow beginchar(45,qqw#,qqw#,0pt#); x0=w; y0=0; x1=x0-arrowlen; y1=0; x2=x1; y2=arrowht; x3=x1; y3=-y2; x4=.5[x0,x1]; y4=.5y2-arrowcurve; x5=x4; y5=-y4; fill z0..z4..z2--z1--z3..z5..z0--cycle; endchar; %%%vertical arrows cmchar "Character '66"; %up arrow beginchar(54,qqw#,qqw#,0pt#); x0=0; y0=w; y1=y0-arrowlen; x1=0; y2=y1; x2=arrowht; y3=y1; x3=-x2; y4=.5[y0,y1]; x4=.5x2-arrowcurve; y5=y4; x5=-x4; fill z0..z4..z2--z1--z3..z5..z0--cycle; endchar; cmchar "Character '77"; %down arrow beginchar(63,qqw#,qqw#,0pt#); x0=0; y0=0; y1=arrowlen; x1=0; y2=y1; x2=arrowht; y3=y1; x3=-x2; y4=.5y1; x4=.5x2-arrowcurve; y5=y4; x5=-x4; fill z0..z4..z2--z1--z3..z5..z0--cycle; endchar; bye latex209-25.may.1992.orig/fonts/lcirclew10.mf100664 144 144 610 5162216360 17507 0ustar nakaharastaff%% RmS 91/11/14: check that cmbase is NOT loaded %% RmS 92/03/18: changed message to errmessage inner bye; if not unknown cmbase: errhelp "This font must be generated using the plain base."; errmessage "You can't use cmbase for this font!"; expandafter bye fi font_identifier "CIRCLEW"; font_size 10pt#; font_coding_scheme:="LATEX CIRCLE"; mode_setup; thickness#:=.8pt#; input circle latex209-25.may.1992.orig/fonts/lcmssi8.mf100664 144 144 7333 5161754600 17160 0ustar nakaharastaff% SliTeX Sans-Serif Slanted 8 point, derived from % Computer Modern Sans Serif Quotation Style Slanted % by Pierre A. MacKay, 19 August, 1986 if unknown cmbase: input cmbase fi font_identifier:="LCMSSI"; font_size 8pt#; u#:=20/36pt#; % unit width width_adj#:=2/36pt#; % width adjustment for certain characters serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=220/36pt#; % height of tallest characters asc_height#:=200/36pt#; % height of lowercase ascenders cap_height#:=197/36pt#; % height of caps fig_height#:=190/36pt#; % height of numerals x_height#:=150/36pt#; % height of lowercase without ascenders math_axis#:=80/36pt#; % axis of symmetry for math symbols bar_height#:=80/36pt#; % height of crossbar in lowercase e comma_depth#:=40/36pt#; % depth of comma below baseline desc_depth#:=40/36pt#; % depth of lowercase descenders crisp#:=18/36pt#; % diameter of serif corners tiny#:=18/36pt#; % diameter of rounded corners fine#:=8/36pt#; % diameter of sharply rounded corners thin_join#:=8/36pt#; % width of extrafine details hair#:=23/36pt#; % lowercase hairline breadth stem#:=23/36pt#; % lowercase stem breadth curve#:=23/36pt#; % lowercase curve breadth ess#:=23/36pt#; % breadth in middle of lowercase s flare#:=21/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=28/36pt#; % diameter of dots cap_hair#:=23/36pt#; % uppercase hairline breadth cap_stem#:=27/36pt#; % uppercase stem breadth cap_curve#:=27/36pt#; % uppercase curve breadth cap_ess#:=27/36pt#; % breadth in middle of uppercase s rule_thickness#:=20/36pt#; % thickness of lines in math symbols dish#:=0pt#; % amount erased at top or bottom of serifs bracket#:=0pt#; % vertical distance from serif base to tangent jut#:=0pt#; % protrusion of lowercase serifs cap_jut#:=0pt#; % protrusion of uppercase serifs beak_jut#:=0pt#; % horizontal protrusion of beak serifs beak#:=0pt#; % vertical protrusion of beak serifs vair#:=18/36pt#; % vertical diameter of hairlines notch_cut#:=23/36pt#; % maximum breadth above or below notches bar#:=18/36pt#; % lowercase bar thickness slab#:=19/36pt#; % serif and arm thickness cap_bar#:=19/36pt#; % uppercase bar thickness cap_band#:=19/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches serif_drop#:=0pt#; % vertical drop of sloped serifs stem_corr#:=.5/36pt#; % for small refinements of stem breadth vair_corr#:=.5/36pt#; % for small refinements of hairline height apex_corr#:=4/36pt#; % extra width at diagonal junctions o#:=6/36pt#; % amount of overshoot for curves apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$ fudge:=.95; % factor applied to weights of heavy characters math_spread:=0; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/10; % extra openness inside bowls beak_darkness:=0; % fraction of triangle inside beak serifs ligs:=2; % level of ligatures to be included square_dots:=true; % should dots be square? hefty:=true; % should we try hard not to be overweight? serifs:=false; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=true; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=false; % should math-mode spacing be used? generate sroman % switch to the SliTeX driver file. latex209-25.may.1992.orig/fonts/lcmssb8.mf100664 144 144 7311 5161754600 17145 0ustar nakaharastaff% SliTeX Sans-Serif bold 8 point, derived from % Computer Modern Sans Serif Quotation Style % by Pierre A. MacKay, 19 August, 1986 if unknown cmbase: input cmbase fi font_identifier:="LCMSSB"; font_size 8pt#; u#:=22/36pt#; % unit width width_adj#:=3/36pt#; % width adjustment for certain characters serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=220/36pt#; % height of tallest characters asc_height#:=200/36pt#; % height of lowercase ascenders cap_height#:=197/36pt#; % height of caps fig_height#:=200/36pt#; % height of numerals x_height#:=155/36pt#; % height of lowercase without ascenders math_axis#:=80/36pt#; % axis of symmetry for math symbols bar_height#:=90/36pt#; % height of crossbar in lowercase e comma_depth#:=35/36pt#; % depth of comma below baseline desc_depth#:=40/36pt#; % depth of lowercase descenders crisp#:=18/36pt#; % diameter of serif corners tiny#:=18/36pt#; % diameter of rounded corners fine#:=8/36pt#; % diameter of sharply rounded corners thin_join#:=8/36pt#; % width of extrafine details hair#:=42/36pt#; % lowercase hairline breadth stem#:=42/36pt#; % lowercase stem breadth curve#:=42/36pt#; % lowercase curve breadth ess#:=40/36pt#; % breadth in middle of lowercase s flare#:=36/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=41/36pt#; % diameter of dots cap_hair#:=42/36pt#; % uppercase hairline breadth cap_stem#:=46/36pt#; % uppercase stem breadth cap_curve#:=46/36pt#; % uppercase curve breadth cap_ess#:=46/36pt#; % breadth in middle of uppercase s rule_thickness#:=26/36pt#; % thickness of lines in math symbols dish#:=0pt#; % amount erased at top or bottom of serifs bracket#:=0pt#; % vertical distance from serif base to tangent jut#:=0pt#; % protrusion of lowercase serifs cap_jut#:=0pt#; % protrusion of uppercase serifs beak_jut#:=0pt#; % horizontal protrusion of beak serifs beak#:=0pt#; % vertical protrusion of beak serifs vair#:=22/36pt#; % vertical diameter of hairlines notch_cut#:=48/36pt#; % maximum breadth above or below notches bar#:=22/36pt#; % lowercase bar thickness slab#:=24/36pt#; % serif and arm thickness cap_bar#:=23/36pt#; % uppercase bar thickness cap_band#:=30/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=42/36pt#; % max breadth above/below uppercase notches serif_drop#:=0pt#; % vertical drop of sloped serifs stem_corr#:=.5/36pt#; % for small refinements of stem breadth vair_corr#:=1/36pt#; % for small refinements of hairline height apex_corr#:=15/36pt#; % extra width at diagonal junctions o#:=6/36pt#; % amount of overshoot for curves apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions slant:=0; % tilt ratio $(\Delta x/\Delta y)$ fudge:=.85; % factor applied to weights of heavy characters math_spread:=0.5; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/9; % extra openness inside bowls beak_darkness:=0; % fraction of triangle inside beak serifs ligs:=2; % level of ligatures to be included square_dots:=true; % should dots be square? hefty:=true; % should we try hard not to be overweight? serifs:=false; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=true; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=false; % should math-mode spacing be used? generate sroman % switch to the driver file for SliTeX latex209-25.may.1992.orig/fonts/lcmss8.mf100664 144 144 7301 5161754600 17002 0ustar nakaharastaff% SliTeX Sans Serif 8 point, derived from % Computer Modern Sans Serif Quotation Style % by Pierre A. MacKay, 19 August, 1986 if unknown cmbase: input cmbase fi font_identifier:="LCMSS"; font_size 8pt#; u#:=20/36pt#; % unit width width_adj#:=2/36pt#; % width adjustment for certain characters serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=220/36pt#; % height of tallest characters asc_height#:=200/36pt#; % height of lowercase ascenders cap_height#:=197/36pt#; % height of caps fig_height#:=190/36pt#; % height of numerals x_height#:=150/36pt#; % height of lowercase without ascenders math_axis#:=80/36pt#; % axis of symmetry for math symbols bar_height#:=80/36pt#; % height of crossbar in lowercase e comma_depth#:=40/36pt#; % depth of comma below baseline desc_depth#:=40/36pt#; % depth of lowercase descenders crisp#:=18/36pt#; % diameter of serif corners tiny#:=18/36pt#; % diameter of rounded corners fine#:=8/36pt#; % diameter of sharply rounded corners thin_join#:=8/36pt#; % width of extrafine details hair#:=23/36pt#; % lowercase hairline breadth stem#:=23/36pt#; % lowercase stem breadth curve#:=23/36pt#; % lowercase curve breadth ess#:=23/36pt#; % breadth in middle of lowercase s flare#:=21/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=28/36pt#; % diameter of dots cap_hair#:=23/36pt#; % uppercase hairline breadth cap_stem#:=27/36pt#; % uppercase stem breadth cap_curve#:=27/36pt#; % uppercase curve breadth cap_ess#:=27/36pt#; % breadth in middle of uppercase s rule_thickness#:=20/36pt#; % thickness of lines in math symbols dish#:=0pt#; % amount erased at top or bottom of serifs bracket#:=0pt#; % vertical distance from serif base to tangent jut#:=0pt#; % protrusion of lowercase serifs cap_jut#:=0pt#; % protrusion of uppercase serifs beak_jut#:=0pt#; % horizontal protrusion of beak serifs beak#:=0pt#; % vertical protrusion of beak serifs vair#:=18/36pt#; % vertical diameter of hairlines notch_cut#:=23/36pt#; % maximum breadth above or below notches bar#:=18/36pt#; % lowercase bar thickness slab#:=19/36pt#; % serif and arm thickness cap_bar#:=19/36pt#; % uppercase bar thickness cap_band#:=19/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches serif_drop#:=0pt#; % vertical drop of sloped serifs stem_corr#:=.5/36pt#; % for small refinements of stem breadth vair_corr#:=.5/36pt#; % for small refinements of hairline height apex_corr#:=4/36pt#; % extra width at diagonal junctions o#:=6/36pt#; % amount of overshoot for curves apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions slant:=0; % tilt ratio $(\Delta x/\Delta y)$ fudge:=.95; % factor applied to weights of heavy characters math_spread:=0; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/10; % extra openness inside bowls beak_darkness:=0; % fraction of triangle inside beak serifs ligs:=2; % level of ligatures to be included square_dots:=true; % should dots be square? hefty:=true; % should we try hard not to be overweight? serifs:=false; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=true; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=false; % should math-mode spacing be used? generate sroman % switch to the driver file for SliTeX latex209-25.may.1992.orig/fonts/ilcmssi8.mf100664 144 144 7476 5161754600 17341 0ustar nakaharastaff% SliTeX Sans-Serif Slanted 8 point invisible, derived from % Computer Modern Sans Serif Quotation Style Slanted % by Pierre A. MacKay, 19 August, 1986 if unknown cmbase: input cmbase fi % RmS 91/10/27: corrected font identifier font_identifier:="ILCMSSI"; font_size 8pt#; u#:=20/36pt#; % unit width width_adj#:=2/36pt#; % width adjustment for certain characters serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=220/36pt#; % height of tallest characters asc_height#:=200/36pt#; % height of lowercase ascenders cap_height#:=197/36pt#; % height of caps fig_height#:=190/36pt#; % height of numerals x_height#:=150/36pt#; % height of lowercase without ascenders math_axis#:=80/36pt#; % axis of symmetry for math symbols bar_height#:=80/36pt#; % height of crossbar in lowercase e comma_depth#:=40/36pt#; % depth of comma below baseline desc_depth#:=40/36pt#; % depth of lowercase descenders crisp#:=18/36pt#; % diameter of serif corners tiny#:=18/36pt#; % diameter of rounded corners fine#:=8/36pt#; % diameter of sharply rounded corners thin_join#:=8/36pt#; % width of extrafine details hair#:=23/36pt#; % lowercase hairline breadth stem#:=23/36pt#; % lowercase stem breadth curve#:=23/36pt#; % lowercase curve breadth ess#:=23/36pt#; % breadth in middle of lowercase s flare#:=21/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=28/36pt#; % diameter of dots cap_hair#:=23/36pt#; % uppercase hairline breadth cap_stem#:=27/36pt#; % uppercase stem breadth cap_curve#:=27/36pt#; % uppercase curve breadth cap_ess#:=27/36pt#; % breadth in middle of uppercase s rule_thickness#:=20/36pt#; % thickness of lines in math symbols dish#:=0pt#; % amount erased at top or bottom of serifs bracket#:=0pt#; % vertical distance from serif base to tangent jut#:=0pt#; % protrusion of lowercase serifs cap_jut#:=0pt#; % protrusion of uppercase serifs beak_jut#:=0pt#; % horizontal protrusion of beak serifs beak#:=0pt#; % vertical protrusion of beak serifs vair#:=18/36pt#; % vertical diameter of hairlines notch_cut#:=23/36pt#; % maximum breadth above or below notches bar#:=18/36pt#; % lowercase bar thickness slab#:=19/36pt#; % serif and arm thickness cap_bar#:=19/36pt#; % uppercase bar thickness cap_band#:=19/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches serif_drop#:=0pt#; % vertical drop of sloped serifs stem_corr#:=.5/36pt#; % for small refinements of stem breadth vair_corr#:=.5/36pt#; % for small refinements of hairline height apex_corr#:=4/36pt#; % extra width at diagonal junctions o#:=6/36pt#; % amount of overshoot for curves apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$ fudge:=.95; % factor applied to weights of heavy characters math_spread:=0; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/10; % extra openness inside bowls beak_darkness:=0; % fraction of triangle inside beak serifs ligs:=2; % level of ligatures to be included square_dots:=true; % should dots be square? hefty:=true; % should we try hard not to be overweight? serifs:=false; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=true; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=false; % should math-mode spacing be used? extra_endchar := extra_endchar & "clearit"; generate sroman % switch to the SliTeX driver file. latex209-25.may.1992.orig/fonts/lasy10.mf100664 144 144 201 5161754600 16652 0ustar nakaharastaff% Use parameter settings from cmsy10 if unknown cmbase: input cmbase fi def generate suffix t= enddef; input cmsy10; input lasy; latex209-25.may.1992.orig/fonts/lasy5.mf100664 144 144 177 5161754600 16612 0ustar nakaharastaff% Use parameter settings from cmsy5 if unknown cmbase: input cmbase fi def generate suffix t= enddef; input cmsy5; input lasy; latex209-25.may.1992.orig/fonts/lasy9.mf100664 144 144 177 5161754600 16616 0ustar nakaharastaff% Use parameter settings from cmsy9 if unknown cmbase: input cmbase fi def generate suffix t= enddef; input cmsy9; input lasy; latex209-25.may.1992.orig/fonts/lasy6.mf100664 144 144 177 5161754600 16613 0ustar nakaharastaff% Use parameter settings from cmsy6 if unknown cmbase: input cmbase fi def generate suffix t= enddef; input cmsy6; input lasy; latex209-25.may.1992.orig/fonts/lasyb10.mf100664 144 144 203 5161754600 17016 0ustar nakaharastaff% Use parameter settings from cmbsy10 if unknown cmbase: input cmbase fi def generate suffix t= enddef; input cmbsy10; input lasy; latex209-25.may.1992.orig/fonts/lasy7.mf100664 144 144 177 5161754600 16614 0ustar nakaharastaff% Use parameter settings from cmsy7 if unknown cmbase: input cmbase fi def generate suffix t= enddef; input cmsy7; input lasy; latex209-25.may.1992.orig/fonts/lasy8.mf100664 144 144 177 5161754600 16615 0ustar nakaharastaff% Use parameter settings from cmsy8 if unknown cmbase: input cmbase fi def generate suffix t= enddef; input cmsy8; input lasy; latex209-25.may.1992.orig/fonts/icmcsc10.mf100664 144 144 12555 5161754600 17222 0ustar nakaharastaff% Computer Modern Roman Caps and Small Caps 10 point invisible % RmS 91/10/27 if unknown cmbase: input cmbase fi font_identifier:="ICMCSC"; font_size 10pt#; % first come parameters used to set the uppercase letters % (including some for lowercase that aren't actually used) u#:=21/36pt#; % unit width width_adj#:=0pt#; % width adjustment for certain characters serif_fit#:=0pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs letter_fit#:=5/36pt#; % extra space added to all sidebars body_height#:=270/36pt#; % height of tallest characters asc_height#:=250/36pt#; % height of lowercase ascenders cap_height#:=246/36pt#; % height of caps fig_height#:=232/36pt#; % height of numerals x_height#:=155/36pt#; % height of lowercase without ascenders math_axis#:=90/36pt#; % axis of symmetry for math symbols bar_height#:=87/36pt#; % height of crossbar in lowercase e comma_depth#:=70/36pt#; % depth of comma below baseline desc_depth#:=70/36pt#; % depth of lowercase descenders crisp#:=0pt#; % diameter of serif corners tiny#:=8/36pt#; % diameter of rounded corners fine#:=7/36pt#; % diameter of sharply rounded corners thin_join#:=7/36pt#; % width of extrafine details hair#:=9/36pt#; % lowercase hairline breadth stem#:=25/36pt#; % lowercase stem breadth curve#:=30/36pt#; % lowercase curve breadth ess#:=27/36pt#; % breadth in middle of lowercase s flare#:=33/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=38/36pt#; % diameter of dots cap_hair#:=11/36pt#; % uppercase hairline breadth cap_stem#:=32/36pt#; % uppercase stem breadth cap_curve#:=37/36pt#; % uppercase curve breadth cap_ess#:=35/36pt#; % breadth in middle of uppercase s rule_thickness#:=.4pt#; % thickness of lines in math symbols dish#:=1/36pt#; % amount erased at top or bottom of serifs bracket#:=20/36pt#; % vertical distance from serif base to tangent jut#:=28/36pt#; % protrusion of lowercase serifs cap_jut#:=37/36pt#; % protrusion of uppercase serifs beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs beak#:=70/36pt#; % vertical protrusion of beak serifs vair#:=8/36pt#; % vertical diameter of hairlines notch_cut#:=10pt#; % maximum breadth above or below notches bar#:=11/36pt#; % lowercase bar thickness slab#:=11/36pt#; % serif and arm thickness cap_bar#:=11/36pt#; % uppercase bar thickness cap_band#:=11/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches serif_drop#:=4/36pt#; % vertical drop of sloped serifs stem_corr#:=1/36pt#; % for small refinements of stem breadth vair_corr#:=1/36pt#; % for small refinements of hairline height apex_corr#:=0pt#; % extra width at diagonal junctions o#:=8/36pt#; % amount of overshoot for curves apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions slant:=0; % tilt ratio $(\Delta x/\Delta y)$ fudge:=1; % factor applied to weights of heavy characters math_spread:=0; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/6; % extra openness inside bowls beak_darkness:=11/30; % fraction of triangle inside beak serifs ligs:=1; % level of ligatures to be included square_dots:=false; % should dots be square? hefty:=false; % should we try hard not to be overweight? serifs:=true; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=false; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=false; % should math-mode spacing be used? % now come replacements used to set the lowercase caps lower.u#:=16/36pt#; % unit width lower.width_adj#:=0pt#; % width adjustment for certain characters lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars lower.body_height#:=200/36pt#; % height of tallest characters lower.cap_height#:=185/36pt#; % height of caps lower.x_height#:=116/36pt#; % height of lowercase without ascenders lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e lower.comma_depth#:=52/36pt#; % depth of comma below baseline lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth lower.stem#:=21/36pt#; % lowercase stem breadth lower.cap_stem#:=26/36pt#; % uppercase stem breadth lower.cap_curve#:=31/36pt#; % uppercase curve breadth lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs lower.beak#:=52/36pt#; % vertical protrusion of beak serifs lower.slab#:=9.1/36pt#; % serif and arm thickness lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches lower.o#:=5/36pt#; % amount of overshoot for curves lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions lower.fudge:=1; % factor applied to weights of heavy characters generate csc % switch to the driver file extra_endchar := extra_endchar & "clearit"; latex209-25.may.1992.orig/fonts/ilcmssb8.mf100664 144 144 7453 5161754600 17325 0ustar nakaharastaff% SliTeX Sans-Serif bold 8 point invisible, derived from % Computer Modern Sans Serif Quotation Style % by Pierre A. MacKay, 19 August, 1986 if unknown cmbase: input cmbase fi % RmS 91/10/27: corrected font identifier font_identifier:="ILCMSSB"; font_size 8pt#; u#:=22/36pt#; % unit width width_adj#:=3/36pt#; % width adjustment for certain characters serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=220/36pt#; % height of tallest characters asc_height#:=200/36pt#; % height of lowercase ascenders cap_height#:=197/36pt#; % height of caps fig_height#:=200/36pt#; % height of numerals x_height#:=155/36pt#; % height of lowercase without ascenders math_axis#:=80/36pt#; % axis of symmetry for math symbols bar_height#:=90/36pt#; % height of crossbar in lowercase e comma_depth#:=35/36pt#; % depth of comma below baseline desc_depth#:=40/36pt#; % depth of lowercase descenders crisp#:=18/36pt#; % diameter of serif corners tiny#:=18/36pt#; % diameter of rounded corners fine#:=8/36pt#; % diameter of sharply rounded corners thin_join#:=8/36pt#; % width of extrafine details hair#:=42/36pt#; % lowercase hairline breadth stem#:=42/36pt#; % lowercase stem breadth curve#:=42/36pt#; % lowercase curve breadth ess#:=40/36pt#; % breadth in middle of lowercase s flare#:=36/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=41/36pt#; % diameter of dots cap_hair#:=42/36pt#; % uppercase hairline breadth cap_stem#:=46/36pt#; % uppercase stem breadth cap_curve#:=46/36pt#; % uppercase curve breadth cap_ess#:=46/36pt#; % breadth in middle of uppercase s rule_thickness#:=26/36pt#; % thickness of lines in math symbols dish#:=0pt#; % amount erased at top or bottom of serifs bracket#:=0pt#; % vertical distance from serif base to tangent jut#:=0pt#; % protrusion of lowercase serifs cap_jut#:=0pt#; % protrusion of uppercase serifs beak_jut#:=0pt#; % horizontal protrusion of beak serifs beak#:=0pt#; % vertical protrusion of beak serifs vair#:=22/36pt#; % vertical diameter of hairlines notch_cut#:=48/36pt#; % maximum breadth above or below notches bar#:=22/36pt#; % lowercase bar thickness slab#:=24/36pt#; % serif and arm thickness cap_bar#:=23/36pt#; % uppercase bar thickness cap_band#:=30/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=42/36pt#; % max breadth above/below uppercase notches serif_drop#:=0pt#; % vertical drop of sloped serifs stem_corr#:=.5/36pt#; % for small refinements of stem breadth vair_corr#:=1/36pt#; % for small refinements of hairline height apex_corr#:=15/36pt#; % extra width at diagonal junctions o#:=6/36pt#; % amount of overshoot for curves apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions slant:=0; % tilt ratio $(\Delta x/\Delta y)$ fudge:=.85; % factor applied to weights of heavy characters math_spread:=0.5; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/9; % extra openness inside bowls beak_darkness:=0; % fraction of triangle inside beak serifs ligs:=2; % level of ligatures to be included square_dots:=true; % should dots be square? hefty:=true; % should we try hard not to be overweight? serifs:=false; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=true; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=false; % should math-mode spacing be used? extra_endchar := extra_endchar & "clearit"; generate sroman % switch to the driver file for SliTeX latex209-25.may.1992.orig/fonts/ilcmss8.mf100664 144 144 7444 5161754600 17163 0ustar nakaharastaff% SliTeX Sans Serif 8 point invisible, derived from % Computer Modern Sans Serif Quotation Style % by Pierre A. MacKay, 19 August, 1986 if unknown cmbase: input cmbase fi % RmS 91/10/27: corrected font identifier font_identifier:="ILCMSS"; font_size 8pt#; u#:=20/36pt#; % unit width width_adj#:=2/36pt#; % width adjustment for certain characters serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=220/36pt#; % height of tallest characters asc_height#:=200/36pt#; % height of lowercase ascenders cap_height#:=197/36pt#; % height of caps fig_height#:=190/36pt#; % height of numerals x_height#:=150/36pt#; % height of lowercase without ascenders math_axis#:=80/36pt#; % axis of symmetry for math symbols bar_height#:=80/36pt#; % height of crossbar in lowercase e comma_depth#:=40/36pt#; % depth of comma below baseline desc_depth#:=40/36pt#; % depth of lowercase descenders crisp#:=18/36pt#; % diameter of serif corners tiny#:=18/36pt#; % diameter of rounded corners fine#:=8/36pt#; % diameter of sharply rounded corners thin_join#:=8/36pt#; % width of extrafine details hair#:=23/36pt#; % lowercase hairline breadth stem#:=23/36pt#; % lowercase stem breadth curve#:=23/36pt#; % lowercase curve breadth ess#:=23/36pt#; % breadth in middle of lowercase s flare#:=21/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=28/36pt#; % diameter of dots cap_hair#:=23/36pt#; % uppercase hairline breadth cap_stem#:=27/36pt#; % uppercase stem breadth cap_curve#:=27/36pt#; % uppercase curve breadth cap_ess#:=27/36pt#; % breadth in middle of uppercase s rule_thickness#:=20/36pt#; % thickness of lines in math symbols dish#:=0pt#; % amount erased at top or bottom of serifs bracket#:=0pt#; % vertical distance from serif base to tangent jut#:=0pt#; % protrusion of lowercase serifs cap_jut#:=0pt#; % protrusion of uppercase serifs beak_jut#:=0pt#; % horizontal protrusion of beak serifs beak#:=0pt#; % vertical protrusion of beak serifs vair#:=18/36pt#; % vertical diameter of hairlines notch_cut#:=23/36pt#; % maximum breadth above or below notches bar#:=18/36pt#; % lowercase bar thickness slab#:=19/36pt#; % serif and arm thickness cap_bar#:=19/36pt#; % uppercase bar thickness cap_band#:=19/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches serif_drop#:=0pt#; % vertical drop of sloped serifs stem_corr#:=.5/36pt#; % for small refinements of stem breadth vair_corr#:=.5/36pt#; % for small refinements of hairline height apex_corr#:=4/36pt#; % extra width at diagonal junctions o#:=6/36pt#; % amount of overshoot for curves apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions slant:=0; % tilt ratio $(\Delta x/\Delta y)$ fudge:=.95; % factor applied to weights of heavy characters math_spread:=0; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/10; % extra openness inside bowls beak_darkness:=0; % fraction of triangle inside beak serifs ligs:=2; % level of ligatures to be included square_dots:=true; % should dots be square? hefty:=true; % should we try hard not to be overweight? serifs:=false; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=true; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=false; % should math-mode spacing be used? extra_endchar := extra_endchar & "clearit"; generate sroman % switch to the driver file for SliTeX latex209-25.may.1992.orig/fonts/ilasy8.mf100664 144 144 466 5161754600 16767 0ustar nakaharastaff% lasy8 invisible for SLITeX % Use parameter settings from cmsy8 if unknown cmbase: input cmbase fi def generate suffix t= enddef; input icmsy8; %% RmS 91/11/14: a bit of hacking... %% to get the correct font identifier let _bye=bye; def bye = font_identifier:="ILASY"; _bye enddef; input lasy; latex209-25.may.1992.orig/fonts/lasy.mf100664 144 144 33742 5161754600 16571 0ustar nakaharastafffont_identifier:="LASY"; font_coding_scheme:="LaTeX symbols"; % Here we steal a bit from mathsy mode_setup; font_setup; autorounding:=0; font_slant slant; font_x_height x_height#; font_quad 18u# if not monospace:+4letter_fit# fi; slant:=mono_charic#:=0; % the remaining characters will not be slanted currenttransform:=identity yscaled aspect_ratio scaled granularity; cmchar "Leftward arrowhead"; compute_spread(.45x_height#,.55x_height#); beginchar(oct"050",6u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup crisp.nib; pos3(bar,0); pos4(bar,0); y0=math_axis; lft x0=hround u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t[]; path p[]; (t1,t2)=(z4r{z9-z4}..z6r) intersectiontimes (z3r{z9-z3}..z5r); z10=(z4r{z9-z4}..z6r) intersectionpoint (z3r{z9-z3}..z5r); filldraw z0..{z4-z9}z4l--subpath (0,t1) of (z4r{z9-z4}..z6r) --z10--subpath (t2,0) of (z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead penlabels(0,3,4,5,6,9,10); endchar; % This character is an alteration of the leftward arrow % The tip of the arrowhead rests one unit from left edge, same as left arrow % Changes: % 1) deletion of the stem ... points z1,z2 etc % The rest of the numbers stay the same, for any referencing % 2) new intersectinpoint z10 is introduced and path slightly altered % 3) name, code number and width changed, otherwise essentially the same cmchar "Rightward arrowhead"; compute_spread(.45x_height#,.55x_height#); beginchar(oct"051",6u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup crisp.nib; pos3(bar,0); pos4(bar,0); y0=math_axis; rt x0=hround(w-u); y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t[]; path p[]; (t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r); z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r); filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r) --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead penlabels(0,3,4,5,6,9,10); endchar; % This character is an alteration of the rightward arrow % The tip of the arrowhead rests one unit from right edge, same as right arrow % Changes: % 1) deletion of the stem ... points z1,z2 etc % The rest of the numbers stay the same, for any referencing % 2) new intersectinpoint z10 is introduced and path slightly altered % 3) name, code number and width changed, otherwise essentially the same cmchar "Upward arrowhead"; beginchar(oct"052",9u#,asc_height#,asc_depth#); italcorr .76asc_height#*slant+.5crisp#-u#; adjust_fit(0,0); pickup crisp.nib; pos3(bar,90); pos4(bar,90); top z0=(.5w,0); x0-x3=x4-x0=3u+eps; y3=y4=y0-.24asc_height-eps; pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t[]; path p[]; (t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r); z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r); filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r) --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead penlabels(0,3,4,5,6,9,10); endchar; % This character is an alteration of the upward arrow % The tip of the arrowhead rests on the baseline for reference % Changes: % 1) deletion of the stem ... points z1,z2 etc % The rest of the numbers stay the same, for any referencing % 2) point z0 is moved down from the ascender line; the tip touches % the baseline % 3) new intersectinpoint z10 is introduced and path slightly altered % 4) name and code number changed, otherwise essentially the same cmchar "Downward arrowhead"; beginchar(oct"053",9u#,asc_height#,asc_depth#); adjust_fit(0,0); pickup crisp.nib; pos3(bar,90); pos4(bar,90); bot z0=(.5w,0); x0-x3=x4-x0=3u+eps; y3=y4=y0+.24asc_height+eps; pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; % z9 iintroduces curve to arrowhead numeric t[]; path p[]; % rather direction{z9-z4} does this (t1,t2)=(z4r{z9-z4}..z6r) intersectiontimes (z3r{z9-z3}..z5r); z10=(z4r{z9-z4}..z6r) intersectionpoint (z3r{z9-z3}..z5r); filldraw z0..{z4-z9}z4l--subpath (0,t1) of (z4r{z9-z4}..z6r) --z10--subpath (t2,0) of (z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead penlabels(0,3,4,5,6,9,10); endchar; % This character is an alteration of the downward arrow % The tip of the arrowhead rests on the baseline for reference % Changes: % 1) deletion of the stem ... points z1,z2 etc % The rest of the numbers stay the same, for any referencing % 2) point z0 is moved up from the descender line to rest on the baseline % 3) new intersectinpoint z10 is introduced and path slightly altered % 4) name and code number changed, otherwise essentially the same cmchar "Square subset sign"; compute_spread(5/4x_height#,3/2x_height#); % the spread of `$=$' beginchar(oct"074",14u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u+oo); x1=x4=hround(w-1.5u)+eps; x3=x2; y1-y4=spread; y2=y1; y3=y4; y1=math_axis+.5spread; draw z1--z2--z3--z4; % bars and stem labels(1,2,3,4); endchar; % This character is an alteration of the square subset or equal to sign % Changes: % 1) changed position of y1 to be .5 of the spread above the math_axis % 2) got rid of lower bar (points z8/z9,etc) and the extra spread#' amount % which was used in calculations for the lower bar % 3) name and code number and height changed, otherwise essentially the same cmchar "Square superset sign"; compute_spread(5/4x_height#,3/2x_height#); % the spread of `$=$' beginchar(oct"075",14u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup rule.nib; x1=x4=hround 1.5u-eps; rt x2=hround(w-1.5u-oo); x3=x2; y1-y4=spread; y2=y1; y3=y4; y1=math_axis+.5spread; draw z1--z2--z3--z4; % bars and stem labels(1,2,3,4); endchar; % This character is an alteration of the square superset or equal to sign % Changes: % 1) changed position of y1 to be .5 of the spread above the math_axis % 2) got rid of lower bar (points z8/z9,etc) and the extra spread#' amount % which was used in calculations for the lower bar % 3) name and code number and height changed, otherwise essentially the same cmchar "Diamond"; beginchar(oct"063",2(.85asc_height#-math_axis#)+2u#,v_center(7u#)); italcorr math_axis#*slant; adjust_fit(0,0); pickup rule.nib; numeric a; a=.85asc_height-math_axis; x4=x8=good.x .5w; w:=r:=2x4; rt x2=w-lft x6=good.x(x4+a); y2=y6=.5[y4,y8]=.5cap_height; top y8=good.y(y2+a); draw z2--z4--z6--z8--cycle; labels(2,4,6,8); endchar; % This character is an alteration of the diamond operator % The four tips are equidistant from the center point (.5w,math_axis), % this distance being half of the cap height % and related to that in the square character % slightly less though, since it looks too big if the actually have same % length % Changes: % 1) To the amount a, which gives the distance of the tips from the center % 2) The width is related to the asc_height, so it changes with it % 3) name and code number and width changed, otherwise essentially the same % The numbers stay the same, for any referencing cmchar "Square"; beginchar(oct"062",2.1math_axis#+4u#,v_center(7u#)); italcorr math_axis#*slant; adjust_fit(0,0); pickup rule.nib; numeric a; a=round(2.1math_axis); x1=x4=good.x 2u; x2=x3=x1+a; y3=y4=.5(cap_height-a); y1=y2=y3+a; draw z1--z2--z3--z4--cycle; labels(1,2,3,4); endchar; % The size of this character is related to the diamond character, it's % sightly larger. % It is NOT the diamond character which has been rotated % Vertical alignment raised to .5 cap height from math-axis height % 2 units of sidebearing space on each side, since vertical lines usually % need a little more space, actually it's 2 units-.5rule.nib cmchar "Bowtie operator"; beginchar(oct"061",13u#,v_center(7u#)); italcorr math_axis#*slant; adjust_fit(0,0); pickup rule.nib; numeric a; a=round(1.1*math_axis); x1=x4=good.x 1.5u; x2=x3=w-x1; y1=y2=good.y(.5(cap_height-2a)); y3=y4=y1+2a; draw z1--z3--z2--z4--cycle; labels(1,2,3,4); endchar; % Arbitrary width given % Length of the bars at the edges are 2.2*math_axis length % and it's vertically aligned on the high, i.e., .5 cap height as opposed % to being aligned on the math axis cmchar "Upside-down Uppercase Greek Omega"; beginchar(oct"060",13u#,cap_height#,0); italcorr cap_height#*slant-.35u#; %italcorr .75cap_height#*slant-.5u#; adjust_fit(0,0); pickup tiny.nib; pos1(vair,-90); pos2(cap_curve,0); pos3(vair,0); pos4(cap_curve,180); pos5(vair,180); x1=.5w; bot y1r=0-o; lft x4r=hround u; y2=y4=1/3h; x2=w-x4; rt x5l=hround(1/3(w+.5u)+.5hair); top y3=top y5=h; x3=w-x5; filldraw stroke z3e{down}...{down}z2e & pulled_super_arc.e(2,1)(.5superpull) & pulled_super_arc.e(1,4)(.5superpull) & z4e{up}...{up}z5e; % bowl numeric arm_thickness; path p; p=z3{down}...{down}z2; arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi); pickup crisp.nib; pos6(arm_thickness,90); pos7(fudged.hair,0); top y6r=h; x6=x3; rt x7r=hround (w-.8u); y7=good.y(y6l-.5beak)+eps; (x,y)=p intersectionpoint((0,y6l)--(w+h,y6l)); x6l:=x; arm(6,7,a,.5beak_darkness,1.2beak_jut); % right arm and beak pos8(arm_thickness,90); pos9(fudged.hair,180); y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l; arm(8,9,b,.5beak_darkness,-1.2beak_jut); % left arm and beak math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar; % This character is taken from the Upper Case Omega of cmr % Directions and reference points are reversed and flipped % pos angles are flipped by 180 degrees % vertical values are reversed, up/down directions in the % filldraw stroke are reversed % left strokes same, but changes reference points % italic correction based on furthest pont of character , so made it % full cap_height minus amount for the beak, taken from the cap XI % I suppose a transformation of paths would have worked also, but this % way, limits are maintained better, i think % w+h instead of just w in intersection to make sure paths do intersect cmchar "Leads to character extension"; compute_spread(.45x_height#,.55x_height#); beginchar(oct"072",12u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup rule.nib; numeric a; a=round(.45math_axis); y11=y13=y15=math_axis; y12-a=y14+a=good.y math_axis; x11=0; x15=w; x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15]; path p; p=z12{right}...z13...z14{right}; draw z11{dir(-angle direction 1 of p)}...z12{right}...z13... z14{right}...z15{dir(-angle direction 1 of p)}; penlabels(11,12,13,14,15); endchar; % This character is an extension to fit with the Leads to character with % arrowhead % This character goes from edge to edge and a series of these can be linked % as desired. % It has 2/3 the width of that character, and if this relation is kept, the % the curves should all match cmchar "Leads to character with arrowhead"; compute_spread(.45x_height#,.55x_height#); beginchar(oct"073",18u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup crisp.nib; pos3(bar,0); pos4(bar,0); y0=math_axis; rt x0=hround(w-u); y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t[]; path p[]; (t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r); z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r); filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r) --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead pickup rule.nib; numeric a; a=round(.45math_axis); y11=y13=y15=y16=y0; y12-a=y14+a=good.y math_axis; x11=0; x15=2/3w; z17=lft z10; x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15]; x16=.3[x15,x0]; path p; p=z12{right}...z13...z14{right}; draw z11{dir(-angle direction 1 of p)}... z12{right}...z13...z14{right}...z16{right}...z17; penlabels(0,3,4,5,6,9,10,11,12,13,14,15,16); endchar; % This character uses the rightward arrow arrowhead % The width is the same as that of the regular arrow % An extension character can be added for longer squiggles cmchar "LASY \lhd triangle"; compute_spread(5/4x_height#,3/2x_height#); beginchar(oct"001",14u#,v_center(spread#+rule_thickness#)); italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]=math_axis; draw z1--z2--z3--cycle; % triangle labels(1,2,3); endchar; % taken directly from CMR "less than" character % the path was closed to make a triangle cmchar "LASY \unlhd triangle"; compute_spread(.45x_height#,.55x_height#); spread#':=spread#; spread':=spread; % the spread of `$=$' compute_spread(5/4x_height#,3/2x_height#); beginchar(oct"002",14u#,v_center(spread#'+spread#+rule_thickness#)); italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h; draw z1--z2--z3--cycle; % triangle x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar labels(1,2,3,8,9); endchar; % taken directly from CMR "less than or equal to sign" % the "less than" path was closed to make a triangle cmchar "LASY \rhd triangle"; compute_spread(5/4x_height#,3/2x_height#); beginchar(oct"003",14u#,v_center(spread#+rule_thickness#)); italcorr math_axis#*slant-u#; adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]=math_axis; draw z1--z2--z3--cycle; % triangle labels(1,2,3); endchar; % taken directly from CMR "greater than" character % the path was closed to make a triangle cmchar "LASY \unrhd triangle"; compute_spread(.45x_height#,.55x_height#); spread#':=spread#; spread':=spread; % the spread of `$=$' compute_spread(5/4x_height#,3/2x_height#); beginchar(oct"004",14u#,v_center(spread#'+spread#+rule_thickness#)); italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft x1=hround 1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top y1=h; draw z1--z2--z3--cycle; % triangle x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar labels(1,2,3,8,9); endchar; % taken directly from CMR "greater than or equal to sign" % the "greater than" path was closed to make a triangle bye. latex209-25.may.1992.orig/fonts/icmtt8.mf100664 144 144 7305 5161754600 17005 0ustar nakaharastaff% Computer Modern Typewriter Text for use with 8 point (invisible) if unknown cmbase: input cmbase fi % RmS 91/10/27: corrected font identifier font_identifier:="ICMTT"; font_size 8pt#; u#:=17/36pt#; % unit width width_adj#:=0pt#; % width adjustment for certain characters serif_fit#:=0pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=200/36pt#; % height of tallest characters asc_height#:=176/36pt#; % height of lowercase ascenders cap_height#:=176/36pt#; % height of caps fig_height#:=176/36pt#; % height of numerals x_height#:=124/36pt#; % height of lowercase without ascenders math_axis#:=88/36pt#; % axis of symmetry for math symbols bar_height#:=63/36pt#; % height of crossbar in lowercase e comma_depth#:=40/36pt#; % depth of comma below baseline desc_depth#:=64/36pt#; % depth of lowercase descenders crisp#:=19/36pt#; % diameter of serif corners tiny#:=19/36pt#; % diameter of rounded corners fine#:=18/36pt#; % diameter of sharply rounded corners thin_join#:=18/36pt#; % width of extrafine details hair#:=22/36pt#; % lowercase hairline breadth stem#:=22/36pt#; % lowercase stem breadth curve#:=22/36pt#; % lowercase curve breadth ess#:=19/36pt#; % breadth in middle of lowercase s flare#:=28/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=31/36pt#; % diameter of dots cap_hair#:=22/36pt#; % uppercase hairline breadth cap_stem#:=22/36pt#; % uppercase stem breadth cap_curve#:=22/36pt#; % uppercase curve breadth cap_ess#:=22/36pt#; % breadth in middle of uppercase s rule_thickness#:=22/36pt#; % thickness of lines in math symbols dish#:=0pt#; % amount erased at top or bottom of serifs bracket#:=0pt#; % vertical distance from serif base to tangent jut#:=27/36pt#; % protrusion of lowercase serifs cap_jut#:=27/36pt#; % protrusion of uppercase serifs beak_jut#:=0pt#; % horizontal protrusion of beak serifs beak#:=27/36pt#; % vertical protrusion of beak serifs vair#:=19/36pt#; % vertical diameter of hairlines notch_cut#:=22/36pt#; % maximum breadth above or below notches bar#:=19/36pt#; % lowercase bar thickness slab#:=19/36pt#; % serif and arm thickness cap_bar#:=19/36pt#; % uppercase bar thickness cap_band#:=19/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches serif_drop#:=0pt#; % vertical drop of sloped serifs stem_corr#:=0pt#; % for small refinements of stem breadth vair_corr#:=0pt#; % for small refinements of hairline height apex_corr#:=8/36pt#; % extra width at diagonal junctions o#:=3/36pt#; % amount of overshoot for curves apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions slant:=0; % tilt ratio $(\Delta x/\Delta y)$ fudge:=0.81; % factor applied to weights of heavy characters math_spread:=-1; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=0; % extra openness inside bowls beak_darkness:=0; % fraction of triangle inside beak serifs ligs:=0; % level of ligatures to be included square_dots:=false; % should dots be square? hefty:=true; % should we try hard not to be overweight? serifs:=true; % should serifs and bulbs be attached? monospace:=true; % should all characters have the same width? variant_g:=false; % should an italic-style g be used? low_asterisk:=true; % should the asterisk be centered at the axis? math_fitting:=false; % should math-mode spacing be used? extra_endchar := extra_endchar & "clearit"; generate roman % switch to the driver file latex209-25.may.1992.orig/fonts/icmmi8.mf100664 144 144 7320 5161754600 16760 0ustar nakaharastaff% Computer Modern Math Italic 8 point invisible if unknown cmbase: input cmbase fi % RmS 91/10/27: corrected font identifier font_identifier:="ICMMI"; font_size 8pt#; u#:=17/36pt#; % unit width width_adj#:=0pt#; % width adjustment for certain characters serif_fit#:=0pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=216/36pt#; % height of tallest characters asc_height#:=200/36pt#; % height of lowercase ascenders cap_height#:=196.8/36pt#; % height of caps fig_height#:=185.6/36pt#; % height of numerals x_height#:=124/36pt#; % height of lowercase without ascenders math_axis#:=72/36pt#; % axis of symmetry for math symbols bar_height#:=69.6/36pt#; % height of crossbar in lowercase e comma_depth#:=56/36pt#; % depth of comma below baseline desc_depth#:=56/36pt#; % depth of lowercase descenders crisp#:=8/36pt#; % diameter of serif corners tiny#:=8/36pt#; % diameter of rounded corners fine#:=7/36pt#; % diameter of sharply rounded corners thin_join#:=7/36pt#; % width of extrafine details hair#:=9/36pt#; % lowercase hairline breadth stem#:=21.5/36pt#; % lowercase stem breadth curve#:=25/36pt#; % lowercase curve breadth ess#:=23/36pt#; % breadth in middle of lowercase s flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=32/36pt#; % diameter of dots cap_hair#:=9.5/36pt#; % uppercase hairline breadth cap_stem#:=25.5/36pt#; % uppercase stem breadth cap_curve#:=29/36pt#; % uppercase curve breadth cap_ess#:=26/36pt#; % breadth in middle of uppercase s rule_thickness#:=.36pt#; % thickness of lines in math symbols dish#:=1/36pt#; % amount erased at top or bottom of serifs bracket#:=16/36pt#; % vertical distance from serif base to tangent jut#:=24/36pt#; % protrusion of lowercase serifs cap_jut#:=29/36pt#; % protrusion of uppercase serifs beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs beak#:=56/36pt#; % vertical protrusion of beak serifs vair#:=8/36pt#; % vertical diameter of hairlines notch_cut#:=8pt#; % maximum breadth above or below notches bar#:=9.5/36pt#; % lowercase bar thickness slab#:=9.5/36pt#; % serif and arm thickness cap_bar#:=9.5/36pt#; % uppercase bar thickness cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs stem_corr#:=1/36pt#; % for small refinements of stem breadth vair_corr#:=1/36pt#; % for small refinements of hairline height apex_corr#:=0pt#; % extra width at diagonal junctions o#:=6/36pt#; % amount of overshoot for curves apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ fudge:=1; % factor applied to weights of heavy characters math_spread:=.4; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/6; % extra openness inside bowls beak_darkness:=11/30; % fraction of triangle inside beak serifs ligs:=2; % level of ligatures to be included square_dots:=false; % should dots be square? hefty:=false; % should we try hard not to be overweight? serifs:=true; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=true; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=true; % should math-mode spacing be used? extra_endchar := extra_endchar & "clearit"; generate mathit % switch to the driver file latex209-25.may.1992.orig/fonts/icmsy8.mf100664 144 144 11160 5161754600 17023 0ustar nakaharastaff% Computer Modern Math Symbols 8 point invisible if unknown cmbase: input cmbase fi % RmS 91/10/27: corrected font identifier font_identifier:="ICMSY"; font_size 8pt#; u#:=17/36pt#; % unit width width_adj#:=0pt#; % width adjustment for certain characters serif_fit#:=0pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=216/36pt#; % height of tallest characters asc_height#:=200/36pt#; % height of lowercase ascenders cap_height#:=196.8/36pt#; % height of caps fig_height#:=185.6/36pt#; % height of numerals x_height#:=124/36pt#; % height of lowercase without ascenders math_axis#:=72/36pt#; % axis of symmetry for math symbols bar_height#:=69.6/36pt#; % height of crossbar in lowercase e comma_depth#:=56/36pt#; % depth of comma below baseline desc_depth#:=56/36pt#; % depth of lowercase descenders crisp#:=8/36pt#; % diameter of serif corners tiny#:=8/36pt#; % diameter of rounded corners fine#:=7/36pt#; % diameter of sharply rounded corners thin_join#:=7/36pt#; % width of extrafine details hair#:=9/36pt#; % lowercase hairline breadth stem#:=21.5/36pt#; % lowercase stem breadth curve#:=25/36pt#; % lowercase curve breadth ess#:=23/36pt#; % breadth in middle of lowercase s flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=32/36pt#; % diameter of dots cap_hair#:=9.5/36pt#; % uppercase hairline breadth cap_stem#:=25.5/36pt#; % uppercase stem breadth cap_curve#:=29/36pt#; % uppercase curve breadth cap_ess#:=26/36pt#; % breadth in middle of uppercase s rule_thickness#:=.36pt#; % thickness of lines in math symbols dish#:=1/36pt#; % amount erased at top or bottom of serifs bracket#:=16/36pt#; % vertical distance from serif base to tangent jut#:=24/36pt#; % protrusion of lowercase serifs cap_jut#:=29/36pt#; % protrusion of uppercase serifs beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs beak#:=56/36pt#; % vertical protrusion of beak serifs vair#:=8/36pt#; % vertical diameter of hairlines notch_cut#:=8pt#; % maximum breadth above or below notches bar#:=9.5/36pt#; % lowercase bar thickness slab#:=9.5/36pt#; % serif and arm thickness cap_bar#:=9.5/36pt#; % uppercase bar thickness cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs stem_corr#:=1/36pt#; % for small refinements of stem breadth vair_corr#:=1/36pt#; % for small refinements of hairline height apex_corr#:=0pt#; % extra width at diagonal junctions o#:=6/36pt#; % amount of overshoot for curves apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ fudge:=1; % factor applied to weights of heavy characters math_spread:=.4; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/6; % extra openness inside bowls beak_darkness:=11/30; % fraction of triangle inside beak serifs ligs:=2; % level of ligatures to be included square_dots:=false; % should dots be square? hefty:=false; % should we try hard not to be overweight? serifs:=true; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=true; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=true; % should math-mode spacing be used? % the following font parameters are explained in {\sl The \TeX book}, Appendix G subs:=6/8; % subscripts to 8pt will normally be in 6pt type rth#:=.4pt#; % assume that rules will come from cmex10 fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1 math_axis#+1.51rth#+24/36pt#, % num2 math_axis#+1.51rth#+38/36pt#, % num3 -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1 -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2 7.49pt#-subs*asc_height#, % sup1 6.99pt#-subs*asc_height#, % sup2 82/36pt#, % sup3 36/36pt#, % sub1 72/36pt#, % sub2 subs*asc_height#-36/36pt#, % sup\_drop 18/36pt#, % sub\_drop 11.9pt#, % delim1 9.1pt#, % delim2 math_axis#; % axis\_height extra_endchar := extra_endchar & "clearit"; generate mathsy % switch to the driver file latex209-25.may.1992.orig/fonts/icmex10.mf100664 144 144 10077 5161754600 17063 0ustar nakaharastaff% Computer Modern Math Extension 10 point invisible if unknown cmbase: input cmbase fi % RmS 91/10/27: corrected font identifier font_identifier:="ICMEX"; font_size 10pt#; u#:=20/36pt#; % unit width width_adj#:=0pt#; % width adjustment for certain characters serif_fit#:=0pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=270/36pt#; % height of tallest characters asc_height#:=250/36pt#; % height of lowercase ascenders cap_height#:=246/36pt#; % height of caps fig_height#:=232/36pt#; % height of numerals x_height#:=155/36pt#; % height of lowercase without ascenders math_axis#:=90/36pt#; % axis of symmetry for math symbols bar_height#:=87/36pt#; % height of crossbar in lowercase e comma_depth#:=70/36pt#; % depth of comma below baseline desc_depth#:=70/36pt#; % depth of lowercase descenders crisp#:=0pt#; % diameter of serif corners tiny#:=8/36pt#; % diameter of rounded corners fine#:=7/36pt#; % diameter of sharply rounded corners thin_join#:=7/36pt#; % width of extrafine details hair#:=9/36pt#; % lowercase hairline breadth stem#:=25/36pt#; % lowercase stem breadth curve#:=30/36pt#; % lowercase curve breadth ess#:=27/36pt#; % breadth in middle of lowercase s flare#:=33/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=38/36pt#; % diameter of dots cap_hair#:=11/36pt#; % uppercase hairline breadth cap_stem#:=32/36pt#; % uppercase stem breadth cap_curve#:=37/36pt#; % uppercase curve breadth cap_ess#:=35/36pt#; % breadth in middle of uppercase s rule_thickness#:=.4pt#; % thickness of lines in math symbols dish#:=1/36pt#; % amount erased at top or bottom of serifs bracket#:=20/36pt#; % vertical distance from serif base to tangent jut#:=28/36pt#; % protrusion of lowercase serifs cap_jut#:=37/36pt#; % protrusion of uppercase serifs beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs beak#:=70/36pt#; % vertical protrusion of beak serifs vair#:=8/36pt#; % vertical diameter of hairlines notch_cut#:=10pt#; % maximum breadth above or below notches bar#:=11/36pt#; % lowercase bar thickness slab#:=11/36pt#; % serif and arm thickness cap_bar#:=11/36pt#; % uppercase bar thickness cap_band#:=11/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches serif_drop#:=4/36pt#; % vertical drop of sloped serifs stem_corr#:=1/36pt#; % for small refinements of stem breadth vair_corr#:=1/36pt#; % for small refinements of hairline height apex_corr#:=0pt#; % extra width at diagonal junctions o#:=8/36pt#; % amount of overshoot for curves apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions slant:=0; % tilt ratio $(\Delta x/\Delta y)$ fudge:=1; % factor applied to weights of heavy characters math_spread:=0; % extra openness of math symbols superness:=1/sqrt2; % parameter for superellipses superpull:=1/6; % extra openness inside bowls beak_darkness:=11/30; % fraction of triangle inside beak serifs ligs:=2; % level of ligatures to be included square_dots:=false; % should dots be square? hefty:=false; % should we try hard not to be overweight? serifs:=true; % should serifs and bulbs be attached? monospace:=false; % should all characters have the same width? variant_g:=false; % should an italic-style g be used? low_asterisk:=false; % should the asterisk be centered at the axis? math_fitting:=false; % should math-mode spacing be used? % the following font parameters are explained in {\sl The \TeX book}, Appendix G fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed rule_thickness#, % default\_rule\_thickness 40/36pt#, % big\_op\_spacing1 60/36pt#, % big\_op\_spacing2 72/36pt#, % big\_op\_spacing3 216/36pt#, % big\_op\_spacing4 36/36pt#; % big\_op\_spacing5 extra_endchar := extra_endchar & "clearit"; generate mathex % switch to the driver file latex209-25.may.1992.orig/fonts/circle.mf100664 144 144 22731 5161754600 17056 0ustar nakaharastafffontdimen 1: 0,0,0,0,0,0,0,thickness#; font_coding_scheme:="LaTeX circle"; let cmchar=\; % cmchar should precede each character, for testing purposes thickness:=ceiling(thickness#*hppp); % the way rules thicknesses are done % thickness#:=thickness/hppp; % and let thickness# round to right value % NO, I deleted this BAD line! --- DEK, 9 Jul 87 pickup pencircle scaled thickness; nib:=savepen; % arcs sets up the points 1, 2, ..., 8 as follows: % % |1 % |* % * * % 8| 2 % * | * % 7* | *3 % --*-----*-- % 6| 4 % * * % |5 % % <----w----> pair upleft,upright,downleft,downright; upright=-downleft=(1,1); downright=-upleft=(1,-1); % a quarter-circle has width, height and depth set as explained on % page 389 of the TeXbook, not the real width, height, and depth def qbeginchar (expr c, diam_sharp) = numeric hh, dd; hh:=.5*(diam_sharp+thickness#); dd:=.5*(diam_sharp-thickness#); beginchar(c,diam_sharp,hh,dd); enddef; def arcs = numeric delta; delta:=.5 round((1-sqrt.5)*w); % distance from axis to arc's 45 degree points bot y3=0; y7=y3=.5[y5,y1]; y1-y5=w; lft x1=0; x5=x1=.5[x7,x3]; x3-x7=w; x2-x1=delta; x1-x8=delta; x8=x6; x2=x4; y8-y7=delta; y7-y6=delta; y8=y2; y6=y4; enddef; cmchar "2pt, top right"; qbeginchar(0,4pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "2pt, bottom right"; qbeginchar(1,4pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "2pt, bottom left"; qbeginchar(2,4pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "2pt, top left"; qbeginchar(3,4pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; cmchar "4pt, top right"; qbeginchar(4,8pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "4pt, bottom right"; qbeginchar(5,8pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "4pt, bottom left"; qbeginchar(6,8pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "4pt, top left"; qbeginchar(7,8pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; cmchar "6pt, top right"; qbeginchar(8,12pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "6pt, bottom right"; qbeginchar(9,12pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "6pt, bottom left"; qbeginchar(10,12pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "6pt, top left"; qbeginchar(11,12pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; cmchar "8pt, top right"; qbeginchar(12,16pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "8pt, bottom right"; qbeginchar(13,16pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "8pt, bottom left"; qbeginchar(14,16pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "8pt, top left"; qbeginchar(15,16pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; cmchar "10pt, top right"; qbeginchar(16,20pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "10pt, bottom right"; qbeginchar(17,20pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "10pt, bottom left"; qbeginchar(18,20pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "10pt, top left"; qbeginchar(19,20pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; cmchar "12pt, top right"; qbeginchar(20,24pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "12pt, bottom right"; qbeginchar(21,24pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "12pt, bottom left"; qbeginchar(22,24pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "12pt, top left"; qbeginchar(23,24pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; cmchar "14pt, top right"; qbeginchar(24,28pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "14pt, bottom right"; qbeginchar(25,28pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "14pt, bottom left"; qbeginchar(26,28pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "14pt, top left"; qbeginchar(27,28pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; cmchar "16pt, top right"; qbeginchar(28,32pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "16pt, bottom right"; qbeginchar(29,32pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "16pt, bottom left"; qbeginchar(30,32pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "16pt, top left"; qbeginchar(31,32pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; cmchar "18pt, top right"; qbeginchar(32,36pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "18pt, bottom right"; qbeginchar(33,36pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "18pt, bottom left"; qbeginchar(34,36pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "18pt, top left"; qbeginchar(35,36pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; cmchar "20pt, top right"; qbeginchar(36,40pt#); numeric delta; pickup nib; arcs; draw z7{right}..z6{downright}..z5{down}; endchar; cmchar "20pt, bottom right"; qbeginchar(37,40pt#); numeric delta; pickup nib; arcs; draw z1{down}..z8{downleft}..z7{left}; endchar; cmchar "20pt, bottom left"; qbeginchar(38,40pt#); numeric delta; pickup nib; arcs; draw z3{left}..z2{upleft}..z1{up}; endchar; cmchar "20pt, top left"; qbeginchar(39,40pt#); numeric delta; pickup nib; arcs; draw z5{up}..z4{upright}..z3{right}; endchar; % The full circles have height and depth 0pt because otherwise there % are too many heights and depths for the TFM files cmchar "1pt, circle"; beginchar(96,1pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "2pt, circle"; beginchar(97,2pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "3pt, circle"; beginchar(98,3pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "4pt, circle"; beginchar(99,4pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "5pt, circle"; beginchar(100,5pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "6pt, circle"; beginchar(101,6pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "7pt, circle"; beginchar(102,7pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "8pt, circle"; beginchar(103,8pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "9pt, circle"; beginchar(104,9pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "10pt, circle"; beginchar(105,10pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "11pt, circle"; beginchar(106,11pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "12pt, circle"; beginchar(107,12pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "13pt, circle"; beginchar(108,13pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "14pt, circle"; beginchar(109,14pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "15pt, circle"; beginchar(110,15pt#,0pt#,0pt#); pickup nib; draw fullcircle scaled w; endchar; cmchar "1pt, blob"; beginchar(112,1pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "2pt, blob"; beginchar(113,2pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "3pt, blob"; beginchar(114,3pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "4pt, blob"; beginchar(115,4pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "5pt, blob"; beginchar(116,5pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "6pt, blob"; beginchar(117,6pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "7pt, blob"; beginchar(118,7pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "8pt, blob"; beginchar(119,8pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "9pt, blob"; beginchar(120,9pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "10pt, blob"; beginchar(121,10pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "11pt, blob"; beginchar(122,11pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "12pt, blob"; beginchar(123,12pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "13pt, blob"; beginchar(124,13pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "14pt, blob"; beginchar(125,14pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; cmchar "15pt, blob"; beginchar(126,15pt#,0pt#,0pt#); pickup pencircle scaled w; drawdot origin; endchar; bye latex209-25.may.1992.orig/sty/ 40775 144 144 0 6271446675 14652 5ustar nakaharastafflatex209-25.may.1992.orig/sty/twocolum.sty100664 144 144 530 5161754600 17322 0ustar nakaharastaff% TWOCOLUMN DOCUMENT-STYLE OPTION - released 27 January 1985 % for LaTeX version 2.09 % Copyright (C) 1985 by Leslie Lamport \twocolumn \sloppy \flushbottom \parindent 1em \leftmargini 2em \leftmarginv .5em \leftmarginvi .5em \oddsidemargin 30pt \evensidemargin 30pt \marginparwidth 48pt \marginparsep 10pt \textwidth 410pt \endinput latex209-25.may.1992.orig/sty/letter.sty100664 144 144 30616 5166176400 17021 0ustar nakaharastaff% LETTER STANDARD DOCUMENT STYLE -- Released 25 March 92 % for LaTeX version 2.09 % Copyright (C) 1991 by Leslie Lamport \typeout{Standard Document Style `letter' <25 Mar 92>.} \def\ccname{cc} \def\enclname{encl} \def\pagename{Page} \def\headtoname{To} \def\@ptsize{0} \@namedef{ds@11pt}{\def\@ptsize{1}} \@namedef{ds@12pt}{\def\@ptsize{2}} \@twosidefalse \def\ds@draft{\overfullrule 5\p@} \@options \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \ifcase \@ptsize\relax \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip 8.5\p@ plus3\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus2\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt \abovedisplayskip 6\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 3\p@ plus\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \or \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt \abovedisplayskip 8\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \or \def\@normalsize{\@setsize\normalsize{15pt}\xiipt\@xiipt \abovedisplayskip 12\p@ plus3\p@ minus7\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \itemsep \parsep \topsep 9\p@ plus3\p@ minus5\p@}} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \fi \normalsize \oddsidemargin 53pt \evensidemargin 53pt \marginparwidth 90pt \marginparsep 11pt \marginparpush 5pt \topmargin 27pt \headheight 12pt \headsep 45pt \footheight 12pt \footskip 25pt \textheight 505pt \textwidth 365pt \columnsep 10pt \columnseprule 0pt \raggedbottom \footnotesep 12pt \skip\footins 10pt plus 2pt minus 4pt \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt \dblfloatsep 12pt plus 2pt minus 2pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@maxsep 20pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil \newdimen\longindentation \longindentation=.5\textwidth \newdimen\indentedwidth \indentedwidth=\textwidth \advance\indentedwidth -\longindentation \def\opening#1{\ifx\@empty\fromaddress \thispagestyle{firstpage}% {\raggedleft\@date\par}% \else \thispagestyle{empty}% {\raggedleft\begin{tabular}{l}\ignorespaces \fromaddress \\*[2\parskip]% \@date \end{tabular}\par}% \fi \vspace{2\parskip}% {\raggedright \toname \\ \toaddress \par}% \vspace{2\parskip}% #1\par\nobreak} \long\def\closing#1{\par\nobreak\vspace{\parskip}% \stopbreaks \noindent \ifx\@empty\fromaddress\else \hspace*{\longindentation}\fi \parbox{\indentedwidth}{\raggedright \ignorespaces #1\\[6\medskipamount]%% changed 20 Jan 88 \ifx\@empty\fromsig \fromname \else \fromsig \fi\strut}% \par} \def\ps{\par\startbreaks} \def\cc#1{\par\noindent \parbox[t]{\textwidth}{\@hangfrom{\reset@font\rm \ccname: }% \ignorespaces #1\strut}\par} \def\encl#1{\par\noindent \parbox[t]{\textwidth}{\@hangfrom{\reset@font\rm \enclname: }% \ignorespaces #1\strut}\par} \def\stopletter{} \def\returnaddress{} \newcount\labelcount \def\startlabels{\labelcount\z@ \pagestyle{empty}% \let\@texttop\relax \topmargin -50\p@ \headsep \z@ \oddsidemargin -35\p@ \evensidemargin -35\p@ \textheight 10in \@colht\textheight \@colroom\textheight \vsize\textheight \textwidth 550\p@ \columnsep 25\p@ \ifcase \@ptsize\relax \normalsize \or \small \or \footnotesize \fi \baselineskip \z@ \lineskip \z@ \boxmaxdepth \z@ \parindent \z@ \twocolumn\relax} \def\mlabel#1#2{\setbox0\vbox{\parbox[b]{3.6in}% {\strut\ignorespaces #2}}% \vbox to 2in{\vss \box0 \vss}} \long\def\letter#1{\newpage \c@page\@ne \interlinepenalty=200 \@processto{\leavevmode\ignorespaces #1}} \def\endletter{\stopletter\@@par\pagebreak\@@par \if@filesw \begingroup \let\\=\relax \def\protect##1{\string##1\space}% \immediate\write\@auxout{\string\mlabel{\returnaddress}{\toname \\\toaddress}}% \endgroup \fi} \long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty \else \@yproc #1@@@\fi} \long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}} \long\def\@yproc #1\\#2@@@{\def\toaddress{#2}} \def\stopbreaks{\interlinepenalty \@M \def\par{\@@par\nobreak}\let\\=\@nobreakcr \let\vspace\@nobreakvspace} \def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}} \def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi} \def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}} \def\startbreaks{\let\\=\@normalcr \interlinepenalty 200\def\par{\@@par\penalty 200\relax}} \def\name#1{\def\fromname{#1}} \def\fromname{} \def\signature#1{\def\fromsig{#1}} \def\fromsig{} \long\def\address#1{\def\fromaddress{#1}} \def\fromaddress{} \def\location#1{\def\fromlocation{#1}} \def\fromlocation{} \def\telephone#1{\def\telephonenum{#1}} \def\telephonenum{} \def\document{\endgroup \@colht\textheight \@colroom\textheight \vsize\textheight \columnwidth\textwidth \@clubpenalty\clubpenalty \if@twocolumn \advance\columnwidth -\columnsep \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue \fi \hsize\columnwidth \linewidth\hsize \begingroup\@floatplacement\@dblfloatplacement\endgroup \if@filesw \immediate\openout\@mainaux=\jobname.aux \immediate\write\@mainaux {\string\startlabels\string\@startlabels}\fi \csname process@table\endcsname \let\glb@currsize\@empty \def\do##1{\let ##1\@notprerr}% \@preamblecmds \let\do\noexpand \@normalsize\everypar{}\@noskipsecfalse} \def\enddocument{\@checkend{document}\newpage\begingroup \if@filesw \immediate\closeout\@mainaux \makeatletter\input \jobname.aux\clearpage \fi\endgroup\deadcycles\z@\@@end} \def\makelabels{\@fileswtrue} \def\@startlabels{} \def\@texttop{\ifnum\c@page=1\vskip \z@ plus.00006fil\relax\fi} \def\ps@headings{\def\@oddhead{\sl \headtoname{} \ignorespaces\toname \hfil \@date \hfil \pagename{} \thepage}\def\@oddfoot{}} \def\ps@empty{\def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{}} \def\ps@firstpage{\def\@oddhead{}\def\@oddfoot{\raisebox {-45\p@}[\z@]{\hbox to \textwidth{\hspace*{100\p@}% \ifcase \@ptsize\relax \normalsize \or \small \or \footnotesize \fi \fromlocation \hfill \telephonenum}}\hss}% \def\@evenhead{}\def\@evenfoot{}} \def\ps@plain{\def\@oddhead{}\def\@oddfoot{\rm\hfil\thepage \hfil}\def\@evenhead{}\let\@evenfoot\@oddfoot} \parskip .7em \parindent 0pt \partopsep 0pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \leftmargini 2.5em \leftmarginii 2.2em \leftmarginiii 1.87em \leftmarginiv 1.7em \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelwidth\leftmargini\advance\labelwidth-\labelsep \labelsep 5pt \parsep 0pt \def\@listI{\leftmargin\leftmargini \topsep .4em\relax \itemsep .4em\relax} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep .2em \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -15\p@\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 15\p@}\item[]} \let\endverse\endlist \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin}\item[]} \let\endquotation=\endlist \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist \def\theequation{\arabic{equation}} \arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt \tabbingsep \labelsep \skip\@mpfootins = \skip\footins \fboxsep = 3pt \fboxrule = .4pt \def\footnoterule{\kern-1\p@ \hrule width .4\columnwidth \kern .6\p@} \long\def\@makefntext#1{\noindent \hangindent 5\p@\hbox to5\p@{\hss $\m@th^{\@thefnmark}$}#1} \c@topnumber=2 \def\topfraction{.7} \c@bottomnumber=1 \def\bottomfraction{.3} \c@totalnumber=3 \def\textfraction{.2} \def\floatpagefraction{.5} \c@dbltopnumber= 2 \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} \smallskipamount=.5\parskip \medskipamount=\parskip \bigskipamount=2\parskip \ps@plain \pagenumbering{arabic} \onecolumn \@fileswfalse \endinput latex209-25.may.1992.orig/sty/titlepag.sty100664 144 144 1477 5161754600 17315 0ustar nakaharastaff% TITLEPAGE DOCUMENT-STYLE OPTION - released 16 June 1991 % for LaTeX version 2.09 % Copyright (C) 1991 by Leslie Lamport \typeout{Document Style Option `titlepage' -- Released 16 June 1991.} \def\maketitle{\begin{titlepage}% \let\footnotesize\small \let\footnoterule\relax \setcounter{page}{0}% \null \vfil \vskip 60\p@ \begin{center}% {\LARGE \@title \par}% \vskip 3em {\large \lineskip .75em \begin{tabular}[t]{c}\@author \end{tabular}\par}% \vskip 1.5em {\large \@date \par}% \end{center}\par \@thanks \vfil \null \end{titlepage}% \setcounter{footnote}{0}% \let\thanks\relax \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\maketitle\relax} \def\abstract{\titlepage \null\vfil \begin{center} \bf \abstractname \end{center}} \def\endabstract{\par\vfil\null\endtitlepage} \endinput latex209-25.may.1992.orig/sty/slides.sty100664 144 144 20320 5161754600 16773 0ustar nakaharastaff% SLIDES DOCUMENT STYLE -- released 04 Nov 1991 % for SliTeX version 2.09 % Copyright (C) 1985, 1991 by Leslie Lamport \typeout{Document Style 'slides' -- released 04 Nov 91} \def\@notinslitex{\errmessage{This command not allowed in SLiTeX.}} \@twosidefalse \topmargin -10pt \oddsidemargin 17pt \evensidemargin 17pt \def\ds@twoside{\@latexerr{No 'twoside' layout for slides}\@eha} \headheight 14pt \headsep 15pt \footheight 14pt \footskip 25pt \textheight 600pt \textwidth 460pt \columnwidth \textwidth \columnsep 10pt \columnseprule \z@ \skip\footins 10pt plus 2pt minus 4pt \skip\@mpfootins = \skip\footins \footnotesep 20pt \marginparwidth 20pt \marginparsep 5pt \marginparpush 5pt \def\@mainsize{\@visibletrue\tiny} \parindent 0pt \def\baselinestretch{1} \def\Huge{\huge} \def\huge{\@setsize\huge{60\p@ plus10\p@ minus6\p@}\@empty\@huge \lineskip 2\p@ \def\@parskip{60\p@ plus30\p@ minus6\p@}% \parskip\@parskip \abovedisplayskip 24\p@ plus10\p@ minus6\p@ \belowdisplayskip 24\p@ plus10\p@ minus6\p@ \abovedisplayshortskip 12\p@ plus8\p@ \belowdisplayshortskip 12\p@ plus8\p@ \setbox\strutbox\hbox{\vrule \@height27\p@ \@depth11\p@ \@width\z@}} \def\@huge{\if@visible\fortyonept\else\ifortyonept\fi} \def\LARGE{\@setsize\LARGE{52\p@ plus10\p@ minus6\p@}\@empty\@LARGE \lineskip 2\p@ \def\@parskip{52\p@ plus30\p@ minus6\p@}% \parskip\@parskip \abovedisplayskip 24\p@ plus10\p@ minus6\p@ \belowdisplayskip 24\p@ plus10\p@ minus6\p@ \abovedisplayshortskip 12\p@ plus8\p@ \belowdisplayshortskip 12\p@ plus8\p@ \setbox\strutbox\hbox{\vrule \@height27\p@ \@depth11\p@ \@width\z@}} \def\@LARGE{\if@visible\thirtyfourpt\else\ithirtyfourpt\fi} \def\Large{\@setsize\Large{48\p@ plus10\p@ minus6\p@}\@empty\@Large \lineskip 2\p@ \def\@parskip{48\p@ plus30\p@ minus6\p@}% \parskip\@parskip \abovedisplayskip 24\p@ plus10\p@ minus6\p@ \belowdisplayskip 24\p@ plus10\p@ minus6\p@ \abovedisplayshortskip 12\p@ plus8\p@ \belowdisplayshortskip 12\p@ plus8\p@ \setbox\strutbox\hbox{\vrule \@height27\p@ \@depth11\p@ \@width\z@}} \def\@Large{\if@visible\twentyninept\else\itwentyninept\fi} \def\large{\@setsize\large{42\p@ plus8\p@ minus5\p@}\@empty\@large \lineskip 2\p@ \def\@parskip{40\p@ plus20\p@ minus4\p@}% \parskip\@parskip \abovedisplayskip 20\p@ plus8\p@ minus3\p@ \belowdisplayskip 20\p@ plus8\p@ minus3\p@ \abovedisplayshortskip 10\p@ plus5\p@ \belowdisplayshortskip 10\p@ plus5\p@ \setbox\strutbox\hbox{\vrule \@height20\p@ \@depth8.5\p@ \@width\z@}} \def\@large{\if@visible\twentyfourpt\else\itwentyfourpt\fi} \def\normalsize{\@setsize\normalsize{30\p@ plus3\p@ minus3\p@}\@empty \@normalsize \lineskip 2\p@ \def\@parskip{30\p@ plus18\p@ minus9\p@}% \parskip\@parskip \abovedisplayskip 15\p@ plus3\p@ minus3\p@ \belowdisplayskip 10\p@ plus3\p@ minus3\p@ \abovedisplayshortskip 10\p@ plus3\p@ \belowdisplayshortskip 10\p@ plus3\p@ \setbox\strutbox\hbox{\vrule \@height17\p@ \@depth7\p@ \@width\z@}} \def\@normalsize{\if@visible\twentypt\else\itwentypt\fi} \def\small{\@setsize\small{19\p@ plus3\p@ minus\p@}\@empty\@small \lineskip 2\p@ \def\@parskip{15\p@ plus15\p@ minus7\p@}% \parskip\@parskip \abovedisplayskip 12\p@ plus3\p@ minus3\p@ \belowdisplayskip 9\p@ plus3\p@ minus3\p@ \abovedisplayshortskip 6\p@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ \setbox\strutbox\hbox{\vrule \@height13.5\p@ \@depth5.6\p@ \@width\z@}} \def\@small{\if@visible\seventeenpt\else\iseventeenpt\fi} \let\footnotesize=\small \let\scriptsize=\small \def\tiny{\@setsize\tiny{16\p@ plus2\p@ minus\p@}\@empty\@tiny \lineskip 2\p@ \def\@parskip{11\p@ plus11\p@ minus5\p@}% \parskip\@parskip \abovedisplayskip 14\p@ plus3\p@ minus10\p@ \belowdisplayskip 14\p@ plus3\p@ minus10\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 8\p@ plus3\p@ minus5\p@ \setbox\strutbox\hbox{\vrule \@height10\p@ \@depth4\p@ \@width\z@}} \def\@tiny{\if@visible\fourteenpt\else\ifourteenpt\fi} \def\ps@headings{% \def\ps@slide{\def\@oddfoot{\@mainsize +\hfil\hbox to3em{\theslide \hss}}% \def\@oddhead{\@mainsize +\hfil +}% \def\@evenfoot{\@mainsize +\hfil\hbox to3em{\theslide\hss}}% \def\@evenhead{\@mainsize +\hfil +}} \def\ps@overlay{\def\@oddfoot{\@mainsize +\hfil\hbox to3em{\theoverlay \hss}}% \def\@oddhead{\@mainsize +\hfil +}% \def\@evenfoot{\@mainsize +\hfil\hbox to3em{\theoverlay\hss}}% \def\@evenhead{\@mainsize +\hfil +}} \def\ps@note{\def\@oddfoot{\@mainsize \hbox{}\hfil\thenote}% \def\@oddhead{}% \def\@evenfoot{\@mainsize \hbox{}\hfil\thenote}% \def\@evenhead{}}} \def\ps@plain{\def\ps@slide{% \def\@oddfoot{\@mainsize \mbox{}\hfil\hbox to 3em{\theslide\hss}}% \def\@oddhead{}% \def\@evenfoot{\@mainsize \mbox{}\hfil\hbox to 3em{\theslide\hss}}% \def\@evenhead{}} \def\ps@overlay{\def\@oddfoot{\@mainsize \mbox{}\hfil\hbox to 3em{\theoverlay\hss}}% \def\@oddhead{}% \def\@evenfoot{\@mainsize \mbox{}\hfil\hbox to 3em{\theoverlay\hss}}% \def\@evenhead{}} \def\ps@note{\def\@oddfoot{\@mainsize \hbox{}\hfil\thenote}% \def\@oddhead{}% \def\@evenfoot{\@mainsize \hbox{}\hfil\thenote}% \def\@evenhead{}}} \def\ps@empty{% \def\ps@slide{\def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{}}% \def\ps@overlay{\def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{}}% \def\ps@note{\def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{}}} \ps@headings \def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{} \@options \def\titlepage{\newpage\thispagestyle{empty}\c@page\z@} \def\endtitlepage{\newpage} \leftmargini 38pt \leftmarginii 30pt \leftmarginiii 20pt \leftmarginiv 15pt \leftmarginv 15pt \leftmarginvi 10pt \def\@listi{\parsep .5\parskip \topsep \parsep \itemsep\parskip \partopsep \z@} \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \parsep .5\parskip \topsep \parsep \itemsep\parskip} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \labelsep 10pt \tabbingsep \labelsep \leftmargin\leftmargini \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -15\p@\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 15\p@}\item[]} \let\endverse\endlist \def\quotation{\list{}{\listparindent 20\p@\relax \itemindent\listparindent \rightmargin\leftmargin}\item[]} \let\endquotation=\endlist \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist \def\labelenumi{\arabic{enumi}.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\alph{enumii})} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\roman{enumiii}.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\Alph{enumiv}.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} \arraycolsep 8pt \tabcolsep 10pt \arrayrulewidth .6pt \doublerulesep 3pt \fboxsep = 5pt \fboxrule = .6pt \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} \def\thefootnote{\fnsymbol{footnote}} \@addtoreset{footnote}{slide} \@addtoreset{footnote}{overlay} \@addtoreset{footnote}{note} \let\footnoterule=\relax \long\def\@makefntext#1{\noindent \hangindent 10\p@\hbox to10\p@{\hss $\m@th^{\@thefnmark}$}#1} \def\theequation{\@arabic{\c@equation}} \def\@figsep{7\p@} \def\@textfigsep{5\p@} \def\@captionskip{6\p@} \def\topfraction{.7} \def\bottomfraction{.3} \def\textfraction{.2} \def\floatpagefraction{.5} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} \pagenumbering{arabic} \onecolumn \normalsize \endinput latex209-25.may.1992.orig/sty/showidx.sty100664 144 144 3740 5161754600 17164 0ustar nakaharastaff% SHOWIDX DOCUMENT-STYLE OPTION - released 16 June 1991 % for LaTeX version 2.09 % Copyright (C) 1985, 1988, 1989, 1991 by Leslie Lamport % % Prints \index entries in outer margin. For use with book or report % style. Note: makes \flushbottom the default. \typeout{Document style option `showidx' - released 16 June 1991} \newinsert\@margin \newinsert\indexbox \dimen\indexbox=\maxdimen \def\@showidx#1{\insert\indexbox{\small \hsize\marginparwidth \hangindent\marginparsep \parindent\z@ \everypar{}\let\par\@@par \parfillskip\@flushglue \lineskip\normallineskip \baselineskip .8\normalbaselineskip\sloppy \raggedright \leavevmode \vrule \@height .7\normalbaselineskip \@width \z@\relax #1\relax\vrule \@height \z@ \@depth .3\normalbaselineskip \@width \z@}} \def\@leftidx{\hskip-\marginparsep \hskip-\marginparwidth} \def\@rightidx{\hskip\columnwidth \hskip\marginparsep} \def\@mkidx{\vbox to \z@{\hbox{\if@twocolumn \if@firstcolumn \@leftidx \else \@rightidx \fi \else \if@twoside \ifodd\c@page \@rightidx \else \@leftidx \fi \else \@rightidx \fi \fi \box\indexbox}\vss}} \def\raggedbottom{\def\@textbottom{\vskip \z@ plus.0001fil}\let\@texttop\@mkidx} \def\flushbottom{\let\@textbottom\relax \let\@texttop\@mkidx} \def\@wrindex#1#2{\let\thepage\relax \xdef\@gtempa{\write#1{\string \indexentry{#2}{\thepage}}}\endgroup\@gtempa \@showidx{#2}\if@nobreak \ifvmode\nobreak\fi\fi\@esphack} \def\@index#1{\@showidx{#1}\endgroup\@esphack} \def\index{\@bsphack\begingroup\@sanitize\catcode32=10\relax\@index} \def\makeindex{\if@filesw \newwrite\@indexfile \immediate\openout\@indexfile=\jobname.idx \def\index{\@bsphack\begingroup \def\protect####1{\string####1\space}\@sanitize \catcode32=10 \@wrindex\@indexfile}\typeout {Writing index file \jobname.idx }\fi} \flushbottom \endinput latex209-25.may.1992.orig/sty/report.sty100664 144 144 22243 5161754600 17031 0ustar nakaharastaff% REPORT STANDARD DOCUMENT STYLE -- Released 14 January 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \typeout{Standard Document Style `report' <14 Jan 92>.} \def\contentsname{Contents} \def\listfigurename{List of Figures} \def\listtablename{List of Tables} \def\bibname{Bibliography} \def\indexname{Index} \def\figurename{Figure} \def\tablename{Table} \def\chaptername{Chapter} \def\appendixname{Appendix} \def\partname{Part} \def\abstractname{Abstract} \def\@ptsize{0} \@namedef{ds@11pt}{\def\@ptsize{1}} \@namedef{ds@12pt}{\def\@ptsize{2}} \def\ds@twoside{\@twosidetrue \@mparswitchtrue} \def\ds@draft{\overfullrule 5pt} \def\ds@twocolumn{\@twocolumntrue} \@options \input rep1\@ptsize.sty\relax \def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} \let\endverse\endlist \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin\parsep \z@ plus\p@}\item[]} \let\endquotation=\endlist \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist \newdimen\descriptionmargin \descriptionmargin=3em \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn \else \newpage \fi \thispagestyle{empty}\c@page\z@} \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} \arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt \tabbingsep \labelsep \skip\@mpfootins = \skip\footins \fboxsep = 3pt \fboxrule = .4pt \newcounter {part} \newcounter {chapter} \newcounter {section}[chapter] \newcounter {subsection}[section] \newcounter {subsubsection}[subsection] \newcounter {paragraph}[subsubsection] \newcounter {subparagraph}[paragraph] \def\thepart {\Roman{part}} \def\thechapter {\arabic{chapter}} \def\thesection {\thechapter.\arabic{section}} \def\thesubsection {\thesection.\arabic{subsection}} \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} \def\theparagraph {\thesubsubsection.\arabic{paragraph}} \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} \def\@chapapp{\chaptername} \def\part{\cleardoublepage \thispagestyle{plain}% \if@twocolumn \onecolumn \@tempswatrue \else \@tempswafalse \fi \hbox{}\vfil \secdef\@part\@spart} \def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{part}{\thepart \hspace{1em}#1}\else \addcontentsline{toc}{part}{#1}\fi \markboth{}{}% {\centering \interlinepenalty \@M \ifnum \c@secnumdepth >-2\relax \huge\bf \partname~\thepart \par \vskip 20\p@\fi \Huge \bf #2\par}\@endpart} \def\@endpart{\vfil\newpage \if@twoside \hbox{}% \thispagestyle{empty}% \newpage \fi \if@tempswa \twocolumn \fi} \def\@spart#1{{\centering \interlinepenalty \@M \Huge \bf #1\par}\@endpart} \def\@pnumwidth{1.55em} \def\@tocrmarg {2.55em} \def\@dotsep{4.5} \setcounter{tocdepth}{2} \def\tableofcontents{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\contentsname \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}% \@starttoc{toc}\if@restonecol\twocolumn\fi} \def\l@part#1#2{\addpenalty{-\@highpenalty}% \addvspace{2.25em plus\p@}% space above part line \begingroup \@tempdima 3em \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth {\large \bf \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}}\par \nobreak \global\@nobreaktrue \everypar{\global\@nobreakfalse\everypar{}}%% suggested by \endgroup} \def\l@chapter#1#2{\addpenalty{-\@highpenalty}% \vskip 1.0em plus\p@ \@tempdima 1.5em \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \bf \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par \penalty\@highpenalty \endgroup} \def\l@section{\@dottedtocline{1}{1.5em}{2.3em}} \def\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}} \def\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}} \def\l@paragraph{\@dottedtocline{4}{10em}{5em}} \def\l@subparagraph{\@dottedtocline{5}{12em}{6em}} \def\listoffigures{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\listfigurename\@mkboth{\uppercase{\listfigurename}}% {\uppercase{\listfigurename}}}\@starttoc{lof}\if@restonecol \twocolumn\fi} \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} \def\listoftables{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\listtablename\@mkboth{\uppercase{\listtablename}}% {\uppercase{\listtablename}}}\@starttoc{lot}\if@restonecol \twocolumn\fi} \let\l@table\l@figure \def\thebibliography#1{\chapter*{\bibname\@mkboth {\uppercase{\bibname}}{\uppercase{\bibname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\hskip .11em plus.33em minus.07em}% \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=\@m} \def\endthebibliography{% \def\@noitemerr{\@warning{Empty `thebibliography' environment}}% \endlist} \newif\if@restonecol \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35\p@\twocolumn[\@makeschapterhead{\indexname}]% \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}% \thispagestyle{plain}\parindent\z@ \parskip\z@ plus .3\p@\relax\let\item\@idxitem} \def\@idxitem{\par\hangindent 40\p@} \def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}} \def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}} \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} \def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} \def\footnoterule{\kern-3\p@ \hrule width .4\columnwidth \kern 2.6\p@} \@addtoreset{footnote}{chapter} \long\def\@makefntext#1{\parindent 1em\noindent \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1} \setcounter{topnumber}{2} \def\topfraction{.7} \setcounter{bottomnumber}{1} \def\bottomfraction{.3} \setcounter{totalnumber}{3} \def\textfraction{.2} \def\floatpagefraction{.5} \setcounter{dbltopnumber}{2} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} \long\def\@makecaption#1#2{% \vskip 10\p@ \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize #1: #2\par \else \hbox to\hsize{\hfil\box\@tempboxa\hfil}% \fi} \newcounter{figure}[chapter] \def\thefigure{\thechapter.\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{\figurename~\thefigure} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} \newcounter{table}[chapter] \def\thetable{\thechapter.\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{\tablename~\thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} \input titlepag.sty \mark{{}{}} \if@twoside \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@evenhead{\rm \thepage\hfil \sl \leftmark}% Left heading. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Right heading. \def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne \@chapapp\ \thechapter. \ \fi ##1}}{}}% \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@ \thesection. \ \fi ##1}}}} \else \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Heading. \def\chaptermark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\m@ne \@chapapp\ \thechapter. \ \fi ##1}}}} \fi \def\ps@myheadings{\let\@mkboth\@gobbletwo \def\@oddhead{{\sl\rightmark}\hfil \rm\thepage}% \def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark}% \def\@evenfoot{}\def\chaptermark##1{}\def\sectionmark##1{}% \def\subsectionmark##1{}} \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} \@addtoreset{equation}{chapter} \def\theequation{\thechapter.\arabic{equation}} \ps@plain \pagenumbering{arabic} \if@twoside\else\raggedbottom\fi \if@twocolumn \@@input twocolum.sty\relax \else \onecolumn \fi \endinput latex209-25.may.1992.orig/sty/rep12.sty100664 144 144 13067 5161754600 16453 0ustar nakaharastaff% REPORT STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \def\@normalsize{\@setsize\normalsize{14.5pt}\xiipt\@xiipt \abovedisplayskip 12\p@ plus3\p@ minus7\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \itemsep \parsep \topsep 9\p@ plus3\p@ minus5\p@}} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \normalsize \if@twoside \oddsidemargin 21pt \evensidemargin 59pt \marginparwidth 85pt \else \oddsidemargin 39.5pt \evensidemargin 39.5pt \marginparwidth 68pt \fi \marginparsep 10pt \topmargin 27pt \headheight 12pt \headsep 25pt \topskip = 12pt \footskip 30pt \textheight = 36\baselineskip \advance\textheight by \topskip \textwidth 390pt \columnsep 10pt \columnseprule 0pt \footnotesep 8.4pt \skip\footins 10.8pt plus 4pt minus 2pt \floatsep 14pt plus 2pt minus 4pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 14pt plus 4pt minus 4pt \@maxsep 20pt \dblfloatsep 14pt plus 2pt minus 4pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 10pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 10pt plus 2fil% Space between floats on float page. \@dblfpbot 0pt plus 1fil \marginparpush 7pt \parskip 0pt plus 1pt \parindent 1.5em \partopsep 3pt plus 2pt minus 2pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\@makechapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \ifnum \c@secnumdepth >\m@ne \huge\bf \@chapapp{} \thechapter \par \vskip 20\p@ \fi \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\@makeschapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\chapter{\clearpage \thispagestyle{plain}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}}% Adds between-chapter space \addtocontents{lot}% {\protect\addvspace{10\p@}}% to lists of figs & tables. \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} \def\chaptermark#1{} \setcounter{secnumdepth}{2} \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} \leftmargini 2.5em \leftmarginii 2.2em \leftmarginiii 1.87em \leftmarginiv 1.7em \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\@listI{\leftmargin\leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 5\p@ plus2.5\p@ minus\p@ \parsep 2.5\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2.5\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/sty/rep11.sty100664 144 144 12700 5161754600 16443 0ustar nakaharastaff% REPORT STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt \abovedisplayskip 8\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize \if@twoside \oddsidemargin 36pt \evensidemargin 74pt \marginparwidth 100pt \else \oddsidemargin 54pt \evensidemargin 54pt \marginparwidth 83pt \fi \marginparsep 10pt \topmargin 27pt \headheight 12pt \headsep 25pt \topskip = 11pt \footskip 30pt \textheight = 38\baselineskip \advance\textheight by \topskip \textwidth 360pt \columnsep 10pt \columnseprule 0pt \footnotesep 7.7pt \skip\footins 10pt plus 4pt minus 2pt \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt \@maxsep 20pt \dblfloatsep 12pt plus 2pt minus 2pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil \marginparpush 5pt \parskip 0pt plus 1pt \parindent 17pt \partopsep 3pt plus 1pt minus 2pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\@makechapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \ifnum \c@secnumdepth >\m@ne \huge\bf \@chapapp{} \thechapter \par \vskip 20\p@ \fi \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\@makeschapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\chapter{\clearpage \thispagestyle{plain}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}} \addtocontents{lot}% {\protect\addvspace{10\p@}} \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} \def\chaptermark#1{} \setcounter{secnumdepth}{2} \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} \leftmargini 2.5em \leftmarginii 2.2em \leftmarginiii 1.87em \leftmarginiv 1.7em \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\@listI{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \topsep 9\p@ plus3\p@ minus5\p@ \itemsep 4.5\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4.5\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/sty/rep10.sty100664 144 144 12653 5161754600 16451 0ustar nakaharastaff% REPORT STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip 8.5\p@ plus3\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus2\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt \abovedisplayskip 6\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 3\p@ plus\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize \if@twoside \oddsidemargin 44pt \evensidemargin 82pt \marginparwidth 107pt \else \oddsidemargin 63pt \evensidemargin 63pt \marginparwidth 90pt \fi \marginparsep 11pt \topmargin 27pt \headheight 12pt \headsep 25pt \topskip = 10pt \footskip 30pt \textheight = 43\baselineskip \advance\textheight by \topskip \textwidth 345pt \columnsep 10pt \columnseprule 0pt \footnotesep 6.65pt \skip\footins 9pt plus 4pt minus 2pt \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt \@maxsep 20pt \dblfloatsep 12pt plus 2pt minus 2pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil \marginparpush 5pt \parskip 0pt plus 1pt \parindent 15pt \partopsep 2pt plus 1pt minus 1pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\@makechapterhead#1{% \vspace*{50\p@}% {\parindent \z@\raggedright \ifnum \c@secnumdepth >\m@ne \huge\bf \@chapapp{} \thechapter \par \vskip 20\p@ \fi \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\@makeschapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\chapter{\clearpage \thispagestyle{plain}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}} \addtocontents{lot}% {\protect\addvspace{10\p@}} \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize \bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} \def\chaptermark#1{} \setcounter{secnumdepth}{2} \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} \leftmargini 25pt \leftmarginii 22pt \leftmarginiii 18.7pt \leftmarginiv 17pt \leftmarginv 10pt \leftmarginvi 10pt \leftmargin\leftmargini \labelsep 5pt \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\@listI{\leftmargin\leftmargini \parsep 4\p@ plus2\p@ minus\p@% \topsep 8\p@ plus2\p@ minus4\p@ \itemsep 4\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep\p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/sty/proc.sty100664 144 144 2774 5161754600 16450 0ustar nakaharastaff% PROC STANDARD DOCUMENT STYLE -- Released 26 February 1992 % for LaTeX version 2.09 % Copyright (C) 1991,1992 by Leslie Lamport % % This is a style option for use with the article style to produce % camera-ready conference proceedings. \typeout{Document Style Option 'proc' -- Released 26 Feb 1992.} \@ifundefined{abstractname}% {\def\abstractname{Abstract}}{} \@ifundefined{pagename}% {\def\pagename{Page}}{} \oddsidemargin -10pt \evensidemargin -10pt \topmargin -47pt \headheight 12pt \headsep 25pt \footskip 75pt \textheight 9in \textwidth 6.75in \columnsep .375in \columnseprule 0pt \def\@oddhead{}\def\@evenhead{} \def\@oddfoot{\rm\rightmark \hfil \pagename{} \thepage} \def\@evenfoot{\@oddfoot} \def\maketitle{\par \begingroup \def\thefootnote{\fnsymbol{footnote}}% \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}% \twocolumn[\@maketitle]% \@thanks \endgroup \setcounter{footnote}{0}% \let\maketitle\relax \let\@maketitle\relax \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} \def\@maketitle{\vbox to 2.25in{\hsize\textwidth \linewidth\hsize \vfil \centering {\LARGE \@title \par}% \vskip 2em {\large \begin{tabular}[t]{c}\@author \end{tabular}\par}% \vfil}} \def\copyrightspace{\footnotetext[0]{\mbox{}\vrule \@height 97\p@ \@width \z@}} \def\abstract{\section*{\abstractname}} \def\endabstract{\par} \twocolumn \sloppy \parindent 1em \leftmargini 2em \leftmargin\leftmargini \leftmarginv .5em \leftmarginvi .5em \flushbottom \endinput latex209-25.may.1992.orig/sty/makeidx.sty100664 144 144 561 5161754600 17077 0ustar nakaharastaff% MAKEIDX DOCUMENT-STYLE OPTION FOR ARTICLE STYLE % RELEASED 21 october 1991 -- for LaTeX version 2.09 % Copyright (C) 1987, 1991 by Leslie Lamport, all rights reserved \typeout{Document style option `makeidx' - released 21 Oct 91} \@ifundefined{seename}% {\def\seename{see}}{} \def\see#1#2{{\em \seename\/} #1} \def\printindex{\@input{\jobname.ind}} \endinput latex209-25.may.1992.orig/sty/openbib.sty100664 144 144 2361 5161754600 17113 0ustar nakaharastaff% OPENBIB DOCUMENT-STYLE OPTION FOR ARTICLE STYLE % RELEASED 14 January 1992 -- for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport, all rights reserved \typeout{Document Style Option `openbib' -- Released 14 Jan 1992.} \newdimen\bibindent \bibindent=1.5em \@ifundefined{chapter}{\def\thebibliography#1{% \section*{\refname\uppercase{\@mkboth {\refname}{\refname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \advance\leftmargin\bibindent \itemindent -\bibindent \listparindent \itemindent \parsep \z@ \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\par}% \sloppy \sfcode`\.\@m}}% {\def\thebibliography#1{\chapter*{\bibname\uppercase{\@mkboth {\bibname}{\bibname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \advance\leftmargin\bibindent \itemindent -\bibindent \listparindent \itemindent \parsep \z@ \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\par}% \sloppy \sfcode`\.\@m}} \endinput latex209-25.may.1992.orig/sty/fleqn.sty100664 144 144 3064 5161754600 16603 0ustar nakaharastaff% FLEQN DOCUMENT-STYLE OPTION - released 04 November 1991 % for LaTeX version 2.09 % Copyright (C) 1989,1991 by Leslie Lamport \typeout{Document style option `fleqn' - Released 04 Nov 91} \def\[{\relax\ifmmode\@badmath\else \begin{trivlist}% \@beginparpenalty\predisplaypenalty \@endparpenalty\postdisplaypenalty \item[]\leavevmode \hbox to\linewidth\bgroup $\m@th\displaystyle \hskip\mathindent\bgroup\fi} \def\]{\relax\ifmmode \egroup $\hfil \egroup \end{trivlist}\else \@badmath \fi} \def\equation{\@beginparpenalty\predisplaypenalty \@endparpenalty\postdisplaypenalty \refstepcounter{equation}\trivlist \item[]\leavevmode \hbox to\linewidth\bgroup $\m@th% $ TO MAKE DOLLAR NESTING OK \displaystyle \hskip\mathindent} \def\endequation{$\hfil \displaywidth\linewidth\@eqnnum\egroup \endtrivlist} \def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation \global\@eqnswtrue \global\@eqcnt\z@\tabskip\mathindent\let\\=\@eqncr \abovedisplayskip\topsep\ifvmode\advance\abovedisplayskip\partopsep\fi \belowdisplayskip\abovedisplayskip \belowdisplayshortskip\abovedisplayskip \abovedisplayshortskip\abovedisplayskip $$\m@th\halign to\linewidth\bgroup\@eqnsel\hskip\@centering$\displaystyle\tabskip\z@ {##}$&\global\@eqcnt\@ne \hskip 2\arraycolsep \hfil${##}$\hfil &\global\@eqcnt\tw@ \hskip 2\arraycolsep $\displaystyle{##}$\hfil \tabskip\@centering&\llap{##}\tabskip\z@\cr} \def\endeqnarray{\@@eqncr\egroup \global\advance\c@equation\m@ne$$\global\@ignoretrue } \newdimen\mathindent \mathindent = \leftmargini \endinput latex209-25.may.1992.orig/sty/ifthen.sty100664 144 144 3631 5161754600 16753 0ustar nakaharastaff% IFTHEN DOCUMENT-STYLE OPTION - released 16 June 1991 % for LaTeX version 2.09 % Copyright (C) 1991 by Leslie Lamport \typeout{Document Style Option 'ifthen' -- Released 16 June 1991.} \long\def\ifthenelse#1#2#3{\setbox\@tempboxa \vbox{\let\protect\noexpand \let\or\@or \let\and\@and \let\not\@neg \let\(\@lparen \let\)\@rparen {\let\if\relax\let\ifx\relax\let\ifnum\relax\let\fi\relax \let\else\relax \xdef\@gtempa{#1}}\expandafter \@eval \ifnum \@gtempa\relax \def\@term{T}\else \def\@term{F}\fi \@endeval\global\let\@gtempa\@val}\if\@gtempa T#2\else#3\fi} \def\@eval{\def\@val{F}\def\@orop{T}\def\@negate{F}} \def\@endeval{\if\@negate T\def\@negate{F}\if\@term T\def\@term{F}\else \def\@term{T}\fi\fi \if\@orop T\if\@val F\let\@val\@term\fi \else \if\@val T\let\@val\@term\fi\fi} \def\@or{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi \noexpand\@endeval \def\noexpand\@orop{T}\ifnum} \def\@and{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi \noexpand\@endeval\def\noexpand\@orop{F}\ifnum} \def\@neg{1=1 \fi \def\noexpand\@negate{T}\ifnum} \def\@lparen{1=1 \fi \begingroup \noexpand\@eval \ifnum} \def\@rparen{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi \noexpand\@endeval \if\noexpand\@val T\gdef\noexpand\@gtempb{1=1}\else \gdef\noexpand\@gtempb{1=0}\fi \endgroup \ifnum\noexpand\@gtempb} \def\equal#1#2{1=1 \fi \edef\noexpand\@tempa{#1}% \edef\noexpand\@tempe{#2}\ifx \noexpand\@tempa\noexpand\@tempe \def\noexpand\@tempa{1=1}\else \def\noexpand\@tempa{1=0}\fi \ifnum \noexpand\@tempa} \long\def\whiledo#1#2{\ifthenelse{#1}{\@whiledotrue \@whilesw\if@whiledo \fi{#2\ifthenelse{#1}{\@whiledotrue}{\@whiledofalse}}}{}} \newif\if@whiledo \endinput latex209-25.may.1992.orig/sty/book.sty100664 144 144 22402 5161754600 16445 0ustar nakaharastaff% BOOK DOCUMENT STYLE -- Released 14 January 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \typeout{Standard Document Style `book' <14 Jan 92>.} \def\contentsname{Contents} \def\listfigurename{List of Figures} \def\listtablename{List of Tables} \def\bibname{Bibliography} \def\indexname{Index} \def\figurename{Figure} \def\tablename{Table} \def\chaptername{Chapter} \def\appendixname{Appendix} \def\partname{Part} \def\@ptsize{0} \@namedef{ds@11pt}{\def\@ptsize{1}} \@namedef{ds@12pt}{\def\@ptsize{2}} \@twosidetrue \@mparswitchtrue \def\ds@draft{\overfullrule 5pt} \def\ds@twocolumn{\@twocolumntrue} \@options \input bk1\@ptsize.sty\relax \def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} \let\endverse\endlist \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin\parsep \z@ plus\p@}\item[]} \let\endquotation=\endlist \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist \newdimen\descriptionmargin \descriptionmargin=3em \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn \else \newpage \fi \thispagestyle{empty}\c@page\z@} \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} \arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt \tabbingsep \labelsep \skip\@mpfootins = \skip\footins \fboxsep = 3pt \fboxrule = .4pt \newcounter {part} \newcounter {chapter} \newcounter {section}[chapter] \newcounter {subsection}[section] \newcounter {subsubsection}[subsection] \newcounter {paragraph}[subsubsection] \newcounter {subparagraph}[paragraph] \def\thepart {\Roman{part}} \def\thechapter {\arabic{chapter}} \def\thesection {\thechapter.\arabic{section}} \def\thesubsection {\thesection.\arabic{subsection}} \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} \def\theparagraph {\thesubsubsection.\arabic{paragraph}} \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} \def\@chapapp{\chaptername} \def\part{\cleardoublepage \thispagestyle{plain}% \if@twocolumn \onecolumn \@tempswatrue \else \@tempswafalse \fi \hbox{}\vfil \secdef\@part\@spart} \def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{part}{\thepart \hspace{1em}#1}\else \addcontentsline{toc}{part}{#1}\fi \markboth{}{}% {\centering \interlinepenalty \@M \ifnum \c@secnumdepth >-2\relax \huge\bf \partname~\thepart \par \vskip 20\p@\fi \Huge \bf #2\par}\@endpart} \def\@endpart{\vfil\newpage \if@twoside \hbox{}% \thispagestyle{empty}% \newpage \fi \if@tempswa \twocolumn \fi} \def\@spart#1{{\centering \interlinepenalty \@M \Huge \bf #1\par}\@endpart} \def\@pnumwidth{1.55em} \def\@tocrmarg {2.55em} \def\@dotsep{4.5} \setcounter{tocdepth}{2} \def\tableofcontents{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\contentsname \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}% \@starttoc{toc}\if@restonecol\twocolumn\fi} \def\l@part#1#2{\addpenalty{-\@highpenalty}% \addvspace{2.25em plus\p@}% space above part line \begingroup \@tempdima 3em \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth {\large \bf \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}}\par \nobreak \global\@nobreaktrue \everypar{\global\@nobreakfalse\everypar{}}%% suggested by \endgroup} \def\l@chapter#1#2{\addpenalty{-\@highpenalty}% \vskip 1.0em plus\p@ \@tempdima 1.5em \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \bf \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par \penalty\@highpenalty \endgroup} \def\l@section{\@dottedtocline{1}{1.5em}{2.3em}} \def\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}} \def\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}} \def\l@paragraph{\@dottedtocline{4}{10em}{5em}} \def\l@subparagraph{\@dottedtocline{5}{12em}{6em}} \def\listoffigures{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\listfigurename\@mkboth{\uppercase{\listfigurename}}% {\uppercase{\listfigurename}}}\@starttoc{lof}\if@restonecol \twocolumn\fi} \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} \def\listoftables{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\listtablename\@mkboth{\uppercase{\listtablename}}% {\uppercase{\listtablename}}}\@starttoc{lot}\if@restonecol \twocolumn\fi} \let\l@table\l@figure \def\thebibliography#1{\chapter*{\bibname\@mkboth {\uppercase{\bibname}}{\uppercase{\bibname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\hskip .11em plus.33em minus.07em}% \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=\@m} \def\endthebibliography{% \def\@noitemerr{\@warning{Empty `thebibliography' environment}}% \endlist} \newif\if@restonecol \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35\p@\twocolumn[\@makeschapterhead{\indexname}]% \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}% \thispagestyle{plain}\parindent\z@ \parskip\z@ plus .3\p@\relax\let\item\@idxitem} \def\@idxitem{\par\hangindent 40\p@} \def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}} \def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}} \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} \def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} \def\footnoterule{\kern-3\p@ \hrule width .4\columnwidth \kern 2.6\p@} \@addtoreset{footnote}{chapter} \long\def\@makefntext#1{\parindent 1em\noindent \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1} \setcounter{topnumber}{2} \def\topfraction{.7} \setcounter{bottomnumber}{1} \def\bottomfraction{.3} \setcounter{totalnumber}{3} \def\textfraction{.2} \def\floatpagefraction{.5} \setcounter{dbltopnumber}{2} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} \long\def\@makecaption#1#2{% \vskip 10\p@ \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize #1: #2\par \else \hbox to\hsize{\hfil\box\@tempboxa\hfil}% \fi} \newcounter{figure}[chapter] \def\thefigure{\thechapter.\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{\figurename~\thefigure} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} \newcounter{table}[chapter] \def\thetable{\thechapter.\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{\tablename~\thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} \def\maketitle{\begin{titlepage}% \let\footnotesize\small \let\footnoterule\relax \setcounter{page}{0}% \null \vfil \vskip 60\p@ \begin{center}% {\LARGE \@title \par}% \vskip 3em {\large \lineskip .75em \begin{tabular}[t]{c}\@author \end{tabular}\par}% \vskip 1.5em {\large \@date \par}% \end{center}\par \@thanks \vfil \null \end{titlepage}% \setcounter{footnote}{0}% \let\thanks\relax \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\maketitle\relax} \mark{{}{}} \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@evenhead{\rm \thepage\hfil \sl \leftmark}% Left heading. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Right heading. \def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne \@chapapp\ \thechapter. \ \fi ##1}}{}}% \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@ \thesection. \ \fi ##1}}}} \def\ps@myheadings{\let\@mkboth\@gobbletwo \def\@oddhead{{\sl\rightmark}\hfil \rm\thepage}% \def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark}% \def\@evenfoot{}\def\chaptermark##1{}\def\sectionmark##1{}% \def\subsectionmark##1{}} \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} \@addtoreset{equation}{chapter} \def\theequation{\thechapter.\arabic{equation}} \ps@headings \pagenumbering{arabic} \if@twocolumn \@@input twocolum.sty\relax \else \onecolumn \fi \endinput latex209-25.may.1992.orig/sty/leqno.sty100664 144 144 461 5161754600 16572 0ustar nakaharastaff% LEQNO DOCUMENT-STYLE OPTION - released 29 September 1991 % for LaTeX version 2.09 % Copyright (C) 1985, 1991 by Leslie Lamport \typeout{Document style option `leqno' - released 29 Sep 1991} \def\@eqnnum{\hbox to .01\p@{}\rlap{\reset@font\rm \hskip -\displaywidth(\theequation)}} \endinput latex209-25.may.1992.orig/sty/bk12.sty100664 144 144 12724 5161754600 16260 0ustar nakaharastaff% BOOK STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \def\@normalsize{\@setsize\normalsize{14.5pt}\xiipt\@xiipt \abovedisplayskip 12\p@ plus3\p@ minus7\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \itemsep \parsep \topsep 9\p@ plus3\p@ minus5\p@}} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \normalsize \oddsidemargin .25in \evensidemargin 1.25in \marginparwidth 1in \marginparsep 7pt \topmargin .73in \headheight 12pt \headsep .275in \topskip = 12pt \footskip 30pt \textheight = 36\baselineskip \advance\textheight by \topskip \textwidth 5in \columnsep 10pt \columnseprule 0pt \footnotesep 8.4pt \skip\footins 10.8pt plus 4pt minus 2pt \floatsep 14pt plus 2pt minus 4pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 14pt plus 4pt minus 4pt \@maxsep 20pt \dblfloatsep 14pt plus 2pt minus 4pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 10pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 10pt plus 2fil% Space between floats on float page. \@dblfpbot 0pt plus 1fil \marginparpush 7pt \parskip 0pt plus 1pt \parindent 1.5em \partopsep 3pt plus 2pt minus 2pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\@makechapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \ifnum \c@secnumdepth >\m@ne \huge\bf \@chapapp{} \thechapter \par \vskip 20\p@ \fi \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\@makeschapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\chapter{\cleardoublepage \thispagestyle{plain}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}}% Adds between-chapter space \addtocontents{lot}% {\protect\addvspace{10\p@}}% to lists of figs & tables. \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} \def\chaptermark#1{} \setcounter{secnumdepth}{2} \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} \leftmargini 2.5em \leftmarginii 2.2em \leftmarginiii 1.87em \leftmarginiv 1.7em \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\@listI{\leftmargin\leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 5\p@ plus2.5\p@ minus\p@ \parsep 2.5\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2.5\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/sty/bk11.sty100664 144 144 12526 5161754600 16257 0ustar nakaharastaff% BOOK STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt \abovedisplayskip 8\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize \oddsidemargin .25in \evensidemargin 1.25in \marginparwidth 1in \marginparsep 7pt \topmargin .73in \headheight 12pt \headsep .275in \topskip = 11pt \footskip .38in \textheight = 38\baselineskip \advance\textheight by \topskip \textwidth 5in \columnsep 10pt \columnseprule 0pt \footnotesep 7.7pt \skip\footins 10pt plus 4pt minus 2pt \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt \@maxsep 20pt \dblfloatsep 12pt plus 2pt minus 2pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil \marginparpush 5pt \parskip 0pt plus 1pt \parindent 17pt \partopsep 3pt plus 1pt minus 2pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\@makechapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \ifnum \c@secnumdepth >\m@ne \huge\bf \@chapapp{} \thechapter \par \vskip 20\p@ \fi \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\@makeschapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\chapter{\cleardoublepage \thispagestyle{plain}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}} \addtocontents{lot}% {\protect\addvspace{10\p@}} \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\normalsize\bf}} \def\chaptermark#1{} \setcounter{secnumdepth}{2} \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} \leftmargini 2.5em \leftmarginii 2.2em \leftmarginiii 1.87em \leftmarginiv 1.7em \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\@listI{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \topsep 9\p@ plus3\p@ minus5\p@ \itemsep 4.5\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4.5\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/sty/bezier.sty100664 144 144 2070 5161754600 16752 0ustar nakaharastaff% BEZIER DOCUMENT-STYLE OPTION - released 17 December 1985 % for LaTeX version 2.09 % Copyright (C) 1985 by Leslie Lamport \newcounter{@sc} \newcounter{@scp} \newcounter{@t} \newlength{\@x} \newlength{\@xa} \newlength{\@xb} \newlength{\@y} \newlength{\@ya} \newlength{\@yb} \newsavebox{\@pt} \def\bezier#1(#2,#3)(#4,#5)(#6,#7){\c@@sc#1\relax \c@@scp\c@@sc \advance\c@@scp\@ne \@xb #4\unitlength \advance\@xb -#2\unitlength \multiply\@xb \tw@ \@xa #6\unitlength \advance\@xa -#2\unitlength \advance\@xa -\@xb \divide\@xa\c@@sc \@yb #5\unitlength \advance\@yb -#3\unitlength \multiply\@yb \tw@ \@ya #7\unitlength \advance\@ya -#3\unitlength \advance\@ya -\@yb \divide\@ya\c@@sc \setbox\@pt\hbox{\vrule height\@halfwidth depth\@halfwidth width\@wholewidth}\c@@t\z@ \put(#2,#3){\@whilenum{\c@@t<\c@@scp}\do {\@x\c@@t\@xa \advance\@x\@xb \divide\@x\c@@sc \multiply\@x\c@@t \@y\c@@t\@ya \advance\@y\@yb \divide\@y\c@@sc \multiply\@y\c@@t \raise \@y \hbox to \z@{\hskip \@x\unhcopy\@pt\hss}% \advance\c@@t\@ne}}} \endinput latex209-25.may.1992.orig/sty/bk10.sty100664 144 144 12650 5161754600 16254 0ustar nakaharastaff% BOOK STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip 8.5\p@ plus3\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus2\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt \abovedisplayskip 6\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 3\p@ plus\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize \oddsidemargin .5in \evensidemargin 1.5in \marginparwidth .75in \marginparsep 7pt \topmargin .75in \headheight 12pt \headsep .25in \topskip = 10pt \footskip .35in \textheight = 41\baselineskip \advance\textheight by \topskip \textwidth 4.5in \columnsep 10pt \columnseprule 0pt \footnotesep 6.65pt \skip\footins 9pt plus 4pt minus 2pt \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt \@maxsep 20pt \dblfloatsep 12pt plus 2pt minus 2pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil \marginparpush 5pt \parskip 0pt plus 1pt \parindent 15pt \partopsep 2pt plus 1pt minus 1pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\@makechapterhead#1{% \vspace*{50\p@}% {\parindent \z@\raggedright \ifnum \c@secnumdepth >\m@ne \huge\bf \@chapapp{} \thechapter \par \vskip 20\p@ \fi \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\@makeschapterhead#1{% \vspace*{50\p@}% {\parindent \z@ \raggedright \Huge \bf #1\par \nobreak \vskip 40\p@ }} \def\chapter{\cleardoublepage \thispagestyle{plain}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter}% Change to \@afterindenttrue to have \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}}% Adds between-chapter space to \addtocontents{lot}% {\protect\addvspace{10\p@}}%lists of figs & tables. \if@twocolumn \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading \fi} \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} \def\chaptermark#1{} \setcounter{secnumdepth}{2} \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} \leftmargini 25pt \leftmarginii 22pt \leftmarginiii 18.7pt \leftmarginiv 17pt \leftmarginv 10pt \leftmarginvi 10pt \leftmargin\leftmargini \labelsep 5pt \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\@listI{\leftmargin\leftmargini \parsep 4\p@ plus2\p@ minus\p@ \topsep 8\p@ plus2\p@ minus4\p@ \itemsep 4\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/sty/article.sty100664 144 144 22426 5161754600 17144 0ustar nakaharastaff% ARTICLE STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \typeout{Standard Document Style `article' <14 Jan 92>.} \def\partname{Part} \def\contentsname{Contents} \def\listfigurename{List of Figures} \def\listtablename{List of Tables} \def\refname{References} \def\indexname{Index} \def\figurename{Figure} \def\tablename{Table} \def\abstractname{Abstract} \def\@ptsize{0} \@namedef{ds@11pt}{\def\@ptsize{1}} \@namedef{ds@12pt}{\def\@ptsize{2}} \def\ds@twoside{\@twosidetrue \@mparswitchtrue} \def\ds@draft{\overfullrule 5\p@} \newif\if@titlepage \@titlepagefalse \def\ds@titlepage{\@titlepagetrue} \def\ds@twocolumn{\@twocolumntrue} \@options \input art1\@ptsize.sty\relax \def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} \let\endverse\endlist \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin \parsep \z@ plus\p@}\item[]} \let\endquotation=\endlist \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist \def\theequation{\arabic{equation}} \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn \else \newpage \fi \thispagestyle{empty}\c@page\z@} \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} \arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt \tabbingsep \labelsep \skip\@mpfootins = \skip\footins \fboxsep = 3pt \fboxrule = .4pt \newcounter{part} \newcounter {section} \newcounter {subsection}[section] \newcounter {subsubsection}[subsection] \newcounter {paragraph}[subsubsection] \newcounter {subparagraph}[paragraph] \def\thepart {\Roman{part}} \def\thesection {\arabic{section}} \def\thesubsection {\thesection.\arabic{subsection}} \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} \def\theparagraph {\thesubsubsection.\arabic{paragraph}} \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} \def\part{\par \addvspace{4ex} \@afterindentfalse \secdef\@part\@spart} \def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{part} \addcontentsline{toc}{part}{\thepart \hspace{1em}#1}\else \addcontentsline{toc}{part}{#1}\fi {\parindent \z@ \raggedright \interlinepenalty \@M \ifnum \c@secnumdepth >\m@ne \Large \bf \partname~\thepart% THEN Print '\partname' and \par\nobreak \fi \huge \bf #2% \markboth{}{}\par }\nobreak \vskip 3ex \@afterheading } \def\@spart#1{{\parindent \z@ \raggedright \interlinepenalty \@M \huge \bf #1\par} \nobreak \vskip 3ex \@afterheading } \def\@pnumwidth{1.55em} \def\@tocrmarg {2.55em} \def\@dotsep{4.5} \setcounter{tocdepth}{3} \def\tableofcontents{\section*{\contentsname \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}% \@starttoc{toc}} \def\l@part#1#2{\addpenalty{\@secpenalty}% \addvspace{2.25em plus\p@}% \begingroup \@tempdima 3em \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth {\large \bf \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}}\par \nobreak \endgroup} \def\l@section#1#2{\addpenalty{\@secpenalty}% good place for page break \addvspace{1.0em plus\p@}% \@tempdima 1.5em \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \bf \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par \endgroup} \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} \def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} \def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} \def\listoffigures{\section*{\listfigurename \@mkboth{\uppercase{\listfigurename}}{\uppercase{\listfigurename}}}% \@starttoc{lof}} \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} \def\listoftables{\section*{\listtablename\@mkboth {\uppercase{\listtablename}}{\uppercase{\listtablename}}}% \@starttoc{lot}} \let\l@table\l@figure \def\thebibliography#1{\section*{\refname\@mkboth {\uppercase{\refname}}{\uppercase{\refname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\hskip .11em plus.33em minus.07em}% \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=1000\relax} \def\endthebibliography{% \def\@noitemerr{\@warning{Empty `thebibliography' environment}}% \endlist} \newif\if@restonecol \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35\p@\twocolumn[\section*{\indexname}]% \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}% \thispagestyle{plain}\parindent\z@ \parskip\z@ plus.3\p@\relax\let\item\@idxitem} \def\@idxitem{\par\hangindent 40\p@} \def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}} \def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}} \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} \def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} \def\footnoterule{\kern-3\p@ \hrule width .4\columnwidth \kern 2.6\p@} \long\def\@makefntext#1{\parindent 1em\noindent \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}#1} \setcounter{topnumber}{2} \def\topfraction{.7} \setcounter{bottomnumber}{1} \def\bottomfraction{.3} \setcounter{totalnumber}{3} \def\textfraction{.2} \def\floatpagefraction{.5} \setcounter{dbltopnumber}{2} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} \long\def\@makecaption#1#2{% \vskip 10\p@ \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize #1: #2\par \else \hbox to\hsize{\hfil\box\@tempboxa\hfil}% \fi} \newcounter{figure} \def\thefigure{\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{\figurename~\thefigure} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} \newcounter{table} \def\thetable{\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{\tablename~\thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} \def\maketitle{\par \begingroup \def\thefootnote{\fnsymbol{footnote}}% \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}% \if@twocolumn \twocolumn[\@maketitle]% \else \newpage \global\@topnum\z@ \@maketitle \fi\thispagestyle{plain}\@thanks \endgroup \setcounter{footnote}{0}% \let\maketitle\relax \let\@maketitle\relax \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} \def\@maketitle{\newpage \null \vskip 2em \begin{center}% {\LARGE \@title \par}% \vskip 1.5em {\large \lineskip .5em \begin{tabular}[t]{c}\@author \end{tabular}\par}% \vskip 1em {\large \@date}% \end{center}% \par \vskip 1.5em} \def\abstract{\if@twocolumn \section*{\abstractname}% \else \small \begin{center}% {\bf \abstractname\vspace{-.5em}\vspace{\z@}}% \end{center}% \quotation \fi} \def\endabstract{\if@twocolumn\else\endquotation\fi} \mark{{}{}} \if@twoside \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@evenhead{\rm \thepage\hfil \sl \leftmark}% Left heading. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Right heading. \def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}{}}% \def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne \thesubsection\hskip 1em\relax \fi ##1}}} \else \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Heading. \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}}} \fi \def\ps@myheadings{\let\@mkboth\@gobbletwo \def\@oddhead{{\sl\rightmark}\hfil \rm\thepage}% \def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark}% \def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}} \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} \ps@plain \pagenumbering{arabic} \if@twoside\else\raggedbottom\fi \if@twocolumn \@@input twocolum.sty\relax \else \onecolumn \fi \if@titlepage \@@input titlepag.sty\relax \fi \endinput latex209-25.may.1992.orig/sty/art12.sty100664 144 144 10436 5161754600 16450 0ustar nakaharastaff% ARTICLE STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \def\@normalsize{\@setsize\normalsize{14.5pt}\xiipt\@xiipt \abovedisplayskip 12\p@ plus3\p@ minus7\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \itemsep \parsep \topsep 9\p@ plus3\p@ minus5\p@}} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \normalsize \if@twoside \oddsidemargin 21pt \evensidemargin 59pt \marginparwidth 85pt \else \oddsidemargin 39.5pt \evensidemargin 39.5pt \marginparwidth 68pt \fi \marginparsep 10pt \topmargin 27pt \headheight 12pt \headsep 25pt \topskip = 12pt \footskip 30pt \textheight = 36\baselineskip \advance\textheight by \topskip \textwidth 390pt \columnsep 10pt \columnseprule 0pt \footnotesep 8.4pt \skip\footins 10.8pt plus 4pt minus 2pt \floatsep 14pt plus 2pt minus 4pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 14pt plus 4pt minus 4pt \@maxsep 20pt \dblfloatsep 14pt plus 2pt minus 4pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 10pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 10pt plus 2fil% Space between floats on float page. \@dblfpbot 0pt plus 1fil \marginparpush 7pt \parskip 0pt plus 1pt \parindent 1.5em \partopsep 3pt plus 2pt minus 2pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} \setcounter{secnumdepth}{3} \def\appendix{\par \setcounter{section}{0} \setcounter{subsection}{0} \def\thesection{\Alph{section}}} \leftmargini 2.5em \leftmarginii 2.2em \leftmarginiii 1.87em \leftmarginiv 1.7em \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\@listI{\leftmargin\leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 5\p@ plus2.5\p@ minus\p@ \parsep 2.5\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2.5\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/sty/art11.sty100664 144 144 10360 5161754600 16443 0ustar nakaharastaff% ARTICLE STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt \abovedisplayskip 8\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize \if@twoside \oddsidemargin 36pt \evensidemargin 74pt \marginparwidth 100pt \else \oddsidemargin 54pt \evensidemargin 54pt \marginparwidth 83pt \fi \marginparsep 10pt \topmargin 27pt \headheight 12pt \headsep 25pt \topskip = 11pt \footskip 30pt \textheight = 38\baselineskip \advance\textheight by \topskip \textwidth 360pt \columnsep 10pt \columnseprule 0pt \footnotesep 7.7pt \skip\footins 10pt plus 4pt minus 2pt \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt \@maxsep 20pt \dblfloatsep 12pt plus 2pt minus 2pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil \marginparpush 5pt \parskip 0pt plus 1pt \parindent 17pt \partopsep 3pt plus 1pt minus 2pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} \setcounter{secnumdepth}{3} \def\appendix{\par \setcounter{section}{0} \setcounter{subsection}{0} \def\thesection{\Alph{section}}} \leftmargini 2.5em \leftmarginii 2.2em \leftmarginiii 1.87em \leftmarginiv 1.7em \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\@listI{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \topsep 9\p@ plus3\p@ minus5\p@ \itemsep 4.5\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4.5\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep\p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/sty/art10.sty100664 144 144 10335 5161754600 16444 0ustar nakaharastaff% ARTICLE STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \lineskip 1pt \normallineskip 1pt \def\baselinestretch{1} \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \let\@listi\@listI} \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip 8.5\p@ plus3\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus2\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt \abovedisplayskip 6\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 3\p@ plus\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize \if@twoside \oddsidemargin 44pt \evensidemargin 82pt \marginparwidth 107pt \else \oddsidemargin 63pt \evensidemargin 63pt \marginparwidth 90pt \fi \marginparsep 11pt \topmargin 27pt \headheight 12pt \headsep 25pt \topskip = 10pt \footskip 30pt \textheight = 43\baselineskip \advance\textheight by \topskip \textwidth 345pt \columnsep 10pt \columnseprule 0pt \footnotesep 6.65pt \skip\footins 9pt plus 4pt minus 2pt \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt \@maxsep 20pt \dblfloatsep 12pt plus 2pt minus 2pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil \marginparpush 5pt \parskip 0pt plus 1pt \parindent 15pt \partopsep 2pt plus 1pt minus 1pt \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} \setcounter{secnumdepth}{3} \def\appendix{\par \setcounter{section}{0} \setcounter{subsection}{0} \def\thesection{\Alph{section}}} \leftmargini 25pt \leftmarginii 22pt \leftmarginiii 18.7pt \leftmarginiv 17pt \leftmarginv 10pt \leftmarginvi 10pt \leftmargin\leftmargini \labelsep 5pt \labelwidth\leftmargini\advance\labelwidth-\labelsep \def\@listI{\leftmargin\leftmargini \parsep 4\p@ plus2\p@ minus\p@ \topsep 8\p@ plus2\p@ minus4\p@ \itemsep 4\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/doc/ 40775 144 144 0 6271446675 14600 5ustar nakaharastafflatex209-25.may.1992.orig/doc/twocolum.doc100664 144 144 1174 5161754600 17223 0ustar nakaharastaff% TWOCOLUMN DOCUMENT-STYLE OPTION - released 27 January 1985 % for LaTeX version 2.09 % Copyright (C) 1985 by Leslie Lamport \twocolumn \sloppy \flushbottom \parindent 1em \leftmargini 2em \leftmarginv .5em \leftmarginvi .5em % % SIDE MARGINS: % % twocolumn style has wide lines. Uses same margins for all pages, even % with two-sided printing, to allow reasonable \marginparwidth \oddsidemargin 30pt \evensidemargin 30pt \marginparwidth 48pt \marginparsep 10pt % Horizontal space between outer margin and % marginal note \textwidth 410pt % Width of text line. \endinput latex209-25.may.1992.orig/doc/letter.doc100664 144 144 74644 5166176400 16706 0ustar nakaharastaff% LETTER STANDARD DOCUMENT STYLE -- Released 25 March 92 % for LaTeX version 2.09 % Copyright (C) 1991 by Leslie Lamport \typeout{Standard Document Style `letter' <25 Mar 92>.} % PREPARING A FOREIGN LANGUAGE VERSION: % % This document style is for documents prepared in the English language. % To prepare a version for another language, various English words must % be replaced. All the English words that required replacement are % indicated below, where we give the name of the command in which the % words appear, and which must be redefined, with the actual words % underlined. % % \cc: \def\ccname{cc} % ~~ % % \encl: \def\enclname{encl} % ~~~~ % % \page: \def\pagename{Page} % ~~~~ % % Running head: \def\headtoname{To} % ~~ % CHOOSING THE TYPE SIZE: % % The type size option is handled by \def'ing \@ptsize to the % following values: % 10pt : 0, 11pt : 1, 12pt : 2 % Then loading the different fonts accordingly. % \def\@ptsize{0} % Default is 10pt. \@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option. \@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option. % no twoside option % \@twosidefalse % draft option % % \overfullrule = 0pt % Default is don't mark overfull % hboxes. \def\ds@draft{\overfullrule 5\p@} % Causes overfull hboxes to be marked. % The \@options command causes the execution of every command \ds@FOO % which is defined and for which the user typed the FOO option in his % \documentstyle command. For every option BAR he typed for which % \ds@BAR is not defined, the file BAR.sty will be read after the % present (main) .STY file is executed. \@options % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. % (Actual value will be % \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, % the document style defines \@normalsize instead of \normalsize. % This is done only for \normalsize, not for any other size-changing % commands. \ifcase \@ptsize\relax % 10pt option \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 22 Dec 87 \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip 8.5\p@ plus3\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus2\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt \abovedisplayskip 6\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 3\p@ plus\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \or % 11pt option \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 22 Dec 87 \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87 \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt \abovedisplayskip 8\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87 \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \or % 12pt option \def\@normalsize{\@setsize\normalsize{15pt}\xiipt\@xiipt \abovedisplayskip 12\p@ plus3\p@ minus7\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 22 Dec 87 \def\small{\@setsize\small{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \parsep 4.5\p@ plus2\p@ minus\p@ \itemsep \parsep \topsep 9\p@ plus3\p@ minus5\p@}} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \fi \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and % side of page. Dimensions shrink by about 2 percent % SIDE MARGINS: \oddsidemargin 53pt % Left margin on odd-numbered pages. \evensidemargin 53pt % Left margin on even-numbered pages. \marginparwidth 90pt % Width of marginal notes. \marginparsep 11pt % Horizontal space between outer margin and % marginal note \marginparpush 5pt % Minimum vertical space between marginal notes. % VERTICAL SPACING: % Top of page: \topmargin 27pt % Nominal distance from top of page to top of % box containing running head. \headheight 12pt % Height of box containing running head. \headsep 45pt % Space between running head and text. % \topskip = 10pt % '\baselineskip' for first line of page. % Bottom of page: \footheight 12pt % Height of box containing running foot. \footskip 25pt % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: \textheight 505pt % Height of text (including footnotes and % figures, excluding running head and foot). \textwidth 365pt % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. \raggedbottom % 'ragged bottom' (all pages set to natural % height, with no stretch or shrinkage) % FOOTNOTES: \footnotesep 12pt % Height of strut placed at the beginning of every % footnote. \skip\footins 10pt plus 2pt minus 4pt % Space between last line of % text and top of first footnote. % FLOATS: % The following items must be defined, even though there are no % floats in this style. \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt \dblfloatsep 12pt plus 2pt minus 2pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@maxsep 20pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil % **************************************** % * LETTER COMMANDS * % **************************************** % % The following declarations, shown with examples, give information % about the sender: % % \name{Dr. L. User} : to be used for the return address on the % envelope. % \signature{Larry User} : goes after the closing. % \address{3245 Foo St.\\Gnu York} : used as the return address in the % letter and on the envelope. If not declared, then an % institutional standard address is used. % \location{Room 374} : Acts as modifier to the standard institutional % address. % \telephone{(415)123-4567} : Just in case some style puts it on the % letter. % % The \makelabels declaration causes mailing labels to be made. It % must go before the \begin{document} command. % % The letter environment: creates a new letter, starting from page 1. % (The first page is unnumbered.) It has a single argument, which % is the adressee and his address, as in % \begin{letter}{Sam Jones \\ % Institute for Retarded Study\\ Princeton, N.J.} % % Local declarations, such as \address, can follow the \begin{letter}. % % Text is begun with the \opening command, whose argument generates the % salutation, as in % \opening{Dear Henry,} % The body of the letter follows, ended by a \closing command, as in % \closing{Yours truly,} % The 'signature' is provided automatically. % % After the \closing you can put arbitrary stuff, which is typeset % with \parindent = 0 and no page breaking. Commands designed % for use after the closing are: % % \cc{Tinker\\Evers\\Chance} -- which produces: % cc: Tinker % Evers % Chance % % \encl{Foo(2)\\Bar} -- which produces: % encl: Foo(2) % Bar % % % DOCUMENT STYLE PARAMETERS AND COMMANDS. CHANGE THESE TO % CUSTOMIZE LETTER STYLE. % % \opening{Dear Mr. Foo:}- % Should produce everything up to and including the 'Dear Mr. Foo:' % and a \par command that follows. Since there's a \vfil at the % bottom of every page, it can add vertical fil to position a % short letter. It should use the following commands: % % \toname : name part of 'to' address. % Will be one line long. % \toaddress : address part of 'to' address. % Lines separated by \\. % \fromname : name of sender. % \fromaddress : argument of current \address declaration-- % null if none. Should use standard institutional % address if null. % \fromlocation : argument of current \location declaration-- % null if none. % \telephonenum : argument of current \telephone declaration-- % null if none. % % Note that \ifx\foo\@empty tests for a null value of \foo. % % \closing{TXT} : Generates the closing matter, and the signature. % An obvious thing to do is to use a \parbox for the closing % and the signature. Should use the following: % % \fromsig : argument of current \signature declaration or, % if null, the \fromname . % \stopbreaks : a macro that inhibits page breaking. % % \cc{ARG} and \encl{ARG} : obvious use of a \parbox[t] . % % \ps : The only thing that this needs to do is call \startbreaks, % which allows page breaking again. % % \stopletter : Command called by \endletter to do the following: % * Add any desired fil or other material at the end of the % letter. % * Define \returnaddress to be the return address for the mailing % label. More precisely, it is the first argument of the \mlabel % command described below. It should be \def'd to null if the % return address doesn't appear on the labels. Any command, % other than \\, that should not be expanded until the \mlabel % command is actually executed must be preceded by \protect. % Whenever possible, \protect commands in the definition of % \returnaddress---it's much more efficient that way. In % particular, when the standard return address is used, you % should \def \returnaddress to something like % \protect\standardreturnaddress . % % CUSTOMIZING THE LABELS % % Commands for generating the labels are put on the .AUX file, which is % read in and processed by the \end{document} command. You have to % define the following two commands: % % \startlabels : Should reset the page layout parameters if % necessary. % % \mlabel{RETURN ADDRESS}{TO ADRESS} : Command to generate a single % label. % % **************************************** % * THE SRI LETTER FORMAT * % **************************************** % % Much of the following is copied from the letter format % in the TeXbook. \newdimen\longindentation \longindentation=.5\textwidth \newdimen\indentedwidth \indentedwidth=\textwidth \advance\indentedwidth -\longindentation \def\opening#1{\ifx\@empty\fromaddress \thispagestyle{firstpage}% {\raggedleft\@date\par}% \else % home address \thispagestyle{empty}% {\raggedleft\begin{tabular}{l}\ignorespaces \fromaddress \\*[2\parskip]% \@date \end{tabular}\par}% \fi \vspace{2\parskip}% {\raggedright \toname \\ \toaddress \par}% \vspace{2\parskip}% #1\par\nobreak} \long\def\closing#1{\par\nobreak\vspace{\parskip}% \stopbreaks \noindent \ifx\@empty\fromaddress\else \hspace*{\longindentation}\fi \parbox{\indentedwidth}{\raggedright \ignorespaces #1\\[6\medskipamount]%% changed 20 Jan 88 \ifx\@empty\fromsig \fromname \else \fromsig \fi\strut}% \par} \def\ps{\par\startbreaks} \def\cc#1{\par\noindent \parbox[t]{\textwidth}{\@hangfrom{\reset@font\rm \ccname: }% \ignorespaces #1\strut}\par} \def\encl#1{\par\noindent \parbox[t]{\textwidth}{\@hangfrom{\reset@font\rm \enclname: }% \ignorespaces #1\strut}\par} \def\stopletter{} % Labels \def\returnaddress{} \newcount\labelcount % The following \startlabels command sets things up for producing % labels in two columns of five 2" X 4-1/4" labels each, suitable % for reproducing onto Avery brand number 5352 address labels. % 91/06/15 RmS % Replace \xpt by toplevel size changing command, depending on \@ptsize. \def\startlabels{\labelcount\z@ \pagestyle{empty}% \let\@texttop\relax \topmargin -50\p@ \headsep \z@ \oddsidemargin -35\p@ \evensidemargin -35\p@ \textheight 10in \@colht\textheight \@colroom\textheight \vsize\textheight \textwidth 550\p@ \columnsep 25\p@ \ifcase \@ptsize\relax \normalsize \or \small \or \footnotesize \fi \baselineskip \z@ \lineskip \z@ \boxmaxdepth \z@ \parindent \z@ %% corrected 3/5/86 \twocolumn\relax} \def\mlabel#1#2{\setbox0\vbox{\parbox[b]{3.6in}% {\strut\ignorespaces #2}}% \vbox to 2in{\vss \box0 \vss}} % **************************************** % * THE GENERIC LETTER COMMANDS * % **************************************** % %% FMi & RmS: added \leavevmode to catch empty argument, 16 Aug 91 %% RmS ...and added \ignorespaces, 21 Feb 92 \long\def\letter#1{\newpage \c@page\@ne \interlinepenalty=200 % smaller than the TeXbook value \@processto{\leavevmode\ignorespaces #1}} \def\endletter{\stopletter\@@par\pagebreak\@@par \if@filesw \begingroup % \def\protect{\string} \let\\=\relax \def\protect##1{\string##1\space}% \immediate\write\@auxout{\string\mlabel{\returnaddress}{\toname \\\toaddress}}% \endgroup \fi} % \@processto gets the \toname and \toaddress from the letter % environment's macro. % \long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty \else \@yproc #1@@@\fi} \long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}} \long\def\@yproc #1\\#2@@@{\def\toaddress{#2}} \def\stopbreaks{\interlinepenalty \@M \def\par{\@@par\nobreak}\let\\=\@nobreakcr \let\vspace\@nobreakvspace} \def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}} \def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi} \def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}} \def\startbreaks{\let\\=\@normalcr \interlinepenalty 200\def\par{\@@par\penalty 200\relax}} %% \relax added 20 Sep 88 \def\name#1{\def\fromname{#1}} \def\fromname{} \def\signature#1{\def\fromsig{#1}} \def\fromsig{} \long\def\address#1{\def\fromaddress{#1}} \def\fromaddress{} \def\location#1{\def\fromlocation{#1}} \def\fromlocation{} \def\telephone#1{\def\telephonenum{#1}} \def\telephonenum{} % \document redefined so it writes '\startlabels\@startlabels' on the % AUX file if it's making one. % % % 91/03/26 FMi: |\process@table| added to support NFSS. % This will also work with old lfonts if no other style defines % |\process@table|. % % 92/02/21 RmS: added \@noskipsecfalse setting in conformance with % change in latex.tex. % \def\document{\endgroup \@colht\textheight \@colroom\textheight \vsize\textheight \columnwidth\textwidth \@clubpenalty\clubpenalty \if@twocolumn \advance\columnwidth -\columnsep \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue \fi \hsize\columnwidth \linewidth\hsize \begingroup\@floatplacement\@dblfloatplacement\endgroup \if@filesw \immediate\openout\@mainaux=\jobname.aux \immediate\write\@mainaux {\string\startlabels\string\@startlabels}\fi \csname process@table\endcsname \let\glb@currsize\@empty %% Force \baselineskip initialisation. \def\do##1{\let ##1\@notprerr}% \@preamblecmds \let\do\noexpand \@normalsize\everypar{}\@noskipsecfalse} % Redefine \enddocument so it outputs the last page of labels, % if necessary. % \def\enddocument{\@checkend{document}\newpage\begingroup \if@filesw \immediate\closeout\@mainaux \makeatletter\input \jobname.aux\clearpage \fi\endgroup\deadcycles\z@\@@end} \def\makelabels{\@fileswtrue} \def\@startlabels{} % **************************************** % * PAGE STYLES * % **************************************** % % The letter style sets \@texttop to \vskip 0pt plus .00006fil on % the first page of a letter, which centers a short letter on the page. % This fil value may have to be changed for other letterheads. \def\@texttop{\ifnum\c@page=1\vskip \z@ plus.00006fil\relax\fi} \def\ps@headings{\def\@oddhead{\sl \headtoname{} \ignorespaces\toname \hfil \@date \hfil \pagename{} \thepage}\def\@oddfoot{}} \def\ps@empty{\def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{}} % The firstpage heading style puts the telephone number % in the proper place for the SRI letterhead. It must be changed for % other sites. % 91/06/15 RmS % Replace \xpt by toplevel size changing command, depending on \@ptsize. \def\ps@firstpage{\def\@oddhead{}\def\@oddfoot{\raisebox {-45\p@}[\z@]{\hbox to \textwidth{\hspace*{100\p@}% \ifcase \@ptsize\relax \normalsize \or \small \or \footnotesize \fi \fromlocation \hfill \telephonenum}}\hss}% \def\@evenhead{}\def\@evenfoot{}} \def\ps@plain{\def\@oddhead{}\def\@oddfoot{\rm\hfil\thepage \hfil}\def\@evenhead{}\let\@evenfoot\@oddfoot} % **************************************** % * PARAGRAPHING * % **************************************** % \parskip .7em % Extra vertical space between paragraphs. \parindent 0pt % Width of paragraph indentation. %\topsep .4em % Extra vertical space, in addition to % \parskip, added above and below list and % paragraphing environments. \partopsep 0pt % Extra vertical space, in addition to % \parskip and \topsep, added when user % leaves blank line before environment. %\itemsep .4em % Extra vertical space, in addition to % \parskip, added between list items. % See \@listI for values of \topsep and \itemsep % (Change made 17 Oct 91) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % SET BY THE LETTER COMMANDS % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the % list environment's parameters. See the LaTeX manual for an % explanation of the meanings of the parameters. Defaults for the list % environment are set as follows. First, \rightmargin, \listparindent % and \itemindent are set to 0pt. Then, for a Kth level list, the % command \@listK is called, where 'K' denotes 'i', 'ii', ... , 'vi'. % (I.e., \@listiii is called for a third-level list.) By convention, % \@listK should set \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. \leftmargini 2.5em \leftmarginii 2.2em % > \labelsep + width of '(m)' \leftmarginiii 1.87em % > \labelsep + width of 'vii.' \leftmarginiv 1.7em % > \labelsep + width of 'M.' \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelwidth\leftmargini\advance\labelwidth-\labelsep \labelsep 5pt \parsep 0pt % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 17 Oct 91) \def\@listI{\leftmargin\leftmargini \topsep .4em\relax \itemsep .4em\relax} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep .2em \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} % ENUMERATE % Enumeration is done with four counters: enumi, enumii, enumiii % and enumiv, where enumN controls the numbering of the Nth level % enumeration. The label is generated by the commands \labelenumi % ... \labelenumiv. The expansion of \p@enumN\theenumN defines the % output of a \ref command. %% RmS 92/02/26 corrected definitions of \labelenum... to use \theenum... \def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} % ITEMIZE % Itemization is controlled by four commands: \labelitemi, % \labelitemii, \labelitemiii, and \labelitemiv, which define the % labels of the various itemization levels. \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} % VERSE % The verse environment is defined by making clever use of the % list environment's parameters. The user types \\ to end a line. % This is implemented by \let'in \\ equal \@centercr. % \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -15\p@\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 15\p@}\item[]} \let\endverse\endlist % QUOTATION % Fills lines % Indents paragraph % \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin}\item[]} \let\endquotation=\endlist % QUOTE -- same as quotation except no paragraph indentation, % \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist % DESCRIPTION % % To change the formatting of the label, you must redefine % \descriptionlabel. \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist % **************************************** % * OTHER ENVIRONMENTS * % **************************************** % % % THEOREM % \@begintheorem ... \@endtheorem are the commands executed at the % beginning and end of a (user-defined) theorem-like environment. % Except \@opargbegintheorem is executed when an optional argument is % given. Cf. LATEX.TEX. % % \def\@begintheorem#1#2{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2}]} % \def\@opargbegintheorem#1#2#3{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]} % \def\@endtheorem{\endtrivlist} % EQUATION and EQNARRAY % % \newcounter{equation} % Default is for left-hand side of equations to be flushleft. % To make them flushright, do: % \let\@eqnsel = \hfil % \def\theequation{\arabic{equation}} % \jot = 3pt % Extra space added between lines of an eqnarray % environment \arraycolsep 5pt % Half the space between columns in an array % environment. \tabcolsep 6pt % Half the space between columns in a tabular % environment. \arrayrulewidth .4pt % Width of rules in array and tabular environment. \doublerulesep 2pt % Space between adjacent rules in array or tabular % environment. % TABBING % \tabbingsep \labelsep % Space used by the \' command. % (See LaTeX manual.) % MINIPAGE % \@minipagerestore is called upon entry to a minipage environment to % set up things that are to be handled differently inside a minipage % environment. In the current styles, it does nothing. % % \skip\@mpfootins : plays same role for footnotes in a minipage as % \skip\footins does for ordinary footnotes \skip\@mpfootins = \skip\footins % FRAMEBOX % \fboxsep = 3pt % Space left between box and text by \fbox and % \framebox. \fboxrule = .4pt % Width of rules in box made by \fbox and \framebox. % **************************************** % * FOOTNOTES * % **************************************** % % \footnoterule is a macro to draw the rule separating the footnotes % from the text. It should take zero vertical space, so it needs a % negative skip to compensate for any positive space taken by the rule. % (See PLAIN.TEX.) \def\footnoterule{\kern-1\p@ \hrule width .4\columnwidth \kern .6\p@} % The \hrule has default height of .4pt. % \newcounter{footnote} % The numbering style (arabic, alph, etc.) for ordinary footnotes % is defined by the macro \thefootnote. % % \@makefntext{NOTE} : % Must produce the actual footnote, using \@thefnmark as the % mark of the footnote and NOTE as the text. It is called when % effectively inside a \parbox, with \hsize = \columnwidth. % \long\def\@makefntext#1{\noindent %Macro to make the text of a footnote \hangindent 5\p@\hbox to5\p@{\hss $\m@th^{\@thefnmark}$}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. Default definition used. % **************************************** % * FIGURES AND TABLES * % **************************************** % % Float placement parameters set by some commands. Easier to define % them than change the commands. \c@topnumber=2 \def\topfraction{.7} \c@bottomnumber=1 \def\bottomfraction{.3} \c@totalnumber=3 \def\textfraction{.2} \def\floatpagefraction{.5} \c@dbltopnumber= 2 \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} % **************************************** % * MISCELLANEOUS * % **************************************** % % DATE % \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations \smallskipamount=.5\parskip % These values are used by the % letter macros. \medskipamount=\parskip \bigskipamount=2\parskip \ps@plain % 'plain' page style \pagenumbering{arabic} % Arabic page numbers \onecolumn % Single-column \@fileswfalse % Inhibits writing of .AUX file. \endinput latex209-25.may.1992.orig/doc/titlepag.doc100664 144 144 3302 5161754600 17156 0ustar nakaharastaff% TITLEPAGE DOCUMENT-STYLE OPTION - released 16 June 1991 % for LaTeX version 2.09 % Copyright (C) 1991 by Leslie Lamport \typeout{Document Style Option `titlepage' -- Released 16 June 1991.} % PREPARING A FOREIGN LANGUAGE VERSION: % % This document style is for documents prepared in the English language. % To prepare a version for another language, various English words must % be replaced. All the English words that require replacement are % indicated below, where we give the name of the command in which the % words appear, and which must be redefined, with the actual words % underlined. % % abstract environment: %\def\abstractname{Abstract} % ~~~~~~~~ \def\maketitle{\begin{titlepage}% \let\footnotesize\small % Local definitions to make \thanks \let\footnoterule\relax % produce \normalsize footnotes with no \setcounter{page}{0}% % separating rule. \null \vfil \vskip 60\p@ % To adjust centering. \begin{center}% {\LARGE \@title \par}% % Set title in \LARGE size. \vskip 3em % Vertical space after title. {\large % Set author in \large size. \lineskip .75em \begin{tabular}[t]{c}\@author \end{tabular}\par}% \vskip 1.5em % Vertical space after author. {\large \@date \par}% % Set date in \large size. \end{center}\par \@thanks \vfil \null \end{titlepage}% \setcounter{footnote}{0}% % Footnotes start at zero again. \let\thanks\relax \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\maketitle\relax} \def\abstract{\titlepage \null\vfil \begin{center} \bf \abstractname \end{center}} \def\endabstract{\par\vfil\null\endtitlepage} \endinput latex209-25.may.1992.orig/doc/report.doc100664 144 144 70776 5161754600 16723 0ustar nakaharastaff% REPORT STANDARD DOCUMENT STYLE -- Released 14 January 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \typeout{Standard Document Style `report' <14 Jan 92>.} % PREPARING A FOREIGN LANGUAGE VERSION: % % This document style is for documents prepared in the English language. % To prepare a version for another language, various English words must % be replaced. All the English words that required replacement are % indicated below, where we give the name of the command in which the % words appear, and which must be redefined, with the actual words % underlined. % % \tableofcontents: \def\contentsname{Contents} % ~~~~~~~~ % % \listoffigures: \def\listfigurename{List of Figures} % ~~~~~~~~~~~~~~~ % % \listoftables: \def\listtablename{List of Tables} % ~~~~~~~~~~~~~~ % % \thebibliography: \def\bibname{Bibliography} % ~~~~~~~~~~~~ % % \theindex: \def\indexname{Index} % ~~~~~ % % figure environment: \def\figurename{Figure} % ~~~~~~ % % table environment: \def\tablename{Table} % ~~~~~ % % \chapter: \def\chaptername{Chapter} % ~~~~~~~ % \appendix: \def\appendixname{Appendix} % ~~~~~~~~ % \part \def\partname{Part} % ~~~~ % abstract environment: \def\abstractname{Abstract} % ~~~~~~~~ % % CHOOSING THE TYPE SIZE: % % The type size option is handled by reading a different file for each % size, as follows, to define font size-specific commands: % 10pt : REP10, 11pt : REP11, 12pt : REP12 % Implemented by \def'ing \@ptsize to last digit of file name. % \def\@ptsize{0} % Default is REP10.STY \@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option reads in REP11.STY \@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option reads in REP12.STY % Two-side or one-side printing. % % \@twosidefalse % Default is one-sided printing. \def\ds@twoside{\@twosidetrue % Defines twoside option. \@mparswitchtrue} % Marginpars go on outside of page. % draft option % % \overfullrule = 0pt %Default is don't mark overfull hboxes. \def\ds@draft{\overfullrule 5pt} % Causes overfull hboxes to be marked. % FMi 91/03/30: made twocolum.sty a file and twocolumn an option. % RmS 91/10/15: moved actual reading of twocolumn.sty % to the end of this file. %\def\ds@twocolumn{\@@input twocolum.sty\relax} \def\ds@twocolumn{\@twocolumntrue} % The \@options command causes the execution of every command \ds@FOO % which is defined and for which the user typed the FOO option in his % \documentstyle command. For every option BAR he typed for which % \ds@BAR is not defined, the file BAR.sty will be read after the % present (main) .STY file is executed. \@options \input rep1\@ptsize.sty\relax % **************************************** % * LISTS * % **************************************** % % ENUMERATE % Enumeration is done with four counters: enumi, enumii, enumiii % and enumiv, where enumN controls the numbering of the Nth level % enumeration. The label is generated by the commands \labelenumi % ... \labelenumiv. The expansion of \p@enumN\theenumN defines the % output of a \ref command. % % 16 Mar 88 -- changed defs of \labelenum... to use \theenum... \def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} % ITEMIZE % Itemization is controlled by four commands: \labelitemi, \labelitemii, % \labelitemiii, and \labelitemiv, which define the labels of the % various itemization levels. \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} % VERSE % The verse environment is defined by making clever use of the % list environment's parameters. The user types \\ to end a line. % This is implemented by \let'in \\ equal \@centercr. % \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} \let\endverse\endlist % QUOTATION % Fills lines % Indents paragraph % \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin\parsep \z@ plus\p@}\item[]} \let\endquotation=\endlist % QUOTE -- same as quotation except no paragraph indentation, % \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist % DESCRIPTION % % To change the formatting of the label, you must redefine % \descriptionlabel. \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist \newdimen\descriptionmargin \descriptionmargin=3em % **************************************** % * OTHER ENVIRONMENTS * % **************************************** % % % THEOREM % \@begintheorem ... \@endtheorem are the commands executed at the % beginning and end of a (user-defined) theorem-like environment. % Except \@opargbegintheorem is executed when an optional argument is % given. Cf. LATEX.TEX. % % \def\@begintheorem#1#2{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2}]} % \def\@opargbegintheorem#1#2#3{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]} % \def\@endtheorem{\endtrivlist} % TITLEPAGE % In the normal environments, the titlepage environment does nothing % but start and end a page, and inhibit page numbers. It also resets % the page number to zero. In two-column style, it still makes a % one-column page. \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn \else \newpage \fi \thispagestyle{empty}\c@page\z@} \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} % ARRAY AND TABULAR % \arraycolsep 5pt % Half the space between columns in an array % environment. \tabcolsep 6pt % Half the space between columns in a tabular % environment. \arrayrulewidth .4pt % Width of rules in array and tabular environment. \doublerulesep 2pt % Space between adjacent rules in array or tabular % environment. % TABBING % \tabbingsep \labelsep % Space used by the \' command. % (See LaTeX manual.) % MINIPAGE % \@minipagerestore is called upon entry to a minipage environment to % set up things that are to be handled differently inside a minipage % environment. In the current styles, it does nothing. % % \skip\@mpfootins : plays same role for footnotes in a minipage as % \skip\footins does for ordinary footnotes \skip\@mpfootins = \skip\footins % FRAMEBOX % \fboxsep = 3pt % Space left between box and text by \fbox and % \framebox. \fboxrule = .4pt % Width of rules in box made by \fbox and \framebox. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % DEFINE COUNTERS: % % \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is % reset to zero when counter OLDCTR is % stepped. % Counter OLDCTR must already be defined. \newcounter {part} \newcounter {chapter} \newcounter {section}[chapter] \newcounter {subsection}[section] \newcounter {subsubsection}[subsection] \newcounter {paragraph}[subsubsection] \newcounter {subparagraph}[paragraph] % For any counter CTR, \theCTR is a macro that defines the printed % version of counter CTR. It is defined in terms of the following % macros: % % \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral. % \roman{COUNTER} : Its value printed as a lower-case roman numberal. % \Roman{COUNTER} : Its value printed as an upper-case roman numberal. % \alph{COUNTER} : Value of COUNTER printed as a lower-case letter: % 1 = a, 2 = b, etc. % \Alph{COUNTER} : Value of COUNTER printed as an upper-case letter: % 1 = A, 2 = B, etc. % \def\thepart {\Roman{part}} \def\thechapter {\arabic{chapter}} \def\thesection {\thechapter.\arabic{section}} \def\thesubsection {\thesection.\arabic{subsection}} \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} \def\theparagraph {\thesubsubsection.\arabic{paragraph}} \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} % \@chapapp is initially defined to be '\chaptername'. The \appendix % command redefines it to be '\appendixname'. % \def\@chapapp{\chaptername} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PART % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\part{\cleardoublepage % Starts new page. \thispagestyle{plain}% % Page style of part page is 'plain' \if@twocolumn % IF two-column style \onecolumn % THEN \onecolumn \@tempswatrue % @tempswa := true \else \@tempswafalse % ELSE @tempswa := false \fi % FI \hbox{}\vfil % Add fil glue to center title %% \bgroup \centering % BEGIN centering %% Removed 19 Jan 88 \secdef\@part\@spart} \def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2 \refstepcounter{part}% % THEN step % part counter \addcontentsline{toc}{part}{\thepart % add toc line \hspace{1em}#1}\else % ELSE add % unnumb. line \addcontentsline{toc}{part}{#1}\fi % FI \markboth{}{}% {\centering % %% added 19 Jan 88 \interlinepenalty \@M %% RmS added 11 Nov 91 \ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2 \huge\bf \partname~\thepart % THEN Print '\partname' and \par % number in \huge bold. \vskip 20\p@\fi % Add space before title. \Huge \bf % FI #2\par}\@endpart} % Print Title in \Huge bold. % Bug Fix 13 Nov 89: #1 -> #2 % \@endpart finishes the part page % \def\@endpart{\vfil\newpage % End page with 1fil glue. \if@twoside % IF twoside printing \hbox{}% % THEN Produce totally blank page \thispagestyle{empty}% \newpage \fi % FI \if@tempswa % IF @tempswa = true \twocolumn % THEN \twocolumn \fi} % FI \def\@spart#1{{\centering % %% added 19 Jan 88 \interlinepenalty \@M %% RmS added 11 Nov 91 \Huge \bf % Print title in \Huge boldface #1\par}\@endpart} % **************************************** % * TABLE OF CONTENTS, ETC. * % **************************************** % % A \subsection command writes a % \contentsline{subsection}{TITLE}{PAGE} % command on the .toc file, where TITLE contains the contents of the % entry and PAGE is the page number. If subsections are being numbered, % then TITLE will be of the form % \numberline{NUM}{HEADING} % where NUM is the number produced by \thesubsection. Other sectioning % commands work similarly. % % A \caption command in a 'figure' environment writes % \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE} % on the .lof file, where NUM is the number produced by \thefigure and % CAPTION is the figure caption. It works similarly for a 'table' % environment. % % The command \contentsline{NAME} expands to \l@NAME. So, to specify % the table of contents, we must define \l@chapter, \l@section, % \l@subsection, ... ; to specify the list of figures, we must define % \l@figure; and so on. Most of these can be defined with the % \@dottedtocline command, which works as follows. % % \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} % LEVEL : An entry is produced only if LEVEL < or = value of % 'tocdepth' counter. Note, \chapter is level 0, \section % is level 1, etc. % INDENT : The indentation from the outer left margin of the start % of the contents line. % NUMWIDTH : The width of a box in which the section number is to go, % if TITLE includes a \numberline command. % % This command uses the following three parameters, which are set % with a \def (so em's can be used to make them depend upon the font). % \@pnumwidth : The width of a box in which the page number is put. % \@tocrmarg : The right margin for multiple line entries. One % wants \@tocrmarg > or = \@pnumwidth % \@dotsep : Separation between dots, in mu units. Should be % \def'd to a number like 2 or 1.7 \def\@pnumwidth{1.55em} \def\@tocrmarg {2.55em} \def\@dotsep{4.5} \setcounter{tocdepth}{2} % TABLEOFCONTENTS % In report style, \tableofcontents, \listoffigures, etc. are always % set in single-column style. @restonecol \def\tableofcontents{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\contentsname \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}% \@starttoc{toc}\if@restonecol\twocolumn\fi} \def\l@part#1#2{\addpenalty{-\@highpenalty}% \addvspace{2.25em plus\p@}% space above part line \begingroup \@tempdima 3em % width of box holding part number, used by \parindent \z@ \rightskip \@pnumwidth %% \numberline \parfillskip -\@pnumwidth {\large \bf % set line in \large boldface \leavevmode % TeX command to enter horizontal mode. #1\hfil \hbox to\@pnumwidth{\hss #2}}\par \nobreak % Never break after part entry \global\@nobreaktrue %% Added 24 May 89 as \everypar{\global\@nobreakfalse\everypar{}}%% suggested by %% Jerry Leichter \endgroup} %% First line of l@chapter changed 24 May 89, as suggested %% by Jerry Leichter. %% \def\l@chapter#1#2{\addpenalty{-\@highpenalty}% \vskip 1.0em plus\p@ % space above chapter line \@tempdima 1.5em % width of box holding chapter number \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \bf % Boldface. \leavevmode % TeX command to enter horizontal mode. \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to \hskip -\leftskip %% 25 Jan 88 change to \numberline #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par \penalty\@highpenalty %% added 24 May 89, suggested by J. Leichter \endgroup} \def\l@section{\@dottedtocline{1}{1.5em}{2.3em}} \def\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}} \def\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}} \def\l@paragraph{\@dottedtocline{4}{10em}{5em}} \def\l@subparagraph{\@dottedtocline{5}{12em}{6em}} % LIST OF FIGURES % \def\listoffigures{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\listfigurename\@mkboth{\uppercase{\listfigurename}}% {\uppercase{\listfigurename}}}\@starttoc{lof}\if@restonecol \twocolumn\fi} \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} % LIST OF TABLES % \def\listoftables{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\listtablename\@mkboth{\uppercase{\listtablename}}% {\uppercase{\listtablename}}}\@starttoc{lot}\if@restonecol \twocolumn\fi} \let\l@table\l@figure % **************************************** % * BIBLIOGRAPHY * % **************************************** % % The thebibliography environment executes the following commands: % % \def\newblock{\hskip .11em plus .33em minus .07em} -- % Defines the `closed' format, where the blocks (major units of % information) of an entry run together. % % \sloppy -- Used because it's rather hard to do line breaks in % bibliographies, % % \sfcode`\.=1000\relax -- % Causes a `.' (period) not toproduce an end-of-sentence space. %% RmS 91/10/27 [ .. ] replaced by \@biblabel{ .. } %% RmS 91/11/13: Changed counter enumi to enumiv, %% as it says in the comment in latex.tex %% RmS 92/01/14: Set \p@enumiv to {} and \theenumiv to \arabic{enumiv} %% to get correct references \def\thebibliography#1{\chapter*{\bibname\@mkboth {\uppercase{\bibname}}{\uppercase{\bibname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\hskip .11em plus.33em minus.07em}% \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=\@m} %% 91/08/26 FMI & RmS: introduced warning instead of error \def\endthebibliography{% \def\@noitemerr{\@warning{Empty `thebibliography' environment}}% \endlist} % \def\@biblabel#1{[#1]\hfill} % Produces the label for a \bibitem[...] % command. % \def\@cite#1{[#1]} % Produces the output of the \cite % command. % **************************************** % * THE INDEX * % **************************************** % % THE THEINDEX ENVIRONMENT % Produces double column format, with each paragraph a separate entry. % The user commands \item, \subitem and \subsubitem are used to % produce the entries, and \indexspace adds an extra vertical space % that's the right size to put above the first entry with a new letter % of the alphabet. \newif\if@restonecol \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35\p@\twocolumn[\@makeschapterhead{\indexname}]% \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}% \thispagestyle{plain}\parindent\z@ \parskip\z@ plus .3\p@\relax\let\item\@idxitem} \def\@idxitem{\par\hangindent 40\p@} \def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}} \def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}} \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} \def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} % **************************************** % * FOOTNOTES * % **************************************** % % \footnoterule is a macro to draw the rule separating the footnotes % from the text. It should take zero vertical space, so it needs a % negative skip to compensate for any positive space taken by the rule. % (See PLAIN.TEX.) \def\footnoterule{\kern-3\p@ \hrule width .4\columnwidth \kern 2.6\p@} % The \hrule has default height of .4pt. % \newcounter{footnote} \@addtoreset{footnote}{chapter} % Numbers footnotes within chapters % \@makefntext{NOTE} : % Must produce the actual footnote, using \@thefnmark as the mark % of the footnote and NOTE as the text. It is called when % effectively inside a \parbox of width \columnwidth (i.e., with % \hsize = \columnwidth). % % The following macro indents all lines of the footnote by 10pt, % and indents the first line of a new paragraph by 1em. To % change these dimensions, just substitute the desired value for % '10pt' [in both places] or '1em'. The mark is flushright % against the footnote. % \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize % \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par % \parindent 1em\noindent % \hbox to \z@{\hss$\m@th^{\@thefnmark}$}#1} % % A simpler macro is used, in which the footnote text is % set like an ordinary text paragraph, with no indentation except % on the first line of a paragraph, and the first line of the % footnote. Thus, all the macro must do is set \parindent % to the appropriate value for succeeding paragraphs and put the % proper indentation before mark. \long\def\@makefntext#1{\parindent 1em\noindent \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. Default used. % % **************************************** % * FIGURES AND TABLES * % **************************************** % % Float placement parameters. See LaTeX manual for their definition. % \setcounter{topnumber}{2} \def\topfraction{.7} \setcounter{bottomnumber}{1} \def\bottomfraction{.3} \setcounter{totalnumber}{3} \def\textfraction{.2} \def\floatpagefraction{.5} \setcounter{dbltopnumber}{2} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} % \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption. % NUMBER : Figure or table number--e.g., 'Figure 3.2' % TEXT : The caption text. % Macro should be called inside a \parbox of right width, with % \normalsize. % changed 25 Jun 86 to fix according to Howard Trickey: % instead of \unhbox\@tempboxa\par we do #1: #2\par \long\def\@makecaption#1#2{% \vskip 10\p@ \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize % IF longer than one line: #1: #2\par % THEN set as ordinary paragraph. \else % ELSE center. \hbox to\hsize{\hfil\box\@tempboxa\hfil}% \fi} % To define a float of type TYPE (e.g., TYPE = figure), the document % style must define the following. % % \fps@TYPE : The default placement specifier for floats of type % TYPE. % % \ftype@TYPE : The type number for floats of type TYPE. Each TYPE % has associated a unique positive TYPE NUMBER, which % is a power of two. E.g., figures might have type % number 1, tables type number 2, programs type number % 4, etc. % % \ext@TYPE : The file extension indicating the file on which the % contents list for float type TYPE is stored. For % example, \ext@figure = 'lof'. % % \fnum@TYPE : A macro to generate the figure number for a caption. % For example, \fnum@TYPE == Figure \thefigure. % % The actual float-making environment commands--e.g., the commands % \figure and \endfigure--are defined in terms of the macros \@float % and \end@float, which are described below. % % \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a % single-column float of type TYPE with PLACEMENT as the placement % specifier. The default value of PLACEMENT is defined by % \fps@TYPE. The environment is ended by \end@float. E.g., % \figure == \@float{figure}, \endfigure == \end@float. % FIGURE \newcounter{figure}[chapter] \def\thefigure{\thechapter.\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{\figurename~\thefigure} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} % TABLE % \newcounter{table}[chapter] \def\thetable{\thechapter.\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{\tablename~\thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} % **************************************** % * TITLE AND ABSTRACT * % **************************************** % % % Uses same title and abstract format as the article style's % titlepage option. \input titlepag.sty % **************************************** % * PAGE STYLES * % **************************************** % % The page style 'foo' is defined by defining the command \ps@foo. This % command should make only local definitions. There should be no stray % spaces in the definition, since they could lead to mysterious extra % spaces in the output. % % The \ps@... command defines the macros \@oddhead, \@oddfoot, % \@evenhead, and \@evenfoot to define the running heads and % feet---e.g., \@oddhead is the macro to produce the contents of the % heading box for odd-numbered pages. It is called inside an \hbox of % width \textwidth. % % To make headings determined by the sectioning commands, the page style % defines the commands \chaptermark, \sectionmark, ... , where % \chaptermark{TEXT} is called by \chapter to set a mark, and so on. % The \...mark commands and the \...head macros are defined with the % help of the following macros. (All the \...mark commands should be % initialized to no-ops.) % % MARKING CONVENTIONS: % LaTeX extends TeX's \mark facility by producing two kinds of marks % a 'left' and a 'right' mark, using the following commands: % \markboth{LEFT}{RIGHT} : Adds both marks. % \markright{RIGHT} : Adds a 'right' mark. % \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or % \@evenfoot macro, gets the current 'left' mark. % Works like TeX's \botmark command. % \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or % \@evenfoot macro, gets the current 'right' mark. % Works like TeX's \firstmark command. % The marking commands work reasonably well for right marks 'numbered % within' left marks--e.g., the left mark is changed by a \chapter % command and the right mark is changed by a \section command. However, % it does produce somewhat anomalous results if two \bothmark's occur on % the same page. % % % Commands like \tableofcontents that should set the marks in some % page styles use a \@mkboth command, which is \let by the pagestyle % command (\ps@...) to \markboth for setting the heading or % \@gobbletwo to do nothing. \mark{{}{}} % Initializes TeX's marks % \ps@empty and \ps@plain defined in LATEX.TEX % Definition of 'headings' page style % Note the use of ##1 for parameter of \def\chaptermark inside the % \def\ps@headings. % % 91/03/26 FMi: Added extra set of braces arround |\sl| in |\@oddhead| % to support NFSS (|\sl| is a shape |\rm| a family). Also remove % unnecessary |\hbox{}| commands. % \if@twoside % If two-sided printing. \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@evenhead{\rm \thepage\hfil \sl \leftmark}% Left heading. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Right heading. \def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne \@chapapp\ \thechapter. \ \fi ##1}}{}}% \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@ \thesection. \ \fi ##1}}}} \else % If one-sided printing. \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Heading. \def\chaptermark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\m@ne \@chapapp\ \thechapter. \ \fi ##1}}}} \fi % Definition of 'myheadings' page style. % \def\ps@myheadings{\let\@mkboth\@gobbletwo \def\@oddhead{{\sl\rightmark}\hfil \rm\thepage}% \def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark}% \def\@evenfoot{}\def\chaptermark##1{}\def\sectionmark##1{}% \def\subsectionmark##1{}} % **************************************** % * MISCELLANEOUS * % **************************************** % % DATE % \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} % EQUATION and EQNARRAY -- put here because it must follow \chapter % definition % % \newcounter{equation} % \@addtoreset{equation}{chapter} % Makes \chapter reset 'equation' % counter. \def\theequation{\thechapter.\arabic{equation}} % \jot = 3pt % Extra space added between lines of an eqnarray % environment % The macro \@eqnnum defines how equation numbers are to appear in % equations. % % \def\@eqnnum{(\theequation)} % % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations \ps@plain % 'plain' page style \pagenumbering{arabic} % Arabic page numbers \if@twoside\else\raggedbottom\fi % Ragged bottom unless twoside % option. \if@twocolumn \@@input twocolum.sty\relax \else \onecolumn % Single-column. \fi \endinput latex209-25.may.1992.orig/doc/slides.doc100664 144 144 33000 5161754600 16646 0ustar nakaharastaff% SLIDES DOCUMENT STYLE -- released 04 Nov 1991 % for SliTeX version 2.09 % Copyright (C) 1985, 1991 by Leslie Lamport \typeout{Document Style 'slides' -- released 04 Nov 91} \def\@notinslitex{\errmessage{This command not allowed in SLiTeX.}} %page layout \@twosidefalse \topmargin -10pt \oddsidemargin 17pt \evensidemargin 17pt \def\ds@twoside{\@latexerr{No 'twoside' layout for slides}\@eha} \headheight 14pt \headsep 15pt \footheight 14pt \footskip 25pt \textheight 600pt \textwidth 460pt \columnwidth \textwidth \columnsep 10pt \columnseprule \z@ %footnotes \skip\footins 10pt plus 2pt minus 4pt % Space between last line of text % and top of first footnote. % \skip\@mpfootins : plays same role for footnotes in a minipage as % \skip\footins does for ordinary footnotes \skip\@mpfootins = \skip\footins \footnotesep 20pt % Height of strut placed at the beginning of every % footnote. %floats and marginpar \marginparwidth 20pt \marginparsep 5pt \marginparpush 5pt % **************************************** % * FONTS * % **************************************** % % % Note that SLITeX uses a different font-naming and size-defining % convention than LaTeX. \def\@mainsize{\@visibletrue\tiny} \parindent 0pt \def\baselinestretch{1} %% RmS 91/10/27: allowed \sc typeface in SliTeX %\def\sc{\@noslifont\sc} %\def\@noslifont#1{\@warning{No \string#1\space type style in SLiTeX}} \def\Huge{\huge} \def\huge{\@setsize\huge{60\p@ plus10\p@ minus6\p@}\@empty\@huge \lineskip 2\p@ \def\@parskip{60\p@ plus30\p@ minus6\p@}% \parskip\@parskip \abovedisplayskip 24\p@ plus10\p@ minus6\p@ \belowdisplayskip 24\p@ plus10\p@ minus6\p@ \abovedisplayshortskip 12\p@ plus8\p@ \belowdisplayshortskip 12\p@ plus8\p@ \setbox\strutbox\hbox{\vrule \@height27\p@ \@depth11\p@ \@width\z@}} \def\@huge{\if@visible\fortyonept\else\ifortyonept\fi} \def\LARGE{\@setsize\LARGE{52\p@ plus10\p@ minus6\p@}\@empty\@LARGE \lineskip 2\p@ \def\@parskip{52\p@ plus30\p@ minus6\p@}% \parskip\@parskip \abovedisplayskip 24\p@ plus10\p@ minus6\p@ \belowdisplayskip 24\p@ plus10\p@ minus6\p@ \abovedisplayshortskip 12\p@ plus8\p@ \belowdisplayshortskip 12\p@ plus8\p@ \setbox\strutbox\hbox{\vrule \@height27\p@ \@depth11\p@ \@width\z@}} \def\@LARGE{\if@visible\thirtyfourpt\else\ithirtyfourpt\fi} \def\Large{\@setsize\Large{48\p@ plus10\p@ minus6\p@}\@empty\@Large \lineskip 2\p@ \def\@parskip{48\p@ plus30\p@ minus6\p@}% \parskip\@parskip \abovedisplayskip 24\p@ plus10\p@ minus6\p@ \belowdisplayskip 24\p@ plus10\p@ minus6\p@ \abovedisplayshortskip 12\p@ plus8\p@ \belowdisplayshortskip 12\p@ plus8\p@ \setbox\strutbox\hbox{\vrule \@height27\p@ \@depth11\p@ \@width\z@}} \def\@Large{\if@visible\twentyninept\else\itwentyninept\fi} \def\large{\@setsize\large{42\p@ plus8\p@ minus5\p@}\@empty\@large \lineskip 2\p@ \def\@parskip{40\p@ plus20\p@ minus4\p@}% \parskip\@parskip \abovedisplayskip 20\p@ plus8\p@ minus3\p@ \belowdisplayskip 20\p@ plus8\p@ minus3\p@ \abovedisplayshortskip 10\p@ plus5\p@ \belowdisplayshortskip 10\p@ plus5\p@ \setbox\strutbox\hbox{\vrule \@height20\p@ \@depth8.5\p@ \@width\z@}} \def\@large{\if@visible\twentyfourpt\else\itwentyfourpt\fi} \def\normalsize{\@setsize\normalsize{30\p@ plus3\p@ minus3\p@}\@empty \@normalsize \lineskip 2\p@ \def\@parskip{30\p@ plus18\p@ minus9\p@}% \parskip\@parskip \abovedisplayskip 15\p@ plus3\p@ minus3\p@ \belowdisplayskip 10\p@ plus3\p@ minus3\p@ \abovedisplayshortskip 10\p@ plus3\p@ \belowdisplayshortskip 10\p@ plus3\p@ \setbox\strutbox\hbox{\vrule \@height17\p@ \@depth7\p@ \@width\z@}} \def\@normalsize{\if@visible\twentypt\else\itwentypt\fi} \def\small{\@setsize\small{19\p@ plus3\p@ minus\p@}\@empty\@small \lineskip 2\p@ \def\@parskip{15\p@ plus15\p@ minus7\p@}% \parskip\@parskip \abovedisplayskip 12\p@ plus3\p@ minus3\p@ \belowdisplayskip 9\p@ plus3\p@ minus3\p@ \abovedisplayshortskip 6\p@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ \setbox\strutbox\hbox{\vrule \@height13.5\p@ \@depth5.6\p@ \@width\z@}} \def\@small{\if@visible\seventeenpt\else\iseventeenpt\fi} \let\footnotesize=\small \let\scriptsize=\small \def\tiny{\@setsize\tiny{16\p@ plus2\p@ minus\p@}\@empty\@tiny \lineskip 2\p@ \def\@parskip{11\p@ plus11\p@ minus5\p@}% \parskip\@parskip \abovedisplayskip 14\p@ plus3\p@ minus10\p@ \belowdisplayskip 14\p@ plus3\p@ minus10\p@ \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 8\p@ plus3\p@ minus5\p@ \setbox\strutbox\hbox{\vrule \@height10\p@ \@depth4\p@ \@width\z@}} \def\@tiny{\if@visible\fourteenpt\else\ifourteenpt\fi} % **************************************** % * PAGE STYLES * % **************************************** % % The page styles of slides is determined by the 'slide' page % style, the slide environment executing a \thispagestyle{slide} % command. The page styles of overlays and notes are similarly % determined by 'overlay' and 'note' page styles. The command % standard 'headings', 'plain' and 'empty' page styles work by % redefining the 'slide', 'overlay', and 'note' styles. % \def\ps@headings{% \def\ps@slide{\def\@oddfoot{\@mainsize +\hfil\hbox to3em{\theslide \hss}}% \def\@oddhead{\@mainsize +\hfil +}% \def\@evenfoot{\@mainsize +\hfil\hbox to3em{\theslide\hss}}% \def\@evenhead{\@mainsize +\hfil +}} \def\ps@overlay{\def\@oddfoot{\@mainsize +\hfil\hbox to3em{\theoverlay \hss}}% \def\@oddhead{\@mainsize +\hfil +}% \def\@evenfoot{\@mainsize +\hfil\hbox to3em{\theoverlay\hss}}% \def\@evenhead{\@mainsize +\hfil +}} \def\ps@note{\def\@oddfoot{\@mainsize \hbox{}\hfil\thenote}% \def\@oddhead{}% \def\@evenfoot{\@mainsize \hbox{}\hfil\thenote}% \def\@evenhead{}}} \def\ps@plain{\def\ps@slide{% \def\@oddfoot{\@mainsize \mbox{}\hfil\hbox to 3em{\theslide\hss}}% \def\@oddhead{}% \def\@evenfoot{\@mainsize \mbox{}\hfil\hbox to 3em{\theslide\hss}}% \def\@evenhead{}} \def\ps@overlay{\def\@oddfoot{\@mainsize \mbox{}\hfil\hbox to 3em{\theoverlay\hss}}% \def\@oddhead{}% \def\@evenfoot{\@mainsize \mbox{}\hfil\hbox to 3em{\theoverlay\hss}}% \def\@evenhead{}} \def\ps@note{\def\@oddfoot{\@mainsize \hbox{}\hfil\thenote}% \def\@oddhead{}% \def\@evenfoot{\@mainsize \hbox{}\hfil\thenote}% \def\@evenhead{}}} \def\ps@empty{% \def\ps@slide{\def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{}}% \def\ps@overlay{\def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{}}% \def\ps@note{\def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{}}} % Default definition the 'slide', 'overlay', and 'note' page styles. \ps@headings % Set ordinary page style to 'empty' \def\@oddhead{}\def\@oddfoot{}% \def\@evenhead{}\def\@evenfoot{} % The \@options command causes the execution of every command \ds@FOO % which is defined and for which the user typed the FOO option in his % \documentstyle command. For every option BAR he typed for which % \ds@BAR is not defined, the file BAR.sty will be read after the % present (main) .STY file is executed. \@options % **************************************** % * ENVIRONMENTS * % **************************************** % % titlepage % \def\titlepage{\newpage\thispagestyle{empty}\c@page\z@} \def\endtitlepage{\newpage} % Default values for list environment. \leftmargini 38pt \leftmarginii 30pt \leftmarginiii 20pt \leftmarginiv 15pt \leftmarginv 15pt \leftmarginvi 10pt \def\@listi{\parsep .5\parskip \topsep \parsep \itemsep\parskip \partopsep \z@} \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \parsep .5\parskip \topsep \parsep \itemsep\parskip} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \labelsep 10pt \tabbingsep \labelsep \leftmargin\leftmargini \labelwidth\leftmargini\advance\labelwidth-\labelsep % PARAGRAPH-FORMATTING ENVIRONMENTS % --------------------------------- % VERSE % \CR ends line % Line continuations indented further. % Blank line makes new paragraph with \parskip space % \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -15\p@\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 15\p@}\item[]} \let\endverse\endlist % QUOTATION % Fills lines % Indents paragraph % \def\quotation{\list{}{\listparindent 20\p@\relax \itemindent\listparindent \rightmargin\leftmargin}\item[]} \let\endquotation=\endlist % QUOTE -- same as quotation except no paragraph indentation, \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist % LIST-MAKING ENVIRONMENTS % ------------------------ % % DESCRIPTION % % To change the formatting of the label, you must redefine % \descriptionlabel. \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist % ENUMERATE % Enumeration is done with four counters: enumi, enumii, enumiii % and enumiv, where enumN controls the numbering of the Nth level % enumeration. The label is generated by the commands \labelenumi % ... \labelenumiv. The expansion of \p@enumN\theenumN defines the % output of a \ref command. \def\labelenumi{\arabic{enumi}.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\alph{enumii})} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\roman{enumiii}.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\Alph{enumiv}.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} % ITEMIZE % Itemization is controlled by four commands: \labelitemi, \labelitemii, % \labelitemiii, and \labelitemiv, which define the labels of the % various itemization levels. \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} % Theorem environments % \@begintheorem ... \@endtheorem are the commands executed at the % beginning and end of a (user-defined) theorem-like environment. % Except \@opargbegintheorem is executed when an optional argument is % given. Cf. LATEX.TEX. % % \def\@begintheorem#1#2{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2}]} % \def\@opargbegintheorem#1#2#3{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]} % \def\@endtheorem{\endtrivlist} % Array and tabular environment parameters \arraycolsep 8pt \tabcolsep 10pt \arrayrulewidth .6pt \doublerulesep 3pt % \fbox parameters \fboxsep = 5pt \fboxrule = .6pt % Date \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} % **************************************** % * FOOTNOTES * % **************************************** % % Following makes footnotes numbered *, dagger, etc., with numbering % begun again on every slide, note, or overlay. \def\thefootnote{\fnsymbol{footnote}} \@addtoreset{footnote}{slide} \@addtoreset{footnote}{overlay} \@addtoreset{footnote}{note} % \footnoterule is a macro to draw the rule separating the footnotes % from the text. It should take zero vertical space, so it needs a % negative skip to compensate for any positive space taken by the % rule. (See PLAIN.TEX.) The resulting rule will appear on all color % layers, so it's best not to draw a rule. \let\footnoterule=\relax % \@makefntext{NOTE} : % Must produce the actual footnote, using \@thefnmark as the % mark of the footnote and NOTE as the text. It is called when % effectively inside a \parbox of width \columnwidth (i.e., with % \hsize = \columnwidth). The following macro indents all % lines of the footnote by 10pt, and indents the first line of a % new paragraph by 1em. To change these dimensions, just % substitute the desired value for '10pt' [in both places] or % '1em'. The mark is flushright against the footnote. % % It is much easier to write a macro in which the footnote text % is set like an ordinary text paragraph, with no indentation % except on the first line of a paragraph, and the first line of % the footnote. In that case, all the macro must do is set % \parindent to the appropriate value for succeeding paragraphs % and put the proper indentation before mark. \long\def\@makefntext#1{\noindent % Macro to make the text of a footnote \hangindent 10\p@\hbox to10\p@{\hss $\m@th^{\@thefnmark}$}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. \def\theequation{\@arabic{\c@equation}} % The following stuff isn't used, but needs to be defined. \def\@figsep{7\p@} \def\@textfigsep{5\p@} \def\@captionskip{6\p@} \def\topfraction{.7} \def\bottomfraction{.3} \def\textfraction{.2} \def\floatpagefraction{.5} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations \pagenumbering{arabic} \onecolumn \normalsize \endinput latex209-25.may.1992.orig/doc/rep12.doc100664 144 144 42005 5161754600 16321 0ustar nakaharastaff% REPORT STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. (Actual % value will be \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, % the document style defines \@normalsize instead of \normalsize. % This is done only for \normalsize, not for any other size-changing % commands. \def\@normalsize{\@setsize\normalsize{14.5pt}\xiipt\@xiipt \abovedisplayskip 12\p@ plus3\p@ minus7\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 9 Jun 87 \def\small{\@setsize\small{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \parsep 4.5\p@ plus2\p@ minus\p@ \itemsep \parsep \topsep 9\p@ plus3\p@ minus5\p@}} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. % SIDE MARGINS: \if@twoside % Values for two-sided printing: \oddsidemargin 21pt % Left margin on odd-numbered pages. \evensidemargin 59pt % Left margin on even-numbered pages. \marginparwidth 85pt % Width of marginal notes. \else % Values for one-sided printing: \oddsidemargin 39.5pt % Note that \oddsidemargin = \evensidemargin \evensidemargin 39.5pt \marginparwidth 68pt \fi \marginparsep 10pt % Horizontal space between outer margin and % marginal note % VERTICAL SPACING: % Top of page: \topmargin 27pt % Nominal distance from top of page to top % of box containing running head. \headheight 12pt % Height of box containing running head. \headsep 25pt % Space between running head and text. \topskip = 12pt % '\baselineskip' for first line of page. % Bottom of page: \footskip 30pt % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % 24 Jun 86: changed to explicitly compute \textheight to avoid % roundoff. The value of the multiplier was calculated as the floor % of the old \textheight minus \topskip, divided by \baselineskip for % \normalsize. The old value of \textheight was 536.5pt. \textheight % is the height of text (including footnotes and figures, excluding % running head and foot). \textheight = 36\baselineskip \advance\textheight by \topskip \textwidth 390pt % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: \footnotesep 8.4pt % Height of strut placed at the beginning of every % footnote = height of normal \footnotesize strut, % so no extra space between footnotes. \skip\footins 10.8pt plus 4pt minus 2pt % Space between last line of % text and top of first % footnote. % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \floatsep 14pt plus 2pt minus 4pt % Space between adjacent floats % moved to top or bottom of % text page. \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and % floats at top or bottom of % page. \intextsep 14pt plus 4pt minus 4pt % Space between in-text figures % and text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep % (minus the stretch and % shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: \dblfloatsep 14pt plus 2pt minus 4pt % Same as \floatsep for % double-column figures in % two-column mode. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for % double-column floats. \@dblmaxsep 20pt % The maximum of \dblfloatsep % and \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must % be 0pt plus ...) \@fpsep 10pt plus 2fil % Space between floats on float page/column. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. % (Must be 0pt plus ... ) % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be % 0pt plus ...) \@dblfpsep 10pt plus 2fil% Space between floats on float page. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be % 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 7pt % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 0pt plus 1pt % Extra vertical space between % paragraphs. \parindent 1.5em % Width of paragraph indentation. %\topsep 10pt plus 4pt minus 6pt % Extra vertical space, in addition % to \parskip, added above and below % list and paragraphing environments. \partopsep 3pt plus 2pt minus 2pt % Extra vertical space, in addition % to \parskip and \topsep, added when % list leaves blank line before % environment. %\itemsep 5pt plus 2.5pt minus 1pt % Extra vertical space, in addition % to \parskip, added between list % items. % See \@listI for values of \topsep and \itemsep % (Change made 9 Jun 87) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % Definition of \part moved to report.doc 19 Jan 88 % \@makechapterhead {TEXT} : Makes the heading for the \chapter % command. % \def\@makechapterhead#1{% % Heading for \chapter command \vspace*{50\p@}% % Space at top of text page. {\parindent \z@ \raggedright \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN \huge\bf \@chapapp{} \thechapter %Print '\chaptername' and number. \par \vskip 20\p@ \fi % Space between number and title. \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \@makeschapterhead {TEXT} : Makes the heading for the \chapter* % command. % \def\@makeschapterhead#1{% % Heading for \chapter* command \vspace*{50\p@}% % Space at top of page. {\parindent \z@ \raggedright \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a \chapter or \section command without using % \@startsection, you can use \secdef as follows: % \def\chapter { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... % Command to define % % \chapter[...]{...} % \def\CMDB #1{ ... % Command to define % % \chapter*{...} \def\chapter{\clearpage % Starts new page. \thispagestyle{plain}% % Page style of chapter page is 'plain' \global\@topnum\z@ % Prevents figures from going at top of page. \@afterindentfalse % Suppresses indent in first paragraph. \secdef\@chapter\@schapter} % Change to \@afterindenttrue to have % indent. \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}}% Adds between-chapter space \addtocontents{lot}% {\protect\addvspace{10\p@}}% to lists of figs & tables. \if@twocolumn % Tests for two-column mode. \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading % Routine called after chapter and \fi} % section heading. \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- e.g., % chapter=1, section = 2, etc. A section number will be % printed if and only if LEVEL < or = the value of the % secnumdepth counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % us in defining page styles. % \def\chaptermark#1{} % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{2} % APPENDIX % % The \appendix command must do the following: % -- reset the chapter counter to zero % -- set \@chapapp to Appendix (for messages) % -- redefine the chapter counter to produce appendix numbers % -- reset the section counter to zero % -- redefine the \chapter command if appendix titles and headings % are to look different from chapter titles and headings. \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. \leftmargini 2.5em \leftmarginii 2.2em % > \labelsep + width of '(m)' \leftmarginiii 1.87em % > \labelsep + width of 'vii.' \leftmarginiv 1.7em % > \labelsep + width of 'M.' \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep %\parsep 5pt plus 2.5pt minus 1pt %(Removed 9 Jun 87) % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 9 Jun 87) \def\@listI{\leftmargin\leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 5\p@ plus2.5\p@ minus\p@ \parsep 2.5\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2.5\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/doc/showidx.doc100664 144 144 4717 5161754600 17045 0ustar nakaharastaff% SHOWIDX DOCUMENT-STYLE OPTION - released 16 June 1991 % for LaTeX version 2.09 % Copyright (C) 1985, 1988, 1989, 1991 by Leslie Lamport % % Prints \index entries in outer margin. For use with book or report % style. Note: makes \flushbottom the default. \typeout{Document style option `showidx' - released 16 June 1991} \newinsert\@margin %\count\@margin=0 \skip\@margin=0pt % marginal inserts take up no space \newinsert\indexbox \dimen\indexbox=\maxdimen \def\@showidx#1{\insert\indexbox{\small \hsize\marginparwidth \hangindent\marginparsep \parindent\z@ \everypar{}\let\par\@@par \parfillskip\@flushglue \lineskip\normallineskip \baselineskip .8\normalbaselineskip\sloppy \raggedright \leavevmode \vrule \@height .7\normalbaselineskip \@width \z@\relax #1\relax\vrule \@height \z@ \@depth .3\normalbaselineskip \@width \z@}} % 9 Mar 89 : \relax added to fix bug reported by Nelson Beebe % 11 Oct 89 : Another \relax added to fix bug reported by Joachim Schrod \def\@leftidx{\hskip-\marginparsep \hskip-\marginparwidth} \def\@rightidx{\hskip\columnwidth \hskip\marginparsep} \def\@mkidx{\vbox to \z@{\hbox{\if@twocolumn \if@firstcolumn \@leftidx \else \@rightidx \fi \else \if@twoside \ifodd\c@page \@rightidx \else \@leftidx \fi \else \@rightidx \fi \fi \box\indexbox}\vss}} \def\raggedbottom{\def\@textbottom{\vskip \z@ plus.0001fil}\let\@texttop\@mkidx} \def\flushbottom{\let\@textbottom\relax \let\@texttop\@mkidx} % \@wrindex is called by \index if \makeindex declaration is used. % \def\@wrindex#1#2{\let\thepage\relax \xdef\@gtempa{\write#1{\string \indexentry{#2}{\thepage}}}\endgroup\@gtempa \@showidx{#2}\if@nobreak \ifvmode\nobreak\fi\fi\@esphack} % \@index is called by \index if there is no \makeindex declaration. % \def\@index#1{\@showidx{#1}\endgroup\@esphack} % 91/06/16 RmS "(hex)20 = space changed to (decimal) 32 % to avoid problems with german.sty \def\index{\@bsphack\begingroup\@sanitize\catcode32=10\relax\@index} \def\makeindex{\if@filesw \newwrite\@indexfile \immediate\openout\@indexfile=\jobname.idx \def\index{\@bsphack\begingroup \def\protect####1{\string####1\space}\@sanitize \catcode32=10 \@wrindex\@indexfile}\typeout {Writing index file \jobname.idx }\fi} % \flushbottom is default % \flushbottom \endinput latex209-25.may.1992.orig/doc/proc.doc100664 144 144 10335 5161754600 16334 0ustar nakaharastaff% PROC STANDARD DOCUMENT STYLE -- Released 26 February 1992 % for LaTeX version 2.09 % Copyright (C) 1991,1992 by Leslie Lamport % % This is a style option for use with the article style to produce % camera-ready conference proceedings. \typeout{Document Style Option 'proc' -- Released 26 Feb 1992.} % PREPARING A FOREIGN LANGUAGE VERSION: % % This document style is for documents prepared in the English language. % To prepare a version for another language, various English words must % be replaced. All the English words that required replacement are % indicated below, where we give the name of the command in which the % words appear, and the entire line containing the word(s), with the % actual words underlined. % % abstract environment \@ifundefined{abstractname}% {\def\abstractname{Abstract}}{} % ~~~~~~~~ % % \page: \@ifundefined{pagename}% {\def\pagename{Page}}{} % ~~~~ % % % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. Dimensions shrink by about 2 percent % SIDE MARGINS: \oddsidemargin -10pt % Note that \oddsidemargin = \evensidemargin \evensidemargin -10pt % VERTICAL SPACING: % Top of page: \topmargin -47pt % Nominal distance from top of page to top % of box containing running head. \headheight 12pt % Height of box containing running head. \headsep 25pt % Space between running head and text. % \topskip = 10pt % '\baselineskip' for first line of page. % Bottom of page: \footskip 75pt % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: \textheight 9in % Height of text (including footnotes and % figures, excluding running head and foot). \textwidth 6.75in % Width of text line. % For two-column mode: \columnsep .375in % Space between columns \columnseprule 0pt % Width of rule between columns. % **************************************** % * PAGE STYLES * % **************************************** % % Use \markright (or \markboth) to put an identification in the % lower left. The page number is printed in the lower right. \def\@oddhead{}\def\@evenhead{} \def\@oddfoot{\rm\rightmark \hfil \pagename{} \thepage} \def\@evenfoot{\@oddfoot} % **************************************** % * TITLE * % **************************************** % % This definition of \maketitle taken from article.sty, except % it does not do a \thispagestyle{plain}. \def\maketitle{\par \begingroup \def\thefootnote{\fnsymbol{footnote}}% \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}% \twocolumn[\@maketitle]% \@thanks \endgroup \setcounter{footnote}{0}% \let\maketitle\relax \let\@maketitle\relax \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} \def\@maketitle{\vbox to 2.25in{\hsize\textwidth \linewidth\hsize \vfil \centering {\LARGE \@title \par}% % Title set in \LARGE size. \vskip 2em % Vertical space after title. {\large \begin{tabular}[t]{c}\@author \end{tabular}\par}% \vfil}} % The \copyrightspace command is used to produce a blank space in the % first column where a copyright notice belongs. It works by % producing a blank footnote of the appropriate size. Note that it % should appear after any \footnote commands that produce footnotes % for the first column. \def\copyrightspace{\footnotetext[0]{\mbox{}\vrule \@height 97\p@ \@width \z@}} % The abstract Environment \def\abstract{\section*{\abstractname}} \def\endabstract{\par} % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations \twocolumn \sloppy \parindent 1em \leftmargini 2em \leftmargin\leftmargini \leftmarginv .5em \leftmarginvi .5em \flushbottom \endinput latex209-25.may.1992.orig/doc/rep10.doc100664 144 144 41725 5161754600 16327 0ustar nakaharastaff% REPORT STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. (Actual % value will be \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, the % document style defines \@normalsize instead of \normalsize . This % is done only for \normalsize, not for any other size-changing % commands. \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 9 Jun 87 \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip 8.5\p@ plus3\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus2\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt \abovedisplayskip 6\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 3\p@ plus\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. % SIDE MARGINS: \if@twoside % Values for two-sided printing: \oddsidemargin 44pt % Left margin on odd-numbered pages. \evensidemargin 82pt % Left margin on even-numbered pages. \marginparwidth 107pt % Width of marginal notes. \else % Values for one-sided printing: \oddsidemargin 63pt % Note that \oddsidemargin = \evensidemargin \evensidemargin 63pt \marginparwidth 90pt \fi \marginparsep 11pt % Horizontal space between outer margin and % marginal note % VERTICAL SPACING: % Top of page: \topmargin 27pt % Nominal distance from top of page to top % of box containing running head. \headheight 12pt % Height of box containing running head. \headsep 25pt % Space between running head and text. \topskip = 10pt % '\baselineskip' for first line of page. % Bottom of page: \footskip 30pt % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % 24 Jun 86: changed to explicitly compute \textheight to avoid % roundoff. The value of the multiplier was calculated as the floor % of the old \textheight minus \topskip, divided by \baselineskip for % \normalsize. The old value of \textheight was 528pt. \textheight % is the height of text (including footnotes and figures, excluding % running head and foot). \textheight = 43\baselineskip \advance\textheight by \topskip \textwidth 345pt % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: \footnotesep 6.65pt % Height of strut placed at the beginning of every % footnote = height of normal \footnotesize strut, % so no extra space between footnotes. \skip\footins 9pt plus 4pt minus 2pt % Space between last line of text % and top of first footnote. % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats % moved to top or bottom of % text page. \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and % floats at top or bottom of % page. \intextsep 12pt plus 2pt minus 2pt % Space between in-text figures % and text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep % (minus the stretch and % shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: \dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for % double-column figures in % two-column mode. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for % double-column floats. \@dblmaxsep 20pt % The maximum of \dblfloatsep % and \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must % be 0pt plus ...) \@fpsep 8pt plus 2fil % Space between floats on float page/column. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must % be 0pt plus ... ) % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt % plus ...) \@dblfpsep 8pt plus 2fil % Space between floats on float page. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be % 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 5pt % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 0pt plus 1pt % Extra vertical space between % paragraphs. \parindent 15pt % Width of paragraph indentation. %\topsep 8pt plus 2pt minus 4pt % Extra vertical space, in addition % to \parskip, added above and below % list and paragraphing environments. \partopsep 2pt plus 1pt minus 1pt % Extra vertical space, in addition % to \parskip and \topsep, added when % user leaves blank line before % environment. %\itemsep 4pt plus 2pt minus 1pt % Extra vertical space, in addition % to \parskip, added between list % items. % See \@listI for values of \topsep and \itemsep % (Change made 9 Jun 87) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % % Definition of \part moved to report.doc on 19 Jan 88 % \@makechapterhead {TEXT} : Makes the heading for the \chapter command. % \def\@makechapterhead#1{% % Heading for \chapter command \vspace*{50\p@}% % Space at top of text page. {\parindent \z@\raggedright \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN \huge\bf \@chapapp{} \thechapter % Print '\chaptername' and number. \par \vskip 20\p@ \fi % Space between number and title. \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \@makeschapterhead {TEXT} : Makes the heading for the \chapter* % command. % \def\@makeschapterhead#1{% % Heading for \chapter* command \vspace*{50\p@}% % Space at top of page. {\parindent \z@ \raggedright \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a \chapter or \section command without using % \@startsection, you can use \secdef as follows: % \def\chapter { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... } % Command to define % % \chapter[...]{...} % \def\CMDB #1{ ... } % Command to define % % \chapter*{...} \def\chapter{\clearpage % Starts new page. \thispagestyle{plain}% % Page style of chapter page is 'plain' \global\@topnum\z@ % Prevents figures from going % at top of page. \@afterindentfalse % Suppresses indent in first paragraph. \secdef\@chapter\@schapter} % Change to \@afterindenttrue to % have indent. \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}} % Adds between-chapter space \addtocontents{lot}% {\protect\addvspace{10\p@}} % to lists of figs & tables. \if@twocolumn % Tests for two-column mode. \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading % Routine called after chapter and \fi} % section heading. \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- e.g., % chapter=1, section = 2, etc. A section number will be % printed if and only if LEVEL < or = the value of the % secnumdepth counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize \bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % us in defining page styles. % \def\chaptermark#1{} % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{2} % APPENDIX % % The \appendix command must do the following: % -- reset the chapter counter to zero % -- set \@chapapp to Appendix (for messages) % -- redefine the chapter counter to produce appendix numbers % -- reset the section counter to zero % -- redefine the \chapter command if appendix titles and headings % are to look different from chapter titles and headings. \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. \leftmargini 25pt \leftmarginii 22pt % > \labelsep + width of '(m)' \leftmarginiii 18.7pt % > \labelsep + width of 'vii.' \leftmarginiv 17pt % > \labelsep + width of 'M.' \leftmarginv 10pt \leftmarginvi 10pt \leftmargin\leftmargini \labelsep 5pt \labelwidth\leftmargini\advance\labelwidth-\labelsep %\parsep 4pt plus 2pt minus 1pt (Removed 9 Jun 87) % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 9 Jun 87) \def\@listI{\leftmargin\leftmargini \parsep 4\p@ plus2\p@ minus\p@% \topsep 8\p@ plus2\p@ minus4\p@ \itemsep 4\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep\p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/doc/rep11.doc100664 144 144 41737 5161754600 16333 0ustar nakaharastaff% REPORT STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. (Actual % value will be \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, % the document style defines \@normalsize instead of \normalsize. % This is done only for \normalsize, not for any other size-changing % commands. \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 9 Jun 87 \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt \abovedisplayskip 8\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. % SIDE MARGINS: \if@twoside % Values for two-sided printing: \oddsidemargin 36pt % Left margin on odd-numbered pages. \evensidemargin 74pt % Left margin on even-numbered pages. \marginparwidth 100pt % Width of marginal notes. \else % Values for one-sided printing: \oddsidemargin 54pt % Note that \oddsidemargin = \evensidemargin \evensidemargin 54pt \marginparwidth 83pt \fi \marginparsep 10pt % Horizontal space between outer margin and % marginal note % VERTICAL SPACING: % Top of page: \topmargin 27pt % Nominal distance from top of page to top of % box containing running head. \headheight 12pt % Height of box containing running head. \headsep 25pt % Space between running head and text. \topskip = 11pt % '\baselineskip' for first line of page. % Bottom of page: \footskip 30pt % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % 24 Jun 86: changed to explicitly compute \textheight to avoid % roundoff. The value of the multiplier was calculated as the floor % of the old \textheight minus \topskip, divided by \baselineskip for % \normalsize. The old value of \textheight was 530.4pt. \textheight % is the height of text (including footnotes and figures, excluding % running head and foot). \textheight = 38\baselineskip \advance\textheight by \topskip \textwidth 360pt % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: \footnotesep 7.7pt % Height of strut placed at the beginning of every % footnote = height of normal \footnotesize strut, % so no extra space between footnotes. \skip\footins 10pt plus 4pt minus 2pt % Space between last line of text % and top of first footnote. % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats % moved to top or bottom of % text page. \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and % floats at top or bottom of % page. \intextsep 12pt plus 2pt minus 2pt % Space between in-text figures % and text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep % (minus the stretch and % shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: \dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for % double-column figures in % two-column mode. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for % double-column floats. \@dblmaxsep 20pt % The maximum of \dblfloatsep % and \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must % be 0pt plus ...) \@fpsep 8pt plus 2fil % Space between floats on float page/column. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must % be 0pt plus ... ) % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt % plus ...) \@dblfpsep 8pt plus 2fil % Space between floats on float page. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be % 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 5pt % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 0pt plus 1pt % Extra vertical space between % paragraphs. \parindent 17pt % Width of paragraph indentation. %\topsep 9pt plus 3pt minus 5pt % Extra vertical space, in addition % to \parskip, added above and below % list and paragraphing environments. \partopsep 3pt plus 1pt minus 2pt % Extra vertical space, in addition % to \parskip and \topsep, added when % user leaves blank line before % environment. %\itemsep 4.5pt plus 2pt minus 1pt % Extra vertical space, in addition % to \parskip, added between list % items. % See \@listI for values of \topsep and \itemsep % (Change made 9 Jun 87) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % Definition of \part moved to report.doc 19 Jan 88 % \@makechapterhead {TEXT} : Makes the heading for the \chapter % command. % \def\@makechapterhead#1{% % Heading for \chapter command \vspace*{50\p@}% % Space at top of text page. {\parindent \z@ \raggedright \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN \huge\bf \@chapapp{} \thechapter %Print '\chaptername' and number. \par \vskip 20\p@ \fi % Space between number and title. \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \@makeschapterhead {TEXT} : Makes the heading for the \chapter* % command. % \def\@makeschapterhead#1{% % Heading for \chapter* command \vspace*{50\p@}% % Space at top of page. {\parindent \z@ \raggedright \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a \chapter or \section command without using % \@startsection, you can use \secdef as follows: % \def\chapter { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... % Command to define % % \chapter[...]{...} % \def\CMDB #1{ ... % Command to define % % \chapter*{...} \def\chapter{\clearpage % Starts new page. \thispagestyle{plain}% % Page style of chapter page is 'plain' \global\@topnum\z@ % Prevents figures from going % at top of page. \@afterindentfalse % Suppresses indent in first paragraph. \secdef\@chapter\@schapter} % Change to \@afterindenttrue to % have indent. \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}} % Adds between-chapter space \addtocontents{lot}% {\protect\addvspace{10\p@}} % to lists of figs & tables. \if@twocolumn % Tests for two-column mode. \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading % Routine called after chapter and \fi} % section heading. \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- e.g., % chapter=1, section = 2, etc. A section number will be % printed if and only if LEVEL < or = the value of the % secnumdepth counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % us in defining page styles. % \def\chaptermark#1{} % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{2} % APPENDIX % % The \appendix command must do the following: % -- reset the chapter counter to zero % -- set \@chapapp to Appendix (for messages) % -- redefine the chapter counter to produce appendix numbers % -- reset the section counter to zero % -- redefine the \chapter command if appendix titles and headings % are to look different from chapter titles and headings. \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. \leftmargini 2.5em \leftmarginii 2.2em % > \labelsep + width of '(m)' \leftmarginiii 1.87em % > \labelsep + width of 'vii.' \leftmarginiv 1.7em % > \labelsep + width of 'M.' \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep %\parsep 4.5pt plus 2pt minus 1pt %(Removed 9 Jun 87) % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 9 Jun 87) \def\@listI{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \topsep 9\p@ plus3\p@ minus5\p@ \itemsep 4.5\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4.5\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/doc/openbib.doc100664 144 144 4616 5161754600 16774 0ustar nakaharastaff% OPENBIB DOCUMENT-STYLE OPTION FOR ARTICLE STYLE % RELEASED 14 January 1992 -- for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport, all rights reserved % Produces the "open" bibliography style, in which each block starts % on a new line, and succeeding lines in a block are indented by % \bibindent. % \typeout{Document Style Option `openbib' -- Released 14 Jan 1992.} % PREPARING A FOREIGN LANGUAGE VERSION: % % This document style is for documents prepared in the English language. % To prepare a version for another language, various English words must % be replaced. All the English words that required replacement are % indicated below, where we give the name of the command in which the % words appear, and which must be redefined, with the actual words % underlined. % % thebibliography environment: %\def\refname{References} % ~~~~~~~~~~ %\def\bibname{Bibliography} % ~~~~~~~~~~~~ % % It's rather hard to do line breaks in bibliographies, % so we allow "sloppy" setting. % \sloppy % % The following \sfcode declaration causes a `.' (period) not to % produce an end-of-sentence space. % \sfcode`\.=1000\relax % actually: % \sfcode`\.\@m \newdimen\bibindent \bibindent=1.5em %% RmS 91/11/13: Changed counter enumi to enumiv, %% as it says in the comment in latex.tex %% RmS 92/01/14: Set \p@enumiv to {} and \theenumiv to \arabic{enumiv} %% to get correct references \@ifundefined{chapter}{\def\thebibliography#1{% \section*{\refname\uppercase{\@mkboth {\refname}{\refname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \advance\leftmargin\bibindent \itemindent -\bibindent \listparindent \itemindent \parsep \z@ \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\par}% \sloppy \sfcode`\.\@m}}% {\def\thebibliography#1{\chapter*{\bibname\uppercase{\@mkboth {\bibname}{\bibname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \advance\leftmargin\bibindent \itemindent -\bibindent \listparindent \itemindent \parsep \z@ \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\par}% \sloppy \sfcode`\.\@m}} \endinput latex209-25.may.1992.orig/doc/makeidx.doc100664 144 144 1525 5161754600 16774 0ustar nakaharastaff% MAKEIDX DOCUMENT-STYLE OPTION FOR ARTICLE STYLE % RELEASED 21 october 1991 -- for LaTeX version 2.09 % Copyright (C) 1987, 1991 by Leslie Lamport, all rights reserved \typeout{Document style option `makeidx' - released 21 Oct 91} % Defines the \see and \printindex commands. % PREPARING A FOREIGN LANGUAGE VERSION: % % This document style is for documents prepared in the English language. % To prepare a version for another language, various English words must % be replaced. All the English words that required replacement are % indicated below, where we give the name of the command in which the % words appear, and which must be redefined, with the actual words % underlined. % % \see \@ifundefined{seename}% {\def\seename{see}}{} % ~~~ % \def\see#1#2{{\em \seename\/} #1} \def\printindex{\@input{\jobname.ind}} \endinput latex209-25.may.1992.orig/doc/fleqn.doc100664 144 144 4636 5161754600 16465 0ustar nakaharastaff% FLEQN DOCUMENT-STYLE OPTION - released 04 November 1991 % for LaTeX version 2.09 % Copyright (C) 1989,1991 by Leslie Lamport % The following commands make the displayed math environments flush % left, with an indentation of \mathindent from the prevailing left % margin. \typeout{Document style option `fleqn' - Released 04 Nov 91} % Definitions of \[ and \] changed 9 Mar 87 to use \begin{trivlist} % ... \end{trivlist} instead of simulating it; corrects bug that % caused following text always to start new paragraph. % % \[ and \equation changed to set \@beginparpenalty and % \@endparpenalty to \predisplaypenalty and \postdisplaypenalty. % Change made 24 May 89, suggested by Rainer Sch\"opf and Frank % Mittelbach. % % \[ and \] changed 26 Sep 89 to correct bug introduced in 24 May 89 % change that caused the following text always to start a new % paragraph. % % Added \m@th at several points to reset \mathsurround if non-zero. % Change made 04 Nov 91 by RmS. \def\[{\relax\ifmmode\@badmath\else \begin{trivlist}% \@beginparpenalty\predisplaypenalty \@endparpenalty\postdisplaypenalty \item[]\leavevmode \hbox to\linewidth\bgroup $\m@th\displaystyle \hskip\mathindent\bgroup\fi} \def\]{\relax\ifmmode \egroup $\hfil \egroup \end{trivlist}\else \@badmath \fi} \def\equation{\@beginparpenalty\predisplaypenalty \@endparpenalty\postdisplaypenalty \refstepcounter{equation}\trivlist \item[]\leavevmode \hbox to\linewidth\bgroup $\m@th% $ TO MAKE DOLLAR NESTING OK \displaystyle \hskip\mathindent} \def\endequation{$\hfil % $ TO MAKE DOLLAR NESTING IN THIS FILE OK \displaywidth\linewidth\@eqnnum\egroup \endtrivlist} \def\eqnarray{\stepcounter{equation}\let\@currentlabel=\theequation \global\@eqnswtrue \global\@eqcnt\z@\tabskip\mathindent\let\\=\@eqncr \abovedisplayskip\topsep\ifvmode\advance\abovedisplayskip\partopsep\fi \belowdisplayskip\abovedisplayskip \belowdisplayshortskip\abovedisplayskip \abovedisplayshortskip\abovedisplayskip $$\m@th\halign % $$ DOLLAR MATCHING to\linewidth\bgroup\@eqnsel\hskip\@centering$\displaystyle\tabskip\z@ {##}$&\global\@eqcnt\@ne \hskip 2\arraycolsep \hfil${##}$\hfil &\global\@eqcnt\tw@ \hskip 2\arraycolsep $\displaystyle{##}$\hfil \tabskip\@centering&\llap{##}\tabskip\z@\cr} \def\endeqnarray{\@@eqncr\egroup \global\advance\c@equation\m@ne$$\global\@ignoretrue % $$ MATCHING } \newdimen\mathindent \mathindent = \leftmargini \endinput latex209-25.may.1992.orig/doc/ifthen.doc100664 144 144 11773 5161754600 16655 0ustar nakaharastaff% IFTHEN DOCUMENT-STYLE OPTION - released 16 June 1991 % for LaTeX version 2.09 % Copyright (C) 1991 by Leslie Lamport \typeout{Document Style Option 'ifthen' -- Released 16 June 1991.} % \ifthenelse{TEST}{THENCLAUSE}{ELSECLAUSE} % An if-then-else command where % TEST == \equal{STRING}{STRING} % number < number | number = number | number > number | % \(TEST\) | \not TEST | TEST \or TEST | TEST \and TEST % with \or, \and and \not denoting the obvious logical operators, % \( and \) as parentheses, and \equal testing equality of strings. % % \equal{STRING}{STRING} % Tests if the two arguments are equal, after all macros are expanded. % E.g.: \def\foo{bar} ... causes \equal{\foo}{bar} to evaluate to `true' % % \whiledo{TEST}{DO-CLAUSE} % A while-do construction, with TEST the same as above. % % \ifthenelse{TEST}{THEN-CLAUSE}{ELSE-CLAUSE} == % BEGIN % \@tempboxa := \vbox{ \protect := \noexpand % \or := \@or % \and := \@and % \not := \@neg % \( := \@lparen % \) := \@rparen % \@eval \ifnum % eval(TEST) %%% \if's not expanded % @term := T \else @term := F \fi % \@endeval % @gtempa :=G @val } % IF @gtempa = T THEN THEN-CLAUSE % ELSE ELSE-CLAUSE FI % END % % \@eval == BEGIN @val := F % @orop := T % @negate := F % END % % \@endeval == % BEGIN % IF \@negate =T THEN \@negate := F % IF \@term = T THEN \@term := F % ELSE \@term := T % FI FI % IF \@orop = T THEN IF \@val = F % THEN \@val := \@term FI % ELSE IF \@val = T THEN \@val := \@term FI % FI % % \@or == % BEGIN @term := T \else @term := F \fi % \@endeval % \@orop := T % \ifnum % END % % \@and == % BEGIN \relax \@term := T \else \@term := F \fi % \@endeval % \@orop := F % \ifnum % END % % \@neg == BEGIN 1=1 \fi % \@negate := T % \ifnum % END % % \@lparen == BEGIN 1=1 \fi % \begingroup % \@eval \ifnum % END % % \@rparen == % BEGIN \relax \@term := T \else \@term := F \fi % \@endeval % IF \@val = T THEN \@gtempb :=G 1=1 % ELSE \@gtempb :=G 1=0 FI % \endgroup % \ifnum % \@gtempb % % \equal{STR1}{STR2} == % BEGIN 1=1 \fi % \@tempa := eval(STR1) % \@tempe := eval(STR2) % IF \@tempa == \@tempe % THEN \@tempa := 1=1 % ELSE \@tempa := 1=0 FI % \ifnum \@tempa % END % % \whiledo{TEST}{DO-CLAUSE} == % \ifthenelse{TEST}{@whiledo := true % WHILE @whiledo % DO DO-CLAUSE % \ifthenelse{TEST}{@whiledo := true} % {@whiledo := false} % OD} % {} \long\def\ifthenelse#1#2#3{\setbox\@tempboxa \vbox{\let\protect\noexpand \let\or\@or \let\and\@and \let\not\@neg \let\(\@lparen \let\)\@rparen {\let\if\relax\let\ifx\relax\let\ifnum\relax\let\fi\relax \let\else\relax \xdef\@gtempa{#1}}\expandafter \@eval \ifnum \@gtempa\relax \def\@term{T}\else \def\@term{F}\fi \@endeval\global\let\@gtempa\@val}\if\@gtempa T#2\else#3\fi} \def\@eval{\def\@val{F}\def\@orop{T}\def\@negate{F}} \def\@endeval{\if\@negate T\def\@negate{F}\if\@term T\def\@term{F}\else \def\@term{T}\fi\fi \if\@orop T\if\@val F\let\@val\@term\fi \else \if\@val T\let\@val\@term\fi\fi} \def\@or{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi \noexpand\@endeval \def\noexpand\@orop{T}\ifnum} \def\@and{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi \noexpand\@endeval\def\noexpand\@orop{F}\ifnum} \def\@neg{1=1 \fi \def\noexpand\@negate{T}\ifnum} \def\@lparen{1=1 \fi \begingroup \noexpand\@eval \ifnum} \def\@rparen{\relax\def\noexpand\@term{T}\else \def\noexpand\@term{F}\fi \noexpand\@endeval \if\noexpand\@val T\gdef\noexpand\@gtempb{1=1}\else \gdef\noexpand\@gtempb{1=0}\fi \endgroup \ifnum\noexpand\@gtempb} \def\equal#1#2{1=1 \fi \edef\noexpand\@tempa{#1}% \edef\noexpand\@tempe{#2}\ifx \noexpand\@tempa\noexpand\@tempe \def\noexpand\@tempa{1=1}\else \def\noexpand\@tempa{1=0}\fi \ifnum \noexpand\@tempa} \long\def\whiledo#1#2{\ifthenelse{#1}{\@whiledotrue \@whilesw\if@whiledo \fi{#2\ifthenelse{#1}{\@whiledotrue}{\@whiledofalse}}}{}} \newif\if@whiledo \endinput latex209-25.may.1992.orig/doc/book.doc100664 144 144 71345 5161754600 16333 0ustar nakaharastaff% BOOK DOCUMENT STYLE -- Released 14 January 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \typeout{Standard Document Style `book' <14 Jan 92>.} % PREPARING A FOREIGN LANGUAGE VERSION: % % This document style is for documents prepared in the English language. % To prepare a version for another language, various English words must % be replaced. All the English words that required replacement are % indicated below, where we give the name of the command in which the % words appear, and which must be redefined, with the actual words % underlined. % % \tableofcontents: \def\contentsname{Contents} % ~~~~~~~~ % % \listoffigures: \def\listfigurename{List of Figures} % ~~~~~~~~~~~~~~~ % % \listoftables: \def\listtablename{List of Tables} % ~~~~~~~~~~~~~~ % % \thebibliography: \def\bibname{Bibliography} % ~~~~~~~~~~~~ % % \theindex: \def\indexname{Index} % ~~~~~ % % figure environment: \def\figurename{Figure} % ~~~~~~ % % table environment: \def\tablename{Table} % ~~~~~ % % \chapter: \def\chaptername{Chapter} % ~~~~~~~ % \appendix: \def\appendixname{Appendix} % ~~~~~~~~ % \part \def\partname{Part} % ~~~~ % % CHOOSING THE TYPE SIZE: % % The type size option is handled by reading a different file for each % size, as follows, to define font size-specific commands: % 10pt : BK10, 11pt : BK11, 12pt : BK12 % Implemented by \def'ing \@ptsize to last digit of file name. % \def\@ptsize{0} % Default is REP10.STY \@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option reads in REP11.STY \@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option reads in REP12.STY % Books use two-sided printing. % \@twosidetrue % Defines twoside option. \@mparswitchtrue % Marginpars go on outside of page. % draft option % % \overfullrule = 0pt %Default is don't mark overfull hboxes. \def\ds@draft{\overfullrule 5pt} % Causes overfull hboxes to be marked. % FMi 91/03/30: made twocolum.sty a file and twocolumn an option. % RmS 91/10/15: moved actual reading of twocolumn.sty % to the end of this file. %\def\ds@twocolumn{\@@input twocolum.sty\relax} \def\ds@twocolumn{\@twocolumntrue} % The \@options command causes the execution of every command \ds@FOO % which is defined and for which the user typed the FOO option in his % \documentstyle command. For every option BAR he typed for which % \ds@BAR is not defined, the file BAR.sty will be read after the % present (main) .STY file is executed. \@options \input bk1\@ptsize.sty\relax % **************************************** % * LISTS * % **************************************** % % ENUMERATE % Enumeration is done with four counters: enumi, enumii, enumiii % and enumiv, where enumN controls the numbering of the Nth level % enumeration. The label is generated by the commands \labelenumi % ... \labelenumiv. The expansion of \p@enumN\theenumN defines the % output of a \ref command. % 16 Mar 88 -- changed defs of \labelenum... to use \theenum... \def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} % ITEMIZE % Itemization is controlled by four commands: \labelitemi, \labelitemii, % \labelitemiii, and \labelitemiv, which define the labels of the % various itemization levels. \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} % VERSE % The verse environment is defined by making clever use of the % list environment's parameters. The user types \\ to end a line. % This is implemented by \let'in \\ equal \@centercr. % \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} \let\endverse\endlist % QUOTATION % Fills lines % Indents paragraph % \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin\parsep \z@ plus\p@}\item[]} \let\endquotation=\endlist % QUOTE -- same as quotation except no paragraph indentation, % \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist % DESCRIPTION % % To change the formatting of the label, you must redefine % \descriptionlabel. \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist \newdimen\descriptionmargin \descriptionmargin=3em % **************************************** % * OTHER ENVIRONMENTS * % **************************************** % % % THEOREM % \@begintheorem ... \@endtheorem are the commands executed at the % beginning and end of a (user-defined) theorem-like environment. % Except \@opargbegintheorem is executed when an optional argument is % given. Cf. LATEX.TEX. % % \def\@begintheorem#1#2{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2}]} % \def\@opargbegintheorem#1#2#3{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]} % \def\@endtheorem{\endtrivlist} % TITLEPAGE % In the normal environments, the titlepage environment does nothing % but start and end a page, and inhibit page numbers. It also resets % the page number to zero. In two-column style, it still makes a % one-column page. \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn \else \newpage \fi \thispagestyle{empty}\c@page\z@} \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} % ARRAY AND TABULAR % \arraycolsep 5pt % Half the space between columns in an array % environment. \tabcolsep 6pt % Half the space between columns in a tabular % environment. \arrayrulewidth .4pt % Width of rules in array and tabular environment. \doublerulesep 2pt % Space between adjacent rules in array or tabular % environment. % TABBING % \tabbingsep \labelsep % Space used by the \' command. % (See LaTeX manual.) % MINIPAGE % \@minipagerestore is called upon entry to a minipage environment to % set up things that are to be handled differently inside a minipage % environment. In the current styles, it does nothing. % % \skip\@mpfootins : plays same role for footnotes in a minipage as % \skip\footins does for ordinary footnotes \skip\@mpfootins = \skip\footins % FRAMEBOX % \fboxsep = 3pt % Space left between box and text by \fbox and % \framebox. \fboxrule = .4pt % Width of rules in box made by \fbox and \framebox. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % DEFINE COUNTERS: % % \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is % reset to zero when counter OLDCTR is % stepped. % Counter OLDCTR must already be defined. \newcounter {part} \newcounter {chapter} \newcounter {section}[chapter] \newcounter {subsection}[section] \newcounter {subsubsection}[subsection] \newcounter {paragraph}[subsubsection] \newcounter {subparagraph}[paragraph] % For any counter CTR, \theCTR is a macro that defines the printed % version of counter CTR. It is defined in terms of the following % macros: % % \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral. % \roman{COUNTER} : Its value printed as a lower-case roman numberal. % \Roman{COUNTER} : Its value printed as an upper-case roman numberal. % \alph{COUNTER} : Value of COUNTER printed as a lower-case letter: % 1 = a, 2 = b, etc. % \Alph{COUNTER} : Value of COUNTER printed as an upper-case letter: % 1 = A, 2 = B, etc. % \def\thepart {\Roman{part}} \def\thechapter {\arabic{chapter}} \def\thesection {\thechapter.\arabic{section}} \def\thesubsection {\thesection.\arabic{subsection}} \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} \def\theparagraph {\thesubsubsection.\arabic{paragraph}} \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} % \@chapapp is initially defined to be '\chaptername'. The \appendix % command redefines it to be '\appendixname'. % \def\@chapapp{\chaptername} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PART % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\part{\cleardoublepage % Starts new page. \thispagestyle{plain}% % Page style of part page is 'plain' \if@twocolumn % IF two-column style \onecolumn % THEN \onecolumn \@tempswatrue % @tempswa := true \else \@tempswafalse % ELSE @tempswa := false \fi % FI \hbox{}\vfil % Add fil glue to center title %% \bgroup \centering % BEGIN centering %% Removed 19 Jan 88 \secdef\@part\@spart} \def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2 \refstepcounter{part}% % THEN step % part counter \addcontentsline{toc}{part}{\thepart % add toc line \hspace{1em}#1}\else % ELSE add % unnumb. line \addcontentsline{toc}{part}{#1}\fi % FI \markboth{}{}% {\centering % %% added 19 Jan 88 \interlinepenalty \@M %% RmS added 11 Nov 91 \ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2 \huge\bf \partname~\thepart % THEN Print '\partname' and \par % number in \huge bold. \vskip 20\p@\fi % Add space before title. \Huge \bf % FI #2\par}\@endpart} % Print Title in \Huge bold. % Bug Fix 13 Nov 89: #1 -> #2 % \@endpart finishes the part page % \def\@endpart{\vfil\newpage % End page with 1fil glue. \if@twoside % IF twoside printing \hbox{}% % THEN Produce totally blank page \thispagestyle{empty}% \newpage \fi % FI \if@tempswa % IF @tempswa = true \twocolumn % THEN \twocolumn \fi} % FI \def\@spart#1{{\centering % %% added 19 Jan 88 \interlinepenalty \@M %% RmS Added 11 Nov 91 \Huge \bf % Print title in \huge boldface #1\par}\@endpart} % **************************************** % * TABLE OF CONTENTS, ETC. * % **************************************** % % A \subsection command writes a % \contentsline{subsection}{TITLE}{PAGE} % command on the .toc file, where TITLE contains the contents of the % entry and PAGE is the page number. If subsections are being numbered, % then TITLE will be of the form % \numberline{NUM}{HEADING} % where NUM is the number produced by \thesubsection. Other sectioning % commands work similarly. % % A \caption command in a 'figure' environment writes % \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE} % on the .lof file, where NUM is the number produced by \thefigure and % CAPTION is the figure caption. It works similarly for a 'table' % environment. % % The command \contentsline{NAME} expands to \l@NAME. So, to specify % the table of contents, we must define \l@chapter, \l@section, % \l@subsection, ... ; to specify the list of figures, we must define % \l@figure; and so on. Most of these can be defined with the % \@dottedtocline command, which works as follows. % % \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} % LEVEL : An entry is produced only if LEVEL < or = value of % 'tocdepth' counter. Note, \chapter is level 0, \section % is level 1, etc. % INDENT : The indentation from the outer left margin of the start % of the contents line. % NUMWIDTH : The width of a box in which the section number is to go, % if TITLE includes a \numberline command. % % This command uses the following three parameters, which are set % with a \def (so em's can be used to make them depend upon the font). % \@pnumwidth : The width of a box in which the page number is put. % \@tocrmarg : The right margin for multiple line entries. One % wants \@tocrmarg > or = \@pnumwidth % \@dotsep : Separation between dots, in mu units. Should be % \def'd to a number like 2 or 1.7 \def\@pnumwidth{1.55em} \def\@tocrmarg {2.55em} \def\@dotsep{4.5} \setcounter{tocdepth}{2} % TABLEOFCONTENTS % In report style, \tableofcontents, \listoffigures, etc. are always % set in single-column style. @restonecol \def\tableofcontents{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\contentsname \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}% \@starttoc{toc}\if@restonecol\twocolumn\fi} \def\l@part#1#2{\addpenalty{-\@highpenalty}% \addvspace{2.25em plus\p@}% space above part line \begingroup \@tempdima 3em % width of box holding part number, used by \parindent \z@ \rightskip \@pnumwidth %% \numberline \parfillskip -\@pnumwidth {\large \bf % set line in \large boldface \leavevmode % TeX command to enter horizontal mode. #1\hfil \hbox to\@pnumwidth{\hss #2}}\par \nobreak % Never break after part entry \global\@nobreaktrue %% Added 24 May 89 as \everypar{\global\@nobreakfalse\everypar{}}%% suggested by %% Jerry Leichter \endgroup} %% First line of l@chapter changed 24 May 89, as suggested %% by Jerry Leichter. %% \def\l@chapter#1#2{\addpenalty{-\@highpenalty}% \vskip 1.0em plus\p@ % space above chapter line \@tempdima 1.5em % width of box holding chapter number \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \bf % Boldface. \leavevmode % TeX command to enter horizontal mode. \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to \hskip -\leftskip %% 25 Jan 88 change to \numberline #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par \penalty\@highpenalty %% added 24 May 89, suggested by J. Leichter \endgroup} \def\l@section{\@dottedtocline{1}{1.5em}{2.3em}} \def\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}} \def\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}} \def\l@paragraph{\@dottedtocline{4}{10em}{5em}} \def\l@subparagraph{\@dottedtocline{5}{12em}{6em}} % LIST OF FIGURES % \def\listoffigures{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\listfigurename\@mkboth{\uppercase{\listfigurename}}% {\uppercase{\listfigurename}}}\@starttoc{lof}\if@restonecol \twocolumn\fi} \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} % LIST OF TABLES % \def\listoftables{\@restonecolfalse \if@twocolumn\@restonecoltrue\onecolumn\fi \chapter*{\listtablename\@mkboth{\uppercase{\listtablename}}% {\uppercase{\listtablename}}}\@starttoc{lot}\if@restonecol \twocolumn\fi} \let\l@table\l@figure % **************************************** % * BIBLIOGRAPHY * % **************************************** % % The thebibliography environment executes the following commands: % % \def\newblock{\hskip .11em plus .33em minus .07em} -- % Defines the `closed' format, where the blocks (major units of % information) of an entry run together. % % \sloppy -- Used because it's rather hard to do line breaks in % bibliographies, % % \sfcode`\.=1000\relax -- % Causes a `.' (period) not toproduce an end-of-sentence space. %% RmS 91/10/27 [ .. ] replaced by \@biblabel{ .. } %% RmS 91/11/13: Changed counter enumi to enumiv, %% as it says in the comment in latex.tex %% RmS 92/01/14: Set \p@enumiv to {} and \theenumiv to \arabic{enumiv} %% to get correct references \def\thebibliography#1{\chapter*{\bibname\@mkboth {\uppercase{\bibname}}{\uppercase{\bibname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\hskip .11em plus.33em minus.07em}% \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=\@m} %% 91/08/26 FMI & RmS: introduced warning instead of error \def\endthebibliography{% \def\@noitemerr{\@warning{Empty `thebibliography' environment}}% \endlist} % \def\@biblabel#1{[#1]\hfill} % Produces the label for a \bibitem[...] % command. % \def\@cite#1{[#1]} % Produces the output of the \cite % command. % **************************************** % * THE INDEX * % **************************************** % % THE THEINDEX ENVIRONMENT % Produces double column format, with each paragraph a separate entry. % The user commands \item, \subitem and \subsubitem are used to % produce the entries, and \indexspace adds an extra vertical space % that's the right size to put above the first entry with a new letter % of the alphabet. \newif\if@restonecol \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35\p@\twocolumn[\@makeschapterhead{\indexname}]% \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}% \thispagestyle{plain}\parindent\z@ \parskip\z@ plus .3\p@\relax\let\item\@idxitem} \def\@idxitem{\par\hangindent 40\p@} \def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}} \def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}} \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} \def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} % **************************************** % * FOOTNOTES * % **************************************** % % \footnoterule is a macro to draw the rule separating the footnotes % from the text. It should take zero vertical space, so it needs a % negative skip to compensate for any positive space taken by the rule. % (See PLAIN.TEX.) \def\footnoterule{\kern-3\p@ \hrule width .4\columnwidth \kern 2.6\p@} % The \hrule has default height of .4pt. % \newcounter{footnote} \@addtoreset{footnote}{chapter} % Numbers footnotes within chapters % \@makefntext{NOTE} : % Must produce the actual footnote, using \@thefnmark as the mark % of the footnote and NOTE as the text. It is called when % effectively inside a \parbox of width \columnwidth (i.e., with % \hsize = \columnwidth). % % The following macro indents all lines of the footnote by 10pt, % and indents the first line of a new paragraph by 1em. To % change these dimensions, just substitute the desired value for % '10pt' [in both places] or '1em'. The mark is flushright % against the footnote. % \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize % \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par % \parindent 1em\noindent % \hbox to \z@{\hss$\m@th^{\@thefnmark}$}#1} % % A simpler macro is used, in which the footnote text is % set like an ordinary text paragraph, with no indentation except % on the first line of a paragraph, and the first line of the % footnote. Thus, all the macro must do is set \parindent % to the appropriate value for succeeding paragraphs and put the % proper indentation before mark. \long\def\@makefntext#1{\parindent 1em\noindent \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. Default used. % % **************************************** % * FIGURES AND TABLES * % **************************************** % % Float placement parameters. See LaTeX manual for their definition. % \setcounter{topnumber}{2} \def\topfraction{.7} \setcounter{bottomnumber}{1} \def\bottomfraction{.3} \setcounter{totalnumber}{3} \def\textfraction{.2} \def\floatpagefraction{.5} \setcounter{dbltopnumber}{2} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} % \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption. % NUMBER : Figure or table number--e.g., 'Figure 3.2' % TEXT : The caption text. % Macro should be called inside a \parbox of right width, with % \normalsize. % changed 25 Jun 86 to fix according to Howard Trickey: % instead of \unhbox\@tempboxa\par we do #1: #2\par \long\def\@makecaption#1#2{% \vskip 10\p@ \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize % IF longer than one line: #1: #2\par % THEN set as ordinary paragraph. \else % ELSE center. \hbox to\hsize{\hfil\box\@tempboxa\hfil}% \fi} % To define a float of type TYPE (e.g., TYPE = figure), the document % style must define the following. % % \fps@TYPE : The default placement specifier for floats of type % TYPE. % % \ftype@TYPE : The type number for floats of type TYPE. Each TYPE % has associated a unique positive TYPE NUMBER, which % is a power of two. E.g., figures might have type % number 1, tables type number 2, programs type number % 4, etc. % % \ext@TYPE : The file extension indicating the file on which the % contents list for float type TYPE is stored. For % example, \ext@figure = 'lof'. % % \fnum@TYPE : A macro to generate the figure number for a caption. % For example, \fnum@TYPE == Figure \thefigure. % % The actual float-making environment commands--e.g., the commands % \figure and \endfigure--are defined in terms of the macros \@float % and \end@float, which are described below. % % \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a % single-column float of type TYPE with PLACEMENT as the placement % specifier. The default value of PLACEMENT is defined by % \fps@TYPE. The environment is ended by \end@float. E.g., % \figure == \@float{figure}, \endfigure == \end@float. % FIGURE \newcounter{figure}[chapter] \def\thefigure{\thechapter.\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{\figurename~\thefigure} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} % TABLE % \newcounter{table}[chapter] \def\thetable{\thechapter.\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{\tablename~\thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} % **************************************** % * TITLE * % **************************************** % % % Uses same title format as the article style's % titlepage option. \def\maketitle{\begin{titlepage}% \let\footnotesize\small % Local definitions to make \thanks produce \let\footnoterule\relax % \normalsize footnotes with no separating % rule. \setcounter{page}{0}% \null \vfil \vskip 60\p@ % To adjust centering. \begin{center}% {\LARGE \@title \par}% % Set title in \LARGE size. \vskip 3em % Vertical space after title. {\large % Set author in \large size. \lineskip .75em \begin{tabular}[t]{c}\@author \end{tabular}\par}% \vskip 1.5em % Vertical space after author. {\large \@date \par}% % Set date in \large size. \end{center}\par \@thanks \vfil \null \end{titlepage}% \setcounter{footnote}{0}% % Footnotes start at zero again. \let\thanks\relax \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\maketitle\relax} % **************************************** % * PAGE STYLES * % **************************************** % % The page style 'foo' is defined by defining the command \ps@foo. This % command should make only local definitions. There should be no stray % spaces in the definition, since they could lead to mysterious extra % spaces in the output. % % The \ps@... command defines the macros \@oddhead, \@oddfoot, % \@evenhead, and \@evenfoot to define the running heads and % feet---e.g., \@oddhead is the macro to produce the contents of the % heading box for odd-numbered pages. It is called inside an \hbox of % width \textwidth. % % To make headings determined by the sectioning commands, the page style % defines the commands \chaptermark, \sectionmark, ... , where % \chaptermark{TEXT} is called by \chapter to set a mark, and so on. % The \...mark commands and the \...head macros are defined with the % help of the following macros. (All the \...mark commands should be % initialized to no-ops.) % % MARKING CONVENTIONS: % LaTeX extends TeX's \mark facility by producing two kinds of marks % a 'left' and a 'right' mark, using the following commands: % \markboth{LEFT}{RIGHT} : Adds both marks. % \markright{RIGHT} : Adds a 'right' mark. % \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or % \@evenfoot macro, gets the current 'left' mark. % Works like TeX's \botmark command. % \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or % \@evenfoot macro, gets the current 'right' mark. % Works like TeX's \firstmark command. % The marking commands work reasonably well for right marks 'numbered % within' left marks--e.g., the left mark is changed by a \chapter % command and the right mark is changed by a \section command. However, % it does produce somewhat anomalous results if two \bothmark's occur on % the same page. % % % Commands like \tableofcontents that should set the marks in some % page styles use a \@mkboth command, which is \let by the pagestyle % command (\ps@...) to \markboth for setting the heading or % \@gobbletwo to do nothing. \mark{{}{}} % Initializes TeX's marks % \ps@empty and \ps@plain defined in LATEX.TEX % Definition of 'headings' page style % Note the use of ##1 for parameter of \def\chaptermark inside the % \def\ps@headings. % % 91/03/26 FMi: Added extra set of braces arround |\sl| in |\@oddhead| % to support NFSS (|\sl| is a shape |\rm| a family). Also remove % unnecessary |\hbox{}| commands. % \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@evenhead{\rm \thepage\hfil \sl \leftmark}% Left heading. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Right heading. \def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\m@ne \@chapapp\ \thechapter. \ \fi ##1}}{}}% \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@ \thesection. \ \fi ##1}}}} % Definition of 'myheadings' page style. % \def\ps@myheadings{\let\@mkboth\@gobbletwo \def\@oddhead{{\sl\rightmark}\hfil \rm\thepage}% \def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark}% \def\@evenfoot{}\def\chaptermark##1{}\def\sectionmark##1{}% \def\subsectionmark##1{}} % **************************************** % * MISCELLANEOUS * % **************************************** % % DATE % \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} % EQUATION and EQNARRAY -- put here because it must follow \chapter % definition % % \newcounter{equation} % \@addtoreset{equation}{chapter} % Makes \chapter reset 'equation' % counter. \def\theequation{\thechapter.\arabic{equation}} % \jot = 3pt % Extra space added between lines of an eqnarray % environment % The macro \@eqnnum defines how equation numbers are to appear in % equations. % % \def\@eqnnum{(\theequation)} % % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations \ps@headings % `headings' page style \pagenumbering{arabic} % Arabic page numbers \if@twocolumn \@@input twocolum.sty\relax \else \onecolumn % Single-column. \fi \endinput latex209-25.may.1992.orig/doc/leqno.doc100664 144 144 714 5161754600 16447 0ustar nakaharastaff% LEQNO DOCUMENT-STYLE OPTION - released 29 September 1991 % for LaTeX version 2.09 % Copyright (C) 1985, 1991 by Leslie Lamport \typeout{Document style option `leqno' - released 29 Sep 1991} % The following command puts equation numbers on the left. % Works with either the regular styles or the fleqn option. %% RmS: \reset@font added 91/09/29 \def\@eqnnum{\hbox to .01\p@{}\rlap{\reset@font\rm \hskip -\displaywidth(\theequation)}} \endinput latex209-25.may.1992.orig/doc/bk11.doc100664 144 144 41364 5161754600 16135 0ustar nakaharastaff% BOOK STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. (Actual % value will be \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, % the document style defines \@normalsize instead of \normalsize. % This is done only for \normalsize, not for any other size-changing % commands. \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 9 Jun 87 \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt \abovedisplayskip 8\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. Dimensions shrink by about 2 percent \oddsidemargin .25in % Left margin on odd-numbered pages. \evensidemargin 1.25in % Left margin on even-numbered pages. \marginparwidth 1in % Width of marginal notes. \marginparsep 7pt % Horizontal space between outer margin and % marginal note % VERTICAL SPACING: % Top of page: \topmargin .73in % Nominal distance from top of page to top of % box containing running head. \headheight 12pt % Height of box containing running head. \headsep .275in % Space between running head and text. \topskip = 11pt % '\baselineskip' for first line of page. % Bottom of page: \footskip .38in % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % 24 Jun 86: changed to explicitly compute \textheight to avoid % roundoff. The value of the multiplier was calculated as the floor % of the old \textheight minus \topskip, divided by \baselineskip for % \normalsize. The old value of \textheight was 530.4pt. \textheight % is the height of text (including footnotes and figures, excluding % running head and foot). \textheight = 38\baselineskip \advance\textheight by \topskip \textwidth 5in % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: \footnotesep 7.7pt % Height of strut placed at the beginning of every % footnote = height of normal \footnotesize strut, % so no extra space between footnotes. \skip\footins 10pt plus 4pt minus 2pt % Space between last line of text % and top of first footnote. % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats % moved to top or bottom of % text page. \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and % floats at top or bottom of % page. \intextsep 12pt plus 2pt minus 2pt % Space between in-text figures % and text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep % (minus the stretch and % shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: \dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for % double-column figures in % two-column mode. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for % double-column floats. \@dblmaxsep 20pt % The maximum of \dblfloatsep % and \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must % be 0pt plus ...) \@fpsep 8pt plus 2fil % Space between floats on float page/column. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must % be 0pt plus ... ) % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt % plus ...) \@dblfpsep 8pt plus 2fil % Space between floats on float page. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be % 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 5pt % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 0pt plus 1pt % Extra vertical space between % paragraphs. \parindent 17pt % Width of paragraph indentation. %\topsep 9pt plus 3pt minus 5pt % Extra vertical space, in addition % to \parskip, added above and below % list and paragraphing environments. \partopsep 3pt plus 1pt minus 2pt % Extra vertical space, in addition % to \parskip and \topsep, added when % user leaves blank line before % environment. %\itemsep 4.5pt plus 2pt minus 1pt % Extra vertical space, in addition % to \parskip, added between list % items. % See \@listI for values of \topsep and \itemsep % (Change made 9 Jun 87) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % Definition of \part moved to book.doc 19 Jan 88 % \@makechapterhead {TEXT} : Makes the heading for the \chapter % command. % \def\@makechapterhead#1{% % Heading for \chapter command \vspace*{50\p@}% % Space at top of text page. {\parindent \z@ \raggedright \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN \huge\bf \@chapapp{} \thechapter % Print 'Chapter' and number. \par \vskip 20\p@ \fi % Space between number and title. \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \@makeschapterhead {TEXT} : Makes the heading for the \chapter* % command. % \def\@makeschapterhead#1{% % Heading for \chapter* command \vspace*{50\p@}% % Space at top of page. {\parindent \z@ \raggedright \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a \chapter or \section command without using % \@startsection, you can use \secdef as follows: % \def\chapter { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... % Command to define % % \chapter[...]{...} % \def\CMDB #1{ ... % Command to define % % \chapter*{...} \def\chapter{\cleardoublepage % Starts new right-hand page. \thispagestyle{plain}% % Page style of chapter page is 'plain' \global\@topnum\z@ % Prevents figures from going % at top of page. \@afterindentfalse % Suppresses indent in first paragraph. \secdef\@chapter\@schapter} % Change to \@afterindenttrue to % have indent. \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}} % Adds between-chapter space \addtocontents{lot}% {\protect\addvspace{10\p@}} % to lists of figs & tables. \if@twocolumn % Tests for two-column mode. \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading % Routine called after chapter and \fi} % section heading. \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- e.g., % chapter=1, section = 2, etc. A section number will be % printed if and only if LEVEL < or = the value of the % secnumdepth counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % us in defining page styles. % \def\chaptermark#1{} % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{2} % APPENDIX % % The \appendix command must do the following: % -- reset the chapter counter to zero % -- set \@chapapp to Appendix (for messages) % -- redefine the chapter counter to produce appendix numbers % -- reset the section counter to zero % -- redefine the \chapter command if appendix titles and headings % are to look different from chapter titles and headings. \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. \leftmargini 2.5em \leftmarginii 2.2em % > \labelsep + width of '(m)' \leftmarginiii 1.87em % > \labelsep + width of 'vii.' \leftmarginiv 1.7em % > \labelsep + width of 'M.' \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep %\parsep 4.5pt plus 2pt minus 1pt %(Removed 9 Jun 87) % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 9 Jun 87) \def\@listI{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \topsep 9\p@ plus3\p@ minus5\p@ \itemsep 4.5\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4.5\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/doc/bk10.doc100664 144 144 41337 5161754600 16134 0ustar nakaharastaff% BOOK STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. (Actual % value will be \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, the % document style defines \@normalsize instead of \normalsize . This % is done only for \normalsize, not for any other size-changing % commands. \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 9 Jun 87 \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip 8.5\p@ plus3\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus2\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt \abovedisplayskip 6\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 3\p@ plus\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. % SIDE MARGINS: \oddsidemargin .5in % Left margin on odd-numbered pages. \evensidemargin 1.5in % Left margin on even-numbered pages. \marginparwidth .75in % Width of marginal notes. \marginparsep 7pt % Horizontal space between outer margin and % marginal note % VERTICAL SPACING: % Top of page: \topmargin .75in % Nominal distance from top of page to top % of box containing running head. \headheight 12pt % Height of box containing running head. \headsep .25in % Space between running head and text. \topskip = 10pt % '\baselineskip' for first line of page. % Bottom of page: \footskip .35in % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % 24 Jun 86: changed to explicitly compute \textheight to avoid % roundoff. The value of the multiplier was calculated as the floor % of the old \textheight minus \topskip, divided by \baselineskip for % \normalsize. The old value of \textheight was 504pt. \textheight % is the height of text (including footnotes and figures, excluding % running head and foot). \textheight = 41\baselineskip \advance\textheight by \topskip \textwidth 4.5in % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: \footnotesep 6.65pt % Height of strut placed at the beginning of every % footnote = height of normal \footnotesize strut, % so no extra space between footnotes. \skip\footins 9pt plus 4pt minus 2pt % Space between last line of text % and top of first footnote. % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats % moved to top or bottom of % text page. \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and % floats at top or bottom of % page. \intextsep 12pt plus 2pt minus 2pt % Space between in-text figures % and text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep % (minus the stretch and % shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: \dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for % double-column figures in % two-column mode. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for % double-column floats. \@dblmaxsep 20pt % The maximum of \dblfloatsep % and \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must % be 0pt plus ...) \@fpsep 8pt plus 2fil % Space between floats on float page/column. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must % be 0pt plus ... ) % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt % plus ...) \@dblfpsep 8pt plus 2fil % Space between floats on float page. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be % 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 5pt % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 0pt plus 1pt % Extra vertical space between % paragraphs. \parindent 15pt % Width of paragraph indentation. %\topsep 8pt plus 2pt minus 4pt % Extra vertical space, in addition % to \parskip, added above and below % list and paragraphing environments. \partopsep 2pt plus 1pt minus 1pt % Extra vertical space, in addition % to \parskip and \topsep, added when % user leaves blank line before % environment. %\itemsep 4pt plus 2pt minus 1pt % Extra vertical space, in addition % to \parskip, added between list % items. % See \@listI for values of \topsep and \itemsep % (Change made 9 Jun 87) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % % Definition of \part moved to book.doc 19 Jan 88 % \@makechapterhead {TEXT} : Makes the heading for the \chapter command. % \def\@makechapterhead#1{% % Heading for \chapter command \vspace*{50\p@}% % Space at top of text page. {\parindent \z@\raggedright \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN \huge\bf \@chapapp{} \thechapter % Print '\chaptername' and number. \par \vskip 20\p@ \fi % Space between number and title. \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \@makeschapterhead {TEXT} : Makes the heading for the \chapter* % command. % \def\@makeschapterhead#1{% % Heading for \chapter* command \vspace*{50\p@}% % Space at top of page. {\parindent \z@ \raggedright \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a \chapter or \section command without using % \@startsection, you can use \secdef as follows: % \def\chapter { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... } % Command to define % % \chapter[...]{...} % \def\CMDB #1{ ... } % Command to define % % \chapter*{...} \def\chapter{\cleardoublepage % Starts new right-hand page. \thispagestyle{plain}% % Page style of chapter page is 'plain' \global\@topnum\z@ % Prevents figures from going at % top of page. \@afterindentfalse % Suppresses indent in first paragraph. \secdef\@chapter\@schapter}% Change to \@afterindenttrue to have % indent. \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}}% Adds between-chapter space to \addtocontents{lot}% {\protect\addvspace{10\p@}}%lists of figs & tables. \if@twocolumn % Tests for two-column mode. \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading % Routine called after chapter and \fi} % section heading. \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- e.g., % chapter=1, section = 2, etc. A section number will be % printed if and only if LEVEL < or = the value of the % secnumdepth counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % us in defining page styles. % \def\chaptermark#1{} % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{2} % APPENDIX % % The \appendix command must do the following: % -- reset the chapter counter to zero % -- set \@chapapp to Appendix (for messages) % -- redefine the chapter counter to produce appendix numbers % -- reset the section counter to zero % -- redefine the \chapter command if appendix titles and headings % are to look different from chapter titles and headings. \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. \leftmargini 25pt \leftmarginii 22pt % > \labelsep + width of '(m)' \leftmarginiii 18.7pt % > \labelsep + width of 'vii.' \leftmarginiv 17pt % > \labelsep + width of 'M.' \leftmarginv 10pt \leftmarginvi 10pt \leftmargin\leftmargini \labelsep 5pt \labelwidth\leftmargini\advance\labelwidth-\labelsep % \parsep 4pt plus 2pt minus 1pt (Removed 9 Jun 87) % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 9 Jun 87) \def\@listI{\leftmargin\leftmargini \parsep 4\p@ plus2\p@ minus\p@ \topsep 8\p@ plus2\p@ minus4\p@ \itemsep 4\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/doc/bezier.doc100664 144 144 7406 5161754600 16636 0ustar nakaharastaff% BEZIER DOCUMENT-STYLE OPTION - released 17 December 1985 % for LaTeX version 2.09 % Copyright (C) 1985 by Leslie Lamport % In a picture environment, writing % % \bezier{N}(AX,AY)(BX,BY)(CX,CY) % % plots a quadratic Bezier curve from (AX,AY) to (CX,CY), with (BX,BY) % as the third Bezier point, using N+1 equally spaced points. % % \bezier{N}(AX,AY)(BX,BY)(CX,CY) == % BEGIN % @sc := N % @scp := @sc+1 % \@xb := 2 * (BX - AX) * \unitlength % \@xa := ((CX-AX)*\unitlength - \@xb)/@sc % \@yb := 2 * (BY - AY) * \unitlength % \@ya := ((CY-AY)*\unitlength - \@yb)/@sc % \@pt := square rule of width \@wholewidth % @t := 0 % WHILE @t < @scp % DO \@x := ((@t*\@xa + @xb) / @sc) * t % \@y := ((@t*\@ya + @yb) / @sc) * t % plot pt with relative coords (\@x,\@y) % @t := @t+1 % OD \newcounter{@sc} \newcounter{@scp} \newcounter{@t} \newlength{\@x} \newlength{\@xa} \newlength{\@xb} \newlength{\@y} \newlength{\@ya} \newlength{\@yb} \newsavebox{\@pt} \def\bezier#1(#2,#3)(#4,#5)(#6,#7){\c@@sc#1\relax \c@@scp\c@@sc \advance\c@@scp\@ne \@xb #4\unitlength \advance\@xb -#2\unitlength \multiply\@xb \tw@ \@xa #6\unitlength \advance\@xa -#2\unitlength \advance\@xa -\@xb \divide\@xa\c@@sc \@yb #5\unitlength \advance\@yb -#3\unitlength \multiply\@yb \tw@ \@ya #7\unitlength \advance\@ya -#3\unitlength \advance\@ya -\@yb \divide\@ya\c@@sc \setbox\@pt\hbox{\vrule height\@halfwidth depth\@halfwidth width\@wholewidth}\c@@t\z@ \put(#2,#3){\@whilenum{\c@@t<\c@@scp}\do {\@x\c@@t\@xa \advance\@x\@xb \divide\@x\c@@sc \multiply\@x\c@@t \@y\c@@t\@ya \advance\@y\@yb \divide\@y\c@@sc \multiply\@y\c@@t \raise \@y \hbox to \z@{\hskip \@x\unhcopy\@pt\hss}% \advance\c@@t\@ne}}} % of commands of the type specified below, does the following, % where t, dt, dx, and dy are counters, % % t := 0 % dt := DT % dx := 0 % dy := 0 % WHILE t < MAX % DO plot the point (X + (dx/SCALE)), Y + (dy/SCALE)) % t := t + dt % execute COMMANDS % OD % % COMMANDS may include only the commands \set, \add, \mul, or \div, % defined as follows, where % CTR == counter name, % VAL == either an integer (like 2145 or -7), or % \value{CTR'}, where CTR' a counter name, or % -\value{CTR'} % % \set{CTR}{VAL} % This command performs the operation CTR := VAL % % \add{CTR}{VAL} % Performs the operation CTR := CTR + VAL % % \mul{CTR}{VAL} % Performs the operation CTR := CTR * VAL % % \div{CTR}{VAL} % Performs the operation CTR := CTR / VAL % (this is integer division, with 5/3 = 1 and % -5/3 = 5/(-3) = -1) % % There should be no spaces in COMMANDS. However, the command \ can % be used for readabiilty--e.g., % \set{foo}{dt}\ \mul{foo}{3} % % % HINTS: % \plot'ing takes a long time, so start with DT large, and make it % small only for the final draft. % %\newcounter{t} %\newcounter{dt} %\newcounter{dx} %\newcounter{dy} % %\def\set#1#2{\csname c@#1\endcsname#2} %\def\@div#1#2{\divide\csname c@#1\endcsname#2} %\def\mul#1#2{\multiply\csname c@#1\endcsname#2} %\def\add#1#2{\advance\csname c@#1\endcsname#2} % %\def\plot#1#2#3#4{\let\div\@div \def\ {}\c@t\z@ \c@t\z@ % \c@dt#1\c@dx\z@ \c@dy\z@\edef\@tempa{#4}\@tempdima\unitlength % \divide\@tempdima #3\relax % \setbox\@pt\hbox{\vrule height\@halfwidth depth\@halfwidth % width\@wholewidth}\@whilenum{\c@t<#2}\do % {\raise \c@dy\@tempdima \hbox to \z@{\hskip \c@dx\@tempdima % \unhcopy\@pt\hss % }\advance\c@t\c@dt\@tempa}} % \endinput latex209-25.may.1992.orig/doc/bk12.doc100664 144 144 41412 5161754600 16130 0ustar nakaharastaff% BOOK STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. (Actual % value will be \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, % the document style defines \@normalsize instead of \normalsize. % This is done only for \normalsize, not for any other size-changing % commands. \def\@normalsize{\@setsize\normalsize{14.5pt}\xiipt\@xiipt \abovedisplayskip 12\p@ plus3\p@ minus7\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 9 Jun 87 \def\small{\@setsize\small{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \parsep 4.5\p@ plus2\p@ minus\p@ \itemsep \parsep \topsep 9\p@ plus3\p@ minus5\p@}} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. % SIDE MARGINS: \oddsidemargin .25in % Left margin on odd-numbered pages. \evensidemargin 1.25in % Left margin on even-numbered pages. \marginparwidth 1in % Width of marginal notes. \marginparsep 7pt % Horizontal space between outer margin and % marginal note % VERTICAL SPACING: % Top of page: \topmargin .73in % Nominal distance from top of page to top % of box containing running head. \headheight 12pt % Height of box containing running head. \headsep .275in % Space between running head and text. \topskip = 12pt % '\baselineskip' for first line of page. % Bottom of page: \footskip 30pt % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % 24 Jun 86: changed to explicitly compute \textheight to avoid % roundoff. The value of the multiplier was calculated as the floor % of the old \textheight minus \topskip, divided by \baselineskip for % \normalsize. The old value of \textheight was 536.5pt. \textheight % is the height of text (including footnotes and figures, excluding % running head and foot). \textheight = 36\baselineskip \advance\textheight by \topskip \textwidth 5in % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: \footnotesep 8.4pt % Height of strut placed at the beginning of every % footnote = height of normal \footnotesize strut, % so no extra space between footnotes. \skip\footins 10.8pt plus 4pt minus 2pt % Space between last line of % text and top of first % footnote. % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \floatsep 14pt plus 2pt minus 4pt % Space between adjacent floats % moved to top or bottom of % text page. \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and % floats at top or bottom of % page. \intextsep 14pt plus 4pt minus 4pt % Space between in-text figures % and text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep % (minus the stretch and % shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: \dblfloatsep 14pt plus 2pt minus 4pt % Same as \floatsep for % double-column figures in % two-column mode. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for % double-column floats. \@dblmaxsep 20pt % The maximum of \dblfloatsep % and \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must % be 0pt plus ...) \@fpsep 10pt plus 2fil % Space between floats on float page/column. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. % (Must be 0pt plus ... ) % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be % 0pt plus ...) \@dblfpsep 10pt plus 2fil% Space between floats on float page. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be % 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 7pt % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 0pt plus 1pt % Extra vertical space between % paragraphs. \parindent 1.5em % Width of paragraph indentation. %\topsep 10pt plus 4pt minus 6pt % Extra vertical space, in addition % to \parskip, added above and below % list and paragraphing environments. \partopsep 3pt plus 2pt minus 2pt % Extra vertical space, in addition % to \parskip and \topsep, added when % list leaves blank line before % environment. %\itemsep 5pt plus 2.5pt minus 1pt % Extra vertical space, in addition % to \parskip, added between list % items. % See \@listI for values of \topsep and \itemsep % (Change made 9 Jun 87) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % Definition of \part moved to book.doc 19 Jan 88 % \@makechapterhead {TEXT} : Makes the heading for the \chapter % command. % \def\@makechapterhead#1{% % Heading for \chapter command \vspace*{50\p@}% % Space at top of text page. {\parindent \z@ \raggedright \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN \huge\bf \@chapapp{} \thechapter % Print 'Chapter' and number. \par \vskip 20\p@ \fi % Space between number and title. \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \@makeschapterhead {TEXT} : Makes the heading for the \chapter* % command. % \def\@makeschapterhead#1{% % Heading for \chapter* command \vspace*{50\p@}% % Space at top of page. {\parindent \z@ \raggedright \Huge \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40\p@ % Space between title and text. }} % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a \chapter or \section command without using % \@startsection, you can use \secdef as follows: % \def\chapter { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... % Command to define % % \chapter[...]{...} % \def\CMDB #1{ ... % Command to define % % \chapter*{...} \def\chapter{\cleardoublepage % Starts new page. \thispagestyle{plain}% % Page style of chapter page is 'plain' \global\@topnum\z@ % Prevents figures from going at top of page. \@afterindentfalse % Suppresses indent in first paragraph. \secdef\@chapter\@schapter} % Change to \@afterindenttrue to have % indent. \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1}% \addtocontents{lof}% {\protect\addvspace{10\p@}}% Adds between-chapter space \addtocontents{lot}% {\protect\addvspace{10\p@}}% to lists of figs & tables. \if@twocolumn % Tests for two-column mode. \@topnewpage[\@makechapterhead{#2}]% \else \@makechapterhead{#2}% \@afterheading % Routine called after chapter and \fi} % section heading. \def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]% \else \@makeschapterhead{#1}% \@afterheading\fi} % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- e.g., % chapter=1, section = 2, etc. A section number will be % printed if and only if LEVEL < or = the value of the % secnumdepth counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % us in defining page styles. % \def\chaptermark#1{} % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{2} % APPENDIX % % The \appendix command must do the following: % -- reset the chapter counter to zero % -- set \@chapapp to Appendix (for messages) % -- redefine the chapter counter to produce appendix numbers % -- reset the section counter to zero % -- redefine the \chapter command if appendix titles and headings % are to look different from chapter titles and headings. \def\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% \def\@chapapp{\appendixname}% \def\thechapter{\Alph{chapter}}} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. \leftmargini 2.5em \leftmarginii 2.2em % > \labelsep + width of '(m)' \leftmarginiii 1.87em % > \labelsep + width of 'vii.' \leftmarginiv 1.7em % > \labelsep + width of 'M.' \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep %\parsep 5pt plus 2.5pt minus 1pt %(Removed 9 Jun 87) % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 9 Jun 87) \def\@listI{\leftmargin\leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 5\p@ plus2.5\p@ minus\p@ \parsep 2.5\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2.5\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/doc/article.doc100664 144 144 72121 5161754600 17015 0ustar nakaharastaff% ARTICLE STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport \typeout{Standard Document Style `article' <14 Jan 92>.} % PREPARING A FOREIGN LANGUAGE VERSION: % % This document style is for documents prepared in the English language. % To prepare a version for another language, various English words must % be replaced. All the English words that required replacement are % indicated below, where we give the name of the command in which the % words appear, and which must be redefined, with the actual words % underlined. % % \part \def\partname{Part} % ~~~~ % % \tableofcontents: \def\contentsname{Contents} % ~~~~~~~~ % % \listoffigures: \def\listfigurename{List of Figures} % ~~~~~~~~~~~~~~~ % % \listoftables: \def\listtablename{List of Tables} % ~~~~~~~~~~~~~~ % % \thebibliography: \def\refname{References} % ~~~~~~~~~~ % % \theindex: \def\indexname{Index} % ~~~~~ % % figure environment: \def\figurename{Figure} % ~~~~~~ % % table environment: \def\tablename{Table} % ~~~~~ % % abstract environment: \def\abstractname{Abstract} % ~~~~~~~~ % CHOOSING THE TYPE SIZE: % % The type size option is handled by reading a different file for each % size, as follows: % 10pt : ART10, 11pt : ART11, 12pt : ART12 % Implemented by \def'ing \@ptsize to last digit of file name. % \def\@ptsize{0} % Default is ART10.STY \@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option reads in ART11.STY \@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option reads in ART12.STY % Two-side or one-side printing. % % \@twosidefalse % Default is one-sided printing. \def\ds@twoside{\@twosidetrue % Defines twoside option. \@mparswitchtrue} % Marginpars go on outside of page. % draft option % % \overfullrule = 0pt % Default is not to mark overfull % hboxes. \def\ds@draft{\overfullrule 5\p@} % Causes overfull hboxes to be marked. % FMi 91/03/30: made titlepag.sty a file and titlepage an option. % FMi 91/03/30: made twocolum.sty a file and twocolumn an option. % RmS 92/01/10: moved actual reading of titlepag.sty % to the end of this file. \newif\if@titlepage \@titlepagefalse \def\ds@titlepage{\@titlepagetrue} % RmS 91/10/15: moved actual reading of twocolum.sty % to the end of this file. %\def\ds@twocolumn{\@@input twocolum.sty\relax} \def\ds@twocolumn{\@twocolumntrue} % The \@options command causes the execution of every command \ds@FOO % which is defined and for which the user typed the FOO option in his % \documentstyle command. For every option BAR he typed for which % \ds@BAR is not defined, the file BAR.sty will be read after the % present (main) .STY file is executed. \@options \input art1\@ptsize.sty\relax % **************************************** % * LISTS * % **************************************** % % ENUMERATE % Enumeration is done with four counters: enumi, enumii, enumiii % and enumiv, where enumN controls the numbering of the Nth level % enumeration. The label is generated by the commands \labelenumi % ... \labelenumiv. The expansion of \p@enumN\theenumN defines the % output of a \ref command. % % 16 Mar 88 -- changed defs of \labelenum... to use \theenum... \def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\theenumii)} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\theenumiii.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\theenumiv.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} % ITEMIZE % Itemization is controlled by four commands: \labelitemi, \labelitemii, % \labelitemiii, and \labelitemiv, which define the labels of the % various itemization levels. \def\labelitemi{$\m@th\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\m@th\ast$} \def\labelitemiv{$\m@th\cdot$} % VERSE % The verse environment is defined by making clever use of the % list environment's parameters. The user types \\ to end a line. % This is implemented by \let'in \\ equal \@centercr. % \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} \let\endverse\endlist % QUOTATION % Fills lines % Indents paragraph % \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin \parsep \z@ plus\p@}\item[]} \let\endquotation=\endlist % QUOTE -- same as quotation except no paragraph indentation, % \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist % DESCRIPTION % % To change the formatting of the label, you must redefine % \descriptionlabel. \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist %\newdimen\descriptionmargin %\descriptionmargin=3em % **************************************** % * OTHER ENVIRONMENTS * % **************************************** % % % THEOREM % \@begintheorem ... \@endtheorem are the commands executed at the % beginning and end of a (user-defined) theorem-like environment. % Except \@opargbegintheorem is executed when an optional argument is % given. Cf. LATEX.TEX. % % \def\@begintheorem#1#2{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2}]} % \def\@opargbegintheorem#1#2#3{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]} % \def\@endtheorem{\endtrivlist} % EQUATION and EQNARRAY % % \newcounter{equation} % Default is for left-hand side of equations to be flushleft. % To make them flushright, do: % \let\@eqnsel = \hfil % \def\theequation{\arabic{equation}} % \jot = 3\p@ % Extra space added between lines of an eqnarray % environment % The macro \@eqnnum defines how equation numbers are to appear % in equations. % % \def\@eqnnum{(\theequation)} % % TITLEPAGE % In the normal environments, the titlepage environment does nothing % but start and end a page, and inhibit page numbers. It also resets % the page number to zero. % \def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn \else \newpage \fi \thispagestyle{empty}\c@page\z@} \def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} % ARRAY AND TABULAR % \arraycolsep 5pt % Half the space between columns in an array % environment. \tabcolsep 6pt % Half the space between columns in a tabular % environment. \arrayrulewidth .4pt % Width of rules in array and tabular environment. \doublerulesep 2pt % Space between adjacent rules in array or tabular % environment. % TABBING % \tabbingsep \labelsep % Space used by the \' command. % (See LaTeX manual.) % MINIPAGE % \@minipagerestore is called upon entry to a minipage environment to % set up things that are to be handled differently inside a minipage % environment. In the current styles, it does nothing. % \skip\@mpfootins : plays same role for footnotes in a minipage as % \skip\footins does for ordinary footnotes \skip\@mpfootins = \skip\footins % FRAMEBOX % \fboxsep = 3pt % Space left between box and text by \fbox and % \framebox. \fboxrule = .4pt % Width of rules in box made by \fbox and \framebox. % **************************************** % * SECTIONS * % **************************************** % % DEFINE COUNTERS: % % \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is % reset to zero when counter OLDCTR is % stepped. % Counter OLDCTR must already be defined. \newcounter{part} \newcounter {section} \newcounter {subsection}[section] \newcounter {subsubsection}[subsection] \newcounter {paragraph}[subsubsection] \newcounter {subparagraph}[paragraph] % For any counter CTR, \theCTR is a macro that defines the printed % version of counter CTR. It is defined in terms of the following % macros: % % \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral. % \roman{COUNTER} : Its value printed as a lower-case roman numberal. % \Roman{COUNTER} : Its value printed as an upper-case roman numberal. % \alph{COUNTER} : Value of COUNTER printed as a lower-case letter: % 1 = a, 2 = b, etc. % \Alph{COUNTER} : Value of COUNTER printed as an upper-case letter: % 1 = A, 2 = B, etc. % \def\thepart {\Roman{part}} % Roman numeral part numbers. \def\thesection {\arabic{section}} \def\thesubsection {\thesection.\arabic{subsection}} \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} \def\theparagraph {\thesubsubsection.\arabic{paragraph}} \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a sectionioning command without using % \@startsection, you can use \secdef as follows: % \def\part { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... } % Command to define \part[...]{...} % \def\CMDB #1{ ... } % Command to define \part*{...} \def\part{\par % New paragraph \addvspace{4ex} % Adds vertical space above title. \@afterindentfalse % Suppresses indent in first paragraph. \secdef\@part\@spart} % Change to \@afterindenttrue to have % indent. % FMi 91/03/30: extra space removed below. \def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 \refstepcounter{part} % THEN step part counter \addcontentsline{toc}{part}{\thepart % add toc line \hspace{1em}#1}\else % ELSE add unnumb. line \addcontentsline{toc}{part}{#1}\fi % FI {\parindent \z@ \raggedright \interlinepenalty \@M %% RmS added 11 Nov 91 \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 \Large \bf \partname~\thepart% THEN Print '\partname' and \par\nobreak % number in \Large boldface. \fi % FI \huge \bf % Select \huge boldface. #2% % Print title \markboth{}{}\par % Set heading marks null. }\nobreak % TeX penalty to prevent page break. \vskip 3ex % Space between title and text. \@afterheading % Routine called after part and } % section heading. % Heading for \part* command \def\@spart#1{{\parindent \z@ \raggedright \interlinepenalty \@M %% RmS added 11 Nov 91 \huge \bf #1\par} % Title. \nobreak % TeX penalty to prevent page break. \vskip 3ex % Space between title and text. \@afterheading % Routine called after part and } % section heading. % **************************************** % * TABLE OF CONTENTS, ETC. * % **************************************** % % A \subsection command writes a % \contentsline{subsection}{TITLE}{PAGE} % command on the .toc file, where TITLE contains the contents of the % entry and PAGE is the page number. If subsections are being numbered, % then TITLE will be of the form % \numberline{NUM}{HEADING} % where NUM is the number produced by \thesubsection. Other sectioning % commands work similarly. % % A \caption command in a 'figure' environment writes % \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE} % on the .lof file, where NUM is the number produced by \thefigure and % CAPTION is the figure caption. It works similarly for a 'table' % environment. % % The command \contentsline{NAME} expands to \l@NAME. So, to specify % the table of contents, we must define \l@section, % \l@subsection, ... ; to specify the list of figures, we must define % \l@figure; and so on. Most of these can be defined with the % \@dottedtocline command, which works as follows. % % \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} % LEVEL : An entry is produced only if LEVEL < or = value of % 'tocdepth' counter. Note that \section is level 1, % \subsection is level 2, etc. % INDENT : The indentation from the outer left margin of the start % of the contents line. % NUMWIDTH : The width of a box in which the section number is to go, % if TITLE includes a \numberline command. % % This command uses the following three parameters, which are set % with a \def (so em's can be used to make them depend upon the font). % \@pnumwidth : The width of a box in which the page number is put. % \@tocrmarg : The right margin for multiple line entries. One % wants \@tocrmarg > or = \@pnumwidth % \@dotsep : Separation between dots, in mu units. Should be % \def'd to a number like 2 or 1.7 \def\@pnumwidth{1.55em} \def\@tocrmarg {2.55em} \def\@dotsep{4.5} \setcounter{tocdepth}{3} % TABLEOFCONTENTS % \def\tableofcontents{\section*{\contentsname \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}% \@starttoc{toc}} \def\l@part#1#2{\addpenalty{\@secpenalty}% \addvspace{2.25em plus\p@}% % space above part line \begingroup \@tempdima 3em % width of box holding part number, used by \parindent \z@ \rightskip \@pnumwidth %% \numberline \parfillskip -\@pnumwidth {\large \bf % set line in \large boldface \leavevmode % TeX command to enter horizontal mode. #1\hfil \hbox to\@pnumwidth{\hss #2}}\par \nobreak % Never break after part entry \endgroup} \def\l@section#1#2{\addpenalty{\@secpenalty}% good place for page break \addvspace{1.0em plus\p@}% % space above toc entry \@tempdima 1.5em % width of box holding section number \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \bf % Boldface. \leavevmode % TeX command to enter horizontal mode. \advance\leftskip\@tempdima %% added 5 Feb 88 to conform to \hskip -\leftskip %% 25 Jan 88 change to \numberline #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par \endgroup} \def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} \def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} \def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} \def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} % LIST OF FIGURES % \def\listoffigures{\section*{\listfigurename \@mkboth{\uppercase{\listfigurename}}{\uppercase{\listfigurename}}}% \@starttoc{lof}} \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} % LIST OF TABLES % \def\listoftables{\section*{\listtablename\@mkboth {\uppercase{\listtablename}}{\uppercase{\listtablename}}}% \@starttoc{lot}} \let\l@table\l@figure % **************************************** % * BIBLIOGRAPHY * % **************************************** % % The thebibliography environment executes the following commands: % % \def\newblock{\hskip .11em plus .33em minus .07em} -- % Defines the `closed' format, where the blocks (major units of % information) of an entry run together. % % \sloppy -- Used because it's rather hard to do line breaks in % bibliographies, % % \sfcode`\.=1000\relax -- % Causes a `.' (period) not toproduce an end-of-sentence space. %% RmS 91/10/27 [ .. ] replaced by \@biblabel{ .. } %% RmS 91/11/13: Changed counter enumi to enumiv, %% as it says in the comment in latex.tex %% RmS 92/01/14: Set \p@enumiv to {} and \theenumiv to \arabic{enumiv} %% to get correct references \def\thebibliography#1{\section*{\refname\@mkboth {\uppercase{\refname}}{\uppercase{\refname}}}\list {\@biblabel{\arabic{enumiv}}}{\settowidth\labelwidth{\@biblabel{#1}}% \leftmargin\labelwidth \advance\leftmargin\labelsep \usecounter{enumiv}% \let\p@enumiv\@empty \def\theenumiv{\arabic{enumiv}}}% \def\newblock{\hskip .11em plus.33em minus.07em}% \sloppy\clubpenalty4000\widowpenalty4000 \sfcode`\.=1000\relax} %% 91/08/26 FMI & RmS: introduced warning instead of error \def\endthebibliography{% \def\@noitemerr{\@warning{Empty `thebibliography' environment}}% \endlist} % \def\@biblabel#1{[#1]\hfill} % Produces the label for a \bibitem[...] % command. % \def\@cite#1{[#1]} % Produces the output of the \cite % command. % **************************************** % * THE INDEX * % **************************************** % % THE THEINDEX ENVIRONMENT % Produces double column format, with each paragraph a separate entry. % The user commands \item, \subitem and \subsubitem are used to % produce the entries, and \indexspace adds an extra vertical space % that's the right size to put above the first entry with a new letter % of the alphabet. \newif\if@restonecol \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi \columnseprule \z@ \columnsep 35\p@\twocolumn[\section*{\indexname}]% \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}% \thispagestyle{plain}\parindent\z@ \parskip\z@ plus.3\p@\relax\let\item\@idxitem} \def\@idxitem{\par\hangindent 40\p@} \def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}} \def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}} \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} \def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} % **************************************** % * FOOTNOTES * % **************************************** % % \footnoterule is a macro to draw the rule separating the footnotes % from the text. It should take zero vertical space, so it needs a % negative skip to compensate for any positive space taken by the rule. % (See PLAIN.TEX.) \def\footnoterule{\kern-3\p@ \hrule width .4\columnwidth \kern 2.6\p@} % The \hrule has default height of .4pt. % \newcounter{footnote} % The numbering style (arabic, alph, etc.) for ordinary footnotes % is defined by the macro \thefootnote. % % \@makefntext{NOTE} : % Must produce the actual footnote, using \@thefnmark as the mark % of the footnote and NOTE as the text. It is called when % effectively inside a \parbox of width \columnwidth (i.e., with % \hsize =\columnwidth). % % The following macro indents all lines of the footnote by 10pt, % and indents the first line of a new paragraph by 1em. To % change these dimensions, just substitute the desired value for % '10pt' [in both places] or '1em'. The mark is flushright % against the footnote. % \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize % \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par % \parindent 1em\noindent % \hbox to \z@{\hss$\m@th^{\@thefnmark}$}#1} % % A simpler macro is used, in which the footnote text is % set like an ordinary text paragraph, with no indentation except % on the first line of a paragraph, and the first line of the % footnote. Thus, all the macro must do is set \parindent % to the appropriate value for succeeding paragraphs and put the % proper indentation before mark. \long\def\@makefntext#1{\parindent 1em\noindent \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. Default definition used. % **************************************** % * FIGURES AND TABLES * % **************************************** % % Float placement parameters. See LaTeX manual for their definition. % \setcounter{topnumber}{2} \def\topfraction{.7} \setcounter{bottomnumber}{1} \def\bottomfraction{.3} \setcounter{totalnumber}{3} \def\textfraction{.2} \def\floatpagefraction{.5} \setcounter{dbltopnumber}{2} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} % \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption. % NUMBER : Figure or table number--e.g., 'Figure 3.2' % TEXT : The caption text. % Macro should be called inside a \parbox of right width, with % \normalsize. % changed 25 Jun 86 to fix according to Howard Trickey: % instead of \unhbox\@tempboxa\par we do #1: #2\par \long\def\@makecaption#1#2{% \vskip 10\p@ \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\hsize % IF longer than one line: #1: #2\par % THEN set as ordinary paragraph. \else % ELSE center. \hbox to\hsize{\hfil\box\@tempboxa\hfil}% \fi} % To define a float of type TYPE (e.g., TYPE = figure), the document % style must define the following. % % \fps@TYPE : The default placement specifier for floats of type % TYPE. % % \ftype@TYPE : The type number for floats of type TYPE. Each TYPE has % associated a unique positive TYPE NUMBER, which is a % power of two. E.g., figures might have type number 1, % tables type number 2, programs type number 4, etc. % % \ext@TYPE : The file extension indicating the file on which the % contents list for float type TYPE is stored. For % example, \ext@figure = 'lof'. % % \fnum@TYPE : A macro to generate the figure number for a caption. % For example, \fnum@TYPE == Figure \thefigure. % % The actual float-making environment commands--e.g., the commands % \figure and \endfigure--are defined in terms of the macros \@float % and \end@float, which are described below. % % \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a % single-column float of type TYPE with PLACEMENT as the placement % specifier. The default value of PLACEMENT is defined by \fps@TYPE. % The environment is ended by \end@float. % E.g., \figure == \@float{figure}, \endfigure == \end@float. % FIGURE \newcounter{figure} \def\thefigure{\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{\figurename~\thefigure} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} % TABLE % \newcounter{table} \def\thetable{\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{\tablename~\thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} % **************************************** % * TITLE AND ABSTRACT * % **************************************** % % \maketitle == % BEGIN % \par % \begingroup % redefine \@makefnmark so footnote marks take zero space (this % makes centering look better) % \thefootnote == \fnsymbol{footnote} %to number by *, dagger, etc. % if @twocolumn = true % then \twocolumn[\@maketitle] % else \@maketitle % fi % \thispagestyle{plain} % \@thanks % \thanks defines \@thanks to have \footnotetext commands % % for producing footnotes. % \endgroup % END \def\maketitle{\par \begingroup \def\thefootnote{\fnsymbol{footnote}}% \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}% \if@twocolumn \twocolumn[\@maketitle]% \else \newpage \global\@topnum\z@ % Prevents figures from going at top of page. \@maketitle \fi\thispagestyle{plain}\@thanks \endgroup \setcounter{footnote}{0}% \let\maketitle\relax \let\@maketitle\relax \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax} \def\@maketitle{\newpage \null \vskip 2em % Vertical space above title. \begin{center}% {\LARGE \@title \par}% % Title set in \LARGE size. \vskip 1.5em % Vertical space after title. {\large % each author set in \large, in a \lineskip .5em % tabular environment \begin{tabular}[t]{c}\@author \end{tabular}\par}% \vskip 1em % Vertical space after author. {\large \@date}% % Date set in \large size. \end{center}% \par \vskip 1.5em} % Vertical space after date. \def\abstract{\if@twocolumn \section*{\abstractname}% \else \small \begin{center}% {\bf \abstractname\vspace{-.5em}\vspace{\z@}}% \end{center}% \quotation \fi} \def\endabstract{\if@twocolumn\else\endquotation\fi} % **************************************** % * PAGE STYLES * % **************************************** % % The page style 'foo' is defined by defining the command \ps@foo. This % command should make only local definitions. There should be no stray % spaces in the definition, since they could lead to mysterious extra % spaces in the output. % % The \ps@... command defines the macros \@oddhead, \@oddfoot, % \@evenhead, and \@evenfoot to define the running heads and % feet---e.g., \@oddhead is the macro to produce the contents of the % heading box for odd-numbered pages. It is called inside an \hbox of % width \textwidth. % % To make headings determined by the sectioning commands, the page style % defines the commands \sectionmark, ... , where % \sectionmark{TEXT} is called by \section to set a mark, and so on. % The \...mark commands and the \...head macros are defined with the % help of the following macros. (All the \...mark commands should be % initialized to no-ops.) % % MARKING CONVENTIONS: % LaTeX extends TeX's \mark facility by producing two kinds of marks % a 'left' and a 'right' mark, using the following commands: % \markboth{LEFT}{RIGHT} : Adds both marks. % \markright{RIGHT} : Adds a 'right' mark. % \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or % \@evenfoot macro, gets the current 'left' mark. % Works like TeX's \botmark command. % \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or % \@evenfoot macro, gets the current 'right' mark. % Works like TeX's \firstmark command. % The marking commands work reasonably well for right marks 'numbered % within' left marks--e.g., the left mark is changed by a \section % command and the right mark is changed by a \subsection command. % However, it does produce somewhat anomalous results if two \bothmark's % occur on the same page. % % Commands like \tableofcontents that should set the marks in some page % styles use a \@mkboth command, which is \let by the pagestyle command % (\ps@...) to \markboth for setting the heading or \@gobbletwo to do % nothing. \mark{{}{}} % Initializes TeX's marks % \ps@empty and \ps@plain defined in LATEX.TEX % Definition of 'headings' page style % Note the use of ##1 for parameter of \def\sectionmark inside the % \def\ps@headings. % % 91/03/26 FMi: Added extra set of braces arround |\sl| in |\@oddhead| % to support NFSS (|\sl| is a shape |\rm| a family). Also remove % unnecessary |\hbox{}| commands. % \if@twoside % If two-sided printing. \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@evenhead{\rm \thepage\hfil \sl \leftmark}% Left heading. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Right heading. \def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}{}}% \def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne \thesubsection\hskip 1em\relax \fi ##1}}} \else % If one-sided printing. \def\ps@headings{\let\@mkboth\markboth \def\@oddfoot{}\def\@evenfoot{}% No feet. \def\@oddhead{{\sl \rightmark}\hfil \rm\thepage}% Heading. \def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}}} \fi % Definition of 'myheadings' page style. % \def\ps@myheadings{\let\@mkboth\@gobbletwo \def\@oddhead{{\sl\rightmark}\hfil \rm\thepage}% \def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark}% \def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}} % **************************************** % * MISCELLANEOUS * % **************************************** % % DATE % \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations \ps@plain % 'plain' page style \pagenumbering{arabic} % Arabic page numbers \if@twoside\else\raggedbottom\fi % Ragged bottom unless twoside option. \if@twocolumn \@@input twocolum.sty\relax \else \onecolumn % Single-column. \fi \if@titlepage \@@input titlepag.sty\relax \fi \endinput latex209-25.may.1992.orig/doc/art12.doc100664 144 144 34253 5161754600 16327 0ustar nakaharastaff% ARTICLE STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. (Actual % value will be \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, % the document style defines \@normalsize instead of \normalsize. % This is done only for \normalsize, not for any other size-changing % commands. \def\@normalsize{\@setsize\normalsize{14.5pt}\xiipt\@xiipt \abovedisplayskip 12\p@ plus3\p@ minus7\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 9 Jun 87 \def\small{\@setsize\small{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \parsep 4.5\p@ plus2\p@ minus\p@ \itemsep \parsep \topsep 9\p@ plus3\p@ minus5\p@}} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. % SIDE MARGINS: \if@twoside % Values for two-sided printing: \oddsidemargin 21pt % Left margin on odd-numbered pages. \evensidemargin 59pt % Left margin on even-numbered pages. \marginparwidth 85pt % Width of marginal notes. \else % Values for one-sided printing: \oddsidemargin 39.5pt % Note that \oddsidemargin = \evensidemargin \evensidemargin 39.5pt \marginparwidth 68pt \fi \marginparsep 10pt % Horizontal space between outer margin and % marginal note % VERTICAL SPACING: % Top of page: \topmargin 27pt % Nominal distance from top of page to top % of box containing running head. \headheight 12pt % Height of box containing running head. \headsep 25pt % Space between running head and text. \topskip = 12pt % '\baselineskip' for first line of page. % Bottom of page: \footskip 30pt % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % 24 Jun 86: changed to explicitly compute \textheight to avoid % roundoff. The value of the multiplier was calculated as the floor of % the old \textheight minus \topskip, divided by \baselineskip for % \normalsize. The old value of \textheight was 536.5pt. % \textheight is the height of text (including footnotes and figures, % excluding running head and foot). \textheight = 36\baselineskip \advance\textheight by \topskip \textwidth 390pt % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: \footnotesep 8.4pt % Height of strut placed at the beginning of every % footnote = height of normal \footnotesize strut, % so no extra space between footnotes. \skip\footins 10.8pt plus 4pt minus 2pt % Space between last line of % text and top of first % footnote. % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \floatsep 14pt plus 2pt minus 4pt % Space between adjacent floats % moved to top or bottom of % text page. \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and % floats at top or bottom of % page. \intextsep 14pt plus 4pt minus 4pt % Space between in-text figures % and text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep % (minus the stretch and % shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: \dblfloatsep 14pt plus 2pt minus 4pt % Same as \floatsep for % double-column figures in % two-column mode. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for % double-column floats. \@dblmaxsep 20pt % The maximum of \dblfloatsep % and \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must % be 0pt plus ...) \@fpsep 10pt plus 2fil % Space between floats on float page/column. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must % be 0pt plus ... ) % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt % plus ...) \@dblfpsep 10pt plus 2fil% Space between floats on float page. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be % 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 7pt % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 0pt plus 1pt % Extra vertical space between % paragraphs. \parindent 1.5em % Width of paragraph indentation. %\topsep 10pt plus 4pt minus 6pt % Extra vertical space, in addition % to \parskip, added above and below % list and paragraphing environments. \partopsep 3pt plus 2pt minus 2pt % Extra vertical space, in addition % to \parskip and \topsep, added when % user leaves blank line before % environment. %\itemsep 5pt plus 2.5pt minus 1pt % Extra vertical space, in addition % to \parskip, added between list % items. % See \@listI for values of \topsep and \itemsep % (Change made 9 Jun 87) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * SECTIONS * % **************************************** % % % FMi 91/03/30: \part moved to article.doc % % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- e.g., % section=1, subsection = 2, etc. A section number will % be printed if and only if LEVEL < or = the value of % the secnumdepth counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % us in defining page styles. % % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{3} % APPENDIX % % The \appendix command must do the following: % -- reset the section and subsection counters to zero % -- redefine the section counter to produce appendix numbers % -- redefine the \section command if appendix titles and headings % are to look different from section titles and headings. \def\appendix{\par \setcounter{section}{0} \setcounter{subsection}{0} \def\thesection{\Alph{section}}} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. \leftmargini 2.5em \leftmarginii 2.2em % > \labelsep + width of '(m)' \leftmarginiii 1.87em % > \labelsep + width of 'vii.' \leftmarginiv 1.7em % > \labelsep + width of 'M.' \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep %\parsep 5pt plus 2.5pt minus 1pt %(Removed 9 Jun 87) % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 9 Jun 87) \def\@listI{\leftmargin\leftmargini \parsep 5\p@ plus2.5\p@ minus\p@ \topsep 10\p@ plus4\p@ minus6\p@ \itemsep 5\p@ plus2.5\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 5\p@ plus2.5\p@ minus\p@ \parsep 2.5\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2.5\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/doc/art11.doc100664 144 144 33765 5161754600 16335 0ustar nakaharastaff% ARTICLE STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. (Actual % value will be \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, % the document style defines \@normalsize instead of \normalsize. This % is done only for \normalsize, not for any other size-changing % commands. \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11\p@ plus3\p@ minus6\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 9 Jun 87 \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 6\p@ plus2\p@ minus2\p@\parsep 3\p@ plus2\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt \abovedisplayskip 8\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. % SIDE MARGINS: \if@twoside % Values for two-sided printing: \oddsidemargin 36pt % Left margin on odd-numbered pages. \evensidemargin 74pt % Left margin on even-numbered pages. \marginparwidth 100pt % Width of marginal notes. \else % Values for one-sided printing: \oddsidemargin 54pt % Note that \oddsidemargin = \evensidemargin \evensidemargin 54pt \marginparwidth 83pt \fi \marginparsep 10pt % Horizontal space between outer margin and % marginal note % VERTICAL SPACING: % Top of page: \topmargin 27pt % Nominal distance from top of page to top % of box containing running head. \headheight 12pt % Height of box containing running head. \headsep 25pt % Space between running head and text. \topskip = 11pt % '\baselineskip' for first line of page. % Bottom of page: \footskip 30pt % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % 24 Jun 86: changed to explicitly compute \textheight to avoid % roundoff. The value of the multiplier was calculated as the floor of % the old \textheight minus \topskip, divided by \baselineskip for % \normalsize. The old value of \textheight was 530.4pt. % \textheight is the height of text (including footnotes and figures, % excluding running head and foot). \textheight = 38\baselineskip \advance\textheight by \topskip \textwidth 360pt % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: \footnotesep 7.7pt % Height of strut placed at the beginning of every % footnote = height of normal \footnotesize strut, % so no extra space between footnotes. \skip\footins 10pt plus 4pt minus 2pt % Space between last line of text % and top of first footnote. % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats % moved to top or bottom of % text page. \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and % floats at top or bottom of % page. \intextsep 12pt plus 2pt minus 2pt % Space between in-text figures % and text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep % (minus the stretch and % shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: \dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for % double-column figures in % two-column mode. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for % double-column floats. \@dblmaxsep 20pt % The maximum of \dblfloatsep % and \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must % be 0pt plus ...) \@fpsep 8pt plus 2fil % Space between floats on float page/column. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must % be 0pt plus ... ) % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt % plus ...) \@dblfpsep 8pt plus 2fil % Space between floats on float page. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be % 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 5pt % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 0pt plus 1pt % Extra vertical space between % paragraphs. \parindent 17pt % Width of paragraph indentation. %\topsep 9pt plus 3pt minus 5pt % Extra vertical space, in addition % to \parskip, added above and below % list and paragraphing environments. \partopsep 3pt plus 1pt minus 2pt % Extra vertical space, in addition % to \parskip and \topsep, added when % user leaves blank line before % environment. %\itemsep 4.5pt plus 2pt minus 1pt % Extra vertical space, in addition % to \parskip, added between list % items. % See \@listI for values of \topsep and \itemsep % (Change made 9 Jun 87) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * SECTIONS * % **************************************** % % FMi 91/03/30: \part moved to article.doc % % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- i.e., % section=1, subsection = 2, etc. A section number will % be printed if and only if LEVEL < or = the value of % the secnumdepth counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % use in defining page styles. % % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{3} % APPENDIX % % The \appendix command must do the following: % -- reset the section and subsection counters to zero % -- redefine the section counter to produce appendix numbers % -- redefine the \section command if appendix titles and headings % are to look different from section titles and headings. \def\appendix{\par \setcounter{section}{0} \setcounter{subsection}{0} \def\thesection{\Alph{section}}} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % \leftmargini 2.5em \leftmarginii 2.2em % > \labelsep + width of '(m)' \leftmarginiii 1.87em % > \labelsep + width of 'vii.' \leftmarginiv 1.7em % > \labelsep + width of 'M.' \leftmarginv 1em \leftmarginvi 1em \leftmargin\leftmargini \labelsep .5em \labelwidth\leftmargini\advance\labelwidth-\labelsep %\parsep 4.5pt plus 2pt minus 1pt %(Removed 9 Jun 87) % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 9 Jun 87) \def\@listI{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@ \topsep 9\p@ plus3\p@ minus5\p@ \itemsep 4.5\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4.5\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep\p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/doc/art10.doc100664 144 144 34115 5161754600 16322 0ustar nakaharastaff% ARTICLE STANDARD DOCUMENT STYLE -- Released 14 Jan 1992 % for LaTeX version 2.09 % Copyright (C) 1992 by Leslie Lamport % **************************************** % * FONTS * % **************************************** % \lineskip 1pt % \lineskip is 1pt for all font sizes. \normallineskip 1pt \def\baselinestretch{1} % Each size-changing command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % where: % BASELINESKIP = Normal value of \baselineskip for that size. % (Actual value will be % \baselinestretch * BASELINESKIP.) % % \FONTSIZE = Name of font-size command. The currently available % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt), % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt, % \xivpt, \xviipt, \xxpt, \xxvpt. % \@FONTSIZE = The same as the font-size command except with an % '@' in front---e.g., if \FONTSIZE = \xivpt then % \@FONTSIZE = \@xivpt. % % For reasons of efficiency that needn't concern the designer, % the document style defines \@normalsize instead of \normalsize. This % is done only for \normalsize, not for any other size-changing % commands. \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10\p@ plus2\p@ minus5\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3\p@ \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@ \let\@listi\@listI} % Setting of \@listi added 9 Jun 87 \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip 8.5\p@ plus3\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus2\p@ \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 4\p@ plus2\p@ minus2\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt \abovedisplayskip 6\p@ plus2\p@ minus4\p@ \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus\p@ \belowdisplayshortskip 3\p@ plus\p@ minus2\p@ \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87 \topsep 3\p@ plus\p@ minus\p@\parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \def\large{\@setsize\large{14pt}\xiipt\@xiipt} \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and side % of page. % SIDE MARGINS: \if@twoside % Values for two-sided printing: \oddsidemargin 44pt % Left margin on odd-numbered pages. \evensidemargin 82pt % Left margin on even-numbered pages. \marginparwidth 107pt % Width of marginal notes. \else % Values for one-sided printing: \oddsidemargin 63pt % Note that \oddsidemargin = \evensidemargin \evensidemargin 63pt \marginparwidth 90pt \fi \marginparsep 11pt % Horizontal space between outer margin and % marginal note % VERTICAL SPACING: % Top of page: \topmargin 27pt % Nominal distance from top of page to top of % box containing running head. \headheight 12pt % Height of box containing running head. \headsep 25pt % Space between running head and text. \topskip = 10pt % '\baselineskip' for first line of page. % Bottom of page: \footskip 30pt % Distance from baseline of box containing % foot to baseline of last line of text. % DIMENSION OF TEXT: % 24 Jun 86: changed to explicitly compute \textheight to avoid % roundoff. The value of the multiplier was calculated as the floor of % the old \textheight minus \topskip, divided by \baselineskip for % \normalsize. The old value of \textheight was 528pt. % \textheight is the height of text (including footnotes and figures, % excluding running head and foot). \textheight = 43\baselineskip \advance\textheight by \topskip \textwidth 345pt % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. % A \raggedbottom command causes 'ragged bottom' pages: pages set to % natural height instead of being stretched to exactly \textheight. % FOOTNOTES: \footnotesep 6.65pt % Height of strut placed at the beginning of every % footnote = height of normal \footnotesize strut, % so no extra space between footnotes. \skip\footins 9pt plus 4pt minus 2pt % Space between last line of text % and top of first footnote. % FLOATS: (a float is something like a figure or table) % % FOR FLOATS ON A TEXT PAGE: % % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats % moved to top or bottom of % text page. \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and % floats at top or bottom of % page. \intextsep 12pt plus 2pt minus 2pt % Space between in-text figures % and text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep % (minus the stretch and % shrink). % TWO-COLUMN FLOATS IN TWO-COLUMN MODE: \dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for % double-column figures in % two-column mode. \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for % double-column floats. \@dblmaxsep 20pt % The maximum of \dblfloatsep % and \dbltexfloatsep. % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN: % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE: \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must % be 0pt plus ...) \@fpsep 8pt plus 2fil % Space between floats on float page/column. \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must % be 0pt plus ... ) % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE. \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt % plus ...) \@dblfpsep 8pt plus 2fil % Space between floats on float page. \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be % 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 5pt % Minimum vertical separation between two % marginal notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 0pt plus 1pt % Extra vertical space between % paragraphs. \parindent 15pt % Width of paragraph indentation. %\topsep 8pt plus 2pt minus 4pt % Extra vertical space, in addition % to \parskip, added above and below % list and paragraphing environments. \partopsep 2pt plus 1pt minus 1pt % Extra vertical space, in addition % to \parskip and \topsep, added when % user leaves blank line before % environment. %\itemsep 4pt plus 2pt minus 1pt % Extra vertical space, in addition % to \parskip, added between list % items. % See \@listI for values of \topsep and \itemsep % (Change made 9 Jun 87) % The following page-breaking penalties are defined \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1] \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2] \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3] \@beginparpenalty -\@lowpenalty % Before a list or paragraph % environment. \@endparpenalty -\@lowpenalty % After a list or paragraph % environment. \@itempenalty -\@lowpenalty % Between list items. % \clubpenalty % 'Club line' at bottom of page. % \widowpenalty % 'Widow line' at top of page. % \displaywidowpenalty % Math display widow line. % \predisplaypenalty % Breaking before a math display. % \postdisplaypenalty % Breaking after a math display. % \interlinepenalty % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * SECTIONS * % **************************************** % % FMi 91/03/30: \part moved to article.doc % % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- i.e., % section=1, subsection = 2, etc. A section number will % be printed if and only if LEVEL < or = the value of % the secnumdepth counter. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, % else - skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. A sectioning command % is normally defined to \@startsection + its first six arguments. \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font \normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus1ex minus .2ex}{-1em}{\reset@font\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % use in defining page styles. % % \def\sectionmark#1{} % Preloaded definitions % \def\subsectionmark#1{} % \def\subsubsectionmark#1{} % \def\paragraphmark#1{} % \def\subparagraphmark#1{} % The value of the counter secnumdepth gives the depth of the % highest-level sectioning command that is to produce section numbers. % \setcounter{secnumdepth}{3} % APPENDIX % % The \appendix command must do the following: % -- reset the section and subsection counters to zero % -- redefine the section counter to produce appendix numbers % -- redefine the \section command if appendix titles and headings % are to look different from section titles and headings. \def\appendix{\par \setcounter{section}{0} \setcounter{subsection}{0} \def\thesection{\Alph{section}}} % **************************************** % * LISTS * % **************************************** % % The following commands are used to set the default values for the list % environment's parameters. See the LaTeX manual for an explanation of % the meanings of the parameters. Defaults for the list environment are % set as follows. First, \rightmargin, \listparindent and \itemindent % are set to 0pt. Then, for a Kth level list, the command \@listK is % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is % called for a third-level list.) By convention, \@listK should set % \leftmargin to \leftmarginK. % % For efficiency, level-one list's values are defined at top level, and % \@listi is defined to set only \leftmargin. \leftmargini 25pt \leftmarginii 22pt % > \labelsep + width of '(m)' \leftmarginiii 18.7pt % > \labelsep + width of 'vii.' \leftmarginiv 17pt % > \labelsep + width of 'M.' \leftmarginv 10pt \leftmarginvi 10pt \leftmargin\leftmargini \labelsep 5pt \labelwidth\leftmargini\advance\labelwidth-\labelsep % \parsep 4pt plus 2pt minus 1pt (Removed 9 Jun 87) % \@listI defines top level and \@listi values of % \leftmargin, \topsep, \parsep, and \itemsep % (Added 9 Jun 87) \def\@listI{\leftmargin\leftmargini \parsep 4\p@ plus2\p@ minus\p@ \topsep 8\p@ plus2\p@ minus4\p@ \itemsep 4\p@ plus2\p@ minus\p@} \let\@listi\@listI \@listi \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 4\p@ plus2\p@ minus\p@ \parsep 2\p@ plus\p@ minus\p@ \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2\p@ plus\p@ minus\p@ \parsep \z@ \partopsep \p@ plus\z@ minus\p@ \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} \endinput latex209-25.may.1992.orig/general/ 40775 144 144 0 6271446675 15450 5ustar nakaharastafflatex209-25.may.1992.orig/general/tryfonts.tex100664 144 144 7061 5161754600 20146 0ustar nakaharastaff% FILE TRYFONTS : TEST OF LaTeX FONTS % Released 11 November 1986 \typeout{} \typeout{******************************************************************} \typeout{* Type document style in form '[11pt]{article}' or '[]{report}' *} \typein[\docstylename]{****************************************************% **************} \expandafter\documentstyle\docstylename \nofiles \begin{document} {\centering Document Style \tt \docstylename\par} \vspace{1in} Test of \verb|\rm| in all sizes:\\[.2in] ---{\huge huge}---\\[.1in] ---{\LARGE LARGE}---\\[.1in] ---{\Large Large}---\\[.1in] ---{\large large}---\\[.1in] ---{\normalsize normalsize}---\\ ---{\small small}---\\ ---{\footnotesize footnotesize}---\\ ---{\scriptsize scriptsize}---\\ ---{\tiny tiny}--- \newpage \def\fontest{{\centering \foo\par} \noindent Roman---{\it Italic}---{\bf Bold}---\\ ---{\sl Slanted}---{\sf Sans Serif}---\\ w---{\tt Typewriter}---{\sc Small Caps}---\par \vspace{1em} \noindent Now in math mode:\\[.4em] $\rm Roman_{rm_{rm}}\ \Gamma$ \ \ $\it Italic_{it_{it}}\ \Gamma$ \ \ $\bf Bold_{bf_{bf}}\ \Gamma$\\ $\sl Slanted_{sl_{sl}}\ \Gamma$ \ \ $\sf Sans\ Serif_{sf_{sf}}\ \Gamma$\\ $\tt Typewriter_{type_{type}}\ \Gamma$ \ \ $\sc Small\ Caps_{scap_{scap}}\ \Gamma$ \par \vspace{1em} \noindent Bold math: \ \ {\boldmath $\Gamma$, $x=y^{2}$. \[ Math_{mat_{mat}}\ Bold\ \alpha\ \Gamma\ \exists\ \unlhd \ \Diamond \] Unbold math:} \ \ $\Gamma$, $x=y^{2}$. \par \vspace{1em} \noindent lasy font: \ \ $\leadsto_{\leadsto_{\leadsto}}$ \newpage} \typeout{*************************************************************} \typeout{* Type size command like 'tiny' or else 'stop'--with no '\protect\' *} \typein[\foo]{*************************************************************} \csname\foo\endcsname\fontest \typeout{*************************************************************} \typeout{* Type size command like 'tiny' or else 'stop'--with no '\protect\' *} \typein[\foo]{*************************************************************} \csname\foo\endcsname\fontest \typeout{*************************************************************} \typeout{* Type size command like 'tiny' or else 'stop'--with no '\protect\' *} \typein[\foo]{*************************************************************} \csname\foo\endcsname\fontest \typeout{*************************************************************} \typeout{* Type size command like 'tiny' or else 'stop'--with no '\protect\' *} \typein[\foo]{*************************************************************} \csname\foo\endcsname\fontest \typeout{*************************************************************} \typeout{* Type size command like 'tiny' or else 'stop'--with no '\protect\' *} \typein[\foo]{*************************************************************} \csname\foo\endcsname\fontest \typeout{*************************************************************} \typeout{* Type size command like 'tiny' or else 'stop'--with no '\protect\' *} \typein[\foo]{*************************************************************} \csname\foo\endcsname\fontest \typeout{*************************************************************} \typeout{* Type size command like 'tiny' or else 'stop'--with no '\protect\' *} \typein[\foo]{*************************************************************} \csname\foo\endcsname\fontest \typeout{*************************************************************} \typeout{* Type size command like 'tiny' or else 'stop'--with no '\protect\' *} \typein[\foo]{*************************************************************} \csname\foo\endcsname\fontest \end{document} latex209-25.may.1992.orig/general/splain.tex100664 144 144 137753 5166176400 17621 0ustar nakaharastaff% File SPLAIN - Created 29 October 1985 from plain version 1.5CM % - Last modified 20 October 1988 to take into account % changes to PLAIN.TEX reported by Arthur Ogawa % - Modified February 8, 1990 by Dominik Wujastyk to % match the PLAIN.TEX meant for TeX 3.0 (\fmtname{plain}, % \fmtversion{3.0}). % - Modified March 15, 1990 by Frank Mittelbach to % allow the use of this file both with TeX 2 and 3. % - Adapted July 16, 1990 by Rainer M. Sch\"opf from % from the modified LPLAIN.TEX that can be used both % with TeX 2 and 3. % - Modified June 21, 1991 by RmS to clear the contents % of \box0. % - Modified July 1, 1991, by RmS to correct \multispan bug. % - Modified August 14, 1991, By RmS to make \cases work % with NFSS. % - Modified October 30, 1991, by RmS to remove \catcode and % \mathcode assignments for control characters. % - Modified November 1, 1991, by RmS to remove ^^A and ^^K % control characters. % - Modified November 4, 1991, by RmS to add missing \m@th % assignments and to introduce the file lhyphen.tex. % - Modified November 7, 1991, by RmS to make it work with % MLTeX version 2. % - Modified March 17, 1992, by RmS to match changes in % plain.tex of March 16, 1992. % % % This is the SliTeX version of the plain TeX format that's described in % The TeXbook. All modifications can be found by searching for % the word 'LaTeX' or 'SliTeX'. % N.B.: A version number is defined at the very end of this file; % please change that number whenever the file is modified! % And don't modify the file under any circumstances. % %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %% \catcode`\{=1 % left brace is begin-group character \catcode`\}=2 % right brace is end-group character \catcode`\$=3 % dollar sign is math shift \catcode`\&=4 % ampersand is alignment tab \catcode`\#=6 % hash mark is macro parameter character \catcode`\^=7 % circumflex and uparrow are for superscripts \catcode`\_=8 % underline and downarrow are for subscripts \catcode`\^^I=10 % ascii tab is a blank space \chardef\active=13 \catcode`\~=\active % tilde is active \catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par" \message{Preloading the plain format: codes,} % We had to define the \catcodes right away, before the message line, % since \message uses the { and } characters. % When INITEX (the TeX initializer) starts up, % it has defined the following \catcode values: % \catcode`\^^@=9 % ascii null is ignored % \catcode`\^^M=5 % ascii return is end-line % \catcode`\\=0 % backslash is TeX escape character % \catcode`\%=14 % percent sign is comment character % \catcode`\ =10 % ascii space is blank space % \catcode`\^^?=15 % ascii delete is invalid % \catcode`\A=11 ... \catcode`\Z=11 % uppercase letters % \catcode`\a=11 ... \catcode`\z=11 % lowercase letters % all others are type 12 (other) % Here is a list of the characters that have been specially catcoded: \def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\_\do\%\do\~} % (not counting ascii null, tab, linefeed, formfeed, return, delete) % Each symbol in the list is preceded by \do, which can be defined % if you want to do something to every item in the list. % We make @ signs act like letters, temporarily, to avoid conflict % between user names and internal control sequences of plain format. \catcode`@=11 % INITEX sets up \mathcode x=x, for x=0..255, except that % \mathcode x=x+"7100, for x = `A to `Z and `a to `z; % \mathcode x=x+"7000, for x = `0 to `9. % The following changes define internal codes as recommended % in Appendix C of The TeXbook: \mathcode`\ ="8000 % \space \mathcode`\!="5021 \mathcode`\'="8000 % ^\prime \mathcode`\(="4028 \mathcode`\)="5029 \mathcode`\*="2203 % \ast \mathcode`\+="202B \mathcode`\,="613B \mathcode`\-="2200 \mathcode`\.="013A \mathcode`\/="013D \mathcode`\:="303A \mathcode`\;="603B \mathcode`\<="313C \mathcode`\=="303D \mathcode`\>="313E \mathcode`\?="503F \mathcode`\[="405B \mathcode`\\="026E % \backslash \mathcode`\]="505D \mathcode`\_="8000 % \_ \mathcode`\{="4266 \mathcode`\|="026A \mathcode`\}="5267 % INITEX sets \uccode`x=`X and \uccode `X=`X for all letters x, % and \lccode`x=`x, \lccode`X=`x; all other values are zero. % No changes to those tables are needed in plain TeX format. % INITEX sets \sfcode x=1000 for all x, except that \sfcode`X=999 % for uppercase letters. The following changes are needed: \sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0 % The \nonfrenchspacing macro will make further changes to \sfcode values. % Finally, INITEX sets all \delcode values to -1, except \delcode`.=0 \delcode`\(="028300 \delcode`\)="029301 \delcode`\[="05B302 \delcode`\]="05D303 \delcode`\<="26830A \delcode`\>="26930B \delcode`\/="02F30E \delcode`\|="26A30C \delcode`\\="26E30F % N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! % To make the plain macros more efficient in time and space, % several constant values are declared here as control sequences. % If they were changed, anything could happen; so they are private symbols. \chardef\@ne=1 \chardef\tw@=2 \chardef\thr@@=3 \chardef\sixt@@n=16 \chardef\@cclv=255 \mathchardef\@cclvi=256 \mathchardef\@m=1000 \mathchardef\@M=10000 \mathchardef\@MM=20000 % Allocation of registers % Here are macros for the automatic allocation of \count, \box, \dimen, % \skip, \muskip, and \toks registers, as well as \read and \write % stream numbers, \fam codes, \language codes, and \insert numbers. \message{registers,} % When a register is used only temporarily, it need not be allocated; % grouping can be used, making the value previously in the register return % after the close of the group. The main use of these macros is for % registers that are defined by one macro and used by others, possibly at % different nesting levels. All such registers should be defined through % these macros; otherwise conflicts may occur, especially when two or more % more macro packages are being used at once. % The following counters are reserved: % 0 to 9 page numbering % 10 count allocation % 11 dimen allocation % 12 skip allocation % 13 muskip allocation % 14 box allocation % 15 toks allocation % 16 read file allocation % 17 write file allocation % 18 math family allocation % 19 language allocation % 20 insert allocation % 21 the most recently allocated number % 22 constant -1 % New counters are allocated starting with 23, 24, etc. Other registers are % allocated starting with 10. This leaves 0 through 9 for the user to play % with safely, except that counts 0 to 9 are considered to be the page and % subpage numbers (since they are displayed during output). In this scheme, % \count 10 always contains the number of the highest-numbered counter that % has been allocated, \count 14 the highest-numbered box, etc. % Inserts are given numbers 254, 253, etc., since they require a \count, % \dimen, \skip, and \box all with the same number; \count 20 contains the % lowest-numbered insert that has been allocated. Of course, \box255 is % reserved for \output; \count255, \dimen255, and \skip255 can be used freely. % It is recommended that macro designers always use % \global assignments with respect to registers numbered 1, 3, 5, 7, 9, and % always non-\global assignments with respect to registers 0, 2, 4, 6, 8, 255. % This will prevent ``save stack buildup'' that might otherwise occur. \count10=22 % allocates \count registers 23, 24, ... \count11=9 % allocates \dimen registers 10, 11, ... \count12=9 % allocates \skip registers 10, 11, ... \count13=9 % allocates \muskip registers 10, 11, ... \count14=9 % allocates \box registers 10, 11, ... \count15=9 % allocates \toks registers 10, 11, ... \count16=-1 % allocates input streams 0, 1, ... \count17=-1 % allocates output streams 0, 1, ... \count18=3 % allocates math families 4, 5, ... \count19=0 % allocates \language codes 1, 2, ... \count20=255 % allocates insertions 254, 253, ... \countdef\insc@unt=20 % the insertion counter \countdef\allocationnumber=21 % the most recent allocation \countdef\m@ne=22 \m@ne=-1 % a handy constant \def\wlog{\immediate\write\m@ne} % write on log file (only) % Here are abbreviations for the names of scratch registers % that don't need to be allocated. \countdef\count@=255 \dimendef\dimen@=0 \dimendef\dimen@i=1 % global only \dimendef\dimen@ii=2 \skipdef\skip@=0 \toksdef\toks@=0 % Now, we define \newcount, \newbox, etc. so that you can say \newcount\foo % and \foo will be defined (with \countdef) to be the next counter. % To find out which counter \foo is, you can look at \allocationnumber. % Since there's no \boxdef command, \chardef is used to define a \newbox, % \newinsert, \newfam, and so on. % LaTeX change: remove \outer from \newcount and \newdimen (FMi) % This is necessary to use \newcount inside \if... % later on. \def\newcount{\alloc@0\count\countdef\insc@unt} \def\newdimen{\alloc@1\dimen\dimendef\insc@unt} \outer\def\newskip{\alloc@2\skip\skipdef\insc@unt} \outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi} \outer\def\newbox{\alloc@4\box\chardef\insc@unt} \let\newtoks=\relax % we do this to allow plain.tex to be read in twice \outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}} \outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi} \outer\def\newread{\alloc@6\read\chardef\sixt@@n} \outer\def\newwrite{\alloc@7\write\chardef\sixt@@n} \outer\def\newfam{\alloc@8\fam\chardef\sixt@@n} \outer\def\newlanguage{\alloc@9\language\chardef\@cclvi} \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne \ch@ck#1#4#2% make sure there's still room \allocationnumber=\count1#1% \global#3#5=\allocationnumber \wlog{\string#5=\string#2\the\allocationnumber}} \outer\def\newinsert#1{\global\advance\insc@unt by\m@ne \ch@ck0\insc@unt\count \ch@ck1\insc@unt\dimen \ch@ck2\insc@unt\skip \ch@ck4\insc@unt\box \allocationnumber=\insc@unt \global\chardef#1=\allocationnumber \wlog{\string#1=\string\insert\the\allocationnumber}} \def\ch@ck#1#2#3{\ifnum\count1#1<#2% \else\errmessage{No room for a new #3}\fi} % Here are some examples of allocation. \newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal \newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow % LaTeX change: the PLAIN \centering dimension conflicts with % LaTeX's \centering command, so it is redefined to \@centering. % This dimension is used by LaTeX. \newskip\@centering \@centering=0pt plus 1000pt minus 1000pt \newdimen\p@ \p@=1pt % this saves macro space and time \newdimen\z@ \z@=0pt % can be used both for 0pt and 0 \newskip\z@skip \z@skip=0pt plus0pt minus0pt \newbox\voidb@x % permanently void box register % And here's a different sort of allocation: % For example, \newif\iffoo creates \footrue, \foofalse to go with \iffoo. \outer\def\newif#1{\count@\escapechar \escapechar\m@ne \expandafter\expandafter\expandafter \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% \expandafter\expandafter\expandafter \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% \@if#1{false}\escapechar\count@} % the condition starts out false \def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname} {\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required \message{compatibility for TeX 2, } % If this file is used in an old TeX we define the new features % of TeX 3.0 as simple macros or counters so that files that uses % these features can be processed in such an environment % (They will however produce some other results). \ifx\undefined\inputlineno \newcount\inputlineno \inputlineno-1 % this could be used to detect that % an old TeX is in force \ifx\undefined\language % extra test for MLTeX 2, RmS 91/11/07 \newcount\language \fi \newcount\lefthyphenmin \newcount\righthyphenmin \newcount\errorcontextlines \newcount\holdinginserts \newdimen\emergencystretch \newcount\badness \let\noboundary\relax \newcount\setlanguage \fi % Assign initial values to TeX's parameters \message{parameters,} % All of TeX's numeric parameters are listed here, % but the code is commented out if no special value needs to be set. % INITEX makes all parameters zero except where noted. \pretolerance=100 \tolerance=200 % INITEX sets this to 10000 \hbadness=1000 \vbadness=1000 \linepenalty=10 \hyphenpenalty=50 \exhyphenpenalty=50 \binoppenalty=700 \relpenalty=500 \clubpenalty=150 \widowpenalty=150 \displaywidowpenalty=50 \brokenpenalty=100 \predisplaypenalty=10000 % \postdisplaypenalty=0 % \interlinepenalty=0 % \floatingpenalty=0, set during \insert % \outputpenalty=0, set before TeX enters \output \doublehyphendemerits=10000 \finalhyphendemerits=5000 \adjdemerits=10000 % \looseness=0, cleared by TeX after each paragraph % \pausing=0 % \holdinginserts=0 % \tracingonline=0 % \tracingmacros=0 % \tracingstats=0 % \tracingparagraphs=0 % \tracingpages=0 % \tracingoutput=0 \tracinglostchars=1 % \tracingcommands=0 % \tracingrestores=0 % \language=0 \uchyph=1 % \lefthyphenmin=2 \righthyphenmin=3 set below % \globaldefs=0 % \maxdeadcycles=25 % INITEX does this % \hangafter=1 % INITEX does this, also TeX after each paragraph % \fam=0 % \mag=1000 % INITEX does this % \escapechar=`\\ % INITEX does this \defaulthyphenchar=`\- \defaultskewchar=-1 % \endlinechar=`\^^M % INITEX does this \newlinechar=-1 \delimiterfactor=901 % \time=now % TeX does this at beginning of job % \day=now % TeX does this at beginning of job % \month=now % TeX does this at beginning of job % \year=now % TeX does this at beginning of job \showboxbreadth=5 \showboxdepth=3 \errorcontextlines=5 \hfuzz=0.1pt \vfuzz=0.1pt \overfullrule=5pt \hsize=6.5in \vsize=8.9in \maxdepth=4pt \splitmaxdepth=\maxdimen \boxmaxdepth=\maxdimen % \lineskiplimit=0pt, changed by \normalbaselines \delimitershortfall=5pt \nulldelimiterspace=1.2pt \scriptspace=0.5pt % \mathsurround=0pt % \predisplaysize=0pt, set before TeX enters $$ % \displaywidth=0pt, set before TeX enters $$ % \displayindent=0pt, set before TeX enters $$ \parindent=20pt % \hangindent=0pt, zeroed by TeX after each paragraph % \hoffset=0pt % \voffset=0pt % \baselineskip=0pt, changed by \normalbaselines % \lineskip=0pt, changed by \normalbaselines \parskip=0pt plus 1pt \abovedisplayskip=12pt plus 3pt minus 9pt \abovedisplayshortskip=0pt plus 3pt \belowdisplayskip=12pt plus 3pt minus 9pt \belowdisplayshortskip=7pt plus 3pt minus 4pt % \leftskip=0pt % \rightskip=0pt \topskip=10pt \splittopskip=10pt % \tabskip=0pt % \spaceskip=0pt % \xspaceskip=0pt \parfillskip=0pt plus 1fil \thinmuskip=3mu \medmuskip=4mu plus 2mu minus 4mu \thickmuskip=5mu plus 5mu % We also define special registers that function like parameters: \newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt \newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt \newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt \newskip\normalbaselineskip \normalbaselineskip=12pt \newskip\normallineskip \normallineskip=1pt \newdimen\normallineskiplimit \normallineskiplimit=0pt \newdimen\jot \jot=3pt \newcount\interdisplaylinepenalty \interdisplaylinepenalty=100 \newcount\interfootnotelinepenalty \interfootnotelinepenalty=100 % Definitions for preloaded fonts \def\magstephalf{1095 } \def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax} % Fonts assigned to \preloaded are not part of "plain TeX", % but they are preloaded so that other format packages can use them. % For example, if another set of macros says "\font\ninerm=cmr9", % TeX will not have to reload the font metric information for cmr9. % SLiTeX font definitions are taken from the file SFONTS.TEX, % so all of PLAIN's font definitions are commented out. %\message{fonts,} % %\font\tenrm=cmr10 % roman text %\font\preloaded=cmr9 %\font\preloaded=cmr8 %\font\sevenrm=cmr7 %\font\preloaded=cmr6 %\font\fiverm=cmr5 % %\font\teni=cmmi10 % math italic %\font\preloaded=cmmi9 %\font\preloaded=cmmi8 %\font\seveni=cmmi7 %\font\preloaded=cmmi6 %\font\fivei=cmmi5 % %\font\tensy=cmsy10 % math symbols %\font\preloaded=cmsy9 %\font\preloaded=cmsy8 %\font\sevensy=cmsy7 %\font\preloaded=cmsy6 %\font\fivesy=cmsy5 % %\font\tenex=cmex10 % math extension % %\font\preloaded=cmss10 % sans serif %\font\preloaded=cmssq8 % %\font\preloaded=cmssi10 % sans serif italic %\font\preloaded=cmssqi8 % %\font\tenbf=cmbx10 % boldface extended %\font\preloaded=cmbx9 %\font\preloaded=cmbx8 %\font\sevenbf=cmbx7 %\font\preloaded=cmbx6 %\font\fivebf=cmbx5 % %\font\tentt=cmtt10 % typewriter %\font\preloaded=cmtt9 %\font\preloaded=cmtt8 % %\font\preloaded=cmsltt10 % slanted typewriter % %\font\tensl=cmsl10 % slanted roman %\font\preloaded=cmsl9 %\font\preloaded=cmsl8 % %\font\tenit=cmti10 % text italic %\font\preloaded=cmti9 %\font\preloaded=cmti8 %\font\preloaded=cmti7 % %\message{more fonts,} %\font\preloaded=cmu10 % unslanted text italic % %\font\preloaded=cmmib10 % bold math italic %\font\preloaded=cmbsy10 % bold math symbols % %\font\preloaded=cmcsc10 % caps and small caps % %\font\preloaded=cmssbx10 % sans serif bold extended % %\font\preloaded=cmdunh10 % Dunhill style % %\font\preloaded=cmr7 scaled \magstep4 % for titles %\font\preloaded=cmtt10 scaled \magstep2 %\font\preloaded=cmssbx10 scaled \magstep2 % %\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols % %% Additional \preloaded fonts can be specified here. %% (And those that were \preloaded above can be eliminated.) % %\let\preloaded=\undefined % preloaded fonts must be declared anew later. % %\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177 %\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60 % %\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm %\def\rm{\fam\z@\tenrm} %\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei %\def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni} %\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy %\def\cal{\fam\tw@} %\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex %\newfam\itfam \def\it{\fam\itfam\tenit} % \it is family 4 %\textfont\itfam=\tenit %\newfam\slfam \def\sl{\fam\slfam\tensl} % \sl is family 5 %\textfont\slfam=\tensl %\newfam\bffam \def\bf{\fam\bffam\tenbf} % \bf is family 6 %\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf %\scriptscriptfont\bffam=\fivebf %\newfam\ttfam \def\tt{\fam\ttfam\tentt} % \tt is family 7 %\textfont\ttfam=\tentt % Macros for setting ordinary text \message{macros,} \def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m} \def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000% \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 } \def\normalbaselines{\lineskip\normallineskip \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit} \def\^^M{\ } % control = control \def\^^I{\ } % same for \def\lq{`} \def\rq{'} \def\lbrack{[} \def\rbrack{]} \let\endgraf=\par \let\endline=\cr \def\space{ } \def\empty{} \def\null{\hbox{}} \let\bgroup={ \let\egroup=} % In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}' % since this allows, for example, `\let\par=\cr \obeylines \halign{...' {\catcode`\^^M=\active % these lines must end with % \gdef\obeylines{\catcode`\^^M\active \let^^M\par}% \global\let^^M\par} % this is in case ^^M appears in a \write \def\obeyspaces{\catcode`\ \active} {\obeyspaces\global\let =\space} \def\loop#1\repeat{\def\body{#1}\iterate} \def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next} \let\repeat=\fi % this makes \loop...\if...\repeat skippable \def\thinspace{\kern .16667em } \def\negthinspace{\kern-.16667em } \def\enspace{\kern.5em } \def\enskip{\hskip.5em\relax} \def\quad{\hskip1em\relax} \def\qquad{\hskip2em\relax} \def\smallskip{\vskip\smallskipamount} \def\medskip{\vskip\medskipamount} \def\bigskip{\vskip\bigskipamount} \def\nointerlineskip{\prevdepth-1000\p@} \def\offinterlineskip{\baselineskip-1000\p@ \lineskip\z@ \lineskiplimit\maxdimen} \def\vglue{\afterassignment\vgl@\skip@=} \def\vgl@{\par \dimen@\prevdepth \hrule height\z@ \nobreak\vskip\skip@ \prevdepth\dimen@} \def\hglue{\afterassignment\hgl@\skip@=} \def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@ \nobreak\hskip\skip@ \spacefactor\count@} \def~{\penalty\@M \ } % tie \def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-' \def\break{\penalty-\@M} \def\nobreak{\penalty \@M} \def\allowbreak{\penalty \z@} \def\filbreak{\par\vfil\penalty-200\vfilneg} \def\goodbreak{\par\penalty-500 } \def\eject{\par\break} \def\supereject{\par\penalty-\@MM} \def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi} \def\smallbreak{\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi} \def\medbreak{\par\ifdim\lastskip<\medskipamount \removelastskip\penalty-100\medskip\fi} \def\bigbreak{\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi} % \line changed to \@@line because LaTeX redefines \line \def\@@line{\hbox to\hsize} \def\leftline#1{\@@line{#1\hss}} \def\rightline#1{\@@line{\hss#1}} \def\centerline#1{\@@line{\hss#1\hss}} % end of LaTeX \line -> \@@line change \def\rlap#1{\hbox to\z@{#1\hss}} \def\llap#1{\hbox to\z@{\hss#1}} \def\m@th{\mathsurround=\z@} \def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@ \m@th \underline{\box\z@}$} \newbox\strutbox \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@} \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} \def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out \def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign \newcount\mscount \def\multispan#1{\omit \mscount#1\relax \loop\ifnum\mscount>\@ne \sp@n\repeat} \def\sp@n{\span\omit\advance\mscount\m@ne} % LaTeX has its own tabbing environment, so PLAIN's is disabled. % %\newif\ifus@ \newif\if@cr %\newbox\tabs \newbox\tabsyet \newbox\tabsdone % %\def\cleartabs{\global\setbox\tabsyet\null \setbox\tabs\null} %\def\settabs{\setbox\tabs\null \futurelet\next\sett@b} %\let\+=\relax % in case this file is being read in twice %\def\sett@b{\ifx\next\+\let\next\relax % \def\next{\afterassignment\s@tt@b\let\next}% % \else\let\next\s@tcols\fi\next} %\def\s@tt@b{\let\next\relax\us@false\m@ketabbox} %\def\tabalign{\us@true\m@ketabbox} % non-\outer version of \+ %\outer\def\+{\tabalign} %\def\s@tcols#1\columns{\count@#1 \dimen@\hsize % \loop\ifnum\count@>\z@ \@nother \repeat} %\def\@nother{\dimen@ii\dimen@ \divide\dimen@ii\count@ % \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}% % \advance\dimen@-\dimen@ii \advance\count@\m@ne} % %\def\m@ketabbox{\begingroup % \global\setbox\tabsyet\copy\tabs % \global\setbox\tabsdone\null % \def\cr{\@crtrue\crcr\egroup\egroup % \ifus@\unvbox\z@\lastbox\fi\endgroup % \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}% % \setbox\z@\vbox\bgroup\@crfalse % \ialign\bgroup&\t@bbox##\t@bb@x\crcr} % %\def\t@bbox{\setbox\z@\hbox\bgroup} %\def\t@bb@x{\if@cr\egroup % now \box\z@ holds the column % \else\hss\egroup \global\setbox\tabsyet\hbox{\unhbox\tabsyet % \global\setbox\@ne\lastbox}% now \box\@ne holds its size % \ifvoid\@ne\global\setbox\@ne\hbox to\wd\z@{}% % \else\setbox\z@\hbox to\wd\@ne{\unhbox\z@}\fi % \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}\fi % \box\z@} \def\hang{\hangindent\parindent} \def\textindent#1{\indent\llap{#1\enspace}\ignorespaces} \def\item{\par\hang\textindent} %% RmS 92/03/18: Removed \itemitem since never needed/useful in SLiTeX. %\def\itemitem{\par\indent \hangindent2\parindent \textindent} \def\narrower{\advance\leftskip\parindent \advance\rightskip\parindent} % LaTeX has its own sectioning macros %\outer\def\beginsection#1\par{\vskip\z@ plus.3\vsize\penalty-250 % \vskip\z@ plus-.3\vsize\bigskip\vskip\parskip % \message{#1}\leftline{\bf#1}\nobreak\smallskip\noindent} \outer\def\proclaim #1. #2\par{\medbreak \noindent{\bf#1.\enspace}{\sl#2\par}% \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi} \def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax} \def\ttraggedright{\tt\rightskip\z@ plus2em\relax} % for use with \tt only \chardef\%=`\% \chardef\&=`\& \chardef\#=`\# \chardef\$=`\$ \chardef\ss="19 \chardef\ae="1A \chardef\oe="1B \chardef\o="1C \chardef\AE="1D \chardef\OE="1E \chardef\O="1F \chardef\i="10 \chardef\j="11 % dotless letters \def\aa{\accent23a} \def\l{\char32l} \def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}} \def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary \def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}} \def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% \rlap{\raise.67\dimen@\hbox{\char'27}}A} \def\mathhexbox#1#2#3{\leavevmode \hbox{$\m@th \mathchar"#1#2#3$}} \def\dag{\mathhexbox279} \def\ddag{\mathhexbox27A} \def\S{\mathhexbox278} \def\P{\mathhexbox27B} \def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% \ialign{##\crcr#1\crcr}}} % put characters over each other \def\ooalign{\lineskiplimit-\maxdimen \oalign} % LaTeX change: \d, \b, \c redefined to work in a moving argument. \def\pd#1{\oalign{#1\crcr\hidewidth.\hidewidth}} \def\d{\protect\pd} \def\pb#1{\oalign{#1\crcr\hidewidth \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}} \def\b{\protect\pb} \def\pc#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} \def\c{\protect\pc} % end of LaTeX change to \d, \b, \c \def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}} % LaTeX change: \ldots is redefined to do essentially what Plain's \dots does, % so ... \def\dots{\ldots} \def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX} \def\`#1{{\accent18 #1}} \def\'#1{{\accent19 #1}} \def\v#1{{\accent20 #1}} \let\^^_=\v \def\u#1{{\accent21 #1}} \let\^^S=\u \def\=#1{{\accent22 #1}} \def\^#1{{\accent94 #1}} \let\^^D=\^ \def\.#1{{\accent95 #1}} \def\H#1{{\accent"7D #1}} \def\~#1{{\accent"7E #1}} \def\"#1{{\accent"7F #1}} % LaTeX change: Make \t work in a moving argument. \def\pt#1{{\edef\next{\the\font}\the\textfont1\accent"7F\next#1}} \def\t{\protect\pt} % LaTeX change: \kern\z@ added to end of \hrulefill and \dotfill % to make them work in `tabular' and `array' environments. % (Change made 24 July 1987). \def\hrulefill{\leaders\hrule\hfill\kern\z@} \def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill\kern\z@} \def\rightarrowfill{$\m@th\mathord-\mkern-6mu% \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill \mkern-6mu\mathord\rightarrow$} \def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu% \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill \mkern-6mu\mathord-$} \mathchardef\braceld="37A \mathchardef\bracerd="37B \mathchardef\bracelu="37C \mathchardef\braceru="37D \def\downbracefill{$\m@th\braceld\leaders\vrule\hfill\braceru \bracelu\leaders\vrule\hfill\bracerd$} \def\upbracefill{$\m@th\bracelu\leaders\vrule\hfill\bracerd \braceld\leaders\vrule\hfill\braceru$} % LaTeX change: \bye is eliminated. %\outer\def\bye{\par\vfill\supereject\end} % Macros for math setting \message{math definitions,} \let\sp=^ \let\sb=_ \def\,{\mskip\thinmuskip} \def\>{\mskip\medmuskip} \def\;{\mskip\thickmuskip} \def\!{\mskip-\thinmuskip} \def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} {\catcode`\'=\active \gdef'{^\bgroup\prim@s}} \def\prim@s{\prime\futurelet\next\pr@m@s} \def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t \else\let\nxt\egroup\fi\fi \nxt} \def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup} {\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math {\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_ \mathchardef\alpha="010B \mathchardef\beta="010C \mathchardef\gamma="010D \mathchardef\delta="010E \mathchardef\epsilon="010F \mathchardef\zeta="0110 \mathchardef\eta="0111 \mathchardef\theta="0112 \mathchardef\iota="0113 \mathchardef\kappa="0114 \mathchardef\lambda="0115 \mathchardef\mu="0116 \mathchardef\nu="0117 \mathchardef\xi="0118 \mathchardef\pi="0119 \mathchardef\rho="011A \mathchardef\sigma="011B \mathchardef\tau="011C \mathchardef\upsilon="011D \mathchardef\phi="011E \mathchardef\chi="011F \mathchardef\psi="0120 \mathchardef\omega="0121 \mathchardef\varepsilon="0122 \mathchardef\vartheta="0123 \mathchardef\varpi="0124 \mathchardef\varrho="0125 \mathchardef\varsigma="0126 \mathchardef\varphi="0127 \mathchardef\Gamma="7000 \mathchardef\Delta="7001 \mathchardef\Theta="7002 \mathchardef\Lambda="7003 \mathchardef\Xi="7004 \mathchardef\Pi="7005 \mathchardef\Sigma="7006 \mathchardef\Upsilon="7007 \mathchardef\Phi="7008 \mathchardef\Psi="7009 \mathchardef\Omega="700A \mathchardef\aleph="0240 \def\hbar{{\mathchar'26\mkern-9muh}} \mathchardef\imath="017B \mathchardef\jmath="017C \mathchardef\ell="0160 \mathchardef\wp="017D \mathchardef\Re="023C \mathchardef\Im="023D \mathchardef\partial="0140 \mathchardef\infty="0231 \mathchardef\prime="0230 \mathchardef\emptyset="023B \mathchardef\nabla="0272 \def\surd{{\mathchar"1270}} \mathchardef\top="023E \mathchardef\bot="023F \def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr \not\mathrel{\mkern14mu}\crcr \noalign{\nointerlineskip} \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}} \mathchardef\triangle="0234 \mathchardef\forall="0238 \mathchardef\exists="0239 \mathchardef\neg="023A \let\lnot=\neg \mathchardef\flat="015B \mathchardef\natural="015C \mathchardef\sharp="015D \mathchardef\clubsuit="027C \mathchardef\diamondsuit="027D \mathchardef\heartsuit="027E \mathchardef\spadesuit="027F \mathchardef\coprod="1360 \mathchardef\bigvee="1357 \mathchardef\bigwedge="1356 \mathchardef\biguplus="1355 \mathchardef\bigcap="1354 \mathchardef\bigcup="1353 \mathchardef\intop="1352 \def\int{\intop\nolimits} \mathchardef\prod="1351 \mathchardef\sum="1350 \mathchardef\bigotimes="134E \mathchardef\bigoplus="134C \mathchardef\bigodot="134A \mathchardef\ointop="1348 \def\oint{\ointop\nolimits} \mathchardef\bigsqcup="1346 \mathchardef\smallint="1273 \mathchardef\triangleleft="212F \mathchardef\triangleright="212E \mathchardef\bigtriangleup="2234 \mathchardef\bigtriangledown="2235 \mathchardef\wedge="225E \let\land=\wedge \mathchardef\vee="225F \let\lor=\vee \mathchardef\cap="225C \mathchardef\cup="225B \mathchardef\ddagger="227A \mathchardef\dagger="2279 \mathchardef\sqcap="2275 \mathchardef\sqcup="2274 \mathchardef\uplus="225D \mathchardef\amalg="2271 \mathchardef\diamond="2205 \mathchardef\bullet="220F \mathchardef\wr="226F \mathchardef\div="2204 \mathchardef\odot="220C \mathchardef\oslash="220B \mathchardef\otimes="220A \mathchardef\ominus="2209 \mathchardef\oplus="2208 \mathchardef\mp="2207 \mathchardef\pm="2206 \mathchardef\circ="220E \mathchardef\bigcirc="220D \mathchardef\setminus="226E % for set difference A\setminus B \mathchardef\cdot="2201 \mathchardef\ast="2203 \mathchardef\times="2202 \mathchardef\star="213F \mathchardef\propto="322F \mathchardef\sqsubseteq="3276 \mathchardef\sqsupseteq="3277 \mathchardef\parallel="326B \mathchardef\mid="326A \mathchardef\dashv="3261 \mathchardef\vdash="3260 \mathchardef\nearrow="3225 \mathchardef\searrow="3226 \mathchardef\nwarrow="322D \mathchardef\swarrow="322E \mathchardef\Leftrightarrow="322C \mathchardef\Leftarrow="3228 \mathchardef\Rightarrow="3229 \def\neq{\not=} \let\ne=\neq \mathchardef\leq="3214 \let\le=\leq \mathchardef\geq="3215 \let\ge=\geq \mathchardef\succ="321F \mathchardef\prec="321E \mathchardef\approx="3219 \mathchardef\succeq="3217 \mathchardef\preceq="3216 \mathchardef\supset="321B \mathchardef\subset="321A \mathchardef\supseteq="3213 \mathchardef\subseteq="3212 \mathchardef\in="3232 \mathchardef\ni="3233 \let\owns=\ni \mathchardef\gg="321D \mathchardef\ll="321C \mathchardef\not="3236 \mathchardef\leftrightarrow="3224 \mathchardef\leftarrow="3220 \let\gets=\leftarrow \mathchardef\rightarrow="3221 \let\to=\rightarrow \mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} \mathchardef\sim="3218 \mathchardef\simeq="3227 \mathchardef\perp="323F \mathchardef\equiv="3211 \mathchardef\asymp="3210 \mathchardef\smile="315E \mathchardef\frown="315F \mathchardef\leftharpoonup="3128 \mathchardef\leftharpoondown="3129 \mathchardef\rightharpoonup="312A \mathchardef\rightharpoondown="312B \def\joinrel{\mathrel{\mkern-3mu}} \def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as + \def\Relbar{\mathrel=} \mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow} \mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook} \def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft} \def\models{\mathrel|\joinrel=} \def\Longrightarrow{\Relbar\joinrel\Rightarrow} % LaTeX Change: \longrightarrow and \longleftarrow redefined to make % then robust. \def\longrightarrow{\protect\@lra} \def\@lra{\relbar\joinrel\rightarrow} \def\longleftarrow{\protect\@lla} \def\@lla{\leftarrow\joinrel\relbar} % End of LaTeX change to \longrightarrow and \longleftarrow \def\Longleftarrow{\Leftarrow\joinrel\Relbar} \def\longmapsto{\mapstochar\longrightarrow} \def\longleftrightarrow{\leftarrow\joinrel\rightarrow} \def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow} \def\iff{\;\Longleftrightarrow\;} \mathchardef\ldotp="613A % ldot as a punctuation mark \mathchardef\cdotp="6201 % cdot as a punctuation mark \mathchardef\colon="603A % colon as a punctuation mark % LaTeX change: make \ldots work outside math mode too. \def\@ldots{\mathinner{\ldotp\ldotp\ldotp}} \def\ldots{\protect\pldots} \def\pldots{\relax\ifmmode\@ldots\else\mbox{$\m@th\@ldots\,$}\fi} % End of LaTeX change to \ldots \def\cdots{\mathinner{\cdotp\cdotp\cdotp}} \def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ \kern6\p@\hbox{.}\hbox{.}\hbox{.}}} \def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}} \def\acute{\mathaccent"7013 } \def\grave{\mathaccent"7012 } \def\ddot{\mathaccent"707F } \def\tilde{\mathaccent"707E } \def\bar{\mathaccent"7016 } \def\breve{\mathaccent"7015 } \def\check{\mathaccent"7014 } \def\hat{\mathaccent"705E } \def\vec{\mathaccent"017E } \def\dot{\mathaccent"705F } \def\widetilde{\mathaccent"0365 } \def\widehat{\mathaccent"0362 } \def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}} \def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}} \def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@} \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits} \def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip} \upbracefill\crcr\noalign{\kern3\p@}}}}\limits} \def\skew#1#2#3{{#2{#3\mkern#1mu}\mkern-#1mu}{}} \def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) \def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( \def\lgroup{\delimiter"462833A } % extensible ( with sharper tips \def\rgroup{\delimiter"562933B } % extensible ) with sharper tips \def\arrowvert{\delimiter"26A33C } % arrow without arrowheads \def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads \def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces \def\Vert{\delimiter"26B30D } \let\|=\Vert \def\vert{\delimiter"26A30C } \def\uparrow{\delimiter"3222378 } \def\downarrow{\delimiter"3223379 } \def\updownarrow{\delimiter"326C33F } \def\Uparrow{\delimiter"322A37E } \def\Downarrow{\delimiter"322B37F } \def\Updownarrow{\delimiter"326D377 } \def\backslash{\delimiter"26E30F } % for double coset G\backslash H \def\rangle{\delimiter"526930B } \def\langle{\delimiter"426830A } \def\rbrace{\delimiter"5267309 } \let\}=\rbrace \def\lbrace{\delimiter"4266308 } \let\{=\lbrace \def\rceil{\delimiter"5265307 } \def\lceil{\delimiter"4264306 } \def\rfloor{\delimiter"5263305 } \def\lfloor{\delimiter"4262304 } \def\bigl{\mathopen\big} \def\bigm{\mathrel\big} \def\bigr{\mathclose\big} \def\Bigl{\mathopen\Big} \def\Bigm{\mathrel\Big} \def\Bigr{\mathclose\Big} \def\biggl{\mathopen\bigg} \def\biggm{\mathrel\bigg} \def\biggr{\mathclose\bigg} \def\Biggl{\mathopen\Bigg} \def\Biggm{\mathrel\Bigg} \def\Biggr{\mathclose\Bigg} \def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} \def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} \def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} \def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} \def\n@space{\nulldelimiterspace\z@ \m@th} \def\choose{\atopwithdelims()} \def\brack{\atopwithdelims[]} \def\brace{\atopwithdelims\{\}} \def\sqrt{\radical"270370 } \def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}% {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}} \newbox\rootbox \def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$} \mathpalette\r@@t} \def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$} \dimen@\ht\z@ \advance\dimen@-\dp\z@ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@} \newif\ifv@ \newif\ifh@ \def\vphantom{\v@true\h@false\ph@nt} \def\hphantom{\v@false\h@true\ph@nt} \def\phantom{\v@true\h@true\ph@nt} \def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}% \else\let\next\makeph@nt\fi\next} \def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt} \def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt} \def\finph@nt{\setbox\tw@\null \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi \ifh@ \wd\tw@\wd\z@\fi \box\tw@} \def\mathstrut{\vphantom(} \def\smash{\relax % \relax, in case this comes first in \halign \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh \fi\next} \def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh} \def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh} \def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@} \def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign \def\@vereq#1#2{\lower.5\p@\vbox{\baselineskip\z@skip\lineskip-.5\p@ \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}} \def\notin{\mathrel{\m@th\mathpalette\c@ncel\in}} \def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}} \def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}} \def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt \hbox{$#1\rightharpoonup$}\crcr $#1\leftharpoondown$}}}} \def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}} \def\doteq{\buildrel\textstyle.\over=} \def\log{\mathop{\rm log}\nolimits} \def\lg{\mathop{\rm lg}\nolimits} \def\ln{\mathop{\rm ln}\nolimits} \def\lim{\mathop{\rm lim}} \def\limsup{\mathop{\rm lim\,sup}} \def\liminf{\mathop{\rm lim\,inf}} \def\sin{\mathop{\rm sin}\nolimits} \def\arcsin{\mathop{\rm arcsin}\nolimits} \def\sinh{\mathop{\rm sinh}\nolimits} \def\cos{\mathop{\rm cos}\nolimits} \def\arccos{\mathop{\rm arccos}\nolimits} \def\cosh{\mathop{\rm cosh}\nolimits} \def\tan{\mathop{\rm tan}\nolimits} \def\arctan{\mathop{\rm arctan}\nolimits} \def\tanh{\mathop{\rm tanh}\nolimits} \def\cot{\mathop{\rm cot}\nolimits} \def\coth{\mathop{\rm coth}\nolimits} \def\sec{\mathop{\rm sec}\nolimits} \def\csc{\mathop{\rm csc}\nolimits} \def\max{\mathop{\rm max}} \def\min{\mathop{\rm min}} \def\sup{\mathop{\rm sup}} \def\inf{\mathop{\rm inf}} \def\arg{\mathop{\rm arg}\nolimits} \def\ker{\mathop{\rm ker}\nolimits} \def\dim{\mathop{\rm dim}\nolimits} \def\hom{\mathop{\rm hom}\nolimits} \def\det{\mathop{\rm det}} \def\exp{\mathop{\rm exp}\nolimits} \def\Pr{\mathop{\rm Pr}} \def\gcd{\mathop{\rm gcd}} \def\deg{\mathop{\rm deg}\nolimits} \def\bmod{\mskip-\medmuskip\mkern5mu \mathbin{\rm mod}\penalty900\mkern5mu\mskip-\medmuskip} \def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)} %% RmS 91/08/14 inserted extra braces around entry for NFSS \def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\right.} \def\matrix#1{\null\,\vcenter{\normalbaselines\m@th \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr \mathstrut\crcr\noalign{\kern-\baselineskip} #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,} \def\pmatrix#1{\left(\matrix{#1}\right)} \newdimen\p@renwd % LaTeX: following command is moved after the \tenex font is defined % by SFONTS %\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( \def\bordermatrix#1{\begingroup \m@th \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}% \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil &&\quad\hfil$##$\hfil\crcr \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}% #1\crcr\omit\strut\cr}}% \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne \global\setbox\@ne\vbox{\box\@ne\kern2\p@}% \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}% \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup} \def\openup{\afterassignment\@penup\dimen@=} \def\@penup{\advance\lineskip\dimen@ \advance\baselineskip\dimen@ \advance\lineskiplimit\dimen@} % LaTeX change: \eqalign eliminated, since it is replaced by the % eqnarray environment. % %\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th % \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil % \crcr#1\crcr}}\,} \newif\ifdt@p \def\displ@y{\global\dt@ptrue\openup\jot\m@th \everycr{\noalign{\ifdt@p \global\dt@pfalse \vskip-\lineskiplimit \vskip\normallineskiplimit \else \penalty\interdisplaylinepenalty \fi}}} \def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y \def\displaylines#1{\displ@y \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr #1\crcr}} % LaTeX: The following \eqalign type macros are eliminated, since % they are replaced by the eqnarray environment. % %\def\eqalignno#1{\displ@y \tabskip\centering % \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip % &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering % &\llap{$\@lign##$}\tabskip\z@skip\crcr % #1\crcr}} %\def\leqalignno#1{\displ@y \tabskip\centering % \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip % &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering % &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr % #1\crcr}} % Definitions related to output % LaTeX uses its own output routine % %\message{output routines,} % %\countdef\pageno=0 \pageno=1 % first page is number 1 %\newtoks\headline \headline={\hfil} % headline is normally blank %\newtoks\footline \footline={\hss\tenrm\folio\hss} % % footline is normally a centered page number in font \tenrm %\newif\ifr@ggedbottom %\def\raggedbottom{\topskip 10\p@ plus60\p@ \r@ggedbottomtrue} %\def\normalbottom{\topskip 10\p@ \r@ggedbottomfalse} % undoes \raggedbottom %\def\folio{\ifnum\pageno<\z@ \romannumeral-\pageno \else\number\pageno \fi} %\def\nopagenumbers{\footline{\hfil}} % blank out the footline %\def\advancepageno{\ifnum\pageno<\z@ \global\advance\pageno\m@ne % \else\global\advance\pageno\@ne \fi} % increase |pageno| % LaTeX does use the same insert for footnotes as PLAIN \newinsert\footins %\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later % \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi % #1\@sf\vfootnote{#1}} %\def\vfootnote#1{\insert\footins\bgroup % \interlinepenalty\interfootnotelinepenalty % \splittopskip\ht\strutbox % top baseline for broken footnotes % \splitmaxdepth\dp\strutbox \floatingpenalty\@MM % \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip % \textindent{#1}\footstrut\futurelet\next\fo@t} %\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t % \else\let\next\f@t\fi \next} %\def\f@@t{\bgroup\aftergroup\@foot\let\next} %\def\f@t#1{#1\@foot} %\def\@foot{\strut\egroup} %\def\footstrut{\vbox to\splittopskip{}} % LaTeX leaves these initializations for the \footins insert. % \skip\footins=\bigskipamount % space added when footnote is present \count\footins=1000 % footnote magnification factor (1 to 1) \dimen\footins=8in % maximum footnotes per page %\newinsert\topins %\newif\ifp@ge \newif\if@mid %\def\topinsert{\@midfalse\p@gefalse\@ins} %\def\midinsert{\@midtrue\@ins} %\def\pageinsert{\@midfalse\p@getrue\@ins} %\skip\topins=\z@skip % no space added when a topinsert is present %\count\topins=1000 % magnification factor (1 to 1) %\dimen\topins=\maxdimen % no limit per page %\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup} % start a \vbox %\def\endinsert{\egroup % finish the \vbox % \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen@12\p@ % \advance\dimen@\pagetotal \advance\dimen@-\pageshrink % \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi % \if@mid \bigskip\box\z@\bigbreak % \else\insert\topins{\penalty100 % floating insertion % \splittopskip\z@skip % \splitmaxdepth\maxdimen \floatingpenalty\z@ % \ifp@ge \dimen@\dp\z@ % \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero % \else \box\z@\nobreak\bigskip\fi}\fi\endgroup} %\output{\plainoutput} %\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% % \advancepageno % \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} %\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}} %\def\makeheadline{\vbox to\z@{\vskip-22.5\p@ % \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip} %\def\makefootline{\baselineskip24\p@\line{\the\footline}} %\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over % \line{}\kern-\topskip\nobreak\vfill\supereject\fi} % %\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi % \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255 % \ifvoid\footins\else % footnote info is present % \vskip\skip\footins % \footnoterule % \unvbox\footins\fi % \ifr@ggedbottom \kern-\dimen@ \vfil \fi} % LaTeX keeps PLAIN TeX's \footnoterule as the default % \def\footnoterule{\kern-3\p@ \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high % Hyphenation, miscellaneous macros, and initial values for standard layout \message{hyphenation} \lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks \input lhyphen % \magnification doesn't work in LaTeX % %\def\magnification{\afterassignment\m@g\count@} %\def\m@g{\mag\count@ % \hsize6.5truein\vsize8.9truein\dimen\footins8truein} %% RmS 92/03/18: added \errorcontextlines=\maxdimen, %% suggested by J. Schrod \def\tracingall{\tracingcommands\tw@\tracingstats\tw@ \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode \errorcontextlines\maxdimen\tracingonline\@ne} \def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}} % input SliTeX fonts and commands %% Initialize \reset@font for use with Old font selection \let\reset@font\empty \input sfonts \input latex \input slitex % LaTeX change: moved from above. \setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( % RmS 91/06/21: clear \box0 \setbox0=\box\voidb@x % SliTeX: default values \normalbaselines % SliTeX: select 20pt font size and default style \twentypt \nonfrenchspacing % punctuation affects the spacing \catcode`@=12 % at signs are no longer letters % SliTeX: File called SPLAIN % Identify the current format \def\fmtname{splain}\def\fmtversion{2.09-March 18, 1992} \typeout{Input any local modifications here.} \endinput latex209-25.may.1992.orig/general/slitex.tex100664 144 144 57360 5166176400 17616 0ustar nakaharastaff% SLITEX VERSION 2.09 <25 March 1992> % Copyright (C) 1992 by Leslie Lamport \everyjob{\typeout{SliTeX Version 2.09 <25 March 1992>}} \immediate\write10{SliTeX Version 2.09 <25 March 1992>} % NOTES FOR DEFINING FONTS AND STYLES FOR SLIDES % Every font definition -- \rm, \it, etc. must \def\@currfont to itself. % Every size definition such as \normalsize is defined to be % \@normalsize % \def\@currsize{\@normal}\rm % commands to set: % \baselineskip % \lineskip % the ...displayskip and ...displayshortskip parameters % \strutbox % \parskip and \@parskip % where \@normal makes all the font definitions. % \@normal must test the switch @visible and define its % fonts equal to the visible or the invisible versions accordingly. \message{hacks,} % ********************************************** % * HACKS FOR SLIDE MACROS * % ********************************************** % % \@gobbletoend{FOO} gobbles all text up to and including the % next \end{FOO}. Must be used inside an \if, right before the \fi. \def\@gobbletoend#1{\def\@argend{#1}\@ggobtoend} \long\def\@ggobtoend#1\end#2{\@xfi\def\@tempa{#2}% \ifx\@tempa\@argend\else\@ggobtoend\fi} \def\@xfi{\fi} \message{slides,} % ********************************************** % * SLIDE MACROS * % ********************************************** % % Switches: % @bw : true if making black and white slides % @visible : true if visible output to be produced. % @makingslides : true if executing \blackandwhite or \colorslides \newif\if@bw \newif\if@visible \newif\if@onlyslidesw \@onlyslideswfalse \newif\if@onlynotesw \@onlynoteswfalse \newif\if@makingslides % Counters % slide = slide number % overlay = overlay number for a slide % note = note number for a slide \countdef\c@slide=0 \c@slide=0 \def\cl@slide{} \countdef\c@overlay=1 \c@overlay=0 \def\cl@overlay{} \countdef\c@note=2 \c@note=0 \def\cl@note{} \@addtoreset{overlay}{slide} \@addtoreset{note}{slide} % Redefine page counter to some other number. % The page counter will always be zero except when putting out an % extra page for a slide, note or overlay. % \@definecounter{page} \@addtoreset{page}{slide} \@addtoreset{page}{note} \@addtoreset{page}{overlay} \def\theslide{\@arabic\c@slide} \def\theoverlay{\theslide-\@alph\c@overlay} \def\thenote{\theslide-\@arabic\c@note} % \@setlimits \LIST \LOW \HIGH % % Assumes that \LIST = RANGE1,RANGE2,...,RANGEn (n>0) % Where RANGEi = j or j-k. % % Then \@setlimits globally sets % (i) \LIST := RANGE2, ... , RANGEn % (ii) \LOW := p % (iii) \HIGH := q % where either RANGE1 = p-q or RANGE1 = p and q=p. \def\@sl@getargs#1-#2-#3\relax#4#5{\xdef#4{#1}\xdef#5{#2}} \def\@sl@ccdr#1,#2\relax#3#4{\xdef#3{#1-#1-}\xdef#4{#2}} \def\@setlimits #1#2#3{\expandafter\@sl@ccdr#1\relax\@sl@gtmp #1% \expandafter\@sl@getargs\@sl@gtmp\relax#2#3} % \onlyslides{LIST} ::= % BEGIN % @onlyslidesw := true % \@doglslidelist :=G LIST,999999,999999 % if @onlynotesw = true % else @onlynotesw := true % \@doglnotelist :=G LIST,999999,999999 % fi % message: Only Slides LIST % END \def\onlyslides#1{\@onlyslideswtrue\gdef\@doglslidelist{#1,999999,999999}% \if@onlynotesw \else \@onlynoteswtrue\gdef\@doglnotelist{999999,999999}\fi \typeout{Only Slides #1}} % \onlynotes{LIST} ::= % BEGIN % @onlynotesw := true % \@doglnotelist :=G LIST,999999,999999 % if @onlyslidesw = true % else \@onlyslidesw := true % \@doglslidelist{999999,999999} % fi % message: Only Notes LIST % END \def\onlynotes#1{\@onlynoteswtrue\gdef\@doglnotelist{#1,999999,999999}% \if@onlyslidesw \else \@onlyslideswtrue\gdef\@doglslidelist{999999,999999}\fi \typeout{Only Notes #1}} % \blackandwhite #1 ::= % \newpage % page counter := 0 % @bw := T % @visible := T % if @onlyslidesw = true % then \@doslidelist := \@doglslidelist % \@setlimits\@doslidelist\@doslidelow\@doslidehigh % fi % if @onlynotesw = true % then \@donotelist := \@doglnotelist % \@setlimits\@donotelist\@donotelow\@donotehigh % fi % \normalsize % Note, this sets font to \rm , which sets % % \@currfont to \rm % counter slidenumber := 0 % counter note := 0 % counter overlay := 0 % @makingslides := T % input #1 % @makingslides := F \def\blackandwhite#1{\newpage\setcounter{page}{0}\@bwtrue\@visibletrue \if@onlyslidesw \xdef\@doslidelist{\@doglslidelist}% \@setlimits\@doslidelist\@doslidelow\@doslidehigh\fi \if@onlynotesw \xdef\@donotelist{\@doglnotelist}% \@setlimits\@donotelist\@donotelow\@donotehigh\fi \normalsize\setcounter{slide}{0}\setcounter{overlay}{0}% \setcounter{note}{0}\@makingslidestrue\input #1\@makingslidesfalse} % \colors{COLORS} ::= % for \@colortemp := COLORS % do \csname \@colortemp \endcsname == \@color{\@colortemp} od % if \@colorlist = empty % then \@colorlist := COLORS % else \@colorlist := \@colorlist , COLORS % fi % \def\colors#1{\@for\@colortemp:=#1\do{\expandafter \xdef\csname\@colortemp\endcsname{\noexpand\@color{\@colortemp}}}\ifx \@colorlist\@empty \gdef\@colorlist{#1}% \else \xdef\@colorlist{\@colorlist,#1}\fi} \def\@colorlist{} % \colorslides{FILE} ::= % \newpage % page counter := 0 % @bw := F % for \@currcolor := \@colorlist % do @visible := T % if @onlyslidesw = true % then \@doslidelist := \@doglslidelist % \@setlimits\@doslidelist\@doslidelow\@doslidehigh % fi % if @onlynotesw = true % then \@donotelist := \@doglnotelist % \@setlimits\@donotelist\@donotelow\@donotehigh % fi % \normalsize % counter slide := 0 % counter overlay := 0 % counter note := 0 % type message % generate color layer output page % @makingslides := T % input #1 % @makingslides := F % od \def\colorslides#1{\newpage\setcounter{page}{0}\@bwfalse \@for\@currcolor:=\@colorlist\do {\@visibletrue \if@onlyslidesw \xdef\@doslidelist{\@doglslidelist}% \@setlimits\@doslidelist\@doslidelow\@doslidehigh\fi \if@onlynotesw \xdef\@donotelist{\@doglnotelist}% \@setlimits\@donotelist\@donotelow\@donotehigh\fi \normalsize\setcounter{slide}{0}\setcounter{overlay}{0}% \setcounter{note}{0}\typeout{color \@currcolor}% \newpage \begin{huge}% \begin{center}% COLOR LAYER\\[.75in]% \@currcolor \end{center}% \end{huge}% \newpage \@makingslidestrue \input #1 \@makingslidesfalse}} % \slide COLORS ::= % BEGIN % \stepcounter{slide} % \@slidesw :=G T % if @onlyslidesw = true % set \@slidesw = T iff page to % then % be output % while \c@slide > \@doslidehigh % do \@setlimits\@doslidelist\@doslidelow\@doslidehigh od % if \c@slide < \@doslidelow % then \@slidesw := F % fi % fi % if \@slidesw = T % then \@slidesw :=G F % \begingroup % if @bw = true % then \@slidesw :=G T % else \@color{COLORS} % \if@visible then \@slidesw :=G T \fi % fi % \endgroup % fi % if \@slidesw = T % then \newpage % \thispagestyle{slide} % else \end{slide} % \@gobbletoend{slide} % fi % END % \endslide ::= % BEGIN % \par\break % END \def\slide#1{\stepcounter{slide}\gdef\@slidesw{T}\if@onlyslidesw \@whilenum \c@slide >\@doslidehigh\relax \do{\@setlimits\@doslidelist\@doslidelow\@doslidehigh}\ifnum \c@slide <\@doslidelow\relax\gdef\@slidesw{F}\fi\fi \if\@slidesw T\gdef\@slidesw{F}\begingroup\if@bw\gdef\@slidesw{T}\else \@color{#1}\if@visible \gdef\@slidesw{T}\fi\fi\endgroup\fi \if\@slidesw T\newpage\thispagestyle{slide}% \else\end{slide}\@gobbletoend{slide}\fi} \def\endslide{\par\break} % \overlay COLORS ::= % BEGIN % \stepcounter{overlay} % \@slidesw :=G T % if @onlyslidesw = T % set \@slidesw = T iff page to % then % be output % if \c@slide < \@doslidelow % then \@slidesw :=G F % fi % fi % if \@slidesw = T % \@slidesw :=G F % \begingroup % if @bw = true % then \@slidesw :=G T % else \@color{COLORS} % \if@visible then \@slidesw :=G T \fi % fi % \endgroup % fi % if \@slidesw = T % then \newpage % \thispagestyle{overlay} % else \end{overlay} % \@gobbletoend{overlay} % fi % END % \endoverlay ::= % BEGIN % \par\break % END \def\overlay#1{\stepcounter{overlay}\gdef\@slidesw{T}% \if@onlyslidesw\ifnum \c@slide <\@doslidelow\relax \gdef\@slidesw{F}\fi\fi \if\@slidesw T\gdef\@slidesw{F}\begingroup\if@bw\gdef\@slidesw{T}% \else\@color{#1}\if@visible \gdef\@slidesw{T}\fi\fi\endgroup\fi \if\@slidesw T\newpage\thispagestyle{overlay}% \else\end{overlay}\@gobbletoend{overlay}\fi} \def\endoverlay{\par\break} % \note ::= % BEGIN % \stepcounter{note} % if @bw = T % then % \@slidesw :=G T % if @onlynotesw = true % set \@notesw = T iff page to % then % be output % while \c@slide > \@donotehigh % do \@setlimits\@donotelist\@donotelow\@donotehigh od % if \c@slide < \@donotelow % then \@slidesw :=G F % fi % fi % else \@slidesw :=G F % fi % if \@slidesw = T % then \newpage % \thispagestyle{note} % else \end{note} % \@gobbletoend{note} % fi % END % \endnote ::= % BEGIN % \par\break % END \def\note{\stepcounter{note}% \if@bw \gdef\@slidesw{T}\if@onlynotesw\@whilenum \c@slide >\@donotehigh\relax \do{\@setlimits\@donotelist\@donotelow\@donotehigh}\ifnum \c@slide <\@donotelow\relax \gdef\@slidesw{F}\fi\fi \else\gdef\@slidesw{F}\fi \if\@slidesw T\newpage\thispagestyle{note}\else \end{note}\@gobbletoend{note}\fi} \def\endnote{\par\break} % \@color{COLORS} ::= % BEGIN % if math mode % then type warning % fi % if @bw % then @visible := T % else @visible := F % for \@tempa := COLORS % do if \@tempa = \@currcolor % then @visible := T % fi % od % fi % \@currsize -- sets the visibility of the current size % \@currfont -- sets the visibility of the current font % \ignorespaces % END \def\@color#1{\@mmodetest{ \if@bw \@visibletrue\else\@visiblefalse \@for \@tempa :=#1\do{\ifx\@tempa\@currcolor\@visibletrue\fi}\fi \@currsize\@currfont\ignorespaces}} \def\@mmodetest#1{\ifmmode\@warning{Color-changing command in math mode has been ignored}\else #1\fi} % \invisible ::= BEGIN type warning if math mode % \@visiblefalse \@currsize\@currfont\ignorespaces END \def\invisible{\@mmodetest{\@visiblefalse\@currsize\@currfont\ignorespaces}} \let\invisible=\invisible \let\endinvisible=\relax % \visible ::= BEGIN type warning if math mode % \@visibletrue \@currsize\@currfont\ignorespaces END % %\def\visible{\@mmodetest{\@visibletrue\@currsize\@currfont\ignorespaces}} % %\let\visible=\visible %\let\endvisible=\relax \message{picture,} % **************************************** % * MODIFICATIONS TO * % * THE PICTURE ENVIRONMENT * % **************************************** % % Below are the new definitions of the picture-drawing macros % required for SLiTeX. Only those commands that actually % draw something must be changed so that they do not produce % any output when the @visible switch is false. \def\line(#1,#2)#3{\if@visible\@xarg #1\relax \@yarg #2\relax \@linelen #3\unitlength \ifnum\@xarg =\z@ \@vline \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi \fi\fi} \def\vector(#1,#2)#3{\if@visible\@xarg #1\relax \@yarg #2\relax \@linelen #3\unitlength \ifnum\@xarg =\z@ \@vvector \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi \fi\fi} \def\dashbox#1(#2,#3){\leavevmode\if@visible\hbox to \z@{\baselineskip \z@ \lineskip \z@ \@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}\@tempcnta\z@ \put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@ \put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@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 \@wholewidth \@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 \@wholewidth \@height #1\unitlength}\@tempcnta\z@ \put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt \do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}\@tempcnta\z@ \put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt \relax\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}}\fi\@makepicbox(#2,#3)} \def\@oval(#1,#2)[#3]{\if@visible\begingroup \boxmaxdepth \maxdimen \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx #1\unitlength \@ovyy #2\unitlength \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi \@getcirc \@tempdimb \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ \@circlefnt \setbox\@tempboxa \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi \if@ovt \@ovhorz \kern -\@ovxx \fi \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% \endgroup\fi} \def\@circle#1{\if@visible \begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength \ifdim \@tempdimb >15.5\p@\relax \@getcirc\@tempdimb \@ovro\ht\@tempboxa \setbox\@tempboxa\hbox{\@circlefnt \advance\@tempcnta\tw@ \char \@tempcnta \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima \advance\@tempcnta\tw@ \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}% \else \@circ\@tempdimb{96}\fi\endgroup\fi} \def\@dot#1{\if@visible\@tempdimb #1\unitlength \@circ\@tempdimb{112}\fi} \long\def\@iframebox[#1][#2]#3{\leavevmode \savebox\@tempboxa[#1][#2]{\kern\fboxsep #3\kern\fboxsep}\@tempdima\fboxrule \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa \hbox{\lower \@tempdima\hbox {\vbox{ \if@visible \hrule \@height \else \vskip \fi \fboxrule \hbox{\if@visible \vrule \@width \fboxrule \hskip-\fboxrule \fi \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\if@visible \vrule \@width \fboxrule \hskip-\fboxrule \fi}\if@visible \hrule \@height \else \vskip\fi\fboxrule}}}} \long\def\frame#1{\if@visible\leavevmode \vbox{\vskip-\@halfwidth\hrule \@height\@halfwidth \@depth \@halfwidth \vskip-\@halfwidth\hbox{\hskip-\@halfwidth \vrule \@width\@wholewidth \hskip-\@halfwidth #1\hskip-\@halfwidth \vrule \@width \@wholewidth \hskip -\@halfwidth}\vskip -\@halfwidth\hrule \@height \@halfwidth \@depth \@halfwidth\vskip -\@halfwidth}\else #1\fi} \long\def\fbox#1{\leavevmode\setbox\@tempboxa\hbox{#1}\@tempdima\fboxrule \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa \hbox{\lower \@tempdima\hbox {\vbox{\if@visible \hrule \@height \else \vskip\fi\fboxrule \hbox{\if@visible\vrule \@width \else \hskip \fi\fboxrule \hskip\fboxsep \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\hskip \fboxsep \if@visible\vrule \@width\else\hskip \fi\fboxrule}% \if@visible\hrule \@height \else \vskip \fi\fboxrule}}}} \message{mods,} % **************************************** % * OTHER MODIFICATIONS TO * % * TeX AND LaTeX COMMANDS * % **************************************** % % \rule \def\@rule[#1]#2#3{\@tempdima#3\advance\@tempdima #1\leavevmode \hbox{\if@visible\vrule \@width#2 \@height\@tempdima \@depth-#1\else \vrule \@width \z@ \@height\@tempdima \@depth-#1\vrule \@width#2 \@height\z@\fi}} % \_ (Added 10 Nov 86) \def\_{\leavevmode \kern.06em \if@visible\vbox{\hrule \@width.3em}\else \vbox{\hrule \@height \z@ \@width.3em}\vbox{\hrule \@width \z@}\fi} % \overline, \underline, \frac and \sqrt % % \@mathbox{STYLE}{BOX}{MTEXT} : Called in math mode, typesets MTEXT and % stores result in BOX, using style STYLE. % % \@bphant{BOX} : Creates a phantom with dimensions BOX. % \@vbphant{BOX} : Creates a phantom with ht of BOX and zero width. % \@hbphant{BOX} : Creates a phantom with width of BOX and zero ht & dp. % \@hvsmash{STYLE}{MTEXT} : Creates a copy of MTEXT with zero height and width % in style STYLE. \def\@mathbox#1#2#3{\setbox#2\hbox{$\m@th#1{#3}$}} \def\@vbphantom#1{\setbox\tw@\null \ht\tw@\ht #1\dp\tw@\dp #1% \box\tw@} \def\@bphantom#1{\setbox\tw@\null \wd\tw@\wd #1\ht\tw@\ht #1\dp\tw@\dp #1% \box\tw@} \def\@hbphantom#1{\setbox\tw@\null \wd\tw@\wd #1\ht\tw@\z@ \dp\tw@\z@ \box\tw@} \def\@hvsmash#1#2{\@mathbox#1\z@{#2}\ht\z@\z@ \dp\z@\z@ \wd\z@\z@ \box\z@} \def\underline#1{\relax\ifmmode \@xunderline{#1}\else $\m@th\@xunderline{\hbox{#1}}$\relax\fi} \def\@xunderline#1{\mathchoice{\@xyunderline\displaystyle{#1}}{\@xyunderline \textstyle{#1}}{\@xyunderline\scriptstyle{#1}}{\@xyunderline \scriptscriptstyle{#1}}} \def\@xyunderline#1#2{\@mathbox#1\@smashboxa{#2}\@hvsmash#1{\copy\@smashboxa}% \if@visible \@hvsmash#1{\@@underline{\@bphantom\@smashboxa}}\fi \@mathbox#1\@smashboxb{\@@underline{\box\@smashboxa}}% \@bphantom\@smashboxb} \let\@@overline=\overline \def\overline#1{\mathchoice{\@xoverline\displaystyle{#1}}{\@xoverline \textstyle{#1}}{\@xoverline\scriptstyle{#1}}{\@xoverline \scriptscriptstyle{#1}}} \def\@xoverline#1#2{\@mathbox#1\@smashboxa{#2}\@hvsmash#1{\copy\@smashboxa}% \if@visible \@hvsmash#1{\@@overline{\@bphantom\@smashboxa}}\fi \@mathbox#1\@smashboxb{\@@overline{\box\@smashboxa}}% \@bphantom\@smashboxb} % \@frac {STYLE}{DENOMSTYLE}{NUM}{DEN}{FONTSIZE} : Creates \frac{NUM}{DENOM} % in style STYLE with NUM and DENOM in style DENOMSTYLE % FONTSIZE should be \textfont \scriptfont or \scriptscriptfont \def\frac#1#2{\mathchoice {\@frac\displaystyle\textstyle{#1}{#2}\textfont}{\@frac \textstyle\scriptstyle{#1}{#2}\textfont}{\@frac \scriptstyle\scriptscriptstyle{#1}{#2}\scriptfont}{\@frac \scriptscriptstyle\scriptscriptstyle{#1}{#2}\scriptscriptfont}} \def\@frac#1#2#3#4#5{\@mathbox#2\@smashboxa{#3}\@mathbox#2\@smashboxb{#4}% \@mathbox#1\@smashboxc{\copy\@smashboxa\over\copy\@smashboxb}% \@vbphantom\@smashboxc \vcenter{\vbox to\z@{\hsize \wd\@smashboxc \vss\nointerlineskip \hbox to\wd\@smashboxc{\hss\box\@smashboxa\hss}% \hrule \@height \z@}% \vskip 7\fontdimen8#53 \if@visible\hrule \@height \fontdimen8#53\else \vskip \fontdimen8#53\fi \vskip 7\fontdimen8#53 \nointerlineskip \vbox to\z@{\nointerlineskip \hbox to\wd\@smashboxc{\hss\box\@smashboxb\hss}% \hrule \@height \z@\vss}% }} \def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\@xysqrt#1{#2}$}% \dimen@\ht\z@ \advance\dimen@-\dp\z@ \mskip5mu\raise.6\dimen@\copy\rootbox \mskip-10mu\box\z@} \def\sqrt{\@ifnextchar[{\@sqrt}{\@xsqrt}} \def\@sqrt[#1]{\root #1\of} \def\@xsqrt#1{\mathchoice{\@xysqrt\displaystyle{#1}}{\@xysqrt \textstyle{#1}}{\@xysqrt\scriptstyle{#1}}{\@xysqrt \scriptscriptstyle{#1}}} \def\@xysqrt#1#2{\@mathbox#1\@smashboxa{#2}\if@visible \@hvsmash#1{\@@sqrt{\@bphantom\@smashboxa}}\fi \phantom{\@@sqrt{\@vbphantom\@smashboxa}}\box\@smashboxa} \newbox\@smashboxa \newbox\@smashboxb \newbox\@smashboxc % array and tabular environments: changes to `|', \hline, \cline, and \vline % added 8 Jun 88 \def\@arrayrule{\if@visible\@addtopreamble{\hskip -.5\arrayrulewidth \vrule \@width \arrayrulewidth\hskip -.5\arrayrulewidth}\fi} \def\cline#1{\if@visible\@cline[#1]\fi} \def\hline{\noalign{\ifnum0=`}\fi \if@visible \hrule \@height \arrayrulewidth \else \hrule \@width \z@ \fi \futurelet \@tempa\@xhline} \def\vline{\if@visible \vrule \@width \arrayrulewidth \else \vrule \@width \arrayrulewidth \@height \z@ \@depth \z@ \fi} \message{output,} % **************************************** % * CHANGES TO LaTeX \output ROUTINE * % **************************************** % % \@makecol == % BEGIN % % Following test added for slides to check if extra page % if @makingslides = T % then if \c@page > 0 % then if \c@note > 0 % then type 'Note \thenote too long.' % else if \c@overlay > 0 % then type 'Overlay \theoverlay too long.' % else type 'Slide \theslide too long' % fi fi fi fi % ifvoid \insert\footins % then \@outputbox := \box255 % else \@outputbox := \vbox {\unvbox255 % \vskip \skip\footins % \footnoterule % \unvbox\@footinsert % } % fi % \@freelist :=G \@freelist * \@midlist % \@midlist :=G empty % \@combinefloats % \@outputbox := \vbox to \@colht{\boxmaxdepth := \maxdepth % \vfil %%\vfil added for slides % \unvbox\@outputbox % \vfil } %%\vfil added for slides % \maxdepth :=G \@maxdepth % END \def\@makecol{\if@makingslides\ifnum\c@page>\z@ \@extraslide\fi\fi \ifvoid\footins \setbox\@outputbox\box\@cclv \let\@botfil\vfil \else\let\@botfil\relax\setbox\@outputbox \vbox{\unvbox\@cclv\vfil \vskip\skip\footins\footnoterule\unvbox\footins\vskip \z@ plus.1fil\relax}\fi \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth \vfil\unvbox\@outputbox\@botfil}\global\maxdepth\@maxdepth} \def\@extraslide{\ifnum\c@note>\z@ \@warning{Note \thenote\space too long}\else \ifnum\c@overlay>\z@ \@warning{Overlay \theoverlay\space too long}\else \@warning{Slide \theslide\space too long}\fi\fi} \message{init} % **************************************** % * SPECIAL SLiTeX INITIALIZATIONS * % **************************************** % \nofiles \@visibletrue %% RmS 91/09/29: \SLiTeX logo removed since it is now defined in latex.tex. %\def\SLiTeX{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em T\kern % -.1667em\lower.7ex\hbox{E}\kern-.125emX}} \endinput latex209-25.may.1992.orig/general/lplain.tex100664 144 144 137431 5166176400 17603 0ustar nakaharastaff% File LPLAIN - Created 29 October 1985 from plain version 1.5CM % - Last modified 20 October 1988 to take into account % changes to PLAIN.TEX reported by Arthur Ogawa % - Modified February 8, 1990 by Dominik Wujastyk to % match the PLAIN.TEX meant for TeX 3.0 (\fmtname{plain}, % \fmtversion{3.0}). % - Modified March 15, 1990 by Frank Mittelbach to % allow the use of this file both in TeX 2 and 3 % - Modified June 21, 1991 by RmS to clear the % contents of \box0. % - Modified July 1, 1991, by RmS to correct \multispan bug. % - Modified August 14, 1991, By RmS to make \cases work % with NFSS. % - Modified October 30, 1991, by RmS to remove \catcode and % \mathcode assignments for control characters. % - Modified November 1, 1991, by RmS to remove ^^A and ^^K % control characters. % - Modified November 4, 1991, by RmS to add missing \m@th % assignments and to introduce the file lhyphen.tex. % - Modified November 7, 1991, by RmS to make it work with % MLTeX version 2. % - Modified March 17, 1992, by RmS to match changes in % plain.tex of March 16, 1992. % % This is the LaTeX version of the plain TeX format that's described in % The TeXbook. All modifications can be found by searching for % the word 'LaTeX'. % N.B.: A version number is defined at the very end of this file; % please change that number whenever the file is modified! % And don't modify the file under any circumstances. % %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %% \catcode`\{=1 % left brace is begin-group character \catcode`\}=2 % right brace is end-group character \catcode`\$=3 % dollar sign is math shift \catcode`\&=4 % ampersand is alignment tab \catcode`\#=6 % hash mark is macro parameter character \catcode`\^=7 % circumflex and uparrow are for superscripts \catcode`\_=8 % underline and downarrow are for subscripts \catcode`\^^I=10 % ascii tab is a blank space \chardef\active=13 \catcode`\~=\active % tilde is active \catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par" \message{Preloading the plain format: codes,} % We had to define the \catcodes right away, before the message line, % since \message uses the { and } characters. % When INITEX (the TeX initializer) starts up, % it has defined the following \catcode values: % \catcode`\^^@=9 % ascii null is ignored % \catcode`\^^M=5 % ascii return is end-line % \catcode`\\=0 % backslash is TeX escape character % \catcode`\%=14 % percent sign is comment character % \catcode`\ =10 % ascii space is blank space % \catcode`\^^?=15 % ascii delete is invalid % \catcode`\A=11 ... \catcode`\Z=11 % uppercase letters % \catcode`\a=11 ... \catcode`\z=11 % lowercase letters % all others are type 12 (other) % Here is a list of the characters that have been specially catcoded: \def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\_\do\%\do\~} % (not counting ascii null, tab, linefeed, formfeed, return, delete) % Each symbol in the list is preceded by \do, which can be defined % if you want to do something to every item in the list. % We make @ signs act like letters, temporarily, to avoid conflict % between user names and internal control sequences of plain format. \catcode`@=11 % INITEX sets up \mathcode x=x, for x=0..255, except that % \mathcode x=x+"7100, for x = `A to `Z and `a to `z; % \mathcode x=x+"7000, for x = `0 to `9. % The following changes define internal codes as recommended % in Appendix C of The TeXbook: \mathcode`\ ="8000 % \space \mathcode`\!="5021 \mathcode`\'="8000 % ^\prime \mathcode`\(="4028 \mathcode`\)="5029 \mathcode`\*="2203 % \ast \mathcode`\+="202B \mathcode`\,="613B \mathcode`\-="2200 \mathcode`\.="013A \mathcode`\/="013D \mathcode`\:="303A \mathcode`\;="603B \mathcode`\<="313C \mathcode`\=="303D \mathcode`\>="313E \mathcode`\?="503F \mathcode`\[="405B \mathcode`\\="026E % \backslash \mathcode`\]="505D \mathcode`\_="8000 % \_ \mathcode`\{="4266 \mathcode`\|="026A \mathcode`\}="5267 % INITEX sets \uccode`x=`X and \uccode `X=`X for all letters x, % and \lccode`x=`x, \lccode`X=`x; all other values are zero. % No changes to those tables are needed in plain TeX format. % INITEX sets \sfcode x=1000 for all x, except that \sfcode`X=999 % for uppercase letters. The following changes are needed: \sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0 % The \nonfrenchspacing macro will make further changes to \sfcode values. % Finally, INITEX sets all \delcode values to -1, except \delcode`.=0 \delcode`\(="028300 \delcode`\)="029301 \delcode`\[="05B302 \delcode`\]="05D303 \delcode`\<="26830A \delcode`\>="26930B \delcode`\/="02F30E \delcode`\|="26A30C \delcode`\\="26E30F % N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! % To make the plain macros more efficient in time and space, % several constant values are declared here as control sequences. % If they were changed, anything could happen; so they are private symbols. \chardef\@ne=1 \chardef\tw@=2 \chardef\thr@@=3 \chardef\sixt@@n=16 \chardef\@cclv=255 \mathchardef\@cclvi=256 \mathchardef\@m=1000 \mathchardef\@M=10000 \mathchardef\@MM=20000 % Allocation of registers % Here are macros for the automatic allocation of \count, \box, \dimen, % \skip, \muskip, and \toks registers, as well as \read and \write % stream numbers, \fam codes, \language codes, and \insert numbers. \message{registers,} % When a register is used only temporarily, it need not be allocated; % grouping can be used, making the value previously in the register return % after the close of the group. The main use of these macros is for % registers that are defined by one macro and used by others, possibly at % different nesting levels. All such registers should be defined through % these macros; otherwise conflicts may occur, especially when two or more % more macro packages are being used at once. % The following counters are reserved: % 0 to 9 page numbering % 10 count allocation % 11 dimen allocation % 12 skip allocation % 13 muskip allocation % 14 box allocation % 15 toks allocation % 16 read file allocation % 17 write file allocation % 18 math family allocation % 19 language allocation % 20 insert allocation % 21 the most recently allocated number % 22 constant -1 % New counters are allocated starting with 23, 24, etc. Other registers are % allocated starting with 10. This leaves 0 through 9 for the user to play % with safely, except that counts 0 to 9 are considered to be the page and % subpage numbers (since they are displayed during output). In this scheme, % \count 10 always contains the number of the highest-numbered counter that % has been allocated, \count 14 the highest-numbered box, etc. % Inserts are given numbers 254, 253, etc., since they require a \count, % \dimen, \skip, and \box all with the same number; \count 20 contains the % lowest-numbered insert that has been allocated. Of course, \box255 is % reserved for \output; \count255, \dimen255, and \skip255 can be used freely. % It is recommended that macro designers always use % \global assignments with respect to registers numbered 1, 3, 5, 7, 9, and % always non-\global assignments with respect to registers 0, 2, 4, 6, 8, 255. % This will prevent ``save stack buildup'' that might otherwise occur. \count10=22 % allocates \count registers 23, 24, ... \count11=9 % allocates \dimen registers 10, 11, ... \count12=9 % allocates \skip registers 10, 11, ... \count13=9 % allocates \muskip registers 10, 11, ... \count14=9 % allocates \box registers 10, 11, ... \count15=9 % allocates \toks registers 10, 11, ... \count16=-1 % allocates input streams 0, 1, ... \count17=-1 % allocates output streams 0, 1, ... \count18=3 % allocates math families 4, 5, ... \count19=0 % allocates \language codes 1, 2, ... \count20=255 % allocates insertions 254, 253, ... \countdef\insc@unt=20 % the insertion counter \countdef\allocationnumber=21 % the most recent allocation \countdef\m@ne=22 \m@ne=-1 % a handy constant \def\wlog{\immediate\write\m@ne} % write on log file (only) % Here are abbreviations for the names of scratch registers % that don't need to be allocated. \countdef\count@=255 \dimendef\dimen@=0 \dimendef\dimen@i=1 % global only \dimendef\dimen@ii=2 \skipdef\skip@=0 \toksdef\toks@=0 % Now, we define \newcount, \newbox, etc. so that you can say \newcount\foo % and \foo will be defined (with \countdef) to be the next counter. % To find out which counter \foo is, you can look at \allocationnumber. % Since there's no \boxdef command, \chardef is used to define a \newbox, % \newinsert, \newfam, and so on. % LaTeX change: remove \outer from \newcount and \newdimen (FMi) % This is necessary to use \newcount inside \if... % later on. \def\newcount{\alloc@0\count\countdef\insc@unt} \def\newdimen{\alloc@1\dimen\dimendef\insc@unt} \outer\def\newskip{\alloc@2\skip\skipdef\insc@unt} \outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi} \outer\def\newbox{\alloc@4\box\chardef\insc@unt} \let\newtoks=\relax % we do this to allow plain.tex to be read in twice \outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}} \outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi} \outer\def\newread{\alloc@6\read\chardef\sixt@@n} \outer\def\newwrite{\alloc@7\write\chardef\sixt@@n} \outer\def\newfam{\alloc@8\fam\chardef\sixt@@n} \outer\def\newlanguage{\alloc@9\language\chardef\@cclvi} \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne \ch@ck#1#4#2% make sure there's still room \allocationnumber=\count1#1% \global#3#5=\allocationnumber \wlog{\string#5=\string#2\the\allocationnumber}} \outer\def\newinsert#1{\global\advance\insc@unt by\m@ne \ch@ck0\insc@unt\count \ch@ck1\insc@unt\dimen \ch@ck2\insc@unt\skip \ch@ck4\insc@unt\box \allocationnumber=\insc@unt \global\chardef#1=\allocationnumber \wlog{\string#1=\string\insert\the\allocationnumber}} \def\ch@ck#1#2#3{\ifnum\count1#1<#2% \else\errmessage{No room for a new #3}\fi} % Here are some examples of allocation. \newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal \newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow % LaTeX change: the PLAIN \centering dimension conflicts with % LaTeX's \centering command, so it is redefined to \@centering. % This dimension is used by LaTeX. \newskip\@centering \@centering=0pt plus 1000pt minus 1000pt \newdimen\p@ \p@=1pt % this saves macro space and time \newdimen\z@ \z@=0pt % can be used both for 0pt and 0 \newskip\z@skip \z@skip=0pt plus0pt minus0pt \newbox\voidb@x % permanently void box register % And here's a different sort of allocation: % For example, \newif\iffoo creates \footrue, \foofalse to go with \iffoo. \outer\def\newif#1{\count@\escapechar \escapechar\m@ne \expandafter\expandafter\expandafter \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% \expandafter\expandafter\expandafter \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% \@if#1{false}\escapechar\count@} % the condition starts out false \def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname} {\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required \message{compatibility for TeX 2, } % If this file is used in an old TeX we define the new features % of TeX 3.0 as simple macros or counters so that files that uses % these features can be processed in such an environment % (They will however produce some other results). \ifx\undefined\inputlineno \newcount\inputlineno \inputlineno-1 % this could be used to detect that % an old TeX is in force \ifx\undefined\language % extra test for MLTeX 2, RmS 91/11/07 \newcount\language \fi \newcount\lefthyphenmin \newcount\righthyphenmin \newcount\errorcontextlines \newcount\holdinginserts \newdimen\emergencystretch \newcount\badness \let\noboundary\relax \newcount\setlanguage \fi % Assign initial values to TeX's parameters \message{parameters,} % All of TeX's numeric parameters are listed here, % but the code is commented out if no special value needs to be set. % INITEX makes all parameters zero except where noted. \pretolerance=100 \tolerance=200 % INITEX sets this to 10000 \hbadness=1000 \vbadness=1000 \linepenalty=10 \hyphenpenalty=50 \exhyphenpenalty=50 \binoppenalty=700 \relpenalty=500 \clubpenalty=150 \widowpenalty=150 \displaywidowpenalty=50 \brokenpenalty=100 \predisplaypenalty=10000 % \postdisplaypenalty=0 % \interlinepenalty=0 % \floatingpenalty=0, set during \insert % \outputpenalty=0, set before TeX enters \output \doublehyphendemerits=10000 \finalhyphendemerits=5000 \adjdemerits=10000 % \looseness=0, cleared by TeX after each paragraph % \pausing=0 % \holdinginserts=0 % \tracingonline=0 % \tracingmacros=0 % \tracingstats=0 % \tracingparagraphs=0 % \tracingpages=0 % \tracingoutput=0 \tracinglostchars=1 % \tracingcommands=0 % \tracingrestores=0 % \language=0 \uchyph=1 % \lefthyphenmin=2 \righthyphenmin=3 set below % \globaldefs=0 % \maxdeadcycles=25 % INITEX does this % \hangafter=1 % INITEX does this, also TeX after each paragraph % \fam=0 % \mag=1000 % INITEX does this % \escapechar=`\\ % INITEX does this \defaulthyphenchar=`\- \defaultskewchar=-1 % \endlinechar=`\^^M % INITEX does this \newlinechar=-1 \delimiterfactor=901 % \time=now % TeX does this at beginning of job % \day=now % TeX does this at beginning of job % \month=now % TeX does this at beginning of job % \year=now % TeX does this at beginning of job \showboxbreadth=5 \showboxdepth=3 \errorcontextlines=5 \hfuzz=0.1pt \vfuzz=0.1pt \overfullrule=5pt \hsize=6.5in \vsize=8.9in \maxdepth=4pt \splitmaxdepth=\maxdimen \boxmaxdepth=\maxdimen % \lineskiplimit=0pt, changed by \normalbaselines \delimitershortfall=5pt \nulldelimiterspace=1.2pt \scriptspace=0.5pt % \mathsurround=0pt % \predisplaysize=0pt, set before TeX enters $$ % \displaywidth=0pt, set before TeX enters $$ % \displayindent=0pt, set before TeX enters $$ \parindent=20pt % \hangindent=0pt, zeroed by TeX after each paragraph % \hoffset=0pt % \voffset=0pt % \baselineskip=0pt, changed by \normalbaselines % \lineskip=0pt, changed by \normalbaselines \parskip=0pt plus 1pt \abovedisplayskip=12pt plus 3pt minus 9pt \abovedisplayshortskip=0pt plus 3pt \belowdisplayskip=12pt plus 3pt minus 9pt \belowdisplayshortskip=7pt plus 3pt minus 4pt % \leftskip=0pt % \rightskip=0pt \topskip=10pt \splittopskip=10pt % \tabskip=0pt % \spaceskip=0pt % \xspaceskip=0pt \parfillskip=0pt plus 1fil \thinmuskip=3mu \medmuskip=4mu plus 2mu minus 4mu \thickmuskip=5mu plus 5mu % We also define special registers that function like parameters: \newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt \newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt \newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt \newskip\normalbaselineskip \normalbaselineskip=12pt \newskip\normallineskip \normallineskip=1pt \newdimen\normallineskiplimit \normallineskiplimit=0pt \newdimen\jot \jot=3pt \newcount\interdisplaylinepenalty \interdisplaylinepenalty=100 \newcount\interfootnotelinepenalty \interfootnotelinepenalty=100 % Definitions for preloaded fonts \def\magstephalf{1095 } \def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax} % Fonts assigned to \preloaded are not part of "plain TeX", % but they are preloaded so that other format packages can use them. % For example, if another set of macros says "\font\ninerm=cmr9", % TeX will not have to reload the font metric information for cmr9. % LaTeX font definitions are taken from the file LFONTS.TEX, % so all of PLAIN's font definitions are commented out. %\message{fonts,} % %\font\tenrm=cmr10 % roman text %\font\preloaded=cmr9 %\font\preloaded=cmr8 %\font\sevenrm=cmr7 %\font\preloaded=cmr6 %\font\fiverm=cmr5 % %\font\teni=cmmi10 % math italic %\font\preloaded=cmmi9 %\font\preloaded=cmmi8 %\font\seveni=cmmi7 %\font\preloaded=cmmi6 %\font\fivei=cmmi5 % %\font\tensy=cmsy10 % math symbols %\font\preloaded=cmsy9 %\font\preloaded=cmsy8 %\font\sevensy=cmsy7 %\font\preloaded=cmsy6 %\font\fivesy=cmsy5 % %\font\tenex=cmex10 % math extension % %\font\preloaded=cmss10 % sans serif %\font\preloaded=cmssq8 % %\font\preloaded=cmssi10 % sans serif italic %\font\preloaded=cmssqi8 % %\font\tenbf=cmbx10 % boldface extended %\font\preloaded=cmbx9 %\font\preloaded=cmbx8 %\font\sevenbf=cmbx7 %\font\preloaded=cmbx6 %\font\fivebf=cmbx5 % %\font\tentt=cmtt10 % typewriter %\font\preloaded=cmtt9 %\font\preloaded=cmtt8 % %\font\preloaded=cmsltt10 % slanted typewriter % %\font\tensl=cmsl10 % slanted roman %\font\preloaded=cmsl9 %\font\preloaded=cmsl8 % %\font\tenit=cmti10 % text italic %\font\preloaded=cmti9 %\font\preloaded=cmti8 %\font\preloaded=cmti7 % %\message{more fonts,} %\font\preloaded=cmu10 % unslanted text italic % %\font\preloaded=cmmib10 % bold math italic %\font\preloaded=cmbsy10 % bold math symbols % %\font\preloaded=cmcsc10 % caps and small caps % %\font\preloaded=cmssbx10 % sans serif bold extended % %\font\preloaded=cmdunh10 % Dunhill style % %\font\preloaded=cmr7 scaled \magstep4 % for titles %\font\preloaded=cmtt10 scaled \magstep2 %\font\preloaded=cmssbx10 scaled \magstep2 % %\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols % %% Additional \preloaded fonts can be specified here. %% (And those that were \preloaded above can be eliminated.) % %\let\preloaded=\undefined % preloaded fonts must be declared anew later. % %\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177 %\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60 % %\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm %\def\rm{\fam\z@\tenrm} %\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei %\def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni} %\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy %\def\cal{\fam\tw@} %\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex %\newfam\itfam \def\it{\fam\itfam\tenit} % \it is family 4 %\textfont\itfam=\tenit %\newfam\slfam \def\sl{\fam\slfam\tensl} % \sl is family 5 %\textfont\slfam=\tensl %\newfam\bffam \def\bf{\fam\bffam\tenbf} % \bf is family 6 %\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf %\scriptscriptfont\bffam=\fivebf %\newfam\ttfam \def\tt{\fam\ttfam\tentt} % \tt is family 7 %\textfont\ttfam=\tentt % Macros for setting ordinary text \message{macros,} \def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m} \def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000% \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 } \def\normalbaselines{\lineskip\normallineskip \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit} \def\^^M{\ } % control = control \def\^^I{\ } % same for \def\lq{`} \def\rq{'} \def\lbrack{[} \def\rbrack{]} \let\endgraf=\par \let\endline=\cr \def\space{ } \def\empty{} \def\null{\hbox{}} \let\bgroup={ \let\egroup=} % In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}' % since this allows, for example, `\let\par=\cr \obeylines \halign{...' {\catcode`\^^M=\active % these lines must end with % \gdef\obeylines{\catcode`\^^M\active \let^^M\par}% \global\let^^M\par} % this is in case ^^M appears in a \write \def\obeyspaces{\catcode`\ \active} {\obeyspaces\global\let =\space} \def\loop#1\repeat{\def\body{#1}\iterate} \def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next} \let\repeat=\fi % this makes \loop...\if...\repeat skippable \def\thinspace{\kern .16667em } \def\negthinspace{\kern-.16667em } \def\enspace{\kern.5em } \def\enskip{\hskip.5em\relax} \def\quad{\hskip1em\relax} \def\qquad{\hskip2em\relax} \def\smallskip{\vskip\smallskipamount} \def\medskip{\vskip\medskipamount} \def\bigskip{\vskip\bigskipamount} \def\nointerlineskip{\prevdepth-1000\p@} \def\offinterlineskip{\baselineskip-1000\p@ \lineskip\z@ \lineskiplimit\maxdimen} \def\vglue{\afterassignment\vgl@\skip@=} \def\vgl@{\par \dimen@\prevdepth \hrule height\z@ \nobreak\vskip\skip@ \prevdepth\dimen@} \def\hglue{\afterassignment\hgl@\skip@=} \def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@ \nobreak\hskip\skip@ \spacefactor\count@} \def~{\penalty\@M \ } % tie \def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-' \def\break{\penalty-\@M} \def\nobreak{\penalty \@M} \def\allowbreak{\penalty \z@} \def\filbreak{\par\vfil\penalty-200\vfilneg} \def\goodbreak{\par\penalty-500 } \def\eject{\par\break} \def\supereject{\par\penalty-\@MM} \def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi} \def\smallbreak{\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi} \def\medbreak{\par\ifdim\lastskip<\medskipamount \removelastskip\penalty-100\medskip\fi} \def\bigbreak{\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi} % \line changed to \@@line because LaTeX redefines \line \def\@@line{\hbox to\hsize} \def\leftline#1{\@@line{#1\hss}} \def\rightline#1{\@@line{\hss#1}} \def\centerline#1{\@@line{\hss#1\hss}} % end of LaTeX \line -> \@@line change \def\rlap#1{\hbox to\z@{#1\hss}} \def\llap#1{\hbox to\z@{\hss#1}} \def\m@th{\mathsurround=\z@} \def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@ \m@th \underline{\box\z@}$} \newbox\strutbox \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@} \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} \def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out \def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign \newcount\mscount \def\multispan#1{\omit \mscount#1\relax \loop\ifnum\mscount>\@ne \sp@n\repeat} \def\sp@n{\span\omit\advance\mscount\m@ne} % LaTeX has its own tabbing environment, so PLAIN's is disabled. % %\newif\ifus@ \newif\if@cr %\newbox\tabs \newbox\tabsyet \newbox\tabsdone % %\def\cleartabs{\global\setbox\tabsyet\null \setbox\tabs\null} %\def\settabs{\setbox\tabs\null \futurelet\next\sett@b} %\let\+=\relax % in case this file is being read in twice %\def\sett@b{\ifx\next\+\let\next\relax % \def\next{\afterassignment\s@tt@b\let\next}% % \else\let\next\s@tcols\fi\next} %\def\s@tt@b{\let\next\relax\us@false\m@ketabbox} %\def\tabalign{\us@true\m@ketabbox} % non-\outer version of \+ %\outer\def\+{\tabalign} %\def\s@tcols#1\columns{\count@#1 \dimen@\hsize % \loop\ifnum\count@>\z@ \@nother \repeat} %\def\@nother{\dimen@ii\dimen@ \divide\dimen@ii\count@ % \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}% % \advance\dimen@-\dimen@ii \advance\count@\m@ne} % %\def\m@ketabbox{\begingroup % \global\setbox\tabsyet\copy\tabs % \global\setbox\tabsdone\null % \def\cr{\@crtrue\crcr\egroup\egroup % \ifus@\unvbox\z@\lastbox\fi\endgroup % \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}% % \setbox\z@\vbox\bgroup\@crfalse % \ialign\bgroup&\t@bbox##\t@bb@x\crcr} % %\def\t@bbox{\setbox\z@\hbox\bgroup} %\def\t@bb@x{\if@cr\egroup % now \box\z@ holds the column % \else\hss\egroup \global\setbox\tabsyet\hbox{\unhbox\tabsyet % \global\setbox\@ne\lastbox}% now \box\@ne holds its size % \ifvoid\@ne\global\setbox\@ne\hbox to\wd\z@{}% % \else\setbox\z@\hbox to\wd\@ne{\unhbox\z@}\fi % \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}\fi % \box\z@} \def\hang{\hangindent\parindent} \def\textindent#1{\indent\llap{#1\enspace}\ignorespaces} \def\item{\par\hang\textindent} %% RmS 91/11/04: Removed \itemitem since never needed/useful on LaTeX. %\def\itemitem{\par\indent \hangindent2\parindent \textindent} \def\narrower{\advance\leftskip\parindent \advance\rightskip\parindent} % LaTeX has its own sectioning macros %\outer\def\beginsection#1\par{\vskip\z@ plus.3\vsize\penalty-250 % \vskip\z@ plus-.3\vsize\bigskip\vskip\parskip % \message{#1}\leftline{\bf#1}\nobreak\smallskip\noindent} \outer\def\proclaim #1. #2\par{\medbreak \noindent{\bf#1.\enspace}{\sl#2\par}% \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi} \def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax} \def\ttraggedright{\tt\rightskip\z@ plus2em\relax} % for use with \tt only \chardef\%=`\% \chardef\&=`\& \chardef\#=`\# \chardef\$=`\$ \chardef\ss="19 \chardef\ae="1A \chardef\oe="1B \chardef\o="1C \chardef\AE="1D \chardef\OE="1E \chardef\O="1F \chardef\i="10 \chardef\j="11 % dotless letters \def\aa{\accent23a} \def\l{\char32l} \def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}} \def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary \def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}} \def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% \rlap{\raise.67\dimen@\hbox{\char'27}}A} \def\mathhexbox#1#2#3{\leavevmode \hbox{$\m@th \mathchar"#1#2#3$}} \def\dag{\mathhexbox279} \def\ddag{\mathhexbox27A} \def\S{\mathhexbox278} \def\P{\mathhexbox27B} \def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% \ialign{##\crcr#1\crcr}}} % put characters over each other \def\ooalign{\lineskiplimit-\maxdimen \oalign} % LaTeX change: \d, \b, \c redefined to work in a moving argument. \def\pd#1{\oalign{#1\crcr\hidewidth.\hidewidth}} \def\d{\protect\pd} \def\pb#1{\oalign{#1\crcr\hidewidth \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}} \def\b{\protect\pb} \def\pc#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} \def\c{\protect\pc} % end of LaTeX change to \d, \b, \c \def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}} % LaTeX change: \ldots is redefined to do essentially what Plain's \dots does, % so ... \def\dots{\ldots} \def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX} \def\`#1{{\accent18 #1}} \def\'#1{{\accent19 #1}} \def\v#1{{\accent20 #1}} \let\^^_=\v \def\u#1{{\accent21 #1}} \let\^^S=\u \def\=#1{{\accent22 #1}} \def\^#1{{\accent94 #1}} \let\^^D=\^ \def\.#1{{\accent95 #1}} \def\H#1{{\accent"7D #1}} \def\~#1{{\accent"7E #1}} \def\"#1{{\accent"7F #1}} % LaTeX change: Make \t work in a moving argument. \def\pt#1{{\edef\next{\the\font}\the\textfont1\accent"7F\next#1}} \def\t{\protect\pt} % LaTeX change: \kern\z@ added to end of \hrulefill and \dotfill % to make them work in `tabular' and `array' environments. % (Change made 24 July 1987). \def\hrulefill{\leaders\hrule\hfill\kern\z@} \def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill\kern\z@} \def\rightarrowfill{$\m@th\mathord-\mkern-6mu% \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill \mkern-6mu\mathord\rightarrow$} \def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu% \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill \mkern-6mu\mathord-$} \mathchardef\braceld="37A \mathchardef\bracerd="37B \mathchardef\bracelu="37C \mathchardef\braceru="37D \def\downbracefill{$\m@th\braceld\leaders\vrule\hfill\braceru \bracelu\leaders\vrule\hfill\bracerd$} \def\upbracefill{$\m@th\bracelu\leaders\vrule\hfill\bracerd \braceld\leaders\vrule\hfill\braceru$} % LaTeX change: \bye is eliminated. %\outer\def\bye{\par\vfill\supereject\end} % Macros for math setting \message{math definitions,} \let\sp=^ \let\sb=_ \def\,{\mskip\thinmuskip} \def\>{\mskip\medmuskip} \def\;{\mskip\thickmuskip} \def\!{\mskip-\thinmuskip} \def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} {\catcode`\'=\active \gdef'{^\bgroup\prim@s}} \def\prim@s{\prime\futurelet\next\pr@m@s} \def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t \else\let\nxt\egroup\fi\fi \nxt} \def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup} {\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math {\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_ \mathchardef\alpha="010B \mathchardef\beta="010C \mathchardef\gamma="010D \mathchardef\delta="010E \mathchardef\epsilon="010F \mathchardef\zeta="0110 \mathchardef\eta="0111 \mathchardef\theta="0112 \mathchardef\iota="0113 \mathchardef\kappa="0114 \mathchardef\lambda="0115 \mathchardef\mu="0116 \mathchardef\nu="0117 \mathchardef\xi="0118 \mathchardef\pi="0119 \mathchardef\rho="011A \mathchardef\sigma="011B \mathchardef\tau="011C \mathchardef\upsilon="011D \mathchardef\phi="011E \mathchardef\chi="011F \mathchardef\psi="0120 \mathchardef\omega="0121 \mathchardef\varepsilon="0122 \mathchardef\vartheta="0123 \mathchardef\varpi="0124 \mathchardef\varrho="0125 \mathchardef\varsigma="0126 \mathchardef\varphi="0127 \mathchardef\Gamma="7000 \mathchardef\Delta="7001 \mathchardef\Theta="7002 \mathchardef\Lambda="7003 \mathchardef\Xi="7004 \mathchardef\Pi="7005 \mathchardef\Sigma="7006 \mathchardef\Upsilon="7007 \mathchardef\Phi="7008 \mathchardef\Psi="7009 \mathchardef\Omega="700A \mathchardef\aleph="0240 \def\hbar{{\mathchar'26\mkern-9muh}} \mathchardef\imath="017B \mathchardef\jmath="017C \mathchardef\ell="0160 \mathchardef\wp="017D \mathchardef\Re="023C \mathchardef\Im="023D \mathchardef\partial="0140 \mathchardef\infty="0231 \mathchardef\prime="0230 \mathchardef\emptyset="023B \mathchardef\nabla="0272 \def\surd{{\mathchar"1270}} \mathchardef\top="023E \mathchardef\bot="023F \def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr \not\mathrel{\mkern14mu}\crcr \noalign{\nointerlineskip} \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}} \mathchardef\triangle="0234 \mathchardef\forall="0238 \mathchardef\exists="0239 \mathchardef\neg="023A \let\lnot=\neg \mathchardef\flat="015B \mathchardef\natural="015C \mathchardef\sharp="015D \mathchardef\clubsuit="027C \mathchardef\diamondsuit="027D \mathchardef\heartsuit="027E \mathchardef\spadesuit="027F \mathchardef\coprod="1360 \mathchardef\bigvee="1357 \mathchardef\bigwedge="1356 \mathchardef\biguplus="1355 \mathchardef\bigcap="1354 \mathchardef\bigcup="1353 \mathchardef\intop="1352 \def\int{\intop\nolimits} \mathchardef\prod="1351 \mathchardef\sum="1350 \mathchardef\bigotimes="134E \mathchardef\bigoplus="134C \mathchardef\bigodot="134A \mathchardef\ointop="1348 \def\oint{\ointop\nolimits} \mathchardef\bigsqcup="1346 \mathchardef\smallint="1273 \mathchardef\triangleleft="212F \mathchardef\triangleright="212E \mathchardef\bigtriangleup="2234 \mathchardef\bigtriangledown="2235 \mathchardef\wedge="225E \let\land=\wedge \mathchardef\vee="225F \let\lor=\vee \mathchardef\cap="225C \mathchardef\cup="225B \mathchardef\ddagger="227A \mathchardef\dagger="2279 \mathchardef\sqcap="2275 \mathchardef\sqcup="2274 \mathchardef\uplus="225D \mathchardef\amalg="2271 \mathchardef\diamond="2205 \mathchardef\bullet="220F \mathchardef\wr="226F \mathchardef\div="2204 \mathchardef\odot="220C \mathchardef\oslash="220B \mathchardef\otimes="220A \mathchardef\ominus="2209 \mathchardef\oplus="2208 \mathchardef\mp="2207 \mathchardef\pm="2206 \mathchardef\circ="220E \mathchardef\bigcirc="220D \mathchardef\setminus="226E % for set difference A\setminus B \mathchardef\cdot="2201 \mathchardef\ast="2203 \mathchardef\times="2202 \mathchardef\star="213F \mathchardef\propto="322F \mathchardef\sqsubseteq="3276 \mathchardef\sqsupseteq="3277 \mathchardef\parallel="326B \mathchardef\mid="326A \mathchardef\dashv="3261 \mathchardef\vdash="3260 \mathchardef\nearrow="3225 \mathchardef\searrow="3226 \mathchardef\nwarrow="322D \mathchardef\swarrow="322E \mathchardef\Leftrightarrow="322C \mathchardef\Leftarrow="3228 \mathchardef\Rightarrow="3229 \def\neq{\not=} \let\ne=\neq \mathchardef\leq="3214 \let\le=\leq \mathchardef\geq="3215 \let\ge=\geq \mathchardef\succ="321F \mathchardef\prec="321E \mathchardef\approx="3219 \mathchardef\succeq="3217 \mathchardef\preceq="3216 \mathchardef\supset="321B \mathchardef\subset="321A \mathchardef\supseteq="3213 \mathchardef\subseteq="3212 \mathchardef\in="3232 \mathchardef\ni="3233 \let\owns=\ni \mathchardef\gg="321D \mathchardef\ll="321C \mathchardef\not="3236 \mathchardef\leftrightarrow="3224 \mathchardef\leftarrow="3220 \let\gets=\leftarrow \mathchardef\rightarrow="3221 \let\to=\rightarrow \mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} \mathchardef\sim="3218 \mathchardef\simeq="3227 \mathchardef\perp="323F \mathchardef\equiv="3211 \mathchardef\asymp="3210 \mathchardef\smile="315E \mathchardef\frown="315F \mathchardef\leftharpoonup="3128 \mathchardef\leftharpoondown="3129 \mathchardef\rightharpoonup="312A \mathchardef\rightharpoondown="312B \def\joinrel{\mathrel{\mkern-3mu}} \def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as + \def\Relbar{\mathrel=} \mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow} \mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook} \def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft} \def\models{\mathrel|\joinrel=} \def\Longrightarrow{\Relbar\joinrel\Rightarrow} % LaTeX Change: \longrightarrow and \longleftarrow redefined to make % then robust. \def\longrightarrow{\protect\@lra} \def\@lra{\relbar\joinrel\rightarrow} \def\longleftarrow{\protect\@lla} \def\@lla{\leftarrow\joinrel\relbar} % End of LaTeX change to \longrightarrow and \longleftarrow \def\Longleftarrow{\Leftarrow\joinrel\Relbar} \def\longmapsto{\mapstochar\longrightarrow} \def\longleftrightarrow{\leftarrow\joinrel\rightarrow} \def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow} \def\iff{\;\Longleftrightarrow\;} \mathchardef\ldotp="613A % ldot as a punctuation mark \mathchardef\cdotp="6201 % cdot as a punctuation mark \mathchardef\colon="603A % colon as a punctuation mark % LaTeX change: make \ldots work outside math mode too. \def\@ldots{\mathinner{\ldotp\ldotp\ldotp}} \def\ldots{\protect\pldots} \def\pldots{\relax\ifmmode\@ldots\else\mbox{$\m@th\@ldots\,$}\fi} % End of LaTeX change to \ldots \def\cdots{\mathinner{\cdotp\cdotp\cdotp}} \def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ \kern6\p@\hbox{.}\hbox{.}\hbox{.}}} \def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}} \def\acute{\mathaccent"7013 } \def\grave{\mathaccent"7012 } \def\ddot{\mathaccent"707F } \def\tilde{\mathaccent"707E } \def\bar{\mathaccent"7016 } \def\breve{\mathaccent"7015 } \def\check{\mathaccent"7014 } \def\hat{\mathaccent"705E } \def\vec{\mathaccent"017E } \def\dot{\mathaccent"705F } \def\widetilde{\mathaccent"0365 } \def\widehat{\mathaccent"0362 } \def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}} \def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}} \def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@} \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits} \def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip} \upbracefill\crcr\noalign{\kern3\p@}}}}\limits} \def\skew#1#2#3{{#2{#3\mkern#1mu}\mkern-#1mu}{}} \def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) \def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( \def\lgroup{\delimiter"462833A } % extensible ( with sharper tips \def\rgroup{\delimiter"562933B } % extensible ) with sharper tips \def\arrowvert{\delimiter"26A33C } % arrow without arrowheads \def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads \def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces \def\Vert{\delimiter"26B30D } \let\|=\Vert \def\vert{\delimiter"26A30C } \def\uparrow{\delimiter"3222378 } \def\downarrow{\delimiter"3223379 } \def\updownarrow{\delimiter"326C33F } \def\Uparrow{\delimiter"322A37E } \def\Downarrow{\delimiter"322B37F } \def\Updownarrow{\delimiter"326D377 } \def\backslash{\delimiter"26E30F } % for double coset G\backslash H \def\rangle{\delimiter"526930B } \def\langle{\delimiter"426830A } \def\rbrace{\delimiter"5267309 } \let\}=\rbrace \def\lbrace{\delimiter"4266308 } \let\{=\lbrace \def\rceil{\delimiter"5265307 } \def\lceil{\delimiter"4264306 } \def\rfloor{\delimiter"5263305 } \def\lfloor{\delimiter"4262304 } \def\bigl{\mathopen\big} \def\bigm{\mathrel\big} \def\bigr{\mathclose\big} \def\Bigl{\mathopen\Big} \def\Bigm{\mathrel\Big} \def\Bigr{\mathclose\Big} \def\biggl{\mathopen\bigg} \def\biggm{\mathrel\bigg} \def\biggr{\mathclose\bigg} \def\Biggl{\mathopen\Bigg} \def\Biggm{\mathrel\Bigg} \def\Biggr{\mathclose\Bigg} \def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} \def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} \def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} \def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} \def\n@space{\nulldelimiterspace\z@ \m@th} \def\choose{\atopwithdelims()} \def\brack{\atopwithdelims[]} \def\brace{\atopwithdelims\{\}} \def\sqrt{\radical"270370 } \def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}% {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}} \newbox\rootbox \def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$} \mathpalette\r@@t} \def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$} \dimen@\ht\z@ \advance\dimen@-\dp\z@ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@} \newif\ifv@ \newif\ifh@ \def\vphantom{\v@true\h@false\ph@nt} \def\hphantom{\v@false\h@true\ph@nt} \def\phantom{\v@true\h@true\ph@nt} \def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}% \else\let\next\makeph@nt\fi\next} \def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt} \def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt} \def\finph@nt{\setbox\tw@\null \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi \ifh@ \wd\tw@\wd\z@\fi \box\tw@} \def\mathstrut{\vphantom(} \def\smash{\relax % \relax, in case this comes first in \halign \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh \fi\next} \def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh} \def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh} \def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@} \def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign \def\@vereq#1#2{\lower.5\p@\vbox{\baselineskip\z@skip\lineskip-.5\p@ \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}} \def\notin{\mathrel{\m@th\mathpalette\c@ncel\in}} \def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}} \def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}} \def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt \hbox{$#1\rightharpoonup$}\crcr $#1\leftharpoondown$}}}} \def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}} \def\doteq{\buildrel\textstyle.\over=} \def\log{\mathop{\rm log}\nolimits} \def\lg{\mathop{\rm lg}\nolimits} \def\ln{\mathop{\rm ln}\nolimits} \def\lim{\mathop{\rm lim}} \def\limsup{\mathop{\rm lim\,sup}} \def\liminf{\mathop{\rm lim\,inf}} \def\sin{\mathop{\rm sin}\nolimits} \def\arcsin{\mathop{\rm arcsin}\nolimits} \def\sinh{\mathop{\rm sinh}\nolimits} \def\cos{\mathop{\rm cos}\nolimits} \def\arccos{\mathop{\rm arccos}\nolimits} \def\cosh{\mathop{\rm cosh}\nolimits} \def\tan{\mathop{\rm tan}\nolimits} \def\arctan{\mathop{\rm arctan}\nolimits} \def\tanh{\mathop{\rm tanh}\nolimits} \def\cot{\mathop{\rm cot}\nolimits} \def\coth{\mathop{\rm coth}\nolimits} \def\sec{\mathop{\rm sec}\nolimits} \def\csc{\mathop{\rm csc}\nolimits} \def\max{\mathop{\rm max}} \def\min{\mathop{\rm min}} \def\sup{\mathop{\rm sup}} \def\inf{\mathop{\rm inf}} \def\arg{\mathop{\rm arg}\nolimits} \def\ker{\mathop{\rm ker}\nolimits} \def\dim{\mathop{\rm dim}\nolimits} \def\hom{\mathop{\rm hom}\nolimits} \def\det{\mathop{\rm det}} \def\exp{\mathop{\rm exp}\nolimits} \def\Pr{\mathop{\rm Pr}} \def\gcd{\mathop{\rm gcd}} \def\deg{\mathop{\rm deg}\nolimits} \def\bmod{\mskip-\medmuskip\mkern5mu \mathbin{\rm mod}\penalty900\mkern5mu\mskip-\medmuskip} \def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)} %% RmS 91/08/14 inserted extra braces around entry for NFSS \def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\right.} \def\matrix#1{\null\,\vcenter{\normalbaselines\m@th \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr \mathstrut\crcr\noalign{\kern-\baselineskip} #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,} \def\pmatrix#1{\left(\matrix{#1}\right)} \newdimen\p@renwd % LaTeX: following command is moved after the \tenex font is defined % by LFONTS %\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( \def\bordermatrix#1{\begingroup \m@th \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}% \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil &&\quad\hfil$##$\hfil\crcr \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}% #1\crcr\omit\strut\cr}}% \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne \global\setbox\@ne\vbox{\box\@ne\kern2\p@}% \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}% \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup} \def\openup{\afterassignment\@penup\dimen@=} \def\@penup{\advance\lineskip\dimen@ \advance\baselineskip\dimen@ \advance\lineskiplimit\dimen@} % LaTeX change: \eqalign eliminated, since it is replaced by the % eqnarray environment. % %\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th % \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil % \crcr#1\crcr}}\,} \newif\ifdt@p \def\displ@y{\global\dt@ptrue\openup\jot\m@th \everycr{\noalign{\ifdt@p \global\dt@pfalse \vskip-\lineskiplimit \vskip\normallineskiplimit \else \penalty\interdisplaylinepenalty \fi}}} \def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y \def\displaylines#1{\displ@y \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr #1\crcr}} % LaTeX: The following \eqalign type macros are eliminated, since % they are replaced by the eqnarray environment. % %\def\eqalignno#1{\displ@y \tabskip\centering % \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip % &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering % &\llap{$\@lign##$}\tabskip\z@skip\crcr % #1\crcr}} %\def\leqalignno#1{\displ@y \tabskip\centering % \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip % &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering % &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr % #1\crcr}} % Definitions related to output % LaTeX uses its own output routine % %\message{output routines,} % %\countdef\pageno=0 \pageno=1 % first page is number 1 %\newtoks\headline \headline={\hfil} % headline is normally blank %\newtoks\footline \footline={\hss\tenrm\folio\hss} % % footline is normally a centered page number in font \tenrm %\newif\ifr@ggedbottom %\def\raggedbottom{\topskip 10\p@ plus60\p@ \r@ggedbottomtrue} %\def\normalbottom{\topskip 10\p@ \r@ggedbottomfalse} % undoes \raggedbottom %\def\folio{\ifnum\pageno<\z@ \romannumeral-\pageno \else\number\pageno \fi} %\def\nopagenumbers{\footline{\hfil}} % blank out the footline %\def\advancepageno{\ifnum\pageno<\z@ \global\advance\pageno\m@ne % \else\global\advance\pageno\@ne \fi} % increase |pageno| % LaTeX does use the same insert for footnotes as PLAIN \newinsert\footins %\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later % \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi % #1\@sf\vfootnote{#1}} %\def\vfootnote#1{\insert\footins\bgroup % \interlinepenalty\interfootnotelinepenalty % \splittopskip\ht\strutbox % top baseline for broken footnotes % \splitmaxdepth\dp\strutbox \floatingpenalty\@MM % \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip % \textindent{#1}\footstrut\futurelet\next\fo@t} %\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t % \else\let\next\f@t\fi \next} %\def\f@@t{\bgroup\aftergroup\@foot\let\next} %\def\f@t#1{#1\@foot} %\def\@foot{\strut\egroup} %\def\footstrut{\vbox to\splittopskip{}} % LaTeX leaves these initializations for the \footins insert. % \skip\footins=\bigskipamount % space added when footnote is present \count\footins=1000 % footnote magnification factor (1 to 1) \dimen\footins=8in % maximum footnotes per page %\newinsert\topins %\newif\ifp@ge \newif\if@mid %\def\topinsert{\@midfalse\p@gefalse\@ins} %\def\midinsert{\@midtrue\@ins} %\def\pageinsert{\@midfalse\p@getrue\@ins} %\skip\topins=\z@skip % no space added when a topinsert is present %\count\topins=1000 % magnification factor (1 to 1) %\dimen\topins=\maxdimen % no limit per page %\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup} % start a \vbox %\def\endinsert{\egroup % finish the \vbox % \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen@12\p@ % \advance\dimen@\pagetotal \advance\dimen@-\pageshrink % \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi % \if@mid \bigskip\box\z@\bigbreak % \else\insert\topins{\penalty100 % floating insertion % \splittopskip\z@skip % \splitmaxdepth\maxdimen \floatingpenalty\z@ % \ifp@ge \dimen@\dp\z@ % \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero % \else \box\z@\nobreak\bigskip\fi}\fi\endgroup} %\output{\plainoutput} %\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% % \advancepageno % \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} %\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}} %\def\makeheadline{\vbox to\z@{\vskip-22.5\p@ % \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip} %\def\makefootline{\baselineskip24\p@\line{\the\footline}} %\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over % \line{}\kern-\topskip\nobreak\vfill\supereject\fi} % %\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi % \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255 % \ifvoid\footins\else % footnote info is present % \vskip\skip\footins % \footnoterule % \unvbox\footins\fi % \ifr@ggedbottom \kern-\dimen@ \vfil \fi} % LaTeX keeps PLAIN TeX's \footnoterule as the default % \def\footnoterule{\kern-3\p@ \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high % Hyphenation, miscellaneous macros, and initial values for standard layout \message{hyphenation} \lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks \input lhyphen % \magnification doesn't work in LaTeX % %\def\magnification{\afterassignment\m@g\count@} %\def\m@g{\mag\count@ % \hsize6.5truein\vsize8.9truein\dimen\footins8truein} %% FMi & RmS 91/08/26: added \errorcontextlines=\maxdimen, %% suggested by J. Schrod \def\tracingall{\tracingcommands\tw@\tracingstats\tw@ \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode \errorcontextlines\maxdimen\tracingonline\@ne} \def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}} % input LaTeX fonts and commands %% Initialize \reset@font for use with Old font selection \let\reset@font\empty \input lfonts \input latex % LaTeX change: moved from above. \setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( % RmS 91/06/21: clear \box0 \setbox0=\box\voidb@x % LaTeX: default values \normalbaselines % LaTeX: select 10pt font size and \rm style \xpt \nonfrenchspacing % punctuation affects the spacing \catcode`@=12 % at signs are no longer letters % LaTeX: File called LPLAIN % Identify the current format \def\fmtname{lplain}\def\fmtversion{2.09-March 25, 1992} \typeout{Input any local modifications here.} \endinput latex209-25.may.1992.orig/general/latex.tex100664 144 144 1072000 5166176400 17450 0ustar nakaharastaff% LATEX VERSION 2.09 <25 March 1992> % Copyright (C) 1992 by Leslie Lamport \everyjob{\typeout{LaTeX Version 2.09 <25 March 1992>}} \immediate\write10{LaTeX Version 2.09 <25 March 1992>} % TABLE OF CONTENTS % COMMAND LIST ......................................... 2 % GENERAL CONVENTIONS .................................. 6 % COUNTERS, ETC. ....................................... 7 % USEFUL HACKS ......................................... 8 % ERROR HANDLING ....................................... 12 % \par AND \everypar ................................... 15 % SPACING / LINE AND PAGE BREAKING ..................... 17 % PROGRAM CONTROL STRUCTURE MACROS ..................... 21 % FILE HANDLING ........................................ 24 % ENVIRONMENT COUNTER MACROS ........................... 27 % PAGE NUMBERING ....................................... 30 % CROSS REFERENCING MACROS ............................ 31 % ENVIRONMENTS ......................................... 33 % MATH ENVIRONMENTS .................................... 36 % CENTER, FLUSHRIGHT, FLUSHLEFT, ETC. .................. 39 % VERBATIM ............................................. 40 % THE LIST ENVIRONMENT ................................. 41 % ITEMIZE AND ENUMERATE ................................ 49 % BOXES ................................................ 51 % THE TABBING ENVIRONMENT .............................. 57 % ARRAY AND TABULAR ENVIRONMENTS ....................... 63 % THE PICTURE ENVIRONMENT .............................. 72 % THEOREM ENVIRONMENTS ................................. 86 % LENGTHS .............................................. 88 % THE TITLE .............................................89 % SECTIONING ........................................... 90 % TABLE OF CONTENTS, ETC. .............................. 94 % INDEX COMMANDS ....................................... 97 % BIBLIOGRAPHY ......................................... 98 % FLOATS .............................................. 100 % FOOTNOTES ........................................... 106 % INITIAL DECLARATION COMMANDS ........................ 110 % OUTPUT .............................................. 113 % DEBUGGING AND TEST INITIALIZATIONS ................. 137 \catcode`\~=13 \def~{\penalty\@M \ } % **************************************** % * COMMAND LIST * % **************************************** % % DECLARATIONS: % PREAMBLE: \nofiles \documentstyle \includeonly % \makeindex \makeglossary % IN DOCUMENT : % FONT SELECTION: % SIZE: \normalsize \small \footnotesize \scriptsize \tiny % \large \Large \LARGE \huge \Huge % STYLE: \bf \it \rm \sl \ss \tt \mit[math mode only] % STYLE: % PAGE: [all global] \pagestyle \thispagestyle \pagenumbering \head % MISC: \raggedright \thicklines \thinlines % PARAMETER: \setlength \settowidth \addtolength \setcounter \addtocounter % NEW: \newlength \newtheorem \newcommand % MISC: \savebox \sbox \obeycr \restorecr % % ENVIRONMENTS: % ? -> PAR: document % PAR -> PAR: list enumerate itemize description % center flushright flushleft % verbatim picture float % PAR -> BOX: tabular tabbing % PAR -> MATH: math displaymath equation % MATH -> MATH: array % ANY -> PAR: minipage % ANY -> BOX: stack % % TEXT-PRODUCING: % WITH TEXT ARGUMENT: % ANY -> BOX: \makebox \mbox \framebox \fbox \dashbox % \shortstack \footnotemark \cite[] \raisebox % ANY -> PAR: \parbox[inner] % PAR -> PAR: \chapter \section ... \footnote \footnotetext % \topnewpage \verb % MATH: \sqrt \underline \overline % PICTURE: \put \multiput % LIST: \item % WITHOUT TEXT ARGUMENT: % ANY MODE: % SYMBOLS: \$ \{ \} \_ \@ \& \# % ACCENTS: See TeXbook % OTHER: \rule \ref \pageref \today \usebox \typein \input \cite % MATH: \over % PAR MODE: \include \bibliography \tableofcontents \listoffigures ... % LIST: \item \arabic \roman \Roman \alph \Alph % PICTURE: \line \vector \circle \oval % ARRAY & TABULAR: \hline \vline % % SPACING & BREAKING: % ANY : \hfill \hspace % PAR : \newpage \newpage \vspace \noindent % PAR & INNER MATH % : \newpage \clearpage \cleardoublepage % : \pagebreak \nopagebreak \linebreak \nolinebreak \newline % MATH : \over \; \, \! % MULTILINE : \\ % TABBING : \pushtab \poptab \> \< \+ \- \kill ... % ARRAY & TABULAR % : \multicolumn \noalign % % NO DIRECT CHANGES TO DOCUMENT: % \index \glossary \typeout \label \tableentry \stop \protect % % PARAMETERS: % % \columnsep \skip\footin \intextsep % \columnseprule \oddsidemargin % \columnwidth \textfloatsep % \evensidemargin \footsep \textheight % \floatsep \headheight \textwidth % \headsep \topmargin % ALPHABETIZED LIST: % % ORDINARY COMMANDS: % % \Alph \include \parbox % \Roman \index \put % \\ \item \raisebox % \alph \label \ref % \appendix \line \roman % \arabic \linebreak \rule % \bibliography \listoffigures \section % \chapter \listoftables \shortstack % \circle \makebox \stop % \cite \mbox \subsection % \cite \multicolumn \subsubsection % \cleardoublepage \multiput \tableentry % \clearpage \tableofcontents % \dashbox \newline \today % \fbox \newpage \typein % \footnotemark \noindent \typeout % \footnotetext \nolinebreak \usebox % \framebox \nopagebreak \vector % \glossary \oval \vline % \hline \pagebreak \vspace % \hspace \pageref \protect % % % ENVIRONMENTS & DECLARATIONS: % % For each of these commands, the same command name prefixed by 'end' % is also reserved--e.g., \enddocument. % % \BIG \footnotesize \pagestyle % \Big \head \picture % \addtocounter \includeonly \raggedright % \addtolength \itemize \restorecr % \array \list \savebox % \big \makeglossary \sbox % \center \makeindex \scriptscriptsize % \description \math \scriptsize % \displaymath \minipage \setcounter % \document \newcommand \setlength % \documentstyle \newlength \settowidth % \enumerate \newtheorem \small % \equation \nofiles \shortstack\tabbing % \normalsize \tabular % \float \obeycr \thicklines % \flushleft \pagelayout \thinlines % \flushright \pagenumbering \thispagestyle % \verb, \verbatim % % PARAMETERS : % % \columnsep \footinsertskip \intextsep % \columnseprule \oddsidemargin % \columnwidth \textfloatsep % \evensidemargin \footsep \textheight % \floatsep \headheight \textwidth % \headsep \topmargin % % % TABBING COMMANDS: % % These commannds are defined only within a tabbing environment. % % \kill \> \- % \pushtab \< \= % \poptab \+ % COMPLETE LIST : % Below is a complete list of every command starting with `\' that % appears in LATEX.TEX. % \ % \! % \# % \$ % \& % \' % \( % \) % \+ % \, % \- % \. % \: % \; % \< % \= % \> % \@ % \@@ % \@@end % \@@endpbox % \@@eqncr % \@@hyph % \@@input % \@@par % \@@sqrt % \@@startpbox % \@@underline % \@@warning % \@acci % \@accii % \@acciii % \@acol % \@acolampacol % \@addamp % \@addfield % \@addmarginpar % \@addtobot % \@addtocurcol % \@addtodblcol % \@addtonextcol % \@addtopreamble % \@addtoreset % \@addtotoporbot % \@afterheading % \@afterindentfalse % \@afterindenttrue % \@Alph % \@alph % \@ampacol % \@arabic % \@argarraycr % \@argdef % \@argrsbox % \@argtabularcr % \@array % \@arrayacol % \@arrayclassiv % \@arrayclassv % \@arrayclassz % \@arraycr % \@arrayparboxrestore % \@arrayrule % \@arstrut % \@arstrutbox % \@auxout % \@badcrerr % \@badend % \@badlinearg % \@badmath % \@badpoptabs % \@badtab % \@beginparpenalty % \@begintheorem % \@bibitem % \@biblabel % \@bitor % \@botlist % \@botnum % \@botroom % \@bsphack % \@caption % \@captype % \@car % \@carcube % \@cclv % \@cdr % \@centercr % \@centering % \@cfla % \@cflb % \@charlb % \@charrb % \@chclass % \@checkend % \@chnum % \@circ % \@circle % \@circlefnt % \@cite % \@citea % \@citeb % \@citex % \@cla % counter used in \cline % \@classi % \@classii % \@classiii % \@classiv % \@classv % \@classz % \@clb % counter used in \cline % \@cline % \@clnht % \@clnwd % \@clubpenalty % \@colht % \@colnum % \@colroom % \@combinedblfloats % \@combinefloats % \@comdblflelt % \@comflelt % \@cons % \@contfield % \@ctrerr % \@curfield % \@curline % \@currbox % \@currentlabel % \@currentreference % \@currenvir % \@currlist % \@currtype % \@curtab % \@curtabmar % \@dascnt % \@dashbox % \@dashcnt % \@dashdim % \@dblarg % \@dbldeferlist % \@dblfloat % \@dblfloatplacement % \@dblfloatsep % \@dblfpbot % \@dblfpsep % \@dblfptop % \@dblmaxsep % \@dbltextfloatsep % \@dbltoplist % \@dbltopnum % \@dbltoproom % \@deferlist % \@definecounter % \@defpar % \@depth % \@dischyph % \@doclearpage % \@documentstyle % \@doendpe % \@donoparitem % \@dot % \@dotsep % \@dottedtocline % \@downline % \@downvector % \@eha % \@ehb % \@ehc % \@ehd % \@elt % \@empty % \@endparenv % \@endparpenalty % \@endpbox % \@endpefalse % \@endpetrue % \@endtabbing % \@endtheorem % \@enumctr % \@enumdepth % \@enumspacing % \@eqncr % \@eqnnum % \@eqnsel % \@eqnswtrue % \@esphack % \@Esphack % \@evenfoot % \@evenhead % \@expast % \@failedlist % \@fcolmadefalse % \@filesw % \@fileswfalse % \@fileswtrue % \@firstampfalse % \@firstamptrue % \@firstcolumntrue % \@firsttab % \@flfail % \@float % \@floatpenalty % \@floatplacement % \@floatsep % \@flsucceed % \@fltovf % \@flushglue % \@fnsymbol % \@footnotemark % \@footnotetext % \@for % \@forloop % \@fornoop % \@fpbot % \@fpmin % \@fpsep % \@fptop % \@framebox % \@framepicbox % \@freelist % \@getcirc % \@getlarrow % \@getlinechar % \@getpen % \@getrarrow % \@glossaryfile % \@gobble % \@gobblecr % \@gobbletwo % \@gtempa % \@halfwidth % \@halignto % \@hangfrom % \@height % \@highpenalty % \@hightab % \@hline % \@holdpg % \@hspace % \@hspacer % \@hvector % \@icentercr % \@iden % \@ifatmargin % \@ifdefinable % \@ifnch % \@ifnextchar % \@iforloop % \@iframebox % \@iframepicbox % \@ifstar % \@ifundefined % \@iinput % used in \input % \@iirsbox % \@imakebox % \@imakepicbox % \@iminipage % \@index % \@indexfile % \@inlabelfalse % \@input % \@inputcheck % \@insertfalse % \@inserttrue % \@iparbox % \@irsbox % \@isavebox % \@isavepicbox % \@ishortstack % \@istackcr % \@itabcr % \@item % \@itemdepth % \@itemfudge % \@itemitem % \@itemlabel % \@itempenalty % \@itemspacing % \@iwhiledim % \@iwhilenum % \@iwhilesw % \@ixstackcr % \@killglue % \@labels % \@lastchclass % \@latexbug % \@latexerr % \@lbibitem % \@leftcolumn % \@leftmarginskip % \@leftmark % \@lhead % \@linechar % \@linefnt % \@linelen % \@list % \@listctr % \@listdepth % \@listi % \@listii % \@listvi % \@lnbk % \@lowpenalty % \@lquote % \@ltab % \@M % \@m % \@mainaux % \@mainout % \@makebox % \@makecaption % \@makecol % \@makefcolumn % \@makefnmark % \@makefntext % \@makeonecolumn % \@makeother % \@makepicbox % \@maketwocolumn % \@marbox % \@markright % \@maxdepth % \@maxsep % \@maxtab % \@medpenalty % \@Mi % \@midlist % \@Mii % \@Miii % \@minipagefalse % \@minipagerestore % \@Miv % \@mkboth % \@mklab % \@mkpream % \@MM % \@mparbottom % \@mparswitchfalse % \@mpfn % \@mpfnnumber % \@mpfootins % \@mpfootnotetext % \@mplistdepth % \@multicnt % \@namedef % \@nameuse % \@nbitem % \@ne % \@negargfalse % \@negargtrue % \@newctr % \@newenv % \@newline % \@newlist % \@newlistfalse % \@next % \@nextchar % \@nextwhile % \@nil % \@nmbrlistfalse % \@nmbrlisttrue % \@nnil % \@nobreakfalse % \@nocnterr % \@nodocument % \@nofonterror % \@noitemargfalse % \@noitemargtrue % \@noitemerr % \@noligs % \@nolnbk % \@nolnerr % \@noparitemfalse % \@noparitemtrue % \@noparlistfalse % \@noparlisttrue % \@nopgbk % \@normalcr % \@normalsize % \@noskipsecfalse % \@notdefinable % \@notprerr % \@nthm % \@nxttabmar % \@oddfoot % \@oddhead % \@opargbegintheorem % \@opcol % \@optionfiles % \@optionlist % \@options % \@othm % \@outerparskip % \@outputbox % \@outputdblcol % \@outputpage % \@oval % \@ovbtrue % \@ovdx % \@ovdy % \@ovhorz % \@ovltrue % \@ovri % \@ovro % \@ovrtrue % \@ovttrue % \@ovvert % \@ovxx % \@ovyy % \@pagedp % \@pageht % \@par % \@parboxrestore % \@parmoderr % \@partaux % \@partlist % \@partout % \@partsw % \@partswfalse % \@partswtrue % \@pboxswfalse % \@pboxswtrue % \@pgbk % \@picbox % \@picht % \@picture % \@pnumwidth % \@preamble % \@preamblecmds % \@preamerr % \@put % \@qend % \@qrelax % \@reargdef % \@renewenv % \@restorepar % \@reversemarginfalse % \@reversemargintrue % \@rhead % \@rightmark % \@rightskip % \@Roman % \@roman % \@rsbox % \@rtab % \@rule % \@sanitize % \@savebox % \@savemarbox % \@savepicbox % \@savsf % \@savsk % \@scolelt % \@sdblcolelt % \@secpenalty % \@sect % \@setpar % \@settab % \@sharp % \@shortstack % \@sline % \@spaces % \@specialoutput % \@specialpagefalse % \@specialstyle % \@sptoken % \@sqrt % \@ssect % \@startcolumn % \@startdblcolumn % \@startfield % \@startline % \@startpbox % \@startsection % \@starttoc % \@stopfield % \@stopline % \@stpelt % \@svector % \@sverb % \@svsec % \@svsechd % \@tabacol % \@tabarray % \@tabclassiv % \@tabclassz % \@tabcr % \@tablab % \@tabminus % \@tabplus % \@tabpush % \@tabrj % \@tabular % \@tabularcr % \@temp % \@tempa % \@tempb % \@tempbox % \@tempboxa % \@tempc % \@tempcnta % \@tempcntb % \@tempd % \@tempdima % \@tempdimb % \@tempe % \@tempskipa % \@tempskipb % \@tempswa % \@tempswafalse % \@tempswatrue % \@temptokena % \@testdef % \@testfp % \@testpach % \@textbottom % \@textfloatsep % \@textmin % \@texttop % \@tfor % \@tforloop % \@thanks % \@thefnmark % \@thefoot % \@thehead % \@themargin % \@themark % \@thm % \@thmcounter % \@thmcountersep % \@tocrmarg % \@toodeep % \@toplist % \@topnewpage % \@topnum % \@toproom % \@topsep % \@topsepadd % \@totalleftmargin % \@trivlist % \@tryfcolumn % \@trylist % \@twocolumnfalse % \@twoside % \@twosidefalse % \@typein % \@upline % \@upordown % \@upvector % \@verb % \@verbatim % \@vline % \@vobeyspaces % \@vspace % \@vspacer % \@vtryfc % \@vvector % \@warning % \@wckptelt % \@whiledim % \@whilenoop % \@whilenum % \@whilesw % \@whileswnoop % \@wholewidth % \@width % \@wrindex % \@writeckpt % \@writefile % \@wtryfc % \@x@sf % \@xarg % \@xargarraycr % \@xarraycr % \@xbitor % \@xcentercr % \@xdblarg % \@xdblfloat % \@xdim % \@xeqncr % \@xexnoop % \@xexpast % \@xfloat % \@xfootnote % \@xfootnotemark % \@xfootnotenext % \@xhead % \@xifnch % \@xmpar % \@xnewline % \@xnthm % \@xobeysp % \@xsect % \@xstartcol % \@xtabcr % \@xtabularcr % \@xthm % \@xtryfc % \@xtypein % \@xverbatim % \@xxxii % \@xympar % \@yarg % \@yargarraycr % \@ydim % \@yeqncr % \@yhead % \@ympar % \@ynthm % \@ythm % \@ytryfc % \@yyarg % \@ztryfc % \a % \active % \addcontentsline % \addpenalty % \addtocontents % \addtocounter % \addtolength % \addvspace % \advance % \alloc@ % \allocationnumber % \Alph % \alph % \and % \appendix % \arabic % \array % \arraycolsep % \arrayrulewidth % \arraystretch % \author % \bar % \baselineskip % \begin % \begingroup % \bf % \bgroup % \bibcite % \bibdata % \bibitem % \bibliography % \bibliographystyle % \bibstyle % \BIG % \Big % \big % \bigskip % \botfigrule % \botmark % \botnum % \bottomfraction % \box % \boxmaxdepth % \buildrel % \bullet % \c@bottomnumber % \c@chapter % \c@dbltopnumber % \c@equation % \c@eval % \c@footnote % \c@mpfootnote % \c@page % \c@secnumdepth % \c@section % \c@tocdepth % \c@topnumber % \c@totalnumber % \caption % \catcode % \catcoded % \center % \centering % \chapter % \chaptermark % \char % \chardef % \circle % \cite % \cl@@ckpt % \cleardoublepage % \clearpage % \cline % \closeout % \clubpenalty % \columnsep % \columnseprule % \columnwidth % \contentsline % \copy % \count % \countdef % \cr % \crcr % \csname % \dag % \dagger % \dashbox % \date % \dblfigrule % \dblfloatpagefraction % \dblfloatsep % \dbltexfloatsep % \dbltextfloatsep % \dbltopfraction % \ddagger % \deadcycles % \def % \description % \dimen % \dimen@ % \discretionary % \displaymath % \displaystyle % \displaywidth % \divide % \do % \document % \documentstyle % \dospecials % \doublerulesep % \dp % \edef % \egroup % \else % \end % \end@dblfloat % \end@float % \endarray % \endcsname % \enddocument % \endenumerate % \endequation % \endfigure % \endgroup % \enditemize % \endlist % \endpicture % \endsloppypar % \endtabbing % \endtabular % \endthebibliography % \endtrivlist % \enumerate % \eqnarray % \eqno % \equation % \errmessage % \errorstopmode % \eval % \evensidemargin % \everyjob % \everypar % \expandafter % \extracolsep % \fbox % \fboxrule % \fboxsep % \fi % \figure % \fill % \firstmark % \float % \floatingpenalty % \floatpagefraction % \floatsep % \flushbottom % \flushleft % \flushright % \fnsymbol % \footins % \footinsertskip % \footnote % \footnotemark % \footnoterule % \footnotesep % \footnotesize % \footnotetext % \footsep % \footskip % \frac % \frame % \framebox % \frenchspacing % \fussy % \futurelet % \gdef % \global % \glossary % \halfwidth % \halign % \hangindent % \hbox % \head % \headheight % \headsep % \hfil % \hfill % \hfuzz % \hline % \hrule % \hsize % \hskip % \hspace % \hss % \ht % \Huge % \huge % \hyphenchar % \if % \if@afterindent % \if@eqnsw % \if@endpe % \if@fcolmade % \if@filesw % \if@firstamp % \if@firstcolumn % \if@ignore % \if@inlabel % \if@insert % \if@minipage % \if@mparswitch % \if@negarg % \if@newlist % \if@nmbrlist % \if@nobreak % \if@noitemarg % \if@noparitem % \if@noparlist % \if@noskipsec % \if@ovb % \if@ovl % \if@ovr % \if@ovt % \if@pboxsw % \if@reversemargin % \if@rjfield % \if@specialpage % \if@tempswa % \if@test % \if@twocolumn % \if@twoside % \ifcase % \ifdim % \ifeof % \ifhmode % \ifinner % \ifmmode % \ifnum % \ifodd % \ifvmode % \ifvoid % \ifx % \ignorespaces % \immediate % \include % \includeonly % \indent % \index % \indexentry % \input % \insc@unt % \insert % \interdisplaylinepenalty % \interfootnotelinepenalty % \interlinepenalty % \intextsep % \it % \item % \itemindent % \itemize % \itemsep % \jobname % \kern % \kill % \label % \labelenumi % \labelenumiv % \labelitemi % \labelitemii % \labelitemiii % \labelitemiv % \labelsep % \labelwidth % \LARGE % \Large % \large % \lastbox % \lastskip % \LaTeX % \lbrace % \leaders % \leavevmode % \lefteqn % \leftmargin % \leftmargini % \leftmarginvi % \leftmark % \leftskip % \let % \limits % \line % \linebreak % \lineskip % \linethickness % \linewidth % \list % \listoffigures % \listoftables % \listparindent % \llap % \long % \lower % \m@ne % \m@th % \makeatletter % \makeatother % \makebox % \makeglossary % \makeindex % \makelabel % \maketitle % \marginpar % \marginparpush % \marginparsep % \marginparwidth % \mark % \markboth % \markright % \math % \mathchar % \mathchardef % \mathop % \mathrel % \maxdeadcycles % \maxdepth % \maxdimen % \mb@b % \mb@eval % \mb@l % \mb@r % \mb@t % \mbox % \medskip % \message % \minipage % \mit % \mkern % \moveright % \mskip % \multicolumn % \multiply % \multiput % \multispan % \newbox % \newcommand % \newcount % \newcounter % \newdimen % \newenvironment % \newif % \newinsert % \newlabel % \newlength % \newline % \newlinechar % \newpage % \newsavebox % \newskip % \newswitch % \newtheorem % \newtoks % \newwrite % \noalign % \nobreak % \nocite % \noexpand % \nofiles % \noindent % \nointerlineskip % \nolinebreak % \nonumber % \nopagebreak % \normalbaselineskip % \normallineskip % \normalmarginpar % \normalsize % \nullfont % \number % \numberline % \obeycr % \obeylines % \obeyspaces % \oddsidemargin % \of % \on@line % \onecolumn % \openin % \or % \outer % \output % \outputpenalty % \oval % \over % \overfullrule % \overline % \p@ % \pagebreak % \pagelayout % \pagenumbering % \pageref % \pagestyle % \par % \paragraph % \parbox % \parfillskip % \parindent % \parsep % \parshape % \parskip % \partopsep % \partsw % \penalty % \picture % \poptab % \poptabs % \postdisplaypenalty % \prevdepth % \protect % \ps@empty % \ps@plain % \pushtab % \pushtabs % \put % \quotation % \raggedbottom % \raggedleft % \raggedright % \raise % \raisebox % \rbrace % \read % \ref % \refstepcounter % \relax % \renewcommand % \renewenvironment % \reset@font % \restorecr % \reversemarginpar % \right % \rightmargin % \rightmark % \rightskip % \rlap % \rm % \Roman % \roman % \romannumeral % \root % \rule % \samepage % \savebox % \sbox % \sc % \scriptscriptsize % \scriptsize % \secdef % \section % \sectionmark % \setbox % \setcounter % \setlength % \settowidth % \shipout % \shortstack % \showboxbreadth % \showboxdepth % \sixt@@n % \skip % \sl % \SLiTeX % \sloppy % \sloppypar % \small % \smallskip % \space % \spacefactor % \splitmaxdepth % \splittopskip % \sqrt % \ss % \stackrel % \stepcounter % \stop % \stretch % \string % \strut % \subsection % \subsubsection % \tabalign % \tabbing % \tabbingsep % \tabcolsep % \tableentry % \tableofcontents % \tabskip % \tabular % \tencirc % \tencircw % \tenln % \tenlnw % \textfloatsep % \textfraction % \textheight % \textwidth % \thanks % \the % \thebibliography % \theenumi % \theenumii % \theequation % \thefigure % \thefootnote % \thempfn % \thempfootnote % \thepage % \thesection % \thicklines % \thinlines % \thinspace % \thispagestyle % \tiny % \title % \today % \tolerance % \topfigrule % \topfraction % \topmargin % \topnewpage % \topnum % \topsep % \topskip % \tracingonline % \tracingoutput % \tracingstats % \trivlist % \tt % \tw@ % \twocolumn % \typein % \typeout % \unbox % \underline % \unhbox % \unitlength % \unskip % \unvbox % \usebox % \usecounter % \vadjust % \value % \vbox % \vcenter % \vector % \verb % \verbatim % \vfil % \vfuzz % \vline % \vrule % \vsize % \vskip % \vspace % \vsplit % \vss % \vtop % \wd % \write % \writes % \xdef % \z@ % \[ % \\ % \] % \^ % \_ % \` % \{ % \| % \} % \~ % **************************************** % * GENERAL CONVENTIONS * % **************************************** % % THE \LaTeX AND \SLiTeX LOGOS ARE DEFINED HERE. % %% RmS 91/09/29: \reset@font added to \LaTeX logo. \def\p@LaTeX{{\reset@font\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em% T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} %% RmS 91/09/29: \SLiTeX logo added. \def\p@SLiTeX{{\reset@font\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06emT\kern -.1667em\lower.7ex\hbox{E}\kern-.125emX}} %% RmS 91/10/17: \protect'ed the logos \def\LaTeX{\protect\p@LaTeX} \def\SLiTeX{\protect\p@SLiTeX} % SAVED VERSIONS OF TeX PRIMITIVES: % % The TeX primitive \foo is saved as \@@foo . The following primitives % are handled in this way: \let\@@par=\par %\let\@@relax=\relax % This was needed at one time, but seems to be obsolete. \let\@@input=\input \let\@@end=\end % The following was added 19 April 1986: % The \- command is redefined to allow it to work in the \tt type style, % where automatic hyphenation is suppressed by setting \hyphenchar to -1. % The original definition is saved as \@@hyph just in case anyone needs it. \let\@@hyph=\- % Original defin \def\-{\discretionary{-}{}{}} % SAVED VERSIONS OF TeX PARAMETERS % % \normalbaselineskip and \normallineskip hold the % normal values of \baselineskip and \lineskip % Any font-changing commands that change the normal value of \lineskip % and \baselineskip should change their saved values. % The following definitions save token space. E.g., using \@height % instead of height saves 5 tokens at the cost in time of one macro % expansion. \def\@height{height} \def\@depth{depth} \def\@width{width} % The following implements the LaTeX \{ and \} commands. % Changed 21 Apr 87 to make them robust. \def\{{\protect\@lb} \def\@lb{\relax\ifmmode\lbrace\else$\m@th\lbrace$\fi} \def\}{\protect\@rb} \def\@rb{\relax\ifmmode\rbrace\else$\m@th\rbrace$\fi} \message{counters,} % **************************************** % * COUNTERS, ETC. * % **************************************** % % THE FOLLOWING ARE FROM PLAIN: % \z@ : A zero dimen or number. It's more efficient to write % \parindent\z@ than \parindent 0pt. % \@ne : The number 1. % \m@ne : The number -1. % \tw@ : The number 2. % \sixt@@n : The number 16. % \@m : The number 1000. % \@xxxii : The number 32 % \@M : The number 10000. % \@Mi : The number 10001. % \@Mii : The number 10002. % \@Miii : The number 10003. % \@Miv : The number 10004. % \@MM : The number 20000. % % \@flushglue : Glue used for \right- & \leftskip to = 0pt plus 1fil \chardef\@xxxii=32 \mathchardef\@Mi=10001 \mathchardef\@Mii=10002 \mathchardef\@Miii=10003 \mathchardef\@Miv=10004 % Redefine PLAIN.TEX macros not to be \outer \def\newcount{\alloc@0\count\countdef\insc@unt} \def\newdimen{\alloc@1\dimen\dimendef\insc@unt} \def\newskip{\alloc@2\skip\skipdef\insc@unt} \def\newbox{\alloc@4\box\chardef\insc@unt} \def\newwrite{\alloc@7\write\chardef\sixt@@n} \newwrite\@unused \newcount\@tempcnta \newcount\@tempcntb \newif\if@tempswa\@tempswatrue \newdimen\@tempdima \newdimen\@tempdimb \newbox\@tempboxa \newskip\@flushglue \@flushglue = 0pt plus 1fil \newskip\@tempskipa \newskip\@tempskipb \newtoks\@temptokena \message{hacks,} % **************************************** % * USEFUL HACKS * % **************************************** % % \@namedef{NAME} : Expands to \def\NAME , except name can contain any % characters. % \@nameuse{NAME} : Expands to \NAME . % % \@ifnextchar X{YES}{NO} % : Expands to YES if next character is an 'X', % and to NO otherwise. (Uses temps a-c.) % NOTE: GOBBLES ANY SPACE FOLLOWING IT. % % \@ifstar{YES}{NO} : Gobbles following spaces and then tests if next the % character is a '*'. If it is, then it gobbles the % '*' and expands to YES, otherwise it expands to NO. % % \@dblarg{CMD}{ARG} : \@dblarg{CMD}{ARG} expands to CMD[ARG]{ARG}. Use % \@dblarg\CS when \CS takes arguments [ARG1]{ARG2}, % where default is ARG1 = ARG2. % % \@ifundefined{NAME}{YES}{NO} % : If \NAME is undefined then it executes YES, % otherwise it executes NO. More precisely, % true if \NAME either undefined or = \relax. % \@ifdefinable \NAME {YES} % : Executes YES if the user is allowed to define \NAME, % otherwise it gives an error. The user can define \NAME % if \@ifundefined{NAME} is true, 'NAME' /= 'relax' % and the first three letters of 'NAME' are not % 'end'. % \newcommand{\FOO}[i]{TEXT} % : User command to define \FOO to be a macro with % i arguments (i = 0 if missing) having the definition % TEXT. Produces an error if \FOO already defined. % % \renewcommand{\FOO}[i]{TEXT} : Same as \newcommand, except it % checks if \FOO already defined. % % \newenvironment{FOO}[i]{DEF1}{DEF2} % equivalent to % \newcommand{\FOO}[i]{DEF1} \def{\endFOO}{DEF2} % % \renewenvironment : obvious companion to \newenvironment % % \@cons : See description of \output routine. % % \@car T1 T2 ... Tn\@nil == T1 (unexpanded) % % \@cdr T1 T2 ... Tn\@nil == T2 ... Tn (unexpanded) % % \typeout{message} : produces a warning message on the terminal % % \@warning{message}: prints 'LaTeX Warning: message.' % With TeX 3.x, it also prints line number. % (Changed 24 Jun 91 RmS) % \@@warning{message}: like \@warning, except that it never prints % the line number (added 24 Jun 91 RmS). % % \typein{message} : Types message, asks the user to type in a command, then % executes it % % \typein[\CS]{MSG} : Same as above, except defines \CS to be the input % instead of executing it. %% RmS 92/03/18: changed input channel from 0 to \@inputcheck to avoid conflicts %% with other channels allocated by \newread \newread\@inputcheck \def\typein{\let\@typein\relax\@ifnextchar[{\@xtypein}{\@xtypein[\@typein]}} \def\@xtypein[#1]#2{\typeout{#2}\read\@inputcheck to#1\ifx #1\@defpar \def#1{}\else \@iden{\expandafter\@strip\expandafter #1#1\@gobble\@gobble} \@gobble\fi\@typein} \def\@strip#1#2 \@gobble{\def #1{#2}} \def\@defpar{\par} \def\@iden#1{#1} \ifx\inputlineno\undefined \let\on@line\empty \else \ifnum\inputlineno=\m@ne \let\on@line\empty \else \def\on@line{ on input line \the\inputlineno} \fi \fi \def\typeout#1{{\let\protect\string\immediate\write\@unused{#1}}} \def\@@warning#1{\typeout{LaTeX Warning: #1.}} \def\@warning#1{\@@warning{#1\on@line}} \def\@namedef#1{\expandafter\def\csname #1\endcsname} \def\@nameuse#1{\csname #1\endcsname} \def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{#1\@elt #2}\endgroup} \def\@car#1#2\@nil{#1} \def\@cdr#1#2\@nil{#2} % \@carcube T1 ... Tn\@nil = T1 T2 T3 , n > 3 \def\@carcube#1#2#3#4\@nil{#1#2#3} \def\newcommand#1{\@ifnextchar [{\@argdef#1}{\@argdef#1[0]}} \def\renewcommand#1{\edef\@tempa{\expandafter\@cdr\string #1\@nil}\@ifundefined{\@tempa}{\@latexerr{\string#1\space undefined}\@ehc }{}\@ifnextchar [{\@reargdef#1}{\@reargdef#1[0]}} \def\newenvironment#1{\@ifnextchar [{\@newenv{#1}}{\@newenv{#1}[0]}} \long\def\@newenv#1[#2]#3#4{\expandafter\newcommand \csname #1\endcsname[#2]{#3}\long \expandafter\def\csname end#1\endcsname{#4}} \def\renewenvironment#1{\@ifnextchar [{\@renewenv{#1}}{\@renewenv{#1}[0]}} \long\def\@renewenv#1[#2]#3#4{\expandafter\renewcommand \csname #1\endcsname[#2]{#3}\long \expandafter\def\csname end#1\endcsname{#4}} \long\def\@argdef#1[#2]#3{\@ifdefinable #1{\@reargdef#1[#2]{#3}}} % Absolutely untypable control sequence \@?@? substituted for \@tempb in % definition of \@reargdef because it (and therefore \newcommand and % \renewcommand) leaves the control sequence dangerously \let to #. % (Change made 23 November 87.) % \catcode`\?=11\relax \long\def\@reargdef#1[#2]#3{\@tempcnta#2\relax\let#1\relax \edef\@tempa{\long\def#1}\@tempcntb \@ne \let\@?@?\relax\@whilenum\@tempcnta>\z@ \do{\edef\@tempa{\@tempa\@?@?\the\@tempcntb}\advance\@tempcntb \@ne \advance \@tempcnta \m@ne}\let\@?@?##\@tempa{#3}} \catcode`\?=12\relax % 9 Jan 90 : Missing % added to following definition. \long\def\@ifdefinable #1#2{\edef\@tempa{\expandafter\@cdr\string #1\@nil}% \@ifundefined{\@tempa}{\edef\@tempb{\expandafter\@carcube \@tempa xxxx\@nil}% \ifx \@tempb\@qend \@notdefinable\else \ifx \@tempa\@qrelax \@notdefinable\else #2\fi\fi}{\@notdefinable}} \long\def\@ifundefined#1#2#3{\expandafter\ifx\csname #1\endcsname\relax#2\else#3\fi} % The following define \@qend and \@qrelax to be the strings 'end' and % 'relax' with the characters \catcoded 12. \edef\@qend{\expandafter\@cdr\string\end\@nil} \edef\@qrelax{\expandafter\@cdr\string\relax\@nil} % \@ifnextchar X{YES}{NO} % BEGIN % \@tempe := X % uses \let % \@tempa := YES % \@tempb := NO % \futurelet\@tempc % \@ifnch % END % % \@ifnch == % BEGIN % if \@tempc = blank space % then \@tempd := def(\@xifnch) % else if \@tempc = \@tempe % then \@tempd := def(\@tempa) % else \@tempd := def(\@tempb) % fi % fi % \@tempd % END % % \@xifnch == % BEGIN % gobble blanks % \futurelet\@tempc % \@ifnch % END % \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} % NOTE: the following hacking must precede the definition of \: % as math medium space. \def\:{\let\@sptoken= } \: % this makes \@sptoken a space token \def\:{\@xifnch} \expandafter\def\: {\futurelet\@tempc\@ifnch} \def\@ifstar#1#2{\@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}} \long\def\@dblarg#1{\@ifnextchar[{#1}{\@xdblarg{#1}}} \long\def\@xdblarg#1#2{#1[{#2}]{#2}} % The command \@sanitize changes the catcode of all special characters % except for braces to 'other'. It can be used for commands like % \index that want to write their arguments verbatim. Needless to % say, this command should only be executed within a group, or chaos % will ensue. \def\@sanitize{\@makeother\ \@makeother\\\@makeother\$\@makeother\&% \@makeother\#\@makeother\^\@makeother\_\@makeother\%\@makeother\~} \message{errors,} % **************************************** % * ERROR HANDLING * % **************************************** % % \@latexerr{MSG}{HLP}: Types a LaTeX error message MSG and gives an error % halt with error help message HLP. % \newlinechar`\^^J % 19 Jun 86, took out the grouping. re: John Hobby \def\@latexerr#1#2{% \edef\@tempc{#2}\errhelp\expandafter{\@tempc}% \typeout{LaTeX error. \space See LaTeX manual for explanation.^^J \space\@spaces\@spaces\@spaces Type \space H \space for immediate help.}\errmessage{#1}} \def\@spaces{\space\space\space\space} %% error help message pieces. \def\@eha{Your command was ignored. ^^JType \space I \space to replace it with another command,^^Jor \space \space to continue without it.} \def\@ehb{You've lost some text. \space \@ehc} \def\@ehc{Try typing \space \space to proceed.^^JIf that doesn't work, type \space X \space to quit.} \def\@ehd{You're in trouble here. \space\@ehc} % Here are all the error message-generating commands of LaTeX. % % \@notdefinable : Error message generated in \@ifdefinable from calls % by \newcommand, \newlength, \newtheorem specifying an % already-defined command name. % % \@nolnerr : Generated by \newline and \\ when called in vertical mode. % % '\... undefined' : Generated in \renewcommand. % % \@nocnterr : Generated by \setcounter, \addtocounter or \newcounter % for undefined counter. % % \@ctrerr : Called when trying to print the value of a counter % numbered by letters that's greater than 26. % % 'Environment --- undefined' : Issued by \begin for undefined environment. % % \@badend : Called by \end that doesn't match its \begin. % % \@badmath : Called by \[, \], \( or \) when used in wrong mode. % % \@toodeep : Called by a list environment nested more than six levels % deep, or an enumerate or itemize nested more than four % levels. % % \@badpoptabs : Called by \endtabbing when not enough \poptabs have % occurred, or by \poptabs when too many have occurred. % % \@badtab : Called by \>, \+ , \- or \< when stepping to an undefined tab. % % 'tab overflow' : Occurs in \= when maximum number of tabs exceeded. % % '\< in mid line' : Occurs in \< when it appears in middle of line. % % \@preamerr : Occurs in array or tabular environment, or in \multicolumn % command, when error in argument detected. % % \@badlinearg : Occurs in \line and \vector command when a bad slope % argument is encountered. % % \@parmoderr : Occurs in a float environment or a \marginpar when % encountered in inner vertical mode. % % \@fltovf : Occurs in float environment or \marginpar when there % are no more free boxes for storing floats. % % \@latexbug : Occurs in output routine. This is bad news. % % 'Float(s) lost' : In output routine, caused by a float environment or % \marginpar occurring in inner vertical mode. % % \@nofonterror : Typeface not available. %%% OBSOLETE; DELETED. % % \@badcrerr : A \\ used where it shouldn't be in a centering or flushing % environment. % % \@noitemerr : \addvspace or \addpenalty was called when not in vmode. % Probably caused by a missing \item. % % \@notprerr : A command that can be used only in the preamble % appears after the \begin{document} command. \def\@notdefinable{\@latexerr{Command name '\@tempa' already used}\@eha} \def\@nolnerr{\@latexerr{There's no line here to end}\@eha} \def\@nocnterr{\@latexerr{No such counter}\@eha} \def\@ctrerr{\@latexerr{Counter too large}\@ehb} \def\@nodocument{\@latexerr{Missing \string\begin{document}}\@ehd} \def\@badend#1{\@latexerr{\string\begin{\@currenvir} ended by \string\end{#1}}\@eha} \def\@badmath{\@latexerr{Bad math environment delimiter}\@eha} \def\@toodeep{\@latexerr{Too deeply nested}\@ehd} \def\@badpoptabs{\@latexerr{\string\pushtabs \space and \string\poptabs \space don't match}\@ehd} \def\@badtab{\@latexerr{Undefined tab position}\@ehd} \def\@preamerr#1{\@latexerr{\ifcase #1 Illegal character\or Missing @-exp\or Missing p-arg\fi\space in array arg}\@ehd} \def\@badlinearg{\@latexerr{Bad \string\line\space or \string\vector \space argument}\@ehb} \def\@parmoderr{\@latexerr{Not in outer par mode}\@ehb} \def\@fltovf{\@latexerr{Too many unprocessed floats}\@ehb} \def\@latexbug{\@latexerr{This may be a LaTeX bug}{Call for help}} % \def\@nofonterror{\@latexerr{Typeface not available}\@eha} \def\@badcrerr {\@latexerr{Bad use of \string\\}\@ehc} \def\@noitemerr{\@latexerr{Something's wrong--perhaps a missing \string\item}\@ehc} \def\@notprerr {\@latexerr{Can be used only in preamble}\@eha} \message{par,} % **************************************** % * \par AND \everypar * % **************************************** % % There are two situations in which \par may be changed: % % - Long-term changes, in which the new value is to remain in effect % until the current environment is left. The environments that % change \par in this way are the following: % % * All list environments (itemize, quote, etc.) % * Environments that turn \par into a noop: % tabbing, array and tabular. % % - Temporary changes, in which \par is restored to its previous value the % next time it is executed. The following are all such uses. % * \end [when preceded by \@endparenv, which is called by % \endtrivlist] % * The mechanism for avoiding page breaks and getting the % spacing right after section heads. % % To permit the proper interaction of these two situations, long-term % changes are made by the following command: % \@setpar{VAL} : To set \par. It \def's \par and \@par to VAL. % Short-term changes are made by the usual \def\par commands. % The original values are restored after a short-term change % by the \@restorepar commands. % % NOTE: \@@par always is defined to be the original TeX \par. % % \everypar is changed only for the short term. Whenever \everypar % is set non-null, it should restore itself to null when executed. % The following commands change \everypar in this way: % * \item % * \end [when preceded by \@endparenv, which is called by % \endtrivlist] % * \minipage % % WARNING: Commands that make short-term changes to \par and \everypar % must take account of the possibility that the new commands and the % ones that do the restoration may be executed inside a group. In % particular, \everypar is executed inside a group whenever a new paragraph % begins with a left brace. The \everypar command that restores its % definition should be local to the current group (in case the command % is inside a minipage used inside someplace where \everypar has been % redefined). Thus, if \everypar is redefined to do an \everypar{} % it could take several executions of \everypar before % the restoration 'holds'. This usually causes no problem. However, to % prevent the extra executions from doing harm, use a global switch % to keep anything harmful in the new \everypar from being done twice. % % WARNING: Commands that change \everypar should remember that \everypar % might be supposed to set the following switches false: % @nobreak % @minipage % they should do the setting if necessary. \def\@par{\let\par\@@par\par} \def\@setpar#1{\def\par{#1}\def\@par{#1}} \def\@restorepar{\def\par{\@par}} \message{spacing,} % ********************************************** % * SPACING / LINE AND PAGE BREAKING * % ********************************************** % % USER COMMANDS: % \nopagebreak[i] : i = 0,...,4. Default argument = 4. Puts a penalty % into the vertical list output as follows: % 0 : penalty = 0 % 1 : penalty = \@lowpenalty % 2 : penalty = \@medpenalty % 3 : penalty = \@highpenalty % 4 : penalty = 10000 % \pagebreak[i] : same as \nopagebreak except negatives of its penalty % \linebreak[i], \nolinebreak[i] : analogs of the above % \samepage : inhibits page breaking most places by setting the following % penalties to 10000 % \interlinepenalty % \postdisplaypenalty % \interdisplaylinepenalty % \@beginparpenalty % \@endparpenalty % \@itempenalty % \@secpenalty % \interfootnotelinepenalty % % \obeycr : defines == \\. % \restorecr : restores to its usual meaning. % % \\ : initially defined to be \newline % \\[LENGTH] : initially defined to be \vspace{LENGTH}\newline % Note: \\* adds a \vadjust{\penalty 10000} \def\nopagebreak{\@ifnextchar[{\@nopgbk}{\@nopgbk[4]}} \def\@nopgbk[#1]{\ifvmode \penalty \@getpen{#1}\else \@bsphack\vadjust{\penalty \@getpen{#1}}\@esphack\fi} \def\pagebreak{\@ifnextchar[{\@pgbk}{\@pgbk[4]}} \def\@pgbk[#1]{\ifvmode \penalty -\@getpen{#1}\else \@bsphack\vadjust{\penalty -\@getpen{#1}}\@esphack\fi} \def\nolinebreak{\@ifnextchar[{\@nolnbk}{\@nolnbk[4]}} \def\@nolnbk[#1]{\ifvmode \@nolnerr\else \@tempskipa\lastskip \unskip \penalty \@getpen{#1}\ifdim \@tempskipa >\z@ \hskip\@tempskipa\ignorespaces\fi\fi} \def\linebreak{\@ifnextchar[{\@lnbk}{\@lnbk[4]}} \def\@lnbk[#1]{\ifvmode \@nolnerr\else \unskip\penalty -\@getpen{#1}\fi} \def\samepage{\interlinepenalty\@M \postdisplaypenalty\@M \interdisplaylinepenalty\@M \@beginparpenalty\@M \@endparpenalty\@M \@itempenalty\@M \@secpenalty\@M \interfootnotelinepenalty\@M} % \nobreak added to \newline to prevent null lines when \newline % ends an overfull line. Change made 24 May 89 as suggested by % Frank Mittelbach and Rainer Sch\"opf % \def\newline{\ifvmode \@nolnerr \else \unskip\nobreak\hfil \penalty -\@M\fi} \def\@normalcr{\@ifstar{\vadjust{\penalty\@M}\@xnewline}{\@xnewline}} \def\@xnewline{\@ifnextchar[{\@newline}{\newline}} \def\@newline[#1]{\ifhmode\unskip\fi\vspace{#1}\newline} \let\\=\@normalcr \def\@getpen#1{\ifcase #1 0 \or \@lowpenalty\or \@medpenalty \or \@highpenalty \else \@M \fi} % @nobreak : Switch used to avoid page breaks caused by \label after a section % heading, etc. It should be GLOBALLY set true after the \nobreak % and GLOBALLY set false by the next invocation of \everypar. % Commands that reset \everypar should globally set it false % if appropriate. % \newif\if@nobreak \@nobreakfalse % \@bsphack ... \@esphack % used by macros such as \index and \begin{@float} ... \end{@float} % that want to be invisible -- i.e., % not leave any extra space when used in the middle of text. Such % a macro should begin with \@bsphack and end with \@esphack % The macro in question should not create any text, nor change the % mode. % % \@Esphack is a variant of \@esphack that sets the @ignore switch to true % (as \@esphack used to do previously). This is currently used only % for float and similar environments. % % \@bsphack == % BEGIN % if not mmode then %% Test for math mode added 18 Dec 89 % \dimen\@savsk := \lastskip % if hmode then \@savsf := \spacefactor fi % fi % END % % \@esphack == % BEGIN % if not mmode then %% Test for math mode added 18 Dec 89 % if hmode % then \spacefactor := \@savsf % if \dimen\@savsk > 0pt then \ignorespaces fi % fi % fi % END % % \@Esphack == % BEGIN % if not mmode then % if hmode % then \spacefactor := \@savsf % if \dimen\@savsk > 0pt then \ignorespaces % \global\@ignoretrue fi % fi % fi % END % \newdimen\@savsk \newcount\@savsf \def\@bsphack{\relax\ifmmode\else\@savsk\lastskip \ifhmode\@savsf\spacefactor\fi\fi} \def\@esphack{\relax\ifmmode\else\ifhmode\spacefactor\@savsf {}\ifdim \@savsk >\z@ \ignorespaces \fi \fi\fi} \def\@Esphack{\relax\ifmmode\else\ifhmode\spacefactor\@savsf {}\ifdim \@savsk >\z@ \global\@ignoretrue \ignorespaces \fi \fi\fi} % VERTICAL SPACING: % % LaTeX supports the PLAIN TeX commands \smallskip, \medskip and \bigskip. % However, it redefines them using \vspace instead of \vskip. % % Extra vertical space is added by the command command \addvspace{SKIP}, % which adds a vertical skip of SKIP to the document. The sequence % \addvspace{S1} \addvspace{S2} % is equivalent to % \addvspace{maximum of S1, S2}. % \addvspace should be used only in vertical mode, and gives an error if it's % not. The \addvspace command does NOT add vertical space if % @minipage = T. The minipage environment uses this to inhibit % the addition of extra vertical space at the beginning. % % Penalties are put into the vertical list with the \addpenalty{PENALTY} % command. It works properly when \addpenalty and \addvspace commands % are mixed. % % The @nobreak switch is set true used when in vertical mode and no page % break should occur. (Right now, it is used only by the section heading % commands to inhibit page breaking after a heading.) % % % \addvspace{SKIP} == % BEGIN % if vmode % then if @minipage % else if \lastskip =0 % then \vskip SKIP % else if \lastskip < SKIP % then \vskip -\lastskip % \vskip SKIP % else if SKIP < 0 and \lastskip >= 0 % then \vskip -\lastskip % \vskip \lastskip + SKIP % fi fi fi fi % else 'missing \item' error. % fi % END \def\addvspace#1{\ifvmode \if@minipage\else \ifdim \lastskip =\z@ \vskip #1\relax \else \@tempskipb#1\relax\@xaddvskip \fi\fi \else\@noitemerr\fi} \def\@xaddvskip{\ifdim \lastskip <\@tempskipb\vskip-\lastskip\vskip \@tempskipb \else \ifdim \@tempskipb<\z@ \ifdim \lastskip <\z@ \else \advance\@tempskipb\lastskip \vskip -\lastskip \vskip \@tempskipb \fi\fi\fi} \def\addpenalty#1{\ifvmode \if@minipage\else\if@nobreak\else \ifdim\lastskip=\z@ \penalty#1\relax \else \@tempskipb\lastskip \vskip -\lastskip \penalty#1\vskip\@tempskipb \fi\fi\fi \else\@noitemerr\fi} \def\vspace{\@ifstar{\@vspacer}{\@vspace}} \def\@vspace#1{\ifvmode \dimen@\prevdepth \vskip #1\vskip\z@ \prevdepth\dimen@ \else \@bsphack\vadjust{\dimen@\prevdepth \vskip #1\vskip\z@ \prevdepth\dimen@}\@esphack\fi} \def\@vspacer#1{\ifvmode \dimen@\prevdepth \hrule \@height\z@ \nobreak \vskip #1\vskip\z@ \prevdepth\dimen@ \else \@bsphack\vadjust{\dimen@\prevdepth \hrule \@height\z@ \nobreak \vskip #1\vskip\z@ \prevdepth\dimen@}\@esphack\fi} \def\smallskip{\vspace\smallskipamount} \def\medskip{\vspace\medskipamount} \def\bigskip{\vspace\bigskipamount} % See list environment for explanation of the following macros. \def\endtrivlist{\if@newlist\@noitemerr\fi \if@inlabel\indent\fi \ifhmode\unskip \par\fi \if@noparlist \else \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip \vskip\@tempskipa \fi\@endparenv\fi} % CHANGES TO \@endparenv: % Changed \hskip -\parindent to \setbox0=\lastbox so a \noindent % becomes a no-op when used before a line immediately following a % list environment. (Changed 23 Oct 86) % % To suppress the paragraph indentation in text immediately following % a paragraph-making environment, \everypar is changed to remove the % space, and \par is redefined to restore \everypar. Instead of redefining % \par and \everpar, \@endparenv was changed to set the @endpe switch, % letting \end redefine \par and \everypar. This allows paragraph- % making environments work right when called by other environments. % (Changed 27 Oct 86) \def\@endparenv{\addpenalty\@endparpenalty\addvspace\@topsepadd\@endpetrue} \def\@doendpe{\@endpetrue \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar {\setbox\z@\lastbox\everypar{}\@endpefalse}} \newif\if@endpe \@endpefalse % HORIZONTAL SPACE % % \, : used in paragraph mode produces a \thinspace. It has the ordinary % definition in math mode. Useful for quotes inside quotes, as in % ``\,`Foo', he said.'' % % \@ : placed before a '.', makes it a sentence-ending period. Does the % right thing for other punctuation marks as well. Does this by % setting spacefactor to 1000. \def\,{\protect\pcomma} \def\pcomma{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi} \def\@{\spacefactor\@m} \def\hspace{\protect\phspace} \def\phspace{\@ifstar{\@hspacer}{\@hspace}} \def\@hspace#1{\leavevmode\hskip #1\relax} \def\@hspacer#1{\leavevmode\vrule \@width\z@\nobreak \hskip #1\hskip \z@skip} %% extra \hskip 0pt added 12/17/85 to guard %% against a following \unskip %% \relax added 13 Oct 88 for usual TeX lossage %% replaced both changes by \hskip\z@skip 27 Nov 91 % define \fill to = 0pt plus 1fill \newskip\fill \fill = 0pt plus 1fill % \stretch{N} == 0pt plus N fill \def\stretch#1{\z@ plus #1fill\relax} {\catcode`\^^M=13 \gdef\obeycr{\catcode`\^^M=13 \def^^M{\\}\@gobblecr}% \gdef\restorecr{\catcode`\^^M=5 }} %} BRACE MATCHING \message{control,} % ********************************************** % * PROGRAM CONTROL STRUCTURE MACROS * % ********************************************** % % \@whilenum TEST \do {BODY} % \@whiledim TEST \do {BODY} : These implement the loop % while TEST do BODY od % where TEST is a TeX \ifnum or \ifdim test, respectively. % They are optimized for the normal case of TEST initially false. % % \@whilesw SWITCH \fi {BODY} : Implements the loop % while SWITCH do BODY od % where SWITCH is a command defined by \newswitch. % Optimized for normal case of SWITCH initially false. % % \@for NAME := LIST \do {BODY} : Assumes that LIST expands to A1,A2, ... ,An . % Executes BODY n times, with NAME = Ai on the i-th iteration. % Optimized for the normal case of n = 1. Works for n=0. % % \@tfor NAME := LIST \do {BODY} % if, before expansion, LIST = T1 ... Tn where each Ti is a % token or {...}, then executes BODY n times, with NAME = Ti % on the i-th iteration. Works for n=0. % % NOTES: 1. These macros use no \@temp sequences. % 2. These macros do not work if the body contains anything that looks % syntactically to TeX like an improperly balanced \if \else \fi. % % \@whilenum TEST \do {BODY} == % BEGIN % if TEST % then BODY % \@iwhilenum{TEST \relax BODY} % END % % \@iwhilenum {TEST BODY} == % BEGIN % if TEST % then BODY % \@nextwhile = def(\@iwhilenum) % else \@nextwhile = def(\@whilenoop) % fi % \@nextwhile {TEST BODY} % END % % \@whilesw SWITCH \fi {BODY} == % BEGIN % if SWITCH % then BODY % \@iwhilesw {SWITCH BODY}\fi % fi % END % % \@iwhilesw {SWITCH BODY} \fi == % BEGIN % if SWITCH % then BODY % \@nextwhile = def(\@iwhilesw) % else \@nextwhile = def(\@whileswnoop) % fi % \@nextwhile {SWITCH BODY} \fi % END \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\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi} \def\@iwhiledim#1{\ifdim #1\let\@nextwhile\@iwhiledim \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}} \long\def\@whileswnoop#1\fi{} \long\def\@whilesw#1\fi#2{#1#2\@iwhilesw{#1#2}\fi\fi} \long\def\@iwhilesw#1\fi{#1\let\@nextwhile\@iwhilesw \else\let\@nextwhile\@whileswnoop\fi\@nextwhile{#1}\fi} % \@for NAME := LIST \do {BODY} == % BEGIN \@forloop expand(LIST),\@nil,\@nil \@@ NAME {BODY} END % % \@forloop CAR, CARCDR, CDRCDR \@@ NAME {BODY} == % BEGIN % NAME = CAR % if def(NAME) = def(\@nnil) % else BODY; % NAME = CARCDR % if def(NAME) = def(\@nnil) % else BODY % \@iforloop CDRCDR \@@ NAME \do {BODY} % fi % fi % END % % \@iforloop CAR, CDR \@@ NAME {BODY} = % NAME = CAR % if def(NAME) = def(\@nnil) % then \@nextwhile = def(\@fornoop) % else BODY ; % \@nextwhile = def(\@iforloop) % fi % \@nextwhile name cdr {body} % % \@tfor NAME := LIST \do {BODY} % = \@tforloop LIST \@nil \@@ NAME {BODY} % % \@tforloop car cdr \@@ name {body} = % name = car % if def(name) = def(\@nnil) % then \@nextwhile == \@fornoop % else body ; % \@nextwhile == \@forloop % fi % \@nextwhile name cdr {body} % \def\@nnil{\@nil} \def\@empty{} \def\@fornoop#1\@@#2#3{} \def\@for#1:=#2\do#3{\edef\@fortmp{#2}\ifx\@fortmp\@empty \else \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi} \def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi} \def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil \let\@nextwhile\@fornoop \else #4\relax\let\@nextwhile\@iforloop\fi\@nextwhile#2\@@#3{#4}} %%RmS 91/10/17: Corrected bug in \@tfor: \xdef replaced by \def %% (See FMi's array.doc) \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}} \message{files,} % **************************************** % * FILE HANDLING * % **************************************** % % THE FOLLOWING USER COMMANDS ARE DEFINED IN THIS PART: % \document : Reads in the .AUX files and \catcode's @ to 12. % \nofiles : Suppresses all file output by setting \@filesw false. % \includeonly{NAME1, ... ,NAMEn} % : Causes only parts NAME1, ... ,NAMEn to be read by % their \include commands. Works by setting \@partsw true % and setting \@partlist to NAME1, ... ,NAMEn. % \include{NAME} : Does an \input NAME unless \partsw is true and % NAME is not in \@partlist. If \@filesw is true, then % it directs .AUX output to NAME.AUX, including a % checkpoint at the end. % \input{NAME} : The same as TeX's \input, except it allows optional % braces around the file name. % % VARIABLES, SWITCHES AND INTERNAL COMMANDS: % \@mainaux : Output file number for main .AUX file. % \@partaux : Output file number for current part's .AUX file. % \@auxout : Either \@mainout or \@partout, depending on which .AUX % file output goes to. % \@input{foo} : If file foo exists, then \input's it, otherwise types % a warning message. % @filesw : Switch -- set false if no .AUX, .TOC, .IDX etc files are % to be % @partsw : Set true by a \includeonly command. % \@partlist : Set to the argument of the \includeonly command. % % \cp@FOO : The checkpoint for \include'd file FOO.TEX, written % by \@writeckpt at the end of file FOO.AUX % % \document == % BEGIN % \endgroup % cancels \begingroup generated by \begin command % \@colht := \@colroom := \vsize := \textheight % \columnwidth := \textwidth % \@clubpenalty := \clubpenalty % \@clubpenalty saves value. % IF @twocolumn = T % THEN \columnwidth := (\columnwidth - \columnsep)/2 % @firstcolumn := T % FI % \hsize := \linewidth := \columnwidth % \begingroup % \@floatplacement \@dblfloatplacement % \@input{\jobname.aux} % \endgroup % IF \@filesw = T % THEN open file \@mainaux for writing % write ``\relax''on file \@mainaux % FI % \do{COMMAND} == BEGIN \let COMMAND = \@notprerr END % \@preamblecmds % \do == \noexpand % \@normalsize % \everypar{} % @noskipsec := F % END % % \includeonly{FILELIST} == % BEGIN % \@partsw := T % \@partlist := FILELIST % END % % \include{FILE} == % BEGIN % \clearpage % if \@filesw = T % then \immediate\write\@mainaux{\string\@input{FILE.AUX}} % fi % if \@partsw = T % then \@tempswa := F % \@tempb == FILE % for \@tempa := \@partlist % do if eval(\@tempa) = eval(\@tempb) % then \@tempswa := T fi % od % fi % % if \@tempswa = T % then \@auxout := \@partaux % if \@filesw = T % then \immediate\openout\@partaux{FILE.AUX} % \immediate\write\@partaux{\relax} % fi % \@input{FILE.TEX} % \clearpage % \@writeckpt{FILE} % if @filesw then \closeout \@partaux fi % \@auxout := \@mainaux % else \cp@FILE % fi % END % % \@writeckpt{FILE} == % BEGIN % if \@filesw = T % \immediate\write on file \@partaux: % \gdef\cp@FILE{ %% } % for \@tempa := \cl@@ckpt % do \immediate\write on file \@partaux: % \global\string\setcounter % {eval(\@tempa)}{eval(\c@eval(\@tempa))} % od %% { % \immediate\write on file \@partaux: } % fi % END % % INITIALIZATION % \@tempswa := T \newif\if@filesw \@fileswtrue \newif\if@partsw \@partswfalse \newwrite\@mainaux \newwrite\@partaux \newcount\@clubpenalty %% FMi & RmS 91/08/26 set @noskipsec switch to true in the preamble %% and to false by \begin{document} to catch lists in the preamble, %% i.e., to produce a ``nodocument'' error when things like %% \maketitle appear before \begin{document}. % % \@noskipsectrue %% set below where switch is defined % 91/03/26 FMi: |\process@table| added to support NFSS. % This will also work with old lfonts if no other style defines % |\process@table|. % \def\document{\endgroup \@colht\textheight \@colroom\textheight \vsize\textheight \columnwidth\textwidth \@clubpenalty\clubpenalty \if@twocolumn \advance\columnwidth -\columnsep \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue \fi \hsize\columnwidth \linewidth\hsize \begingroup\@floatplacement\@dblfloatplacement \makeatletter\let\@writefile\@gobbletwo \@input{\jobname.aux}\endgroup \if@filesw \immediate\openout\@mainaux=\jobname.aux \immediate\write\@mainaux{\relax}\fi \csname process@table\endcsname \let\glb@currsize\@empty %% Force \baselineskip initialisation. \def\do##1{\let ##1\@notprerr}% \@preamblecmds \let\do\noexpand \@normalsize\everypar{}\@noskipsecfalse} \def\@gobbletwo#1#2{} \def\nofiles{\@fileswfalse \typeout {No auxiliary output files.}\typeout{}} %% RmS 92/03/18: changed input channel from 1 to \@inputcheck to avoid %% conflicts with other channels allocated by \newread \def\@input#1{\openin\@inputcheck #1 \ifeof\@inputcheck \typeout {No file #1.}\else\closein\@inputcheck \relax\@@input #1 \fi} \let\@auxout=\@mainaux \def\includeonly#1{\@partswtrue\edef\@partlist{#1}} % In the definition of \include, \def\@tempb changed to \edef\@tempb to % be consistent with the \edef in \includeonly. (Suggested by Rainer % Sch\"opf & Frank Mittelbach. Change made 20 Jul 88.) % % Changed definition of \include to allow space at end of file name-- % otherwise, typing \include{foo } would cause LaTeX to overwrite % foo.tex. Change made 24 May 89, suggested by Rainer Sch\"opf and % Frank Mittelbach \def\include#1{\@include#1 } \def\@include#1 {\clearpage \if@filesw \immediate\write\@mainaux{\string\@input{#1.aux}}\fi \@tempswatrue\if@partsw \@tempswafalse\edef\@tempb{#1}\@for \@tempa:=\@partlist\do{\ifx\@tempa\@tempb\@tempswatrue\fi}\fi \if@tempswa \if@filesw \let\@auxout\@partaux \immediate\openout\@partaux #1.aux \immediate\write\@partaux{\relax}\fi\@input{#1.tex}\clearpage \@writeckpt{#1}\if@filesw \immediate\closeout\@partaux \fi \let\@auxout\@mainaux\else\@nameuse{cp@#1}\fi} \def\@writeckpt#1{\if@filesw \immediate\write\@partaux{\string\global\string\@namedef{cp@#1}\@charlb}% {\let\@elt\@wckptelt \cl@@ckpt}\immediate\write\@partaux{\@charrb}\fi} \def\@wckptelt#1{\immediate\write\@partaux {\string\setcounter{#1}{\the\@nameuse{c@#1}}}} \def\input{\@ifnextchar \bgroup{\@iinput}{\@@input }} \def\@iinput#1{\@@input #1 } % The following defines \@charlb and \@charrb to be { and }, respectively % with \catcode 11. {\catcode`[=1 \catcode`]=2 \catcode`{=11 \catcode`}=11 \gdef\@charlb[{] \gdef\@charrb[}] ]% }brace matching \message{env. counters,} % **************************************** % * ENVIRONMENT COUNTER MACROS * % **************************************** % % An environment foo has an associated counter defined by the % following control sequences: % \c@foo : Contains the counter's numerical value. It is defined by % \newcount\foocounter. % \thefoo : Macro that expands to the printed value of \foocounter. % For example, if sections are numbered within chapters, % and section headings look like % Section II-3. The Nature of Counters % then \thesection might be defined by: % \def\thesection{\@Roman{\c@chapter}-\@arabic{\c@section}} % % \p@foo : Macro that expands to a printed 'reference prefix' of % counter foo. Any \ref to a value created by counter % foo will produce the expansion of \p@foo\thefoo when the % the \label command is executed. % % NOTE: \thefoo and \p@foo MUST BE DEFINED IN SUCH A WAY THAT % \edef\bar{\thefoo} OR \edef\bar{\p@foo} % DEFINES \bar SO THAT IT WILL EVALUATE TO THE COUNTER VALUE AT THE TIME % OF THE \edef, EVEN AFTER \foocounter AND ANY OTHER COUNTERS HAVE BEEN % CHANGED. THIS WILL HAPPEN IF YOU USE THE STANDARD COMMANDS \@arabic, % \@Roman, ETC. % % \cl@foo : List of counters to be reset when foo stepped. Has format % \@elt{countera}\@elt{counterb}\@elt{counterc}. % % The following commands are used to define and modify counters. % \setcounter{FOO}{VAL} : Globally sets \foocounter equal to VAL. % \addtocounter{FOO}{VAL}: Globally increments \foocounter by VAL. % \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is % reset when counter OLDCTR is stepped. If % NEWCTR already defined produces 'c@NEWCTR % already defined' error. % \value{CTR} : produces the value of counter CTR, for use with % a \setcounter or \addtocounter command. % \stepcounter{FOO} : Globally increments counter \c@FOO % and resets all subsidiary counters. % \refstepcounter{FOO} : Same a \stepcounter, but it also defines % \@currentreference so that a subsequent % \label{bar} command causes \ref{bar} to % generate the current value of counter foo. % \@definecounter{FOO} : Initializes counter FOO (with empty reset list), % defines \p@FOO and \theFOO to be null. % Also adds FOO to \cl@@ckpt -- the reset % list of a dummy counter @ckpt used for % taking checkpoints. % \@addtoreset{FOO}{BAR} : Adds counter FOO to the list of counters % \cl@BAR to be reset when counter bar is stepped. % % NUMBERING MACROS: % \arabic{COUNTER} : Representation of COUNTER as arabic numerals. % Changed 29 Apr 86 to make it print the obvious thing % it COUNTER not positive. % % \roman{COUNTER} : Representation of COUNTER as lower-case % Roman numerals. % \Roman{COUNTER} : Representation of COUNTER as upper-case % Roman numerals. % \alph{COUNTER} : Representation of COUNTER as a lower-case % letter: 1 = a, 2 = b, etc. % \Alph{COUNTER} : Representation of COUNTER as an upper-case % letter: 1 = A, 2 = B, etc. % \fnsymbol{COUNTER} : Representation of COUNTER as a footnote % symbol: 1 = *, 2 = \dagger, etc. Can be % used only in math mode. % % THE ABOVE ARE IMPLEMENTED IN TERMS OF THE FOLLOWING: % \@arabic\FOOcounter : Representation of \FOOcounter as arabic numerals. % \@roman\FOOcounter : Representation of \FOOcounter as lower-case % Roman numerals. % \@Roman\FOOcounter : Representation of \FOOcounter as upper-case % Roman numerals. % \@alph\FOOcounter : Representation of \FOOcounter as a lower-case % letter: 1 = a, 2 = b, etc. % \@Alph\FOOcounter : Representation of \FOOcounter as an upper-case % letter: 1 = A, 2 = B, etc. % \@fnsymbol\FOOcounter : Representation of \FOOcounter as a footnote % symbol. Can be used only in math mode. \def\setcounter#1#2{\@ifundefined{c@#1}{\@nocnterr}% {\global\csname c@#1\endcsname#2\relax}} \def\addtocounter#1#2{\@ifundefined{c@#1}{\@nocnterr}% {\global\advance\csname c@#1\endcsname #2\relax}} \def\newcounter#1{\expandafter\@ifdefinable \csname c@#1\endcsname {\@definecounter{#1}}\@ifnextchar[{\@newctr{#1}}{}} \def\value#1{\csname c@#1\endcsname} \def\@newctr#1[#2]{\@ifundefined{c@#2}{\@nocnterr}{\@addtoreset{#1}{#2}}} \def\stepcounter#1{\global\advance\csname c@#1\endcsname \@ne {\let\@elt\@stpelt \csname cl@#1\endcsname}} \def\@stpelt#1{\global\csname c@#1\endcsname \z@} \def\cl@@ckpt{\@elt{page}} \def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname \setcounter{#1}0 \expandafter\gdef\csname cl@#1\endcsname{}\@addtoreset {#1}{@ckpt}\expandafter\gdef\csname p@#1\endcsname{}\expandafter \gdef\csname the#1\endcsname{\arabic{#1}}} \def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}} % Numbering commands for definitions of \theCOUNTER and \list arguments. % \fnsymbol produces the standard footnoting symbols: asterisk, dagger, etc. % They can be used only in math mode. \def\arabic#1{\@arabic{\@nameuse{c@#1}}} \def\roman#1{\@roman{\@nameuse{c@#1}}} \def\Roman#1{\@Roman{\@nameuse{c@#1}}} \def\alph#1{\@alph{\@nameuse{c@#1}}} \def\Alph#1{\@Alph{\@nameuse{c@#1}}} \def\fnsymbol#1{\@fnsymbol{\@nameuse{c@#1}}} \def\@arabic#1{\number #1} %% changed 29 Apr 86 \def\@roman#1{\romannumeral #1} \def\@Roman#1{\expandafter\uppercase\expandafter{\romannumeral #1}} \def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi} \def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else\@ctrerr\fi} \def\@Alph#1{\ifcase#1\or A\or B\or C\or D\else\@Ialph{#1}\fi} \def\@Ialph#1{\ifcase#1\or \or \or \or \or E\or F\or G\or H\or I\or J\or K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z\else\@ctrerr\fi} \def\@fnsymbol#1{\ifcase#1\or *\or \dagger\or \ddagger\or \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger \or \ddagger\ddagger \else\@ctrerr\fi\relax} \message{page nos.,} % **************************************** % * PAGE NUMBERING * % **************************************** % % Page numbers are produced by a page counter, used just like any other % counter. The only difference is that \c@page contains the number of % the next page to be output (the one currently being produced), rather % than one minus it. Thus, it is normally initialized to 1 rather than % 0. \c@page is defined to be \count0, rather than a count assigned by % \newcount. % % The user sets the pagenumber style with the \pagenumbering{FOO} % command, which sets the page counter to 1 and defines \thepage to be % \FOO. For example, \pagenumbering{roman} causes pages to be numbered % i, ii, etc. \countdef\c@page=0 \c@page=1 \def\cl@page{} \def\pagenumbering#1{\global\c@page \@ne \gdef\thepage{\csname @#1\endcsname \c@page}} \message{x-ref,} % **************************************** % * CROSS REFERENCING MACROS * % **************************************** % % The user writes \label{foo} to define the following cross-references: % \ref{foo} : value of most recently incremented referencable counter. % in the current environment. (Chapter, section, theorem % and enumeration counters counters are referencable, % footnote counters are not.) % \pageref{foo} : page number at which \label{foo} command appeared. % where foo can be any string of characters not containing '\', '{' or '}'. % % Note: The scope of the \label command is delimited by environments, so % \begin{theorem} \label{foo} ... \end{theorem} \label{bar} % defines \ref{foo} to be the theorem number and \ref{bar} to be % the current section number. % % Note: \label does the right thing in terms of spacing -- i.e., % leaving a space on both sides of it is equivalent to leaving % a space on either side. % % This is implemented as follows. A referencable counter CNT is % incremented by the command \refstepcounter{CNT} , which sets % \@currentlabel == {CNT}{eval(\p@cnt\theCNT)}. The command % \label{FOO} then writes the following on file \@auxout : % \newlabel{FOO}{{eval(\@currentlabel)}{eval(\thepage)}} % % \ref{FOO} == % BEGIN % if \r@foo undefined % then ?? % Warning: 'reference foo on page ... undefined' % else \@car \eval(\r@FOO)\@nil % fi % END % % \pageref{foo} = % BEGIN % if \r@foo undefined % then ?? % Warning: 'reference foo on page ... undefined' % else \@cdr \eval(\r@FOO)\@nil % fi % END % %% RmS 91/10/25: added a few extra \reset@font, %% as suggested by Bernd Raichle \def\ref#1{\@ifundefined{r@#1}{{\reset@font\bf ??}\@warning {Reference `#1' on page \thepage \space undefined}}{\edef\@tempa{\@nameuse{r@#1}}\expandafter \@car\@tempa \@nil\null}} \def\pageref#1{\@ifundefined{r@#1}{{\reset@font\bf ??}\@warning {Reference `#1' on page \thepage \space undefined}}{\edef\@tempa{\@nameuse{r@#1}}\expandafter \@cdr\@tempa\@nil\null}} \def\newlabel#1#2{\@ifundefined{r@#1}{}{\@warning{Label `#1' multiply defined}}\global\@namedef{r@#1}{#2}} % \label and \refstepcounter changed to allow \protect'ed commands to % work properly. For example, % \def\thechapter{\protect\foo{\arabic{chapter}.\roman{section}}} % will cause a \label{bar} command to define \ref{bar} to expand to % something like \foo{4.d}. Change made 20 Jul 88. \def\label#1{\@bsphack\if@filesw {\let\thepage\relax \def\protect{\noexpand\noexpand\noexpand}% \edef\@tempa{\write\@auxout{\string \newlabel{#1}{{\@currentlabel}{\thepage}}}}% \expandafter}\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack} \def\refstepcounter#1{\stepcounter{#1}\let\@tempa\protect \def\protect{\noexpand\protect\noexpand}% \edef\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname}% \let\protect\@tempa} \def\@currentlabel{} % For \label commands that come before any environment \message{environments,} % **************************************** % * ENVIRONMENTS * % **************************************** % % \begin{foo} and \end{foo} are used to delimit environment foo. % \begin{foo} starts a group and calls \foo if it is defined, otherwise % it does nothing. \end{foo} checks to see that it matches the % corresponding \begin and if so, it calls \endfoo and does an % \endgroup. Otherwise, \end{foo} does nothing. % % If \end{foo} needs to ignore blanks after it, then \endfoo should % globally set the @ignore switch true with \global\@ignoretrue. % % \@currenvir : the name of the current environment. Initialized to % 'document' to make \end{document} work right. % % \@preamblecmds : a list of commands that can be used only in the % preamble (before the \begin{document}), in the % form \do \CMDA \do \CMDB ... . These commands % are redefined to \@notprerr by \begin{document} % to save space. They include the following: % \document \documentstyle \@documentstyle % \@options \@preamblecmds \@optionlist % \@optionfiles \nofiles \includeonly \makeindex % \makeglossary % The document style can add any other commands to % this list by % \def\do{\noexpand\do\noexpand} % \edef\@preamblecmds{\@preamblecmds \do ...} % % NOTE: \@@end is defined to be the \end command of TeX82. % % \enddocument is the user's command for ending the manuscript file. % % \stop is a panic button -- to end TeX in the middle. % % \enddocument == % BEGIN % \@checkend{document} %% checks for unmatched \begin % \clearpage % \begingroup % if @filesw = true % then close file @mainaux % \global \@namedef {ARG1}{ARG2} == null % \newlabel{LABEL}{VAL} == % BEGIN % \@tempa == VAL % if def(\@tempa) = def(\r@LABEL) % else @tempswa := true fi % END % \bibcite{LABEL}{VAL} == null % BEGIN % \@tempa == VAL % if def(\@tempa) = def(\g@LABEL) % else @tempswa := true fi % END % @tempswa := false % make @ a letter % \input \jobname.AUX % if @tempswa = true % then LaTeX Warning: 'Label may have changed. % Rerun to get cross-references right.' % fi fi % \endgroup % finish up % END % % \@writefile{EXT}{ENTRY} == % if tf@EXT undefined % else \write\tf@EXT{ENTRY} % fi % \def\@currenvir{document} \def\@preamblecmds{\do\document \do\documentstyle \do\@documentstyle \do\@options \do\@preamblecmds \do\@optionlist \do\@optionfiles \do\nofiles \do\includeonly \do\makeindex \do\makeglossary} \newif\if@ignore \def\enddocument{\@checkend{document}\clearpage\begingroup \if@filesw \immediate\closeout\@mainaux \def\global\@namedef##1##2{}\def\newlabel{\@testdef r}% \def\bibcite{\@testdef b}\@tempswafalse \makeatletter\input \jobname.aux \if@tempswa \@@warning{Label(s) may have changed. Rerun to get cross-references right}\fi\fi\endgroup\deadcycles\z@\@@end} \def\@testdef #1#2#3{\def\@tempa{#3}\expandafter \ifx \csname #1@#2\endcsname \@tempa \else \@tempswatrue \fi} \long\def\@writefile#1#2{\@ifundefined{tf@#1}{}{% \immediate\write\csname tf@#1\endcsname{#2}}} % \long added 8 Feb 90, as suggested by Chris Rowley \def\stop{\clearpage\deadcycles\z@\let\par\@@par\@@end} \everypar{\@nodocument} %% To get an error if text appears before the \nullfont %% \begin{document} % \begin, \end, and \@checkend changed so \end{document} will catch % an unmatched \begin. Changed 24 May 89 as suggested by % Frank Mittelbach and Rainer Sch\"opf. % \begin{NAME} == % BEGIN % IF \NAME undefined THEN \@tempa == BEGIN report error END % ELSE \@tempa == (\@currenvir :=L NAME) \NAME % FI % @ignore :=G F %% Added 30 Nov 88 % \begingroup % \@currenvir :=L NAME % \NAME % END % \end{NAME} == % BEGIN % \endNAME % \@checkend{NAME} % IF @endpe = T %% @endpe set True by \@endparenv % THEN \@gtempa :=G \@doendpe %% \@doendpe redefines \par and \everypar % ELSE \@gtempa :=G \relax %% to suppress paragraph indentation in % FI %% immediately following text % \endgroup % \@gtempa % IF @ignore = T % THEN @ignore :=G F % \ignorespaces % FI % END % \@checkend{NAME} == % BEGIN % IF \@currenvir = NAME % ELSE \@badend{NAME} % FI % END %% RmS 92/03/18: changed \@ignoretrue to \@ignorefalse (as documented) \def\begin#1{\@ifundefined{#1}{\def\@tempa{\@latexerr{Environment #1 undefined}\@eha}}{\def\@tempa{\def\@currenvir{#1}% \csname #1\endcsname}}\global\@ignorefalse %% \global... added 2 May 90 \begingroup\@endpefalse\@tempa} \def\end#1{\csname end#1\endcsname\@checkend{#1}% \expandafter\endgroup \if@endpe \@doendpe \fi \if@ignore \global\@ignorefalse \ignorespaces\fi} \def\@checkend#1{\def\@tempa{#1}\ifx \@tempa\@currenvir \else\@badend{#1}\fi} \message{math,} % ********************************************** % * MATH ENVIRONMENTS * % ********************************************** % % \( == BEGIN if math mode % then error: '\( in math mode' % else $ % fi % END % % \) == BEGIN if math mode % then if inner mode % then $ % else error ``\[ closed with \)'' % else error 'unmatched \)' % fi % END % % \[ == BEGIN if math mode % then error: '\[ in math mode' % else $$ % fi % END % % \] == BEGIN if math mode % then if inner mode % then error '\( closed with \]' % else $$ % else error 'unmatched \]' % fi % END % % \equation == BEGIN \refstepcounter{equation} $$ END % % \endequation == BEGIN \eqno (\theequation) $$\ignorespaces END % % NOTE: The document style must define \theequation etc., and do % the appropriate \@addtoreset. It should also redefine \@eqnnum % if another format for the equation number is desired other than the % standard (...), or to move the equation numbers to the flushleft. % (See comment on the \def of \@eqnnum.) % % \stackrel{TOP}{BOT} == PLAIN TeX's \buildrel {TOP} \over {BOT} % % \frac{TOP}{BOT} == {TOP \over BOT} % % \sqrt[N]{EXP} produces an Nth root of EXP formula. % % \: == \> (medium space) \def\({\relax\ifmmode\@badmath\else$%%$BRACE MATCH HACK \fi} \def\){\relax\ifmmode\ifinner$\else\@badmath%%$ BRACE MATCH HACK \fi\else \@badmath\fi} \def\[{\relax\ifmmode\@badmath\else \ifvmode \nointerlineskip \makebox[.6\linewidth]\fi$$%%$$ BRACE MATCH HACK \fi} \def\]{\relax\ifmmode\ifinner\@badmath\else$$\fi%%$$ BRACE MATCH HACK \else \@badmath \fi\ignorespaces} \let\math=\( \let\endmath=\) \def\displaymath{\[} \def\enddisplaymath{\]\global\@ignoretrue} \@definecounter{equation} \def\equation{$$ % $$ BRACE MATCHING HACK \refstepcounter{equation}} %% RmS 92/01/10: put \hbox around \@eqnnum to typeset the equation %% number in text mode (as in the eqnarray env.). \def\endequation{\eqno \hbox{\@eqnnum}% $$ BRACE MATCHING HACK $$\global\@ignoretrue} % \@eqnnum: Produces the equation number for equation and % eqnarray environments. The following definition is for % flushright numbers; for flushleft numbers, see leqno.doc. % The {\rm ... } puts the equation number in roman type even if % an eqnarray environment appears in an italic environment. % %% RmS 91/09/29: \reset@font added. \def\@eqnnum{{\reset@font\rm (\theequation)}} \def\stackrel#1#2{\mathrel{\mathop{#2}\limits^{#1}}} \def\frac#1#2{{#1\over #2}} \let\@@sqrt=\sqrt \def\sqrt{\@ifnextchar[{\@sqrt}{\@@sqrt}} \def\@sqrt[#1]{\root #1\of} \let\:=\> % Here's the eqnarray environment: % Default is for left-hand side of equations to be flushleft. % To make them flushright, \let\@eqnsel = \hfil \newcount\@eqcnt \newcount\@eqpen \newif\if@eqnsw\@eqnswtrue \@centering = 0pt plus 1000pt % Changed 11/4/85 to produce warning message % if line extends into margin. Doesn't warn % about formula overprinting equation number. \def\eqnarray{\stepcounter{equation}\let\@currentlabel\theequation \global\@eqnswtrue\m@th \global\@eqcnt\z@\tabskip\@centering\let\\\@eqncr $$\halign to\displaywidth\bgroup\@eqnsel\hskip\@centering $\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne \hskip 2\arraycolsep \hfil${##}$\hfil &\global\@eqcnt\tw@ \hskip 2\arraycolsep $\displaystyle\tabskip\z@{##}$\hfil \tabskip\@centering&\llap{##}\tabskip\z@\cr} \def\endeqnarray{\@@eqncr\egroup \global\advance\c@equation\m@ne$$\global\@ignoretrue} \let\@eqnsel=\relax \def\nonumber{\global\@eqnswfalse} \def\@eqncr{{\ifnum0=`}\fi\@ifstar{\global\@eqpen\@M \@yeqncr}{\global\@eqpen\interdisplaylinepenalty \@yeqncr}} \def\@yeqncr{\@ifnextchar [{\@xeqncr}{\@xeqncr[\z@]}} \def\@xeqncr[#1]{\ifnum0=`{\fi}\@@eqncr \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}} \def\@@eqncr{\let\@tempa\relax \ifcase\@eqcnt \def\@tempa{& & &}\or \def\@tempa{& &}% \else \def\@tempa{&}\fi \@tempa \if@eqnsw\@eqnnum\stepcounter{equation}\fi \global\@eqnswtrue\global\@eqcnt\z@\cr} % Here's the eqnarray* environment: \let\@seqncr=\@eqncr \@namedef{eqnarray*}{\def\@eqncr{\nonumber\@seqncr}\eqnarray} \@namedef{endeqnarray*}{\nonumber\endeqnarray} % \lefteqn{FORMULA} typesets FORMULA in display math style % flushleft in a box of width zero. % \def\lefteqn#1{\hbox to\z@{$\displaystyle #1$\hss}} \message{center,} % ************************************************ % * CENTER, FLUSHRIGHT, FLUSHLEFT, ETC. * % ************************************************ % % % \center, \flushright and \flushleft set % \rightskip = 0pt or \@flushglue (as appropriate) % \leftskip = 0pt or \@flushglue (as appropriate) % \parindent = 0pt % \parfillskip = 0pt. (except \flushleft) % \\ == \par \vskip -\parskip % \\[LENGTH] == \\ \vskip LENGTH % \\* == \par \penalty 10000 \vskip -\parskip % \\*[LEN] == \\* \vskip LENGTH % % They invoke the trivlist environment to handle vertical spacing before % and after them. % % \centering, \raggedright and \raggedleft are the declaration analogs % of the above. % % \raggedright has a more universal effect, however. It sets % \@rightskip := flushglue. Every environment, like the list environments, % that set \rightskip to its 'normal' value set it to \@rightskip \def\@centercr{\ifhmode \unskip\else \@badcrerr\fi \par\@ifstar{\penalty \@M\@xcentercr}{\@xcentercr}} \def\@xcentercr{\addvspace{-\parskip}\@ifnextchar [{\@icentercr}{\ignorespaces}} \def\@icentercr[#1]{\vskip #1\ignorespaces} \def\center{\trivlist \centering\item[]} \def\centering{\let\\=\@centercr\rightskip\@flushglue\leftskip\@flushglue \parindent\z@\parfillskip\z@} \let\endcenter=\endtrivlist \newskip\@rightskip \@rightskip \z@ \def\flushleft{\trivlist \raggedright\item[]} \def\raggedright{\let\\=\@centercr\@rightskip\@flushglue \rightskip\@rightskip \leftskip\z@ \parindent\z@} \let\endflushleft=\endtrivlist \def\flushright{\trivlist \raggedleft\item[]} \def\raggedleft{\let\\=\@centercr\rightskip\z@\leftskip\@flushglue \parindent\z@\parfillskip\z@} \let\endflushright=\endtrivlist \message{verbatim,} % **************************************** % * VERBATIM * % **************************************** % % The verbatim environment uses the fixed-width \tt font, turns blanks into % spaces, starts a new line for each carrige return (or sequence of % consecutive carriage returns), and interprets EVERY character literally. % I.e., all special characters \, {, $, etc. are \catcode'd to 'other'. % % The command \verb produces in-line verbatim text, where the argument % is delimited by any pair of characters. E.g., \verb #...# takes % '...' as its argument, and sets it verbatim in \tt font. % % The *-variants of these commands is the same, except that spaces % print as the TeXbook's space character instead of as blank spaces. {\catcode`\^^M=13 \gdef\@gobblecr{\@ifnextchar {\@gobble}{\ignorespaces}}} {\catcode`\ =\active\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}} % Definition of \@xobeysp chaned on 19 Nov 86 from % \def\@xobeysp{\leavevmode{} } % to prevent line breaks at spaces. Change suggested by % Nelson Beebe % \def\@xobeysp{\leavevmode\penalty10000\ } \begingroup \catcode `|=0 \catcode `[= 1 \catcode`]=2 \catcode `\{=12 \catcode `\}=12 \catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]] |gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]] |endgroup % \@sverbatim obsolete -- removed 24 May 89, as suggested by % Rainer Sch\"opf and Frank Mittelbach % \def\@sverbatim{\obeyspaces\@verbatim} \def\@gobble#1{} % 91/07/24 RmS: added \penalty\interlinepenalty to definition % of \par so that \samepage works. \def\@verbatim{\trivlist \item[]\if@minipage\else\vskip\parskip\fi \leftskip\@totalleftmargin\rightskip\z@ \parindent\z@\parfillskip\@flushglue\parskip\z@ %%RmS 91/08/26 Added \@@par to clear possible \parshape definition %%from a surrounding list (the verbatim guru says) \@@par \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par \penalty\interlinepenalty}% \obeylines \tt \catcode``=13 \@noligs \let\do\@makeother \dospecials} \def\verbatim{\@verbatim \frenchspacing\@vobeyspaces \@xverbatim} \let\endverbatim=\endtrivlist \@namedef{verbatim*}{\@verbatim\@sxverbatim} \expandafter\let\csname endverbatim*\endcsname =\endtrivlist \def\@makeother#1{\catcode`#1=12\relax} \def\verb{\begingroup \catcode``=13 \@noligs \tt \let\do\@makeother \dospecials \@ifstar{\@sverb}{\@verb}} % Definitions of \@sverb and \@verb changed so \verb+ foo+ does not lose % leading blanks when it comes at the beginning of a line. % Change made 24 May 89. Suggested by Frank Mittelbach and Rainer Sch\"opf. % \def\@sverb#1{\def\@tempa ##1#1{\leavevmode\null##1\endgroup}\@tempa} \def\@verb{\@vobeyspaces \frenchspacing \@sverb} %% \@noligs prevents ?` and !` from being treated as ligatures %% added 19 April 86 \begingroup \catcode``=13 \gdef\@noligs{\let`\@lquote} \endgroup %% RmS 91/06/21: added \leavevmode to definition of \@lquote %% to avoid the \kern being processed in vertical mode \def\@lquote{\leavevmode{\kern\z@}`} \message{list,} % **************************************** % * THE LIST ENVIRONMENT * % **************************************** % % The generic commands for creating an indented environment -- enumerate, % itemize, quote, etc -- are % \list{LABEL}{COMMANDS} ... \endlist % which can be invoked by the user as the list environment. The LABEL % argument specifies item labeling. COMMANDS contains commands for % changing the horizontal and vertical spacing parameters. % % Each item of the environment is begun by the command \item[ITEMLABEL] % which produces an item labeled by ITEMLABEL. If the argument is % missing, then the LABEL argument of the \list command is used as the % item label. % % The label is formed by putting \makelabel{ITEMLABEL} in an hbox whose % width is either its natural width or else \labelwidth, whichever is % larger. The \list command defines \makelabel to have the default % definition % \makelabel{ARG} == BEGIN \hfil ARG END % which, for a label of width less than \labelwidth, puts the label % flushright, \labelsep to the left of the item's text. However, % \makelabel can be \let to another command by the \list's COMMANDS % argument. % % A \usecounter{foo} command in the second argument causes the counter % foo to be initialized to zero, and stepped by every \item command % without an argument. (\label commands within the list refer to this % counter.) % % When you leave a list environment, returning either to an enclosing % list or normal text mode, LaTeX begins a new paragraph if and only if % you leave a blank line after the \end command. This is accomplished % by the \@endparenv command. % % Blank lines are ignored every other reasonable place--i.e.: % - Between the \begin{list} and the first \item, % - Between the \item and the text of that item. % - Between the end of the last item and the \end{list}. % % For an environment like quotation, in which items are not labeled, % the entire environment is a single item. It is defined by % letting \quotation == \list{}{...}\item[]. (Note the [], there in % case the first character in the environment is a '['.) The spacing % parameters provide a great deal of flexability in designing the % format, including the ability to let the indentation of the first % paragraph be different from that of the subsequent ones. % % The trivlist environment is equivalent to a list environment % whose second argument sets the following parameter values: % \leftmargin = 0 : causes no indentation of left margin % \labelwidth = 0 : see below for precise effect this has. % \itemindent = 0 : with a null label, makes first paragraph % have no indentation. Succeeding paragraphs have \parindent % indentation. To give first paragraph same indentation, set % \itemindent = \parindent before the \item[]. % Every \item in a trivlist environment must have an argument---in many % cases, this will be the null argument (\item[]). The trivlist % environment is mainly used for paragraphing environments, like % verbatim, in which there is no margin change. It provides the same % vertical spacing as the list environment, and works reasonably well % when it occurs immediately after an \item command in an enclosing list. % % The following variables are used inside a list environment: % \@totalleftmargin : The distance that the prevailing left margin is % indented from the outermost left margin, % \linewidth : The width of the current line. Must be % initialized to \hsize. % \@listdepth : A count for holding current list nesting depth. % \makelabel : A macro with a single argument, used to generate % the label from the argument (given or implied) of the % \item command. Initialized to \@mklab by the \list % command. This command must produce some stretch--i.e., % an \hfil. % @inlabel : A switch that is false except between the time an % \item is encountered and the time that TeX actually % enters horizontal mode. Should be tested by % commands that can be messed up by the list % environment's use of \everypar. % \box\@labels : When @inlabel = true, it holds the labels % to be put out by \everypar. % @noparitem : A switch set by \list when @inlabel = true. % Handles the case of a \list being the first thing % in an item. % @noparlist : A switch set true for a list that begins an % item. No \topsep space is added before or after % such a list. % @newlist : Set true by \list, set false by the first \item's % text (by \everypar). % @noitemarg : Set true when executing an \item with no explicit % argument. Used to save space. To save time, % make two separate \@item commands. % @nmbrlist : Set true by \usecounter command, causes list to % be numbered. % \@listctr : \def'ed by \usecounter to name of counter. % @noskipsec : A switch set true by a sectioning command when it is % creating an in-text heading with \everypar. % % Throughout a list environment, \hsize is the width of the current % line, measured from the outermost left margin to the outermost right % margin. Environments like tabbing should use \linewidth instead of % \hsize. % % Here are the parameters of a list that can be set by commands in % the \list's COMMANDS argument. These parameters are all TeX % skips or dimensions (defined by \newskip or \newdimen), so the usual % TeX or LaTeX commands can be used to set them. The commands will % be executed in vmode if and only if the \list was preceded by a % \par (or something like an \end{list}), so the spacing parameters % can be set according to whether the list is inside a paragraph % or is its own paragraph. % % VERTICAL SPACING (skips): % % \topsep : Space between first item and preceding paragraph. % \partopsep : Extra space added to \topsep when environment starts % a new paragraph (is called in vmode). % \itemsep : Space between successive items. % \parsep : Space between paragraphs within an item -- the \parskip % for this environment. % % PENALTIES % \@beginparpenalty : put at the beginning of a list % \@endparpenalty : put at end of list % \@itempenalty : put between items. % % HORIZONTAL SPACING (dimens) % \leftmargin : space between left margin of enclosing environment % (or of page if top level list) and left margin of % this list. Must be nonnegative. % \rightmargin : analogous. % \listparindent : extra indentation at beginning of every paragraph % of a list except the one started by the \item % command. May be negative! Usually, labeled lists % have \listparindent equal to zero. % \itemindent : extra indentation added right BEFORE an item label. % \labelwidth : nominal width of box that contains the label. % If the natural width of the label < = \labelwidth, % then the label is flushed right inside a box % of width \labelwidth (with an \hfil). Otherwise, % a box of the natural width is employed, which causes % an indentation of the text on that line. % \labelsep : space between end of label box and text of % first item. % % DEFAULT VALUES: % Defaults for the list environment are set as follows. % First, \rightmargin, \listparindent and \itemindent are set % to 0pt. Then, one of the commands \@listi, \@listii, ... , \@listvi % is called, depending upon the current level of the list. % The \@list... commands should be defined by the document % style. A convention that the document style should follow is % to set \leftmargin to \leftmargini, ... , \leftmarginvi for % the appropriate level. Items that aren't changed may be left % alone, but everything that could possibly be changed must be % reset. % % \list{LABEL}{COMMANDS} == % BEGIN % if \@listdepth > 5 % then LaTeX error: 'Too deeply nested' % else \@listdepth :=G \@listdepth + 1 % fi % \rightmargin := 0pt % \listparindent := 0pt % \itemindent := 0pt % \eval(@list \romannumeral\the\@listdepth) %% Set default values: % \@itemlabel :=L LABEL % \makelabel == \@mklab % @nmbrlist :=L false % COMMANDS % % \@trivlist % commands common to \list and \trivlist % % \parskip :=L \parsep % \parindent :=L \listparindent % \linewidth :=L \linewidth - \rightmargin -\leftmargin % \@totalleftmargin :=L \@totalleftmargin + \leftmargin % \parshape 1 \@totalleftmargin \linewidth % \ignorespaces % gobble space up to \item % END % % \endlist == BEGIN \@listdepth :=G \@listdepth -1 % \endtrivlist % END % % \@trivlist == % BEGIN % if @newlist = T then \@noitemerr fi %% This command removed for some % %% forgotten reason. % \@topsepadd :=L \topsep % if @noskipsec then leave vertical mode fi %% Added 11 Jun 85 % if vertical mode % then \@topsepadd :=L \@topsepadd + \partopsep % else \unskip \par % remove glue from end of last line % fi % if @inlabel = true % then @noparitem :=L true % @noparlist :=L true % else @noparlist :=L false % \@topsep :=L \@topsepadd % fi % \@topsep :=L \@topsep + \parskip %% Change 4 Sep 85 % \leftskip :=L 0pt % Restore paragraphing parameters % \rightskip :=L \@rightskip % \parfillskip :=L 0pt + 1fil % % NOTE: \@setpar called on every \list in case \par has been temporarily % munged before the \list command. % \@setpar{if @newlist = false then {\@@par} fi} % \@newlist :=G T % \@outerparskip :=L \parskip % END % % \trivlist == % BEGIN % \parsep := \parskip % \@trivlist % \labelwidth := 0 % \leftmargin := 0 % \itemindent := \parindent % \makelabel{LABEL} == LABEL % END % % \endtrivlist == % BEGIN % if @inlabel = T then \indent fi % if horizontal mode then \unskip \par fi % if @noparlist = true % else if \lastskip > 0 % then \@tempskipa := \lastskip % \vskip - \lastskip % \vskip \@tempskipa -\@outerparskip + \parskip % fi % \@endparenv % fi % END % % \@endparenv == % BEGIN % \addpenalty{@endparpenalty} % \addvspace{\@topsepadd} % \endgroup %% ends the \begin command's \begingroup % \par == BEGIN % \@restorepar % \everypar{} % \par % END % \everypar == BEGIN remove \lastbox \everypar{} END % \begingroup %% to match the \end commands \endgroup % END % % \item == BEGIN if next char = [ % then \@item % else @noitemarg := true % \@item[@itemlabel] % END % % \@item[LAB] == % BEGIN % if @noparitem = true % then @noparitem := false % NOTE: then clause % % hardly every taken, % \box\@labels :=G \hbox{\hskip -\leftmargin % so made a macro % \box\@labels % \@donoparitem % \hskip \leftmargin } % if @minipage = false then % \@tempskipa := \lastskip % \vskip -\lastskip % \vskip \@tempskipa + \@outerparskip - \parskip % fi % else if @inlabel = true % then \indent \par % previous item empty. % fi % if hmode then 2 \unskip's % To remove any space at end of prev. % \par % paragraph that could cause a blank % fi % line. % if @newlist = T % then if @nobreak = T % Kludge if list follows \section % then \addvspace{\@outerparskip - \parskip} % else \addpenalty{\@beginparpenalty} % \addvspace{\@topsep} % \addvspace{-\parskip} %% added 4 Sep 85 % fi % else \addpenalty{\@itempenalty} % \addvspace{\itemsep} % fi % @inlabel :=G true % fi % % \everypar{ @minipage :=G F % @newlist :=G F % if @inlabel = true % then @inlabel :=G false % \hskip -\parindent % \box\@labels % \penalty 0 %% 3 Oct 85 -- allow line break here % \box\@labels :=G null % fi % \everypar{} } % @nobreak :=G false % if @noitemarg = true % then @noitemarg := false % if @nmbrlist % then \refstepcounter{\@listctr} % fi fi % \@tempboxa :=L \hbox{\makelabel{LAB}} % \box\@labels :=G \@labels \hskip \itemindent % \hskip - (\labelwidth + \labelsep) % if \wd \@tempboxa > \labelwidth % then \box\@tempboxa % else \hbox to \labelwidth {\makelabel{LAB}} % fi % \hskip\labelsep % \ignorespaces %gobble space up to text % END % % \usecounter{CTR} == BEGIN @nmbrlist :=L true % \@listctr == CTR % \setcounter{CTR}{0} % END % % DEFINE \dimen's and \count \newskip\topsep \newskip\partopsep \newskip\itemsep \newskip\parsep \newskip\@topsep \newskip\@topsepadd \newskip\@outerparskip \newdimen\leftmargin \newdimen\rightmargin \newdimen\listparindent \newdimen\itemindent \newdimen\labelwidth \newdimen\labelsep \newdimen\linewidth \newdimen\@totalleftmargin \@totalleftmargin=\z@ \newdimen\leftmargini \newdimen\leftmarginii \newdimen\leftmarginiii \newdimen\leftmarginiv \newdimen\leftmarginv \newdimen\leftmarginvi \newcount\@listdepth \@listdepth=0 \newcount\@itempenalty \newcount\@beginparpenalty \newcount\@endparpenalty \newbox\@labels \newif\if@inlabel \@inlabelfalse \newif\if@newlist \@newlistfalse \newif\if@noparitem \@noparitemfalse \newif\if@noparlist \@noparlistfalse \newif\if@noitemarg \@noitemargfalse \newif\if@nmbrlist \@nmbrlistfalse \def\list#1#2{\ifnum \@listdepth >5\relax \@toodeep \else \global\advance\@listdepth\@ne \fi \rightmargin \z@ \listparindent\z@ \itemindent\z@ \csname @list\romannumeral\the\@listdepth\endcsname \def\@itemlabel{#1}\let\makelabel\@mklab \@nmbrlistfalse #2\relax \@trivlist \parskip\parsep \parindent\listparindent \advance\linewidth -\rightmargin \advance\linewidth -\leftmargin \advance\@totalleftmargin \leftmargin \parshape \@ne \@totalleftmargin \linewidth \ignorespaces} \def\@trivlist{\@topsepadd\topsep \if@noskipsec \leavevmode \fi \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi \if@inlabel \@noparitemtrue \@noparlisttrue \else \@noparlistfalse \@topsep\@topsepadd \fi \advance\@topsep \parskip \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue \@setpar{\if@newlist\else{\@@par}\fi}% \global\@newlisttrue \@outerparskip\parskip} %% RmS 92/03/18 added \@nmbrlistfalse \def\trivlist{\parsep\parskip\@nmbrlistfalse \@trivlist \labelwidth\z@ \leftmargin\z@ \itemindent\z@ \def\makelabel##1{##1}} \def\endlist{\global\advance\@listdepth\m@ne \endtrivlist} % Definition of \endtrivlist moved earlier in file so other commands % can be \let = to it. \def\@mklab#1{\hfil #1} \def\item{\@ifnextchar [{\@item}{\@noitemargtrue \@item[\@itemlabel]}} \def\@donoparitem{\@noparitemfalse \global\setbox\@labels\hbox{\hskip -\leftmargin \unhbox\@labels \hskip \leftmargin}\if@minipage\else \@tempskipa\lastskip \vskip -\lastskip \advance\@tempskipa\@outerparskip \advance\@tempskipa -\parskip \vskip\@tempskipa\fi} \def\@item[#1]{\if@noparitem \@donoparitem \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else \addpenalty\@beginparpenalty \addvspace\@topsep \addvspace{-\parskip}\fi \else \addpenalty\@itempenalty \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{\global\@minipagefalse\global\@newlistfalse \if@inlabel\global\@inlabelfalse \hskip -\parindent \box\@labels \penalty\z@ \fi \everypar{}}\global\@nobreakfalse \if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi \setbox\@tempboxa\hbox{\makelabel{#1}}% \global\setbox\@labels \hbox{\unhbox\@labels \hskip \itemindent \hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa >\labelwidth \box\@tempboxa %% RmS 91/11/22: Changed second call to \makelabel to \unhbox\@tempboxa. %% Avoids problems with side effects in \makelabel and is %% more efficient. % \else \hbox to\labelwidth {\makelabel{#1}}\fi \else \hbox to\labelwidth {\unhbox\@tempboxa}\fi \hskip \labelsep}\ignorespaces} %% RmS 91/11/04: added default definition for \makelabel, %% to produce an error message. \def\makelabel#1{\@latexerr{Lonely \string\item--perhaps a missing list environment}\@ehc} \def\@nbitem{\@tempskipa\@outerparskip \advance\@tempskipa -\parskip \addvspace{\@tempskipa}} \def\usecounter#1{\@nmbrlisttrue\def\@listctr{#1}\setcounter{#1}\z@} \message{itemize,} % **************************************** % * ITEMIZE AND ENUMERATE * % **************************************** % % Enumeration is done with four counters: enumi, enumii, enumiii % and enumiv, where enumN controls the numbering of the Nth level % enumeration. The label is generated by the commands % \labelenumi ... \labelenumiv, which should be defined by the % document style. Note that \p@enumN\theenumN defines the output % of a \ref command. A typical definition might be: % \def\theenumii{\alph{enumii}} % \def\p@enumii{\theenumi\theenumii} % \def\labelenumii{(\theenumii)} % which will print the labels as '(a)', '(b)', ... and print a \ref as % '3a'. % % The item numbers are moved to the right of the label box, so they are % always a distance of \labelsep from the item. % % \@enumdepth holds the current enumeration nesting depth. % % Itemization is controlled by four commands: \labelitemi, \labelitemii, % \labelitemiii, and \labelitemiv. To cause the second-level list to be % bulleted, you just define \labelitemii to be $\bullet$. \@itemspacing % and \@itemdepth are the analogs of \@enumspacing and \@enumdepth. % % \enumerate == % BEGIN % if \@enumdepth > 3 % then errormessage: ``Too deeply nested''. % else \@enumdepth :=L \@enumdepth + 1 % \@enumctr :=L eval(enum@\romannumeral\the\@enumdepth) % \list{\label(\@enumctr)} % {\usecounter{\@enumctr} % \makelabel{LABEL} == \hss \llap{LABEL}} % fi % END % % \endenumerate == \endlist % \newcount\@enumdepth \@enumdepth = 0 \@definecounter{enumi} \@definecounter{enumii} \@definecounter{enumiii} \@definecounter{enumiv} \def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else \advance\@enumdepth \@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list {\csname label\@enumctr\endcsname}{\usecounter {\@enumctr}\def\makelabel##1{\hss\llap{##1}}}\fi} \let\endenumerate =\endlist % \itemize == % BEGIN % if \@itemdepth > 3 % then errormessage: 'Too deeply nested'. % else \@itemdepth :=L \@itemdepth + 1 % \@itemitem == eval(labelitem\romannumeral\the\@itemdepth) % \list{\@nameuse{\@itemitem}} % {\makelabel{LABEL} == \hss \llap{LABEL}} % fi % END % % \enditemize == \endlist % \newcount\@itemdepth \@itemdepth = 0 \def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss\llap{##1}}}\fi} \let\enditemize =\endlist \message{boxes,} % ********************************************* % * BOXES * % ********************************************* % % USER COMMANDS: % % \makebox [WID][POS]{OBJ} % : puts OBJ in an \hbox of width WID, positioned by POS. % POS = l -> flushleft, POS = r -> flushright. % Default is centered. % If WID is missing, then POS is also missing and OBJ % is put in an \hbox of its natural width. % % \mbox{OBJ} == \makebox{OBJ}, and is more efficient. % % \makebox (X,Y)[POS]{OBJ} % : puts OBJ in an \hbox of width X * \unitlength % and height Y * \unitlength. POS arguments are % l or r for flushleft, flushright and t or b % for top, bottom -- or combinations like tr or rb. % Default for horizontal and vertical are centered. % % \newsavebox{\CMD} : If \CMD is undefined, then defines it % to be a TeX box register. % % \savebox {\CMD} ... : \CMD is defined to be a TeX box register, % and the '...' are any \makebox arguments. It is % like \makebox, except it doesn't produce text but % saves the value in \box \CMD. % \sbox N{OBJ} is an efficient abbreviation for % \savebox N{OBJ}. % % \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. % \fbox{OBJ} is an efficient abbreviation for \framebox{OBJ} % % \parbox[POS]{WIDTH}{TEXT} : Makes a box with \hsize TEXT, positioned % by POS as follows: % c : \vcenter (placed in $...$ if not in math mode) % b : \vbox % t : \vtop % default value is c. % Sets \hsize := WIDTH and calls \@parboxrestore, which does % the following: % Restores the original definitions of: % \par % \\ % \- \' \` \= % Resets the following parameters: % \parindent = 0pt % \parskip = 0pt %% added 20 Jan 87 % \linewidth = \hsize % \@totalleftmargin = 0pt % \leftskip = 0pt % \rightskip = 0pt % \@rightskip = 0pt % \parfillskip = 0pt plus 1fil % \lineskip = \normallineskip % \baselineskip = \normalbaselineskip % Calls \sloppy % % Note: \@arrayparboxrestore same as \@parboxrestore % but it doesn't restore \\. % % \minipage : Similar to parbox, except it also % makes this look like a page by setting % \textwidth == \columnwidth == box width % changes footnotes by redefining: % \@mpfn == mpfootnote % \thempfn == \thempfootnote % \@footnotetext == \@mpfootnotetext % resets the following list environment parameters % \@listdepth == \@mplistdepth % where \@mplistdepth is initialized to zero, % and executes \@minipagerestore to allow the document % style to reset any other parameters it desires. % It sets @minipage := T, and resets \everypar to set % it false. This switch keeps \addvspace from putting space % at the top of a minipage. % % Change added 24 May 89: \minipage sets @minipage globally; % \endminipage resets it false. % % % \rule [RAISED]{WIDTH}{HEIGHT} : Makes a WIDTH X HEIGHT rule, raised % RAISED. % % \underline {TEXT} : Makes an underlined hbox with TEXT in it. % % \raisebox{DISTANCE}[HEIGHT][DEPTH]{BOX} : Raises BOX up by DISTANCE % length (down if DISTANCE negative). Makes TeX think that % the new box extends HEIGHT above the line and DEPTH below, for % a total vertical length of HEIGHT+DEPTH. Default values of % HEIGHT & DEPTH = actual height and depth of box in new position. % % \makebox == % BEGIN % if next char = ( % then \@makepicbox % else if next char = [ % then \@makebox % else \mbox fi % fi % END % % \@makebox[LEN] == % BEGIN % leave vertical mode % if next char '[' then \@imakebox[LEN] % else \@imakebox[LEN][x] fi % END % % \@imakebox[LEN][POS]{OBJ} == % BEGIN % \hbox to LEN % { \mb@l :=L \mb@r :=L \hss % \let\mb@POS = \relax % \mb@l OBJ \mb@r } % END % % \@makepicbox(X,Y) == % BEGIN % leave vertical mode % if next char = [ then \@imakepicbox(X,Y) % else \@imakepicbox(X,Y)[] fi % END % % \@imakepicbox(X,Y)[POS]{OBJ} == % BEGIN % \vbox to Y * \unitlength % { \mb@l :=L \mb@r :=L \hss % \mb@t :=L \mb@b :=L \hss % tfor \@tempa := POS % one iteration for each token in POS % do \mb@eval(\@tempa) :=L null od % \mb@t % \hbox to X * \unitlength % {\mb@l OBJ \mb@r } % \mb@b} % END % \def\makebox{\@ifnextchar ({\@makepicbox}{\@ifnextchar [{\@makebox}{\mbox}}} \def\mbox#1{\leavevmode\hbox{#1}} \def\@makebox[#1]{\leavevmode\@ifnextchar [{\@imakebox[#1]}{\@imakebox[#1][x]}} \long\def\@imakebox[#1][#2]#3{\hbox to#1{\let\mb@l\hss \let\mb@r\hss \expandafter\let\csname mb@#2\endcsname\relax \mb@l #3\mb@r}} \def\@makepicbox(#1,#2){\leavevmode\@ifnextchar [{\@imakepicbox(#1,#2)}{\@imakepicbox(#1,#2)[]}} \long\def\@imakepicbox(#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{\expandafter\let \csname mb@\@tempa\endcsname\relax}% \mb@t\hbox to #1\unitlength{\mb@l #4\mb@r}\mb@b}} \def\newsavebox#1{\@ifdefinable#1{\newbox#1}} \def\savebox#1{\@ifnextchar ({\@savepicbox#1}{\@ifnextchar [{\@savebox#1}{\sbox#1}}} \def\sbox#1#2{\setbox#1\hbox{#2}} \def\@savebox#1[#2]{\@ifnextchar [{\@isavebox#1[#2]}{\@isavebox#1[#2][x]}} \long\def\@isavebox#1[#2][#3]#4{\setbox#1 \hbox{\@imakebox[#2][#3]{#4}}} \def\@savepicbox#1(#2,#3){\@ifnextchar [{\@isavepicbox#1(#2,#3)}{\@isavepicbox#1(#2,#3)[]}} \long\def\@isavepicbox#1(#2,#3)[#4]#5{\setbox#1 \hbox{\@imakepicbox (#2,#3)[#4]{#5}}} \def\usebox#1{\leavevmode\copy #1\relax} %% The following definition of \frame was written by Pavel Curtis %% (Extra space removed 14 Jan 88) \long\def\frame#1{\leavevmode \hbox{\hskip-\@wholewidth \vbox{\vskip-\@wholewidth \hrule \@height\@wholewidth \hbox{\vrule \@width\@wholewidth #1\vrule \@width\@wholewidth}\hrule \@height \@wholewidth\vskip -\@halfwidth}\hskip-\@wholewidth}} \newdimen\fboxrule \newdimen\fboxsep %% (Extra space removed 21 Jun 1991) \long\def\fbox#1{\leavevmode\setbox\@tempboxa\hbox{#1}\@tempdima\fboxrule \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa \hbox{\lower \@tempdima\hbox {\vbox{\hrule \@height \fboxrule \hbox{\vrule \@width \fboxrule \hskip\fboxsep \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\hskip \fboxsep\vrule \@width \fboxrule}% \hrule \@height \fboxrule}}}} \def\framebox{\@ifnextchar ({\@framepicbox}{\@ifnextchar [{\@framebox}{\fbox}}} \def\@framebox[#1]{\@ifnextchar [{\@iframebox[#1]}{\@iframebox[#1][x]}} %% (Extra space removed 21 Jun 1991) \long\def\@iframebox[#1][#2]#3{\leavevmode \savebox\@tempboxa[#1][#2]{\kern\fboxsep #3\kern\fboxsep}\@tempdima\fboxrule \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa \hbox{\lower \@tempdima\hbox {\vbox{\hrule \@height \fboxrule \hbox{\vrule \@width \fboxrule \hskip-\fboxrule \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\hskip -\fboxrule\vrule \@width \fboxrule}% \hrule \@height \fboxrule}}}} \def\@framepicbox(#1,#2){\@ifnextchar [{\@iframepicbox(#1,#2)}{\@iframepicbox(#1,#2)[]}} \long\def\@iframepicbox(#1,#2)[#3]#4{\frame{\@imakepicbox(#1,#2)[#3]{#4}}} \def\parbox{\@ifnextchar [{\@iparbox}{\@iparbox[c]}} \long\def\@iparbox[#1]#2#3{\leavevmode \@pboxswfalse \if #1b\vbox \else \if #1t\vtop \else \ifmmode \vcenter \else \@pboxswtrue $\vcenter \fi \fi %% RmS 91/11/04 added \m@th \fi{\hsize #2\@parboxrestore #3}\if@pboxsw \m@th$\fi} \let\@dischyph=\- \let\@acci=\' \let\@accii=\` \let\@acciii=\= \def\@arrayparboxrestore{\let\par\@@par \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii \parindent\z@ \parskip\z@ \everypar{}\linewidth\hsize \@totalleftmargin\z@ \leftskip\z@ \rightskip\z@ \@rightskip\z@ \parfillskip\@flushglue \lineskip\normallineskip \baselineskip\normalbaselineskip\sloppy} \def\@parboxrestore{\@arrayparboxrestore\let\\=\@normalcr} \newif\if@minipage \@minipagefalse \def\minipage{\@ifnextchar [{\@iminipage}{\@iminipage[c]}} \def\@iminipage[#1]#2{\leavevmode \@pboxswfalse \if #1b\vbox \else \if #1t\vtop \else \ifmmode \vcenter \else \@pboxswtrue $\vcenter \fi \fi \fi\bgroup \hsize #2\textwidth\hsize \columnwidth\hsize \@parboxrestore \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@ \let\@footnotetext\@mpfootnotetext \let\@listdepth\@mplistdepth \@mplistdepth\z@ \@minipagerestore\global\@minipagetrue %% \global added 24 May 89 \everypar{\global\@minipagefalse\everypar{}}} \let\@minipagerestore=\relax \def\endminipage{\par\vskip-\lastskip \ifvoid\@mpfootins\else \vskip\skip\@mpfootins\footnoterule\unvbox\@mpfootins\fi \global\@minipagefalse %% added 24 May 89 \egroup\if@pboxsw \m@th$\fi} %% RmS 91/11/04 added \m@th \newcount\@mplistdepth \newinsert\@mpfootins %% RmS 91/09/29: added \reset@font \long\def\@mpfootnotetext#1{\global\setbox\@mpfootins \vbox{\unvbox\@mpfootins \reset@font\footnotesize \hsize\columnwidth \@parboxrestore \edef\@currentlabel{\csname p@mpfootnote\endcsname\@thefnmark}\@makefntext {\rule{\z@}{\footnotesep}\ignorespaces #1\strut}}} % \strut added 27 Mar 89, on suggestion by Don Hosek \newif\if@pboxsw \def\rule{\@ifnextchar[{\@rule}{\@rule[\z@]}} \def\@rule[#1]#2#3{\@tempdima#3\advance\@tempdima #1\leavevmode\hbox{\vrule \@width#2 \@height\@tempdima \@depth-#1}} \let\@@underline\underline \def\underline#1{\relax\ifmmode \@@underline{#1}\else $\@@underline{\hbox{#1}}\m@th$\relax\fi} \def\raisebox#1{\@ifnextchar[{\@argrsbox{#1}}{\@rsbox{#1}}} \def\@argrsbox#1[#2]{% \@ifnextchar[{\@iirsbox{#1}[#2]}{\@irsbox{#1}[#2]}} \long\def\@rsbox#1#2{\leavevmode\hbox{\raise #1\hbox{#2}}} \long\def\@irsbox#1[#2]#3{\setbox\@tempboxa \hbox {\raise #1\hbox{#3}}\ht\@tempboxa#2\leavevmode\box\@tempboxa} \long\def\@iirsbox#1[#2][#3]#4{\setbox\@tempboxa \hbox {\raise #1\hbox{#4}}\ht\@tempboxa#2\dp\@tempboxa#3\leavevmode\box\@tempboxa} \message{tabbing,} % **************************************** % * THE TABBING ENVIRONMENT * % **************************************** % % \dimen(\@firsttab + i) = distance of tab stop i from left margin % 0 <= i <= 15 (?). % % \dimen\@firsttab is initialized to \@totalleftmargin, so it starts % at the prevailing left margin. % % \@maxtab = number of highest defined tab register % probably = \@firsttab + 12 % \@nxttabmar = tab stop number of next line's left margin % \@curtabmar = tab stop number of current line's left margin % \@curtab = number of the current tab. At start of line, % it equals \@curtabmar % \@hightab = largest tab number currently defined. % \@tabpush = depth of \pushtab's % % \box\@curline = contents of current line, excluding left margin skip, % and excluding contents of current field % \box\@curfield = contents of current field % % @rjfield = switch: T iff the last field of the line should be % right-justified at the right margin. % % \tabbingsep = distance left by the \' command between the current % position and the field that is ``left-shifted''. % % UTILITY MACROS % \@stopfield : closes the current field % \@addfield : adds the current field to the current line. % \@contfield : continues the current field % \@startfield : begins the next field % \@stopline : closes the current line and outputs it % \@startline : starts the next line % \@ifatmargin : an \if that is true iff the current line. % has width zero % % \@startline == % BEGIN % \@curtabmar :=G \@nxttabmar % \@curtab :=G \@curtabmar % \box\@curline :=G null % \@startfield % \strut % END % % \@stopline == % BEGIN % \unskip % \@stopfield % if @rjfield = T % then @rjfield :=G F % \@tempdima := \@totalleftmargin + \linewidth % \hbox to \@tempdima{\@itemfudge % \hskip \dimen\@curtabmar % \box\@curline % \hfil % \box\@curfield} % else \@addfield % \hbox {\@itemfudge % \hskip \dimen\@curtabmar % \box\@curline} % fi % END % % \@startfield == % BEGIN % \box\@curfield :=G \hbox { % END % % \@stopfield == % BEGIN % } % END % % \@contfield == % BEGIN % \box\@curfield :=G \hbox { \unhbox\@currfield %%} brace matching % END % \@addfield == % BEGIN % \box\@curline :=G \unbox\@curline * \unbox\@curfield % END % % \@ifatmargin == % BEGIN % if dim of box\@curline = 0pt then % END % % % \tabbing == % BEGIN % \lineskip :=L 0pt % \> == \@rtab % \< == \@ltab % \= == \@settab % \+ == \@tabplus % \- == \@tabminus % \` == \@tabrj % \' == \@tablab % \\ == BEGIN \@stopline \@startline END % \\[DIST] == BEGIN \@stopline \vskip DIST \@startline\ignorespaces END % \\* == BEGIN \@stopline \penalty 10000 \@startline END % \\*[DIST] == BEGIN \@stopline \penalty 10000 \vskip DIST % \@startline\ignorespaces END % \@hightab :=G \@nxttabmar :=G \@firsttab % \@tabpush :=G 0 % \dimen\@firsttab := \@totalleftmargin % @rjfield :=G F % \trivlist \item[] % if @minipage = F then \vskip \parskip fi % \box\@tabfbox = \rlap{\indent\the\everypar} % note: \the\everypar sets % \@itemfudge == BEGIN \box\@tabfbox END % @inlabel :=G F % \@startline % \ignorespaces % END % % \@endtabbing == % BEGIN % \@stopline % if \@tabpush > 0 then error message: ''unmatched \poptabs'' fi % \endtrivlist % END % % \@rtab == % BEGIN % \@stopfield % \@addfield % if \@curtab < \@hightab % then \@curtab :=G \@curtab + 1 % else error message ``Undefined Tab'' fi % \@tempdima := \dimen\@curtab - \dimen\@curtabmar % - width of box \@curline % \box\@curline :=G \hbox{\unhbox\@curline + \hskip\@tempdima} % \@startfield % END % % \@settab == % BEGIN % \@stopfield % \@addfield % if \@curtab < \@maxtab % then \@curtab :=G \@curtab+1 % else error message: ``Too many tabs'' fi % if \@curtab > \@hightab % then \@hightab :=L \@curtab fi % \dimen\@curtab :=L \dimen\@curtabmar + width of \box\@curline % \@startfield % END % % \@ltab == % BEGIN % \@ifatmargin % then if \@curtabmar > \@firsttab % then \@curtab :=G \@curtab - 1 % \@curtabmar :=G \@curtabmar - 1 % else error message ``Too many untabs'' fi % else error message ``Left tab in middle of line'' % fi % END % % \@tabplus == % BEGIN % if \@nxttabmar < \@hightab % then \@nxttabmar :=G \@nxttabmar+1 % else error message ``Undefined tab'' % fi % END % % \@tabminus == % BEGIN % if \@nxttabmar > \@firsttab % then \@nxttabmar :=G \@nxttabmar-1 % else error message ``Too many untabs'' % fi % END % % \@tabrj == % BEGIN \@stopfield % \@addfield % @rjfield :=G T % \@startfield % END % % \@tablab == % BEGIN \@stopfield % \box\@curline G:= \hbox{ \box\@curline %% `G' added 17 Jun 86 % \hskip - width of \box\@curfield % \hskip -\tabbingsep % \box\@curfield % \hskip \tabbingsep } % \@startfield % END % % \pushtabs == % BEGIN % \@stopfield % \@tabpush :=G \@tabpush + 1 % \begingroup % \@contfield % END % % \poptabs == % BEGIN % \@stopfield % if \@tabpush > 0 % then \endgroup % \@tabpush :=G \@tabpush - 1 % else error message: ``Too many \poptabs'' % fi % \@contfield % END % % The accents \` , \' , and \= that have been redefined inside a tabbing % environment can be called by typing \a` , \a' , and \a=. % \expandafter \let \csname a`\endcsname = \` \expandafter \let \csname a'\endcsname = \' \expandafter \let \csname a=\endcsname = \= \def\a#1{\csname a#1\endcsname} \newif\if@rjfield \newcount\@firsttab \newcount\@maxtab \newdimen\@gtempa \@firsttab=\allocationnumber \newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa \newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa \newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa \newdimen\@gtempa \@maxtab=\allocationnumber \dimen\@firsttab=0pt \newcount\@nxttabmar \newcount\@curtabmar \newcount\@curtab \newcount\@hightab \newcount\@tabpush \newbox\@curline \newbox\@curfield \newbox\@tabfbox \def\@startline{\global\@curtabmar\@nxttabmar \global\@curtab\@curtabmar\global\setbox\@curline\hbox % missing \global {}\@startfield\strut} % added 17 Jun 86 \def\@stopline{\unskip\@stopfield\if@rjfield \global\@rjfieldfalse \@tempdima\@totalleftmargin \advance\@tempdima\linewidth \hbox to\@tempdima{\@itemfudge\hskip\dimen\@curtabmar \box\@curline\hfil\box\@curfield}\else\@addfield \hbox{\@itemfudge\hskip\dimen\@curtabmar\box\@curline}\fi} \def\@startfield{\global\setbox\@curfield\hbox\bgroup}%{ BRACE MATCH HACK \let\@stopfield=} \def\@contfield{\global\setbox\@curfield\hbox\bgroup\unhbox\@curfield} \def\@addfield{\global\setbox\@curline\hbox{\unhbox \@curline\unhbox\@curfield}} \def\@ifatmargin{\ifdim \wd\@curline =\z@} \def\@tabcr{\@stopline \@ifstar{\penalty \@M \@xtabcr}{\@xtabcr}} \def\@xtabcr{\@ifnextchar[{\@itabcr}{\@startline\ignorespaces}} \def\@itabcr[#1]{\vskip #1\@startline\ignorespaces} \def\kill{\@stopfield\@startline\ignorespaces} % REMOVE \outer FROM PLAIN'S DEF OF \+ \def\+{\tabalign} \def\tabbing{\lineskip \z@\let\>\@rtab\let\<\@ltab\let\=\@settab \let\+\@tabplus\let\-\@tabminus\let\`\@tabrj\let\'\@tablab \let\\=\@tabcr \global\@hightab\@firsttab \global\@nxttabmar\@firsttab \dimen\@firsttab\@totalleftmargin \global\@tabpush\z@ \global\@rjfieldfalse \trivlist \item[]\if@minipage\else\vskip\parskip\fi \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin \the\everypar}}\def\@itemfudge{\box\@tabfbox}\@startline\ignorespaces} \def\endtabbing{\@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist} \def\@rtab{\@stopfield\@addfield\ifnum \@curtab<\@hightab \global\advance\@curtab \@ne \else\@badtab\fi \@tempdima\dimen\@curtab \advance\@tempdima -\dimen\@curtabmar \advance\@tempdima -\wd\@curline \global\setbox\@curline\hbox{\unhbox\@curline\hskip\@tempdima}% \@startfield\ignorespaces} % Omitted \global added to \@rtab 17 Jun 86 \def\@settab{\@stopfield\@addfield\ifnum \@curtab <\@maxtab \global\advance\@curtab \@ne \else\@latexerr{Tab overflow}\@ehd\fi \ifnum\@curtab >\@hightab \@hightab\@curtab\fi \dimen\@curtab\dimen\@curtabmar \advance\dimen\@curtab \wd\@curline\@startfield\ignorespaces} \def\@ltab{\@ifatmargin\ifnum\@curtabmar >\@firsttab \global\advance\@curtab \m@ne \global\advance\@curtabmar \m@ne \else \@badtab\fi\else \@latexerr{\string\<\space in mid line}\@ehd\fi\ignorespaces} \def\@tabplus {\ifnum \@nxttabmar <\@hightab \global\advance\@nxttabmar \@ne \else \@badtab\fi\ignorespaces} \def\@tabminus{\ifnum\@nxttabmar >\@firsttab \global\advance\@nxttabmar \m@ne \else \@badtab\fi\ignorespaces} \def\@tabrj{\@stopfield\@addfield\global\@rjfieldtrue\@startfield\ignorespaces} \def\@tablab{\@stopfield\global\setbox\@curline\hbox{\box\@curline \hskip -\wd\@curfield \hskip -\tabbingsep \box\@curfield \hskip \tabbingsep}\@startfield\ignorespaces} % \setbox\@curline made \global in \@tablab. 17 Jun 86 \def\pushtabs{\@stopfield\@addfield\global\advance\@tabpush \@ne \begingroup \@contfield} \def\poptabs{\@stopfield\@addfield\ifnum\@tabpush >\z@ \endgroup \global\advance\@tabpush \m@ne \else \@badpoptabs\fi\@contfield} \newdimen\tabbingsep \message{array,} % **************************************** % * ARRAY AND TABULAR ENVIRONMENTS * % **************************************** % % ARRAY PARMETERS: % \arraycolsep : half the width separating columns in an array environment % \tabcolsep : half the width separating columns in a tabular environment % \arrayrulewidth : width of rules % \doublerulesep : space between adjacent rules in array or tabular % \arraystretch : line spacing in array and tabular environments is done by % placing a strut in every row of height and depth % \arraystretch times the height and depth of the strut % produced by an ordinary \strut commmand. % % PREAMBLE: % The PREAMBLE argument of an array or tabular environment can contain % the following: % l,r,c : indicate where entry is to be placed. % | : for vertical rule % @{EXP} : inserts the text EXP in every column. \arraycolsep or \tabcolsep % spacing is suppressed. % *{N}{PRE} : equivalent to writing N copies of PRE in the preamble. PRE % may contain *{N'}{EXP'} expressions. % p{LEN} : makes entry in parbox of width LEN. % % SPECIAL ARRAY COMMANDS: % \multicolumn{N}{FORMAT}{ITEM} : replaces the next N column items by % ITEM, formatted according to FORMAT. FORMAT should contain at most % one l,r or c. If it contains none, then ITEM is ignored. % % \vline : draws a vertical line the height of the current row. May % appear in an array element entry. % \hline : draws a horizontal line between rows. Must appear either % before the first entry (to appear above the first row) or right % after a \\ command. If followed by another \hline, then adds % a \vskip of \doublerulesep. % % \cline[i-j] : draws horizontal lines between rows covering columns % i through j, inclusive. Multiple commands may follow % one another to provide lines covering several disjoint % columns % \extracolsep{WIDTH} : for use inside an @ in the preamble. Causes a WIDTH % space to be added between columns for the rest of the % columns. This is in addition to the ordinary intercolumn % space. % % \array == % BEGIN % \@acol == \@arrayacol % \@classz == \@arrayclassz % \@classiv == \@arrayclassiv % \\ == \@arraycr % \@halignto == NULL % \@tabarray % END % % \endarray{NAME} == BEGIN \crcr }} END % % \tabular == % BEGIN % \@halignto == NULL % \@tabular % END % % \tabular*{WIDTH} == % BEGIN % \@halignto == to WIDTH % \@tabular % END % % \@tabular == % BEGIN % \leavevmode % \hbox { $ % \@acol == \@tabacol % \@classz == \@tabclassz % \@classiv == \@tabclassiv % \\ == \@tabularcr % \@tabarray % END % % \endtabular == BEGIN \crcr}} $} END % % \@tabarray == if next char = [ then \@array else \@array[c] fi % % \@array[POS]{PREAMBLE} == % BEGIN % define \@arstrutbox to make \@arstrut produce strut of height % and depth \arraystretch times the height and % depth of a normal strut. % \@mkpream{PREAMBLE} % \@preamble == \halign \@halignto {\tabskip=0pt\@arstrut % eval{\@preamble}\tabskip = 0pt\cr %% } % \@startpbox == \@@startpbox % \@endpbox == \@@endpbox % if POS = t then \vtop % else if POS = b then \vbox % else \vcenter % fi fi % { % \par ==L \relax % \@sharp == # % \protect == \relax % \lineskip :=L 0pt % \baselineskip :=L 0pt % \@preamble % END % % % \@arraycr == % BEGIN % $ %% Prevents extra space at end of row's last entry. % if next char = [ % then \@argarraycr % else $ \cr %% Needed to balance $ % END % % \@argarraycr[LENGTH] == % BEGIN % $ %% Needed to balance $ of \@arraycr % if LENGTH > 0 % then \@tempdima := depth of \@arstrutbox + LENGTH % \vrule height 0pt width 0pt depth \@tempdima % \cr % else \cr \noalign{\vskip LENGTH} % END % % \@tabularcr and \@argtabularcr same as \@arraycr and \@argarraycr % except without the extra $'s. \def\extracolsep#1{\tabskip #1\relax} \def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz \let\@classiv\@arrayclassiv \let\\\@arraycr\let\@halignto\@empty\@tabarray} \def\endarray{\crcr\egroup\egroup} \def\endtabular{\crcr\egroup\egroup $\egroup} \expandafter \let \csname endtabular*\endcsname = \endtabular \def\tabular{\let\@halignto\@empty\@tabular} \expandafter \def\csname tabular*\endcsname #1{\def\@halignto{to#1}\@tabular} \def\@tabular{\leavevmode \hbox \bgroup $\let\@acol\@tabacol \let\@classz\@tabclassz \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray} %% RmS 91/11/04 added \m@th \def\@tabarray{\m@th\@ifnextchar[{\@array}{\@array[c]}} \def\@array[#1]#2{\setbox\@arstrutbox\hbox{\vrule \@height\arraystretch \ht\strutbox \@depth\arraystretch \dp\strutbox \@width\z@}\@mkpream{#2}\edef\@preamble{\halign \noexpand\@halignto \bgroup \tabskip\z@ \@arstrut \@preamble \tabskip\z@ \cr}% \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi \bgroup \let\par\relax \let\@sharp##\let\protect\relax \lineskip\z@\baselineskip\z@\@preamble} \def\@arraycr{${\ifnum0=`}\fi\@ifstar{\@xarraycr}{\@xarraycr}} \def\@xarraycr{\@ifnextchar[{\@argarraycr}{\ifnum0=`{\fi}${}\cr}} \def\@argarraycr[#1]{\ifnum0=`{\fi}${}\ifdim #1>\z@ \@xargarraycr{#1}\else \@yargarraycr{#1}\fi} \def\@tabularcr{{\ifnum0=`}\fi\@ifstar{\@xtabularcr}{\@xtabularcr}} \def\@xtabularcr{\@ifnextchar[{\@argtabularcr}{\ifnum0=`{\fi}\cr}} \def\@argtabularcr[#1]{\ifnum0=`{\fi}\ifdim #1>\z@ \unskip\@xargarraycr{#1}\else \@yargarraycr{#1}\fi} \def\@xargarraycr#1{\@tempdima #1\advance\@tempdima \dp \@arstrutbox \vrule \@height\z@ \@depth\@tempdima \@width\z@ \cr} \def\@yargarraycr#1{\cr\noalign{\vskip #1}} % \multicolumn{NUMBER}{FORMAT}{ITEM} == % BEGIN % \multispan{NUMBER} % \begingroup % \@addamp == null % \@mkpream{FORMAT} % \@sharp == ITEM % \protect == \relax % \@startpbox == \@@startpbox % \@endpbox == \@@endpbox % \@arstrut % \@preamble % \endgroup % END % The command \def\@addamp{} was removed from \multicolumn on 6 Dec 86 % because it caused embedded array environments not to work. I think % that it was included originally to prevent an error message if % the 2nd argument to the \multicolumn command had two column specifiers. % % 8 Feb 89 - \hbox{} added after \@preamble to correct bug that % occurred if \multicolumn preceded \\[D] with D > 0, % caused by \\[] command doing an \unskip, which removed % \tabcolsep glue inserted by \multicolumn \def\multicolumn#1#2#3{\multispan{#1}\begingroup \@mkpream{#2}% \def\@sharp{#3}\let\protect\relax \let\@startpbox\@@startpbox\let\@endpbox\@@endpbox \@arstrut \@preamble\hbox{}\endgroup\ignorespaces} % Codes for classes and character numbers of array, tabular and % multicolumn arguments. % % Character Class Number % --------- ----- ------ % c 0 0 % l 0 1 % r 0 2 % % | 1 - % @ 2 - % p 3 - % {@-exp} 4 - % {p-arg} 5 - % % \@testpach \foo : expands \foo, which should be an array parameter token, % and sets \@chclass and \@chnum to its class and number. % Uses \@lastchclass to distinguish 4 and 5 % % Preamble error codes % 0: 'illegal character' % 1: 'Missing @-exp' % 2: 'Missing p-arg' % % \@addamp == % BEGIN if @firstamp = true then @firstamp := false % else & fi % END % % \@mkpream TOKENLIST == % BEGIN % @firstamp := T % \@lastchclass := 6 % \@preamble == null % \@sharp == \relax % \protect == BEGIN \noexpand\protect\noexpand END % \@startpbox == \relax % \@endpbox == \relax % \@expast{TOKENLIST} % for \@nextchar := expand(\@tempa) % do \@testpach{\@nextchar} % case of \@chclass % 0 -> \@classz % 1 -> \@classi % ... % 5 -> \@classv % end case % \@lastchclass := \@chclass % od % case of \@lastchclass % 0 -> \hskip \arraycolsep % lrc % 1 -> % | % 2 -> \@preamerr1 % 'Missing @-exp' % @ % 3 -> \@preamerr2 % 'Missing p-arg' % p % 4 -> % @-exp % 5 -> \hskip \arraycolsep % p-exp % end case % END % % \@arrayclassz == % BEGIN % \@preamble := \@preamble * % case of \@lastchclass % 0 -> \hskip \arraycolsep \@addamp \hskip \arraycolsep % 1 -> \@addamp \hskip \arraycolsep % 2 -> % impossible % 3 -> % impossible % 4 -> \@addamp % 5 -> \hskip \arraycolsep \@addamp \hskip \arraycolsep % 6 -> \@addamp \hskip \arraycolsep % end case % * case of \@chnum % 0 -> \hfil$\relax\@sharp$\hfil % 1 -> $\relax\@sharp$\hfil % 2 -> \hfil$\relax\@sharp$ % end case % END % % \@tabclassz == similar to \@arrayclassz % % \@classi == % BEGIN % \@preamble := \@preamble * % case of \@lastchclass % 0 -> \hskip \arraycolsep \@arrayrule % 1 -> \hskip \doublerulesep \@arrayrule % 2 -> % impossible % 3 -> % impossible % 4 -> \@arrayrule % 5 -> \hskip \arraycolsep \@arrayrule % 6 -> \@arrayrule % end case % END % % \@classii == % BEGIN % \@preamble := \@preamble * % case of \@lastchclass % 0 -> % 1 -> \hskip .5\arrayrulewidth % 2 -> % impossible % else -> % end case % END % % \@classiii == % BEGIN % \@preamble := \@preamble * % case of \@lastchclass % 0 -> \hskip \arraycolsep \@addamp \hskip \arraycolsep % 1 -> \@addamp \hskip \arraycolsep % 2 -> % impossible % 3 -> % impossible % 4 -> \@addamp % 5 -> \hskip \arraycolsep \@addamp \hskip \arraycolsep % 6 -> \@addamp \hskip \arraycolsep % end case % END % % \@arrayclassiv == BEGIN \@preamble := \@preamble * $ \@nextchar$ END % % \@tabclassiv == same as \@arrayclassv except without the $ ... $ % % \@classv == % BEGIN % \@preamble := \@preamble * \@startpbox{\@nextchar}\ignorespaces\@sharp % \@endpbox % END % % \@expast{S}: Sets \@tempa := S with all instances of *{N}{STRING} % replaced by N copies of STRING, where N > 0. An * % appearing inside braces is ignored, but *-expressions % inside STRING are expanded, so nested *-expressions are % handled properly. % % \@expast{S} == BEGIN \@xexpast S *0x\@@ END % % \@xexpast S1 *{N}{S2} S3 \@@ == % BEGIN % \@tempa := S1 % \@tempcnta := N % if \@tempcnta > 0 % then while \@tempcnta > 0 do \@tempa := \@tempa S2 % \@tempcnta := \@tempcnta - 1 od % \@tempb == \@xexpast % else \@tempb == \@xexnoop % fi % \expandafter \@tempb \@tempa S3 \@@ % END % \def\@xexnoop #1\@@{} \def\@expast#1{\@xexpast #1*0x\@@} \def\@xexpast#1*#2#3#4\@@{\edef\@tempa{#1}\@tempcnta#2\relax \ifnum\@tempcnta >\z@ \@whilenum\@tempcnta >\z@\do {\edef\@tempa{\@tempa#3}\advance\@tempcnta \m@ne}\let\@tempb\@xexpast \else \let\@tempb\@xexnoop\fi \expandafter\@tempb \@tempa #4\@@} \newif\if@firstamp \def\@addamp{\if@firstamp \@firstampfalse \else \edef\@preamble{\@preamble &}\fi} \def\@arrayacol{\edef\@preamble{\@preamble \hskip \arraycolsep}} \def\@tabacol{\edef\@preamble{\@preamble \hskip \tabcolsep}} \def\@ampacol{\@addamp \@acol} \def\@acolampacol{\@acol\@addamp\@acol} \def\@mkpream#1{\@firstamptrue\@lastchclass6 \let\@preamble\@empty\def\protect{\noexpand\protect\noexpand}\let\@sharp\relax \let\@startpbox\relax\let\@endpbox\relax \@expast{#1}\expandafter\@tfor \expandafter \@nextchar \expandafter:\expandafter=\@tempa\do{\@testpach\@nextchar \ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii \or \@classiv \or\@classv \fi\@lastchclass\@chclass}% \ifcase \@lastchclass \@acol \or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi} \def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or \or \or \@addamp \or \@acolampacol \or \@firstampfalse \@acol \fi \edef\@preamble{\@preamble \ifcase \@chnum \hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil \or \hfil$\relax\@sharp$\fi}} %% RmS 91/08/14 inserted extra braces around entry for NFSS \def\@tabclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or \or \or \@addamp \or \@acolampacol \or \@firstampfalse \@acol \fi \edef\@preamble{\@preamble{% \ifcase \@chnum \hfil\ignorespaces\@sharp\unskip\hfil \or \ignorespaces\@sharp\unskip\hfil \or \hfil\hskip\z@ \ignorespaces\@sharp\unskip\fi}}} \def\@classi{\ifcase \@lastchclass \@acol \@arrayrule \or \@addtopreamble{\hskip \doublerulesep}\@arrayrule\or \or \or \@arrayrule \or \@acol \@arrayrule \or \@arrayrule \fi} \def\@classii{\ifcase \@lastchclass \or \@addtopreamble{\hskip .5\arrayrulewidth}\fi} \def\@classiii{\ifcase \@lastchclass \@acolampacol \or \@addamp\@acol \or \or \or \@addamp \or \@acolampacol \or \@ampacol \fi} \def\@tabclassiv{\@addtopreamble\@nextchar} \def\@arrayclassiv{\@addtopreamble{$\@nextchar$}} \def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\ignorespaces \@sharp\@endpbox}} \def\@addtopreamble#1{\edef\@preamble{\@preamble #1}} \newcount\@chclass \newcount\@lastchclass \newcount\@chnum \newdimen\arraycolsep \newdimen\tabcolsep \newdimen\arrayrulewidth \newdimen\doublerulesep \def\arraystretch{1} % Default value. \newbox\@arstrutbox \def\@arstrut{\relax\ifmmode\copy\@arstrutbox\else\unhcopy\@arstrutbox\fi} \def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth \vrule \@width \arrayrulewidth\hskip -.5\arrayrulewidth}} \def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4 \else \ifnum \@lastchclass=3 5 \else \z@ \if #1c\@chnum \z@ \else \if #1l\@chnum \@ne \else \if #1r\@chnum \tw@ \else \@chclass \if #1|\@ne \else \if #1@\tw@ \else \if #1p3 \else \z@ \@preamerr 0\fi \fi \fi \fi \fi \fi \fi \fi} \def\hline{\noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet \@tempa\@xhline} \def\@xhline{\ifx\@tempa\hline\vskip \doublerulesep\fi \ifnum0=`{\fi}} \def\vline{\vrule \@width \arrayrulewidth} \newcount\@cla \newcount\@clb \def\cline#1{\@cline[#1]} \def\@cline[#1-#2]{\noalign{\global\@cla#1\relax \global\advance\@cla\m@ne \ifnum\@cla>\z@\global\let\@gtempa\@clinea\else \global\let\@gtempa\@clineb\fi \global\@clb#2\relax \global\advance\@clb-\@cla}\@gtempa \noalign{\vskip-\arrayrulewidth}} \def\@clinea{\multispan\@cla&\multispan\@clb \unskip\leaders\hrule \@height \arrayrulewidth \hfill \cr} \def\@clineb{\multispan\@clb \unskip\leaders\hrule \@height \arrayrulewidth \hfill \cr} % \@startpbox{WIDTH} TEXT \egroup == \parbox{WIDTH}{TEXT} % \@endpbox == \unskip \strut \par \egroup\hfil (Changed 14 Jan 89) % \def\@startpbox#1{\vtop\bgroup \hsize #1\@arrayparboxrestore} \def\@endpbox{\unskip\strut\par\egroup\hfil} % 14 Jan 89: Def of \@endpbox changed from % \def\@endpbox{\par\vskip\dp\@arstrutbox\egroup\hfil} % so vertical spacing works out right if the last line of a `p' entry % has a descender. \let\@@startpbox=\@startpbox \let\@@endpbox=\@endpbox \message{picture,} % **************************************** % * THE PICTURE ENVIRONMENT * % **************************************** % % \unitlength = value of dimension argument % \@wholewidth = current line width % \@halfwidth = half of current line width % \@linefnt = font for drawing lines % \@circlefnt = font for drawing circles % % \linethickness{DIM} : Sets the width of horizontal and vertical lines % in a picture to DIM. Does not change width of slanted lines % or circles. Width of all lines reset by \thinlines and % \thicklines % % \picture(XSIZE,YSIZE)(XORG,YORG) % BEGIN % \@picht :=L YSIZE * \unitlength % box \@picbox := % \hbox to XSIZE * \unitlength % {\hskip -XORG * \unitlength % \lower YORG * \unitlength % \hbox{ % \ignorespaces %% added 13 June 89 % END % % \endpicture == % BEGIN % } \hss } % heigth of \@picbox := \@picht % depth of \@picbox := 0 % \mbox{\box\@picbox} %% change 26 Aug 91 % END % % \put(X, Y){OBJ} == % BEGIN % \@killglue % \raise Y * \unitlength \hbox to 0pt { \hskip X * \unitlength % OBJ \hss } % \ignorespaces % END % % \multiput(X,Y)(DELX,DELY){N}{OBJ} == % BEGIN % \@killglue % \@multicnt := N % \@xdim := X * \unitlength % \@ydim := Y * \unitlength % while \@multicnt > 0 % do \raise \@ydim \hbox to 0pt { \hskip \@xdim % OBJ \hss } % \@multicnt := \@multicnt - 1 % \@xdim := \@xdim + DELX * \unitlength % \@ydim := \@ydim + DELY * \unitlength % od % \ignorespaces % END % % \shortstack[POS]{TEXT} : Makes a \vbox containing TEXT stacked as % a one-column array, positioned l, r or c as indicated by POS. \newdimen\@wholewidth \newdimen\@halfwidth \newdimen\unitlength \unitlength =1pt \newbox\@picbox \newdimen\@picht \def\picture(#1,#2){\@ifnextchar({\@picture(#1,#2)}{\@picture(#1,#2)(0,0)}} \def\@picture(#1,#2)(#3,#4){\@picht #2\unitlength \setbox\@picbox\hbox to#1\unitlength\bgroup \hskip -#3\unitlength \lower #4\unitlength \hbox\bgroup\ignorespaces} %% 91/08/26 RmS & FMi: extra boxing level around \@picbox %% to guard against unboxing in math mode %% (proposed by John Hobby) \def\endpicture{\egroup\hss\egroup\ht\@picbox\@picht \dp\@picbox\z@\mbox{\box\@picbox}} % In the definitions of \put and \multiput, \hskip was replaced by \kern % just in case arg #3 = ``plus''. (Bug detected by Don Knuth. % changed 20 Jul 87). % \long\def\put(#1,#2)#3{\@killglue\raise#2\unitlength\hbox to\z@{\kern #1\unitlength #3\hss}\ignorespaces} \long\def\multiput(#1,#2)(#3,#4)#5#6{\@killglue\@multicnt #5\relax \@xdim #1\unitlength \@ydim #2\unitlength \@whilenum \@multicnt >\z@\do {\raise\@ydim\hbox to\z@{\kern \@xdim #6\hss}\advance\@multicnt \m@ne\advance\@xdim #3\unitlength\advance\@ydim #4\unitlength}\ignorespaces} \def\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}} \def\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth} \def\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth} \def\linethickness#1{\@wholewidth #1\relax \@halfwidth .5\@wholewidth} \def\shortstack{\@ifnextchar[{\@shortstack}{\@shortstack[c]}} \def\@shortstack[#1]{\leavevmode \vbox\bgroup\baselineskip-\p@\lineskip 3\p@\let\mb@l\hss \let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax \let\\\@stackcr\@ishortstack} %% RmS 91/08/14 inserted extra braces around entry for NFSS \def\@ishortstack#1{\halign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\egroup} \def\@stackcr{\@ifstar{\@ixstackcr}{\@ixstackcr}} \def\@ixstackcr{\@ifnextchar[{\@istackcr}{\cr\ignorespaces}} \def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces} % \line(X,Y){LEN} == % BEGIN % \@xarg := X % \@yarg := Y % \@linelen := LEN * \unitlength % if \@xarg = 0 % then \@vline % else if \@yarg = 0 % then \@hline % else \@sline % if % if % END % % \@sline == % BEGIN % if \@xarg < 0 % then @negarg := T % \@xarg := -\@xarg % \@yyarg := -\@yarg % else @negarg := F % \@yyarg := \@yarg % fi % \@tempcnta := |\@yyarg| % if \@tempcnta > 6 % then error: 'LATEX ERROR: Illegal \line or \vector argument.' % \@tempcnta := 0 % fi % \box\@linechar := \hbox{\@linefnt \@getlinechar(\@xarg,\@yyarg) } % if \@yarg > 0 then \@upordown = \raise % \@clnht := 0 % else \@upordown = \lower % \@clnht := height of \box\@linechar % fi % \@clnwd := width of \box\@linechar % if @negarg % then \hskip - width of \box\@linechar % \@tempa == \hskip - 2* width of box \@linechar % else \@tempa == \relax % fi % %% Put out integral number of line segments % while \@clnwd < \@linelen % do \@upordown \@clnht \copy\@linechar % \@tempa % \@clnht := \@clnht + ht of \box\@linechar % \@clnwd := \@clnwd + width of \box\@linechar % od % % %% Put out last segment % \@clnht := \@clnht - height of \box\@linechar % \@clnwd := \@clnwd - width of \box\@linechar % \@tempdima := \@linelen - \@clnwd % \@tempdimb := \@tempdima - width of \box\@linechar % if @negarg then \hskip -\@tempdimb % else \hskip \@tempdimb % fi % \@tempdima := 1000 * \@tempdima % \@tempcnta := \@tempdima / width of \box\@linechar % \@tempdima := (\@tempcnta * ht of \box\@linechar)/1000 % \@clnht := \@clnht + \@tempdima % if \@linelen < width of box\@linechar % then \hskip width of box\@linechar % else \hbox{\@upordown \@clnht \copy\@linechar} % fi % END % % \@hline == % BEGIN % if \@xarg < 0 then \hskip -\@linelen \fi % \vrule height \@halfwidth depth \@halfwidth width \@linelen % if \@xarg < 0 then \hskip -\@linelen \fi % END % % \@vline == if \@yarg < 0 \@downline else \@upline fi % % % \@getlinechar(X,Y) == % BEGIN % \@tempcnta := 8*X - 9 % if Y > 0 % then \@tempcnta := \@tempcnta + Y % else \@tempcnta := \@tempcnta - Y + 64 % fi % \char\@tempcnta % END % % \vector(X,Y){LEN} == % BEGIN % \@xarg := X % \@yarg := Y % \@linelen := LEN * \unitlength % if \@xarg = 0 % then \@vvector % else if \@yarg = 0 % then \@hvector % else \@svector % if % if % END % % \@hvector == % BEGIN % \@hline % {\@linefnt if \@xarg < 0 then \@getlarrow(1,0) % else \@getrarrow(1,0) % fi} % END % % \@vvector == if \@yarg < 0 \@downvector else \@upvector fi % % \@svector == % BEGIN % \@sline % \@tempcnta := |\@yarg| % if \@tempcnta < 5 % then \hskip - width of \box\@linechar % \@upordown \@clnht \hbox % {\@linefnt % if @negarg then \@getlarrow(\@xarg,\@yyarg) % else \@getrarrow(\@xarg,\@yyarg) % fi } % else error: 'LATEX ERROR: Illegal \line or \vector argument.' % fi % END % % \@getlarrow(X,Y) == % BEGIN % if Y = 0 % then \@tempcnta := '33 % else \@tempcnta := 16 * X - 9 % \@tempcntb := 2 * Y % if \@tempcntb > 0 % then \@tempcnta := \@tempcnta + \@tempcntb % else \@tempcnta := \@tempcnta - \@tempcntb + 64 % fi % fi % \char\@tempcnta % END % % \@getrarrow(X,Y) == % BEGIN % \@tempcntb := |Y| % case of \@tempcntb % 0 : \@tempcnta := '55 % 1 : if X < 3 % then \@tempcnta := 24*X - 6 % else if X = 3 % then \@tempcnta := 49 % else \@tempcnta := 58 fi % fi % 2 : if X < 3 % then \@tempcnta := 24*X - 3 % else \@tempcnta := 51 % X must = 3 % fi % 3 : \@tempcnta := 16*X - 2 % 4 : \@tempcnta := 16*X + 7 % endcase % if Y < 0 % then \@tempcnta := \@tempcnta + 64 % fi % \char\@tempcnta % END \newif\if@negarg \def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax \@linelen #3\unitlength \ifnum\@xarg =\z@ \@vline \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi \fi} \def\@sline{\ifnum\@xarg<\z@ \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg \else \@negargfalse \@yyarg \@yarg \fi \ifnum \@yyarg >\z@ \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi \ifnum\@tempcnta>6 \@badlinearg\@tempcnta\z@ \fi \ifnum\@xarg>6 \@badlinearg\@xarg \@ne \fi \setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}% \ifnum \@yarg >\z@ \let\@upordown\raise \@clnht\z@ \else\let\@upordown\lower \@clnht \ht\@linechar\fi \@clnwd \wd\@linechar \if@negarg \hskip -\wd\@linechar \def\@tempa{\hskip -2\wd\@linechar}\else \let\@tempa\relax \fi \@whiledim \@clnwd <\@linelen \do {\@upordown\@clnht\copy\@linechar \@tempa \advance\@clnht \ht\@linechar \advance\@clnwd \wd\@linechar}% \advance\@clnht -\ht\@linechar \advance\@clnwd -\wd\@linechar \@tempdima\@linelen\advance\@tempdima -\@clnwd \@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar \if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi \multiply\@tempdima \@m \@tempcnta \@tempdima \@tempdima \wd\@linechar \divide\@tempcnta \@tempdima \@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta \divide\@tempdima \@m \advance\@clnht \@tempdima \ifdim \@linelen <\wd\@linechar \hskip \wd\@linechar \else\@upordown\@clnht\copy\@linechar\fi} \def\@hline{\ifnum \@xarg <\z@ \hskip -\@linelen \fi \vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen \ifnum \@xarg <\z@ \hskip -\@linelen \fi} \def\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8% \advance\@tempcnta -9\ifnum #2>\z@ \advance\@tempcnta #2\relax\else \advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi \char\@tempcnta} \def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi \ifnum\@tempcnta<5\relax \@linelen #3\unitlength \ifnum\@xarg =\z@ \@vvector \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi \fi \else\@badlinearg\fi} \def\@hvector{\@hline\hbox to\z@{\@linefnt \ifnum \@xarg <\z@ \@getlarrow(1,0)\hss\else \hss\@getrarrow(1,0)\fi}} \def\@vvector{\ifnum \@yarg <\z@ \@downvector \else \@upvector \fi} \def\@svector{\@sline \@tempcnta\@yarg \ifnum\@tempcnta <\z@ \@tempcnta -\@tempcnta\fi \ifnum\@tempcnta <5% \hskip -\wd\@linechar \@upordown\@clnht \hbox{\@linefnt \if@negarg \@getlarrow(\@xarg,\@yyarg)\else \@getrarrow(\@xarg,\@yyarg)\fi}% \else\@badlinearg\fi} \def\@getlarrow(#1,#2){\ifnum #2=\z@ \@tempcnta'33 \else \@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta -9 \@tempcntb #2\relax\multiply\@tempcntb \tw@ \ifnum \@tempcntb >\z@ \advance\@tempcnta \@tempcntb \else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64 \fi\fi\char\@tempcnta} \def\@getrarrow(#1,#2){\@tempcntb #2\relax \ifnum\@tempcntb <\z@ \@tempcntb -\@tempcntb\relax\fi \ifcase \@tempcntb\relax \@tempcnta'55 \or \ifnum #1<\thr@@ \@tempcnta #1\relax\multiply\@tempcnta 24\advance\@tempcnta -6 \else \ifnum #1=\thr@@ \@tempcnta 49 \else\@tempcnta 58 \fi\fi\or \ifnum #1<\thr@@ \@tempcnta=#1\relax\multiply\@tempcnta 24\advance\@tempcnta -\thr@@ \else \@tempcnta 51 \fi\or \@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta -\tw@ \else \@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<\z@ \advance\@tempcnta 64 \fi \char\@tempcnta} \def\@vline{\ifnum \@yarg <\z@ \@downline \else \@upline\fi} \def\@upline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth \@height \@linelen \@depth \z@\hss}} \def\@downline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth \@height \z@ \@depth \@linelen \hss}} \def\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char'66}\raise \@linelen \hbox to\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}} \def\@downvector{\@downline\lower \@linelen \hbox to \z@{\@linefnt\char'77\hss}} % \dashbox{D}(X,Y) == % BEGIN % leave vertical mode % \hbox to 0pt { % \baselineskip := 0pt % \lineskip := 0pt % %% HORIZONTAL DASHES % \@dashdim := X * \unitlength % \@dashcnt := \@dashdim + 200 % to prevent roundoff error % \@dashdim := D * \unitlength % \@dashcnt := \@dashcnt / \@dashdim % if \@dashcnt is odd % then \@dashdim := 0pt % \@dashcnt := (\@dashcnt + 1) / 2 % else \@dashdim := \@dashdim / 2 % \@dashcnt := \@dashcnt / 2 - 1 % \box\@dashbox := \hbox{\vrule height \@halfwidth % depth \@halfwidth width \@dashdim} % \put(0,0){\copy\@dashbox} % \put(0,Y){\copy\@dashbox} % \put(X,0){\hskip -\@dashdim\copy\@dashbox} % \put(X,Y){\hskip -\@dashdim\box\@dashbox} % \@dashdim := 3 * \@dashdim % fi % \box\@dashbox := \hbox{\vrule height \@halfwidth % depth \@halfwidth width D * \unitlength % \hskip D * \unitlength} % \@tempcnta := 0 % \put(0,0){\hskip \@dashdim % while \@tempcnta < \@dascnt % do \copy\@dashbox % \@tempcnta := \@tempcnta + 1 % od % } % \@tempcnta := 0 % put(0,Y){\hskip \@dashdim % while \@tempcnta < \@dascnt % do \copy\@dashbox % \@tempcnta := \@tempcnta + 1 % od % } % % %% vertical dashes % \@dashdim := Y * \unitlength % \@dashcnt := \@dashdim + 200 % to prevent roundoff error % \@dashdim := D * \unitlength % \@dashcnt := \@dashcnt / \@dashdim % if \@dashcnt is odd % then \@dashdim := 0pt % \@dashcnt := (\@dashcnt + 1) / 2 % else \@dashdim := \@dashdim / 2 % \@dashcnt := \@dashcnt / 2 - 1 % \box\@dashbox := \hbox{\hskip -\@halfwidth % \vrule width \@wholewidth % height \@dashdim } % \put(0,0){\copy\@dashbox} % \put(X,0){\copy\@dashbox} % \put(0,Y){\lower\@dashdim\copy\@dashbox} % \put(X,Y){\lower\@dashdim\copy\@dashbox} % \@dashdim := 3 * \@dashdim % fi % \box\@dashbox := \hbox{\vrule width \@wholewidth % height D * \unitlength } % \@tempcnta := 0 % put(0,0){\hskip -\halfwidth % \vbox{while \@tempcnta < \@dashcnt % do \vskip D*\unitlength % \copy\@dashbox % \@tempcnta := \@tempcnta + 1 % od % \vskip \@dashdim % } } % \@tempcnta := 0 % put(X,0){\hskip -\halfwidth % \vbox{while \@tempcnta < \@dashcnt % do \vskip D*\unitlength % \copy\@dashbox % \@tempcnta := \@tempcnta + 1 % od % \vskip \@dashdim % } % } % } % END DASHES % % \@imakepicbox(X,Y) % END \def\dashbox#1(#2,#3){\leavevmode\hbox to\z@{\baselineskip \z@ \lineskip \z@ \@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}\@tempcnta\z@ \put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@ \put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@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 \@wholewidth \@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 \@wholewidth \@height #1\unitlength}\@tempcnta\z@ \put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt \do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}\@tempcnta\z@ \put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt \do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}}\@makepicbox(#2,#3)} % CIRCLES AND OVALS % % USER COMMANDS: % % \circle{D} : Produces the circle with the diameter as close as % possible to D * \unitlength. \put(X,Y){\circle{D}} % puts the circle with its center at (X,Y). % % \oval(X,Y) : Makes an oval as round as possible that fits in the % rectangle of width X * \unitlength and height % Y * \unitlength. The reference point is the center. % % \oval(X,Y)[POS] : Save as \oval(X,Y) except it draws only the % half or quadrant of the oval indicated by POS. % E.G., \oval(X,Y)[t] draws just the top half % and \oval(X,Y)[br] draws just the bottom right % quadrant. In all cases, the reference point is % the same as the unqualified \oval(X,Y) command. % % \@ovvert {DELTA1} {DELTA2} : Makes a vbox containing either the left side % or the right side of the oval being constructed. The baseline % will coincide with the outside bottom edge of the oval; the left % side of the box will coincide with the left edge of the vertical % rule. The width of the box will be \@tempdima. % DELTA1 and DELTA2 are added to the character number in \@tempcnta % to get the characters for the top and bottom quarter circle pieces. % % \@ovhorz : Makes an hbox containing the straight rule for either the % top or the bottom of the oval being constructed. The baseline % will coincide with bottom edge of the rule; the left side of % the box will coincide with the left side of the oval. % The width of the box will be \@ovxx. % % \@getcirc {DIAM} : Sets \@tempcnta to the character number % of the top-right quarter circle with the largest % diameter less than or equal to DIAM. % Sets \@tempboxa to an hbox containing that character. % Sets \@tempdima to \wd \@tempboxa, which is the distance % from the circle's left outside edge to its right % inside edge. % (These characters are like those described in the % TeXbook, pp. 389-90.) % % \@getcirc {DIAM} == % BEGIN % \@tempcnta := integer coercion of (DIAM + 2pt) %% + 2pt added % \@tempcnta := \@tempcnta / integer coercion of 4pt %% 1 Nov 88 % if \@tempcnta > 10 % then \@tempcnta := 10 fi % if \@tempcnta > 0 % then \@tempcnta := \@tempcnta-1 % else LaTeX Warning: Oval too small. % fi % \@tempcnta := 4 * \@tempcnta % \@tempboxa := \hbox{\@circlefnt \char \@tempcnta} % \@tempdima := \wd \@tempboxa % END % % \@put{X}{Y}{OBJ} == % BEGIN % \raise Y \hbox to 0pt{\hskip X OBJ \hss} % END % % \@oval(X,Y)[POS] == % BEGIN % \begingroup % \boxmaxdepth := \maxdimen % @ovt := @ovb := @ovl := @ovr := true % for all E in POS % do @ovE := false od % \@ovxx := X * \unitlength % \@ovyy := Y * \unitlength % \@tempdimb := min(\@ovxx,\@ovyy) % \@getcirc{\@tempdimb-2pt} %% "-2pt" added 7 Dec 89 % \@ovro := \ht \@tempboxa % \@ovri := \dp \@tempboxa % \@ovdx := \@ovxx - \@tempdima % \@ovdx := \@ovdx/2 % \@ovdy := \@ovyy - \@tempdima % \@ovdy := \@ovyy/2 % \@circlefnt % \@tempboxa := % \hbox{ % if @ovr % then \@ovvert{3}{2} \kern -\@tempdima % fi % if @ovl % then \kern \@ovxx \@ovvert{0}{1} \kern -\@tempdima % \kern -\@ovxx % fi % if @ovt % then \@ovhorz \kern -\@ovxx % fi % if @ovb % then \raise \@ovyy \@ovhorz % fi % } % \@ovdx := \@ovdx + \@ovro % \@ovdy := \@ovdy + \@ovro % \ht\@tempboxa := \dp\@tempboxa := 0 % \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa} % \endgroup % END % % \@ovvert {DELTA1} {DELTA2} == % BEGIN % \vbox to \@ovyy { % if @ovb % then \@tempcntb := \@tempcnta + DELTA1 % \kern -\@ovro % \hbox { \char \@tempcntb } % \nointerlineskip % else \kern \@ovri \kern \@ovdy % fi % \leaders \vrule width \@wholewidth \vfil % \nointerlineskip % if @ovt % then \@tempcntb := \@tempcnta + DELTA2 % \hbox { \char \@tempcntb } % else \kern \@ovdy \kern \@ovro % fi % } % END % % \@ovhorz == % BEGIN % \hbox to \@ovxx{ % \kern \@ovro % if @ovr % then % else \kern \@ovdx % fi % \leaders \hrule height \@wholewidth \hfil % if @ovl % then % else \kern \@ovdx % fi % \kern \@ovri % } % END % % \circle{DIAM} == % BEGIN % \begingroup % \boxmaxdepth := maxdimen % \@tempdimb := DIAM *\unitlength % if \@tempdimb > 15.5pt % then \@getcirc{\@tempdimb} % \@ovro := \ht \@tempboxa % \@tempboxa := \hbox{ % \@circlefnt % \@tempcnta := \@tempcnta + 2 % \char \@tempcnta % \@tempcnta := \@tempcnta - 1 % \char \@tempcnta % \kern -2\@tempdima % \@tempcnta := \@tempcnta + 2 % \raise \@tempdima \hbox { \char \@tempcnta } % \raise \@tempdima \box\@tempboxa % } % \ht\@tempboxa := \dp\@tempboxa := 0 % \@put{-\@ovro}{-\@ovro}{\@tempboxa} % else % \@circ{\@tempdimb}{96} % fi % \endgroup % END % % \circle*{DIAM} == \@dot{DIAM} == \@circ{DIAM*\unitlength}{112} % % \@circ{DIAM}{CHAR} == % BEGIN % \@tempcnta := integer coercion of (DIAM + .5pt)/1pt. % if \@tempcnta > 15 then \@tempcnta := 15 fi % if \@tempcnta > 1 then \@tempcnta := \@tempcnta - 1 fi % \@tempcnta := \@tempcnta + CHAR % \@circlefnt % \char \@tempcnta % END % \newif\if@ovt \newif\if@ovb \newif\if@ovl \newif\if@ovr \newdimen\@ovxx \newdimen\@ovyy \newdimen\@ovdx \newdimen\@ovdy \newdimen\@ovro \newdimen\@ovri %% \advance\@tempdima 2pt\relax added 1 Nov 88 to fix bug in which %% size of drawn circle not monotonic function of argument of \circle, %% caused by different rounding for dimensions of large and small circles. % \def\@getcirc#1{\@tempdima #1\relax \advance\@tempdima 2\p@ \@tempcnta\@tempdima \@tempdima 4\p@ \divide\@tempcnta\@tempdima \ifnum \@tempcnta >10\relax \@tempcnta 10\relax\fi \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne \else \@warning{Oval too small}\fi \multiply\@tempcnta 4\relax \setbox \@tempboxa \hbox{\@circlefnt \char \@tempcnta}\@tempdima \wd \@tempboxa} \def\@put#1#2#3{\raise #2\hbox to\z@{\hskip #1#3\hss}} \def\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}} \def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx #1\unitlength \@ovyy #2\unitlength \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi \advance \@tempdimb -2\p@ \@getcirc \@tempdimb \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ \@circlefnt \setbox\@tempboxa \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi \if@ovt \@ovhorz \kern -\@ovxx \fi \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% \endgroup} \def\@ovvert#1#2{\vbox to\@ovyy{% \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip \else \kern \@ovri \kern \@ovdy \fi \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax \hbox{\char \@tempcntb}% \else \kern \@ovdy \kern \@ovro \fi}} \def\@ovhorz{\hbox to \@ovxx{\kern \@ovro \if@ovr \else \kern \@ovdx \fi \leaders \hrule \@height \@wholewidth \hfil \if@ovl \else \kern \@ovdx \fi \kern \@ovri}} \def\circle{\@ifstar{\@dot}{\@circle}} \def\@circle#1{\begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb \@ovro\ht\@tempboxa \setbox\@tempboxa\hbox{\@circlefnt \advance\@tempcnta\tw@ \char \@tempcnta \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima \advance\@tempcnta\tw@ \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}% \else \@circ\@tempdimb{96}\fi\endgroup} \def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}} \def\@circ#1#2{\@tempdima #1\relax \advance\@tempdima .5\p@ \@tempcnta\@tempdima \@tempdima \p@ \divide\@tempcnta\@tempdima \ifnum\@tempcnta >15\relax \@tempcnta 15\relax \fi \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne\fi \advance\@tempcnta #2\relax \@circlefnt \char\@tempcnta} %INITIALIZATION \thinlines \newcount\@xarg \newcount\@yarg \newcount\@yyarg \newcount\@multicnt \newdimen\@xdim \newdimen\@ydim \newbox\@linechar \newdimen\@linelen \newdimen\@clnwd \newdimen\@clnht \newdimen\@dashdim \newbox\@dashbox \newcount\@dashcnt \message{theorem,} % **************************************** % * THEOREM ENVIRONMENTS * % **************************************** % % The user creates his own theorem-like environments with the command % \newtheorem{NAME}{TEXT}[COUNTER] or % \newtheorem{NAME}[OLDNAME]{TEXT} % This defines the environment NAME to be just as one would expect a % theorem environment to be, except that it prints ``TEXT'' instead of % ``Theorem''. % % If OLDNAME is given, then environments NAME and OLDNAME use the same % counter, so using a NAME environment advances the number of the next % NAME environment, and vice-versa. % % If COUNTER is given, then environment NAME is numbered within COUNTER. % E.g., if COUNTER = subsection, then the first NAME in subsection 7.2 % is numbered TEXT 7.2.1. % % The way NAME environments are numbered can be changed by redefining % \theNAME. % % DOCUMENT STYLE PARAMETERS % % \@thmcounter{COUNTER} : A command such that % \edef\theCOUNTER{\@thmcounter{COUNTER}} % defines \theCOUNTER to produce a number for a theorem environment. % The default is: % BEGIN \noexpand\arabic{COUNTER} END % % \@thmcountersep : A separator placed between a theorem number and % the number of the counter within which it is numbered. % E.g., to make the third theorem of section 7.2 be numbered % 7.2-3, \@thmcountersep should be \def'ed to '-'. Its % default is '.'. % % \@begintheorem{NAME}{NUMBER} : A command that begins a theorem % environment for a 'theorem' named 'NAME NUMBER' -- % e.g., \@begintheorem{Lemma}{3.7} starts Lemma 3.7. % % \@opargbegintheorem{NAME}{NUMBER}{OPARG} : A command that begins a theorem % environment for a 'theorem' named 'NAME NUMBER' with optional % argument OPARG -- e.g., \@begintheorem{Lemma}{3.7}{Jones} % starts `Lemma 3.7 (Jones):'. % % \@endtheorem : A command that ends a theorem environment. % % \newtheorem{NAME}{TEXT}[COUNTER] == % BEGIN % if \NAME is definable % then \@definecounter{NAME} % if COUNTER present % then \@addtoreset{NAME}{COUNTER} fi % \theNAME == BEGIN \theCOUNTER \@thmcountersep % eval\@thmcounter{NAME} END % else \theNAME == BEGIN eval\@thmcounter{NAME} END % \NAME == \@thm{NAME}{TEXT} % \endNAME == \@endtheorem % else error % fi % END % % \newtheorem{NAME}[OLDNAME]{TEXT}== % BEGIN % if \NAME is definable % then \theNAME == \theOLDNAME % \NAME == \@thm{OLDNAME}{TEXT} % \endNAME == \@endtheorem % else error % fi % END % % \@thm{NAME}{TEXT} == % BEGIN % \refstepcounter{NAME} % if next char = [ % then \@ythm{NAME}{TEXT} % else \@xthm{NAME}{TEXT} % fi % END % % \@xthm{NAME}{TEXT} == % BEGIN % \@begintheorem{TEXT}{\theNAME} % \ignorespaces % END % % \@ythm{NAME}{TEXT}[OPARG] == % BEGIN % \@opargbegintheorem{TEXT}{\theNAME}{OPARG} % \ignorespaces % END % \def\newtheorem#1{\@ifnextchar[{\@othm{#1}}{\@nthm{#1}}} \def\@nthm#1#2{% \@ifnextchar[{\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}} \def\@xnthm#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname {\@definecounter{#1}\@addtoreset{#1}{#3}% \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% \global\@namedef{#1}{\@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}} \def\@ynthm#1#2{\expandafter\@ifdefinable\csname #1\endcsname {\@definecounter{#1}% \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% \global\@namedef{#1}{\@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}} %% RmS 92/01/10: check for existence of theorem environment #2 \def\@othm#1[#2]#3{% \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% {\expandafter\@ifdefinable\csname #1\endcsname {\global\@namedef{the#1}{\@nameuse{the#2}}% \global\@namedef{#1}{\@thm{#2}{#3}}% \global\@namedef{end#1}{\@endtheorem}}}} \def\@thm#1#2{\refstepcounter {#1}\@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}} \def\@xthm#1#2{\@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces} \def\@ythm#1#2[#3]{\@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}\ignorespaces} %DEFAULT VALUES \def\@thmcounter#1{\noexpand\arabic{#1}} \def\@thmcountersep{.} %deleted September 2, 1986 MDK %\def\@makethmnumber#1#2{\bf #1 #2:} %% RmS 91/08/14 Moved \it after \item to make it work with NFSS \def\@begintheorem#1#2{\trivlist \item[\hskip \labelsep{\bf #1\ #2}]\it} \def\@opargbegintheorem#1#2#3{\trivlist \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]\it} \def\@endtheorem{\endtrivlist} \message{lengths,} % **************************************** % * LENGTHS * % **************************************** % % USER COMMANDS: % % \newlength{\NAME} == \newskip\NAME % \setlength{\NAME}{VALUE} == \NAME :=L VALUE % \addtolength{\NAME}{VALUE} == \NAME :=L \NAME + VALUE % \settowidth{\NAME}{TEXT} == \NAME :=L width of \hbox{TEXT} % \def\newlength#1{\@ifdefinable#1{\newskip#1}} \def\setlength#1#2{#1#2\relax} \def\addtolength#1#2{\advance#1 #2\relax} \def\settowidth#1#2{\setbox\@tempboxa\hbox{#2}#1\wd\@tempboxa\relax} %% \relax added 24 Mar 86 \message{title,} % ***************************************** % * THE TITLE * % ***************************************** % % The user defines the title, author, date by the declarations \title{NAME}, % \author{NAME} and \date{DATE}. Inside these, he can use the \thanks % command to make footnoted acknowledgements, notice of address, etc. % The \maketitle command produces the actual title. Note: multiple authors % are separated with the \and command. \def\title#1{\gdef\@title{#1}} \def\author#1{\gdef\@author{#1}} \def\date#1{\gdef\@date{#1}} \gdef\@date{\today} %Default is today's date \def\thanks#1{\footnotemark\begingroup \def\protect{\noexpand\protect\noexpand}\xdef\@thanks{\@thanks \protect\footnotetext[\the\c@footnote]{#1}}\endgroup} \def\@thanks{} \def\and{%% % \begin{tabular} \end{tabular}\hskip 1em plus.17fil\begin{tabular}[t]{c}%% \end{tabular} } \message{sectioning,} % ***************************************** % * SECTIONING * % ***************************************** % % % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % optional * [ALTHEADING]{HEADING} % Generic command to start a section. % NAME : e.g., 'subsection' % LEVEL : a number, denoting depth of section -- e.g., chapter=1, % section = 2, etc. % INDENT : Indentation of heading from left margin % BEFORESKIP : Absolute value = skip to leave above the heading. % If negative, then paragraph indent of text following % heading is suppressed. % AFTERSKIP : if positive, then skip to leave below heading, else % negative of skip to leave to right of run-in heading. % STYLE : commands to set style % If '*' missing, then increments the counter. If it is present, then % there should be no [ALTHEADING] argument. % Uses the counter 'secnumdepth' whose value is the highest section % level that is to be numbered. % % WARNING: The \@startsection command should be at the same or higher % grouping level as the text that follows it. For example, you % should NOT do something like % \def\foo{ \begingroup ... % \paragraph{...} % \endgroup} % % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} == % BEGIN % IF @noskipsec = T THEN \leavevmode FI % true if previous section % % had no body. % \par % \@tempskipa := BEFORESKIP % @afterindent := T % IF \@tempskipa < 0 THEN \@tempskipa := -\@tempskipa % @afterindent := F % FI % IF @nobreak = true % THEN \everypar == null % ELSE \addpenalty{\@secpenalty} % \addvspace{\@tempskipa} % FI % IF * next % THEN \@ssect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} % ELSE \@dblarg{\@sect % {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}} % FI % END % % \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[ARG1]{ARG2} == % BEGIN % IF LEVEL > \c@secnumdepth % THEN \@svsec :=L null % ELSE \refstepcounter{NAME} % \@svsec :=L BEGIN \theNAME END % FI % IF AFTERSKIP > 0 % THEN \begingroup % STYLE % \@hangfrom{\hskip INDENT\@svsec} % {\interlinepenalty 10000 ARG2\par} % \endgroup % \NAMEmark{ARG1} % \addcontentsline{toc}{NAME} % { IF LEVEL > \c@secnumdepth % ELSE \protect\numberline{\theNAME} FI % ARG1 } % ELSE \@svsechd == BEGIN STYLE % \hskip INDENT\@svsec % ARG2 % \NAMEmark{ARG1} % \addcontentsline{toc}{NAME} % { IF LEVEL > \c@secnumdepth % ELSE \protect\numberline{\theNAME} FI % ARG1 } % END % FI % \@xsect{AFTERSKIP} % END % % \@xsect{AFTERSKIP} == % BEGIN % IF AFTERSKIP > 0 % THEN \par \nobreak % \vskip AFTERSKIP % \@afterheading % ELSE @nobreak :=G F % @noskipsec :=G T % \everypar{ IF @noskipsec = T % THEN @noskipsec :=G F % \clubpenalty :=G 10000 % \hskip -\parindent % \begingroup % \@svsechd % \endgroup % \unskip % \hskip -AFTERSKIP \relax %% relax added 14 Jan 91 % ELSE \clubpenalty :=G \@clubpenalty % \everypar := NULL % FI % } % FI % % END % % \@ssect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{ARG} == % BEGIN % IF AFTERSKIP > 0 % THEN \begingroup % STYLE % \@hangfrom{\hskip INDENT}{\interlinepenalty 10000 ARG\par} % \endgroup % ELSE \@svsechd == BEGIN STYLE % \hskip INDENT % ARG % END % FI % \@xsect{AFTERSKIP} % END % % \@afterheading == % BEGIN % @nobreak :=G true % \everypar := BEGIN IF @nobreak = T % THEN @nobreak :=G false % \clubpenalty :=G 10000 % IF @afterindent = F % THEN remove \lastbox % FI % ELSE \clubpenalty :=G \@clubpenalty % \everypar := NULL % FI % END % END % % \@secpenalty : The penalty (usually negative) put before a section % heading unless it immediately follows another one. % \newcount\@secpenalty \@secpenalty = -300 \newif\if@noskipsec \@noskipsectrue \def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi \par \@tempskipa #4\relax \@afterindenttrue \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi \if@nobreak \everypar{}\else \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} \def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth \let\@svsec\@empty\else \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname\hskip 1em}\fi \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup #6\relax \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}% \endgroup \csname #1mark\endcsname{#7}\addcontentsline {toc}{#1}{\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi #7}\else \def\@svsechd{#6\hskip #3\relax %% \relax added 2 May 90 \@svsec #8\csname #1mark\endcsname {#7}\addcontentsline {toc}{#1}{\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi #7}}\fi \@xsect{#5}} \def\@xsect#1{\@tempskipa #1\relax \ifdim \@tempskipa>\z@ \par \nobreak \vskip \@tempskipa \@afterheading \else \global\@nobreakfalse \global\@noskipsectrue \everypar{\if@noskipsec \global\@noskipsecfalse \clubpenalty\@M \hskip -\parindent \begingroup \@svsechd \endgroup \unskip \hskip -#1\relax % relax added 14 Jan 91 \else \clubpenalty \@clubpenalty \everypar{}\fi}\fi\ignorespaces} \def\@ssect#1#2#3#4#5{\@tempskipa #3\relax \ifdim \@tempskipa>\z@ \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup \else \def\@svsechd{#4\hskip #1\relax #5}\fi \@xsect{#3}} \newif\if@afterindent \@afterindenttrue \def\@afterheading{\global\@nobreaktrue \everypar{\if@nobreak \global\@nobreakfalse \clubpenalty \@M \if@afterindent \else {\setbox\z@\lastbox}\fi \else \clubpenalty \@clubpenalty \everypar{}\fi}} % \@hangfrom{TEXT} : Puts TEXT in a box, and makes a hanging indentation % of the following material up to the first \par. Should be used % in vertical mode. % \def\@hangfrom#1{\setbox\@tempboxa\hbox{#1}% \hangindent \wd\@tempboxa\noindent\box\@tempboxa} \newcount\c@secnumdepth \newcount\c@tocdepth % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a \chapter or \section command without using % \@startsection, you can use \secdef as follows: % \def\chapter { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... } % Command to define \chapter[...]{...} % \def\CMDB #1{ ... } % Command to define \chapter*{...} \def\secdef#1#2{\@ifstar{#2}{\@dblarg{#1}}} % Initializations % \def\sectionmark#1{} \def\subsectionmark#1{} \def\subsubsectionmark#1{} \def\paragraphmark#1{} \def\subparagraphmark#1{} \message{contents,} % ***************************************** % * TABLE OF CONTENTS, ETC. * % ***************************************** % % CONVENTIONS: % \tf@foo = file number for output for table foo. The file is % opened only if @filesw = true. % % \contentsline{TYPE}{ENTRY}{PAGE} % Macro to produce a TYPE entry in a table of contents, etc. % It will appear in the .TOC or other file. For example, % The entry for subsection 1.4.3 in the table of contents might % be produced by: % \contentsline{subsection}{\makebox{30pt}[r]{1.4.3} Gnats and Gnus}{22} % The \protect command causes command sequences to be written % without expanding them. % % \l@TYPE{ENTRY}{PAGE} % Macro defined by document style for making an entry of % type TYPE in a table of contents, etc. E.g., the document % style should define \l@chapter, \l@section, etc. % % \addcontentsline{TABLE}{TYPE}{ENTRY} % User command for adding his own entry to a table of contents, etc. % It adds the entry % \contentsline{TYPE}{ENTRY}{page} % to the .TABLE file. % % \addtocontents{TABLE}{TEXT} : Adds TEXT to the .TABLE file, with no % page number. % % Note: When used in the ENTRY or TEXT of one of the above commands, % \protect causes the following control sequence to be written % on the file without being expanded. The sequence will be expanded % when the table of contents entry is processed. % % SURPRISE: \index, \glossary, and \label are no-ops inside an % \addcontentsline or \addtocontents command argument. This could cause a % problem if the user puts an \index or \label into one of the commands he % writes, or into the optional 'short version' argument of a \section or % \caption command. % % \addcontentsline{TABLE}{TYPE}{ENTRY} == % BEGIN % if @filesw = true % then \begingroup % \index == \label == \glossary == \@gobble % \protect{ARG} == \string\string\string ARG \string\space\space % \@temptokena := \thepage % \@tempa == write \string\contentsline % {TYPE}{ENTRY}{\the\@temptokena} % \@tempa % IF vmode and @nobreak = true THEN \nobreak FI % \endgroup % fi % END % % \@starttoc{EXT} : Used to define \tableofcontents, \listoffigures, etc.-- % e.g., \@starttoc{lof} is used in \listoffigures. This command reads % the .EXT file and sets up to write the new .EXT file. % % \@starttoc{EXT} == % BEGIN % \begingroup % \makeatletter % read file \jobname.EXT % IF @filesw = true % THEN open \jobname.EXT as file \tf@EXT % FI % @nobreak :=G FALSE %% added 24 May 89 % \endgroup % END %% RmS 92/01/14: added \immediate to \openout as all \write commands %% are also executed \immediate \def\@starttoc#1{\begingroup \makeatletter \@input{\jobname.#1}\if@filesw \expandafter\newwrite\csname tf@#1\endcsname \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax \fi \global\@nobreakfalse \endgroup} \let\protect=\relax \def\addcontentsline#1#2#3{\if@filesw \begingroup \let\label\@gobble \let\index\@gobble \let\glossary\@gobble \def\protect##1{\string\string\string##1\string\space \space}\@temptokena{\thepage}% \edef\@tempa{\write \@auxout{\string\@writefile{#1}{\protect \contentsline{#2}{#3}{\the\@temptokena}}}}\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi} \long\def\addtocontents#1#2{\if@filesw \begingroup \let\label\@gobble \let\index\@gobble \let\glossary\@gobble \def\protect##1{\string\string\string##1\string\space\space}% \edef\@tempa{\write \@auxout {\string\@writefile{#1}{#2}}}\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi} \def\contentsline#1{\csname l@#1\endcsname} % \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} : % Macro to produce a table of contents line with the following % parameters: % LEVEL : If LEVEL > \c@tocdepth, then no line produced. % INDENT : Total indentation from the left margin. % NUMWIDTH : Width of box for number if the TITLE has a % \numberline command. % As of 25 Jan 88, this is also the amount of extra indentation % added to second and later lines of a multiple line entry. % TITLE : Contents of entry. % PAGE : Page number. % % Uses the following parameters, which must be set by the document style. % They should be defined with \def's. % \@pnumwidth : Width of box in which page number is set. % \@tocrmarg : Right margin indentation for all but last line of % multiple-line entries. % \@dotsep : Separation between dots, in mu units. Should be \def'd to % a number like 2 or 1.7 % %% RmS 91/09/29: added \reset@font for page number \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else \vskip \z@ plus.2\p@ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima #3\relax \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip #4\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}\hfill \nobreak \hbox to\@pnumwidth{\hfil\reset@font\rm #5}\par}\fi} %%% Note: \nobreak's added 7 Jan 86 to prevent bad line break that %%% left the page number dangling by itself at left edge of a new line. %%% %%% Changed 25 Jan 88 to use \leftskip instead of \hangindent so %%% leaders of multiple-line contents entries would line up properly. % \numberline{NUMBER} : For use in a \contentsline command. % It puts NUMBER flushleft in a box of width \@tempdima % (Before 25 Jan 88 change, it also added \@tempdima to the hanging % indentation.) \def\numberline#1{\hbox to\@tempdima{#1\hfil}} \message{index,} % **************************************************** % * INDEX COMMANDS AND GLOSSARY * % **************************************************** % % \makeindex == % BEGIN % if \@filesw = T % then open file \jobname.IDX as \@indexfile % \index == BEGIN \@bsphack % \begingroup % \protect{X} == \string X\space % %% added 3 Feb 87 for \index commands % %% in \footnotes % re-\catcode special characters to 'other' % \@wrindex % fi % END % % \@wrindex{ITEM} == % BEGIN % write of {\indexentry{ITEM}{page number}} % \endgroup % \@esphack % END % INITIALIZATION: % % \index == BEGIN \@bsphack % \begingroup % re-\catcode special characters (in case '%' there) % \@index % END % % \@index{ITEM} == BEGIN \endgroup \@esphack END % % Changes made 14 Apr 89 to write \glossaryentry's instead of % \indexentry's on the .glo file. \def\makeindex{\if@filesw \newwrite\@indexfile \immediate\openout\@indexfile=\jobname.idx \def\index{\@bsphack\begingroup \def\protect####1{\string####1\space}\@sanitize \@wrindex}\typeout {Writing index file \jobname.idx }\fi} \def\@wrindex#1{\let\thepage\relax \edef\@tempa{\write\@indexfile{\string \indexentry{#1}{\thepage}}}\expandafter\endgroup\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\@esphack} \def\index{\@bsphack\begingroup \@sanitize\@index} \def\@index#1{\endgroup\@esphack} \def\makeglossary{\if@filesw \newwrite\@glossaryfile \immediate\openout\@glossaryfile=\jobname.glo \def\glossary{\@bsphack\begingroup\@sanitize\@wrglossary}\typeout {Writing glossary file \jobname.glo }\fi} \def\@wrglossary#1{\let\thepage\relax \edef\@tempa{\write\@glossaryfile{\string \glossaryentry{#1}{\thepage}}}\expandafter\endgroup\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\@esphack} \def\glossary{\@bsphack\begingroup\@sanitize\@index} \message{bibliography,} % **************************************** % * BIBLIOGRAPHY * % **************************************** % % A bibliography is created by the bibliography environment, which % generates a title such as ``References'', and a list of entries. % The BIBTeX program will create a file containing such an environment, % which will be read in by the \bibliography command. With % BIBTeX, the following commands will be used. % % \bibliography{FILE1,FILE2, ... ,FILEn} : specifies % the bibdata files. Writes a \bibdata entry on the .aux file % and tries to read in mainfile.BBL. % % \bibliographystyle{STYLE} : Writes a \bibstyle entry on the .aux file. % % The thebibliography environment is a list environment. To save the % use of an extra counter, it should use enumiv as the item counter. % Instead of using \item, items in the bibliography are produced by the % following commands: % \bibitem{NAME} : Produces a numbered entry cited as NAME. % \bibitem[LABEL]{NAME} : Produces an entry labeled by LABEL and % cited by NAME. % The former is used for bibliographies with citations like [1], [2], etc.; % the latter is used for citations like [Knuth82]. % % The document style must define the thebibliography environment. This % environment has a single argument, which is the widest bibliography % label-- e.g., if the [Knuth67] is the widest entry, then thist argument % will be Knuth67. The \thebibliography command must begin a list % environment, which the \endthebibliography command ends. % % Entries are cited by the command \cite{NAME}. % % PARAMETERS % % \@cite : A macro such that \@cite{LABEL1,LABEL2}{NOTE} % produces the output for a \cite[NOTE]{FOO1,FOO2} command, % where entry FOOi is defined by \bibitem[LABELi]{FOOi}. % The switch @tempswa is true if the optional NOTE argument % is present. % The default definition is : % \@cite{LABELS}{NOTE} == % BEGIN [LABELS % IF @tempswa = T THEN , NOTE FI % ] % END % % \@biblabel : A macro to produce the label in the bibliography % entry. For \bibitem[LABEL]{NAME}, the label is % generated by \@biblabel{LABEL}. It has the default % definition \@biblabel{LABEL} -> [LABEL]. % CONVENTION % % \b@FOO : The name or number of the reference created by \cite{FOO} % E.g., if \cite{FOO} -> [17] , then \b@FOO -> 17. % % \def\bibitem{\@ifnextchar[{\@lbibitem}{\@bibitem}} %% RmS 92/02/26: Added \hfill to restore left-alignment of %% bibliography labels in alpha style \def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw {\def\protect##1{\string ##1\space}\immediate \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} %% Placement of `}' in def of \@lbibitem corrected 29 Apr 87 %% (Error found by Arthur Ogawa.) %% RmS 91/11/13: Changed counter enumi to enumiv, %% as it says in the comment above %% RmS 92/01/10: Changed \c@enumiv to \value{\@listctr}. \def\@bibitem#1{\item\if@filesw \immediate\write\@auxout {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces} \def\bibcite#1#2{\global\@namedef{b@#1}{#2}} \let\citation\@gobble \def\cite{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} % \penalty\@m added to definition of \@citex to allow a line % break after the `,' in citations like [Jones80,Smith77] % (Added 23 Oct 86) % % space added after the `,' (21 Nov 87) % %% RmS 91/10/25: added \reset@font, suggested by Bernd Raichle. %% RmS 91/11/06: added code to remove a leading blank \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \let\@citea\@empty \@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{,\penalty\@m\ }% \def\@tempa##1##2\@nil{\edef\@citeb{\if##1\space##2\else##1##2\fi}}% \expandafter\@tempa\@citeb\@nil \@ifundefined{b@\@citeb}{{\reset@font\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% \hbox{\csname b@\@citeb\endcsname}}}{#1}} \let\bibdata=\@gobble \let\bibstyle=\@gobble \def\bibliography#1{\if@filesw\immediate\write\@auxout{\string\bibdata{#1}}\fi \@input{\jobname.bbl}} \def\bibliographystyle#1{\if@filesw\immediate\write\@auxout {\string\bibstyle{#1}}\fi} % \nocite{CITATIONS} : puts information on .AUX file to cause % BibTeX to include the CITATIONS list in the bibliography, % but puts nothing in the text. (Added 14 Jun 85) \def\nocite#1{\@bsphack \if@filesw\immediate\write\@auxout{\string\citation{#1}}\fi \@esphack} %DEFAULT DEFINITIONS \def\@cite#1#2{[{#1\if@tempswa , #2\fi}]} %% RmS 92/01/14: removed \hfill in definition of \@biblabel \def\@biblabel#1{[#1]} \message{floats,} % **************************************** % * FLOATS * % **************************************** % % The different types of floats are identified by a TYPE name, which is % the name of the counter for that kind of float. For example, figures % are of type 'figure' and tables are of type 'table'. Each TYPE has % associated a positive TYPE NUMBER, which is a power of two. E.g., % figures might be have type number 1, tables type number 2, programs % type number 4, etc. % % The locations where a float can go are specified by a PLACEMENT % SPECIFIER, which is a list of the possible locations, each denoted % by a letter as follows: % h : here - at the current location in the text. % t : top - at the top of a text page. % b : bottom - at the bottom of a text page. % p : page - on a separate float page. % For example, 'pht' specifies that the float can appear in any of three % locations: page, here or top. % % Where floats may appear on a page, and how many may appear there % are specified by the following float placement parameters. The % numbers are named like counters so the user can set them with % the ordinary counter-setting commands. % % \c@topnumber : Number of floats allowed at the top of a column. % \topfraction : Fraction of column that can be devoted to floats. % \c@dbltopnumber, \dbltopfraction : Same as above, but for double-column % floats. % \c@bottomnumber, \bottomfraction : Same as above for bottom of page. % \c@totalnumber : Number of floats allowed in a single column, % including in-text floats. % \textfraction : Minimum fraction of column that must contain text. % \floatpagefraction : Minimum fraction of page that must be taken % up by float page. % \dblfloatpagefraction : Same as above, for double-column floats. % % The document style must define the following. % % \fps@TYPE : The default placement specifier for floats of type TYPE. % % \ftype@TYPE : The type number for floats of type TYPE. % % \ext@TYPE : The file extension indicating the file on which the % contents list for float type TYPE is stored. For example, % \ext@figure = 'lof'. % % \fnum@TYPE : A macro to generate the figure number for a caption. % For example, \fnum@TYPE == Figure \thefigure. % % \@makecaption{NUM}{TEXT} : A macro to make a caption, with NUM the value % produced by \fnum@... and TEXT the text of the caption. % It can assume it's in a \parbox of the appropriate width. % % \@float{TYPE}[PLACEMENT] : This macro begins a float environment for a % single-column float of type TYPE with PLACEMENT as the placement % specifier. The default value of PLACEMENT is defined by \fps@TYPE. % The environment is ended by \end@float. % E.g., \figure == \@float{figure}, \endfigure == \end@float. % % \caption == % BEGIN % \refstepcounter{\@captype} % \@dblarg{\@caption{\@captype}} % END % %% In following definition, \par moved from after \addcontentsline to %% before \addcontentsline because the \write could cause %% an extra blank line to be added to the paragraph above the %% caption. (Change made 12 Jun 87) % % \@caption{TYPE}[STEXT]{TEXT} == % BEGIN % \par % \addcontentsline{\ext@TYPE}{TYPE}{\numberline{\theTYPE}{STEXT}} % \begingroup % \@parboxrestore % \normalsize % \@makecaption{\fnum@TYPE}{TEXT} % \par % \endgroup % END % % \@float{TYPE}[PLACEMENT] == % BEGIN % if hmode then \@bsphack % \@floatpenalty := -10002 % else \@floatpenalty := -10003 % fi % \@captype ==L TYPE % if inner % then LaTeX Error: 'Not in outer paragraph mode.' % \@floatpenalty := 0 % else if \@freelist nonempty % then \@currbox :=L head of \@freelist % \@freelist :=G tail of \@freelist % \count\@currbox :=G 32*\ftype@TYPE + 16 + % bits determined by PLACEMENT % else \@floatpenalty := 0 % LaTeX Error: 'Too many unprocessed floats' % fi % fi % \@currbox :=G \vbox{ %% 15 Dec 87 -- removed \boxmaxdepth :=L 0pt % %% that made box zero depth because it screwed % %% things up. Instead, added \vskip 0pt at end % \hsize = \columnwidth % \@parboxrestore % END % % \end@float == % BEGIN % \vskip 0pt %% makes 0 depth box -- added 15 Dec 87 % } % if \@floatpenalty < 0 % then add \@currbox to \@currlist % if \ht\@currbox > \textheight % then \ht\@currbox :=G \textheight fi % if \@floatpenalty < -10002 % then \penalty -10004 % \vbox{} % \penalty \@floatpenalty % else \vadjust{\penalty -10004 % \vbox{} % \penalty \@floatpenalty} % \@Esphack % fi fi % END % % \@dblfloat{TYPE}[PLACEMENT] : Macro to begin a float environment for a % double-column float of type TYPE with PLACEMENT as the placement % specifier. The default value of PLACEMENT is 'tp' % The environment is ended by \end@dblfloat. % E.g., \figure* == \@dblfloat{figure}, \endfigure* == \end@dblfloat. % % \@dblfloat{TYPE}[PLACEMENT] == % Identical to \@float{TYPE}[PLACEMENT] except \hsize and \linewidth % are set to \textwidth. % % \end@dblfloat == % BEGIN %%% { BRACE MATCHING % \vskip 0pt %% makes 0 depth box -- added 15 Dec 87 % } % if \@floatpenalty < 0 % then \@dbldeferlist :=G \@dbldeferlist * \@currbox % fi % if \@floatpenalty = -10002 then \@Esphack fi % END % \newcount\@floatpenalty \def\caption{\refstepcounter\@captype \@dblarg{\@caption\@captype}} \long\def\@caption#1[#2]#3{\par\addcontentsline{\csname ext@#1\endcsname}{#1}{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}\begingroup \@parboxrestore \normalsize \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par \endgroup} \def\@float#1{\@ifnextchar[{\@xfloat{#1}}{\edef\@tempa{\noexpand\@xfloat {#1}[\csname fps@#1\endcsname]}\@tempa}} \def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner \@parmoderr\@floatpenalty\z@ \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n \@tfor \@tempa :=#2\do {\if\@tempa h\advance\@tempcnta \@ne\fi \if\@tempa t\advance\@tempcnta \tw@\fi \if\@tempa b\advance\@tempcnta 4\relax\fi \if\@tempa p\advance\@tempcnta 8\relax\fi }\global\count\@currbox\@tempcnta}\@fltovf\fi \global\setbox\@currbox\vbox\bgroup % \boxmaxdepth\z@ % commented out 15 Dec 87 \hsize\columnwidth \@parboxrestore} \def\end@float{\par\vskip\z@\egroup %% \par\vskip\z@ added 15 Dec 87 \ifnum\@floatpenalty <\z@ \@cons\@currlist\@currbox \ifdim \ht\@currbox >\textheight %% RmS 91/11/06 added warning message % perhaps we should use an error message \@warning{Float larger than \string\textheight}% \ht\@currbox\textheight \fi \ifnum\@floatpenalty <-\@Mii \penalty -\@Miv \@tempdima\prevdepth %% saving and restoring \prevdepth added \vbox{}% %% 26 May 87 to prevent extra vertical \prevdepth \@tempdima %% space when used in vertical mode \penalty\@floatpenalty %% RmS 92/03/18 changed \@esphack to \@Esphack \else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack \fi\fi} \def\@dblfloat{\if@twocolumn\let\@tempa\@dbflt\else\let\@tempa\@float\fi \@tempa} \def\@dbflt#1{\@ifnextchar[{\@xdblfloat{#1}}{\@xdblfloat{#1}[tp]}} \def\@xdblfloat#1[#2]{\@xfloat{#1}[#2]\hsize\textwidth\linewidth\textwidth} \def\end@dblfloat{\if@twocolumn \par\vskip\z@\egroup %% \par\vskip\z@ added 15 Dec 87\egroup \ifnum\@floatpenalty <\z@ % make sure that we never exceed \textheight, otherwise float % will never get typeset =91/03/15 FMi= \ifdim\ht\@currbox >\textheight % perhaps we should use an error message \@warning{Float larger than \string\textheight}% \ht\@currbox\textheight \fi \@cons\@dbldeferlist\@currbox\fi %% RmS 92/03/18 changed \@esphack to \@Esphack \ifnum \@floatpenalty =-\@Mii \@Esphack\fi\else\end@float\fi} \newcount\c@topnumber \newcount\c@dbltopnumber \newcount\c@bottomnumber \newcount\c@totalnumber \def\@floatplacement{\global\@topnum\c@topnumber \global\@toproom \topfraction\@colht \global\@botnum \c@bottomnumber \global\@botroom \bottomfraction\@colht \global\@colnum \c@totalnumber \@fpmin \floatpagefraction\@colht} \def\@dblfloatplacement{\global\@dbltopnum\c@dbltopnumber \global\@dbltoproom \dbltopfraction\@colht \@fpmin \dblfloatpagefraction\textheight \@fptop \@dblfptop \@fpsep \@dblfpsep \@fpbot \@dblfpbot} % MARGINAL NOTES: % % Marginal notes use the same mechanism as floats to communicate % with the \output routine. Marginal notes are distinguished from % floats by having a negative placement specification. The command % \marginpar [LTEXT]{RTEXT} generates a marginal note in a parbox, % using LTEXT if it's on the left and RTEXT if it's on the right. % (Default is RTEXT = LTEXT.) It uses the following parameters. % % \marginparwidth : Width of marginal notes. % \marginparsep : Distance between marginal note and text. % the page layout to determine how to move the marginal % note into the margin. E.g., \@leftmarginskip == % \hskip -\marginparwidth \hskip -\marginparsep . % \marginparpush : Minimum vertical separation between \marginpar's % % Marginal notes are normally put on the outside of the page % if @mparswitch = true, and on the right if @mparswitch = false. % The command \reversemarginpar reverses the side where they % are put. \normalmarginpar undoes \reversemarginpar. % These commands have no effect for two-column output. % % SURPRISE: if two marginal notes appear on the same line of % text, then the second one could appear on the next page, in % a funny position. % % % \marginpar [LTEXT]{RTEXT} == % BEGIN % if hmode then \@bsphack % \@floatpenalty := -10002 % else \@floatpenalty := -10003 % fi % if inner % then LaTeX Error: 'Not in outer paragraph mode.' % \@floatpenalty := 0 % else if \@freelist has two elements: % then get \@marbox, \@currbox from \@freelist % \count\@marbox :=G -1 % else \@floatpenalty := 0 % LaTeX Error: 'Too many unprocessed floats' % \@currbox, \@marbox := \@tempboxa %%use \def % fi % fi % if optional argument % then %% \@xmpar == % \@savemarbox\@marbox{LTEXT} % \@savemarbox\@currbox{RTEXT} % else %% \@ympar == % \@savemarbox\@marbox{RTEXT} % \box\@currbox :=G \box\@marbox % fi % %% \@xympar == % if \@floatpenalty < 0 then add \@marbox to \@currlist fi % \setbox\@tempboxa =L %% added 3 Jan 88 to correct bug introduced % { \end@float %%%% BRACE MATCHING} %% by 15 Dec 87 change % END % % \@savemarbox\BOX{TEXT} == % BEGIN % \BOX :=G \vtop{ \hsize = \marginparwidth % \@parboxrestore % TEXT % } % END % % \reversemarginpar == BEGIN \@mparbottom :=G 0 % @reversemargin :=G true % END % % \normalmarginpar == BEGIN \@mparbottom :=G 0 % @reversemargin :=G false % END % \def\marginpar{\ifhmode \@bsphack\@floatpenalty -\@Mii\else \@floatpenalty-\@Miii\fi\ifinner \@parmoderr\@floatpenalty\z@ \else\@next\@currbox\@freelist{}{}\@next\@marbox\@freelist{\global \count\@marbox\m@ne}{\@floatpenalty\z@ \@fltovf\def\@currbox{\@tempboxa }\def\@marbox{\@tempboxa}}\fi \@ifnextchar [{\@xmpar}{\@ympar}} \long\def\@xmpar[#1]#2{\@savemarbox\@marbox{#1}\@savemarbox\@currbox {#2}\@xympar} \long\def\@ympar#1{\@savemarbox\@marbox{#1}\global\setbox\@currbox \copy\@marbox\@xympar} \long\def\@savemarbox#1#2{\global\setbox#1\vtop{\hsize\marginparwidth \@parboxrestore #2}} \def\@xympar{\ifnum\@floatpenalty <\z@\@cons\@currlist\@marbox\fi \setbox\@tempboxa\vbox %% added 3 Jan 88 %% RmS 92/03/18 added \global\@ignorefalse \bgroup\end@float\global\@ignorefalse\@esphack} \def\reversemarginpar{\global\@mparbottom\z@ \@reversemargintrue} \def\normalmarginpar{\global\@mparbottom\z@ \@reversemarginfalse} \message{footnotes,} % **************************************** % * FOOTNOTES * % **************************************** % % \footnote{NOTE} : User command to insert a footnote. % % \footnote[NUM]{NOTE} : User command to insert a footnote numbered % NUM, where NUM is a number -- 1, 2, % etc. For example, if footnotes are numbered % *, **, etc. within pages, then \footnote[2]{...} % produces footnote '**'. This command does not % step the footnote counter. % % \footnotemark[NUM] : Command to produce just the footnote mark in % the text, but no footnote. With no argument, % it steps the footnote counter before generating % the mark. % % \footnotetext[NUM]{TEXT} : Command to produce the footnote but no % mark. \footnote is equivalent to % \footnotemark \footnotetext . % % As in PLAIN, footnotes use \insert\footins, and the following parameters: % % \footnotesize : Size-changing command for footnotes. % % \footnotesep : The height of a strut placed at the beginning of % every footnote. % \skip\footins : Space between main text and footnotes. The rule % separating footnotes from text occurs in this space. % This space lies above the strut of height \footnotesep % which is at the beginning of the first footnote. % \footnoterule : Macro to draw the rule separating footnotes from text. % It is executed right after a \vspace of \skip\footins. % It should take zero vertical space--i.e., it should to % a negative skip to compensate for any positive space % it occupies. (See PLAIN.TEX.) % % \interfootnotelinepenalty : Interline penalty for footnotes. % % \thefootnote : In usual LaTeX style, produces the footnote number. % If footnotes are to be numbered within pages, then the % document style file must include an \@addtoreset command % to cause the footnote counter to be reset when the page % counter is stepped. This is not a good idea, though, % because the counter will not always be reset in time % to ensure that the first footnote on a page is footnote % number one. % % \@thefnmark : Holds the current footnote's mark--e.g., \dag or '1' or 'a'. % % \@mpfnnumber : A macro that generates the numbers for \footnote % and \footnotemark commands. It == \thefootnote % outside a minipage environment, but can be changed % inside to generate numbers for \footnote's. % % \@makefnmark : A macro to generate the footnote marker from \@thefnmark % The default definition is \hbox{$^\@thefnmark$}. % % \@makefntext{NOTE} : % Must produce the actual footnote, using \@thefnmark as the mark % of the footnote and NOTE as the text. It is called when effectively % inside a \parbox, with \hsize = \columnwidth. For example, it might % be as simple as % $^{\@thefnmark}$ NOTE % % In a minipage environment, \footnote and \footnotetext are redefined % so that % (a) they use the counter mpfootnote % (b) the footnotes they produce go at the bottom of the minipage. % The switch is accomplished by letting \@mpfn == footnote or mpfootnote % and \thempfn == \thefootnote or \thempfootnote, and by redefining % \@footnotetext to be \@mpfootnotetext in the minipage. % % \footnote{NOTE} == % BEGIN % \stepcounter{\@mpfn} % \@thefnmark :=G eval (\thempfn) % \@footnotemark % \@footnotetext{NOTE} % END % % \footnote[NUM]{NOTE} == % BEGIN % begingroup % counter \@mpfn :=L NUM % \@thefnmark :=G eval (\thempfn) % endgroup % \@footnotemark % \@footnotetext{NOTE} % END % % \@footnotetext{NOTE} == % BEGIN % \insert into \footins % {\footnotesize % \interlinepenalty :=L \interfootnotelinepenalty % \splittopskip :=L \footnotesep % \splitmaxdepth :=L \dp\strutbox % \floatingpenalty :=L 20000 % \hsize :=L \columnwidth % \@parboxrestore % set \@currentlabel to make \label command work right % \@makefntext{\rule{0pt}{\footnotesep} NOTE} % } % END % % \footnotemark == % BEGIN \stepcounter{footnote} % \@thefnmark :=G eval(\thefootnote) % \@footnotemark % END % % \footnotemark[NUM] == % BEGIN % begingroup % footnote counter :=L NUM % \@thefnmark :=G eval(\thefootnote) % endgroup % \@footnotemark % END % % \@footnotemark == % BEGIN % \leavevmode % IF hmode THEN \@x@sf := \the\spacefactor FI % \@makefnmark % put number in main text % IF hmode THEN \spacefactor := \@x@sf FI % END % % \footnotetext == % BEGIN \@thefnmark :=G eval (\thempfn) % \@footnotetext % END % % \footnotetext[NUM] == % BEGIN begingroup counter \@mpfn :=L NUM % \@thefnmark :=G eval (\thempfn) % endgroup % \@footnotetext % END % \@definecounter{footnote} \def\thefootnote{\arabic{footnote}} \@definecounter{mpfootnote} \def\thempfootnote{\alph{mpfootnote}} % Default definition \def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}} \newdimen\footnotesep %% RmS 91/11/01: Added \let\protect\noexpand in \footnote, \footnotemark, %% and \footnotetext, since \xdef is used. %% RmS 91/11/22: Added \let\protect\noexpand in \@xfootnote, \@xfootnotemark, %% and \@xfootnotetext. \def\footnote{\@ifnextchar[{\@xfootnote}{\stepcounter{\@mpfn}% \begingroup\let\protect\noexpand \xdef\@thefnmark{\thempfn}\endgroup \@footnotemark\@footnotetext}} \def\@xfootnote[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax \let\protect\noexpand \xdef\@thefnmark{\thempfn}\endgroup \@footnotemark\@footnotetext} %% RmS 91/09/29: added \reset@font \long\def\@footnotetext#1{\insert\footins{\reset@font\footnotesize \interlinepenalty\interfootnotelinepenalty \splittopskip\footnotesep \splitmaxdepth \dp\strutbox \floatingpenalty \@MM \hsize\columnwidth \@parboxrestore \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext {\rule{\z@}{\footnotesep}\ignorespaces #1\strut}}} \def\footnotemark{\@ifnextchar[{\@xfootnotemark}{\stepcounter{footnote}% \begingroup\let\protect\noexpand \xdef\@thefnmark{\thefootnote}\endgroup \@footnotemark}} \def\@xfootnotemark[#1]{\begingroup \c@footnote #1\relax \let\protect\noexpand \xdef\@thefnmark{\thefootnote}\endgroup \@footnotemark} \def\@footnotemark{\leavevmode\ifhmode \edef\@x@sf{\the\spacefactor}\fi \@makefnmark \ifhmode\spacefactor\@x@sf\fi\relax} \def\footnotetext{\@ifnextchar [{\@xfootnotenext}% {\begingroup\let\protect\noexpand \xdef\@thefnmark{\thempfn}\endgroup \@footnotetext}} \def\@xfootnotenext[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax \let\protect\noexpand \xdef\@thefnmark{\thempfn}\endgroup \@footnotetext} \def\@mpfn{footnote} \def\thempfn{\thefootnote} \message{initial,} % **************************************** % * INITIAL DECLARATION COMMANDS * % **************************************** % % DOCUMENT STYLE % -------------- % % The user starts his file with the command % \documentstyle [OPTION1, ... ,OPTIONk]{STYLE} % which saves the OPTION's and \input's the file STYLE.STY. When the % STYLE.STY file issues the command \@options, the following happens % for each i : % IF \ds@OPTIONi is defined % THEN execute \ds@OPTIONi % ELSE save OPTIONi on a list of unprocessed options. % FI % After STYLE.STY has been executed, the file OPTIONi.STY is read for % each OPTIONi on the list of unprocessed options. % % \documentstyle == % BEGIN % IF next char = [ % THEN \@documentstyle % ELSE \@documentstyle[] % FI % END % % \@documentstyle[OPTIONS]{STYLE} == % BEGIN % \makeatletter % \@optionlist := OPTIONS % \@optionfiles :=G null % \input STYLE.STY % \@elt == \input % \@optionfiles % \@elt == \relax % \makeatother % END % % \@options == % BEGIN % \@elt := \relax % FOR \@tempa := \@optionlist % DO IF \ds@[eval(\@tempa)] defined % THEN \ds@[eval(\@tempa)] % ELSE \@optionfiles :=G \@optionfiles * % \@elt eval(\@tempa) \relax % OD FI % END % % PAGE STYLE COMMANDS % ------------------- % \pagestyle{STYLE} : sets the page style of the current and succeeding % pages to STYLE % % \thispagestyle{STYLE} : sets the page style of the current page only % to STYLE % % To define a page style STYLE, you must define \ps@STYLE to set the page % style parameters. % % HOW A PAGE STYLE MAKES RUNNING HEADS AND FEET: % % The \ps@... command defines the macros \@oddhead, \@oddfoot, % \@evenhead, and \@evenfoot to define the running heads and feet. % (See output routine.) To make headings determined by the sectioning % commands, the page style defines the commands \chaptermark, % \sectionmark, etc., where \chaptermark{TEXT} is called by \chapter to % set a mark. The \...mark commands and the \...head macros are defined % with the help of the following macros. (All the \...mark commands % should be initialized to no-ops.) % % MARKING CONVENTIONS: % LaTeX extends TeX's \mark facility by producing two kinds of marks % a 'left' and a 'right' mark, using the following commands: % \markboth{LEFT}{RIGHT} : Adds both marks. % \markright{RIGHT} : Adds a 'right' mark. % \leftmark : Used in the output routine, gets the current 'left' mark. % Works like TeX's \botmark. % \rightmark : Used in the output routine, gets the current 'right' mark. % Works like TeX's \firstmark. % The marking commands work reasonably well for right marks 'numbered % within' left marks--e.g., the left mark is changed by a \chapter command and % the right mark is changed by a \section command. However, it does % produce somewhat anomalous results if 2 \markboth's occur on the same page. % % Commands like \tableofcontents that should set the marks in some page styles % use a \@mkboth command, which is \let by the pagestyle command (\ps@...) % to \markboth for setting the heading or to \@gobbletwo to do nothing. \def\documentstyle{\@ifnextchar[{\@documentstyle}{\@documentstyle[]}} \def\@documentstyle[#1]#2{\makeatletter \def\@optionlist{#1}\gdef\@optionfiles{}\input #2.sty\relax \let\@elt\input \@optionfiles \let\@elt\relax \makeatother} \def\@options{\let\@elt\relax \@for\@tempa:=\@optionlist\do {\@ifundefined{ds@\@tempa}{\xdef\@optionfiles{\@optionfiles \@elt \@tempa.sty\relax}}{\csname ds@\@tempa\endcsname}}} \def\pagestyle#1{\@nameuse{ps@#1}} \def\thispagestyle#1{\global\@specialpagetrue\gdef\@specialstyle{#1}} % \head : An obsolete command that was used in the `myheadings' % page style. (Removed 14 Jun 85) % \def\head{\@ifnextchar[{\@xhead}{\@yhead}} % \def\@xhead[#1]#2{\if #1l \def\@lhead{#2}\else \def\@rhead{#2}\fi} % \def\@yhead#1{\def\@lhead{#1}\def\@rhead{#1}} % Initialization % %\def\@lhead{} %% RmS 91/09/29: removed since no longer used %\def\@rhead{} %% ditto % Default Initializations % \def\ps@empty{\let\@mkboth\@gobbletwo\let\@oddhead\@empty\let\@oddfoot\@empty \let\@evenhead\@empty\let\@evenfoot\@empty} \def\ps@plain{\let\@mkboth\@gobbletwo \let\@oddhead\@empty\def\@oddfoot{\reset@font\rm\hfil\thepage \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot} \def\@leftmark#1#2{#1} \def\@rightmark#1#2{#2} %% test for @nobreak added 15 Apr 86 in \markboth and \markright %% letting \label and \index to \relax added 22 Feb 86 so these %% commands can appear in sectioning command arguments %% RmS 91/06/21 Same for \glossary %% \def\markboth#1#2{\gdef\@themark{{#1}{#2}}{\let\protect\noexpand \let\label\relax \let\index\relax \let\glossary\relax \mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi} \def\markright#1{{\let\protect\noexpand \let\label\relax \let\index\relax \let\glossary\relax \expandafter\@markright\@themark {#1}\mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi} \def\@markright#1#2#3{\gdef\@themark{{#1}{#3}}} \def\leftmark{\expandafter\@leftmark\botmark} \def\rightmark{\expandafter\@rightmark\firstmark} % Initialization % \def\@themark{{}{}} % OTHER % ----- % % \raggedbottom : Typesets pages with no vertical stretch, so they have % their natural height instead of all being exactly the % same height. (Uses a space of .0001fil to avoid % interfering with the 1fil space of \newpage.) % % \flushbottom : Inverse of \raggedbottom - makes all pages the same % height. % % \sloppy : Resets TeX's parameters so it accepts worse line and page % breaks, and slightly more overfull boxes. % % \fussy : Resets TeX's parameters to their normal finnicky values. % \def\raggedbottom{\def\@textbottom{\vskip \z@ plus.0001fil}\let\@texttop\relax} \def\flushbottom{\let\@textbottom\relax \let\@texttop\relax} % Default definitions % \sloppy will never (well, hardly ever) produce overfull boxes, but may % produce underfull ones. (14 June 85) % A sloppypar environment is equivalent to {\par \sloppy ... \par}. \def\sloppy{\tolerance \@M \hfuzz .5\p@ \vfuzz .5\p@} \def\sloppypar{\par\sloppy} \def\endsloppypar{\par} \def\fussy{\tolerance 200 \hfuzz .1\p@ \vfuzz .1\p@} % LaTeX default is no overfull box rule. Changed by document % style option \overfullrule 0pt \message{output,} % **************************************** % * OUTPUT * % **************************************** % % % PAGE LAYOUT PARAMETERS % % \topmargin : Extra space added to top of page. % @twoside : boolean. T if two-sided printing % \oddsidemargin : IF @twoside = T % THEN extra space added to left of odd-numbered % pages. % ELSE extra space added to left of all pages. % \evensidemargin : IF @twoside = T % THEN extra space added to left of even-numbered % pages. % \headheight : height of head % \headsep : separation between head and text % \footskip : distance separation between baseline of last % line of text and baseline of foot. % Note difference between \footSKIP and \headSEP. % \textheight : height of text on page, excluding head and foot % \textwidth : width of printing on page % \columnsep : IF @twocolumn = T % THEN width of space between columns % \columnseprule : IF @twocolumn = T % THEN width of rule between columns (0 if none). % \columnwidth : IF @twocolumn = T % THEN (\textwidth - \columnsep)/2 % ELSE \textwidth % It is set by the \@maketwocolumn and \@makeonecolumn % commands. % \@textbottom : Command executed at bottom of vbox holding text of page % (including figures). The \raggedbottom command % almost \let's this to \vfil (actually sets it to % \vskip \z@ plus.0001fil). %expanded 18 Jun 86 % % \@texttop : Command executed at top of vbox holding text of page % (including figures). Used by letter style; can also % be used to produce centered pages. Is \let to \relax % by \raggedbottom and \flushbottom. % % Page layout must also initialize \@colht and \@colroom to \textheight. % % PAGE STYLE PARAMETERS: % % \floatsep : Space left between floats. % \textfloatsep : Space between last top float or first bottom float % and the text. % \topfigrule : Command to place rule (or whatever) between floats % at top of page and text. Executed in inner vertical % mode right before the \textfloatsep skip separating % the floats from the text. Must occupy zero vertical % space. (See \footnoterule.) % \botfigrule : Same as \topfigrule, but put after the \textfloatsep % skip separating text from the floats at bottom of page. % \intextsep : Space left on top and bottom of an in-text float. % \@maxsep : The maximum of \floatsep, \textfloatsep and \intextsep % \dblfloatsep : Space between double-column floats. % \dbltextfloatsep : Space between top or bottom double-column floats % and text. % \dblfigrule : Similar to \topfigrule, but for double-column floats. % \@dblmaxsep : The maximum of \dblfloatsep and \dbltexfloatsep % \@fptop : Glue to go at top of float column -- must be 0pt + % stretch % \@fpsep : Glue to go between floats in a float column. % \@fpbot : Glue to go at bottom of float column -- must be 0pt + % stretch % \@dblfptop, \@dblfpsep, \@dblfpbot % : Analogous for double-column float page in two-column % format. % % FOOTNOTES: As in PLAIN, footnotes use \insert\footins. % % PAGE LAYOUT SWITCHES AND MACROS % % @twocolumn : Boolean. T if two columns per page. % % PAGE STYLE MACROS AND SWITCHES % % \@oddhead : IF @twoside = T % THEN macro to generate head of odd-numbered pages. % ELSE macro to generate head of all pages. % \@evenhead : IF @twoside = T % THEN macro to generate head of even-numbered pages. % \@oddfoot : IF @twoside = T % THEN macro to generate foot of odd-numbered pages. % ELSE macro to generate foot of all pages. % \@evenfoot : IF @twoside = T % THEN macro to generate foot of even-numbered pages. % @specialpage : boolean. T if current page is to have a special format. % \@specialstyle : If its value is foo then % IF @specialpage = T % THEN the command \ps@foo is executed to temporarily % reset the page style parameters before composing % the current page. This command should execute % only \def's and \edef's, making only local % definitions. % % % FLOAT PLACEMENT PARAMETERS % % The following parameters are set by the macro \@floatplacement. % When \@floatplacement is called, % \@colht is the height of the page or column being built. I.e.: % * For single-column page it equals \textheight. % * For double-column page it equals \textheight - height % of double-column floats on page. % Note that some are set globally and some locally: % \@topnum :=G Maximum number of floats allowed on the top of a column. % \@toproom :=G Maximum amount of top of column devoted to floats-- % excluding \textfloatsep separation below the floats and % \floatsep separation between them. For two-column % output, should be computed as a function of \@colht. % \@botnum, \@botroom % : Analogous to above. % \@colnum :=G Maximum number of floats allowed in a column, including % in-text floats. % \@textmin :=L Minimum amount of text (excluding footnotes) that must % appear on a text page. %% 27 Sep 85 : made local to % %% \@addtocurcol and \@addtonextcol % \@fpmin :=L Minimum height of floats in a float column. % % The macro \@dblfloatplacement sets the following parameters. % \@dbltopnum :=G Maximum number of double-column floats allowed at the % top of a two-column page. % \@dbltoproom :=G Maximum height of double-column floats allowed at % top of two-column page. % \@fpmin :=L Minimum height of floats in a float column. % It should also perform the following local assignments where necessary % -- i.e., where the new value differs from the old one: % \@fptop :=L \@dblfptop % \@fpsep :=L \@dblfpsep % \@fpbot :=L \@dblfpbot % % OUTPUT ROUTINE VARIABLES % % \@colht : The total height of the current column. In single column % style, it equals \textheight. In two-column style, it is % \textheight minus the height of the double-column floats % on the current page. MUST BE INITIALIZED TO \textheight. % % \@colroom : The height available in the current column for text and % footnotes. It equals \@colht minus the height of all % floats committed to the top and bottom of the current % column. % % \footins : Footnote insertion number. % % \@maxdepth : Saved value of TeX's \maxdepth. Must be set % when any routine sets \maxdepth. % % CALLING THE OUTPUT ROUTINE % -------------------------- % % The output routine is called either by TeX's normal page-breaking % mechanism, or by a macro putting a penalty < or = -10000 in the output % list. In the latter case, the penalty indicates why the output % routine was called, using the following code. % % penalty reason % ------- ------ % -10000 \pagebreak % \newpage % -10001 \clearpage (called with \penalty -10000 \vbox{} \penalty -10001 % -10002 float insertion, called from horizontal mode % -10003 float insertion, called from vertical mode. % -10004 float insertion. % % Note: A float or marginpar puts the following sequence in the output % list: (i) a penalty of -10004, % (ii) a null \vbox % (iii) a penalty of -10002 or -10003. % This solves two special problems: % 1. If the float comes right after a \newpage or \clearpage, % then the first penalty is ignored, but the second one % invokes the output routine. % 2. If there is a split footnote on the page, the second 'page' % puts out the rest of the footnote. % % THE OUTPUT ROUTINE % ------------------ % % FUNCTIONS USED IN THE OUTPUT ROUTINE: % % \@outputpage : Produces an output page with the contents of box % \@outputbox as the text part. Also sets % \@colht :=G \textheight. The page style is determined % as follows. % IF @thispagestyle = true % THEN use \thispagestyle style % ELSE use ordinary page style. % % \@tryfcolumn\FLIST : Tries to form a float column composed of floats from % \FLIST with with the following parameters: % \@colht : height of box % \@fpmin : minimum height of floats in the box % \@fpsep : interfloat space % \@fptop : glue at top of box % \@fpbot : glue at bottom of box. % If it succeeds, then it does the following: % * \@outputbox :=L the composed float box. % * @fcolmade :=L true % * \FLIST :=G \FLIST - floats put in box % * \@freelist :=G \@freelist + floats put in box % If it fails, then: % * @fcolmade :=L false % NOTE: BIT MUST BE A SINGLE TOKEN! % % \@makefcolumn \FLIST : Same as \@tryfcolumn except that it % fails to make a float column only if \FLIST is empty. % Otherwise, it makes a float column containing at least % the first box in \FLIST, disregarding \@fpmin. % % \@startcolumn : % Calls \@tryfcolumn\@deferlist{8}. If \@tryfcolumn returns with % @fcolmade = false, then: % * Globally sets \@toplist and \@botlist to floats % from \@deferlist to go at top and bottom of column, % deleting them from \@deferlist. It does % this using \@colht as the total height, the page % style parameters \@floatsep and \@textfloatsep, and % the float placement parameters \@topnum, \@toproom, % \@botnum, \@botroom, \@colnum and \textfraction. % * Globally sets \@colroom to \@colht minus the height % of the added floats. % % \@startdblcolumn : % Calls \@tryfcolumn\@dbldeferlist{8}. If \@tryfcolumn returns % with @fcolmade = false, then: % * Globally sets \@dbltoplist to floats from \@dbldeferlist % to go at top and bottom of column, deleting them from % \@dbldeferlist. It does this using \textheight as the % total height, and the parameters \@dblfloatsep, etc. % * Globally sets \@colht to \textheight minus the height % of the added floats. % % \@combinefloats : Combines the text from box % \@outputbox with the floats from \@toplist and \@botlist, % putting the new box in \@outputbox. It uses \floatsep and % \textfloatsep for the appropriate separations. It puts the % elements of \TOPLIST and \BOTLIST onto \@freelist, and makes % those lists null. % % \@makecol : Makes the contents of \box255 plus the accumulated % footnotes, plus the floats in \@toplist and \@botlist, % into a single column of height \@colht, which it puts % into box \@outputbox. It puts boxes in \@midlist back % onto \@freelist and restores \maxdepth. % % \@opcol : Outputs a column whose text is in box \@outputbox % If @twocolumn = false, then it calls \@outputpage, % sets \@colht :=G \textheight, and calls \@floatplacement. % % If @twocolumn = true, then: % If @firstcolumn = true, then it puts box \@outputbox % into \@leftcolumn and sets @firstcolumn :=G false. % % If @firstcolumn = false, then it puts out the current % two-column page, any possible two-column float pages, % and determines \@dbltoplist for the next page. % % \@opcol == % BEGIN % \@mparbottom :=G 0pt % if @twocolumn = true % then %% \@outputdblcol == % if @firstcolumn = true % then @firstcolumn :=G false % \@leftcolumn :=G \@outputbox % else @firstcolumn :=G true % \@outputbox := \vbox{ % \hbox to \textwidth{ % \hbox to\columnwidth{\box\@leftcolumn % \hss} % \hfil \vrule width \columnseprule \hfil % \hbox to\columnwidth{\box\@outputbox} % \hss} } % \@combinedblfloats % \@outputpage % \begingroup % \@dblfloatplacement % \@startdblcolumn % while @fcolmade = true % do \@outputpage % \@startdblcolumn od % \endgroup % fi % else % \@outputpage % \@colht :=G \textheight % fi % END % % \@makecol == % BEGIN % ifvoid \insert\footins % then \@outputbox := \box255 % else \@outputbox := \vbox {\boxmaxdepth :=L \maxdepth % %added 21 Jan 87 % \unvbox255 % \vskip \skip\footins % \footnoterule % \unvbox\footins % } % fi % \@freelist :=G \@freelist * \@midlist % \@midlist :=G empty % \@combinefloats % \@outputbox := \vbox to \@colht{\boxmaxdepth := \maxdepth % \@texttop % temp :=L \dp\@outputbox % \unvbox\@outputbox % \vskip -temp % \@textbottom} % \maxdepth :=G \@maxdepth % END % % \@outputpage == % BEGIN % \begingroup %%% added 11 Jun 85 to keep special page % %%% declarations local to this output page % \catcode`\ := 10 %%make sure space is really a space % \- := \@dischyph %%% Added 4 Aug 88 in event output routine % \' := \@acci %%% called inside a tabbing environment. % \` := \@accii % \= := \@acciii % if @specialpage = T % then @specialpage :=G F % execute \ps@[eval(\@specialstyle)] fi % if \@twoside = T % then if \count0 odd % \@thehead ==L \@oddhead % \@thefoot ==L \@oddfoot % \@themargin ==L \oddsidemargin % else \@thehead ==L \@evenhead % \@thefoot ==L \@evenfoot % \@themargin ==L \evensidemargin fi fi % \shipout\vbox % {\normalsize % set fonts size for head and foot % \baselineskip :=L \lineskip :=L 0pt % \par :=L \@@par %% added 15 Sep 87 for robustness % \vskip \topmargin % \moveright\@themargin\vbox % { \box\@tempboxa := \vbox to \headheight{\vfil % \hbox to \textwidth % {\index == \label == % \glossary == \@gobble % %% Added 22 Feb 87 as bug fix % %% RmS 91/06/21 \glossary added % \@thehead}} % \dp\@tempboxa := 0pt % Don't skip space for descenders in % \box\@tempboxa % running head. % \vskip \headsep % \box\@outputbox % \baselineskip\footskip % \hbox to \textwidth{\index == \label == \glossary == \@gobble % %%% added 22 Feb 87 as bug fix % %%% RmS 91/06/21 \glossary added % \@thefoot} % } % } % \@colht :=G \textheight % \endgroup %% added 11 Jun 85 % \stepcounter{page} % \firstmark ==L \botmark %% So marks work properly on float % %% pages. (14 Jun 85) % END % % \@startcolumn == % BEGIN % \@colroom :=G \@colht % if \@deferlist is empty % then @fcolmade := false % else \@tryfcolumn\@deferlist %% else clause == \@xstartcol % if @fcolmade = false % then \begingroup % \@tempb :=L \@deferlist % \@deferlist :=G empty % \@elt \BOX == BEGIN \@currbox == \BOX % use \gdef % \@addtonextcol % END == \@scolelt % \@tempb % \endgroup % fi fi % END % % \@startdblcolumn == % BEGIN % \@colht :=G \textheight % \@tryfcolumn\@dbldeferlist %% else clause == \@xstartcol % if @fcolmade = false % then \begingroup % \@tempb :=L \@dbldeferlist % \@dbldeferlist :=G empty % \@elt \BOX == BEGIN \@currbox == \BOX % use \gdef % \@addtodblcol % END == \@sdblcolelt % \@tempb % \endgroup % fi fi % END % % \output == % BEGIN % case of \outputpenalty % > -10001 -> \@makecol % \@opcol % \@floatplacement % \@startcolumn % while @fcolmade = true % do \@opcol % \@startcolumn % od % % %%% \@specialoutput == % % -10001 -> %% \@doclearpage == % if there are no footnote insertions % then unbox the \writes at the head of \box255 % and throw away the rest % \@deferlist :=G \@toplist * \@botlist % * \@deferlist % \@toplist :=G \@botlist :=G empty % \@colroom :=G \@colht % if \@currlist not empty % then LaTeX error: float(s) lost % \@currlist :=G empty % fi % \@makefcolumn\@deferlist % while @fcolmade = true % do \@opcol % \@makefcolumn\@deferlist % od % if @twocolumn % then % if @firstcolumn = true % then \@dbldeferlist :=G \@dbltoplist * % \@dbldeferlist % \@dbltoplist :=G empty % \@colht :=G \textheight % \begingroup % \@dblfloatplacement % \@makefcolumn\@dbldeferlist % while @fcolmade = true % do \@outputpage % \@makefcolumn\@dbldeferlist % od % \endgroup % else \vbox{} \clearpage % fi fi % else \box255 := \vbox{\box255\vfil} % \@makecol % \@opcol % \clearpage % fi % < -10001 -> % if \outputpenalty < -10003 % then if \outputpenalty <-20000 %% true only at end % then \deadcycles := 0 % fi % box \@holdpg :=G box255 % else throw away box 255 % \@pagedp :=L natural depth of box \@holdpg % \@pageht :=L natural ht of box \@holdpg % \unvbox box \@holdpg %% put text back % if \@currlist nonempty % then \@currbox :=L head of \@currlist % \@currlist :=G tail of \@currlist % if \count\@currbox > 0 % %% Changed 28 Feb 88 so \@pageht and \@pagedp % %% aren't changed for a marginal note % then %% this is a float % if there are footnote insertions % then advance \@pageht and \@pagedp and % reinsert footnotes % fi % \@addtocurcol % else %% this is a marginal note % if there are footnote insertions % reinsert footnotes % fi % \@addmarginpar % fi % else THIS SHOULDN'T HAPPEN % fi % if \outputpenalty < 0 %% TO PERMIT PAGE BREAK % then \penalty\interlinepenalty fi %% IF \@addtocurcol % %% DIDN'T INSERT A PENALTY % fi % end case % \vsize :=G if \outputpenalty > -10004 then \@colroom %%normal case % else \maxdimen %%processing float % fi % END % % \@combinefloats == % BEGIN % if \@toplist nonempty % then %%\@cfla == % \@elt\BOX == BEGIN \@tempbox := \vbox{\unvbox\@tempbox % \box\BOX % \vskip \floatsep} % END == \@comflelt % \@tempbox := null % \@toplist % \@outputbox := \vbox{\boxmaxdepth :=L \maxdepth % %added 21 Jan 87 % \unvbox\@tempbox % \vskip - \floatsep % \topfigrule % \vskip \textfloatsep % \unvbox\@outputbox } % \@elt == \relax % \@freelist :=G \@freelist * \@toplist % \@toplist :=G null % fi % if \@botlist nonempty % then %%\@cflb == % \@elt == \@comflelt % \@tempbox := null % \@botlist % \@outputbox := \vbox{ \unvbox\@outputbox % \vskip \textfloatsep % \botfigrule % \unvbox\@tempbox % \vskip - \floatsep } % \@elt == \relax % \@freelist :=G \@freelist * \@botlist % \@botlist :=G null % fi % END % % \@combinedblfloats == % BEGIN % if \@dbltoplist nonempty % then \@elt == \@comdblflelt % \@tempbox := null % \@dbltoplist % \@outputbox := \vbox to \textheight % {\boxmaxdepth :=L \maxdepth % \unvbox\@tempbox % \vskip - \dblfloatsep % \dblfigrule % \vskip \dbltextfloatsep % \box\@outputbox } % \@elt == \relax % \@freelist :=G \@freelist * \@dbltoplist % \@dbltoplist :=G null % fi % END % % % USER COMMANDS THAT CALL OR AFFECT THE OUTPUT ROUTINE % ---------------------------------------------------- % % \newpage == BEGIN \par\vfil\penalty -10000 END % % \clearpage == BEGIN \newpage % \write -1{} % Part of hack to make sure no % \vbox{} % \write's get lost. % \penalty -10001 % END % % \cleardoublepage == BEGIN \clearpage % if @twoside = true and c@page is even % then \hbox{} \newpage fi % END % % \twocolumn == % BEGIN % \clearpage % \columnwidth :=G .5(\textwidth - \columnsep) % \hsize :=G \columnwidth % @twocolumn :=G true % @firstcolumn :=G true % \@dblfloatplacement % END % % \onecolumn == % BEGIN % \clearpage % \columnwidth :=G \textwidth % \hsize :=G \columnwidth % @twocolumn :=G false % \@floatplacement % END % % % \topnewpage{BOX} : starts a new page and puts BOX in a parbox of width % \textwidth across the top. Useful for full-width titles for % double-column pages. % SURPRISE: The stretch from \@dbltextfloatsep will be inserted % between the BOX and the top of the two columns. % % \topnewpage{BOX} == % BEGIN % \clearpage % Take \@currbox from \@freelist % \box\@currbox :=G \parbox{BOX \par % \vskip - \@dbltextfloatsep} % \count\@currbox :=G 2 % \@dbltopnum :=G 1 % \@dbltoproom :=G maxdimension % \@addtodblcol % \vsize :=G \@colht % \@colroom :=G \@colht % END % FLOAT-HANDLING MECHANISMS % ------------------------- % % The float environment obtains an insertion number B from the % \@freelist (see below for a description of list manipulation), puts % the float into box B and sets \count B to a FLOAT SPECIFIER. For % a normal (not double-column) float, it then causes a page break % in one of the following two ways: % - In outer hmode: \vadjust{\penalty -10002} % - In vmode : \penalty -10003. % For a double-column float, it puts B onto the \@dbldeferlist. % The float specifier has two components: % * A PLACEMENT SPECIFICATION, describing where the float may % be placed. % * A TYPE, which is a power of two--e.g., figures might be % type 1 floats, tables type 2 floats, programs type 4 floats, etc. % The float specifier is encoded as follows, where bit 0 is the least % significant bit. % % Bit Meaning % --- ------- % 0 1 iff the float may go where it appears in the text. % 1 1 iff the float may go on the top of a page. % 2 1 iff the float may go on the bottom of a page. % 3 1 iff the float may go on a float page. % 4 always 1 % 5 1 iff a type 1 float % 6 1 iff a type 2 float % etc. % % A negative float specifier is used to indicate a marginal note. % % MACROS AND DATA STRUCTURES FOR PROCESSING FLOATS % ------------------------------------------------ % % A FLOAT LIST consisting of the floats in boxes \boxa ... \boxN has the form: % \@elt \boxa ... \@elt \boxN % where \boxI is defined by % \newinsert\boxI % Normally, \@elt is \let to \relax. A test can be performed on the entire % float list by locally \def'ing \@elt appropriately and executing % the list. This is a lot more efficient than looping through the list. % % The following macros are used for manipulating float lists. % % \@next \CS \LIST {NONEMPTY}{EMPTY} == %% NOTE: ASSUME \@elt = \relax % BEGIN assume that \LIST == \@elt \B1 ... \@elt \Bn % if n = 0 % then EMPTY % else \CS :=L \B1 % \LIST :=G \@elt \B2 ... \@elt \Bn % NONEMPTY % fi % END % % % \@bitor\NUM\LIST : Globally sets switch @test to the disjunction for all I % of bit log2 \NUM of the float specifiers of all the floats in % \LIST. I.e., @test is set to true iff there is at least one % float in \LIST having bit log2 \NUM of its float specifier % equal to 1. % % Note: log2 [(\count I)/32] is the bit number corresponding to the % type of float I. To see if there is any float in \LIST having % the same type as float I, you run \@bitor with \NUM = [(\count I)/32] * 32. % % \@bitor\NUM\LIST == % BEGIN % @test :=G false % { \@elt \CTR == if \count\CTR / \NUM is odd % then @test := true fi % \LIST % } % END % % % \@cons\LIST\NUM : Globally sets \LIST := \LIST * \@elt \NUM % % \@cons\LIST\NUM == % BEGIN { \@elt == \relax % \LIST :=G \LIST \@elt \NUM % } % % BOX LISTS FOR FLOAT-PLACEMENT ALGORITHMS % % \@freelist : List of empty boxes for placing new floats. % \@toplist : List of floats to go at top of current column. % \@midlist : List of floats in middle of current column. % \@botlist : List of floats to go at bottom of current column. % \@deferlist : List of floats to go after current column. % \@dbltoplist : List of double-col. floats to go at top of current page. % \@dbldeferlist : List of double-column floats to go on subsequent pages. % % FLOAT-PLACEMENT ALGORITHMS % % \@tryfcolumn \FLIST == % BEGIN % @fcolmade :=G false % \@trylist :=G \FLIST % \@failedlist :=G empty % \begingroup % \@elt == \@xtryfc % \@trylist % \endgroup % if @fcolmade = true % then \@vtryfc \FLIST % fi % END % % \@vtryfc == % BEGIN % \@outputbox :=G \vbox{} % \@elt\BOX == BEGIN % \@outputbox :=L \vbox{ \unvbox \@outputbox % \vskip \@fpsep % \box\BOX } % END == \@wtryfc % \@flsucceed % \@outputbox :=G \vbox to \@colht{ \vskip \@fptop % \vskip -\@fpsep % \unvbox \@outputbox % \vskip \@fpbot } % \@elt == \relax % \@freelist :=G \@freelist * \@flsucceed % \FLIST :=G \@failedlist * \@flfail % END % % \@xtryfc \BOX == % BEGIN % remove first element from \@trylist % \@currtype := (\count\BOX / 32) * 32 % \@bitor \@currtype \@failedlist % @test := true if type on list % \@testfp \BOX % @test := true if no p-option % if ht of \BOX > \@colht % then @test :=G true % fi % if @test = true % then add \BOX to \@failedlist % else \@ytryfc \BOX % fi % END % % \@ytryfc == % BEGIN % \begingroup % \@flsucceed :=G \@elt\BOX % \@flfail :=G empty % \@tempdima := \ht\BOX % \@elt == \@ztryfc % \@trylist % if \@tempdima > \@fpmin % then @fcolmade :=G true % else add \BOX to \@failedlist % fi % \endgroup % if @fcolmade = true then \@elt == \@gobble fi % END % % \@ztryfc \BOX == % BEGIN % \@tempcnta := (\count\BOX / 32) * 32 % \@bitor \@tempcnta {\@failedlist \@flfail} % @test := true if on a list % \@testfp \BOX % @test := true if not p-option % \@tempdimb := \@tempdima + ht of \BOX + \@fpsep % if \@tempdimb > \@colht % then @test :=G true % fi % if @test = true % then add \BOX to \@flfail % else add \BOX to \@flsucceed % \@tempdima := \@tempdimb % fi % END % % \@testfp \BOX == BEGIN if bit 3 of \count\BOX = 0 % then @test :=G true fi % END % % \@makefcolumn \FLIST == % BEGIN % \begingroup % \@fpmin =:L 0 % \@testfp == \@gobble % \@tryfcolumn \FLIST % \endgroup % END % % \@addtobot : Tries to put insert \@currbox on \@botlist. Called only when: % * \ht BOX + \@maxsep < \@colroom % * type of \@currbox not on \@deferlist % * \@colnum > 0 % * @insert = false % If it succeeds, then: % * sets @insert true % * decrements \@botroom by \ht BOX % * decrements \@botnum and \@colnum by 1 % * decrements \@colroom by \ht BOX + either \floatsep % or \textfloatsep, as appropriate. % * sets \maxdepth to 0pt % % \@addtotoporbot : Tries to put insert \@currbox on \@toplist or \@botlist. % Called only under same conditions as \@addtobot. % If it succeeds, then: % * sets @insert true % * decrements either \@toproom or \@botroom by \ht BOX % * decrements \@colnum and either \@topnum or % \@botnum by 1 % * decrements \@colroom by \ht BOX + either \floatsep % or \textfloatsep, as appropriate. % % \@addtocurcol : Tries to add \@currbox to current column, setting @insert % true if it succeeds, false otherwise. It will add % \@currbox to top only if bit 0 of \count \@currbox is 0, and % to the bottom only if bit 0 = 0 or an earlier float of % the same type is put on the bottom. % If the float is put in the text, then % \penalty\interlinepenalty is put % right after the float, before the following \vskip, and % \outputpenalty :=L 0. % % \@addtonextcol : Tries to add \@currbox to the next column, setting @insert % true if it succeeds, false otherwise. % % \@addtodblcol : Tries to add \@currbox to the next double-column page, % adding it to \@dbltoplist if it succeeds and \@dbldeferlist % if it fails. % % \@addtobot == % BEGIN % if bit 2 of \count \@currbox = 1 % then if \@botnum > 0 % then if \@botroom > \ht \@currbox % then \@botnum :=G \botnum - 1 % \@colnum :=G \@colnum - 1 % \@tempdima :=L - \ht\@currbox - % if \@botlist empty % then \textfloatsep % else \floatsep % fi % \@botroom :=G \@botroom + \@tempdima % \@colroom :=G \@colroom + \@tempdima % add \@currbox to \@botlist % \maxdepth :=G 0pt % @insert :=L true % fi fi fi % END % % \@addtotoporbot == % BEGIN % if bit 1 of \count \@currbox = 1 % then if \@topnum > 0 % then if \@toproom > \ht \@currbox % then if \@currtype not on \@midlist or \@botlist % then \@topnum :=G \topnum - 1 % \@colnum :=G \@colnum - 1 % \@tempdima :=L - \ht\@currbox - % if \@toplist empty % then \textfloatsep % else \floatsep % fi % \@toproom :=G \@toproom + \@tempdima % \@colroom :=G \@colroom + \@tempdima % add \@currbox to \@toplist % @insert :=L true % fi fi fi fi % if @insert = false then \@addtobot fi % END % % \@addtocurcol == % BEGIN % @insert :=L false % \@textmin := \textfraction\@colht %% added 27 Sep 85 % if \@colroom > \ht \@currbox + max(\@pageht+\@pagedp, \@textmin) % + \@maxsep % then if \@colnum > 0 % then \@currtype := type of \@currbox % if \@currtype not on \@deferlist % then if \@currtype on \@botlist % then \@addtobot % else if bit0 of \count \@currbox = 1 % then decrement \@colnum % put \@currbox on \@midlist % add \@currbox + space + % \penalty \interlinepenalty to text % \outputpenalty :=L 0 % @insert := true % else \@addtotoporbot % fi fi fi fi fi % if @insert = false % then add \@currbox to \@deferlist % fi % END % % \@addtonextcol == % BEGIN % @insert :=L false % \@textmin := \textfraction\@colht %% added 27 Sep 85 % if \@colroom > \ht \@currbox + \@textmin + \@maxsep % then if \@colnum > 0 % \@currtype := type of \@currbox % then if \@currtype not on \@deferlist % then \@addtotoporbot % fi fi fi % if @insert = false % then add \@currbox to \@deferlist % fi % END % % \@addtodblcol == % BEGIN % @insert :=L false % if bit 1 of \count \@currbox = 1 % then if \@dbltopnum > 0 % then if \@dbltoproom > \ht \@currbox % then if type of \@currbox not on \@dbldeferlist % then \@dbltopnum :=G \@dbltopnum - 1 % \@tempdima := -\ht\@currbox - % if \@dbltoplist empty % then \dbltextfloatsep % else \dblfloatsep % fi % \@dbltoproom :=G \@dbltoproom+\@tempdima % \@colht :=G \@colht+\@tempdima % add \@currbox to \@dbltoplist % @insert :=L true % fi fi fi fi % if @insert = false then add \@currbox to \@dbldeferlist % END % % \@addmarginpar == % BEGIN % if \@currlist nonempty % then remove \@marbox from \@currlist %% NOTE: \@currbox = left box % add \@marbox and \@currbox to \@freelist % else LaTeX error: ? %% shouldn't happen % fi % \@tempcnta := 1 %% 1 = right, -1 = left % if @twocolumn = true % then if @firstcolumn = true % then \@tempcnta := -1 % fi % else if @mparswitch = true % then if count0 odd % else \@tempcnta := -1 % fi % fi % if @reversemargin = true % then \@tempcnta := -\@tempcnta % fi % fi % if \@tempcnta < 0 then \box\@marbox :=G \box\@currbox fi % \@tempdima :=L maximum(\@mparbottom - \@pageht + ht of \@marbox, 0) % if \@tempdima > 0 then LaTeX warning: 'marginpar moved' fi % \@mparbottom :=G \@pageht + \@tempdima + depth of \@marbox % + \marginparpush % \@tempdima :=L \@tempdima - ht of \@marbox % height of \@marbox :=G depth of \@marbox :=G 0 % \vskip -\@pagedp % \vskip \@tempdima % \nointerlineskip % \hbox{ if @tempcnta > 0 then \hskip \columnwidth % \hskip \marginparsep % else \hskip -\marginparsep % \hskip -\marginparwidth % fi % \box\@marbox % \hss % } % \vskip -\@tempdima % \nointerlineskip % \hbox{\vrule height 0 width 0 depth \@pagedp} % END \maxdeadcycles = 100 % floats and \marginpar's add a lot of dead cycles \let\@elt\relax \def\@next#1#2#3#4{\ifx#2\@empty #4\else \expandafter\@xnext #2\@@#1#2#3\fi} \def\@xnext \@elt #1#2\@@#3#4{\def#3{#1}\gdef#4{#2}} \newif\if@test \def\@bitor#1#2{\global\@testfalse {\let\@elt\@xbitor \@tempcnta #1\relax #2}} %% RmS 91/11/22: Added test for \count#1 being 0. %% Suggested by Chris Rowley. \def\@xbitor #1{\@tempcntb \count#1 \ifnum \@tempcnta =\z@ \else \divide\@tempcntb\@tempcnta \ifodd\@tempcntb \global\@testtrue\fi \fi} % DEFINITION OF FLOAT BOXES: \newinsert\bx@A \newinsert\bx@B \newinsert\bx@C \newinsert\bx@D \newinsert\bx@E \newinsert\bx@F \newinsert\bx@G \newinsert\bx@H \newinsert\bx@I \newinsert\bx@J \newinsert\bx@K \newinsert\bx@L \newinsert\bx@M \newinsert\bx@N \newinsert\bx@O \newinsert\bx@P \newinsert\bx@Q \newinsert\bx@R \gdef\@freelist{\@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E \@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J \@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N \@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R} \gdef\@toplist{} \gdef\@botlist{} \gdef\@midlist{} \gdef\@currlist{} \gdef\@deferlist{} \gdef\@dbltoplist{} \gdef\@dbldeferlist{} % PAGE LAYOUT PARAMETERS \newdimen\topmargin \newdimen\oddsidemargin \newdimen\evensidemargin \let\@themargin=\oddsidemargin \newdimen\headheight \newdimen\headsep \newdimen\footskip \newdimen\footheight % even though it never gets used. \newdimen\textheight \newdimen\textwidth \newdimen\columnwidth \newdimen\columnsep \newdimen\columnseprule \newdimen\@maxdepth \@maxdepth = \maxdepth \newdimen\marginparwidth \newdimen\marginparsep \newdimen\marginparpush % PAGE STYLE PARAMETERS \newskip\floatsep \newskip\textfloatsep \newskip\intextsep \newdimen\@maxsep \newskip\dblfloatsep \newskip\dbltextfloatsep \newdimen\@dblmaxsep \newskip\@fptop \newskip\@fpsep \newskip\@fpbot \newskip\@dblfptop \newskip\@dblfpsep \newskip\@dblfpbot \let\topfigrule=\relax \let\botfigrule=\relax \let\dblfigrule=\relax % INTERNAL REGISTERS \newcount\@topnum \newdimen\@toproom \newcount\@dbltopnum \newdimen\@dbltoproom \newcount\@botnum \newdimen\@botroom \newcount\@colnum \newdimen\@textmin \newdimen\@fpmin \newdimen\@colht \newdimen\@colroom \newdimen\@pageht \newdimen\@pagedp \newdimen\@mparbottom \@mparbottom\z@ \newcount\@currtype \newbox\@outputbox \newbox\@leftcolumn \newbox\@holdpg \newif\if@insert \newif\if@fcolmade \newif\if@specialpage \@specialpagefalse \newif\if@twoside \@twosidefalse \newif\if@firstcolumn \@firstcolumntrue \newif\if@twocolumn \@twocolumnfalse \newif\if@reversemargin \@reversemarginfalse \newif\if@mparswitch \@mparswitchfalse \def\@thehead{\@oddhead} % initialization \def\@thefoot{\@oddfoot} \def\newpage{\par\vfil\penalty -\@M} \def\clearpage{\newpage \write\m@ne{}\vbox{}\penalty -\@Mi} \def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} \def\twocolumn{\clearpage \global\columnwidth\textwidth \global\advance\columnwidth -\columnsep \global\divide\columnwidth\tw@ \global\hsize\columnwidth \global\linewidth\columnwidth \global\@twocolumntrue \global\@firstcolumntrue \@dblfloatplacement\@ifnextchar[{\@topnewpage}{}} \def\onecolumn{\clearpage\global\columnwidth\textwidth \global\hsize\columnwidth \global\linewidth\columnwidth \global\@twocolumnfalse \@floatplacement} \long\def\@topnewpage[#1]{\@next\@currbox\@freelist{}{}% \global\setbox\@currbox\vbox{\hsize\textwidth \@parboxrestore #1\par\vskip -\dbltextfloatsep}\global\count\@currbox\tw@ \global\@dbltopnum\@ne \global\@dbltoproom\maxdimen\@addtodblcol \global\vsize\@colht \global\@colroom\@colht} %% RmS 91/09/29: added reset of \par to the output routine. %% This avoids problems when the output routine is %% called within a list where \par may be a no-op. \output{\let\par\@@par \ifnum\outputpenalty <-\@M\@specialoutput\else \@makecol\@opcol\@floatplacement\@startcolumn \@whilesw\if@fcolmade \fi{\@opcol\@startcolumn}\fi \global\vsize\ifnum\outputpenalty >-\@Miv \@colroom \else \maxdimen\fi} % CHANGES TO \@specialoutput: % * \penalty\z@ changed to \penalty\interlinepenalty so \samepage % works properly with figure and table environments. % (Changed 23 Oct 86) % % * Definition of \@specialoutput changed 26 Feb 88 so \@pageht and \@pagedp % aren't changed for a marginal note. (Change suggested by % Chris Rowley.) % \def\@specialoutput{\ifnum\outputpenalty >-\@Mii \@doclearpage \else \ifnum \outputpenalty <-\@Miii \ifnum\outputpenalty<-\@MM \deadcycles\z@\fi \global\setbox\@holdpg\vbox{\unvbox\@cclv}% \else \setbox\@tempboxa\box\@cclv \@pagedp\dp\@holdpg \@pageht\ht\@holdpg \unvbox\@holdpg \@next\@currbox\@currlist{\ifnum\count\@currbox >\z@ \ifvoid\footins\else\advance\@pageht\ht\footins \advance\@pageht\skip\footins \advance\@pagedp\dp\footins \insert\footins{\unvbox\footins}\fi \@addtocurcol\else \ifvoid\footins\else\insert\footins{\unvbox\footins}\fi \@addmarginpar\fi}\@latexbug \ifnum \outputpenalty <\z@ \penalty\interlinepenalty\fi \fi\fi} \def\@doclearpage{\ifvoid\footins \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa \setbox\@tempboxa\box\@cclv \xdef\@deferlist{\@toplist\@botlist \@deferlist}\gdef\@toplist{}\gdef\@botlist{}\global\@colroom\@colht \ifx\@currlist \@empty\else\@latexerr{Float(s) lost}\@ehb\gdef\@currlist{}\fi \@makefcolumn\@deferlist \@whilesw\if@fcolmade \fi{\@opcol \@makefcolumn\@deferlist}\if@twocolumn \if@firstcolumn \xdef\@dbldeferlist{\@dbltoplist \@dbldeferlist}\gdef\@dbltoplist{}\global\@colht\textheight \begingroup \@dblfloatplacement \@makefcolumn\@dbldeferlist \@whilesw\if@fcolmade \fi{\@outputpage \@makefcolumn\@dbldeferlist}\endgroup \else \vbox{}\clearpage \fi\fi \else\setbox\@cclv\vbox{\box\@cclv\vfil}\@makecol\@opcol \clearpage \fi} \def\@opcol{\global\@mparbottom\z@\if@twocolumn\@outputdblcol\else \@outputpage \global\@colht\textheight \fi} \def\@outputdblcol{\if@firstcolumn \global\@firstcolumnfalse \global\setbox\@leftcolumn\box\@outputbox \else \global\@firstcolumntrue \setbox\@outputbox\vbox{\hbox to\textwidth{\hbox to\columnwidth {\box\@leftcolumn \hss}\hfil \vrule width\columnseprule\hfil \hbox to\columnwidth{\box\@outputbox \hss}}}\@combinedblfloats \@outputpage \begingroup \@dblfloatplacement \@startdblcolumn \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}\endgroup \fi} % Extra \@texttop somehow found its way into \@makecol. Deleted % 1 Dec 86. (Found by Mike Harrison) %% RmS 91/10/22: Replaced \dimen128 by \dimen@. \def\@makecol{\ifvoid\footins \setbox\@outputbox\box\@cclv \else\setbox\@outputbox \vbox{\boxmaxdepth \maxdepth \unvbox\@cclv\vskip\skip\footins\footnoterule\unvbox\footins}\fi \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth \@texttop\dimen@\dp\@outputbox\unvbox\@outputbox \vskip-\dimen@\@textbottom}% \global\maxdepth\@maxdepth} \let\@texttop=\relax \let\@textbottom=\relax \def\@outputpage{\begingroup\catcode`\ =10 \let\-\@dischyph \let\'\@acci \let\`\@accii \let\=\@acciii \if@specialpage \global\@specialpagefalse\@nameuse{ps@\@specialstyle}\fi \if@twoside \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot \let\@themargin\oddsidemargin \else \let\@thehead\@evenhead \let\@thefoot\@evenfoot \let\@themargin\evensidemargin \fi\fi \shipout \vbox{\reset@font %% RmS 91/08/15 \normalsize \baselineskip\z@ \lineskip\z@ \let\par\@@par %% 15 Sep 87 \vskip \topmargin \moveright\@themargin \vbox{\setbox\@tempboxa \vbox to\headheight{\vfil \hbox to\textwidth {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble %% 21 Jun 91 \@thehead}}% %% 22 Feb 87 \dp\@tempboxa\z@ \box\@tempboxa \vskip \headsep \box\@outputbox \baselineskip\footskip \hbox to\textwidth{\let\label\@gobble \let\index\@gobble %% 22 Feb 87 \let\glossary\@gobble %% 21 Jun 91 \@thefoot}}}\global\@colht\textheight \endgroup\stepcounter{page}\let\firstmark\botmark} \def\@combinefloats{\boxmaxdepth\maxdepth \ifx\@toplist\@empty\else\@cfla\fi \ifx\@botlist\@empty\else\@cflb\fi} \def\@cfla{\let\@elt\@comflelt \setbox\@tempboxa\vbox{}\@toplist \setbox\@outputbox\vbox{\unvbox\@tempboxa\vskip-\floatsep \topfigrule\vskip\textfloatsep \unvbox\@outputbox}\let\@elt\relax \xdef\@freelist{\@freelist\@toplist}\gdef\@toplist{}} \def\@cflb{\let\@elt\@comflelt \setbox\@tempboxa\vbox{}\@botlist \setbox\@outputbox\vbox{\unvbox\@outputbox \vskip\textfloatsep \botfigrule\unvbox\@tempboxa \vskip-\floatsep}\let\@elt\relax \xdef\@freelist{\@freelist\@botlist}\gdef\@botlist{}} \def\@comflelt#1{\setbox\@tempboxa \vbox{\unvbox\@tempboxa\box #1\vskip\floatsep}} \def\@combinedblfloats{\ifx\@dbltoplist\@empty\else \let\@elt\@comdblflelt \setbox\@tempboxa\vbox{}\@dbltoplist \setbox\@outputbox\vbox to\textheight {\boxmaxdepth\maxdepth \unvbox\@tempboxa\vskip-\dblfloatsep \dblfigrule\vskip\dbltextfloatsep \box\@outputbox}\let\@elt\relax \xdef\@freelist{\@freelist\@dbltoplist}\gdef\@dbltoplist{}\fi} \def\@comdblflelt#1{\setbox\@tempboxa \vbox{\unvbox\@tempboxa\box #1\vskip\dblfloatsep}} \def\@startcolumn{\global\@colroom\@colht \ifx\@deferlist\@empty\global\@fcolmadefalse\else\@xstartcol\fi} \def\@xstartcol{\@tryfcolumn\@deferlist \if@fcolmade\else \begingroup\edef\@tempb{\@deferlist}\gdef\@deferlist{}\let\@elt\@scolelt \@tempb\endgroup\fi} \def\@scolelt#1{\def\@currbox{#1}\@addtonextcol} \def\@startdblcolumn{\global\@colht\textheight \@tryfcolumn\@dbldeferlist \if@fcolmade\else \begingroup \edef\@tempb{\@dbldeferlist}\gdef\@dbldeferlist{}\let\@elt\@sdblcolelt \@tempb\endgroup\fi} \def\@sdblcolelt#1{\def\@currbox{#1}\@addtodblcol} \def\@tryfcolumn #1{\global\@fcolmadefalse \xdef\@trylist{#1}\xdef\@failedlist {}\begingroup \let\@elt\@xtryfc \@trylist \endgroup \if@fcolmade \@vtryfc #1\fi} \def\@vtryfc #1{\global\setbox\@outputbox\vbox{}\let\@elt\@wtryfc \@flsucceed \global\setbox\@outputbox\vbox to\@colht{\vskip \@fptop \vskip -\@fpsep \unvbox \@outputbox \vskip \@fpbot}\let\@elt\relax \xdef #1{\@failedlist\@flfail}\xdef\@freelist{\@freelist\@flsucceed}} \def\@wtryfc #1{\global\setbox\@outputbox\vbox{\unvbox\@outputbox \vskip\@fpsep\box #1}} \def\@xtryfc #1{\@next\@tempa\@trylist{}{}\@currtype \count #1\divide\@currtype\@xxxii \multiply\@currtype\@xxxii \@bitor \@currtype \@failedlist \@testfp #1\ifdim \ht #1>\@colht \global\@testtrue\fi \if@test \@cons\@failedlist #1\else \@ytryfc #1\fi} \def\@ytryfc #1{\begingroup \gdef\@flsucceed{\@elt #1}\gdef\@flfail {}\@tempdima\ht #1\let\@elt\@ztryfc \@trylist \ifdim \@tempdima >\@fpmin \global\@fcolmadetrue \else \@cons\@failedlist #1\fi \endgroup \if@fcolmade \let\@elt\@gobble \fi} \def\@ztryfc #1{\@tempcnta\count #1\divide\@tempcnta\@xxxii \multiply\@tempcnta\@xxxii \@bitor \@tempcnta {\@failedlist \@flfail}\@testfp #1\@tempdimb\@tempdima \advance\@tempdimb\ht #1\advance \@tempdimb\@fpsep \ifdim \@tempdimb >\@colht \global\@testtrue\fi \if@test \@cons\@flfail #1\else \@cons\@flsucceed #1\@tempdima\@tempdimb \fi} \def\@testfp #1{\@tempcnta\count #1\divide\@tempcnta 8\relax \ifodd\@tempcnta \else \global\@testtrue\fi} \def\@makefcolumn #1{\begingroup \@fpmin\z@ \let\@testfp\@gobble \@tryfcolumn #1\endgroup} \def\@addtobot{\@tempcnta\count\@currbox\divide\@tempcnta4 \ifodd\@tempcnta \ifnum \@botnum >\z@ \ifdim \@botroom >\ht\@currbox \global\advance\@botnum\m@ne \global\advance\@colnum\m@ne \@tempdima -\ht\@currbox \advance\@tempdima -\ifx\@botlist\@empty \textfloatsep \else\floatsep\fi \global\advance\@botroom \@tempdima \global\advance\@colroom \@tempdima \@cons\@botlist\@currbox \global\maxdepth\z@ \@inserttrue\fi\fi\fi} \def\@addtotoporbot{\@tempcnta\count\@currbox \divide\@tempcnta\tw@ \ifodd\@tempcnta \ifnum \@topnum >\z@ \ifdim\@toproom >\ht\@currbox \@bitor\@currtype{\@midlist\@botlist}\if@test\else \global\advance\@topnum\m@ne \global\advance\@colnum\m@ne \@tempdima-\ht\@currbox \advance\@tempdima -\ifx\@toplist\@empty \textfloatsep \else\floatsep\fi \global\advance\@toproom \@tempdima \global\advance\@colroom \@tempdima \@cons\@toplist\@currbox \@inserttrue \fi\fi\fi\fi \if@insert\else\@addtobot \fi} \def\@addtonextcol{\@insertfalse \@textmin \textfraction\@colht \@tempdima\ht\@currbox \advance\@tempdima\@textmin\advance\@tempdima\@maxsep \ifdim\@colroom >\@tempdima \ifnum\@colnum >\z@ \@currtype\count\@currbox \divide\@currtype\@xxxii \multiply\@currtype\@xxxii \@bitor\@currtype\@deferlist \if@test\else \@addtotoporbot \fi\fi\fi \if@insert\else \@cons\@deferlist\@currbox\fi} \def\@addtodblcol{\@insertfalse \@tempcnta\count\@currbox \divide\@tempcnta\tw@ \ifodd\@tempcnta \ifnum\@dbltopnum >\z@ \ifdim\@dbltoproom >\ht\@currbox \@currtype\count\@currbox \divide\@currtype\@xxxii \multiply\@currtype\@xxxii \@bitor\@currtype\@dbldeferlist \if@test\else \global\advance\@dbltopnum\m@ne \@tempdima -\ht\@currbox \advance\@tempdima -\ifx\@dbltoplist\@empty \dbltextfloatsep\else\dblfloatsep\fi \global\advance\@dbltoproom \@tempdima \global\advance\@colht \@tempdima \@cons\@dbltoplist\@currbox \@inserttrue \fi\fi\fi\fi \if@insert\else \@cons\@dbldeferlist\@currbox \fi} % CHANGE TO \@addtocurcol: % \penalty\z@ changed to \penalty\interlinepenalty so \samepage % works properly with figure and table environments. % (Changed 23 Oct 86) % \def\@addtocurcol{\@insertfalse \@textmin \textfraction\@colht \@tempdima\@pageht \advance\@tempdima\@pagedp \ifdim \@textmin >\@tempdima \@tempdima\@textmin \fi \advance\@tempdima\ht\@currbox \advance\@tempdima\@maxsep \ifdim\@colroom >\@tempdima \ifnum\@colnum >\z@ \@currtype\count\@currbox \divide\@currtype\@xxxii \multiply\@currtype\@xxxii \@bitor\@currtype\@deferlist \if@test\else \@bitor\@currtype\@botlist \if@test \@addtobot \else \ifodd\count\@currbox \global\advance\@colnum\m@ne \@cons\@midlist\@currbox \vskip\intextsep \box\@currbox \penalty\interlinepenalty \vskip\intextsep \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi \outputpenalty\z@ \@inserttrue \else \@addtotoporbot \fi\fi\fi\fi\fi \if@insert\else\@cons\@deferlist\@currbox\fi} \def\@addmarginpar{\@next\@marbox\@currlist{\@cons\@freelist\@marbox \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne \if@twocolumn \if@firstcolumn \@tempcnta\m@ne \fi \else \if@mparswitch \ifodd\c@page \else\@tempcnta\m@ne \fi \fi \if@reversemargin \@tempcnta -\@tempcnta \fi \fi \ifnum\@tempcnta <\z@ \global\setbox\@marbox\box\@currbox \fi \@tempdima\@mparbottom \advance\@tempdima -\@pageht \advance\@tempdima\ht\@marbox \ifdim\@tempdima >\z@ \@@warning{Marginpar on page \thepage\space moved}\else\@tempdima\z@ \fi \global\@mparbottom\@pageht \global\advance\@mparbottom\@tempdima \global\advance\@mparbottom\dp\@marbox \global\advance\@mparbottom\marginparpush \advance\@tempdima -\ht\@marbox \global\ht\@marbox\z@ \global\dp\@marbox\z@ \vskip -\@pagedp \vskip\@tempdima\nointerlineskip \hbox to\columnwidth {\ifnum \@tempcnta >\z@ \hskip\columnwidth \hskip\marginparsep \else \hskip -\marginparsep \hskip -\marginparwidth \fi \box\@marbox \hss}\nobreak %% RmS 91/06/21 \nobreak added \vskip -\@tempdima \nointerlineskip \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}} \message{debugging} % **************************************** % * DEBUGGING AND TEST INITIALIZATIONS * % **************************************** % % DEBUGGING \def\showoverfull{\tracingonline=1} \tracingstats1 % SHOWS HOW MUCH STUFF TeX HAS USED \def\showoutput{\tracingonline1\tracingoutput1 \showboxbreadth99999\showboxdepth99999\errorstopmode} \def\makeatletter{\catcode`\@=11\relax} \def\makeatother{\catcode`\@=12\relax} \newcount\@lowpenalty \newcount\@medpenalty \newcount\@highpenalty % LIST % ENUMERATION % ITEMIZE % ARRAY AND TABULAR % THE PICTURE ENVIRONMENT \unitlength = 1pt \fboxsep = 3pt \fboxrule = .4pt %% FOOTNOTES %\def\footnoterule{} % INITIALIZED BY PLAIN %\skip\footins{} % INITIALIZED BY PLAIN %\interfootnotelinepenalty % INITIALIZED BY PLAIN \@maxdepth = \maxdepth % \vsize initialized because a \clearpage with \vsize < \topskip % causes trouble. % \@colroom and \@colht also initialized because \vsize may be % set to them if a \clearpage is done before the \begin{document} \vsize = 1000pt \@colroom = \vsize \@colht = \vsize \endinput latex209-25.may.1992.orig/general/latex.bug100664 144 144 150663 5166176400 17420 0ustar nakaharastaffLATEST VERSIONS OF FILES -- LaTeX Version 2.09 ADDENDUM.TEX 31 Oct 90 ARTICLE.DOC/STY 14 Jan 92 LATEX.BUG 25 Mar 92 IDX.TEX 22 Jan 85 ART10.DOC/STY 14 Jan 92 LATEX.INS 1 Dec 91 LABLST.TEX 5 Jan 85 ART11.DOC/STY 14 Jan 92 LOCAL.GID 24 Sep 85 LATEX.TEX 25 Mar 92 ART12.DOC/STY 14 Jan 92 LFONTS.TEX 25 Nov 91 BEZIER.DOC/STY 17 Dec 85 LHYPHEN.TEX 4 Nov 91 BOOK.DOC/STY 14 Jan 92 LOCAL.TEX 26 Feb 92 BK10.DOC/STY 14 Jan 92 LPLAIN.TEX 25 Mar 92 BK11.DOC/STY 14 Jan 92 MAKEINDEX.TEX 17 Feb 87 BK12.DOC/STY 14 Jan 92 SAMPLE.TEX 9 Apr 86 FLEQN.DOC/STY 04 Nov 91 SFONTS.TEX 25 Nov 91 IFTHEN.DOC/STY 16 Jun 91 SLITEX.TEX 25 Mar 92 LETTER.DOC/STY 25 Mar 92 SMALL.TEX 5 Jul 85 LEQNO.DOC/STY 29 Sep 91 SPLAIN.TEX 25 Mar 92 MAKEIDX.DOC/STY 21 Oct 91 TESTPAGE.TEX 20 Jul 87 OPENBIB.DOC/STY 14 Jan 92 TESTA4.TEX 5 Jun 91 PROC.DOC/STY 26 Feb 92 TRYFONTS.TEX 11 Nov 86 REPORT.DOC/STY 14 Jan 92 REP10.DOC/STY 14 Jan 92 REP11.DOC/STY 14 Jan 92 REP12.DOC/STY 14 Jan 92 SHOWIDX.DOC/STY 16 Jun 91 SLIDES.DOC/STY 04 Nov 91 TITLEPAG.DOC/STY 16 Jun 91 TWOCOLUM.DOC/STY 27 Jan 85 METAFONT SOURCE FILES FOR LaTeX: CIRCLE.MF 9 Jul 87 ICMCSC10.MF 27 Oct 91 ICMEX10.MF 27 Oct 91 ICMMI8.MF 27 Oct 91 ICMSY8.MF 27 Oct 91 ICMTT8.MF 27 Oct 91 ILASY8.MF 14 Nov 91 ILCMSS8.MF 27 Oct 91 ILCMSSB8.MF 27 Oct 91 ILCMSSI8.MF 27 Oct 91 LASY.MF LASY10.MF LASY5.MF LASY6.MF LASY7.MF LASY8.MF LASY9.MF LASYB10.MF LCIRCLE10.MF 18 Mar 92 LCIRCLEW10.MF 18 Mar 92 LCMSS8.MF 19 Aug 86 LCMSSB8.MF 19 Aug 86 LCMSSI8.MF 19 Aug 86 LINE.MF 24 Jan 89 LINE10.MF 18 Mar 92 LINEW10.MF 18 Mar 92 SROMAN.MF 16 Sep 86 SROMANU.MF 25 Jun 91 BUGS IN AND CHANGES TO LATEX ---------------------------- 1. Some file extensions were in upper case. Makes no difference for TOPS-20, but messes up on Unix. (Corrected 18 Dec 83) 2. Glossary command wrote .IDX instead of .GLO file. (Corrected 18 Dec 83) 3. Size-changing commands add a blank space. (Corrected 22 Dec 83) 4. \mainbaselineskip has been eliminated, being replaced by the parameter \baselinestretch. All font-size-changing commands, which are the commands that change \baselineskip, multiply the normal value of \baselineskip for the chosen font by \baselinestretch. \baselinestretch can be changed at any time by a \renewcommand command, but doing so affects only the next font-size-changing command. Note that the \begin{document} command executes a \normal command to set the font size initially.) (Change made to version 2.01, on 1 Jan 1984.) 5. \writecommand has been eliminated and a new command \protect added. Writing \protect\foo makes \foo do the right thing in an array or tabular @-expression and in the argument of a sectioning or caption command. When used in an \addcontents command, \protect\foo has the same effect that \writecommand{\foo} used to. Writing \section{\protect\foo} achieves what writing \section[\writecommand{\foo}]{\foo} used to. The .STY files must now \let\protect=\noexpand when doing a \mark. (Change made to version 2.02 on 11 Jan 1984.) 6. The error message 'This is a LaTeX bug' has been changed to 'This may be a LaTeX bug', since it is possible for a user error to cause it. (Change made to version 2.02 on 11 Jan 1984.) 7. A new error message 'Missing \item' has been added. It detects an error that previously caused TeX to hang up. I THINK that it can be caused only by a missing \item in a list environment. (Change made before 26 Jan 1984) 8. A tabbing environment inside a list environment will use the document's outer right margin rather than the right margin of the list environment. (Corrected 7 February 1984.) 9. \newcommand doesn't work if there's a \par in the definition. (corrected 17 Jan 1984) 10. \newlist has been given an optional argument, which can come right before the last mandatory argument. This optional argument specifies the number of arguments the new list environment has. These arguments can be mentioned in the last mandatory argument just as in the \newcommand command. For example, you can write \newlist{labellist}{}{}[1]{\item [#1:]} (Change made 27 Jan 1984) 11. A missing entry in an array or tabular environment may cause trouble -- e.g., writing '& &'. until this is corrected, you can add a null item, such as '\mbox{}'. (Corrected 8 Feb 84.) 12. No longer applicable. 13. The page headings don't come out right on float pages in twoside page layouts. (Left-hand headings come out on right-hand pages.) Found by Gary Swanson. (Corrected 8 Feb 84.) 14. By popular demand, a new environment eqnarray is being added to LaTeX. \begin{eqnarray} ... \end{eqnarray} acts like \[ \begin{array}{lcl} ... \end{array} \] except that 1. An equation number is put on every line, unless there is a \nonumber command anywhere on that line. 2. Page breaking can occur between lines of an equation, so the *-form of the \\ command is useful. 3. There is an extra \jot amount of space added between lines. Also, document-style designers who want to change where and how equations are numbered, should look for \@eqnnum in LATEX.TEX to see what to do; you no longer change \endequation. (Change made to version 2.03 on 6 Feb 84) 15. An eqnarray* environment has been added. It's the same as eqnarray except it doesn't number the equations. (Change made to version 2.03' on 7 Feb 84) 16. A test should be made at the end of a list to check that it ends with an item---see manual change 4 below. (Change made on 8 Feb 84.) 17. The tabbing environment doesn't work right when inside a list environment if it's the first thing after an \item command. (Corrected 8 February 1984) 18. \protect now works in the argument of \typeout and \typein, so \typeout{Command \protect\foo} types out 'Command \foo'. (Change made to version 2.04 on 16 February 1984.) 19. \typein doesn't work if the last item typed in by the user is a control sequence. (Corrected 22 February 1984) 20. A whole new method of handling fonts has been introduced. LaTeX no longer produces an error if a typeface hasn't been preloaded. It either loads it or else substitutes a different font and types a warning. The commands \boldmath and \unboldmath have been added, allowing the user to produce boldface symbols and math formulas. See LERRATA.TEX for a description of these commands. Note: to be consistent, \boldmath should change the boldness of the characters that come from the math extension font. However, I don't have a bold version of the AMEX font, so I can't implement that. (Change made to version 2.05 on 22 February 1984) 21. LPLAIN is changed so \rightline, \leftline and \centerline work. However, the LaTeX \line command bears no relation to PLAIN TeX's \line command. (Changed 28 Feb 1984) 22. The 'Missing \item' error message changed to 'Something's wrong--perhaps a missing \item.' (Changed 28 Feb 1984) 23. \protect now works in the argument of an \index command. (2 Mar 1984) 24. A ']' in a section title or caption caused an error. (Corrected 6 Mar 1984) 25. The commands to automatically load needed fonts have a bug. Suppose, for example, that \sl is not preloaded for the \small size. The first time you use \sl inside a \small environment, it works OK. However, subsequent \sl commands inside the same \small environment are no-ops. \sl works fine the next time you execute \small. In other words, {\small ... \sl SLANTED \rm ROMAN \sl ROMAN!} ... {\small \sl works ok here} (Found by David Smith, Corrected 16 Mar 1984) 26. Setting \textwidth before the \begin{document} doesn't work. Can be fixed by putting a \onecolumn or \twocolumn command after the command to set \textwidth. (Found by Mark Moriconi, Corrected 18 Mar 1984.) 27. For one-sided output, LaTeX uses \evensidemargin for the left margin instead of \oddsidemargin as it should. (Found by Mark Moriconi, Corrected 19 Mar 1984.) 28. The list environment, and other environments that use it (like enumerate), don't work in double column format. (Found by Fernando Pereira, corrected 24 April 1984) 29. When a \clearpage occurs and there are unprocessed figures to be put out, the next text page may be short. A similar but harder to describe problem may occur in two-column output. (Found by Howard Trickey and Gabi Kuper, corrected 1 May) 30. There have been a number of changes made to version 2.06. Most are invisible to the user, but require modification of all document styles made for earlier versions. The user-visible ones are documented in LERRATA.TEX. The ones that are invisible to the user but are important to the document-style designer include: * \co@... has been changed to \the . Thus, for example, \thesubsection now produces the printed version of the current subsection number, which might be something like '2.4.5'. * While not a change to LaTeX itself, there is an important procedural change. Document style files now come in two flavors: a version having having lots of comments, with the extension '.doc'; and a compressed version that LaTeX reads, with the extension '.sty'. The '.doc' files have many more comments than the old '.sty' files, making it easier to figure out how to customize a document style. * The \documentstyle command has been changed completely, including a new mechanism for handling document-style options. This is explained in REPORT.DOC. (Scan for \@options.) 31. When used in vmode, \vspace* with a negative argument doesn't work right, producing a positive \baselineskip space. (Corrected in version 2.06.) 32. A number of bugs were introduced in the first release of Version 2.06. All of these that were known by 26 June 1984 were corrected in the release of that date. 33. LaTeX now assumes that the device driver will, with no other offset, print things starting one inch from both the top and left edges of the paper. If your driver does not do this, then appropriate \hoffset and \voffset commands should be added to your local options file for generating LaTeX. 34. For very obscure reasons, there was occasionally an extra space at the end of the last item in a row of an array. Also, an extra space would appear at the end of the last item in a row of a tabular environment ended with a \\[x] where x is a positive dimension. (Discovered by in part by Ken Laws. Corrected 3 July 1984.) 35. A \raggedbottom command was added. (Version 2.06a, 3 July 1984) 36. A font that is not preloaded will, when called for the first time inside braces in math mode, generate a '\textfont ... is undefined' error. This is an unsolvable problem. To alleviate it, the user should call the font in question at 'ground level' (outside any braces) before it is used in the math environment. For example, before using \sc inside math mode, the user can type \sc \rm at ground level. 37. A typestyle-changing command does not work quite right when used in an 'unsafe' argument, like the argument to a \section command. For example, if you type \section{ ... {\it foo} ... }, then the table of contents entry will contain 'foo' in the typesize in effect at the \section command, rather than the one in effect during the table of contents. (Fortunately, these are usually the same.) (Corrected 6 July 1984.) 38. \protect does not work right in an \addcontentsline or \addtocontents entry, or in the 'unsafe' argument of a sectioning command. '\protect\foo x' will write '\foox' instead of '\foo x' on the .TOC file. (Corrected 6 July 1984.) 39. Any command like \label or \addcontentsline that comes between two \clearpage commands---i.e., that are on 'pages' with no printed text---are lost. (Corrected 7 July 1984. However, such a command that comes between a \clearpage or \newpage and the \end{document} is still lost. Also, this correction causes every \clearpage command to put a blank line in the .LST file.) 40. A complicated-to-explain but easy-to-fix bug, introduced by the correction made to 39, meant that the twocolumn document substyle would not load properly. (Corrected 19 July 1984.) 41. \underline does not work properly in math mode. (Corrected 10 August 1984.) 42. The [t] option of the minipage environment does not work properly. (Corrected in version 2.07.) 43. The \raggedbottom command can sometimes produce an overfull text page that runs into the page number. (Corrected 15 August 1984.) 44. A tabbing environment that begins an item inside a list environment produces incorrect vertical spacing. (Corrected in version 2.07.) 45. Any command whose expansion includes a " needs to be \protect'ed in environments calling for \protect'ion. This includes all accent-making commands. The fix will probably involve renaming the " command (introduced in Version 2.06). (Corrected in version 2.07.) 46. The \@startsection macro doesn't work right for producing in-line headings, as for the \paragraph and \subparagraph commands in the current document styles. A blank line between the command and the following text screws things up. (Corrected 28 October 1984) 47. As in Plain TeX, a \$ command in an \it type style produces a pound sterling symbol. (Corrected 29 September 1984) 48. Typing \typein[\names]{Include what?} \includeonly{\names} doesn't work. (Corrected in Version 2.07, 21 October 1984.) 49. The sectioning commands did not put the correct space above a section heading if the command was preceded by certain LaTeX environments. (Corrected in Version 2.07, 26 October 1984.) 50. A tabbing environment that begins a minipage environment leaves too much space above it. (Corrected 31 October 1984) 51. The \endtabular and \endarray commands don't exist, so they can't be used in a \newenvironment command. (To be corrected in Version 2.08.) 52. When using the \raggedbottom option, footnotes don't go in the right place on an incomplete page--e.g., the last page of the document or one ending with a \newpage. (Corrected 8 November) 53. \cline was inadvertently defined to require the format \cline[1-2] rather than the correct \cline{1-2}. (Corrected 9 November) 54. The 9 November correction to the document styles introduced an error in \cite, making all numberic references come out as [0] in the text. (Corrected 13 November) 55. In the array and tabular environments, an extra space appeared between columns when a '|' was followed by a 'p' in the argument. (Corrected 13 November) 56. Anomalous results may occur if a 'p' column in an array or tabular environment is left empty. (To be corrected in version 2.08) 57. The \listoffigures and \listoftables commands did not properly indent the first line. (Corrected 14 November 1984) 58. \footnote and \footnotemark did not work in math or vertical mode. (Corrected 23 November 1984) 59. The change to \index that allowed arbitrary special characters in its argument was not also made to \glossary. (Corrected 21 December 1984) 60. \boldmath did not work properly when called for the first time inside braces or an environment. (Corrected 22 December 1984) 61. \footnotemark with an optional argument didn't work right inside a minipage. (Corrected 22 December 1984) 62. Commands have been added to allow rules to appear between floats and text on a page. See the \topfigrule, \botfigrule, and \dblfigrule commands. (Change made 22 December 1984) 63. A minor bug in \raisebox was fixed. (Change made 31 December 1984) 64. \newcounter did not initialize \the... to \arabic{...}. (Corrected 5 January 1985) 65. \linebreak, \nolinebreak, \pagebreak, and \nopagebreak produced an error given an optional argument of 0. (Corrected 16 January 1985) 66. \protect doesn't work properly in the optional argument of \bibitem. (Corrected 27 January 1985) 67. \protect and certain un\protect'ed commands don't work right in the optional argument of \bibitem. (Corrected 30 January 1985) 68. The following two problems will occur if a footnote is split across two pages: (i) if a figure or table environment immediately follows the footnote, then the footnote will be scrambled, with the last part coming before the first part. (ii) a \clearpage immediately following the footnote causes an overfull \vbox message and produces extra vertical space at the beginning of the next page. (Corrected 25 February) 69. The array, tabular and tabular* environments cannot be used with the \envbegin and \envend commands. (Problem disappeared with version 2.09.) 70. Some accents need \protect'ing. (Corrected 16 March 1985.) 71. A sectioning command (like \paragraph) that produces an in-line heading (not on a separate line) doesn't work properly when it is immediately followed by a list or trivlist environment, or one that uses those environments (like verbatim or quote). (Corrected in Version 2.09.) 72. Full page figures or tables that immediately follow the first page of a chapter appear on pages with no page headings. More generally, full page floats that immediately follow a page with a \thispagestyle{foo} command are formatted according to page style foo. (Corrected in Version 2.09.) 73. Multiple paragraph marginpar's don't work. (Corrected 16 July 85.) 74. \longrightarrow and \longleftarrow need \protect'ing in a moving argument. (Corrected 4 September 85) 75. In certain instances, the not enough vertical space appears above a list environment. (Corrected 4 September 85) 76. The \textfraction parameter was being ignored, and a random value used. (Corrected 27 September 85) 77. The \item command was changed to allow a line break between the label and the following text. This makes it easier to define a list environment in which the item occurs on a line by itself. (Change made 3 October 85). 78. No warning was generated by the eqnarray and eqnarray* environments when a formula extended into the margin. (Corrected 4 November 85. However, warning is not generated if formula extends only into the equation number.) 79. \symbol and \newfont were not defined in SLiTeX. (Corrected 21 November 85) 80. SLiTeX's \framebox command did not position items exactly right. (Corrected 28 November 85) 81. Space produced by \hspace* can be gobbled inside an array or tabular environment. (Observed by Sam Whidden.) (Corrected 17 December 85) 82. \skewchar commands were omitted for the math italic and and math symbol fonts, causing improper placement of math accents. (Observed by Howard Trickey) (Corrected 17 December 85) 83. The preloaded typewriter fonts have had \hyphenchar redefined to -1 to prevent hyphenation with these fonts. (Change made 17 December 85) 84. In rare circumstances, a bug in \@dottedtocline resulted in a page number appearing at the left of the line following the section heading in a table of contents entry. (Corrected 7 January 86) 85. As a result of change 83, the \- command doesn't work properly with the typewriter fonts. (Reported by John DeTreville. Corrected 19 April 86.) 86. In verbatim mode, the sequences ?` and !` produce ligatures instead of the correct characters. (Found by Gerard Huet. Corrected 19 April 86.) 87. The \vector and \line commands (through the \@svector and \@sline macros) only check if the vertical component of the slope exceeds the limit (4 or 6) for the command; the horizontal component is not checked. Thus, \vector(2,5){5} gives an error message while \vector(5,2){5} produces incorrect results without any message. Some arguments will reference a non-existent character in the line font. (Found by Joseph I. Pallas. Corrected 19 April 86.) 88. \newenvironment doesn't work if there's a \par command in an argument. (Corrected 19 April 86.) 89. An obscure bug in \settowidth caused by a missing \relax. (Discovered by Oren Patashnik, corrected 24 March 86.) 90. A \markright or \markboth immediately after a sectioning command could allow a page break right after the section heading. (Discovered by Oren Patashnik, corrected 15 April 86.) 91. The \arabic command (actually \@arabic) was changed so it will print nonpositive numbers. (Suggested by Charles Kearney. Change made 29 April 86.) 92. An implementation error causes LaTeX to run out of room on very long tabbing environments. (Discovered by Kent McPherson. Corrected 17 Jun 86) 93. In rare instances, a footnote is placed on the page following the one in belongs on. This happens only when a figure or table environment appears in the text immediately after the place where the page that should contain the footnote ends. Until this is fixed, the problem can be made to go away by moving the figure or table environment a little further back or forward in the text. 94. Unnecessary overfull boxes caused by descenders on last line of page. Fixed by modifying the output routine \@makecol. A temporary dimen is used to hold the depth of the output box, then it is unboxed, then we vskip minus the depth. (2 Sep 86) 95. Grouping was taken out of \@latexerr. (Suggested by John Hobby.) (2 Sep 86) 96. \makethmlabel was deleted. Never used anyway. (Found by Mark Kent, 2 Sep 86). 97. \footheight may soon be deleted. Never used. Taken out of style files too. (Found by Mark Kent, 2 Sep 86). 98. When a section heading does not indent the following paragraph, a \noindent caused a negative indentation--i.e., an outdent. (Change, suggested by suggestion by Mario Wolczko, made 2 Sep 86) 99. A page break can occur where a figure or table environment or a \marginpar command appear, even in the scope of a \samepage declaration. (Found by Oren Patashnik. Corrected 23 Oct 86) 100. In rare instances, a figure can appear on the page preceding its environment, and a marginal note may appear on the wrong side. (Found by Oren Patashnik) 101. The \verb command produces an error if it appears in math mode with a `_' in its argument. (This is a bug in PLAIN.TEX corrected in LPLAIN.TEX on 13 Oct 86 and SPLAIN.TEX on 28 Oct 86.) 102. If no blank line follows a paragraph-making environment, then the following text is not indented. However, a \noindent command produced an outdent. (Correction, similar to #99, made on 23 Oct 86) 103. The mechanism to suppress the paragraph indentation of text immediately following a paragarph-making environment does not work if that environment is enclosed in braces or another environment. In particular, it wouldn't work for environments like the ones defined in the examples on page 57 of the manual--e.g., when called by the `emphit' environment, the `itemize' environment is inside another environment. (Corrected 27 Oct 86) 104. In SLiTeX, the \_ command produces an underscore that is printed on all color layers. (Reported by John deTreville, corrected 10 Nov 86.) 105. A line break can occur at a space in a `verbatim' environment. (Reported by Nelson Beebe, corrected 19 Nov 86.) 106. An apparent typo put two copies of \@texttop at the top of a page instead of just one. This did not seem to affect any of the standard styles, but would have created problems in special styles that used \@texttop. (Reported by Michael Harrison, corrected 1 Dec 86.) 107. An array environment in the third argument to a \multicolumn command did not work. (Reported by Ferdinand Hommes, corrected 6 Dec 86.) 108. A long descender (such as is normally produced only by math formulas) on the bottom line of a page could extend lower than it should. (Corrected 21 Jan 86) 109. The \index command was changed to make \protect work in its argument, in case the \index command is used inside the argument of another command, such as \footnote. (Change made 3 Feb 87) 110. A \label or \index command in a section heading caused a bug if that heading was used as a page heading. (Discovered by Tim Hopkins. Corrected 22 Feb 87) 111. Setting \topskip to 0pt does weird things. I haven't figured out why, but there's no reason to set \topskip to 0pt, so this is not considered a bug. (Discovered by Mabry Tyson.) 112. \{ and \} are fragile commands, contrary to the manual. (Discovered by Piet van Oostrum . Corrected 21 Apr 87.) 113. \bibitem doesn't work when there's a \nofiles declaration. (Discovered by Arthur Ogawa. Corrected 29 Apr 87.) 114. Spaces produced by a \verb command (e.g., `verb| x |') are deleted if they appear at the beginning of a line. I don't know if this is a bug or a feature. (Discovered by R. J. Smith.) 115. A figure or table environment appearing between paragraphs (in vertical mode) can produce extra vertical space in the document between those paragraphs. (Discovered by Arthur Ogawa. Corrected 26 May 87.) 116. An obscure bug in the \caption command can cause it to leave extra vertical space above the caption if the command is not preceded by a blank line. This extra space does not appear when a \nofiles command is used. (Discovered by Peter Schilling. Corrected 12 Jun 87.) 117. A \put or \multiput with an argument beginning "plus" or "minus" causes an error. (Discovered by Don Knuth. Corrected 20 Jul 87.) 118. \dotfill and \hrulefill don't work right in `tabular' and `array' environments. (Discovered by Rainer Schoepf. Corrected [in LPLAIN.TEX] 24 Jul 87.) 119. The `p' option in an array or tabular environment puts a normal depth strut at the bottom of the parbox, which results in too much space if the last line of the box has a descender. I don't see any reasonable way to fix this. (Discovered by John Lavagnino.) 120. The default \cite command was changed to put a space between multiple citations--for example, to produce `[1, 5, 17]' instead of `[1,5,17]'. (Suggested by John Ellis. Changed 21 Nov 87.) 121. The \newcommand and \renewcommand commands left the LaTeX internal control sequence \@tempb \let to `#'. While not causing any problem in LaTeX, it caused bugs in other people's document styles. Fixed by replacing \@tempb in those commands with something more untypeable. (Change made 23 Nov 87.) 122. Figures were typeset with \boxmaxdepth = 0pt, which could screw up some macros--in particular, plain TeX's \overrightarrow. (Bug found by Thomas H. Cormen. Corrected 15 Dec 87.) 123. The fix for 122 broke \marginpar, so it did not work at all. (Corrected 3 Jan 88.) 124. The \frame command put an extra space after the box. (Discovered by John Hershberger, corrected 14 Jan 88.) 125. \parskip wasn't restored in parboxes and footnotes, so it would have the wrong value when a parbox or footnote appeared in a list environment. (Discovered by Dominik Wujastyk, corrected 20 Jan 88.) 126. The leaders were not properly aligned in multiple-line table-of-contents entries. (Discovered by Gunther Hartmann, corrected 25 Jan 88.) 127. Strange things can happen if a command like \footnotemark that doesn't generate in-line text appears between a \paragraph or \subparagraph command (or any sectioning command that produces a heading that's part of the following paragraph) and the following text. What happens is that TeX sees the \footnotemark command before it sees the argument to the \{sub}paragraph command, which can lead to incorrect numbering and who knows what else. Any attempted fix is likely to break other things, so I will not try to fix this. (Discovered by Ed Zalta and Emma Pease.) 128. A marginal note is misplaced if there is a footnote preceding it on the same page. (Found by Chris Rowley. Corrected 26 Feb 88.) 129. In SLiTeX, Two adjacent \frac's run into one another. (Found by Stephen Pohlig.) 130. In SLiTeX, in an array or tabular environment, the rules formed by a `|' argument and by an \hline and \cline command appear in all color layers. (Corrected 8 Jun 88.) 131. If, for a counter foo, \thefoo is defined to contain mention of a non-preloaded font, then a \label{bar} command that involves counter foo will write some garbage on the .aux file causing an error on a \ref{foo} command. (Reported by Peter K. Schilling. Corrected 20 Jul 88.) 132. If a \contentsline or \addtocontents command immediately precedes an \include, then the table of contents line it produces may appear later than the contents lines added by the included file. There does not appear to be an easy fix for this. (First reported by Rainer Schoepf and Frank Mittelbach) 133. If the output routine is called while in a tabbing environment, strange things can happen because \-, \', etc. have unusual definitions. (Reported by Detlev Droege and Friedrich Haubensak. Corrected 4 Aug 88.) 134. Redefining something like \thefigure to include a size-changing command like \small causes an error when a \ref referes to a label that labels a figure environment. This problem can be solved by using \protect\noexpand\protect\small instead of \small. I'm not sure if this is a bug, and I doubt if I'll fix it. (Reported by Peter Schilling.) 135. The \pagebreak and \nopagebreak commands have no effect inside a tabbing or eqnarray environment. (Reported by Mik Bickis.) 136. Typing "\hspace*{...} plus ..." causes an error. (Reported by Emma Pease. Corrected 13 Oct 1988.) 137. The size of the circle printed by \circle{L} not a monotonic function of L. (Reported by Nick North, diagnosed by Ian Young. Corrected 1 Nov 1988.) 138. A command like \index or \label could incorrectly suppress a space after the next \end command. (Reported by Johannes Braams. Partially fixed on 30 Nov 88. Problem can still occur if \index or \label command comes inside the \end's environment.) 139. Extra vertical space appears below a `p' entry in a tabular or array environment if the last line has nonzero depth. (Reported by Michael DeCorte. Corrected 14 Jan 1989.) 149. A \multicolumn command did not work right immediately before a \\[D] command when D was a positive length. (Reported by John Lee. Corrected 8 Feb 89.) 150. In the minipage environment, spacing between footnotes is too small (Found by Don Hosek. Corrected 27 Mar 89.) 151. \pounds didn't work in math mode. (Discovered by Don Hosek. Corrected 10 Apr 89.) 152. \indexentry commands instead of \glossaryentry commands are written on the .glo file. (Discovered by William D. Partain. Corrected 14 Apr 89.) 153. Following minor changes made \include: prevent space in \include{foo } from wiping out input file. \begin-\end: detects unmatched \begin ended with \end{document} \verb: the leading spaces in \verb+ foo+ will not be dropped at the beginning of a line. Also, minor changes to \newline (\\ in paragraph mode), minipage environment, \tableofcontents, \listoffigures, and \listoftables that should produce no noticable effects. (Changes made 24 May 89, mostly based on suggestions by by Frank Mittelbach and Rainer Sch\"opf. 154. A bug in the picture environment caused an extra space to appear in a picture if an offset is specified and the environment begins with a declaration that generates a \special or some such TeX "other". (Corrected 13 Jun 89.) 155. Change 137 introduced a problem with the \oval command. (Reported by David Long and several other users, corrected 7 Dec 89.) 156. A \label command in math mode that follows a space command like \, causes an error. (Discovered by Charles Karney, corrected 18 Dec 89.) 157. A \newcommand declaration in horizontal mode added an extra space. (Discovered by Jim Curry, corrected 9 Jan 90.) 158. The fix mentioned in 138 was added to the comments, but not to the code. (Reported by Piet van Oostrum in TeXhax V90 #42, corrected 2 May 90.) 159. A missing \relax caused an error if some sectioning-commands had an argument with "plus" or "minus". (Reported by Nathan Maman, corrected 2 May 90.) 160. A verbatim environment that begins with a left quote seems to cause incorrect vertical spacing when it begins a minipage environment. (Reported by Michinori Kawaki, 30 Sep 90. Corrected 21 Jun 91.) 161. A \label at the very end of a document may not be processed. (Reported by Mike Piff but not checked, 12 Nov 90) 162. \paragraph{...} Plus... yields an error. (Reported by Victor Eijkhout. Corrected 14 Jan 91.) 163. When a double-column figure or table that is too large to fit on a page is encountered when producing two-column output, that figure and all subsequent ones are never printed. (Reported 13 Mar 91 by David Long. Corrected 15 Mar 91.) 163. Removed some extra spaces in some macro definitions, and changed some occurences of pt to \p@, 0 to \z@, etc. (Changes made 21 Jun 91.) 164. Bug no. 109 was also present for \glossary. (Corrected 21 Jun 91.) 165. A marginal note that happened to appear on the last line of a page with footnotes could mess up the vertical spacing. (Corrected 21 Jun 91.) 166. Emptied \box0 at the end of lplain.tex to save memory. (Change made 21 Jun 91.) 167. Added \SliTeX logo to slitex.tex. (Change made 21 Jun 91.) 168. \@warning changed to print the input line number when using TeX 3.x. Old version kept as \@@warning. (Change made 24 Jun 91.) 169. Corrected bug inherited from plain.tex: missing \relax in \multispan macro. (Corrected 1 Jul 91.) 170. A \samepage declaration would not prevent a verbatim environment from being broken across pages. (Corrected 27 Jul 91.) 171. Several changes to make LaTeX work with the New Font Selection Scheme without the need to redefine internal macros. (Changes made 14--15 Aug 91.) 172. Extra boxing in picture environment introduced to guard against unboxing in math mode. (Reported by John Hobby. Corrected 26 Aug 91.) 173. To allow full paragraphs in the \whiledo construct of the ifthen style option, the \@whilesw construct in latex.tex was made \long. (Reported by Konrad Blum. Change made 26 Aug 91.) 174. Extra blank space between the second and third mandatory argument of \newenvironment and \renewenvironment would lead to an unintelligible error message. (Long known. Change made 26 Aug 91.) 175. A verbatim environment in a list could produce a double indent. (Reported by Chris Rowley. Corrected 26 Aug 91.) 176. \maketitle or other commands that internally invoke a list environment would not be detected before \begin{document}. (Corrected 26 Aug 91.) NOTE: THIS CHANGE AFFECTS ALL STYLES AND STYLE OPTIONS THAT CHANGE THE \begin{document} COMMAND! IT IS NECESSARY TO ADD \@noskipsecfalse. 177. Moved the \SLiTeX logo to latex.tex so that it can be used in LaTeX as well. (Change made 29 Sep 91.) 178. Added \reset@font at several places where \rm appears: the number of an equation, for the \LaTeX and \SLiTeX logos, and for the text of footnotes. (Change made 29 Sep 91.) 179. Changed \output to reset \par to its default value. This avoids problems when the output routine is called within a list where \par may be a no-op. (Reported by Eberhard Mattes. Fix suggested by Chris Rowley. Change made 29 Sep 91.) 180. Fixed a number of smaller problems, including addition of \endinput at the end of the files. (Changes made 17 Oct 91.) 181. \protect'ed the \LaTeX and \SLiTeX logos, as a consequence of change 178. (Change made 17 Oct 91.) 182. Corrected bug in the \@tfor macro where an \xdef was used instead of a \def. (Change made 17 Oct 91.) 183. A small internal optimization in \@makecol in the output routine: replaced \dimen128 by \dimen@. (Change made 22 Oct 91.) 184. Added \reset@font in \ref, \pageref, and \@citex. (Suggested by Bernd Raichle. Change made 25 Oct 91.) 185. Allowed \sc typeface in slides document style, so that the LaTeX logos is printed correctly. (Change made 27 Oct 91.) 186. Inhibited color change in math mode. (Change made 27 Oct 91.) 187. Re-arranged size switching code in SliTeX. (Change made 27 Oct 91.) 188. Corrected typo in latex.tex. (Found by Joachim Schrod. Corrected 29 Oct 91.) 189. Removed \catcode and \mathcode definitions for non-printing ASCII characters, as nobody seems to use them. (Change made 30 Oct 91.) 190. Fragile commands in the definition of \thefootnote led to an error, even with the use of \protect. (Found by Chris Hamlin. Corrected 1 Nov 91.) 191. Added default definition of \makelabel, so that an \item command outside a list environment gives a sensible error message instead of messing up the whole job. (Change made 4 Nov 91.) 192. Introduced file lhyphen.tex. (Change made 4 Nov 91.) 193. Added a lot of missing \m@th (mathsurround=0pt) assignments. (Changes made 4 Nov 91.) 194. Added warning message when height of single column float exceeds \textheight. (Change made 6 Nov 91.) 195. \cite will now ignore leading blanks in a citation key. (Change made 6 Nov 91.) 196. Added code to make it work with MLTeX version 2. (Suggested by Bernard Gaulle. Change made 7 Nov 91.) 197. Use of the enumerate environment in the thebibliography environment messes up the latter's item numbering. Corrected by changing the counter from enumi to enumiv as it was already documented. (Reported by Nelson Beebe. Corrected 13 Nov 91.) 198. Fix 190 did not go far enough. (Found by Chris Rowley. Corrected 22 Nov 91.) 199. Changed definition of \item to call \makelabel only once instead of twice. This solves a number of problems with side effects in \makelabel, and is even more efficient. (Change made 22 Nov 91.) 200. Corrected an obscure bug in the output routine that could cause a division by zero when \twocolumn[] was used. (Suggested by Chris Rowley. Corrected 22 Nov 91.) 201. Added a few forgotten \relax in front of conditionals in lfonts.tex and sfonts.tex. (Suggested by Bernd Raichle. Change made 25 Nov 91.) 202. Some minor changes for efficiency. (Suggested by Bernd Raichle. Changes made 27 Nov 91.) 203. Version frozen. (1 Dec 91.) 204. Fix 197 led to incompatibilities with styles derived from article, like amsart. (Changed 10 Jan 92 as suggested by Bernd Raichle.) 205. Use of a nonexisting theorem environment in the first optional argument to \newtheorem led to an incomprehensible error message. (Reported by Luzia Dietsche. Fixed 10 Jan 92.) 206. As a consequence of change 66 in the styles (see below) labels in the bibliography environment would now come out left aligned. (Reported by Andy Fyfe. Corrected 14 Jan 92.) 207. A \listoffigures at the end of the document would sometimes not typeset the table. (Reported by Friedrich Haubensak. Corrected 14 Jan 92.) 208. Fix no. 206 caused bibliography labels in the alpha bibliography style to come out right aligned. (Reported by Andy Fyfe. Corrected 26 Feb 92.) 209. When used in math mode, \verb doesn't print all characters in \tt font. Some characters such as "&" are printed in \rm font and some such as "\" are in the symbol font. 210. Corrected typo in \underline in slitex.tex. (Reported by Johannes Braams. Corrected 26 Feb 92.) 211. Changed lplain.tex and splain.tex to match the changes introduced by plain.tex version 3.14 on March 16. (Changes made 17 Mar 92.) 212. Changed Metafont warning messages to error messages when cmbase is used to generate the line and circle fonts. (Suggested by Chris Thompson. Changed 18 Mar 92.) 213. Added \@nmbrlistfalse to \trivlist. This fixes some weird problem occuring with multiline running heads and a page break in a numbered list. (Suggested by Alexander Durner. Corrected 18 Mar 92.) 214. Allocate input stream for \typein and for \@input with \newread to avoid conflicts with other allocated streams. (Suggested by Michael Downes and Bernd Raichle. Change made 18 Mar 92.) 215. In SLiTeX, a \frac sometimes overlaps vertically. (Found by Alois Steindl.) 216. In SLiTeX \Longrightarrow comes out wrong. (Found by Alois Steindl.) 217. The fix mentioned in 138 and 158 was done wrong in the code. Also the problem was now corrected completely by introducing a new control sequence. (Suggested by Piet van Oostrum. Corrected 18 Mar 92.) 218. A \protect\\ in the optional argument of a sectioning command leads to extra rubber space in the running head in the myheadings pagestyle. (Found by Robert Bittl.) 219. Corrected typo in the \c command introduced by Don Knuth in plain.tex and propagated to lplain.tex and splain.tex. (Reported by Friedrich Haubensak. Corrected 25 Mar 92.) CHANGES TO .DOC AND .STY FILES AND OTHERS ----------------------------------------- [Changes needed to conform with changes to LaTeX are not noted.] 1. \caption doesn't work properly with optional argument. (Corrected 28 Dec 83) 2. The change to the thebibliography environment described in item 2 below requres a change to the .STY files. (Change made 28 Dec 83) 3. The description environment was changed to allow a larger value of \leftmargin than the default. The parameter \descriptionlabelwidth gives the maximum value of \labelwidth for a description environment. It should be \def'd to something like .2\linewidth. (Change made 31 Dec 83) 4. A minor bug in a \mark command made it possible for a page heading to come on an earlier page than it should. (Change made 13 Jan 84) 5. Version 2.06 eliminated the .PLO files and completely changed the organization of the .STY files. See LERRATA.TEX. 6. The style files were changed to accomodate the new convention that assumes printing starts one inch from the top and left edges of the paper. 7. LABLST.TEX did not work with Version 2.06. (Corrected 18 July 84.) 8. The default margins for the list environment weren't being set properly in SLIDES.DOC/STY. (Corrected 26 July 84.) 9. The table* environment was producing single-column rather than double-column tables. (Corrected 16 September 84.) 10. In the letter style, commands like \it didn't work right when the appeared in mailing labels. (Corrected 21 September 84) 11. \begin{displaymath} ... \end{displaymath} doesn't work right in the fleqn style option. (Corrected by a change in Version 2.07.) 12. In the letter style, a null argument of a \begin{letter} produced an error. (Corrected 21 October 1984.) 13. Multiple paragraph footnotes don't work properly. (Corrected 8 November 1984) 14. In normal article style, the \maketitle command did not prevent a figure from going above it at the top of the page. (Corrected 9 November) 15. The thebibliography environment messed up when there were more that 26 items. (Corrected 9 November) 16. The letter document style for Version 2.07 had incorrect enumerate and itemize environments. (Corrected 9 November) 17. The article style was changed so the thebibliography command produces the title "References" instead of "Bibliography". (Note that report style still produces "Bibliography".) (Changed 17 November 1984) 18. LABLST.TEX may die if there's an un\protect'ed font-changing command in a table of contents entry. (Corrected 24 November 1984) 19. A list inside a trivlist environment, like a theorem environment, doesn't work right. (Corrected 27 November 1984) 20. The report style messed up page headings in single-sided output with the headings option. (Corrected 5 December 1984) 21. The quotation environment puts extra space between paragraphs. (Corrected 3 January 1985). 22. The \[ ... \] environment had a minor bug in the fleqn style option. (Corrected 6 February 1985) 23. A change was made to the letter style that should fix the anomalous page breaking. (Thanks to Mike Fischer for tracking it down.) (Change made 9 February 1985) 24. A sectioning command (like \paragraph) that produces an in-line heading (not on a separate line) doesn't work properly when it is immediately followed by a list or trivlist environment, or one that uses those environments (like verbatim or quote). (Corrected in Version 2.09.) 25. The leqno style option doesn't work. (Corrected 20 May 1985) 26. The `slides' document style ignored all style options. (Corrected 20 November 1985) 27. \tableofcontents, \listoffigures, \bibliography, etc. affect the page headings when the myheadings style is used. (Reported by Tim Morgan.) (Corrected 17 December 85) 28. The old version of the description environment was inadvertantly left in the `letter' and `slides' style. (Reported by Rusty Wright.) (Corrected 17 January 86) 29. In all styles: no hyphenation is done in multi-line figure and table captions. 30. Labels in the letter style did not work right if the user changed \parindent. (Reported by Mike Fischer, corrected 5 Mar 86.) 31. The `ifthen' style option was modified to make \protect work in the `test' argument of \ifthenelse and \while. (Problem reported by Tor Lillqvist, corrected 28 Oct 1986) 32. A bug in the `ifthen' style made \equal not work after a \newcommand, \newenvironment, \renewcommand, or \renewenvironment command. (Problem reported by Tor Lillqvist, corrected 16 December 1986) 33. With the `fleqn' style option, the text following a displayed equation always began a new paragraph, even if it was not preceded by a blank line. (Reported by Joe Weening, corrected 9 March 1987) 34. If a size-changing command is given at the outermost brace and \begin-\end level, and is followed by a \normalsize command, then the parameters used for controlling first-level lists are messed up. (Reported by Tom Hofmann, corrected 9 Jun 1987.) 35. The letter style was changed to make the \date command have the expected effect. (Suggested by John Pavel. Change made 20 Jul 87.) 36. In the definition of \newblock inside \thebibliography, there was a "minus -.07ex" that should have been "minus .07ex". (Found by Oren Patashnik, corrected 12 October 1987.) 37. In the `openbib' style option, a couple of "\markboth"s should have been "\@mkboth"s. (Found by Oren Patashnik, corrected 12 October 1987.) 38. A first-level list environment inside a trivlist environment messes up the left margin. (Reported and correction suggested by Martha Wershofen, corrected 22 December 1987.) 39. The \label command did not work for cross-referencing parts. (Reported by Paul Karger, corrected 19 January 1988.) 40. Changes made to \l@section command (article style) and \l@chapter command (book, report styles) for making table of contents entries to conform to 25 Jan 88 change to \numberline. (Reported by Gunther Hartmann, corrected 5 February 88.) 41. \protect did not work in the argumment to an \index command when the showidx style option is used. (Reported by Nelson Beebe. Corrected 22 Feb 88.) 42. The definitions in the standard style did not allow the labels in an `enumerate' environment to be changed in the usual way be redefining `\theenum...'. (Corrected 16 Mar 88.) 43. With \pagestyle{empty}, a \chapter command still produces a page number on the first page of a chapter. (Reported by Peter Schilling 3 June 88. Deemed not worth correcting.) 44. A bug in the `letter' style caused a number to disappear from the output if it occurred at the beginning of a paragraph after a \ps. (Corrected 20 Sep 88.) 45. Report and book styles: Changed macros that produced "part" and "chapter" table-of-contents entries to improve page breaking. (Changed 24 May 89, as suggested by Jerry Leichter.) 46. In the fleqn style, \@beginparpenalty and \@endparpenalty were used instead of \predisplaypenalty and \postdisplaypenalty before and after a displayed equation made with \[ ... \] or the "equation" environment. (Reported by Rainer Sch\"opf and Frank Mittelbach. Corrected 24 May 89.) 47. The fix to the fleqn style reported in number 46 (24 May 89) re-introduced bug fixed in number 33 (9 Mar 87). (Corrected 26 Sep 89.) 48. Certain keywords like "height" caused an error in an \index command with the showidx style option. (Reported by Joachim Schrod, corrected 11 Oct 89.) 49. A bug in the definition of \part in the book and report styles made them use the optional argument instead of the regular argument for the heading printed in the text. (Reported by Richard Roy, corrected 13 Nov 89.) 50. \part allows a page break to occur in the middle of a multi-line heading. Easily fixed by adding \interlinepenalty10000 to the definition, but I probably won't bother. (Reported by Don Hosek. Corrected 11 Nov 91.) 51. A \paragraph command not preceded by other sectioning commands causes an error. This is deemed incorrect input and will not be fixed in version 2.09. (Reported by Nathan Maman.) -------------------- 52. Some changes in several document styles to support the NFSS (New Font Selection Scheme that will become standard with LaTeX 3.0) - Extra braces added in definitions of \ps@heading .. in all files since \sl is not longer reset by \rm. - \csname process@table\endcsname added in letter.sty to allow math in letters. (Changes made 26 Mar 91.) 53. Document styles renamed to `Standard Document Styles'. (Changes made 30 Mar 91.) 54. International language support. All fixed strings are removed and commands are inserted instead. The names are chosen according to the standard developed in Europe (ILaTeX, german.sty, babel.sty). The default for these commands is to produce the old string, so there is no change in behavior. (Changes made 30 Mar 91.) 55. Style options files twocolumn and titlepage shortened to 8 chars. User interface preserved by adding \ds@titlepage etc. to input the coded name. This supports (most) OS with file length restrictions. (Change made 30 Mar 91.) 56. Moved definition of \part command from size-specific styles to article.doc/sty. (Change made 30 Mar 91.) 57. Removed a lot of superfluous blanks. Introduced some abbreviations: pt by \p@, 0pt by \z@, etc. (Changes made 15 Jun 91.) 58. In the letter style option the \xpt macro was replaced by a call to a top-level size command, depending on the point size of the document. (Change made 15 Jun 91.) 58. In style option showidx "20 (hex) was changed to 32 (decimal) to avoid a problem with the style option german. (Change made 16 Jun 91.) 59. Fix no. 12 to the letter style did not catch everything. (Fix suggested by Mike Piff. Corrected 16 Aug 91.) 60. Environment thebibliography changed to generate a warning message instead of an error if its body is empty. (Suggested by Nelson H.F. Beebe. Change made 26 Aug 91.) 61. Added \reset@font to definition of \@eqnnum in leqno style option. (Change made 29 Sep 91.) 62. The marks for listoffigures and listoftables were not changed to uppercase correctly. This was a consequence a change 54. (Reported by Bernard Gaulle. Corrected 14 Oct 91.) 63. Change 55 caused the twocolumn document style option to no longer work since twocolumn.sty was read in too early. (Reported by Bernard Gaulle. Corrected 15 Oct 91.) 64. In the slides document style, one could specify the twoside document style option, which is nonsense. (Corrected 15 Oct 91.) 65. Corrected typo in makeidx document style option. (Reported by Dave Love. Corrected 21 Oct 91.) 66. Use of [ .. ] for the labels in the thebibliography environment replaced by the use of the macro \@biblabel. (Change made 27 Oct 91.) 67. Missing ~ after \partname added in definition of the \part command. (Found by Dave Love. Corrected 4 Nov 91.) 68. Added a lot of missing \m@th (mathsurround=0pt) assignments in several document style files. (Changes made 4 Nov 91.) 69. Added forgotten definitions for \ccname, etc. in letter document style. (Found by Johannes Braams. Corrected 5 Nov 91.) 70. Removed extra open brace in book.sty. (Found by Bernard Gaulle. Corrected 5 Nov 91.) 71. Change 63 did not really fix the problem. (Corrected 5 Nov 91.) 72. Forgot to do change 66 for the openbib style option as well. (Corrected 11 Nov 91.) 73. Somehow Appendix was not replaced by \appendixname in the report and book documentstyles. (Found by Bernd Raichle. Corrected 12 Dec 91.) 74. As a consequence of change 55, the titlepage option of the article document style did no longer work at all. (Reported by severral people. Corrected 10 Jan 92.) 75. As a consequence of change 197 in latex.tex, bibliographies with more than 26 entries led to error messages about an incomplete \iftrue. (Reported by Andy Fyfe. Corrected 14 Jan 92.) 76. Added explicit setting of \topskip in article, book, and report document styles. This is important for sizes 11pt and 12pt to avoid ``overfull \vbox while \output is active'' messages. (Suggested by Friedrich Haubensak. Change made 14 Jan 92.) 77. Change no. 176 above had also to be done in the letter document style. (Corrected 21 Feb 92.) 78. Fix no. 59 caused leading blanks in the argument of \begin{letter} not to be ignored. (Reported by Will Partain. Corrected 21 Feb 92.) 79. Added definition for \pagename and conditional around definition for \abstractname in the proc document style option. (Suggested by Friedrich Haubensak. Change made 26 Feb 92.) 80. Changed definitions of \labelenum... in the letter document style to use \theenum... rather than directly \arabic{enumi}, etc. (Suggested by Johannes Braams. Change made 26 Feb 92.) 81. The \subparagraph command in bk11.doc/sty lacks a \reset@font. (Reported by Dietrich Baumann.) 82. Corrected typo in in the letter document style. (Reported by Mustafa Akgul. Corrected 25 Mar 92.) CHANGES TO THE MANUAL --------------------- See ADDENDUM.TEX latex209-25.may.1992.orig/general/testa4.tex100664 144 144 5145 5161754600 17463 0ustar nakaharastaff% testa4.tex - created 5 June 1991 % Copyright (C) 1991 by Rainer Schoepf % % based on testpage.tex by Leslie Lamport as revised by Stephen Gildea % % Test of how accurately printer reproduces dimensions specified % by LaTeX output on A4 paper. % \documentstyle{article} \pagestyle{empty} \setlength{\oddsidemargin}{0pt} \setlength{\evensidemargin}{0pt} \setlength{\marginparwidth}{1in} \setlength{\marginparsep}{0pt} \setlength{\topmargin}{0pt} \setlength{\headheight}{0pt} \setlength{\headsep}{0pt} \setlength{\topskip}{0pt} \footheight 0pt \footskip 0pt % A4 is 29,7301778cm x 21,0224103cm % = 9,7047944in x 6,2765395in \setlength{\textheight}{24,6501778cm} \setlength{\textwidth}{15,9424103cm} \setlength{\unitlength}{1in} \newcounter{foo} \begin{document} \setlength{\parindent}{0pt} \begin{picture}(0,0) \scriptsize \put(0,-9.7047944){\framebox(6.2765395,9.7047944){}} % left ruler \put(0,-4.8523972){\line(-1,0){2.5}} \multiput(-.1,-4.9523972)(-.1,0){10}{\line(0,1){.2}} \multiput(-.05,-4.9023972)(-.1,0){10}{\line(0,1){.1}} \setcounter{foo}{1}\multiput(-.1,-4.7023972)(-.1,0){9}{\makebox (0,0){\arabic{foo}}\addtocounter{foo}{1}} % right ruler \put(6.2765395,-4.8523972){\line(1,0){2.5}} \multiput(6.3765395,-4.9523972)(.1,0){10}{\line(0,1){.2}} \multiput(6.3265395,-4.9023972)(.1,0){10}{\line(0,1){.1}} %fixed mit-erl!gildea 13Feb86 %\multiput(6.3265395,-4.9523972)(.1,0){10}{\line(0,1){.1}} \setcounter{foo}{1}\multiput(6.3765395,-4.7023972)(.1,0){9}{\makebox (0,0){\arabic{foo}}\addtocounter{foo}{1}} % top ruler \put(3.1382698,0){\line(0,1){2.5}} \multiput(3.0382698,.1)(0,.1){10}{\line(1,0){.2}} \multiput(3.0882698,.05)(0,.1){10}{\line(1,0){.1}} \setcounter{foo}{1}\multiput(3.2882698,.1)(0,.1){9}{\makebox (0,0){\arabic{foo}}\addtocounter{foo}{1}} % bottom ruler \put(3.1382698,-9.7047944){\line(0,-1){2.5}} \multiput(3.0382698,-9.8047944)(0,-.1){10}{\line(1,0){.2}} \multiput(3.0882698,-9.7547944)(0,-.1){10}{\line(1,0){.1}} \setcounter{foo}{1}\multiput(3.2882698,-9.8047944)(0,-.1){9}{\makebox (0,0){\arabic{foo}}\addtocounter{foo}{1}} \end{picture} \vspace*{\fill} \begin{center} \begin{minipage}{4in} The frame on this page should be $24{,}6501778{\rm cm} \times 15{,}9424103 {\rm cm} = 9{,}7047944'' \times 6{,}2765395''$. When printed on A4 paper, the frame should be one inch from each edge of the paper.\\[10pt] The rulers at the four edges will indicate how much of the page is useable. The large ticks are $.1''$ apart. \end{minipage} \end{center} \vspace*{\fill} \end{document} latex209-25.may.1992.orig/general/testpage.tex100664 144 144 4465 5161754600 20077 0ustar nakaharastaff% testpage.tex - created 20 July 1987 % Copyright (C) 1987 by Leslie Lamport % % Test of how accurately printer reproduces dimensions specified % by LaTeX output. % % Revised by Stephen Gildea to: % make 10 tic marks instead of 9 % add a long rule through the tics to show the exact edge of the paper % short tics on right-hand ruler positioned correctly % some comments added \documentstyle{article} \pagestyle{empty} \oddsidemargin 0pt \evensidemargin 0pt \marginparwidth 1in \marginparsep 0pt \topmargin 0pt \headheight 0pt \headsep 0pt \topskip 0pt \footheight 0pt \footskip 0pt \textheight 9in \textwidth 6.5in \setlength{\unitlength}{1in} \newcounter{foo} \begin{document} \parindent 0pt \begin{picture}(0,0) \scriptsize \put(0,-9){\framebox(6.5,9){}} % left ruler \put(0,-4.5){\line(-1,0){2.5}} \multiput(-.1,-4.6)(-.1,0){10}{\line(0,1){.2}} \multiput(-.05,-4.55)(-.1,0){10}{\line(0,1){.1}} \setcounter{foo}{1}\multiput(-.1,-4.35)(-.1,0){9}{\makebox (0,0){\arabic{foo}}\addtocounter{foo}{1}} % right ruler \put(6.5,-4.5){\line(1,0){2.5}} \multiput(6.6,-4.6)(.1,0){10}{\line(0,1){.2}} \multiput(6.55,-4.55)(.1,0){10}{\line(0,1){.1}} %fixed mit-erl!gildea 13Feb86 %\multiput(6.55,-4.6)(.1,0){10}{\line(0,1){.1}} \setcounter{foo}{1}\multiput(6.6,-4.35)(.1,0){9}{\makebox (0,0){\arabic{foo}}\addtocounter{foo}{1}} % top ruler \put(3.25,0){\line(0,1){2.5}} \multiput(3.15,.1)(0,.1){10}{\line(1,0){.2}} \multiput(3.2,.05)(0,.1){10}{\line(1,0){.1}} \setcounter{foo}{1}\multiput(3.4,.1)(0,.1){9}{\makebox (0,0){\arabic{foo}}\addtocounter{foo}{1}} % bottom ruler \put(3.25,-9){\line(0,-1){2.5}} \multiput(3.15,-9.1)(0,-.1){10}{\line(1,0){.2}} \multiput(3.2,-9.05)(0,-.1){10}{\line(1,0){.1}} \setcounter{foo}{1}\multiput(3.4,-9.1)(0,-.1){9}{\makebox (0,0){\arabic{foo}}\addtocounter{foo}{1}} \end{picture} \vfill \mbox{}\hfill \begin{minipage}{4in} The frame on this page should be $6\frac{1}{2}'' \times 9''$. When printed on $8\frac{1}{2}'' \times 11''$ paper, the frame should be one inch from each edge of the paper.\\[10pt] The rulers at the four edges will indicate how much of the page is useable. The large ticks are $.1''$ apart. \end{minipage} \hfill\mbox{} \vfill \mbox{} \end{document} latex209-25.may.1992.orig/general/small.tex100664 144 144 3245 5161754600 17366 0ustar nakaharastaff% SMALL.TEX -- Released 5 July 1985 % USE THIS FILE AS A MODEL FOR MAKING YOUR OWN LaTeX INPUT FILE. % EVERYTHING TO THE RIGHT OF A % IS A REMARK TO YOU AND IS IGNORED BY LaTeX. % THE FILE /usr/local/lib/tex82/local.gid TELLS HOW TO RUN LaTeX. % WARNING! DO NOT TYPE ANY OF THE FOLLOWING 10 CHARACTERS EXCEPT AS DIRECTED: % & $ # % _ { } ^ ~ \ \documentstyle{article} % YOUR INPUT FILE MUST CONTAIN THESE TWO LINES \begin{document} % PLUS THE \end COMMAND AT THE END. \section{Simple Text} % THIS COMMAND MAKES A SECTION TITLE. Words are separated by one or more spaces. Paragraphs are separated by one or more blank lines. The output is not affected by adding extra spaces or extra blank lines to the input file. Double quotes are typed like this: ``quoted text''. Single quotes are typed like this: `single-quoted text'. Long dashes are typed as three dash characters---like this. Italic text is typed like this: {\em this is italic text}. Bold text is typed like this: {\bf this is bold text}. \subsection{A Warning or Two} % THIS COMMAND MAKES A SUBSECTION TITLE. If you get too much space after a mid-sentence period---abbreviations like etc.\ are the common culprits)---then type a backslash followed by a space after the period, as in this sentence. Remember, don't type the 10 special characters (such as dollar sign and backslash) except as directed! The following seven are printed by typing a backslash in front of them: \$ \& \# \% \_ \{ and \}. The manual tells how to make other symbols. \end{document} % THE INPUT FILE ENDS WITH THIS COMMAND. latex209-25.may.1992.orig/general/makeindex.tex100664 144 144 42036 5161754600 20244 0ustar nakaharastaff% makeindex.tex -- released 17 February 1987 % Copyright(c) 1987 by Leslie Lamport % for LaTeX version 2.09 % \documentstyle[11pt]{article} %&v&\verb|#|& %&i&\verb|\index{#}|& %&t&{\tt #}& \newcommand{\MakeIndex}{{\it MakeIndex\/}} \newcommand{\fn}{} \newcommand{\ff} % Definition of the iexample environment and \sindex command. % They are used as follows: % \begin{iexample} % Page 7 & \verb|\index{foo}|\\ % Page 22 & \verb|\index{bar}| % \sindex % bar, 22 \\ % foo, 7 % \end{iexample} \newenvironment{iexample}{\begin{quote} \begin{tabular}[t]{@{}ll||@{\hspace{1em}}}}{\end{tabbing}\end{minipage} \end{quote}} \newcommand{\sindex}{\end{tabular}\hspace{1em}\begin{minipage}[t]{\textwidth} \begin{tabbing}} \newcommand{\sitem}{\hspace*{20pt}} \newcommand{\ssitem}{\hspace*{30pt}} \title{\MakeIndex: An Index Processor For \LaTeX} \author{Leslie Lamport} \date{17 February 1987} \begin{document} \maketitle \section{How to Use \MakeIndex} \MakeIndex\ is a program for making an index in a document generated with \LaTeX. The first step in producing the index is to put the necessary \verb|\index| commands in your document, as described in the next section. Here, I describe how to generate the index after the \verb|\index| commands are in place. Let's suppose that the root file of your document is {\tt myfile.tex}. You must make the following changes to your document: \begin{itemize} \item Add the {\tt makeidx} document-style option to the list of options in the \verb|\documentstyle| command. (See page 21 of the \LaTeX\ manual.) \item Put a \verb|\makeindex| command in the preamble (between the \linebreak%%%%% \verb|\documentstyle| and \verb|\begin{document}| commands). \item Put a \verb|\printindex| command where you want the index to appear---usually at the end, right before the \verb|\end{document}| command. \end{itemize} You then run \LaTeX\ on your entire document, causing it to generate the file {\tt myfile.idx}, which I will call the {\tt idx} file. Next, run the \MakeIndex\ program by typing the following Unix command: \begin{quote} {\tt makeindex myfile.idx} \end{quote} This produces the file {\tt myfile.ind}, which I will call the {\tt ind} file. If \MakeIndex\ generated no error messages, you can now rerun \LaTeX\ on your document and the index will appear. (You can remove the \verb|\makeindex| command first so the {\tt idx} file is not regenerated.) If there were error messages, see Section~\ref{sec:errors}. By reading the index, you may discover additional mistakes. These should be corrected by changing the appropriate \verb|\index| commands in the document and regenerating the {\tt ind} file. If there are problems that cannot be corrected in this way, you can always edit the {\tt ind} file directly. However, such editing is to be avoided because it must be repeated every time you generate a new version of the index. \section{How to Generate Index Entries} \subsection{When, Why, What, and How to Index} It's tempting to generate the index as you write the document. Resist the temptation. It is virtually impossible to obtain any consistency in an index that is generated in this way. An index is there to help the reader find what he's looking for. With this in mind, common sense can help in figuring out what should be in the index and how it should be organized. Since it's often hard to distinguish common sense from equally common nonsense, professional advice is useful. Many style guides discuss indexing; the pamphlet {\em Indexing Your Book\/} by Sina Spiker (The University of Wisconsin Press, 1954) is, according to its subtitle, ``A Practical Guide for Authors''. Unfortunately, these guides to indexing seem to have been written when high tech meant using a ball-point pen instead of a quill, so their advice on the mechanics of creating an index revolve around how to stack your $3\times 5$ index cards. You'll have to figure out your own method of using the computer to lighten the chore. An alphabetical list of every word in your document, with duplicates removed, is not a bad place to start. If your system has Howard Trickey's {\tt delatex} program, then the following Unix command generates such a list from the file {\tt myfile.tex} and puts it on the file {\tt foo}: \begin{quote} \tt delatex myfile.tex | sort -uf > foo \end{quote} The computer is only a tool; it can't write the index for you. It may be easy to choose which words are important and mechanically generate an index citing every occurrence of those words, but the resulting index will not be as useful to the reader as one prepared with more care. \subsection{The Basics} Each \verb|\index| command causes \LaTeX\ to write an entry on the {\tt idx} file. The following example shows some simple \verb|\index| commands and the index entries that they produce. The page number refers to the page containing the text where the \verb|\index| command appears.\footnote{To avoid any ambiguity if a page break occurs right at an {\tt \symbol{'134}index} command, it's a good idea to attach the command to a word instead of putting it between words.} \begin{iexample} Page ii & \verb|\index{Alpha}| \\ Page viii: & \verb|\index{alpha}| \\ Page ix: & \verb|\index{alpha}| \\ & \verb|\index{Alphabet}| \\ Page 22: & \verb|\index{alpha}| \\ & \verb|\index{alphas}| \\ Page 23: & \verb|\index{alphabet}| \\ & \verb|\index{alphabet}| \\ Page 24: & \verb|\index{alpha bet}| \sindex Alpha, ii \\ alpha, viii, ix, 22 \\ alpha bet, 24\\ Alphabet, ix\\ alphabet, 23\\ alphas, 22 \end{iexample} Note that the duplicate \verb|\index{alphabet}| commands on page 23 produce only one ``23'' in the index. To produce a subentry, the argument of the \verb|\index| command should contain both the main entry and the subentry, separated by a \verb|!| character. \begin{iexample} Page 7: & \verb|\index{gnat!size of}| \\ Page 32: & \verb|\index{gnat}| \\ Page 35: & \verb|\index{gnat!anatomy}| \\ & \verb|\index{gnus!good}| \\ Page 38: & \verb|\index{gnus!bad}| \\ & \sindex gnat, 32 \\ \sitem anatomy, 35 \\ \sitem size of, 7\\ gnus \\ \sitem bad, 38\\ \sitem good, 35 \end{iexample} You can also have subsubentries. \begin{iexample} Page 8: & \verb|\index{bites!animal!gnats}| \\ Page 10: & \verb|\index{bites!animal!gnus}| \\ Page 12 : & \verb|\index{bites!vegetable}| \\ & \\ & \sindex bites \\ \sitem animal \\ \ssitem gnats, 8 \\ \ssitem gnus, 10 \\ \sitem vegetable, 12 \end{iexample} \LaTeX\ and \MakeIndex\ support only three levels of indexing; you can't have subsubsubentries. To specify a page range, put an \verb/\index{...|(}/ command at the beginning of the range and an \verb/\index{...|)}/ command at the end of the range. \begin{iexample} Page vi: & \verb/\index{gnat|(}/ \\ Page x: & \verb/\index{gnat|)}/ \\ Page 22: & \verb|\index{gnat}| \\ & \verb/\index{gnus!bad|(}/ \\ & \verb/\index{gnus!bad|)}/ \\ Page 28: & \verb/\index{gnus!good|(}/ \\ Page 30: & \verb|\index{gnus!good}| \\ Page 32: & \verb/\index{gnus!good|)}/ \sindex gnat, vi--x, 22 \\ gnus \\ \sitem bad, 22\\ \sitem good, 28--32 \end{iexample} Note that \MakeIndex\ does the right thing when both ends of the range fall on the same page.\footnote{The use of ``28ff.'' rather than ``28--32'' is frowned upon by the experts.} Sometimes, you want to add a cross-reference with no page number. This is done as follows; \begin{iexample} Page 2: & \verb|\index{at}| \\ Page 2: & \verb/\index{at!bat|see{bat, at}}/ \sindex at, 2 \\ \sitem bat, {\em see\/} bat, at \end{iexample} Since the ``see'' entry does not print any page number, it doesn't matter where the \verb/\index{...|see{...}}/ command goes, so long as it follows the \verb|\begin{document}| command. You might want to put all such cross-referencing commands in one place. If you specify an entry of the form $\sigma$\verb|@|$\tau$, the string $\sigma$ determines the alphabetical position of the entry, while the string $\tau$ produces the text of the entry. \begin{iexample} Page 44: & \verb|\index{twenty}| \\ Page 46: & \verb|\index{twenty-one}| \\ Page 55: & \verb|\index{twenty@xx}| \sindex twenty, 44 \\ xx, 55 \\ twenty-one, 46 \end{iexample} This feature is useful because the argument of the \verb|\index| command provides the actual input string that \LaTeX\ uses to generate the index entry. In the following example, the input \verb|$\alpha$| produces the symbol $\alpha$, \begin{iexample} Page 12: & \verb|\index{alphas}| \\ Page 13: & \verb|\index{alpha}| \\ Page 14: & \verb|\index{alpha@$\alpha$}| \sindex alpha, 13 \\ $\alpha$, 14 \\ alphas, 12 \end{iexample} Similarly, the command \verb|\index{gnu@{\bf gnu}}| produces a boldface {\bf gnu} index entry. In some indexes, certain page numbers are specially formatted---for example, an italic page number may indicate the primary reference, and an {\em n\/} after a page number may denote that the item appears in a footnote on that page. \MakeIndex\ makes it easy to format an individual page number any way you want. For any string of characters $\sigma$, the command \verb/\index{...|/$\sigma$\verb|}| produces a page number of the form \verb|\|$\sigma$\verb|{|$n$\verb|}|. Similarly, the command \verb/\index{...|(/$\sigma$\verb|}| may produce a page number of the form \verb|\|$\sigma$\verb|{|$n$--$m$\verb|}|. Thus, suppose the document contains the following command definitions: \begin{quote} \verb|\newcommand{\ii}[1]{{\it #1}}| \\ \verb|\newcommand{\nn}[1]{#1n}| \end{quote} We could then have: \begin{iexample} Page 3: & \verb/\index{gnat|ii}/ \\ Page 4: & \verb/\index{gnat|nn}/ \\ Page 5: & \verb/\index{gnu}/ \\ Page 44: & \verb/\index{gnu|(ii}/ \\ Page 46: & \verb/\index{gnu|)}/ \sindex gnat, {\em 3}, 4n \\ gnu, 5, {\em 44--46} \end{iexample} The ``see'' option is a special case of this facility, where the \verb|\see| command is predefined by the {\tt makeidx} document-style option. \subsection{The Fine Print} Commands in an index entry are expanded when the index is typeset, not when the {\tt idx} file is written. Hence, the command \verb|\index{\gnu}| produces an entry that is alphabetized by \verb|\gnu|, regardless of how the \verb|\gnu| command is defined. Recall that special characters like \verb|\| may appear in the argument of an \verb|\index| command only if that command is not itself contained in the argument of another command. This is most likely to be a problem when indexing items in a footnote. Even in this case, robust commands can be placed in the ``\verb|@|'' part of an entry, as in \verb|\index{gnu@{\it gnu}}|, and fragile commands can be used if protected with the \verb|\protect| command.\footnote{In versions of \LaTeX\ released before 3 February 1987, you must use the {\tt\symbol{'134}string} command instead of {\tt\symbol{'134}protect}.} Remember that the argument of an \verb|\index| command must always have matching braces, where the brace in a \verb|\{| or \verb|\}| command counts. \MakeIndex\ assumes that all page numbers are either arabic or lower-case roman numerals; it assumes that pages numbered with roman numerals precede those numbered with arabic numerals. To put a \verb|!|, \verb|@|, or \verb/|/ character in an index entry, {\em quote\/} it by preceding the character with a \verb|"|. More precisely, any a character is said to be quoted if it follows an unquoted \verb|"| that is not part of a \verb|\"| command. A quoted \verb|!|, \verb|@|, or \verb/|/ character is treated like an ordinary character rather than having its usual meaning. The \verb|"| preceding a quoted character is deleted before the entries are alphabetized. \begin{iexample} Page 2: & \verb|\index{exclaim ("!)}| \\ Page 3: & \verb|\index{exclaim ("!)!loudly}| \\ Page 4: & \verb|\index{fur@f\"{u}r}| \\ Page 5: & \verb|\index{quote (\verb+""+)}| \sindex exclaim (!), 2 \\ \sitem loudly, 3\\ f\"{u}r, 4\\ quote (\verb+""+), 5 \end{iexample} \MakeIndex\ regards spaces as ordinary characters when alphabetizing the entries and deciding whether two entries are the same. Thus, letting ``\verb*| |'' denote a space character, the commands \verb*|\index{gnu}|, \verb*|\index{ gnu}|, and \verb*|\index{gnu }| produce three separate entries, the first appearing near the beginning of the index, since \verb*| | comes before any letter in \MakeIndex's ``alphabetical'' order. All three entries look the same when printed, since \LaTeX\ ignores extra spaces in the input. Similarly, \verb*|\index{a space}| and \verb*|\index{a space}| produce two different entries that look the same when printed. Do not split the argument of an \verb|\index| command across lines in the input file. \section{Error Messages} \label{sec:errors} \MakeIndex\ types out on the terminal the number of lines read and written and how many errors were found. Message to identify the error are written on a file with extension {\tt ilg}. There are two phases in which \MakeIndex\ can produce error messages: when it is reading the {\tt idx} file, and when it is writing the {\tt ind} file. Each error message prints the nature of the error followed by a line number, identifying where in the file the error occurs. In the reading phase, the line number refers to the {\tt idx} file; in the writing phase, it refers to the {\tt ind} file. \subsection{Errors in Reading Phase} \subsubsection*{\tt Extra `!' at position ...} The \verb|\index| command's argument has more than two unquoted \verb|!| characters. Perhaps some of them should be quoted. \subsubsection*{\tt Extra `@' at position ...} The \verb|\index| command argument has two or more unquoted \verb|@| characters with no intervening \verb|!|. Perhaps one of the \verb|@| characters should be quoted. \subsubsection*{\tt Extra `|' at position ...} The \verb|\index| command's argument has more than one unquoted \verb|!| characters. Perhaps the extras should be quoted. \subsubsection*{\tt Illegal null field} The \verb|\index| command argument doesn't make sense because some string is null that shouldn't be. The command \verb|\index{!big}| will produce this error, since it specifies a subentry ``big'' with no entry. Similarly, the command \verb|\index{@big}| is incorrect because it specifies a null string for alphabetizing. %\subsubsection*{\tt No \symbol{'134}indexentry} % %Each line of an {\tt idx} file written by \LaTeX\ should contain an %\verb|\indexentry| command. \MakeIndex\ has found a line in the {\tt idx} %file that does not contain an \verb|\indexentry| command. The {\tt %idx} file has probably been corrupted. % %\subsubsection*{\tt Missing \symbol{'173}} % %\MakeIndex\ believes that the braces in the argument of the \verb|\index| %command are not properly matched. Since \LaTeX\ must %have thought that the braces were properly matched, the problem %is probably due to a corrupted {\tt idx} file. % %\subsubsection*{\tt Missing \symbol{'175}} % %See ``{\tt Missing \symbol{'173}}'' error. \subsubsection*{\tt Argument ... too long (max 1024).} Your document contained an \verb|\index| command with a very long argument. You probably forgot the right brace that was supposed to delimit the argument. \subsubsection*{Other errors} \MakeIndex\ can produce a variety of other error messages indicating that something is seriously wrong with the {\tt idx} file. If you get one, it probably means that the {\tt idx} file was corrupted in some way. If \LaTeX\ did not generate any errors when it created the {\tt idx} file, then it is highly unlikely to have produced a bad {\tt idx} file. If it did, you'll have to examine the {\tt idx} file to figure out what went wrong. \subsection{Errors in Writing Phase} \subsubsection*{\tt Unmatched range opening operator} An \verb/\index{...|(}/ command was not followed by a matching \linebreak%%%%% \verb/\index{...|)}/ command. The ``\verb|...|'' in the two commands must be completely identical. \subsubsection*{\tt Unmatched range closing operator } An \verb/\index{...|(}/ command was not preceded by a matching \linebreak%%%%% \verb/\index{...|)}/ command. \subsubsection*{\tt Extra range opening operator } Two \verb/\index{...|(}/ commands appear in the document with no intervening \verb/\index{...|)}/ command. \subsubsection*{\tt Inconsistent page encapsulator ... within range} \MakeIndex\ has been instructed to include a page range for an entry and a single page number within that range that is formatted differently---for example, by having a \verb+\index{gnu|ii}+ command between a \verb+\index{gnu|(}+ and a \verb+\index{gnu|)}+ command. \subsubsection*{\tt Conflicting entries} \MakeIndex\ thinks it has been instructed to print the same page number twice in two different ways---for example, by the commands \verb|\index{gnu}| and \verb/\index{gnu|(see{...}}/ appearing on the same page. \section*{Acknowledgements} \MakeIndex\ is a C program written by Peehong Chen, with a little advice from me. It was inspired by a program written by Mike Urban, which was based on a program written by Marshall Rose. Perhaps someday someone will rewrite \MakeIndex\ in Web, making it available to all \LaTeX\ users. \end{document} Peehong Chen's net address: phc@renoir.Berkeley.EDU latex209-25.may.1992.orig/general/sample.tex100664 144 144 15545 5161754600 17565 0ustar nakaharastaff% This is a sample LaTeX input file. (Version of 9 April 1986) % % A '%' character causes TeX to ignore all remaining text on the line, % and is used for comments like this one. \documentstyle{article} % Specifies the document style. % The preamble begins here. \title{A Sample Document} % Declares the document's title. \author{Leslie Lamport} % Declares the author's name. \date{December 12, 1984} % Deleting this command produces today's date. \begin{document} % End of preamble and beginning of text. \maketitle % Produces the title. This is a sample input file. Comparing it with the output it generates can show you how to produce a simple document of your own. \section{Ordinary Text} % Produces section heading. Lower-level % sections are begun with similar % \subsection and \subsubsection commands. The ends of words and sentences are marked by spaces. It doesn't matter how many spaces you type; one is as good as 100. The end of a line counts as a space. One or more blank lines denote the end of a paragraph. Since any number of consecutive spaces are treated like a single one, the formatting of the input file makes no difference to \TeX, % The \TeX command generates the TeX logo. but it makes a difference to you. When you use \LaTeX, % The \LaTeX command generates the LaTeX logo. making your input file as easy to read as possible will be a great help as you write your document and when you change it. This sample file shows how you can add comments to your own input file. Because printing is different from typewriting, there are a number of things that you have to do differently when preparing an input file than if you were just typing the document directly. Quotation marks like ``this'' have to be handled specially, as do quotes within quotes: ``\,`this' % \, separates the double and single quote. is what I just wrote, not `that'\,''. Dashes come in three sizes: an intra-word dash, a medium dash for number ranges like 1--2, and a punctuation dash---like this. A sentence-ending space should be larger than the space between words within a sentence. You sometimes have to type special commands in conjunction with punctuation characters to get this right, as in the following sentence. Gnats, gnus, etc.\ % `\ ' makes an inter-word space. all begin with G\@. % \@ marks end-of-sentence punctuation. You should check the spaces after periods when reading your output to make sure you haven't forgotten any special cases. Generating an ellipsis \ldots\ % `\ ' needed because TeX ignores spaces after % command names like \ldots made from \ + letters. % % Note how a `%' character causes TeX to ignore the % end of the input line, so these blank lines do not % start a new paragraph. with the right spacing around the periods requires a special command. \TeX\ interprets some common characters as commands, so you must type special commands to generate them. These characters include the following: \$ \& \% \# \{ and \}. In printing, text is emphasized by using an {\em italic\/} % The \/ command produces the tiny extra space that % should be added between a slanted and a following % unslanted letter. type style. \begin{em} A long segment of text can also be emphasized in this way. Text within such a segment given additional emphasis with\/ {\em Roman} type. Italic type loses its ability to emphasize and become simply distracting when used excessively. \end{em} It is sometimes necessary to prevent \TeX\ from breaking a line where it might otherwise do so. This may be at a space, as between the ``Mr.'' and ``Jones'' in ``Mr.~Jones'', % ~ produces an unbreakable interword space. or within a word---especially when the word is a symbol like \mbox{\em itemnum\/} that makes little sense when hyphenated across lines. Footnotes\footnote{This is an example of a footnote.} pose no problem. \TeX\ is good at typesetting mathematical formulas like \( x-3y = 7 \) or \( a_{1} > x^{2n} / y^{2n} > x' \). Remember that a letter like $x$ % $ ... $ and \( ... \) are equivalent is a formula when it denotes a mathematical symbol, and should be treated as one. \section{Displayed Text} Text is displayed by indenting it from the left margin. Quotations are commonly displayed. There are short quotations \begin{quote} This is a short a quotation. It consists of a single paragraph of text. There is no paragraph indentation. \end{quote} and longer ones. \begin{quotation} This is a longer quotation. It consists of two paragraphs of text. The beginning of each paragraph is indicated by an extra indentation. This is the second paragraph of the quotation. It is just as dull as the first paragraph. \end{quotation} Another frequently-displayed structure is a list. The following is an example of an {\em itemized} list. \begin{itemize} \item This is the first item of an itemized list. Each item in the list is marked with a ``tick''. The document style determines what kind of tick mark is used. \item This is the second item of the list. It contains another list nested inside it. The inner list is an {\em enumerated} list. \begin{enumerate} \item This is the first item of an enumerated list that is nested within the itemized list. \item This is the second item of the inner list. \LaTeX\ allows you to nest lists deeper than you really should. \end{enumerate} This is the rest of the second item of the outer list. It is no more interesting than any other part of the item. \item This is the third item of the list. \end{itemize} You can even display poetry. \begin{verse} There is an environment for verse \\ % The \\ command separates lines Whose features some poets will curse. % within a stanza. % One or more blank lines separate stanzas. For instead of making\\ Them do {\em all\/} line breaking, \\ It allows them to put too many words on a line when they'd rather be forced to be terse. \end{verse} Mathematical formulas may also be displayed. A displayed formula is one-line long; multiline formulas require special formatting instructions. \[ x' + y^{2} = z_{i}^{2}\] Don't start a paragraph with a displayed equation, nor make one a paragraph by itself. \end{document} % End of document. latex209-25.may.1992.orig/general/sfonts.tex100664 144 144 70075 5161754600 17617 0ustar nakaharastaff% File SFONTS - Version of 25 November 1991 % (Lyle Ramshaw replaced "circle" with "lcircle" on 22 Oct 89.) % (Lyle Ramshaw replaced "am*" with "cm*" on 27 Oct 89.) % (Corrected \twenty... --> \itwenty... in \itwentyninept, % found 91/06/12 by Klaus Thull, corrected 91/06/21.) % (Added fonts for \sc typeface, RmS 91/10/27.) % (Introduced the \@setsize macro, RmS 91/10/27.) % (Added some \relax in front of conditionals, RmS 91/11/25.) % This file needs to be customized for the fonts available at a particular % site. There are three places where changes need to be made. They % can be found by searching this file for the string FONT-CUSTOMIZING. % % FONT CONVENTIONS % % A TYPESTYLE COMMAND is something like \it that defines a type style. % Each style command \xx is defined to be \protect\pxx, where % \pxx is defined to choose the correct font for the current size. % This allows style commands to appear in 'unsafe' arguments where % protection is required. % % A SIZE COMMAND is something like \normalsize that defines a type size. % It is defined by the document style. % % A FONT-SIZE COMMAND is one that defines \textfont, \scriptfont and % \scriptscriptfont for the font families corresponding to preloaded fonts, % as well as the typestyle commands for the preloaded fonts. Each % font-size command has an associated @fontsize command, having the same % name except for an '@' at the front. All font-size commands are defined % in SFONTS. The naming convention is that a fifteenpt font has a font-size % name \fifteenpt, and so on. % % Each size command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % which does the following. % 0. Executes \@nomath\SIZE to issue warning if in math mode. % 1. \def \@currsize {\@FONTSIZE} % 2. Sets \baselineskip to \baselinestretch * BASELINESKIP % and % 3. Executes the \@FONTSIZE command. % 4. Switches to the default \rm font. % % It should then define all the typestyle commands not defined by the font-size % command, except for the one-size type styles. A typestyle command for which % the corresponding font exists but is not preloaded is defined to expand to a % \@getfont command. A typestyle whose font does not exist is defined to % expand to a \@subfont command. % \def\@setsize#1#2#3#4{\@nomath#1\def\@currsize{#4}\baselineskip #2\relax\baselineskip\baselinestretch\baselineskip \normalbaselineskip\baselineskip#4\rm} % Definition of \newfont and \symbol % Note that fonts defined with \newfont won't work % with color slides---characters in that font will appear % in all color layers and in `invisible' text. % \def\newfont#1#2{\@ifdefinable #1{\font #1=#2\relax}} \def\symbol#1{\char #1\relax} \message{fonts,} % visible fourteen point fonts \font\fourteenrm = lcmss8 scaled \magstep 3 % roman \font\fourteeni = cmmi8 scaled \magstep 3 % math italic \skewchar\fourteeni ='177 % for math accents \font\fourteensy = cmsy8 scaled \magstep 3 % symbol \skewchar\fourteensy ='60 % for placement of math accents \font\fourteenit = lcmssi8 scaled \magstep 3 % italic \font\fourteenbf = lcmssb8 scaled \magstep 3 % bold \font\fourteentt = cmtt8 scaled \magstep 3 % typewriter \hyphenchar\fourteentt = -1 % suppress hyphenation in \tt font \font\fourteensc = cmcsc10 scaled \magstep 2 % caps and small caps \font\fourteenlasy = lasy8 scaled \magstep 3 % LaTeX symbol % invisible fourteen point fonts \font\ifourteenrm = ilcmss8 scaled \magstep 3 % roman \font\ifourteeni = icmmi8 scaled \magstep 3 % math italic \skewchar\ifourteeni ='177 % for math accents \font\ifourteensy = icmsy8 scaled \magstep 3 % symbol \skewchar\ifourteensy ='60 % for placement of math accents \font\ifourteenit = ilcmssi8 scaled \magstep 3 % italic \font\ifourteenbf = ilcmssb8 scaled \magstep 3 % bold \font\ifourteentt = icmtt8 scaled \magstep 3 % typewriter \hyphenchar\ifourteentt = -1 % suppress hyphenation in \tt font \font\ifourteensc = icmcsc10 scaled \magstep 2 % caps and small caps \font\ifourteenlasy = ilasy8 scaled \magstep 3 % LaTeX symbol % visible seventeen point fonts \font\seventeenrm = lcmss8 scaled \magstep 4 % roman \font\seventeeni = cmmi8 scaled \magstep 4 % math italic \skewchar\seventeeni ='177 % for math accents \font\seventeensy = cmsy8 scaled \magstep 4 % symbol \skewchar\seventeensy ='60 % for placement of math accents \font\seventeenit = lcmssi8 scaled \magstep 4 % italic \font\seventeenbf = lcmssb8 scaled \magstep 4 % bold \font\seventeentt = cmtt8 scaled \magstep 4 % typewriter \hyphenchar\seventeentt = -1 % suppress hyphenation in \tt font \font\seventeensc = cmcsc10 scaled \magstep 3 % caps and small caps \font\seventeenlasy = lasy8 scaled \magstep 4 % LaTeX symbol % invisible seventeen point fonts \font\iseventeenrm = ilcmss8 scaled \magstep 4 % roman \font\iseventeeni = icmmi8 scaled \magstep 4 % math italic \skewchar\iseventeeni ='177 % for math accents \font\iseventeensy = icmsy8 scaled \magstep 4 % symbol \skewchar\iseventeensy ='60 % for placement of math accents \font\iseventeenit = ilcmssi8 scaled \magstep 4 % italic \font\iseventeenbf = ilcmssb8 scaled \magstep 4 % bold \font\iseventeentt = icmtt8 scaled \magstep 4 % typewriter \hyphenchar\iseventeentt = -1 % suppress hyphenation in \tt font \font\iseventeensc = icmcsc10 scaled \magstep 3 % caps and small caps \font\iseventeenlasy = ilasy8 scaled \magstep 4 % LaTeX symbol % visible twenty point fonts \font\twentyrm = lcmss8 scaled \magstep 5 % roman \font\twentyi = cmmi8 scaled \magstep 5 % math italic \skewchar\twentyi ='177 % for math accents \font\twentysy = cmsy8 scaled \magstep 5 % symbol \skewchar\twentysy ='60 % for placement of math accents \font\twentyit = lcmssi8 scaled \magstep 5 % italic \font\twentybf = lcmssb8 scaled \magstep 5 % bold \font\twentytt = cmtt8 scaled \magstep 5 % typewriter \hyphenchar\twentytt = -1 % suppress hyphenation in \tt font \font\twentysc = cmcsc10 scaled \magstep 4 % caps and small caps \font\twentylasy = lasy8 scaled \magstep 5 % LaTeX symbol % invisible twenty point fonts \font\itwentyrm = ilcmss8 scaled \magstep 5 % roman \font\itwentyi = icmmi8 scaled \magstep 5 % math italic \skewchar\itwentyi ='177 % for math accents \font\itwentysy = icmsy8 scaled \magstep 5 % symbol \skewchar\itwentysy ='60 % for placement of math accents \font\itwentyit = ilcmssi8 scaled \magstep 5 % italic \font\itwentybf = ilcmssb8 scaled \magstep 5 % bold \font\itwentytt = icmtt8 scaled \magstep 5 % typewriter \hyphenchar\itwentytt = -1 % suppress hyphenation in \tt font \font\itwentysc = icmcsc10 scaled \magstep 4 % caps and small caps \font\itwentylasy = ilasy8 scaled \magstep 5 % LaTeX symbol % visible twentyfour point fonts -- \magstep 6 \font\twentyfourrm = lcmss8 scaled 2986 % roman \font\twentyfouri = cmmi8 scaled 2986 % math italic \skewchar\twentyfouri ='177 % for math accents \font\twentyfoursy = cmsy8 scaled 2986 % symbol \skewchar\twentyfoursy ='60 % for placement of math accents \font\twentyfourit = lcmssi8 scaled 2986 % italic \font\twentyfourbf = lcmssb8 scaled 2986 % bold \font\twentyfourtt = cmtt8 scaled 2986 % typewriter \hyphenchar\twentyfourtt = -1 % suppress hyphenation in \tt font \font\twentyfoursc = cmcsc10 scaled \magstep 5 % caps and small caps \font\twentyfourlasy = lasy8 scaled 2986 % LaTeX symbol % invisible twentyfour point fonts \font\itwentyfourrm = ilcmss8 scaled 2986 % roman \font\itwentyfouri = icmmi8 scaled 2986 % math italic \skewchar\itwentyfouri ='177 % for math accents \font\itwentyfoursy = icmsy8 scaled 2986 % symbol \skewchar\itwentyfoursy ='60 % for placement of math accents \font\itwentyfourit = ilcmssi8 scaled 2986 % italic \font\itwentyfourbf = ilcmssb8 scaled 2986 % bold \font\itwentyfourtt = icmtt8 scaled 2986 % typewriter \hyphenchar\itwentyfourtt = -1 % suppress hyphenation in \tt font \font\itwentyfoursc = icmcsc10 scaled \magstep 5 % caps and small caps \font\itwentyfourlasy = ilasy8 scaled 2986 % LaTeX symbol % visible twentynine point fonts -- \magstep 7 \font\twentyninerm = lcmss8 scaled 3583 % roman \font\twentyninei = cmmi8 scaled 3583 % math italic \skewchar\twentyninei ='177 % for math accents \font\twentyninesy = cmsy8 scaled 3583 % symbol \skewchar\twentyninesy ='60 % for placement of math accents \font\twentynineit = lcmssi8 scaled 3583 % italic \font\twentyninebf = lcmssb8 scaled 3583 % bold \font\twentyninett = cmtt8 scaled 3583 % typewriter \hyphenchar\twentyninett = -1 % suppress hyphenation in \tt font \font\twentyninesc = cmcsc10 scaled 2986 % caps and small caps \font\twentyninelasy = lasy8 scaled 3583 % LaTeX symbol % invisible twentynine point fonts \font\itwentyninerm = ilcmss8 scaled 3583 % roman \font\itwentyninei = icmmi8 scaled 3583 % math italic \skewchar\itwentyninei ='177 % for math accents \font\itwentyninesy = icmsy8 scaled 3583 % symbol \skewchar\itwentyninesy ='60 % for placement of math accents \font\itwentynineit = ilcmssi8 scaled 3583 % italic \font\itwentyninebf = ilcmssb8 scaled 3583 % bold \font\itwentyninett = icmtt8 scaled 3583 % typewriter \hyphenchar\itwentyninett = -1 % suppress hyphenation in \tt font \font\itwentyninesc = icmcsc10 scaled 2986 % caps and small caps \font\itwentyninelasy = ilasy8 scaled 3583 % LaTeX symbol % visible thirtyfour point fonts -- \magstep 8 \font\thirtyfourrm = lcmss8 scaled 4300 % roman \font\thirtyfouri = cmmi8 scaled 4300 % math italic \skewchar\thirtyfouri ='177 % for math accents \font\thirtyfoursy = cmsy8 scaled 4300 % symbol \skewchar\thirtyfoursy ='60 % for placement of math accents \font\thirtyfourit = lcmssi8 scaled 4300 % italic \font\thirtyfourbf = lcmssb8 scaled 4300 % bold \font\thirtyfourtt = cmtt8 scaled 4300 % typewriter \hyphenchar\thirtyfourtt = -1 % suppress hyphenation in \tt font \font\thirtyfoursc = cmcsc10 scaled 3583 % caps and small caps \font\thirtyfourlasy = lasy8 scaled 4300 % LaTeX symbol % invisible thirtyfour point fonts \font\ithirtyfourrm = ilcmss8 scaled 4300 % roman \font\ithirtyfouri = icmmi8 scaled 4300 % math italic \skewchar\ithirtyfouri ='177 % for math accents \font\ithirtyfoursy = icmsy8 scaled 4300 % symbol \skewchar\ithirtyfoursy ='60 % for placement of math accents \font\ithirtyfourit = ilcmssi8 scaled 4300 % italic \font\ithirtyfourbf = ilcmssb8 scaled 4300 % bold \font\ithirtyfourtt = icmtt8 scaled 4300 % typewriter \hyphenchar\ithirtyfourtt = -1 % suppress hyphenation in \tt font \font\ithirtyfoursc = icmcsc10 scaled 3583 % caps and small caps \font\ithirtyfourlasy = ilasy8 scaled 4300 % LaTeX symbol % fortyone point fonts \font\fortyonerm = lcmss8 scaled 5160 % roman \font\ifortyonerm = ilcmss8 scaled 5160 % roman % math extension \font\tenex =cmex10 scaled\magstep3 \font\itenex=icmex10 scaled\magstep3 % line and circle fonts \font\tenln = line10 \font\tenlnw = linew10 \font\tencirc = lcircle10 \font\tencircw = lcirclew10 \ifnum\fontdimen8\tenln=\fontdimen8\tencirc \else \@warning{Incompatible thin line and circle fonts}\fi \ifnum\fontdimen8\tenlnw=\fontdimen8\tencircw \else \@warning{Incompatible thick line and circle fonts}\fi % Definition of type sizes % NOTE: In this file, \lineskip is 1pt for all font sizes. \lineskip 1pt \normallineskip 1pt \def\@subfam#1#2{\@warning{No \string#1\space typeface in SLiTeX, using \string#2}#2} % protected font names \def\rm{\protect\prm} \def\it{\protect\pit} \def\bf{\protect\pbf} \def\tt{\protect\ptt} \def\sl{\@subfam\sl\it} \def\sf{\@subfam\sf\rm} \def\sc{\protect\psc} \def\em{\protect\pem{}} \def\pem{\relax\ifdim \fontdimen\@ne\font >\z@ \rm \else \it \fi} \def\mit{\fam\@ne} \def\cal{\fam\tw@} \def\boldmath{\@warning{No \string\boldmath\space in SLiTeX}} \let\unboldmath=\relax \def\@nomath#1{\relax\ifmmode \@warning{\string#1\space in math mode.}\fi} % unused families defined to keep family numbering the same as in LaTeX % \newfam\itfam % \it is family 4 \newfam\slfam % \sl is family 5 - Not used in SLiTeX \newfam\bffam % \bf is family 6 \newfam\ttfam % \tt is family 7 \newfam\sffam % \sf is family 8 - Not used in SLiTeX \newfam\scfam % \sc is family 9 - Not used in SLiTeX \newfam\lyfam % \ly is family 10 \def\fourteenpt{\def\prm{\fam\z@\fourteenrm\def\@currfont{\rm}}% \textfont\z@\fourteenrm \scriptfont\z@\fourteenrm \scriptscriptfont\z@\fourteenrm \textfont\@ne\fourteeni \scriptfont\@ne\fourteeni \scriptscriptfont\@ne\fourteeni \textfont\tw@\fourteensy \scriptfont\tw@\fourteensy \scriptscriptfont\tw@\fourteensy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\pit{\fam\itfam\fourteenit\def\@currfont{\it}}\textfont\itfam\fourteenit \scriptfont\itfam\fourteenit \scriptscriptfont\itfam\fourteenit \def\pbf{\fam\bffam\fourteenbf\def\@currfont{\bf}}\textfont\bffam\fourteenbf \scriptfont\bffam\fourteenbf \scriptscriptfont\bffam\fourteenbf \def\ptt{\fam\ttfam\fourteentt\def\@currfont{\tt}}\textfont\ttfam\fourteentt \scriptfont\ttfam\fourteentt \scriptscriptfont\ttfam\fourteentt \def\psc{\fam\scfam\fourteensc\def\@currfont{\sc}}\textfont\scfam\fourteensc \scriptfont\scfam\fourteensc \scriptscriptfont\scfam\fourteensc \def\lasy{\fam\lyfam\fourteenlasy\def\@currfont{\lasy}}% \textfont\lyfam\fourteenlasy \scriptfont\lyfam\fourteenlasy \scriptscriptfont\lyfam\fourteenlasy} \def\ifourteenpt{\def\prm{\fam\z@\ifourteenrm\def\@currfont{\rm}}% \textfont\z@\ifourteenrm \scriptfont\z@\ifourteenrm \scriptscriptfont\z@\ifourteenrm \textfont\@ne\ifourteeni \scriptfont\@ne\ifourteeni \scriptscriptfont\@ne\ifourteeni \textfont\tw@\ifourteensy \scriptfont\tw@\ifourteensy \scriptscriptfont\tw@\ifourteensy \textfont\thr@@\itenex \scriptfont\thr@@\itenex \scriptscriptfont\thr@@\itenex \def\pit{\fam\itfam\ifourteenit\def\@currfont{\it}}\textfont\itfam\ifourteenit \scriptfont\itfam\ifourteenit \scriptscriptfont\itfam\ifourteenit \def\pbf{\fam\bffam\ifourteenbf\def\@currfont{\bf}}\textfont\bffam\ifourteenbf \scriptfont\bffam\ifourteenbf \scriptscriptfont\bffam\ifourteenbf \def\ptt{\fam\ttfam\ifourteentt\def\@currfont{\tt}}\textfont\ttfam\ifourteentt \scriptfont\ttfam\ifourteentt \scriptscriptfont\ttfam\ifourteentt \def\psc{\fam\scfam\ifourteensc\def\@currfont{\sc}}\textfont\scfam\ifourteensc \scriptfont\scfam\ifourteensc \scriptscriptfont\scfam\ifourteensc \def\lasy{\fam\lyfam\ifourteenlasy\def\@currfont{\lasy}}% \textfont\lyfam\ifourteenlasy \scriptfont\lyfam\ifourteenlasy \scriptscriptfont\lyfam\ifourteenlasy} \def\seventeenpt{\def\prm{\fam\z@\seventeenrm\def\@currfont{\rm}}% \textfont\z@\seventeenrm \scriptfont\z@\fourteenrm \scriptscriptfont\z@\fourteenrm \textfont\@ne\seventeeni \scriptfont\@ne\fourteeni \scriptscriptfont\@ne\fourteeni \textfont\tw@\seventeensy \scriptfont\tw@\fourteensy \scriptscriptfont\tw@\fourteensy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\pit{\fam\itfam\seventeenit\def\@currfont{\it}}\textfont\itfam\seventeenit \scriptfont\itfam\fourteenit \scriptscriptfont\itfam\fourteenit \def\pbf{\fam\bffam\seventeenbf\def\@currfont{\bf}}\textfont\bffam\seventeenbf \scriptfont\bffam\fourteenbf \scriptscriptfont\bffam\fourteenbf \def\ptt{\fam\ttfam\seventeentt\def\@currfont{\tt}}\textfont\ttfam\seventeentt \scriptfont\ttfam\fourteentt \scriptscriptfont\ttfam\fourteentt \def\psc{\fam\scfam\seventeensc\def\@currfont{\sc}}\textfont\scfam\seventeensc \scriptfont\scfam\fourteensc \scriptscriptfont\scfam\fourteensc \def\lasy{\fam\lyfam\seventeenlasy\def\@currfont{\lasy}}% \textfont\lyfam\seventeenlasy \scriptfont\lyfam\fourteenlasy \scriptscriptfont\lyfam\fourteenlasy} \def\iseventeenpt{\def\prm{\fam\z@\iseventeenrm\def\@currfont{\rm}}% \textfont\z@\iseventeenrm \scriptfont\z@\ifourteenrm \scriptscriptfont\z@\ifourteenrm \textfont\@ne\iseventeeni \scriptfont\@ne\ifourteeni \scriptscriptfont\@ne\ifourteeni \textfont\tw@\iseventeensy \scriptfont\tw@\ifourteensy \scriptscriptfont\tw@\ifourteensy \textfont\thr@@\itenex \scriptfont\thr@@\itenex \scriptscriptfont\thr@@\itenex \def\pit{\fam\itfam\iseventeenit\def\@currfont{\it}}% \textfont\itfam\iseventeenit \scriptfont\itfam\ifourteenit \scriptscriptfont\itfam\ifourteenit \def\pbf{\fam\bffam\iseventeenbf\def\@currfont{\bf}}% \textfont\bffam\iseventeenbf \scriptfont\bffam\ifourteenbf \scriptscriptfont\bffam\ifourteenbf \def\ptt{\fam\ttfam\iseventeentt\def\@currfont{\tt}}% \textfont\ttfam\iseventeentt \scriptfont\ttfam\ifourteentt \scriptscriptfont\ttfam\ifourteentt \def\psc{\fam\scfam\iseventeensc\def\@currfont{\sc}}% \textfont\scfam\iseventeensc \scriptfont\scfam\ifourteensc \scriptscriptfont\scfam\ifourteensc \def\lasy{\fam\lyfam\iseventeenlasy\def\@currfont{\lasy}}% \textfont\lyfam\iseventeenlasy \scriptfont\lyfam\ifourteenlasy \scriptscriptfont\lyfam\ifourteenlasy} \def\twentypt{\def\prm{\fam\z@\twentyrm\def\@currfont{\rm}}% \textfont\z@\twentyrm \scriptfont\z@\seventeenrm \scriptscriptfont\z@\fourteenrm \textfont\@ne\twentyi \scriptfont\@ne\seventeeni \scriptscriptfont\@ne\fourteeni \textfont\tw@\twentysy \scriptfont\tw@\seventeensy \scriptscriptfont\tw@\fourteensy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\pit{\fam\itfam\twentyit\def\@currfont{\it}}\textfont\itfam\twentyit \scriptfont\itfam\seventeenit \scriptscriptfont\itfam\fourteenit \def\pbf{\fam\bffam\twentybf\def\@currfont{\bf}}\textfont\bffam\twentybf \scriptfont\bffam\seventeenbf \scriptscriptfont\bffam\fourteenbf \def\ptt{\fam\ttfam\twentytt\def\@currfont{\tt}}\textfont\ttfam\twentytt \scriptfont\ttfam\seventeentt \scriptscriptfont\ttfam\fourteentt \def\psc{\fam\scfam\twentysc\def\@currfont{\sc}}\textfont\scfam\twentysc \scriptfont\scfam\seventeensc \scriptscriptfont\scfam\fourteensc \def\lasy{\fam\lyfam\twentylasy\def\@currfont{\lasy}}% \textfont\lyfam\twentylasy \scriptfont\lyfam\seventeenlasy \scriptscriptfont\lyfam\fourteenlasy} \def\itwentypt{\def\prm{\fam\z@\itwentyrm\def\@currfont{\rm}}% \textfont\z@\itwentyrm \scriptfont\z@\iseventeenrm \scriptscriptfont\z@\ifourteenrm \textfont\@ne\itwentyi \scriptfont\@ne\iseventeeni \scriptscriptfont\@ne\ifourteeni \textfont\tw@\itwentysy \scriptfont\tw@\iseventeensy \scriptscriptfont\tw@\ifourteensy \textfont\thr@@\itenex \scriptfont\thr@@\itenex \scriptscriptfont\thr@@\itenex \def\pit{\fam\itfam\itwentyit\def\@currfont{\it}}\textfont\itfam\itwentyit \scriptfont\itfam\iseventeenit \scriptscriptfont\itfam\ifourteenit \def\pbf{\fam\bffam\itwentybf\def\@currfont{\bf}}\textfont\bffam\itwentybf \scriptfont\bffam\iseventeenbf \scriptscriptfont\bffam\ifourteenbf \def\ptt{\fam\ttfam\itwentytt\def\@currfont{\tt}}\textfont\ttfam\itwentytt \scriptfont\ttfam\iseventeentt \scriptscriptfont\ttfam\ifourteentt \def\psc{\fam\scfam\itwentysc\def\@currfont{\sc}}\textfont\scfam\itwentysc \scriptfont\scfam\iseventeensc \scriptscriptfont\scfam\ifourteensc \def\lasy{\fam\lyfam\itwentylasy\def\@currfont{\lasy}}% \textfont\lyfam\itwentylasy \scriptfont\lyfam\iseventeenlasy \scriptscriptfont\lyfam\ifourteenlasy} \def\twentyfourpt{\def\prm{\fam\z@\twentyfourrm\def\@currfont{\rm}}% \textfont\z@\twentyfourrm \scriptfont\z@\twentyrm \scriptscriptfont\z@\seventeenrm \textfont\@ne\twentyfouri \scriptfont\@ne\twentyi \scriptscriptfont\@ne\seventeeni \textfont\tw@\twentyfoursy \scriptfont\tw@\twentysy \scriptscriptfont\tw@\seventeensy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\pit{\fam\itfam\twentyfourit\def\@currfont{\it}}% \textfont\itfam\twentyfourit \scriptfont\itfam\twentyit \scriptscriptfont\itfam\seventeenit \def\pbf{\fam\bffam\twentyfourbf\def\@currfont{\bf}}% \textfont\bffam\twentyfourbf \scriptfont\bffam\twentybf \scriptscriptfont\bffam\seventeenbf \def\ptt{\fam\ttfam\twentyfourtt\def\@currfont{\tt}}% \textfont\ttfam\twentyfourtt \scriptfont\ttfam\twentytt \scriptscriptfont\ttfam\seventeentt \def\psc{\fam\scfam\twentyfoursc\def\@currfont{\sc}}% \textfont\scfam\twentyfoursc \scriptfont\scfam\twentysc \scriptscriptfont\scfam\seventeensc \def\lasy{\fam\lyfam\twentyfourlasy\def\@currfont{\lasy}}% \textfont\lyfam\twentyfourlasy \scriptfont\lyfam\twentylasy \scriptscriptfont\lyfam\seventeenlasy} \def\itwentyfourpt{\def\prm{\fam\z@\itwentyfourrm\def\@currfont{\rm}}% \textfont\z@\itwentyfourrm \scriptfont\z@\itwentyrm \scriptscriptfont\z@\iseventeenrm \textfont\@ne\itwentyfouri \scriptfont\@ne\itwentyi \scriptscriptfont\@ne\iseventeeni \textfont\tw@\itwentyfoursy \scriptfont\tw@\itwentysy \scriptscriptfont\tw@\iseventeensy \textfont\thr@@\itenex \scriptfont\thr@@\itenex \scriptscriptfont\thr@@\itenex \def\pit{\fam\itfam\itwentyfourit\def\@currfont{\it}}% \textfont\itfam\itwentyfourit \scriptfont\itfam\itwentyit \scriptscriptfont\itfam\iseventeenit \def\pbf{\fam\bffam\itwentyfourbf\def\@currfont{\bf}}% \textfont\bffam\itwentyfourbf \scriptfont\bffam\itwentybf \scriptscriptfont\bffam\iseventeenbf \def\ptt{\fam\ttfam\itwentyfourtt\def\@currfont{\tt}}% \textfont\ttfam\itwentyfourtt \scriptfont\ttfam\itwentytt \scriptscriptfont\ttfam\iseventeentt \def\psc{\fam\scfam\itwentyfoursc\def\@currfont{\sc}}% \textfont\scfam\itwentyfoursc \scriptfont\scfam\itwentysc \scriptscriptfont\scfam\iseventeensc \def\lasy{\fam\lyfam\itwentyfourlasy\def\@currfont{\lasy}}% \textfont\lyfam\itwentyfourlasy \scriptfont\lyfam\itwentylasy \scriptscriptfont\lyfam\iseventeenlasy} \def\twentyninept{\def\prm{\fam\z@\twentyninerm\def\@currfont{\rm}}% \textfont\z@\twentyninerm \scriptfont\z@\twentyfourrm \scriptscriptfont\z@\twentyrm \textfont\@ne\twentyninei \scriptfont\@ne\twentyfouri \scriptscriptfont\@ne\twentyi \textfont\tw@\twentyninesy \scriptfont\tw@\twentyfoursy \scriptscriptfont\tw@\twentysy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\pit{\fam\itfam\twentynineit\def\@currfont{\it}}% \textfont\itfam\twentynineit \scriptfont\itfam\twentyfourit \scriptscriptfont\itfam\twentyit \def\pbf{\fam\bffam\twentyninebf\def\@currfont{\bf}}% \textfont\bffam\twentyninebf \scriptfont\bffam\twentyfourbf \scriptscriptfont\bffam\twentybf \def\ptt{\fam\ttfam\twentyninett\def\@currfont{\tt}}% \textfont\ttfam\twentyninett \scriptfont\ttfam\twentyfourtt \scriptscriptfont\ttfam\twentytt \def\psc{\fam\scfam\twentyninesc\def\@currfont{\sc}}% \textfont\scfam\twentyninesc \scriptfont\scfam\twentyfoursc \scriptscriptfont\scfam\twentysc \def\lasy{\fam\lyfam\twentyninelasy\def\@currfont{\lasy}}% \textfont\lyfam\twentyninelasy \scriptfont\lyfam\twentyfourlasy \scriptscriptfont\lyfam\twentylasy} \def\itwentyninept{\def\prm{\fam\z@\itwentyninerm\def\@currfont{\rm}}% \textfont\z@\itwentyninerm \scriptfont\z@\itwentyfourrm \scriptscriptfont\z@\itwentyrm \textfont\@ne\itwentyninei \scriptfont\@ne\itwentyfouri \scriptscriptfont\@ne\itwentyi \textfont\tw@\itwentyninesy \scriptfont\tw@\itwentyfoursy \scriptscriptfont\tw@\itwentysy \textfont\thr@@\itenex \scriptfont\thr@@\itenex \scriptscriptfont\thr@@\itenex \def\pit{\fam\itfam\itwentynineit\def\@currfont{\it}}% \textfont\itfam\itwentynineit \scriptfont\itfam\itwentyfourit \scriptscriptfont\itfam\itwentyit \def\pbf{\fam\bffam\itwentyninebf\def\@currfont{\bf}}% \textfont\bffam\itwentyninebf \scriptfont\bffam\itwentyfourbf \scriptscriptfont\bffam\itwentybf \def\ptt{\fam\ttfam\itwentyninett\def\@currfont{\tt}}% \textfont\ttfam\itwentyninett \scriptfont\ttfam\itwentyfourtt \scriptscriptfont\ttfam\itwentytt \def\psc{\fam\scfam\itwentyninesc\def\@currfont{\sc}}% \textfont\scfam\itwentyninesc \scriptfont\scfam\itwentyfoursc \scriptscriptfont\scfam\itwentysc \def\lasy{\fam\lyfam\itwentyninelasy\def\@currfont{\lasy}}% \textfont\lyfam\itwentyninelasy \scriptfont\lyfam\itwentyfourlasy \scriptscriptfont\lyfam\itwentylasy} \def\thirtyfourpt{\def\prm{\fam\z@\thirtyfourrm\def\@currfont{\rm}}% \textfont\z@\thirtyfourrm \scriptfont\z@\twentyninerm \scriptscriptfont\z@\twentyfourrm \textfont\@ne\thirtyfouri \scriptfont\@ne\twentyninei \scriptscriptfont\@ne\twentyfouri \textfont\tw@\thirtyfoursy \scriptfont\tw@\twentyninesy \scriptscriptfont\tw@\twentyfoursy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\pit{\fam\itfam\thirtyfourit\def\@currfont{\it}}% \textfont\itfam\thirtyfourit \scriptfont\itfam\twentynineit \scriptscriptfont\itfam\twentyfourit \def\pbf{\fam\bffam\thirtyfourbf\def\@currfont{\bf}}% \textfont\bffam\thirtyfourbf \scriptfont\bffam\twentyninebf \scriptscriptfont\bffam\twentyfourbf \def\ptt{\fam\ttfam\thirtyfourtt\def\@currfont{\tt}}% \textfont\ttfam\thirtyfourtt \scriptfont\ttfam\twentyninett \scriptscriptfont\ttfam\twentyfourtt \def\psc{\fam\scfam\thirtyfoursc\def\@currfont{\sc}}% \textfont\scfam\thirtyfoursc \scriptfont\scfam\twentyninesc \scriptscriptfont\scfam\twentyfoursc \def\lasy{\fam\lyfam\thirtyfourlasy\def\@currfont{\lasy}}% \textfont\lyfam\thirtyfourlasy \scriptfont\lyfam\twentyninelasy \scriptscriptfont\lyfam\twentyfourlasy} \def\ithirtyfourpt{\def\prm{\fam\z@\ithirtyfourrm\def\@currfont{\rm}}% \textfont\z@\ithirtyfourrm \scriptfont\z@\itwentyninerm \scriptscriptfont\z@\itwentyfourrm \textfont\@ne\ithirtyfouri \scriptfont\@ne\itwentyninei \scriptscriptfont\@ne\itwentyfouri \textfont\tw@\ithirtyfoursy \scriptfont\tw@\itwentyninesy \scriptscriptfont\tw@\itwentyfoursy \textfont\thr@@\itenex \scriptfont\thr@@\itenex \scriptscriptfont\thr@@\itenex \def\pit{\fam\itfam\ithirtyfourit\def\@currfont{\it}}% \textfont\itfam\ithirtyfourit \scriptfont\itfam\itwentynineit \scriptscriptfont\itfam\itwentyfourit \def\pbf{\fam\bffam\ithirtyfourbf\def\@currfont{\bf}}% \textfont\bffam\ithirtyfourbf \scriptfont\bffam\itwentyninebf \scriptscriptfont\bffam\itwentyfourbf \def\ptt{\fam\ttfam\ithirtyfourtt\def\@currfont{\tt}}% \textfont\ttfam\ithirtyfourtt \scriptfont\ttfam\itwentyninett \scriptscriptfont\ttfam\itwentyfourtt \def\psc{\fam\scfam\ithirtyfoursc\def\@currfont{\sc}}% \textfont\scfam\ithirtyfoursc \scriptfont\scfam\itwentyninesc \scriptscriptfont\scfam\itwentyfoursc \def\lasy{\fam\lyfam\ithirtyfourlasy\def\@currfont{\lasy}}% \textfont\lyfam\ithirtyfourlasy \scriptfont\lyfam\itwentyninelasy \scriptscriptfont\lyfam\itwentyfourlasy} \def\fortyonept{\thirtyfourpt\def\prm{\fam\z@\fortyonerm\def\@currfont{\rm}}% \textfont\z@\fortyonerm \scriptfont\z@\twentyninerm \scriptscriptfont\z@\twentyfourrm} \def\ifortyonept{\ithirtyfourpt \def\prm{\fam\z@\ifortyonerm\def\@currfont{\rm}}% \textfont\z@\ifortyonerm \scriptfont\z@\itwentyninerm \scriptscriptfont\z@\itwentyfourrm} % Definitions of math operators added by LaTeX \mathchardef\mho"0A30 \mathchardef\Join"3A31 \mathchardef\Box"0A32 \mathchardef\Diamond"0A33 \mathchardef\leadsto"3A3B \mathchardef\sqsubset"3A3C \mathchardef\sqsupset"3A3D \def\lhd{\mathbin{< \hbox to -.43em{}\if@visible \hbox{\vrule \@width .065em \@height .55em \@depth .05em}\else \hbox{\hskip .065em \vrule \@width \z@ \@height .55em \@depth .05em} \fi\hbox to .2em{}}} \def\rhd{\mathbin{\hbox to .3em{}\if@visible \hbox{\vrule \@width .065em \@height .55em \@depth .05em}\else \hbox{\hskip .065em \vrule \@width \z@ \@height .55em \@depth .05em}\fi \hbox to -.43em{}>}} \def\unlhd{\mathbin{\leq \hbox to -.43em{}\if@visible \hbox{\vrule \@width .065em \@height .63em \@depth -.08em}\else \hbox{\hskip .065em \vrule \@width \z@ \@height .63em \@depth -.08em}\fi \hbox to .2em{}}} \def\unrhd{\mathbin{ \hbox to .3em{}\if@visible \hbox{\vrule \@width .065em \@height .63em \@depth -.08em}\else \hbox{\hskip .065em \vrule \@width \z@ \@height .63em \@depth -.08em}\fi \hbox to -.43em{}\geq}} \endinput latex209-25.may.1992.orig/general/lfonts.tex100664 144 144 114504 5161754600 17624 0ustar nakaharastaff% File LFONTS - Version of 25 November 1991 % % This version of LFONTS.TEX is for the CMR fonts. It was converted % from the AMR version by David Fuchs on 18 December 1985. % And corrected on 11 Nov 1986 by Leslie Lamport. % Last vestige of AMR fonts removed 3 Mar 89 by Leslie Lamport. % Added \endinput 10 Oct 91 by RmS. % Added some \relax in front of \if's 25 Nov 91 by RmS. % This file needs to be customized for the fonts available at a particular % site. There are three places where changes need to be made. They % can be found by searching this file for the string FONT-CUSTOMIZING. % % FONT CONVENTIONS % % A TYPESTYLE COMMAND is something like \it that defines a type style. % Each style command \xx is defined to be \protect\pxx, where % \pxx is defined to choose the correct font for the current size. % This allows style commands to appear in 'unsafe' arguments where % protection is required. % % A SIZE COMMAND is something like \normalsize that defines a type size. % It is defined by the document style. However, \normalsize is handled % somewhat differently because it is called so often--e.g., on every % page by the output routine. The document style defines \@normalsize % instead of \normalsize. % % A ONE-SIZE typestyle is one that exists only in the \normalsize size. % % A FONT-SIZE COMMAND is one that defines \textfont, \scriptfont and % \scriptscriptfont for the font families corresponding to preloaded fonts, % as well as the typestyle commands for the preloaded fonts. Each % font-size command has an associated @fontsize command, having the same % name except for an '@' at the front. All font-size commands are defined % in LFONTS. The naming convention is that a fifteenpt font has a font-size % name \xvpt, and so on. % % Each size command \SIZE executes the command % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE % which does the following. % 0. Executes \@nomath\SIZE to issue warning if in math mode. % 1. \let \@currsize = \SIZE % 2. Sets \strutbox to a strut of height .7 * BASELINESKIP and % depth .3 * BASELINESKIP % % Note: Charles Karney observed that step 2 is useless, since the % \FONTSIZE command executed in step 4 resets \strutbox using % the actual baselineskip, which is \baselinestretch * BASELINESKIP. % Some day, this step may get removed. (Note made 28 Feb 89) % % 3. Sets \baselineskip to \baselinestretch * BASELINESKIP % and % 4. Calls \FONTSIZE % 5. Executes the \@FONTSIZE command. % It should then define all the typestyle commands not defined by the font-size % command, except for the one-size type styles. A typestyle command for which % the corresponding font exists but is not preloaded is defined to expand to a % \@getfont command. A typestyle whose font does not exist is defined to % expand to a \@subfont command. % % A one-size typestyle whose font is not preloaded is defined to expand to % a \@onesizefont command. % % \em is defined to be \it inside an unslanted style and \rm inside a % slanted style. An \em command in a section title will produce a \pem % command in the table of contents. % \def\em{\protect\pem{}} \def\pem{\relax\ifdim \fontdimen\@ne\font >\z@ \rm \else \it \fi} \def\normalsize{\relax\ifx\@currsize\normalsize \rm \else \@normalsize\fi} % \load{SIZE}{STYLE} : Solves anomaly of loaded-on-demand font % used for first time in math mode. Give this command outside math % mode, before formula using it for first time. \def\load#1#2{\let\@tempa\@currsize \let\@currsize\relax #1#2\@tempa} % \newfont{\CMD}{FONT} defines \CMD to be the font FONT. % It is equivalent to \font \CMD = FONT % \symbol{NUM} == \char NUM \def\newfont#1#2{\@ifdefinable #1{\font #1=#2\relax}} \def\symbol#1{\char #1\relax} % \@getfont \STYLE \FAM \@FONTSIZE{LOADING.INFO} % \STYLE = style command % \FAM = a control sequence defined by \newfam\FAM % \@FONTSIZE = the @fontsize command for the current size. % LOADING.INFO = information needed to load the font--e.g., % cmtti10 \magstep 2 % Does the following, where \FONTNAME denotes a new unique, untypeable % font name: % 1. Executes \font \FONTNAME = LOADING.INFO % 2. Appends '\textfont FAM \FONTNAME \def\STYLE{\fam \FAM \FONTNAME}' % to the definition of \@FONTSIZE. % 3. Executes \@FONTSIZE \STYLE. % % \@nohyphens\STYLE\@FONTSIZE % Used right after \@getfont to set \hyphenchar of the new font to -1, % thereby prohibiting hyphenation. It is used with \tt fonts. % (\@nohyphens was added on 12/18/85) % % \@subfont \STYLE \REPSTYLE % \STYLE, \REPSTYLE = type style commands. % Types warning message and defines uses \REPSTYLE. % % \@onesizefont \STYLE {LOADING.INFO} % Defines \STYLE to be a typestyle that exists only for the \normalsize % size. It produces the font specified by LOADING.INFO % % \@addfontinfo\@FONTSIZE{DEFS} % Expands DEFS and adds to the definition of \@FONTSIZE. Items that should % not be expanded should be protected with \@prtct---except no protection % is needed for '\def\foo', only for the contents of the definition. % % \@nomath\CS : Types a warning '\CS used in math mode' if encountered % in math mode. % Remove \outer from definition of \newfam \def\newfam{\alloc@8\fam\chardef\sixt@@n} \def\@setsize#1#2#3#4{\@nomath#1\let\@currsize#1\baselineskip #2\setbox\strutbox\hbox{\vrule height.7\baselineskip depth.3\baselineskip width\z@}\baselineskip\baselinestretch\baselineskip \normalbaselineskip\baselineskip#3#4} \newif\if@bold \let\@prtct=\relax \def\@addfontinfo#1#2{{\def\@prtct{\noexpand\@prtct\noexpand}\def\def{\noexpand \def\noexpand}\xdef#1{#1#2}}} \def\@getfont#1#2#3#4{\@ifundefined{\string #1\string #3}{\global\expandafter \font \csname \string #1\string #3\endcsname #4\relax \@addfontinfo#3{\textfont #2\csname \string #1\string #3\endcsname \scriptfont #2\csname \string #1\string #3\endcsname \scriptscriptfont #2\csname \string #1\string #3\endcsname \def#1{\fam #2\csname\string #1\string #3\endcsname}}}{}#3#1} \def\@nohyphens#1#2{\global\expandafter \hyphenchar\csname \string #1\string #2\endcsname \m@ne} \def\@subfont#1#2{\@warning{No \string#1\space typeface in this size, using \string#2}#2} \def\@onesizefont#1#2{\expandafter\newfam\csname fm\string#1\endcsname \global\expandafter\font\csname ft\string#1\endcsname #2\relax \gdef#1{\relax\ifx \@currsize\normalsize \@ftfam#1\else \@warning{Typeface \string#1\space available only in \string\normalsize, using \string\rm}\gdef #1{\relax\ifx \@currsize\normalsize \textfont\@fontfam#1 \scriptfont\@fontfam#1 \scriptscriptfont \@fontfam#1\@ftfam#1\else \rm\fi}#1\fi}#1} \def\@ftfam#1{\fam\csname fm\string#1\endcsname\csname ft\string#1\endcsname} \def\@nomath#1{\relax\ifmmode \@warning{\string#1\space in math mode.}\fi} \def\@nomathbold{\relax\ifmmode \@warning{\string\mathbold\space in math mode.}\fi} % The following definitions save token space. E.g., using \@height % instead of height saves 5 tokens at the cost in time of one macro % expansion. \def\@height{height} \def\@depth{depth} \def\@width{width} \def\@magscale#1{ scaled \magstep #1} \def\@halfmag{ scaled \magstephalf} \def\@ptscale#1{ scaled #100} %% FONT-CUSTOMIZING: The following \font commands define the %% preloaded LaTeX fonts. Font names should be changed to cause %% different fonts to be loaded in place of these particular AMR fonts. %% \font commands should be added or deleted to change which fonts %% are preloaded. % five point \font\fivrm = cmr5 % roman \font\fivmi = cmmi5 % math italic \skewchar\fivmi ='177 % for placement of accents %\font\fivmib = cmmib10 \@ptscale5 % bold math italic \font\fivsy = cmsy5 % math symbols \skewchar\fivsy ='60 % for placement of math accents %\font\fivsyb = cmbsy10 \@ptscale5 % bold math symbols %\font\fivit = cmti7 scaled 714 % text italic %\font\fivsl = cmsl10 \@ptscale5 % slanted %\font\fivbf = cmbx7 scaled 714 % extended bold %\font\fivbfs = cmbxsl10\@ptscale5 % extended bold slanted %\font\fivtt = cmtt10 \@ptscale5 % typewriter %\font\fivtti = cmitt10 \@ptscale5 % italic typewriter %\font\fivtts = cmsltt10\@ptscale5 % slanted typewriter %\font\fivsf = cmss10 \@ptscale5 % sans serif %\font\fivsfi = cmssi10 \@ptscale5 % italic sans serif %\font\fivsfb = cmssbx10\@ptscale5 % bold sans serif %\font\fivsc = cmcsc10 \@ptscale5 % small caps \font\fivly = lasy5 % LaTeX symbols %\font\fivlyb = lasyb10 \@ptscale5 % LaTeX symbols %\font\fivuit = cmu10 \@ptscale5 % unslanted italic % six point \font\sixrm = cmr6 % roman \font\sixmi = cmmi6 % math italic \skewchar\sixmi ='177 % for placement of accents %\font\sixmib = cmmib10 \@ptscale6 % bold math italic \font\sixsy = cmsy6 % math symbols \skewchar\sixsy ='60 % for placement of math accents %\font\sixsyb = cmbsy10 \@ptscale6 % bold math symbols %\font\sixit = cmti7 scaled 857 % text italic %\font\sixsl = cmsl10 \@ptscale6 % slanted %\font\sixbf = cmbx7 scaled 857 % extended bold %\font\sixbfs = cmbxsl10\@ptscale6 % extended bold slanted %\font\sixtt = cmtt10 \@ptscale6 % typewriter %\font\sixtti = cmitt10 \@ptscale6 % italic typewriter %\font\sixtts = cmsltt10\@ptscale6 % slanted typewriter %\font\sixsf = cmss10 \@ptscale6 % sans serif %\font\sixsfi = cmssi10 \@ptscale6 % italic sans serif %\font\sixsfb = cmssbx10\@ptscale6 % bold sans serif %\font\sixsc = cmcsc10 \@ptscale6 % small caps \font\sixly = lasy6 % LaTeX symbols %\font\sixlyb = lasyb10 \@ptscale6 % LaTeX symbols %\font\sixuit = cmu10 \@ptscale6 % unslanted italic % seven point \font\sevrm = cmr7 % roman \font\sevmi = cmmi7 % math italic \skewchar\sevmi ='177 % for placement of accents %\font\sevmib = cmmib10 \@ptscale7 % bold math italic \font\sevsy = cmsy7 % math symbols \skewchar\sevsy ='60 % for placement of math accents %\font\sevsyb = cmbsy10 \@ptscale7 % bold math symbols \font\sevit = cmti7 % text italic %\font\sevsl = cmsl10 \@ptscale7 % slanted %\font\sevbf = cmbx7 % extended bold %\font\sevbfs = cmbxsl10\@ptscale7 % extended bold slanted %\font\sevtt = cmtt10 \@ptscale7 % typewriter %\font\sevtti = cmitt10 \@ptscale7 % italic typewriter %\font\sevtts = cmsltt10\@ptscale7 % slanted typewriter %\font\sevsf = cmss10 \@ptscale7 % sans serif %\font\sevsfi = cmssi10 \@ptscale7 % italic sans serif %\font\sevsfb = cmssbx10\@ptscale7 % bold sans serif %\font\sevsc = cmcsc10 \@ptscale7 % small caps \font\sevly = lasy7 % LaTeX symbols %\font\sevlyb = lasyb10 \@ptscale7 % LaTeX symbols %\font\sevuit = cmu10 \@ptscale7 % unslanted italic % eight point \font\egtrm = cmr8 % roman \font\egtmi = cmmi8 % math italic \skewchar\egtmi ='177 % for placement of accents %\font\egtmib = cmmib10 \@ptscale8 % bold math italic \font\egtsy = cmsy8 % math symbols \skewchar\egtsy ='60 % for placement of math accents %\font\egtsyb = cmbsy10 \@ptscale8 % bold math symbols \font\egtit = cmti8 % text italic %\font\egtsl = cmsl8 % slanted %\font\egtbf = cmbx8 % extended bold %\font\egtbfs = cmbxsl10\@ptscale8 % extended bold slanted %\font\egttt = cmtt8 % typewriter %\font\egttti = cmitt10 \@ptscale8 % italic typewriter %\font\egttts = cmsltt10\@ptscale8 % slanted typewriter %\font\egtsf = cmss10 \@ptscale8 % sans serif %\font\egtsfi = cmssi10 \@ptscale8 % italic sans serif %\font\egtsfb = cmssbx10\@ptscale8 % bold sans serif %\font\egtsc = cmcsc10 \@ptscale8 % small caps \font\egtly = lasy8 % LaTeX symbols %\font\egtlyb = lasyb10 \@ptscale8 % LaTeX symbols %\font\egtuit = cmu10 \@ptscale8 % unslanted italic % nine point \font\ninrm = cmr9 % roman \font\ninmi = cmmi9 % math italic \skewchar\ninmi ='177 % for placement of accents %\font\ninmib = cmmib10 \@ptscale9 % bold math italic \font\ninsy = cmsy9 % math symbols \skewchar\ninsy ='60 % for placement of math accents %\font\ninsyb = cmbsy10 \@ptscale9 % bold math symbols \font\ninit = cmti9 % text italic %\font\ninsl = cmsl9 % slanted \font\ninbf = cmbx9 % extended bold %\font\ninbfs = cmbxsl10\@ptscale9 % extended bold slanted \font\nintt = cmtt9 % typewriter \hyphenchar\nintt = -1 % suppress hyphenation in \tt font %\font\nintti = cmitt10 \@ptscale9 % italic typewriter %\font\nintts = cmsltt10\@ptscale9 % slanted typewriter %\font\ninsf = cmss10 \@ptscale9 % sans serif %\font\ninsfi = cmssi10 \@ptscale9 % italic sans serif %\font\ninsfb = cmssbx10\@ptscale9 % bold sans serif %\font\ninsc = cmcsc10 \@ptscale9 % small caps \font\ninly = lasy9 % LaTeX symbols %\font\ninlyb = lasyb10 \@ptscale9 % LaTeX symbols %\font\ninuit = cmu10 \@ptscale9 % unslanted italic % ten point \font\tenrm = cmr10 % roman \font\tenmi = cmmi10 % math italic \skewchar\tenmi ='177 % for placement of accents %\font\tenmib = cmmib10 % bold math italic \font\tensy = cmsy10 % math symbols \skewchar\tensy ='60 % for placement of math accents %\font\tensyb = cmbsy10 % bold symbols \font\tenit = cmti10 % text italic \font\tensl = cmsl10 % slanted \font\tenbf = cmbx10 % extended bold %\font\tenbfs = cmbxsl10 % extended bold slanted \font\tentt = cmtt10 % typewriter \hyphenchar\tentt = -1 % suppress hyphenation in \tt font %\font\tentti = cmitt10 % italic typewriter %\font\tentts = cmsltt10 % slanted typewriter \font\tensf = cmss10 % sans serif %\font\tensfi = cmssi10 % italic sans serif %\font\tensfb = cmssbx10 % bold sans serif %\font\tensc = cmcsc10 % small caps \font\tenly = lasy10 % LaTeX symbols %\font\tenlyb = lasyb10 % bold LaTeX symbols %\font\tenuit = cmu10 % unslanted italic % eleven point \font\elvrm = cmr10 \@halfmag % roman \font\elvmi = cmmi10 \@halfmag % math italic \skewchar\elvmi ='177 % for placement of accents %\font\elvmib = cmmib10 \@halfmag % bold math italic \font\elvsy = cmsy10 \@halfmag % math symbols \skewchar\elvsy ='60 % for placement of math accents %\font\elvsyb = cmbsy10 \@halfmag % bold symbols \font\elvit = cmti10 \@halfmag % text italic \font\elvsl = cmsl10 \@halfmag % slanted \font\elvbf = cmbx10 \@halfmag % exelvded bold %\font\elvbfs = cmbxsl10 \@halfmag % exelvded bold slanted \font\elvtt = cmtt10 \@halfmag % typewriter \hyphenchar\elvtt = -1 % suppress hyphenation in \tt font %\font\elvtti = cmitt10 \@halfmag % italic typewriter %\font\elvtts = cmsltt10 \@halfmag % slanted typewriter \font\elvsf = cmss10 \@halfmag % sans serif %\font\elvsfi = cmssi10 \@halfmag % italic sans serif %\font\elvsfb = cmssbx10 \@halfmag % bold sans serif %\font\elvsc = cmcsc10 \@halfmag % small caps \font\elvly = lasy10 \@halfmag % LaTeX symbols %\font\elvlyb = lasyb10 \@halfmag % bold LaTeX symbols %\font\elvuit = cmu10 \@halfmag % unslanted italic % twelve point \font\twlrm = cmr12 % roman \font\twlmi = cmmi12 % math italic \skewchar\twlmi ='177 % for placement of accents %\font\twlmib = cmmib10 \@magscale1 % bold math italic \font\twlsy = cmsy10 \@magscale1 % math symbols \skewchar\twlsy ='60 % for placement of math accents %\font\twlsyb = cmbsy10 \@magscale1 % bold symbols \font\twlit = cmti12 % text italic \font\twlsl = cmsl12 % slanted \font\twlbf = cmbx12 % extended bold %\font\twlbfs = cmbxsl10 \@magscale1 % extended bold slanted \font\twltt = cmtt12 % typewriter \hyphenchar\twltt = -1 % suppress hyphenation in \tt font %\font\twltti = cmitt10 \@magscale1 % italic typewriter %\font\twltts = cmsltt10 \@magscale1 % slanted typewriter \font\twlsf = cmss12 % sans serif %\font\twlsfi = cmssi10 \@magscale1 % italic sans serif %\font\twlsfb = cmssbx10 \@magscale1 % bold sans serif %\font\twlsc = cmcsc10 \@magscale1 % small caps \font\twlly = lasy10 \@magscale1 % LaTeX symbols %\font\twllyb = lasyb10 \@magscale1 % bold LaTeX symbols %\font\twluit = cmu10 \@magscale1 % unslanted italic % fourteen point \font\frtnrm = cmr10 \@magscale2 % roman \font\frtnmi = cmmi10 \@magscale2 % math italic \skewchar\frtnmi ='177 % for placement of accents %\font\frtnmib = cmmib10 \@magscale2 % bold math italic \font\frtnsy = cmsy10 \@magscale2 % math symbols \skewchar\frtnsy ='60 % for placement of math accents %\font\frtnsyb = cmbsy10 \@magscale2 % bold symbols %\font\frtnit = cmti10 \@magscale2 % text italic %\font\frtnsl = cmsl10 \@magscale2 % slanted \font\frtnbf = cmbx10 \@magscale2 % extended bold %\font\frtnbfs = cmbxsl10 \@magscale2 % extended bold slanted %\font\frtntt = cmtt10 \@magscale2 % typewriter %\font\frtntti = cmitt10 \@magscale2 % italic typewriter %\font\frtntts = cmsltt10 \@magscale2 % slanted typewriter %\font\frtnsf = cmss10 \@magscale2 % sans serif %\font\frtnsfi = cmssi10 \@magscale2 % italic sans serif %\font\frtnsfb = cmssbx10 \@magscale2 % bold sans serif %\font\frtnsc = cmcsc10 \@magscale2 % small caps \font\frtnly = lasy10 \@magscale2 % LaTeX symbols %\font\frtnlyb = lasyb10 \@magscale2 % bold LaTeX symbols %\font\frtnuit = cmu10 \@magscale2 % unslanted italic % seventeen point \font\svtnrm = cmr17 % roman \font\svtnmi = cmmi10 \@magscale3 % math italic \skewchar\svtnmi ='177 % for placement of accents %\font\svtnmib = cmmib10 \@magscale3 % bold math italic \font\svtnsy = cmsy10 \@magscale3 % math symbols \skewchar\svtnsy ='60 % for placement of math accents %\font\svtnsyb = cmbsy10 \@magscale3 % bold symbols %\font\svtnit = cmti10 \@magscale3 % text italic %\font\svtnsl = cmsl10 \@magscale3 % slanted \font\svtnbf = cmbx10 \@magscale3 % extended bold %\font\svtnbfs = cmbxsl10 \@magscale3 % extended bold slanted %\font\svtntt = cmtt10 \@magscale3 % typewriter %\font\svtntti = cmitt10 \@magscale3 % italic typewriter %\font\svtntts = cmsltt10 \@magscale3 % slanted typewriter %\font\svtnsf = cmss10 \@magscale3 % sans serif %\font\svtnsfi = cmssi10 \@magscale3 % italic sans serif %\font\svtnsfb = cmssbx10 \@magscale3 % bold sans serif %\font\svtnsc = cmcsc10 \@magscale3 % small caps \font\svtnly = lasy10 \@magscale3 % LaTeX symbols %\font\svtnlyb = lasyb10 \@magscale3 % bold LaTeX symbols %\font\svtnuit = cmu10 \@magscale3 % unslanted italic % twenty point \font\twtyrm = cmr10 \@magscale4 % roman \font\twtymi = cmmi10 \@magscale4 % math italic \skewchar\twtymi ='177 % for placement of accents %\font\twtymib = cmmib10 \@magscale4 % bold math italic \font\twtysy = cmsy10 \@magscale4 % math symbols \skewchar\twtysy ='60 % for placement of math accents %\font\twtysyb = cmbsy10 \@magscale4 % bold symbols %\font\twtyit = cmti10 \@magscale4 % text italic %\font\twtysl = cmsl10 \@magscale4 % slanted %\font\twtybf = cmbx10 \@magscale4 % extended bold %\font\twtybfs = cmbxsl10 \@magscale4 % extended bold slanted %\font\twtytt = cmtt10 \@magscale4 % typewriter %\font\twtytti = cmitt10 \@magscale4 % italic typewriter %\font\twtytts = cmsltt10 \@magscale4 % slanted typewriter %\font\twtysf = cmss10 \@magscale4 % sans serif %\font\twtysfi = cmssi10 \@magscale4 % italic sans serif %\font\twtysfb = cmssbx10 \@magscale4 % bold sans serif %\font\twtysc = cmcsc10 \@magscale4 % small caps \font\twtyly = lasy10 \@magscale4 % LaTeX symbols %\font\twtylyb = lasyb10 \@magscale4 % bold LaTeX symbols %\font\twtyuit = cmu10 \@magscale4 % unslanted italic % twenty-five point \font\twfvrm = cmr10 \@magscale5 % roman %\font\twfvmi = cmmi10 \@magscale5 % math italic %\font\twfvmib = cmmib10 \@magscale5 % bold math italic %\font\twfvsy = cmsy10 \@magscale5 % math symbols %\font\twfvsyb = cmbsy10 \@magscale5 % bold symbols %\font\twfvit = cmti10 \@magscale5 % text italic %\font\twfvsl = cmsl10 \@magscale5 % slanted %\font\twfvbf = cmbx10 \@magscale5 % extended bold %\font\twfvbfs = cmbxsl10 \@magscale5 % extended bold slanted %\font\twfvtt = cmtt10 \@magscale5 % typewriter %\font\twfvtti = cmitt10 \@magscale5 % italic typewriter %\font\twfvtts = cmsltt10 \@magscale5 % slanted typewriter %\font\twfvsf = cmss10 \@magscale5 % sans serif %\font\twfvsfi = cmssi10 \@magscale5 % italic sans serif %\font\twfvsfb = cmssbx10 \@magscale5 % bold sans serif %\font\twfvsc = cmcsc10 \@magscale5 % small caps %\font\twfvly = lasy10 \@magscale5 % LaTeX symbols %\font\twfvlyb = lasyb10 \@magscale5 % bold LaTeX symbols %\font\twfvuit = cmu10 \@magscale5 % unslanted italic % Math extension \font\tenex = cmex10 % line & circle fonts \font\tenln = line10 \font\tenlnw = linew10 \font\tencirc = lcircle10 % 21 Nov 89 : circle10 -> lcircle10 \font\tencircw = lcirclew10 % 21 Nov 89 : circlew10 -> lcirclew10 % Change made 6 May 86: `\@warning' replaced by `\immediate\write 15' % since it's not defined when lfonts.tex is read by lplain.tex. % \ifnum\fontdimen8\tenln=\fontdimen8\tencirc \else \immediate\write 15{Incompatible thin line and circle fonts}\fi \ifnum\fontdimen8\tenlnw=\fontdimen8\tencircw \else \immediate\write 15{Incompatible thick line and circle fonts}\fi % protected font names \def\rm{\protect\prm} \def\it{\protect\pit} \def\bf{\protect\pbf} \def\sl{\protect\psl} \def\sf{\protect\psf} \def\sc{\protect\psc} \def\tt{\protect\ptt} %% FONT-CUSTOMIZING: The following definitions define certain commands %% to be abbreviations for certain font names. These commands are used %% below in \@getfont commands, which load the loaded-on-demand fonts. %% This is done only to save space. To change the fonts that are loaded %% on demand, one can either change these definitions or else change %% the arguments of the \@getfont commands. %% \def\@mbi{cmmib10} \def\@mbsy{cmbsy10} \def\@mcsc{cmcsc10} \def\@mss{cmss10} \def\@lasyb{lasyb10} % families \newfam\itfam % \it is family 4 \newfam\slfam % \sl is family 5 \newfam\bffam % \bf is family 6 \newfam\ttfam % \tt is family 7 \newfam\sffam % \sf is family 8 \newfam\scfam % \sc is family 9 \newfam\lyfam % \ly is family 10 \def\cal{\fam\tw@} \def\mit{\fam\@ne} \def\@setstrut{\setbox\strutbox=\hbox{\vrule \@height .7\baselineskip \@depth .3\baselineskip \@width\z@}} %% FONT-CUSTOMIZING: The commands \vpt, \vipt, ... , \xxvpt perform all %% the declarations needed to change the type size to 5pt, 6pt, ... , %% 25pt. To see how this works, consider the definition of \viipt, %% which determines the fonts used in a 7pt type size. The command %% \def\pit{\fam\itfam\sevit} %% means that the \it command causes the preloaded \sevit font to %% be used--this font was defined earlier with a \font\sevit... %% command. The commands %% \textfont\itfam\sevit %% \scriptfont\itfam\sevit %% \scriptscriptfont\itfam\sevit %% tell TeX to use the \sevit font for all three math-mode sizes %% (text, script, and scriptscript) for the 7pt size. %% The fonts appearing in these commands must be preloaded. %% %% The command %% \def\pbf{\@getfont\pbf\bffam\@viipt{ambx7}} %% declares \bf to use a loaded-on-demand font--namely, the font %% ambx7. %% %% The command %% \def\ptt{\@subfont\tt\rm} %% declares that the \tt font is unavailable in the 7pt size, so %% the \rm font is used instead. (The substituted type style should %% correspond to a preloaded size.) \def\vpt{\textfont\z@\fivrm \scriptfont\z@\fivrm \scriptscriptfont\z@\fivrm \textfont\@ne\fivmi \scriptfont\@ne\fivmi \scriptscriptfont\@ne\fivmi \textfont\tw@\fivsy \scriptfont\tw@\fivsy \scriptscriptfont\tw@\fivsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\prm{\fam\z@\fivrm}% \def\unboldmath{\everymath{}\everydisplay{}\@nomath \unboldmath\fam\@ne\@boldfalse}\@boldfalse \def\boldmath{\@subfont\boldmath\unboldmath}% \def\pit{\@subfont\it\rm}% \def\psl{\@subfont\sl\rm}% \def\pbf{\@getfont\pbf\bffam\@vpt{cmbx5}}% \def\ptt{\@subfont\tt\rm}% \def\psf{\@subfont\sf\rm}% \def\psc{\@subfont\sc\rm}% \def\ly{\fam\lyfam\fivly}\textfont\lyfam\fivly \scriptfont\lyfam\fivly \scriptscriptfont\lyfam\fivly \@setstrut\rm} \def\@vpt{} \def\vipt{\textfont\z@\sixrm \scriptfont\z@\sixrm \scriptscriptfont\z@\sixrm \textfont\@ne\sixmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\sixmi \textfont\tw@\sixsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\sixsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\prm{\fam\z@\sixrm}% \def\unboldmath{\everymath{}\everydisplay{}\@nomath \unboldmath\@boldfalse}\@boldfalse \def\boldmath{\@subfont\boldmath\unboldmath}% \def\pit{\@subfont\it\rm}% \def\psl{\@subfont\sl\rm}% \def\pbf{\@getfont\pbf\bffam\@vipt{cmbx6}}% \def\ptt{\@subfont\tt\rm}% \def\psf{\@subfont\sf\rm}% \def\psc{\@subfont\sc\rm}% \def\ly{\fam\lyfam\sixly}\textfont\lyfam\sixly \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\sixly \@setstrut\rm} \def\@vipt{} \def\viipt{\textfont\z@\sevrm \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm \textfont\@ne\sevmi \scriptfont\@ne\fivmi \scriptscriptfont\@ne\fivmi \textfont\tw@\sevsy \scriptfont\tw@\fivsy \scriptscriptfont\tw@\fivsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\prm{\fam\z@\sevrm}% \def\unboldmath{\everymath{}\everydisplay{}\@nomath \unboldmath\@boldfalse}\@boldfalse \def\boldmath{\@subfont\boldmath\unboldmath}% \def\pit{\fam\itfam\sevit}\textfont\itfam\sevit \scriptfont\itfam\sevit \scriptscriptfont\itfam\sevit \def\psl{\@subfont\sl\it}% \def\pbf{\@getfont\pbf\bffam\@viipt{cmbx7}}% \def\ptt{\@subfont\tt\rm}% \def\psf{\@subfont\sf\rm}% \def\psc{\@subfont\sc\rm}% \def\ly{\fam\lyfam\sevly}\textfont\lyfam\sevly \scriptfont\lyfam\fivly \scriptscriptfont\lyfam\fivly \@setstrut \rm} \def\@viipt{} \def\viiipt{\textfont\z@\egtrm \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm \textfont\@ne\egtmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\fivmi \textfont\tw@\egtsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\prm{\fam\z@\egtrm}% \def\unboldmath{\everymath{}\everydisplay{}\@nomath \unboldmath\@boldfalse}\@boldfalse \def\boldmath{\@subfont\boldmath\unboldmath}% \def\pit{\fam\itfam\egtit}\textfont\itfam\egtit \scriptfont\itfam\sevit \scriptscriptfont\itfam\sevit \def\psl{\@getfont\psl\slfam\@viiipt{cmsl8}}% \def\pbf{\@getfont\pbf\bffam\@viiipt{cmbx8}}% \def\ptt{\@getfont\ptt\ttfam\@viiipt{cmtt8}\@nohyphens\ptt\@viiipt}% \def\psf{\@getfont\psf\sffam\@viiipt{cmss8}}% \def\psc{\@getfont\psc\scfam\@viiipt{\@mcsc \@ptscale8}}% \def\ly{\fam\lyfam\egtly}\textfont\lyfam\egtly \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\fivly \@setstrut \rm} \def\@viiipt{} \def\ixpt{\textfont\z@\ninrm \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm \textfont\@ne\ninmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\fivmi \textfont\tw@\ninsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\prm{\fam\z@\ninrm}% \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \@boldfalse}\@boldfalse \def\boldmath{\@subfont\boldmath\unboldmath}% \def\pit{\fam\itfam\ninit}\textfont\itfam\ninit \scriptfont\itfam\sevit \scriptscriptfont\itfam\sevit \def\psl{\@getfont\psl\slfam\@ixpt{cmsl9}}% \def\pbf{\fam\bffam\ninbf}\textfont\bffam\ninbf \scriptfont\bffam\ninbf \scriptscriptfont\bffam\ninbf \def\ptt{\fam\ttfam\nintt}\textfont\ttfam\nintt \scriptfont\ttfam\nintt \scriptscriptfont\ttfam\nintt \def\psf{\@getfont\psf\sffam\@ixpt{cmss9}}% \def\psc{\@getfont\psc\scfam\@ixpt{\@mcsc \@ptscale9}}% \def\ly{\fam\lyfam\ninly}\textfont\lyfam\ninly \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\fivly \@setstrut \rm} \def\@ixpt{} \def\xpt{\textfont\z@\tenrm \scriptfont\z@\sevrm \scriptscriptfont\z@\fivrm \textfont\@ne\tenmi \scriptfont\@ne\sevmi \scriptscriptfont\@ne\fivmi \textfont\tw@\tensy \scriptfont\tw@\sevsy \scriptscriptfont\tw@\fivsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \textfont\@ne\tenmi \textfont\tw@\tensy \textfont\lyfam\tenly \@boldfalse}\@boldfalse \def\boldmath{\@ifundefined{tenmib}{\global\font\tenmib\@mbi \global\font\tensyb\@mbsy \global\font\tenlyb\@lasyb\relax\@addfontinfo\@xpt {\def\boldmath{\everymath{\mit}\everydisplay{\mit}\@prtct\@nomathbold \textfont\@ne\tenmib \textfont\tw@\tensyb \textfont\lyfam\tenlyb \@prtct\@boldtrue}}}{}\@xpt\boldmath}% \def\prm{\fam\z@\tenrm}% \def\pit{\fam\itfam\tenit}\textfont\itfam\tenit \scriptfont\itfam\sevit \scriptscriptfont\itfam\sevit \def\psl{\fam\slfam\tensl}\textfont\slfam\tensl \scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl \def\pbf{\fam\bffam\tenbf}\textfont\bffam\tenbf \scriptfont\bffam\tenbf \scriptscriptfont\bffam\tenbf \def\ptt{\fam\ttfam\tentt}\textfont\ttfam\tentt \scriptfont\ttfam\tentt \scriptscriptfont\ttfam\tentt \def\psf{\fam\sffam\tensf}\textfont\sffam\tensf \scriptfont\sffam\tensf \scriptscriptfont\sffam\tensf \def\psc{\@getfont\psc\scfam\@xpt{\@mcsc}}% \def\ly{\fam\lyfam\tenly}\textfont\lyfam\tenly \scriptfont\lyfam\sevly \scriptscriptfont\lyfam\fivly \@setstrut \rm} \def\@xpt{} \def\xipt{\textfont\z@\elvrm \scriptfont\z@\egtrm \scriptscriptfont\z@\sixrm \textfont\@ne\elvmi \scriptfont\@ne\egtmi \scriptscriptfont\@ne\sixmi \textfont\tw@\elvsy \scriptfont\tw@\egtsy \scriptscriptfont\tw@\sixsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \textfont\@ne\elvmi \textfont\tw@\elvsy \textfont\lyfam\elvly \@boldfalse}\@boldfalse \def\boldmath{\@ifundefined{elvmib}{\global\font\elvmib\@mbi\@halfmag \global\font\elvsyb\@mbsy\@halfmag \global\font\elvlyb\@lasyb\@halfmag\relax\@addfontinfo\@xipt {\def\boldmath{\everymath{\mit}\everydisplay{\mit}\@prtct\@nomathbold \textfont\@ne\elvmib \textfont\tw@\elvsyb \textfont\lyfam\elvlyb\@prtct\@boldtrue}}}{}\@xipt\boldmath}% \def\prm{\fam\z@\elvrm}% \def\pit{\fam\itfam\elvit}\textfont\itfam\elvit \scriptfont\itfam\egtit \scriptscriptfont\itfam\sevit \def\psl{\fam\slfam\elvsl}\textfont\slfam\elvsl \scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl \def\pbf{\fam\bffam\elvbf}\textfont\bffam\elvbf \scriptfont\bffam\ninbf \scriptscriptfont\bffam\ninbf \def\ptt{\fam\ttfam\elvtt}\textfont\ttfam\elvtt \scriptfont\ttfam\nintt \scriptscriptfont\ttfam\nintt \def\psf{\fam\sffam\elvsf}\textfont\sffam\elvsf \scriptfont\sffam\tensf \scriptscriptfont\sffam\tensf \def\psc{\@getfont\psc\scfam\@xipt{\@mcsc\@halfmag}}% \def\ly{\fam\lyfam\elvly}\textfont\lyfam\elvly \scriptfont\lyfam\egtly \scriptscriptfont\lyfam\sixly \@setstrut \rm} \def\@xipt{} \def\xiipt{\textfont\z@\twlrm \scriptfont\z@\egtrm \scriptscriptfont\z@\sixrm \textfont\@ne\twlmi \scriptfont\@ne\egtmi \scriptscriptfont\@ne\sixmi \textfont\tw@\twlsy \scriptfont\tw@\egtsy \scriptscriptfont\tw@\sixsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \textfont\@ne\twlmi \textfont\tw@\twlsy \textfont\lyfam\twlly \@boldfalse}\@boldfalse \def\boldmath{\@ifundefined{twlmib}{\global\font\twlmib\@mbi\@magscale1\global \font\twlsyb\@mbsy \@magscale1\global\font \twllyb\@lasyb\@magscale1\relax\@addfontinfo\@xiipt {\def\boldmath{\everymath {\mit}\everydisplay{\mit}\@prtct\@nomathbold \textfont\@ne\twlmib \textfont\tw@\twlsyb \textfont\lyfam\twllyb\@prtct\@boldtrue}}}{}\@xiipt\boldmath}% \def\prm{\fam\z@\twlrm}% \def\pit{\fam\itfam\twlit}\textfont\itfam\twlit \scriptfont\itfam\egtit \scriptscriptfont\itfam\sevit \def\psl{\fam\slfam\twlsl}\textfont\slfam\twlsl \scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl \def\pbf{\fam\bffam\twlbf}\textfont\bffam\twlbf \scriptfont\bffam\ninbf \scriptscriptfont\bffam\ninbf \def\ptt{\fam\ttfam\twltt}\textfont\ttfam\twltt \scriptfont\ttfam\nintt \scriptscriptfont\ttfam\nintt \def\psf{\fam\sffam\twlsf}\textfont\sffam\twlsf \scriptfont\sffam\tensf \scriptscriptfont\sffam\tensf \def\psc{\@getfont\psc\scfam\@xiipt{\@mcsc\@magscale1}}% \def\ly{\fam\lyfam\twlly}\textfont\lyfam\twlly \scriptfont\lyfam\egtly \scriptscriptfont\lyfam\sixly \@setstrut \rm} \def\@xiipt{} \def\xivpt{\textfont\z@\frtnrm \scriptfont\z@\tenrm \scriptscriptfont\z@\sevrm \textfont\@ne\frtnmi \scriptfont\@ne\tenmi \scriptscriptfont\@ne\sevmi \textfont\tw@\frtnsy \scriptfont\tw@\tensy \scriptscriptfont\tw@\sevsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \textfont\@ne\frtnmi \textfont\tw@\frtnsy \textfont\lyfam\frtnly \@boldfalse}\@boldfalse \def\boldmath{\@ifundefined{frtnmib}{\global\font \frtnmib\@mbi\@magscale2\global\font\frtnsyb\@mbsy\@magscale2 \global\font\frtnlyb\@lasyb\@magscale2\relax\@addfontinfo\@xivpt {\def\boldmath{\everymath {\mit}\everydisplay{\mit}\@prtct\@nomathbold \textfont\@ne\frtnmib \textfont\tw@\frtnsyb \textfont\lyfam\frtnlyb\@prtct\@boldtrue}}}{}\@xivpt\boldmath}% \def\prm{\fam\z@\frtnrm}% \def\pit{\@getfont\pit\itfam\@xivpt{cmti10\@magscale2}}% \def\psl{\@getfont\psl\slfam\@xivpt{cmsl10\@magscale2}}% \def\pbf{\fam\bffam\frtnbf}\textfont\bffam\frtnbf \scriptfont\bffam\tenbf \scriptscriptfont\bffam\ninbf \def\ptt{\@getfont\ptt\ttfam\@xivpt{cmtt10\@magscale2}\@nohyphens\ptt\@xivpt}% \def\psf{\@getfont\psf\sffam\@xivpt{\@mss\@magscale2}}% \def\psc{\@getfont\psc\scfam\@xivpt{\@mcsc\@magscale2}}% \def\ly{\fam\lyfam\frtnly}\textfont\lyfam\frtnly \scriptfont\lyfam\tenly \scriptscriptfont\lyfam\sevly \@setstrut \rm} \def\@xivpt{} \def\xviipt{\textfont\z@\svtnrm \scriptfont\z@\twlrm \scriptscriptfont\z@\tenrm \textfont\@ne\svtnmi \scriptfont\@ne\twlmi \scriptscriptfont\@ne\tenmi \textfont\tw@\svtnsy \scriptfont\tw@\twlsy \scriptscriptfont\tw@\tensy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \textfont\@ne\svtnmi \textfont\tw@\svtnsy \textfont\lyfam\svtnly \@boldfalse}\@boldfalse \def\boldmath{\@subfont\boldmath\unboldmath}% \def\prm{\fam\z@\svtnrm}% \def\pit{\@getfont\pit\itfam\@xviipt{cmti10\@magscale3}}% \def\psl{\@getfont\psl\slfam\@xviipt{cmsl10\@magscale3}}% \def\pbf{\fam\bffam\svtnbf}\textfont\bffam\svtnbf \scriptfont\bffam\twlbf \scriptscriptfont\bffam\tenbf \def\ptt{\@getfont\ptt\ttfam\@xviipt{cmtt10\@magscale3}\@nohyphens \ptt\@xviipt}% \def\psf{\@getfont\psf\sffam\@xviipt{cmss17}}% \def\psc{\@getfont\psc\scfam\@xviipt{\@mcsc\@magscale3}}% \def\ly{\fam\lyfam\svtnly}\textfont\lyfam\svtnly \scriptfont\lyfam\twlly \scriptscriptfont\lyfam\tenly \@setstrut \rm} \def\@xviipt{} \def\xxpt{\textfont\z@\twtyrm \scriptfont\z@\frtnrm \scriptscriptfont\z@\twlrm \textfont\@ne\twtymi \scriptfont\@ne\frtnmi \scriptscriptfont\@ne\twlmi \textfont\tw@\twtysy \scriptfont\tw@\frtnsy \scriptscriptfont\tw@\twlsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \textfont\@ne\twtymi \textfont\tw@\twtysy \textfont\lyfam\twtyly \@boldfalse}\@boldfalse \def\boldmath{\@subfont\boldmath\unboldmath}% \def\prm{\fam\z@\twtyrm}% \def\pit{\@getfont\pit\itfam\@xxpt{cmti10\@magscale4}}% \def\psl{\@getfont\psl\slfam\@xxpt{cmsl10\@magscale4}}% \def\pbf{\@getfont\pbf\bffam\@xxpt{cmbx10\@magscale4}}% \def\ptt{\@getfont\ptt\ttfam\@xxpt{cmtt10\@magscale4}\@nohyphens\ptt\@xxpt}% \def\psf{\@getfont\psf\sffam\@xxpt{\@mss\@magscale4}}% \def\psc{\@getfont\psc\scfam\@xxpt{\@mcsc\@magscale4}}% \def\ly{\fam\lyfam\twtyly}\textfont\lyfam\twtyly \scriptfont\lyfam\frtnly \scriptscriptfont\lyfam\twlly \@setstrut \rm} \def\@xxpt{} \def\xxvpt{\textfont\z@\twfvrm \scriptfont\z@\twtyrm \scriptscriptfont\z@\svtnrm \textfont\@ne\twtymi \scriptfont\@ne\twtymi \scriptscriptfont\@ne\svtnmi \textfont\tw@\twtysy \scriptfont\tw@\twtysy \scriptscriptfont\tw@\svtnsy \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath \textfont\@ne\twtymi \textfont\tw@\twtysy \textfont\lyfam\twtyly \@boldfalse}\@boldfalse \def\boldmath{\@subfont\boldmath\unboldmath}% \def\prm{\fam\z@\twfvrm}% \def\pit{\@subfont\it\rm}% \def\psl{\@subfont\sl\rm}% \def\pbf{\@getfont\pbf\bffam\@xxvpt{cmbx10\@magscale5}}% \def\ptt{\@subfont\tt\rm}% \def\psf{\@subfont\sf\rm}% \def\psc{\@subfont\sc\rm}% \def\ly{\fam\lyfam\twtyly}\textfont\lyfam\twtyly \scriptfont\lyfam\twtyly \scriptscriptfont\lyfam\svtnly \@setstrut \rm} \def\@xxvpt{} % SPECIAL LaTeX character definitions % Definitions of math operators added by LaTeX \mathchardef\mho"0A30 \mathchardef\Join"3A31 \mathchardef\Box"0A32 \mathchardef\Diamond"0A33 \mathchardef\leadsto"3A3B \mathchardef\sqsubset"3A3C \mathchardef\sqsupset"3A3D \def\lhd{\mathbin{< \hbox to -.43em{}\hbox{\vrule \@width .065em \@height .55em \@depth .05em}\hbox to .2em{}}} \def\rhd{\mathbin{\hbox to .3em{}\hbox{\vrule \@width .065em \@height .55em \@depth .05em}\hbox to -.43em{}>}} \def\unlhd{\mathbin{\leq \hbox to -.43em{}\hbox {\vrule \@width .065em \@height .63em \@depth -.08em}\hbox to .2em{}}} \def\unrhd{\mathbin{ \hbox to .3em{}\hbox {\vrule \@width .065em \@height .63em \@depth -.08em}\hbox to -.43em{}\geq}} % Definition of \$ to work in italic font (since it produces a pound sterling % sign in the cmit font. \def\${\protect\pdollar} \def\pdollar{{\ifdim \fontdimen\@ne\font >\z@ \sl \fi\char`\$}} % Definition of pound sterling sign. % Modified 10 Apr 89 to work in math mode. \def\pounds{\protect\ppounds} \def\ppounds{\relax\ifmmode\mathchar"424\else{\it \char'44}\fi} % Definition of \copyright changed so it works in other type styles, % and so it is robust \def\copyright{\protect\pcopyright} \def\pcopyright{{\rm\ooalign{\hfil \raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}} \endinput latex209-25.may.1992.orig/general/local.tex100664 144 144 104576 5161754600 17421 0ustar nakaharastaff% local.tex -- released 26 February 1992 % Copyright(c) 1988,1992 by Leslie Lamport % for LaTeX version 2.09 % % This file is used to produce a Local Guide for LaTeX users containing % information specific to a site plus errors and omissions from the LaTeX % manual (published by Addison-Wesley). % % This file may be changed and/or redistributed provided that it is % stated clearly who the author is and to whom questions and complaints % are to be sent. % % The installer of LaTeX at a site is responsible for customizing this % document and providing copies for users. He or she will have to read % the text of this file CAREFULLY to see what must be added, removed, and % changed. % The \contact command is defined to generate the name of the person to % whom questions should be sent. This should be someone at the site. % Most users' questions are easily answered by anyone slightly familiar % with LaTeX or TeX. Don't bother anyone at another site with questions % that can be answered locally. \documentstyle[titlepage]{article} \newcommand{\contact}{Leslie Lamport} \newcommand{\BibTeX}{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} \newcommand\bs{\char '134 } % A backslash character for \tt font \newcommand{\lb}{\char '173 } % A left brace character for \tt font \newcommand{\rb}{\char '175 } % A right brace character for \tt font \title{Using \LaTeX\ at SRC} \author{Leslie Lamport} \date{27 October 1988\\ % Keep this date current For \LaTeX\ Version 2.09} \begin{document} \maketitle \tableofcontents \newpage \LaTeX\ runs on a variety of computers at many different sites. This document tells you how to use \LaTeX\ on the Magic, Lewis, and Clark computers at SRC. It is not about \LaTeX\ itself, which is described by the manual---{\em \LaTeX: A Document Preparation System}, published by Addison-Wesley, available at fine book stores everywhere. If you have a question that you can't answer by reading the manual and this document, ask \contact. He should also be informed of any possible \LaTeX\ bugs or undocumented anomalies. \section{Getting Started} \subsection{Running a Sample File} \label{sec:sample} Before preparing your own documents, you may want to get acquainted with \LaTeX\ by running it on a sample input file. First make your own copy of the file \mbox{\tt sample.tex} by typing the following Ultrix command: \begin{verbatim} cp /usr/local/lib/tex82/sample.tex . \end{verbatim} (You must type the space followed by the period at the end. This and all other Ultrix commands are ended by typing {\em return}.) A copy of the file \mbox{\tt sample.tex} is now in your current directory; you can edit it just like any other file. If you destroy or mess up your copy, typing the above command again gets you a fresh one. Next, run \LaTeX\ on the file \mbox{\tt sample.tex} by typing: \begin{verbatim} latex sample \end{verbatim} When \LaTeX\ has finished, it will have produced the file \mbox{\tt sample.dvi} in your directory. You can print this file by typing the command \begin{verbatim} iptex sample.dvi \end{verbatim} The output will be produced on the Imagen printer, located next to the third floor receptionist's desk. If you want to print \LaTeX\ output on an Apple LaserWriter, see Section~\ref{sec:apple}. After your output has been printed, you can delete \mbox{\tt sample.dvi} by typing \begin{verbatim} rm sample.dvi \end{verbatim} \subsection{Preparing and Running \LaTeX\ on Your Own Files} You must use a text editor to prepare an input file for \LaTeX. The document {\em Welcome to SRC\/} describes the text editors available at SRC. The easiest way to start learning about \LaTeX\ is by examining the file \mbox{\tt small.tex} with your text editor. You can obtain your own copy of this file, in your directory, by typing the command \begin{verbatim} cp /usr/local/lib/tex82/small.tex . \end{verbatim} After you have prepared your file, whose name should have the extension {\tt tex}, you must run it through \LaTeX\ and print the output. Follow the instructions in Section~\ref{sec:sample}, except substitute the first name of your file for ``\mbox{\tt sample}''. Remember to save disk space by deleting the {\tt dvi} file after printing the output. %List the text editors, available, and any special features they have %for producing \LaTeX\ input. Explain how the various text editors %could cause bad characters to appear in the input file that would %generate the %\begin{verbatim} %! Text line contains an invalid character. %\end{verbatim} %error. If you want to stop \LaTeX\ in the middle of its execution, perhaps because it is printing a seemingly unending string of uninformative error messages, type {\em Control-C\/} (press $C$ while holding down the key labeled {\em CTRL\/}). This will make \LaTeX\ stop as if it had encountered an ordinary error, and you can return to Ultrix command level by typing {\tt X}, as described in the manual. If typing {\em Control-C\/} doesn't work, typing {\em Control-Z\/} will get you immediately to Ultrix command level, but this will leave a stopped job hanging around. A stopped job won't hurt anything and will disappear when you log out, but it forces you to type two successive \mbox{\tt logout} commands to log out. To use the {\em spell\/} program for finding spelling errors in a \LaTeX\ input file named \mbox{\tt myfile.tex}, type the following command: \begin{verbatim} delatex myfile.tex | spell \end{verbatim} This will type a list of possibly misspelled words on your terminal. If you'd rather have the output written to a file named \mbox{\tt foo.bar}, type \begin{verbatim} delatex myfile.tex | spell >foo.bar \end{verbatim} \section{Carrying On} \subsection{\LaTeX\ on Ultrix} \label{sec:op-system} The only special problems in using \LaTeX\ caused by the Ultrix operating system involve the way Ultrix handles files. The first problem arises because, when a program starts to write a file, Ultrix destroys the previous version of that file. Thus, if an error forces you to stop \LaTeX\ prematurely (by typing {\em Control-C\/} or {\em Control-Z\/}), then the files that \LaTeX\ was writing are incomplete, and the previous complete versions have been destroyed. You probably don't care about the output on the {\tt dvi} file, but, if you are making a table of contents or using cross-referencing commands, then \LaTeX\ also writes one or more {\em auxiliary files\/} that it reads the next time it processes the same input file. If the auxiliary files are incomplete because \LaTeX\ was stopped before reaching the end of its input file, then the table of contents and cross-references will be incorrect the next time \LaTeX\ is run on the same input file. You will have to run \LaTeX\ a second time to get them right. If you want to avoid having to run \LaTeX\ twice after making an error---for example, if your input is very long---then you should save copies of these auxiliary files before running \LaTeX. An input file named \mbox{\tt myfile.tex} and all the auxiliary files produced by \LaTeX\ from it are included in the Ultrix file specifier \mbox{\tt myfile.*}. Use the Ultrix {\tt cp} command to save copies of these files. The second problem in using \LaTeX\ on Ultrix involves the files that \LaTeX\ reads. The file whose name you type with Ultrix's {\tt latex} command is called the {\em root file}. In addition to reading the root file, \LaTeX\ also reads the files specified by \hbox{\verb|\input|} and \hbox{\verb|\include|} commands. With the Ultrix directory system, \LaTeX\ must know not only the names of these file but also on what directories they are. It will have no problem finding the correct files if you follow two simple rules: \begin{enumerate} \item Run \LaTeX\ from the directory containing the root file. \item Keep all files specified by \hbox{\verb|\input|} and \hbox{\verb|\include|} commands in the same directory as the root file. \end{enumerate} If you follow these rules, you never have to type an Ultrix path specifier when using \LaTeX. You should never break the first rule, otherwise \LaTeX\ will have trouble finding auxiliary files. (To run \LaTeX\ on someone else's file, copy the file to your directory.) If you break the second rule, specifying a file from another directory in an \hbox{\verb|\input|} or \hbox{\verb|\include|} command, you must use a complete path name. For example, to include the file \mbox{\tt hisfile.tex} from Jones' directory \hbox{\verb|/foo/bar|}, you can type \begin{verbatim} \include{/udir/jones/foo/bar/hisfile} \end{verbatim} A \verb|~| character may not appear in the argument of an \hbox{\verb|\input|} or \hbox{\verb|\include|} command, so you {\em can't\/} use a file name such as \hbox{\verb|~jones/foo/bar/hisfile|}. For people who don't like to obey rules, here is exactly how \LaTeX\ finds its files. The root file is found by Ultrix according to its usual rules. \LaTeX's auxiliary files are read and written in the directory from which it is run. All file names specified in the \LaTeX\ input, including the names of document-style ({\tt sty}) files specified by the \hbox{\verb|\documentstyle|} command, are interpreted relative to the directory from which \LaTeX\ is run. If \LaTeX\ does not find a file starting in this directory, it looks in the system directory \hbox{\verb|/usr/local/lib/tex82|}. You can change the directories in which \LaTeX\ looks for its input files by setting the environment variable \mbox{\tt TEXINPUTS}. Putting the command \begin{verbatim} setenv TEXINPUTS :.:/udir/jones/myown:/usr/local/lib/tex82: \end{verbatim} in your \mbox{\tt .login} file causes \LaTeX\ to look for files first in the current directory, then in Jones' {\tt /myown} directory, and then in the system directory. You might want to do this if your name is Jones and you have your own personal document-style files in your {\tt /myown} directory. \subsection{Document Styles} There are nine document styles and style options available at SRC that are not described in the manual: \begin{itemize} \item the \mbox{\tt proc} style option for making camera-ready copy for conference proceedings, \item The {\tt bezier} option for drawing curves. \item The {\tt ifthen} option for implementing {\bf if-then-else} and {\bf while-do} control structures. \item The \mbox{\tt srcletter} style for making letters. \item The {\tt showidx} option for printing index entries in the margin. \item The {\tt makeidx} option for use with the {\it MakeIndex\/} program. (Section~\ref{sec:makeindex} for information about this program). \item The {\tt ps} style option that uses Times Roman fonts. \item The {\tt preview} option for use with the {\em Proof\/} \item The {{\tt ps-slides}} style for use with \SLiTeX\ to produce color slides on the QMS color printer. \end{itemize} The {\tt ps} option is described in Section~\ref{sec:apple}; the remaining stye options are described below. \subsubsection{The {\tt proc} Style Option} The {\tt proc} option is used with the \mbox{\tt article} document style. It produces two-column output for ACM and IEEE conference proceedings. The command \hbox{\verb|\copyrightspace|} makes the blank space at the bottom of the first column of the first page, where the proceedings editor will insert a copyright notice. This command works by producing a blank footnote, so it is placed in the text of the first column. It must go after any \hbox{\verb|\footnote|} command that generates a footnote in that column. \LaTeX\ automatically numbers the output pages. It's a good idea to identify the paper on each page of output. Placing the command \begin{verbatim} \markright{Jones---Foo} \end{verbatim} in the preamble (before the \hbox{\verb|\begin{document}|} command) prints ``Jones---Foo'' at the bottom of each page. \subsubsection{The {\tt bezier} Style Option} This option defines a single command, \hbox{\verb|\bezier|}, that draws a curved line in a {\tt picture} environment. Let $P_{i}$ be the point with coordinates $(x_{i},y_{i})$, for $i=1$, 2, and 3. The command \begin{itemize} \tt \item[] \verb|\bezier{|$n$\verb|}(|$x_{1}$,$y_{1}$)($x_{2}$,$y_{2}$)($x_{3}$,$y_{3}$) \end{itemize} draws $n$ points on the quadratic Bezier spline determined by the three points $P_{1}$, $P_{2}$, and $P_{3}$. The locus of points on this spline is a parabolic arc from $P_{1}$ to $P_{3}$ having the line $P_{1}P_{2}$ tangent to it at $P_{1}$ and the line $P_{2}P_{3}$ tangent to it at $P_{3}$. Note that $P_{2}$ is {\em not\/} on this arc unless $P_{1}$, $P_{2}$, and $P_{3}$ are colinear, in which case the arc is a straight line. Bezier splines are useful because it's easy to join two of them together smoothly by giving them the same tangent line where they meet. It takes roughly 75 points per inch to form a solid line, depending upon the line thickness. See Section~C.13.3 of the manual for commands to specify line thickness in a {\tt picture} environment. This command is {\em very\/} slow, and \TeX\ has enough memory to hold only about 1000 points plus a page of text. (Remember that \TeX\ keeps the current page plus all as yet unprinted figures in memory.) So, the \verb|bezier| command should be used for only a small number of small curves. \subsubsection{The {\tt ifthen} Style Option} This option provides two programming language features that are useful only for people who already know how to program. It defines the two commands \begin{itemize} \item[] \verb|\ifthenelse{|{\em test\/}\verb|}{|{\em then clause\/}\verb|}{|% {\em else clause\/}\verb|}|\\ \verb|\whiledo{|{\em test\/}\verb|}{|{\em do clause\/}\verb|}| \end{itemize} that implement the following two Pascal language structures \begin{itemize} \item[] \begin{tabbing} {\bf if} {\em test\/} \= {\bf then} \= {\em then clause\/} \\ \> {\bf else} \> {\em else clause\/} \\[2pt] {\bf while} {\em test\/} {\bf do} {\em do clause\/} \end{tabbing} \end{itemize} The {\em then\/}, {\em else\/}, and {\em do\/} clauses are ordinary \LaTeX\ input; {\em test\/} is one of the following: \begin{itemize} \item A relation between two numbers formed with {\tt <}, {\tt >}, or {\tt =}; for example, \hbox{\verb|\value{page}>3|}. \item \verb|\equal{|{\em string1\/}\verb|}{|% {\em string2\/}\verb|}|, which evaluates to {\em true\/} if {\em string1\/} and {\em string2\/} are the same strings of characters after all commands have been replaced by their definitions. (Upper- and lowercase letters are unequal.) \item A logical combination of the above two kinds of tests using the operators \hbox{\verb|\or|}, \hbox{\verb|\and|}, and \hbox{\verb|\not|} and the parentheses \hbox{\verb|\(|} and \hbox{\verb|\)|}---for example: \begin{verbatim} \not \( \value{section} = 1 \and \equal{Jones}{\myname} \) \end{verbatim} \end{itemize} The {\em test\/} argument is a violently moving argument, which means that not only fragile commands but even some commands that are not normally fragile will break, causing \TeX\ to enter an infinite loop. The \verb|\protect| command works in these situations. These commands, together with \hbox{\verb|\renewcommand|} and the commands of Section~C.7.4 for manipulating counters, open up a whole new world of hacking. \subsubsection{Letters} \label{sec:letters} The \mbox{\tt letter} document style, described in the manual, should be used for generating personal letters. For generating letters to be copied onto SRC letterhead, use the \mbox{\tt srcletter} style. This style works for the old letterhead (the one with the Digital logo printed in blue). Mailing labels are formatted in two columns of five $2''\times\mbox{4-1/4}''$ labels each, suitable for copying onto Avery brand, number 5352 address labels. There are no features for making letters other than those described in the manual. However, suggestions will be accepted for such options as the ability to print ones net address as part of the letterhead. \subsubsection{The {\tt showidx} Style Option} This style option, for use with the {\tt report} or {\tt book} document styles, causes index entries to be printed in the outer margin. It does not change the effect of \verb|\makeindex|, which controls whether or not an {\tt .idx} file is written. No attempt is made to avoid overprinting marginal notes. This option issues a \verb|\flushbottom| declaration. \subsubsection{The {\tt preview} Style Option} This option formats the output so it will appear as a continuous scroll when viewed with the {\em Proof\/} preview program. (See the {\em man\/} page for for a description of {\em Proof}.) \subsection{The {\tt ps-slides} Style} \label{sec:ps-slides} This style causes \SLiTeX\ to produce output that can be printed on the QMS color printer with {\tt aptex} to produce color transparencies. When the output is printed on a black-and-white PostScript printer, colors are printed as different shades of gray. The {\tt ps-slides} style has the following differences from the ordinary {\tt slides} style. \begin{itemize} \item The \verb+\colors+ command is made a no-op. Colors that are not predefined must be defined with the \verb+\newpscolor+ command (see below). \item The \verb+\colorslides+ and \verb+\blackandwhite+ commands are the same, except that \verb+\colorslides+ prints only slides and overlays, not notes. \item The meaning of the \verb+\invisible+ declaration has been changed, as described below. The old \verb+\visible+ command is the same as the new \verb+\white+ command. \item The default page style is {\tt plain}. (The alignment marks are no longer of any use.) \item The positioning of the body of the slide and the slide number have been changed to accomodate the QMS printer's small effective page size. \end{itemize} Except for these differences, a \SLiTeX\ input file prepared for the ordinary {\tt slides} style {\em should\/} work with the {\tt ps-slides} style. There are probably some \SLiTeX\ commands that will interact incorrectly with color-changing commands. These problems will be corrected when reported. The most likely bug is a color declaration ``escaping from its scope'', having a more global effect than it should. Such a problem can be worked around by adding redundant color-changing commands. The new commands defined by the {\tt ps-slides} style are listed below. \begin{description} \item[{\tt \begin{tabular}[b]{@{}l@{}} \bs newpscolor\lb{\em cmd\/}\rb \lb{\em red\/}\rb\lb{\em green\/}\rb\lb{\em blue\/}\rb \\ \bs renewpscolor\lb{\em cmd\/}\rb\lb{\em red\/}\rb \lb{\em green\/}\rb\lb{\em blue\/}\rb \end{tabular}}] \mbox{}\\* Define the command {\em cmd\/} to produce a new color with the indicated RGB values, where {\em red\/}, {\em green\/}, and {\em blue\/} are decimal numbers between 0 and 1 (inclusive). For example: \begin{quote} \begin{tabular}{@{}l@{ $=$ [{\em red\/}: }l@{, {\em green\/}: }l@{, {\em blue\/}:}l@{]}} Black & 0 & 0 & 0\\ White & 1 & 1 & 1\\ Red & 1 & 0 & 0\\ Light yellow & .5 & .5 & 0 \end{tabular} \end{quote} For \verb+\newpscolor+, {\em cmd\/} must not already be defined; for \verb+\renewpscolor+, it must already be defined (but not necessarily as a color). The following colors are predefined: \begin{quote} \verb+\black+, \verb+\red+, \verb+\green+, \verb+\blue+, \verb+\yellow+, \verb+\magenta+, \verb+\cyan+, \verb+\white+~\hspace*{-30pt}\mbox{} \end{quote} For ordinary printers, which assume white paper, \verb+\white+ text is invisible. Unlike in ordinary \SLiTeX, color-changing commands can be used in math mode. \item[{\tt \begin{tabular}[b]{@{}l@{}} \bs invisible\\ \bs visible \end{tabular}}] \mbox{}\\* Ordinary declarations of visibility of the text. Invisible text is not printed. (\TeX\ prints it in a font that whose letters are all print as spaces.) Visibility is independent of color, so you can have invisible red text, visible green text, and even visible white text. (Visible white text can be seen only when printed by a weird printer that prints on nonwhite paper.) \item[{\tt \begin{tabular}[b]{@{}l@{}} \bs norestore\\ \bs restore \end{tabular}}] \mbox{}\\* The \verb+\norestore+ declaration inhibits the proper scoping of color declarations, causing color declarations to act as if they were global. The \verb+\restore+ declaration causes the current and future colors to become the ones they would have been had there been no \verb+\norestore+ command. Both \verb+\norestore+ and \verb+\restore+ are global declarations. Example: \begin{verbatim} \black black {\green green \norestore {\red red} red \restore green} black \end{verbatim} The \verb+\norestore+ declaration is handy for color commands inside a tabbing or tabular environment. However, there are some anomalies: \begin{itemize} \item A \verb+\restore+ command inside a tabbing environment may not work exactly as it should. Try putting the command immediately after a \verb+\=+, \verb+\\+, or \verb+\>+. \item An \verb+\fbox+, \verb+\framebox+, or \verb+\frame+ command may do weird things in the scope of a \verb+\norestore+ if there's a color declaration in its argument. \item A \verb+\background + may behave strangely inside the scope of a \linebreak %%%%%% \verb+\norestore+. \end{itemize} \item[{\tt \bs background\lb{\em color\/}\rb\lb{\em text\/}\rb }] \mbox{}\\* Typesets {\em text} in an \mbox with a box behind it whose color is determined by the {\em color\/} color-changing command. The yellow box is the width of {\em text\/} plus a border of width \verb+\bgborder+ around it. \item[{\tt \begin{tabular}[b]{@{}l@{}} \bs hollowbackground \\ \bs filledbackground \end{tabular}}] \mbox{}\\* A \verb+\hollowbackground+ declaration causes any \verb+\background+ command in its scope to produce an outline, much like \verb+\fbox+, instead of a filled box. This is useful for checking the slides with Proof or on a black-and-white printer. A \verb+\filledbackground+ declaration has the opposite effect. \item[{\tt \bs nogray}] \mbox{}\\* A declaration that makes every color other than \verb+\white+ be equivalent to \verb+\black+, and issues a \verb+\hollowbackground+ declaration. Used to print the slides on a black-and-white printer so colors come out black instead of various shades of gray. \end{description} \subsection{Where the Files Are} % must explain where the following files are: % small.tex, sample.tex, *.sty, *.doc, lablst.tex, idx.tex % All \LaTeX\ files mentioned in the manual, including the {\tt sty} and {\tt doc} files, are in the directory \mbox{\tt /usr/local/lib/tex82}. Fonts are stored in two directories: the {\tt tfm} files used by \TeX\ are on \mbox{\tt /usr/local/fonts/tfm}, and the pixel files used by {\em iptex\/} and other device drivers are in \mbox{\tt /usr/local/fonts/pixel}. \subsection{Running {\tt lablst.tex} and {\tt idx.tex}} A list of labels and citations in an input file is printed by running \LaTeX\ on the input file \mbox{\tt lablst.tex}, which is done by typing \begin{verbatim} latex /usr/local/lib/tex82/lablst \end{verbatim} \LaTeX\ will then ask for the name of the input file, which should be typed without an extension, and for the name of the main document style (e.g., \mbox{\tt article}), used by that file. The index entries on an {\tt idx} file are printed by running \LaTeX\ on the file \mbox{\tt idx.tex}, which is done by typing \begin{verbatim} latex /usr/local/lib/tex82/idx \end{verbatim} \LaTeX\ will ask for the name of the {\tt idx} file, which is typed without an extension. \subsection{Differences from the Manual} All \LaTeX\ features described in the manual are provided by the implementation at SRC. %Explain here any characters that can appear in input files other than %the ones listed in Section 2.1. %Tell if the \mbox{\tt log} file has an extension other than %\mbox{\tt .log}. Note: on TOPS-20, its extension is \mbox{\tt .lst}. %Describe the sizes of disks and circles the are available. %Don't forget to mention if the invisible fonts needed for \SLiTeX\ %color slides are unavailable. \subsection{Using \BibTeX} \BibTeX\ is a program for compiling a reference list for a document from a bibliographic database. It is run by typing \begin{verbatim} bibtex myfile \end{verbatim} where \mbox{\tt myfile.tex} is the name of your \LaTeX\ input file. This reads the file \mbox{\tt myfile.aux}, which was generated when you ran \LaTeX\ on \mbox{\tt myfile.tex}, and produces the file \mbox{\tt myfile.bbl}. \BibTeX\ should be run from the directory containing \mbox{\tt myfile.tex} (which should be the same directory from which \LaTeX\ was run on that file). If the {\tt bib} file is not in the same directory as the \LaTeX\ input file---for example, if you're using someone else's {\tt bib} file---then you must include a path as part of the file name specified by the \hbox{\verb|\bibliography|} command. A \verb|~| cannot appear in the argument of a \hbox{\verb|\bibliography|} command, so you should use a complete path name. For example, the \LaTeX\ command \begin{verbatim} \bibliography{/udir/jones/bibfiles/gnus} \end{verbatim} specifies the file \mbox{\tt gnus.bib} kept by Jones in his \mbox{\tt /bibfiles} directory. There is now no formal provision for sharing bibliographic database information, nor are there programs to assist in making your own {\tt bib} files. Suggestions for forming one or more common {\tt bib} files are welcome. In addition to the bibliography styles described in the manual, there is a {\tt ieeetr} style that formats entries in the style of the IEEE transactions. In addition to the usual three-letter abbreviations for the months, the following abbreviations are defined by the bibliography styles: \begin{list}{}{\labelwidth 0pt \itemindent-.5\leftmargin \itemsep=2pt plus 1pt \let\makelabel\descriptionlabel}\it \item[\tt acmcs] ACM Computing Surveys \item[\tt acta] Acta Informatica \item[\tt cacm] Communications of the ACM \item[\tt ibmjrd] IBM Journal of Research and Development \item[\tt ibmsj] IBM Systems Journal \item[\tt ieeese] IEEE Transactions on Software Engineering \item[\tt ieeetc] IEEE Transactions on Computers \item[\tt ieeetcad] IEEE Transactions on Computer-Aided Design of Integrated Circuits \item[\tt ipl] Information Processing Letters \item[\tt jacm] Journal of the ACM \item[\tt jcss] Journal of Computer and System Sciences \item[\tt scp] Science of Computer Programming \item[\tt sicomp] SIAM Journal on Computing \item[\tt tocs] ACM Transactions on Computer Systems \item[\tt tods] ACM Transactions on Database Systems \item[\tt tog] ACM Transactions on Graphics \item[\tt toms] ACM Transactions on Mathematical Software \item[\tt toois] ACM Transactions on Office Information Systems \item[\tt toplas] ACM Transactions on Programming Languages and Systems \item[\tt tcs] Theoretical Computer Science \end{list} % Note: All styles should share the same set of abbreviations. \subsection{Using \SLiTeX} \SLiTeX\ is a version of \LaTeX\ for making slides. To run \SLiTeX\ with a root file \mbox{\tt myroot.tex}, you type \begin{verbatim} slitex myroot \end{verbatim} (You should be connected to the directory containing \mbox{\tt myroot.tex}.) Refer to Section~\ref{sec:op-system} if you want slide files or \hbox{\verb|\input|} files to be in a different directory from your root file. Color slides can be made by copying the color layers produced by \SLiTeX\ onto color transparencies using the Thermofax machine on the second floor. However, it is easier to make them with the QMS color printer on the 3rd floor. To use it, you must use the {\tt ps-slides} document style described in Section~\ref{sec:ps-slides}. The output of \SLiTeX\ is then printed by the command \begin{quote} \tt aptex -Pcolor {\em file-name}.dvi \end{quote} Before executing this command, check that the printer has transparencies in the paper tray and perform the appropriate protocol to synchronize with other users of the printer. \subsection{Using {\em MakeIndex\/}} \label{sec:makeindex} The {\em MakeIndex\/} program helps in making an index. It is described in a separate document, available through the {\tt printdoc} command. \subsection{Fonts} Almost all the symbols available on our fonts can be generated by ordinary \LaTeX\ commands. However, there are type sizes not obtainable by \LaTeX's size-changing commands with the ordinary document styles. Consult a local \TeX\ expert to find the \TeX\ name for such a font. Tables~\ref{tab:styles} and \ref{tab:fonts} allow you to determine if the font for a type style at a particular size is preloaded, loaded on demand, or unavailable. \begin{table} \centering \begin{tabular}{l|r|r|r|} \multicolumn{1}{l}{size} & \multicolumn{1}{c}{default (10pt)} & \multicolumn{1}{c}{11pt option} & \multicolumn{1}{c}{12pt option}\\ \cline{2-4} \verb|\tiny| & 5pt & 6pt & 6pt\\ \cline{2-4} \verb|\scriptsize| & 7pt & 8pt & 8pt\\ \cline{2-4} \verb|\footnotesize| & 8pt & 9pt & 10pt \\ \cline{2-4} \verb|\small| & 9pt & 10pt & 11pt \\ \cline{2-4} \verb|\normalsize| & 10pt & 11pt & 12pt \\ \cline{2-4} \verb|\large| & 12pt & 12pt & 14pt \\ \cline{2-4} \verb|\Large| & 14pt & 14pt & 17pt \\ \cline{2-4} \verb|\LARGE| & 17pt & 17pt & 20pt\\ \cline{2-4} \verb|\huge| & 20pt & 20pt & 25pt\\ \cline{2-4} \verb|\Huge| & 25pt & 25pt & 25pt\\ \cline{2-4} \end{tabular} \caption{Type sizes for \LaTeX\ size-changing commands.}\label{tab:styles} \end{table} \begin{table} \centering \begin{tabular}{l|c|c|c|c|c|c|} \multicolumn{1}{l}{}& \multicolumn{1}{c}{\tt \bs it} & \multicolumn{1}{c}{\tt \bs bf} & \multicolumn{1}{c}{\tt \bs sl} & \multicolumn{1}{c}{\tt \bs sf} & \multicolumn{1}{c}{\tt \bs sc} & \multicolumn{1}{c}{\tt \bs tt} \\ \cline{2-7} 5pt & D & D & X & X & X & X \\ \cline{2-7} 6pt & X & D & X & X & X & X \\ \cline{2-7} 7pt & P & D & X & X & X & X \\ \cline{2-7} 8pt & P & D & D & D & D & D \\ \cline{2-7} 9pt & P & P & D & D & D & P \\ \cline{2-7} 10pt & P & P & P & P & D & P \\ \cline{2-7} 11pt & P & P & P & P & D & P \\ \cline{2-7} 12pt & P & P & P & P & D & P \\ \cline{2-7} 14pt & D & P & D & D & D & D \\ \cline{2-7} 17pt & D & P & D & D & D & D \\ \cline{2-7} 20pt & D & D & D & D & D & D \\ \cline{2-7} 25pt & X & D & X & X & X & X \\ \cline{2-7} \end{tabular} \caption{Font classes: P = preloaded, D = loaded on demand, X = unavailable.}\label{tab:fonts} \end{table} Table~\ref{tab:styles} tells you what size of type is used for each \LaTeX\ type-size command in the various document-style options. For example, with the {\tt 12pt} option, the \hbox{\verb|\large|} declaration causes \LaTeX\ to use 14pt type. Table~\ref{tab:fonts} tells, for every type size, to which class of fonts each type style belongs. For example, in 14pt type, \verb|\bf| uses a preloaded font and the other five type-style commands use load-on-demand fonts. Roman (\verb|\rm|) and math italic (\verb|\mit|) fonts are all preloaded; the \hbox{\verb|\em|} declaration uses either italic (\verb|\it|) or roman. %Describe any special fonts available here. %Tell where to find a font manual, listing the character numbers of %the symbols on different fonts. %Include a table telling which fonts are preloaded, loaded on demand, %and unavailable. \subsection{Using Times Roman Fonts} \label{sec:apple} The fonts normally used by \LaTeX\ are from the Computer Modern Roman font family designed by Donald Knuth. Some people prefer the Times Roman family of fonts, which are available on the Apple LaserWriter printers. They are obtained with the {\tt ps} document-style option. Currently, this option does not work with the {\tt 12pt} style option. Also, fonts from the Times Roman family are available only for the default \verb|\rm| style and for the \verb|\it|, \verb|\bf|, and \verb|\sf| styles. Other styles use the ordinary CMR fonts. \TeX\ can use only the CMR fonts in math mode, so \verb|${\rm foo}=3$| produces ``foo'' in CMR font, which is probably not what you want. Instead, use \verb|$\mbox{\rm foo}=3$|, which typesets ``foo'' in Times Roman because \TeX\ is not in math mode inside the \verb|\mbox|. No one will notice that ordinary math symbols like $\alpha$ or $x$ are typeset in a CMR font rather than a Times Roman font. A {\tt dvi} file produced with the {\tt ps} option can be printed only on the Apple LaserWriter using the {\tt aptex\/} program. Type the Ultrix command {\tt man~aptex} to find out how to run this program. You can print any {\tt dvi} file with {\tt aptex}, but it is slower than {\tt iptex} and doesn't do a very good job printing the standard CMR fonts. So, use {\tt aptex} to print only {dvi} files created with the {\tt ps} option. The {\tt ps} option causes \LaTeX\ to use more fonts than usual, so there's a good chance that you'll run \TeX\ out of font space if you use lots of different fonts. \subsection{Special Versions} No foreign-language or other special versions of \LaTeX\ are currently available at SRC. \section{Bugs} There are a few known bugs in \LaTeX\ that occur very seldom and cause the user little trouble, but would be very difficult to fix. Moreover, given the nature of complex systems, it is not unlikely that the corrections would lead to even worse problems. Therefore, these bugs will probably not be fixed. The bugs and ways to get around them are listed below. Do not worry about any of them until you are preparing the final draft, since changes to the text are very likely to cause the problem to disappear. \begin{itemize} \item In rare instances, a figure or table will be printed on the page preceding the text where the {\tt figure} or {\tt table} environment appears. This can be fixed by either moving the environment further towards the end of the document. \item A marginal note at the top of a page may appear in the wrong margin. This can be fixed by inserting a redundant \verb|\pagebreak| command to force a page break exactly where \LaTeX\ started the new page anyway. \item A footnote can be broken across two pages when it should fit on a single page. This happens when there is one or more figures or tables on the page. The problem is corrected by moving, towards the end of the file, the last {\tt figure} or {\tt table} environment that produces a figure or table on the page where the footnote starts. \end{itemize} \section{Errata and Additions to the Manual} \input{addendum} \end{document} %&c&@i*\hbox{* 2@s\|\ @i|}|#& %&i&\index{#}& %&m&\mbox#& %&t&{\tt #}& %&v&\hbox{\verb|#|}& %&b&\verb|#|& %&h&\hbox#& latex209-25.may.1992.orig/general/lhyphen.tex100664 144 144 1056 5161754600 17723 0ustar nakaharastaff% File LHYPHEN - Created 04 November 1991. % Copyright (C) 1991 by Leslie Lamport % \message{Loading hyphenation patterns for US english.} % PREPARING A FOREIGN LANGUAGE VERSION: % % This file loads hyphenation patterns for US english. % If you want to load additional or other hyphenation patterns, % you have to change this file, which is hereby allowed explicitly, % under the restriction that if you do so, you MUST also change the % message above. % \language=0 \lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks \input hyphen \endinput latex209-25.may.1992.orig/general/local.gid100664 144 144 535 5161754600 17272 0ustar nakaharastaff HOW TO RUN LaTeX AT SRC 24 September 1985 To run LaTeX on the file named foo.tex type: latex foo This produces an output file named foo.dvi . To print file foo.dvi on the Imagen printer, which is located on the third floor near Jane's desk, type the following command: iptex foo.dvi latex209-25.may.1992.orig/general/latex.ins100664 144 144 35765 5161754600 17420 0ustar nakaharastaffLAST MODIFICATION TO THESE INSTRUCTIONS WAS ON 1 December 1991 Here are instructions for generating LaTeX at a different site. Unless otherwise specified, all files are obtained from the same source from which you obtained this file. For clarity, in this document file names appear in UPPER-CASE letters. However, for systems that distinguish case in file names, all file names should be lower case. CONTENTS OF THIS FILE: O. News I. What Files You Need II. Generating an Executable LaTeX File III. Customizing LaTeX for Your Site A. Generating the Local Guide B. SMALL.TEX and LOCAL.GID C. Other Modifications IV. SLiTeX V. BibTeX and MakeIndex VI. Keeping in Touch VII. FTPing Files VIII. What to do with Old Versions of the Manual 0. NEWS ---- The files LATEX.DIF and LFONTS.AMR has been removed from the distribution. The former was of not much use to many people, and the latter is no longer needed (nobody uses AMR fonts anymore). The files TESTA4.TEX and LHYPHEN.TEX have been added to the distribution. TESTA4.TEX is a version of TESTPAGE.TEX for A4 paper. LHYPHEN.TEX contains hyphenation related stuff and has to be adapted for different languages. The small caps typeface has been added to SLiTeX. Therefore, a new invisible font called ICMCSC10 is distributed together with LaTeX. Please note that most of the METAFONT source files have been changed slightly. It is recommended that you rebuild the font set with Metafont. In particular, it is no longer possible to compile the line fonts with the CMBASE preloaded. I. WHAT FILES YOU NEED ------------------- The beginning of the file LATEX.BUG lists all the files that you should have, along with their creation dates. Each file contains its creation date in a comment somewhere near the beginning of the file. Make sure you have all these files, and that the dates of the file corresponds to the dates given in LATEX.BUG. Note: Do not depend upon the creation date of the file given by the operating system. This is likely to be later than the one in the file for two reasons: (1) copying the file can cause the copy to have as its creation date the date the copy was made, and (2) cosmetic changes to a file are sometimes made without changing its date. The files on the standard distribution tape should all have the correct dates. However, a common source of errors is for an old version of a file to appear in the system directory in place of the current one. II. GENERATING AN EXECUTABLE LaTeX FILE ------------------------------------ After obtaining the LaTeX files, you must create an executable LaTeX file and put it on a system directory so it can be run by your users. You need the following files .TEX files: LPLAIN.TEX LATEX.TEX LFONTS.TEX plus standard TeX files called by the PLAIN package, like HYPHEN.TEX. LaTeX uses the following special fonts in addition to the normal CMR family: LASY10 LASY9 ... LASY5 (for special symbols) LINE10 LINEW10 (for slanted lines) LCIRCLE10 LCIRCLEW10 (for circles) Characters may be added to the LASY font family from time to time. Pixel files for these fonts are available from the standard TeX sources. Alternatively, they can be generated only with metafont. To do this, you'll need the .MF files for all of these -- i.e., LASY10.MF, ... , LCIRCLEW10.MF -- plus the following .MF files called by them: LASY.MF LINE.MF LCIRCLE.MF Note: Because the Imagen MAKIMP program for TOPS-20 doesn't do things in the approved fashion, the standard LINE10 and LCIRCLE10 fonts don't work right with it. (Fonts that work right for the Imagen on the TOPS-20 can be created from the files TLINE10.MF and TCIRCLE10.MF on the directory at SRI-AI. When using them, you should also \input the file SRI.TEX when running INITEX to create a new version of LaTeX. [See below.]) Other device drivers may have similar problems. The file LFONTS.TEX contains all the LaTeX code that involves font loading. This file loads the new CMR fonts. Some fonts are preloaded, others get loaded when the user first requests them. The comments at the beginning of LFONTS.TEX explain how this works. The section of LFONTS.TEX that preloads the fonts mentions all the fonts that LaTeX currently loads or might load, the latter having the \font commands commented out. However, the current LFONTS and .STY files don't need all those files. The best way to see what fonts are required is to run input files that try to use all type styles in all sizes. (You probably can't do this with a single input file because you'll run TeX out of font space.) The file TRYFONTS.TEX can be used for this purpose. Just run it through LaTeX and follow directions. You may want to change the exact set of typestyles provided to the user at the various sizes. You create LaTeX just as you would an ordinary version of TeX, except you must load LPLAIN instead of PLAIN. (TeX sometimes uses PLAIN as a default if nothing else is specified, and you may have a version of TeX with PLAIN already loaded, which should not be used.) You may have to enlarge the limits in the standard distribution version of TeX to produce an executable LaTeX file. The appropriate parameters are the ones used to produce the SU-Score version of TeX. Here is how to create LaTeX on some operating systems. TOPS-20 The following sequence of commands is used on the TOPS-20 system at SRI-AI. It shows prompts as well as what you type, with comments at the right, in parentheses. @INITEX lplain *\input sri (Loads local modifications. See below.) *\dump @VIRTEX &lplain *^C @SAVE latex 0 37777 This will produce a version that can be called by @LATEX . You'll have to define TEXSPOOL: and other devices just as for TeX. ULTRIX/UNIX The following sequence of commands works on Ultrix at SRC, with the version of TeX produced on the Pastel compiler. Since Ultrix and Unix are similar, it may work on Unix also. Some path file names will obviously have to be changed. The system prompt is shown as `%', and `*' indicates TeX's prompt. Comments are in parentheses at the right. %initex lplain *\input src (Loads local modifications. See below.) *\dump %virtex \&lplain * control-\ (This is a single control character.) %undump latex /usr/local/bin/virtex core For the pc Pascal compiler, and for TeX compiled with the WEB-to-C system on Unix machines, the two lines beginning with `%virtex \&lplain' should be replaced by the following: % virtex '&lplain' xyxyxy (This will produce the responses) This is TeX, Version 3.14 for Berkeley UNIX (no format preloaded) ! I can't find file `xyxyxy.tex'. <*> &lplain xyxyxy Please type another input file name: ^\ Notice that the pseudo-file-name "xyxyxy" can be any nonsense character string you choose, so long as you are sure that no file named xyxyxy.tex is accessible. The "^\" character represents the Unix "Quit" character (usually control-\) which makes a core file (if you are running in a directory in which you have write privileges). Follow this with undump, as noted above. Note: The current release of WEB-to-C does no longer use undump. Follow the instructions in the WEB-to-C documentation. The TEXINPUTS environment variable tells LaTeX where to find input files. Vax-VMS Andy Hanson at SRI reports that the following sequence of VMS and TeX commands generates an executable LaTeX file on VMS. Before typing the `\dump' command, you may want to \input a file with local modifications. $ set command virtex $ initex **lplain *\dump $ virtex **&lplain *\stop *save latex III. CUSTOMIZING LaTeX FOR YOUR SITE ------------------------------- The installer of LaTeX cannot just copy the files and generate an executable versions. There are certain other things that must be done to make sure that your site conforms to the description in the LaTeX manual. A. Generating the Local Guide -------------------------- The LaTeX manual has been published by Addison-Wesley, and is now available in book stores. It refers to a Local Guide that describes how to use LaTeX at the user's site. You are responsible for generating the Local Guide at your site. First, run the file LOCAL.TEX through LaTeX. (The file has cross-references, so you must run it through twice.) This produces a version of the Local Guide for some site other than your own. You must modify LOCAL.TEX to create the local guide for your site. B. SMALL.TEX and LOCAL.GID ----------------------- The file SMALL.TEX is a short introduction to LaTeX, and is meant to be read on-line with a text editor. It refers to a file LOCAL.GID that contains brief instructions for running LaTeX at your site. You must modify SMALL.TEX so it correctly tells the user where to find LOCAL.GID. You must modify LOCAL.GID for your site. LOCAL.GID is mean to be read on-line, so it should fit on a single terminal screen. C. Other Modifications ------------------- You may need to make some local modifications for your site. These are best done by making a .TEX file with commands that are \input when you generate LaTeX. The margin settings on all the document styles are made under the assumption that a point that TeX thinks is in the upper left-hand corner of the output page is printed by the device driver at a point one inch from both the top and left sides of the paper. Many output devices don't conform to this convention. They may also magnify or reduce the output in one or more dimensions. If your output device deviates from the this convention, you should make the appropriate correction by adding commands to set \hoffset and \voffset to your file of local modifications. Running LaTeX on the input TESTPAGE.TEX will generate a test page for checking what your output device really prints. You may also have to adjust the settings of \marginparwidth, which controls the width of marginal notes, in the document style files. The current values are chosen to get the largest marginal notes that the Imagen printer will fit on the page. However, your printer may be able to fit more or less text on a line. You'll have to modify the macros in LETTER.STY to produce the letter document style appropriate for your installation. However, if you significantly change the functionality, give the document style a different name. Do not make any changes to the standard document styles other than the ones described above. The manual describes what happens when you run SAMPLE.TEX with these document styles, and the user expects the same thing to happen when run at your site. The creation of new document styles is encouraged, but they should be given new names. If you design a new style or style option that is generally useful, it can be added to the LaTeX distribution. LaTeX input files can be sent electronically, and provide an excellent way of transmitting documents electronically. (.DVI files are not as portable because different sites may have different fonts.) If LaTeX is to be useable for document exchange, the standard document styles must be standard. IV. SLiTeX ------ To generate SLiTeX, you need the following .TEX files: SPLAIN.TEX SLITEX.TEX SFONTS.TEX SPLAIN and SFONTS are the analogs of LPLAIN and LFONTS. You generate SLiTeX by INITEX'ing SPLAIN instead of LPLAIN. SFONTS describes the fonts that are needed. There are three nonstandard visible fonts that are used by SLiTeX: LCMSS8, LCMSSI8 and LCMSSB8. The first two are almost identical to CMSSQ8 and CMSSQI8, differing only in that the uppercase `I' has crossbars in the LMSS* fonts. LCMSSB8 is a bold version of LCMSS8. For every visible font, SLiTeX also uses a corresponding invisible font---one that has the identical .TFM information but prints nothing. Its name is obtained by adding an `I' to the beginning of the corresponding visible font's name. You need the invisible fonts to make color slides and to implement the \invisible command. By now, these slide fonts should be on the standard distribution tape. If they aren't, you should find some reasonable substitutes and modify SFONTS.TEX accordingly. If you don't have the invisible fonts, you'll have to warn your users (in the Local Guide) that they can't make color slides or use the \invisible command. The names of the fonts called in SFONTS.TEX might differ from the names of the actual fonts that appear on the distribution tape. The necessary changes to SFONTS.TEX should be obvious. V. BibTeX and MakeIndex -------------------- The BibTeX program is not part of the LaTeX file set. Problems with BibTeX should be addressed to Oren Patashnik, whose Internet address is patashnik@score.stanford.edu. MakeIndex is a C program written by Peehong Chen at Berekeley. Instructions for using it with LaTeX are contained in the file MAKEINDEX.TEX; its use depends upon the MAKEIDX document style that is part of the LaTeX distribution. However, the MakeIndex program itself is not part of the LaTeX or TeX distribution, since it is not written in Web. VI. KEEPING IN TOUCH ---------------- Known bugs in LaTeX and in the standard document styles are listed in LATEX.BUG. This file also lists the date all relevant files have been changed. You should check LATEX.BUG from time to time. I don't expect LaTeX bugs to be too common, but they will be fixed as they are reported. Errata and omissions to the manual are described in ADDENDUM.TEX, which is \input by LOCAL.TEX. Please send any new ones that you find to me electronically at my Internet address lamport@src.DEC.COM or my my mailing address Digital Equipment Corporation 130 Lytton Avenue Palo Alto, CA 94301 I will, of course, fix all bugs that I am told about. There should be someone at each site to whom users report bugs; he or she should make sure that they are bugs before forwarding them to me. (In particular, Section C.8.1 should be read carefully before reporting bugs in LaTeX's figure placement algorithm.) VII. FTPing FILES ------------ If you've gotten this file by FTP over a network, then you know how to FTP files from here to there. It's not likely that you'll be FTPing files while they're being updated, but the following algorithm eliminates this possibility: 1. FTP the LATEX.BUG file first. 2. Check that the creation date of every other file you FTP is the same as the date given for it at the head of LATEX.BUG. If the date on LATEX.BUG is earlier, then I'm currently updating the file. If the date on LATEX.BUG is later, then something is fouled up and you should send me a message. Meanwhile, the maintainer of the version being FTP'ed should change the file LATEX.BUG only after changing all other files. [See Communications of the ACM, Vol 20, No. 11 (Nov. 1977) pages 806-811 for a proof of correctness for this algorithm.] VIII. WHAT TO DO WITH OLD VERSIONS OF THE MANUAL ------------------------------------------ Destroy them. latex209-25.may.1992.orig/general/lablst.tex100664 144 144 2552 5161754600 17537 0ustar nakaharastaff% LABLST.TEX -- A LaTeX input file for printing label definitions. % Copyright (c) 1985 by Leslie Lamport. % This file created on 5 January 1985. \typeout{} \typeout{LABLST version of 24 November 1984} \typeout{} \typeout{**************************} \typeout{* Enter input file name. *} \typein[\filename]{**************************} \def\spaces{\space\space\space\space\space} \typeout{} \typeout{*********************************************} \typeout{* Enter document style used in file \filename, *} \typeout{* with no options. \spaces\spaces\spaces\spaces\spaces *} \typein[\docsty]{*********************************************} \documentstyle{\docsty} \nofiles \parindent 0pt \newwrite \labfile \relax \immediate\openout \labfile =lablst.lab\relax \begin{document} \makeatletter \def\toc{toc} \def\@writefile#1#2{\def\temp{#1}\ifx\temp\toc \immediate\write\labfile {#2}\fi} \def\newlabel#1#2{\immediate\write\labfile{\string\newlabel{#1}{#2}}} \def\bibcite#1#2{\immediate\write\labfile{\string\bibcite{#1}{#2}}} \input \filename.aux \immediate\closeout\labfile \def\newlabel#1#2{\par \hbox to \textwidth{\hfill\makebox[10em][l]{\tt #1}\makebox[3.5em][l]{\first #2}\hspace{1em}Page:\makebox[3em][r]{\second #2}\hspace{4em}}} \def\first#1#2{#1} \def\second#1#2{#2} \def\bibcite#1#2{\par\makebox[2in][l]{\tt #1}[#2]} \input lablst.lab \end{document} latex209-25.may.1992.orig/general/idx.tex100664 144 144 2632 5161754600 17041 0ustar nakaharastaff% IDX.TEX -- A LaTeX input file for printing .IDX files. % Copyright (c) 1985 by Leslie Lamport. % This file created on 22 January 1985. \documentstyle[twocolumn]{article} \nofiles \oddsidemargin 0pt \evensidemargin 0pt \textwidth 470pt % Width of text line. \columnsep 30pt % Space between columns \raggedright \fontdimen3\tentt=3pt % Add stretch and shrink to \tt interword space. \fontdimen4\tentt=3pt \makeatletter \def\isanitize{\@makeother\\\@makeother\$\@makeother\&% \@makeother\#\@makeother\^\@makeother\^^K\@makeother\_\@makeother\^^A% \@makeother\%\@makeother\~} \def\indexentry{\par\begingroup \isanitize \idxentry} \def\idxentry#1#2{\def\foo{#2}\ifx\foo\thispage \else \gdef\thispage{#2} \vskip 7pt {\large \bf Page #2\par \vskip 2pt}\fi \hangindent 20pt \tt #1\par\endgroup} \parindent = 0pt \parskip = 0pt plus .5pt \tolerance=10000 % prevents overfull boxes \begin{document} \typeout{} \typeout{IDX version of 5 January 1985} \typeout{} \typeout {**********************************} \typeout {* Enter idx file's first name. *} \typein[\filename]{**********************************} \twocolumn[\vspace*{20 pt} \centering \huge \filename.idx \par \vspace*{20pt}] \dimen0=\columnwidth \advance\dimen0 by -20pt \parshape =2 0pt \columnwidth 20pt \dimen0 \input \filename.idx\relax \end{document} latex209-25.may.1992.orig/general/addendum.tex100664 144 144 37151 5161754600 20062 0ustar nakaharastaff% Errata and additions to the first edition of the LaTeX manual, % published by Addison-Wesley. % 31 October 1990 These are all the errors and omissions to the manual, \LaTeX: {\em A Document Preparation System} reported by 31 October 1990. \subsection{First Four Printings} The following errors were corrected in the Fifth Printing. To see if your copy is one of the first four printings, turn to the copyright page---the one with the Library of Congress cataloging information, on the back of the title page. If the fifth line on that page begins ``that, as of August 27, 1985'', then your copy is from the first four printings. \subsubsection*{page xiii} Add Mike Urban to the list of people thanked in the third paragraph. % Mike Urban \subsubsection*{page 2} In the first paragraph of Section~1.1, replace the three instances of {\tt sample.tex} by {\tt small.tex}. % LL, 8 Jan 86 \subsubsection*{page 15, line 18} Replace ``thay'' by ``that''. % Mike Urban, 4 Jan 86 \subsubsection*{page 24, line 13} Add a period to the end of the line. % Edgar Whipple, 10 Apr 86 \subsubsection*{page 31, line 7} Delete one ``will''. % Nelson Beebe, 27 Feb 86 \subsubsection*{page 39, line 2} Change ``six'' to ``five''. % Stephen Gildea, 14 Feb 86 \subsubsection*{page 39, line 17} Remove the extra ``it''. \subsubsection*{page 40, line $-8$} Change ``five'' to ``six''. % Hal Perkins 25 Mar 86 \subsubsection*{Section~3.3.5, page 49} The name of the environment is {\tt eqnarray}. There are two instances on this page of the incorrect name ``{\tt eqnarry}'' that should be changed. % Oren Patashnik \subsubsection*{page 52, last line} Replace ``instead of $\int\int ydxdy$'' by ``instead of $\int\int zdxdy$''. % Oren Patashnik 16 Jan 86 \subsubsection*{pages 55--58, 124, and 173--174} Commands that define or redefine a command or environment, such as the \linebreak \hbox{\verb|\newcommand|} and \hbox{\verb|\renewenvironment|} commands, should not be nested within one another. Doing so may result in the following \TeX\ error: \begin{verbatim} ! Illegal parameter number in definition of ... . \end{verbatim} \subsubsection*{page 56, line $-3$} Change ``\verb|{\bf x}|'' to ``\verb|{x}|''. % Stephen Gildea, 14 Feb 86 \subsubsection*{page 60, line $-7$} Replace ``one of these environments'' by ``a {\tt figure} or {\tt table} environment''. % improvement suggested by Arthur Keller, 1 Jan 86 \subsubsection*{page 74, line 20} Change \verb|\begin{documentstyle}| to \verb|\begin{document}|. % Hal Perkins 25 Mar 86 \subsubsection*{page 75, line 15} Change \verb|\thebibliography| to \verb|\bibliography|. % Charles Karney 6 Jan 86 \subsubsection*{page 79, line 16} Change ``diplaying'' to ``displaying''. % Stephen Gildea, 14 Feb 86 \subsubsection*{page 88, line 27} Change ``entire the paragraph''to ``the entire paragraph''. \subsubsection*{page 89, line 16} Change ``page-breaking'' to ``line-breaking''. % Arthur Keller, 1 Jan 86 \subsubsection*{page 95, line 5} Replace ``\verb|{.01in}|'' by ``\verb|{1.01in}|''. \subsubsection*{page 96} In the penultimate paragraph of Section~5.4.2, replace \begin{quote} The \verb|\vfill| command is an abbreviation for \verb|\vspace{\fill}|. \end{quote} with the following: \begin{quote} The \verb|\vfill| command is equivalent to a blank line followed by \verb|\vspace{\fill}|. \end{quote} \subsubsection*{page 98, line 6} Remove an ``i'' from ``directiion''. % Arthur Keller, 1 Jan 86 \subsubsection*{page 102} In Figure~5.1, replace the two occurrences of ``-1.8'' by ``$-1.8$''. % Charles Karney, 6 Jan 86 \subsubsection*{page 104, line $-3$} Correct the spelling of ``positioning''. % Nelson Beebe, 27 Feb 86 % \subsubsection*{page 108} % There is an insignificant error in the picture of in the first % example box. \subsubsection*{page 113} {\sloppy Change the label on the arrow above Item~2 from \verb|\itemsep| to \verb|\itemsep + \parsep|.\par} % Stephen Gildea 24 Mar 86 \subsubsection*{page 116, line 20} Change ``fourteen-point Plus Roman'' to ``twelve-point Plus Roman''. % Arthur Keller, 1 Jan 86 \subsubsection*{page 118, line $-10$} Change this line to: \begin{small} \begin{verbatim} ... (myfile.tex [1] [2] [3] (part1.tex [4] [5]) (part2.tex [6] [7] \end{verbatim} \end{small} % Arthur Keller, 1 Jan 86 \subsubsection*{page 129} The following \LaTeX\ warning messages should be listed: \begin{itemize} \item[] {\tt No ... typeface in this size, using ...}\\ A type style declaration specified a type style and size combination that is not available, so \LaTeX\ is substituting another one. \item[] {\tt ... in math mode.}\\ The indicated command is not permitted in math mode but was used there. Remember that \verb|\boldmath|, \verb|\unboldmath|, and size-changing commands may not be used in math mode. \end{itemize} % Stephen Gildea, 14 Feb 86 \subsubsection*{pages 141--142} Change ``von Beethoven'' to ``van Beethoven''. % Louis E. Janus 15 Dec 86 \subsubsection*{page 142} Add the following near the bottom of the page, just above the {\bf Titles} heading. \begin{quote} If an {\tt author} or {\tt editor} field has more names than you want to type, just end the list of names with \index{and others}{\tt and others}; the standard styles convert this to the conventional {\em et al.} \end{quote} \subsubsection*{page 147, line 6} Change ``Scribe-compatible'' to ``{\em Scribe\/}-compatible''. % Oren Patashnik 10 Feb 86 \subsubsection*{page 152, line $-6$} Add \verb|\newtheorem| and \verb|\hyphenation| to the list of global declarations. % Hal Perkins 25 Mar 86 \subsubsection*{page 157, line $-10$} The first paragraph of Section~C.3.1 should note that the {\tt *}-form of a sectioning command does not affect the running head. % Oren Patashnik 24 Mar 86 \subsubsection*{page 158, line $-12$} Change ``chapters'' to ``appendix chapters''. % Hal Perkins 25 Mar 86 \subsubsection*{page 160, top line} Change ``(Section 5.6)'' to ``(Section 5.3)''. \subsubsection*{page 160, line $-9$} Change the description of the {\tt openbib} style option to: ``Causes the bibliography (Section 4.3) to be formatted in open style. (See van~Leunen~[7].)'' % Charles Karney, 6 Jan 85 \subsubsection*{page 163, line 19} Change ``Section 5.1.2'' to ``Section 5.1.1''. % Hal Perkins 25 Mar 86 \subsubsection*{page 168, line $-5$} Replace ``printed as \verb*|\ |'' by ``printed as \verb*| |''. \subsubsection*{page 169, line $-5$} Change ``first and third rows'' to ``first and third columns''. \subsubsection*{page 169, line $-3$} Add a period to the end of the sentence. \subsubsection*{page 170} Add the following paragraph after line 5: \begin{quote} An overfull \verb|\hbox| warning occurs if a formula extends beyond the prevailing margins. However, if the formula does lie within the margins, no warning is generated even if it extends far enough to overprint the equation number. \end{quote} \subsubsection*{page 174, line $-1$} Add the following sentence: ``It is a global declaration.'' % Hal Perkins 25 Mar 86 \subsubsection*{page 176} Change the four lines immediately following the heading for Section C.8.1 to: \begin{quote} \begin{tabular}{lll} \verb|\begin{figure}[|{\em loc\/}{\tt ]} & {\em body\/} & \verb|\end{figure}| \\ \verb|\begin{figure*}[|{\em loc\/}{\tt ]} & {\em body\/} & \verb|\end{figure*}| \\ \verb|\begin{table}[|{\em loc\/}{\tt ]} & {\em body\/} & \verb|\end{table}| \\ \verb|\begin{table*}[|{\em loc\/}{\tt ]} & {\em body\/} & \verb|\end{table*}| \end{tabular} \end{quote} % \subsubsection*{page 182, Figure C.5} % Interchange ``high'' and ``low'' % Stephen Gildea, 14 Feb 86 \subsubsection*{page 185, line $-5$} Replace ``suppresses command'' by ``command suppresses''. %Rusty Wright 5 Dec 85 \subsubsection*{page 187, lines 15--17} The sentence ``It also writes {\em bib\_files\/}\ldots'' is redundant and can be eliminated. % Charles Karney, 6 Jan 86 \subsubsection*{page 188, lines 1, 2, 4, 8} Change ``{\em key\_lst\/}'' to ``{\em key\_list\/}''. % Dave Johnson, 10 Mar 86 \subsubsection*{page 191, line 13} The word ``paragraph'' misspelled. % Mark Kent 9 Dec 85 \subsubsection*{page 191, line 14} Remove the space between \verb|\begin| and \verb|{sloppypar}|. (This is for consistency only; \LaTeX\ ignores the space.) \subsubsection*{page 199} Add the following sentence to the last paragraph on the page: \begin{quote} Words typeset in typewriter style or in two different styles are not hyphenated except where permitted by \verb|\-| commands. \end{quote} (This is a change to \LaTeX\ made on 18~December~1985.) Also, add the following index entry citations to this page: ``\verb|\-|'', ``hyphenation, suppressed'', and ``typewriter type style, no hyphenation in''. \subsubsection*{page 217} Add the subentry ``{\tt openbib}, 160'' to the index entry ``document-style option''. \subsubsection*{page 223, column 2, line 13} Change ``mad'' to ``made''. % Barbara Beeton, 23 Apr 86 \subsubsection*{page 225} Add page 47 to the index entry for ``Leunen, Mary-Claire van''. % Oren Patashnik \subsubsection*{page 228} In index entry for \verb|\multicolumn|, change ``194'' to ``184''. \subsubsection*{Tear-Out Command Sheet} In the first column, sixth line after ``Sentences and Paragraphs'' heading, replace ``\hbox{\& \verb|&|}'' by ``\hbox{\& \verb|\&|}''. \subsection{First Five Printings} \subsubsection*{page xiii, line $-7$} The hyphenation of ``Leunen'' is obviously incorrect. % Don Knuth 11 May 89 \subsubsection*{page7, line 33} Add the following sentence after ``[6].'' \begin{quote} (Many of the details of \LaTeX, including command names, were also taken from {\em Scribe}.) \end{quote} \subsubsection*{page 12, line $-7$} Replace ``every'' with ``ever''. % David Sullivan, 13 Apr 88 \subsubsection*{page 14} {\sloppy The discussion of space after a period should include an example like \verb*|et ``al.''\ | showing where to put the \verb*| | command when there is no space right after the period.\par} % John DeTreville, 7 Aug 90 \subsubsection*{Section 3.3.3, page 47} Somewhere, it should be mentioned that each item in an {\tt array} environment is a separate math formula. % Walter Taylor, 26 Mar 90 \subsubsection*{page 50, line 5} Replace the sentence beginning ``A $+$ or $-$'' with: \begin{quotation} A $+$ or $-$ that begins a formula (or certain subformulas) is assumed to be a unary operator, so typing \verb|$-x$| produces $-x$ (and typing \verb|$\sum -x_{i}$| produces $\sum -x_{i}$), with no space between the ``$-$'' and the ``$x$''. \end{quotation} % Joe Weening, 14 Dec 89 \subsubsection*{page 53, line 16} Change ``math itallic is the default in math mode'' to ``math italic is almost identical to the default type style of math mode''. % Matthew Swift, 6 Jun 89. \subsubsection*{page 71, last line} Change ``comand'' to ``command''. % William LeFebvre, 2 Jun 88 \subsubsection*{page 84} Add the following paragraph just after line~2. \begin{quote} Some commands, such as \verb|\chapter|, change the style of the current page. You can change it yourself with the \verb|\thispagestyle| command. \end{quote} Also, add the appropriate index entries for \verb|\thispagestyle| and \verb|\chapter|. \subsubsection*{page 88, line 29} Change ``its'' to ``it's''. % Cynthia Hibbard, 20 Jul 87 \subsubsection*{page 91, line 5} \begin{sloppypar} It should be noted that in the {\tt book} document style, \verb|\chapter| uses \verb|\cleardoublepage|. \end{sloppypar} \subsubsection*{page 111, line $-4$} Remove the extra {\tt t} from ``{\tt withtout}''. % Joseph Hurler 25 Aug 87 \subsubsection*{page 114, line 31} Change ``Section 5.6'' to ``Section 5.3''. % Helmer Aslaksen, 13 Oct 90 \subsubsection*{page 122, line 17} Change the sentence that begins ``The most probable cause is'' to the following: \begin{quote} The most probable cause is a list-making environment with no \verb|\item| command. \end{quote} % Oren Patashnik 19 Sep 86 \subsubsection*{Page 126, line 12ff} An un\verb|\protect|ed command---even a robust one---in the argument of one of these commands can cause \TeX\ to run out of this kind of space. It's a good idea to \verb|\protect| all commands in these arguments. % Flavio Rose, 13 Jun 86 \subsubsection*{Page 153, top of page} It should be noted that if the invisible ``word'' occurs at the end of a paragraph, not attached to a real word, then it could appear on a line by itself, producing a blank line in the output. \subsubsection*{Page 156} In the third line of the description of \verb|\footnotemark|, remove the phrase ``just like \verb|\footnote|''. % Stephen Peckham 31 Oct 89 \subsubsection*{Page 160, line $-7$} Replace ``{\tt equations}'' with ``{\tt equation}''. % Nelson Beebe, 8 Jan 88 \subsubsection*{Page 162} In the description of \verb|\pagenumbering|, it should be mentioned that the command sets the value of the {\tt page} counter to 1. \subsubsection*{Page 161, line $-9$} Replace ``head information'' by ``head information (but not page number)'' \subsubsection*{Page 162, line 6} Replace ``{\tt heading}'' by ``{\tt headings}''. % Mathieu Federspiel 18 Jul 88 \subsubsection*{Page 173, line $-2$} Replace ``{\em cmd\/}'' with ``\verb|\begin{|{\em nam\/}\verb|}|''. % Michinori Kawasaki, 30 Sep 90. \subsubsection*{Page 177, line 1} It should be noted that, in a two-column page style, a single-column figure can come before an earlier double-column figure, and vice-versa. % Sam Whidden, 5 Jun 86. \subsubsection*{Page 177, line 3} Replace ``{\em pos\/}'' by ``{\em loc\/}''. % Steve Kelem, 31 Oct 90 \subsubsection*{Page 177, line $-1$} Replace ``page'' with ``text page''. % Mike Fischer 20 Mar 87. \subsubsection*{Page 178, lines 1 and 8} Replace ``page'' with ``text page''. % Mike Fischer 20 Mar 87. \subsubsection*{Page 181, line 11} Replace ``or \verb|\| command'' with ``or \verb|\'| command''. % Michinori Kawasaki, 30 Sep 90. \subsubsection*{page 183} The description of \verb|\extracolsep| should mention that no extra space is put to the left of the first column. % Scott Simpson 12 May 88. \subsubsection*{page 191} Add to the description of \verb|\pagebreak| the information that it has an effect only when used in paragraph mode, not inside a parbox. % Andy Hisgen 27 Apr 89 \subsubsection*{page 191, line $-2$} Add a ``t'' to ``explicily''. % Nelson Beebe 9 Mar 89. \subsubsection*{page 213} Change the page reference for ``\verb|\bibitem|, moving argument of'' from 153 to 152. % Oren Patashnik 19 Sep 86 \subsubsection*{page 211} Change index entry for \verb|\AE| to page 40. % Jerry Leichter 28 Nov 88 \subsubsection*{page 213} Change the first page reference for ``{\tt bbl} (bibliography) file'' from 74 to 75. % Martin Abadi 14 Mar 88 Add page 95 to the entry for ``backspace''. % Walter Taylor 26 Mar 90 \subsubsection*{page 217} Add an index entry ``diacritical marks, see accents''. % Suggested by Hank Lewis 22 May 88 Move the index entry for \verb|\def| to its proper place on the preceding page. % Walter Taylor 26 Mar 90 \subsubsection*{page 219, index entry for ``figures''} Remove the ``and'' from the subentry for ``output by \verb|\end{document}|''. % David Wise 5 Aug 86 \subsubsection*{page 219, column 1, line 3} Replace ``anomolous'' by ``anomalous''. % Martin Abadi 20 Jul 88 \subsubsection*{page 223, left column, line 2} Remove the page number ``79'' from the first subentry under \verb|\index|. \subsubsection*{page 228} Change the page reference for ``\verb|\multicolumn|'' from 194 to 184. % 19 Sep 86 \subsubsection*{page 228} Remove the extra ``,'' from the index entries for \verb|\o| and \verb|\O|. % Nelson Beebe 14 Mar 88 \subsubsection*{page 234} Add ``48--49'' to the index entry for \verb|\right|. % Walter Taylor 26 Mar 90 latex209-25.may.1992.orig/readme.mar25100664 144 144 1337 5166176400 16225 0ustar nakaharastaffLaTeX updates, as of March 25, 1992. Since plain.tex was changed by Donald Knuth recently, it seems worthwhile to make the same changes to the lplain.tex and splain.tex files. At the same time, a number of minor problems and oversights have been corrected. For a detailed list consult the file latex.bug. The following files have been changed: latex.bug latex.tex local.tex lplain.tex slitex.tex splain.tex lcircle10.mf lcirclew10.mf line.mf line10.mf linew10.mf letter.doc proc.doc bezier.sty letter.sty proc.sty Note: the changes to the Metafont files do not affect the fonts themselves, they provide better error checking when Metafont is used with the wrong base file. Therefore it is NOT necessary to recompile the fonts. latex209-25.may.1992.orig/readme.feb21100664 144 144 2003 5161754600 16164 0ustar nakaharastaffThe letter document style dated 5-Nov-91, contained in the Jan92 release of LaTeX has a severe problem: the spacing of the list environment and friends will come out wrong. The same problem appears in all document styles and style options that redefine the \begin{document} command. It is necessary to add the control sequence \@noskipsecfalse to the end of the definition of the \document macro. I append a diff to this message, so that you can update letter.doc, letter.sty, and latex.bug. The updated files will be available in the archives during next week. Rainer Schoepf Konrad-Zuse-Zentrum ,,Ich mag es nicht, wenn fuer Informationstechnik Berlin sich die Dinge so frueh Heilbronner Strasse 10 am Morgen schon so D-1000 Berlin 31 dynamisch entwickeln!'' Federal Republic of Germany or ---------------------------------------------------------------- latex209-25.may.1992.orig/readme.jan92-version100664 144 144 1500 5161754600 17674 0ustar nakaharastaffLaTeX version 2.09 -- Release of Jan 14, 1992 --------------------------------------------- After the release of Dec91 a number of errors and incompatibilities were reported. In particular, the titlepage option of the article document style did no longer work, and there were two problems with the thebibliography environment: - Documents with more than 26 entries would produce strange error messages. - Styles derived from article would produce wrong numbers. These errors (and a few minor ones) have been corrected. The files changed are (see also LATEX.BUG for more details): latex.tex local.tex lplain.tex slitex.tex splain.tex article.doc/sty art10.doc/sty art11.doc/sty art12.doc/sty book.doc/sty bk10.doc/sty bk11.doc/sty bk12.doc/sty openbib.doc/sty report.doc/sty rep10.doc/sty rep11.doc/sty rep12.doc/sty latex.bug latex209-25.may.1992.orig/readme.dec91-version100664 144 144 1426 5161754600 17665 0ustar nakaharastaffLaTeX version 2.09 -- Release of Dec 1, 1991 -------------------------------------------- This release supercedes ILaTeX which is to disappear. There are some incompatibilities due to bug fixes. For more information see latex.bug. Especially fix #197 (changing the counter in thebibliography) and style changes #56/57 might cause problems for styles that were derived from the article standard document style. The Metafont source files have also been updated. This does not mean that the shape of the characters were changed, only a few internals like the font identifier for the invisible fonts, and the addition of a check so that the line and circle fonts can no longer be run with cmbase. It should be noted explicitly that ALL files have to be updated: otherwise it will not work.