[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: app for making cards?



on Sat, Apr 21, 2001 at 10:03:22AM -0700, Ron Farrer (rbf@farrer.net) wrote:
> 
> Anyone know of an app that will make calling/business cards? I've
> searched freshmeat, linuxapps, google, etc. and none of the results
> were exactly what I want. Basically there are 2 columns, 5 rows on
> each 8.5" x 11" sheet of paper. I would like to create an image (via
> the gimp or whatever) and put this image in the correct spot in 10
> places on the sheet. I don't want to create 10 images and put them
> manually in the right places. Something that will work with avery
> stock #5371 (or similar) would be perfect. Does anyone have any ideas?

LaTeX.

Sample templates attached, including my own modifications of one of
these.   Note that it wants a small 

I found them by Google searching "latex business card".

-- 
Karsten M. Self <kmself@ix.netcom.com>    http://kmself.home.netcom.com/
 What part of "Gestalt" don't you understand?       There is no K5 cabal
  http://gestalt-system.sourceforge.net/         http://www.kuro5hin.org
% Psfig/TeX Release 1.2
% dvips version
%
% All software, documentation, and related files in this distribution of
% psfig/tex are Copyright 1987, 1988 Trevor J. Darrell
%
% Permission is granted for use and non-profit distribution of psfig/tex 
% providing that this notice be clearly maintained, but the right to
% distribute any portion of psfig/tex for profit or as part of any commercial
% product is specifically reserved for the author.
%
% $Header: psfig.tex,v 1.9 88/01/08 17:42:01 trevor Exp $
% $Source: $
%
% Thanks to Greg Hager (GDH) and Ned Batchelder for their contributions
% to this project.
%
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% This file was modified by Yves Schabes (schabes@linc.cis.upenn.edu) .
% March, 1991
%
% It is an extension to Trevor's psfig package. It is identical
% to psfig except that it has an additional option which scales the
% figure.
%
% The scale option specifies the scale (in percentage) at which the
% figure should be drawn, and will allocate the corresponding amount of
% space. The argument to scale should be an integer. The scale option
% overwrites the height and width options.
%
%
% \psfig
% usage : \psfig{figure=,scale=, height=, width=,
%                 bbllx=, bblly=, bburx=, bbury=,
%			rheight=, rwidth=, clip=}
%
% "clip=" is a switch and takes no value, but the `=' must be present.
%
% N.B. bounding boxes must be specified in the file
%
% Here are some examples:
%
% same size
% \psfig{figure=foo.ps,scale=100} 
%
% half the size 
% \psfig{figure=foo.ps,scale=50} 
%
% double size 
% \psfig{figure=foo.ps,scale=200} 
%
% height = 3cm, width scaled to the height
% \psfig{figure=foo.ps,height=3.0cm} 
% 
% width = 3cm, height scaled to the width
% \psfig{figure=foo.ps,width=3.0cm} 
%
% width = 3cm, height = 2.0cm 
% \psfig{figure=foo.ps,width=3.0cm,height=2.0cm} 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\catcode`\@=11\relax
\newwrite\@unused
\def\typeout#1{{\let\protect\string\immediate\write\@unused{#1}}}
\typeout{psfig/tex 1.2-dvips}


%% Here's how you define your figure path.  Should be set up with null
%% default and a user useable definition.

\def\figurepath{./}
\def\psfigurepath#1{\edef\figurepath{#1}}

%
% @psdo control structure -- similar to Latex @for.
% I redefined these with different names so that psfig can
% be used with TeX as well as LaTeX, and so that it will not 
% be vunerable to future changes in LaTeX's internal
% control structure,
%
\def\@nnil{\@nil}
\def\@empty{}
\def\@psdonoop#1\@@#2#3{}
\def\@psdo#1:=#2\do#3{\edef\@psdotmp{#2}\ifx\@psdotmp\@empty \else
    \expandafter\@psdoloop#2,\@nil,\@nil\@@#1{#3}\fi}
\def\@psdoloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
       #5\def#4{#2}\ifx #4\@nnil \else#5\@ipsdoloop #3\@@#4{#5}\fi\fi}
\def\@ipsdoloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil 
       \let\@nextwhile=\@psdonoop \else
      #4\relax\let\@nextwhile=\@ipsdoloop\fi\@nextwhile#2\@@#3{#4}}
\def\@tpsdo#1:=#2\do#3{\xdef\@psdotmp{#2}\ifx\@psdotmp\@empty \else
    \@tpsdoloop#2\@nil\@nil\@@#1{#3}\fi}
\def\@tpsdoloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil 
       \let\@nextwhile=\@psdonoop \else
      #4\relax\let\@nextwhile=\@tpsdoloop\fi\@nextwhile#2\@@#3{#4}}
% 
%
\def\psdraft{
	\def\@psdraft{0}
	%\typeout{draft level now is \@psdraft \space . }
}
\def\psfull{
	\def\@psdraft{100}
	%\typeout{draft level now is \@psdraft \space . }
}
\psfull
\newif\if@prologfile
\newif\if@postlogfile
\newif\if@noisy
\def\pssilent{
	\@noisyfalse
}
\def\psnoisy{
	\@noisytrue
}
\psnoisy
%%% These are for the option list.
%%% A specification of the form a = b maps to calling \@p@@sa{b}
\newif\if@bbllx
\newif\if@bblly
\newif\if@bburx
\newif\if@bbury
\newif\if@height
\newif\if@width
\newif\if@scale
\newif\if@rheight
\newif\if@rwidth
\newif\if@clip
\newif\if@verbose
\def\@p@@sclip#1{\@cliptrue}

%%% GDH 7/26/87 -- changed so that it first looks in the local directory,
%%% then in a specified global directory for the ps file.

\def\@p@@sfile#1{\def\@p@sfile{null}%
	        \openin1=#1
		\ifeof1\closein1%
		       \openin1=\figurepath#1
			\ifeof1\typeout{Error, File #1 not found}
			\else\closein1
			    \edef\@p@sfile{\figurepath#1}%
                        \fi%
		 \else\closein1%
		       \def\@p@sfile{#1}%
		 \fi}
\def\@p@@sfigure#1{\def\@p@sfile{null}%
	        \openin1=#1
		\ifeof1\closein1%
		       \openin1=\figurepath#1
			\ifeof1\typeout{Error, File #1 not found}
			\else\closein1
			    \def\@p@sfile{\figurepath#1}%
                        \fi%
		 \else\closein1%
		       \def\@p@sfile{#1}%
		 \fi}

\def\@p@@sbbllx#1{
		%\typeout{bbllx is #1}
		\@bbllxtrue
		\dimen100=#1
		\edef\@p@sbbllx{\number\dimen100}
}
\def\@p@@sbblly#1{
		%\typeout{bblly is #1}
		\@bbllytrue
		\dimen100=#1
		\edef\@p@sbblly{\number\dimen100}
}
\def\@p@@sbburx#1{
		%\typeout{bburx is #1}
		\@bburxtrue
		\dimen100=#1
		\edef\@p@sbburx{\number\dimen100}
}
\def\@p@@sbbury#1{
		%\typeout{bbury is #1}
		\@bburytrue
		\dimen100=#1
		\edef\@p@sbbury{\number\dimen100}
}
\def\@p@@sscale#1{
		\@scaletrue
		\count255=#1
   		\edef\@p@sscale{\number\count255}
		%\typeout{Scale is \@p@sscale}
}
\def\@p@@sheight#1{
		\@heighttrue
		\dimen100=#1
   		\edef\@p@sheight{\number\dimen100}
		%\typeout{Height is \@p@sheight}
}
\def\@p@@swidth#1{
		%\typeout{Width is #1}
		\@widthtrue
		\dimen100=#1
		\edef\@p@swidth{\number\dimen100}
}
\def\@p@@srheight#1{
		%\typeout{Reserved height is #1}
		\@rheighttrue
		\dimen100=#1
		\edef\@p@srheight{\number\dimen100}
}
\def\@p@@srwidth#1{
		%\typeout{Reserved width is #1}
		\@rwidthtrue
		\dimen100=#1
		\edef\@p@srwidth{\number\dimen100}
}
\def\@p@@ssilent#1{ 
		\@verbosefalse
}
\def\@p@@sprolog#1{\@prologfiletrue\def\@prologfileval{#1}}
\def\@p@@spostlog#1{\@postlogfiletrue\def\@postlogfileval{#1}}
\def\@cs@name#1{\csname #1\endcsname}
\def\@setparms#1=#2,{\@cs@name{@p@@s#1}{#2}}
%
% initialize the defaults (size the size of the figure)
%
\def\ps@init@parms{
		\@bbllxfalse \@bbllyfalse
		\@bburxfalse \@bburyfalse
		\@heightfalse \@widthfalse
		\@scalefalse
		\@rheightfalse \@rwidthfalse
		\def\@p@sbbllx{}\def\@p@sbblly{}
		\def\@p@sbburx{}\def\@p@sbbury{}
		\def\@p@sheight{}\def\@p@swidth{}
		\def\@p@sscale{}
		\def\@p@srheight{}\def\@p@srwidth{}
		\def\@p@sfile{}
		\def\@p@scost{10}
		\def\@sc{}
		\@prologfilefalse
		\@postlogfilefalse
		\@clipfalse
		\if@noisy
			\@verbosetrue
		\else
			\@verbosefalse
		\fi
}
%
% Go through the options setting things up.
%
\def\parse@ps@parms#1{
	 	\@psdo\@psfiga:=#1\do
		   {\expandafter\@setparms\@psfiga,}}
%
% Compute bb height and width
%
\newif\ifno@bb
\newif\ifnot@eof
\newread\ps@stream
\def\bb@missing{
	\if@verbose{
		\typeout{psfig: searching \@p@sfile \space  for bounding box}
	}\fi
	\openin\ps@stream=\@p@sfile
	\no@bbtrue
	\not@eoftrue
	\catcode`\%=12
	\loop
		\read\ps@stream to \line@in
		\global\toks200=\expandafter{\line@in}
		\ifeof\ps@stream \not@eoffalse \fi
		%\typeout{ looking at :: \the\toks200 }
		\@bbtest{\toks200}
		\if@bbmatch\not@eoffalse\expandafter\bb@cull\the\toks200\fi
	\ifnot@eof \repeat
	\catcode`\%=14
}	
\catcode`\%=12
\newif\if@bbmatch
\def\@bbtest#1{\expandafter\@a@\the#1%%BoundingBox:\@bbtest\@a@}
\long\def\@a@#1%%BoundingBox:#2#3\@a@{\ifx\@bbtest#2\@bbmatchfalse\else\@bbmatchtrue\fi}
\long\def\bb@cull#1 #2 #3 #4 #5 {
	\dimen100=#2 bp\edef\@p@sbbllx{\number\dimen100}
	\dimen100=#3 bp\edef\@p@sbblly{\number\dimen100}
	\dimen100=#4 bp\edef\@p@sbburx{\number\dimen100}
	\dimen100=#5 bp\edef\@p@sbbury{\number\dimen100}
	\no@bbfalse
}
\catcode`\%=14
%
\def\compute@bb{
		\no@bbfalse
		\if@bbllx \else \no@bbtrue \fi
		\if@bblly \else \no@bbtrue \fi
		\if@bburx \else \no@bbtrue \fi
		\if@bbury \else \no@bbtrue \fi
		\ifno@bb \bb@missing \fi
		\ifno@bb \typeout{FATAL ERROR: no bb supplied or found}
			\no-bb-error
		\fi
		%
		\count203=\@p@sbburx
		\count204=\@p@sbbury
		\advance\count203 by -\@p@sbbllx
		\advance\count204 by -\@p@sbblly
		\edef\@bbw{\number\count203}
		\edef\@bbh{\number\count204}
		%\typeout{ bbh = \@bbh, bbw = \@bbw }
}
%
% \in@hundreds performs #1 * (#2 / #3) correct to the hundreds,
%	then leaves the result in @result
%
\def\in@hundreds#1#2#3{\count240=#2 \count241=#3
		     \count100=\count240	% 100 is first digit #2/#3
		     \divide\count100 by \count241
		     \count101=\count100
		     \multiply\count101 by \count241
		     \advance\count240 by -\count101
		     \multiply\count240 by 10
		     \count101=\count240	%101 is second digit of #2/#3
		     \divide\count101 by \count241
		     \count102=\count101
		     \multiply\count102 by \count241
		     \advance\count240 by -\count102
		     \multiply\count240 by 10
		     \count102=\count240	% 102 is the third digit
		     \divide\count102 by \count241
		     \count200=#1\count205=0
		     \count201=\count200
			\multiply\count201 by \count100
		 	\advance\count205 by \count201
		     \count201=\count200
			\divide\count201 by 10
			\multiply\count201 by \count101
			\advance\count205 by \count201
			%
		     \count201=\count200
			\divide\count201 by 100
			\multiply\count201 by \count102
			\advance\count205 by \count201
			%
		     \edef\@result{\number\count205}
}
\def\compute@wfromh{
		% computing : width = height * (bbw / bbh)
		\in@hundreds{\@p@sheight}{\@bbw}{\@bbh}
		%\typeout{ \@p@sheight * \@bbw / \@bbh, = \@result }
		\edef\@p@swidth{\@result}
		%\typeout{w from h: width is \@p@swidth}
}
\def\compute@hfromw{
		% computing : height = width * (bbh / bbw)
		\in@hundreds{\@p@swidth}{\@bbh}{\@bbw}
		%\typeout{ \@p@swidth * \@bbh / \@bbw = \@result }
		\edef\@p@sheight{\@result}
		%\typeout{h from w : height is \@p@sheight}
}
%% yves
\def\compute@wfroms{
		%\typeout{computewfroms: scale is \@p@sscale}	
		% computing : width = scale * (bbw / 100)
		\in@hundreds{\@p@sscale}{\@bbw}{100}
		%\typeout{ \@p@sscale * \@bbw / 100, = \@result }
		\edef\@p@swidth{\@result}
		%\typeout{w from s: width is \@p@swidth}
}
\def\compute@hfroms{
		%\typeout{computehfroms: scale is \@p@sscale}	
		% computing : height = scale * (bbh / 100)
		\in@hundreds{\@p@sscale}{\@bbh}{100}
		%\typeout{ \@p@sscale * \@bbh / 100 = \@result }
		\edef\@p@sheight{\@result}
		%\typeout{h from s : height is \@p@sheight}
}
\def\compute@handw{
		\if@scale
%			\edef\@p@sheight{\@bbh}
%			\edef\@p@swidth{\@bbw}
			\compute@wfroms
			\compute@hfroms
		\else
			\if@height 
				\if@width
				\else
					\compute@wfromh
				\fi	
			\else 
				\if@width
					\compute@hfromw
				\else
					\edef\@p@sheight{\@bbh}
					\edef\@p@swidth{\@bbw}
				\fi
			\fi
		\fi
}
%% finish
\def\compute@resv{
		\if@rheight \else \edef\@p@srheight{\@p@sheight} \fi
		\if@rwidth \else \edef\@p@srwidth{\@p@swidth} \fi
}
%		
% Compute any missing values
\def\compute@sizes{
	\compute@bb
	\compute@handw
	\compute@resv
}
%
% \psfig
% usage : \psfig{file=, height=, width=, bbllx=, bblly=, bburx=, bbury=,
%			rheight=, rwidth=, clip=}
%
% "clip=" is a switch and takes no value, but the `=' must be present.
\def\psfig#1{\vbox {
	% do a zero width hard space so that a single
	% \psfig in a centering enviornment will behave nicely
	%{\setbox0=\hbox{\ }\ \hskip-\wd0}
	%
	\ps@init@parms
	\parse@ps@parms{#1}
	\compute@sizes
	%
	\ifnum\@p@scost<\@psdraft{
		\if@verbose{
			\typeout{psfig: including \@p@sfile \space }
		}\fi
		%
		\special{ps::[begin] 	\@p@swidth \space \@p@sheight \space
				\@p@sbbllx \space \@p@sbblly \space
				\@p@sbburx \space \@p@sbbury \space
				startTexFig \space }
		\if@clip{
			\if@verbose{
				\typeout{(clip)}
			}\fi
			\special{ps:: doclip \space }
		}\fi
		\if@prologfile
		    \special{ps: plotfile \@prologfileval \space } \fi
		\special{ps: plotfile \@p@sfile \space }
		\if@postlogfile
		    \special{ps: plotfile \@postlogfileval \space } \fi
		\special{ps::[end] endTexFig \space }
		% Create the vbox to reserve the space for the figure
		\vbox to \@p@srheight true sp{
			\hbox to \@p@srwidth true sp{
				\hss
			}
		\vss
		}
	}\else{
		% draft figure, just reserve the space and print the
		% path name.
		\vbox to \@p@srheight true sp{
		\vss
			\hbox to \@p@srwidth true sp{
				\hss
				\if@verbose{
					\@p@sfile
				}\fi
				\hss
			}
		\vss
		}
	}\fi
}}
\def\psglobal{\typeout{psfig: PSGLOBAL is OBSOLETE; use psprint -m instead}}
\catcode`\@=12\relax


