% UCSC biobibliography class % % Use this class in the following way: % % \documentclass[11pt]{biobib} % % Options are: % % outside % If this option is set, formats the biobib for outside consumption, % affecting primarily class lists. Also sets the boolean ucscreview % to false (default is true). % % hyperref % Under this option, you can insert a hyperreference (link) to an online % version of a paper with \available{url}{PDF}. Use the \baseurl command % to set the base URL for all links. \available{url}{PDF} produces text % that looks like: % Available as PDF. % with the ``PDF'' linked to the passed URL. If the hyperref option is not % specfified in \documentclass, the \available commands produce no text. % % noavailable % Only works with the hyperref option. If this option is specified, the % \available command is set to a null, so nothing is printed. % % studentpubs % With this option enabled, \student{J. Student} will produce a footnoted % mark after the student. With the option not enabled, \student will % simply produce the plain text name. \studentexplanation will produce % a one-sentence explanation of the footnote mark if \student is enabled, % and nothing otherwise. The \studentmark command can be redefined % to change the mark used to indicate student authors. % % acceptrate % With this option enabled, \accept{30} will produce a sentence like this: % (Acceptance rate: 30%) % With it disabled, the command will produce no output. % % newclass % With this option enabled, \newclass will produce a footnote mark and % \newclassexplanation will produce: % \emph{NOTE:} \newclass\ denotes a new course in the curriculum. % With this option disabled, \newclass and \newclassexplanation will % produce no output. The \newclassmark command can be redefined to % change the mark used to indicate new classes. % % Basically, the options can be turned on or off to include various % information in the final form of the biobib. The advantage is that you can % record, say, acceptance information, without including it in your biobib % if you don't want it. % %======================================== % % Useful environments: % % \begin{yearlist} % \item[2003] Something I did in 2003. % \item[2000--2001] The thing I did in 2000--2001. % \end{yearlist} % The yearlist environment is used for lists of things with the year in % the left margin, such as positions held, service, etc. The label is % optional, but is wide enough to include ranges like 2000--2001. % % % \begin{teaching}{2002--2003} % \class{quarter}{CMPS}{111}{course title}{number of students} % {% of evals returned}{team taught?} % \end{teaching} % These commands are used to list classes you've taught. % % % \begin{publist}[J]{Journals} % \item First journal paper % \item Second journal paper % \end{publist} % % The publist environment is used for lists of publications. The required % argument is the title of the subsection containing the list, such as % {Journals}, {Refereed Conference Proceedings}, {Technical Reports}, and so % on. The optional argument is a string that precedes the number for each % publication in the list. This allows, you to number journal papers J1, % J2, etc. and refereed conference proceedings R1, R2, etc. The default is % that numbers are followed by a dot (.), but this character can be changed % or eliminated with the \publistdot{} command. For example, \publistdot{-} % would produce numbers that looked like `J1-'. This command can be used % at any time outside the publist environment, allowing you to change it % between publication lists. % % There is also a revpublist environment that works just like publist, except % that the numbers are in order from highest to lowest. This is helpful if % you want your publication numbers to remain the same after you've added % newer ones, assuming you list newer publications first. Note that this % requires the revnum package, which may not be in every latex distribution. % %======================================== % % Useful commands: % % \num{20} will produce the ordinal form of the number (20th in this case), % with the ``th'' part of the number displayed as a superscript. % %======================================== %======================================== % Log entries: % % $Log: biobib.cls,v $ % Revision 1.10 2006/09/07 07:15:20 elm % % Switched to mathptmx (no longer mathptm). % % Revision 1.9 2005/12/20 18:23:11 elm % Added documentation on revpublist. % % Revision 1.8 2005/12/20 18:15:53 elm % *** empty log message *** % % Revision 1.7 2005/05/10 22:40:13 elm % Added a few minor tweaks. % % Revision 1.6 2005/03/02 22:53:07 elm % More cleanup on the biobib class. Added options to generate a normal % CV in addition to the biobib. % % Revision 1.5 2003/09/19 22:53:36 elm % Minor changes to the biobib template. % % Revision 1.4 2003/08/27 22:57:40 elm % Revised \linkto to \available. Added more instructions to the class file. % % Revision 1.3 2003/08/25 23:10:30 elm % Added documentation to the class, and changed the publistdot default to % be a dot. % % Revision 1.2 2003/07/30 21:44:33 elm % Added publist environment to biobib. This environment can print % letters in front of publication numbers, and automatically generates % subsection headers from its argument. % % Revision 1.1 2003/07/25 20:31:41 elm % % Added a class for doing biobibs. % \NeedsTeXFormat{LaTeX2e} \ProvidesClass{biobib} \RequirePackage{ifthen} \RequirePackage{revnum} \RequirePackage{verbatim} \newboolean{bb@hyperref} \setboolean{bb@hyperref}{false} \newboolean{bb@available} \setboolean{bb@available}{true} \newboolean{bb@studentpubs} \setboolean{bb@studentpubs}{false} \newboolean{bb@acceptrate} \setboolean{bb@acceptrate}{false} \newboolean{bb@newclass} \setboolean{bb@newclass}{false} \newboolean{ucscreview} \setboolean{ucscreview}{true} \newif\ifbbonly \bbonlytrue \DeclareOption{hyperref}{\setboolean{bb@hyperref}{true}} \DeclareOption{studentpubs}{\setboolean{bb@studentpubs}{true}} \DeclareOption{acceptrate}{\setboolean{bb@acceptrate}{true}} \DeclareOption{newclass}{\setboolean{bb@newclass}{true}} \DeclareOption{available}{\setboolean{bb@available}{true}} \DeclareOption{noavailable}{\setboolean{bb@available}{false}} \DeclareOption{outside}{\setboolean{ucscreview}{false} \bbonlyfalse} \DeclareOption{cv}{\setboolean{ucscreview}{false}} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ProcessOptions \LoadClass{article} \RequirePackage{fullpage,times,mathptmx} \RequirePackage{verbatim,fancyhdr,xspace} \RequirePackage{engord} \setlength{\textheight}{9.0in} \setlength{\topmargin}{-0.5in} \setlength{\headsep}{0.25in} \setlength{\headheight}{0.5in} \setlength{\footskip}{0.25in} \setlength{\textwidth}{6.5in} \setlength{\oddsidemargin}{0in} \setlength{\evensidemargin}{\oddsidemargin} \widowpenalty=10000 \clubpenalty=10000 \newcommand{\bb@author}{} \renewcommand{\author}[1]{\renewcommand{\bb@author}{#1}} \newcommand{\bb@date}{} \renewcommand{\date}[1]{\renewcommand{\bb@date}{#1}} \newcommand{\bb@title}{Bio-Bibliography} \renewcommand{\title}[1]{\renewcommand{\bb@title}{#1}} \date{\today} \renewcommand{\maketitle}{ \begin{center} {\LARGE \bb@title} \\ \vspace*{12pt} {\Large \bb@author} \\ \vspace*{12pt} {\large \bb@date} \\ \par\noindent \end{center} } % teaching environment is used for teaching for a given academic year % \begin{teaching}{2000--2001} % \class{...} % \end{teaching} % % Arguments to \class: % 1. Fall/Winter/Spring/Summer 2. CMPS/CMPE 3. Course number % 4. Course name 5. Enrolled 6. %Evals % 7. Shared \newlength{\colA} \settowidth{\colA}{Summer} \newlength{\colB} \settowidth{\colB}{CMPM} \newlength{\colC} \settowidth{\colC}{000-00} \newlength{\colD} \settowidth{\colD}{Introduction to Operating SystemsM} \newenvironment{teaching}[1]{ \begin{minipage}{\textwidth} \vspace{2ex} \par\noindent \ifthenelse{\boolean{ucscreview}}{ \centerline{\textbf{TEACHING #1}} }{ \textbf{#1} } \vspace{0.5ex}\par\noindent \setlength{\tabcolsep}{3pt} \begin{tabular}{p{\colA}p{\colB}p{\colC}p{\colD}rlrlrl} \ifthenelse{\boolean{ucscreview}}{ & & & & \multicolumn{2}{c}{Enrolled} & \multicolumn{2}{c}{\%Evals Retd} & \multicolumn{2}{c}{Shared?} \\ }{} } {\end{tabular} \end{minipage}} \ifthenelse{\boolean{ucscreview}}{ \newcommand{\class}[7]{ #1 & #2 & #3 & #4 & \hspace*{1.5em}#5 & & \hspace*{2em}#6 & & \hspace*{1em}#7 & \\ } }{ \newcommand{\class}[7]{ #1 & #2 & #3 & #4 & & & & & & \\ } } % The yearlist environment is used for things that are listed by year, % such as education, employment, consulting, service, etc. Each item % should be specified as: % \item[2000--2001] % If only one year is relevant, use % \item[2000] % \newenvironment{yearlist}{ \begin{list}{}{% \setlength{\labelsep}{0.1in} \settowidth{\labelwidth}{2000--2000X} \setlength{\leftmargin}{\labelwidth} \addtolength{\leftmargin}{\labelsep} \setlength{\parsep}{0ex} \setlength{\itemsep}{0.5ex plus 0.5ex} \setlength{\itemindent}{0in} \renewcommand{\makelabel}[1]{##1\hfill} } } {\end{list}} % % Commands for the publication list % % The argument to \accept is the acceptance rate (without the % sign). % By doing it this way, it's trivial to change the biobib to leave off % acceptance rate entirely by simply having the command ignore its % argument and print nothing. \ifthenelse{\boolean{bb@acceptrate}}{ \newcommand{\accept}[1]{ {\small (Acceptance rate:~#1\%)} } }{ \newcommand{\accept}[1]{} } % \student{Joe Student} is used in author lists to identify student % authors. Again, this provides a central location that may be changed % if identification of student authors is to change. % \renewcommand{\thefootnote}{\fnsymbol{footnote}} \newcommand{\studentmark}{\footnotemark[1]} \newcommand{\mystudentmark}{\footnotemark[3]} \ifthenelse{\boolean{bb@studentpubs}}{ \newcommand{\student}[1]{#1\studentmark} \newcommand{\mystudent}[1]{#1\mystudentmark} \newcommand{\studentexplanation}{\vspace{1ex}\par\noindent\textit{NOTE:}\ \studentmark denotes a student co-author, and \mystudentmark denotes a co-author who was one of my advisees.\vspace{1ex}} }{ \newcommand{\student}[1]{#1} \newcommand{\mystudent}[1]{#1} \newcommand{\studentexplanation}{} } % The \newclass command places a footnote mark at the point where it's used % if the newclass option is passed to biobib. Otherwise, it does nothing. % \newclassexplanation either prints an explanation about the new class % or does nothing. % \newcommand{\newclassmark}{\footnotemark[2]} \ifthenelse{\boolean{bb@newclass}}{ \newcommand{\newclass}{\newclassmark} \newcommand{\newclassexplanation}{\par\noindent\emph{NOTE:} \newclass\ denotes a new course in the curriculum.} }{ \newcommand{\newclass}{} \newcommand{\newclassexplanation}{} } % % It looks nicer to use superscript-like ordinal numbers. This macro is % used like this: % Proceedings of the \num{20} Conference on Irrelevant Objects % % This will produce the correct ordinal number. It relies upon the engord % (English ordinal) package, which is part of the standard LaTeX distribution, % at least on my system. \newcommand{\num}[1]{\engordnumber{#1}} %---------------------------------------------------------------------- % % This sets up a nice header for the biobib. % \lhead{\fancyplain{}{\bb@title}} \chead{\fancyplain{}{\bb@author}} \rhead{\fancyplain{}{\bb@date}} \lfoot{} \cfoot{\fancyplain{}{\thepage}} \rfoot{} % This is the command that draws the line at the head of the page. Change % the rule width to 0pt to eliminate it. \renewcommand{\headrulewidth}{0.3pt} \pagestyle{fancyplain} \newcommand{\bb@baseurl}{http://www.cs.ucsc.edu/} \newcommand{\baseurl}[1]{\renewcommand{\bb@baseurl}{#1}} \newcommand{\available}[2]{} \ifthenelse{\boolean{bb@hyperref}}{ \RequirePackage[pdfpagemode=none, pdfkeywords={curriculum vitae, bio-bibliography}, colorlinks=true, citecolor=blue, linkcolor=red, urlcolor=blue, filecolor=blue, pdfstartview=Fit, pdffitwindow, pdftitle={Bio-bibliography}]{hyperref} %---------------------------------------------------------------------- % % hyperref customizations. These are helpful to provide automagic % links in PDF to your papers. As with other macros, the \available % macro can be ``disabled'' by simply making it an empty command. % \ifthenelse{\boolean{bb@available}}{ \renewcommand{\available}[2]{{\small Available in~\href{\bb@baseurl#1}{#2}.}} }{ } } {} \renewcommand{\section}{\@startsection{section}{1}{0pt}% {-2ex plus -1ex minus 0ex}% {1ex plus 0.5ex minus 0ex}% {\normalfont\large\bfseries\MakeUppercase}} \renewcommand{\subsection}{\@startsection{subsection}{2}{0pt}% {-1ex plus -1ex minus -0.5ex}% {0.5ex plus 0.5ex minus 0ex}% {\normalfont\large\bfseries}} \newcommand{\bb@publistdot}{.} \newcommand{\publistdot}[1]{\renewcommand{\bb@publistdot}{#1}} \newenvironment{revpublist}[2][]{% \subsection*{#2} \renewcommand{\labelenumi}{#1\theenumi\bb@publistdot\hfill} \begin{revnumerate} }{ \end{revnumerate} } \newenvironment{publist}[2][]{% \subsection*{#2} \renewcommand{\labelenumi}{#1\theenumi\bb@publistdot\hfill} \begin{enumerate} }{ \end{enumerate} } \newenvironment{biobibonly}{% \begin{comment} }{ \end{comment} }