% \iffalse meta-comment % % (c) 2009-2010 George R. Louthan IV % http://georgerloutha.nthefourth.com % (c) 2007 Todd C. Miller % http://www.gratisoft.us/todd/ % (c) 2003-2007 David J. Grant % http://www.davidgrant.ca % (c) 2002 Matthew Boedicker % http://matthewm.boedicker.org/ % % This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 % Unported License. To view a copy of this license, visit % http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to % Creative Commons % 171 Second Street, Suite 300 % San Francisco, California, 94105, USA. % % \fi % %\iffalse %<*driver> \ProvidesFile{tucv.dtx} % %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{tucv} %<*package> [2010/11/11 v1.0 Univ. of Tulsa iSec CV Style] % % %<*driver> \documentclass{ltxdoc} \usepackage{tucv} \usepackage[american]{babel} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{tucv.dtx} \PrintChanges \PrintIndex \end{document} % %\fi % % \CheckSum{0} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \changes{v1.0}{2010/11/13}{Initial version} % % \GetFileInfo{tucv.dtx} % % \DoNotIndex{\^, \begin, \colorbox, \DeclareOption, \definecolor, \end} % \DoNotIndex{\evensidemargin, \extracolsep, \fancyfoot, \fancyhead, \fill} % \DoNotIndex{\headheight, \headrulewidth, \headsep, \hspace, \IfNoValueTF} % \DoNotIndex{\large, \NewDocumentCommand, \newline, \oddsidemargin} % \DoNotIndex{\pagestyle, \parskip, \ProcessOptions, \raggedbottom} % \DoNotIndex{\raggedright, \renewcommand, \RequirePackage, \setlength} % \DoNotIndex{\tabcolsep, \tabularnewline, \textbf, \textheight, \textit} % \DoNotIndex{\textwidth, \topmargin, \voffset, \vphantom} % \DoNotIndex{\^{E}} % \title{The \textsf{tucv} package\thanks{This document % corresponds to \textsf{tucv}~\fileversion, dated \filedate.}} % \author{George Louthan \\ \texttt{georgerlouth@nthefourth.com}} % % \maketitle % % \section{Introduction} % % This style provides commands for typesetting a CV or resume. Its current form % is based upon the shaded resume style originally by Matthew Boedicker and % updated by David Grant, Todd Miller, and George Louthan. It has been modified % to provide the tools to produce the style of resume used by the University of % Tulsa's Institute for Information Security and Cyber Corps program, which is % the work, among others, of Christopher Swenson and Alexander Barclay. This % work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported % License. % % This style is designed to produce a somewhat long and quite detailed document. % It may be suitable to typeset a shorter resume, as well, but that is not % necessarily the goal. % % Although this style expects a page with quite narrow margins (narrower even % than you are likely to see with the |fullpage| package), it does not by default adjust % the margins or do any other page setup activities. However, when passed the % |pagesetup| option (as in |\usepackage[pagesetup]{tucv}|), it sets up % known-compatible margins. % % \section{Usage} % % Note: The \textsf{tucv} package is designed to be used in a document of % \textsf{article} class. It is suggested that you import it with the % \DescribeMacro{pagesetup} % |pagesetup| option in order to avoid having to set up your own margins. % % A \textsf{tucv} resume will likely have three levels of content: resume % headings (e.g. ``Employment,'' ``Education,'' etc.), resume entries (e.g. % schools, employers, etc. which are meant to be part of itemized % lists under headings), and resume subentries (e.g. degrees from schools, jobs % at particular employers, etc., which are indented by default 10pt from the % level of entries). % % There are two types of commands provided by this package: raw and high level. % Raw commands are mainly intended to be internal to the package and are % unlikely to be particularly useful by themselves in a document. These have % names like |\resentry| and |\ressubentry|. High level commands are the ones % that are likely to be most useful in typesetting a resume and include % |\resschool| and |\resjob|. % % \subsection{Raw commands} % \DescribeMacro{\resentry} % Raw (internal) two-column resume entries are provided by |\resentry|. It is % unlikely that this will be of % much use directly very often. Instead, it is used internally by other commands % provided by this package. It may also be indented by an optional width. % Usage: |\resentry| \oarg{indent} \marg{lefttext} \marg{righttext} % % \DescribeMacro{\ressubentry} % Indented two-column resume subentries are provided by % |\ressubentry|; this is just a |\resentry| % with a 10pt indentation specified. Usage: % |\ressubentry| \marg{lefttext} \marg{righttext}. Same as % |\resentry{10pt}{|\meta{lefttext}|}{|\meta{righttext}|}|. % % \DescribeMacro{\resentrysinglecol} % Single-column resume entries are % provided by |\resentrysinglecol| with optional indentation. The % text will fill the same area occupied by both columns of the two-column % entries. Usage: |\resentrysinglecol| \oarg{indent} \marg{text} % %\DescribeMacro{\ressubentrysinglecol} % Indented one-column resume entries are provided by % |\ressubentrysinglecol|. Usage: % |\ressubentrysinglecol| \marg{text}. Same as |\resentrysinglecol{10pt}{| % \meta{text}|}|. % % \subsection{High level commands} % \DescribeMacro{\resheading} % Place top-level section headings with the |\resheading| command. This will % place the heading inside a shaded box. Usage: |\resheading| \marg{heading}. % % \DescribeMacro{\resschool} % |\resschool| provides an entry for a school, with a name, location, and % optional description. Usage: |\resschool| \oarg{description} \marg{name} % \marg{location}. This describes only the school itself; a subentry called % |\resdegree| is provided to place immediately following |\resschool| entries % in order to specify the degrees issued by that school (and their dates). % % \DescribeMacro{\resdegree} % |\resdegree| provides an entry for a degree or other issuance from a school, % with a % degree, major, date, and optional description. Intended to be a subentry % beneath a school. Usage: |\resdegree| \oarg{description} \marg{degree} % % \DescribeMacro{\resemployer} % |\resemployer| provides an entry for an employer. This entry is very similar % to the school % entry; it is different mainly for semantic reasons and to allow easier % customization. Usage: |\resemployer| \oarg{description} \marg{name} % % \DescribeMacro{\resjob} % |\resjob| provides an entry for a job. This works similarly to the % school/degree % set of entries and is intended to be a subentry of an employer field. Provides % title, start date, end date, and description fields. Usage: |\resjob| % \oarg{description} \marg{title} \marg{startdate} \marg{enddate}. % % \DescribeMacro{\resconference} % |\resconference| provides an entry for denoting conference participation, % with name and role % fields. An optional description argument is accepted by not currently typeset. % Usage: |\resconference| \oarg{description} \marg{name} \marg{role} % %\DescribeMacro{\ressubconference} % |\ressubconference| provides an entry for denoting ``subconference'' % participation, with name and % role fields. An optional description argument is accepted by not currently % typeset. Usage: |\ressubconference| \oarg{description} \marg{name} \marg{role} % This is intended to denote workshops, tutorials, special topics symposia, % sessions, etc. % %\DescribeMacro{\resdesc} % |\resdesc| provides an item/description pair, somewhat similar in appearance % to |\item|s % in \LaTeX's |\description| environment, though |\resdesc| is not a drop-in % replacement for |\item| because it does not use |\item| in its implementation. % Usage: |\resdesc| \marg{item} \marg{description}. % %\DescribeMacro{\resbib} % |\resbib| provides a bibliography entry. Currently identical to |\resdesc| in % behavior, but separate because of the semantic difference and the possibility % of altering its appearance in the future. Usage: |\resbib| \marg{title} % % \StopEventually{} % \section{Implementation} % Require dependencies, adjust margins, set up header/footer. % \begin{macrocode} \RequirePackage{array} \RequirePackage{color} \RequirePackage{calc} \RequirePackage{fancyhdr} \RequirePackage{xparse} \DeclareOption{pagesetup}{ \renewcommand{\headrulewidth}{0pt} \setlength{\voffset}{0.1in} \setlength{\headheight}{0in} \setlength{\headsep}{0in} \setlength{\textheight}{11in} \setlength{\textheight}{9.5in} \setlength{\topmargin}{-0.25in} \setlength{\textwidth}{7in} \setlength{\oddsidemargin}{-0.25in} \setlength{\evensidemargin}{-0.25in} \setlength{\tabcolsep}{0in} \raggedbottom \raggedright \pagestyle{fancy} \fancyhead{} \fancyfoot{} } \ProcessOptions % \end{macrocode} %\begin{macro}{tucvheading} % Set the default color of the |\resheading| shaded backgrounds. Overwrite in % your documents in order to adjust the color. % \begin{macrocode} \definecolor{tucvheading}{gray}{0.85} % \end{macrocode} %\end{macro} % \begin{macro}{\resheading} % Resume heading. Heading inside a shaded box. Usage: % |\resheading| \marg{heading} % \begin{macrocode} \NewDocumentCommand\resheading{m}{{\large \colorbox{tucvheading}{\begin{minipage} {\textwidth-6.0pt}{\textbf{#1 \vphantom{p\^{E}}}}\end{minipage}}}} % \end{macrocode} % \end{macro} % %\begin{macro}{\resentry} % Raw (internal) two-column resume entry. It is unlikely that this will be of % much use directly very often. Instead, it is used internally by other commands % provided by this package. It may also be indented by an optional width. % Usage: |\resentry| \oarg{indent} \marg{lefttext} \marg{righttext} % \begin{macrocode} \NewDocumentCommand\resentry{O{0pt}mm}{ \begin{tabular*}{0.9\textwidth}[t]{@{\hspace{#1}} p{5.0in-#1}@{\extracolsep{\fill}}p{0.75in}} \raggedright #2 & #3 \tabularnewline \end{tabular*} } % \end{macrocode} %\end{macro} % %\begin{macro}{\ressubentry} % Raw (internal) indented two-column resume subentry; this is just a |\resentry| % with a 10pt indentation specified. Usage: % |\ressubentry| \marg{lefttext} \marg{righttext}. This is equivalent to % |\resentry{10pt}{|\meta{lefttext}|}{|\meta{righttext}|}|. % \begin{macrocode} \NewDocumentCommand\ressubentry{mm}{ \resentry[10pt]{ \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} #1}{#2} } % \end{macrocode} %\end{macro} % %\begin{macro}{\resentrysinglecol} % Raw (internal) single-column resume entry with optional indentation. The % text will fill the same area occupied by both columns of the two-column % entries. Usage: |\resentrysinglecol| \oarg{indent} \marg{text} % \begin{macrocode} \NewDocumentCommand\resentrysinglecol{O{0pt}m}{ \begin{tabular*}{0.9\textwidth}[t]{@{\hspace{#1}}p{0.9\textwidth-#1}} #2 \tabularnewline \end{tabular*} } % \end{macrocode} %\end{macro} % %\begin{macro}{\ressubentrysinglecol} % Raw (internal) indented one-column resume entry. This is just % |\resentrysinglecol| with a fixed 10pt indentation. Usage: % |\ressubentrysinglecol| \marg{text}. Equivalent to |\resentrysinglecol{10pt}{| % \meta{text}|}|. % \begin{macrocode} \NewDocumentCommand\ressubentrysinglecol{m}{ \resentrysinglecol[10pt]{ \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} #1} } % \end{macrocode} %\end{macro} % %\begin{macro}{\resschool} % Provides an entry for a school, with a name, location, and optional % description. Usage: |\resschool| \oarg{description} \marg{name} % \marg{location}. % \begin{macrocode} \NewDocumentCommand\resschool{omm}{ \resentry{\textbf{#2} \IfNoValueTF{#1} {} {\newline \textit{#1}} }{#3} } % \end{macrocode} %\end{macro} % %\begin{macro}{\resdegree} % Provides an entry for a degree or other issuance from a school, with a % degree, major, date, and optional description. Intended to be a subentry % beneath a school. Usage: |\resdegree| \oarg{description} \marg{degree} % \marg{major} \marg{date}. % \begin{macrocode} \NewDocumentCommand\resdegree{ommm}{ \ressubentry{#2 in #3 \IfNoValueTF{#1} {} {\newline \textit{#1}} }{#4} %\ressubentry{#2 in #3}{#4} } % \end{macrocode} %\end{macro} % %\begin{macro}{\resemployer} % Provides an entry for an employer. This entry is very similar to the school % entry; it is different mainly for semantic reasons and to allow easier % customization. Usage: |\resemployer| \oarg{description} \marg{name} % \marg{location}. % \begin{macrocode} \NewDocumentCommand\resemployer{omm}{ \resentry{\textbf{#2} \IfNoValueTF{#1} {} {\newline #1} }{#3} } % \end{macrocode} %\end{macro} % %\begin{macro}{\resjob} % Provides an entry for a job. This works similarly to the school/degree % set of entries and is intended to be a subentry of an employer field. Provides % title, start date, end date, and description fields. Usage: |\resjob| % \oarg{description} \marg{title} \marg{startdate} \marg{enddate}. % \begin{macrocode} \NewDocumentCommand\resjob{ommm}{ \resentry[10pt]{ \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} \textbf{#2} \IfNoValueTF{#1} {} {\newline #1} }{#3 -- \newline #4} } % \end{macrocode} %\end{macro} % %\begin{macro}{\resconference} % Provides an entry for denoting conference participation, with name and role % fields. An optional description argument is accepted by not currently typeset. % Usage: |\resconference| \oarg{description} \marg{name} \marg{role} % \begin{macrocode} \NewDocumentCommand\resconference{omm}{ \resentrysinglecol{\raggedright \textbf{#2} #3} } % \end{macrocode} %\end{macro} % %\begin{macro}{\ressubconference} % Provides an entry for denoting ``subconference'' participation, with name and % role fields. An optional description argument is accepted by not currently % typeset. Usage: |\ressubconference| \oarg{description} \marg{name} \marg{role} % This is intended to denote workshops, tutorials, special topics symposia, % sessions, etc. % \begin{macrocode} \NewDocumentCommand\ressubconference{omm}{ \resentrysinglecol[10pt]{\textbf{#2} #3} } % \end{macrocode} %\end{macro} % %\begin{macro}{\resdesc} % Provides an item/description pair, somewhat similar in appearance to |\item|s % in \LaTeX's |\description| environment, though |\resdesc| is not a drop-in % replacement for |\item| because it does not use |\item| in its implementation. % Usage: |\resdesc| \marg{item} \marg{description}. % \begin{macrocode} \NewDocumentCommand\resdesc{mm}{ \resentrysinglecol{\raggedright \textbf{#1} #2} } % \end{macrocode} %\end{macro} % %\begin{macro}{\resbib} % Provides a bibliography entry. Currently identical to |\resdesc| in % behavior, but separate because of the semantic difference and the possibility % of altering its appearance in the future. Usage: |\resbib| \marg{title} % \marg{citation\_remainder}. % \begin{macrocode} \NewDocumentCommand\resbib{mm}{ \resentrysinglecol{\raggedright \textbf{#1} #2} } % \end{macrocode} %\end{macro} % % \Finale \endinput