From 92d520e9e35d76095b72c49e787f1997c2875365 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 12 Jan 2007 17:33:16 +0000 Subject: seminar update (11jan07) git-svn-id: svn://tug.org/texlive/trunk@3386 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/seminar/2up.doc | 549 ++++++ Master/texmf-dist/doc/latex/seminar/fancybox.doc | 1279 ++++++++++++++ Master/texmf-dist/doc/latex/seminar/read-me.2e | 73 + Master/texmf-dist/doc/latex/seminar/readme.pst | 204 +++ Master/texmf-dist/doc/latex/seminar/sem-read.me | 299 ++++ Master/texmf-dist/doc/latex/seminar/sem-user.pdf | Bin 0 -> 251653 bytes Master/texmf-dist/doc/latex/seminar/sem-user.tex | 1932 ++++++++++++++++++++++ Master/texmf-dist/doc/latex/seminar/semsamp1.tex | 109 ++ Master/texmf-dist/doc/latex/seminar/semsamp2.tex | 297 ++++ Master/texmf-dist/doc/latex/seminar/tvz-code.sty | 291 ++++ Master/texmf-dist/doc/latex/seminar/tvz-hax.sty | 266 +++ Master/texmf-dist/doc/latex/seminar/tvz-user.sty | 215 +++ Master/texmf-dist/tex/latex/seminar/2up.sty | 3 + Master/texmf-dist/tex/latex/seminar/2up.tex | 382 +++++ Master/texmf-dist/tex/latex/seminar/fancybox.sty | 986 +++++++++++ Master/texmf-dist/tex/latex/seminar/npsfont.sty | 191 +++ Master/texmf-dist/tex/latex/seminar/sem-a4.sty | 19 + Master/texmf-dist/tex/latex/seminar/sem-page.sty | 95 ++ Master/texmf-dist/tex/latex/seminar/semcolor.sty | 76 + Master/texmf-dist/tex/latex/seminar/semhelv.sty | 193 +++ Master/texmf-dist/tex/latex/seminar/seminar.bg2 | 703 ++++++++ Master/texmf-dist/tex/latex/seminar/seminar.bug | 208 +++ Master/texmf-dist/tex/latex/seminar/seminar.cls | 1205 ++++++++++++++ Master/texmf-dist/tex/latex/seminar/seminar.sty | 1170 +++++++++++++ Master/texmf-dist/tex/latex/seminar/semlayer.sty | 156 ++ Master/texmf-dist/tex/latex/seminar/semlcmss.sty | 170 ++ 26 files changed, 11071 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/seminar/2up.doc create mode 100644 Master/texmf-dist/doc/latex/seminar/fancybox.doc create mode 100644 Master/texmf-dist/doc/latex/seminar/read-me.2e create mode 100644 Master/texmf-dist/doc/latex/seminar/readme.pst create mode 100644 Master/texmf-dist/doc/latex/seminar/sem-read.me create mode 100644 Master/texmf-dist/doc/latex/seminar/sem-user.pdf create mode 100644 Master/texmf-dist/doc/latex/seminar/sem-user.tex create mode 100644 Master/texmf-dist/doc/latex/seminar/semsamp1.tex create mode 100644 Master/texmf-dist/doc/latex/seminar/semsamp2.tex create mode 100644 Master/texmf-dist/doc/latex/seminar/tvz-code.sty create mode 100644 Master/texmf-dist/doc/latex/seminar/tvz-hax.sty create mode 100644 Master/texmf-dist/doc/latex/seminar/tvz-user.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/2up.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/2up.tex create mode 100644 Master/texmf-dist/tex/latex/seminar/fancybox.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/npsfont.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/sem-a4.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/sem-page.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/semcolor.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/semhelv.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/seminar.bg2 create mode 100644 Master/texmf-dist/tex/latex/seminar/seminar.bug create mode 100644 Master/texmf-dist/tex/latex/seminar/seminar.cls create mode 100644 Master/texmf-dist/tex/latex/seminar/seminar.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/semlayer.sty create mode 100644 Master/texmf-dist/tex/latex/seminar/semlcmss.sty diff --git a/Master/texmf-dist/doc/latex/seminar/2up.doc b/Master/texmf-dist/doc/latex/seminar/2up.doc new file mode 100644 index 00000000000..082efec0201 --- /dev/null +++ b/Master/texmf-dist/doc/latex/seminar/2up.doc @@ -0,0 +1,549 @@ +%% BEGIN 2up.doc +%% +%% Documentation for 2up.tex/2up.sty. +%% Run through LaTeX, with or without the NFSS. +%% +%% See below if you want to try out two-up printing. +%% +%% LaTeX version of this documentation courtesy of +%% H. David Todd +%% +%% 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. +%% +%% +\documentstyle[12pt,twoside]{article} + +\def\FileDate{January 28, 1993} +\def\FileVersion{1.2} + +%% INSTRUCTIONS FOR TWO-UP PRINTING. +%% 1. Change \iffalse below to \iftrue. +%% 2. Uncomment \special{landscape} if using Rokicki's dvips, or otherwise +%% remember to print the document out in landscape mode. +%% 3. Uncomment one of the booklet options, if desired. +%% +\iffalse + \input 2up.tex + \targetlayout{twosided} + \TwoupWrites + % \special{landscape} %% This works with Rokicki's dvips + % \targetlayout{Booklet} %% Booklet printing with 2-sided printer/copier. + % \targetlayout{booklet} %% Booklet printing with 1-sided printer/copier. +\fi + +\makeatletter + +%% PAGE NUMBERING: +%% Adjust page numbering if using booklet layout option. +\setcounter{page}{0} +\def\next{\if@leftpage\else\stepcounter{page}\fi} +\@ifundefined{target@stop}{}{\next} + +%% CONTENTS: +\def\tableofcontents{% + \par\begin{center} + \large\bf Contents + \end{center} + \begin{quote}\@starttoc{toc}\end{quote}} + +%% PAGE PARAMETERS: +\setlength{\parindent}{0pt} % paragraph indent +\setlength{\parskip}{4pt plus 1pt minus 1pt} +\setlength{\topmargin}{0pt} +\setlength{\headheight}{12pt} % height of running head +\setlength{\headsep}{30pt} % distance between header and text +\setlength{\textheight}{8.2in} % height of text on page + +%% DATES, VERSIONS AND TITLES: +\def\@maketitle{% + \begin{center} + {\Large\bf \@title \par} + \vskip 1.2em {\lineskip .5em + \begin{tabular}[t]{c}\@author\end{tabular}\par} + \vskip .8em {\@date}% + \end{center} + \par + \vskip .5em} + +%% Page Style: +\pagestyle{myheadings} +\markboth{Two-Up Style Guide}{Version \FileVersion, \FileDate} + +%% Special list: +\newcommand{\namelistlabel}[1]{\mbox{\bf #1}\hfil} +\newenvironment{namelist}[1]% + {\begin{list}{}% + {\let\makelabel\namelistlabel + \settowidth{\labelwidth}{#1} + \setlength{\leftmargin}{1.1\labelwidth}}}% + {\end{list}} + +%% VERBATIM: +%% +\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\MetaFont{\rm\it} % For meta arguments. +%% +%% Short-cuts for font commands: +%% +\def\s#1{\string#1} +\def\t#1{{\InlineFont\string#1}} % For other in-line code. +\def\m#1{{\MetaFont #1\/}} % For just putting things in italics +\def\M#1{{\InlineFont\{\m{#1}\}}} % Arg is in italic, enclosed in tt braces. +\let\N\t % For in-line macro names. +\catcode`\<=13 \def<#1>{\m{#1}} % +\catcode`\"=13\def"{\verb"} % Short verb +%% +%% This is for listing macro definitions in a quote-like environment. +%% +\begingroup + \catcode`\[=1 \catcode`\]=2 + \catcode`\{=13 \catcode`\}=12 + \gdef\@MD[% + \catcode`\{=13 \catcode`\}=12 + \def{##1}[\{[\MetaFont ##1]\}]] +\endgroup +\def\MD{% + \quote + \begingroup + \@MD + \def\end{\endgroup\end}% + \def\\{\@centercr\s}% + \MainFont + \s} +\def\endMD{\endquote} +%% + +%% End preamble. +\catcode`\@=12 + +\begin{document} + +\title{Documentation for 2up.tex:\\ + Two-up printing for Generic TeX} +\author{Timothy Van Zandt\thanks{The documentation was put into + \LaTeX\ format by David Todd.}\\ Timothy.VAN-ZANDT@insead.edu} +\date{Version \FileVersion\\[3pt] \FileDate} + +\maketitle +\thispagestyle{empty} + + "2up.tex"/"2up.sty" allows one to print a document two-up, with +considerable flexibility as to paper size and layout. It produces a standard +dvi file, and does not involve an additional dvi or PostScript filter. It +should work with most \TeX\ macro packages. + + {\bf Usage:} Input "2up.tex", or include "2up" as a LaTeX style option. +There is a good chance you will get the desired layout. (But you will probably +need to generate new font bitmaps to get high quality output.) See the rest of +this documentation for detailed information on controlling 2up.tex. + +\begingroup +\def\baselinestretch{.8}\large\normalsize +\tableofcontents +\endgroup +\clearpage + +\section{Comparison with other methods} + +There are other tools for two-up printing: +\begin{description} +\item[PostScript filters] +These work well as long as you only use PostScript fonts (as opposed to the +usual Metafont fonts). Otherwise, the PostScript filter scales bitmapped +fonts, and the quality is lower than with "2up.tex". + +\item[Rokicki's dvidvi] +"dvidvi" is a versatil tool that does much more than +2up printing. However, if only rearranges the pages, and does not adjust the +magnification to ensure that the pages fit properly in a two-up format. It +also adds one more step to the \TeX-dvi-printer cycle. "2up.tex", on the other +hand, combines the changes to \TeX's magnification and page layout with the +rearranging of the pages, all with an easy-to-use interface and from within +your \TeX\ document. (See Section \ref{dvidvi} on using both "2up.tex" and +"dvidvi" together.) +\end{description} + +\section{A warning about fonts} + +Two-up printing generally involves reducing a document, and thus using fonts +sizes that are not typically found on your system. If you are using bitmapped +fonts (standard for \TeX\ users), and you do not have and cannot generate the +extra fonts bitmaps, you will find 2up.sty (and any other method of two-up +printing) to give very poor quality output. + +If you are using a program like Rokicki's "dvips" that can generate extra font +bitmaps as needed, you will find that it takes a long time to print your 2up +document the first few times, as "dvips" is busy making the extra fonts. This +problem will go away. Be thankful you have such an easy way to get extra font +bitmaps. + +\section{Usage} + +Input "2up.tex". \LaTeX\ users can include "2up" as a style option. + +Then set the target and source layout: +\begin{MD} + \source{mag}{width}{height}\\ + \target{mag}{width}{height} +\end{MD} + +\begin{itemize} +\item The ``source'' layout is the layout of your document +the way it is usually printed. The ``target'' layout is the layout when it +is printed two-up. + +\item and are the true width and height of the paper, +when looking at the output right-side-up. + +\item refers to the source and target magnification. It should be an +integer, equal to 1000 times the magnification factor. There are also some +magic magnification numbers: +\begin{description} +\item[$\setminus$magstep] for a magnification of 1.2$^n$ (n=0,...,5), or + +\item[$\setminus$magstepminus] for a magnification of 1.2$^{-n}$ +(n=0,...,5). +\end{description} +Using these magnification values will make best use of the available fonts on +your system. +\end{itemize} + +"2up.tex" takes each source page, and centers in half a target page. To get +the pages to fit, the magnification of the document typically has to be +reduced. If you find that the pages are too crowded, try reducing the target +magnification. If they are too lonely, try increasing the target +magnification. + +If you want to adjust the positioning of the scaled pages, try changing the +values of "\hoffset" or "\voffset" with "\advance" or \LaTeX's "\addtolength". + +Don't change the magnification of your document after using the "\target" +command, as you will override the settings made by 2up.tex. + +You can also specify some options: +\begin{MD} + \targetlayout{options} +\end{MD} +where is a comma separated list with no spaces. Valid +options are: +\begin{namelist}{topbottomxxx} + +\item [topbottom] The two source pages are printed one on top of the other. +\item [twosided] Odd pages are always printed on the right or the bottom. +\item [booklet] Pages are printed like a booklet. See Section \ref{booklet}. +\item [Booklet] Like "booklet", but for two-sided printers/copiers. +\item [dvidvi] For arranging in two-up layout with "dvidvi". See Section +\ref{dvidvi}. + +\end{namelist} + +The only other changes you might want to make to your document are the +following: +\begin{itemize} +\item You have to see to it that the target output is printed with the +correct orientation (landscape or portrait). See the documentation for your +dvi driver for details. + +\item "2up.tex" will inserts a line between pages if you change the following +dimensions: +\begin{namelist}{pagesepwidthxxx} +\item [$\setminus$pagesepwidth] Thickness of line. (Default 0pt) +\item [$\setminus$pageseplength] Length of line. (Default 6.5in) +\item [$\setminus$pagesepoffset] Distance from bottom of page to bottom of +line, or (with "topbottom" layout) from side of page to beginning of line. +(Default 1in) +\end{namelist} + +\item You can, but do not need to, use the following commands: +\begin{namelist}{twoupemptypagexxx} + +\item [$\setminus$twoupemptypage] inserts a completely blank half page +in the target. + +\item [$\setminus$twoupclearpage] \LaTeX\ users: ejects a complete target +page. + +\item [$\setminus$twoupeject] Plain \TeX users: ejects a complete target +page. + +\end{namelist} +\end{itemize} + +\section{Defaults} + + The following commands set the parameters for some common sources and +targets. The definitions of these commands are also useful examples. + + For A4 paper, just replace "8.5in" and "11in" in the definitions below by +the width and height of A4 paper. + +\begin{description} + +\item [$\setminus$twouparticle] + +This is the default for \LaTeX. +\begin{namelist}{Sourcexx} + +\item [Source:] A portrait document on 8.5x11 inch paper with wide margins as +used in \LaTeX's article style, and without marginal notes. + +\item [Target:] A landscape document on the same size paper, with the source +pages printed side by side. + +\item [Definition:]\hspace{1pt} +\begin{verbatim} +\target{\magstepminus1}{11in}{8.5in} +\source{\magstep0}{8.5in}{11in}} +\end{verbatim} +\end{namelist} + +If you use narrower side margins, or if you use marginal notes, then you +will need to use "\twoupplain" or \\ "\twouplegaltarget", defined below. + +\item [$\setminus$twoupplain] + +This is the default for non-\LaTeX. + +It is the same as "\twouparticle", but for source documents with narrower +margins. +\begin{namelist}{Sourcexxx} + +\item [Definition:]\hspace{1pt} +\begin{verbatim} +\target{\magstepminus2}{11in}{8.5in} +\source{\magstep0}{8.5in}{11in} +\end{verbatim} +\end{namelist} + +\item [$\setminus$twouplegaltarget] + +\begin{namelist}{Sourcexxx} +\item [Source:] A portrait document on 8.5x11 inch paper with just about any +margins and perhaps with marginal notes. + +\item [Target:] A landscape document on legal size paper (8.5x14 inches), +with the source pages printed side by side. + +\item [Definition:]\hspace{1pt} +\begin{verbatim} +\target{\magstepminus1}{14in}{8.5in} +\source{\magstep0}{8.5in}{11in} +\end{verbatim} +\end{namelist} + +\item [$\setminus$twouplandscape]\hspace{1pt} +\begin{namelist}{Sourcexxx} + +\item [Source:] A landscape document on 8.5x11 inch paper with just about any +margins. + +\item [Target:] A portrait document on the same size paper, with the +source pages stacked vertically. + +\item [Definition:]\hspace{1pt} +\begin{verbatim} +\target{\magstepminus2}{8.5in}{11in} +\source{\magstep0}{11in}{8.5in} +\targetlayout{topbottom} +\end{verbatim} +\end{namelist} + +\end{description} + + +\section{True Dimensions} + +\TeX\ lets you use `true' dimensions, as in +\begin{verbatim} + \topmargin 1truein + \setlength{\topmargin}{1truein} +\end{verbatim} +This sets the length to 1 inch +as it appears on the page, no matter what the magnification. + +Once you use `true' dimensions, it is impossible to change the +magnification of your document, and hence it is almost impossible +to use 2up.tex. You will get an error like: +\begin{verbatim} + ! Incompatible magnification (833); + the previous value will be retained (2000). +\end{verbatim}% + +The use of `true' dimensions might be hiding in macros or style files +you are using. For example, Plain \TeX's "\magnification" command uses +true dimensions; use "\mag" instead, and then set "\hsize" and +"\vsize" appropriately scaled. If you can't find the culprit `true' +dimension in your document or input files, try putting this on the +(very) first line of your document: +\begin{verbatim} + \mag 143 \voffset 1truein \mag 1000 +\end{verbatim} + +You will get the error listed above wherever true dimensions are used +(and in some other places as well). + + +\section{Page Cross-References} + + Page cross-references (e.g., in an index or table of contents) will not be +accurate with "2up.tex", because finished pages are not immediately shipped +out. This can also cause problems with some special \LaTeX\ styles that have +multiple ".aux" files (e.g., for each chapter). + + To get better, but not perfect, page cross-references, try putting the +command +\begin{verbatim} + \TwoupWrites +\end{verbatim} +at the beginning of your document, after inputting "2up.tex". This is good for +drafts, and may fix problems with \LaTeX\ styles that have multiple ".aux" +files. "\TwoupWrites" makes "\write" and "\read" "\immediate", if you know +what that means. It might cause problems of its own, but try it and see. + + To get accurate page cross-references: +\begin{enumerate} +\item Run the job without "2up.tex", until all cross-references +are properly resolved. Run any index utility at this point. + +\item Run the job ONE MORE TIME with "2up.tex"; it will use the +correct cross-references from the previous runs. (In \LaTeX\ documents, +it is useful at this point to include the "\nofiles" command, so that +the correct cross-references are preserved.) +\end{enumerate} + +\section{Booklets\label{booklet}} + +Here are some special considerations for making booklets: + +\begin{itemize} + +\item Use the "booklet" target layout if your printer or copier cannot print +two +sides directly. "2up.tex" prints out the ``tops'' of the pages, and then the +``bottoms'', so that you can copy or print on both sides by doing one side, +flipping the output over, and doing the other side. + +\item Use "Booklet" if your printer or copier can print directly on two sides. + +\item You must have enough memory and box registers to hold all the pages in +the document. A Big\TeX\ should be able to handle at least a 32-page booklet. + +\item Sometimes booklet printing is part of the design of a document, rather +than an afterthought. In this case, you should set up the margins for the +target half-page rather than using "2up.tex" to scale the document. For +example, if using \LaTeX, 8.5x11 inch paper, \LaTeX's twoside style option, +and headings, try the following page parameter changes: +\begin{verbatim} + \setlength{\oddsidemargin}{-0.2in} + \setlength{\evensidemargin}{-0.5in} + \setlength{\textwidth}{4.2in} + \setlength{\textheight}{6.5in} + \setlength{\topmargin}{-.4in} +\end{verbatim} +If you do this, "2up.tex" isn't adjusting margins or scaling the +document. You coould therefore get by without "2up.tex" by using "dvidvi". +\end{itemize} + +\section{Using dvidvi\label{dvidvi}} + + With the "dvidvi" layout option, "2up.tex" takes care of adjusting the +margins, and you then use "dvidvi" to arrange the pages in a two-up +format. The advantage is that cross referencing comes out right. +The disadvantage is that it involves one more step. + +Start by \TeX ing your document with "2up.tex" and the "dvidvi" layout option. +Then run the dvi file through "dvidvi". Specify the offsets for "dvidvi" at +the middle of the page. E.g., for +a side-by-side layout on 8.5x11in paper, use +\begin{verbatim} + dvidvi '2:0,1(5.5in,0in)' foo bar +\end{verbatim} +For other paper sizes, replace "5.5in" by half the target paper width. For the +"topbottom" layout, reverse the dimensions, e.g., +(0in,5.5in). For booklet printing, see the +the documentation for "dvidvi". + + +\section{Compatibility\label{compatibility}} + + These macros should work with most \TeX\ macro packages, except for +the following possible but unlikely compatibility problems: + +\begin{itemize} + +\item If you use a macro package other than \LaTeX\ that does unusual things +to end a document and/or that modifies the definition of "\end", you may +find that the last page is nor printed or that an extra page with headings +is inserted at the end of the document. This is fixable on a case-by-case +basis. See the redefinition of "\end" in "2up.tex". + +\item "2up.tex" might not work if you meddle with \TeX's "\shipout" primitive +after loading "2up.tex". + +\item If the first page of the source document is not on the first two-up +target +page (possible, for example, with two-sided printing and the "booklet" +option, but generally unlikely), "\special"'s that come at the beginning +of the document also do not get onto the first page of output. This can mess +up "\special"'s for landscape printing or +including a PostScript header file. In this case, you have to specify +these things as command line options when using your dvi driver. + +\end{itemize} + + +\section{Changes} +\begin{namelist}{V0.9xxx} +\raggedright + +\item [V0.9a] Everything redone. Too many differences to point out. + +\item [V0.9b] Interface redone again. "booklet" option added. + +\item [V0.9c] Pages ship out a little earlier. A few bugs fixed. + + Parameters "\pageseplength" and "\pagesepthickness" added. + +\item [V0.9d] Fixed bug with "\twoupclearpage" and "\twoupeject". + +\item [V0.9e] Made pages be counted (from dvi driver's viewpoint) by the +physical page number. + +\item [V0.9f] Parameter "\pagesepoffset" added, and "\pagesepthickness" +changed to "\pagesepwidth". + +\item [V1.0] None. Just seemed seemed like it was time to call it 1.0 + +\item [V1.1] Added "Booklet" and "dvidvi" target layouts. + + "\hoffset" and "\voffset" in source document now have expected effect. + +\item[V1.2] Fixed incompatibility problem with AmS-\TeX/AmS-\LaTeX. + + Added "\TwoupWrites" command. + +\end{namelist} +\end{document} +%% END 2up.doc diff --git a/Master/texmf-dist/doc/latex/seminar/fancybox.doc b/Master/texmf-dist/doc/latex/seminar/fancybox.doc new file mode 100644 index 00000000000..0bd8aced4ca --- /dev/null +++ b/Master/texmf-dist/doc/latex/seminar/fancybox.doc @@ -0,0 +1,1279 @@ +%% BEGIN fancybox.doc +%% +%% COPYRIGHT 1992, by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu. +%% For copying restrictions, see fancybox.sty. +%% +%% Documentation for fancybox.sty. +%% Run through LaTeX, with or without the NFSS. +%% +%% 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. +%% +%% +\def\FileVersion{1.3} +\def\FileDate{2000/09/19} +%% +%% This creates two temporary files: \jobname.ex1 and \jobname.tmp + +\documentclass[12pt]{article} + +\makeatletter + +%% INPUT FANCYBOX.STY HERE TO CHECK FILE VERSION. + +\usepackage{fancybox} + +\ifx\FileVersion\fileversion\else + \@latexerr{Fancybox style file and documentation do not have the same + version}\@ehd +\fi + +%% DATES, VERSIONS AND TITLES: + +\def\expanddate#1/#2/#3/{\year=#1 \month=#2 \day=#3} +\begingroup + \expandafter\expanddate\filedate/ + \xdef\thefiledate{\today} +\endgroup + +\title{Documentation for fancybox.sty:\\ + Box tips and tricks for \LaTeX} +\author{Timothy Van Zandt\\ Timothy.VAN-ZANDT@insead.edu} +\date{Version \fileversion\\ \thefiledate} + +\def\@maketitle{% + \begin{center} + {\Large\bf \@title \par} + \vskip 1.2em {\lineskip .5em + \begin{tabular}[t]{c}\@author\end{tabular}\par} + \vskip .8em {\@date}% + \end{center} + \par + \vskip .5em} + +%% PAGE STYLE: + +\pagestyle{myheadings} +\if@twoside + \markboth{Documentation for fancybox.sty}% + {Version \fileversion, \thefiledate}% +\else + \markright{fancybox.sty, Version \fileversion} +\fi + +%% PAGE PARAMETERS: + +% Paragraphs are marked by large space rather than indentation: +\parindent 0pt +\parskip 7pt plus 1pt minus 1pt + +\setlength{\topmargin}{0pt} +\setlength{\headheight}{12pt} % height of running head +\setlength{\headsep}{30pt} % distance between header and text +\setlength{\textheight}{8.2in} % height of text on page + +%% TABLE OF CONTENTS + +\newskip\myskip + +\def\tableofcontents{% + \par\vfill + \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{% + \myskip##1\relax + \oldaddvspace{.5\myskip}} + \@starttoc{toc}% + \end{quote} + \thispagestyle{empty} + \vfill + \clearpage} + + +%% VERBATIM HACKS: + +\VerbatimFootnotes + +% Short meta (works in verbatim. Can't use < for other purposes. +\catcode`\<=13 \def<#1>{{\rm\it #1\/}} % (works in verbatim) + +% Short verbatim. " can appear in verbatim environments. +\def\temp{\Verb"} +\expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\"} +\catcode`\"=13 +\let"\temp + +% Verbatim item: +\newcommand{\vitem}{\SaveVerb[{\def\bf{}\item[\UseVerb{\MyTemp}]}]{\MyTemp}} + +%% EXAMPLES: + +\setlength{\fboxsep}{6pt} + +\begin{VerbatimOut}{\jobname.ex1} +% 1. Save example verbatim to \jobname.tmp, +% 2. Input verbatim with \catcode`\"=14 (" is a comment). +% 3. Input again with \catcode\`"=9 (" is ignored). + +\renewcommand{\EveryVerbatimLine}[2]{} + +\renewcommand{\EveryVerbOutLine}[2]{} + +\newcommand{\BeginExample}{% + \VerbatimEnvironment\begin{VerbatimOut}{\jobname.tmp}} + +\newcommand{\EndExample}{% + \end{VerbatimOut}%. + \renewcommand{\EveryVerbatimLine}{}% + \renewcommand{\EveryVerbatimCodes}{\catcode`\"=14}% + \LVerbatimInput{\jobname.tmp}% + \catcode`\"=9} + +\newenvironment{example}{\BeginExample}{\EndExample + \begin{center}\input{\jobname.tmp}\end{center}} + +\newenvironment{example*}{\BeginExample}% + {\EndExample \input{\jobname.tmp}} + +\newenvironment{example**}{\BeginExample}% + {\EndExample \globaldefs=1 \input{\jobname.tmp}} + +\end{VerbatimOut} + +\input{\jobname.ex1} + +%% END PREAMBLE: +\makeatother + +\begin{document} +\setcounter{page}{0} +\maketitle +\begin{quote} +"fancybox.sty", together with its documentation, gives extensive answers to +and solutions for many questions about how to frame or rotate this or that in +\LaTeX. It also contains commands for shadow, double and oval frames. +\end{quote} + +\tableofcontents + +\section{Fancy frames} + +"fancybox.sty" has five variants of \LaTeX's "\fbox" command: +\begin{quote}\raggedright +"\shadowbox", "\doublebox", "\ovalbox" (with "\thinlines") and "\Ovalbox" +(with "\thicklines"). +\end{quote} +Here are examples:\footnote{In this documentation, the default value of +"\fboxsep" has been changed from 3pt to 6pt.} +\begin{example} + \shadowbox{\large\bf New Glarus Birdwatch} +\end{example} +\begin{example} + \doublebox{\large\bf New Glarus Birdwatch} +\end{example} +\begin{example} + \ovalbox{\large\bf New Glarus Birdwatch} +\end{example} +\begin{example} + \Ovalbox{\large\bf New Glarus Birdwatch} +\end{example} + +The distance between the box and the frame is "\fboxsep", as with \LaTeX's +"\fbox" command. The commands use other parameters as well: +\begin{description} +\vitem"\shadowbox" The width of the frame is "\fboxrule" (the same as with +"\fbox"). The width of the shadow is "\shadowsize" (default: "4pt"). + +\vitem"\doublebox" The width of the inner frame is .75"\fboxrule", and the +width of the outer frame is 1.5"\fboxrule". The distance between the two +frames is 1.5"\fboxrule" plus .5pt. + +\vitem"\ovalbox" The width of the frame is set by the "\thinlines" +declaration. The diameter of the corner arcs is set with the "\cornersize" +command. +\begin{LVerbatim} + \cornersize{} +\end{LVerbatim} +sets the diameter of the corners arcs to times the lessor of the width +and height of the box. +\begin{LVerbatim} + \cornersize*{} +\end{LVerbatim} +sets the diameter of the corner arcs to . This is all approximate, +because \LaTeX\ has a limited range of arc sizes to choose from. The default +is +\begin{LVerbatim} + \cornersize{.5} +\end{LVerbatim} + +\vitem"\Ovalbox" This is like "\ovalbox", except that the width of the lines +is set by the "\thicklines" declaration. +\end{description} + +There are no analogs to \LaTeX's "\framebox" command, which has various +optional arguments not supported by "\fbox". You can get the exact same +functionality by putting the argument of the above framing commands in a +"\makebox". + +There is also a variant "\fancyoval" of \LaTeX's "\oval" picture object. The +difference is that "\oval" always makes the diameter of the corner arcs as +large as possible, and "\fancyoval" uses the "\cornersize" command to set the +diameter. + +\section{A short course on boxes} + +\begingroup\sloppy +The "\shadowbox", "\doublebox", "\ovalbox" and "\Ovalbox" commands described +in the previous section are examples of LR-box commands, meaning that their +argument is processed in LR mode. \LaTeX\ LR-box commands include "\mbox", +"\makebox", "\fbox", "\framebox", "\sbox" and "\savebox". All the PSTricks +commands whose argument is text are LR-box commands, including, e.g, the +framing, rotating, scaling and positioning commands, and some of the node +commands. Any rotation command is an LR-box command. + +\endgroup + +The purpose of the rest of this documentation is to provide answers to, and +solutions for, frequently asked questions about using LR-box commands with +\LaTeX. I will use "\fbox" for the leading example of a box framing +command,\footnote{In the examples using "\fbox", be aware that the default +value of "\fboxsep" has been changed in this documentation from 3pt to 6pt.} +and "\rotateleft" for the leading example of a box rotation command. +("fancybox.sty" does not contain a "\rotateleft" command, as this must be +implemented via "\special"'s, but there are numerous box-rotation style files +around.) However, most of what is said here applies to any LR-box command. + +In each LR-box command, the text is processed in restricted horizontal mode, +which is referred to as ``LR-mode'' in Lamport's {\em \LaTeX: User's Guide and +Reference Manual}. In restricted horizontal mode, the input, consisting of +regular characters and boxes, is made into one (long or short) line. There is +no line-breaking, nor can there be vertical mode material such as an entire +displayed equation. However, the fact that you can include another box means +that this isn't really a restriction. + +For one thing, alignment environments such as \LaTeX's "tabular" are just +boxes, and thus present no problem. Picture environments and the LR-box +commands themselves are also just boxes. Entire paragraphs or other vertical +mode material such as displayed equations can be nested in a "\parbox" or +"minipage". + +\section{Defining LR-box environments} + +To frame a "minipage", you have to write +\begin{LVerbatim} + \fbox{% + \begin{minipage}{3in} + blah + \end{minipage}} +\end{LVerbatim} +You might want to define an environment "fminipage" that frames its contents, +but you can't use +\begin{LVerbatim} + \newenvironment{fminipage}% + {\fbox{\begin{minipage}}% + {\end{minipage}}} +\end{LVerbatim} +because the braces are not balanced in the definition. + +"fancybox.sty" contains an "Sbox" environment that makes it easy to define +your own LR-box environments. It is a variant of \LaTeX's "\sbox" command that +saves the contents of the environment in a storage bin that can be retrieved +with the command "\TheSbox".\footnote{The difference between +\begin{LVerbatim} + \begin{Sbox} + blah + \end{Sbox} + \TheSbox +\end{LVerbatim} +and +\begin{LVerbatim} + \newsavebox{\mybox} + \sbox{\mybox}{blah} + \usebox{\mybox} +\end{LVerbatim} +is that "Sbox" saves the contents globally, and "\TheSbox" erases the contents +globally.} +For example, here is a framed minipage: +\begin{LVerbatim} + \begin{Sbox} + \begin{minipage}{3in} + blah + \end{minipage} + \end{Sbox} + \fbox{\TheSbox} +\end{LVerbatim} +and here is an "fminipage" environment that works: +\begin{example**} + \newenvironment{fminipage}% + {\begin{Sbox}\begin{minipage}}% + {\end{minipage}\end{Sbox}\fbox{\TheSbox}} +\end{example**} +Let's see that it really works: +\begin{example} + \begin{fminipage}{2in} + Since the former doesn't use braces to delimit + the contents of the box, $\ldots$ + \end{fminipage} +\end{example} + + +\section{Math} + +In-line math, or pieces of a displayed equation (as opposed to a whole +equation), are horizontal mode material, but most LR-box commands switch out +of math mode when they occur in math mode. Thus, you have to explicitly switch +back in to math mode when desired.\footnote{This is {\em not} true for the +PSTricks LR-box commands.} +For example: +\begin{example} + $x + y = \fbox{$\Omega$}$ +\end{example} + +You also have to explicitly write +\begin{quote} + "\scriptstyle", "\scriptscriptstyle" or "\displaystyle" +\end{quote} +if you want one of these special math styles. For example, here I will frame +an equation, but not the equation number: +\begin{example*} + \begin{equation} + \fbox{$\displaystyle + \int_{\Omega_0} \zeta(\omega) d\omega + \geq \bar{r}$} + \end{equation} +\end{example*} + +Entire displayed equations or "eqnarray" environments work differently because +they are vertical mode material. Thus, they have to go inside a "\parbox" or +"minipage". E.g., +\begin{example*} + \newlength{\mylength} + \[ + \setlength{\fboxsep}{15pt} + \setlength{\mylength}{\linewidth} + \addtolength{\mylength}{-2\fboxsep} + \addtolength{\mylength}{-2\fboxrule} + \fbox{% + \parbox{\mylength}{ + \setlength{\abovedisplayskip}{0pt} + \setlength{\belowdisplayskip}{0pt} + \begin{equation} + x + y = z + \end{equation}}} + \] +\end{example*} +The outer "\[" "\]" are just used to display the boxed equation, rather than +actually switch into math mode. Note how I set the width of the "\parbox" so +that the displayed box would exactly have width "\linewidth".\footnote{That is +what "\mylength" is for. It is better to define a single scratch length that +you reuse rather than creating a new one each time.} + + I also set the display skips to "0pt" and increased the size of "\fboxsep" so +that I would have the same distance all around between the equation and the +frame. + +This is again a mouthful, and so I might instead define:\footnote{The reason +for using "\minipage" instead of "\begin{minipage}", and so on, is that with +AmS-\LaTeX, "\begin" and "\end" cannot appear in the definition of a new +equation environment.} +\begin{example**} + \newenvironment{FramedEqn}% + {\setlength{\fboxsep}{15pt} + \setlength{\mylength}{\linewidth}% + \addtolength{\mylength}{-2\fboxsep}% + \addtolength{\mylength}{-2\fboxrule}% + \Sbox + \minipage{\mylength}% + \setlength{\abovedisplayskip}{0pt}% + \setlength{\belowdisplayskip}{0pt}% + \equation}% + {\endequation\endminipage\endSbox + \[\fbox{\TheSbox}\]} +\end{example**} +"fancybox.sty" doesn't bother defining any such environments, because there +are too many possible designs. But let's see if the one above works: +\begin{example*} + \begin{FramedEqn} + \Rightarrow P\sim\xi(P_\gamma)- \frac{1}{3} + \end{FramedEqn} +\end{example*} + +"fancybox.sty" contains a "Beqnarray" environment, which is like the +"eqnarray" environment but it is not vertical mode material. Instead, it +produces a box just large enough to hold all the equations. For example: +\begin{example} + \fbox{% + \begin{Beqnarray*} + x & = & y\\ + y & > & x \\ + \int_4^5 f(x)dx & = & \sum_{i\in F} x_i + \end{Beqnarray*}} +\end{example} +The unstarred version produces standard equation numbers on the right (even +with the "leqno" style option and AmS-\LaTeX). It might not work with special +equation numbering macros. + + +\section{Floats}\label{floats} + +A common mistake is to put a whole "table", "figure" or other float +environment inside an LR-box command. Instead, you should put everything that +is {\em inside} the environment (including the "\caption", if you want that +boxed too) inside a "minipage" of the desired width, and then put the +"minipage" inside the LR-box command. + +For example: +\begin{example*} + \begin{table}[h] + \begin{center} + \fbox{% + \begin{minipage}{.8\textwidth} + \begin{center} + \begin{tabular}{rl} + foo & bar + \end{tabular} + \end{center} + \caption{A table of foo and bar.} + \end{minipage}} + \end{center} + \end{table} +\end{example*} +Note how I had to use "center" twice: once to center the framed box, and again +to center the stuff inside the box. + +That is a mouthful, and so I might define a "FramedTable" environment like the +following, which sets the size of the "minipage" so that the framed box is +exactly the width of the page (no need for the first "center" environment this +time): +\begin{example**} + \newenvironment{FramedTable}% + {\begin{table}[h] + \begin{Sbox}% + \setlength{\mylength}{\textwidth}% + \addtolength{\mylength}{-2\fboxsep}% + \addtolength{\mylength}{-2\fboxrule}% + \begin{minipage}{\mylength}}% + {\end{minipage}\end{Sbox}\fbox{\TheSbox}\end{table}}% +\end{example**} +Now let's see if it works: +\begin{example*} + \begin{FramedTable} + \begin{center} + \begin{tabular}{rl} + foo & bar + \end{tabular} + \end{center} + \caption{A table of foo and bar.} + \end{FramedTable} +\end{example*} + +The most common reason to want to rotate an entire float, caption and all, is +to put it on a page by itself in landscape mode, centered both horizontally +and vertically. Compared to the table framing we did above, we just have to +replace "\fbox" by our box rotation command (e.g., "\rotateleft" or whatever), +set the width of the minipage to "\textheight" (if you want to use the full +size of the page), and use the float position specifier "[p]". "fancybox.sty" +contains an environment, +\begin{LVerbatim} + \begin{landfloat}{}{} + ... + \end{landfloat} +\end{LVerbatim} +that automates this. It has two arguments: the name of the floating +environment, and your rotation command. For example, if "\rotateleft{foo}" +rotates "foo" by 90 degrees, and you want a landscape mode "table", then try +\begin{LVerbatim} + \begin{landfloat}{table}{\rotateleft} + ... + \end{landfloat} +\end{LVerbatim} +If the whole document is in landscape mode, then "landfloat" gives you a +portrait-mode float---good for a table that is too tall to fit in landscape +mode. + +If you don't add a caption to a float, it doesn't matter much what floating +environment you use (e.g., "table", "figure" or whatever). Thus, you can put +anything in a landscape float. For example, suppose I have a very wide +equation. Then I can write: +\begin{LVerbatim} + \begin{landfloat}{table}{\rotateleft} + \begin{equation} + ... + \end{equation} + \end{landfloat} +\end{LVerbatim} +"fancybox.sty" defines a generic caption, "\GenericCaption", that doesn't +affect the numbering of floats, doesn't make an entry in a list of floats, and +doesn't add anything to the argument you give. I could have used this if I +wanted to add a caption to the previous example. + +\section{Center, flushleft and flushright} + +There are two ways to box a "center", "flushleft" or "flushright" environment. +If you have long lines and you want \TeX\ to do the line breaking, then put +the environment inside a "minipage".\footnote{List and other such environments +work best inside a "minipage" environment rather than a "\parbox".} If you +have short lines and you want the frame to adjust itself to the size of the +longest line, then use "fancybox.sty"'s +\begin{quote} + "Bcenter", "Bflushleft" or "Bflushright" +\end{quote} +environment instead. + +These are basically just "tabular" environments with a single column, and so +each line should end with "\\", or "\\[""]" to insert extra space, and +the text on each line must be balanced. Also, each line is sitting in its own +group, and so, e.g., if you want to change the font for the whole environment, +you should do this before the environment rather than after. +Like the "tabular" environment, the box that is produced has the baseline at +the center, unless you include an optional argument "[t]" to align the box +with the top line or "[b]" to align the box with the bottom line. + +For example: +\begin{example} + \setlength{\fboxsep}{10pt}% + \fbox{% + \begin{Bcenter} + Love of life\\ + and other short stories\\ + by Policarpa Salabarrieta + \end{Bcenter}} +\end{example} +Compare this with: +\begin{example} + \setlength{\fboxsep}{10pt}% + \fbox{% + \begin{minipage}{6cm} + \begin{center} + Love of life and other short stories + by Policarpa Salabarrieta + \end{center} + \end{minipage}} +\end{example} + +In either case, if we want the resulting framed box centered, we have to +include it inside another "center" environment. + +Here is another example: +\begin{example} + My list: \fbox{% + \begin{Bflushleft}[b] + Galanga root\\ + Coconut\\ + Tempeh + \end{Bflushleft}} +\end{example} + + +\section{Lists} + +There are again two ways to box a list environment such as +\begin{quote} + "itemize", "enumerate" or "description". +\end{quote} +You can put it in a "minipage" of pre-determined size and let \TeX\ do the +line breaking, or you can use +\begin{quote} + "Bitemize", "Benumerate" or "Bdescription" +\end{quote} +instead, and let the box adjust to the size of the longest line. + +For example. +\begin{example} + \fbox{% + \begin{Bitemize} + \item Groceries + \item Clean hamster cages + \item Pick up Peter + \end{Bitemize}} +\end{example} + + Most of the usual list parameters are irrelevant except for "\itemsep" and +"\labelsep". These environments are also based on the "tabular" environment, +and so each item should be balanced text. You can't write "\vspace{4pt}" +either, but you can insert an extra amount of space before an item by writing +"\item(4pt)" (or "\item(4pt)[label]" if you have a label). Also, you can break +lines within an item using "\\" or "\\[]". For example: +\begin{example} + \fbox{% + \begin{Bdescription} + \item[David] Groceries + \item[Eli] Hamster cages\\ + Surreal numbers + \item(3pt)[Doris] Pick up Peter + \end{Bdescription}} +\end{example} + +These environments also have an optional argument, "[t]" to align the box with +the top line, and "[b]" to align the box with the bottom line. +\begin{example} + To do: + \fbox{\setlength{\itemsep}{0pt}% + \begin{Benumerate}[t] + \item Groceries + \item Hamster cages + \item Pick up Peter + \end{Benumerate}} +\end{example} + +There is also a generic "\Blist" command that is analogous to \LaTeX's +"\list". It has the same two obligatory arguments, plus a third optional +"[t]" or "[b]" argument for changing the alignment. + +\section{Superimposing boxes} + +The command +\begin{LVerbatim} + \boxput*(,){}{} +\end{LVerbatim} +puts either behind (the default) or in front of (with the "*") .\footnote{You will only notice the difference between "\boxput" and +"\boxput*" if you are using color implemented by "\special"'s} The resulting +box has the dimensions of . + +The coordinates "(,)" determine where the center of is +positioned. For example, "(0,0)" puts it at the center of , "(0,1)" +puts it at the center-top, and "(-1,-1)" puts it in the bottom-left corner. + +More generally, the origin of the coordinate system is at the center of , one unit in the vertical direction is half the vertical size of , and one unit in the horizontal direction is half the width of . Thus, and should always be numbers (without units such as +"pt" or "cm"), with one exception: If is "b" or "B", is +positioned vertically at the baseline of . "(,)" is +optional---the default is "(0,0)". + +Except for the funny coordinate system, "\boxput" is like the "\put" command +in a "picture". In particular, you can use "\makebox" in to +fine-tune the positioning, and can contain a "picture" +environment. + +You might use "\boxput" to put a ``water mark'' in the background of a box, or +to put a label next to a box, when you don't want this label to take up any +space. Here is a lazy example: +\begin{example} + \boxput{\makebox(0,0){\Huge Censored!}}{\parbox{3in}{% + The origin of the coordinate system is at the center of + {\em LR stuff2}, and one unit in the x-direction + is half the width of {\em LR stuff2}.}} +\end{example} + +This would be a lot more interesting using PSTricks, with ``Censored!'' in the +foreground, rotated 30 degrees, and red: +\begin{LVerbatim} + \boxput*{\rput{30}{\Huge\red Censored}}{\parbox{3in}{% + blah blah}} +\end{LVerbatim} + +Here is another example using PSTricks: +\begin{LVerbatim} + \newcommand{\titledframe}[2]{% + \boxput*(0,1){\psframebox*{#1}}% + {\psframebox[framesep=12pt]{#2}}} +\end{LVerbatim} +\newcommand{\titledframe}[2]{% + \boxput*(0,1){#1}% + {\fboxsep=12pt \fbox{#2}}} +The following example illustrated roughly how it works, but ``My title'' does +not blot out the frame behind it because this documentation does not use +PSTricks. \begin{example} + \titledframe{My title}{% + \parbox{2in}{The title is superimposed + on the top part of the frame.}} +\end{example} + +\section{Framing a whole page} + +The commands +\begin{LVerbatim} + \fancyput*(,){} + \thisfancyput*(,){} +\end{LVerbatim} +are pretty much like "\put" commands in a \LaTeX\ picture environment whose +origin is 1 inch down and to the right from the top left corner of the +page.\footnote{Don't blame me for \TeX's peculiar 1 inch margins.} The only +differences are that (i) that any LR-mode material is permitted (including +\LaTeX\ "picture" environment, of course), (ii) the coordinate is optional +"(0pt,0pt)" is substituted by default), and (iii) if the coordinate is +included, you {\em must} specify the units. + +"\thisfancyput" affects only the current page, and is a global declaration +(analogous to "\thispagestyle"). + +If you include the optional "*", then the command adds to, rather than +replaces, other things that have been inserted with "\fancyput" or +"\thisfancyput". + +These commands are particularly useful for framing a page, because you can get +a frame that is, e.g., 1 inch from each side of the physical page without +having to worry about what margins you are using for the document. Here is an +example: +\begin{example*} + \thisfancyput(3.25in,-4.5in){% + \setlength{\unitlength}{1in}\fancyoval(7,9.5)} +\end{example*} +You could also use "\fancyput" to add some kind of ``watermark'' or background +image (e.g., a light gray ``DRAFT''). + +There are other commands that directly frame or in some other way box the page +of text: +\begin{LVerbatim} + \fancypage{}{} + \thisfancypage{}{} +\end{LVerbatim} + +Each finished page, before adding the headers and footers, (and thus having +width and height "\textwidth" and "\textheight", is boxed with +\begin{LVerbatim} + {} +\end{LVerbatim} +Thus, should be, or should end with, a command whose argument can be a +box, such as "\fbox" or "\rotateleft". + +Then the headers and footers are added, using the new width of the page, and +this is boxed with +\begin{LVerbatim} + {} +\end{LVerbatim} +The same rules apply to as to . + +Here is an example: +\begin{example*} + \thisfancypage{% + \setlength{\fboxsep}{8pt}% + \setlength{\shadowsize}{8pt}% + \shadowbox}{} +\end{example*} + +{\bf Warning:} The commands described in this section change \LaTeX's output +routine, and may not work with document styles that do the same. Also, bad +arguments can cause serious errors with uninformative error messages. + +\section{Switching to landscape mode midstream} + +The most common reason to switch to landscape mode midstream is to rotate a +float, such as a table or figure. This was discussed in Section \ref{floats}. + +If you want to rotate one or more pages, without rotating the headers and +footers, use the +\begin{LVerbatim} + \begin{LandScape}{} + ... + \end{LandScape} +\end{LVerbatim} +environment. should be the command for rotating the page 90 degrees to +the left or right. (E.g., "\rotateleft", or "\rotate[l]".) + +If you want to rotate the headers, footers and margins as well, use the +\begin{LVerbatim} + \begin{Landscape}{}{}{} + ... + \end{Landscape} +\end{LVerbatim} +environment (the small "s" makes the difference) to rotate the pages left +(counterclockwise), and use the "Landscape*" environment (same arguments) to +rotate the pages right (clockwise). The three arguments are the width of the +paper, the height of the paper, and the rotation command you are using. For +example, if I have a portrait mode document using the US 8.5in by 11in paper, +and if "\rotateleft{foo}" rotates "foo" 90 degrees counterclockwise, then I +can write +\begin{LVerbatim} + \begin{Landscape}{8.5in}{11in}{\rotateleft} +\end{LVerbatim} + +You can use "\LandScape", "\Landscape" and "\Landscape*", rather then the +"LandScape", "Landscape" and "Landscape*" environments, if you want the rest +of the document to be in landscape mode. + +If your document is being printed in landscape mode, then these environments +switch to portrait mode. + +For example, suppose I have a landscape mode document, and I want to switch to +portrait mode for the rest of the document, rotating the pages to the +``right'' with "\rotateright". Then I would write +\begin{LVerbatim} + \Landscape*{11in}{8.5in}{\rotateright} +\end{LVerbatim} + +These environments switch the text width and height, leaving the margins +exactly as they were before. It is quite possible that you want to make other +changes to the page parameters after switching to landscape mode, but as +Lamport points out the \LaTeX\ {\em User's Guide and Reference Manual}, this +generally doesn't work right in the middle of the document. "fancybox.sty" has +a command "\UsePageParameters" which gets around this. It should be used right +after you change the page parameters (and the page parameter changes should +come right after the beginning of the landscape environment, or "\clearpage"). + +{\bf Warning:} The commands and environments described in this section change +\LaTeX's output routine, and may not work with document styles that do the +same. Also, bad arguments can cause serious errors with uninformative error +messages. + +\section{Verbatim} + +If you try to frame some verbatim text by typing +\begin{LVerbatim} + \fbox{% + \begin{minipage}{5cm} + \begin{verbatim} + \My \Program \Listing + if { foo } { bar } fi + \end{verbatim} + \end{minipage}} +\end{LVerbatim} +you will get nonsense at best. This is because the argument to "\fbox" is read +before the "\begin{verbatim}" is processed. But then it is too late for \TeX\ +to go back and interpret the contents of the verbatim environment literally +rather than as special \TeX\ commands and characters. + +One solution is to use the "Sbox" environment: +\begin{example} + \begin{Sbox} + \begin{minipage}{5cm} + \begin{verbatim} + \My \Program \Listing + if { foo } { bar } fi + \end{verbatim} + \end{minipage} + \end{Sbox} + \setlength{\fboxsep}{8pt} + \fbox{\TheSbox} +\end{example} + +"fancybox.sty" also contains a command that ``fixes'' \LaTeX's LR-box commands +for use with verbatim text: +\begin{LVerbatim} + \VerbBox{}{} +\end{LVerbatim} +This is like +\begin{LVerbatim} + {} +\end{LVerbatim} +but can contain verbatim text.\footnote{Or other tricks that +involve "\catcode" changes, as occurs with some foreign language macros.} For +example: +\begin{example} + \VerbBox{\fbox}{\verb+\foo{bar}+} +\end{example} + +For footnotes, put the command "\VerbatimFootnotes" in the preamble, and then +you can use verbatim commands or environments in the argument of "\footnote". +This is an optional feature because it might conflict with somebody else's +modification of the footnote system. + +If you try to define your own framed verbatim environment with +\begin{LVerbatim} + \newenvironment{FramedVerb}% + {\begin{Sbox}\begin{minipage}{5in}\begin{verbatim}} + {\end{verbatim}\end{minipage}\end{Sbox} + \setlength{\fboxsep}{8pt}\fbox{\TheSbox}} +\end{LVerbatim} +and then type +\begin{LVerbatim} + \begin{FramedVerb} + if { foo } { bar } fi + \end{FramedVerb} +\end{LVerbatim} +you will again run into trouble because after the "\begin{verbatim}", \LaTeX\ +is searching for the literal string "\end{verbatim}" as the end of the +verbatim text. It just skips right over the "\end{FramedVerb}" and may well +continue to the end of the file or until it throws up. + +"fancybox.sty" contains some verbatim environments that get around this +problem and that have other advantages for LR-boxing verbatim listings, when +compared to the standard \LaTeX\ "verbatim" environment. Admittedly, many of +their special features have nothing to do with boxes. + +Here are the basic verbatim environments: +\begin{description} + \vitem"Verbatim" Works pretty much like \LaTeX's "verbatim". + \vitem"LVerbatim" Like "Verbatim", but "list" rather than "trivlist" is used +to display the listing, and so it is indented from the left margin. (This is +what I am using for verbatim listings in this document.) + \vitem"BVerbatim[]" Produces a box with the same width as the longest +verbatim line. The baseline is in the center, unless you include the optional +argument "[t]" for alignment with the top line or "[b]" for alignment with the +bottom line. + \vitem"VerbatimOut{}" Writes the verbatim text to . + \vitem"SaveVerbatim{}" Saves the verbatim text as . is +defined globally, without checking whether is already defined. Use +obviously innocuous names like "\MyTemp". +\end{description} + +{\bf Important:} For any of these verbatim environments, or new verbatim +environments you define yourself (see below), nothing should come after +"\begin{Verbatim}" or before "\end{Verbatim}" on the same line --- not even +spaces!% + \footnote{If you need to allow something to come before "\end{Verbatim}", +then you have two options: + \begin{itemize} + \item Put the command "\AltGetVerbatim" in the preamble. This switches to a +scheme where anything preceding "\end{Verbatim}" is simply ignored. This can +cause problems if you do really weird things with active characters or other +commands within the verbatim environment (e.g., active conditionals that are +not balanced within a line of verbatim text), but in this case you are +probably a good enough hacker to use the next option. + \item "\EndVerbatimTokens" is a token register that you can set to the +tokens that should precede "\end{Verbatim}" on the same line, with their +verbatim "\catcode"'s. + \end{itemize}} +If you put something after "\begin{Verbatim}" on the same line, it is simply +ignored. However, if you put something after "\end{Verbatim}" on the same +line, or if you misspell "\end{Verbatim}", you will get an error such as +\begin{LVerbatim} + ! File ended while scanning use of \Verbatim. +\end{LVerbatim} +and the document will end at that point. + +You can define new verbatim environments using "\newenvironment". You just +have to start the definition with +\begin{LVerbatim} + \VerbatimEnvironment +\end{LVerbatim} + For example, here is the framed verbatim environment we tried earlier: +\begin{example**} + \newenvironment{FramedVerb}% + {\VerbatimEnvironment + \begin{Sbox}\begin{minipage}{5cm}\begin{Verbatim}}% + {\end{Verbatim}\end{minipage}\end{Sbox} + \setlength{\fboxsep}{8pt}\fbox{\TheSbox}} +\end{example**} +Let's give it a try: +\begin{example} + \begin{FramedVerb} + if { foo } { bar } fi + \end{FramedVerb} +\end{example} + +Here are three commands for inputting a whole file verbatim. The file must end +with a new line. +\begin{description} + \vitem"\VerbatimInput{}" Like "\Verbatim". + \vitem"\LVerbatimInput{}" Like "\LVerbatim". + \vitem"\BVerbatimInput[]{}" Like "\BVerbatim". +\end{description} + +Here are three commands for making use of verbatim text that has been saved to +a command: +\begin{description} + \vitem"\UseVerbatim{}" Like "\Verbatim". + \vitem"\LUseVerbatim{}" Like "\LVerbatim". + \vitem"\BUseVerbatim[]{}" Like "\BVerbatim". +\end{description} +The "SaveVerbatim" environment and the "\UseVerbatim" commands are useful for +including verbatim text in the argument of "\marginpar", "\fbox" and other +commands. For example, here is another way to define the "FramedVerb" +environment: +\begin{LVerbatim} + \newenvironment{FramedVerb}% + {\VerbatimEnvironment + \begin{SaveVerbatim}{\MyTemp}}% + {\end{SaveVerbatim}% + \setlength{\fboxsep}{8pt}% + \fbox{\begin{minipage}{5cm}\UseVerbatim{\MyTemp} + \end{minipage}}} +\end{LVerbatim} + +Here are some verbatim commands for short-pieces of (in-line) verbatim text: +\begin{description} + \vitem"\Verb " \ \\ + Like \LaTeX's "\verb" command, but it will complain if it encounters a new +line in .\footnote{Be careful that your word processing does not +insert one for you.} For example: +\begin{example*} + "\begin{quote} + The main use for the \Verb+SaveVerbatim+ + environment and the \Verb+\UseVerbatim+ + commands is to include $\ldots$ + "\end{quote} +\end{example*} + \vitem"\UseVerb{}" Like "\UseVerbatim", but without any particular +formatting. It is intended for including short pieces of literal text saved +with "\SaveVerb" (below).\footnote{But it can also be used for multiple lines +saved with the "SaveVerbatim" environment if you want to do the formatting +yourself. E.g., try this in a tabbing environment with "\VerbatimTab" +appropriately defined.} + \vitem"\SaveVerb[]{} "\ \\ + This is like "\Verb", but it saves as , and then returns to +the optional argument . Like the "SaveVerbatim" environment, it +defines globally without checking whether is already defined. +Without the optional argument, the most common use is for including verbatim +text in a "\marginpar", "\section" or other command argument. + + The optional argument can be used for special tricks. For example, all the +listings of commands in this documentation use "\vitem" in a "description" +environment, where "\vitem" is defined by:\footnote{The braces enclosing the +optional argument of "\SaveVerb" prevent the "]" inside the argument from +being mistaken for the end of the argument.} +\begin{LVerbatim} + \newcommand{\vitem}% + {\SaveVerb[{\item[\UseVerb{\MyTemp}]}]{\MyTemp}} +\end{LVerbatim} +Whereas +\begin{LVerbatim} + \item[\Verb"\foo"] +\end{LVerbatim} +would not work because after "\item" reads its argument it is too late to +interpret "\foo" literally, +\begin{LVerbatim} + \vitem"foo" +\end{LVerbatim} +does work because it is equivalent to +\begin{LVerbatim} + \SaveVerb{\MyTemp}"foo"\item[\UseVerb{\MyTemp}] +\end{LVerbatim} +\end{description} + + +These environments and commands use various parameters that make it easy to +customize their behavior. However, until you want to find the need for such +customization, you might as well ignore the rest of this section. + +Internally, "fancybox.sty" separates the reading and formatting of verbatim +text. Most of the environments and commands perform both functions, but +"SaveVerbatim" and "\SaveVerb" only read the text, while "UseVerbatim" (and +company) and "\UseVerb" only format the text. "VerbatimOut" gets special +treatment. The parameters that apply to each class of verbatim environment or +command is listed in Table \ref{verbtable}. + +\begin{table} +\begin{center} +\renewcommand{\arraystretch}{0} +\setlength{\tabcolsep}{7pt} +\newcommand{\vs}{& \\[\tabcolsep]} +\newcommand{\VS}{\\ \vs \hline \vs} +\begin{tabular}{|l|l|} +\hline \vs +{\em Where} & {\em What} +\\ \vs \hline +\hline \vs + \begin{Bflushleft} + Environments\\ + that format + \end{Bflushleft} +& + \begin{Bflushleft} + "\VerbatimSpace"\\ + "\VerbatimTab"\\ + "\VerbatimFont"\\ + "\VerbatimFuzz"\\ + "\EveryVerbatimLine"\\ + "\EveryVerbatim"\\ + "\ThisVerb" + \end{Bflushleft} +\VS + \begin{Bflushleft} + Environments\\ + that read + \end{Bflushleft} +& + \begin{Bflushleft} + "\EveryVerbatimCodes"\\ + "\ThisVerbCodes" + \end{Bflushleft} +\VS + \begin{Bflushleft} + "\Verb" and\\ + "\UseVerb" + \end{Bflushleft} +& + \begin{Bflushleft} + "\VerbSpace"\\ + "\VerbTab"\\ + "\VerbFont"\\ + "\EveryVerb"\\ + "\ThisVerb" + \end{Bflushleft} +\VS + \begin{Bflushleft} + "\Verb" and\\ + "\SaveVerb" + \end{Bflushleft} +& + \begin{Bflushleft} + "\EveryVerbCodes"\\ + "\ThisVerbCodes" + \end{Bflushleft} +\VS + \begin{Bflushleft} + "VerbatimOut" + \end{Bflushleft} +& + \begin{Bflushleft} + "\EveryVerbOutCodes"\\ + "\ThisVerbCodes"\\ + "\EveryVerbOutLine"\\ + "\ThisVerb" + \end{Bflushleft} +\\ \vs \hline +\end{tabular} +\caption{Parameters for the verbatim environments and +commands.\label{verbtable}} +\end{center} +\end{table} + +All the parameters, including "\VerbatimFuzz", are ordinary commands, and +should be changed with "\renewcommand". + +Here is a description of each of the parameters for environments that format +the verbatim text: +\begin{description} + \vitem"\VerbatimSpace" The insertion text for spaces. The default is "\ ", +which produces a blank space. Change it to "\ttspace" to get \ttspace. + \vitem"\VerbatimTab" The insertion text for tabs. The default is +\begin{LVerbatim} + \ \ \ \ \ \ \ \ +\end{LVerbatim} + \vitem"\VerbatimFont" The font to use for verbatim text. The default is +"\tt" + \vitem"\VerbatimFuzz" This is the amount by which lines can be too long in a +"Verbatim" or "LVerbatim" environment before you get overfull "\hbox" +warnings. This threshold is usually .1pt, but the default definition of +"\VerbatimFuzz" is "2pt" because verbatim lines won't break and are therefore +often too long. + \vitem"\EveryVerbatimLine" This is inserted at the beginning of each line of +verbatim environments or verbatim files. By default it does nothing. I like to +indent each line in the verbatim environment in the input file by 2 spaces, so +I define +\begin{LVerbatim} + \renewcommand{\EveryVerbatimLine}[2]{} +\end{LVerbatim} +to eat those spaces. (But I have to remember to put in two spaces or space +markers for blank lines too.) You might also use it to number the lines. For +example: +\begin{example} + \newcounter{VerbLineNo} + \renewcommand{\EveryVerbatimLine}% + {\makebox[10pt][r]{% + \stepcounter{VerbLineNo}% + \tiny\rm\arabic{VerbLineNo}}% + \hspace{10pt}} + \renewcommand{\EveryVerbatim}% + {\setcounter{VerbLineNo}{0}} + \begin{SaveVerbatim}{\MyTemp} + \setlength{\fboxsep}{15pt} + \setlength{\mylength}{\linewidth} + \end{SaveVerbatim} + \fbox{\BUseVerbatim{\MyTemp}} +\end{example} + \vitem"\EveryVerbatim" Whatever else you want to say before formatting the +verbatim text. By default, it does nothing. + \vitem"\ThisVerb" This is executed before any of the commands above, and +then its value is cleared. Use this to customize a single verbatim formatting +environment. +\end{description} + +Here is a description of the parameters for environments that read the +verbatim text: +\begin{description} + \vitem"\EveryVerbatimCodes" This command is inserted just before reading the +verbatim text. Use it to play with "\catcode"'s (see the {\em \TeX book}). For +example, I might type +\begin{LVerbatim} + \renewcommand{\EveryVerbatimCodes}{\catcode`\"=14} +\end{LVerbatim} +if I want to use \Verb+"+ as a comment character in verbatim text.% +%% The use of SaveVerbatim and \SaveVerb is not necessary here because +%% \VerbatimFootnotes is in effect. This is just a test. +\begin{SaveVerbatim}{\MyTemp} + \def\MyQuote{"} % \MyQuote is now the character ", + \def\temp{\Verb"} % in case I need it. + \catcode`\"=13 % Now " is like a command. + \let"\temp % Now "foo" is like \Verb"foo" + \def\do{\noexpand\do\noexpand} % Now " can be used in verbatim + \edef\dospecials{\dospecials\do\"} % environments anyway. +\end{SaveVerbatim}\SaveVerb{\Foo}+"+\SaveVerb{\FFoo}+\Verb"foo"+% +\footnote{Here is another "\catcode" trick. We make \UseVerb{\Foo} a short +verbatim command, so that we can say \UseVerb{\Foo foo\Foo} instead of +\UseVerb{\FFoo}: +\LUseVerbatim{\MyTemp}} + \vitem"\ThisVerbCodes" This command is executed before "\EveryVerbCodes", +and then it is cleared. Use this to fool with the "\catcode"`s of a single +verbatim environment. +\end{description} + +The parameters for "\Verb", "\UseVerb" and "\SaveVerb" and the "VerbatimOut" +environment are analogous to the similar commands for other environments. + +Here is an example of the use of "\ThisVerb" to define a variant of "\Verb" +that uses \ttspace\ to mark spaces: +\begin{LVerbatim} + \newcommand{\SVerb}{% + \renewcommand{\ThisVerb}% + {\renewcommand{\VerbatimSpace}{\ttspace}}% + \Verb} +\end{LVerbatim} + +Finally, without further comment, here are the definitions of the "example" +and "example*" environments that were used for the examples in this document: +{\renewcommand{\EveryVerbatimLine}{}\LVerbatimInput{\jobname.ex1}} + +\section{Changes} +\raggedright + +\paragraph*{Version 0.9, November 23, 1992} First release. + +\paragraph*{Version 0.91, November 25, 1992} +\begin{enumerate} + \item "\shadowsize" is now a length, to be set with "\setlength" or +"\addtolength". + \item "\fancypage" split into "\fancypage" and "\fancyput" +\end{enumerate} + +\paragraph*{Version 0.92, December 20, 1992} +\begin{enumerate} + \item New "\boxput" command for superimposing boxes. + \item New "\VerbatimFootnotes" command. + \item New "\VerbBox" command for verbatim boxes. + \item New "Sbox" environment. Makes "\beginsbox" and "\endsbox" + obsolete, but the latter have been retained for compatibility. +\end{enumerate} + +\paragraph{Version 0.93, January 20, 1993} +\begin{enumerate} + \item New "\EndVerbatimTokens" for tokens that precede "\end{Verbatim}". + \item New "\AltGetVerbatim", to allow any tokens to precede +"\end{Verbatim}". + \item Fixed bug in "\BVerbatimInput" that caused second line to be repeated. + \item New "LandScape" environment, for rotating pages without rotating +headers and footers. + \item Slide frames "Oval", "oval", "shadow" and "double" are defined when +"seminar.sty" v0.93 (and maybe later) is loaded. +\end{enumerate} + +\paragraph{Version 1.0, February 10, 1993} +\begin{enumerate} + \item Fixed bugs in "\boxput". + \item New "Beqnarray" environment. +\end{enumerate} + +\paragraph{Version 1.1, 1997 (D.G./S.R.)} +\begin{enumerate} + \item Minimal adaptations for \LaTeX{} 2e compatibility (macros + "\fancypage", "\thisfancypage", "\fancyput", "\thisfancyput", + "\@Landscape", "\LandScape"). +\end{enumerate} + +\paragraph{Version 1.2, February 27, 1998 (D.G./S.R.)} +\begin{enumerate} + \item Other adaptations for \LaTeX{} 2e. +\end{enumerate} + +\paragraph{Version 1.3, September 19, 2000 (D.G./S.R.)} +\begin{enumerate} + \item Corrections of the output routine for \LaTeX{} 2e compatibility + (from Marcin Wolinski and Heiko Oberdiek). + \item Add a "\ProvidesPackage" command (from Heiko Oberdiek). +\end{enumerate} + +\end{document} +%% END fancybox.doc diff --git a/Master/texmf-dist/doc/latex/seminar/read-me.2e b/Master/texmf-dist/doc/latex/seminar/read-me.2e new file mode 100644 index 00000000000..01bb2885263 --- /dev/null +++ b/Master/texmf-dist/doc/latex/seminar/read-me.2e @@ -0,0 +1,73 @@ +THIS IS A SUPPLEMENTARY READ-ME FOR V1.0e OF THE SEMINAR PACKAGE + +*********************************************************************** +**** "readme" file for the Seminar package, v1.0e, 94/09/12 **** +*********************************************************************** + +COPYRIGHT 1993, 1994 by Timothy Van Zandt, Timothy.VAN-ZANDT@insead.edu +%% +%% These files 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. +%% + +BUGS: If you have problems using this seminar package with LaTeX2e, + report them to Timothy.VAN-ZANDT@insead.edu. The problem probably lies + with seminar.cls. You can probably continue to use the seminar + package with LaTeX2e in compatibility mode, while waiting for a bug + fix, by renaming seminar.cls to something else. + +ABOUT V1.0e: + + The V1.0e distribution is identical to v1.0 of 93/04/01, + except for a few changes so that Seminar can work with + NFSS2 and LaTeX2e: + + - semhelv.sty and semlcmss.sty have been modified to work + with NFSS2 and LaTeX2e (but they still work with NFSS). + + - seminar.cls has been added. This is a LaTeX2e document class, + derived from seminar.sty v1.0 by Sebastian Rahtz. + + If you already have have seminar.sty v1.0e, then all you need + are this read-me file plus these files from the inputs + directory: + + seminar.cls semhelv.sty semlcmss.sty + +USING SEMINAR WITH LATEX2E: + + !!! YOU MUST BE USING A LATEX2E RELEASED AFTER 19 FEBRUARY 1994 + + You can either use seminar.sty in compatibility mode: + \documentstyle{seminar} + Or use the seminar.cls document class: + \documentclass{seminar} + + Unless you are using other macros that only work in + compatibility mode, you might as well use the document class. + + You can use the following options with \documentclass{seminar}: + + article slidesonly notes notesonly notesonly* + noxcomment portrait a4 (or a4paper) semhelv semlcmss + semlayer semrot semcolor slidesec + + plus appropriate options for the article document class + (e.g., 11pt) + + NOTE: Use `a4' or `a4paper', not `sem-a4'. + + `seminar.cls' is a minimal modification of seminar.sty. The + next release will take advantage of more of LaTeX2e's special + capabilities. + + +Tim Van Zandt +August 24, 1994 diff --git a/Master/texmf-dist/doc/latex/seminar/readme.pst b/Master/texmf-dist/doc/latex/seminar/readme.pst new file mode 100644 index 00000000000..8d489f677e7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/seminar/readme.pst @@ -0,0 +1,204 @@ + --------------- + | PSTricks 97 | + --------------- + + + +----------------------------------------------------------------------- +PSTricks is the work of Timothy van Zandt + +PSTricks 97 is edited by Denis Girou + and Sebastian Rahtz +----------------------------------------------------------------------- + + + +1 - Copyright + --------- + +COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu. + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt. + +2 - Introduction + ------------ + +This package is a re-release of PSTricks, incorporating all of the +beta releases and bug fixes made up to March 1997. It is *not* +intended as a full new release of PSTricks, but as a consolidation and +cleaned distribution. Because Timothy van Zandt does not currently have +enough time to work on PSTricks, he gave permission for Denis Girou +and Sebastian Rahtz to produce this interim solution. + +No new features have been added in PST97, except the release of the +small pst-fill package for filling (tiling) arbitrary regions and the +various evolving contributions, but we have merged in all the bug fixes +and beta addons which Timothy produced. + +We have renamed some of the files that make up PSTricks, for consistency. + + +3 - Installation + ------------ + +3.1 - (La)TeX files + + a - You have to move all the files from the "generic" subdirectory +to a directory part of your TEXINPUTS environment variable, or to add it +in your TEXINPUTS list of paths. + + b - If you are a LaTeX user (and not only a plain TeX one), you have +to do the same thing for the "latex" subdirectory, which define LaTeX +wrappers for all the PSTricks files. + +3.2 - PostScript header files + + a - If you use the "dvips" DVI to PostScript converter, you have +to move all the files from the "dvips" subdirectory to a directory part +of your DVIPSHEADERS environment variable, or to add it in your DVIPSHEADERS +list of paths. + + b - If you use the Y&Y's "dvipsone" DVI to PostScript converter, +you have to rename generic/dvipsone.con to generic/pstricks.con and to move +all the files of the "dvips" subdirectory to the TeX input folder. + + c - If you use the MicroPress "VTeX" DVI to PostScript converter, +you have to rename generic/vtex.con to generic/pstricks.con and to move +all the files of the "dvips" subdirectory to the TeX input folder. + + d - If you use the "textures" (version 1.7 or 1.8) DVI to PostScript +converter (for Macintosh), you should proceed as follows: + * create a new folder PSTricks97 (for instance) as a subfolder in +Textures' TeX inputs folder, + * copy the "generic", "dvips", "latex" and "contrib" subfolders +from the "pst97" folder to the newly created "PSTricks97" folder, + * open the "generic" folder and remove the file pstricks.con, +then rename the file textures.con to pstricks.con, + * open the "dvips" folder and change the following line in the file +pstricks.pro (courtesy Michael J. Sharpe ): +/STV { SDict begin normalscale end STP } def +by +/STV { Mag 72.27 72 div mul dup neg scale STP } def + It was also reported that the `pst-text' package (to put text +along paths) doesn't work with the "textures" driver. + Textures's users must also look at the page kindly maintained +by Michael Sharpe: http://math.ucsd.edu/~msharpe/pst-textures.html + + d - If you use another driver than these four ones, you have to adapt +a pstricks.con file for it, if the one for "dvips" doesn't work for it. +You can also look at the instructions of the old obsolete/src/pstricks.con +file. And if nothing work, ask for help on the PSTricks mailing list, +hopping that somebody on the list has the same configuration than you... + +3.3 - Test of the installation + +The file doc/test-pst.tex allow you to test all your installation and the +various components of PSTricks. It is the concatenation of most of the +examples of the PSTricks chapter of "The LaTeX Graphics Companion". +You must take care (mainly if you are "normally" a user of plain TeX only, +that it require LaTeX and some packages of it distribution (namely `calc', +`ifthen' and `graphicx'). It also require the `random' and `subfigure' +packages, which can be found on CTAN or the TeXLive cdrom - see the README +file of the doc subdirectory). + +3.4 - Known pitfalls + + a - To use the standard `color' package (which is available both +for plain TeX and LaTeX) with PSTricks, you must load the `pstcol' extra +package written by David Carlisle, which interface the two packages, +loading them in the right order, and overriding some small parts of PSTricks +to allow it to use the `color' package system for specifying color. +We strongly recommend that you use the `color' package today. + + b - Don't try to load the `color' package if you use `pst-all' +(it is already loaded in the correct order). + + c - If needed, preferably load the `graphics' / `graphicx' package +after PSTricks, and in this case use the `graphics' syntax of \scalebox +(not the one described in the PSTricks documentation). + + d - If you load `graphics' / `graphicx' before PSTricks, you must use +the PSTricks syntax of \scalebox in all cases (not the one described +in the `grfguide' document). + + e - We have rename some package files for consistency. But the reference +documentation in obsolete/doc subdirectory still refer to the old names. +So, take care that `pst2eps' is now `pst-eps', `charpath' is now `pst-char', +`gradient' is now `pst-grad', `textpath' is now `pst-text' and `pstree' is +now `pst-tree'. + + +4 - Contents + -------- + +4.1 - Subdirectories + +The distribution contain the following subdirectories: + +contrib : various contributions +doc : documentations (up to date ones - the obsolete/doc subdirectory + contain the reference documentation for the version 0.93a and + the additional old Beta material, which is still necessary to use...) +dvips : PostScript header files +generic : TeX generic sources +latex : LaTeX wrappers +obsolete: documentation and sources for the version 0.93a and the + additional old Beta material + +4.2 - PSTricks core files + +The generic subdirectory contain the core files of PSTricks (and the latex +subdirectory contain the corresponding wrapper files). By alphabetic order: + +multido : loop facility for Generic TeX (in fact independant of PSTricks) +pst-3d : 3d projections +pst-char: stroking and filling character paths +pst-coil: coils and zigzags +pst-eps : conversion of PSTricks graphics to EPS files +pst-fill: fillings and tilings +pst-grad: gradients +pst-node: nodes and node connections +pst-plot: plots +pst-text: texts along a path +pst-tree: trees + +In addition, there is a LaTeX package `pst-all' in the latex subdirectory, +which loads all of the PSTricks components, plus `pstcol', in one go +(`pstcol' require also a color.cfg file defined; make sure you do _not_ load +the `color' package by itself). The only reason for _not_ using this is that +it uses extra memory for facilities you might not need. + + +5 - Documentation + ------------- + +There is NOT a complete up to date _reference_ documentation for PSTricks 97. +You must still refer to the reference documentation of the version 0.93a and +the additional old Beta material, available in the obsolete/doc subdirectory +(it was put in the "obsolete" subdirectory to clearly show that it is not up +to date nor supported by actual mainteners). Take care to notice what has +changed in additional old Beta documents (betadoc?.ps files) comparing to the +ones for 0.93a version (pst-usr?.ps files). + +Denis Girou maintain a list of known errors in both version 0.93a and +additional old Beta documentations, in obsolete/doc/pst-doc.err + +A large chapter of "The LaTeX Graphics Companion", by Goossens, Rahtz and +Mittelbach, Addison Wesley 1997, is dedicated to PSTricks, and this +currently forms the only systematic description of the integration of +the basic PSTricks and the beta additions of 1993. The source of all examples +from that book is also on CTAN/info/lgc and most of them in the doc/lgc +subdirectory of the PST97 distribution. + +There is also a supporting set of Web pages, actually maintained +by Denis Girou, on http://www.tug.org/applications/PSTricks with various +pointers and examples classified by categories. + +And there is also a mailing list devoted to discussions on PSTricks usage. +The informations to subscribe to this list and to consult the archives can +be found on the Web page. + +-- +Denis Girou and Sebastian Rahtz (updated May 5, 1999) diff --git a/Master/texmf-dist/doc/latex/seminar/sem-read.me b/Master/texmf-dist/doc/latex/seminar/sem-read.me new file mode 100644 index 00000000000..3003ea40b81 --- /dev/null +++ b/Master/texmf-dist/doc/latex/seminar/sem-read.me @@ -0,0 +1,299 @@ +------------------------------------------------------- +IMPORTANT NOTE + +With the agreement of Timothy Van Zandt (now Timothy.VAN-ZANDT@insead.edu), +the distributions conditions on seminar are now relaxed to: +%% +%% 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. +%% + +June 3rd 1999 (last updated September 2005) +Sebastian Rahtz +Denis Girou + +(Tim's helpers on earth) +------------------------------------------------------- + +%% BEGIN sem-read.me +*********************************************************************** +**** "readme" file for seminar.sty package, v1.0, 93/04/01 **** +*********************************************************************** + +COPYRIGHT 1993, by Timothy Van Zandt + +DESCRIPTION: + + seminar.sty is a LaTeX document style for typesetting slides or + transparencies, and accompanying notes. It has many advantages over + SliTeX. Here are some of the style's special features: + * It is a LaTeX style, rather than another format. + * It is compatible with AmS-LaTeX. + * You can use any fonts that work with LaTeX, including PostScript + fonts and AmSFonts. + * Slides can be landscape and portrait within the same file. + * Color is supported through PostScript. + * The slides can have a frame and a colored background. + * The magnification can be changed with a single command. + * 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. + Some of these features require a PostScript output device. + +FILES: + + Inputs: + seminar.sty : The main style file. + sem-page.sty : Page parameters. + semlayer.sty : The semlayer style option (overlays and color layers). + semhelv.sty : The semhelv style option . + semlcmss.sty : The semlcmss style option. + semcolor.sty : The semcolor style option. + semrot.sty : THe semrot style option. + slidesec.sty : The slidesec style option. + sem-a4.sty : The sem-a4 style option. + xcomment.sty : The macros for omitting notes. + 2up.tex : Macros for printing documents two-up. + 2up.sty : The same as 2up.tex, but with .sty extension. + npsfont.sty : Macros for defining new PostScript fonts with the NFSS. + fancybox.sty : Box tips and tricks for LaTeX. + + Documentation: + sem-user.tex : User's guide for seminar.sty. + sem-user.ind : Index for sem-user.tex. + semsamp1.tex : A sample document for seminar.sty. + semsamp2.tex : Another sample document for seminar.sty. + 2up.doc : Documentation for 2up.tex. + fancybox.doc : Documentation for fancybox.sty. + tvz-hax.sty : For typesetting sem-user.tex and sem-code.tex. + tvz-code.sty : For typesetting sem-code.tex. + tvz-user.sty : For typesetting sem-user.tex. + sem-read.me : This file. + read-me.pst : The read-me file for the PSTricks package. + + Sources: + seminar.doc : Documented code for seminar.sty. + semlayer.doc : Documented code for semlayer.sty. + xcomment.doc : Documented code for xcomment.sty. + sem-make.tex : For extracting code from seminar.doc and semlayer.doc. + sem-code.tex : For typesetting seminar.doc and semlayer.doc. + xc-make.tex : For extracting code from xcomment.doc. + xcomment.tex : For typesetting xcomment.doc. + +GETTING STARTED: + + 1. Put the input files in a directory where your TeX looks for inputs. + + 2. Typeset and print sem-user.tex. + + 3. Read the preface "Getting Started", and then the appendices. + + 4. Typeset semsamp1.tex and semsamp2.tex. + + 5 If upgrading from v0.92, see the changes listed at the end of this + file. If upgrading from v0.91 or earlier, good luck. + +HACKERS: + + The files seminar.doc, semlayer.doc and xcomment.doc contain the + documented code, using Frank Mittelbach's doc system. + See sem-code.tex and xcomment.tex for instructions on typesetting + these files. + See sem-make.tex and xc-make.tex for instruction on extracting + stripped input (.sty) files from these .doc files. + +MORE ABOUT THE SUPPLEMENTAL STYLES AND MACROS: + + The following styles and macros are not specifically for use + with seminar.sty, and hence are not described in detail in + the seminar.sty User's Guide. You do not need to read the + documentation of these files in order to use seminar.sty. + If you have versions on your system that are older than the + ones distributed with seminar.sty, be sure to replace these. + + FANCYBOX.STY: + fancybox.sty is a LaTeX style option with tips and tricks for LR-box + commands. The documentation, fancybox.doc, is extensive. + + 2UP.TEX: + 2up.tex/2up.sty contains macros for typesetting documents in a + two-up format. seminar.sty's \twoup command provides an interface. + 2up.doc is the documentation for 2up.tex. + + NPSFONT.STY: + npsfont.sty contains macros for defining new PostScript fonts + with the New Font Selection Scheme. The documentation is in + npsfont.sty itself. + + XCOMMENT.STY: + xcomment.sty, a LaTeX style option, permits one to typeset only + selected environments, omitting input outside these environments. + See xcomment.tex if you want to typeset the documentation. + + SLIDESEC.STY + slidesec.sty is an experimental file contains sectioning commands + for slide type documents. The documentation is in slidesec.sty + itself. + + +SEMINAR.STY AND PSTRICKS.TEX: + + pstricks.tex is a collection of PostScript macros that is compatible + with most TeX macro packages, including Plain TeX and LaTeX. Included are + macros for color, graphics, rotation, overlays, nodes and much more. + + seminar.sty, combined with the semcolor option, the PSTricks package, + and your favorite macros for including EPS files, make a complete + TeX presentation software package. + + You can probably obtain the PSTricks package from wherever you got + the Seminar package, or try + Princeton.EDU:/pub or Princeton.EDU:/pub/tvz + + You must install the PSTricks package before using the semcolor option. + + seminar.sty will work with pstricks.tex v0.92, and maybe later + versions. + + +ACKNOWLEDGEMENTS: + + The author is thankful to Frank Mittelbach for his documentation system. + + Thanks to Sebastian Rahtz for bits of advice, and many users for + comments and bug reports. + +BUGS: + + Too many to list, and who knows what they are anyway. These files are all + preliminary and unstable. Not responsible for neck injuries. + + + Thanks. + +CHANGES: + + v1.0: Included sem-a4.sty file, as a way to let the default papersize + be A4 (The a4 option still works). Added \epsfslidesize to make + it easier to set the slide of eps files with epsf.sty. Fixed bug + which caused the width of second pages of a multi-page slide to + end up too small if the page only contained a quote or similar + environment with reduced margins. + + v0.93a: Fixed bugs so that slides would come out properly with the + 2-up,article and portrait options (together), and so that + slides would be positioned correctly with the portrait style + option. + + v0.93: + + INCOMPATIBLE CHANGES: + + ! Use the a4 option instead of sem-a4. There is not longer a + separate file for a4. + + ! No more \fewnotes, \nonotes. Use \slideplacement instead. + + ! No more \layerstyle, \overlaystyle. + + ! Slide styles are now "left" and "bottom". + + ! No more \ifslides. Use \ifarticle\else. + + ! You must now use the semlayer option to use overlays (in addition + to the semcolor option). + + ! No "down" slide rotation (only "none", "left" and "right". + + ! portrait option is no longer a separate file. + + ! \paperwidth and \paperheight are now ordinary commands, to be set + with \renewcommand. + + ! \slidefonts is now always invoked in slide environments, and never in + the preamble. (But semhelv.sty and semlcmss.sty have changed to + reflect this.) + + ! Method for customizing the slide frames has changed. + \slideframecolor, \slideframearc, \slidefillcolor and + \slideshadowcolor are obsolete. + + ! \landscape command replaced by \printlandscape to avoid conflict with + other style files. (E.g., \def\printlandscape{\special{landscape}}). + + NEW FEATURES: + + + A slide environment can have multiple `pages'. \extraslideheight{len} + controls page cutting. See user's guide for details. + + + \centerslidestrue (default) causes the contents of partially full + slides to be vertically centered in the slide. \centerslidesfalse + causes it to be flush top. + + + New \raggedslides[len] command, for setting + whether right margin in slides is ragged or justified. Default is + \raggedslides. \raggedslides[0pt] gives justified slides. + + + \slideplacement + + + \onlynotestoo + + + \slideskip and \slideshrink for added control over interline space. + + + + New: \slideleftmargini, \slideleftmarginii, \slideleftmarginiii, + \slidelabelsep, \slideitemsep, \slidepartopsep, + \slideparskip, \slideparindent, \slidefootins, \slidefootnotesep, + \slidedisplayskips, \theslidefootnote + + + \input and \endinput now supported for the slidesonly selection. + + + New conditional: \ifportrait + + + \newslideframe + + + \leftsliderotation, \rightsliderotation. + + + New \slidetopmargin, \slidebottommargin, \slideleftmargin, + \sliderightmargin. + + + New notesonly* selection. + + + New \slidesclearpagetrue + + + New \semcm and \semin. + + + New note environment and \noxcomment command, as an alternative + to treating everything outside slide environments as notes. + + + BACKWARDS-COMPATIBLE CHANGES: + + * \maketitle now uses LaTeX's default from article.sty in notes. + + * Bug in article option with the \twoup command fixed. + + * \topmargin in sem-a4 changed from -.75in to 1in. + + * \slidefontsizes is obsolete (but still works). Use \ptsize instead. + + * Page parameters are now in a separate file sem-page.sty. sem-a4.sty + has been changed to reflect this. + + v0.92: + Mostly bug fixes, plus some extra options. The PSTricks package + is no longer distributed with seminar.sty. + + Pre v0.91: + Entirely rewritten. Too many changes to list. Note especially + that system of formats and selections has changed. + +%% END sem-read.me diff --git a/Master/texmf-dist/doc/latex/seminar/sem-user.pdf b/Master/texmf-dist/doc/latex/seminar/sem-user.pdf new file mode 100644 index 00000000000..2227746eae3 Binary files /dev/null and b/Master/texmf-dist/doc/latex/seminar/sem-user.pdf differ diff --git a/Master/texmf-dist/doc/latex/seminar/sem-user.tex b/Master/texmf-dist/doc/latex/seminar/sem-user.tex new file mode 100644 index 00000000000..94aef0b7f01 --- /dev/null +++ b/Master/texmf-dist/doc/latex/seminar/sem-user.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} + 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} + 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 "pt" +option. Actually, can be 8, 9, 10, 11, 12, 14 or 17, whether you have +"art.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} +