%buscard.sty version 1.5 30 Apr 93
%changes: 1.1: now works if empty entries present, can even print a blank card
%         1.2: uses psfig macros to set seal, 
%              new command to specify organization name and seal file
%         1.3: puts small cut marks instead of boxes around cards
%         1.4: adds specifications for sealwidth, sealheight, and sealoffset
%         1.5: made more robust for non-NFSS users (by edwin@cs.ucla.edu)
%business card style by Mark A. Roth, 22 Dec 92.  Email: mroth@afit.af.mil
%see end of file for example of use.
\documentstyle{article}
\nofiles
\makeatletter
%I need a 7pt sans serif font, which the standard LaTeX NFSS set doesn't have
\@ifundefined{new@fontshape}
  {\errmessage{Sorry.  The default fonts in this style require the new font 
               selection scheme. You'll have to modify it to work with old 
               style LaTeX.}}
  {\new@fontshape{cmss}{m}{n}{%
      <5>cmss8 at5pt%
      <6>cmss8 at6pt%
      <7>cmss8 at7pt%
      <8>cmss8%
      <9>cmss9%
      <10>cmss10%
      <11>cmss10 at10.95pt%
      <12>cmss12%
      <14>cmss12 at14.4pt%
      <17>cmss17%
      <20>cmss17 at20.74pt%
      <25>cmss17 at24.88pt%
      }{}}
\pagestyle{empty}
\oddsidemargin -.25in \evensidemargin -.25in \marginparsep 0pt 
\textwidth 7.1in \textheight 11in \topmargin -54pt \tabcolsep 0pt
\newdimen\cardwidth \newdimen\cardcontentheight \newdimen\cardcontentwidth
\newdimen\psfigsealheight \newdimen\psfigsealwidth
\cardwidth 3.5in \cardcontentheight 108.5pt \cardcontentwidth 225pt
\newdimen\headerwidth \headerwidth\cardcontentwidth 
\headheight 0pt \headsep 0pt \parindent 0pt \parskip 0pt \footheight 0pt
%
%new def of @iframebox to get partial tic marks instead of boxes
%comment this out if you want whole boxes as in version 1.2
%if there's a better way please let me know
%
\long\def\@iframebox[#1][#2]#3{\leavevmode
  \savebox\@tempboxa[#1][#2]{\kern\fboxsep #3\kern\fboxsep}\@tempdima\fboxrule
    \advance\@tempdima \fboxsep \advance\@tempdima \dp\@tempboxa
   \hbox{\lower \@tempdima\hbox
  {\vbox{\hrule \@height \fboxrule \@width 3pt
          \hbox{\vrule \@height 3pt \@width \fboxrule \hskip-\fboxrule
              \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}\hskip
                  -\fboxrule\vrule \@height 3pt \@width \fboxrule}%
                  \hrule \@height \fboxrule \@width 3pt}}}}
%
\def\bc@e{}
\def\bc@organization{\mbox{}\\[2pt]}
\def\organization#1{\ifx\bc@e#1\else\def\bc@organization{#1\\[2pt]}\fi}
\def\bc@department{\mbox{}\\}
\def\department#1{\ifx\bc@e#1\else\def\bc@department{#1\\}\fi}
\def\bc@name{}
\def\name#1{\ifx\bc@e#1\else\def\bc@name{\ \\[-20pt]#1\\}\fi}
\def\bc@rank{}
\def\rank#1{\ifx\bc@e#1\else\def\bc@rank{#1\\}\fi}
\def\bc@title{}
\def\title#1{\ifx\bc@e#1\else\def\bc@title{#1\\}\fi}
\def\bc@right{}
\def\right#1{\def\bc@right{#1}}
\def\bc@left{}
\def\left#1{\def\bc@left{#1}}
\def\bc@email{}
\def\email#1{\def\bc@email{#1}}
\def\bc@workphone{}
\def\workphone#1{\def\bc@workphone{#1}}
\def\bc@fax{}
\def\fax#1{\def\bc@fax{#1}}
\def\bc@address{}
\def\address#1{\def\bc@address{#1}}
\def\bc@sealheight{0pt}\def\bc@sealwidth{0pt}
\def\bc@sealfile{}\def\bc@sealoffset{0pt}
\newif\if@sealhere \@sealherefalse
\def\seal#1{\ifx\bc@e#1\else%
\def\bc@sealfile{#1}\if@sealhere\else\input psfig \pssilent\@sealheretrue\fi\fi}
\def\sealwidth#1{\ifx\bc@e#1\else\def\bc@sealwidth{#1}%
\setlength{\psfigsealwidth}{\bc@sealwidth}%
\addtolength{\psfigsealwidth}{2.3pt}%
\addtolength{\headerwidth}{-\psfigsealwidth}\fi}
\def\sealheight#1{\ifx\bc@e#1\else\def\bc@sealheight{#1}%
\setlength{\psfigsealheight}{\bc@sealheight}%
\addtolength{\psfigsealheight}{2.3pt}\fi}
\def\sealoffset#1{\ifx\bc@e#1\else\def\bc@sealoffset{#1}\fi}
\fboxsep 17pt
\def\bc@makecard{\ \hspace*{-10.4pt}\vspace*{-.7pt}
\ifx\bc@right\bc@e\def\bc@right{\bc@email\hspace*{2pt}\\\bc@workphone\\%
\ifx\bc@fax\bc@e\else FAX: \bc@fax\fi}\fi
\ifx\bc@left\bc@e\def\bc@left{\bc@address}\fi
\framebox[\cardwidth]{%
\begin{minipage}{\cardcontentwidth}
\vbox to \cardcontentheight{
\if@sealhere
\ifx\bc@sealwidth\bc@e\errmessage{You must specify sealwidth and sealheight.}\fi
\vspace*{-8pt}
%print the seal scaled to fit specified width
\vbox to \psfigsealheight{\hbox to \psfigsealwidth{
\psfig{figure=\bc@sealfile,height=\bc@sealheight,width=\bc@sealwidth}%
}
\vspace*{-\bc@sealheight}\hspace*{\bc@sealwidth}%
\begin{minipage}[t]{\headerwidth}
\begin{center}
{\footnotesize\sf \bc@organization}
{\scriptsize\sf \bc@department}
\end{center}
\end{minipage}
}
\vfill
\vspace*{\bc@sealoffset}
\else %if no seal
\begin{center}
{\footnotesize\sf \bc@organization}
{\scriptsize\sf \bc@department}
\end{center}
\fi %end of if@sealhere
%
\vfill
%if name, rank, and title all empty then print a blank
\ifx\bc@name\bc@e\ifx\bc@rank\bc@e\ifx\bc@title\bc@e\def\bc@name{\mbox{}}%
\fi\fi\fi
\begin{center}
{\large\rm\bc@name}
{\scriptsize\sf\bc@rank}
{\scriptsize\sf\bc@title}
\end{center}
\vfill

\hbox to \cardcontentwidth{
\scriptsize\sf
\begin{tabular}[b]{l}
\bc@left
\end{tabular}
\hfill
\begin{tabular}[b]{r}
\bc@right
\end{tabular}
} %end hbox to cardcontentwidth
} %end vbox to cardcontentheight
\end{minipage} %end of minipage
} %end of framebox
} %end \bc@makecard

