summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/currvita/currvita.dtx
blob: 499d8126e2351e5a5e2b3ae59134f7e7ef8d704c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
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