% bus_card.tex, Brian Moses [moses@ms.uky.edu], October '95
% further modified by Charles Danforth [danforth@pha.jhu.edu], January 2000

\documentstyle{article}

%%%%%%%%%%%%%%%%%%%%% DEFINE USER SPECIFIC MACROS BELOW %%%%%%%%%%%%%%%%%%%%%
\def\Who     {Charles W. Danforth}
\def\What    {Graduate Student}
\def\Where   {Department of Physics and Astronomy}
\def\Address {3400 N. Charles St.}
\def\CityZip {Baltimore, MD 21218}
\def\Email   {danforth@pha.jhu.edu}
\def\TEL     {(410) 516-6480}
\def\FAX     {}
\def\URL     {http://www.pha.jhu.edu/$\sim$danforth} % NOTE: use $\sim$ for tilde

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MARGINS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\textwidth       7.00in
\textheight     10.50in
%\textheight      4.50in
\oddsidemargin   -.25in
\evensidemargin  -.25in
\topmargin      -0.90in
\itemindent      0.00in
\parindent       0.00in

%%%%%%%%%%%%%%%%%%%%% BUSINESS CARD MACRO [\card] BELOW %%%%%%%%%%%%%%%%%%%%
\def\card{\begin{tabular}{c}
	   \psfig{figure=jhu_seal.ps,%
                  bbllx=295pt,%
                  bblly=420pt,%
                  bburx=-10pt,%
                  bbury=430pt}%
          \Large
          \begin{tabular}[t]{l}
          \hspace*{.55in} JOHNS HOPKINS \\
          \hspace*{.55in} UNIVERSITY \\
          \hspace*{.55in} 
          \rule[1.75ex]{2.10in}{.5pt}\\%
          \end{tabular}%

          \normalsize\\
          {\Large      \Who}\\
          {\normalsize \What}\\
          {\normalsize \Where}%
          \rule[-2ex]{0ex}{2ex}\\
          \small%

          \begin{tabular}[b]{lr}
          \Address & {\footnotesize Tel}: \TEL\\
          \CityZip & \Email\\
          \end{tabular}\\

	  \footnotesize \URL%

          \end{tabular}}%

%%%%%%%%%%%%%%%%%%%%%%%%%%%% BEGIN DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\input{psfig}
\pagestyle{empty}
\begin{document}
\typeout{<card.tex, Brian Moses>}
\setlength{\unitlength}{1in}%
\begin{picture}(7.0,10)%
\put(00.0,08.0){\makebox(3.5,2.0){\card}}  %  Change \makebox to \framebox
\put(03.5,08.0){\makebox(3.5,2.0){\card}}  %  to produce a visual box for
\put(00.0,06.0){\makebox(3.5,2.0){\card}}  %  previewing purposes.
\put(03.5,06.0){\makebox(3.5,2.0){\card}}
\put(00.0,04.0){\makebox(3.5,2.0){\card}}
\put(03.5,04.0){\makebox(3.5,2.0){\card}}
\put(00.0,02.0){\makebox(3.5,2.0){\card}}
\put(03.5,02.0){\makebox(3.5,2.0){\card}}
\put(00.0,00.0){\makebox(3.5,2.0){\card}}
\put(03.5,00.0){\makebox(3.5,2.0){\card}}
\end{picture}
\end{document}
% =========================================================================
% File Name: c.tex
% Last Modification Date: %G%     %U%
% Current Version: %M%    %I%
% File Creation Date: Sat Apr 20 22:52:24 1996
% Author: Jan Erik Odegard  <odegard@ece.rice.edu>
%
% Copyright: All software, documentation, and related files in this
%            distribution are Copyright (c) 1996  Rice University
% =========================================================================
\documentclass[11pt]{article}
\usepackage[dvips]{graphicx}
\usepackage{latexsym}
\usepackage{times}
\pagestyle{empty}
\setlength{\textwidth}{8in}
\setlength{\oddsidemargin}{-1in}
\setlength{\evensidemargin}{-1in}
\setlength{\textheight}{10in}
\setlength{\topmargin}{-1in}
\newcommand{\clogo}{\includegraphics[scale=0.7]{./RiceLogoBlue.eps}}
%\newcommand{\clogo}{}
%
% EDIT THE FOLLOWING VARIABLES
%
\newcommand{\cname}{Jan Erik Odegard, Ph.D.}
\newcommand{\ctitlea}{Executive Director and Research}
\newcommand{\ctitleb}{Associate, CML, Computational}
\newcommand{\ctitlec}{Mathematics Laboratory}
\newcommand{\cadra}{Rice University}
\newcommand{\cadrb}{Electrical and Computer Engineering}
\newcommand{\cadrc}{6100 Main Street}
\newcommand{\cadrd}{Houston, Texas 77005-1892}
\newcommand{\cphone}{713-285-5932}
\newcommand{\cfax}{713-524-5237}
\newcommand{\cemail}{odegard@rice.edu}
\newcommand{\curla}{http:$/\!/$cml.rice.edu/}
\newcommand{\curlb}{http:$/\!/$www-dsp.rice.edu/}
\begin{document}
\setlength{\unitlength}{1mm}
\begin{picture}(200,240)(-7,0)
  \multiput(0,0)(0,56){4}{%
    \multiput(0,0)(95,0){2}{
      \begin{picture}(89,51)(0,0)
        \put(0,52){\line(0,1){3}}
        \put(-1,51){\line(-1,0){3}}
        \put(89,52){\line(0,1){3}}
        \put(90,51){\line(1,0){3}}
        \put(3,48){\line(1,0){83}}
        \put(35,42){\large\cname}
        \put(35,39){\textsc{\scriptsize\ctitlea}}
        \put(35,36){\textsc{\scriptsize\ctitleb}}
        \put(35,33){\textsc{\scriptsize\ctitlec}}
        \put(35,27){\scriptsize \cadra}
        \put(35,24){\scriptsize \cadrb}
        \put(35,21){\scriptsize \cadrc}
        \put(35,18){\scriptsize \cadrd}
        \put(35,11){\textsc{\scriptsize E-mail:}}
        \put(49,11){\scriptsize \cemail}
        \put(35,8){\textsc{\scriptsize url cml:}}
        \put(49,8){\scriptsize \curla}
        \put(35,5){\textsc{\scriptsize url dsp:}}
        \put(49,5){\scriptsize \curlb}
        \put(5,20){\clogo}
        \put(5,8){\textsc{\scriptsize Phone:}}
        \put(15,8){\scriptsize \cphone}
        \put(5,5){\textsc{\scriptsize Fax:}}
        \put(15,5){\scriptsize \cfax}
        \put(3,3){\line(1,0){83}}
        \put(0,-1){\line(0,-1){3}}
        \put(-1,0){\line(-1,0){3}}
        \put(89,-1){\line(0,-1){3}}
        \put(90,0){\line(1,0){3}}
      \end{picture}}}
\end{picture}
\end{document}


% =========================================================================
% File Name: c.tex
% Last Modification Date: %G%     %U%
% Current Version: %M%    %I%
% File Creation Date: Sat Apr 20 22:52:24 1996
% Author: Jan Erik Odegard  <odegard@ece.rice.edu>
%
% Copyright: All software, documentation, and related files in this
%            distribution are Copyright (c) 1996  Rice University
% =========================================================================
\documentclass[11pt]{article}
\usepackage[dvips]{graphicx}
\usepackage{latexsym}
\usepackage{times}
\pagestyle{empty}
\setlength{\textwidth}{8in}
\setlength{\oddsidemargin}{-1in}
\setlength{\evensidemargin}{-1in}
\setlength{\textheight}{10in}
\setlength{\topmargin}{-1in}
\newcommand{\clogo}{\includegraphics[scale=0.7]{gestalt.ps}}
%\newcommand{\clogo}{}
%
% EDIT THE FOLLOWING VARIABLES
%
\newcommand{\cadra}{The Gestalt System}
\newcommand{\curlb}{http:$/\!/$gestalt-system.sourceforge.net/}
\newcommand{\csig}{What part of "Gestalt" don't you understand?}

\newcommand{\cname}{Karsten M. Self}
\newcommand{\ctitlea}{Project Founder / Geek for Hire}
\newcommand{\cadrc}{1053 Laurel St.}
\newcommand{\cadrd}{Menlo Park, CA 94025}
\newcommand{\cphone}{650.566.9895}
\newcommand{\ccell}{650.575.8512}
\newcommand{\cemail}{kmself@ix.netcom.com}
\newcommand{\curla}{http:$/\!/$kmself.home.netcom.com/}

\newcommand{\cservca}{Linux \& Unix System Administration, Networking, Security}
\newcommand{\cservcb}{RDBMS: MySQL, Postgres, Oracle, DB2}
\newcommand{\cservcc}{Programming: Perl, Python, SAS, R}

\begin{document}
\setlength{\unitlength}{1mm}
\begin{picture}(200,240)(-7,0)
  \multiput(0,0)(0,56){4}{%
    \multiput(0,0)(95,0){2}{
      \begin{picture}(89,51)(0,0)

	% This creates 'cut' lines 
        \put(0,52){\line(0,1){3}}
        \put(-1,51){\line(-1,0){3}}
        \put(89,52){\line(0,1){3}}
        \put(90,51){\line(1,0){3}}

	% Logo goes here
        \put(2,44){\clogo}
        \put(3,43){\ttfamily{\tiny \cadra}}
        \put(3,41){\ttfamily{\tiny \curlb}}
        % \put(3,39){\ttfamily{\tiny \csig}}

	% Personal info here
	\sf
        \put(38,34){\small{\bfseries{\cname}}}
        \put(38,31){\textsc{\scriptsize\ctitlea}}
        \put(38,28){\scriptsize \cadrc}
        \put(38,25){\scriptsize \cadrd}
        \put(38,22){\scriptsize \cemail}
        \put(38,19){\scriptsize \cphone}
        \put(38,16){\scriptsize \ccell\  \tiny mobile/msg}

	% "Services" descriptions here
        \put(3,10){\tiny \cservca}
        \put(3,8){\tiny \cservcb}
        \put(3,6){\tiny \cservcc}

	\put(3,2){\ttfamily{\scriptsize{\bfseries{\csig}}}}

	% Visualize the card.... (adds outline)
	% \put(1,0){\line(1,0){87}}
	% \put(1,51){\line(1,0){87}}
	% \put(0,1){\line(0,1){49}}
	% \put(89,1){\line(0,1){49}}

	% More 'cut' lines
        \put(0,-1){\line(0,-1){3}}
        \put(-1,0){\line(-1,0){3}}
        \put(89,-1){\line(0,-1){3}}
        \put(90,0){\line(1,0){3}}

      \end{picture}}}
\end{picture}
\end{document}

Attachment: gestalt.ps
Description: PostScript document

Attachment: pgpan25623awj.pgp
Description: PGP signature


Reply to: