diff options
author | Karl Berry <karl@freefriends.org> | 2007-05-31 18:36:33 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-05-31 18:36:33 +0000 |
commit | 5150bb77cb9cc5d66a2432a9adb57bf2d58e04c7 (patch) | |
tree | 64443a1da917939746b955f51e17c9bbc0718693 /Master/texmf-dist/tex/latex/gcard | |
parent | 614d179dbc40c1718ce6284e7232d99a3bbba953 (diff) |
new latex package gcard
git-svn-id: svn://tug.org/texlive/trunk@4382 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/gcard')
-rw-r--r-- | Master/texmf-dist/tex/latex/gcard/gcard.sty | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/gcard/gcard.sty b/Master/texmf-dist/tex/latex/gcard/gcard.sty new file mode 100644 index 00000000000..9acc5927d59 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gcard/gcard.sty @@ -0,0 +1,83 @@ +% package file for gcard package: typeset four ``panels'' on a single +% sheet so that sheet can be folded twice to produce a greeting card. +% Uses \rotatebox command from the graphicx package to invert two +% of the panels, and the textpos package to place all four panels on +% the page. + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{gcard}[2007/05/21 simple greeting card package] +\DeclareOption{showboxes}{\PassOptionsToPackage{showboxes}{textpos}} +\ProcessOptions +\RequirePackage[absolute]{textpos} +\RequirePackage{graphicx} +\RequirePackage{calc} + +% main code begins here; each panel will be typeset and stored in +% the box register \paneltext +\newsavebox{\paneltext} + +% Define lengths +\newlength{\guttermargin} +\newlength{\edgemargin} +\newlength{\gctopmargin} +\newlength{\gcbottommargin} +\newlength{\panelwidth} +\newlength{\panelheight} + +% Set default values for margins. These are the apparent margins after +% the card has been folded. The user should set these four to taste. +% All four panels use the same margins. +% Here, edge and gutter are set the same, as are top and bottom; that's +% not required, and it's okay to use 4 different values. +\setlength{\guttermargin}{0.2 in} % inside of panel +\setlength{\edgemargin}{\guttermargin} % outside +\setlength{\gctopmargin}{0.2 in} % top +\setlength{\gcbottommargin}{\gctopmargin} % bottom + +% Define environments for four panels. The two outside ones (frontcover and +% backcover) need to be rotated. +% These environments place the user's material vertically centered in a minipage +% of width \panelwidth and height \panelheight. +\newenvironment{frontcover}{% +\begin{lrbox}{\paneltext}\begin{minipage}[t][\panelheight][c]{\panelwidth}} +{\end{minipage}\end{lrbox} +\begin{textblock*}{\panelwidth}(0pt,0pt) +\noindent +\rotatebox[origin=c]{180}{\usebox{\paneltext}} +\end{textblock*}} + +\newenvironment{backcover}{% +\begin{lrbox}{\paneltext}\begin{minipage}[t][\panelheight][c]{\panelwidth}} +{\end{minipage}\end{lrbox} +\begin{textblock*}{\panelwidth}(\TPHorizModule,0pt) +\noindent +\rotatebox[origin=c]{180}{\usebox{\paneltext}} +\end{textblock*}} + +\newenvironment{insideleft}{% +\begin{textblock*}{\panelwidth}(0pt,\TPVertModule) +\noindent +\begin{minipage}[t][\panelheight][c]{\panelwidth}} +{\end{minipage}\end{textblock*}} + +\newenvironment{insideright}{% +\begin{textblock*}{\panelwidth}(\TPHorizModule,\TPVertModule) +\noindent +\begin{minipage}[t][\panelheight][c]{\panelwidth}} +{\end{minipage}\end{textblock*}} + +\AtBeginDocument{ +% turn off page numbering +\pagestyle{empty} +% User should have chosen margins by now; compute panel sizes +% and ``step sizes'' for placing panels +\setlength{\panelwidth}{(\paperwidth-2\guttermargin-2\edgemargin)/2} +\setlength{\panelheight}{(\paperheight-2\gctopmargin-2\gcbottommargin)/2} +\setlength{\TPHorizModule}{\panelwidth + 2\guttermargin} +\setlength{\TPVertModule}{\panelheight + 2\gctopmargin} +% Set position of upper left corner of upper left panel (front cover) +% with command from textpos package. +\textblockorigin{\edgemargin}{\gcbottommargin} + +} + |