rearranging
[ozzloy@gmail.com/cv] / examples / mike_lundy / resume.cls
diff --git a/examples/mike_lundy/resume.cls b/examples/mike_lundy/resume.cls
new file mode 100644 (file)
index 0000000..7e9c5b2
--- /dev/null
@@ -0,0 +1,265 @@
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+
+\ProvidesClass{resume}
+              [2007/02/18 v1.2
+               (My Resume Class)]
+
+\DeclareOption*{%
+    \PassOptionsToClass{\CurrentOption}{article}%
+    \PassOptionsToClass{\CurrentOption}{geometry}%
+}
+\ProcessOptions
+
+\LoadClass{article}
+\newlength{\@horizmargin}
+\newlength{\@vertmargin}
+
+\setlength{\@horizmargin}{0.5in}
+\setlength{\@vertmargin}{0.4in}
+
+\RequirePackage[left=\@horizmargin,right=\@horizmargin,top=\@vertmargin,bottom=\@vertmargin]{geometry}
+\RequirePackage{calc}
+\RequirePackage{enumitem}
+\RequirePackage{fancyhdr}
+\RequirePackage{eso-pic}
+
+\setitemize[1]{nolistsep}
+\setitemize[2]{nolistsep}
+
+\pagestyle{fancy}
+
+\let\@oddhead\@empty
+\let\@evenhead\@empty
+\cfoot{\thepage\ of \pageref{@End}}
+
+\newlength{\@myskip}
+\setlength{\@myskip}{5pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{0pt}
+\setlength{\tabskip}{0pt}
+
+\def\baselinestretch{0.9}
+\def\arraystretch{0.3}
+
+\newlength{\@lwidth}
+\newlength{\@mwidth}
+
+\setlength{\@lwidth}{0.65in}
+\setlength{\@mwidth}{.75cm}
+
+\newdimen\@topfirst
+\def\@uglyhack{10pt}
+
+\AddToShipoutPicture{%
+  \begingroup
+  \setlength{\@tempdima}{\@lwidth + \@horizmargin + \@mwidth}%
+  \setlength{\@tempdimb}{\paperheight-\@topfirst-\@vertmargin}%
+  \linethickness{\LenToUnit{0.4pt}}%
+  \put(\LenToUnit{\@tempdima},\LenToUnit{0pt}){%
+    \framebox(0,\LenToUnit{\@tempdimb}){}}%
+  \endgroup
+  \global\@topfirst=\@uglyhack
+}
+
+\newlength{\tmp@rule}
+\def\shiftrule#1{%
+    \vbox to #1{
+        \vss
+        \hrule width \linewidth height 0.4pt depth 0pt
+        \vss
+    }
+}
+
+\newcommand{\myline}[1][0.5\@myskip]{\shiftrule{#1}}
+
+\newlength{\tmp@block}
+\newenvironment{block}[1][]{%
+    \def\@arg{#1}%
+    \setlength{\tmp@block}{\linewidth - \@lwidth - \@mwidth - 3.65pt}%
+    \ifx\@arg\empty\else\myline\nobreak\fi
+    \halign to \linewidth\bgroup
+            \vtop{\hsize=\@lwidth   \tabskip=\@mwidth   ##\hfill} &
+            \vtop{\hsize=\tmp@block \tabskip=0pt        ##\hfill}\cr
+
+            \vtop{\raggedright\catform{#1}} &
+            \vtop\bgroup\setlength{\linewidth}{\tmp@block}%
+}{%
+    \egroup \cr \egroup
+}
+
+\def\catform#1{\textsc{#1}}
+\def\locform#1{\textbf{#1}}
+\def\dateform#1{{\small\textsl{#1}}}
+\def\jobform#1{{\small#1}}
+
+\def\job#1#2#3{\jobform{#1}\leaders\hbox to 0.75em{\hss.\hss}\hfill\dateform{#2 -- #3}\par}
+
+\newcounter{sec}
+\newcounter{place}[sec]
+
+\def\thesec{Section: \arabic{sec}}
+\def\theplace{Place: \arabic{place}}
+
+\def\interplace{\myline[\@myskip]}
+
+\newif\ifshowrefs
+\newif\ifclosed
+
+\renewenvironment{section}[1]{%
+    \stepcounter{sec}%
+    \gdef\secname{#1}%
+    \begin{block}[\secname]%
+    \closedfalse
+}{%
+    \ifclosed\else\end{block}\fi
+}
+
+\newif\if@newpg\@newpgfalse
+\newif\if@lastodd\@lastoddtrue
+
+\def\getpagenum#1{%
+    \edef\@tempa{\@nameuse{r@#1}}
+    \edef\thispage{\expandafter\@cdr\@tempa\@nil\space}%
+    \ifx\thispage\space\def\thispage{0}\fi%
+}
+
+\def\setnew#1{%
+    \getpagenum{end-#1}
+    \ifodd\thispage
+        \if@lastodd
+            \global\@newpgfalse
+        \else
+            \global\@newpgtrue
+        \fi
+        \global\@lastoddtrue
+    \else
+        \if@lastodd
+            \global\@newpgtrue
+        \else
+            \global\@newpgfalse
+        \fi
+        \global\@lastoddfalse
+    \fi
+}
+
+\newlength{\@pagetotal}
+
+\newenvironment{place}[2][]{%
+    \setnew{#2}%
+    \stepcounter{place}%
+    \ifdim\@topfirst=\@uglyhack\else
+        \ifdim\@topfirst=0pt
+            \setlength\@pagetotal{\pagetotal-0.4pt}
+            \global\@topfirst=\@pagetotal
+        \fi
+    \fi
+    \ifnum\value{place}=\@ne
+    \else
+        \if@newpg
+            \begin{block}[\secname\space (cont.)]%
+            \global\@newpgfalse
+        \else
+            \begin{block}%
+            \interplace
+        \fi
+    \fi
+    \gdef\placename{#2}%
+    #1 \locform{\placename}\par
+}{%
+    \end{block}\label{end-\placename}\closedtrue
+}
+
+\def\items{\begin{itemize}}
+\def\enditems{\end{itemize}}
+
+% This creates a list type.
+%   #1: name
+%   #2: what \and expands to
+%   #3: prefix
+\long\def\listtype#1#2#3{
+    \expandafter\gdef\csname#1\endcsname##1{{%
+        \expandafter\gdef\csname @#1\endcsname{{%
+            \def\and{#2}
+            #3##1%
+        }}%
+        \def\and{and }
+        \expandafter\xdef\csname my#1\endcsname{{##1}}
+    }}
+}
+
+\def\next{\par}%
+
+\listtype{address}{%
+    \egroup\hss\vtop\bgroup\hsize=0.5\linewidth %
+}{%
+    \vtop\bgroup\hsize=0.5\linewidth %
+}
+
+\def\email#1{\def\@email{#1}\def\myemail{#1}}
+\def\name#1{\def\@name{#1}\def\myname{#1}}
+
+\newlength{\@tmp@skill}
+\newenvironment{skilltable}[1]{%
+    \place[\centering]{#1}
+    \setlength{\@tmp@skill}{0.5\linewidth - .2cm - 0.09pt}
+    \begin{tabular*}{\linewidth}[t]{
+                                    @{\hfil}
+                                    p{\@tmp@skill}
+                                    @{\hspace{.2cm}}
+                                    |
+                                    @{\hspace{.2cm}}
+                                    p{\@tmp@skill}
+                                    @{\hfil}
+                                    }
+}{%
+    \end{tabular*}
+    \endplace
+}
+
+\def\skill#1#2{%
+    \raggedleft #1 & #2 \\[3pt]
+}
+
+\def\reference#1{%
+    \textbf{#1}
+    \setitemize[1]{topsep=5pt, itemsep=0pt}
+    \items
+}
+\def\endreference{%
+    \enditems
+    \setitemize[1]{nolistsep}
+}
+
+\def\exprt#1{\skill{#1}{Expert}}
+\def\inter#1{\skill{#1}{Intermediate}}
+\def\basic#1{\skill{#1}{Basic}}
+
+%\let\OldItem\item
+%\renewcommand{\item}[2][---]{\OldItem[#1] #2}
+
+\AtBeginDocument{%
+    \vtop{%
+        \centering
+        {\Large{\@name}}\par
+        \hbox to \hsize{%
+            \hfil
+            \@address \egroup
+            \hfil
+        }\par
+        \@email\par
+        \vskip 5pt
+    }%
+}%
+
+\AtEndDocument{%
+    \label{@End}
+    \getpagenum{@End}
+    \ifnum\thispage=\@ne
+        \pagestyle{empty}
+    \fi
+}
+
+\raggedbottom
+\endinput
+% vim: set ft=tex nospell :