diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/mit-press |
Initial commit
Diffstat (limited to 'macros/latex209/contrib/mit-press')
-rw-r--r-- | macros/latex209/contrib/mit-press/10mitprb.sty | 590 | ||||
-rw-r--r-- | macros/latex209/contrib/mit-press/mit-press-book.sty | 1261 | ||||
-rw-r--r-- | macros/latex209/contrib/mit-press/mitpraisf.tex | 68 | ||||
-rw-r--r-- | macros/latex209/contrib/mit-press/mitprbb.tex | 12 | ||||
-rw-r--r-- | macros/latex209/contrib/mit-press/mitprcogsci.tex | 127 | ||||
-rw-r--r-- | macros/latex209/contrib/mit-press/mitprpn.tex | 45 |
6 files changed, 2103 insertions, 0 deletions
diff --git a/macros/latex209/contrib/mit-press/10mitprb.sty b/macros/latex209/contrib/mit-press/10mitprb.sty new file mode 100644 index 0000000000..7202520db6 --- /dev/null +++ b/macros/latex209/contrib/mit-press/10mitprb.sty @@ -0,0 +1,590 @@ +% +% This file helps define the MIT-Press-Book document style, created and +% maintained by EB@OZ. Please do not modify it. +% +% Modified from REPORT DOCUMENT STYLE -- Released 23 September 1985 +% for LaTeX version 2.09 +% which was +% Copyright (C) 1985 by Leslie Lamport + +% **************************************** +% * FONTS * +% **************************************** +% + +\lineskip 1pt % \lineskip is 1pt for all font sizes. +\normallineskip 1pt +\def\baselinestretch{1} % see also \programspacing below + +% LaTex (LFONTS.TEX) leaves out some font sizes that we'll be using. +% Therefore we redefine \vipt and \viipt to remove the corresponding +% \@subfont calls. However, if we do this we must also create +% pxl font files of the proper magnifications for our printers. +% Since we've created new pxl font files for small \tt sizes only, +% we'll remove \@subfont calls for \tt alone. + +\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{ambx7 scaled857}}% +\def\ptt{\@getfont\ptt\ttfam\@vipt{amtt8 at 6pt}}% %% NEW +\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\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{ambx7}}% +\def\ptt{\@getfont\ptt\ttfam\@vipt{amtt8 at 7pt}}% %% NEW +\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} + +% 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{13pt}\xpt\@xpt +\abovedisplayskip 10pt plus2pt minus5pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt% +\belowdisplayshortskip 6pt plus3pt minus3pt} + +\def\small{\@setsize\small{11pt}\ixpt\@ixpt +\abovedisplayskip 8.5pt plus 3pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus2pt% +\belowdisplayshortskip 4pt plus2pt minus 2pt +\def\@listi{\topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +% We add several sizes in between \small and \tiny. +% They are mainly for use in typesetting large \tt programs +% or traces; they are not standard. +% In order, the sizes go \small \smaller \verysmall \quitesmall \tiny. +% +\def\smaller{\@setsize\smaller{10pt}\viiipt\@viiipt +\abovedisplayskip 7.5pt plus 3pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus2pt% +\belowdisplayshortskip 4pt plus2pt minus 2pt +\def\@listi{\topsep 3pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +\def\verysmall{\@setsize\verysmall{9pt}\viipt\@viipt +\abovedisplayskip 6.5pt plus 3pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus2pt% +\belowdisplayshortskip 4pt plus2pt minus 2pt +\def\@listi{\topsep 3pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +\def\tiny{\@setsize\tiny{8pt}\vipt\@vipt} + +\def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt +\abovedisplayskip 6pt plus 2pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus 1pt% +\belowdisplayshortskip 3pt plus 1pt minus 2pt +\def\@listi{\topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +% This one is new in the MIT-Press-Book style; it's not used in the +% REPORT style. +\def\captionsize{\@setsize\captionsize{10pt}\ixpt\@ixpt +\abovedisplayskip 6pt plus 2pt minus 4pt% +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus 1pt% +\belowdisplayshortskip 3pt plus 1pt minus 2pt +\def\@listi{\topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt +\itemsep \parsep}} + +% This one is new as well. It's used in the 'program' environment. +% +\def\programspacing{\newbaselinestretch{0.75}} + +\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} +\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. + +% PICTURE ENVIRONMENT BUG: +% +% Change \the\fontdimen8\tenlnw to a larger value so that +% \thicklines will work better with horizontal and vertical +% lines. I don't know what's wrong here; it may be our +% printers. +% + +\fontdimen8\tenlnw=1.0pt %% empirically determined value + + +% **************************************** +% * PAGE LAYOUT * +% **************************************** +% +% All margin dimensions measured from a point one inch from top and side +% of page. + +% SIDE MARGINS: +\oddsidemargin 56pt % Left margin on odd-numbered pages. +\evensidemargin 56pt % Left margin on even-numbered pages. +\marginparwidth 107pt % Width of marginal notes. +\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 24pt % Space between running head and text. +% \topskip = 10pt % '\baselineskip' for first line of page. + + % Bottom of page: +\footheight 0pt % Height of box containing running foot. +\footskip 0pt % Distance from baseline of box containing foot + % to baseline of last line of text. + + +% DIMENSION OF TEXT: + +\textheight 500pt % Height of text (including footnotes and figures, + % excluding running head and foot). +\textwidth 334pt % Width of text line. + % For two-column mode: +\columnsep 10pt % Space between columns +\columnseprule 0pt % Width of rule between columns. + +% Parameters used by the special table of contents format that's used +% in the MIT-Press-Book style. + +\newdimen\toc@leftwidth +\toc@leftwidth 7.5pc +\newdimen\toc@rightwidth +\toc@rightwidth 18.7pc +\newdimen\toc@colsep +\toc@colsep .8pc +\newdimen\toc@prechapterskip +\toc@prechapterskip 20pt +\newdimen\toc@postchapterskip +\toc@postchapterskip 8pt + +% 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. + +% CAPTIONSKIP -- Made a parameter in this document style. + +\newdimen\precaptionskip +\precaptionskip 0pt % default is none + +% 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 4.4pt plus 1pt % Extra vertical space between paragraphs. +\parindent 22pt % 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. + +\invertedparindent\parindent % This dimension is defined in the + % texlocal:invertedparagraphs file, + % which is read before this file is. + +% 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. + +\widowpenalty 10000 +\clubpenalty 10000 + + +% **************************************** +% * CHAPTERS AND SECTIONS * +% **************************************** +% +% + +\def\part{\cleardoublepageempty % Starts new page. + \thispagestyle{empty} % Page style of part page is 'empty' + \if@twocolumn % IF two-column style + \onecolumn % THEN \onecolumn + \@tempswatrue % @tempswa := true + \else \@tempswafalse % ELSE @tempswa := false + \fi % FI + \bgroup\parindent 0pt\raggedright\secdef\@part\@spart} + +\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2 + \refstepcounter{part} % THEN step part counter + \addcontentsline{toc}{part} + {\protect\numberline{\thepart} #1}\else% ELSE add unnumbered line + \addcontentsline{toc}{part}{#1}\fi % FI + \markboth{}{} + \ifnum \c@secnumdepth >-2\relax % IF secnumdepth > -2 + \@chapterheadlayout{Part \thepart:}{#1}\else + \@chapterheadlayout{}{#1}\fi + \@endpart} + +% \@endpart finishes the part page +% +\def\@endpart{\par\egroup % END centering + \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{\@chapterheadlayout{}{#1}\@endpart} + +% The chapter headings will be formatted as follows: +% +% Chapter 27 +% --------------------------------------------- +% Still Further Considerations +% +% The \@chapterheadlayout definition helps keep the line the same distance from +% the top of the page and the text regardless of what happens. +% However, things could be changed so that the text moves downward if +% the chapter has a long title. +% +% A \chapter*{...} chapter DOES appear in the table of contents, +% in this document style; however, it appears in a different format +% from a normal chapter. + +\def\@topchapterdecls{\parindent\z@\raggedright\Large\bf} + +\def\@topchapterbox#1{\hbox{\vbox to 58pt{\vfill + \parbox[b]{\textwidth}{\raggedright\hyphenpenalty5000 #1}}}\par + \hbox to \textwidth{\hrulefill}} + +\def\@bottomchapterbox#1{\hbox{}\par + \vbox to 65pt{\parbox[b]{\textwidth}{\raggedright\hyphenpenalty1000 #1}\vfill}} + +\def\@chapterheadlayout#1#2{\@topchapterbox{#1}\@bottomchapterbox{#2}} + +% \@makechapterhead {TEXT} : Makes the heading for the \chapter command. +% + +\def\@makechapterhead#1{ % Heading for \chapter command + \bgroup + \@topchapterdecls + % IF secnumdepth > -1 THEN + % print 'Chapter' and number. + \ifnum \c@secnumdepth >\m@ne + \@chapterheadlayout{\@chapapp\ \thechapter}{#1}\else + \@chapterheadlayout{}{#1}\fi + \nobreak + \egroup} + +% \@makeschapterhead {TEXT} : Makes the heading for the \chapter* command. +% + +\def\@makeschapterhead#1{ % Heading for \chapter* command + \bgroup + \@topchapterdecls + \@chapterheadlayout{}{#1}\nobreak + \egroup} + +% \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{\clearchapterpage % Starts new page, possibly leaving a blank one. + \thispagestyle{empty} % Page style of chapter page is empty + \global\@topnum\z@ % Prevents figures from going at top of page. + \@afterindentfalse % Suppresses indent in first paragraph. Change + \secdef\@chapter\@schapter} % to \@afterindenttrue to have indent. + +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter} + \typeout{Book \@chapapp\space\thechapter.} + \addcontentsline{toc}{chapter}{\protect + \numberline{\thechapter}#2}\else + \addcontentsline{toc}{chapter}{#1}\fi + \chaptermark{#1} + \addtocontents{lof}{\protect\addvspace{10pt}} % Adds between-chapter space + \addtocontents{lot}{\protect\addvspace{10pt}} % 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. + +% We arrange for \chapter* entries to appear in the table of contents, but +% indicated with "schapter" rather than "chapter". + +\def\@schapter#1{\addcontentsline{toc}{schapter}{#1}\if@twocolumn + \@topnewpage[\@makeschapterhead{#1}] + \else \@makeschapterhead{#1}\@afterheading\fi + \markboth{#1}{#1}} + +% \chapter{...} isn't supposed to be used in the front matter; +% \chapter*{...} is supposed to be used instead. + +\def\front@chapter[#1]#2{\front@schapter{#2}} + +\def\front@makeschapterhead#1{\bgroup % Heading for \chapter* command in + \parindent 0pt\raggedright % front matter + \large\uppercase{#1}\par\nobreak + \vspace{20pt} + \egroup + \@afterindenttrue + \@afterheading} + + +% \@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. + +% In the MIT-Press-Book style, I've set up only chapters and sections +% to suppress paragraph indentation -- not subsections. + +\def\section{\@startsection{section}{1}{\z@}{-3.5ex plus -1ex minus + -.2ex}{2.3ex plus .2ex}{\Large\bf\raggedright}} +\def\subsection{\@startsection{subsection}{2}{\z@}{3.25ex plus 1ex minus + .2ex}{1.5ex plus .2ex}{\large\bf\raggedright}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{3.25ex plus + 1ex minus .2ex}{1.5ex plus .2ex}{\large\sl\raggedright}} +\def\paragraph{\@startsection + {paragraph}{4}{\z@}{3.25ex plus 1ex minus .2ex}{-1em}{\normalsize + \sl\raggedright}} +\def\subparagraph{\@startsection + {subparagraph}{4}{\parindent}{3.25ex plus 1ex minus + .2ex}{-1em}{\normalsize\sl\raggedright}} + +% Default initializations of \...mark commands. (See below for their +% use in defining page styles. +% + +\def\chaptermark#1{} +% \def\sectionmark#1{} % Preloaded definitions +% \def\subsectionmark#1{} +% \def\subsubsectionmark#1{} +% \def\paragraphmark#1{} +% \def\subparagraphmark#1{} + +% 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. +% +% In this document style, we also set the tocdepth counter to +% zero so that sections of appendices will not go in the table +% of contents. +% +% Also, we do a \clearpage in the \appendix command in this document +% style. Among other things, that allows us to do an \immediate\write +% instead of a \write for the \addtocontents. + +\def\appendix{\clearpage + \setcounter{chapter}{0} + \setcounter{section}{0} + \def\@chapapp{Appendix} + \bgroup + \let\latexwrite\write + \def\write{\immediate\latexwrite} + \addtocontents{toc}{\protect\@tocappendix} + \egroup + \def\thechapter{\Alph{chapter}}} + +\def\@tocappendix{\def\@chapapp{Appendix}\setcounter{tocdepth}{0}} + + + +% INDEX INDENTATION + +\newlength\indexindent +{\small \global\indexindent=0.6em} + + +% **************************************** +% * 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 + +\def\@listi{\leftmargin\leftmargini} + +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep + \topsep 4pt plus 2pt minus 1pt + \parsep 2pt plus 1pt minus 1pt + \itemsep \parsep} + +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep + \topsep 2pt plus 1pt minus 1pt + \parsep \z@ \partopsep 1pt plus 0pt minus 1pt + \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} + diff --git a/macros/latex209/contrib/mit-press/mit-press-book.sty b/macros/latex209/contrib/mit-press/mit-press-book.sty new file mode 100644 index 0000000000..e8877fcef5 --- /dev/null +++ b/macros/latex209/contrib/mit-press/mit-press-book.sty @@ -0,0 +1,1261 @@ +% +% This file defines the MIT-Press-Book document style, created and +% maintained by EB@OZ. Please do not modify it. +% +% Modified from REPORT DOCUMENT STYLE -- Released 23 September 1985 +% for LaTeX version 2.09 +% which was +% Copyright (C) 1985 by Leslie Lamport + +\typeout{Document Style 'MIT-Press-Book'. Version of 23-Oct-86.} + +% The type size option is handled by reading a different file for each +% size, as follows, to define font size-specific commands: +% 10pt : 10MITPRB, 11pt : 11MITPRB, 12pt : 12MITPRB +% Implemented by \def'ing \@ptsize to second digit of file name. +% However, only 10pt is available now. +% + +\def\@ptsize{0} % Default is 10MITPRB.STY +\@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option reads in 11MITPRB.STY +\@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option reads in 12MITPRB.STY + +% Two-side or one-side printing: this document style only allows +% twoside. +% + +\@twosidetrue % Always two-sided printing. +\@mparswitchtrue % Marginpars go on outside of page. + +\newif\if@bradford +\newif\if@cogsci +\@bradfordfalse +\@cogscifalse + +\def\ds@bradford{\@bradfordtrue} + % 'bradford' option makes front matter + % come out as for a Bradford Book. + +\def\ds@cogsci{\@cogscitrue} % 'bradford,cogsci' makes front matter + % for Computational Models of + % Cognition and Perception + +\def\ds@twoside{} % Allows vacuous twoside option. + +% draft option +% +% \overfullrule = 0pt % Default is don't mark overfull hboxes. +\newif\ifdraft +\draftfalse +\def\ds@draft{\relax + \overfullrule 5pt\relax % Causes overfull hboxes to be marked. + \drafttrue} + +% 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 invertedparagraphs % from texlocal +\makeatletter + +\input 1\@ptsize mitprb.sty\relax + +\newif\if@restonecol % Used in a few places later. + +% This is used in the \programspacing definition in the 1xMITPRB file +% [at least]. It causes a change in \baselinestretch to become +% effective immediately. It has the unfortunate side-effect of +% selecting the \rm typeface. + +\def\newbaselinestretch#1{\def\baselinestretch{#1}\@currsize} + + +% **************************************** +% * 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. + +\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{$\bullet$} +\def\labelitemii{\bf --} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\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 0pt plus 1pt}\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 + +% INVERTED PARAGRAPHS +% +% Used for the bibliography, in this document style. +% +% The dimension \invertedparindent is set in the +% 1xMITPRB file. +% +% The invertedparagraphs environment is now defined by +% another file on TEXLOCAL:, which is read before the +% 1xMITPRB file. + +% TABBING BOXES +% +% The \begin{tabbingbox}...\end{tabbingbox} environment saves +% a tabbing environment in a box. This is one way to make a +% box out of a bunch of lines and have the width of the +% box be equal to the width of the longest line. Naturally, +% tabbing commands are also available in the box, but they aren't +% used much. +% +% An optional position argument [t], [b], or [c] as for \parbox +% may be supplied. The default is [b]. +% +% A second optional argument [boxnumber] causes the box to be +% saved in the indicated box number, instead of being returned. +% Sample use of this form: \begin{tabbingbox}[b][0]... +% +% The definition is on texlocal now. + +\input tabbingbox +\makeatletter + +% ALPHABETICALLY NUMBERED LISTS +% +% These are made part of the document style in case we want to change +% the format of the label in a standardized way. +% + +\newcounter{alphlist} +\renewcommand{\thealphlist}{(\alph{alphlist})} + +\newenvironment{alphlist}% +{\list{\thealphlist}{\usecounter{alphlist}\def\makelabel##1{##1\hfil}}}% +{\endlist} + +% \tt PROGRAMS AND TRACES +% +% We define a \begin{program}...\end{program} environment that is +% set in \tt with reduced line spacing. There's also a version +% that produces a box, \begin{programbox}...\end{programbox}, +% with the same optional arguments as \begin{tabbingbox}. +% +% Verbatim mode is not set, so TeX features can be used. +% \obeycr is not set either, since an \obeycr command can just +% be typed if desired. +% + +\def\program{\programspacing\tt\tabbing} +\let\endprogram\endtabbing + +\def\programbox{\programspacing\tt\tabbingbox} +\let\endprogrambox\endtabbingbox + + +% **************************************** +% * 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} +% +% In the MIT-Press-Book document style, I set theorems in \rm type +% instead of \it and I add a colon. I also make it easier to change +% this behavior by introducing the macro \theoremstart, which gets +% three arguments that are usually just concatenated but are supplied +% separately to allow possible font-switching: +% +% \theoremstart{Theorem}{1.3}{} +% \theoremstart{Theorem}{1.3}{ (Jones)}. +% +% Finally, I don't understand why Latex uses the \list environment +% to do theorems, and it makes things come out wrong from my point +% of view. I'll remove the use of \list as well. + +\def\theoremstart#1#2#3{\par\rm\noindent{\bf #1\ #2\rm#3\bf:\ }} + +\def\@begintheorem#1#2{\theoremstart{#1}{#2}{}} +\def\@opargbegintheorem#1#2#3{\theoremstart{#1}{#2}{ (#3)}} + +% 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 env. + +% 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}} + +% This macro is like \cleardoublepage, but its inserted blank +% page has an empty pagestyle. +\def\cleardoublepageempty{\clearpage\if@twoside \ifodd\c@page\else + \hbox{}\thispagestyle{empty}\newpage\if@twocolumn + \hbox{}\thispagestyle{empty}\newpage\fi\fi\fi} + +% In this document style, \cleardoublepage should always mean +% \cleardoublepageempty. + +\let\latexcleardoublepage\cleardoublepage +\let\cleardoublepage\cleardoublepageempty + +\let\clearchapterpage\cleardoublepageempty + +% \@chapapp is initially defined to be 'Chapter'. The \appendix +% command redefines it to be 'Appendix'. +% +\def\@chapapp{Chapter} + + +% **************************************** +% * 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 +% +% The MIT-Press-Book style does not use the \@dottedtocline macro. Instead, +% it uses a special contents style that is controlled by the parameters +% \toc@leftwidth, \toc@rightwidth, and \toc@colsep that are set by the +% 1xMITPRB file. The macro \toc@atpage{TITLE}{PAGE} could also be redefined. +% In addition, there's \toc@prechapterskip and \toc@postchapterskip. + +\def\toc@atpage#1#2{#1~~#2\hfill} + +% The l@TYPE macros receive arguments l@TYPE{NUMBEREDTITLE}{PAGE}, +% where NUMBEREDTITLE is actually {\numberline{NUM}TITLE} if there's +% a section number. + +\newbox\toc@leftbox +\newbox\toc@rightbox + +\def\l@chapter#1#2{\bgroup + \pagebreak[3]\parindent\z@ + \def\numberline##1{\global\setbox\toc@leftbox\hbox to \toc@leftwidth + {\large \@chapapp\ ##1\hfill}} + % #1 better use \numberline! + \setbox\toc@rightbox\hbox + {\parbox[t]{\toc@rightwidth}{\raggedright\bf + \toc@atpage{#1}{#2}\large\strut}} + \vspace{\toc@prechapterskip} + \hbox to \textwidth{\hbox to \toc@leftwidth{\hrulefill}\hskip + \toc@colsep\hbox to \toc@rightwidth{\hrulefill}\hfill} + \nopagebreak\par + \hbox to\textwidth{\box\toc@leftbox\hskip\toc@colsep\box\toc@rightbox\hfill} + \lineskip\parskip\nopagebreak\par + \hrule height\z@\nopagebreak + \vspace{\toc@postchapterskip} + \egroup} + +% The definition of \@schapter in this document style arranges for a +% contents line entry that calls \l@schapter for a \chapter* section. + +\def\l@schapter#1#2{\bgroup + \parindent\z@ + \hbox to \textwidth{\large\rm\toc@atpage{#1}{#2}\hfill} + \par\egroup} + +\def\l@part#1#2{\bgroup + \pagebreak[3] + \parindent\z@ + \def\numberline##1{\global\setbox\toc@leftbox\hbox{\large\bf Part ##1: }} + \vspace{\toc@prechapterskip} + \setbox\toc@rightbox\hbox + {\parbox[t]{\toc@rightwidth % not really the right parameter + }{\large\bf #1}} + \hbox to \textwidth{\box\toc@leftbox\box\toc@rightbox\hfill} + \par + \nobreak + % Remove prechapter skip + \vspace{-\toc@prechapterskip} + \egroup} + +\def\l@section#1#2{\ifnum 1>\c@tocdepth \else + \nopagebreak[2]\bgroup\raggedright + \@tempdima\toc@leftwidth + \advance\@tempdima\toc@colsep + \parindent\z@\parskip\z@\leftskip\@tempdima + \def\numberline##1{} + \toc@atpage{#1}{#2} + \par\egroup + \fi} + +% Contents entries for subsections are turned off by +% default. But if they were turned on, they would come out in the +% same style (without section numbers) but indented slightly and +% in slanted type. + +\def\l@subsection#1#2{\ifnum 2>\c@tocdepth \else + \bgroup\raggedright + \@tempdima\toc@leftwidth + \advance\@tempdima\toc@colsep + \advance\@tempdima 2em + \parindent\z@\parskip\z@\leftskip\@tempdima + \def\numberline##1{} + \toc@atpage{#1}{#2} + \par\egroup + \fi} + +\def\l@subsubsection#1#2{\ifnum 3>\c@tocdepth \else + \bgroup\raggedright + \@tempdima\toc@leftwidth + \advance\@tempdima\toc@colsep + \advance\@tempdima 4em + \parindent\z@\parskip\z@\leftskip\@tempdima + \def\numberline##1{} + {\sl\toc@atpage{#1}{#2}} + \par\egroup + \fi} + +% Since I don't know how anything further should come out, +% I'll just disallow them. + +\def\l@paragraph#1#2{} +\def\l@subparagraph#1#2{} + +% Lists of tables and figures aren't really supported in the +% MIT-Press-Book style, but these definitions will marginally +% work in the \begin{frontmatter}...\end{frontmatter} style. + +% LIST OF FIGURES +% +\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\chapter*{List of Figures}\@starttoc{lof}\if@restonecol\twocolumn + \fi} + +\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} + +\def\@pnumwidth{1.55em} +\def\@tocrmarg {2.55em} +\def\@dotsep{4.5} + +% LIST OF TABLES +% +\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\chapter*{List of Tables}\@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. +% +% In the MIT-Press-Book document style, the Latex bibliographic database +% is not currently supported. References are entered by hand. +% +% Also, for some reason MIT Press prefers 'References' to +% 'Bibliography' so we use that as the chapter* heading. +% +% This thebibliography environment doesn't take an argument. + +\def\thebibliography{\addtocontents{toc}{\vskip\toc@prechapterskip} + \chapter*{References}\invertedparagraphs + \def\newblock{\hskip .11em plus .33em minus -.07em} + \sloppy + \sfcode`\.=1000\relax + \label{start-biblio}} + +\def\endthebibliography{\endlist\label{end-biblio}} + +% \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. +% +% Index entries are produced automatically by Latex, but the sorted +% index itself must be produced by other means. +% +% The commands \mainentry{...}, \subentry{...}, and \newdictletter{...} +% that are defined here correspond to the commands that are produced +% by an index sorting system that runs on MIT-PREP (contact eb@oz). +% +% If that system is used, the following syntax should be used +% for \index commands, involving certain bracketed keywords: +% +% \index{Main topic} +% \index{Main topic, subtopic} %% ", " is separator +% \index{Main,~topic,~with,~commas, subtopic} %% ",~" is not separator +% +% never \index{{\it Topic, subtopic}} %% NEVER do this -- +% %% topic and subtopic will be +% %% mechanically split +% %% apart during the sorting +% %% process and the braces +% %% won't match any more!! +% \index{\it Topic, subtopic} %% This is OK but only the +% %% topic will be italicized. +% +% \index{[begin] Complexity classes, discussion of} %% start a range +% \index{[end] Complexity classes, discussion of} %% end a range +% +% \index{3SAT [as] three-sat} %% alphabetize as "three-sat" +% \index{{\it Aspects\/}, contrasted with modern work} %% already alphabetizes +% %% correctly +% \index{3SAT [as] three-sat, 3CNF and [as] three-cnf and} +% +% \index{Computational complexity [see] Complexity} %% refer elsewhere +% \index{Problem, methods for solving [see] Algorithm} %% refer elsewhere +% +% never \index{...&%<>@#...} -- some characters forbidden +% +% these \nindex{complexity classes} are... +% % roughly like: +% % \index{Complexity classes}complexity classes +% +% ... work by \nindex[N.]{Chomsky} ... +% % \index{Chomsky,~N.}Chomsky +% +% ... solving the \nindex{problem}[solving the] ... +% % roughly like +% % \index{Problem, solving the}problem +% + +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 15pt\relax\twocolumn +\chapter*{Index}\small\parindent\z@\parskip\z@ plus .3pt\relax +\raggedright +\let\item\@idxitem\frenchspacing} + +\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} + +% The \nindex macro will capitalize the first token of its argument, +% if the first token is a letter. It will also skip over the known +% typeface-changing commands \rm, \it, \em, \sl, \bf, +% but over no other commands. Thus \nindex{computational complexity} +% and \nindex{\it computational complexity} will both capitalize +% the first "C". +% +% Note that \nindex{\it Aspects} capitalizes the index entry as well +% as the text, while {\it \nindex{parallel computation}} capitalizes +% only the text. + +\def\@idxredefs{\def~{\string~}\def\@tempa{ }% +\edef\cal{\string\cal\@tempa}% +\edef\sc{\string\sc\@tempa}% +} + +\newtoks\idx@toks + +% \@nindexA{...} -- just one argument +% +\def\@nindexA#1{{\global\cap@toks{}\@caplook#1\@@capend + \@idxredefs\xdef\@tempa{{\the\cap@toks}}\expandafter + \index\@tempa}{#1}} + +\def\nindex{\@ifnextchar[\@nindexB\@nindexY} + +% \@nindexB[N.]{Chomsky} +% +\def\@nindexB[#1]#2{{\global\cap@toks{}\@caplook#2\@@capend + \@idxredefs\xdef\@tempa{{\the\cap@toks,~#1}}\expandafter + \index\@tempa}{#2}} + +% can't use \@ifnextchar here because it gobbles spaces!! + +\def\@nindexY#1{\def\@idxtempa{{#1}}\futurelet\@idxtempb\@nindexZ} +\def\@nindexZ{\if[\@idxtempb\def\@idxtempb{\expandafter + \@nindexC\@idxtempa}\else + \def\@idxtempb{\expandafter\@nindexA\@idxtempa}\fi%] +\@idxtempb} + +% \@nindexC{topic}[subtopic] +% +\def\@nindexC#1[#2]{{\global\cap@toks{}\@caplook#1\@@capend + \@idxredefs\xdef\@tempa{{\the\cap@toks, #2}}\expandafter + \index\@tempa}{#1}} + +% Capitalizing mechanism for ...text...\@@capend: +% If the first token of ...text... is identifiable as a letter, +% capitalize it. Skip over a small set of known font-changing commands when +% looking for the first token. This only works for easy cases. +% (Note: There's not any \capitalize any more; it was only defined +% for testing.) +% +% \capitalize{foo} ==> Foo +% \capitalize{\it foo} ==> \it Foo +% \capitalize{{\it foo}}==> {\it foo} %% doesn't capitalize +% +% The special-effect typefaces \sc, \tt, \sf aren't in the list. +% All of this is actually very hard to accomplish. +% +% The expansion actually involves "\uppercase{f}" instead of "F". + +\newtoks\cap@toks + +\def\@tokadd#1#2{#1=\expandafter{\the#1#2}} + +\def\@caplook{\futurelet\@tempa\@captest} + +\def\@capgobble#1\@@capend{\global\cap@toks\expandafter{\the\cap@toks #1}} + +\def\@capskip{\def\@tempa##1{\global\@tokadd\cap@toks{##1}\@caplook}} + +\def\@captest{\relax +\ifcat a\@tempa\def\@tempa##1{\global\@tokadd\cap@toks + {\uppercase{##1}}\@capgobble}% +\else\ifx \@tempa\rm \@capskip + \else\ifx \@tempa\it \@capskip + \else\ifx \@tempa\em \@capskip + \else\ifx \@tempa\sl \@capskip + \else\ifx \@tempa\bf \@capskip + \else\let\@tempa\@capgobble\fi\fi\fi\fi\fi\fi\@tempa} + +\def\@idxitem{\parindent 0\indexindent\par\hangindent 1\indexindent} + +\def\subitem{\parindent 2\indexindent\par\hangindent 3\indexindent} + +\def\subsubitem{\parindent 4\indexindent\hangindent 5\indexindent} + +\def\indexspace{\par \vspace{10pt plus 5pt minus 3pt}} + +% Routines called by output of sorting procedures + +\def\mainentry#1{\pagebreak[2]\item {#1}} + +\def\subentry#1{\subitem {#1}} + +\def\newdictletter#1{\indexspace} + + +% **************************************** +% * 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$^{\@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$^{\@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} + +% Redefine the \caption command so that the optional argument is null +% if omitted, instead of defaulting to the caption text. This is +% because we're assuming captions are long and will cause \caption to +% choke if the optional argument is omitted. + +\long\def\nulldefault@dblarg#1{\@ifnextchar[{#1}{\ndfl@xdblarg{#1}}} +\long\def\ndfl@xdblarg#1#2{#1[]{#2}} + +\def\caption{\refstepcounter\@captype \nulldefault@dblarg{\@caption\@captype}} + +% \@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. +% In this document style, we use footnote-style captions. + +\newif\iflongcaption % can be temporarily set true + % so it won't try the hbox bit + +\long\def\@makecaption#1#2{ + \bgroup\captionsize % 10MITPRB defines \captionsize + \vskip\precaptionskip + \iflongcaption + #1: #2\par + \else + \setbox\@tempboxa\hbox{#1: #2} + \ifdim \wd\@tempboxa >\hsize % IF longer than one line: + \unhbox\@tempboxa\par % THEN set as ordinary paragraph. + \else % ELSE center. + \hbox to\hsize{\hfil\box\@tempboxa\hfil} + \fi + \fi + \egroup} + +% The caption style can be temporarily redefined to produce effects like +% "Figure 10 (facing page):", as in +% +% \setcaptionstyle[figure]{Figure \thefigure\ (facing page)} +% +% Here we make the "optional" argument required, so it can't be left out. +% + +\def\setcaptionstyle[#1]#2{\expandafter\def\csname fnum@#1\endcsname} + +% A command for putting a separator rule at the bottom of a figure. + +\newcommand{\figurerule}{\par\vskip 5pt\hrule\vskip 5pt\relax} + +% This one goes at the top of a figure that's at the bottom of the page. + +\newcommand{\bottomfigurerule}{\par\hrule\relax} + +% Define a synonym for compatibility with some older files of ours. + +\let\longcaption\caption + +% 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{Figure \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{Table \thetable} +\def\table{\@float{table}} +\let\endtable\end@float +\@namedef{table*}{\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat} + + +% **************************************** +% * TITLE AND ABSTRACT * +% **************************************** +% +% +% The titlepage environment is omitted here, since there are more +% specialized macros for making the half-title and full-title pages +% in this document style. + +% \input titlepage.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. +% + +\mark{{}{}} % Initializes TeX's marks + +% \def\ps@empty{\def\@oddhead{} +% \def\@oddfoot{} +% \def\@evenhead{}\def\@evenfoot{}} +% +% \def\ps@plain{\def\@oddhead{} +% \def\@oddfoot{\rm\hfil\thepage\hfil} +% \def\@evenhead{} +% \let\@evenfoot\@oddfoot} + +% In this document style, I have introduced a counter 'headmarkdepth' that +% determines whether sections, subsections, etc. change the page heading. + +\newcounter{headmarkdepth} + +\def\ps@headings{\def\@oddfoot{}% % No feet. +\def\@evenfoot{}% % No feet. +% +% Heading style across two pages: +% nn Methodological Preliminaries | Chapter 2 nn +% +\def\@evenhead{{\small\bf \thepage}\hfill % Left heading. + {\let\\ \relax\sl\leftmark}}% +\def\@oddhead{{\sl \rightmark}\hfill + {\let\\ \relax\small\bf\thepage}}% % Right heading. +% +\def\chaptermark##1{\ifnum 0>\c@headmarkdepth\else\markboth{##1}{\@chapapp\ \thechapter}\fi}% +\def\sectionmark##1{\ifnum 1>\c@headmarkdepth\else\markright{##1}\fi}% +\def\subsectionmark##1{\ifnum 2>\c@headmarkdepth\else\markright{##1}\fi}% +} + +\ps@headings + + +% **************************************** +% * 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)} +% + + +% ********************************************* +% * SPECIAL PAGE FORMAT * +% ********************************************* +% +% Alignment marks and a copyright notice are added. +% + +\def\@vcut{\hrule height 18pt depth 0pt width .5pt\relax} +\def\@hcut{\vrule height .5pt depth 0pt width 17.5pt\relax} + +\def\@ltcut{ + \vbox to 24pt{ + \hbox to 0pt{\hskip-30pt\vbox to 0pt{\@vcut\vss}\@hcut\hfil} + \vfil}} +\def\@lbcut{ + \vbox to 24pt{ + \vfil + \hbox to 0pt{\hskip-30pt\vbox{\@vcut}\@hcut\hfil}}} +\def\@rtcut{ + \vbox to 24pt{ + \hbox to 0pt{\hfil\@hcut\vbox to 0pt{\@vcut\vss}\hskip-30pt} + \vfil}} +\def\@rbcut{ + \vbox to 24pt{ + \vfil + \hbox to 0pt{\hfil\@hcut\vbox{\@vcut}\hskip-30pt}}} + +\def\@outputpage{\begingroup\catcode`\ =10 \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{\normalsize \baselineskip\z@ \lineskip\z@ + \vskip \topmargin \moveright\@themargin + \vbox{\hbox to 27pc{\@ltcut\hfil\@rtcut}\setbox\@tempboxa + \vbox to\headheight{\vfil \hbox to\textwidth{\@thehead}} + \dp\@tempboxa\z@ + \box\@tempboxa + \vskip \headsep + \box\@outputbox + \vskip0pt + \hbox to 27pc{\@lbcut\hfil\@rbcut} + \hbox to 27pc{\hfil\vrule width 0pt height 10pt\bf + \arabic{page}\hfil} + \vskip 10pt + \hbox to 27pc{\hfil\presscopyright\hfil}}} + \global\@colht\textheight + \endgroup + \stepcounter{page}\let\firstmark\botmark} + +\def\presscopyright{\rm Copyright \copyright\ \today\ by the MIT Press} + + +% **************************************** +% * FRONT MATTER * +% **************************************** +% +% The environment \begin{frontmatter}...\end{frontmatter} is used for +% the title page, table of contents, preface, and so forth. It +% redefines the page numbering. Sections should be indicated with +% the \chapter* command. + +\newif\ifpluralauthors +\pluralauthorsfalse + +\long\def\@contentsignore#1\@endcontentsignore{} + +\def\frontmatter{\def\thepage{\roman{page}}\relax + \let\@makeschapterhead\front@makeschapterhead + \clearpage + \setcounter{page}{1}\setcounter{footnote}{0}\relax + \let\@chapter\front@chapter + \let\clearchapterpage\clearpage + % no contents lines until table of contents has been output + \addtocontents{toc}{\protect\@contentsignore} + % no page numbering until table of contents has been output + \pagestyle{empty}} + +\def\endfrontmatter{\cleardoublepageempty + \setcounter{page}{1}\setcounter{footnote}{0}} + +\if@bradford +\def\halftitlepage#1{\clearpage\bgroup + \@topchapterdecls\@topchapterbox{#1\vspace{0.5in}}\egroup + \thispagestyle{empty}\clearpage} +\else +\def\halftitlepage#1{\clearpage\bgroup\flushleft + \def\baselinestretch{1.10}\Large\bf#1\endflushleft + \egroup\thispagestyle{empty}\clearpage} +\fi + +\if@bradford +\def\fulltitlepage#1#2{\cleardoublepageempty + \begingroup + \let\clearpage\relax\halftitlepage{#1}\flushleft + \large\rm #2\vfill + \normalsize\bf A Bradford Book\\ + \rm The MIT Press\\Cambridge, Massachusetts\\ + London, England\endflushleft + \endgroup\thispagestyle{empty}\newpage} +\else +\def\fulltitlepage#1#2{\cleardoublepageempty + \begingroup\flushleft + \def\baselinestretch{1.10}\Large\bf#1\\[20pt]\large\rm#2\\ + \vfill\normalsize The MIT Press\\Cambridge, Massachusetts\\ + London, England\endflushleft + \endgroup\thispagestyle{empty}\newpage} +\fi + +\if@bradford +\if@cogsci +\def\bookseriespage#1{\clearpage{\flushleft\rm +\input mitprcogsci \\ +{\bf Computational Models of Cognition and Perception}\\[5pt] +Editors\\[5pt] +#1\\[10pt]}\raggedright\parindent\z@} +\else +\def\bookseriespage{\clearpage + \@topchapterdecls\@topchapterbox{}\normalsize\parskip\z@ + \vspace{10pt}\mbox{\input mitprbb }\ \large\bf Bradford Books\par + \vspace{10pt}\small\rm + \invertedparagraphs} +\fi +\else +\def\bookseriespage{\clearpage\flushleft\small\parskip 8pt} +\fi + +\if@bradford +\if@cogsci +\def\seriesbook#1 #2\par{{\it #1}, #2\par} +\else +\def\seriesbook#1 #2/#3. \par{#2. #1. #3.\par} +\fi +\else +\def\seriesbook#1 #2\par{{\sl #1\/} #2\par} +\fi + +\if@bradford +\if@cogsci +\def\endbookseriespage{\clearpage} +\else +\def\endbookseriespage{\endinvertedparagraphs\clearpage} +\fi +\else +\def\endbookseriespage{\endflushleft\clearpage} +\fi + +% TABLEOFCONTENTS +% In report style, \tableofcontents, \listoffigures, etc. are always +% set in single-column style. @restonecol + +% This should be done inside \begin{frontmatter}...\end{frontmatter}, +% for this document style. Otherwise the \chapter* command here +% won't work as we expect. + +\def\tableofcontents{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi + \chapter*{Contents}\bgroup\raggedbottom + \raggedright\hyphenpenalty1000\@starttoc{toc}\egroup + \if@restonecol\twocolumn\fi + \pagestyle{headings}\let\clearchapterpage\cleardoublepageempty + \addtocontents{toc}{\protect\@endcontentsignore}} + +% Sample usage of \libraryofcongress: +% +% \begin{copyrightpage} +% +% \publishersnote +% +% \libraryofcongress +% \author Berwick, Robert C. +% \title The acquisition of syntactic knowledge. +% \series (The MIT Press series in artificial intelligence.) +% \keywords 1.~Artificial intelligence. 2.~Linguistics---Data processing. +% 3.~Language acquisition. 4.~Learning---Mathematical models. I.~Title. +% II.~Series. +% \numbers Q335.B48 1985 \and 401.9 \and 85--11460 +% \isbn 0-262-02226-5 +% \done +% +% \end{copyrightpage} + +\def\publishersnote{\input mitprpn } + +\def\copyrightpage{\flushleft\parskip 10pt} +\def\endcopyrightpage{\vfill\clearpage} + +% redefine this if the bibliography pages have to be killed from the entry; +% MIT Press actually says to leave them out +\def\libraryofcongressbib{Bibliography: p.\pageref{start-biblio}--\pageref{end-biblio}} +%\def\libraryofcongressbib{Bibliography: p.} + +\def\libraryofcongress\author #1\title #2\series #3\keywords #4\numbers #5\isbn #6\done +{{\bf Library of Congress Cataloging-in-Publication Data}\par +\begin{minipage}{3.5in}\raggedright\let\and\qquad +\def\skip{\hskip 2em\relax}% +#1\\ +{\skip #2}\par +{\skip #3}\\ +{\skip \libraryofcongressbib}\\ +{\skip Includes index.}\\ +{\skip\let\and\quad #4}\\ +#5\\ +ISBN #6 +\end{minipage}} + +\def\aiseriesforeword{\input mitpraisf } + + +% **************************************** +% * INITIALIZATION * +% **************************************** +% +% Default initializations + +\pagenumbering{arabic} % Arabic page numbers +\onecolumn % Single-column. +\flushbottom % No ragged bottom. + +% The value of the counter secnumdepth gives the depth of the +% highest-level sectioning command that is to produce section numbers. +% +% \chapter = 0 +% \section = 1 +% \subsection = 2 + +\setcounter{secnumdepth}{1} % Default: Sections only, not subsections. +\setcounter{tocdepth}{1} % Contents lines for sections but not + % subsections. +\setcounter{headmarkdepth}{0} % Default: Chapters only. + +% As for the Latex small-caps font-loading bug, we'll have none of it. + +\load{\normalsize}{\cal} +\load{\small}{\cal} +\load{\large}{\cal} +\load{\normalsize}{\sc} +\load{\large}{\sc} +\load{\small}{\sc} +\load{\normalsize}{\sf} + +% +% Load some convenient abbreviations as part of the document style. +% Also, change the format used by the \sectref command. +% + +\input etcetera % on texlocal +\makeatletter +\def\sectref{section~\ref} + diff --git a/macros/latex209/contrib/mit-press/mitpraisf.tex b/macros/latex209/contrib/mit-press/mitpraisf.tex new file mode 100644 index 0000000000..a5e5f1555e --- /dev/null +++ b/macros/latex209/contrib/mit-press/mitpraisf.tex @@ -0,0 +1,68 @@ + +% This file is logically part of MIT-Press-Book.STY, created and maintained +% by EB@OZ. Please do not change it. + +% To be input within \begin{frontmatter}...\end{frontmatter}. + +\chapter*{Series Foreword} + +Artificial intelligence is the study of intelligence using the ideas +and methods of computation. Unfortunately, a definition of +intelligence seems impossible at the moment because intelligence +appears to be an amalgam of so many information-processing and +information-representation abilities. + +Of course psychology, philosophy, linguistics, and related disciplines +offer various perspectives and methodologies for studying +intelligence. For the most part, however, the theories proposed in +these fields are too incomplete and too vaguely stated to be realized +in computational terms. Something more is needed, even though +valuable ideas, relationships, and constraints can be gleaned from +traditional studies of what are, after all, impressive existence +proofs that intelligence is in fact possible. + +Artificial intelligence offers a new perspective and a new +methodology. Its central goal is to make computers intelligent, both +to make them more useful and to understand the principles that make +intelligence possible. That intelligent computers will be extremely +useful is obvious. The more profound point is that artificial +intelligence aims to understand intelligence using the ideas and +methods of computation, thus offering a radically new and different +basis for theory formation. Most of the people doing artificial +intelligence believe that these theories will apply to any intelligent +information processor, whether biological or solid state. + +There are side effects that deserve attention, too. Any program that +will successfully model even a small part of intelligence will be +inherently massive and complex. Consequently, artificial intelligence +continually confronts the limits of computer science technology. The +problems encountered have been hard enough and interesting enough to +seduce artificial intelligence people into working on them with +enthusiasm. It is natural, then, that there has been a steady flow of +ideas from artificial intelligence to computer science, and the flow +shows no sign of abating. + +%Robotics is the part of Artificial Intelligence concerned with the +%intelligent connection of perception to action. A key issue in +%Robotics is understanding the mechanics of manipulation as a basis for +%the successful planning and execution of robot tasks. Currently, we +%cannot claim to understand manipulation. Our knowledge of robotics is +%almost entirely empirical. If fundamental principles exist, we have +%not discovered them. We consider this book to be an important step +%toward uncovering such principles. + +The purpose of this MIT Press Series in Artificial +Intelligence is to provide people in many areas, both professionals +and students, with timely, detailed information about what is +happening on the frontiers in research centers all over the world. + +\vskip 10pt +\noindent +Patrick Henry Winston \hfill Michael Brady + +\vfill + +\newpage + +% end of Series Foreword + diff --git a/macros/latex209/contrib/mit-press/mitprbb.tex b/macros/latex209/contrib/mit-press/mitprbb.tex new file mode 100644 index 0000000000..264f36ee9f --- /dev/null +++ b/macros/latex209/contrib/mit-press/mitprbb.tex @@ -0,0 +1,12 @@ +% Bradford Books back-to-back "B" logo. +% Part of MIT-PRESS-BOOK document style, maintained by EB@OZ. +% Please do not change this. +\hbox{\setlength{\unitlength}{2pt}\thicklines +\begin{picture}(9,7) +\put(3.5,1){\oval(7,2)[l]} +\put(4.5,1){\oval(7,2)[r]} +\put(3.5,0){\line(0,1){7}} +\put(4.5,0){\line(0,1){7}} +\put(3.5,7){\line(-1,0){1}} +\put(4.5,7){\line(1,0){1}} +\end{picture}}\endinput diff --git a/macros/latex209/contrib/mit-press/mitprcogsci.tex b/macros/latex209/contrib/mit-press/mitprcogsci.tex new file mode 100644 index 0000000000..46b9249132 --- /dev/null +++ b/macros/latex209/contrib/mit-press/mitprcogsci.tex @@ -0,0 +1,127 @@ +%%% ************************************************************************* +%%% * This file is mechanically generated by translation from an Illustrate * +%%% * figure. Do not edit this file directly. * +%%% ************************************************************************* +\bgroup +\setlength{\unitlength}{0.8cm} +\begin{picture}(1.7606295,1.4401575)(0,0) +\thicklines +\put(0.12992126,0.53346455){\circle*{0.06259842}} +\put(0.16968504,0.534252){\circle*{0.06259842}} +\put(0.20905511,0.5346457){\circle*{0.06259842}} +\put(0.2488189,0.53385824){\circle*{0.06259842}} +\put(0.28818896,0.53110236){\circle*{0.06259842}} +\put(0.32755905,0.52559054){\circle*{0.06259842}} +\put(0.36535433,0.5137795){\circle*{0.06259842}} +\put(0.3988189,0.4929134){\circle*{0.06259842}} +\put(0.42874014,0.46732283){\circle*{0.06259842}} +\put(0.45511812,0.43779528){\circle*{0.06259842}} +\put(0.47637796,0.4043307){\circle*{0.06259842}} +\put(0.4956693,0.36968505){\circle*{0.06259842}} +\put(0.51338583,0.33425197){\circle*{0.06259842}} +\put(0.5283465,0.2976378){\circle*{0.06259842}} +\put(0.5425197,0.26062992){\circle*{0.06259842}} +\put(0.5559055,0.22322835){\circle*{0.06259842}} +\put(0.5685039,0.18582678){\circle*{0.06259842}} +\put(0.5807087,0.1480315){\circle*{0.06259842}} +\put(0.5933071,0.11023622){\circle*{0.06259842}} +\put(0.6066929,0.073228344){\circle*{0.06259842}} +\put(0.62598425,0.03858268){\circle*{0.06259842}} +\put(0.6559055,0.047637794){\circle*{0.06259842}} +\put(0.67165357,0.08385827){\circle*{0.06259842}} +\put(0.68307084,0.12165354){\circle*{0.06259842}} +\put(0.6929134,0.16023622){\circle*{0.06259842}} +\put(0.7011811,0.19881889){\circle*{0.06259842}} +\put(0.7090551,0.23779528){\circle*{0.06259842}} +\put(0.71614176,0.27677166){\circle*{0.06259842}} +\put(0.72283465,0.31574804){\circle*{0.06259842}} +\put(0.72913384,0.3547244){\circle*{0.06259842}} +\put(0.73503935,0.3940945){\circle*{0.06259842}} +\put(0.74094486,0.43307087){\circle*{0.06259842}} +\put(0.7468504,0.47244096){\circle*{0.06259842}} +\put(0.7519685,0.511811){\circle*{0.06259842}} +\put(0.7574803,0.5507874){\circle*{0.06259842}} +\put(0.76259845,0.5901575){\circle*{0.06259842}} +\put(0.7677165,0.62952757){\circle*{0.06259842}} +\put(0.77283466,0.6688976){\circle*{0.06259842}} +\put(0.77755904,0.7082677){\circle*{0.06259842}} +\put(0.7822835,0.7476378){\circle*{0.06259842}} +\put(0.78700787,0.78700787){\circle*{0.06259842}} +\put(0.7917323,0.8263779){\circle*{0.06259842}} +\put(0.7964567,0.86574805){\circle*{0.06259842}} +\put(0.8011811,0.9051181){\circle*{0.06259842}} +\put(0.80551183,0.94448817){\circle*{0.06259842}} +\put(0.8102362,0.9838583){\circle*{0.06259842}} +\put(0.8145669,1.0232283){\circle*{0.06259842}} +\put(0.81929135,1.0625985){\circle*{0.06259842}} +\put(0.82401574,1.1019685){\circle*{0.06259842}} +\put(0.8287402,1.1409448){\circle*{0.06259842}} +\put(0.83346456,1.180315){\circle*{0.06259842}} +\put(0.8385827,1.2196851){\circle*{0.06259842}} +\put(0.84370077,1.2590551){\circle*{0.06259842}} +\put(0.8496063,1.2984252){\circle*{0.06259842}} +\put(0.8562992,1.3374016){\circle*{0.06259842}} +\put(0.8645669,1.3759843){\circle*{0.06259842}} +\put(0.88188976,1.4066929){\circle*{0.06259842}} +\put(0.8968504,1.3708662){\circle*{0.06259842}} +\put(0.9047244,1.3318897){\circle*{0.06259842}} +\put(0.9110236,1.2929134){\circle*{0.06259842}} +\put(0.9169291,1.2535433){\circle*{0.06259842}} +\put(0.92204726,1.2141732){\circle*{0.06259842}} +\put(0.9271653,1.1748031){\circle*{0.06259842}} +\put(0.9318898,1.1354331){\circle*{0.06259842}} +\put(0.93661416,1.096063){\circle*{0.06259842}} +\put(0.9413386,1.056693){\circle*{0.06259842}} +\put(0.946063,1.0173228){\circle*{0.06259842}} +\put(0.9503937,0.9779528){\circle*{0.06259842}} +\put(0.9551181,0.93858266){\circle*{0.06259842}} +\put(0.9594488,0.8992126){\circle*{0.06259842}} +\put(0.96417326,0.8602362){\circle*{0.06259842}} +\put(0.96889764,0.82086617){\circle*{0.06259842}} +\put(0.973622,0.78149605){\circle*{0.06259842}} +\put(0.97834647,0.742126){\circle*{0.06259842}} +\put(0.98307085,0.7027559){\circle*{0.06259842}} +\put(0.988189,0.6633858){\circle*{0.06259842}} +\put(0.9933071,0.62401575){\circle*{0.06259842}} +\put(0.9984252,0.5846457){\circle*{0.06259842}} +\put(1.0035433,0.54527557){\circle*{0.06259842}} +\put(1.0090551,0.5062992){\circle*{0.06259842}} +\put(1.0145669,0.46692914){\circle*{0.06259842}} +\put(1.0200788,0.42755905){\circle*{0.06259842}} +\put(1.0259843,0.38858268){\circle*{0.06259842}} +\put(1.0322834,0.3492126){\circle*{0.06259842}} +\put(1.0385827,0.31023622){\circle*{0.06259842}} +\put(1.0452756,0.27125984){\circle*{0.06259842}} +\put(1.052756,0.23228346){\circle*{0.06259842}} +\put(1.0602362,0.19330709){\circle*{0.06259842}} +\put(1.0688976,0.1547244){\circle*{0.06259842}} +\put(1.0787401,0.11614173){\circle*{0.06259842}} +\put(1.0905511,0.07834645){\circle*{0.06259842}} +\put(1.1070867,0.042519685){\circle*{0.06259842}} +\put(1.1370078,0.04330709){\circle*{0.06259842}} +\put(1.1543307,0.07913386){\circle*{0.06259842}} +\put(1.1669291,0.11653543){\circle*{0.06259842}} +\put(1.1787401,0.15433072){\circle*{0.06259842}} +\put(1.1901575,0.19212599){\circle*{0.06259842}} +\put(1.2023622,0.22992127){\circle*{0.06259842}} +\put(1.2153543,0.26732284){\circle*{0.06259842}} +\put(1.2291338,0.3043307){\circle*{0.06259842}} +\put(1.2440945,0.34133857){\circle*{0.06259842}} +\put(1.2614173,0.37677166){\circle*{0.06259842}} +\put(1.2807087,0.41141734){\circle*{0.06259842}} +\put(1.3019685,0.4448819){\circle*{0.06259842}} +\put(1.3287401,0.47401574){\circle*{0.06259842}} +\put(1.3594488,0.4988189){\circle*{0.06259842}} +\put(1.3937008,0.5181102){\circle*{0.06259842}} +\put(1.4318898,0.52795273){\circle*{0.06259842}} +\put(1.4712598,0.5322835){\circle*{0.06259842}} +\put(1.5110236,0.53346455){\circle*{0.06259842}} +\put(1.5507874,0.53385824){\circle*{0.06259842}} +\put(1.5901575,0.53385824){\circle*{0.06259842}} +\put(1.6299213,0.53346455){\circle*{0.06259842}} +\thinlines +\put(0.87992126,1.4086614){\line(0,-1){0.87559056}} +\put(1.7551181,0.53346455){\line(-1,0){1.7503937}} +\put(0.87992126,0.033464566){\line(0,1){0.5003937}} +\end{picture} +\egroup diff --git a/macros/latex209/contrib/mit-press/mitprpn.tex b/macros/latex209/contrib/mit-press/mitprpn.tex new file mode 100644 index 0000000000..97bca9020f --- /dev/null +++ b/macros/latex209/contrib/mit-press/mitprpn.tex @@ -0,0 +1,45 @@ + +% This file is logically part of MIT-Press-Book.STY, created and maintained +% by EB@OZ. Please do not change it. + +% To be input within \begin{frontmatter}...\end{frontmatter}. + +\makeatletter + +\if@bradford +\bgroup\clearpage\@topchapterdecls +\@topchapterbox{}\egroup{\sl Publisher's Note:\/} +\else +\chapter*{Publisher's Note} +\fi +This format is intended to reduce the cost of publishing certain works +in book form and to shorten the gap between editorial preparation and +final publication. The time and expense of detailed editing and +composition in print have been avoided by photographing the text of +this book directly from the +\ifpluralauthors authors' \else author's \fi +typeset copy. + +\if@bradford\relax\else\vskip 10pt\fi + +Copyright \copyright\ \number\year\ by The Massachusetts Institute of +Technology. + +All rights reserved. No part of this book may be reproduced, stored +in a retrieval system, or transmitted, in any form, or by any means, +electronic, mechanical, photocopying, recording, or otherwise, without +the prior written permission of the publisher. + +This book was typeset with Donald E. Knuth's \TeX\ and Leslie +Lamport's \LaTeX. + +\if@bradford\relax\else\vskip 10pt\fi + +Printed and bound in the United States of America. + +\if@bradford\relax\else\vskip 0.5in\fi + +% Library of Congress info goes here -- use \libraryofcongress macro. + +\makeatother + |