summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tucv/tucv.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tucv/tucv.dtx')
-rw-r--r--macros/latex/contrib/tucv/tucv.dtx426
1 files changed, 426 insertions, 0 deletions
diff --git a/macros/latex/contrib/tucv/tucv.dtx b/macros/latex/contrib/tucv/tucv.dtx
new file mode 100644
index 0000000000..605ea6713d
--- /dev/null
+++ b/macros/latex/contrib/tucv/tucv.dtx
@@ -0,0 +1,426 @@
+% \iffalse meta-comment
+%
+% (c) 2009-2010 George R. Louthan IV <georgerlouth@nthefourth.com>
+% http://georgerloutha.nthefourth.com
+% (c) 2007 Todd C. Miller <Todd.Miller@courtesan.com>
+% http://www.gratisoft.us/todd/
+% (c) 2003-2007 David J. Grant <davidgrant-at-gmail.com>
+% http://www.davidgrant.ca
+% (c) 2002 Matthew Boedicker <matthewm@boedicker.org>
+% 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}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{tucv}
+%<*package>
+[2010/11/11 v1.0 Univ. of Tulsa iSec CV Style]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{tucv}
+\usepackage[american]{babel}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{tucv.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+%\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 \ No newline at end of file