summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/currvita
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/currvita
Initial commit
Diffstat (limited to 'macros/latex/contrib/currvita')
-rw-r--r--macros/latex/contrib/currvita/README33
-rw-r--r--macros/latex/contrib/currvita/currvita.dtx1440
-rw-r--r--macros/latex/contrib/currvita/currvita.ins54
-rw-r--r--macros/latex/contrib/currvita/currvita.pdfbin0 -> 109834 bytes
4 files changed, 1527 insertions, 0 deletions
diff --git a/macros/latex/contrib/currvita/README b/macros/latex/contrib/currvita/README
new file mode 100644
index 0000000000..5809ebad8b
--- /dev/null
+++ b/macros/latex/contrib/currvita/README
@@ -0,0 +1,33 @@
+ currvita, a LaTeX package for typesetting a curriculum vitae.
+ Copyright (C) 1999 Axel Reichert
+
+ Files:
+ currvita.ins Batch file, run through LaTeX
+ currvita.dtx Docstrip archive, run through LaTeX
+ currvita.sty LaTeX package, will be generated from currvita.ins
+ currvita.dvi Package documentation, will be generated from
+ currvita.dtx
+ cvtest.tex Example file, will be generated from currvita.ins,
+ run through LaTeX
+ cvtest.dvi Example file of a curriculum vitae, will be
+ generated from cvtest.tex
+ README This file
+ COPYING The GNU General Public License
+
+ E-Mail: axel.reichert@gmx.de
+ Address: Axel Reichert, Beethovenstrasse 25, D-40233 Duesseldorf
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
diff --git a/macros/latex/contrib/currvita/currvita.dtx b/macros/latex/contrib/currvita/currvita.dtx
new file mode 100644
index 0000000000..499d8126e2
--- /dev/null
+++ b/macros/latex/contrib/currvita/currvita.dtx
@@ -0,0 +1,1440 @@
+% \iffalse
+%
+% currvita.dtx
+% Docstrip archive, run through LaTeX.
+%
+% Copyright (C) 1999 Axel Reichert
+% See the files README and COPYING.
+%
+% \fi
+%
+% \DeclareRobustCommand*{\env}[1]{\texttt{#1}}
+% \DeclareRobustCommand*{\file}[1]{\texttt{#1}}
+% \DeclareRobustCommand*{\flag}[1]{\texttt{#1}}
+% \DeclareRobustCommand*{\mail}[1]{\texttt{#1}}
+% \DeclareRobustCommand*{\option}[1]{\texttt{#1}}
+% \DeclareRobustCommand*{\package}[1]{\texttt{#1}}
+% \DeclareRobustCommand*{\person}[1]{\textsc{#1}}
+% \DeclareRobustCommand*{\source}[1]{\texttt{#1}}
+% \DeclareRobustCommand*{\winkey}{\texttt{(-;}}
+%
+% \changes{v0.9b}{1999-08-06}{First release}
+% \changes{v0.9i}{1999-09-13}{Final clean-up and new release}
+%
+% \CheckSum{235}
+%
+%% \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 \~}
+%
+% \title{\file{currvita.sty}}
+% \author{%
+% Axel Reichert \\
+% \mail{axel.reichert@gmx.de}%
+% }
+% \date{1999-09-13}
+% \maketitle
+% \begin{abstract}
+% \noindent
+% \file{currvita.sty} is a package for typesetting a curriculum
+% vitae. See the files~\file{README} and~\file{COPYING} for
+% additional information.
+% \end{abstract}
+%
+% \tableofcontents
+%
+%
+% \section{Introduction}
+%
+% Quite regularly in the \LaTeX{}~newsgroups someone is asking for
+% a package or document class to typeset a curriculum
+% vitae. Normally, the following answers are given:
+% \begin{itemize}
+% \item A curriculum vitae is highly individual and so you should
+% not rely on solutions provided by others but rather think about
+% it on your own and create it in \emph{your} style following
+% \emph{your} taste.
+% \item Use \file{vita.cls}.
+% \item Use \file{resume.sty}.
+% \item Use \file{tabularx.sty}.
+% \end{itemize}
+%
+% In my opinion all answers are unsatisfactory. To create an
+% ``individual style'' with \LaTeX{} is not at all easy, especially
+% if you consider the bunch of questions in the \LaTeX{}~newsgroups
+% about list and tabular environments, which seem to be the obvious
+% choice for the use within a curriculum vitae.
+%
+% The layout produced by~\file{vita.cls} is a little bit crowded,
+% the customization has to be done by class option files
+% (definitely not something for a beginner) and the documentation
+% is sparse.
+%
+% \file{resume.sty} is a totally out-dated (December~1989)
+% \LaTeX\,2.09 style file, in my opinion it gives a crowded layout
+% as well, the documentation can be found in the style file. Those
+% days did not have the neat system
+% of~\file{ins}/\file{dtx}~files.
+%
+% \file{tabularx.sty} is quite good, but to typeset a curriculum
+% vitae spanning more than one page\footnote{\person{David}, I know
+% that there is \file{ltxtable.sty}. Surely this great package was
+% once a hack of 5~minutes on a rainy Sunday like all your other
+% packages. \winkey}, interspersed with section-like headings and
+% various \cmd{\multicolumn}~commands is surely not an easy task.
+%
+% So I finally decided to write this package, replacing the macros
+% that I used earlier for my applications\footnote{Typeset
+% with~\file{longtable.sty} written (again) by~\person{David
+% Carlisle}.}. In fact, there was not much to replace, because
+% that time I made heavy use of~\cmd{\textbf}, \cmd{\large},
+% \cmd{\\} and other \LaTeX nically incorrect commands. \winkey
+%
+% I made it a package because a curriculum vitae can make sense not
+% only on its own, but also within a Ph.\,D.~thesis or a
+% letter. This package (hopefully) has few requirements,
+% (hopefully) produces a clearly arranged layout (also known as
+% puristic or plain and even explained in its own section later),
+% is (hopefully) well documented by this (hopefully) nice
+% \file{dvi}~file, (hopefully) easy to use and can (hopefully)
+% easily be customized. There is even a (hopefully) interesting
+% example file, my curriculum vitae, so you can see what sick
+% brains program (and even document) such packages. If you can
+% understand German. \winkey
+%
+%
+% \section{What You Need}
+%
+% \begin{enumerate}
+% \item \LaTeXe{} (at least the 1996/12/01~release)
+% \item The \package{ifthen}~package, part of the standard
+% \LaTeX{}~tools
+% \item The \package{babel}~package, nowadays a ``required'' part
+% of~\LaTeX, if you want to typeset the example file.
+% \end{enumerate}
+%
+%
+% \section{Loading}
+% \label{sec:loading}
+%
+% Load the package with:
+%\begin{verbatim}
+% \usepackage{currvita}
+%\end{verbatim}
+%
+% \DescribeMacro{LabelsAligned}
+% There are two package options that can be used to change the
+% \DescribeMacro{TextAligned}
+% vertical spacing of the curriculum vitae:\footnote{Credits go to
+% \person{Timm Wetzel} for inspiring me to implement this. He will
+% notice later that I did not follow his suggestion, though.
+% \winkey}
+%\begin{verbatim}
+% \usepackage[LabelsAligned]{currvita}
+%\end{verbatim}
+% will give you a more compact spacing, whereas
+%\begin{verbatim}
+% \usepackage[TextAligned]{currvita}
+%\end{verbatim}
+% will give you the default, more generous spacing. See the
+% explanation of the \env{cvlist}~environment and
+% section~\ref{sec:customization} on
+% page~\pageref{sec:customization} (``Customization'') for
+% details.
+%
+% \DescribeMacro{openbib}
+% If you like the look of the ``open'' format for bibliographies,
+% you can use this layout also for a list of publications within
+% your curriculum vitae. Normally, this option will be passed
+% automatically by the document class to all packages, so there is
+% no need to specify it explicitely. However, if you are
+% typesetting your Ph.\,D.~thesis with a ``normal'' bibliography
+% and you want to include your curriculum vitae with an ``open''
+% publication list, you can pass this option directly to the
+% package:
+%\begin{verbatim}
+% \usepackage[openbib]{currvita}
+%\end{verbatim}
+%
+% \DescribeMacro{ManyBibs}
+% If you want to subdivide your publication list (journal articles,
+% book chapters,~\ldots) but do not want to do without~\BibTeX{}
+% and enter every \cmd{\bibitem} manually, you can use this option:
+%\begin{verbatim}
+% \usepackage[ManyBibs]{currvita}
+%\end{verbatim}
+% This option suppresses the normal heading and also the item
+% labels. This makes sense only in combination
+% with~\file{bibunits.sty}, \file{multibib.sty} or other packages
+% supporting multiple bibliographies. See
+% section~\ref{sec:bibliographies} on
+% page~\pageref{sec:bibliographies} (``Bibliographies'').
+%
+% \DescribeMacro{NoDate}
+% If you have reason to suppress the date normally printed at the
+% bottom of the curriculum vita,\footnote{Credits go to
+% \person{Matt Swift}, who obviously \emph{has} reason and thus
+% suggested this feature. \winkey} use the following option:
+%\begin{verbatim}
+% \usepackage[NoDate]{currvita}
+%\end{verbatim}
+%
+%
+% \section{Usage}
+%
+% \DescribeMacro{cv}
+% A curriculum vitae is written inside a \env{cv}~environment,
+% which takes one mandatory argument, the heading:
+%\begin{verbatim}
+% \begin{cv}{<heading of the curriculum vitae>}
+% <text of the curriculum vitae>
+% \end{cv}
+%\end{verbatim}
+% If you do not want a heading (perhaps because you think the
+% addressee might have read ``Curriculum Vitae'' too often), you
+% can specify an empty argument by leaving the braces empty.
+%
+% \DescribeMacro{cvlist}
+% \label{cvlist}
+% The text of the curriculum vitae is normally divided into several
+% sections, which are typeset as lists, taking the list heading as
+% a mandatory argument:
+%\begin{verbatim}
+% \begin{cvlist}{<heading of the list>}
+% <list items>
+% \end{cvlist}
+%\end{verbatim}
+% As usual, the list items can take a label as an optional
+% argument:
+%\begin{verbatim}
+% \item <item text>
+% \item[<label>] <item text>
+%\end{verbatim}
+%
+% The typesetting of the list depends on the length of the heading
+% and the use of an optional argument in the first item: If the
+% heading is less wide than the width reserved for the label and no
+% optional argument was used, the item is typeset in the same line
+% as the heading. In all other cases the text of the item itself
+% starts a new line.
+%
+% \DescribeMacro{\cvplace}
+% Normally, a curriculum vitae ends with the date when and the
+% place where you wrote it. You can specify the location as
+% follows:
+%\begin{verbatim}
+% \cvplace{<location>}
+%\end{verbatim}
+% If you do not use this command, the printing of a location will
+% be omitted.
+%
+% \DescribeMacro{\date}
+% To specify the date, just use the command provided by the
+% standard \LaTeX{} document classes~\file{article.cls},
+% \file{report.cls} and \file{book.cls}. I took special care that
+% it works also if you are using an other class. If you do not
+% call this macro at all, \cmd{\today} will be used by default,
+% unless you have specified the \option{NoDate}~option.
+%\begin{verbatim}
+% \date{<date>}
+%\end{verbatim}
+%
+%
+% \section{Customization}
+% \label{sec:customization}
+%
+% \DescribeMacro{\cvheadingfont}
+% Normally, the heading of the curriculum vitae is typeset in bold
+% face and \cmd{\Large}~size (see~\cite{Latex:1999} for
+% details). You can change this e.\,g.\ with:
+%\begin{verbatim}
+% \renewcommand*{\cvheadingfont}{\large\bfseries}
+%\end{verbatim}
+%
+% \DescribeMacro{\cvlistheadingfont}
+% Corresponding to the font of the heading, the heading of the
+% \env{cvlist}~environments is typeset in bold face and
+% \cmd{\large}~size. This can be changed e.\,g.\ with the
+% following code:
+%\begin{verbatim}
+% \renewcommand*{\cvlistheadingfont}{\scshape}
+%\end{verbatim}
+%
+% \DescribeMacro{\cvlabelfont}
+% The labels of the \env{cvlist}~environments are typeset in the
+% normal size of the current font. You can change this e.\,g.\ with:
+%\begin{verbatim}
+% \renewcommand*{\cvlabelfont}{\itshape}
+%\end{verbatim}
+%
+% \DescribeMacro{\cvlabelwidth}
+% The default width of the labels of the \env{cvlist}~environments
+% is equal to the width of~``88/8888--88/8888'', because normally
+% in the left hand column dates are typeset (and, at least in
+% Germany, should be formatted in this way).
+%
+% \enlargethispage{-3\baselineskip}
+% If you are using the optional argument of the \cmd{\item}~command
+% for further sectioning (as I did for my curriculum vitae in the
+% example file), you perhaps need to adjust this length by means of
+%\begin{verbatim}
+% \setlength{\cvlabelwidth}{50mm}
+%\end{verbatim}
+% or
+%\begin{verbatim}
+% \AtBeginDocument{%
+% \settowidth{\cvlabelwidth}{%
+% \cvlabelfont This is my longest label%
+% }%
+% }
+%\end{verbatim}
+% or like this, if you want the items to be typeset in-line with
+% the labels wherever possible:
+%\begin{verbatim}
+% \AtBeginDocument{%
+% \settowidth{\cvlabelwidth}{%
+% \cvlistheadingfont This is my longest list heading%
+% }%
+% }
+%\end{verbatim}
+% The first example works correctly only
+% \emph{after}~|\begin{document}|, whereas the other two show how
+% to adjust the label width within the preamble. Make sure that
+% you include the appropriate font if you want to measure the
+% width.\footnote{Credits go to \person{Matt Swift} for reporting
+% the need for a better documentation.} And do not try to get
+% things done in the preamble without~\cmd{\AtBeginDocument},
+% because the font setup will probably not be correct, especially
+% if you use non-standard fonts.
+%
+% \DescribeMacro{\cvlabelskip}
+% This vertical space is inserted if you have a
+% \env{cvlist}~environment with a short heading and the first item
+% of this list has no label, so that the text of the item starts in
+% the same line as the heading. The spacing is controlled by the
+% options \option{TextAligned} and~\option{LabelsAligned},
+% see~section~\ref{sec:loading} on page~\pageref{sec:loading}
+% (``Loading'').
+%
+% By default (\option{TextAligned}), the spacing between the item
+% text belonging to different lists is independent of the length of
+% the list heading and also independent of the use of an optional
+% argument of the \cmd{\item}~command. The gaps between the item
+% \emph{text} blocks are equal. See, for example, the
+% lists~``Fremdsprachen'' or~``Interessen'' of the example file.
+%
+% The option~\option{LabelsAligned} suppresses the additional space
+% necessary to achieve this consistent layout and thus gives a more
+% compact look with evenly distributed gaps between the headings
+% and the \emph{labels}.
+%
+% If you are not satisfied with either of these options, feel free
+% to set hands to it yourself, for example:
+%\begin{verbatim}
+% \setlength{\cvlabelskip}{%
+% 0.5\baselineskip plus 1pt minus 1pt%
+% }%
+%\end{verbatim}
+%
+% \DescribeMacro{\cvlabelsep}
+% The default width of the distance between the labels and the
+% items itself is equal to~\source{1em}. You can customize it
+% e.\,g.\ with
+%\begin{verbatim}
+% \setlength{\cvlabelsep}{1mm}
+%\end{verbatim}
+% or
+%\begin{verbatim}
+% \settowidth{\cvlabelsep}{~}
+%\end{verbatim}
+% I strongly recommend to use relative measures like~\source{1em}
+% (i.\,e.\ dependent on the font size), if you need to customize
+% these lengths at all.
+%
+% \DescribeMacro{\cvbibname}
+% The default heading for bibliographies inside of
+% \env{cv}~environments is~``Publications''. You could change this
+% for example with:
+%\begin{verbatim}
+% \renewcommand*{\cvbibname}{List of Papers}
+%\end{verbatim}
+%
+% Please keep in mind: All the customizations mentioned above are
+% \emph{optional} and in my opinion not necessary (not even the
+% change of~\cmd{\cvlabelwidth}, better use more suggestive label
+% texts). See section~\ref{sec:typography} on
+% page~\pageref{sec:typography} (``Typography'') for some remarks.
+%
+%
+% \section{Example}
+%
+% Run the example file~\file{cvtest.tex} through~\LaTeX. You will
+% get my curriculum vitae. Sorry, it is written in German. Sorry,
+% it is not an original version used for an application (though the
+% data is correct, but I omitted the marks\footnote{It would have
+% been too embarrassing for me. \winkey}), because for this I need
+% some fonts and packages not available to every user and I wanted
+% to use as much standard~\LaTeX{} as possible.
+%
+%
+% \section{Bugs}
+%
+% Some people\footnote{Credits go to \person{Martin Sander} and
+% \person{Sebastian B\"ocker}.} with an older version of the
+% \package{babel}~package~(v3.6h) have reported problems due to the
+% use of the \package{babel}~shortcuts for accented letters within
+% the \cmd{\cvplace}~command. If you encounter this, too, try a
+% more recent version (v3.6x definitely works) of the
+% \package{babel}~package\footnote{Perhaps included in a new
+% \LaTeX{}~release? \winkey} (or~\file{german.sty}).
+%
+%
+% \section{Bibliographies\label{sec:bibliographies}}
+%
+% This package offers several possibilities for bibliographies or
+% publication lists.\footnote{Credits go to \person{Ian Bruce} for
+% suggesting this feature and providing the first lines of code
+% that did start the thing.} You can use \BibTeX{} or enter each
+% \cmd{\bibitem} manually. You can have multiple bibliographies
+% within one \env{cvlist}~environment (with the aid of other
+% packages like~\package{bibunits} or~\package{multibib}), or only
+% one somewhere in the \env{cv}~environment. Of course the main
+% bibliographies of your document remain untouched. You can even
+% use a publication list in document classes without native support
+% for bibliographies, like~\file{letter.cls}.
+%
+% Enough advertising, here we go with some
+% examples. \figurename~\ref{fig:manual} shows the source of a
+% letter with a manually done bibliography and a normal
+% \env{cvlist}~enviroment in comparison. The resulting publication
+% list (not shown here) does not fit well into the layout of the
+% \env{cvlist}~environment, so probably you want to integrate your
+% publication list into a \env{cvlist}~environment and to supply
+% distinctive labels?
+%
+% \begin{figure}
+%\begin{verbatim}
+% \documentclass{letter}
+% \usepackage{currvita}
+% \begin{document}
+% \begin{cv}{Resume}
+% \begin{cvlist}{Gnats and Gnus}
+% \item[Bar] Bar
+% \item[Foo] Foo
+% \end{cvlist}
+% \begin{thebibliography}{1}
+% \bibitem{Bar} Bar.
+% \bibitem{Foo} Foo.
+% \end{thebibliography}
+% \end{cv}
+% \end{document}
+%\end{verbatim}
+% \caption{Curriculum vitae with bibliography, manually done}
+% \label{fig:manual}
+% \end{figure}
+%
+% \begin{figure}
+%\begin{verbatim}
+% \documentclass{article}
+% \usepackage{bibunits}
+% \usepackage[ManyBibs]{currvita}
+% \begin{document}
+% \begin{cv}{Resume}
+% \begin{cvlist}{Gnats and Gnus}
+% \item[Bar] Bar
+% \item[Foo] Foo
+% \end{cvlist}
+% \begin{cvlist}{Publications}
+% \begin{bibunit}[alpha]
+% \nocite{booklet-full,manual-full,techreport-full}
+% \item[Books etc.] \putbib[xampl]
+% \end{bibunit}
+% \begin{bibunit}[plain]
+% \nocite{article-full,inproceedings-full}
+% \item[Papers] \putbib[xampl]
+% \end{bibunit}
+% \end{cvlist}
+% \end{cv}
+% \end{document}
+%\end{verbatim}
+% \caption{Bibliographies inside a \env{cvlist}, done with
+% \file{bibunits.sty}}
+% \label{fig:bibunits}
+% \end{figure}
+%
+% \figurename~\ref{fig:bibunits} shows an example with multiple
+% bibliographies automatically generated by~\BibTeX{} and in
+% combination with~\file{bibunits.sty}. This code will result in a
+% \LaTeX{}~error (``Something's wrong--perhaps a missing
+% \cmd{\item}.'') on the first run, but if you scroll through the
+% errors and run \LaTeX{} again, you will get a nice output once
+% you have run \BibTeX{} according to the
+% \package{bibunits}~manual. Note that the choice of the
+% bibliography style does not influence the labels because they are
+% suppressed anyway by use of the \option{ManyBibs}~option.
+%
+% \begin{figure}
+%\begin{verbatim}
+% \documentclass{report}
+% \usepackage{multibib}
+% \usepackage[openbib,ManyBibs]{currvita}
+% \newcites{books}{bar}
+% \newcites{papers}{foo}
+% \begin{document}
+% \bibliographystyle{alpha}
+% \bibliographystylebooks{unsrt}
+% \bibliographystylepapers{plain}
+% \begin{cv}{Resume}
+% \begin{cvlist}{Gnats and Gnus}
+% \item[Bar] Bar
+% \item[Foo] Foo
+% \end{cvlist}
+% \begin{cvlist}{Publications}
+% \nocitebooks{booklet-full,manual-full,techreport-full}
+% \item[Books etc.] \bibliographybooks{xampl}
+% \nocitepapers{article-full,inproceedings-full}
+% \item[Papers] \bibliographypapers{xampl}
+% \end{cvlist}
+% \end{cv}
+% \nocite{mastersthesis-full,misc-full,unpublished-full}
+% \bibliography{xampl}
+% \end{document}
+%\end{verbatim}
+% \caption{``Open'' publication lists inside a \env{cvlist},
+% additional ``normal'' bibliography outside, done with
+% \file{multibib.sty}}
+% \label{fig:multibib}
+% \end{figure}
+%
+% However, they work as normal outside the \env{cv}~environment,
+% see~\figurename~\ref{fig:multibib}, which shows in addition to
+% the usage of the \package{multibib}~package for ``open''
+% publication lists a ``normal'' bibliography in yet another
+% bibliography style. Note also that the second argument of the
+% \cmd{\newcites}~command does not matter because the heading of
+% the partial bibliographies is suppressed, again by use of the
+% \option{ManyBibs}~option.
+%
+%
+% \section{Typography\label{sec:typography}}
+%
+% A curriculum vitae is an exam. The addressee gets a proof of
+% your skills concerning collecting, discarding, ordering and
+% presenting information. He also gets an impression of some of
+% your qualities that are not even mentioned in the text: Accuracy
+% (consistency and correctness of the micro-typographic things),
+% stinginess (extremely narrow margins) and your taste in questions
+% of aesthetics (font overload as against clear and evident font
+% usage). Even more things are revealed by subtle hints given by
+% the typography of the curriculum vitae and they can be noticed by
+% all professional readers of applications,\footnote{Very often
+% subconsciously.} not only by typographers.
+%
+% Therefore you definitely should do your best not only when
+% thinking about the content but also when thinking about the form
+% of the curriculum vitae. This package tries to help you in this
+% task.
+%
+% The overall appearance of a curriculum vitae is determined mainly
+% by three factors:
+% \begin{description}
+% \item[Layout] Organization and arrangement of the information
+% e.\,g.\ into lists or tabulars, usage of headings, size of the
+% typearea, width of columns, horizontal and vertical spacing
+% \item[Font] Family, sizes, usage of fonts for emphasized in-line
+% text or text serving as an eye-catcher, creation of an atmosphere
+% appropriate to the candidate and the job in question
+% \item[Micro-typography] Formatting of various numbers, avoidance
+% of bad linebreaks, distinction between small and normal spaces,
+% typesetting of company names, usage of quotation marks
+% \end{description}
+%
+%
+% \subsection{Layout}
+%
+% You generally should organize the necessary information (and
+% \emph{only} the necessary information) as clearly as possible,
+% because the addressee is annoyed anyway by the pile of
+% applications that he has to wade, and you definitely should not
+% annoy him any further by not structuring your curriculum vitae.
+%
+% Use generous margins, a not too small font and moderate vertical
+% spacing. I recommend something around~\source{DIV12} for users
+% of~\file{typearea.sty} (part of KOMA-Script), an 11~point font
+% for A4~paper (highly dependent on the font family) and a left
+% hand column as narrow as possible (it will make the linebreaking
+% in the right hand column easier). For the distance between the
+% columns \source{1em}~creates a sufficient separation. A normal
+% word space would not be enough, whereas something
+% around~\source{1cm} would weaken the coherence of the layout,
+% especially if you have some shorter labels.
+%
+% If you ever heard a curriculum vitae should not be longer than
+% one page, forget it, unless you are required (by whom, if I may
+% ask?) to stay below this limit. I made some tries with increased
+% typearea and reduced the font size and the vertical spacing. I
+% finally managed to arrange my test file on one page by usage of a
+% very narrow newspaper font, but it looked horrible. The normal
+% version, though about half a page longer, was much easier (and
+% quicker!) to read.
+%
+%
+% \subsection{Font}
+%
+% The most difficult thing is to choose a good font. For
+% ``normal'' jobs like engineering, economics or similar, the font
+% should look friendly and professional, just like you on the
+% photo. Of course a typographical layman does not identify the
+% font, but he too feels the atmosphere created by it.
+%
+% I made some tries with about 50~fonts, with serifs or without,
+% old-style, transitional and modern fonts and got surprisingly
+% good agreement among the test persons\footnote{Credits go to
+% \person{Melanie Frisch}, \person{R\"udiger Haardt},
+% \person{Steffen Mei\ss ner}, \person{Joachim Gnauk}
+% and~\person{Rainer Messerschmidt} for doing this tedious
+% work.}. Moreover, my analysis and theirs yielded the same
+% result: Computer Modern, Charter, Utopia and Melior really do a
+% good job. Except Melior, these fonts are freely available.
+% Computer Modern looks elegant, dry, precise and reserved, Charter
+% friendly, open, solid and likable and Utopia clear and
+% technical. The last two are nowadays part of good
+% \LaTeX{}~distributions, so you are not sticked to Computer
+% Modern, just try them out:
+%\begin{verbatim}
+% \usepackage{charter}
+%\end{verbatim}
+% or
+%\begin{verbatim}
+% \usepackage{utopia}
+%\end{verbatim}
+%
+% Generally, you should use bold face for the headings, to make
+% them clearly distinct from the main text, italics are not enough.
+% An important aspect of the font choice is the contrast between
+% the normal and the bold face. It should be high enough, so that
+% the headings can be identified at a glance, but neither the
+% regular font nor the bold variant should look too~``loud''. This
+% is a problem e.\,g.\ with New Century Schoolbook, apart from that
+% as good as Computer Modern.
+%
+% Many fonts typically used in novels have too low a contrast,
+% e.\,g.\ Berling, Galliard, Palatino and Stempel
+% Garamond. Although the contrast is good in Bembo, it looks
+% too~``nice'', too familiar from books to create the correct
+% atmosphere for a curriculum vitae, which normally is attached to
+% a stupid letter. Plantin and Trump Medieval and perhaps New
+% Baskerville may be acceptable in some cases, but I think there
+% are better choices. Not everybody's taste because a little
+% unusual, but in my opinion quite good is Oranda, rather bold and
+% small, but friendly and soft. Oh, I almost forgot: The
+% obligatory Times is a good choice, too. Though it is completely
+% over-used and overrated (I am not at all a fan of Times), its
+% domain is the typesetting of (more or less) narrow columns and it
+% does a good job looking both familiar and neutral.
+%
+% My trials with sans-serif fonts were not very
+% successful. Computer Modern Sans Serif, Franklin Gothic or
+% Univers may be acceptable, Helvetica looks too boring (are
+% \emph{you} boring?), Frutiger has too low a contrast, Optima is
+% ``too nice'', Gill Sans and Futura look too bold (and the latter
+% perhaps too cold and technical, but that may be suitable for some
+% jobs). Generally the problem is to achieve consistency with the
+% accompanying letter, which normally is written with a serif font
+% (and should be, because it is a longer text with less structure,
+% the main text only divided into paragraphs. In these cases,
+% so-called ``linear reading'', a serif font is considered more
+% legible by many typographers).
+%
+%
+% \subsection{Micro-typography}
+%
+% Sometimes the pile of applications is pre-sorted by a
+% secretary. You should ensure that the micro-typography (also
+% known as ``pedantic stuff'') is correct, because secretaries
+% learn these things during their education. German users of this
+% package definitely should consult the relevant part of the
+% Duden~\cite{Duden:1996} or have a look into~\cite{Willberg:1997}
+% or the example file. Errors in the formatting of dates, spacing
+% or grouping of telephone numbers, usage of quotation marks or
+% ampersands and so on are too common. Trained secretaries will
+% notice these mistakes and, if they already did not like your
+% photo, will put your application onto stack~W
+% (wastebasket). \winkey
+%
+% Think about it, micro-typography is easy, and if you get used to
+% it, you will typeset things correctly ``by default'' and your
+% documents will require less proof-reading. It is awful if the
+% reader stumbles (and falls) over a bad linebreak. Use ties~(|~|)
+% or other things influencing hyphenation from~\file{babel.sty}
+% or~\file{german.sty} like~\cmd{\,}, |"~| or~|""| not after you
+% have discovered such a mistake, but during entering the text.
+%
+% O.\,K., and now I will turn preaching mode off and programming
+% mode on. \winkey
+%
+%
+% \section{Implementation}
+%
+% \iffalse
+%<*driver>
+\documentclass[12pt,a4paper]{ltxdoc}
+\begin{document}
+ \DocInput{currvita.dtx}
+\end{document}
+%</driver>
+% \fi
+% \StopEventually{
+% \addcontentsline{toc}{section}{References}
+% \begin{thebibliography}{1}
+% \bibitem{Duden:1996}
+% \textsc{Dudenredaktion}~(ed.): \emph{Duden, Rechtschreibung
+% der deutschen Sprache}, vol.~1 of~\emph{Der Duden in
+% 12~B{\"a}nden; das Standardwerk zur deutschen Sprache},
+% chap.~Richtlinien f{\"u}r den Schriftsatz,
+% pp.\,65--73. \newblock Dudenverlag, Mannheim, 21st~edn.,
+% 1996.
+% \bibitem{Goossens:1994}
+% \textsc{Goossens,~M.; Mittelbach,~F.; Samarin,~A.}: \emph{Der
+% \LaTeX-Begleiter}. \newblock Addison-Wesley, Bonn, 1st~edn.,
+% 1994.
+% \bibitem{Kopka:1997}
+% \textsc{Kopka,~H.}: \emph{Erweiterungen}, vol.~3
+% of~\emph{\LaTeX}. \newblock Addison-Wesley-Longman, Bonn,
+% 1997.
+% \bibitem{Latex:1999}
+% \LaTeX3 Project Team. \newblock \emph{\LaTeXe{} font
+% selection}, Jan.\,1999.
+% \bibitem{Willberg:1997}
+% \textsc{Willberg,~H.\,P.; Forssman,~F.}:
+% \emph{Lesetypographie}. \newblock Schmidt, Mainz, 1997.
+% \end{thebibliography}
+% }
+% \iffalse
+%<*package>
+% \fi
+%
+%
+% \subsection{Identification}
+%
+% \changes{v0.9g}{1999-09-06}{A new \LaTeX{} version is needed.}
+% As this package uses the \cmd{\ignorespacesafterend}~command, it
+% does not work with older \LaTeXe{}~versions.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[1996/12/01]%
+% \end{macrocode}
+% The package identifies itself with its release date, a version
+% number, and a short description.
+% \begin{macrocode}
+\ProvidesPackage{currvita}[%
+ 1999/09/13 v0.9i Typesetting a Curriculum Vitae%
+]%
+% \end{macrocode}
+%
+%
+% \subsection{Loading Files}
+%
+% The \package{ifthen}~package is used to make some decisions
+% easier.
+% \begin{macrocode}
+\RequirePackage{ifthen}%
+% \end{macrocode}
+%
+%
+% \subsection{Initialization}
+%
+% \begin{macro}{\@cvplace}
+% The string for the place of the curriculum vitae is
+% initialized. It should be defined later by the user.
+% \cmd{\@cvplace} is not declared by means
+% of~\cmd{\DeclareRobustCommand*}, because this adds a
+% superfluous~\cmd{\protect} (causing problems with the
+% \package{ifthen}~package).
+% \begin{macrocode}
+\newcommand*{\@cvplace}{\@empty}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@cvlistheading}
+% The box containing the heading of a \env{cvlist}~environment is
+% allocated.
+% \begin{macrocode}
+\newsavebox{\@cvlistheading}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cvlabelsep}
+% \begin{macro}{\cvlabelskip}
+% \begin{macro}{\cvlabelwidth}
+% \changes{v0.9d}{1999-08-25}{\cmd{\cvlabelskip} was introduced.}
+% Some lengths are initialized.
+% \begin{macrocode}
+\newlength{\cvlabelsep}%
+\newlength{\cvlabelskip}%
+\newlength{\cvlabelwidth}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{cv@many@bibs}
+% \begin{macro}{cv@no@date}
+% \begin{macro}{cv@open@bib}
+% \changes{v0.9f}{1999-09-02}{%
+% Flags~\flag{cv@many@bibs} and \flag{cv@open@bib} were
+% introduced.%
+% }
+% \changes{v0.9g}{1999-09-06}{%
+% Flag~\flag{cv@no@date} was introduced.%
+% }
+% \changes{v0.9g}{1999-09-06}{%
+% New name: \flag{cv@many@bibs} instead of \flag{many@bibs}%
+% }
+% We also need one new flag to handle the bibliography option
+% \option{ManyBibs}, another one to handle the
+% \option{NoDate}~option, and another one to handle the
+% \option{openbib}~option separately for the
+% \package{currvita}~package.
+% \begin{macrocode}
+\newboolean{cv@many@bibs}%
+\newboolean{cv@no@date}%
+\newboolean{cv@open@bib}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Option Declaration}
+%
+% \changes{v0.9d}{1999-08-25}{%
+% Options \option{LabelsAligned} and~\option{TextAligned} were
+% introduced.%
+% }
+% \begin{macro}{LabelsAligned}
+% The use of this option suppresses the additional vertical space
+% inserted before in-line headings of \env{cvlist}~environments.
+% It ensures that the gaps between the various headings and labels
+% are equal.
+% \begin{macrocode}
+\DeclareOption{LabelsAligned}{%
+ \setlength{\cvlabelskip}{0ex}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{TextAligned}
+% Use of this option ensures that the items of the right hand
+% column are separated by equal vertical spacing. To achieve this,
+% an additional gap has to be inserted in case of a short heading
+% and no optional argument given to the \cmd{\item}~command. See
+% also the definition of the \env{cvlist}~environment on
+% page~\pageref{makelabel}.
+% \begin{macrocode}
+\DeclareOption{TextAligned}{%
+ \setlength{\cvlabelskip}{%
+ 1.5\baselineskip plus 3pt minus 3pt%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{openbib}
+% \changes{v0.9e}{1999-08-29}{%
+% Option \option{openbib} was introduced.%
+% }
+% \changes{v0.9e}{1999-08-29}{\cmd{\bibindent} was introduced.}
+% \changes{v0.9f}{1999-09-02}{%
+% Option code moved to \env{thebibliography}~environment, checked
+% with flag.%
+% }
+% \changes{v0.9h}{1999-09-08}{%
+% Initialization of~\cmd{\bibindent} moved into option code.%
+% }
+% \changes{v0.9h}{1999-09-08}{%
+% Option \option{OneBib} is no longer necessary and has been
+% deleted.%
+% }
+% For document classes like letter, i.\,e.\ without native support
+% for bibliographies, it is necessary to provide the length of the
+% indentation used in the \option{openbib}~format. It will not be
+% changed if it is already defined.
+% \begin{macrocode}
+\DeclareOption{openbib}{%
+ \@ifundefined{bibindent}{%
+ \newlength{\bibindent}%
+ }{}%
+ \setlength{\bibindent}{1.5em}%
+ \setboolean{cv@open@bib}{true}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{ManyBibs}
+% \changes{v0.9f}{1999-09-02}{%
+% Option \option{ManyBibs} was introduced.%
+% }
+% Use this option in case you need more than one bibliography list,
+% e.\,g.\ for different kinds of publications.
+% \begin{macrocode}
+\DeclareOption{ManyBibs}{%
+ \setboolean{cv@many@bibs}{true}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{NoDate}
+% \changes{v0.9g}{1999-09-06}{%
+% Option \option{NoDate} was introduced.%
+% }
+% Use this option in case you want to omit the date normally
+% printed at the bottom of the curriculum vitae.
+% \begin{macrocode}
+\DeclareOption{NoDate}{%
+ \setboolean{cv@no@date}{true}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Option Processing}
+%
+% \changes{v0.9d}{1999-08-25}{%
+% \option{TextAligned} is the defined as the default option.%
+% }
+% \changes{v0.9f}{1999-09-02}{%
+% \option{OneBib} added to list of default options.%
+% }
+% \changes{v0.9h}{1999-09-08}{%
+% \option{OneBib} deleted from list of default options.%
+% }
+% If no options are specified, the text of the items is aligned by
+% default. Otherwise the options are processed in the order given
+% by the calling command, i.\,e.\ the last one ``wins''.
+% \begin{macrocode}
+\ExecuteOptions{TextAligned}%
+\ProcessOptions*%
+% \end{macrocode}
+%
+%
+% \subsection{Delaying Code}
+%
+% \changes{v0.9c}{1999-08-16}{%
+% Execution of \cmd{\settowidth} delayed until beginning of
+% document%
+% }
+% \changes{v0.9d}{1999-08-25}{%
+% \cmd{\cvlabelfont} is used for measuring the width of the
+% label.%
+% }
+% \changes{v0.9h}{1999-09-08}{%
+% \cmd{\cvlabelsep} is now initialized at the beginning of the
+% document.%
+% }
+% The distance between labels and items is set to~\source{1em}.
+% The maximum allowed width of the labels of the
+% \env{cvlist}~environments forming the curriculum vitae is set to
+% the width of a typical entry. This is done at the beginning of
+% the document, because then the normal fonts have been setup
+% properly.\footnote{Credits go to \person{Gerd Boerrigter} for
+% reporting this bug.}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \setlength{\cvlabelsep}{1em}%
+ \settowidth{\cvlabelwidth}{%
+ \cvlabelfont 88/8888--88/8888%
+ }%
+}%
+% \end{macrocode}
+%
+%
+% \subsection{Defining Commands}
+%
+% \begin{macro}{\cvheadingfont}
+% Normally, the title of the curriculum vitae is typeset in larger
+% bold face.
+% \begin{macrocode}
+\DeclareRobustCommand*{\cvheadingfont}{\bfseries\Large}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cvbibname}
+% \changes{v0.9g}{1999-09-06}{\cmd{\cvbibname} was introduced.}
+% This macro holds the name of the publication list. In my opinion
+% it does not make sense to inherit the definition
+% of~\cmd{\refname} or~\cmd{\bibname}, so a new command is
+% introduced.
+% \begin{macrocode}
+\DeclareRobustCommand*{\cvbibname}{Publications}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cvplace}
+% This command is used to change the place to be typeset at the
+% bottom of the curriculum vitae. It takes one mandatory argument,
+% guess what: the place. \winkey
+% \begin{macrocode}
+\DeclareRobustCommand*{\cvplace}[1]{%
+ \gdef\@cvplace{#1}%
+}%
+% \end{macrocode}
+% The \cmd{\@cvplace}~command is changed globally, so that you can
+% use it also inside environments other than
+% \env{cv}~environments.
+% \end{macro}
+% \begin{macro}{\date}
+% This command is used to change the date that is printed below the
+% curriculum vitae. It needs the date as a mandatory
+% argument. Because the standard \LaTeX{}~classes
+% \file{article.cls}, \file{report.cls} and~\file{book.cls} already
+% define such a command, it will only be defined if it is not
+% provided by the class.
+%
+% In contrast, the \cmd{\@date} command is part of the
+% \LaTeX{}~kernel and thus available in every class. \cmd{\@date}
+% is changed globally for the same reason as the
+% \cmd{\@cvplace}~command.
+% \begin{macrocode}
+\providecommand*{\date}[1]{\gdef\@date{#1}}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{cv}
+% This environment takes the heading of the curriculum vitae as a
+% mandatory argument which is typeset at the beginning of the
+% curriculum vitae without indentation using the corresponding
+% font, whose scope is limited by a separate group. If the
+% argument is empty, no heading is used.
+% \begin{macrocode}
+\newenvironment{cv}[1]{%
+ \ifthenelse{\equal{#1}{\@empty}}{%
+ }{%
+ {%
+ \noindent\cvheadingfont#1\par\nopagebreak
+ }%
+ }%
+% \end{macrocode}
+% \begin{macro}{\@biblabel}
+% \changes{v0.9f}{1999-09-02}{%
+% \cmd{\@biblabel} is set dependent on \option{ManyBibs} option.%
+% }
+% The labels used within the bibliography are redefined locally as
+% empty. In this way it is possible to add explanatory text to the
+% items like~``Articles'' or~``Book Chapters''.
+% \begin{macrocode}
+ \ifthenelse{\boolean{cv@many@bibs}}{%
+ \DeclareRobustCommand*{\@biblabel}[1]{\@gobble{##1}}%
+ }{}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\newblock}
+% \changes{v0.9e}{1999-08-29}{%
+% The commands \cmd{\newblock} and \cmd{\@openbib@code} were
+% introduced.%
+% }
+% \changes{v0.9h}{1999-09-08}{%
+% The command~\cmd{\@openbib@code} is no longer necessary and has
+% been deleted.%
+% }
+% \changes{v0.9h}{1999-09-08}{%
+% The definition is now made local inside the
+% \env{cv}~environment.%
+% }
+% To support bibliographies even in document classes like letter
+% (which do not have ``native'' bibliography support), it is
+% necessary to provide this command:
+% \begin{macrocode}
+ \providecommand{\newblock}{%
+ \hspace{0.11em plus 0.33em minus 0.07em}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{thebibliography}
+% The \env{thebibliography}~environment is (re)defined locally, so
+% you can use a ``normal'' bibliography elsewhere in your
+% document.
+% \changes{v0.9e}{1999-08-29}{%
+% \env{thebibliography}~environment is locally defined.%
+% }
+% \changes{v0.9f}{1999-09-02}{%
+% Heading is suppressed if \option{ManyBibs}~option is used.%
+% }
+% \changes{v0.9f}{1999-09-02}{%
+% \cmd{\newblock}~command is redefined locally for
+% \option{openbib} support.%
+% }
+% \changes{v0.9f}{1999-09-02}{%
+% \cmd{\labelsep} is set dependent on \option{ManyBibs}~option.%
+% }
+% \changes{v0.9f}{1999-09-02}{%
+% Code for \option{openbib}~option is executed depending on the
+% \flag{cv@open@bib} flag.%
+% }
+% \changes{v0.9h}{1999-09-08}{%
+% Length of~\cmd{\topsep} was reduced to give spacing consistent
+% to the \env{cvlist}~environments.%
+% }
+% \begin{macrocode}
+ \long\def\thebibliography##1{%
+% \end{macrocode}
+% The heading is omitted if the \option{ManyBibs}~option is
+% used. Otherwise it is typeset using the appropriate font, without
+% indentation. A pagebreak after the heading is suppressed.
+% \begin{macrocode}
+ \ifthenelse{\boolean{cv@many@bibs}}{%
+ }{%
+ {%
+ \noindent\cvlistheadingfont\cvbibname
+ \par\nopagebreak
+ }%
+ }%
+% \end{macrocode}
+% The following redefinition is taken from the standard document
+% classes, as is most of the rest of the environment.
+% \begin{macrocode}
+ \ifthenelse{\boolean{cv@open@bib}}{%
+ \renewcommand{\newblock}{\par}%
+ }{}%
+ \begin{list}{\@biblabel{\@arabic\c@enumiv}}{%
+% \end{macrocode}
+% The lengths of~\cmd{\parsep} and~\cmd{\itemsep} are swapped in
+% comparison with the \env{cvlist}~environments. This gives
+% correct spacing even with the \option{openbib}~option.
+% \begin{macrocode}
+ \setlength{\parsep}{0ex}%
+ \setlength{\itemsep}{%
+ 0.5\baselineskip plus 1pt minus 1pt%
+ }%
+% \end{macrocode}
+% The vertical spacing is adapted to correspond to the other
+% \env{cvlist}~environments.
+% \begin{macrocode}
+ \setlength{\topsep}{0ex}%
+ \setlength{\partopsep}{0ex}%
+% \end{macrocode}
+% With the \option{ManyBibs}~option no labels are used, so no space
+% needs to be reserved.
+% \begin{macrocode}
+ \ifthenelse{\boolean{cv@many@bibs}}{%
+ \setlength{\labelsep}{0em}%
+ }{}%
+% \end{macrocode}
+% And now lots of code adapted from the standard document classes,
+% only written in a \LaTeX nically correct way. \winkey
+% \begin{macrocode}
+ \settowidth{\labelwidth}{\@biblabel{##1}}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \ifthenelse{\boolean{cv@open@bib}}{%
+ \addtolength{\leftmargin}{\bibindent}%
+ \setlength{\itemindent}{-\bibindent}%
+ \setlength{\listparindent}{\itemindent}%
+ }{}%
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand*{\theenumiv}{\@arabic\c@enumiv}%
+ }%
+ \sloppy
+ \clubpenalty4000%
+ \@clubpenalty\clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.=\@m
+ }%
+ \long\def\endthebibliography{%
+ \renewcommand*{\@noitemerr}{%
+ \@latex@warning{Empty `thebibliography' environment}%
+ }%
+ \end{list}%
+ }%
+}{%
+% \end{macrocode}
+% \changes{v0.9c}{1999-08-16}{\cmd{\noindent} added.}
+% \changes{v0.9g}{1999-09-06}{%
+% Support for \option{NoDate}~option was added.%
+% }
+% \changes{v0.9g}{1999-09-06}{%
+% Text following the \env{cv}~environment start in new line,
+% without indentation.%
+% }
+% The place (if given) followed by the date is typeset at the
+% bottom of the curriculum vitae. It should not be indented, even
+% if there are blank lines prior to the end of the
+% \env{cv}~environment.\footnote{Credits go to \person{Gerd
+% Boerrigter} for discovering this~``feature''.} The amount of
+% vertical space seems quite strange but looks right, much better
+% than the expected~\source{1.5\bslash baselineskip}. Don't know
+% why. \winkey
+% \begin{macrocode}
+ \vspace{1.333\baselineskip plus 3pt minus 3pt}%
+ \ifthenelse{\equal{\@cvplace}{\@empty}}{%
+ }{%
+ \noindent
+ \@cvplace
+ \ifthenelse{\boolean{cv@no@date}}{}{%
+ ,~%
+ }%
+ }%
+ \ifthenelse{\boolean{cv@no@date}}{}{%
+ \@date
+ }%
+ \par\noindent\ignorespacesafterend
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\cvlistheadingfont}
+% The headings of the \env{cvlist}~environments forming the
+% curriculum vitae are typeset in large bold face.
+% \begin{macrocode}
+\DeclareRobustCommand*{\cvlistheadingfont}{%
+ \bfseries\large
+}%
+% \end{macrocode}
+% \end{macro}
+% \changes{v0.9d}{1999-08-25}{\cmd{\cvlabelfont} command added.}
+% \begin{macro}{\cvlabelfont}
+% The labels of the \env{cvlist}~environments are typeset in the
+% normal size of the current font.
+% \begin{macrocode}
+\DeclareRobustCommand*{\cvlabelfont}{%
+ \normalsize
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{cvlist}
+% This is the list environment used for the parts of the curriculum
+% vitae. It takes one mandatory argument, the heading of the
+% list.
+% \begin{macrocode}
+\newenvironment{cvlist}[1]{%
+% \end{macrocode}
+% The heading of the list is put into a box, using the
+% corresponding font.
+% \begin{macrocode}
+ \sbox{\@cvlistheading}{\cvlistheadingfont#1}%
+% \end{macrocode}
+% The \env{cvlist}~environment is basically a
+% \env{list}~environment~\ldots
+% \begin{macrocode}
+ \begin{list}{}{%
+% \end{macrocode}
+% \ldots~but with a ``smart'' \cmd{\makelabel}~command which is
+% given the optional argument of the \cmd{\item}~command.
+% \label{makelabel}
+% \begin{macrocode}
+ \renewcommand*{\makelabel}[1]{%
+% \end{macrocode}
+% \changes{v0.9d}{1999-08-25}{%
+% \cmd{\cvlabelfont} is used for measuring the width of the
+% label.%
+% }
+% The width of the heading of the list is measured. If it is
+% positive (i.\,e.\ the box containing the argument of the
+% \env{cvlist}~environment is not empty), the width of the optional
+% argument of the \cmd{\item}~command is measured, too (using the
+% correct font).
+% \begin{macrocode}
+ \settowidth{\@tempdima}{\usebox{\@cvlistheading}}%
+ \ifthenelse{\lengthtest{\@tempdima > 0pt}}{%
+ \settowidth{\@tempdimb}{\cvlabelfont##1}%
+% \end{macrocode}
+% If the heading of the list is less wide than the allowed label
+% width and the optional argument of the \cmd{\item}~command is
+% empty, the \cmd{\item} can be typeset in the same line as the
+% heading.
+%
+% \changes{v0.9d}{1999-08-25}{%
+% \cmd{\cvlabelskip} is used for the vertical spacing before
+% in-line headings%
+% }
+% The box containing the heading is then emptied, the heading is
+% typeset flush to the left.
+% \begin{macrocode}
+ \ifthenelse{%
+ \lengthtest{\@tempdima < \cvlabelwidth} \and
+ \lengthtest{\@tempdimb = 0pt}}{%
+ \parbox[b]{\cvlabelwidth}{%
+ \vspace{\cvlabelskip}%
+ \makebox[\cvlabelwidth][l]{%
+ \box\@cvlistheading
+ }%
+ }%
+ }{%
+% \end{macrocode}
+% If the heading is too wide or the \cmd{\item}~command has an
+% optional argument, the box containing the heading is emptied and
+% the \cmd{\item}~command starts a new line.
+% \begin{macrocode}
+ \parbox[b]{0pt}{%
+ \makebox[0pt][l]{\box\@cvlistheading}%
+ \\*[0.5\baselineskip plus 1pt minus 1pt]%
+ }%
+ }%
+% \end{macrocode}
+% If the box containing the argument of the
+% \env{cvlist}~environment is empty (its width is zero), nothing is
+% done. This case holds for all \cmd{\item}~commands of a
+% \env{cvlist}~environment except for the first or if no heading
+% was specified (this does normally not make sense). You see that
+% it is crucial to empty the box by a
+% plain~\TeX{}~command~\cite{Kopka:1997}, otherwise the heading
+% would be typeset for every \cmd{\item}~command.
+% \begin{macrocode}
+ }{}%
+% \end{macrocode}
+% \changes{v0.9d}{1999-08-25}{\cmd{\cvlabelfont} is used for the
+% label.%
+% }
+% Now that the heading of the list is prepared, the optional
+% argument of the \cmd{\item}~command is typeset flush to the left
+% using the corresponding font and the \cmd{\makelabel}~command has
+% done its work. Sigh. \winkey
+% \begin{macrocode}
+ \cvlabelfont##1\hfill
+ }%
+% \end{macrocode}
+% The spacing used in the \env{cvlist} environments is adjusted.
+% Remember that $\cmd{\itemsep} + \cmd{\parsep}$ is inserted
+% between items~\cite{Goossens:1994}. The label width and the
+% separation between labels and items are set
+% to~\cmd{\cvlabelwidth} and~\cmd{\cvlabelsep}, respectively, which
+% are globally available and thus can be re-adjusted by the user.
+% If the~\source{1} is omitted in the definition of~\cmd{\topsep},
+% ``plus 2pt minus 2pt'' is written into your curriculum vitae.
+% Strange. \winkey
+% \begin{macrocode}
+ \setlength{\itemsep}{0ex}%
+ \setlength{\parsep}{%
+ 0.5\baselineskip plus 1pt minus 1pt%
+ }%
+ \setlength{\topsep}{%
+ 1\baselineskip plus 2pt minus 2pt%
+ }%
+ \setlength{\partopsep}{0ex}%
+ \setlength{\labelsep}{\cvlabelsep}%
+ \setlength{\labelwidth}{\cvlabelwidth}%
+ \setlength{\leftmargin}{\cvlabelwidth}%
+ \addtolength{\leftmargin}{\cvlabelsep}%
+% \end{macrocode}
+% The end of the list initialization and of the
+% \env{cvlist}~environment.
+% \begin{macrocode}
+ }%
+}{%
+ \end{list}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</package>
+% \fi
+% \Finale
+% \iffalse
+%<*testfile>
+\documentclass[12pt,a4paper]{article}
+%
+\usepackage[german]{babel}
+\usepackage{currvita}
+%
+\newcommand*{\ac}[1]{\mbox{#1}}
+%
+\tolerance=600
+%
+\begin{document}
+%
+\begin{cv}{Lebenslauf}
+%
+ \begin{cvlist}{Pers"onliche Daten}
+ \item Axel Reichert\\
+ Beethovenstr.~25\\
+ 40233~D"usseldorf
+ \item Tel.:~(02\,11)~6\,91\,24\,15\\
+ E"~Mail:~axel.reichert@gmx.de
+ \item Geb.~am~03.\,08.~1970 in~D"usseldorf\\
+ Ledig, deutsch
+ \end{cvlist}
+%
+ \begin{cvlist}{Schulbildung}
+ \item[08/1976--05/1989] Grundschule und Gymnasium in Mettmann
+ (Leistungskurse Mathematik und Physik)
+ \end{cvlist}
+%
+ \begin{cvlist}{Wehrdienst}
+ \item[10/1989--09/1990] Fernmeldeaufkl"arer in Clausthal-Zellerfeld
+ und Rotenburg/""W"umme
+ \end{cvlist}
+%
+ \begin{cvlist}{Studium}
+ \item[10/1990--09/1992] Maschinenbauvordiplom an der Universit"at
+ Hannover
+ \item[10/1992--06/1993] Wissenschaftliche Hilfskraft am Institut
+ f"ur Umformtechnik und Umformmaschinen, Hannover; Mitarbeit an
+ DFG-Projekt: Implementation eines Stoffgesetzes in das
+ \ac{FEM}-Programm \ac{ABAQUS}
+ \item[10/1992--08/1996] Maschinenbaudiplom an der Universit"at
+ Hannover, Ent"-wicklungs"~~und Konstruktionstechnik (Schwerpunkte
+ Finite Elemente, Schwingungstechnik und Elasto"~/""Plastomechanik)
+ \item[10/1994--04/1996] Mathematikvordiplom an der Universit"at
+ Hannover
+ \end{cvlist}
+%
+ \begin{cvlist}{Praktikum}
+ \item[08/1994--09/1994] Br"uninghaus~\&~Drissner~GmbH, Hilden
+ (mittelst"andisches Pre"s"~, Stanz"~ und Ziehwerk); Konstruktion
+ eines kombinierten Roll"~ und Zudr"uckwerkzeuges f"ur
+ Klemmschellen
+ \end{cvlist}
+%
+ \begin{cvlist}{Berufserfahrung}
+ \item[seit~08/1996] Max-Planck-Institut f"ur Eisenforschung~GmbH,
+ D"usseldorf; wissenschaftlicher Mitarbeiter der Abteilung
+ Metallurgie
+
+ Promotion "uber "`Soft Reduction beim Stranggie"sen und ihr
+ Einflu"s auf die Produktqualit"at"' im Rahmen eines Projektes der
+ Europ"aischen Gemeinschaft f"ur Kohle und Stahl in Zusammenarbeit
+ mit British Steel, den Dillinger H"uttenwerken und der
+ TU~Clausthal
+ \end{cvlist}
+%
+ \begin{cvlist}{Fremdsprachen}
+ \item Englisch, Franz"osisch
+ \end{cvlist}
+%
+ \begin{cvlist}{\ac{EDV}}
+ \item[Betriebssysteme] \ac{UNIX} (Linux, \ac{IRIX}), Windows, Novell
+ Netware, \ac{DOS}
+ \item[Sprachen] Perl, Shell-Skripte, \ac{HTML}, Fortran~77, Pascal,
+ \ac{BASIC}
+ \item[Anwendungen] \ac{ANSYS}, \ac{MARC}, Word, Excel, Corel"-DRAW,
+ Designer, LaTeX, XEmacs
+ \end{cvlist}
+%
+ \begin{cvlist}{Interessen}
+ \item Klassische Musik, Typographie, Tischtennis, Fotografie
+ \end{cvlist}
+%
+ \begin{cvlist}{Sonstiges}
+ \item[04/1992--10/1995] Ehrenamtliche Mitarbeit als Rechnerwart bei
+ der Saalgemeinschaft~"`Exzenter"' (unter studentischer
+ Selbstverwaltung stehender Arbeits"~~und Zeichensaal f"ur
+ Ingenieurstudenten)
+ \item[seit 01/1997] Aktives Mitglied der Deutschen
+ Anwendervereinigung TeX, Vortr"age und Tutorien auf Konferenzen
+ \end{cvlist}
+%
+% \changes{v0.9d}{1999-08-25}{%
+% \LaTeX{} version of the umlaut is used instead of
+% \package{babel}'s~shortcut.%
+% }
+ \cvplace{D\"usseldorf}
+ \date{13.~September~1999}
+%
+\end{cv}
+%
+\end{document}
+%</testfile>
+% \fi
+\endinput
diff --git a/macros/latex/contrib/currvita/currvita.ins b/macros/latex/contrib/currvita/currvita.ins
new file mode 100644
index 0000000000..256c0ad58d
--- /dev/null
+++ b/macros/latex/contrib/currvita/currvita.ins
@@ -0,0 +1,54 @@
+%
+% currvita.ins
+% Batch file, run through LaTeX.
+%
+% Copyright (C) 1999 Axel Reichert
+% See the files README and COPYING.
+%
+\input docstrip.tex
+%
+\declarepreamble\package
+
+LaTeX package for a curriculum vitae
+
+Copyright (C) 1999 Axel Reichert
+See the files README and COPYING.
+
+\endpreamble
+%
+\declarepreamble\testfile
+
+LaTeX sample file for the currvita package
+
+Copyright (C) 1999 Axel Reichert
+See the files README and COPYING.
+
+\endpreamble
+%
+\keepsilent
+%
+\generate{%
+ \usepreamble\package
+ \file{currvita.sty}{\from{currvita.dtx}{package}}%
+ \usepreamble\testfile
+ \file{cvtest.tex}{\from{currvita.dtx}{testfile}}%
+}%
+%
+\Msg{**************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by LaTeX:}
+\Msg{*}
+\Msg{* \space\space currvita.sty}
+\Msg{*}
+\Msg{* To produce the documentation and an example, run the}
+\Msg{* following files through LaTeX:}
+\Msg{*}
+\Msg{* \space\space currvita.dtx (three times)}
+\Msg{* \space\space cvtest.tex}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{**************************************************************}
+%
+\endbatchfile
diff --git a/macros/latex/contrib/currvita/currvita.pdf b/macros/latex/contrib/currvita/currvita.pdf
new file mode 100644
index 0000000000..b572942bf0
--- /dev/null
+++ b/macros/latex/contrib/currvita/currvita.pdf
Binary files differ