diff options
Diffstat (limited to 'macros/latex/contrib/seminar/doc')
-rwxr-xr-x | macros/latex/contrib/seminar/doc/run.sh | 8 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/doc/seminar-doc.pdf | bin | 0 -> 251653 bytes | |||
-rw-r--r-- | macros/latex/contrib/seminar/doc/seminar-doc.tex | 1932 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/doc/semsamp1.pdf | bin | 0 -> 34833 bytes | |||
-rw-r--r-- | macros/latex/contrib/seminar/doc/semsamp1.tex | 110 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/doc/semsamp2.pdf | bin | 0 -> 54935 bytes | |||
-rw-r--r-- | macros/latex/contrib/seminar/doc/semsamp2.tex | 297 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/doc/semsamp3.pdf | bin | 0 -> 37704 bytes | |||
-rw-r--r-- | macros/latex/contrib/seminar/doc/semsamp3.tex | 68 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/doc/tvz-code.sty | 291 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/doc/tvz-hax.sty | 266 | ||||
-rw-r--r-- | macros/latex/contrib/seminar/doc/tvz-user.sty | 215 |
12 files changed, 3187 insertions, 0 deletions
diff --git a/macros/latex/contrib/seminar/doc/run.sh b/macros/latex/contrib/seminar/doc/run.sh new file mode 100755 index 0000000000..72acd3afed --- /dev/null +++ b/macros/latex/contrib/seminar/doc/run.sh @@ -0,0 +1,8 @@ +#!/bin/bash +#latex semsamp1 && dvips -T 297mm,210mm semsamp1 && ps2pdf -dALLOWPSTRANSPARENCY semsamp1.ps +latex semsamp1 && dvips semsamp1 && ps2pdf -dALLOWPSTRANSPARENCY semsamp1.ps +latex semsamp2 && dvips -T 297mm,210mm semsamp2 && ps2pdf -dALLOWPSTRANSPARENCY semsamp2.ps +latex semsamp3 && dvips -T 297mm,210mm semsamp3 && ps2pdf -dALLOWPSTRANSPARENCY semsamp3.ps +rm *.log *.aux *.dvi *.ps *.tmp *.out *.los + + diff --git a/macros/latex/contrib/seminar/doc/seminar-doc.pdf b/macros/latex/contrib/seminar/doc/seminar-doc.pdf Binary files differnew file mode 100644 index 0000000000..2227746eae --- /dev/null +++ b/macros/latex/contrib/seminar/doc/seminar-doc.pdf diff --git a/macros/latex/contrib/seminar/doc/seminar-doc.tex b/macros/latex/contrib/seminar/doc/seminar-doc.tex new file mode 100644 index 0000000000..94aef0b7f0 --- /dev/null +++ b/macros/latex/contrib/seminar/doc/seminar-doc.tex @@ -0,0 +1,1932 @@ +%% BEGIN sem-user.tex +\def\FileDate{93/04/01} +\def\FileVersion{1.0} +%% +%% COPYRIGHT 1993, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% +%% +%% +%% This LaTeX file prints the User's Guide for seminar.sty. +%% You must have my tvz-hax.sty, tvz-user.sty, and fancybox.sty, +%% which are distributed with seminar.sty. +%% +%% This is distributed with the index file sem-user.ind. +%% To make an new index, run, e.g.: +%% makeindex sem-user.idx +%% +%% STYLE OPTIONS: +%% `a4' : For A4 paper. +%% `twoside' : For two-sided printing. +%% `2up' : For two-up printing. (Uses non-standard font magnifications. +%% See 2up.doc for details.) +%% + +\documentstyle[12pt]{tvz-user} + +\makeindex + +% Used with twoside option: +\def\theheadertitle{seminar.sty: User's Guide} + +% No headers, 1in top margin +\setlength{\topmargin}{0pt} +\setlength{\headheight}{0pt} +\setlength{\headsep}{0pt} +\setlength{\textheight}{8.75in} +\setlength{\footskip}{.625in} +\papersizeadjust + +% Change part environment: +\renewcommand{\part}[1]{% + \clearpage + \refstepcounter{part} + \addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}% + \hrule height 1pt\relax + \vskip 1ex + \hbox to\columnwidth{\strut\huge\bf\thepart\hfil#1}% + \vskip 1ex + \hrule height 1pt\relax + \vskip 3ex} + +\def\MainFont{\tt} % For macro definitions. + +\ShortVerb +\ShortMeta + +\let\filedate\FileDate + +\begin{document} + +\thispagestyle{empty} + +\null +\vfill + +\begin{center} + {\huge\bf seminar.sty}\\[9pt] + {\LARGE\bf A \bLaTeX\ style for slides and notes}\\[14pt] + {\LARGE\bf User's Guide}\par + \vskip 1.5em + \large + \renewcommand{\thefootnote}{\fnsymbol{footnote}} + Timothy Van Zandt\\ + {\normalsize\tt Timothy.VAN-ZANDT@insead.edu} + \vskip 1em + \thefiledate\\ Version \FileVersion\par +\end{center} +\par +\setlength{\unitlength}{1cm} +\thicklines +\centerline{\lower.8in\hbox{% +\begin{picture}(0,0) +\put(2,-11){\framebox(4,2){}} +\put(2,-11){\line(-2,3){1}} +\put(2,-9){\line(-2,3){1}} +\put(6,-9){\line(-2,3){1}} +\put(1,-9.5){\line(0,1){2}} +\put(1,-7.5){\line(1,0){4}} +\put(5.8,-8.7){\line(0,1){2}} +\put(5.0,-6.7){\oval(1.6,1.6)[tr]} +\put(5.0,-5.9){\line(-1,0){.7}} +\put(3.1,-6.4){\framebox(1.2,1){}} +\put(3.1,-6.4){\line(-1,2){.3}} +\put(3.1,-5.4){\line(-1,3){.3}} +\put(4.3,-5.4){\line(-1,3){.3}} +\put(2.8,-5.8){\line(0,1){1.3}} +\put(2.8,-4.5){\line(1,0){1.2}} +\put(0,6.2){\oval(14,10)} +\put(.02,6.18){\oval(14,10)} +\thinlines +\put(2.8,-5.8){\line(-4,3){9.6}} +\put(2.8,-4.5){\line(-3,5){9.35}} +\put(4,-4.5){\line(1,6){2.6}} +\put(6.8,1.4){\line(-1,-3){2.5}} +\end{picture}}} +\par +\bigskip +\rightskip=0pt plus 2em\relax +\parshape=20 +0cm 2.3cm +0cm 2.9cm +0cm 3.5cm +0cm 4.1cm +0cm 4.7cm +0cm 5.3cm +0cm 5.9cm +0cm 6.5cm +0cm 7.1cm +0cm 7.7cm +0cm 8.3cm +0cm 8.3cm +0cm 8.3cm +0cm 7.3cm +0cm 7.3cm +0cm 7.3cm +0cm 7.3cm +0cm 7.3cm +0cm 7.3cm +0cm 7.3cm +seminar.sty is a \LaTeX\ style for typesetting slides or +transparencies, and accompanying notes. Here are some of its special features: +It is compatible with \AmS-\LaTeX, and you can use PostScript and \AmS{} +fonts. Slides can be landscape and portrait. There is support for color and +frames. The magnification can be changed easily. +Overlays can be produced from a single slide environment. Accompanying notes, +such as the text of a presentation, can be put + outside the slide environments. The slides, notes or both together + can then be typeset in a variety of formats. + +\vfill + +\twosideclearpage +\pagenumbering{roman} +\tableofcontents + +\twosideclearpage + +\section*{Getting Started} +\addcontentsline{toc}{section}{Getting Started} +\markboth{Getting Started}{Getting Started} + +"seminar.sty" is a \LaTeX{} document style for typesetting slides, and more. + +You should know how to use \LaTeX, as described in Leslie Lamport's \LaTeX: +{\em User's Guide and Reference Manual}. + +Let's get started: +\begin{enumerate} +\item If you are installing "seminar.sty", read the the accompanying read-me +file, and put the input files where your \TeX\ looks for inputs. + +\item Typeset the sample file, "semsamp1.tex", to see that everything is +working. You can use \LaTeX\ or \AmS-\LaTeX. + +\item Read Appendix \ref{short-fonts}, on page \pageref{short-fonts}. + +\item To start making landscape slides, use +\begin{LVerbatim} + \documentstyle{seminar} + \begin{document} + \begin{slide} + foo + \end{slide} + \end{document} +\end{LVerbatim} +and print out your document in landscape mode. + +\item To start making portrait slides, include the \o{portrait} style option, +and use the \e{slide*} environment instead of \e{slide}: +\begin{LVerbatim} + \documentstyle[portrait]{seminar} + \begin{document} + \begin{slide*} + foo + \end{slide*} + \end{document} +\end{LVerbatim} + +\item If you have used \SliTeX, see Section \ref{slitex}. + +\item For A4 paper, use the "a4" style option. + +\item When you are ready to explore "seminar.sty"'s special features, skim the +{\em User's Guide}, including the appendices. + +\item Play around with the sample file "semsamp2.tex" to try out some of +"seminar.sty"'s special features. + +\item When you run into problems, look for help in Part \ref{Help}. + +\end{enumerate} + +\twosideclearpage + +\pagenumbering{arabic} + +\part{Just slides} + +\section{Landscape and portrait slides} + +"seminar.sty" is a \LaTeX\ (or \AmS-\LaTeX) document style. Thus, begin your +document with +\begin{LVerbatim} + \documentstyle{seminar} +\end{LVerbatim} + +The slide environments are\MainEnvIndex{slide}\MainEnvIndex{slide*}% +\begin{LVerbatim} + \begin{slide} ... \end{slide} + \begin{slide*} ... \end{slide*} +\end{LVerbatim} +\e{slide} is for landscape slides and \e{slide*} is for portrait slides. + +By default, the document is typeset in landscape mode, but if you include the +\O{portrait} style option, the document is typeset in portrait mode. +Typesetting the document in landscape mode is different from printing it in +landscape mode; you may have to take care of the latter when printing with +your dvi driver (see Appendix \ref{S-landscape}). + +If you have both landscape and portrait slides in your file, there are two +ways to print the slides: +\begin{itemize} + \item If you dvi driver supports rotation, then you can print all the slides +at once. See Appendix \ref{S-landscape} for details. + \item You can first print your landscape slides by putting the command +\begin{MD} + \landscapeonly +\end{MD} +in the preamble, and then print the portrait slides by inserting instead the +command +\begin{MD} + \portraitonly +\end{MD} +and including the \o{portrait} style option. +\end{itemize} + +\section{The height and width of slides\label{slidedim}} + +The dimensions of the slides are set by the lengths +\begin{MD} + \slidewidth\\ + \slideheight +\end{MD} +The ``width'' refers to the width of a slide when looking at it in landscape +orientation, whether it is a landscape or portrait slide (and the same goes +for ``height''). The default width is 8.5 inches and the default height is 6.3 +inches. + +The slide environments have an optional argument that lets you change the +dimensions of a single slide, as in +\begin{LVerbatim} + \begin{slide*}[7.5in,6in] +\end{LVerbatim} +The first dimension is the slide's ``width'', and the second dimension is the +slides ``height''. If you remember what we said about what ``width'' and +``height'' mean, you will see that the above example begins a portrait slide +that is 7.5 inches high and 6 inches wide. + + +\section{Margins within a slide} + +When a slide is not full, the material is vertically centered within the +slide. The command +\begin{MD} + \centerslidesfalse +\end{MD} +cause the material to be flush to the top, instead. The command +\begin{MD} + \centerslidestrue +\end{MD} +switches back to vertical centering. + +The right margin in slides is ragged by default. You can change this with the +command +\begin{MD} + \raggedslides[len] +\end{MD} +<len> should be the maximum space between the end of the line and the right +margin. The argument is optional; \n\raggedslides\ is equivalent to +\begin{LVerbatim} + \raggedslides[1fil] +\end{LVerbatim} +which gives a ragged right margin, as in \LaTeX's "flushleft" environment (the +default). On the other hand, +\begin{LVerbatim} + \raggedslides[0pt] +\end{LVerbatim} +gives a justified margin, and +\begin{LVerbatim} + \raggedslides[2em] +\end{LVerbatim} +gives a semi-ragged margin. Note that as a margin becomes less ragged, +hyphenation becomes more likely and more material fits on a slide. + +\section{Page breaking within a slide environment\label{S-pagebreak}} + +A slide environment can contain more than one ``page'' of slides; \TeX\ will +break slides into pages automatically. + +If the mere idea disturbs you, put the command +\begin{LVerbatim} + \extraslideheight{10in} +\end{LVerbatim} +in your document. You can then divide slides into pages yourself by starting +new slide environments or using the +\begin{MD} + \newslide +\end{MD} +command within a slide environment. And you need read this section no further. + +If instead you use the command +\begin{LVerbatim} + \extraslideheight{0pt} +\end{LVerbatim} +then \TeX\ will break pages the way you would expect. This is a quick and +dirty way to break a whole paper or a long proof into slides. + +However, dividing material into slides is usually too delicate a matter to be +left up to \TeX, and ultimately you will make all the page breaks yourself. On +the other hand, automatic page breaking can still be helpful at the early +stages, letting \TeX\ find preliminary page breaks for you. + +Setting the "\extraslideheight" to "0pt" doesn't give you much flexibility +about where to put the page breaks. Of course, you can always put a page break +earlier than the one found by \TeX, but occasionally you will prefer to let a +slide overflow by a small amount rather than rewrite the whole slide. + +Therefore, by default, "seminar.sty" uses\MainIndex{\extraslideheight}% +\begin{LVerbatim} + \extraslideheight{10pt} +\end{LVerbatim} +This adds on an extra "10pt" to the target slide height (as determined by +"\slideheight" for landscape slides and "\slidewidth" for portrait slides) +{\em for the purpose of page-breaking only}. + +If the resulting slide exceeds the slide height, you will get a message like +\begin{LVerbatim} + LaTeX Error: Slide 3 overfull by 9pt. +\end{LVerbatim} +"seminar.sty" then tries to reduce the slide to its maximum height by +squeezing out rubber vertical space (e.g., tightening up the interline +spacing). If the slide is still too full, you will get another warning like: +\begin{LVerbatim} + Overfull \vbox by 4.4pt while output was active. +\end{LVerbatim} +You can go back and look for a way to make the slide shorter, or you can +insert a "\newslide" command to change the page-break, or you can just ignore +these warnings. + +The recommended value to give in the argument of "\extraslideheight" is the +largest length by which you might be willing to let a slide overflow. + +After you have decided on the page breaks, you can shut up the warnings about +overfull slides and "\vbox"'s with +\begin{LVerbatim} + \renewcommand{\slidefuzz}{1in} +\end{LVerbatim} +The value of \n\slidefuzz\ (which should be length, even though \n\slidefuzz\ +is an ordinary command sequence) is the threshold above which "seminar.sty" +gives a warning about an overfull slide. The default definition is "2pt". + + +\section{Margins on the page\label{S-slidemargins}} + +After "seminar.sty" makes a slide (or a slide page) as described above, it +(optionally) frames the slide. This is described in Section \ref{S-frames}. +For making and framing the slide, "seminar.sty" does not need to know anything +about the paper you are printing on, or the margins you want. Hence, none of +\LaTeX's standard page parameters are relevant within a slide environment. +(However, for the sake of consistency, "seminar.sty" sets "\textwidth" to the +width of the slide and "\textheight" to the height of the slide within a slide +environment.) + +Now "seminar.sty" has to do something with the finished slide. As you read +this User's Guide, you will find that there are various options. However, +right now we are making slides for printing on transparencies, and so we have +to position the slide on the transparency and add headers and footers. +"seminar.sty" does not use \LaTeX's page parameters for this either. Instead, +it uses the following parameters: +\begin{center} + \begin{tabular}{lc} + {\em Parameter:} & \em Default:\\ + \N\slideleftmargin & .5in\\ + \N\sliderightmargin & .5in\\ + \N\slidetopmargin & .5in\\ + \N\slidebottommargin & .5in + \end{tabular} +\end{center} +There are commands, to be set with "\renewcommand".\footnote{The only true +length parameters (meaning that thay should be set with "\setlength") in +"seminar.sty" are \n\slidewidth, \n\slideheight, \n\slideframewidth, +\n\slideframesep, \n\semin, and \n\semcm.} + +\begin{figure} +\hrule height 1pt\relax +\begin{center} +\setlength\unitlength{.7cm} +\begin{picture}(13,11.5)(-1,-1.5) +\thicklines +\put(0,0){\framebox(11,8.5){\Huge My slide}} +\put(5.5,4.25){\fancyoval(8.5,6){}} + +\thinlines +\put(0,8.65){\line(0,1){.3}} +\put(.75,8.65){\line(0,1){.3}} +\put(.5,8.8){\vector(1,0){.25}} +\put(.5,8.8){\vector(-1,0){.5}} +\put(.375,9.1){\makebox(0,0)[b]{\n\slideleftmargin}} + +\put(10.25,8.65){\line(0,1){.3}} +\put(11,8.65){\line(0,1){.3}} +\put(10.75,8.8){\vector(1,0){.25}} +\put(10.75,8.8){\vector(-1,0){.5}} +\put(10.625,9.1){\makebox(0,0)[b]{\n\sliderightmargin}} + +\put(0,-.15){\line(0,-1){.3}} +\put(11,-.15){\line(0,-1){.3}} +\put(5.5,-.3){\vector(1,0){5.5}} +\put(5.5,-.3){\vector(-1,0){5.5}} +\put(5.5,-.6){\makebox(0,0)[t]{\n\paperheight}} + +\put(-.15,0){\line(-1,0){.3}} +\put(-.15,.75){\line(-1,0){.3}} +\put(-.3,.5){\vector(0,1){.25}} +\put(-.3,.5){\vector(0,-1){.5}} +\put(-.6,.375){\makebox(0,0)[r]{\n\slidebottommargin}} + +\put(-.15,8.5){\line(-1,0){.3}} +\put(-.15,7.75){\line(-1,0){.3}} +\put(-.3,8){\vector(0,1){.5}} +\put(-.3,8){\vector(0,-1){.25}} +\put(-.6,8.125){\makebox(0,0)[r]{\n\slidetopmargin}} + +\put(11.15,0){\line(1,0){.3}} +\put(11.15,8.5){\line(1,0){.3}} +\put(11.3,4.25){\vector(0,1){4.25}} +\put(11.3,4.25){\vector(0,-1){4.25}} +\put(11.6,4.25){\makebox(0,0)[l]{\n\paperwidth}} + +\put(.75,7.75){\makebox(0,0)[bl]{Here is my header}} +\put(10.25,7.75){\makebox(0,0)[br]{9/30/99}} +\put(.75,.75){\makebox(0,0)[tl]{Here is my footer}} +\put(10.25,.75){\makebox(0,0)[tr]{7-9}} +\end{picture} + +\caption{Slide margins.\label{SlideMargins}} +\end{center} +\hrule height 1pt\relax +\end{figure} + +Look at Figure \ref{SlideMargins}. Note that the headers and footers lie {\em +inside} the top and bottom margins, respectively. The slide is then centered +horizontally and vertically between the margins. + + +\section{Magnification and lengths} + +"seminar.sty" changes \TeX's magnification so that the output is larger than +when typesetting an article. This means, for example, that if you paste some +input from a paper you are writing with \LaTeX\ into a slide, it will look +pretty much the same in the slide, except that it is magnified. For example, +"\vspace{.5in}" produces a space that gets bigger along with the fonts and +everything else. Of course, it won't look identical, since "seminar.sty" uses +its own spacing parameters and margins. + +\TeX's standard magnifications are in magsteps. $n$ magsteps means a +magnification of $1.2^n$. "seminar.sty"'s default magnification is 4 magsteps, +but you can change this with the command +\begin{MD} + \slidesmag{n} +\end{MD} +<n> should be an integer between $-5$ and 9. + +As noted above, lengths grow with the magnification. For spacing, like the +parameter "\parindent" or using "\\[2pt]" to add a little extra space between +lines, this is great, because it is easier to think in unmagnified dimensions. +Setting "\parindent" to ".5cm" will look the same (relative to everything +else) whatever the magnification. + +However, if you want to set the unit in a "picture" environment to 1cm, {\em +as it appears on the slide}, use +\begin{LVerbatim} + \setslidelength{\unitlength}{1cm} +\end{LVerbatim} +"\setslidelength" is like \LaTeX's "\setlength", but it scales the size down +so that the resulting size after magnification is, in this example, 1cm (in +the process, it removes any stretch from rubber lengths).% +\footnote{If you know what {\tt true} dimensions are, you may be wondering why +they haven't been mentioned. These are not recommended because you will not be +able to print the slides two-up or use the {\tt article} format.} +There is also a +\begin{MD} + \addtoslidelength{cmd}{len} +\end{MD} +command. + +"seminar.sty" also provides the lengths +\begin{MD} + \semin\\ + \semcm +\end{MD} +which are equal to an inch and a centimeter, scaled down to ``before +magnification'' size. For example, +\begin{LVerbatim} + \rule{1pt}{4\semcm} +\end{LVerbatim} +makes a line 4 centimeters long on the transparency,.\footnote{Suppose you +want to use another unit, such as millimeters, instead of centimeters. Then +try this: +\begin{LVerbatim} + \newcommand{\semmm}{\semcm} + \renewcommand{\semcmlength}{1mm} + \setslidelength{\semmm}{1mm} +\end{LVerbatim}} + +"\textwidth", "\textheight", "\columnwidth" and "\linewidth" all have the +expected values in slides. (But "\slidewidth" and "\slideheight" do not.) +Thus, this would +\begin{LVerbatim} + \rule{1pt}{.5\textwidth} +\end{LVerbatim} +make a line that is 1/2 the width of the slide. + +For help getting an EPS file to be the right size, see page \pageref{EPS}. + +Finally, there are some parameters that "seminar.sty" scales for you, and +hence you can (and should) set them at their magnified values (the actual size +on transparencies): +\begin{itemize} + \item "\slidewidth" and "\slideheight" + \item "\slideframewidth" and "\slideframesep" (see Section \ref{S-frames}). + \item The slide margin parameters (see Section \ref{S-slidemargins}). + \item The \LaTeX\ page parameters, {\em when they are set in the +preamble}.\footnote{The \LaTeX\ page parameters are listed on page 163 of +Lamport's {\em \LaTeX\ User's Guide and Reference Manual}. They are used for +notes (see Section \ref{S-notes}) and the \o{article} option (see Sections +\ref{S-twoup} and \ref{S-article}), but not for printing slides onto +transparencies. Lamport warns that resetting page parameters in the middle of +the document is tricky; here it is more so, because you do have to worry about +scaling them. But you can use "\setslidelength" for this.} +\end{itemize} + +Note that the warnings about overfull slides (see Section \ref{S-pagebreak}) +report unmagnified dimensions. + + +\section{Font sizes} + +The "\slidesmag" command lets you change the magnification of your document. +You can effectively fine tune the magnification by using the "11pt" and "12pt" +style options. For example, instead of increasing the magnification from 4 to +5, you can switch to the "12pt" style option. There are differences---e.g., +magnification affects the space you get from "\hspace{1in}"---but the fonts +will at least be roughly the same size either way. The "11pt" option gives a +half-step, somewhat like "\slidesmag{4.5}", if the latter were permitted. + +Sometimes you want to use smaller font sizes for a single slide, in order to +fit in that little bit of extra material, or to use larger font sizes, so that +the few things you have to say on a slide don't look too lonely. You can't +changing the magnification in the middle of the document, but you can change +the size of the fonts with the command +\begin{MD} + \ptsize{n} +\end{MD} +This switches to the font sizes that are in effect when you use the "<n>pt" +option. Actually, <n> can be 8, 9, 10, 11, 12, 14 or 17, whether you have +"art<n>.sty" or not. + + +\section{Spacing parameters\label{S-spacing}} + +\begin{figure} +\hrule height 1pt +\begin{center} +\begin{tabular}{llc} +{\em Command:} & {\em Initializes:} & {\em Default} \\[2pt] +\N\slideparskip & "\parskip" & "1ex minus .2ex"\\ +\N\slideparindent & "\parindent" & "0pt"\\ +\N\slidefootnotesep & "\footnotesep" & "1.2ex"\\ +\N\slideleftmargini & "\leftmargini" & "1.8em" \\ +\N\slideleftmarginii & "\leftmarginii" & "1.4em" \\ +\N\slideleftmarginiii & "\leftmarginiii" & "1em" \\ +\N\slidelabelsep & "\labelsep" & ".5em" \\ +\N\slideitemsep & "\itemsep" & ".8ex minus .2ex" \\ +\N\slidepartopsep & "\partopsep" & "1ex minus .2ex" \\ +\N\slidestretch & "\baselinestretch" & "1.2"\\ +\N\slidearraystretch & "\arraystretch" & "1.2" +\end{tabular} + +\caption{Slide spacing parameters.\label{SpacingDefaults}} +\end{center} +\hrule height 1pt +\end{figure} + +The commands in Figure \ref{SpacingDefaults} are used to initialize some of +the spacing parameters at the beginning of each slide environment and when +"\ptsize" is used in a slide environment. These are spacing parameters that +should depend on the size of fonts and that in \LaTeX's "article" style would +be set in "art10.sty", etc. These commands should all be changed with +"\renewcommand", even though, except for the "stretch" parameters, their +values should be lengths. +Note that "ex" and "em" units are used because these are the units that depend +of font sizes. + +Outside a slide environment, redefine the commands on the left if you want to +change these spacing parameters. Within a slide environment, reset the +parameters directly, or redefine the commands on the left and then use the +"\ptsize" command. + +In other \LaTeX\ styles, the extra distance between lines that is inserted +when "\baselinestretch" exceeds 1 is eaten up by tall or deep lines. E.g., if +the line contains a table or a large math operator, there is probably no +extra space at all. The advantage of this system is that the distance between +baselines does not fluctuate with every tilde. The disadvantage is that lines +can end up too close. + +In "seminar.sty", on the other hand, fraction +\begin{MD} + \slideskip +\end{MD} +of the extra space cannot be eaten, but up to fraction +\begin{MD} + \slideshrink +\end{MD} +of this extra space that cannot be eaten can be removed if there is too much +material on the slide. This gives you added flexibility about how much +material to include on a slide. Both \n\slideskip\ and \n\slideshrink\ can be +set with "\renewcommand" to a number between 0 and 1. The default value of +\n\slideskip\ is ".75" and the default value of \n\slideshrink\ is ".25". Set +\n\slideskip\ to "0" to revert to \LaTeX's usual behavior, as described above. + +For example, suppose you are using a 10pt font, \n\slidestretch\ is "1.2", +\n\slideskip\ is ".75", and \n\slideshrink\ is ".25". The "\baselineskip" for +a 10pt font is normally 12pt, leaving a little space between the lines. Then +"\baselineskip" is set to +\begin{center} + "\slidestretch" $\times$ "12pt" $=$ 1.2$\times$12pt $=$ 14.4pt +\end{center} +The extra space between lines that is inserted is thus 2.4pt, and +\begin{center} + "\slideskip" $\times$ 2.4pt $=$ .75$\times$2.4pt $=$ 1.8pt +\end{center} +of this cannot be eaten by tall or deep lines. However, the space between +lines can be reduced by up to +\begin{center} + "\slideshrink" $\times$ 1.8pt $=$ .25$\times$1.8pt $=$ .45pt +\end{center} +if the slide would otherwise be too long. + + +\section{Slide frames\label{S-frames}} + +Slides can be framed. The command +\begin{MD} + \slideframe[commands]{style} +\end{MD} +specifies the frame style to use. Valid frame styles are "none" and "plain", +unless you use macros that define additional styles. For example, the +\o{fancybox} style option defines the frames "shadow", "double", "oval" and +"Oval" (corresponding to the "\shadowbox", "\doublebox", "\ovalbox" and +"\Ovalbox" commands defined in that style option). The \o{semcolor} + option defines the styles "scplain", "scdouble", and "scshadow". + +All the frame styles use the lengths +\begin{MD} + \slideframewidth\\ + \slideframesep +\end{MD} +which are the (magnified) width of the line (default 4pt) and the distance +between the slide and the frame (default .4in), respectively. + +\n\slideframe's optional argument is for commands that you want to use to +customize the slide frame style. For example: +\begin{LVerbatim} + \slideframe[\setlength{shadowsize}{12pt}]{shadow}\\ + \slideframe[\psset{fillstyle=gradient}]{scplain} +\end{LVerbatim} + +If you want to build your own custom slide frame, use the command +\begin{MD} + \newslideframe{style}[commands]{frame command} +\end{MD} +<style> is the name of the frame, "[<commands>]", which is optional, will be +inserted before the frame command and before the <commands> given by +"\slideframe"'s optional argument. These commands can be used to set some +default parameter values. Then the final argument should frame "#1". + +For example, if "\myframe{foo}" frames "foo", and if "\myframe" uses the +length "\baldness" as a parameter, then you might write +\begin{LVerbatim} + \newslideframe{wildframe}[\setlength{\baldness}{.2cm}]% + {\myframe{#1}} +\end{LVerbatim} +You can still override the default value of "\baldness", as in +\begin{LVerbatim} + \slideframe[\setlength{\baldness}{.1cm}]{wildframe} +\end{LVerbatim} + +There is a starred version of \n\slideframe\ that adds the frame to previously +specified frames.\footnote{If using color or PostScript images, note that each +frame gets added to the background.} This can be used for special tricks. For +example, if you are using the \o{fancybox} and \o{semcolor} options, then +\begin{LVerbatim} + \newslideframe{draft}% + {\boxput{\rput{30}{\Huge\gray DRAFT}}{#1}} + \slideframe{draft} + \slideframe*{scdouble} +\end{LVerbatim} +puts the word ``DRAFT'' in the background of each slide, gray and rotated 30 +degrees, and then adds a double frame.\footnote{Use "\boxput*" to put "DRAFT" +in the foreground. See "fancybox.doc" for details.} + + +\part{Advanced Features} + +\section{Counters} + +The counter for slides is \C{slide}. The default definition of \N\theslide\ is +"\arabic{slide}". You can use "\label" and "\ref" to cross-reference slides, +and the page number in slide environments is set to +\n\theslide.\footnote{However, these page or slide cross-references are not +always accurate when you let \TeX\ break pages for you within a slide.} Thus, +you can write, for example, +\begin{LVerbatim} + See equation (\ref{foo}) on Slide \pageref{foo}. +\end{LVerbatim} + +You may want some counters, such as equation counters, to be reset with each +new slide environment or \n\newslide\ command. By default, only the "footnote" +counter is reset this way, but you can specify your own (comma-separated) list +of counters to be reset with the command +\begin{MD} + \slidereset{list} +\end{MD} +If you want to reset additional counters, rather than replace the list +entirely, use +\begin{MD} + \addtoslidereset{list} +\end{MD} + +There is another way in which the footnote counter gets special treatment. The +command +\begin{MD} + \theslidefootnote +\end{MD} +is used for the counter text instead of "\thefootnote". The default definition +is +\begin{LVerbatim} + \alph{footnote} +\end{LVerbatim} + +\section{Selectively including or excluding slides} + +The commands +\begin{MD} + \onlyslides{list}\\ + \notslides{list} +\end{MD} +can be used to include or exclude only those slides in the given list. The +argument should expand to a comma-separated list of numbers or ranges. The +numbers do not need to be in order, the list can contain numbers that do not +correspond to any slide, and there can be duplicate numbers. Negative numbers +should be enclosed in curly braces. Since the argument is first expanded, you +can use the "\ref" command in the argument. For example, +\begin{LVerbatim} + \onlyslides{{-2},\ref{dp}-10,\ref{chart},0,17-999} +\end{LVerbatim} +is legal. If "\label{dp}" appears in slide 5 and "\label{chart}" appears in +slide 12, this is equivalent to: +\begin{LVerbatim} + \onlyslides{{-2},5-10,12,0,17-999} +\end{LVerbatim} + +\section{Printing your slides two-up\label{S-twoup}} + +Printing your slides two-up is useful both for previewing slides and for +making hard copies to distribute or for proofreading. + +One way to print your slides two-up is to include the \O{article} style +option. This is described further below. + +Another way is to include the command +\begin{MD} + \twoup[n] +\end{MD} +in the preamble. This inputs "2up.tex", which contains generic macros for +two-up printing, and sets the parameters to values that are likely to work. +Including the optional argument "[<n>]" increases the two-up magnification by +$n$ magsteps. $n$ can be a positive or negative integer. If you are not able +to get the right layout, then include the \O{2up} style option, read the +documentation of "2up.tex", and set the parameters yourself, rather than using +the \n\twoup\ command. + +The \o{article} style option is also called the article {\em format} (as +opposed to the slides format). In the article format without the \o{portrait} +option, the slides are centered horizontally and vertically, two to a page (if +they fit---landscape slides do fit by default). With the portrait option, the +slides are printed side-by-side, two to a page. In the \o{article} format, you +can mix landscape and portrait slides with different orientations, but this +does not work well with the \o{portrait} option. + +You can change the article format's magnification with +\begin{MD} + \articlemag{n} +\end{MD} +This command works like the "\slidesmag" command (page \pageref{+slidesmag}). +The default is +\begin{LVerbatim} + \articlemag{0} +\end{LVerbatim} +Increase the article magnification if the slides look too lonely; decrease it +if they are not coming out two-up. + +The size of the slides depends on the {\em difference} between the +magnifications in the slides and article format. E.g., since the default +slides magnification is 4 magsteps, the slides are scaled down in the article +format by 4 magsteps. When you change the slides magnification with +\n\slidesmag, you also have to change the article magnification with +\n\articlemag\ by the same amount if you want the size of the slides in the +article format to remain the same. However, when the article magnification in +magsteps is negative , you will be using non-standard font magnifications +(which will produce terrible results if you cannot generate the needed +fonts---see Appendix \ref{bitmaps} for advice). + +Whether or not landscape slides (or rotated portrait slides) come out two-up +in the article format without the \o{portrait} option depends on (i) the +difference between the slides and article magnification, (ii) the values of +\n\slidewidth\ and \n\slideheight\, (iii) the size of the slide frame, and +(iv) the article format's page parameters. With the default values of +(ii)--(iv), the slides will still come out two-up if you change the difference +between the slides and article magnification to 3 (e.g., increase the value of +\n\articlemag\ by 1). Try this if you want the slides to be larger. + +If you use the \o{article} option {\em and} the \n\twoup\ command, then your +slides should be printed four-up! + +You will notice labels on the side or bottom of each slide in the \o{article} +format. The command +\begin{MD} + \slidestyle{style} +\end{MD} +determines where these labels go. There are three predefined slide styles: +\begin{description} +\item[\tt empty] No captions or labels are used. +\item[\tt left] The labels go on the left of each slide (the default when the +\o{portrait} option is not used). +\item[\tt bottom] The labels go on the bottom (the default with the +\o{portrait} option). +\end{description} +The label you get is the value of \N\slidelabel. The default definition of +\n\slidelabel\ is +\begin{LVerbatim} + \bf Slide \theslide +\end{LVerbatim} + +\section{Notes\label{S-notes}} + +In addition to slides, you can include a few comments following each slide to +remind you of what to say, or even the entire text of your presentation for +your own benefit or to be distributed to others. These comments or text, +referred to in this documentation as ``notes'', do not go inside any special +environment. However, a slide cannot go in the middle of a paragraph of notes. + +To include notes this way, you have to use one of the following style options, +which determine what is printed: +\begin{quote} + \begin{tabular}{ll} + \O{slidesonly} & Only the slides are printed.\\ + \O{notes} & Both notes and slides are printed.\\ + \O{notesonly} & Only the notes are printed.\\ + \end{tabular} +\end{quote} +These style options are referred to as {\em selections} in this documentation. + +The pages of notes following slide 5 are numbered 5.1, 5.2, etc. + +You can use the "portrait" option to print out your notes, even if you don't +use this option when printing the slides. + +With the "notesonly" selection, the slides are not printed, but they are +processed. This means that one can still refer in the notes to slides or to +equations in slides. + +The fact that various spacing parameters are initialized at the beginning of +each slide (see Section \ref{S-spacing}) means that when you reset these +parameters outside a slide environment, only the notes are affected. This lets +you use different values for notes and slides. The command \N\slidefonts\ can +be used for any special font commands that should apply only to slides. Also, +the command \N\everyslide\ is executed at the beginning of every slide, and +you can use this for any other customizations you want to include. + +You can also use the "11pt" or "12pt" style option for your notes, without +changing the size of the fonts in the slides, by using the "\ptsize" command +to set the font sizes for slides. For example, suppose that the "12pt" +document style option is used, but the preamble contains the command +\begin{LVerbatim} + \ptsize{11} +\end{LVerbatim} +and the second slide begins with the command +\begin{LVerbatim} + \ptsize{9} +\end{LVerbatim} +Then the notes use the "12pt" font size declarations, all the slides but the +second one use the "11pt" font size declarations, and the second slide uses +the "9pt" font size declarations. + +Notes are typeset using \LaTeX's standard output routines, and \LaTeX's +standard page parameters. + + Finally, it is even possible to use a different page style for notes and +slides. The page style for notes is set by the "\pagestyle" and +"\thispagestyle" commands. The command +\begin{MD} + \slidepagestyle{style} +\end{MD} +sets a different page style for the slides. If the argument is empty, then the +page style for slides reverts to the one for notes.\footnote{There is no +"\thisslidepagestyle" command.} + +With the command +\begin{MD} + \onlynotestoo +\end{MD} +the "\onlyslides" and "\notslides" commands apply to the notes as well. + + +\section{How notes are omitted\label{omit}} + +In the previous section, it was stated that notes are not enclosed in a +special environment. "seminar.sty" omits notes using special +macros\footnote{Defined in {\tt xcomment.sty}} that comment out everything +{\em outside} the slide environments (and a few other environments mentioned +below). Global declarations that should be processed even when slides are +omitted go in \e{allversions*} environments, described below. + +"seminar.sty" also let you use a more conventional approach to notes. If you +put the command +\begin{MD} + \noxcomment +\end{MD} +in the preamble, then the notes go inside \E{note} environments, and you can +put all the global declarations outside any environment. "xcomment.sty" is +used to make \e{note} a comment environment when note should be omitted, and +otherwise the \e{note} environment does nothing. This mode of operation is +more robust than omitting everything outside the slide environments, but +remembering to insert the +\begin{LVerbatim} + \begin{note} ... \end{note} +\end{LVerbatim} +is more tedious. + +Here are a few technicalities that have to do with "xcomment.sty" and that +apply whether or not you use \n\noxcomment. +\begin{enumerate} +\item The text that follows the beginning of a slide environment (when not +using \n\noxcomment) or the end of a \e{note} environment {\em must have +balanced curly braces}. +\item "\input" and "\include" commands are followed, even when found in +omitted notes, but you must use the \LaTeX\ syntax "\input{<file>}" (as +opposed to \verb*+\input <file> +), and the inputted file must end with +"\endinput" (this is a good practice anyway). +\item In omitted text, "%" is still a comment character (hence it is possible +to comment out a slide or note environment). +\item A temporary file, "\jobname.tmp", is created (this is of no +consequence---just in case you wanted to know where it comes from). +\end{enumerate} + +The rest of this section deals with special considerations when omitting +everything outside the slide environments. + +If you might want to make a global change to one of the slide parameters after +the document preamble, you cannot include it in a slide environment because +the change will be local, and you cannot include it in the notes because the +change won't be processed when the notes are omitted. + +To get around this problem, an environment \E{allversions*} is provided. It is +processed even when notes are omitted, and any parameter changes or command +definitions made within the environment are global. Don't generate any output +within this environment. + +On a rare occasion you might want to include some text that should be typeset +even when the other notes are omitted (e.g., a list of the slides, or a cover +page). The \E{allversions} environment is provided for this purpose. + +If you do any serious hacking, you might want to add to the list of +environments that should be included with the "slidesonly" selection. Do this +with the command +\begin{MD} + \addtoslidelist{list} +\end{MD} +where <list> is a comma separated list of environments, without spaces. + +\section{The article format\label{S-article}} + +The \o{article} style option was described in Section \ref{S-twoup} as a way +to print your slides two-up. This option is also a good way to print your +notes. + +The \o{article} option gets its name because your document is typeset somewhat +like it would be with \LaTeX's "article" style. (It uses \LaTeX's standard +page parameters, but some of the default values are different.) It is also +called the article {\em format}; the slides format is what you get without the +\o{article} option. + +You probably don't want to use the \o{portrait} style option with the +\o{article} format except when you are only printing portrait slides. But you +are welcome to experiment. + +With the \o{notesonly} selection, you can make the notes as big as you want +using the \n\articlemag\ command (e.g., for easy reading while giving a +presentation). Just as in the \o{slides} format, the page parameters are +scaled at the beginning of the document so that they can be set with their +true dimensions in the preamble. + +The commands +\begin{MD} + \setartlength{cmd}{len}\\ + \addtoartlength{cmd}{len} +\end{MD} +are analogous to "\setslidelength" and "\addtoslidelength", but they scale the +lengths so that they end up at the specified size after magnification in the +"article" format. You never would use such a command in slide environments or +to set slide parameters, but you might use these in the notes if you were +planning on typesetting your notes with the "article" format rather than the +"slides" format. + +You can change the placement of slides in the \o{article} format using the +\begin{MD} + \slideplacement{name} +\end{MD} +command. Here are the valid placement names: +\begin{description} + \item[float] The slides are floated. This is the default with the \o{notes} +selection and the \o{portrait} option. + \item[float*] Like "float", but if the notes are printed in a two-column +format the slides extend across both columns (e.g., like "table" versus +"table*"). This is the default with the \o{notes} selection without the +\o{portrait} option. + \item[onepercol] Each slide is centered horizontally and vertically within a +single column. This is the default when only slides are printed and the +\o{portrait} option is used. + \item[twopercol] Each slide is centered horizontally, two or one per column, +depending on how many fit. This is the default when only slides are printed +and the \o{portrait} option is not used. + \item[here] Each slide is centered horizontally, separated from adjoining +text or other slides by the rubber length \N\slidesep. The default value of +\n\slidesep\ is "\intextskip". This is useful with the \o{notes} selection +when you want the slides to precede accompanying comments and when you do not +mind large spaces at the bottom of pages. + \item[here*] This is like "here*", but with "here*" the length \n\slidesep\ +is not lost when it falls at the beginning of a page or after a slide. +\end{description} + +If you want each slide environment to begin a new page (with any of the +selections), put the command +\begin{MD} + \slideclearpagetrue +\end{MD} +in the preamble. + +The \o{notesonly} selection has a starred version, \O{notesonly*}, which +produces a slide marker for each slide environment, like this one: +\begin{center} +\leavevmode +\vbox{% +\hrule height 1pt +\kern 8pt +\hbox to \linewidth{\hss \LARGE\bf Slide 4 \hss}% +\kern 8pt +\hrule height 1pt} +\end{center} + + +Commands that are irrelevant in the "article" format are simply ignored. The +idea is that it should be possible to switch back and forth between the two +formats without making any other changes in the document. However, this is not +entirely possible. Changing "\parindent" or "\textwidth" in the preamble +affects both formats. You can get around this using the \n\ifarticle\ +conditional. For example, +\begin{LVerbatim} + \ifarticle + blah blah + \else + blee blee + \fi +\end{LVerbatim} +The "\else" part is optional. + + +\section{Page styles} + +The page styles "empty", "plain", "headings" and "myheadings" work like in +\LaTeX's article style. There is also a page style "align" which puts "+" +signs in the corners, like in \SliTeX.\footnote{See question \ref{Pagestyle} +in Section \ref{tips} for suggestions on defining new page styles.} You can +change the size of the fonts used in headers and footers in the slides format +by setting the commands +\begin{MD} + \slideheadfont\\ + \slidefootfont +\end{MD} +to the desired size, using "\renewcommand" (but any explicit font declarations +in a page style override these commands). The default definition of these +commands is "\scriptsize". + + +\section{Other style options\label{options}} + +The style options described so far, "portrait", "article", "slidesonly", +"notes", and "notesonly", were designed specifically for "seminar.sty". There +are other such style options described elsewhere in this documentation: +"semrot" (page \pageref{o+semrot}), \o{semlayer} (page \pageref{o+semlayer}). +\o{semcolor} (page \pageref{o+semcolor}), "semhelv" (page +\pageref{o+semhelv}), "semlcmss" (page \pageref{o+semlcmss}), and "a4" (page +\pageref{o+a4}). + +Here are two more style options that are part of the "seminar.sty" package, +but that can be used with other document styles: +\begin{description} +\item[fancybox] "fancybox.sty" is specific to slides, but it contains commands +and documentation that are useful for making slides. + +\item[slidesec] This sets up some sectioning/heading commands for slides, and +lets you print a list of slides or a table of contents. See the file +"slidesec.sty" for details. +\end{description} + +It is impossible to predict, much less describe, the consequences of using all +the other available \LaTeX{} style option with each selection and format. +Since this document style is an extension of \LaTeX's "article" style, style +options and commands that do not work with \SliTeX{} may well work here. Just +about any style option that works with \LaTeX's "article" style will work with +the "article" format. When unsure of the effect of an option, just try it and +see for yourself what happens. + +\section{Overlays\label{S-overlays}} + +For overlays, you must use both the \O{semlayer} and \o{semcolor} style +options (see page \pageref{o+semcolor}). + +Overlays have two purposes. First, you can use overlays to gradually add +layers of information on a slide during a presentation. Second, you can use +overlays to make color layers; each layer is printed in black-on-white on +paper, and then you use some kind of color copying service to put each layer +on a transparency in a different color. This is not nearly as nice as having a +color printer or using a color printing service, but it's the next best thing. + +"seminar.sty" lets you make both types of overlays (and the main slide) from a +single slide environment. The command\footnote{You can also write +\begin{Ex} + "\begin{overlay}{<n>}" $\ldots$ "\end{overlay}" +\end{Ex}} +\begin{MD} + \overlay{n} +\end{MD} +puts whatever is in its scope (\TeX\ group) on overlay $n$, where +$n=0,\ldots,9$. Actually, overlay 0 refers to the main slide, but you might +use "\overlay{0}" because overlay commands can be nested. As implemented by +the "semcolor" style option, these overlay commands can be used just about +anywhere, including in math mode, tables, and around an included graphics file +(if it is a conforming EPS file, at least). Also, it is all right to use +non-consecutive overlay numbers. + +For color layers, you have to start by defining some colors using the command +\begin{MD} + \colorlayers{colors} +\end{MD} +<colors> should be a comma separated list of color names, without spaces, as +in +\begin{LVerbatim} + \colorlayers{red,green,blue} +\end{LVerbatim} +Then you can use the command "\red" just like the command \n\overlay"{<n>}"; +everything in its scope goes on a red color layer. + +The "\colorlayers" command obeys the usual rules on scope. You can use this +command any time, including in a slide environment. The command is cumulative, +meaning that previously defined color layers continue to exist. The command +was purposely defined so that it does not complain when a color name is +already defined; this makes it easier to switch from some other color system +to a layer system. However, you should be careful not to inadvertently +redefine some command that you need. Fortunately, there are no \TeX{} +primitives whose names are the names of colors. + +When you print out the slides, the main slide is printed, followed by each of +the color layers (if any) for the main slide. Then each of the overlays is +printed, together with each of its color layers. Only overlays or color layers +that are actually used (i.e., that are not empty) are printed. + +You can turn overlays and color layers on and off with the commands +\begin{MD} + \overlaystrue\\ + \overlaysfalse\\ + \layerstrue\\ + \layersfalse +\end{MD} +These commands can be used at any time, and they obey the usual scoping rules. +The default is for overlays to be active in the "slides" format and suppressed +in the "article" format. + +The counter \C{overlay} keeps track of the overlays. The default definition of +\N\theoverlay\ is: +\begin{LVerbatim} + \theslide-\alph{overlay} +\end{LVerbatim} +Overlays can be cross-referenced. + +The command \N\currlayer\ is set to the name of the current color layer. +\N\thelayer\ makes a label for layers; its default definition is: +\begin{LVerbatim} + \theoverlay-\currlayer +\end{LVerbatim} +Color layers cannot be cross-referenced. + +For example, if slide 7 has overlays 1 and 2 and colors "red" and "green", +then the main slide is numbered 7, followed by layers 7-red and 7-green, +followed by overlay 7-a, followed by layers 7-a-red and 7-a-green, followed by +overlay 7-b, followed by layers 7-b-red and 7-b-green. + +The caption used in the slide styles is \n\overlaylabel\ for overlays and +\N\layerlabel\ for layers. The defaults are, respectively, +\begin{LVerbatim} + \bf Overlay \theoverlay + \bf Layer \thelayer +\end{LVerbatim} + +By default the overlays and layers use the same page styles in the "slides" +format as their ``owner.'' You can specify special page styles with the +commands: +\begin{MD} + \overlaypagestyle{style}\\ + \layerpagestyle{style} +\end{MD} + +Finally, by default the overlays and layers use the same frame style as their +``owner.'' You can specify special frame styles with the commands: +\begin{MD} + \overlayframe[commands]{style}\\ + \layerframe[commands]{style} +\end{MD} + + +\part{Help\label{Help}} + +Road map: +\begin{itemize} + \item If you just want to figure out how to do something, check Section +\ref{tips}, ``Tips and tricks.'' + \item If you are trying to decipher an error message, check Section +\ref{errors}, ``Errors.'' + \item If you are trying to solve some system-dependent problem that has +arisen, check Section \ref{trouble}, ``Troubleshooting.'' + \item To convert \SliTeX\ files, see Section \ref{slitex}, ``Converting +\SliTeX\ files''. +\end{itemize} + +\section{Tips and tricks\label{tips}} + +\faq{How can I fit more material in the slides?} + +Or alternatively, make the little material you have fill up the slide. + +Let us count the ways: +\begin{enumerate} +\item Change the magnification with \n\slidesmag"{<n>}" (affects all the +slides). +\item Change the height and/or width of one or all the slides. +\item Use "\ptsize{<n>}". +\item Change \n\slidestretch. +\item Use the \n\raggedslides\ command, which changes the propensity to +hyphenate. +\end{enumerate} + +\faq{How do I include an Encapsulated PostScript figure?\label{EPS}} + +The only thing tricky about including EPS files is getting the size right. For +example, suppose the you want to include a postscript file in a slide using +the "epsf.sty" macros, and you want it to be 6 inches wide. Then this will do +the trick: +\begin{LVerbatim} + \setslidelength{\epsfxsize}{6in} + \epsffile{mypic.eps} +\end{LVerbatim} + +If you include the command +\begin{MD} + \espfslidesize +\end{MD} +(e.g., in the preamble), then "epsf.sty" will take care of scaling the size +for you, and so you can just set "\epsfxsize" and "\epsfysize" to their +magnified sizes (using "\setlength" rather than "\setslidelength"). Or you can +not set these parameters at all, and then the eps file appears at its natural +size on the slide. + +Either way, this will have the expected effect: +\begin{LVerbatim} + \setlength{\epsfysize}{.8\textheight} + \epsffile{mypic.eps} +\end{LVerbatim} + +"psfig.tex" does not handle magnification properly. By using magnified +dimensions, without "\setslidelength", as in +\begin{LVerbatim} + \psfig{file=mypic.eps,width=6in} +\end{LVerbatim} +the picture should appear correctly within a slide, but then it will not scale +properly if you try to use the \o{article} option or the \n\twoup\ command. +The solution, if using Rokicki's "dvips", is to use "epsf.sty" (written by the +man himself). + +\faq{How can I print just selected overlays, layers or pages of notes in the +{\tt slides} format?} + +The "\onlyslides" and "\notslides" commands affect only slides. If a slide is +omitted, so are all its overlays and color layers. To be more selective, you +have to use your dvi driver to select the pages to be printed. + +In the "slides" format, the page numbers recognized by dvi drivers correspond +to the numbers of the slides. This means that a slide and all the overlays, +layers and notes that correspond to that slide have the same page number. Some +drivers allow one to select occurrence $n$ of a page number. E.g., with +"dvips", +\begin{LVerbatim} + dvips -p2.1 -l2.4 myslides +\end{LVerbatim} +will print the first through fourth page of overlays or notes that follow +slide 2. + +If your dvi driver does not support such selection, and you would prefer that +the driver recognize physical page numbers, then put the command +\N\truepagenumbers\ in the preamble. + + +\faq{How do I define custom page styles?} +\label{Pagestyle} + +There is nothing special about defining new page styles in "seminar.sty". +However, to make it easier to do this in the preamble, the commands +\begin{MD} + \newpagestyle{style}{header}{footer}\\ + \renewpagestyle{style}{header}{footer} +\end{MD} +are provided.\footnote{% + You can also use the macros in "fancyheadings.sty", which is available from +various archives. However, you have to set the pagestyle {\em after} +"\begin{document}". +Otherwise, the dimensions get screwed up. If using the \o{slidesonly} +selection, then you also need to enclose the "\pagestyle" command in +an \e{allversions*} environment. E.g., +\begin{LVerbatim} + \begin{allversions*} + \pagestyle{fancy} + \end{allversions*} +\end{LVerbatim}} + +<style> is the name of the page style, and <header> is the header, and +<footer> is the footer. These can only be used for simple page styles that are +the same for odd and even pages, and that do not do anything special with +section marks. + +Headers and footers are set in an "\hbox" the width of the page +("\textwidth"). You can use stretchable space such as "\hspace*{\fill}" or +"\hfil" to center some information or put it flush against the margins. See +the definitions of page styles in "latex.tex" and "article.sty" for examples. + +Here is an example: Professor Starr wants lots of information in the headers +and footers for the slides, and so she defines the page style +"mypagestyle":\footnote{{\tt\string\thedate} is set with the {\tt\string\date} +command.} +\begin{LVerbatim} + \newpagestyle{mypagestyle}% + {\sl Big U \hfil \thedate \hfil \thepage}% + {\hfil File \jobname.tex; printed \today\hfil} +\end{LVerbatim} +Prof.\ Starr wants to use the standard "headings" page style for notes and the +"mypagestyle" page style for slides, and she wants overlays to just have the +overlay number. Therefore, she defines another page style for the overlays: +\begin{LVerbatim} + \newpagestyle{myoverlays}{\hfil \thepage}{} +\end{LVerbatim} +and she puts +\begin{LVerbatim} + \pagestyle{headings} + \slidepagestyle{mypagestyle} + \overlaypagestyle{myoverlays} +\end{LVerbatim} +in the preamble. + +\faq{How do I change a parameter only for the {\tt slides} format?} +\label{conditionals} + +The conditionals +\begin{MD} + \ifarticle\ $\ldots$ "\else" $\ldots$ "\fi"\\ + \ifslidesonly\ $\ldots$ "\else" $\ldots$ "\fi"\\ + \ifnotes\ $\ldots$ "\else" $\ldots$ "\fi"\\ + \ifnotesonly\ $\ldots$ "\else" $\ldots$ "\fi"\\ + \ifportrait\ $\ldots$ "\else" $\ldots$ "\fi" +\end{MD} +allow one to select for what versions material is to be processed. "\ifnotes" +is true if and only if the "notes" selection is in effect, and so on. The +"\else" clause is optional. See {\em The \TeX book}, Chapter 20, for more +information about using conditionals. + +For example, the first line below sets the slide rotation to "right" in the +"article" format only. The second line changes the page style for the "notes" +and "notesonly" selections and "article" format: +\begin{LVerbatim} + \ifarticle\sliderotation{right}\fi + \ifarticle\ifslidesonly\else\pagestyle{myheadings}\fi\fi +\end{LVerbatim} + +\faq{Why does extra space get inserted at the top of a slide when I begin the +slide with a color or overlay command (when using the \o{semcolor} option)?} + +Color and overlay commands with the "semcolor" option use "\special"'s. \TeX{} +adds the space "\parskip" between the "\special"'s and the first material in +the slide. + +Here is the workaround: If that material is an ordinary paragraph, put the +command "\leavevmode" just after the color or overlay command. In other cases, +if you are sure this is the problem, put "\vskip-\parskip" just before the +color or overlay command. + +\section{Errors\label{errors}} + +There are several errors that identify themselves as being from "seminar.sty", +but the error messages are so self-explanatory that that there is no need to +describe them here. Instead, this section explains a few especially cryptic +\TeX{} error messages that can arise when using "seminar.sty". These errors +may also arise for reasons that are not particular to the "seminar.sty" +macros. See your favorite \TeX{} and \LaTeX{} manuals for more help in +debugging your documents. + +\error"! File ended while scanning use of \next." + +You are missing an "\end{document}" on the main file or an "\endinput" on a +file that is input. + + +\error"! File ended within \read." + +You may have an unmatched curly brace following "\begin{slide}" on the same +line. See Section \ref{omit}. + + +\error"! Paragraph ended before \begin@slide was complete." + +You have not specified the optional argument for the "slide" or "slide*" +environment correctly (see Section \ref{slidedim}), or the first character in +a slide environment is a "[" (put a pair "{}" of braces before the "["). + +\section{Troubleshooting\label{trouble}} +\setcounter{faq}{0} + +\faq{A few slides do not come out two-up with the \o{article} option.} + +First, read Section \ref{S-twoup} carefully. If the slides still do not come +out twoup, it might be that there is extraneous output between the slides. Try +putting the commands +\begin{LVerbatim} + \slideplacement{here*} + \setlength{\slidesep}{8pt plus 1fill} +\end{LVerbatim} +in the preamble ("8pt" should be one-half the minimum distance between +slides). If this solves the problem, look for the extraneous output, or just +leave those commands in the preamble. + + +\faq{What kind of incompatibilities are there between {\tt seminar.sty} and +other macros?} + +Of course, whenever you load macros that are not part of the standard \LaTeX{} +distribution and that were not designed to work with "seminar.sty", problems +may arise because of name conflicts. What are listed here are changes made to +\LaTeX{} commands that may conflict with other macros that also redefine these +command. The problems listed here are very unlikely to occur, however, unless +you have a habit of seriously hacking the standard \LaTeX{} macro files. + +\begin{enumerate} +\item This style modifies the definitions of the \LaTeX{} primitive +"\document". It generally will not be upset by, nor will it void, +modifications to "\document" made before "seminar.sty" is input. However, +subsequent modifications of "\document" may cause problems. + +\item "xcomment.sty", which is input by "seminar.sty" with the "slidesonly" +selection, modifies the definition of "\end" within included environments. +This is generally compatible with modifications to "\end" made outside +environments, but may conflict with modifications to "\end" made inside +environments. +\end{enumerate} + +\faq{Why are the landscape slides displayed sideways and the portrait slides +displayed upside down on my previewer?} + +This document style makes frequent use of landscape mode. Some DVI-to-PS +converters, such as older versions of Rokicki's "dvips", use their own +PostScript macros to print a landscape document, rather than simply +instructing PostScript to use landscape mode. +If the PostScript output of such a converter is viewed using a PostScript +previewer that does not allow you to choose the orientation of the display, +the output will be positioned correctly on the page, but the page will always +be displayed in portrait mode. When viewing slides without the "portrait" +option, the landscape slides will be sideways, and the portrait slides will be +upside-down! + +There is nothing this style can do to coerce the page to be displayed in +landscape mode. There are various ways to minimize neck strain, however: +\begin{enumerate} +\item The direction in which the portrait slides are rotated can be reversed, +so that they end up right-side-up. Just put +\begin{LVerbatim} + \sliderotation{right} +\end{LVerbatim} +before the beginning of the document (assuming that you are using rotation +macros). +\item You can also get the portrait slides to be displayed right-side-up by +using the "portrait" style option (Section \ref{options}). +\item In the "article" format, the document is typeset in portrait mode +(unless the "portrait" option is used), and so the landscape slides are +right-side-up. You can use this format when composing and proof-reading the +slides. +\end{enumerate} + +\faq{Why is my dvi driver soooo slow?} + +Probably it cannot find the right font bitmaps, and so it is either +automatically generating new ones, or it is scaling the ones it can find. +Either way, as long as you can somehow generate the missing font bitmaps, this +problem is transitory. See Appendix \ref{bitmaps} for details. + +\faq{Why does \TeX{} complain about missing circle fonts?} + +Older versions of the NFSS use the names "circle10" and "circlew10" for the +\LaTeX circle fonts, instead of the otherwise standard names "lcircle10" and +"lcirclew10". You can copy your ".pk" and ".tfm" files to the new names, or +get a new version of the NFSS. + +\section{Converting \SliTeX\ files}\label{slitex} + +"seminar.sty" can do everything \SliTeX\ can do, and much +more\footnote{However, color layers and overlays require PSTricks and a +PostScript printer.} Here is a brief and incomplete description of how to do +with "seminar.sty" what you can do with \SliTeX, and how to convert \SliTeX\ +files. + +\begin{itemize} + \item Use "seminar" as your document style, instead of "slides". + + \item Run \LaTeX\ or \AmS-\LaTeX, instead of \SliTeX. + + \item With "seminar.sty", the preamble and slides can all go in the same +file. + + \item The default in "seminar.sty" is to get landscape slides. If you want +to convert a \SliTeX\ file containing portrait slides, add the "portrait" +style option, and replace your "slide" environments by "slide*" environments. + + \item With "seminar.sty", notes do not need to go in a separate environment. +To convert a \SliTeX\ file containing "note" environments, define a note +environment that does nothing: +\begin{LVerbatim} + \newenvironment{note}{}{} +\end{LVerbatim} + + \item For color layers: + \begin{itemize} + \item Use the "\colorlayers" command instead of the "\colors" command. + \item Delete the argument to the "slide" and "slide*" environments that +lists the color layers. + \item Include the \o{semlayer} style option. + \end{itemize} + + \item "seminar.sty" does not use separate environments for overlays: + \begin{itemize} + \item Remove the "overlay" environments. + \item Replace "\invisible" commands by "\overlay{1}", "\overlay{2}", etc. + \item Include the \o{semlayer} style option. + \end{itemize} + + \item To actually produce the overlays and color layers, you have to have +PSTricks and a PostScript printer, and you must include the \o{semcolor} style +option. + + \item Use \n\onlyslides"{<list>}" and \n\onlynotestoo\ instead of +"\onlynotes". +\end{itemize} + + +\begingroup +\def\addcontentsline#1#2#3{}% +\def\thepart{Appendices:} +\part{Configuration} +\endgroup +\begingroup +\def\thepart{} +\addcontentsline{toc}{part}{Appendices:\hspace{1em}Configuration} +\endgroup +\appendix + +Before reading this appendix, you should follow the installation instructions +in the file "sem-read.me" that is distributed with "seminar.sty". + +\section{The short story about fonts}\label{short-fonts} + +"seminar.sty" is a \LaTeX{} style, and you can use whatever fonts that are +compatible with \LaTeX\ (or \AmS-\LaTeX). However, you are likely to want to +use special fonts with "seminar.sty"; see Appendix \ref{fonts} for help. +Furthermore, you are likely to want to use fonts in sizes that are larger than +the standard sizes; see Appendix \ref{bitmaps} for help. + +But if you don't want to read these appendices, you can just use whatever +\LaTeX\ fonts you know how to use (e.g., the standard Computer Modern fonts). +To be sure you need only standard font magnifications:\footnote{This is not a +consideration if you are using only PostScript or other scalable fonts.} +\begin{itemize}\label{font-res} + \item Don't use the "11pt" or "12pt" style options (or the \n\ptsize{} +command). + \item Don't change the document magnification (or only use 0--4 magsteps). + \item Don't use any font size larger than "\large". + \item Don't use the \n\twoup\ command. +\end{itemize} + +\section{Choosing fonts\label{fonts}} + +So that you can use different fonts for the notes and the slides (if you +want), the command "\slidefonts" is invoked at the beginning of every slide +environment. Define it to set up any special fonts for the slides. + +Here are the font configurations that come ready-to-use with "seminar.sty". +You might also use these as a starting point for your own configurations. +\begin{enumerate} +\item You can just use the regular old Computer Modern fonts that you probably +grew up on. For this, you don't have to do anything at all. Ain't that easy? +But see the next section about font bitmaps. + +\item The \O{semhelv} style option sets up the PostScript Helvetica text fonts +for the slides. The Computer Modern fonts are still used for math and for the +notes with the \o{article} format. You need a PostScript printer, a dvi-to-ps +driver that supports PostScript fonts (e.g., Rokicki's "dvips"), and the New +Font Selection Scheme. You should also check the font file names used in +"semhelv.sty", and change them if necessary to match the names on your system. + +This combination of fonts is highly recommended because sans serif fonts look +good for slides, Helvetica is a resident font in just about all PostScript +printers, and the fonts are scalable and thus there is no problem of needing +new bitmaps. + +\item The \O{semlcmss} style option sets up the \SliTeX\ sans serif fonts for +the slides, and uses the Computer Modern fonts for notes with the \o{article} +format. The \SliTeX\ fonts are ugly, but they might be the only usable sans +serif font you have on your system and you are really dying for that kind of +font. Also, they usually come ready for printing magnified documents, and so +you won't need too many new font bitmaps. You must have the New Font Selection +Scheme. "semlcmss" uses +\begin{LVerbatim} + \slidesmag{4} + \ptsize{10} +\end{LVerbatim} +Deviating from this will increase the need for new font bitmaps. +\end{enumerate} + +The New Font Selection Scheme (NFSS) mentioned above is a macro package for +\LaTeX{} that greatly simplifies using non-standard fonts. The NFSS was +written by Frank Mittelbach and Rainer Sch\"opf, and is available from various +archives, including: +\begin{center} +"ftp.uni-stuttgart.de" +\end{center} +It is far easier to take the 10 minutes or so that are required (in theory, at +least) to install the NFSS, than it is to try to muck around with \LaTeX's +font primitives. + + +\section{Font bitmaps\label{bitmaps}} + +If you are only using PostScript or other scalable fonts, or if you obey the +restrictions listed on page \pageref{font-res}, then you can ignores this +appendix. + +To use "seminar.sty", you may need font bitmap sizes that are not currently +found on your system. This section describes how to avoid this and what to do +about it. First, a few paragraphs about magnification and font bitmaps. + +\TeX's Metafont fonts are designed for a type size, such as 5pt. Most font +families are available at least in the sizes 5pt, 6pt, 7pt, 8pt, 9pt and 10pt. +Some are also available in the sizes 12pt and 17pt (and others), but often any +size above 10pt is obtained by scaling the 10pt fonts. Table \ref{font-mag} +lists the possible magnifications for fonts, depending on which option you are +using ("10pt", "11pt" or "12pt"), and depending on the \LaTeX{} type size +declaration that is in effect (e.g., "\small"). The magnifications are given +in magsteps, which is \TeX's standard unit for font magnifications. $n$ +magsteps means a magnification of $1.2^n$. + +\begin{table} +\hrule height 1pt\relax +\begin{center} +\begin{tabular}{l|c|c|c|} +\multicolumn{1}{l}{size} & +\multicolumn{1}{c}{default (10pt)} & + \multicolumn{1}{c}{11pt option} & + \multicolumn{1}{c}{12pt option}\\ +\cline{2-4} "\tiny" & 0 & 0 & 0\\ +\cline{2-4} "\scriptsize" & 0 & 0 & 0\\ +\cline{2-4} "\footnotesize" & 0 & 0 & 0 \\ +\cline{2-4} "\small" & 0 & 0 & 1/2 \\ +\cline{2-4} "\normalsize" & 0 & 1/2 & 1 \\ +\cline{2-4} "\large" & 1 & 1 & 2 \\ +\cline{2-4} "\Large" & 2 & 2 & 3 \\ +\cline{2-4} "\LARGE" & 3 & 3 & 4\\ +\cline{2-4} "\huge" & 4 & 4 & 5\\ +\cline{2-4} "\Huge" & 5 & 5 & 5\\ +\cline{2-4} +\end{tabular} + +\caption{Font magnification in magsteps ($n$ means a magnification of $1.2^n$) +for a font that is available in 5pt, 6pt, 7pt, 8pt, 9pt and 10pt +sizes.\label{font-mag}} +\end{center} +\hrule height 1pt\relax +\end{table} + +Both the "article" and the "slides" formats may also magnify the document. By +default, the magnification of the "slides" format is 4 magsteps, and the +magnification of the "article" format is 0. To find the total font +magnification, add the magnification listed in the table to the magnification +of the document. E.g., in the "slides" format with the "12pt" option (or the +command "\ptsize{12}" at the beginning of a slide), the "\large" command may +invoke fonts that have a magnification of up to 7 magsteps. + +Most systems have font bitmaps for 0, 1/2, 1, 2, 3, 4 and 5 magsteps. If you +obey the restrictions listed on page \pageref{font-res}, then you will only +need fonts in these standard magnifications. However, if you want to use other +font magnifications, then check with your system administrator to determine +which of the following applies to you (or just plunge ahead and see what +happens): +\begin{enumerate} +\item If you have Metafont and "dvips" or some other driver that automatically +generates font bitmaps as needed, and if this feature is enabled, then you +will simply notice that it takes a long time to print documents at first, +because the driver has to wait for the new font bitmaps to be made. +Eventually, you will have generated all the extra bitmaps you need, and this +delay will go away. +\item If you have Metafont, but your dvi driver does not automatically +generate needed bitmaps, then you just need to keep track of what font bitmaps +you are missing as you use "seminar.sty" and occasionally run Metafont to make +them. You will also notice a delay when a font bitmap is missing, because your +driver will probably scale the closest bitmap it finds, and this can take time +on some systems. +\item If you do not even have Metafont, then you have to try to get by without +the extra bitmaps. Scaled fonts look lousy, but an occasional scaled font in a +heading is not so bad. +\end{enumerate} + +Of course, PostScript and other scalable fonts do not present any problem, and +so it is a good idea to use these as much as possible. The Computer Modern +fonts are available from Blue Sky Research in PostScript Type I format. If you +do not have PostScript versions of the CM fonts, and you instead use other +PostScript fonts for text, then you are likely to still need bitmapped fonts +for mathematics. However, since mathematics is usually set at "\normalsize" or +smaller, this is not a big problem. + +If you are installing "seminar.sty" on a multi-user system, then hopefully you +will make the needed fonts available. + +\section{Color} + +You can use whatever color commands you ordinarily use with \LaTeX. You might +try the \o{semcolor} style option, which lets you use the PSTricks color +commands for printing on a color PostScript printer. The \o{semcolor} option +combined with the \o{semlayer} option (see Section \ref{S-overlays}) lets you +print color layers. + +\section{Landscape printing and slide rotation\label{S-landscape}} + +If your dvi driver supports a "\special" for landscape printing, then you can +define \N\printlandscape\ in the preamble of your document to invoke this +command. E.g., for "dvips" put the line +\begin{LVerbatim} + \renewcommand{\printlandscape}{\special{landscape}} +\end{LVerbatim} +in the preamble. Otherwise, "seminar.sty" will display a message reminding you +to print your document in landscape mode, when appropriate. + +You can print both landscape and portrait slides in one shot if you can rotate +the portrait slides when printing in landscape mode or the landscape slides +when printing in portrait mode. If you are using a PostScript printer, you +probably are using a dvi driver that supports rotation; otherwise, you +probably are not. Here are suggestions for setting up rotation: +\begin{itemize} +\item The \o{semcolor} option provides an interface to the rotation macros in +PSTricks (see Appendix \ref{S-semcolor}); it works with many popular dvi-to-ps +drivers. + +\item If you are using Rokicki's "dvips" and want rotation but do not want to +load the entire PSTricks package, then use the \O{semrot} option instead of +the \o{semcolor} option. + +\item If the \o{semcolor} and \o{semrot} options do not work for you, but you +have your own rotation macros, then you have to define the commands +\begin{MD} + \leftsliderotation\\ + \rightsliderotation +\end{MD} +so that they rotate something left and right, respectively. For example, +\begin{LVerbatim} + \renewcommand{\leftsliderotation}[1]{\rotateleft{#1}} +\end{LVerbatim} +\end{itemize} + +In any case, you can determine the direction of rotation using +\begin{MD} + \sliderotation{direction} +\end{MD} +where valid directions are "none", "left" and "right". The default is "left". + +By default, the headers and footers aren't rotated, but you can switch between +rotating and not rotating the headers with the commands: +\begin{MD} + \rotateheaderstrue\\ + \rotateheadersfalse +\end{MD} + +\section{The semcolor style option\label{S-semcolor}} + +The \O{semcolor} option sets up an interface between "seminar.sty" and the +PSTricks package. PSTricks is a collection of PostScript macros for \TeX. It +works with Rokicki's "dvips", and several other dvi-to-ps drivers. You can +probably get the PSTricks package from wherever you obtained "seminar.sty", or +check the archives listed in the PSTricks read-me file, "read-me.pst", which +is distributed with "seminar.sty". + +What the \o{semcolor} style option gives you, compared to just using the +PSTricks package, is: +\begin{description} +\item[Color] A small patch to make the PSTricks color commands more robust in +slides. +\item[Rotation] The rotations "left" and "right" are defined. "left" is the +default. +\item[Framing] The frame styles "scplain" (using "\psframebox"), "scdouble" +(using "\psdblframebox") and "scshadow" (using "\psshadowbox"). +\item[Overlays] Overlays and layers, when used in conjunction with the +\o{semlayer} option. +\end{description} + +\section{A4 and other paper sizes\label{S-papersizes}} + +Use the \O{a4} option when using A4 paper. Note that this option does not +correspond to an independent file. + +If you want to configure seminar.sty for A4 paper by default (without having +to include style options), then you can do one of the following: +\begin{enumerate} + + \item Add the following line to "seminar.con" (see Appendix +\ref{S-configfile}): +\begin{LVerbatim} + \input{sem-a4.sty} +\end{LVerbatim} + + \item Add the following lines to "seminar.con" (these lines are just the +contents of "sem-a4.sty"): +\begin{LVerbatim} + \def\paperwidth{210mm} + \def\paperheight{297mm} + \input sem-page.sty + \slidewidth 222mm + \slideheight 152mm +\end{LVerbatim} + + \item Create a file such as "mysem.sty", to be used as a document {\em +style} (rather than style {\em option}), with the following lines: +\begin{LVerbatim} + \def\paperwidth{210mm} + \def\paperheight{297mm} + \input seminar.sty + \slidewidth 222mm + \slideheight 152mm +\end{LVerbatim} + +\end{enumerate} + +For other paper sizes, you can create a style option by modifying +"sem-a4.sty". Then any of the options described above is available to you, +(with the appropriate parameter values). However, this will give satisfactory +results only for paper sizes that are close to A4 or 8.5in by 11in. + +Note that for any paper size, even 8.5in by 11in, the page parameters that are +set this way are just suggested defaults, and most people will want to +customize them. Because of the variety of ways in which "seminar.sty" +documents can be printed, this is a little more complex than with most +document styles. Examine "sem-page.sty" to see what page parameters need to be +set, and when. + +\section{Configuration file\label{S-configfile}} + +You can put customizations to "seminar.sty" in a file named "seminar.con". +This file is optional. It is loaded by "seminar.sty" if it exists, {\em +before} loading the style option files. E.g., "seminar.con" might contain the +following lines: +\begin{LVerbatim} + \input semhelv.sty + \input semcolor.sty + \renewcommand{\printlandscape}{\special{landscape}} + \endinput +\end{LVerbatim} + +\clearpage +\PrintUserIndex + +\end{document} +%% END sem-user.tex diff --git a/macros/latex/contrib/seminar/doc/semsamp1.pdf b/macros/latex/contrib/seminar/doc/semsamp1.pdf Binary files differnew file mode 100644 index 0000000000..2be4b5dd6a --- /dev/null +++ b/macros/latex/contrib/seminar/doc/semsamp1.pdf diff --git a/macros/latex/contrib/seminar/doc/semsamp1.tex b/macros/latex/contrib/seminar/doc/semsamp1.tex new file mode 100644 index 0000000000..9f896093fc --- /dev/null +++ b/macros/latex/contrib/seminar/doc/semsamp1.tex @@ -0,0 +1,110 @@ +\listfiles +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% +%% BEGIN semsamp1.tex +% +% This is a sample document for seminar.sty, v0.93 (and maybe later). +% +% Try this with and without the article option: + +\documentclass[fancybox,article]{seminar} + +\def\printlandscape{\special{landscape}} % Works with dvips. + +\articlemag{1} + +%\twoup % Try me. + +\newpagestyle{327}% + {Economics 327 \hspace{\fill}\rightmark \hspace{\fill}\thepage}{}% +\pagestyle{327} + +\markright{Choice under uncertainty} + +\slideframe{Oval} + +\newcommand{\heading}[1]{% + \begin{center} + \large\bf + \shadowbox{#1}% + \end{center} + \vspace{1ex minus 1ex}} + +\newcommand{\BF}[1]{{\bf #1:}\hspace{1em}\ignorespaces} + +\begin{document} + + +\begin{slide} +\heading{A heading} + +One thing this example illustrates is how the {\tt article} style option is +good for printing slides two-up, for distribution to a seminar audience or +class, or just for proofreading. + +\BF{Definition} +$p$ (weakly) first-order stochastically dominates $q$ if for every $\bar z\in +Z$, +\[ + p(z\leq \bar z) \leq q(z\leq \bar z) +\] +\end{slide} + + +\begin{slide} +\heading{Problems with stochastic dominance as a DT} + +\begin{center} + \begin{tabular}{|r|l|}\hline + $z$ & $p(z)$\\ \hline + \$999 & .01\\ \hline + \$1,000,000 & .99 \\ \hline + \end{tabular}% + \hspace{1cm}% + \begin{tabular}{|r|l|}\hline + $z$ & $q(z)$\\ \hline + \$1,000 & 1\\ \hline + \end{tabular} +\end{center} +\end{slide} + +\begin{slide} +\heading{Candidate Theory \#3: Expected utility} + +Let $Z$ be an arbitrary set of outcomes. Let $u:Z\rightarrow R$ be a utility +representation of the DM's preferences over the elements of $Z$ as certain +outcomes. (I.e., $u(y)\geq u(z)$ iff $y \geq z$.) + +\end{slide} + + +\begin{slide} +\heading{Expected utility \& the St.\ Petersburg Paradox} + +This can get around even St.\ Petersburg Paradox, because we don't require +that utility be linear in money: + +\begin{center} + \begin{tabular}{r|c|c|c|c|c}\cline{2-6} + Prize & \$2 & \$4 & \$8 & \$16 & $\ldots$\\ \cline{2-6} + $u(z)=\log_2(z)$ & 1 & 2 & 3 & 4 & $\ldots$ \\ \cline{2-6} + Prob. & 1/2 & 1/4 & 1/8 & 1/16 & $\ldots$\\ \cline{2-6} + \end{tabular} +\end{center} + +Expected utility is $\sum_{k=1}^\infty k/2^k = 2$, and so lottery gives same +expected utility as getting \$4 for sure. +\end{slide} + + +\end{document} +%% END semsamp1.tex diff --git a/macros/latex/contrib/seminar/doc/semsamp2.pdf b/macros/latex/contrib/seminar/doc/semsamp2.pdf Binary files differnew file mode 100644 index 0000000000..d1419c853e --- /dev/null +++ b/macros/latex/contrib/seminar/doc/semsamp2.pdf diff --git a/macros/latex/contrib/seminar/doc/semsamp2.tex b/macros/latex/contrib/seminar/doc/semsamp2.tex new file mode 100644 index 0000000000..b332a31414 --- /dev/null +++ b/macros/latex/contrib/seminar/doc/semsamp2.tex @@ -0,0 +1,297 @@ +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% + +%% BEGIN semsamp2.tex +% This is a sample document for seminar.sty, v0.93 (and maybe later). +% +% This file contains both landscape and portrait mode slides. +% Choose one of the following to print them out: +% - If using PSTricks, try the semcolor style option. +% - If using Rokicki's dvips, try the semrot style option. +% - To print the landscape slides, put \landscapeonly in the preamble. +% To print the portrait slides, include the portrait style option and +% put \portraitonly in the preamble. +% +% +\documentclass[% + slidesonly,% Try notes or notesonly instead. + %notes,% Use instead of slidesonly to typeset the notes. + %notesonly,% Use instead of slidesonly to typeset notes and slides. + semcolor,% Try me if using PSTricks. + semrot,% Try me if using Rokicki's dvips. + %semhelv,% Try me if using a PostScript printer. + %article,% Try me. + %portrait,% Try me. + %sem-a4,% Try me if using A4 paper. + semlayer% This must be included, but you need the semcolor option to + ]{seminar} % actually see the overlays. + +\slidesmag{5} +\articlemag{1} + +%\twoup % Try me for twoup printing. + +%\portraitonly % To print only portrait slides +%\landscapeonly % To print only landscape slides + +%\notslides{\ref{questions}-7,1} %Try me: The slides are omitted. +%\onlyslides{\ref{questions}-7,1} %Try me: Only these slides are included. +%\onlynotestoo %Try me: For selecting notes as well. + +%\colorlayers{red,blue} % Try deleting this if using the semcolor option, + % to get \blue and \red to use PostScript color. + +%\overlaysfalse % Suppress overlays with semcolor option. +%\layersfalse % Suppress color layers with semcolor option. + +\rotateheaderstrue % Try this out if using rotation macros. + + +\title{Example for seminar.sty} +\author{Policarpa Salabarrieta} +\date{July 21, 1991} + +\newcommand\sref[1]{SLIDE \ref{#1}} +\newcommand\heading[1]{\begin{center}\large\bf #1\end{center}} + +\newpagestyle{MH}% + {University of Guaduas, March 13, 1998\hfil\thepage}{} +\pagestyle{MH} + +\begin{document} + +\maketitle % This won't show up when \onlynotestoo is in effect. + +\begin{slide} + \ifslidesonly % Title slide only for slidesonly selection. + \maketitle + \addtocounter{slide}{-1} + \slidepagestyle{empty} + \fi +\end{slide} + +This is a lot of gobbledy-gook intended only to illustrate some of the +features of seminar.sty. + + The phrase information overload rings a bell with just about anyone. +Certainly you all receive more working papers or more applications for +graduate school than you can readily read. Nevertheless, the term information +overload is ill-defined. (\sref{too_much}, top) + + A message like this when you check your email conjures up the notion of +information overload. More generally, information overload always means too +much information, in some sense or another. But what does ``too much'' mean? +(\sref{too_much}, bottom) It might just mean that people cannot process all +the information they receive. That is certainly true for everyone. A claim +that is much stronger, and that is implicit when people complain about +informaton overload, is that people {\em should} receive less information, by +some criterion. + +\begin{slide}\label{too_much}% +\begin{center} + \large\bf + Information overload = ``Too much'' information +\end{center} +\smallskip + +\begin{verse} \bf\tt + You have 134 unread messages:\\ + Do you want to read them now? +\end{verse} + +\begin{enumerate} + {\overlay2 + \item People {\overlay1 cannot process all} the information they receive.} + \item People {\em should} receive less information. + \end{enumerate} +\end{slide} + + In this paper, I use the term ``information overload'' in both senses. +(\sref{overload}, bottom). Specifically, I say that an {\em individual} is +overloaded with information if she receives more information than she can +process. But I say that there is information overload in a {\em network} if +there is some mechanism that makes the senders and/or receivers better off by +restricting the flow of information. This latter notion of information +overload is an equilibrium property, and it depends on what we mean by +``better off.'' + +\begin{slide*}\label{overload} +\ptsize{12} + +\begin{itemize}{\overlay1 + \item There is information {\overlay0 overload in a network if} there is +some mechanism that, compared to the {\em status quo}, makes the senders +and/or receivers better off by restricting the flow} of information.' + + \item There is information overload in a network if there is some mechanism +that, compared to the {\em status quo}, makes the senders and/or receivers +better off by restricting the flow of information. +\end{itemize} + +\end{slide*} + +(\sref{questions}) + The purpose of my paper is to show why there can be information overload in +a network and what kind of mechanisms can make the receivers and/or senders +better off. Since the cost of communication is one factor that restricts +communication, I am thus also going to look at how the welfare of the senders +and receivers depends on the cost of communication. + + Most messages don't become jumbled and we can choose which ones to process. +But some of us may have a bias towards choosing to process more information +than we should, like the graduate student who feels compelled to read every +article on the usual lengthy reading list, and just ends up getting confused +and ruffling through the papers. + + +\begin{slide}[7.3in,5.5in] \label{questions} +\heading{Questions} + +\begin{itemize} + {\overlay1 \item When could {\blue there be overload} in networks?} + \item What mechanims make the receivers and senders better off? + \item How does the welfare {\red of the senders} and receivers depend on the +cost of communication? +\end{itemize} +\end{slide} + + +However, experiments in consumer research and psychology have failed to find +that such a bias is prevalent. This is in spite of the fact that it is common +for stress and cognitive strain to increase with information load. We may +incur such stress and strain because the information we choose to process is +valuable to us. + +More commonly, then, we can and do choose to process roughly as much +information as we can handle efficiently. This is called screening. But when +we choose which messages to begin to process, we're ignorant of their +contents, since otherwise there would be no reason to process them in the +first place. Therefore, if we receive more junk mail, then some of the +important mail gets crowded out, and we are effectively less informed. + +\begin{slide} \label{informed} +\begin{center} + {\bf Being more informed} \par + \smallskip + is always better,\par + \medskip + \overlay1{but it's not the same as \par + \smallskip + {\bf receiving more information}} +\end{center} +\end{slide} + + Why would the senders communicate too many messages in the first place? If I +present too much material in this seminar, you have to choose which parts to +ignore and I would rather make that decision myself, since I know what I most +want to get across. Thus, it is in my interest not to overload you with +information. Generally, whenever there is a single sender of messages, that +sender will prefer to screen rather than have the receiver screen, because the +sender has an interest in which messages the receiver processes. +But when there are more senders, one sender's messages tend to crowd out the +messages of the other senders, as in this example here. If the senders don't +take this external cost into account when sending messages, they may +collectively overload the receiver. (\sref{akbar}) + +There are several reasons that our scarcity of attention, that is, our limited +capacity to process information, can mean that we become less informed when we +receive more information. I have a cartoon here to illustrate these reasons. +(\sref{akbar}) + +\begin{slide}\label{akbar}\def\slidefuzz{15pt} + {\large A tax $\tau$ on communication is said to support +$\tilde{\cal{X}}(c)$ if $\tilde{\cal{X}}(c)$ is an equilibrium for +$\Gamma(c+\tau)$.} +\medskip + + {\bf Proposition 6.} {\em Assume $\tilde{\cal{X}}(c)$ is not an equilibrium +for $\Gamma(c)$.\vspace{-3pt} +\begin{enumerate} + \item If $\mbox{supp}(\gamma)=[0,1]^n$, there is no tax that supports +$\tilde{\cal{X}}(c)$. + \item If $\mbox{supp}(\gamma)=S^{n-1}$, there is a tax that supports +$\tilde{\cal{X}}(c)$ if and only if $m=1$, $p_j>c\, \forall j$, and + \begin{enumerate} + \item $n=2$; or + \item $n=3$ and $p_i^{-1}+p_j^{-1}\geq p_k^{-1}$ for all distinct +$i,j,k$; or + \item $n=4$ and $p_1=p_2=p_3=p_4$. +\end{enumerate} +\end{enumerate}} +\end{slide} + + If, by restricting communication, we eliminate the less relevant messages, +then we can become more informed. But how can we achieve this? Restricting the +flow of information shifts the task of screening messages from the receivers +to the senders. Unlike the receivers, the senders do know the contents of the +messages they originate. If the senders' interests coincide with those of the +receiver and if the senders have sufficient knowledge about the receivers, +then the senders will choose the messages which are most relevant to the +receivers. This may make the receivers, and even the senders, better off. + + The network in Slide \ref{architectures} attains the minimal delay $c(8,24) += 6$ using 8 processors. It is an example of the efficient one-shot networks +described by Foo. We will focus on a class of networks that are similar to the +Foo networks but that may differ slightly. For $q$, $c$ and $n$ such that $1 +\leq q \leq \lfloor n/2 \rfloor$ and $c(q,n) \leq c \leq n$, let $R_{nqc}$ be +the class of essential networks for adding $n$ items using $q$ processors in +$c$ cycles that have the following properties: + +\begin{slide*}\label{architectures} +\heading{Architecture} + +\begin{center} +\setlength{\unitlength}{1.65in} +\begin{picture}(1.1,1.6)(3.5,5.0) +\put(4.0,6.5){\circle*{.04}} +\put(4.1,6.5){1} +\put(4.0,6.0){\circle*{.04}} +\put(4.1,6.0){2} +\put(4.0,6.1){\vector(0,1){.3}} +\put(3.5,6.0){\circle*{.04}} +\put(3.6,6.0){3} +\put(3.6,6.1){\vector(1,1){.3}} +\put(4.0,5.5){\circle*{.04}} +\put(4.1,5.5){4} +\put(4.0,5.6){\vector(0,1){.3}} +\put(4.5,6.0){\circle*{.04}} +\put(4.6,6.0){5} +\put(4.4,6.1){\vector(-1,1){.3}} +\put(4.5,5.5){\circle*{.04}} +\put(4.6,5.5){6} +\put(4.4,5.6){\vector(-1,1){.3}} +\put(3.5,5.5){\circle*{.04}} +\put(3.6,5.5){7} +\put(3.5,5.6){\vector(0,1){.3}} +\put(4.0,5.0){\circle*{.04}} +\put(4.1,5.0){8} +\put(4.0,5.1){\vector(0,1){.3}} +\end{picture} +\end{center} +\end{slide*} + +Why would the senders communicate too many messages in the first place? If I +present too much material in this seminar, you have to choose which parts to +ignore and I would rather make that decision myself, since I know what I most +want to get across. Thus, it is in my interest not to overload you with +information. + +Generally, whenever there is a single sender of messages, that sender will +prefer to screen rather than have the receiver screen, because the sender has +an interest in which messages the receiver processes. But when there are more +senders, one sender's messages tend to crowd out the messages of the other +senders, as in this example here. If the senders don't take this external cost +into account when sending messages, they may collectively overload the +receiver. (\sref{architectures}) + +\end{document} +%% END semsamp2.tex diff --git a/macros/latex/contrib/seminar/doc/semsamp3.pdf b/macros/latex/contrib/seminar/doc/semsamp3.pdf Binary files differnew file mode 100644 index 0000000000..7173793ea1 --- /dev/null +++ b/macros/latex/contrib/seminar/doc/semsamp3.pdf diff --git a/macros/latex/contrib/seminar/doc/semsamp3.tex b/macros/latex/contrib/seminar/doc/semsamp3.tex new file mode 100644 index 0000000000..3d6b5923a9 --- /dev/null +++ b/macros/latex/contrib/seminar/doc/semsamp3.tex @@ -0,0 +1,68 @@ +\listfiles +%% +%% Ein Beispiel der DANTE-Edition +%% +%% +%% Copyright (C) 2012 Herbert Voss +%% +%% It may be distributed and/or modified under the conditions +%% of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% +%% See http://www.latex-project.org/lppl.txt for details. +%% +%% +%% ==== +% Show page(s) 1,3 +%% +\documentclass[landscape,rules]{exaseminar} +\pagestyle{empty} +\setlength\textwidth{172.40709pt} +% use **dvips -T 297mm,210mm <file>**! +\usepackage[utf8]{inputenc} +\usepackage[scaled]{helvet} +\def\FileDate{June 2002} +\def\FileInfoB{Backgrounds} +\def\FileVersion{1.0} +\StartShownPreambleCommands +\documentclass{seminar} +\usepackage{sem-dem}% General utility macros +\HyperSetUp\hypersetup{pdfpagemode=UseOutlines}% Open the document with bookmarks shown +\newcommand\MySeminarOutlinePresentation{% + \SeminarOutlinePresentation{Where we are}{LightBlue}{RoyalBlue}{yellow}% + \SeminarHeader{\LARGE\HLe{Demonstration of \MakeLowercase{\FileInfoB}}}} +\VerbatimFootnotes % To allow verbatim material in footnotes +\StopShownPreambleCommands +\begin{document} +\SeminarFirstSlide \SeminarListOfSlides +\renewcommand{\slidestretch}{1}% Komprimieren der Zeilen +\begin{slide} + \slideheading{Introduction} + \begin{dinglist}{\DingListSymbolA} + \item The \emph{full screen} backgrounds, which are the ones well suited + for screen presentations, are managed by the + \Verb+\SeminarNewSlideFrameBackground+ and + \Verb+\SeminarSlideFrameBackground+ macros.\footnote{They are built on the + model of the \Verb[fontsize=\footnotesize]+\newslideframe+ and + \Verb[fontsize=\footnotesize]+\slideframe+ ones, which cannot be used for + this goal (there is a design incompatibility in the management of the + slide headers).} + + \item We can overlap several partial \emph{backgrounds} with the + `\textsf{fancybox}' package (using it \Verb+\boxput+ macro), calling the + \Verb+\slideframe[*]+ macro, eventually several times (see the + \HLe{Seminar} documentation and FAQ). See examples on + slide~12 and in the file \href{file:sem-dem2.pdf}{sem-dem2.pdf}. + + \item We show here several kinds of backgrounds: + \begin{dinglist}{\DingListSymbolB}\setlength{\labelwidth}{4mm} + \item \HLe{solid} backgrounds, + \item \HLe{gradient} backgrounds, using the \textsf{pst-grad} PSTricks package, + \item \HLe{gradient} backgrounds, using the \textsf{pst-slpe} PSTricks package, + \item \HLe{composite} backgrounds, based on PSTricks graphics (you can + obviously rather use the others \AllTeX{} packages for algorithmic graphics), + \item backgrounds with \HLe{external images}. + \end{dinglist} + \end{dinglist} +\end{slide} +\end{document} diff --git a/macros/latex/contrib/seminar/doc/tvz-code.sty b/macros/latex/contrib/seminar/doc/tvz-code.sty new file mode 100644 index 0000000000..68a52701aa --- /dev/null +++ b/macros/latex/contrib/seminar/doc/tvz-code.sty @@ -0,0 +1,291 @@ +%% BEGIN tvz-code.sty +%% 93/04/01 +%% Tim Van Zandt Timothy.VAN-ZANDT@insead.edu +%% +%% Lousy hacks for typesetting the documented code for the +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% +%% seminar.sty and PSTricks packages. + +\input tvz-hax.sty +\input doc.sty % Tested with v1.7k +\input art11.sty + + +%%%%%%%%%%%%%%%%%%% PAGE PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%%% + +% Paragraphs are marked by space rather than indentation: +\parindent 0pt +\parskip 4pt plus 1pt minus 1pt + +% Textwidth just wide enough for 78 characters of code. +\setbox\@tempboxa=\hbox{\small\tt f} +\textwidth 78\wd\@tempboxa +\oddsidemargin\paperwidth\relax +\advance\oddsidemargin -\textwidth +\divide\oddsidemargin 2 +\advance\oddsidemargin -1in +\setbox\@tempboxa=\hbox{\tiny 999\ } +\advance\oddsidemargin\wd\@tempboxa +\evensidemargin\oddsidemargin + +\if@twoside + \advance\oddsidemargin .3in + \advance\evensidemargin -.3in +\fi + +% No headers, 1in top margin +\topmargin 0pt +\headheight 0pt +\headsep 0pt + +% Total bottom margin 1in, text height 9in +\textheight 9in +\footskip .625in + +% Now adjust for different paper size: +\@tempdima=\paperheight +\advance\@tempdima-11in +\divide\@tempdima 2 +\advance\topmargin \@tempdima + +% Marginal notes always on left. +\marginparwidth 3.5cm +\marginparsep .5cm +\reversemarginpar + + +%%%%%%%%%%%%%%%%%%% MACROCODE PATCH FOR SHORT META %%%%%%%%%%% + +\expandafter\def\expandafter\macrocode\expandafter{% + \expandafter\DeleteShortMeta + \macrocode} + +%%%%%%%%%%%%%%%%%%%% DOC PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newbox\junkbox +\def\DocInput#1{% + \MakePercentIgnore + \setbox\junkbox=\hbox\bgroup + \input{#1}% + \MakePercentComment} +\let\EndDocPreamble\egroup + +%%%%%%%%%%%%%%%%%%%%%%%%%%% VERBATIM %%%%%%%%%%%%%%%%%%%%%%%%% + +% Use fancybox.sty's LVerbatim environment. Each line should contain +% percent plus three spaces (or other char), including blank lines. E.g., +% \begin{LVerbatim} +% foo +% bar +% \end{LVerbatim} + +\def\EveryVerbatimLine#1#2#3#4{} +\begingroup + \catcode`\%=12 + \catcode`\ =\active + \global\EndVerbatimTokens{% } +\endgroup +\AltGetVerbatim + + +%%%%%%%%%%%%%%%%%% INDEXING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Things are faster without \MakeIndex + +\def\MakeIndex{\makeindex\EnableCrossrefs} +\DisableCrossrefs + +% Use \codelabel[int]{foo} to label last line of code plus int. +% E.g., to label first and then last line of some code: +% \codelabel[1]{foo} +% \begin{macrocode} +% foo +% bar +% \end{macrocode} +% \codelabel{foo} + +\def\codelabel{\@ifnextchar[{\@codelabel}{\@codelabel[0]}} +\def\@codelabel[#1]#2{% + \@bsphack + \begingroup + \advance\c@CodelineNo #1 + \def\@currentlabel{\the\c@CodelineNo}% + \label{#2}% + \endgroup + \@esphack} + +% Definitions in code are indexed by page number, but other occurences +% are indexed by the line of code. + +\CodelineIndex +\def\SpecialMainPageIndex#1{% + {\let\special@index\index\SpecialMainIndex{#1}}} +\renewcommand{\theCodelineNo}{{\rm\tiny\arabic{CodelineNo}}} + +% Index numbers for main definitions are set in bold rather than underlined. + +\def\main#1{{\bf #1}} + +% two column index + +\setcounter{IndexColumns}{2} + +% Customize index prologue: + +\def\index@prologue{% + \section*{Index}\markboth{Index}{Index}% + \addcontentsline{toc}{section}{Index}% + The {\bf bold} numbers denote the pages where the entries are defined, + and all other numbers indicate the {\em lines of code} where + the entries are used.} + + +%%%%%%%%%%%%%%%%%%%%%%%%%% MACRO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% A change to the macro environment; prints macro names within the margins +% of the text, instead of as marginal notes. Use one \macro command, +% with comma separated macro names. + +\newif\iffirst@macroname +\newif\ifnestedmacro + +\def\macro{% + \ifnum\macro@level=\z@ + \def\next{\MakePrivateLetters \m@cro@}% + \else + \def\next{\@latexerr{Nested \string\begin{macro}}\@eha + \endgroup\end{macro}\macro@level=\z@\begin{macro}} + \fi + \next} +\def\m@cro@#1{% + \first@macronametrue + \m@@cro@@#1,\@nil,} +\def\m@@cro@@#1,{% + \def\@tempa{#1}\def\@tempb{\@nil}% + \ifx\@tempa\@tempb + \let\next\finishm@@cro@@ + \else + {\advance\c@CodelineNo\@ne\SpecialMainPageIndex{#1}\nobreak}% + \DoNotIndex{#1}% + \iffirst@macroname + \edef\saved@macronames{\string#1}% + \first@macronamefalse + \else + \def\comma{\noexpand\comma}% + \edef\saved@macronames{\saved@macronames\comma\string#1}% + \fi + \let\next\m@@cro@@ + \fi + \next} +\def\finishm@@cro@@{% + \advance\macro@level\@ne + \def\comma{{\rm, }}% + \ListMacroNames{\saved@macronames}} + +\let\endmacro\relax + +\def\ListMacroNames{% + \@startsection{subsubsection}{3}{\z@}{-2.25ex plus -.5ex minus-.2ex}% + {1.3ex plus.2ex}{\csname reset@font\endcsname\large\tt}*} + +\MacroIndent 0pt + +\def\MacroFont{\small\tt} + + +%%%%%%%%%%%%%%%%%%%%% DoNot Index %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\DoNotIndex{\ ,\!,\[,\\,\],\^,\`,\{,\},\~} +\DoNotIndex{\@warning,\active} +\DoNotIndex{\begingroup,\catcode,\char,\csname,\def,\do} +\DoNotIndex{\docdate,\dospecials,\edef,\else,\endcsname,\endgroup} +\DoNotIndex{\expandafter,\fi,\filedate,\fileversion} +\DoNotIndex{\gdef,\if,\ifcat} +\DoNotIndex{\ifx,\immediate,\lccode,\let} +\DoNotIndex{\lowercase,\next,\noexpand} +\DoNotIndex{\relax,\space,\the} +\DoNotIndex{\toks@,\typeout,\write} +\DoNotIndex{\@M,\@arabic,\@author,\@auxout,\@bsphack,\@car,\@date} +\DoNotIndex{\@dblarg,\@dblfloat,\@eha,\@empty,\@esphack,\@evenfoot} +\DoNotIndex{\@evenhead,\@float,\@gobble,\@gobbletwo,\@gtempa,\@ifnextchar} +\DoNotIndex{\@ifundefined,\@ixpt,\@latexerr,\@listI,\@listi,\@listii} +\DoNotIndex{\@listiii,\@listiv,\@listv,\@listvi,\@makefnmark,\@mkboth} +\DoNotIndex{\@namedef,\@nameuse,\@mne,\@nil,\@normalsize,\@oddfoot} +\DoNotIndex{\@oddhead,\@tempa,\@tempb,\@tempc,\@tempd} +\DoNotIndex{\@tempdima,\@testfalse,\@testtrue,\test@member} +\DoNotIndex{\@thanks,\@thefnmark,\@title} +\DoNotIndex{\@topnum,\@viiipt,\@viipt,\@vipt,\@vpt,\@xiipt} +\DoNotIndex{\@xipt,\@xpt,\@xivpt,\@xviipt,\@xxpt,\@xxvpt} +\DoNotIndex{\addcontentsline} +\DoNotIndex{\advance,\aftergroup,\baselinestretch,\begin} +\DoNotIndex{\belowdisplayshortskip,\belowdisplayskip,\bf,\bgroup} +\DoNotIndex{\box,\c@@page,\c@page,\c@secnumdepth,\clearpage,\columnsep} +\DoNotIndex{\columnwidth,\copy,\dimen@,\dimen@i,\dimen@ii,\divide} +\DoNotIndex{\dp,\ds@article,\ds@notes,\ds@notesonly} +\DoNotIndex{\ds@slidesonly,\egrou,\end,\end@dblfoloat,\end@float} +\DoNotIndex{\endinput,\fnsymbol,\footheight,\footnotesep,\footskip} +\DoNotIndex{\global,\globaldefs,\hbox,\headheight,\headsep,\hfil} +\DoNotIndex{\hrule,\hskip,\hss,\ht,\Huge,\huge} +\DoNotIndex{\if@filesw,\if@test,\if@twocolumn,\if@twoside} +\DoNotIndex{\ifcase,\ifdim,\ifvmode,\ignorespaces} +\DoNotIndex{\input,\interlinepenalty,\itemsep,\ixpt,\label} +\DoNotIndex{\labelsep,\labelwidth,\LARGE,\large,\Large} +\DoNotIndex{\leavevmode,\leftmargin,\leftmargini,\leftmarginii} +\DoNotIndex{\leftmarginiii,\leftmarginiv,\leftmarginv} +\DoNotIndex{\leftmarginvi,\leftmark,\leftskip,\lineskip} +\DoNotIndex{\magstep,\marginparsep,\marginparwidth,\markboth} +\DoNotIndex{\markright,\medbreak,\multiply,\newbox,\newcount} +\DoNotIndex{\newcounter,\newdimen,\newif,\newlabel,\newpage} +\DoNotIndex{\newtoks,\nobreak,\nointerlineskip,\normallineskip} +\DoNotIndex{\normalsize,\null,\number,\numberline,\oddsidemargin} +\DoNotIndex{\offinterlineskip,\or,\par,\parbox,\parskip,\partopsep} +\DoNotIndex{\prevdepth,\protect,\ref,\refstepcounter,\rightmrk} +\DoNotIndex{\rm,\scriptsize,\section,\sectionmark,\setbox,\setcounter} +\DoNotIndex{\sl,\small,\stepcounter,\string,\textheight,\textwidth} +\DoNotIndex{\thefootnote,\thepage,\thesection,\thesubsection} +\DoNotIndex{\thispagestyle,\tiny,\topmargin,\topsep,\uppercase} +\DoNotIndex{\vbox,\vfill,\viiipt,\viipt,\vipt,\vpt,\vskip,\vss} +\DoNotIndex{\wd,\xcommentloaded@,\xdef,\xiipt,\xipt,\xivpt,\xpt} +\DoNotIndex{\xviipt,\xxpt,\xxvpt,\z@} +\DoNotIndex{\abovedisplayskip,\abovedisplayshortskip,\@currentlabel} +\DoNotIndex{\@dottedtocline,\@ne\@setsize,\@starttoc,\@tempboxa,\@} +\DoNotIndex{\arraystretch,\centerline,\egroup,\end@dblfloat} +\DoNotIndex{\evensidemargin,\footnotesize,\ifnum,\parindent,\parsep} +\DoNotIndex{\rightmark,\@afterindenttrue,\@ne,\if@specialpage.\long} +\DoNotIndex{\fboxrule,\fboxsep,\@for,\vfil} +\DoNotIndex{\@@fortmp,\@@tempa,\@@tempb,\@ehd,\@for,\@fortmp,\@m} +\DoNotIndex{\@mparswitchfalse,\@mparswitchtrue,\@nnil,\@spaces} +\DoNotIndex{\@specialstyle,\@temptokena,\@twosidefalse,\@twosidetrue} +\DoNotIndex{\@whilenum,\alph,\arabic,\count@,\errhelp,\errmessage} +\DoNotIndex{\fbox,\index,\minipage,\newcommand,\overfullrule} +\DoNotIndex{\pagestyle,\raggedright,\ref@stepcounter,renewcommand} +\DoNotIndex{\semcolor@loaded,today,\@tempcnta,\@tempcntb,\trivlist,\t,\p} +\DoNotIndex{\today,\item,\@colht,\@currenvir,\@thefoot,\@thehead} +\DoNotIndex{\@totalleftmargin,\allowbreak,\@captype,\@footnotetext} +\DoNotIndex{\@listdepth,\@minipagefalse,\@minipagetrue,\@mpfn,\@mpfootins} +\DoNotIndex{\endtrivlist,\everypar,\hsize,\ifvoid,\lastskip} +\DoNotIndex{\linewidth,\skip,\thempfn,\thempfootnote,\topskip,\unvbox} +\DoNotIndex{\@@input,\@@par,\@acci,\@accii,\@acciii,\@cclv,\@height} +\DoNotIndex{\@maxdepth,\@tempdimb,\@tempg,\@temph,\@texttop,\@twocolumnfalse} +\DoNotIndex{\@xfloat,\addvspace,\alloc@,\bigskipamount,\botmark,\chardef} +\DoNotIndex{\closein,\closeout,\count,\countdef,\dimen,\glossary,\goodbreak} +\DoNotIndex{\insc@unt,\intextsep,\kern,\mag,\marginpar,\maxdepth,\medskip} +\DoNotIndex{\moveleft,\newinsert,\newskip,\onecolumn,\openin,\openout} +\DoNotIndex{\read,\renewcommand,\repeat,\rightskip,\strut,\vfuzz,\voffset} +\DoNotIndex{\vsize} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\endinput + +%% END tvz-code.sty diff --git a/macros/latex/contrib/seminar/doc/tvz-hax.sty b/macros/latex/contrib/seminar/doc/tvz-hax.sty new file mode 100644 index 0000000000..f8a4798fcc --- /dev/null +++ b/macros/latex/contrib/seminar/doc/tvz-hax.sty @@ -0,0 +1,266 @@ +%% BEGIN tvz-hax.sty +%% 93/04/01 +%% Tim Van Zandt Timothy.VAN-ZANDT@insead.edu +%% +%% These are some lousy hacks for typesetting the code +%% and User's Guide in the Seminar and PSTricks packages. +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%% PAPER SIZES %%%%%%%%%%%%%%%%%%%%%% + +% Default paper size is 8.5in by 11in. +% Just include the `a4' style option for A4 paper size. +% For other paper sizes, define \paperwidth and \paperheight +% before the \documentstyle command. + +\@ifundefined{paperwidth}{\def\paperwidth{8.5in}}{} +\@ifundefined{paperheight}{\def\paperheight{11in}}{} +\@namedef{ds@a4}{\def\paperwidth{210mm}\def\paperheight{297mm}} + + +%%%%%%%%%%%%%%%%%%%% INPUTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newif\iftwoup +\@namedef{ds@2up}{\input 2up.tex \twouptrue} + +\input article.sty +\input fancybox.sty % Version 0.93 or later. + +\iftwoup + \if@twoside + \targetlayout{twosided} + \fi +\fi + +\if@twoside + \def\twosideclearpage{% + \clearpage + \ifodd\c@page\else + \thispagestyle{empty}% + \null\leavevmode + \clearpage + \fi} +\else + \let\twosideclearpage\clearpage +\fi + + +%%%%%%%%%%%%%%%%%%%%% MISC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\arraystretch{1.2} + +\hfuzz 1pt + +% Just in case I'm using AmS-LaTeX. +\def\makeatother{\catcode`\@=12\relax} + + +%%%%%%%%%%%%%%%%%%%%%%%%%% SHORT META %%%%%%%%%%%%%%%%%%%%%%%% + +% Works in verbatim environments, unless specially designed. +\begingroup + \catcode`\<=\active + \gdef\ShortMeta{% + \catcode`\<=\active + \def<##1>{{\MetaFont ##1\/}}} +\endgroup +\def\DeleteShortMeta{\catcode`\<=12\relax} +\def\MetaFont{\sl} % For meta arguments. + +%%%%%%%%%%%%%%%%%%%%%%%%%% FILE VERSIONS %%%%%%%%%%%%%%%%%%%%% + +% \GetVersion{file} scans first ten lines of <file> for +% \filedate and \fileversion definitions. +% +% \CheckVersion{file} scans <scans> file for \filedate and \fileversion +% and then compares these witha \FileDate and \FileVersion. +% +\def\GetVersion#1{% + \immediate\openin1=#1 + \count@=0 + \let\fileversion\relax + \let\filedate\relax + \@testtrue + \loop + \if@test + \advance\count@1 + \immediate\read1 to \@tempa + \@tempa + \ifnum\count@=10 + \@latexerr{Couldn't find fileversion}\@eha + \@testfalse + \else + \ifx\fileversion\relax + \@testtrue + \else + \ifx\filedate\relax + \@testtrue + \else + \@testfalse + \fi + \fi + \fi + \repeat} + +\def\CheckVersion#1{% + \GetVersion{#1} + \ifx\FileVersion\fileversion + \ifx\FileDate\filedate\else + \@latexerr{Doc date (\FileDate) and file date (\filedate) + do not match}\@eha + \fi + \else + \@latexerr{Doc version (\FileVersion) and file version (\fileversion) + do not match}\@eha + \fi} + +% This expands the date, as defined in \filedate. + +\def\expanddate#1/#2/#3/{% + \number#3{} + \month=#2 + \ifcase\month\or + January \or February \or March \or April \or May \or June \or + July \or August \or September \or October \or November \or December + \fi + 19#1} +\def\thefiledate{\expandafter\expanddate\filedate/} +\date{\thefiledate} + + +%%%%%%%%%%%%%%%%% LOGOS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\AmS{{\protect\the\textfont\tw@ + A\kern-.1667em\lower.5ex\hbox{M}\kern-.125em S}} + +\def\b@LaTeX{% + \begingroup + \csname reset@font\endcsname + \rm\bf + L\kern-.32em + \raise.36ex\hbox{% + \ifx\@currsize\Huge\LARGE\else + \ifx\@currsize\huge\Large\else + \ifx\@currsize\LARGE\large\else + \ifx\@currsize\Large\normalsize\else + \ifx\@currsize\large\small\else + \ifx\@currsize\normalsize\footnotesize\else + \ifx\@currsize\small\scriptsize\else + \ifx\@currsize\footnotesize\scriptscriptsize + \fi\fi\fi\fi\fi\fi\fi\fi + \bf A}% + \kern-.15em + T\kern-.1667em + \lower.7ex\hbox{E}\kern-.125em + X% + \endgroup} +\def\bLaTeX{\b@LaTeX} + + +%%%%%%%%%%%%%%% PAGE STYLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% The `docheadings' page style uses footers rather than headers. + +\def\ps@docheadings{% + \let\@mkboth\markboth + \def\@oddhead{}% + \let\@evenhead\@oddhead% + \def\@oddfoot{% + \small\sf + \rightmark + \hfil + \thepage}% + \def\@evenfoot{% + \small\sf + \thepage + \hfil + \theheadertitle}% + \def\sectionmark##1{\markright {##1}}}% +\pagestyle{docheadings} + + +%%%%%%%%%%%%%%%%%%%%%%%% Table of Contents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Tighten up spacing in TOC: + +\newskip\tempskip +\def\TOCshrink{.5} +\def\TableOfContents{% + \begin{quote} + \begin{center} \Large\bf Contents \end{center} + \def\numberline##1{\hbox to 0pt{\hss##1\hskip 1em}}% + \let\oldaddvspace\addvspace + \def\addvspace##1{% + \tempskip##1\relax + \oldaddvspace{\TOCshrink\tempskip}} + \@starttoc{toc}% + \end{quote}} +\def\tableofcontents{% + \clearpage + \markright{Table of contents}% + \TableOfContents + \clearpage} + + +%%%%%%%%%%%%%%%%%%%%%%%% code and examples %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% `Ex' is an environment for putting samples of code. +% It is a variant of +% \begin{quote}\tt ... \end{quote}. +% It is NOT verbatim. + +\def\NotNested{% + \def\begin##1{% + \@latexerr{Bad nesting of environments. + Perhaps missing \end{\@currenvir}}\@eha + \end{\@currenvir}% + \begin{##1}}} + +\def\Ex{% + \NotNested + \list{}{}\item[]% + \if@minipage\else\vskip\parskip\fi + \leftskip\@totalleftmargin + \rightskip\z@ + \parindent\z@ + \parskip\z@ + \parfillskip\@flushglue + \hfuzz 1pt + \@@par + \global\@inlabelfalse} +\def\endEx{\endlist} + +% Various things to make it easier to write code and examples: + +\begingroup + \catcode`\{=12 \catcode`\}=12 + \catcode`\(=1 \catcode`\)=2 + \catcode`\+=0 \catcode`\\=12 + +gdef+|(\) % \| = character \ + +gdef+{({) % \{ = character { + +gdef+}(}) % \} = character } ++endgroup +\def\Backslash{\protect\|} + +% Define some functional font commands: + +\def\MainFont{\tt} % For macro definitions. +\def\UsageFont{\tt} % For in-line macro names. +\def\InlineFont{\tt} % For other in-line snipets of code. +\def\DisplayFont{\tt} % For displayed code. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\endinput +%% END tvz-hax.sty diff --git a/macros/latex/contrib/seminar/doc/tvz-user.sty b/macros/latex/contrib/seminar/doc/tvz-user.sty new file mode 100644 index 0000000000..f203fa2cf3 --- /dev/null +++ b/macros/latex/contrib/seminar/doc/tvz-user.sty @@ -0,0 +1,215 @@ +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% +%% BEGIN tvz-user.sty +%% 93/04/01 + +\input tvz-hax.sty + +\def\papersizeadjust{% + \@tempdima=\paperwidth\relax + \advance\@tempdima-8.5in + \divide\@tempdima 2 + \advance\oddsidemargin\@tempdima + \advance\evensidemargin\@tempdima + \@tempdima=\paperheight + \advance\@tempdima-11in + \divide\@tempdima 2 + \advance\topmargin\@tempdima} + +\begingroup + \catcode`\"=\active + \gdef\ShortVerb{% + \catcode`\"=\active + \def"{\Verb"}}% + \gdef\DeleteShortVerb{\catcode`\"=12\relax} +\endgroup + +% Paragraphs are marked by large space rather than indentation: +\setlength{\parindent}{0pt} +\setlength{\parskip}{7pt plus 1pt minus 1pt} + +% Reduce \topsep: +\def\@listI{% + \leftmargin\leftmargini + \parsep 5\p@ plus2.5\p@ minus\p@ + %\topsep 10\p@ plus4\p@ minus6\p@ + \topsep 5\p@ plus2\p@ minus2\p@ + \itemsep 5\p@ plus2.5\p@ minus\p@} +\let\@listi\@listI +\@listi +\def\@listii{% + \leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + %\topsep 5\p@ plus2.5\p@ minus\p@ + \topsep 2\p@ plus.5\p@ minus\p@ + \parsep 2.5\p@ plus\p@ minus\p@ + \itemsep \parsep} +\def\@listiii{% + \leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + %\topsep 2.5\p@ plus\p@ minus\p@ + \topsep 1\p@ plus.2\p@ minus.2\p@ + \parsep \z@ + \partopsep \p@ plus\z@ minus\p@ + \itemsep \topsep} + +\skip\footins 20pt plus 4pt minus 2pt + +%%%%%%%%%%%%%%%%%%%%%%% Special hacks for User's Guides %%%%%%%%%%%%%%%%%%%%% +%% +%% Listing questions +\newcounter{faq}[section] +\def\thefaq{\arabic{faq}} +\let\l@faq\@gobbletwo +\def\faq{\@startsection{faq}{2}{\z@}% + {3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}{\faqfont}} +\def\faqfont{\normalsize\sf} +\def\faqmark#1{} +%% +%% Listing errors +\def\error{\vskip 2ex\noindent} +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\@ifundefined{AmSTeX} + {\def\AmSTeX{\leavevmode\hbox{$\cal A\kern-.2em\lower.376ex% + \hbox{$\cal M$}\kern-.2em\cal S$-\TeX}}}{} +\@ifundefined{BibTeX} + {\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em% + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{} +\@ifundefined{SliTeX} + {\def\SliTeX{{\rm S\kern-.06emL\kern-.18em\raise.32ex\hbox + {\sc i}\kern -.03em\TeX}}}{} +\@ifundefined{PlainTeX}{\def\PlainTeX{{\sc Plain}\kern2pt\TeX}}{} + +%%%%%%%%%%%%%%% Special indexing for User's Guides %%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% +\@ifundefined{actualchar}{\def\actualchar{@}}{} +\@ifundefined{quotechar}{\def\quotechar{"}}{} +\@ifundefined{levelchar}{\def\levelchar{!}}{} +\@ifundefined{encapchar}{\def\encapchar{|}}{} +\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{} +%% +%% These are the indexing commands: +%% +%% Commands: \MainIndex \UsageIndex +%% Environments: \MainEnvIndex \UsageEnvIndex +%% Style options: \MainOptionIndex \UsageOptionIndex +%% Counters: \MainCntIndex \UsageCntIndex +\def\@Index#1{\@bsphack\index{#1}\@esphack} +\def\Index#1#2{% + \@bsphack + \index{\expandafter\@gobble\string#2\actualchar\string + \verb\quotechar*\verbatimchar\string#2\verbatimchar + \encapchar #1}} +{\catcode`\!=0 !catcode`!\=12!gdef!special@gobble#1{!if\#1!else#1!fi}} +\def\MainIndex{\Index{main}} +\def\UsageIndex{\Index{usage}} +\def\SpecialIndex#1#2#3{% + \@Index{#3\actualchar{\tt #3} (#1)\encapchar #2}% + \@Index{#1s:\levelchar{\tt #3}\encapchar #2}} +\def\MainEnvIndex{\SpecialIndex{environment}{main}} +\def\UsageEnvIndex{\SpecialIndex{environment}{usage}} +\def\MainOptionIndex{\SpecialIndex{option}{main}} +\def\UsageOptionIndex{\SpecialIndex{option}{usage}} +\def\MainCntIndex{\SpecialIndex{counter}{main}} +\def\UsageCntIndex{\SpecialIndex{counter}{usage}} +%% +%% Font for index page numbers: +\def\main#1{{\bf #1}} +\def\usage#1{{#1}} +%% +%% These combine various functions: +%% +%% Commands: \Main \Usage +%% Environments: \MainEnv \UsageEnv +%% Style options: \MainOption \UsageOption +%% Counters: \MainCnt \UsageCnt +%% +%% The "Main" ones +%% * Index argument. +%% * Print argument with \MainFont +%% * Create label +foo, e+foo or o+foo. +%% +%% The "Usage" ones +%% * Index argument. +%% * Print argument with \UsageFont. +%% +\def\SpecialLabel#1#2+{\label{+#2}} +\def\LabelIndex#1{\MainIndex{#1}\expandafter\SpecialLabel\string#1+} +\def\Main#1{% + \MainIndex{#1}% + \expandafter\SpecialLabel\string#1+% + {\MainFont\string#1}} +\def\Usage#1{\UsageIndex{#1}{\UsageFont\string#1}} +\def\MainEnv#1{% + \MainEnvIndex{#1}% + \label{e+#1}% + {\MainFont #1}} +\def\UsageEnv#1{\UsageEnvIndex{#1}{\UsageFont #1}} +\def\MainOption#1{% + \MainOptionIndex{#1}% + \label{o+#1}% + {\MainFont #1}} +\def\UsageOption#1{\UsageOptionIndex{#1}{\UsageFont #1}} +\def\MainCnt#1{% + \MainCntIndex{#1}% + \label{c+#1}% + {\MainFont #1}} +\def\UsageCnt#1{\UsageCntIndex{#1}{\UsageFont #1}} +%% +%% These are abbreviations. +%% +\def\N{\Main} +\def\n{\Usage} +\def\E{\MainEnv} +\def\e{\UsageEnv} +\def\O{\MainOption} +\def\o{\UsageOption} +\def\C{\MainCnt} +\def\c{\UsageCnt} +%% +%% This is for listing commands in a description environment. +\def\xitem#1{\item[\Main{#1}]} +%% +%% +\renewcommand{\EveryVerbatimLine}[2]{} +\VerbatimFootnotes + +%% User's guide and documented code have different index prologue. +\def\PrintUserIndex{{\let\ps@plain\@empty\@input{\jobname.ind}}} + +\begingroup + \catcode`\<=1 \catcode`\>=2 + \catcode`\{=13 \catcode`\}=12 + \catcode`\[=13 + \gdef\@MD<% + \catcode`\{=13 \catcode`\}=12 \catcode`\[=13 + \def{##1}<\{<\MetaFont ##1\/>\}>% + \def[##1]<\string[<\MetaFont ##1\/>]>> +\endgroup +\def\MD{% + \NotNested + \Ex + \begingroup + \@MD + \def\end{\par\endgroup\end}% + \def\\{\@centercr\Main}% + \MainFont + \Main} +\def\endMD{\endEx} + +\endinput +%% END tvz-user.sty |