]> mj.ucw.cz Git - saga.git/blobdiff - macros.tex
PLAN--
[saga.git] / macros.tex
index 850c162da756327b27bb23c9a062e9f89782c9af..b4c1a2d67e36d6d01d502f28ab0691b2abe68e77 100644 (file)
 \parindent=0.8cm
 \parskip=3pt plus 1pt minus 1pt
 
+% Parameters for final typesetting (bigger inner margins etc.)
+\newif\iffinal
+\finaltrue
+\newdimen\hwobble
+\advance\hsize by -10mm
+
+\iffinal
+\hwobble=10mm
+\else
+\hwobble=0mm
+\fi
+
+% Glue
 \smallskipamount=4pt plus 1.2pt minus 1.2pt
 \medskipamount=7pt plus 2.5pt minus 2pt
 \bigskipamount=15pt plus 5pt minus 4pt
 \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{\mathop{\Uparrow}}
+\def\crpt{\mathbin{\Uparrow}}
 \def\C{{\cal C}}
+\def\sgc{\mathbin{.}}
 
 \def\brk{\hfil\break}
 
 \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\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{\vfill\supereject
-\advance\chapcount by 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\vensure#1{\dimen0=#1
+\vskip 0pt plus \dimen0
+\penalty-1000
+\vskip 0pt plus -\dimen0
 }
 
 \def\section#1{\bigskip
+\vensure{0.5in}
 \advance\seccount by 1
 \thmcount=0
-\edef\currentid{\the\chapcount.\the\seccount}
+\edef\currentid{\currentchap.\the\seccount}
 \leftline{\secfont\currentid. #1}
+\nobreak
 \medskip
+\nobreak
+\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\problemn{\problem\labelx}
 \def\remn{\rem\labelx}
 
-\def\paran#1{\para {\sl #1:}}
+\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
   \vfill\supereject\end
 }
 
+%%% Hyphenation %%%
+
+\hyphenation{Ra-ma-chan-dran}
+
+%%% Output routine %%%
+
+\output{\sagaoutput}
+
+\def\sagaoutput{\ifodd\pageno \hoffset=\hwobble \else \hoffset=0pt \fi
+\plainoutput}
+
+\def\makefootline{\baselineskip30pt\lineskiplimit 0pt\line{\the\footline}}
+
+\footline={\ifodd\pageno
+  {\hfil\twelvemi\the\pageno}%
+\else
+  {\twelvemi\the\pageno\hfil}%
+\fi
+}
+
 %%% The End %%%
 
 \catcode`@=12