summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/gcard
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-05-31 18:36:33 +0000
committerKarl Berry <karl@freefriends.org>2007-05-31 18:36:33 +0000
commit5150bb77cb9cc5d66a2432a9adb57bf2d58e04c7 (patch)
tree64443a1da917939746b955f51e17c9bbc0718693 /Master/texmf-dist/tex/latex/gcard
parent614d179dbc40c1718ce6284e7232d99a3bbba953 (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.sty83
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}
+
+}
+