]> mj.ucw.cz Git - saga.git/blobdiff - macros.tex
Finished the revised version.
[saga.git] / macros.tex
index dfaffe678c392b5c11489bd75d3c902d98e7ede3..3ab39f7c608e3af65c963ab3a4508aca94bca5b7 100644 (file)
 \parindent=0.8cm
 \parskip=3pt plus 1pt minus 1pt
 
-\smallskipamount=4pt plus 1.2pt minus 1.2pt
-\medskipamount=7pt plus 2.5pt minus 2pt
-\bigskipamount=15pt plus 5pt minus 4pt
-
-\abovedisplayskip=15pt plus 4pt minus 10pt
-\abovedisplayshortskip=0pt plus 3pt
-\belowdisplayskip=15pt plus 4pt minus 10pt
-\belowdisplayshortskip=8.5pt plus 3.5pt minus 4.5pt
+% Parameters for final typesetting (bigger inner margins etc.)
+\newif\iffinal
+\finaltrue
+\newdimen\hwobble
+\hwobble=10mm
+\advance\hsize by -10mm
 
 %%% Miscellanea %%%
 
 \def\em#1{{\it #1\/}}
 \def\df#1{{\it #1\/}}  % when we define something
 \def\O{{\cal O}}
-\def\<#1>{\leavevmode\hbox{\it #1\/}}
 \let\>=\noindent
 \def\qed{{\parfillskip=0pt\allowbreak\hfill\nobreak $\spadesuit$\par}}
 \def\qeditem{{\parfillskip=0pt\hfill\rlap{\hskip\rightskip\llap{$\spadesuit$}}\par}}
+\def\qedmath{\eqno{\spadesuit}}
 \def\FIXME#1{\>{\bo TODO:} #1}
 \def\symdiff{\mathbin{\Delta}}
 \def\rack#1#2{\setbox0=\hbox{#1}\hbox to \wd0{#2}}
 \def\o#1{\accent23 #1}
 \def\mst{\mathop{\rm mst}}
+\def\msf{\mathop{\rm msf}}
 \def\deg{\mathop{\rm deg}}
 \def\timesalpha{\mskip2mu\alpha}
 \def\timesbeta{\mskip2mu\beta}
-\def\tower{\mathop\uparrow}
+\def\tower{\mathbin\uparrow}
 \def\Forb{{\rm Forb}}
 \def\minorof{\preccurlyeq}
+\def\per{\mathop{\rm per}}
+\def\poly{\mathop{\rm poly}}
+\def\E{{\bb E}}
+\def\crpt{\mathbin{\Uparrow}}
+\def\C{{\cal C}}
+\def\sgc{\mathbin{.}}
+
+\def\brk{\hfil\break}
 
 % Bit strings
 \def\0{{\bf 0}}
 \footcnt=0
 \def\foot#1{\global\advance\footcnt by 1{\parindent=0.25in\parskip=0pt\footnote{$^{\bf\the\footcnt}$}{#1}}}
 
-%%% Fonts %%%
-
-\font\twelverm=cmr12
-\font\twelveit=cmti12
-\font\twelvebf=cmbx12
-
-%\font\twelverm=pplr8z at 12pt
-%\font\twelveit=pplri8z at 12pt
-%\font\twelvebf=pplb8z at 12pt
-
-\font\twelvesl=cmsl12
-\font\twelveb=cmb12
-\font\twelvesc=cmcsc12
+%%% Font definition macros (used in fonts<size>.tex) %%%
 
 \def\mathf@nt#1#2#3#4{%
 \toks0=\expandafter{\csname#1#2\endcsname}%
 \fi%
 \edef\m@@f{\the\toks0}}
 