\newdimen\twocardwidth\twocardwidth2\cardwidth
\addtolength{\twocardwidth}{-\fboxrule}
\def\bc@topvertcut{\ \hspace*{-13.7pt}
\hbox to \twocardwidth{%
\vrule height 3pt width \fboxrule\hfill
\vrule height 3pt width \fboxrule\hfill
\vrule height 3pt width \fboxrule}\vskip-1pt}
\newcounter{card} \newcounter{printedcard} \newcounter{pagecard}
\def\makecard#1{%
\bc@topvertcut\par%
\ \hspace*{-6.7pt}%
\setcounter{card}{#1}\setcounter{printedcard}{0}\setcounter{pagecard}{0}%
\@whilenum\c@card>\c@printedcard\do%
  {\bc@makecard\bc@makecard\newline%
   \addtocounter{printedcard}{2}%
   \addtocounter{pagecard}{1}%
   \ifnum\c@pagecard=5%
     \ifnum\c@card>\c@printedcard%
       \newpage\setcounter{pagecard}{0}\bc@topvertcut\ \hspace*{-6.7pt}%
     \fi%
   \fi%
  }%end while
}%end makecard
\makeatother
\endinput
%sample file to create business cards; change this file to
%hold your information and feed it to your favorite LaTeX processor.
%send comments/problems to Mark Roth, mroth@afit.af.mil
%
%Fill in the following with your info, \address gets printed in the
%lower left corner, \email, \workphone and \fax in the lower right corner.
%If you want to do your own thing in the corners use commands \left and
%\right, separating lines with \\
%
\documentstyle{buscard}
%
%the seal is an encapsulated PostScript file, leave out it you don't have one
\seal{sealname.eps}
%the desired seal width and height must be specified, the style will scale
%your seal image to this width and height. Make sure your image specifies
%the minimal bounding box.  An adjustment for vertical height of the seal
%can be made by specifying a dimension for sealoffset.
\sealheight{dimen} %specify height of seal, e.g., .5in, 50pt, ...
\sealwidth{dimen} %specify width of seal, e.g., .5in, 50pt, ...
\sealoffset{dimen} %specify vertical adjustment after seal, e.g., .5in, -50pt
   %make this space adjustment if your name, etc. doesn't look centered
%
%the department is printed under the organization name at the top of the card
%leave them out if you don't want them
\organization{UNIVERSITY OF TYPESETTING}
\department{Dept. of Electrical and Computer Engineering}
%
%the next three entries are centered in the middle of the card
\name{JOHN J. DOE, Ph.D.}  %this format is up to you!
\rank{MAJOR, USAF}         %all fields are optional
\title{PROFESSOR OF ELECTRICAL ENGINEERING}
%
%lower left corner
\address{First Line\\ Second Line\\ Third Line}
%
%lower right corner
\email{doe@somewhere}
\workphone{(555) 555-5555, DSN 555-5555}
\fax{(555) 555-5555, DSN 555-5555} %word FAX is automatically supplied
%
%this is the same info using \right
%\right{doe@somewhere\\
%       (555) 555-5555, DSN 555-5555\\
%       FAX: (555) 555-5555, DSN 555-5555}  %you have to supply word FAX
%
%if you don't want cut marks around the cards uncomment the following line
%\fboxrule 0pt
\begin{document}
              %this command prints the cards, 10 per page, in even numbers
\makecard{2}  %change the number here to the number of cards you want 
              %don't try more than 10 to start, just in case don't like
	      %your cards on the first attempt
\end{document}
