| author | nipkow | 
| Tue, 14 Mar 1995 10:40:04 +0100 | |
| changeset 952 | 9e10962866b0 | 
| parent 350 | d9ebca601847 | 
| child 1112 | 737a1a0df754 | 
| permissions | -rw-r--r-- | 
| 293 | 1 | % iman.sty : Isabelle Manual Page Layout | 
| 110 | 2 | % | 
| 293 | 3 | \typeout{Document Style iman. Released 17 February 1994}
 | 
| 110 | 4 | |
| 293 | 5 | \hyphenation{Isa-belle man-u-script man-u-scripts ap-pen-dix mut-u-al-ly}
 | 
| 6 | \hyphenation{data-type data-types co-data-type co-data-types }
 | |
| 7 | ||
| 8 | \let\ts=\thinspace | |
| 110 | 9 | |
| 301 | 10 | %usage: \iflabelundefined{LABEL}{if not defined}{if defined}
 | 
| 11 | \newcommand{\iflabelundefined}[1]{\@ifundefined{r@#1}}
 | |
| 12 | ||
| 13 | ||
| 110 | 14 | %%%INDEXING use sedindex to process the index | 
| 15 | %index, putting page numbers of definitions in boldface | |
| 16 | \newcommand\bold[1]{{\bf#1}}
 | |
| 293 | 17 | \newcommand\fnote[1]{#1n}
 | 
| 110 | 18 | \newcommand\indexbold[1]{\index{#1|bold}}
 | 
| 19 | ||
| 350 | 20 | %for indexing constants, symbols, theorems, ... | 
| 21 | \newcommand\cdx[1]{{\tt#1}\index{#1@{\tt#1} constant}}
 | |
| 22 | \newcommand\sdx[1]{{\tt#1}\index{#1@{\tt#1} symbol}}
 | |
| 23 | ||
| 24 | \newcommand\tdx[1]{{\tt#1}\index{#1@{\tt#1} theorem}}
 | |
| 25 | \newcommand\tdxbold[1]{{\tt#1}\index{#1@{\tt#1} theorem|bold}}
 | |
| 26 | ||
| 27 | \newcommand\mltydx[1]{{\tt#1}\index{#1@{\tt#1} ML type}}
 | |
| 28 | \newcommand\xdx[1]{{\tt#1}\index{#1@{\tt#1} exception}}
 | |
| 29 | ||
| 30 | \newcommand\ndx[1]{{\tt#1}\index{#1@{\tt#1} nonterminal}}
 | |
| 31 | \newcommand\ndxbold[1]{{\tt#1}\index{#1@{\tt#1} nonterminal|bold}}
 | |
| 32 | ||
| 33 | \newcommand\cldx[1]{{\tt#1}\index{#1@{\tt#1} class}}
 | |
| 34 | \newcommand\tydx[1]{{\tt#1}\index{#1@{\tt#1} type}}
 | |
| 35 | \newcommand\thydx[1]{{\tt#1}\index{#1@{\tt#1} theory}}
 | |
| 36 | ||
| 110 | 37 | %for cross-references: 2nd argument (page number) is ignored | 
| 38 | \newcommand\see[2]{{\it see \/}{#1}}
 | |
| 39 | \newcommand\seealso[2]{{\it see also \/}{#1}}
 | |
| 40 | ||
| 41 | %set argument in \tt font; at the sime time, index using * prefix | |
| 350 | 42 | \newcommand\rmindex[1]{{#1}\index{#1}\@}
 | 
| 110 | 43 | \newcommand\ttindex[1]{{\tt#1}\index{*#1}\@}
 | 
| 44 | \newcommand\ttindexbold[1]{{\tt#1}\index{*#1|bold}\@}
 | |
| 45 | ||
| 46 | %set argument in \bf font and index in ROMAN font (for definitions in text!) | |
| 47 | \newcommand\bfindex[1]{{\bf#1}\index{#1|bold}\@}
 | |
| 48 | ||
| 49 | ||
| 50 | %%% underscores as ordinary characters, not for subscripting | |
| 51 | %% use @ or \sb for subscripting; use \at for @ | |
| 52 | %% only works in \tt font | |
| 53 | %% must not make _ an active char; would make \ttindex fail! | |
| 54 | \gdef\underscoreoff{\catcode`\@=8\catcode`\_=\other}
 | |
| 55 | \gdef\underscoreon{\catcode`\_=8\makeatother}
 | |
| 56 | \chardef\other=12 | |
| 57 | \chardef\at=`\@ | |
| 58 | ||
| 59 | % alternative underscore | |
| 60 | \def\_{\leavevmode\kern.06em\vbox{\hrule height.2ex width.3em}\hskip0.1em}
 | |
| 61 | ||
| 62 | %%% \dquotes permits usage of "..." for \hbox{...} -- also taken from under.sty
 | |
| 63 | {\catcode`\"=\active
 | |
| 64 | \gdef\dquotes{\catcode`\"=\active  \let"=\@mathText}%
 | |
| 65 | \gdef\@mathText#1"{\hbox{\mathTextFont #1\/}}}
 | |
| 66 | \def\mathTextFont{\frenchspacing\tt}
 | |
| 67 | ||
| 68 | %%%% meta-logical connectives | |
| 69 | ||
| 70 | \let\Forall=\bigwedge | |
| 71 | \let\Imp=\Longrightarrow | |
| 72 | \let\To=\Rightarrow | |
| 73 | \newcommand\Var[1]{{?\!#1}}
 | |
| 74 | ||
| 75 | %%%% ``WARNING'' environment | |
| 76 | \def\dbend{\vtop to 0pt{\vss\hbox{\Huge\bf!}\vss}}
 | |
| 77 | \newenvironment{warn}{\medskip\medbreak\begingroup \clubpenalty=10000 
 | |
| 293 | 78 | \small %%WAS\baselineskip=0.9\baselineskip | 
| 79 | \noindent \hangindent\parindent \hangafter=-2 | |
| 80 |          \hbox to0pt{\hskip-\hangindent\dbend\hfill}\ignorespaces}%
 | |
| 81 |         {\par\endgroup\medbreak}
 | |
| 110 | 82 | |
| 83 | ||
| 84 | %%%% Standard logical symbols | |
| 85 | \let\turn=\vdash | |
| 86 | \let\conj=\wedge | |
| 87 | \let\disj=\vee | |
| 88 | \let\imp=\rightarrow | |
| 89 | \let\bimp=\leftrightarrow | |
| 293 | 90 | \newcommand\all[1]{\forall#1.}  %quantification
 | 
| 110 | 91 | \newcommand\ex[1]{\exists#1.}
 | 
| 92 | \newcommand{\pair}[1]{\langle#1\rangle}
 | |
| 93 | ||
| 94 | \newcommand\lbrakk{\mathopen{[\![}}
 | |
| 95 | \newcommand\rbrakk{\mathclose{]\!]}}
 | |
| 96 | \newcommand\List[1]{\lbrakk#1\rbrakk}  %was \obj
 | |
| 97 | \newcommand\vpile[1]{\begin{array}{c}#1\end{array}}
 | |
| 98 | ||
| 99 | \let\int=\cap | |
| 100 | \let\un=\cup | |
| 101 | \let\inter=\bigcap | |
| 102 | \let\union=\bigcup | |
| 103 | ||
| 104 | \def\ML{{\sc ml}}
 | |
| 105 | \def\OBJ{{\sc obj}}
 | |
| 350 | 106 | \def\AST{{\sc ast}}
 | 
| 110 | 107 | |
| 108 | \def\LCF{{\tt LCF}\@}
 | |
| 109 | \def\FOL{{\tt FOL}\@}
 | |
| 110 | \def\HOL{{\tt HOL}\@}
 | |
| 111 | \def\LK{{\tt LK}\@}
 | |
| 112 | \def\ZF{{\tt ZF}\@}
 | |
| 113 | \def\CTT{{\tt CTT}\@}
 | |
| 114 | \def\Cube{{\tt Cube}}
 | |
| 115 | \def\Modal{{\tt Modal}}
 | |
| 116 | ||
| 117 | %macros to change the treatment of symbols | |
| 118 | \def\relsemicolon{\mathcode`\;="303B}   %treat ; like a relation
 | |
| 119 | \def\binperiod{\mathcode`\.="213A}   %treat . like a binary operator
 | |
| 120 | \def\binvert{\mathcode`\|="226A}     %treat | like a binary operator
 | |
| 121 | ||
| 122 | %redefinition of \sloppy and \fussy to use \emergencystretch | |
| 123 | \def\sloppy{\tolerance2000 \hfuzz.5pt \vfuzz.5pt \emergencystretch=15pt}
 | |
| 124 | \def\fussy{\tolerance200 \hfuzz.1pt \vfuzz.1pt \emergencystretch=0pt}
 | |
| 125 | ||
| 350 | 126 | %%%% \tt things | 
| 127 | ||
| 128 | \def\ttdescriptionlabel#1{\hspace\labelsep \tt #1}
 | |
| 129 | \def\ttdescription{\list{}{\labelwidth\z@ \itemindent-\leftmargin
 | |
| 130 | \let\makelabel\ttdescriptionlabel}} | |
| 131 | ||
| 132 | \let\endttdescription\endlist | |
| 133 | ||
| 293 | 134 | \chardef\ttilde=`\~ % A tilde for \tt font | 
| 135 | \chardef\ttback=`\\ % A backslash for \tt font | |
| 136 | \chardef\ttlbrace=`\{   % A left brace for \tt font
 | |
| 137 | \chardef\ttrbrace=`\} % A right brace for \tt font | |
| 110 | 138 | |
| 139 | \newfont{\sltt}{cmsltt10}     %% for output from terminal sessions
 | |
| 140 | \newcommand\out{\ \sltt}
 | |
| 141 | ||
| 140 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 142 | % "itmath.sty" use cmr italic for letters in math mode and get the | 
| 293 | 143 | % usual letter spacing of text mode. | 
| 140 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 144 | % | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 145 | % Michael Lawley, April 1993 | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 146 | % (lawley@cit.gu.edu.au) | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 147 | % | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 148 | % Derived from itma.sty (of unknown origin). | 
| 110 | 149 | % | 
| 150 | % MATHCODES | |
| 151 | % | |
| 152 | % The mathcodes for the letters A, ..., Z, a, ..., z are changed to | |
| 140 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 153 | % generate text italic rather than math italic by default. This makes | 
| 110 | 154 | % multi-letter identifiers look better. The mathcode for character c | 
| 140 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 155 | % is set to "7000 (variable class) + "400 (text italic) + c. | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 156 | % | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 157 | % For NFSS the mathcode is "7000 (variable class) + (hex)\itfam + c | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 158 | % \itfam is probably equal to 7. | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 159 | % | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 160 | |
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 161 | \ifx\undefined\hexnumber@ | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 162 |   \def\hexnumber@#1{\ifcase#1 \z@
 | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 163 | \or \@ne \or \tw@ \or \thr@@ | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 164 | \or 4\or 5\or 6\or 7\or 8\or | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 165 | 9\or A\or B\or C\or D\or E\or F\fi} | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 166 | \fi | 
| 110 | 167 | |
| 168 | \def\@setmcodes#1#2#3{{\count0=#1 \count1=#3
 | |
| 140 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 169 | \loop \global\mathcode\count0=\count1 \ifnum \count0<#2 | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 170 | \advance\count0 by1 \advance\count1 by1 \repeat}} | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 171 | |
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 172 | \edef\@tempa{\hexnumber@\itfam}
 | 
| 110 | 173 | |
| 140 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 174 | \@setmcodes{`A}{`Z}{"7\@tempa 41}
 | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 175 | \@setmcodes{`a}{`z}{"7\@tempa 61}
 | 
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 176 | |
| 
3a8c68d1d466
changed itmath trickery to be compatible with NFSS (itmath.sty)
 nipkow parents: 
110diff
changeset | 177 | \ifx\define@mathgroup\undefined\else | 
| 293 | 178 |         \define@mathgroup\mv@normal{\itfam}{cmr}{m}{it}\fi
 |