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/curve |
Initial commit
Diffstat (limited to 'macros/latex/contrib/curve')
-rw-r--r-- | macros/latex/contrib/curve/NEWS | 160 | ||||
-rw-r--r-- | macros/latex/contrib/curve/README | 85 | ||||
-rw-r--r-- | macros/latex/contrib/curve/THANKS | 45 | ||||
-rw-r--r-- | macros/latex/contrib/curve/curve.dtx | 2333 | ||||
-rw-r--r-- | macros/latex/contrib/curve/curve.el | 111 | ||||
-rw-r--r-- | macros/latex/contrib/curve/curve.ins | 58 | ||||
-rw-r--r-- | macros/latex/contrib/curve/curve.pdf | bin | 0 -> 279924 bytes | |||
-rw-r--r-- | macros/latex/contrib/curve/examples/Makefile | 70 | ||||
-rw-r--r-- | macros/latex/contrib/curve/examples/bib.bib | 68 | ||||
-rw-r--r-- | macros/latex/contrib/curve/examples/bib.tex | 55 | ||||
-rw-r--r-- | macros/latex/contrib/curve/examples/raw.tex | 51 | ||||
-rw-r--r-- | macros/latex/contrib/curve/examples/rubric.tex | 77 |
12 files changed, 3113 insertions, 0 deletions
diff --git a/macros/latex/contrib/curve/NEWS b/macros/latex/contrib/curve/NEWS new file mode 100644 index 0000000000..f366dcedb1 --- /dev/null +++ b/macros/latex/contrib/curve/NEWS @@ -0,0 +1,160 @@ + + WHAT'S NEW IN CURVE + + +Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Didier Verna +Copyright (C) 2008 Didier Verna + +This file is part of CurVe. + +CurVe may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.1 +of this license or (at your option) any later version. +The latest version of this license is in +http://www.latex-project.org/lppl.txt +and version 1.1 or later is part of all distributions of LaTeX +version 1999/06/01 or later. + +CurVe consists of the files listed in the file `README'. + + +* Version 1.16 +============== +** An examples directory +** New \text macro +to insert plain text in the middle of rubrics, +suggested by Alexandre Duret-Lutz and Franco Callegati. +** Support for openbib option +which was implicit before, reported by Vasilis Boucharas. +** Fix incompatibilities with the splitbib package +reported by Jean Taucol. +** Handle the bibentry/hyperref incompatibility directly +** Implement old font commands +letting packages using them (e.g. fancyhdr) work correctly + +* Version 1.15 +============== +** Support for itemize environments +suggested by Mirko Hessel-von Molo +** Added some documentation about vertical spacing problems in |bbl| files +suggested by Seweryn Habdank-Wojewódzki + +* Version 1.14 +============== +** Support for reverse counting of bibliographic entries +suggested by Joseph Wright +** Support for Polish +thanks to Radek Dominiak <radoslaw.dominiak@gmail.com> + +* Version 1.13 +============== +** Support for title alignment +suggested by Lars Kasper +** Support for footnotes +suggested by Alain Coletta +** Let rubrics honor the current \linewidth +so that they can be used inside minipage environments for instance +** Changed default value of \subrubricbeforespace +to 20pt +** Fix some overfull boxes +reported by Nico Schlömer +** FAQ and documentation update + +* Version 1.12 +============== +** Support for Swedish +thanks to Konrad Skeri Persson <konrad@skeri.com> +** New customizable length \rubricafterspace +defining the space between each rubric +** Fix incompatibilities with the Multibbl package +** Honor bibliography titles (if) provided by multibib or multibbl +** New command \today +** FAQ update +** Fix implementation of skipsamekey option + +* Version 1.11 +============== +** New FAQ section in the doc +** New command \noentry +to manually enlarge too narrow rubrics +** Make \pagebreak, \nopagebreak and \newpage work in rubrics +suggested by Alexandre Duret-Lutz +** Fix spurious right margin spaces +** Fix usage of the bib counter, disable skipsamekey and the prefix +in bibliographic entries + +* Version 1.10 +============== +** Support for automatic skipping of identical keys +with the "skipsamekey" option, suggested by Akim Demaille +** Fix alignment problem with empty prefix +reported by Jonas Haulin + +* Version 1.9 +============= +** Fix incompatibilities with the Bibentry package +reported by Joris Desmet +** Fix support for standard bibliography +broken in version 1.8 + +* Version 1.8 +============= +** Prevent page breaks after subrubric headings + +* Version 1.7 +============= +** Support for key horizontal alignment +** \raggedleft and \raggedright can now be used within individual entries +** Fix typo in Danish version of \continuedname + +* Version 1.6 +============= +** Support for rubric and subrubric titles horizontal alignment +** Support for standard LaTeX page style mechanism +** Support for oneside and twoside options +** Support for Portuguese +thanks to Adiel Mittmann <adiel@inf.ufsc.br> +** Bug fix in \bibliography +protect against non existent files, reported by Andrew Comport +** Fix conflict with Hyperref +in some bibliograhy definitions + +* Version 1.5 +============= +** Support for Dutch +thanks to Thomas Delaet <Thomas.Delaet@student.kuleuven.ac.be> +** Bug fix (typo) in the rubric environment +reported by Torsten Liesk + +* Version 1.4 +============= +** Support for photo inclusion +** Support for headers horizontal scaling +** Optional argument to \makeheaders for vertical alignment, +suggested by Dan Luecking + +* Version 1.3 +============= +** Support for Danish +thanks to Kim Rud Bille <krbi01@control.auc.dk> + +* Version 1.2 +============= +** Support for standard bibliography mechanism(s) +** New macro \entry* +** Support for Spanish +thanks to Agustín Martín <agusmba@terra.es> +** Support for German +thanks to Harald Harders <h.harders@tu-bs.de> + +* Version 1.1 +============= +** Support for Italian +thanks to Riccardo Murri <murri@phc.unipi.it> + + + + +Local Variables: +mode: outline +End: diff --git a/macros/latex/contrib/curve/README b/macros/latex/contrib/curve/README new file mode 100644 index 0000000000..835a5168e8 --- /dev/null +++ b/macros/latex/contrib/curve/README @@ -0,0 +1,85 @@ + + ABOUT CURVE + + +Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2010 Didier Verna + +This file is part of CurVe. + +CurVe may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.1 +of this license or (at your option) any later version. +The latest version of this license is in +http://www.latex-project.org/lppl.txt +and version 1.1 or later is part of all distributions of LaTeX +version 1999/06/01 or later. + +CurVe consists of the following files: + +- NEWS +- README (this file) +- THANKS +- curve.dtx +- curve.el +- curve.ins +- curve.pdf +- cv.tex +- rubric.tex + + +* Description +============= + +CurVe is a Curriculum Vitae class package for LaTeX2e. It provides you with a +set of commands to create rubrics, entries in these rubrics etc. CurVe will +then properly format your CV for you (possibly splitting it onto multiple +pages, repeating the titles etc), which is usually the most painful part of CV +writing. Another nice feature of CurVe is its ability to manage different CV +"flavors" simultaneously. It is in fact often the case that you want to +maintain slightly divergent versions of your CV at the same time, in order to +emphasize on different aspects of your background. CurVe also comes with +support for AUC-TeX. + +CurVe homepage: http://www.lrde.epita.fr/~didier/software/latex.php#curve + + +* Installation +============== + +If you are building CurVe from the tarball you need to execute the following +steps in order to extract the necessary files: + +[pdf]latex curve.ins -> will create the class file curve.cls +[pdf]latex curve.dtx -> (twice) will create the documentation files curve.pdf + or curve.dvi. Note that curve.pdf is already part of + the distribution. + +After that, you need to install the generated documentation and class file to +a location where LaTeX can find them. For a TDS-compliant layout, the +following locations are suggested: + +[TEXMF]/tex/latex/curve/curve.cls +[TEXMF]/doc/latex/curve/curve.[pdf|dvi] + +If you're an AUC-TeX user, you may also install the file `curve.el' in a +suitable AUC-TeX style directory. + +Once you have installed the package, you might eventually want to process the +example files from the examples/ directory. Just type "make pdf" or "make dvi" +in that directory to compile everything. + + + Have fun! + +-- +Didier Verna <didier@lrde.epita.fr> + +Sientific site: http://www.lrde.epita.fr/~didier +Music (Jazz) site: http://www.didierverna.com + + + + +Local Variables: +mode: outline +End: diff --git a/macros/latex/contrib/curve/THANKS b/macros/latex/contrib/curve/THANKS new file mode 100644 index 0000000000..95c5a4de6a --- /dev/null +++ b/macros/latex/contrib/curve/THANKS @@ -0,0 +1,45 @@ + + THANK YOU! + + +Copyright (C) 2007, 2010 Didier Verna + +This file is part of CurVe. + +CurVe may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.1 +of this license or (at your option) any later version. +The latest version of this license is in +http://www.latex-project.org/lppl.txt +and version 1.1 or later is part of all distributions of LaTeX +version 1999/06/01 or later. + +CurVe consists of the files listed in the file `README'. + + +* Contributors + +** The following persons have contributed code, bug reports, localization, +** suggestions etc: + +Jean Taucol, Franco Callegati, Vasilis Boucharas, Mirko Hessel-von Molo, +Seweryn Habdank-Wojewódzki, Joseph Wright, Radek Dominiak, Lars Kasper, Alain +Coletta, Nico Schlömer, Konrad Skeri Persson, Alexandre Duret-Lutz, Akim +Demaille, Jonas Haulin, Joris Desmet, Adiel Mittmann, Andrew Comport, Thomas +Delaet, Torsten Liesk, Dan Luecking, Kim Rud Bille, Agustín Martín, Harald +Harders, Riccardo Murri. + + +* Generous donators + +** The following persons have made a donation, bought me a present, taken care +** of my belly with chocolate or beer etc: + +Damian Krapf. + + + + +Local Variables: +mode: outline +End: diff --git a/macros/latex/contrib/curve/curve.dtx b/macros/latex/contrib/curve/curve.dtx new file mode 100644 index 0000000000..1c01cfd1f1 --- /dev/null +++ b/macros/latex/contrib/curve/curve.dtx @@ -0,0 +1,2333 @@ +% \iffalse +% +% curve.dtx --- Doc file for the CurVe package (code and documentation) +% +% Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Didier Verna +% Copyright (C) 2008, 2010 Didier Verna +% +% Author: Didier Verna <didier@lrde.epita.fr> +% Maintainer: Didier Verna <didier@lrde.epita.fr> +% Created: Thu Dec 10 16:04:01 1998 +% Last Revision: Tue Nov 30 18:37:39 2010 +% +% This file is part of CurVe. +% +% CurVe may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.1 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.1 or later is part of all distributions of LaTeX +% version 1999/06/01 or later. +% +% CurVe consists of the files listed in the file `README'. +% +% +% Commentary: +% +% Contents management by FCM version 0.1. +% +% +% Code: +% +%<*driver> +\documentclass[a4paper]{ltxdoc} + +\usepackage{dox}[2009/09/21] +\doxitem[idxtype=env.]{Env}{environment}{environments} +\doxitem[idxtype=opt.]{Option}{option}{options} +\doxitem[idxtype=cnt.]{Counter}{counter}{counters} +\doxitem[idxtype=lang.]{Lang}{lang}{languages} +\doxitem[idxtype=cond.]{Cond}{conditional}{conditionals} + +\usepackage{xspace} +\usepackage[T1]{fontenc} +\newcommand{\curve}{% + \mbox{\fontfamily{ptm}\fontseries{b}\fontshape{it}\selectfont% + C% + \hspace{-.3ex}\protect\raisebox{-.3ex}{\textmd{u}}% + \hspace{-.1ex}\textmd{r}% + \hspace{-.2ex}V% + \hspace{-.6ex}\protect\raisebox{-.3ex}{\textmd{e}}}% + \xspace} + +% #### NOTE: I don't want to \usepackage{curve} just for getting the file +% information. So here's what I do: generate a header with only the +% \ProvidesPackage command. Then, I \input it so that \GetFileInfo works. +% However, I need to manually set the current file name and extension that +% would normally be set by \RequirePackage. Also, note that the call to +% \GetFileInfo below needs to use the extension of the header, that is inc +% instead of sty, even the file curve.inc does not really exist. +\makeatletter + \def\@currname{curve} + \def\@currext{inc} +\makeatother +\input{header.inc} +% \OnlyDescription +\CodelineIndex +% \RecordChanges +\setcounter{secnumdepth}{4} +\begin{document} +\DocInput{curve.dtx} +\end{document} +%</driver> +% +% \fi +% +% \catcode`\¡=14 +% \CheckSum{1830} +% \GetFileInfo{curve.inc} +%% \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 \~} +% +% \MakeShortVerb{\|} +% +% \makeatletter +% \def\ps@mystyle{ +% \def\@oddfoot{\hfil\thepage\hfil} +% \def\@evenfoot{\hfil\thepage\hfil} +% \def\@evenhead{\hfil\slshape\leftmark} +% \def\@oddhead{\slshape\rightmark\hfil}} +% \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}{% +% -3.25ex\@plus -1ex \@minus -.2ex}{% +% 1.5ex \@plus .2ex}{% +% \normalfont\normalsize\bfseries}} +% \makeatother +% +% \newcommand\packagecopyright{Copyright \copyright{} 2000, 2001, 2002, 2003, +% 2004, 2005, 2006, 2007, 2008, 2010 Didier Verna\xspace} +% +% \newcommand\emacs{\textsf{Emacs}} +% \newcommand\auctex{AUC-\TeX\xspace} +% \newcommand\cv{\textsc{CV}\xspace} +% +% \pagestyle{mystyle} +% \markright{\hskip-.5\marginparwidth \curve \fileversion{} (\filedate)} +% +% \date{\texttt{\fileversion{} (\filedate)}} +% \title{\curve{} -- a \LaTeXe{} class package for making \textbf{Cur}ricula +% \textbf{V}ita\textbf{e}\footnote{\curve homepage: +% \texttt{http://www.lrde.epita.fr/\~{}didier/software/latex.php\#curve}}} +% \author{Didier Verna\\ +% \texttt{mailto:didier@lrde.epita.fr}\\ +% \texttt{http://www.lrde.epita.fr/\~{}didier}} +% \maketitle +% +% +% \begin{abstract} +% \curve provides a \LaTeXe{} class that hopefully will make your life +% easier when you want to write your \cv. It provides you with a set of +% commands to create rubrics, entries in these rubrics etc. \curve will then +% properly format your \cv for you (possibly splitting it onto multiple +% pages), which is usually the most painful part of \cv writing. Another +% nice feature of \curve is its ability to manage different \cv ``flavors'' +% simultaneously. It is in fact often the case that you want to maintain +% slightly divergent versions of your \cv at the same time, in order to +% emphasize on different aspects of your background. +% +% The \curve package is \packagecopyright, and distributed under the terms +% of the LPPL license. +% \end{abstract} +% +% +% \tableofcontents +% +% +% \section{Installation} +% \subsection{Extraction} +% If you are building \curve from the tarball you need to execute the +% following steps in order to extract the necessary files. \curve also +% requires the \textsf{DoX} package (version 2.0, release date 2009/09/21 or +% later), to build. It is not required to use the package. +% \begin{verbatim} +% [pdf]latex curve.ins +% [pdf]latex curve.dtx +% [pdf]latex curve.dtx +% makeindex -s gind curve.idx +% [pdf]latex curve.dtx +% [pdf]latex curve.dtx +% \end{verbatim} +% After that, you need to install the generated documentation and style files +% to a location where \LaTeX{} can find them. +% +% \subsection{TDS-compliant layout} +% For a TDS-compliant layout, the following locations are suggested: +% \begin{verbatim} +% [TEXMF]/tex/latex/curve/curve.cls +% [TEXMF]/doc/latex/curve/curve.[pdf|dvi] +% \end{verbatim} +% +% \subsection{\auctex support} +% \auctex is a powerful major mode for editing \TeX{} documents in \emacs. In +% particular, it provides automatic completion of command names once they are +% known. \curve supports \auctex by providing a style file named +% \texttt{curve.el} which contains \auctex definitions for the relevant +% commands. This file should be installed in a place where \auctex can find it +% (usually in a subdirectory of your \LaTeX{} styles directory). Please refer +% to the \auctex documentation for more information on this. +% +% As of version 1.2, \curve has an improved \auctex support. Most notably, the +% command |M-Ret| will insert an |\entry*| macro within a |rubric| +% environment. Also, the |\makerubric| macro handling now removes both the +% file extension and the file flavor extension. +% +% \subsection{Examples} +% Once you have installed \curve, you might want to start with processing the +% examples in the \texttt{examples/} directory. This will give you an idea of +% what a non customized \cv looks like with \curve. You can also throw an eye +% to my own \cv, which is written with \curve and has some more fancy hackery +% on top of it. It's in French, but only the appearance is important for you. +% My \cv can be found at +% \texttt{http://www.lrde.epita.fr/\~{}didier/about/cv.pdf}. +% +% +% \section{Overview} +% \subsection{Document Layout} +% \subsubsection{Headers} +% A \curve \cv begins with two optional headers (upper left and upper right) +% in which you usually put your name, address, email, whether you're married +% and so on. These headers will respectively be left and right aligned. As of +% version 1.4, \curve lets you insert a small identity photo in the headers, +% either on the left, on the right, or between them. +% +% \subsubsection{Titles} +% After these headers come an optional title and/or subtitle, which can be +% centered on the page, or flushed either left or right. +% +% \subsubsection{Rubrics} +% The remaining of the document is composed of sections called ``rubrics'' in +% the \curve terminology. A rubric represents a major topic that you want to +% detail in your \cv. Typical rubrics are ``Education'', ``Professional +% Experience'' and the like. Rubrics have a title (centered by default) and +% appear under the form of properly aligned ``entries'' (see below). If a +% rubric has to be split across different pages, its title will be repeated +% automatically. +% +% \paragraph{Entries} +% An entry is an item of information related to the rubric under which it +% appears. An entry has a ``contents'', and an optional ``key'' under which it +% is classified. For instance, under the ``Education'' rubric, you could state +% that you got a Ph.D. in computer science in the year 2000. In that case, the +% year would be the entry's key, and the ``Ph.D. in computer science'' part +% would be the entry's contents. \curve aligns both keys and contents +% together. Keys are optional in order for you to classify several entries +% together (without repeating the same key over and over again). +% +% \paragraph{Subrubrics} +% Additionally, you might want to further split your rubrics into +% ``subrubrics''. For instance, in my own \cv, I have a ``Professional +% Experience'' rubric, with three subrubrics: ``Teaching'', ``Research'' and +% ``Development''. This can be accomplished with a special command. Subrubrics +% are displayed in alignment with the entries' contents by default, but are +% formatted differently so that they remain distinguishable. +% +% \subsection{Document Structure} +% \subsubsection{Source File Splitting} +% \curve is based on the \texttt{LTXtable} package by David Carlisle. I won't +% go into gory details, but this has an important implication: \textbf{each +% rubric must be in its own separate file}. In other words, your \cv's main +% source file is really a skeleton whose major task is to include the +% different rubrics from their respective source files. +% +% This is not much of a hassle, really, and it actually made my life easier +% when I implemented the ``flavor'' mechanism described below. +% +% \subsubsection{Flavors} +% It is often desirable to maintain several slightly divergent versions of +% one's \cv at the same time. For instance, when I was looking for a job some +% time ago, I had a version of my \cv emphasizing on Artificial Intelligence, +% and another emphasizing on Distributed Virtual Reality. Only the title and +% some entries in the ``Professional Experience'' rubric were a bit different; +% the main skeleton basically remained the same. +% +% \curve provides an easy-to-use mechanism for maintaining different +% ``flavors'' of your \cv at the same time. You basically write different +% versions of (some of) your rubrics in different files, tell \curve which +% flavor you want to format (\curve can even ask you which one to use +% directly) and that's it. \curve will use the global skeleton, and whenever +% it finds a rubric file specialized for that particular flavor, it will use +% it. Otherwise, it will simply fall back to the default one (no particular +% flavor). +% +% +% \section{Using \curve} +% First of all, please note that \curve requires the presence of +% \texttt{ltxtable}, \texttt{ifthen}, \texttt{calc} and \texttt{filehook}. If +% you're using the identity photo feature, the \texttt{graphicx} package is +% also needed. You don't have to load them explicitly though. As long as +% \LaTeX{} can locate them, they will be used automatically. +% +% \subsection{Skeleton File} +% Say |\documentclass[|\meta{options}|]{curve}| at the beginning of your +% skeleton file in order to use \curve. The available options are described +% along the text, where appropriate. +% +% \subsubsection{Headers} +% \paragraph{Header Components} +% \DescribeMacro{\leftheader} +% \marg{contents}\\ +% \DescribeMacro{\rightheader} +% \ldots\\ +% The |\leftheader| and |\rightheader| macros define respectively the contents +% of the upper left and upper right headers. They can be used in the +% document's preamble only. The headers will respectively be flushed to the +% left and to the right. +% +% \noindent\DescribeMacro{\photo}\oarg{hpos}\marg{file}\\ +% If you want to insert a small identity photo into the header part, you can +% use the |\photo| macro (available since version 1.4). It takes a mandatory +% argument in which you pass the image file name, as you would to +% |\includegraphics|. This macro also takes an optional argument which lets +% you specify the horizontal position of the photo: the values can be +% \texttt{l} (the default), \texttt{c} or \texttt{r} meaning that the photo +% will appear on the left, center, or right. +% +% \paragraph{Header Layout} +% The headers' horizontal layout is further controled by three additional +% macros. +% +% \noindent\DescribeMacro{\photoscale}\marg{scale}\\ +% The |\photoscale| macro specifies the amount of text width that the photo +% should occupy. This should be a number between 0 and 1. By default, +% 0.1 is used (meaning 10\% of |\textwidth|).\\ +% \DescribeMacro{\photosep} The |\photosep| macro is a \LaTeX{} length that +% specifies the space to leave between the side of the photo and the next +% headers's text. This is used only +% when the photo is on the left or right. By default, |10pt| is used.\\ +% \DescribeMacro{\headerscale}\marg{scale}\\ +% Finally, |\headerscale| specifies the proportion of the \emph{remaining} +% space that the \emph{left} textual header should occupy. It works like +% |\photoscale| and amounts to 0.5 by default. +% +% Let me take an example to make this clearer. Suppose you have a +% |\photoscale| of 0.1 and a |\photosep| of \texttt{10pt}. The +% \emph{remaining} space, that is, the space occupied by the textual headers, +% amounts to 90\% of the text width, minus 10 points. If you then specify a +% |\headerscale| of 0.6, then the left header will take 60\% of that remaining +% space, and the right one the other 40\%. +% +% \noindent\DescribeMacro{\headerspace} +% |\headerspace| is the amount of extra vertical space to put after the +% headers. This is a \LaTeX{} length that defaults to \texttt{10pt}. +% +% \paragraph{Making Headers} +% \DescribeMacro{\makeheaders}\oarg{vpos}\\ +% If you have defined headers, make them appear by calling |\makeheaders| just +% after the beginning of your document. Note that calling this macro assumes +% that you have previously defined both headers (possibly empty, though). +% Otherwise, an error will be signaled. As of version 1.4, the |\makeheaders| +% command accepts an optional argument that controls the vertical alignment. +% When given, this argument must be either |t| (for top), |b| (for bottom) or +% |c| (for center; the default). +% +% \subsubsection{Titles} +% \paragraph{Title Components} +% \DescribeMacro{\title}\marg{text}\\ +% \DescribeMacro{\subtitle}\ldots\\ +% The |\title| and |\subtitle| macros take one mandatory argument which define +% respectively your \cv's title and subtitle. They can be used in the +% document's preamble only. +% +% \paragraph{Title Layout} +% \DescribeMacro{\titlealignment}\marg{hpos}\\ +% By default, titles are centered on the page. However, you can also have them +% aligned to the left or right side of the page. To specify your preferred +% title alignment, call |\titlealignment| with an argument of either +% \texttt{l}, \texttt{c} or \texttt{r}, the meaning of which should be +% obvious. You can also achieve the same effect by passing an optional +% argument to |\maketitle| (see below).\\ +% \DescribeMacro{\titlespace} +% |\titlespace| is the amount of extra vertical space to put after the +% title(s). This is a \LaTeX{} length that defaults to \texttt{0pt}.\\ +% \DescribeMacro{\titlefont}\marg{cmds}\\ +% \DescribeMacro{\subtitlefont}\ldots\\ +% The |\titlefont| and |\subtitlefont| macros take one mandatory argument +% which redefine the fonts to use for the title and the subtitle. They can be +% used in the document's preamble only. By default, |\Huge\bfseries| and +% |\Huge\itshape| are used respectively. +% +% \paragraph{Making Titles} +% \DescribeMacro{\maketitle}\oarg{hpos}\\ +% If you have defined a title (and possibly a subtitle), make it (them) appear +% by calling |\maketitle| after the beginning of your document, and just after +% |\makeheaders| if you happen use it. It is possible to omit the subtitle, +% but if you call |\maketitle| without having defined at least a title, an +% error will be signaled. |\maketitle| accepts an optional argument for +% specifying the title alignment scheme. This argument is the same as in +% |\titlealignment|, and takes precedence over it. +% +% \subsubsection{Flavors} +% As you already know, each rubric must reside in its own separate file. For +% instance, if you have a ``Professional Experience'' rubric, you would write +% its contents into a file named \texttt{experience.tex}. The flavor mechanism +% works by assigning a pre-extension to rubric file names. For instance, +% suppose you want to make a special flavor of your \cv emphasizing on +% ``distributed virtual reality''. You would call this flavor ``dvr'', and +% write the modified ``Professional Experience'' rubric into a file named +% \texttt{experience.dvr.tex}. +% +% \noindent\DescribeMacro{\flavor}\marg{key}\\ +% The |\flavor| macro takes one mandatory argument which specifies the flavor +% to use (in our example, \texttt{dvr}). Although this might be of little use, +% it is possible to change the flavor anywhere, even right in the middle of +% your \cv's skeleton.\\ +% \DescribeOption{ask} +% Instead of using the |\flavor| macro, you can make \curve ask you at +% run-time which flavor to use by passing the \texttt{ask} option to it. +% +% \subsubsection{Rubrics} +% Apart from making headers and titles, the body of your skeleton file will +% usually contain nothing but directives to include the different rubrics of +% your \cv. +% +% \noindent\DescribeMacro{\makerubric}\marg{name}\\ +% To include a rubric in your document, use |\makerubric|. This macro takes +% one mandatory argument which specifies the rubric to include at that point. +% The argument actually corresponds to the rubric file name \textbf{without +% any extension}. Continuing our previous example, you would say +% |\makerubric{experience}|. First, \curve will try to find such a rubric file +% specific for the current flavor in use, (e.g. \texttt{experience.dvr.tex}). +% If that fails, it will fall back to a non-flavored file (here, +% \texttt{experience.tex}). This allows you to specialize only the required +% rubrics and use the default ones otherwise. +% +% \noindent\DescribeMacro{\rubricafterspace} +% As of version 1.12, \curve provides a new \LaTeX{} length, +% |\rubricafterspace| controlling the amount of extra vertical space to put +% after a rubric (hence, before the next one). The default is \texttt{0pt}. +% +% \subsection{Rubric Files} +% \subsubsection{The \texttt{rubric} Environment} +% \DescribeEnv{rubric}\marg{title}\\ +% The whole contents of a rubric file must be enclosed in a \texttt{rubric} +% environment. This environment takes one mandatory argument which specifies +% the rubric's title. When a rubric crosses several pages, its title is +% restated with a ``continuation'' text appended. +% +% \noindent\DescribeMacro{\rubricalignment}\marg{hpos}\\ +% As of version 1.6, the rubric titles horizontal alignment can be changed +% thanks to the |\rubricalignment| macro. Possible values for its mandatory +% argument are |l|, |c| and |r| (meaning left, centered, or right relative to +% the whole text width), and |cl| and |cc| (meaning left or centered relative +% to the entries'contents). By default, rubric titles are centered (|c|). +% +% \noindent\DescribeMacro{\rubricfont}\marg{cmds} +% The |\rubricfont| macro takes one mandatory argument which redefines the +% font to use for rubric titles. By default, |\Large\bfseries| is used. +% +% \noindent\DescribeMacro{\rubricspace} +% |\rubricspace| is the amount of extra vertical space to put after the rubric +% title. This is a \LaTeX{} length that defaults to \texttt{10pt}. +% +% \subsubsection{Standard Entries} +% \paragraph{Creating rubric entries} +% \DescribeMacro{\entry}\oarg{key}\marg{contents}\\ +% You create entries in your rubrics by calling the |\entry| macro. The first +% (optional) argument specifies the key, and the second (mandatory) one +% specifies the contents. Both keys and contents are aligned within each +% rubric. +% +% \noindent\DescribeMacro{\entry*}\oarg{key}\\ +% Actually, the |\entry| macro was somewhat ill-designed in the first place. +% The |rubric| environment pretty much behaves as an |itemize| one, hence the +% idea of using an |\item|-like syntax. As of version 1.2, \curve provides an +% |\entry*| macro which behaves like |\item| in lists: it takes the same first +% optional argument as the non starred version, but has no other argument. The +% entry's contents simply consists of the text following the macro call, up to +% the next |\entry|, |\entry*| or |\subrubric| (see below) call. +% +% \paragraph{Entries layout} +% \DescribeMacro{\keyalignment}\marg{hpos}\\ +% As of version 1.7, entries'keys horizontal alignment can be changed thanks +% to the |\keyalignment| macro. Possible values for its mandatory argument are +% |l|, |c| and |r| (meaning left, centered, or right). By default, keys are +% left aligned (|l|). +% +% \noindent\DescribeMacro{\keyfont}\marg{cmds}\\ +% The |\keyfont| macro takes one mandatory argument which redefines the font +% to use for the entries' keys. By default, the standard document font is +% used. +% +% \noindent\DescribeMacro{\prefix}\marg{cmds}\\ +% Each entry's contents can be prefixed with a visual clue (a symbol for +% instance). This comes in handy to make a clear distinction between different +% entries sharing the same key (which is not repeated). The |\prefix| macro +% takes one mandatory argument which redefines the prefix to use. By default, +% |\textbullet| is used. Note that as of version 1.11, \curve forces the +% prefix to be empty in bibliographic entries (see section \ref{sec:biblio}). +% +% \noindent\DescribeOption{skipsamekey} +% While maintaining your CV, you might end up reorganizing your entries and +% even get entries with the same key. Normally, \curve blindly prints the keys +% regardless of their values. If you don't want repetition, you would have to +% remove keys by hand which can be cumbersome. As of version 1.10, \curve can +% skip all but the first of a series of identical keys automatically, provided +% that you use the |skipsamekey| option. Note that as of version 1.11, \curve +% disables this mechanism in bibliography rubrics (see section +% \ref{sec:biblio}). +% +% \subsubsection{Plain text entries} +% \DescribeMacro{\text}\marg{contents}\\ +% Sometimes, you may feel the need to insert plain text in the middle of a +% rubric, without the fancy key/prefix formatting stuff. As of version 1.16, +% \curve provides a |\text| macro for that. Plain text occupies the whole page +% width. If you whish to further distinguish it from the surrounding entries, +% you can use |\par| to add vertical space before and/or after the text. +% +% \subsubsection{Invisible entries\label{sec:noentry}} +% The most frequently asked question about \curve is probably whether it is +% possible to align entries across several rubrics. This is (currently) not +% possible automatically because rubrics are typeset as independant tables. +% However, a manual solution boils down to enlarging too narrow entries (keys, +% actually). +% +% \noindent \DescribeMacro{\noentry}\marg{key}\\ +% As of version 1.11, \curve provides a convenience macro to ease this +% process: |\noentry|. This macro takes one mandatory argument, a key that +% will be used in the entries alignment calculation. However, this command +% will not produce any text. So if you want all your rubrics to share the same +% alignment, you typically spot the longest key in your CV, and issue a +% |\noentry{this long key}| call in all other rubrics. +% +% \subsubsection{Subrubrics} +% \DescribeMacro{\subrubric}\marg{title}\\ +% Within a single rubric, you can further separate entries into subrubrics. In +% order to do this, the |\subrubric| macro is provided. Its mandatory argument +% specifies the subrubric's title. +% +% \noindent\DescribeMacro{\subrubricalignment}\marg{hpos}\\ +% As of version 1.6, the subrubrics horizontal alignment can be changed thanks +% to the |\subrubricalignment| macro. Possible values for its mandatory +% argument are |l|, |c| and |r| (meaning left, centered, or right relative to +% the whole text width), and |cl| and |cc| (meaning left or centered relative +% to the entries'contents). By default, subrubrics are left-aligned with the +% entries' contents (|cl|). +% +% \noindent\DescribeMacro{\subrubricfont}\marg{cmds}\\ +% The |\subrubricfont| macro takes one mandatory argument which redefines the +% font to use for the subrubrics. By default, |\Large\itshape| is used. +% +% \noindent\DescribeMacro{\subrubricspace} +% |\subrubricspace| controls the amount of extra vertical space to put after +% subrubrics. This is a \LaTeX{} length that defaults to \texttt{5pt}. +% \DescribeMacro{\subrubricbeforespace} +% |\subrubricbeforespace| controls the amount of extra vertical space to put +% \textit{before} a subrubric when there are entries above. This is a \LaTeX{} +% length that defaults to \texttt{20pt}. +% +% \subsection{Bibliography\label{sec:biblio}} +% Most scientists include their own list of publications in their \cv, so +% \curve has support for different forms of bibliography. +% +% \subsubsection{Manual bibliography} +% The first thing you can do is create your own bibliography manually (I mean, +% just like an ordinary rubric), and although this may appear boring, I +% actually encourage people to do so for at least three reasons (only my +% opinion of course): +% \begin{itemize} +% \item A \cv should be strictly formatted and coherent in layout. +% Bibliography is no exception to this rule. In other words, it is prettier +% to have your publications formatted like the rest of your \cv. +% \item Automatic bibliography generation tools produce references, which is +% silly in a \cv because you don't actually reference your papers anywhere +% (or do you?). So better to sort them another way, like, by year of +% publication as I do in my own \cv. +% \item Manually adding, like, what? Half a dozen papers a year in your +% \cv is not that much of a burden after all. +% \end{itemize} +% +% \subsubsection{The \texttt{bibliography} environment} +% \DescribeEnv{thebibliography}\marg{key}\\ +% \DescribeMacro{\bibitem}\oarg{label}\marg{ref}\\ +% Some people however have expressed the wish of having standard bibliography +% support in \curve. Version 1.2 provides that. The standard |thebibliography| +% environment is now supported along with its |\bibitem| companion. The +% behavior is actually that of a |rubric| environment with its |\entry*| +% companion (with an empty prefix however). This fact has two implications: +% firstly, the argument to the environment is unused in \curve (but remains +% for compatibility with the rest of \LaTeX) because \curve itself formats the +% keys and contents properly aligned. Secondly, the bibliographic environment +% \textbf{must} reside in its own file, as any other rubric. Don't forget that +% if you happen to write the environment manually. +% +% \noindent\DescribeOption{openbib} +% As of version 1.16, the \texttt{openbib} option is supported. When used, +% bibliographic blocks appear on different lines instead of in a single +% paragraph. Note that prior to version 1.16, this was actually the default +% behavior, which was not quite right (the standard classes don't openbib by +% default). +% +% \noindent\DescribeOption{revbib} +% As of version 1.14, it is possible to count bibliographic items in a reverse +% order, which comes in handy when you display your publications from the most +% recent to the oldest one. The \texttt{revbib} option triggers this behavior. +% Note that this also works when you use \BibTeX{} (see below). +% +% \subsubsection{\BibTeX} +% \DescribeMacro{\nocite}\marg{citations}\\ +% \DescribeMacro{\bibliographystyle}\marg{style}\\ +% \DescribeMacro{\bibliography}\marg{files}\\ +% If you want to use \BibTeX, that's also possible of course. Do it as you +% would do in a random paper. You will probably issue a |\nocite{*}| command +% followed by a call to |\bibliography|. \curve uses the |bbl| file as a +% rubric one. +% +% \subsubsection{Compatibility concerns} +% \begin{itemize} +% \item |bibentry|: \curve is compatible with the |bibentry| package since +% version 1.9. Note that there is an incompatibility between |bibentry| and +% |hyperref| with a workaround described in the |hyperref| README file. +% However, \curve takes care of this problem for you so you \emph{must not} +% use the workaround described there. +% \item |multibbl|: \curve is compatible with the |multibbl| package since +% version 1.12. +% \item |splitbib|: \curve is compatible with the |splitbib| package since +% version 1.16. Note however that only one level of category is allowed +% (categories appear as subrubrics). +% \end{itemize} +% +% \subsection{Standard Class Features} +% \subsubsection{Page Size and layout} +% \DescribeOption[noindex]{*paper} +% \DescribeOption[noprint]{a4paper} +% \DescribeOption[noprint]{a5paper} +% \DescribeOption[noprint]{b4paper} +% \DescribeOption[noprint]{letterpaper} +% \DescribeOption[noprint]{legalpaper} +% \DescribeOption[noprint]{executivepaper} +% \DescribeOption{landscape} +% The \texttt{a4}, \texttt{a5}, \texttt{b4}, \texttt{letter}, \texttt{legal} +% and \texttt{executive} ``paper'' options allow you to select the type of +% page format you want. By default, \texttt{letterpaper} is used. The +% \texttt{landscape} options switches the horizontal and vertical settings. +% I'm not sure why I propose this option. Nobody wants to write a \cv in +% landscape mode, right? +% +% \noindent\DescribeOption{oneside} +% \DescribeOption{twoside} +% As of version 1.6, \curve also supports the standard \texttt{oneside} and +% \texttt{twoside} class options. By default, \texttt{oneside} is used. In +% \texttt{twoside} mode, odd and even pages have a different geometry and +% headings layout. +% +% \subsubsection{Font Size} +% \DescribeOption{10pt} +% \DescribeOption{11pt} +% \DescribeOption{12pt} +% The \texttt{10pt}, \texttt{11pt} and \texttt{12pt} options let you choose +% the size of the default font you want to use. By default, \texttt{10pt} is +% used. +% +% \subsubsection{Output Mode} +% \DescribeOption{final} +% \DescribeOption{draft} +% In \texttt{draft} mode, a black rule will be drawn at the end of overfull +% lines (as done by standard classes). Due to \curve using the +% \texttt{LTXtable} package (and in case \texttt{longtable} prior to version 4 +% is used by it), a call to |\setlongtables| is performed in \texttt{final} +% mode. Please refer to the next section for more information on this. By +% default, \texttt{final} is used. +% +% \subsubsection{Page styles} +% \DescribeMacro{\pagestyle}\marg{style}\\ +% \DescribeMacro{\thispagestyle}\marg{style}\\ +% As of version 1.6, \curve supports the standard \LaTeX{} page style +% mechanism. Available styles are \texttt{empty}, \texttt{plain}, +% \texttt{headings} and \texttt{myheadings}. These styles have their usual +% meaning, given that rubric and subrubric names are used for marking purpose +% (the equivalent of chapters and sections in books for instance). By default, +% the page style is \texttt{empty}. +% +% \subsubsection{Internationalization} +% \curve currently supports 12 languages via the following options: +% \texttt{english}, \texttt{french} (or \texttt{francais}), \texttt{spanish}, +% \texttt{portuguese} (or \texttt{portuges}), \texttt{brazilian} (or +% \texttt{brazil}), \texttt{italian}, \texttt{german}, \texttt{ngerman}, +% \texttt{dutch}, \texttt{danish}, \texttt{swedish} and \texttt{polish}. The +% \texttt{german} and \texttt{ngerman} options are currently equivalent; so +% are the \texttt{portuguese} and \texttt{brazilian} ones. +% +% If you want a finer grain on the language-dependent parts of \curve, the +% following macros are provided. +% +% \noindent\DescribeMacro{\continuedname}\marg{continuation text}\\ +% The |\continuedname| macro takes one mandatory argument which redefines the +% continuation text output when rubrics extend across several pages. By +% default, ``\meta{space}(continued)'' is used in English. Although this might +% be of little use, it is possible to change the continuation text in the +% middle of your document, provided that you do so outside the |rubric| +% environment. +% +% \noindent\DescribeMacro{\listpubname}\marg{title}\\ +% The |\listpubname| macro takes one mandatory argument which redefines the +% title of the bibliographic section (when you use the provided bibliography +% support). By default, ``List of Publications'' is used in English. Note that +% for compatibility with the |multibbl| and |multibib| packages, \curve honors +% the existence of |\bibname| or |\refname| macros prior to |\listpubname| for +% deciding which title to give to the bibliographic rubric. +% +% +% \section{Hints, Tips'n Tricks} +% Here are some tips that I use for my own \cv. You might find them of some +% interest. +% +% \subsection{Page Geometry} +% First of all, it is common to have very thin margins in curricula vitae. +% \curve does not do anything special about this because I don't think that +% belongs to its duty. The \texttt{geometry} package comes in handy if you +% want to reduce your margins. +% +% \subsection{Vertical spacing} +% Although they might look a bit like itemize environments, \curve rubrics +% are implemented with tables. This has an important consequence: empty lines +% in rubrics do affect the vertical spacing of your document (at least for the +% time being). +% +% You might be tempted to leave such empty lines here and there for +% readability, or for this precise effect it has on vertical spacing, but I +% advise you against this. Better to stick entries and subrubrics together, +% and play with the spacing commands to achieve the desired layout. This will +% ensure a more consistent layout with future versions of \curve. +% +% If you are using \BibTeX{}, you should also be aware of the fact that some +% \BibTeX{} styles output empty lines between |\bibitem|'s, and this has an +% unfortunate influence on vertical spacing for the same technical reason. If +% this vertical space annoys you, what you can do is modify the \BibTeX{} +% style in order to avoid the production of these empty lines. For instance, +% in |plain.bst|, this simply boils down to removing the call to |newline$| at +% the beginning of the |output.bibitem| function. +% +% \subsection{The \texttt{ltx} Extension} +% Personally, I prefer to keep \texttt{.tex} for \TeX{} files, and use the +% \texttt{ltx} extension for \LaTeX. This is supported by \curve which will +% actually prefer \texttt{ltx} files over \texttt{tex} ones, especially when +% including rubrics. To be more precise, suppose you are building a flavor +% \texttt{flv} of your \cv. A call to |\makerubric{foo}| will try to use the +% following files in that order:\\ +% \texttt{foo.flv.ltx}\\ +% \texttt{foo.flv.tex}\\ +% \texttt{foo.ltx}\\ +% \texttt{foo.tex} +% +% \subsection{Longtable} +% \curve users should be aware of the fact that the layout implementation is +% based on the \texttt{LTXtable} package, which in turn is a mix of +% \texttt{tabularx} and \texttt{longtable}. This has several implications, +% most notably that when writing a rubric, you are actually inside a tabular +% environment. Here are some things to keep in mind: +% \begin{itemize} +% \item You are not allowed to use the |\\| command to start a new line. +% However, you're free to use |\par| in your entries'contents instead. Note +% that \curve sets |\parskip| to |0pt| so that starting a new paragraph +% looks like just starting a new line. +% \item You can use |\raggedright| and |\raggedleft| in your entries. +% \item You can use |\pagebreak|, |\nopagebreak| and |\newpage| at the +% beginning of a line, just before starting a new entry. +% \item Prior to version 4, \texttt{longtable} used an alignment mechanism +% involving calls to |\setlongtables| (see its documentation). \curve +% retains this for backward compatibility and still calls |\setlongtables| +% in final (not draft) mode. If your version of \texttt{longtable} is recent +% enough, you shouldn't be concerned by this. If it is older, you might need +% to process your document a few times in draft mode, and then one last time +% in final mode. However, keep in mind that in both cases, you might still +% need up to 3 or 4 passes of \LaTeX{} on your document. +% \end{itemize} +% +% \subsection{Managing Different Flavors} +% If you maintain different flavors of your \cv at the same time, you probably +% want to rebuild all of them after any modification. Since you have a single +% skeleton file for all of them (say, \texttt{cv.tex}), the output file will +% have the same name for all flavors (say, \texttt{cv.dvi}). This can bother +% you if you want all flavors of your formatted \cv available at the same +% time. +% +% To remedy this problem, I usually use the \texttt{ask} option and a +% makefile to build the different flavors and move the output file to +% flavor-specific name. Here is a typical makefile target that should clarify +% (or maybe darken?) what I am saying: +% \begin{verbatim} +%cv.$(FLAVOR).dvi: cv.ltx $(RUBRICS) +% echo $(FLAVOR) | latex cv.ltx +% mv cv.dvi $@ +% \end{verbatim} +% As you can see, the shell is responsible for answering the question. +% +% \subsection{More On Flavors} +% In order to implement the flavor mechanism, the \LaTeX{} macro |\input| has +% been redefined to look for ``flavored'' files first. This is actually very +% nice because you can use it if you want to make different flavors of text +% that does not belong in rubrics. +% +% For instance, suppose you want a special version of the subtitle of your \cv +% for the flavor \texttt{flv}. Create a file called \texttt{subtitle.flv.ltx} +% and put something like ``|\subtitle{special subtitle}|'' in it. Do something +% similar for the default subtitle. Now go to the skeleton of your \cv, and +% write |\input{subtitle}| in the preamble. That's it. You'll have different +% subtitles in your different \cv flavors. +% +% +% \appendix +% \section{Appendix} +% +% \subsection{Frequently Asked Questions} +% \begin{enumerate} +% \item +% \textbf{Is there a way to align entries across several (all) rubrics?}\\ +% Not automatically because rubrics are typeset as individual tables. There +% are many ways to manually ``trick'' too narrow keys in order to enlarge +% them however. As of version 1.11, \curve provides a new convenience +% macro to do something similar: see section \ref{sec:noentry}. +% \item +% \textbf{How can I change the interline spacing?}\\ +% Internally, \curve uses \LaTeX{} tabular-based environments. As such, +% you can play with |\arraystretch| to modify the space between rows. +% \item +% \textbf{When a page break occurs in the middle of a rubric, the same +% alignment is kept on both pages, which might result in suboptimal +% layout.}\\ +% This is a technical limitation of the automatic alignment computation +% process in longtables and I don't think there will be a solution anytime +% soon (page breaking is orthogonal to column width calculation). What you +% can do, once your CV is finalized, is manually split the concerned rubric +% into different ones, starting at the appropriate entries to avoid page +% breaking in the middle. +% \item +% \textbf{How can I make multi-line subrubrics?}\\ +% Here are two ideas: +% \begin{itemize} +% \item Put your text in several consecutive subrubrics (one per line). +% However, this might not give you the desired vertical spacing. +% \item Probably better, put your material in a parbox:\\ +% |\subrubric{\parbox{width}{first blah blah\\next blah blah}}|\\ +% This is a bit dirty because you have to figure out a suitable width for +% your parbox, but this will work. +% \end{itemize} +% \item +% \textbf{How can I make multi-line keys?}\\ +% The trick is to temporarily change the key cell type to a paragraph one +% (remember that we're in a tabular environment). +% \begin{enumerate} +% \item Recover the key formatting by doing something like this near +% the beginning of your document:\\ +% |\makeatletter\let\mykeyfont\@keyfont\makeatother| +% \item Use something like this where you need a multi-line key (you will +% have to adjust the paragraph width manually): +% \begin{verbatim} +% \entry*[\multicolumn{1}{@{}>{\mykeyfont}p{2cm}}{% +% long key\newline long key}] +% Entry text. Entry text. Entry ... +% \end{verbatim} +% \end{enumerate} +% \item +% \textbf{How to deal with long keys?}\\ +% The best thing to do is to make them multi-line manually. Please refer to +% the previous question. +% \item +% \textbf{Can I change the prefix locally?}\\ +% Yes and no. The |\prefix| command can only be used in the preamble or +% between rubrics. Otherwise, there is currently no way to change the prefix +% for a single entry. This limitation will disappear in a future release. +% \end{enumerate} +% +% \subsection{Changes} +% \begin{itemize} +% \item[v1.16] New |\text| macro, suggested by Alexandre Duret-Lutz and Franco +% Callegati.\\ +% Support for the \texttt{openbib} option which was implicit +% before, reported by Vasilis Boucharas.\\ +% Fix incompatibilities with the |splitbib| package, reported by Jean +% Taucol.\\ +% Handle the |bibentry|/|hyperref| incompatibiity directly.\\ +% Implement old font commands, letting packages using them (e.g. |fancyhdr|) +% work correctly. +% \item[v1.15] Support for itemize environments, suggested by Mirko Hessel-von +% Molo\\ +% Added some documentation about vertical spacing problems in |bbl| files, +% suggested by Seweryn Habdank-Wojew\'odzki +% \item[v1.14] Support for reverse counting bibliographic entries, suggested +% by Joseph Wright\\ +% Support for Polish thanks to Radek Dominiak\\ +% |<radoslaw.dominiak@gmail.com>| +% \item[v1.13] Support for title alignment, suggested by Lars Kasper\\ +% Support for footnotes, suggested by Alain Coletta\\ +% Let rubrics honor the current |\linewidth|\\ +% Changed default value of |\subrubricbeforespace| to \texttt{20pt}\\ +% Fix some overfull boxes, reported by Nico Schl\"olmer\\ +% FAQ and documentation update +% \item[v1.12] Support for Swedish thanks to Konrad Skeri Persson\\ +% |<konrad@skeri.com>|\\ +% New customizable length |\rubricafterspace| defining the space between +% each rubric\\ +% Fix incompatibilities with the |multibbl| package.\\ +% Honor bibliography titles (if) provided by |multibib| or |multibbl|\\ +% New command |\today|\\ +% FAQ update\\ +% Fix implementation of \texttt{skipsamekey} option +% \item[v1.11] New FAQ section in the documentation\\ +% New command |\noentry| to manually enlarge too narrow rubrics\\ +% Make |\pagebreak|, |\nopagebreak| and |\newpage| work in rubrics, +% suggested by Alexandre Duret-Lutz\\ +% Fix spurious right margin spaces\\ +% Fix usage of the bib counter, disable |skipsamekey| and the prefix in +% bibliographic entries +% \item[v1.10] Support automatic skipping of identical keys, suggested by Akim +% Demaille\\ +% Fix alignment problem with empty prefix, reported by Jonas Haulin +% \item[v1.9] Fix incompatibilities with the |bibentry| package, reported by +% Joris Desmet\\ +% Fix standard bibliography support (broken in v1.8) +% \item[v1.8] Prevent page breaks after subrubric headings +% \item[v1.7] Support for key horizontal alignment\\ +% |\raggedleft| and |\raggedright| can now be used within individual +% entries\\ +% Fix typo in Danish version of |\continuedname| +% \item[v1.6] Support for rubric and subrubric titles horizontal alignment\\ +% Support for standard \LaTeX{} page style mechanism\\ +% Support for \texttt{oneside} and \texttt{twoside} options\\ +% Support for Portuguese thanks to Adiel Mittmann |<adiel@inf.ufsc.br>|\\ +% Fix bug in |\bibliography|: protect against non existant files, reported +% by Andrew Comport\\ +% Fix conflict with \texttt{hyperref} in some bibliography definitions +% \item[v1.5] Support for Dutch thanks to Thomas Delaet\\ +% |<Thomas.Delaet@student.kuleuven.ac.be>|\\ +% Fix typo in rubric environment, reported by Torsten Liesk +% \item[v1.4] Support for photo inclusion\\ +% Support for headers horizontal scaling\\ +% Optional argument to |\makeheaders| for vertical alignment, +% suggested by Dan Luecking +% \item[v1.3] Support for Danish thanks to Kim Rud Bille +% |<krbi01@control.auc.dk>| +% \item[v1.2] Support for standard bibliography mechanism(s)\\ +% New macro |\entry*|\\ +% Improvements in \auctex support\\ +% Support for German thanks to Harald Harders |<h.harders@tu-bs.de>|\\ +% Support for Spanish thanks to Agust\'in Mart\'in |<agusmba@terra.es>| +% \item[v1.1] Support for Italian thanks to Riccardo Murri +% |<murri@phc.unipi.it>| +% \end{itemize} +% +% +% \StopEventually{\par Well, I think that's it. Enjoy using \curve! +% \vfill\hfill\small\packagecopyright.} +% +% +% \subsection{Implementation} +% First, the class announcement and the initial requirements: +% \begin{macrocode} +%<curve>\NeedsTeXFormat{LaTeX2e} +%<*header> +\ProvidesClass{curve}[2010/12/14 v1.16 Curriculum Vitae class for LaTeX2e] + +%</header> +%<*curve> +\RequirePackage{ltxtable} +\RequirePackage{ifthen} +\RequirePackage{calc} +\RequirePackage{filehook} + +% \end{macrocode} +% +% \subsubsection{Rubric Files} +% We don't want to output an extra |subrubricbeforespace| if no entry is +% present before the subrubric. This is done by using an |\@beforespace| +% command which is set to |0pt| at the beginning of each rubric, and switched +% to the proper value when an entry is added. +% \begin{macro}{\@nextentry} +% The |@nextentry| command is used to implement |\entry*| while maintaining +% backward compatibility with |\entry| and |\subrubric|. A new entry or a +% subrubric might have to close the preceding entry if it was opened using +% the starred form. +% \begin{macrocode} +\gdef\@nextentry{} + +% \end{macrocode} +% \end{macro} +% +% \paragraph{Entries} +% \begin{macro}{\@keyfont} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\keyfont} +% \marg{cmds} +% \begin{macrocode} +\def\@keyfont{} +\newcommand\keyfont[1]{\gdef\@keyfont{#1}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\keyalignment} +% \marg{hpos} +% \begin{macrocode} +\newcolumntype{k}{>{\@keyfont}l} +\newcommand\keyalignment[1]{% + \ifthenelse{\equal{#1}{l}}{}{% + \ifthenelse{\equal{#1}{r}}{}{% + \ifthenelse{\equal{#1}{c}}{}{% + \ClassError{curve}{Invalid key alignment}{% + You have called \protect\keyalignment\space with an invalid value.% + \MessageBreak + Valid options include l, c, and r.\MessageBreak + Type X <return> to quit, fix the typo, and rerun LaTeX.}}}}% + \newcolumntype{k}{>{\@keyfont}#1}} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@prefix} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\prefix} +% \marg{cmds} +% \begin{macrocode} +\def\@prefix{\textbullet} +\newcommand\prefix[1]{\gdef\@prefix{#1}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\@maybekey} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\@alwayskey} +% \marg{key} +% \begin{option}{skipsamekey} +% As of version 1.10, \curve can skip keys identical to the previous one, if +% the option |skipsamekey| is used. +% \begin{macrocode} +\def\@maybekey#1{% + \def\@newkey{#1}% + \ifx\@previouskey\@newkey\gdef\@@key{}\else% + \gdef\@@key{#1}\gdef\@previouskey{#1}% + \fi} + +\def\@alwayskey#1{% + \gdef\@@key{#1}} + +\let\@key\@alwayskey +\DeclareOption{skipsamekey}{\let\@key\@maybekey} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\@entry} +% \oarg{key}\marg{contents}\MacroTopsep=0pt +% \begin{macro}{\@sentry} +% \oarg{key} +% \begin{macro}{\entry} +% \begin{macrocode} +\newcommand\@entry[2][]{% + \gdef\@nextentry{}\@key{#1}% + \egroup% end of \noalign opened in \entry. + \@@key&\@prefix\\\par} + +\newcommand\@sentry[1][]{% + \gdef\@nextentry{\\\par}\@key{#1}% + \egroup% end of \noalign opened in \entry. + \@@key&\@prefix&} + +\newcommand\entry{% + \@nextentry + \noalign\bgroup\gdef\@beforespace{\subrubricbeforespace}% + \@ifstar{\@sentry}{\@entry}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\@almosttextwidth} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\@text} +% \marg{contents} +% \begin{macro}{\@stext} +% \begin{macro}{\text} +% This macro wraps around |\multicol| to let people input plain text within +% a rubric. Currently, plain text doesn't interfere with the |skipsamekey| +% mechanism, but this choice is arguable. Note that the use of |\text*| is +% not documented yet because it doesn't work quite right. It produces an +% undesired space before the text and I don't understand why. +% \begin{macrocode} +\newlength{\@almosttextwidth} +\AtBeginDocument{\setlength\@almosttextwidth{\textwidth-\hfuzz}} + +\newcommand\@text[1]{% + \gdef\@nextentry{}% + \egroup% end of \noalign opened in \text. + \multicolumn{3}{@{}p{\@almosttextwidth}@{}}{#1}\\} + +\newcommand\@stext{% + \gdef\@nextentry{\egroup\\\par}% + \egroup% end of \noalign opened in \text. + \multicolumn{3}{@{}p{\@almosttextwidth}@{}}\bgroup} + +\newcommand\text{% + \@nextentry + \noalign\bgroup\gdef\@beforespace{\subrubricbeforespace}% + \@ifstar{\@stext}{\@text}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\noentry} +% \marg{key}\\ +% This macro is a wrapper around |\kill| to manually adjust too narrow +% rubrics. +% \begin{macrocode} +\newcommand\noentry[1]{\@nextentry + \noalign{\gdef\@nextentry{}}#1&&\kill} + +% \end{macrocode} +% \end{macro} +% +% \paragraph{Subrubrics} +% \begin{macro}{\@subrubricfont} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\subrubricfont} +% \marg{cmds} +% \begin{macrocode} +\def\@subrubricfont{\Large\itshape} +\newcommand\subrubricfont[1]{\gdef\@subrubricfont{#1}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\subrubricbeforespace} +% \MacroTopsep=0pt +% \begin{macro}{\subrubricspace} +% \begin{macrocode} +\newlength\subrubricbeforespace +\setlength\subrubricbeforespace{20pt} + +\newlength\subrubricspace +\setlength\subrubricspace{5pt} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\@subrubricmark} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\@@subrubric} +% \marg{title}\\ +% Note that |\@subrubricmark| is called outside the raisebox. That's because +% otherwise, the mark would not go to the toplevel page vertical box, and +% \TeX{} would not notice it. +% \begin{macrocode} +\let\@subrubricmark\@gobble + +\def\@@subrubric#1{% + \rule{0bp}{\@beforespace} + {\@subrubricfont#1} + \@subrubricmark{#1}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\@clcccolsep} +% The normal intercolumn space between the prefix and the entry's content is +% replaced with an unbreakable space. This causes a problem (fixed in +% version 1.10) with the [sub]rubric alignments cl and cc when the prefix is +% empty, because the unbreakable space in question slightly shifts the +% entry's content to the right. If we want a proper alignment, we then have +% to take this offset into account in the cl and cc multicolumns, for both +% rubrics and subrubrics. The following macro implements this: +% \begin{macrocode} +\def\@clcccolsep{\hspace{\tabcolsep}\ifx\@prefix\@empty~\fi} + +% \end{macrocode} +% \begin{macro}[noindex]{\@subrubric@*} +% \MacroTopsep=0pt +% \begin{macro}{\@subrubric} +% \marg{title} +% \begin{macro}[noprint]{\@subrubric@l} +% \begin{macro}[noprint]{\@subrubric@c} +% \begin{macro}[noprint]{\@subrubric@r} +% \begin{macro}[noprint]{\@subrubric@cl} +% \begin{macro}[noprint]{\@subrubric@cc} +% \begin{macro}[noprint]{\@subrubric@cc} +% \begin{macrocode} + +\def\@subrubric@l#1{\multicolumn{3}{@{}l@{}}{\@@subrubric{#1}}} +\def\@subrubric@c#1{\multicolumn{3}{@{}c@{}}{\@@subrubric{#1}}} +\def\@subrubric@r#1{\multicolumn{3}{@{}r@{}}{\@@subrubric{#1}}} +\def\@subrubric@cl#1{&\multicolumn{2}{@{\@clcccolsep}l@{}}{\@@subrubric{#1}}} +\def\@subrubric@cc#1{&\multicolumn{2}{@{\@clcccolsep}c@{}}{\@@subrubric{#1}}} + +\let\@subrubric\@subrubric@cl + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\subrubricalignment} +% \marg{hpos} +% \begin{macrocode} +\newcommand\subrubricalignment[1]{% + \def\@curve@temp@a{\let\@subrubric} + \expandafter\@curve@temp@a\csname @subrubric@#1\endcsname + \@ifundefined{@subrubric}{% + \ClassError{curve}{Invalid subrubric alignment}{% + You have called \protect\subrubricalignment\space with an invalid value.% + \MessageBreak + Valid options include l, c, r, cl and cc.\MessageBreak + Type X <return> to quit, fix the typo, and rerun LaTeX.}} +} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\subrubric} +% \marg{title} +% \begin{macrocode} +\newcommand\subrubric[1]{% + \@nextentry + \noalign{\gdef\@nextentry{}}% + \@subrubric{#1}\\*[\subrubricspace]\par} + +% \end{macrocode} +% \end{macro} +% +% \paragraph{Rubrics} +% \begin{macro}{\@rubricfont} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\rubricfont} +% \marg{cmds} +% \begin{macrocode} +\def\@rubricfont{\Large\bfseries} +\newcommand\rubricfont[1]{\gdef\@rubricfont{#1}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\rubricspace} +% \begin{macrocode} +\newlength\rubricspace +\setlength\rubricspace{10pt} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@@rubrichead} +% \marg{title}\MacroTopsep=0pt +% \begin{macro}[noindex]{\@rubrichead@*} +% \ldots +% \begin{macro}{\@rubrichead} +% \begin{macro}[noprint]{\@rubrichead@l} +% \begin{macro}[noprint]{\@rubrichead@c} +% \begin{macro}[noprint]{\@rubrichead@r} +% \begin{macro}[noprint]{\@rubrichead@cl} +% \begin{macro}[noprint]{\@rubrichead@cc} +% \begin{macrocode} +\def\@@rubrichead#1{\@rubricfont#1} + +\def\@rubrichead@l#1{\multicolumn{3}{@{}l@{}}{\@@rubrichead{#1}}} +\def\@rubrichead@c#1{\multicolumn{3}{@{}c@{}}{\@@rubrichead{#1}}} +\def\@rubrichead@r#1{\multicolumn{3}{@{}r@{}}{\@@rubrichead{#1}}} +\def\@rubrichead@cl#1{&\multicolumn{2}{@{\@clcccolsep}l@{}}{\@@rubrichead{#1}}} +\def\@rubrichead@cc#1{&\multicolumn{2}{@{\@clcccolsep}c@{}}{\@@rubrichead{#1}}} + +\let\@rubrichead\@rubrichead@c + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\rubricalignment} +% \marg{hpos} +% \begin{macrocode} +\newcommand\rubricalignment[1]{% + \def\@curve@temp@a{\let\@rubrichead} \expandafter\@curve@temp@a\csname + @rubrichead@#1\endcsname \@ifundefined{@rubrichead}{% + \ClassError{curve}{Invalid rubric alignment}{% + You have called \protect\rubricalignment\space with an invalid value.% + \MessageBreak Valid options include l, c, r, cl and cc.\MessageBreak + Type X <return> to quit, fix the typo, and rerun LaTeX.}} } + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\rubricafterspace} +% \begin{macrocode} +\newlength\rubricafterspace +\setlength\rubricafterspace{0pt} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@rubricmark} +% \mbox{}\MacroTopsep=0pt +% \begin{environment}{rubric} +% \marg{title}\\ +% Marking commands don't seem to work in longtable headings. So the rubric +% mark is issued just after it.\\ +% As of version 1.7, |\raggedleft| and |\raggedright| are redefined in order +% to work within individual entries. This redefinition simply consists in +% removing the |\\| definition since it's not available anyway, and also to +% remove the |\parskip| setting since it's |Opt| in the whole class. +% \begin{macrocode} +\let\@rubricmark\@gobble + +\newenvironment{rubric}[1]{% + %% \begin{rubric} + \def\raggedright{% + \@rightskip\@flushglue\rightskip\@rightskip\leftskip\z@skip}% + \def\raggedleft{% + \rightskip\z@skip\leftskip\@flushglue\parfillskip\z@skip}% + \gdef\@beforespace{0pt}% + \gdef\@nextentry{}% + \gdef\@previouskey{}% + \global\let\old@newpage\newpage% + \global\let\old@pagebreak\pagebreak% + \global\let\old@nopagebreak\nopagebreak + \begin{longtable}{@{}kl@{~}X@{}} + \@rubrichead{#1}\\*[\rubricspace] + \endfirsthead + \@rubrichead{#1\@continuedname}\\*[\rubricspace] + \endhead + \noalign{\@rubricmark{#1}% + \global\let\in@newpage\newpage% + \global\let\in@pagebreak\pagebreak% + \global\let\in@nopagebreak\nopagebreak% + \gdef\newpage{\@nextentry\noalign{\gdef\@nextentry{}}\in@newpage} + \gdef\pagebreak{\@nextentry\noalign{\gdef\@nextentry{}}\in@pagebreak} + \gdef\nopagebreak{\@nextentry\noalign{\gdef\@nextentry{}}\in@nopagebreak}}}{% + %% \end{rubric} + \@nextentry + \end{longtable}\par\vspace\rubricafterspace + \global\let\newpage\old@newpage% + \global\let\pagebreak\old@pagebreak% + \global\let\nopagebreak\old@nopagebreak} + +% \end{macrocode} +% \end{environment} +% \end{macro} +% \begin{macro}{\continuedname} +% \marg{continuation text} +% \begin{macrocode} +\newcommand\continuedname[1]{\gdef\@continuedname{#1}} + +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Skeleton File} +% \paragraph{Utilities} +% \begin{macro}{\today} +% \begin{macrocode} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} + +% \end{macrocode} +% \end{macro} +% +% \paragraph{Headers} +% \begin{macro}{\header@scale} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\headerscale} +% \marg{scale} +% \begin{macrocode} +\def\header@scale{.5} +\newcommand\headerscale[1]{\gdef\header@scale{#1}} +\@onlypreamble\headerscale + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\headerspace} +% \begin{macrocode} +\newlength\headerspace +\setlength\headerspace{10pt} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@leftheader} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\leftheader} +% \marg{contents} +% \begin{macro}{\@rightheader} +% \mbox{} +% \begin{macro}{\rightheader} +% \marg{contents}\\ +% If the user calls |\makeheaders| without specifying headers first, an +% error will be generated. The same applies for the title (not the +% subtitle), but this is already managed by \LaTeX{} itself. +% \begin{macrocode} +\def\@leftheader{% + \ClassError{curve}{No \protect\leftheader\space given}{% + You have called \protect\makeheaders, % + but you didn't provide a left header.\MessageBreak + Type X <return> to quit, add a call to \protect\lefheader\space % + in the preamble of your CV,\MessageBreak + and rerun LaTeX.}} +\newcommand\leftheader[1]{\gdef\@leftheader{#1}} +\@onlypreamble\leftheader + +\def\@rightheader{% + \ClassError{curve}{No \protect\rightheader\space given}{% + You have called \protect\makeheaders, % + but you didn't provide a right header.\MessageBreak + Type X <return> to quit, add a call to \protect\rightheader\space % + in the preamble of your CV,\MessageBreak + and rerun LaTeX.}} +\newcommand\rightheader[1]{\gdef\@rightheader{#1}} +\@onlypreamble\rightheader + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\photoscale} +% \marg{scale}\MacroTopsep=0pt +% \begin{macro}{\photosep} +% \marg{length} +% \begin{macro}{\photo} +% \oarg{hpos}\marg{file} +% \begin{macrocode} +\def\photo@scale{.1} +\newcommand\photoscale[1]{\gdef\photo@scale{#1}} +\@onlypreamble\photoscale + +\newlength\photosep +\setlength\photosep{10pt} + +\newcommand\photo[2][l]{% + \RequirePackage{graphicx} + \ifthenelse{\equal{#1}{l}}{}{% + \ifthenelse{\equal{#1}{r}}{}{% + \ifthenelse{\equal{#1}{c}}{}{% + \ClassError{curve}{Invalid argument to \protect\photo}{% + Argument 2 of \protect\photo must be `l', `r' or `c'.}}}}% + \def\tmp@cmd{\global\let\makeheaders@} + \expandafter\tmp@cmd\csname makeheaders@#1\endcsname + \gdef\photo@file{#2}} +\@onlypreamble\photo + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\photo@width} +% \begin{macro}[noindex]{\includephoto@*} +% \begin{macro}[noprint]{\includephoto@t} +% \begin{macro}[noprint]{\includephoto@c} +% \begin{macro}[noprint]{\includephoto@b} +% These different versions of the photo inclusion command exist for proper +% alignment of the picture itself with the left and right headers. +% \begin{macrocode} +\newlength\photo@width + +\def\includephoto@t{% + \raisebox{.7\baselineskip-\height}{% + \includegraphics[width=\photo@width]{\photo@file}}} + +\def\includephoto@c{% + \raisebox{-.5\height}{% + \includegraphics[width=\photo@width]{\photo@file}}} + +\def\includephoto@b{\includegraphics[width=\photo@width]{\photo@file}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\leftheader@width} +% \MacroTopsep=0pt +% \begin{macro}{\rightheader@width} +% \begin{macrocode} +\newlength\leftheader@width +\newlength\rightheader@width + +% \end{macrocode} +% \end{macro} +% \end{macro} +% And here are the different versions of the |\makeheaders| command: +% \begin{macro}{\makeheaders@l} +% \marg{vpos} +% \begin{macrocode} +\def\makeheaders@l#1{% + \setlength\photo@width{\photo@scale\textwidth} \setlength\leftheader@width{% + (\textwidth - \photo@width - \photosep) * \real{\header@scale}} + \setlength\rightheader@width{% + \textwidth - \photo@width - \photosep - \leftheader@width} + \parbox[#1]{\photo@width + \photosep}{\includephoto@\hspace\photosep}% + \parbox[#1]{\leftheader@width}{\@leftheader}% + \parbox[#1]{\rightheader@width}{\raggedleft\@rightheader}} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\makeheaders@c} +% \marg{vpos} +% \begin{macrocode} +\def\makeheaders@c#1{% + \setlength\photo@width{\photo@scale\textwidth} + \setlength\leftheader@width{(\textwidth - \photo@width) * \real{.5}} + \setlength\rightheader@width{\leftheader@width} + \parbox[#1]{\leftheader@width}{\@leftheader}% + \parbox[#1]{\photo@width}{\includephoto@}% + \parbox[#1]{\rightheader@width}{\raggedleft\@rightheader}} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\makeheaders@r} +% \marg{vpos} +% \begin{macrocode} +\def\makeheaders@r#1{% + \setlength\photo@width{\photo@scale\textwidth} + \setlength\leftheader@width{% + (\textwidth - \photo@width - \photosep) * \real{\header@scale}} + \setlength\rightheader@width{% + \textwidth - \photo@width - \photosep - \leftheader@width} + \parbox[#1]{\leftheader@width}{\@leftheader}% + \parbox[#1]{\rightheader@width}{\raggedleft\@rightheader}% + \parbox[#1]{\photo@width + \photosep}{\hspace\photosep\includephoto@}} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\makeheaders@} +% \marg{vpos} +% \begin{macrocode} +\def\makeheaders@#1{% + \setlength\leftheader@width{\header@scale\textwidth}% + \setlength\rightheader@width{\textwidth - \leftheader@width}% + \parbox[#1]{\leftheader@width}{\@leftheader}% + \parbox[#1]{\rightheader@width}{\raggedleft\@rightheader}} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\makeheaders} +% \oarg{vpos} +% \begin{macrocode} +\newcommand\makeheaders[1][c]{% + \ifthenelse{\equal{#1}{t}}{}{% + \ifthenelse{\equal{#1}{b}}{}{% + \ifthenelse{\equal{#1}{c}}{}{% + \ClassError{curve}{Invalid argument to \protect\makeheaders}{% + Argument of \protect\makeheaders must be `t', `b' or `c'.}}}}% + \def\tmp@cmd{\global\let\includephoto@} + \expandafter\tmp@cmd\csname includephoto@#1\endcsname + \makeheaders@{#1}% + \par\vspace\headerspace} + +% \end{macrocode} +% \end{macro} +% +% \paragraph{Titles} +% \begin{macro}{\@titlefont} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\titlefont} +% \marg{cmds} +% \begin{macrocode} +\@onlypreamble\title + +\def\@titlefont{\Huge\bfseries} +\newcommand\titlefont[1]{\gdef\@titlefont{#1}} +\@onlypreamble\titlefont + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\titlespace} +% \begin{macrocode} +\newlength\titlespace +\setlength\titlespace{0pt} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@subtitle} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\subtitle} +% \marg{title} +% \begin{macrocode} +\let\@subtitle\@undefined +\newcommand\subtitle[1]{\gdef\@subtitle{#1}} +\@onlypreamble\subtitle + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\@subtitlefont} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\subtitlefont} +% \marg{cmds} +% \begin{macrocode} +\def\@subtitlefont{\huge\itshape} +\newcommand\subtitlefont[1]{\gdef\@subtitlefont{#1}} +\@onlypreamble\subtitlefont + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}[noindex]{\@titlealignment@*} +% \MacroTopsep=0pt +% \begin{macro}{\@title@lignment} +% \begin{macro}[noprint]{\@titlealignment@l} +% \begin{macro}[noprint]{\@titlealignment@c} +% \begin{macro}[noprint]{\@titlealignment@r} +% \begin{macro}[noprint]{\@titlealignment} +% \begin{macrocode} +\def\@titlealignment@l{\raggedright} +\def\@titlealignment@c{\centering} +\def\@titlealignment@r{\raggedleft} + +\let\@title@lignment\@titlealignment@c + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\@titlealignment} +% \marg{src}\marg{hpos} +% \begin{macrocode} +\def\@titlealignment#1#2{% + \def\@curve@temp@a{\let\@title@lignment} + \expandafter\@curve@temp@a\csname @titlealignment@#2\endcsname + \@ifundefined{@title@lignment}{% + \ClassError{curve}{Invalid title alignment}{% + You have called \expandafter\string\csname#1\endcsname\space% + with an invalid value.% + \MessageBreak + Valid options include l, c and r.\MessageBreak + Type X <return> to quit, fix the typo, and rerun LaTeX.}} +} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\titlealignment} +% \marg{hpos} +% \begin{macrocode} +\newcommand\titlealignment[1]{\@titlealignment{titlealignment}{#1}} + +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@@maketitle} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\@maketitle} +% \oarg{hpos} +% \begin{macro}{\maketitle} +% \begin{macrocode} +\def\@@maketitle{% + \bgroup\trivlist\@title@lignment\item\relax {\@titlefont\@title} + \ifx\@subtitle\@undefined\else\\\@subtitlefont\@subtitle\fi + \endtrivlist\egroup + \vspace\titlespace} + +\def\@maketitle[#1]{\@titlealignment{maketitle}{#1}\@@maketitle} + +\newcommand\maketitle{\@ifnextchar[%] + \@maketitle\@@maketitle} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \paragraph{Rubric Inclusion} +% \begin{macro}{\@flavor} +% \MacroTopsep=0pt +% \begin{option}{ask} +% \begin{macrocode} +\let\@flavor\empty \newcommand\flavor[1]{\gdef\@flavor{#1} + \ifx\@flavor\empty\else\edef\@flavor{.\@flavor}\fi} + +\DeclareOption{ask}{% + \typein[\@flavor]{Please specify a CV flavor (none by default):} + \ifx\@flavor\empty\else\edef\@flavor{.\@flavor}\fi} + +% \end{macrocode} +% \end{option} +% \end{macro} +% \begin{macro}{\@curveinput} +% \marg{file}\MacroTopsep=0pt +% \begin{macro}{\input} +% |\input| is redefined in order to deal with flavors and the |ltx| +% extension. +% \begin{macrocode} +\def\@curveinput#1{% + \IfFileExists{#1\@flavor.ltx}{\@iinput{#1\@flavor.ltx}}{% + \IfFileExists{#1\@flavor.tex}{\@iinput{#1\@flavor.tex}}{% + \IfFileExists{#1.ltx}{\@iinput{#1.ltx}}{% + \IfFileExists{#1.tex}{\@iinput{#1.tex}}{% + \@iinput{#1}}}}}} +\renewcommand\input{\@ifnextchar\bgroup\@curveinput\@@input} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\makerubric} +% \marg{name} +% \begin{macrocode} +\newcommand\makerubric[1]{\LTXtable{\linewidth}{#1}} + +% \end{macrocode} +% \end{macro} +% +% \paragraph{Bibliography} +% In case |splitbib| is loaded, we require it to export to the sbb file. It is +% simpler to make \curve compatible with it that way. +% \begin{macrocode} +\PassOptionsToPackage{export}{splitbib} + +% \end{macrocode} +% +% \begin{option}{openbib} +% \begin{macrocode} +\let\newblock\empty +\DeclareOption{openbib}{\let\newblock\par} + +% \end{macrocode} +% \end{option} +% \begin{option}{revbib} +% \begin{counter}{bibcount} +% \begin{counter}{bibtotal} +% \begin{conditional}{curve@revbib} +% \begin{macrocode} +\newcounter{bibcount} +\newcounter{bibtotal} +\newif\ifcurve@revbib\curve@revbibfalse +\AtEndDocument{ + \if@filesw + \immediate\write\@auxout{\string\setcounter{bibtotal}{\thebibcount}}% + \fi} +\DeclareOption{revbib}{\curve@revbibtrue} + +% \end{macrocode} +% \end{conditional} +% \end{counter} +% \end{counter} +% \end{option} +% \begin{macro}{\@listpubname} +% \mbox{}\MacroTopsep=0pt +% \begin{macro}{\listpubname} +% \marg{title} +% \begin{macrocode} +\newcommand\listpubname[1]{\gdef\@listpubname{#1}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\@curve@input@} +% \marg{file}\\ +% Emulation of |\@input@| for bibliographic inclusion: +% \begin{macrocode} +\def\@curve@input@#1{% + \IfFileExists{#1}{\makerubric{#1}}{\typeout{No file #1.}}} + +% \end{macrocode} +% \end{macro} +% Redefine |\bibitem| and its internal implementation to behave like |\entry|. +% \begin{macro}{\@curveltx@lbibitem} +% \oarg{label}\marg{ref}\MacroTopsep=0pt +% \begin{macro}{\@curve@lbibitem} +% \ldots +% \begin{macro}{\@lbibitem} +% \begin{macrocode} +\let\@curveltx@lbibitem\@lbibitem +\def\@curve@lbibitem[#1]#2{\@sentry[\@biblabel{#1}]% + \if@filesw + {\let\protect\noexpand% + \immediate\write\@auxout{\string\bibcite{#2}{#1}}}% + \fi% + \ignorespaces} +\let\@lbibitem\@curve@lbibitem + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\@curveltx@bibitem} +% \marg{ref}\MacroTopsep=0pt +% \begin{macro}{\@curve@bibitem} +% \ldots +% \begin{macro}{\@bibitem} +% \begin{macrocode} +\let\@curveltx@bibitem\@bibitem +\def\@curve@bibitem#1{\stepcounter{bibcount}% + \@sentry[\@biblabel{\ifcurve@revbib\thebibtotal\else\thebibcount\fi}]% + \ifcurve@revbib\addtocounter{bibtotal}{-1}\fi% + \if@filesw + \immediate\write\@auxout{\string\bibcite{#1}{\thebibcount}}% + \fi% + \ignorespaces} +\let\@bibitem\@curve@bibitem + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\@curveltxbibitem} +% \MacroTopsep=0pt +% \begin{macro}{\@curvebibitem} +% \begin{macro}{\bibitem} +% \begin{macrocode} +\let\@curveltxbibitem\bibitem +\def\@curvebibitem{% + %% #### FIXME: Dirty code duplication from \entry. + \@nextentry + \noalign\bgroup\gdef\@beforespace{\subrubricbeforespace}% + \@ifnextchar[%] + \@lbibitem\@bibitem} +\let\bibitem\@curvebibitem + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% Special cases: +% \begin{itemize} +% \item |bibentry| (version 1.9): restore standard definitions because +% bibentry just inlines bibliographic contents. +% \begin{macrocode} +\AtBeginOfFile{bibentry.sty}{ + \let\@lbibitem\@curveltx@lbibitem + \let\@bibitem\@curveltx@bibitem + \let\bibitem\@curveltxbibitem} + +% \end{macrocode} +% \item |splitbib| (version 1.16): restore standard definitions because ours +% are used only as part of the |\endthebibliography| redefinition. +% \begin{macrocode} +\AtBeginOfFile{splitbib.sty}{ + \let\@lbibitem\@curveltx@lbibitem + \let\@bibitem\@curveltx@bibitem + \let\bibitem\@curveltxbibitem} + +% \end{macrocode} +% \item |hyperref|: restore whatever previous behavior we had. It is arguable +% whether we should preserve |hyperref|'s functionality, but this answer is +% no, at least for the time being. Note that we assume that |hyperref| is +% loaded late in the process. Also, |hyperref| does not affect |\bibitem|. +% \begin{macrocode} +\AtBeginOfFile{hyperref.sty}{ + \let\@curveprevious@lbibitem\@lbibitem + \let\@curveprevious@bibitem\@bibitem} +\AtEndOfFile{hyperref.sty}{ + \let\@lbibitem\@curveprevious@lbibitem + \let\@bibitem\@curveprevious@bibitem} + +% \end{macrocode} +% \end{itemize} +% \begin{environment}{thebibliography} +% \marg{key}\\ +% |bibentry| overrides this definition in its own group in |\BR@nobib|, but +% this is in fact okay because it's not supposed to print anything. The same +% goes for |splitbib| which saves this definition and restores it when it +% actually matters. +% \begin{macrocode} +\newenvironment{thebibliography}[1]{% +% \end{macrocode} +% Disable the |skipsamekey| mechanism and the prefix which would get in the +% way. +% \begin{macrocode} + \let\@key\@alwayskey + \def\@prefix{} +% \end{macrocode} +% For compatibility with bibliographic packages such as |multibib|, the +% bibliography title is set (by order of priority) to either |\bibname|, +% |\refname| or |\@listpubname|. +% \begin{macrocode} + \begin{rubric}{\@ifundefined{bibname}{% + \@ifundefined{refname}{\@listpubname}{\refname}}{% + \bibname}} + }{% + \end{rubric} +} + +% \end{macrocode} +% \end{environment} +% \begin{macro}{\@curveltxbibliography} +% \marg{bibs}\MacroTopsep=0pt +% \begin{macro}{\bibliography} +% \ldots\\ +% Define |\bibliography| to issue a |\makerubric| call on the |bbl| file. +% \begin{macrocode} +\let\@curveltxbibliography\bibliography +\def\bibliography#1{% + \if@filesw + \immediate\write\@auxout{\string\bibdata{#1}}% + \fi% + \@curve@input@{\jobname.bbl}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% Special cases: +% \begin{itemize} +% \item |multibbl| (version 1.12): merge definitions. +% \begin{macrocode} +\AtEndOfFile{multibbl.sty}{ + \def\bibliography##1##2##3{% + \@ifundefined{##1@auxfile}{}{% + \expandafter\immediate\write\csname ##1@auxfile\endcsname% + {\string\bibdata{##2}}}% + \def\bibname{##3}% + \def\refname{##3}% + \@curve@input@{##1.bbl}}} + +% \end{macrocode} +% \item |splitbib|: restore original version because ours are used only as +% part of the |\endthebibliography| redefinition. +% \begin{macrocode} +\AtBeginOfFile{splitbib.sty}{ + \let\bibliography\@curveltxbibliography} + +% \end{macrocode} +% \end{itemize} +% Apart from that, completing |splitbib| support is a pain in the ass. We need +% to do two things. First, redefine the abominable |\NMSB@writeentry| in order +% to output a correctly typeset rubric (titles are converted to subrubrics for +% instance). Next we need to redefine |\endthebibliography| to restore our own +% definitions for |\bibitem|, |\@bibitem| and |\@lbibitem|, and make it use +% |\@curve@input@| instead of |\@input@|. +% \begin{macrocode} +\AtEndOfFile{splitbib.sty}{ + \def\NMSB@writeentry##1##2##3##4##5,{\ifx\relax ##5\relax + \else + \def\NMSB@currcat{##1##2##3##4}% + \def\NMSB@currcatlevelone{##1##2}% + \ifx\NMSB@currcatlevelone\NMSB@prevcatlevelone\else + \expandafter\ifx\csname NMSBtitle@\NMSB@currcatlevelone + \endcsname\relax + \else + \if@filesw + \expandafter\let\expandafter\NMSB@tempentry + \csname NMSBtitle@\NMSB@currcatlevelone\endcsname + \edef\NMSB@tempentry{\@backslashchar subrubric{\NMSB@tempentry}} + \expandafter\NMSB@writecatbib\expandafter{\NMSB@tempentry} + \expandafter\ifx\csname + NMSBcomment@\NMSB@currcatlevelone\endcsname\relax + \else + \immediate\write\NMSB@catbib{\string\vskip2ex^^J% + \string\hspace{-\leftmargin}\string\relax^^J% + \string\begin{minipage}{\textwidth}^^J% + \string\addtolength\string\parindent{20pt}^^J% + \string\noindent} + \expandafter\let\expandafter\NMSB@tempentry + \csname NMSBcomment@\NMSB@currcatlevelone\endcsname + \expandafter\NMSB@writecatbib\expandafter{% + \NMSB@tempentry^^J}% + \immediate\write\NMSB@catbib{\string\end{minipage}^^J% + \string\par\string\addpenalty{\NMSB@penalty} + \string\vskip2ex} + \fi + \fi + \fi + \xdef\NMSB@prevcatlevelone{##1##2}% + \ifnum\theSBresetdepth>0\relax + \setcounter{\@listctr}{0}% + \fi + \expandafter\ifx\csname NMSBprefix@\NMSB@prevcatlevelone + \endcsname\relax + \NMSB@currprefixlevelonetok{\relax}% + \else + \expandafter\expandafter\expandafter\NMSB@currprefixlevelonetok + \expandafter\expandafter\expandafter{% + \csname NMSBprefix@\NMSB@prevcatlevelone\endcsname}% + \fi + \fi + \ifx\NMSB@currcat\NMSB@prevcat\else + \ifnum\NMSB@currcat=9999\else + \expandafter\ifx\csname NMSBtitle@\NMSB@currcat\endcsname + \relax + \else + \if@filesw + \immediate\write\NMSB@catbib{% + \string\par\string\addpenalty{-\NMSB@halfpenalty}% + \string\relax^^J% + \string\item[]% + \string\SBsubtitle}% + \expandafter\let\expandafter\NMSB@tempentrya + \csname NMSBtitle@\NMSB@currcatlevelone\endcsname + \expandafter\let\expandafter\NMSB@tempentryb + \csname NMSBtitle@\NMSB@currcat\endcsname + \expandafter\NMSB@writecatbib\expandafter{% + \expandafter{\NMSB@tempentrya}} + \expandafter\NMSB@writecatbib\expandafter{% + \expandafter{\NMSB@tempentryb}} + \immediate\write\NMSB@catbib{\string\relax^^J% + \string\par\string\addpenalty{\NMSB@penalty}% + \string\relax}% + \expandafter\ifx\csname + NMSBcomment@\NMSB@currcat\endcsname\relax + \else + \immediate\write\NMSB@catbib{\string\vskip2ex^^J% + \string\hspace{-\leftmargin}\string\relax^^J% + \string\begin{minipage}{\textwidth}^^J% + \string\addtolength\string\parindent{20pt}^^J% + \string\noindent} + \expandafter\let\expandafter\NMSB@tempentry + \csname NMSBcomment@\NMSB@currcat\endcsname + \expandafter\NMSB@writecatbib\expandafter{% + \NMSB@tempentry^^J}% + \immediate\write\NMSB@catbib{\string\end{minipage}^^J% + \string\par\string\addpenalty{\NMSB@penalty}% + \string\vskip2ex} + \fi + \fi + \fi + \fi + \xdef\NMSB@prevcat{##1##2##3##4}% + \ifnum\theSBresetdepth>1\relax + \setcounter{\@listctr}{0}% + \fi + \expandafter\ifx\csname NMSBprefix@\NMSB@currcat\endcsname\relax + \expandafter\NMSB@currprefixtok\expandafter{% + \the\NMSB@currprefixlevelonetok}% + \else + \expandafter\expandafter\expandafter\NMSB@currprefixtok + \expandafter\expandafter\expandafter{% + \csname NMSBprefix@\NMSB@currcat\endcsname} + \fi + \fi + \expandafter\ifx\csname NMSBlabel@##5\endcsname\relax + \if@filesw + \stepcounter\@listctr + \expandafter\ifx\expandafter\relax\the\NMSB@currprefixtok + \def\NMSB@tempentry{}% + \else + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\NMSB@tempentry + \expandafter\expandafter\expandafter{% + \expandafter\the\expandafter\NMSB@currprefixtok + \the\value{\@listctr}}% + \edef\NMSB@tempentry{[\NMSB@tempentry]} + \fi + \edef\NMSB@tempentry{% + \@backslashchar bibitem% + \NMSB@tempentry{\csname NMSBkey@##5\endcsname}}% + \expandafter\NMSB@writecatbib\expandafter{% + \NMSB@tempentry} + \expandafter\let\expandafter\NMSB@tempentry + \csname NMSBentry@##5\endcsname% + \expandafter\NMSB@writecatbib\expandafter{% + \NMSB@tempentry} + \fi + \setbox\@tempboxa=\hbox{\the\NMSB@currprefixtok\the\value{\@listctr}}% + \ifdim\NMSB@reallylongest<\wd\@tempboxa + \setlength{\NMSB@reallylongest}{\wd\@tempboxa}% + \xdef\NMSB@reallylongestlabel{% + \expandafter\ifx\expandafter\relax\the\NMSB@currprefixtok + \else\the\NMSB@currprefixtok\fi\the\value{\@listctr}}% + \fi + \else + \if@filesw + \immediate\write\NMSB@catbib{% + \string\bibitem} + \expandafter\let\expandafter\NMSB@tempentry + \csname NMSBlabel@##5\endcsname + \expandafter\NMSB@writecatbib\expandafter{% + \expandafter[\NMSB@tempentry]}% + \immediate\write\NMSB@catbib{% + {\csname NMSBkey@##5\endcsname}}% + \expandafter\let\expandafter\NMSB@tempentry + \csname NMSBentry@##5\endcsname% + \expandafter\NMSB@writecatbib\expandafter{% + \NMSB@tempentry^^J^^J} + \fi + \setbox\@tempboxa=\hbox{\csname NMSBlabel@##5\endcsname}% + \ifdim\NMSB@reallylongest<\wd\@tempboxa + \setlength{\NMSB@reallylongest}{\wd\@tempboxa}% + \expandafter\let\expandafter\NMSB@reallylongestlabel\csname + NMSBlabel@##5\endcsname + \fi + \fi + \fi + } + \def\endthebibliography{% + \usecounter{enumiv}% + \edef\NMSB@sortedvaluelist{% + \expandafter\NMSBsortlt\expandafter{\NMSB@valuelist}}% + \expandafter\NMSB@writelist\expandafter{\NMSB@sortedvaluelist}% + \if@filesw + \immediate\write\NMSB@catbib{% + \string\end{thebibliography}} + \immediate\closeout\NMSB@catbib + \fi + \begingroup + \ifNMSB@newchap\else + \@ifundefined{chapter}{\def\section####1####2{}}{% + \def\chapter####1####2{}}% + \fi + \let\thebibliography\@NMSBorig@thebibliography + \let\endthebibliography\@NMSBorig@endthebibliography + \let\bibitem\@curvebibitem + \let\@lbibitem\@curve@lbibitem + \let\@bibitem\@curve@bibitem + \@curve@input@{\jobname.sbb} + \endgroup + \ifx\NMSB@missingcat\NMSB@empty\else + \expandafter\NMSB@warnnocateg\NMSB@missingcat\end + \fi + \ifNMSB@strict + \ifx\NMSB@doublecat\NMSB@empty\else + \expandafter\NMSB@warndblcateg\NMSB@doublecat\end + \fi + \fi + \ifdim\NMSB@reallylongest=\NMSB@longest\relax\else + \NMSB@warnwronglongest + \fi}} + +% \end{macrocode} +% +% \subsubsection{Language Processing} +% \begin{lang}{english} +% \MacroTopsep=0pt +% \begin{lang}{french} +% \begin{lang}{francais} +% \begin{lang}{spanish} +% \begin{lang}{portuges} +% \begin{lang}{portugese} +% \begin{lang}{brazil} +% \begin{lang}{brazilian} +% \begin{lang}{italian} +% \begin{lang}{german} +% \begin{lang}{ngerman} +% \begin{lang}{dutch} +% \begin{lang}{danish} +% \begin{lang}{swedish} +% \begin{lang}{polish} +% \begin{macrocode} +\DeclareOption{english}{% + \continuedname{~(continued)} + \listpubname{List of Publications}} +\DeclareOption{french}{% + \continuedname{~(suite)} + \listpubname{Liste des Publications}} +\DeclareOption{francais}{% + \ExecuteOptions{french}} +\DeclareOption{spanish}{% + \continuedname{~(contin\'ua)} + \listpubname{Lista de Publicaciones}} +\DeclareOption{portuges}{% + \continuedname{~(continua\c c\~ao)} + \listpubname{Publica\c c\~oes}} +\DeclareOption{portuguese}{% + \ExecuteOptions{portuges}} +\DeclareOption{brazil}{% + \ExecuteOptions{portuges}} +\DeclareOption{brazilian}{% + \ExecuteOptions{portuges}} +\DeclareOption{italian}{% + \continuedname{~(continua)} + \listpubname{Pubblicazioni}} +\DeclareOption{german}{% + \continuedname{~(fortgesetzt)} + \listpubname{Verzeichnis der Ver\"offentlichungen}} +\DeclareOption{ngerman}{% + \ExecuteOptions{german}} +\DeclareOption{dutch}{% + \continuedname{~(vervolg)} + \listpubname{Publicaties}} +\DeclareOption{danish}{% + \continuedname{~(fortsat)} + \listpubname{Udgivelser}} +\DeclareOption{swedish}{% + \continuedname{~(forts.)} + \listpubname{Publikationer}} +\DeclareOption{polish}{ + \continuedname{~(kontynuacja)} + \listpubname{Publikacje}} + +% \end{macrocode} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% \end{lang} +% +% \subsubsection{Standard Class Processing} +% \begin{option}[noindex]{*paper} +% \begin{option}{landscape} +% \begin{option}[noprint]{a4paper} +% \begin{option}[noprint]{a5paper} +% \begin{option}[noprint]{b5paper} +% \begin{option}[noprint]{letterpaper} +% \begin{option}[noprint]{legalpaper} +% \begin{option}[noprint]{executivepaper} +% \begin{macrocode} +\DeclareOption{a4paper}{ + \setlength\paperheight{297mm} + \setlength\paperwidth{210mm}} +\DeclareOption{a5paper}{ + \setlength\paperheight{210mm} + \setlength\paperwidth{148mm}} +\DeclareOption{b5paper}{ + \setlength\paperheight{250mm} + \setlength\paperwidth{176mm}} +\DeclareOption{letterpaper}{ + \setlength\paperheight{11in} + \setlength\paperwidth{8.5in}} +\DeclareOption{legalpaper}{ + \setlength\paperheight{14in} + \setlength\paperwidth{8.5in}} +\DeclareOption{executivepaper}{ + \setlength\paperheight{10.5in} + \setlength\paperwidth{7.25in}} +\DeclareOption{landscape}{ + \setlength\@tempdima{\paperheight} + \setlength\paperheight{\paperwidth} + \setlength\paperwidth{\@tempdima}} + +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \end{option} +% \begin{option}{10pt} +% \begin{option}{11pt} +% \begin{option}{12pt} +% \begin{macrocode} +\DeclareOption{10pt}{\def\@ptsize{0}} +\DeclareOption{11pt}{\def\@ptsize{1}} +\DeclareOption{12pt}{\def\@ptsize{2}} + +% \end{macrocode} +% \end{option} +% \end{option} +% \end{option} +% \begin{option}{oneside} +% \begin{option}{twoside} +% \begin{macrocode} +\DeclareOption{oneside}{\@twosidefalse\@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue\@mparswitchtrue} + +% \end{macrocode} +% \end{option} +% \end{option} +% \begin{option}{final} +% \begin{option}{draft} +% \begin{macrocode} +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{% + \setlength\overfullrule{0pt} + \setlongtables} + +% \end{macrocode} +% \end{option} +% \end{option} +% \begin{macrocode} +\ExecuteOptions{english,letterpaper,10pt,oneside,final} +\ProcessOptions + +\input{size1\@ptsize.clo} +\setlength\parindent{0pt} +\setlength\parskip{0pt} +\setlength\tabcolsep{10pt} +\setlength\arrayrulewidth{.4\p@} +\setlength\leftmargini{2.5em} +\leftmargin\leftmargini +\setlength\leftmarginii{2.2em} +\setlength\leftmarginiii{1.87em} +\setlength\leftmarginiv{1.7em} +\setlength\leftmarginv{1em} +\setlength\leftmarginvi{1em} +\setlength\labelsep{.5em} +\setlength\labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\renewcommand\theenumi{\@arabic\c@enumi} +\renewcommand\theenumii{\@alph\c@enumii} +\renewcommand\theenumiii{\@roman\c@enumiii} +\renewcommand\theenumiv{\@Alph\c@enumiv} +\newcommand\labelenumi{\theenumi.} +\newcommand\labelenumii{(\theenumii)} +\newcommand\labelenumiii{\theenumiii.} +\newcommand\labelenumiv{\theenumiv.} +\renewcommand\p@enumii{\theenumi} +\renewcommand\p@enumiii{\theenumi(\theenumii)} +\renewcommand\p@enumiv{\p@enumiii\theenumiii} +\newcommand\labelitemi{\textbullet} +\newcommand\labelitemii{\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv{\textperiodcentered} +\raggedbottom +\onecolumn +\pagestyle{empty} +\pagenumbering{arabic} + +\newcommand\@makefntext[1]{\noindent\hb@xt@1em{\hss\@makefnmark}#1} + +\if@twoside + \def\ps@headings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\thepage\hfil\slshape\leftmark}% + \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\@rubricmark##1{\markboth{\MakeUppercase{##1}}{}}% + \def\@subrubricmark##1{\markright{##1}}% + } +\else + \def\ps@headings{% + \let\@oddfoot\@empty + \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\markboth + \def\@rubricmark##1{\markright{\MakeUppercase{##1}}}% + } +\fi +\def\ps@myheadings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\thepage\hfil\slshape\leftmark}% + \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% + \let\@mkboth\@gobbletwo + \let\@rubricmark\@gobble + \let\@subrubricmark\@gobble +} + +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} + +%</curve> +% \end{macrocode} +% ^^A \PrintChanges +% \makeatletter{\let\markboth\@gobbletwo\PrintIndex}\makeatother +% \Finale +% +% ^^A Local variables: +% ^^A eval : (add-hook 'TeX-update-style-hook (lambda () (doxitems "option" "counter" "length" "lang" "if")) nil t) +% ^^A End: +% ^^A curve.dtx ends here. diff --git a/macros/latex/contrib/curve/curve.el b/macros/latex/contrib/curve/curve.el new file mode 100644 index 0000000000..2be0f6b509 --- /dev/null +++ b/macros/latex/contrib/curve/curve.el @@ -0,0 +1,111 @@ +;;; curve.el --- AUC-TeX style file for CurVe + +;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Didier Verna. + +;; Author: Didier Verna <didier@lrde.epita.fr> +;; Maintainer: Didier Verna <didier@lrde.epita.fr> +;; Created: Tue Apr 18 14:49:29 2000 +;; Last Revision: Wed Jul 18 17:28:55 2007 +;; Keywords: tex abbrev data + +;; This file is part of CurVe. + +;; CurVe may be distributed and/or modified under the +;; conditions of the LaTeX Project Public License, either version 1.1 +;; of this license or (at your option) any later version. +;; The latest version of this license is in +;; http://www.latex-project.org/lppl.txt +;; and version 1.1 or later is part of all distributions of LaTeX +;; version 1999/06/01 or later. + +;; CurVe consists of all files listed in the file `README'. + + +;;; Commentary: + +;; Contents management by FCM version 0.1-b2. + + +;;; Code: + +(defun curve-rubric-file (optional &optional prompt) + "Prompt for a CurVe rubric filename in the current directory. + +Caution: because of the flavor mechanism of CurVe, this function will use +the choosen file name sans the last TWO extensions." + (TeX-argument-insert + (file-name-sans-extension + (file-name-sans-extension + (read-file-name (TeX-argument-prompt optional + prompt "Rubric file") + "" "" nil))) + optional)) + +(defun curve-rubric-item () + ;; Ideally, we should have a way (like, a prefix) to specify either an + ;; entry, an entry* or a subrubric. But that would require to hack AUC-TeX + ;; in order to pass an optional argument to LaTeX-insert-item. + (TeX-insert-macro "entry*")) + +(add-hook 'LaTeX-mode-hook + (lambda () + (setq LaTeX-item-list + (cons '("rubric" . curve-rubric-item) LaTeX-item-list)))) + + +(TeX-add-style-hook "curve" + (function + (lambda () + (TeX-add-symbols + '("photo" [ "Placement (l, c or r)" ] t) + '("photosep") + '("photoscale" t) + '("leftheader" t) + '("rightheader" t) + '("headerscale" t) + '("headerspace") + '("makeheaders" [ "Alignment (t, c or b)" ]) + + ;; no need to support \today since it is a standard command + '("title" "Title") + '("subtitle" "Subtitle") + '("titlespace") + '("titlefont" "Font for title") + '("titlealignment" "Alignment (l, c, r)") + '("subtitlefont" "Font for subtitle") + '("maketitle") + + '("flavor" "Flavor") + '("makerubric" curve-rubric-file) + + '("rubricalignment" "Alignment (l, c, r, cl, cc)") + '("rubricfont" "For for rubrics") + '("rubricspace") + '("rubricafterspace") + + '("subrubric" "Subrubric name") + '("subrubricalignment" "Alignment (l, c, r, cl, cc)") + '("subrubricfont" "Font for subrubrics") + '("subrubricspace") + '("subrubricbeforespace") + + '("entry" [ "Key" ] t) + '("entry*" [ "Key" ]) + '("noentry" "Invisible (long) key") + '("keyfont" "Font for keys") + '("keyalignment" "Alignment (l, c, or r)") + '("prefix" "Prefix command") + + '("continuedname" "Continuation name") + '("listpubname" "List of publications name")) + (LaTeX-add-environments + '("rubric" "Name"))))) + + + + +;;; Local variables: +;;; eval: (put 'TeX-add-style-hook 'lisp-indent-function 1) +;;; End: + +;;; curve.el ends here diff --git a/macros/latex/contrib/curve/curve.ins b/macros/latex/contrib/curve/curve.ins new file mode 100644 index 0000000000..12fb9b0b2d --- /dev/null +++ b/macros/latex/contrib/curve/curve.ins @@ -0,0 +1,58 @@ +%%% curve.ins --- Installation file for CurVe -*- mode: LaTeX -*- + +%% Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2010 Didier Verna + +%% Author: Didier Verna <didier@lrde.epita.fr> +%% Maintainer: Didier Verna <didier@lrde.epita.fr> +%% Created: Thu Dec 10 16:04:01 1998 +%% Last Revision: Tue Nov 30 18:36:08 2010 + +%% This file is part of CurVe. + +%% CurVe may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.1 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.1 or later is part of all distributions of LaTeX +%% version 1999/06/01 or later. + +%% CurVe consists of the files listed in the file `README'. + + +%%% Commentary: + +%% Contents management by FCM version 0.1. + + +%%% Code: + +\NeedsTeXFormat{LaTeX2e} +\input docstrip.tex +\InputIfFileExists{ltxpkg.tex}{}{} +\askforoverwritefalse +\keepsilent + +\preamble +^^J^^J +Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Didier Verna^^J +Copyright (C) 2010 Didier Verna^^J +This file is part of CurVe.^^J +CurVe may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.1 +of this license or (at your option) any later version. +The latest version of this license is in +http://www.latex-project.org/lppl.txt +and version 1.1 or later is part of all distributions of LaTeX +version 1999/06/01 or later.^^J +CurVe consists of the files listed in the file `README'.^^J +\endpreamble + +\catcode`\¡=14 +\generate{ + \file{header.inc}{\from{curve.dtx}{header}} + \file{curve.cls}{\from{curve.dtx}{header,curve}}} + +\endbatchfile + +%%% curve.ins ends here diff --git a/macros/latex/contrib/curve/curve.pdf b/macros/latex/contrib/curve/curve.pdf Binary files differnew file mode 100644 index 0000000000..8a5e11e177 --- /dev/null +++ b/macros/latex/contrib/curve/curve.pdf diff --git a/macros/latex/contrib/curve/examples/Makefile b/macros/latex/contrib/curve/examples/Makefile new file mode 100644 index 0000000000..1f25ac5a36 --- /dev/null +++ b/macros/latex/contrib/curve/examples/Makefile @@ -0,0 +1,70 @@ +### Makefile --- Makefile for CurVe examples + +## Copyright (C) 2010 Didier Verna + +## Author: Didier Verna <didier@lrde.epita.fr> +## Maintainer: Didier Verna <didier@lrde.epita.fr> +## Created: Mon Dec 6 11:13:27 2010 +## Last Revision: Mon Dec 6 11:25:22 2010 + +## This file is part of CurVe. + +## CurVe may be distributed and/or modified under the +## conditions of the LaTeX Project Public License, either version 1.1 +## of this license or (at your option) any later version. +## The latest version of this license is in +## http://www.latex-project.org/lppl.txt +## and version 1.1 or later is part of all distributions of LaTeX +## version 1999/06/01 or later. + +## CurVe consists of the files listed in the file `README'. + + +### Commentary: + +## Contents management by FCM version 0.1. + + +### Code: + +TEXI2DVI := texi2dvi + +BIB_EXAMPLES = bib splitbib +EXAMPLES := raw $(BIB_EXAMPLES) + +PDF_BIB_EXAMPLES = $(BIB_EXAMPLES:%=%.pdf) +DVI_BIB_EXAMPLES = $(BIB_EXAMPLES:%=%.dvi) +ALL_BIB_EXAMPLES = $(PDF_BIB_EXAMPLES) $(DVI_BIB_EXAMPLES) + +PDF_EXAMPLES = $(EXAMPLES:%=%.pdf) +DVI_EXAMPLES = $(EXAMPLES:%=%.dvi) +ALL_EXAMPLES = $(PDF_EXAMPLES) $(DVI_EXAMPLES) + + +all: + @echo "Please use either the pdf or the dvi target." +pdf: $(PDF_EXAMPLES) +dvi: $(DVI_EXAMPLES) + +$(ALL_BIB_EXAMPLES): bib.bib +$(ALL_EXAMPLES): rubric.tex + + +%.pdf: %.tex + $(TEXI2DVI) -p $< + +%.dvi: %.tex + $(TEXI2DVI) $< + + +clean: + -rm *~ *.aux *.lo* *.bbl *.blg *.sbb *.out + +distclean: clean + -rm $(ALL_EXAMPLES) + + +.PHONY: all pdf dvi clean distclean + + +### Makefile ends here diff --git a/macros/latex/contrib/curve/examples/bib.bib b/macros/latex/contrib/curve/examples/bib.bib new file mode 100644 index 0000000000..ac45c94361 --- /dev/null +++ b/macros/latex/contrib/curve/examples/bib.bib @@ -0,0 +1,68 @@ +@InProceedings{bib:doe.00.conf1, + author = {John Doe}, + title = {A first conference paper}, + booktitle = {The first conference proceedings}, + OPTcrossref = {}, + OPTkey = {}, + pages = {200--210}, + year = {2000}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{bib:doe.01.journal1, + author = {John Doe}, + title = {A first journal paper}, + journal = {The first journal}, + year = {2001}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + pages = {50--60}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{bib:doe.10.conf2, + author = {John Doe}, + title = {A second conference paper}, + booktitle = {The second conference proceedings}, + OPTcrossref = {}, + OPTkey = {}, + pages = {100--110}, + year = {2010}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{bib:doe.11.journal2, + author = {John Doe}, + title = {A second journal paper}, + journal = {The second journal}, + year = {2011}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + pages = {40--50}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + diff --git a/macros/latex/contrib/curve/examples/bib.tex b/macros/latex/contrib/curve/examples/bib.tex new file mode 100644 index 0000000000..e17beeead3 --- /dev/null +++ b/macros/latex/contrib/curve/examples/bib.tex @@ -0,0 +1,55 @@ +%%% bib.tex --- Example of CurVe usage with BibTeX. + +%% Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2010 Didier Verna. + +%% Author: Didier Verna <didier@lrde.epita.fr> +%% Maintainer: Didier Verna <didier@lrde.epita.fr> +%% Created: Mon Dec 6 10:57:19 2010 +%% Last Revision: Mon Dec 6 11:33:52 2010 + +%% This file is part of CurVe. + +%% CurVe may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.1 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.1 or later is part of all distributions of LaTeX +%% version 1999/06/01 or later. + +%% CurVe consists of the files listed in the file `README'. + + +%%% Commentary: + +%% Contents management by FCM version 0.1. + + +%%% Code: + +\NeedsTeXFormat{LaTeX2e} +\documentclass{curve} + +\leftheader{Left header\\ + Insert information here\\ + And also here} +\rightheader{Right header\\ + Insert information here\\ + And also here} + +\title{CV Title} +\subtitle{Subtitle} + +\begin{document} + +\makeheaders[t] +\maketitle + +\nocite{*} +\bibliographystyle{plain} +\bibliography{bib} + +\end{document} + + +%%% bib.tex ends here diff --git a/macros/latex/contrib/curve/examples/raw.tex b/macros/latex/contrib/curve/examples/raw.tex new file mode 100644 index 0000000000..5c0c7d6b75 --- /dev/null +++ b/macros/latex/contrib/curve/examples/raw.tex @@ -0,0 +1,51 @@ +%%% raw.tex --- Example of CurVe usage. + +%% Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2010 Didier Verna. + +%% Author: Didier Verna <didier@lrde.epita.fr> +%% Maintainer: Didier Verna <didier@lrde.epita.fr> +%% Created: Thu Dec 10 16:04:01 2000 +%% Last Revision: Mon Dec 6 10:57:19 2010 + +%% This file is part of CurVe. + +%% CurVe may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.1 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.1 or later is part of all distributions of LaTeX +%% version 1999/06/01 or later. + +%% CurVe consists of the files listed in the file `README'. + +%%% Commentary: + +%% Contents management by FCM version 0.1. + + +%%% Code: + +\NeedsTeXFormat{LaTeX2e} +\documentclass{curve} + +\leftheader{Left header\\ + Insert information here\\ + And also here} +\rightheader{Right header\\ + Insert information here\\ + And also here} + +\title{CV Title} +\subtitle{Subtitle} + +\begin{document} + +\makeheaders[t] +\maketitle + +\makerubric{rubric} + +\end{document} + +%%% raw.tex ends here diff --git a/macros/latex/contrib/curve/examples/rubric.tex b/macros/latex/contrib/curve/examples/rubric.tex new file mode 100644 index 0000000000..8fa8803e0c --- /dev/null +++ b/macros/latex/contrib/curve/examples/rubric.tex @@ -0,0 +1,77 @@ +%%% rubric.tex --- Example of using CurVe. + +%% Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2010 Didier Verna. + +%% Author: Didier Verna <didier@lrde.epita.fr> +%% Maintainer: Didier Verna <didier@lrde.epita.fr> +%% Created: Thu Dec 10 16:04:01 2000 +%% Last Revision: Mon Dec 6 11:04:22 2010 + +%% This file is part of CurVe. + +%% CurVe may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.1 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.1 or later is part of all distributions of LaTeX +%% version 1999/06/01 or later. + +%% CurVe consists of the files listed in the file `README'. + + +%%% Commentary: + +%% Contents management by FCM version 0.1. + + +%%% Code: + +\begin{rubric}{The Rubric's Title} +\entry*[Key 1] + This is an entry with a key. The key is displayed on the left, and you're + reading the entry's contents. As you can see, this entry does not belong to + a subrubric. +\subrubric{A First Subrubric} +\entry*[Key 2] + This entry belongs to the first subrubric. Before the subrubric, + some space is added to separate it from the previous entry. +\entry* + After the subrubric, some space is also added to separate it from the + first entry. Note that this entry has no key. The entries contents are + aligned together. +\text{\par\itshape + This is a piece of text produced by the \texttt{\char`\\text} macro. It + spawns the whole text width. If you want to further separate it from the + normal entries with vertical space (like here), you can use the + \texttt{\char`\\par} command.\par} +\entry*[Key 3] + This is another entry with a new key. +\entry* + This is another entry, but this one has no key. Note the text bullet + which serves as a visual clue, especially when several entries share the + same key. +\subrubric{A Second Subrubric} +\entry*[Key 1] + This entry belongs to the second subrubric. +\entry* + This one also belongs to the second subrubric. +\entry*[Key 2] + This is another entry with a new key. +\entry* + This is another entry, but this one has no key. +\subrubric{} +\entry*[Key 3] + If you want to separate some entries from the subrubric above, + you can for instance make an empty subrubric. +\entry* + You can include other rubrics below. Rubrics can even be split across + pages. The titles will then be repeated. +\end{rubric} + +%%% rubric.tex ends here + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "raw" +%%% End: |