\documentclass{article} \usepackage{alltt,multicol,array,tabularx} \pagestyle{empty} \usepackage{vmargin} \setpapersize{USletter} \setmarginsrb{0.75in}{0.75in}{0.75in}{0.75in}{0pt}{0pt}{0pt}{0pt} \newenvironment{mytt}{\alltt\def\\{\(\backslash\)}}{\endalltt} \def\.{\char`\\} \def\{{\char`\{} \def\}{\char`\}} \setcounter{secnumdepth}{0} \newcommand\code[1]{$\langle$\emph{#1}$\rangle$} \begin{document} \raggedright \parskip=0.5\baselineskip plus 0.2\baselineskip \parindent=0pt \hbox{} \kern-1in \advance\voffset by0.5in \begin{center} {\Large A One-Page Guide to Using \texttt{noweb} with {\LaTeX}} \smallskip {Norman Ramsey\\after Lee Wittenberg and Carl Gregory} \end{center} \begin{multicols}{2}[\section{The \texttt{noweb} file \texttt{foo.nw}}] \vbox{ \centerline{\large\textbf{Documentation}} \verb+@+ in column~1 of a line by itself starts a documentation chunk. Text is in {\LaTeX}; use \verb+[[+\ldots \verb+]]+ for embedded code fragments. \texttt{noweave} automatically wraps file in \begin{quote} {\ttfamily\begin{tabular}{|l|}\hline \.documentclass\{article\}\\ \.usepackage\{noweb\}\\ \.begin\{document\}\\ ~~\vdots\\ \.end\{document\}\\ \hline \end{tabular}} \end{quote} To avoid wrapper, put \verb+\documentclass+ and \verb+\usepackage+ in your source and use \texttt{noweave~-delay}. } \vskip 0pt plus1in \penalty-500 \vbox{ \centerline{\large\textbf{Code}} \verb+<<+\ldots \emph{name of chunk}\ldots \verb+>>=+ in column~1 of a line by itself starts a code chunk. Code is in any language; use \verb+<<+\ldots \verb+>>+ to include other code chunks by reference. \emph{You can write multiple code chunks with the same name}; they are concatenated. Name chunks inside functions with verbs, e.g., \code{copy all lines from \texttt{\upshape in} to \texttt{\upshape out}, adding markup}. Name chunks holding declarations with nouns, e.g., \code{private function prototypes} or \code{definitions of exported functions}. Name top-level ``root'' chunks after the files they are to represent, e.g., \verb+<>=+ or \verb+<>=+. } \vskip 0pt plus3in \end{multicols} \emph{For emacs users}: A first line of \verb+% -*- mode: Noweb; noweb-code-mode: c-mode -*-+ is useful (to set editing mode for code chunks). The Unix \texttt{teTeX} distribution comes with helpful Info files that cover {\LaTeX} and \texttt{dvips}. \section{Typical Commands} \noindent \begin{tabularx}\textwidth{@{}>{\ttfamily}l>{\raggedright\arraybackslash}X} notangle -L -Rfoo.c foo.nw > foo.c&Extract file \texttt{foo.c}, with \texttt{\#line}\\ notangle -Rfoo.h foo.nw | cpif foo.h&Extract file \texttt{foo.h} if it has changed (without \texttt{\#line}).\\ \small noweave -filter l2h -index -html foo.nw > foo.html& Create HTML, converting documentation from {\LaTeX}.\\ noweave -x foo.nw > foo.tex& Create {\LaTeX} document with cross-reference, no index.\\ latex foo; latex foo& Process {\LaTeX} into ``device-independent'' (\texttt{dvi}) file.\\ latex '\.scrollmode \.input foo'& Alternate {\LaTeX} command for use in Makefile.\\ dvips -o foo.ps foo&Convert \texttt{foo.dvi} into PostScript.\\ \end{tabularx} \begin{multicols}{2}[\section{Minimal {\LaTeX}}] \emph{Special characters}\hfil\break Not to be typed in text; OK in code\hfil\break \hbox{\qquad \verb=% \ { } $ & # ^ _ ~=} \emph{Escapes for specials}\hfil\break \hbox{\qquad \verb=\% $\backslash$ \{ \} \$ \& \# \_=} \emph{Blank line} is new paragraph. Write \verb+``quotes''+ to get ``quotes.'' Never \verb+"quotes"+. \newenvironment{sample}[1]{\begin{tabular}{@{}l>{\ttfamily}l}\emph{#1}}{\end{tabular}} \begin{sample}{Titles} &\.title\{\ldots\}\\ &\.author\{\ldots\}\\ &\.maketitle\\ \end{sample} \begin{sample}{Sectioning} &\.section\{\ldots\}\\ &\.subsection\{\ldots\}\\ &\.subsubsection\{\ldots\}\\ \end{sample} \begin{sample}{Fonts} &\.emph\{{\normalfont\emph{emphasis}}\}\\ &\.textbf\{{\normalfont\textbf{bold}}\}\\ &\.texttt\{{\normalfont\texttt{typewriter}}\}\\ &\.textit\{{\normalfont\textit{italics}}\}\\ &\.textsf\{{\normalfont\textsf{sans serif}}\}\\ &\.textsc\{{\normalfont\textsc{small caps}}\}\\ \end{sample} \newdimen\onecol \onecol=0.25\textwidth \advance\onecol by -0.33in {\noindent\parskip=0pt \begin{tabular}{@{}lp{\onecol}p{\onecol}} \emph{Lists}& \texttt{List of items} \par\kern-0.8\baselineskip \begin{verbatim} \begin{itemize} \item one \item two \item three \end{itemize} \end{verbatim} \par\kern-2.5\baselineskip\hbox{} & List of items \begin{itemize} \item one \item two \item three \end{itemize} \par\kern-2.5\baselineskip\hbox{} \\ &\multicolumn2{l}{Also \texttt{\.begin\{enumerate\}} for numbered lists.} \end{tabular}} Get the right version; you want {\LaTeX}2$\varepsilon$, not {\LaTeX}~2.09. \end{multicols} \end{document}