%% drftcono.sty, Version 1.2 %% Copyright 1996, 1999 Stefan Schulz % This program can redistributed and/or modified under the terms % of the LaTeX Project Public License Distributed from CTAN % archives in directory macros/latex/base/lppl.txt; either % version 1 of the License, or any later version. %............................................ % % A T T E N T I O N! % % This file is a modification of % % D R F T C I T E . S T Y % % version 3.5 (Jan 1995) % % Print the tags instead of the numbers for \cite. % See also CITE.STY and OVERCITE.STY. % % Copyright (C) 1989,1991-1995 by Donald Arseneau % These macros may be freely transmitted, reproduced, or modified % provided that this notice is left intact. % ........................ % All occurrences of cite were transformed into ffcite % % % Handle formatting hooks: % \ffciteform,\ffciteleft,\ffciteright,\ffcitemid,\ffcitepunct % % Set defaults: % [ on the left. \@ifundefined{ffciteleft}{\let\ffciteleft=[}{} % ] on the right: \@ifundefined{ffciteright}{\let\ffciteright=]}{} % , (comma space) before note \@ifundefined{ffcitemid}{\def\ffcitemid{,\penalty\@lowpenalty\ }}{} % , (comma space) between entries \@ifundefined{ffcitepunct}{ % Default: To put space after the comma. [nospace] eliminates the space \def\ffcitepunct{,\penalty\@lowpenalty\ }% }{} % Each citation tag left as-is: \@ifundefined{ffciteform}{\def\ffciteform{}}{} % Do not repeat warnings. [verbose] reverses \let\oc@verbo\relax % \ffciten gives the citation tag in the text and writes the aux file entry. % Use \ffciten to give citation name without the other formatting; e.g., % "See also ref.~\ffciten{junk}" gives "See also ref. junk". % \edef\ffciten{\noexpand\protect \expandafter\noexpand\csname ffciten \endcsname} \@namedef{ffciten }#1{% \edef\@tempa{\@ignspaftercomma,#1, \@end, }% ignore spaces in parameter list. \edef\@tempa{\expandafter\@ignendcommas\@tempa\@end}% \if@filesw \immediate\write \@auxout {\string\citation {\@tempa}}\fi \def\@ffcitea{}% \@for \@ffciteb:=\@tempa\do {\@ffcitea \@ifundefined {b@\@ffciteb\@extra@b@ffciteb}% {{\bf \@ffciteverb{\@ffciteb}?}%% issue warning only for first mis-use: \@dftc@ifund {DCN@\@ffciteb\@extra@b@ffciteb}{% delete to warn always \@warning {Citation `\@ffciteb' on page \thepage\space undefined}% }{}% delete to warn always }% else, defined {\@dftc@hbox{\@ffciteverb{\@ffciteb}}}% \let\@ffcitea\ffcitepunct\@advanceffcitecount }} % for ignoring spaces in the input: \def\@ignspaftercomma#1, {\ifx\@end#1\@empty\else #1,\expandafter\@ignspaftercomma\fi} \def\@ignendcommas,#1,\@end{#1} % Make \ffcite robust. % \edef\ffcite{\noexpand\protect\expandafter\noexpand\csname ffcite \endcsname} \@namedef{ffcite }{\@ifnextchar [{\@tempswatrue\@ffcitex}{\@tempswafalse\@ffcitex[]}} % Make \@ffcitex refer to \ffciten: % (Put a single space before the output) % \def\@ffcitex[#1]#2{\@ffcite{\ffciten{#2}}{#1}}% % Replacement for \@ffcite which defines the formatting normally done % around the citation list. Adjust the spacing before the citation: % if no space or if there is extra space due to some punctuation, then % change to one inter-word space. The way to change this is by changing % \ffciteleft, \ffcitemid, and \ffciteright; but in extreme cases it might be % necessary to redefine the whole macro. % %\def\@ffcite#1#2{\leavevmode % \@tempskipa\lastskip \edef\@tempa{\the\@tempskipa}\unskip % \ifx\@tempa\@zero@skip \spacefactor1001 \fi % if no space before, set flag % \ifnum\spacefactor>\@m \ \else \hskip\@tempskipa \fi % \ffciteleft{#1\if@tempswa \ffcitemid #2\fi}\ffciteright % \spacefactor\@m % punctuation in note doesn't affect outside %} \edef\@zero@skip{\the\z@skip} % % Give the citation tag as the label (even if another label is specified) % \def\@lffbibitem[#1]#2{\global\@Highffcite\z@ \item[\@ffbiblabel{\@ifundefined{DCN@#2\@extra@b@ffciteb}{\@warning {Reference `#2' on page \thepage\space was never ffcited}}{}% \DC@llap{$^{\@nameuse{DCN@#2\@extra@b@ffciteb}}$\ }%%o \@ffciteverb{#2}}\hfil]\if@filesw{\def\protect##1{\string ##1\space}% \immediate\write\@auxout{\string\ffbibcite{#2}{#1}}}\fi\ignorespaces} \def\@ffbibitem#1{\refstepcounter{\@listctr}\@lffbibitem[\the\value{\@listctr}]{#1}} % make the special characters in the citation tag printable % \def\@ffciteverb#1{% {\ffciteform{% to get characters <>_|{}: \ffciteform->\tt \expandafter \expandafter \expandafter \@gobblethree % do \csname, \string, \expandafter \string\csname b@#1\endcsname}% % \@gobble, in that order. }}% \def\@gobblethree#1#2#3{} % \@extra@b@ffciteb is a hook for other style files to further specify % citations; for example, to number by chapter. % In case no fancy ffbib package (chapterffbib) defines it: \@ifundefined{@extra@b@ffciteb}{\def\@extra@b@ffciteb{}}{} %------------------------------------ % Handle optional variations: \def\noffcitecount{% \def\@advanceffcitecount{\global\@namedef{DCN@\@ffciteb\@extra@b@ffciteb}{}}% \let\DC@llap\@gobble} \noffcitecount % in case what follows gets removed \newcount\@Highffcite \global\@Highffcite\z@ \let\@dftc@ifund\@ifundefined \let\@dftc@hbox\hbox \@ifundefined{DeclareOption}{}% { \DeclareOption{noffcitecount}{\endinput} \toks@={\def\@dftc@ifund#1#2#3{#2}} \DeclareOption{verbose}{\the\toks@} \DeclareOption{tt}{\def\ffciteform{\tt}} \DeclareOption{nospace}{\def\ffcitepunct{,\penalty\z@}} \DeclareOption{space}{\def\ffcitepunct{,\ }} \DeclareOption{breakffcites}{\let\@dftc@hbox\relax} \ProvidesPackage{drftcono}[1995/01/23 \space v 3.5] \ProcessOptions } % The rest deals only with counting, and can be removed if counting is never % desired. \let\DC@llap=\llap % % count the citations as they appear in the text % \def\@advanceffcitecount{\@ifundefined {DCN@\@ffciteb\@extra@b@ffciteb}% {\global\advance\@Highffcite\@ne \expandafter\xdef\csname DCN@\@ffciteb\@extra@b@ffciteb\endcsname{\the\@Highffcite}}% {}} % % The remainder handles (counting over) input files skipped by \includeonly. % It adds code to LaTeX's \include to re-read the .aux file checking the % \citation commands. % % For included files that are skipped (not listed by \includeonly) % input the .aux file ignoring all commands but \citation, which % does \@advanceffcitecount (keeps count of the citations). This adds % a requirement for other style files that add commands to the .aux % file: the commands must be safe to execute an extra time. % \let\@dftc@include\include \def\include#1{\relax \ifx\DC@llap\llap \begingroup % do counting only if wanted \@ifundefined{cp@#1}{}% don't do if .aux file not there! {\toks@\expandafter\expandafter\expandafter{\csname cp@#1\endcsname}% \expandafter\xdef\csname cp@#1\endcsname{\the\toks@ \noexpand\@dftc@auxffcite{#1}}}% \endgroup\fi \@dftc@include{#1}} % \def\@dftc@auxffcite#1{\begingroup % disable everything but \citation \let\ffbibcite\@gobbletwo \let\newlabel\@gobbletwo \let\@writefile\@gobbletwo \let\ffbibdata\@gobble \let\ffbibstyle\@gobble % already \@gobble normally \def\citation##1{\@for\@ffciteb:=##1\do {\@advanceffcitecount}}% \makeatletter\@input{#1.aux}\endgroup } \endinput % FROM % D R F T C I T E . S T Y % % version 3.5 (Jan 1995) , adopted to drftcono % % This package makes LaTeX use the identifying label instead of the number % for citations, as if the ffbibliography had entries like \ffbibitem[name]{name} % but LaTeX writes the proper citation number to the aux file for later runs. % Spaces before the \ffcite command are ignored, and an ordinary interword % space is used. This package is particularly useful for draft (draught) % versions of documents. % % % Drftffcite keeps track of which references were ffcited, and issues warnings % for ffbibliography items that were never ffcited in the text. % % This package also keeps track of the order of first-citations in the text % for easy sorting. To omit this counting... % LaTeX 2.09: declare \noffcitecount before the first \ffcite; or, for % a more permanent removal, comment-out the lines ending with %%o % below, and omit everything following the line that begins with %%o. % LaTeX2e: specify \usepackage[noffcitecount]{drftffcite}, or perform the % editing described above. % % The characters <>|_{}\ are not present in the cm roman fonts, so if you use % them in identifiers, they will have to be typeset in typewriter style. % To do this,... % LaTeX 2.09: insert \renewcommand\ffciteform{\tt} in your preamble % LaTeX2e: specify \usepackage[tt]{drftffcite} % % `Citation...undefined' warnings are only given once per undefined % citation name. In the text, missing numbers are represented with a % bold `name?'. To restore multiple warnings... % LaTex 2.09: edit this file, removing the lines with the comments: % "delete to warn always" % LaTeX2e: specify \usepackage[verbose]{drftffcite} % % Other options for \usepackage are: % [space] - Separate printed names with comma-space (Default). % [nospace] - Print just a comma (not comma-space) after each name. % [breakffcites] - Allow each printed name to be broken (hyphenated). % % There are several commands that you may redefine (using \renewcommand) % to change the formatting of citation lists: % % command function default % ---------- ----------------------- ---------------------------- % \ffciteform reformats every entry nothing % \ffcitepunct printed between numbers comma + space % \ffciteleft left delimiter of list [ % \ffciteright right delimeter of list ] % \ffcitemid printed before note comma + space % % % Send problem reports to stefan.schulz@tu-bs.de %