%This is a replacement for the poster.tex v0.9 I posted a while back.
%The new version doesn't have much in common with the old, except for
%its functions. The new version does not require PSTricks.
%
%% BEGIN poster.tex/poster.sty
%%
\def\fileversion{0.91}
\def\filedate{93/01/30}
%%
%% COPYRIGHT 1993, by Timothy Van Zandt, tvz@Princeton.EDU
%%
%% DESCRIPTION:
%% poster.tex/poster.sty contains a macro for making posters and banners
%% with TeX. It is compatible with most TeX macro packages, including Plain
%% TeX, LaTeX, AmSTeX, and Ams-LaTeX. The only special requirement is that
%% your printer not be bothered by text that lies off the page. This is
%% true of most printers, including laser printers and PostScript printers.
%%
%% INSTALLATION:
%% Put this file where your TeX looks for inputs, under the name poster.tex.
%% Name a copy poster.sty to use as a LaTeX style option, or create a file
%% poster.sty with the lines:
%% \input poster.tex
%% \endinput
%%
%% DOCUMENTATION:
%% See poster.doc, and the sample files poster1.tex and poster2.tex.
%% These might be appended to this file.
%%
%% COPYING:
%% Copying of part or all of this file is allowed under the following
%% conditions only:
%% (1) You may freely distribute unchanged copies of the file. Please
%% include the documentation when you do so.
%% (2) You may modify a renamed copy of the file, but only for personal
%% use or use within an organization.
%% (3) You may copy fragments from the file, for personal use or for
%% distribution, as long as credit is given where credit is due.
%%
%% You are NOT ALLOWED to take money for the distribution or use of
%% this file or modified versions or fragments thereof, except for
%% a nominal charge for copying etc.
%%
%% CODE:
% These macros use TeX primitives, plus the Plain TeX commands:
% \dimen@, \dimen@i, \count@, \newcount, \newtoks,
%
% Check if file is loaded, announce file on terminal, and take care of @:
%
\csname PosterLoaded\endcsname
\let\PosterLoaded\endinput
\edef\TheAtCode{\the\catcode`\@}
\catcode`\@=11
\newbox\@posterbox
\newbox\poster@savedbox
\newbox\poster@cropbox
\def\POSTERpaperheight{11in}
\def\POSTERpaperwidth{8.5in}
\def\POSTERimageheight{10in}
\def\POSTERimagewidth{7.5in}
\def\POSTERlandscape{false}
\def\POSTERclip{none}
\def\POSTERcrop{corners}
\def\POSTERvcenter{false}
\def\POSTERhcenter{false}
\def\poster@set#1[#2]{%
\poster@@set#2,=\@nil,%
#1}
\def\poster@@set#1=#2,{%
\ifx\@nil#2\else
\expandafter\ifx\csname POSTER#1\endcsname\relax
\errmessage{Poster parameter `#1' not defined}%
\else
\expandafter\edef\csname POSTER#1\endcsname{#2}%
\fi
\expandafter\poster@@set
\fi}
\def\poster@true{true}
\def\poster{%
\begingroup
\futurelet\next\poster@i}
\def\poster@i{%
\ifx\next[%
\expandafter\poster@set
\fi
\poster@ii}
\def\poster@ii{%
\afterassignment\poster@iii
\setbox\@posterbox=\hbox}
\def\poster@iii{\aftergroup\poster@iv}
\def\poster@iv{%
\poster@landscape
\poster@savepage
\poster@magtonum
\poster@hoffsets
\poster@voffsets
\poster@vcenter
\poster@hcenter
\poster@makecropbox
\count\z@=\z@
\poster@vloop
\endgroup}
\def\Poster{%
\begingroup
\futurelet\next\Poster@i}
\def\Poster@i{%
\ifx\next[%
\expandafter\poster@set
\fi
\Poster@ii}
\def\Poster@ii{%
\setbox\@posterbox=\hbox\bgroup\ignorespaces}
\def\endPoster{\egroup\poster@iv}
% Save current contents of page in case it contains \special's:
\def\poster@savepage{%
\begingroup
\global\setbox\poster@savedbox\box\voidb@x
\output{\global\setbox\poster@savedbox\box\@cclv}%
\par\hbox{}\penalty-10000
\endgroup
\ifvoid\poster@savedbox\else
\dp\poster@savedbox\z@
\ht\poster@savedbox\z@
\wd\poster@savedbox\z@
\fi}
% \poster@mag set to decimal value of \mag.
\def\poster@magtonum{%
\ifnum\mag=1000
\def\poster@mag{}%
\else
\count@=10000000
\divide\count@\mag
\advance\count@ by 200000000
\expandafter\poster@@magtonum\the\count@
\fi
\dimen@=2000pt
\divide\dimen@\mag
\edef\poster@cropwidth{\number\dimen@ sp }}
\def\poster@@magtonum#1#2#3#4#5#6#7#8#9{%
\count@ #2#3#4#5\relax
\edef\poster@mag{\the\count@.#6#7#8#9}}
\def\poster@landscape{%
\ifx\POSTERlandscape\poster@true
\let\next\POSTERpaperheight
\let\POSTERpaperheight\POSTERpaperwidth
\let\POSTERpaperwidth\next
\let\next\POSTERimageheight
\let\POSTERimageheight\POSTERimagewidth
\let\POSTERimagewidth\next
\fi}
% \dimen@ii set to imageheight
\def\poster@voffsets{%
\dimen@\POSTERimageheight\relax
\dimen@ii=\poster@mag\dimen@
\voffset=\POSTERpaperheight\relax
\advance\voffset-\dimen@
\divide\voffset 2
\ifdim\voffset<\z@
\voffset\z@
\fi
\dimen@=\poster@mag\voffset
\edef\poster@vmargin{\number\dimen@ sp }%
\advance\voffset-1in
\voffset=\poster@mag\voffset}
% \dimen@i set to imagewidth
\def\poster@hoffsets{%
\dimen@\POSTERimagewidth\relax
\dimen@i=\poster@mag\dimen@
\hoffset=\POSTERpaperwidth\relax
\advance\hoffset-\dimen@
\divide\hoffset 2
\ifdim\hoffset<\z@
\hoffset=\z@
\fi
\dimen@=\poster@mag\hoffset
\edef\poster@hmargin{\number\dimen@ sp }%
\advance\hoffset-1in
\hoffset=\poster@mag\hoffset}
% Center vertically
\def\poster@vcenter{%
\setbox\@posterbox=\vbox{\box\@posterbox\vskip 0pt}%
\ifx\POSTERvcenter\poster@true
\count@=\ht\@posterbox
\divide\count@\dimen@ii
\dimen@=\the\count@\dimen@ii
\advance\dimen@-\ht\@posterbox
\ifdim\dimen@<-.1pt
\advance\count@ 1
\fi
\setbox\@posterbox=\vbox to \the\count@\dimen@ii{%
\vss\unvbox\@posterbox\vss}%
\fi}
% Center horizontally
\def\poster@hcenter{%
\ifx\POSTERhcenter\poster@true
\count@=\wd\@posterbox
\divide\count@\dimen@i
\dimen@=\the\count@\dimen@i
\advance\dimen@-\wd\@posterbox
\ifdim\dimen@<-.1pt
\advance\count@ 1
\fi
\setbox\@posterbox=\hbox to \the\count@\dimen@i{%
\hss\box\@posterbox\hss}%
\fi}
% Print rows:
\def\poster@vloop{%
\ifdim\ht\@posterbox>.1pt
\ifdim\ht\@posterbox<\dimen@ii
\dimen@ii=\ht\@posterbox
\poster@makecropbox
\fi
\advance\count\z@ 1
\count1=\z@
\dimen@=\wd\@posterbox
\poster@hloop
\dimen@=\ht\@posterbox
\advance\dimen@-\dimen@ii
\ht\@posterbox\dimen@
\expandafter\poster@vloop
\fi}
% Print columns.
% \dimen@ is used as scratch to keep track of remaining width.
\def\poster@hloop{%
\ifdim\dimen@>.1pt
\advance\count1 by 1
\begingroup
\ifdim\dimen@<\dimen@i
\dimen@i=\dimen@
\poster@makecropbox
\fi
\poster@shipout
\endgroup
\advance\dimen@-\dimen@i
\expandafter\poster@hloop
\fi}
% Shipout, aligning everything at the top-left corner:
\def\poster@shipout{%
\shipout\hbox{%
\ifvoid\poster@savedbox\else\box\poster@savedbox\fi
\csname beginposterclip@\POSTERclip\endcsname
\lower\ht\@posterbox\hbox to\z@{%
\advance\dimen@-\wd\@posterbox
\kern\dimen@
\copy\@posterbox
\hss}%
\csname endposterclip@\POSTERclip\endcsname
\copy\poster@cropbox}}%
% clip=pstricks
\def\beginposterclip@pstricks{%
\expandafter\ifx\csname @pstrickserr\endcsname\relax
\errmessage{%
You must load PSTricks to use poster.tex's clip=pstricks option!}%
\global\let\beginposterclip@pstricks\relax
\else
\gdef\beginposterclip@pstricks{\beginposterclip@@pstricks}%
\gdef\endposterclip@pstricks{\pstVerb{currentpoint initclip moveto}}%
\beginposterclip@@pstricks
\fi}
\let\endposterclip@pstricks\relax
\def\beginposterclip@@pstricks{%
\pst@Verb{%
/mtrxc CM def
\tx@STV
CP translate
newpath
0 0 moveto
\pst@number\dimen@i 0 rlineto
0 \pst@number\dimen@ii neg rlineto
\pst@number\dimen@i neg 0 rlineto
closepath
clip
newpath
0 0 moveto
mtrxc setmatrix}}
\def\poster@makecropbox{%
\setbox\poster@cropbox=\hbox{\csname postercrop@\POSTERcrop\endcsname}%
\ht\poster@cropbox=\z@
\dp\poster@cropbox=\z@
\wd\poster@cropbox=\z@}
\def\postercrop@corners{%
\vtop{%
\hbox{%
\kern -\poster@hmargin
\vrule height \poster@cropwidth width \poster@hmargin
\kern -\poster@cropwidth
\vrule height \poster@vmargin width \poster@cropwidth
\kern \dimen@i
\vrule height \poster@vmargin width \poster@cropwidth
\kern -\poster@cropwidth
\vrule height \poster@cropwidth width \poster@hmargin}%
\nointerlineskip
\vskip\dimen@ii
\hbox{%
\kern -\poster@hmargin
\vrule height \z@ depth \poster@cropwidth width \poster@hmargin
\kern -\poster@cropwidth
\vrule height \z@ depth \poster@vmargin width \poster@cropwidth
\kern \dimen@i
\vrule height \z@ depth \poster@vmargin width \poster@cropwidth
\kern -\poster@cropwidth
\vrule height \z@ depth \poster@cropwidth width \poster@hmargin}}}%
\def\postercrop@full{%
\begingroup
\hbox to\z@{%
\advance\dimen@ii\poster@vmargin
\kern -\poster@cropwidth
\vrule height \poster@vmargin depth \dimen@ii width \poster@cropwidth
\kern \dimen@i
\vrule height \poster@vmargin depth \dimen@ii width \poster@cropwidth
\hss}%
\kern -\poster@hmargin
\vtop{%
\advance\dimen@i \poster@hmargin
\advance\dimen@i \poster@hmargin
\kern-\poster@cropwidth
\hrule height \poster@cropwidth width \dimen@i
\kern\dimen@ii
\hrule height \z@ depth \poster@cropwidth width \dimen@i}%
\endgroup}
\catcode`\@=\TheAtCode\relax
\endinput
%%
%% END poster.tex
%% BEGIN poster.doc
%%
%% Documentation for poster.tex/poster.sty.
%% Run with LaTeX, with or without the NFSS.
%%
%% Change these for a4 paper:
\def\paperwidth{8.5in}
\def\paperheight{11in}
\def\FileVersion{0.91}
\def\FileDate{January 30, 1993}
\documentstyle[12pt]{article}
%% PAGE PARAMETERS
% Paragraphs are marked by large space rather than indentation:
\parindent 0pt
\parskip 6pt plus 1pt minus 1pt
% No headers, 1in top margin
\topmargin 0pt
\headheight 0pt
\headsep 0pt
% Total bottom margin 1in, text height 9in
\textheight 9in
\footskip .625in
% Now adjust for different paper size:
\newdimen\mydim
\mydim=\paperwidth
\advance\mydim-8.5in
\divide\mydim 2
\advance\oddsidemargin \mydim
\advance\evensidemargin \mydim
\mydim=\paperheight
\advance\mydim-11in
\divide\mydim 2
\advance\topmargin \mydim
%% OTHER
% Short meta (works in verbatim. Can't use < for other purposes.
\catcode`\<=13 \def<#1>{{\rm\it #1\/}} % (works in verbatim)
% Short verbatim.
\catcode`\"=13
\def"{\verb"}
\catcode`\@=12 % In case I'm using AmS-LaTeX
\begin{document}
\begin{center}
\begingroup
\large\bf
Documentation for poster.tex/poster.sty\\[2pt]
Posters and banners with Generic \TeX\\[6pt]
\endgroup
Version \FileVersion\\
\FileDate\\[6pt]
Timothy Van Zandt\\
tvz@Princeton.EDU
\end{center}
"poster.tex/poster.sty" contains the macro
\begin{verbatim}
\poster{}
\end{verbatim}
for making posters and banners. is processed in restricted horizontal
mode (i.e., "\hbox" or ``LR-mode'') and is then printed on as many sheets of
paper as are needed. You can then construct the poster or banner by trimming
and piecing together the sheets of paper.
You can also write
\begin{verbatim}
\Poster \endPoster
\end{verbatim}
and \LaTeX\ users can write
\begin{verbatim}
\begin{Poster} \end{Poster}
\end{verbatim}
Here are a few details:
\begin{itemize}
\item Use a "\vbox" or \LaTeX's "minipage" or "\parbox" in if you want
to include vertical mode material.
\item Don't worry about margins, headers or footers; "\poster" ignores output
routines entirely.
\item It is up to you to make everything big. The easiest way is to set \TeX's
"\mag" parameters (to an integer equal to 1000 times the magnification factor,
or to "\magstephalf", or to "\magstep", where is 1,$\ldots$,5). You may
need to generate big bitmaps if using bitmapped fonts (e.g., \TeX's usual
Metafont fonts), rather than scalable outline fonts (e.g., PostScript fonts).
Using "\magstep" minimizes the need for extra bitmaps.
\item can contain "\catcode" changes.
\end{itemize}
"\poster" and "\Poster" use the following parameters:
\begin{center}
\def\arraystretch{1.1}
\begin{tabular}{lll}
{\em Parameter} & {\em Value} & {\em Default}\\[2pt]
"paperwidth" & & "8.5in"\\
"paperheight" & & "11in"\\
"imagewidth" & & "7.5in"\\
"imageheight" & & "10in"\\
"landscape" & "true"/"false" & "false"\\
"hcenter" & "true"/"false" & "false"\\
"vcenter" & "true"/"false" & "false"\\
"crop" & "none"/"corners"/"full" & "corners"\\
"clip" & "none"/"pstricks" & "none"
\end{tabular}
\end{center}
You can include parameter changes as a list of "=" pairs in an
optional argument to "\poster" or "\Poster", enclosed in square brackets.
E.g.,
\begin{verbatim}
\poster[clip=pstricks,hcenter=true]{foo}
\end{verbatim}
No extraneous spaces, please.
You can also redefine the parameters using "\def" or "\LaTeX"'s
"\renewcommand". For parameter "foo", you should redefine "\POSTERfoo". E.g.,
the next example is like the last one:
\begin{verbatim}
\def\POSTERclip{pstricks}
\def\POSTERhcenter{true}
\poster{foo}
\end{verbatim}
This is mainly of interest when developing your own custom "\poster" command
or "poster.tex" file.
Here are some comments on the parameters:
\begin{itemize}
\item
Don't adjust the "page" and "image" dimensions for your document's
magnification (and don't use \TeX's "true" dimensions). "poster.tex" does this
for you.
\item
Most printers cannot print right up to the edge of the paper. That is why the
"imagewidth" and "imageheight" should be smaller than the "paperwidth" and
"paperheight". The default values are good for printing on 8.5in by 11in paper
in portrait mode with one-half inch margins.
\item
Setting "landscape" to "true" is just a convenient way to switch the "height"
and "width" parameters. You still have to take care of printing your document
in landscape mode.
\item
Setting "hcenter" and "vcenter" to "true" causes the image to be centered
horizontally and vertically, respectively, in the total number of pages that
are printed. E.g., when "vcenter" is "true", extra space is added to the top
of the first row of pages and to the bottom of the last row of pages.
\item
The "crop" parameter controls the crop marks, to help you trim each page to
size. When "crop" equals "full", you get crop marks along the full length of
all four sides.
\item
Setting "clip" to "pstricks" causes each page to be clipped to the size of the
image (rather than having the image overlap in the margins on each page), but
this only works if you have loaded the PSTricks package.
\end{itemize}
The file "poster1.tex" contains the following sample of a framed poster with a
whole page of text:
\begin{verbatim}
\documentstyle[poster]{article}
\mag\magstep5 % Magnification of 1.2^5 (roughly 2.5)
% Use `true' dimensions below for magnified values.
\begin{document}
\begin{Poster}[vcenter=true,hcenter=true]
\setlength{\fboxsep}{.8truein}%
\setlength{\fboxrule}{.1truein}%
\fbox{\begin{minipage}{11.1truein}
\end{minipage}}%
\end{Poster}
\end{document}
\end{verbatim}
The file "poster2.tex" contain the following sample of a banner in landscape
mode. "ptmr" is meant to be the name of the Times-Roman PostScript font, if
your \TeX\ supports such a thing.
\begin{verbatim}
\font\bigroman=ptmr at 7.5in
\bigroman
\poster[vcenter=true,landscape=true]{Animals}
\end{verbatim}
\end{document}
%%
%% END poster.doc
%% BEGIN poster1.tex
%%
%% Sample for poster.tex/poster.sty.
%% Run with LaTeX, with or without the NFSS.
%%
%% See below if using A4 paper.
\documentstyle{article}
\input poster % Input here in case poster.sty not installed.
\mag\magstep5 % Magnification of 1.2^5 (roughly 2.5)
% Use "true" dimensions below for magnified values.
\begin{document}
%% Add paperwidth=210mm,paperheight=297mm if using A4 paper:
\begin{Poster}[vcenter=true,hcenter=true]
\setlength{\fboxsep}{.8truein}%
\setlength{\fboxrule}{.1truein}%
\fbox{\begin{minipage}{11.1truein}
\begin{center}
\bf ON SOME \boldmath$\Pi$-HEDRAL SURFACES IN QUASI-QUASI SPACE
\end{center}
\begin{center}
CLAUDE HOPPER, Omnius University
\end{center}
There is at present a school of mathematicians which holds that the
explosive growth of jargon within mathematics is a deplorable trend. It
is our purpose in this note to continue the work of
Redheffer~\cite{redheffer} in showing how terminology itself can lead to
results of great elegance.
I first consolidate some results of Baker~\cite{baker} and
McLelland~\cite{mclelland}. We define a class of connected snarfs as
follows: $S_\alpha=\Omega(\gamma_\beta)$. Then if
$B=(\otimes,\rightarrow,\theta)$ is a Boolean left subideal, we have:
$$
\nabla S_\alpha=\int\int\int_{E(\Omega)}
B(\gamma_{\beta_0},\gamma_{\beta_0})\,d\sigma d\phi d\rho
-\frac{19}{51}\Omega.
$$
Rearranging, transposing, and collecting terms, we have:
$\Omega=\Omega_0$.
The significance of this is obvious, for if $\{S_\alpha\}$ be a class of
connected snarfs, our result shows that its union is an utterly
disjoint subset of a $\pi$-hedral surface in quasi-quasi space.
We next use a result of Spyrpt~\cite{spyrpt} to derive a property of
wild cells in door topologies. Let $\xi$ be the null operator on a door
topology, $\Box$, which is a super-linear space. Let $\{P_\gamma\}$ be
the collection of all nonvoid, closed, convex, bounded, compact,
circled, symmetric, connected, central, $Z$-directed, meager sets in
$\Box$. Then $P=\cup P_\gamma$ is perfect. Moreover, if $P\neq\phi$,
then $P$ is superb.
\smallskip
{\it Proof.} The proof uses a lemma due to
Sriniswamiramanathan~\cite{srinis}. This states that any unbounded
fantastic set it closed. Hence we have
$$
\Rightarrow P\sim\xi(P_\gamma)-\textstyle\frac{1}{3}.
$$
After some manipulation we obtain
$$
\textstyle\frac{1}{3}=\frac{1}{3}
$$
I have reason to believe~\cite{russell} that this implies $P$ is perfect.
If $P\neq\phi$, $P$ is superb. Moreover, if $\Box$ is a $T_2$ space, $P$
is simply superb. This completes the proof.
Our final result is a generalization of a theorem of Tz, and
encompasses some comments on the work of Beaman~\cite{beaman} on the
Jolly function.
Let $\Omega$ be any $\pi$-hedral surface in a semi-quasi space. Define
a nonnegative, nonnegatively homogeneous subadditive linear functional
$f$ on $X\supset\Omega$ such that $f$ violently suppresses $\Omega$.
Then $f$ is the Jolly function.
\smallskip
{\it Proof.} Suppose $f$ is not the Jolly function. Then
$\{\Lambda,\mbox{@},\xi\}\cap\{\Delta,\Omega,\Rightarrow\}$ is void. Hence
$f$ is morbid. This is a contradiction, of course. Therefore, $f$ is
the Jolly function. Moreover, if $\Omega$ is a circled husk, and
$\Delta$ is a pointed spear, then $f$ is uproarious.
\small
\begin{center}
\bf References
\end{center}
\def\thebibliography#1{%
\list
{\bf\arabic{enumi}.}{\settowidth\labelwidth{\bf #1.}\leftmargin\labelwidth
\advance\leftmargin\labelsep
\usecounter{enumi}}
\def\newblock{\hskip .11em plus .33em minus .07em}
\sloppy\clubpenalty4000\widowpenalty4000
\sfcode`\.=1000\relax}
\begin{thebibliography}{9}
\bibitem{redheffer}
R. M. Redheffer, A real-life application of mathematical symbolism,
this {\it Magazine}, 38 (1965) 103--4.
\bibitem{baker}
J. A. Baker, Locally pulsating manifolds, East Overshoe Math. J., 19
(1962) 5280--1.
\bibitem{mclelland}
J. McLelland, De-ringed pistons in cylindric algebras,
Vereinigtermathematischerzeitung f\"ur Zilch, 10 (1962) 333--7.
\bibitem{spyrpt}
Mrowclaw Spyrpt, A matrix is a matrix is a matrix, Mat. Zburp., 91
(1959) 28--35.
\bibitem{srinis}
Rajagopalachari Sriniswamiramanathan, Some expansions on the Flausgloten
Theorem on locally congested lutches, J. Math. Soc., North Bombay, 13
(1964) 72--6.
\bibitem{russell}
A. N. Whitehead and B. Russell, Principia Mathematica, Cambridge
University Press, 1925.
\bibitem{beaman}
J. Beaman, Morbidity of the Jolly function, Mathematica Absurdica, 117
(1965) 338--9.
\end{thebibliography}
\end{minipage}}%
\end{Poster}
\end{document}
%% END poster1.tex
%% BEGIN poster2.tex
%%
%% A sample file for poster.tex/poster.sty. Makes a banner.
%% Use Plain TeX (or add preamble and use LaTeX)
\input poster
\special{landscape} % This works with Rokicki's dvips
\font\bigroman=ptmr at 8in
\bigroman
\poster[vcenter=true,landscape=true]{Animals}
\end
%% END poster2.tex
--
Timothy Van Zandt (609)258-4050 tvz@Princeton.EDU (NeXTMail)