diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/currvita |
Initial commit
Diffstat (limited to 'macros/latex/contrib/currvita')
-rw-r--r-- | macros/latex/contrib/currvita/README | 33 | ||||
-rw-r--r-- | macros/latex/contrib/currvita/currvita.dtx | 1440 | ||||
-rw-r--r-- | macros/latex/contrib/currvita/currvita.ins | 54 | ||||
-rw-r--r-- | macros/latex/contrib/currvita/currvita.pdf | bin | 0 -> 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 Binary files differnew file mode 100644 index 0000000000..b572942bf0 --- /dev/null +++ b/macros/latex/contrib/currvita/currvita.pdf |