diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..5f16337 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,34 @@ +.SUFFIXES: .idx .ind .tex .dvi .ps .pdf $(.SUFFIXES) + +TEX= overview.tex + +TEX2PAGE=tex2page + +man.dvi: $(TEX) man.ind +man.ind: man.idx +man.pdf: $(TEX) man.ind + +.dvi.ps: + dvips -j0 -o $@ $< + +.tex.dvi: + latex $< && latex $< + rm $*.log + +.tex.pdf: + pdflatex $< && thumbpdf $@ && pdflatex $< + rm $*.log + +.idx.ind: + makeindex $< + +clean: + -rm -f *.log *.png man.out man.dvi man.ps man.pdf thumb*.png + +INSTALL_DATA= install -c -m 644 + +tar: + tar cf - *.tex sty | gzip > man.tar.gz + +html: $(TEX) + $(TEX2PAGE) man && $(TEX2PAGE) man diff --git a/doc/code.sty b/doc/code.sty new file mode 100644 index 0000000..2786d61 --- /dev/null +++ b/doc/code.sty @@ -0,0 +1,296 @@ +% code.sty: -*- latex -*- +% Latex macros for a "weak" verbatim mode. +% -- like verbatim, except \, {, and } have their usual meanings. + +% Environments: code, tightcode, codeaux, codebox, centercode +% Commands: \dcd, \cddollar, \cdmath, \cd, \codeallowbreaks, \codeskip, \^ +% Already defined in LaTeX, but of some relevance: \#, \$, \%, \&, \_, \{, \} + +% Changelog at the end of the file. + +% These commands give you an environment, code, that is like verbatim +% except that you can still insert commands in the middle of the environment: +% \begin{code} +% for(x=1; x] option, then the following newline will +% be read *after* ^M is bound to \cr, so we're cool. If there isn't +% an option given (i.e., default to [c]), then the @\ifnextchar will +% gobble up the newline as it gobbles whitespace. So we insert the +% \cr explicitly. Isn't TeX fun? +\def\codebox{\leavevmode\@ifnextchar[{\@codebox}{\@codebox[c]\cr}} %] + +\def\@codebox[#1]% + {\hbox\bgroup$\if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi\bgroup% + \tabskip\z@\setupcode\cd@obeycr% just before cd@obey + \halign\bgroup##\hfil\span} + +\def\endcodebox{\crcr\egroup\egroup\m@th$\egroup} + +% Center the box on the page: +\newenvironment{centercode}% + {\begin{center}\begin{codebox}[c]}% + {\end{codebox}\end{center}} + + +%% code, codeaux, tightcode +%%============================================================================= +%% Code environment as described above. Lines are kept on one page. +%% This actually works by setting a huge penalty for breaking +%% between lines of code. Code is indented same as other displayed paras. +%% Note: to increase left margin, use \begin{codeaux}{\leftmargin=1in}. + +% To allow pagebreaks, say \codeallowbreaks immediately inside the env. +% You can allow breaks at specific lines with a \pagebreak form. + +%% N.B.: The \global\@ignoretrue command must be performed just inside +%% the *last* \end{...} before the following text. If not, you will +%% get an extra space on the following line. Blech. + +%% This environment takes two arguments. +%% The second, required argument is the \list parameters to override the +%% \@listi... defaults. +%% - Usefully set by clients: \topsep \leftmargin +%% - Possible, but less useful: \partopsep +%% The first, optional argument is the extra \parskip glue that you get around +%% \list environments. It defaults to the value of \parskip. +\def\codeaux{\@ifnextchar[{\@codeaux}{\@codeaux[\parskip]}} %] +\def\@codeaux[#1]#2{% + \bgroup\parskip#1% + \begin{list}{}% + {\parsep\z@\rightskip\z@\listparindent\z@\itemindent\z@#2}% + \item[]\setupcode\cd@obeylines}% +\def\endcodeaux{\end{list}\leavevmode\egroup\ignorespaces\global\@ignoretrue} + +%% Code env is codeaux with the default margin and spacing \list params: +\def\code{\codeaux{}} \let\endcode=\endcodeaux + +%% Like code, but with no extra vertical space above and below. +\def\tightcode{\codeaux[=0pt]{\topsep\z@}}% +\let\endtightcode\endcodeaux +% {\vspace{-1\parskip}\begin{codeaux}{\partopsep\z@\topsep\z@}}% +% {\end{codeaux}\vspace{-1\parskip}} + + + +% Reasonable separation between lines of code +\newcommand{\codeskip}{\penalty0\vspace{2ex}} + + +% \cd is used to build a code environment in the middle of text. +% Note: only difference from display code is that cr's are taken +% as unbreakable spaces instead of linebreaks. + +\def\cd{\leavevmode\begingroup\ifmmode\let\startcode=\startmcode\else% + \let\startcode\starttcode\fi% + \setupcode\cd@obeycrsp\startcode} + +\def\starttcode#1{#1\endgroup} +\def\startmcode#1{\hbox{#1}\endgroup} + + +% Restore $&#^_~% to their normal catcodes +% Define \^ to give the ^ char. +% \dcd points to this guy inside a code env. +\def\cd@dcd{\catcode`\$=3\catcode`\&=4\catcode`\#=6\catcode`\^=7% + \catcode`\_=8\catcode`\~=13\catcode`\%=14\def\^{\char`\^}} + +% Selectively enable $, and $^_ as special. +% \cd@mathspecial also defines \^ give the ^ char. +% \cddollar and \cdmath point to these guys inside a code env. +\def\cd@dollarspecial{\catcode`\$=3} +\def\cd@mathspecial{\catcode`\$=3\catcode`\^=7\catcode`\_=8% + \def\^{\char`\^}} + + +% Change log: +% Started off as some macros found in C. Rich's library. +% Olin 1/90: +% Removed \makeatletter, \makeatother's -- they shouldn't be there, +% because style option files are read with makeatletter. The terminal +% makeatother screwed things up for the following style options. +% Olin 3/91: +% Rewritten. +% - Changed things so blank lines don't get compressed out (the \leavevmove +% in \cd@cr and \cd@crwb). +% - Changed names to somewhat less horrible choices. +% - Added lots of doc, so casual hackers can more easily mess with all this. +% - Removed `'"@ from the set of hacked chars, since they are already +% non-special. +% - Removed the bigcode env, which effect can be had with the \codeallowbreaks +% command. +% - Removed the \@noligs command, since it's already defined in latex.tex. +% - Win big with the new \dcd, \cddollar, and \cdmath commands. +% - Now, *only* the chars \{} are special inside the code env. If you need +% more, use the \dcd command inside a group. +% - \cd now works inside math mode. (But if you use it in a superscript, +% it still comes out full size. You must explicitly put a \scriptsize\tt +% inside the \cd: $x^{\cd{\scriptsize\tt...}}$. A \leavevmode was added +% so that if you begin a paragraph with a \cd{...}, TeX realises you +% are starting a paragraph. +% - Added the codebox env. Tricky bit involving the first line hacked +% with help from David Long. +% Olin 8/94 +% Changed the font commands for LaTeX2e. diff --git a/doc/css.t2p b/doc/css.t2p new file mode 100644 index 0000000..4ed4771 --- /dev/null +++ b/doc/css.t2p @@ -0,0 +1,114 @@ +% css.t2p +% Dorai Sitaram +% 19 Jan 2001 +% A basic style for HTML documents generated +% with tex2page. + +\ifx\shipout\UNDEFINED +\cssblock + +body { + color: black; +/* background-color: #e5e5e5;*/ + background-color: #ffffff; +/*background-color: beige;*/ + margin-top: 2em; + margin-left: 8%; + margin-right: 8%; +} + +h1,h2,h3,h4,h5,h6 { + margin-top: .5em; +} + +.partheading { + font-size: 100%; +} + +.chapterheading { + font-size: 100%; +} + +pre { + margin-left: 2em; +} + +ol { + list-style-type: decimal; +} + +ol ol { + list-style-type: lower-alpha; +} + +ol ol ol { + list-style-type: lower-roman; +} + +ol ol ol ol { + list-style-type: upper-alpha; +} + +.scheme { + color: brown; +} + +.scheme .keyword { + color: #990000; + font-weight: bold; +} + +.scheme .builtin { + color: #990000; +} + +.scheme .variable { + color: navy; +} + +.scheme .global { + color: purple; +} + +.scheme .selfeval { + color: green; +} + +.scheme .comment { + color: teal; +} + +.schemeresponse { + color: green; +} + +.navigation { + color: red; + text-align: right; + font-style: italic; +} + +.disable { + /* color: #e5e5e5; */ +color: gray; +} + +.smallcaps { +font-size: 75%; +} + +.smallprint { + color: gray; + font-size: 75%; + text-align: right; +} + +.smallprint hr { + text-align: left; + width: 40%; +} + +\endcssblock +\fi + +% ex:ft=css diff --git a/doc/ct.sty b/doc/ct.sty new file mode 100644 index 0000000..1edfbc0 --- /dev/null +++ b/doc/ct.sty @@ -0,0 +1,6 @@ +% Loads cmtt fonts in on \tt. -*- latex -*- +% I prefer these to the Courier fonts that latex gives you w/postscript styles. +% Courier is too spidery and too wide -- it's hard to get 80 chars on a line. +% -Olin + +\renewcommand{\ttdefault}{cmtt} diff --git a/doc/decls.tex b/doc/decls.tex new file mode 100644 index 0000000..ed322b3 --- /dev/null +++ b/doc/decls.tex @@ -0,0 +1,336 @@ +\makeatletter +\def\ie{\mbox{\emph{i.e.}}} % \mbox keeps the last period from +\def\Ie{\mbox{\emph{I.e.}}} % looking like an end-of-sentence. +\def\eg{\mbox{\emph{e.g.}}} +\def\Eg{\mbox{\emph{E.g.}}} +\def\etc{{\em etc.}} + + + +\def\Lisp{\textsc{Lisp}} +\def\CommonLisp{\textsc{Common Lisp}} +\def\Ascii{\textsc{Ascii}} +\def\Ansi{\textsc{Ansi}} +\def\Unix{{Unix}} % Not smallcaps, according to Bart. +\def\Scheme{{Scheme}} +\def\scm{{Scheme 48}} +\def\RnRS{R5RS} +\def\Posix{\textsc{Posix}} + +\def\sharpf{\textnormal{\texttt{\#f}}} +\def\sharpt{\textnormal{\texttt{\#t}}} +\newcommand{\synteq}{\textnormal{::=}} + +\def\maketildeother{\catcode`\~=12} +\def\maketildeactive{\catcode`\~=13} +\def\~{\char`\~} + +\newcommand{\evalsto}{\ensuremath{\Rightarrow}} + +% One-line code examples +%\newcommand{\codex}[1]% One line, centred. Tight spacing. +% {$$\abovedisplayskip=.75ex plus 1ex minus .5ex% +% \belowdisplayskip=\abovedisplayskip% +% \abovedisplayshortskip=0ex plus .5ex% +% \belowdisplayshortskip=\abovedisplayshortskip% +% \hbox{\ttt #1}$$} +%\newcommand{\codex}[1]{\begin{tightinset}\ex{#1}\end{tightinset}\ignorespaces} +\newcommand{\codex}[1]{\begin{leftinset}\ex{#1}\end{leftinset}\ignorespaces} + +\def\widecode{\codeaux{\leftmargin=0pt\topsep=0pt}} +\def\endwidecode{\endcodeaux} + +% For multiletter vars in math mode: +\newcommand{\var}[1]{\mbox{\frenchspacing\it{#1}}} +\newcommand{\vari}[2]{\ensuremath{\mbox{\it{#1}}_{#2}}} + +%% What you frequently want when you say \tt: +\def\ttchars{\catcode``=13\@noligs\frenchspacing} +\def\ttt{\normalfont\ttfamily\ttchars} + +% Works in math mode; all special chars remain special; cheaper than \cd. +% Will not be correct size in super and subscripts, though. +\newcommand{\ex}[1]{{\normalfont\texttt{\ttchars #1}}} + +\newenvironment{inset} + {\bgroup\parskip=1ex plus 1ex\begin{list}{}% + {\topsep=0pt\rightmargin\leftmargin}% + \item[]}% + {\end{list}\leavevmode\egroup\global\@ignoretrue} + +\newenvironment{leftinset} + {\bgroup\parskip=1ex plus 1ex\begin{list}{}% + {\topsep=0pt}% + \item[]}% + {\end{list}\leavevmode\egroup\global\@ignoretrue} + +\newenvironment{tightinset} + {\bgroup\parskip=0pt\begin{list}{}% + {\topsep=0pt\rightmargin\leftmargin}% + \item[]}% + {\end{list}\leavevmode\egroup\global\@ignoretrue} + +\newenvironment{tightleftinset} + {\bgroup\parskip=0pt\begin{list}{}% + {\topsep=0pt}% + \item[]}% + {\end{list}\leavevmode\egroup\global\@ignoretrue} + +\long\def\remark#1{\bgroup\small\begin{quote}\textsl{Remark: } #1\end{quote}\egroup} +\newenvironment{remarkenv}{\bgroup\small\begin{quote}\textsl{Remark: }}% + {\end{quote}\egroup} +\newcommand{\oops}[1]{\bgroup\small\begin{quote}\textsl{Oops: } #1\end{quote}\egroup} + +\newcommand{\note}[1]{\{Note #1\}} + +\newcommand{\itum}[1]{\item{\bf #1}\\*} + +% For use in code. The \llap magicness makes the lambda exactly as wide as +% the other chars in \tt; the \hskip shifts it right a bit so it doesn't +% crowd the left paren -- which is necessary if \tt is cmtt. +% Note that (\l{x y} (+ x y)) uses the same number of columns in TeX form +% as it produces when typeset. This makes it easy to line up the columns +% in your input. \l is bound to some useless command in LaTeX, so we have to +% define it w/renewcommand. +\let\oldl\l %Save the old \l on \oldl +\renewcommand{\l}[1]{\ \llap{$\lambda$\hskip-.05em}\ (#1)} + +% This one is for the rare (lambda x ...) case -- it doesn't have the +% column-invariant property. Oh, well. +\newcommand{\lx}[1]{\ \llap{$\lambda$\hskip-.05em}\ {#1}} + +% For subcaptions +\newcommand{\subcaption}[1] +{\unskip\vspace{-2mm}\begin{center}\unskip\em#1\end{center}} + +%%% T release notes stuff +\newlength{\notewidth} +\setlength{\notewidth}{\textwidth} +\addtolength{\notewidth}{-1.25in} + +%\newcommand{\remark} [1] +% {\par\vspace{\parskip} +% \parbox[t]{.75in}{\sc Remark:} +% \parbox[t]{\notewidth}{\em #1} +% \vspace{\parskip} +% } + +\newenvironment{optiontable}% + {\begin{tightinset}\renewcommand{\arraystretch}{1.5}% + \begin{tabular}{@{}>{\ttt}ll@{}}}% + {\end{tabular}\end{tightinset}}% + +\newenvironment{desctable}[1]% + {\begin{inset}\renewcommand{\arraystretch}{1.5}% + \begin{tabular}{lp{#1}}}% + {\end{tabular}\end{inset}} + +\def\*{{\ttt *}} + +% Names of things + +\newcommand{\keyword} [1]{\index{#1}{\normalfont\textsf{#1}}} + +% \ex{#1} and also generates an index entry. +\newcommand{\exi}[1]{\index{#1@\texttt{#1}}\ex{#1}} +\newcommand{\indextt}[1]{\index{#1@\texttt{#1}}} + + +\newcommand{\evalto}{$\Longrightarrow$\ } +\renewcommand{\star}{$^*$\/} +\newcommand{\+}{$^+$} + +% Semantic domains, used to indicate the type of a value + +\newcommand{\sem}{\normalfont\itshape} %semantic font +\newcommand{\semvar}[1]{\textit{#1}} %semantic font +\newcommand{\synvar}[1]{\textrm{\textit{$\left<\right.$#1$\left.\right>$}}} %syntactic font +\newcommand{\type}{\sem} +\newcommand{\zeroormore}[1]{{\sem #1$_1$ \ldots #1$_n$}} +\newcommand{\oneormore}[1]{{\sem #1$_1$ #1$_2$ \ldots #1$_n$}} + +\newcommand{\proc} {{\sem procedure}} +\newcommand{\boolean} {{\sem boolean}} +\newcommand{\true} {{\sem true}} +\newcommand{\false} {{\sem false}} + +\newcommand{\num} {{\sem number}} +\newcommand{\fixnum} {{\sem fixnum}} +\newcommand{\integer} {{\sem integer}} +\newcommand{\real} {{\sem real}} + +\newcommand{\character} {{\sem character}} +\newcommand{\str} {{\sem string}} +\newcommand{\sym} {{\sem symbol}} + +\newcommand{\location} {{\sem location}} +\newcommand{\object} {{\sem object}} + +\newcommand{\error} {{\sem error}} +\newcommand{\syntaxerror} {{\sem syntax error}} +\newcommand{\readerror} {{\sem read error}} +\newcommand{\undefined} {{\sem undefined}} +\newcommand{\noreturn} {{\sem no return value}} + +\newcommand{\port} {{\sem port}} + +% semantic variables + +\newcommand{\identifier} {{\sem identifier}} +\newcommand{\identifiers} {\zeroormore{\}} +\newcommand{\expr} {{\sem expression}} +\newcommand{\body} {{\sem body}} +\newcommand{\valueofbody} {{\sem value~of~body}} +\newcommand{\emptylist} {{\sem empty~list}} +\newcommand{\car} {\keyword{car}} +\newcommand{\cdr} {\keyword{cdr}} +\newcommand{\TMPDIR}{\texttt{\$TMPDIR}} + +% generally useful things + +% For line-breaking \tt stuff. +\renewcommand{\=}{\discretionary{-}{}{-}} +\newcommand{\ob}{\discretionary{}{}{}} % Optional break. + +\newcommand{\indx}[1]{#1 \index{ #1 }} +%\newcommand{\gloss}[1]{#1 \glossary{ #1 }} + +% This lossage produces #2 if #1 is zero length, otw #3. +% We use it to conditionally add a space between the procedure and +% the args in procedure prototypes, but only if there are any args-- +% we want to produce "(read)", not "(read )". +\newlength{\voidlen} +\newcommand{\testvoid}[3]{\settowidth\voidlen{#1}\ifdim\voidlen>0in{#3}\else{#2}\fi} + + +% Typeset a definition prototype line, e.g.: +% (cons ) -> pair procedure +% +% Five args are: proc-name args ret-value(s) type index-entry +\newcommand{\dfnix}[5] + {\hbox to \linewidth{\ttchars% + {\ttt(#1\testvoid{#2}{}{\ }{\sem{#2}}\testvoid{#2}{}{\/})\hskip 1em minus +0.5em$\longrightarrow$\hskip 1em minus 0.5em{\sem{#3}}\hfill\quad\textnormal{#4}}}\index{#5}} + +\newcommand{\dfnx}[4] {\dfnix{#1}{#2}{#3}{#4}{#1@\texttt{#1}}} + +\newcommand{\dfn} {\par\medskip\dfnx} % Takes 4 args, actually. +\newcommand{\dfni} {\par\medskip\dfnix} % Takes 5 args, actually. + +\newcommand{\defvar} {\par\medskip\defvarx} % Takes 4 args, actually. +\newcommand{\defvarx}[2]% + {\index{#1} + \hbox to \linewidth{\ttchars{{\ttt{#1}} \hfill #2}}}% + +\newcommand{\defsyn}{\par\medskip\defsynx} % Takes 2 arguments, actually. +\newcommand{\defsynx}[2]% + {\index{#1} + \hbox to \linewidth{\ttchars{{(#1 \ttt{#2})} \hfill syntax}}}% + + +% Typeset the protocol line, then do the following descriptive text indented. +% If you want to group two procs together, do the first one with a \dfn, +% then the second one, and the documentation, with a \defndescx. + +% This one doesn't put whitespace above. Use it immediately after a \dfn +% to group two prototype lines together. +\newenvironment{dfndescx}[4]% + {\dfnx{#1}{#2}{#3}{#4}\begin{desc}}{\end{desc}} + +\newenvironment{dfndesc}[4] % This one puts whitespace above. + {\par\medskip\begin{dfndescx}{#1}{#2}{#3}{#4}} + {\end{dfndescx}} + +\newenvironment{desc}% + {\nopagebreak[2]% + \smallskip + \bgroup\begin{list}{}{\topsep=0pt\parskip=0pt}\item[]} + {\end{list}\leavevmode\egroup\global\@ignoretrue} + +\def\defun#1#2#3{\dfn{#1}{#2}{#3}{procedure}} % preskip +\newcommand{\defunx}[3]{\dfnx{#1}{#2}{#3}{procedure}} % no skip + +\newenvironment{defundescx}[3]% + {\begin{dfndescx}{#1}{#2}{#3}{procedure}} + {\end{dfndescx}} + +\newenvironment{defundesc}[3]% + {\begin{dfndesc}{#1}{#2}{#3}{procedure}} + {\end{dfndesc}} + + +\newenvironment{column}{\begin{tabular}[t]{@{}l@{}}}{\end{tabular}} + +\newenvironment{exampletable}% + {\begin{leftinset}% + \newcommand{\header}[1]{\multicolumn{2}{@{}l@{}}{##1}\\}% + \newcommand{\splitline}[2]% + {\multicolumn{2}{@{}l@{}}{##1}\\\multicolumn{2}{@{}l@{}}{\qquad\evalto\quad{##2}}} + \begin{tabular}{@{}l@{\quad\evalto\quad}l@{}}}% + {\end{tabular}\end{leftinset}} + +% Put on blank lines in a code env to allow a pagebreak. +\newcommand{\cb}{\pagebreak[0]} + +\newenvironment{boxedcode} + {\begin{inset}\tabular{|l|}\hline} + {\\ \hline \end{tabular}\end{inset}} + +% A ragged-right decl that doesn't redefine \\ -- for use in tables. +\newcommand{\raggedrightparbox}{\let\temp=\\\raggedright\let\\=\temp} + +\newenvironment{boxedfigure}[1]% + {\begin{figure}[#1]\begin{boxedminipage}{\linewidth}\vskip 1.5ex} + {\end{boxedminipage}\end{figure}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%for surflet howto +\def\surflet{SUrflet\xspace} +\def\surflets{SUrflets\xspace} +\def\scsh{scsh\xspace} +\def\sunet{SUnet\xspace} + +%From surflet/decls.tex +%{\theoremstyle{break} +%\theoremheaderfont{\normalfont\bfseries\em} +% \newtheorem{proglist}{Listing}[section]} +%\setlength{\theorempreskipamount}{1.5ex plus0.2ex minus0.2ex} +%\setlength{\theorempostskipamount}{2ex plus0.5ex minus0.2ex} + +% These environments differ from the other definition by the +% positioning of \normalem +\newenvironment{listing} + {\ULforem\begin{alltt}\small\normalem} + {\end{alltt}} + +\newenvironment{reflisting}[1] + {\ULforem[\refinlisting{#1}]\begin{alltt}\small\normalem} + {\end{alltt}} + +\newcommand{\contatlisting}[1]{% +{\normalfont\textit{$<$continued in listing~\ref{#1}\/$>$}}} +\newcommand{\contfromlisting}[1]{% +{\normalfont\textit{$<$continued from listing~\ref{#1}\/$>$}}} +\newcommand{\refinlisting}[1]{% +{\normalfont\textit{referenced in listing~\ref{#1}}}} +\newcommand{\seelisting}[1]{% +{\normalfont{\textit{$<$see listing~\ref{#1}\/$>$}}}} + +% Use url-package to get function names line-breaked at - / + +% by infos in /usr/share/texmf/tex/latex/misc/url.sty +%%\newcommand\breakfuntt{\begingroup \urlstyle{tt}% +%%\@ifundefined{selectfont}{\def\UrlFont{\tt}}{\def\UrlFont{\ttfamily}}% +%%\def\UrlBreaks{\do\-\do\/\do\+}\def\UrlNoBreaks{\do\!}\Url +%%} + +\newcommand{\name}[1]{\texttt{#1}} +%\newcommand{\object}[1]{\breakfuntt{#1}} +\newcommand{\file}[1]{\textttt{#1}} +\newcommand{\codemph}[1]{\emph{#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\makeatother + + diff --git a/doc/headings.sty b/doc/headings.sty new file mode 100644 index 0000000..c928f58 --- /dev/null +++ b/doc/headings.sty @@ -0,0 +1,16 @@ +% headings.tex -*- latex -*- +% Quieter headings that the ones used in article.sty. +% This is not a style option. Don't say [headings]. +% Instead, say \input{headings} after the \documentstyle. +% -Olin 7/91 + +\makeatletter + +\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus + -.2ex}{2.3ex plus .2ex}{\large\normalfont\bfseries}} +\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus + -.2ex}{1.5ex plus .2ex}{\normalsize\normalfont\bfseries}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus +-1ex minus -.2ex}{1.5ex plus .2ex}{\normalsize\normalfont\bfseries}} + +\makeatother diff --git a/doc/man.hdir b/doc/man.hdir new file mode 100644 index 0000000..298be23 --- /dev/null +++ b/doc/man.hdir @@ -0,0 +1 @@ +../html \ No newline at end of file diff --git a/doc/man.tex b/doc/man.tex new file mode 100644 index 0000000..f54a6d2 --- /dev/null +++ b/doc/man.tex @@ -0,0 +1,64 @@ +% -*- latex -*- + +% This is the reference manual for the Scheme Untergrund Networking Package. + +\documentclass[twoside]{report} +\usepackage{code,boxedminipage,makeidx,palatino,ct, + headings,mantitle,array,matter,mysize10,tex2page} + +\usepackage[latin1]{inputenc} +\usepackage{alltt} +\usepackage{xspace} +\usepackage{tabularx,theorem,ulem,float,afterpage} % need url +\normalem % usually, don't use ulem + +\texonly +% tex2page defines \url and hyperref loads the package url +% but setting \url to \relax satisfies \newcommand +\let\url\relax +\input{pdfcond} +\ifpdf +\usepackage[pdftex,hyperindex, + pdftitle={commander s manual, release 0.1}, + pdfauthor={Martin Gasbichler and Eric Knauel} + colorlinks=true,linkcolor=blue,pagecolor=blue,urlcolor=blue, + pdfstartview=FitH,pdfview=FitH]{hyperref} +\usepackage{thumbpdf} +\usepackage{tocbibind} +\else +\usepackage[dvipdfm,hyperindex,hypertex, + pdftitle={commander s manual, release 0.1}, + pdfauthor={Martin Gasbichler and Eric Knauel} + colorlinks=true,linkcolor=blue,pagecolor=blue,urlcolor=blue, + pdfstartview=FitH,pdfview=FitH]{hyperref} +\fi +\endtexonly + +% Style issues +\parskip = 3pt plus 3pt +\sloppy + +\input{decls} +\makeindex +%%% End preamble + + +\begin{document} + +\frontmatter +\title{Commander S Manual} +\subtitle{For Commander S release 0.1} +\author{Martin Gasbichler, Eric Knauel} +\date{October 2005} + +\mainmatter +\maketitle + +\tableofcontents + +\include{overview} + +\backmatter +\printindex + +\end{document} diff --git a/doc/matter.sty b/doc/matter.sty new file mode 100644 index 0000000..f0c4fda --- /dev/null +++ b/doc/matter.sty @@ -0,0 +1,16 @@ +%&latex -*- latex -*- +% Implement the \frontmatter, \mainmatter, and \backmatter macros, +% so I can use them in reports, not just books. + +\newif\if@mainmatter \@mainmattertrue + +\newcommand\frontmatter{% + \cleardoublepage\@mainmatterfalse\pagenumbering{roman}} + +\newcommand\mainmatter{% + \cleardoublepage\@mainmattertrue% + \pagenumbering{arabic}\setcounter{page}{1}} + +\newcommand\backmatter{% + \if@openright\cleardoublepage\else\clearpage\fi% + \@mainmatterfalse} diff --git a/doc/mysize10.sty b/doc/mysize10.sty new file mode 100644 index 0000000..94c52c0 --- /dev/null +++ b/doc/mysize10.sty @@ -0,0 +1,22 @@ +%&latex -*- latex -*- +\if@twoside + \oddsidemargin 44pt + \evensidemargin 82pt + \marginparwidth 107pt +\else + \oddsidemargin 63pt + \evensidemargin 63pt + \marginparwidth 90pt +\fi +\marginparsep 11pt + +\topmargin 27pt +\headheight 12pt +\headsep 25pt +\topskip = 10pt +\footskip 30pt + +\textheight = 43\baselineskip +\advance\textheight by \topskip +\textwidth 345pt +\endinput diff --git a/doc/overview.tex b/doc/overview.tex new file mode 100644 index 0000000..d5b5ad3 --- /dev/null +++ b/doc/overview.tex @@ -0,0 +1,79 @@ + +\chapter{Overview} +\label{cha:overview} + +Commander S is a visual shell written in Scheme. + + +\section{Key bindings} +\label{sec:key-bindings} + +Most of the key bindings are not configurable yet. + +\subsection{General keybindings} +\label{sec:general-keybindings} + +\begin{description} +\item[Switch the command mode] \texttt{[F7]}, \texttt{(main . switch-command-buffer-mode-key)} +\item[Switch the command mode and convert command line] + \texttt{[Ctrl-x F7]} +\item[Repaint] \texttt{[F2]} +\item[Switch between command buffer and result buffer] + \texttt{[Ctrl-x o]} +\item[Paste the selection] \texttt{[Ctrl-x p]} +\item[Paste the selection as focus object] \texttt{[Ctrl-x P]} +\item[Next item of result histroy] \texttt{[page up]} +\item[Previous item of result histroy] \texttt{[page down]} +\item[Complete command or argument] \texttt{[TAB]} +\end{description} + +Line editing facilities: +\begin{description} +\item[Moving to the start of the line] \texttt{[Ctrl-a]} +\item[Moving to the end of the line] \texttt{[Ctrl-e]} +\item[Moving the cursor to the left] \texttt{[Left arrow]} +\end{description} + +Select list facilities: +\begin{description} +\item[Mark/unmark item] \texttt{[m]} +\item[Enter item] \texttt{[RET]} +\end{description} + +\subsection{Key bindings for process object viewer} +\label{sec:key-bindings-process} + +\begin{description} +\item[Filter processes] \texttt{[f]}, \texttt{(ps . filter-key)} +\item[Sort processes in increasing order] \texttt{[S]}, \texttt{(ps . sort-up-key)} +\item[Sort processes in decreasing order] \texttt{[s]}, \texttt{(ps + . sort-down-key)} +\item[Select columns] \texttt{[c]}, \texttt{(ps . columns-key)} +\item[Kill process] \texttt{[k]}, \texttt{(ps . kill-key)} +\item[Re-run \texttt{ps}] \texttt{[g]}, \texttt{(ps . refresh-key)} +\end{description} + + +\subsection{Key bindings for file system object viewer} +\label{sec:key-bindings-file} + + +\subsection{Key bindings for Scheme value inspector} +\label{sec:key-bindings-scheme} + +Very similar to the Scheme~48 standard bindings. + +\section{Customizing Commander S} +\label{sec:cust-comm-s} + +On startup, Commander S reads the file \verb|~/.cmdrsrc|. The file +should contain an alist mapping configuration options to values. For +example: +% +\begin{verbatim} +(((main . switch-command-buffer-mode-key) . 262)) +\end{verbatim} + +% Local Variables: +% TeX-master: "man" +% End: diff --git a/doc/pdfcond.tex b/doc/pdfcond.tex new file mode 100644 index 0000000..34d7cf2 --- /dev/null +++ b/doc/pdfcond.tex @@ -0,0 +1,14 @@ +\newif\ifpdf +\ifx\pdfoutput\undefined +\pdffalse % we are not running PDFLaTeX +\else +\pdfoutput=1 % we are running PDFLaTeX +\pdftrue +\fi +% Then use your new variable \ifpdf +% \ifpdf +% \usepackage[pdftex]{graphicx} +% \pdfcompresslevel=9 +% \else +% \usepackage{graphicx} +% \fi