-\def\fntmathsize{12}
-\def\fntmathtok{twelve}
-\def\fntmathssize{8}
-\def\fntmathstok{eight}
-\def\fntmathsssize{6}
-\def\fntmathsstok{six}
-
-\mathf@nt{\fntmathtok}{r}{\fntmathsize}{cm}\textfont0=\m@@f
-\mathf@nt{\fntmathstok}{r}{\fntmathssize}{cm}\scriptfont0=\m@@f
-\mathf@nt{\fntmathsstok}{r}{\fntmathsssize}{cm}\scriptscriptfont0=\m@@f
-\mathf@nt{\fntmathtok}{mi}{\fntmathsize}{cm}\skewchar\m@@f='177\textfont1=\m@@f
-\mathf@nt{\fntmathstok}{mi}{\fntmathssize}{cm}\skewchar\m@@f='177\scriptfont1=\m@@f
-\mathf@nt{\fntmathsstok}{mi}{\fntmathsssize}{cm}\skewchar\m@@f='177\scriptscriptfont1=\m@@f
-\mathf@nt{\fntmathtok}{sy}{\fntmathsize}{cm}\skewchar\m@@f='60\textfont2=\m@@f
-\mathf@nt{\fntmathstok}{sy}{\fntmathssize}{cm}\skewchar\m@@f='60\scriptfont2=\m@@f
-\mathf@nt{\fntmathsstok}{sy}{\fntmathsssize}{cm}\skewchar\m@@f='60\scriptscriptfont2=\m@@f
-\mathf@nt{\fntmathtok}{ex}{\fntmathsize}{cm}\textfont3=\m@@f\scriptfont3=\m@@f\scriptscriptfont3=\m@@f
-\mathf@nt{\fntmathtok}{ti}{\fntmathsize}{cm}\textfont\itfam=\m@@f
-\mathf@nt{\fntmathtok}{sl}{\fntmathsize}{cm}\textfont\slfam=\m@@f
-\mathf@nt{\fntmathtok}{bx}{\fntmathsize}{cm}\textfont\bffam=\m@@f
-\mathf@nt{\fntmathtok}{tt}{\fntmathsize}{cm}\hyphenchar\m@@f=-1\textfont\ttfam=\m@@f
-\mathf@nt{\fntmathtok}{msam}{\fntmathsize}{}\textfont\msafam=\m@@f
-\mathf@nt{\fntmathstok}{msam}{\fntmathssize}{}\scriptfont\msafam=\m@@f
-\mathf@nt{\fntmathsstok}{msam}{\fntmathsssize}{}\scriptscriptfont\msafam=\m@@f
-\mathf@nt{\fntmathtok}{msbm}{\fntmathsize}{}\textfont\msbfam=\m@@f
-\mathf@nt{\fntmathstok}{msbm}{\fntmathssize}{}\scriptfont\msbfam=\m@@f
-\mathf@nt{\fntmathsstok}{msbm}{\fntmathsssize}{}\scriptscriptfont\msbfam=\m@@f
-
-% Blackboard bold font
-\newfam\bbfam
-\font\bbtwelve=bbm12
-\font\bbeight=bbm8
-\font\bbsix=bbm6
-\textfont\bbfam=\bbtwelve
-\scriptfont\bbfam=\bbeight
-\scriptscriptfont\bbfam=\bbsix
-\def\bb{\bbtwelve\fam\bbfam}
-
-% Font switches
-\def\rm{\fam\z@\twelverm}
-\def\it{\fam\itfam\twelveit}
-\def\bo{\fam\bffam\twelveb}
-\def\bf{\fam\bffam\twelvebf}
-\def\tt{\fam\ttfam\twelvett\hyphenchar\twelvett=-1\relax}
-\def\sc{\twelvesc}
-\def\sl{\fam\slfam\twelvesl}
-
-% Switch to 12pt baselines
-\rm
-\baselineskip=14.4pt
-\lineskip=1.2pt
-\setbox\strutbox=\hbox{\vrule height 10.2pt depth 4.2pt width 0pt}
-
-% Other fonts
-\font\chapfont=csssdc17 scaled \magstep1
-\font\secfont=csb14
-\font\secitfont=csbxti14
-
-%%% FIXME
-\footline={\hss\twelverm\folio\hss}
-
 %%% Enumerated lists %%%
 
 \newif\ifitem\itemtrue
 \def\endlist{\interlistskip\endgroup}
 
 \def\ibull{\raise0.2ex\hbox{$\bullet$}} % Signs frequently used for \itemize
+\def\icirc{\raise0.2ex\hbox{$\circ$}} % Signs frequently used for \itemize
 \def\idot{\raise0.2ex\hbox{$\cdot$}}
 \def\istar{\raise0.2ex\hbox{$\ast$}}
 
 \newcount\chapcount
 \newcount\seccount
 \newcount\thmcount
+\newcount\tmpcount
 \chapcount=0
 \seccount=0
 \thmcount=0
 \def\currentid{??}
+\def\currentchap{??}
 
-\def\chapter#1{\vfill\supereject
-\advance\chapcount by 1
+\def\appendices{\chapcount=99}
+
+\def\oddpage{%
+\iffinal
+  \ifodd\pageno
+  \else
+    \hglue 1in \vfill\supereject
+  \fi
+\fi
+}
+
+\def\rawchapter#1{\vfill\supereject
+\oddpage
+\leftline{\chapfont #1}
+\bigskip
+}
+
+\def\unchapter#1{
+\rawchapter{#1}
+\writetoc{unchap}{#1}
+}
+
+\def\chapter#1{\advance\chapcount by 1
 \seccount=0
 \thmcount=0
 \footcnt=0
-\edef\currentid{\the\chapcount}
-\leftline{\chapfont\currentid. #1}
-\bigskip
+% Chapter name
+  \ifnum\chapcount>99
+    \tmpcount=\chapcount
+    \advance\tmpcount by -100
+    \edef\currentchap{\ifcase\tmpcount A\or B\or C\or D\or E\or ZZZ\fi}
+  \else
+    \edef\currentchap{\the\chapcount}
+  \fi
+\edef\currentid{\currentchap}
+\rawchapter{\currentid. #1}
+\writetoc{chap}{#1}
 }
 
-\def\section#1{\bigskip
-\advance\seccount by 1
-\thmcount=0
-\edef\currentid{\the\chapcount.\the\seccount}
-\leftline{\secfont\currentid. #1}
+\def\vensure#1{\dimen0=#1
+\vskip 0pt plus \dimen0
+\penalty-1000
+\vskip 0pt plus -\dimen0
+}
+
+\def\rawsection#1{\bigskip\vensure{0.5in}
+\leftline{\secfont #1}
+\nobreak
 \medskip
+\nobreak
+}
+
+\def\section#1{\advance\seccount by 1
+\thmcount=0
+\edef\currentid{\currentchap.\the\seccount}
+\rawsection{\currentid. #1}
+\writetoc{sec}{#1}
 }
 
 \def\para{\advance\thmcount by 1
-\edef\currentid{\the\chapcount.\the\seccount.\the\thmcount}
+\edef\currentid{\currentchap.\the\seccount.\the\thmcount}
 \noindent {\bo \currentid.\enspace}}
 
 \def\proclaim#1{\para {\bo #1.\enspace}}
 \def\example{\proclaim{Example}}
 
 \def\label#1{{\sl (#1)\/}\enspace}
-\def\labelx#1{\label{#1}\hfil\break\kern 0pt}  % Eat spaces
+\def\labelx#1{\label{#1}\hfil\break\eatspaces}
+\def\eatspaces{\kern0pt}
 
 \def\thmn{\thm\labelx}
 \def\lemman{\lemma\labelx}
 \def\defnn{\defn\labelx}
+\def\corn{\cor\labelx}
 \def\algn{\alg\label}
 \def\notan{\nota\labelx}
 \def\examplen{\example\labelx}
+\def\problemn{\problem\labelx}
+\def\remn{\rem\labelx}
+
+\def\paran#1{\para {\sl #1.\/}\enspace\eatspaces}
 
 \def\proof{\noindent {\sl Proof.}\enspace}
 \def\proofsketch{\noindent {\sl Proof sketch.}\enspace}
 
+%%% Table of contents %%%
+
+\newwrite\toc
+\immediate\openout\toc=\jobname.toc
+\newif\iftoc
+\tocfalse
+
+\def\writetoc#1#2{
+  \toctrue
+  \toks0={\the\pageno}
+  \edef\tocaux{\write\toc{\noexpand\expandafter\noexpand\string\noexpand\csname toc#1\noexpand\endcsname{\currentid}{#2}{\the\toks0}}}
+  \tocaux
+  \tocfalse
+}
+
+\newwrite\tok
+\def\includetoc{
+\immediate\openin\tok=\jobname.tok
+\ifeof\tok
+\else
+\input \jobname.tok
+\fi
+\immediate\closein\tok
+}
+
+\def\tocchap#1#2#3{\smallskip\line{\bo #1.~~#2 \dotfill ~#3}}
+\def\tocsec#1#2#3{\line{#1.~~#2 \dotfill ~#3}}
+\def\tocunchap#1#2#3{\smallskip\line{\bo #2 \dotfill ~#3}}
+
 %%% References %%%
 
 \newwrite\ids
 %%% Bibliography %%%
 
 %\bibliographystyle{abbrv}
-\bibliographystyle{alpha}
+\bibliographystyle{mjalpha}
 \def\dumpbib{
   \def\bblhook{\parskip=2pt plus 1pt minus 0.5pt}
   \bibliography{biblio}
 
 %%% Figures %%%
 
-\def\figure#1#2#3{\midinsert
+\def\float#1#2{\midinsert
 \medskip
-\centerline{\epsfxsize=#2\epsfbox{pic/#1}}
+\centerline{#1}
 \medskip
 \smallskip
-\centerline{#3}
+\centerline{#2}
 \endinsert}
 
+\def\figure#1#2#3{\float{\epsfxsize=#2\epsfbox{pic/#1}}{#3}}
+
+\def\multicap#1{
+\let\\=\break
+\vbox{\hsize=0.7\hsize
+\parindent=0pt
+\leftskip=0pt plus 0.3\hsize
+\rightskip=\leftskip
+\parfillskip=0pt
+#1
+}}
+
 %%% Stand-alone chapters %%%
 
 \def\endpart{
   \vfill\supereject\end
 }
 
+%%% Hyphenation %%%
+
+\hyphenation{Ra-ma-chan-dran}
+
+%%% Output routine %%%
+
+\output{\sagaoutput}
+
+\def\sagaoutput{
+\iffinal
+  \ifodd\pageno \hoffset=\hwobble \else \hoffset=0pt \fi
+\fi
+\plainoutput}
+
+\def\makefootline{\baselineskip30pt\lineskiplimit 0pt\line{\the\footline}}
+
+\footline={\ifodd\pageno
+  {\hfil\mi\the\pageno}%
+\else
+  {\mi\the\pageno\hfil}%
+\fi
+}
+
 %%% The End %%%
 
 \catcode`@=12