%% %% This is file `databib.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% datatool.dtx (with options: `databib.sty,package') %% %% datatool.dtx %% Copyright 2019 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% 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.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Nicola Talbot. %% %% This work consists of the files datatool.dtx and datatool.ins and the derived files datatool-base.sty, datatool-fp.sty, datatool-pgfmath.sty, datatool.sty, datagidx.sty, databib.sty, databar.sty, datapie.sty, dataplot.sty, person.sty, databib.bst. %% %% \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 \~} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{databib}[2019/09/27 v2.32 (NLCT)] \RequirePackage{datatool} \newcommand*{\dtlbib@style}{plain} \define@choicekey{databib.sty}{style}{plain,abbrv,alpha}{% \def\dtlbib@style{#1}} \ProcessOptionsX \newcommand*{\DTLloadbbl}[3][\jobname.bbl]{% \bibliographystyle{databib}% \if@filesw \immediate\write\@auxout{\string\bibdata{#3}}% \fi \DTLnewdb{#2}% \edef\DTLBIBdbname{#2}% \@input@{#1}} \newcommand*{\DTLnewbibrow}{\@DTLnewrow{\DTLBIBdbname}} \newcommand*{\DTLnewbibitem}[2]{% \@DTLnewdbentry{\DTLBIBdbname}{#1}{#2}} \providecommand*{\andname}{and} \providecommand*{\ofname}{of} \providecommand*{\inname}{in} \providecommand*{\etalname}{et al.} \providecommand*{\editorname}{editor} \providecommand*{\editorsname}{editors} \providecommand*{\volumename}{volume} \providecommand*{\numbername}{number} \providecommand*{\pagesname}{pages} \providecommand*{\pagename}{page} \providecommand*{\editionname}{edition} \providecommand*{\techreportname}{Technical report} \providecommand*{\mscthesisname}{Master's thesis} \providecommand*{\phdthesisname}{PhD thesis} \newcommand*{\DTLbibliography}[2][\boolean{true}]{% \begin{DTLthebibliography}[#1]{#2}% \DTLforeachbibentry[#1]{#2}{% \DTLbibitem \DTLformatbibentry \DTLendbibitem }% \end{DTLthebibliography}% } \newcommand*{\DTLformatbibentry}{% \@ifundefined{DTLformat\DBIBentrytype}% {% \PackageError{databib}{Don't know how to format bibliography entries of type `\DBIBentrytype'}{}% }% {% \dtl@message{[\DBIBcitekey]}% \DTLstartsentencefalse\DTLmidsentencefalse\DTLperiodfalse \csname DTLformat\DBIBentrytype\endcsname }% } \newcommand*{\gDTLformatbibentry}{% \@ifundefined{DTLformat\DBIBentrytype}% {% \PackageError{databib}{Don't know how to format bibliography entries of type `\DBIBentrytype'}{}% }% {% \dtl@message{[\DBIBcitekey]}% \global\DTLstartsentencefalse \global\DTLmidsentencefalse \global\DTLperiodfalse \csname DTLformat\DBIBentrytype\endcsname }% } \newcommand*{\DTLformatthisbibentry}[2]{% \edef\DBIBname{#1}% \edef\DBIBcitekey{#2}% \edtlgetrowforvalue{#1}{\dtlcolumnindex{#1}{CiteKey}}{\DBIBcitekey}% \dtl@gathervalues{#1}{\dtlcurrentrow}% \letcs{\DBIBentrytype}{@dtl@key@EntryType}% \DTLformatbibentry } \newcommand*{\DTLendbibitem}{} \newlength\dtl@widest \newcommand*{\DTLcomputewidestbibentry}[4]{% \dtl@widest=0pt\relax \let#4=\@empty \DTLforeachbibentry[#1]{#2}{% \settowidth{\dtl@tmplength}{#3}% \ifdim\dtl@tmplength>\dtl@widest\relax \dtl@widest=\dtl@tmplength \protected@edef#4{#3}% \fi }% } \newcommand*{\DTLforeachbibentry}{% \@ifstar\@sDTLforeachbibentry\@DTLforeachbibentry} \newcommand*{\@DTLforeachbibentry}[3][\boolean{true}]{% \edef\DBIBname{#2}% \setcounter{DTLbibrow}{0}% \@DTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}% {% \dtl@gathervalues{#2}{\dtlcurrentrow}% \ifthenelse{#1}{\refstepcounter{DTLbibrow}#3}{}% }% } \newcommand*{\@sDTLforeachbibentry}[3][\boolean{true}]{% \edef\DBIBname{#2}% \setcounter{DTLbibrow}{0}% \@sDTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}% {% \dtl@gathervalues{#2}{\dtlcurrentrow}% \ifthenelse{#1}{\refstepcounter{DTLbibrow}#3}{}% }% } \newcommand{\gDTLforeachbibentry}{% \@ifstar\@sgDTLforeachbibentry\@gDTLforeachbibentry} \newcommand*{\@gDTLforeachbibentry}[3][\boolean{true}]{% \xdef\DBIBname{#2}% \global\c@DTLbibrow = 0\relax \@DTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}% {% \dtl@g@gathervalues{#2}{\dtlcurrentrow}% \ifthenelse{#1}% {% \refstepcounter{DTLbibrow}% \global\c@DTLbibrow=\c@DTLbibrow #3% }% {}% }% } \newcommand*{\@sgDTLforeachbibentry}[3][\boolean{true}]{% \xdef\DBIBname{#2}% \global\c@DTLbibrow = 0\relax \@sDTLforeach{#2}{\DBIBcitekey=CiteKey,\DBIBentrytype=EntryType}% {% \dtl@g@gathervalues{#2}{\dtlcurrentrow}% \ifthenelse{#1}% {% \refstepcounter{DTLbibrow}% \global\c@DTLbibrow=\c@DTLbibrow #3% }% {}% }% } \newcounter{DTLbibrow} \def\theHDTLbibrow{\theHDTLrow.bib.\arabic{DTLbibrow}}% \newcommand*{\DTLbibfield}[1]{\csname @dtl@key@#1\endcsname} \newcommand*{\DTLbibfieldlet}[2]{% \letcs{#1}{@dtl@key@#2}% } \newcommand*{\DTLifbibfieldexists}[3]{% \@ifundefined{@dtl@key@#1}{#3}{% \expandafter\DTLifnull\csname @dtl@key@#1\endcsname {#3}{#2}}} \newcommand*{\DTLifanybibfieldexists}[3]{% \@for\dtl@thisfield:=#1\do{% \@ifundefined{@dtl@key@\dtl@thisfield}{}{% \expandafter\DTLifnull\csname @dtl@key@\dtl@thisfield\endcsname {}{% \@endfortrue}}}% \if@endfor #2% \else #3% \fi \@endforfalse } \newif\ifDTLperiod \newcommand*{\DTLcheckendsperiod}[1]{% \dtl@checkendsperiod#1\@nil\relax} \def\dtl@checkendsperiod#1#2{% \def\@dtl@argi{#1}\def\@dtl@argii{#2}% \def\@dtl@period{.}% \ifx\@dtl@argi\@nnil \global\DTLperiodfalse \let\@dtl@donext=\relax \else \ifx\@dtl@argii\@nnil \ifx\@dtl@argi\@dtl@period \global\DTLperiodtrue \else \global\DTLperiodfalse \fi \let\@dtl@donext=\@gobble \else \let\@dtl@donext=\dtl@checkendsperiod \fi \fi \@dtl@donext{#2}% } \newcommand*{\DTLcheckbibfieldendsperiod}[1]{% \protected@edef\@dtl@tmp{\DTLbibfield{#1}}% \expandafter\DTLcheckendsperiod\expandafter{\@dtl@tmp}} \newif\ifDTLmidsentence \newif\ifDTLstartsentence \newcommand*{\DTLaddperiod}{\DTLmidsentencefalse\DTLperiodfalse \DTLstartsentencetrue \ifDTLperiod\else.\fi} \newcommand*{\DTLaddcomma}{, \DTLmidsentencetrue \DTLperiodfalse\DTLstartsentencefalse} \newcommand*{\DTLstartsentencespace}{% \ifDTLstartsentence\spacefactor=\sfcode`\.\relax\space \fi\DTLstartsentencefalse} \newcommand*{\DTLtwoand}{\ \andname\ } \newcommand*{\DTLandlast}{, \andname\ } \newcommand*{\DTLandnotlast}{, } \newcount\@dtl@authorcount \newcounter{DTLmaxauthors} \setcounter{DTLmaxauthors}{10} \newcommand*{\DTLformatauthorlist}{% \DTLifbibfieldexists{Author}{% \DTLstartsentencespace \@dtl@authorcount=0\relax \@for\@dtl@author:=\@dtl@key@Author\do{% \advance\@dtl@authorcount by 1\relax}% \@dtl@tmpcount=0\relax \ifnum\@dtl@authorcount>\c@DTLmaxauthors {% \@for\@dtl@author:=\@dtl@key@Author\do{% \advance\@dtl@tmpcount by 1\relax \ifnum\@dtl@tmpcount=1\relax \expandafter\DTLformatauthor\@dtl@author \else \ifnum\@dtl@tmpcount>\c@DTLmaxauthors \DTLandnotlast \etalname \expandafter\DTLcheckendsperiod\expandafter{\etalname}% \@endfortrue \else \DTLandnotlast \expandafter\DTLformatauthor\@dtl@author \fi \fi }% }% \else \@for\@dtl@author:=\@dtl@key@Author\do{% \advance\@dtl@tmpcount by 1\relax \ifnum\@dtl@tmpcount=1\relax \expandafter\DTLformatauthor\@dtl@author \else \ifnum\@dtl@tmpcount=\@dtl@authorcount \ifnum\@dtl@authorcount=2\relax \DTLtwoand \else \DTLandlast \fi \expandafter\DTLformatauthor\@dtl@author \else \DTLandnotlast \expandafter\DTLformatauthor\@dtl@author \fi \fi }% \fi }{}% } \newcounter{DTLmaxeditors} \setcounter{DTLmaxeditors}{10} \newcommand*{\DTLformateditorlist}{% \DTLifbibfieldexists{Editor}{% \DTLstartsentencespace \@dtl@authorcount=0\relax \@for\@dtl@author:=\@dtl@key@Editor\do{% \advance\@dtl@authorcount by 1\relax}% \@dtl@tmpcount=0\relax \ifnum\@dtl@authorcount>\c@DTLmaxeditors {% \@for\@dtl@author:=\@dtl@key@Editor\do{% \advance\@dtl@tmpcount by 1\relax \ifnum\@dtl@tmpcount=1\relax \expandafter\DTLformateditor\@dtl@author \else \ifnum\@dtl@tmpcount>\c@DTLmaxeditors \DTLandnotlast \etalname \expandafter\DTLcheckendsperiod\expandafter{\etalname}% \@endfortrue \else \DTLandnotlast \expandafter\DTLformateditor\@dtl@author \fi \fi }% }% \else \@for\@dtl@author:=\@dtl@key@Editor\do{% \advance\@dtl@tmpcount by 1\relax \ifnum\@dtl@tmpcount=1\relax \expandafter\DTLformateditor\@dtl@author \else \ifnum\@dtl@tmpcount=\@dtl@authorcount \ifnum\@dtl@authorcount=2\relax \DTLtwoand \else \DTLandlast \fi \expandafter\DTLformateditor\@dtl@author \else \DTLandnotlast \expandafter\DTLformateditor\@dtl@author \fi \fi }% \fi , \ifnum\@dtl@authorcount=1\relax \editorname \expandafter\DTLcheckendsperiod\expandafter{\editorname}% \else \editorsname \expandafter\DTLcheckendsperiod\expandafter{\editorsname}% \fi }{}% } \newcommand*{\DTLformatsurnameonly}[4]{% \DTLstartsentencespace \def\@dtl@tmp{#1}% \ifx\@dtl@tmp\@empty\else#1~\fi #2% \def\@dtl@tmp{#3}% \ifx\@dtl@tmp\@empty \DTLcheckendsperiod{#2}% \else , #3% \DTLcheckendsperiod{#3}% \fi } \newcommand*{\DTLformatforenames}[1]{% \DTLstartsentencespace #1% \DTLcheckendsperiod{#1}} \newcommand*{\DTLformatabbrvforenames}[1]{% \DTLstartsentencespace \DTLstoreinitials{#1}{\@dtl@tmp}\@dtl@tmp \expandafter\DTLcheckendsperiod\expandafter{\@dtl@tmp}} \newcommand*{\DTLformatvon}[1]{% \DTLstartsentencespace \def\@dtl@tmp{#1}% \ifx\@dtl@tmp\@empty \else #1~% \fi } \newcommand*{\DTLformatsurname}[1]{% \DTLstartsentencespace #1\DTLcheckendsperiod{#1}} \newcommand*{\DTLformatjr}[1]{% \DTLstartsentencespace \def\@dtl@tmp{#1}% \ifx\@dtl@tmp\@empty \else , #1\DTLcheckendsperiod{#1}% \fi } \newcommand*{\DTLformatcrossrefeditor}{% \DTLifbibfieldexists{Editor}{% \DTLstartsentencespace \@dtl@authorcount=0\relax \@for\@dtl@author:=\@dtl@key@Editor\do{% \advance\@dtl@authorcount by 1\relax}% {\@dtl@tmpcount=0\relax \@for\@dtl@author:=\@dtl@key@Editor\do{% \ifnum\@dtl@authorcount=1\relax \expandafter\DTLformatsurnameonly\@dtl@author \else \advance\@dtl@tmpcount by 1\relax \ifnum\@dtl@tmpcount=1\relax \expandafter\DTLformatsurnameonly\@dtl@author \else \ifnum\@dtl@authorcount=2\relax \ \andname\ \expandafter\DTLformatsurnameonly\@dtl@author \else \ \etalname \expandafter\DTLcheckendsperiod\expandafter{\etalname} \fi \@endfortrue \fi \fi }}% }{}% } \newcommand*{\DTLformatvolnumpages}{% \DTLifbibfieldexists{Volume}{% \DTLstartsentencespace \DTLbibfield{Volume}\DTLperiodfalse}{}% \DTLifbibfieldexists{Number}{% \DTLstartsentencespace (\DTLbibfield{Number})\DTLperiodfalse}{}% \DTLifbibfieldexists{Pages}{% \DTLifanybibfieldexists{Volume,Number}{:}{% \DTLstartsentencespace \protected@edef\@dtl@pages{0\DTLbibfield{Pages}}% \DTLifnumerical{\@dtl@pages}{\pagename}{\pagesname}~}% \DTLbibfield{Pages}\DTLperiodfalse}{}% } \newcommand*{\DTLformatbvolume}{% \DTLifbibfieldexists{Volume}{% \ifDTLmidsentence \volumename \else \DTLstartsentencespace \expandafter\MakeUppercase\volumename \fi ~\DTLbibfield{Volume}% \DTLifbibfieldexists{Series}{\ \ofname\ {\em\DTLbibfield{Series}}\DTLcheckbibfieldendsperiod{Series}}{% \DTLcheckbibfieldendsperiod{Volume}}% }{}} \newcommand*{\DTLformatchapterpages}{% \DTLifbibfieldexists{Chapter}{% \DTLifbibfieldexists{Type}{% \DTLstartsentencespace \DTLbibfield{Type}}{% \DTLstartsentencespace \chaptername}~\DTLbibfield{Chapter}% \DTLifbibfieldexists{Pages}{\DTLaddcomma}{% \DTLcheckbibfieldendsperiod{Chapter}}}{}% \DTLstartsentencespace \DTLformatpages} \newcommand*{\DTLformatpages}{% \DTLifbibfieldexists{Pages}{% \DTLstartsentencespace \protected@edef\@dtl@pages{0\DTLbibfield{Pages}}% \DTLifnumerical{\@dtl@pages}{\pagename}{\pagesname}~% \DTLbibfield{Pages}\DTLcheckbibfieldendsperiod{Pages}}{}% } \newcommand*{\DTLformatnumberseries}{% \DTLifbibfieldexists{Volume}{}{% \DTLifbibfieldexists{Number}{% \ifDTLmidsentence \numbername \else \DTLstartsentencespace \expandafter\MakeUppercase\numbername \fi~\DTLbibfield{Number}% \DTLifbibfieldexists{Series}{\ \inname\ \DTLbibfield{Series}% \DTLcheckbibfieldendsperiod{Series}}{% \DTLcheckbibfieldendsperiod{Number}}% }{% \DTLifbibfieldexists{Series}{% \DTLstartsentencespace \DTLbibfield{Series}% \DTLcheckbibfieldendsperiod{Series}}{}}% }% } \newcommand*{\DTLformatbookcrossref}{% \DTLifbibfieldexists{Volume}{% \ifDTLmidsentence \volumename \else \DTLstartsentencespace \expandafter\MakeUppercase\volumename \fi ~\DTLbibfield{Volume}\ \ofname\ }{% \ifDTLmidsentence \inname \else \DTLstartsentencespace \expandafter\MakeUppercase\inname \fi\ }% \DTLifbibfieldexists{Editor}{\DTLformatcrossrefeditor}{% \DTLifbibfieldexists{Key}{% \DTLbibfield{Key}}{% \DTLifbibfieldexists{Series}{% {\em\DTLbibfield{Series}}}{}% }% }% ~\DTLpcite{\DTLbibfield{CrossRef}}% } \newcommand*{\DTLformatincollproccrossref}{% \DTLifbibfieldexists{Editor}{% \ifDTLmidsentence \inname \else \DTLstartsentencespace \expandafter\MakeUppercase\inname \fi\ \DTLformatcrossrefeditor }{% \DTLifbibfieldexists{Key}{% \ifDTLmidsentence \inname \else \DTLstartsentencespace \expandafter\MakeUppercase\inname \fi\ \DTLbibfield{Key}% }{% \DTLifbibfieldexists{BookTitle}{% \ifDTLmidsentence \inname \else \DTLstartsentencespace \expandafter\MakeUppercase\inname \fi\ \DTLformatbooktitle{\DTLbibfield{BookTitle}}}{}% }}% ~\DTLpcite{\DTLbibfield{CrossRef}}% } \newcommand*{\DTLformatinedbooktitle}{% \DTLifbibfieldexists{BookTitle}{% \ifDTLmidsentence \inname \else \DTLstartsentencespace \expandafter\MakeUppercase\inname \fi\ \DTLifbibfieldexists{Editor}{% \DTLformateditorlist\DTLaddcomma \DTLformatbooktitle{\DTLbibfield{BookTitle}}% \DTLcheckbibfieldendsperiod{BookTitle}% }{\DTLformatbooktitle{\DTLbibfield{BookTitle}}% \DTLcheckbibfieldendsperiod{BookTitle}% }}{}} \newcommand*{\DTLformatdate}{% \DTLifbibfieldexists{Year}{% \DTLifbibfieldexists{Month}{% \protected@edef\@dtl@tmp{\DTLbibfield{Month}}% \ifDTLmidsentence \@dtl@tmp \else \DTLstartsentencespace \expandafter\MakeUppercase\@dtl@tmp \fi\ \DTLmidsentencefalse}{}% \DTLstartsentencespace \DTLbibfield{Year}}{% \DTLifbibfieldexists{Month}{% \protected@edef\@dtl@tmp{\DTLbibfield{Month}}% \ifDTLmidsentence \@dtl@tmp \else \DTLstartsentencespace \expandafter\MakeUppercase\@dtl@tmp \fi \DTLcheckbibfieldendsperiod{Month}% }{}}} \newcommand*{\DTLformatarticlecrossref}{% \DTLifbibfieldexists{Key}{% \ifDTLmidsentence \inname \else \DTLstartsentencespace \expandafter\MakeUppercase\inname \fi \ {\em\DTLbibfield{Key}}}{% \DTLifbibfieldexists{Journal}{% \ifDTLmidsentence \inname \else \DTLstartsentencespace \expandafter\MakeUppercase\inname \fi \ {\em\DTLbibfield{Journal}}}{}}% ~\DTLpcite{\DTLbibfield{CrossRef}}% } \newrobustcmd*{\DTLpcite}[1]{% \protected@edef\@dtl@tmp{#1}% \cite{\@dtl@tmp}% } \newcommand*{\DTLbibfieldexists}[1]{% \TE@throw\noexpand\dtl@testbibfieldexists{#1}% \noexpand\if@dtl@condition} \newcommand*{\dtl@testbibfieldexists}[1]{% \DTLifbibfieldexists{#1}{\@dtl@conditiontrue}{\@dtl@conditionfalse}} \newcommand*{\DTLbibfieldiseq}[2]{% \TE@throw\noexpand\dtl@testbibfieldiseq{#1}{#2}% \noexpand\if@dtl@condition} \newcommand*{\dtl@testbibfieldiseq}[2]{% \DTLifbibfieldexists{#1}{% \expandafter\let\expandafter\@dtl@tmp\expandafter =\csname @dtl@key@#1\endcsname \expandafter\toks@\expandafter{\@dtl@tmp}% \@dtl@toks{#2}% \edef\@dtl@docompare{\noexpand\dtlcompare{\noexpand\@dtl@tmpcount}% {\the\toks@}{\the\@dtl@toks}}% \@dtl@docompare \ifnum\@dtl@tmpcount=0\relax \@dtl@conditiontrue \else \@dtl@conditionfalse \fi }{% \@dtl@conditionfalse}% } \newcommand*{\DTLbibfieldislt}[2]{% \TE@throw\noexpand\dtl@testbibfieldislt{#1}{#2}% \noexpand\if@dtl@condition} \newcommand*{\dtl@testbibfieldislt}[2]{% \DTLifbibfieldexists{#1}{% \expandafter\let\expandafter\@dtl@tmp\expandafter =\csname @dtl@key@#1\endcsname \expandafter\toks@\expandafter{\@dtl@tmp}% \@dtl@toks{#2}% \edef\@dtl@docompare{\noexpand\dtlcompare{\noexpand\@dtl@tmpcount}% {\the\toks@}{\the\@dtl@toks}}% \@dtl@docompare \ifnum\@dtl@tmpcount=-1\relax \@dtl@conditiontrue \else \@dtl@conditionfalse \fi }{% \@dtl@conditionfalse}% } \newcommand*{\DTLbibfieldisle}[2]{% \TE@throw\noexpand\dtl@testbibfieldisle{#1}{#2}% \noexpand\if@dtl@condition} \newcommand*{\dtl@testbibfieldisle}[2]{% \DTLifbibfieldexists{#1}{% \expandafter\let\expandafter\@dtl@tmp\expandafter =\csname @dtl@key@#1\endcsname \expandafter\toks@\expandafter{\@dtl@tmp}% \@dtl@toks{#2}% \edef\@dtl@docompare{\noexpand\dtlcompare{\noexpand\@dtl@tmpcount}% {\the\toks@}{\the\@dtl@toks}}% \@dtl@docompare \ifnum\@dtl@tmpcount<1\relax \@dtl@conditiontrue \else \@dtl@conditionfalse \fi }{% \@dtl@conditionfalse}% } \newcommand*{\DTLbibfieldisgt}[2]{% \TE@throw\noexpand\dtl@testbibfieldisgt{#1}{#2}% \noexpand\if@dtl@condition} \newcommand*{\dtl@testbibfieldisgt}[2]{% \DTLifbibfieldexists{#1}{% \expandafter\let\expandafter\@dtl@tmp\expandafter =\csname @dtl@key@#1\endcsname \expandafter\toks@\expandafter{\@dtl@tmp}% \@dtl@toks{#2}% \edef\@dtl@docompare{\noexpand\dtlcompare{\noexpand\@dtl@tmpcount}% {\the\toks@}{\the\@dtl@toks}}% \@dtl@docompare \ifnum\@dtl@tmpcount=1\relax \@dtl@conditiontrue \else \@dtl@conditionfalse \fi }{% \@dtl@conditionfalse}% } \newcommand*{\DTLbibfieldisge}[2]{% \TE@throw\noexpand\dtl@testbibfieldisge{#1}{#2}% \noexpand\if@dtl@condition} \newcommand*{\dtl@testbibfieldisge}[2]{% \DTLifbibfieldexists{#1}{% \expandafter\let\expandafter\@dtl@tmp\expandafter =\csname @dtl@key@#1\endcsname \expandafter\toks@\expandafter{\@dtl@tmp}% \@dtl@toks{#2}% \edef\@dtl@docompare{\noexpand\dtlcompare{\noexpand\@dtl@tmpcount}% {\the\toks@}{\the\@dtl@toks}}% \@dtl@docompare \ifnum\@dtl@tmpcount>-1\relax \@dtl@conditiontrue \else \@dtl@conditionfalse \fi }{% \@dtl@conditionfalse}% } \newcommand*{\DTLbibfieldcontains}[2]{% \TE@throw\noexpand\dtl@testbibfieldcontains{#1}{#2}% \noexpand\if@dtl@condition} \newcommand*{\dtl@testbibfieldcontains}[2]{% \DTLifbibfieldexists{#1}{% \expandafter\let\expandafter\@dtl@tmp\expandafter =\csname @dtl@key@#1\endcsname \expandafter\dtl@testifsubstring\expandafter{\@dtl@tmp}{#2}% }{\@dtl@conditionfalse}} \newenvironment{DTLthebibliography}[2][\boolean{true}]{% \@dtl@tmpcount=0\relax \@sDTLforeach[#1]{#2}{}{\advance\@dtl@tmpcount by 1\relax}% \begin{thebibliography}{\number\@dtl@tmpcount} }{\end{thebibliography}} \newcommand*{\DTLmonthname}[1]{% \dtl@monthname{#1}} \newcommand*{\dtl@monthname}[1]{% \ifcase#1% \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} \newcommand*{\dtl@abbrvmonthname}[1]{% \ifcase#1% \or Jan.% \or Feb.% \or Mar.% \or Apr.% \or May% \or June% \or July% \or Aug.% \or Sept.% \or Oct.% \or Nov.% \or Dec.% \fi} \newcommand*{\DTLbibitem}{\bibitem{\DBIBcitekey}} \newcommand*{\DTLmbibitem}[1]{\bibitem{#1@\DBIBcitekey}} \newcommand*{\DTLcustombibitem}[3]{% #1% \if@filesw \immediate\write\@auxout{\string\bibcite{#3}{#2}}% \fi \ignorespaces } \newcommand*{\DTLformatauthor}[4]{% \DTLformatforenames{#4} \DTLformatvon{#1}% \DTLformatsurname{#2}% \DTLformatjr{#3}} \newcommand*{\DTLformateditor}[4]{% \DTLformatforenames{#4} \DTLformatvon{#1}% \DTLformatsurname{#2}% \DTLformatjr{#3}} \newcommand*{\DTLformatedition}[1]{#1 \editionname} \newcommand{\DTLformatarticle}{} \newcommand{\DTLformatbook}{} \newcommand{\DTLformatbooklet}{} \newcommand{\DTLformatinbook}{} \newcommand{\DTLformatincollection}{} \newcommand{\DTLformatinproceedings}{} \newcommand{\DTLformatmanual}{} \newcommand{\DTLformatmastersthesis}{} \newcommand{\DTLformatmisc}{} \newcommand{\DTLformatphdthesis}{} \newcommand{\DTLformatproceedings}{} \newcommand{\DTLformattechreport}{} \newcommand{\DTLformatunpublished}{} \newcommand*{\DTLacmcs}{ACM Computing Surveys} \newcommand*{\DTLacta}{Acta Informatica} \newcommand*{\DTLcacm}{Communications of the ACM} \newcommand*{\DTLibmjrd}{IBM Journal of Research and Development} \newcommand*{\DTLibmsj}{IBM Systems Journal} \newcommand*{\DTLieeese}{IEEE Transactions on Software Engineering} \newcommand*{\DTLieeetc}{IEEE Transactions on Computers} \newcommand*{\DTLieeetcad}{IEEE Transactions on Computer-Aided Design of Integrated Circuits} \newcommand*{\DTLipl}{Information Processing Letters} \newcommand*{\DTLjacm}{Journal of the ACM} \newcommand*{\DTLjcss}{Journal of Computer and System Sciences} \newcommand*{\DTLscp}{Science of Computer Programming} \newcommand*{\DTLsicomp}{SIAM Journal on Computing} \newcommand*{\DTLtocs}{ACM Transactions on Computer Systems} \newcommand*{\DTLtods}{ACM Transactions on Database Systems} \newcommand*{\DTLtog}{ACM Transactions on Graphics} \newcommand*{\DTLtoms}{ACM Transactions on Mathematical Software} \newcommand*{\DTLtoois}{ACM Transactions on Office Information Systems} \newcommand*{\DTLtoplas}{ACM Transactions on Programming Languages and Systems} \newcommand*{\DTLtcs}{Theoretical Computer Science} \newcommand{\dtlbst@plain}{% \renewenvironment{DTLthebibliography}[2][\boolean{true}]{% \@dtl@tmpcount=0\relax \@sDTLforeach[##1]{##2}{}{\advance\@dtl@tmpcount by 1\relax}% \begin{thebibliography}{\number\@dtl@tmpcount}% }{\end{thebibliography}}% \renewcommand*{\DTLbibitem}{\bibitem{\DBIBcitekey}}% \renewcommand*{\DTLmbibitem}[1]{\bibitem{##1@\DBIBcitekey}}% \renewcommand*{\DTLformatauthor}[4]{% \DTLformatforenames{##4} \DTLformatvon{##1}% \DTLformatsurname{##2}% \DTLformatjr{##3}} \renewcommand*{\DTLformateditor}[4]{% \DTLformatforenames{##4} \DTLformatvon{##1}% \DTLformatsurname{##2}% \DTLformatjr{##3}} \renewcommand*{\DTLformatedition}[1]{##1 \editionname}% \let\DTLmonthname\dtl@monthname \renewcommand*{\DTLacmcs}{ACM Computing Surveys} \renewcommand*{\DTLacta}{Acta Informatica} \renewcommand*{\DTLcacm}{Communications of the ACM} \renewcommand*{\DTLibmjrd}{IBM Journal of Research and Development} \renewcommand*{\DTLibmsj}{IBM Systems Journal} \renewcommand*{\DTLieeese}{IEEE Transactions on Software Engineering} \renewcommand*{\DTLieeetc}{IEEE Transactions on Computers} \renewcommand*{\DTLieeetcad}{IEEE Transactions on Computer-Aided Design of Integrated Circuits} \renewcommand*{\DTLipl}{Information Processing Letters} \renewcommand*{\DTLjacm}{Journal of the ACM} \renewcommand*{\DTLjcss}{Journal of Computer and System Sciences} \renewcommand*{\DTLscp}{Science of Computer Programming} \renewcommand*{\DTLsicomp}{SIAM Journal on Computing} \renewcommand*{\DTLtocs}{ACM Transactions on Computer Systems} \renewcommand*{\DTLtods}{ACM Transactions on Database Systems} \renewcommand*{\DTLtog}{ACM Transactions on Graphics} \renewcommand*{\DTLtoms}{ACM Transactions on Mathematical Software} \renewcommand*{\DTLtoois}{ACM Transactions on Office Information Systems} \renewcommand*{\DTLtoplas}{ACM Transactions on Programming Languages and Systems} \renewcommand*{\DTLtcs}{Theoretical Computer Science} \renewcommand*{\DTLformatarticle}{% \DTLformatauthorlist \DTLifbibfieldexists{Author}{\DTLaddperiod}{}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace\DTLbibfield{Title}% \DTLcheckbibfieldendsperiod{Title}% \DTLaddperiod}{}% \DTLifbibfieldexists{CrossRef}{% \DTLformatarticlecrossref \DTLifbibfieldexists{Pages}{\DTLaddcomma}{}% \DTLformatpages \DTLaddperiod }{% no cross ref field \DTLifbibfieldexists{Journal}{\DTLstartsentencespace {\em\DTLbibfield{Journal}}% \DTLcheckbibfieldendsperiod{Journal}% \DTLifanybibfieldexists{Number,Volume,Pages,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatvolnumpages \DTLifanybibfieldexists{Volume,Number,Pages}{% \DTLifanybibfieldexists{Year,Month}{\DTLaddcomma}{% \DTLaddperiod}% \DTLmidsentencefalse}{}% \DTLformatdate \DTLifanybibfieldexists{Year,Month}{\DTLaddperiod}{}% }% \DTLifbibfieldexists{Note}{\DTLstartsentencespace\DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% } \renewcommand*{\DTLformatbook}{% \DTLifbibfieldexists{Author}% {% \DTLformatauthorlist\DTLaddperiod }% {% \DTLformateditorlist \DTLifbibfieldexists{Editor}% {% \DTLaddperiod }% {}% }% \DTLifbibfieldexists{Title}% {% \DTLstartsentencespace \DTLformatbooktitle{\DTLbibfield{Title}}% \DTLcheckbibfieldendsperiod{Title}% }% {}% \DTLifbibfieldexists{CrossRef}% {% \DTLifbibfieldexists{Title}{\DTLaddperiod}{}% \DTLformatbookcrossref \DTLifanybibfieldexists{Edition,Month,Year}% {\DTLaddcomma}% {\DTLaddperiod}% }% {% \DTLifbibfieldexists{Title}% {% \DTLifbibfieldexists{Volume}{\DTLaddcomma}{\DTLaddperiod}% }% {}% \DTLformatbvolume \DTLformatnumberseries \DTLifanybibfieldexists{Number,Series,Volume}{\DTLaddperiod}{}% \DTLifbibfieldexists{Publisher}% {% \DTLstartsentencespace \DTLbibfield{Publisher}% \DTLcheckbibfieldendsperiod{Publisher}% \DTLifbibfieldexists{Address}% {\DTLaddcomma}% {% \DTLifanybibfieldexists{Month,Year}% {\DTLaddcomma}% {\DTLaddperiod}% }% }% {}% \DTLifbibfieldexists{Address}% {% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{\DTLaddperiod}% }% {}% }% \DTLifbibfieldexists{Edition}% {% \protected@edef\@dtl@tmp{\DTLformatedition{\DTLbibfield{Edition}}}% \ifDTLmidsentence \@dtl@tmp \else \DTLstartsentencespace\expandafter\MakeUppercase\@dtl@tmp \fi \expandafter\DTLcheckendsperiod\expandafter{\@dtl@tmp}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{\DTLaddperiod}% }% {}% \DTLformatdate \DTLifanybibfieldexists{Year,Month}{\DTLaddperiod}{}% \DTLifbibfieldexists{Note}% {% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod }% {}% }% \renewcommand*{\DTLformatbooklet}{% \DTLifbibfieldexists{Author}{% \DTLformatauthorlist\DTLaddperiod}{}% \DTLifbibfieldexists{Title}{\DTLstartsentencespace \DTLbibfield{Title}% \DTLcheckbibfieldendsperiod{Title}% \DTLaddperiod}{}% \DTLifbibfieldexists{HowPublished}{% \DTLstartsentencespace\DTLbibfield{HowPublished}% \DTLcheckbibfieldendsperiod{HowPublished}% \DTLifanybibfieldexists{Address,Month,Year}{\DTLaddcomma }{\DTLaddperiod}}{}% \DTLifbibfieldexists{Address}{\DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatdate \DTLifanybibfieldexists{Year,Month}{\DTLaddperiod}{}% \DTLifbibfieldexists{Note}{\DTLstartsentencespace\DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformatinbook}{% \DTLifbibfieldexists{Author}{% \DTLformatauthorlist\DTLaddperiod}{% \DTLifbibfieldexists{Editor}{\DTLformateditorlist\DTLaddperiod}{}}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace {\em\DTLbibfield{Title}}% \DTLcheckbibfieldendsperiod{Title}% }{}% \DTLifbibfieldexists{CrossRef}{% \DTLifbibfieldexists{Title}{% \DTLifbibfieldexists{Chapter}{\DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatchapterpages \DTLifanybibfieldexists{Chapter,Pages}{\DTLaddperiod}{}% \DTLformatbookcrossref }{% no cross ref \DTLifbibfieldexists{Title}{% \DTLifanybibfieldexists{Chapter,Volume}{\DTLaddcomma }{\DTLaddperiod}}{}% \DTLformatbvolume \DTLifanybibfieldexists{Volume,Series}{% \DTLifanybibfieldexists{Chapter,Pages}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatchapterpages \DTLifanybibfieldexists{Chapter,Pages}{\DTLaddperiod}{}% \DTLifbibfieldexists{Publisher}{% \DTLstartsentencespace \DTLbibfield{Publisher}% \DTLcheckbibfieldendsperiod{Publisher}% \DTLifbibfieldexists{Address}{\DTLaddcomma}{}}{}% \DTLifbibfieldexists{Address}{% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}}{}% }% \DTLifanybibfieldexists{Edition,Month,Year}{\DTLaddcomma }{\DTLaddperiod}% \DTLifbibfieldexists{Edition}{% \protected@edef\@dtl@tmp{\DTLformatedition{\DTLbibfield{Edition}}}% \ifDTLmidsentence \@dtl@tmp \else \DTLstartsentencespace \expandafter\MakeUppercase\@dtl@tmp \fi \expandafter\DTLcheckendsperiod\expandafter{\@dtl@tmp}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma }{\DTLaddperiod}% }{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformatincollection}{% \DTLifbibfieldexists{Author}{\DTLformatauthorlist\DTLaddperiod}{}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace \DTLbibfield{Title}% \DTLcheckbibfieldendsperiod{Title}% \DTLaddperiod}{}% \DTLifbibfieldexists{CrossRef}{% \DTLformatincollproccrossref \DTLifanybibfieldexists{Chapter,Pages}{\DTLaddcomma}{}% \DTLformatchapterpages\DTLaddperiod }{% no cross ref entry \DTLformatinedbooktitle \DTLifbibfieldexists{BookTitle}{% \DTLifanybibfieldexists{Volume,Series,Chapter,Pages,Number}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatbvolume \DTLifbibfieldexists{Volume}{% \DTLifanybibfieldexists{Number,Series,Chapter,Pages}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatnumberseries \DTLifanybibfieldexists{Number,Series}{% \DTLifanybibfieldexists{Chapter,Pages}{\DTLaddcomma }{\DTLaddperiod}}{}% \DTLformatchapterpages \DTLifanybibfieldexists{Chapter,Pages}{\DTLaddperiod}{}% \DTLifbibfieldexists{Publisher}{% \DTLstartsentencespace \DTLbibfield{Publisher}% \DTLcheckbibfieldendsperiod{Publisher}% \DTLifanybibfieldexists{Address,Edition,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLifbibfieldexists{Address}{% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Edition,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLifbibfieldexists{Edition}{% \protected@edef\@dtl@tmp{\DTLformatedition{\DTLbibfield{Edition}}}% \ifDTLmidsentence \@dtl@tmp \else \DTLstartsentencespace \expandafter\MakeUppercase\@dtl@tmp \fi \expandafter\DTLcheckendsperiod\expandafter{\@dtl@tmp}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma }{\DTLaddperiod}% }{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% }% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformatinproceedings}{% \DTLifbibfieldexists{Author}{\DTLformatauthorlist \DTLaddperiod}{}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace \DTLbibfield{Title}% \DTLcheckbibfieldendsperiod{Title}% \DTLaddperiod}{}% \DTLifbibfieldexists{CrossRef}{% \DTLformatincollproccrossref \DTLifbibfieldexists{Pages}{\DTLaddcomma}{% \DTLaddperiod}% \DTLformatpages \DTLifbibfieldexists{Pages}{\DTLaddperiod}{}% }{% no cross ref \DTLformatinedbooktitle \DTLifbibfieldexists{BookTitle}{% \DTLifanybibfieldexists{Volume,Series,Pages,Number,Address,% Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatbvolume \DTLifbibfieldexists{Volume}{% \DTLifanybibfieldexists{Number,Series,Pages,Address,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatnumberseries \DTLifanybibfieldexists{Number,Series}{% \DTLifanybibfieldexists{Pages,Address,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatpages \DTLifbibfieldexists{Pages}{% \DTLifanybibfieldexists{Address,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLifbibfieldexists{Address}{% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{% \DTLaddperiod}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% \DTLifbibfieldexists{Organization}{% \DTLstartsentencespace \DTLbibfield{Organization}% \DTLcheckbibfieldendsperiod{Organization}% \DTLifbibfieldexists{Publisher}{\DTLaddcomma}{% \DTLaddperiod}}{}% \DTLifbibfieldexists{Publisher}{% \DTLstartsentencespace \DTLbibfield{Publisher}% \DTLcheckbibfieldendsperiod{Publisher}% \DTLaddperiod}{}% }{% \DTLifanybibfieldexists{Publisher,Organization}{% \DTLaddperiod}{}% \DTLifbibfieldexists{Organization}{% \DTLstartsentencespace \DTLbibfield{Organization}% \DTLcheckbibfieldendsperiod{Organization}% \DTLifanybibfieldexists{Publisher,Month,Year}{% \DTLaddcomma}{}}{}% \DTLifbibfieldexists{Publisher}{% \DTLstartsentencespace \DTLbibfield{Publisher}% \DTLcheckbibfieldendsperiod{Publisher}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{% \DTLaddperiod}}{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% }% }% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformatmanual}{% \DTLifbibfieldexists{Author}{\DTLformatauthorlist \DTLaddperiod}{% \DTLifbibfieldexists{Organization}{% \DTLstartsentencespace \DTLbibfield{Organization}% \DTLcheckbibfieldendsperiod{Organization}% \DTLifbibfieldexists{Address}{\DTLaddcomma \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% }{}% \DTLaddperiod}{}% }% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace {\em\DTLbibfield{Title}}% \DTLcheckbibfieldendsperiod{Title}% \DTLifbibfieldexists{Author}{% \DTLifanybibfieldexists{Organization,Address}{% \DTLaddperiod}{\DTLaddcomma}}{% \DTLifanybibfieldexists{Organization,Address,Edition,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}}{}% \DTLifbibfieldexists{Author}{% \DTLifbibfieldexists{Organization}{% \DTLstartsentencespace \DTLbibfield{Organization}% \DTLcheckbibfieldendsperiod{Organization}% \DTLifanybibfieldexists{Address,Edition,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLifbibfieldexists{Address}{% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Edition,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% }{% \DTLifbibfieldexists{Organization}{}{% \DTLifbibfieldexists{Address}{% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Edition,Month,Year}{\DTLaddcomma}{% \DTLaddperiod}}{}}% }% \DTLifbibfieldexists{Edition}{% \protected@edef\@dtl@tmp{\DTLformatedition{\DTLbibfield{Edition}}}% \ifDTLmidsentence \@dtl@tmp \else \DTLstartsentencespace \expandafter\MakeUppercase\@dtl@tmp \fi \expandafter\DTLcheckendsperiod\expandafter{\@dtl@tmp}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{% \DTLaddperiod}}{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformatmastersthesis}{% \DTLifbibfieldexists{Author}{\DTLformatauthorlist\DTLaddperiod}{}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace \DTLbibfield{Title}% \DTLcheckbibfieldendsperiod{Title}% \DTLaddperiod}{}% \DTLifbibfieldexists{Type}{% \DTLstartsentencespace \DTLbibfield{Type}% \DTLcheckbibfieldendsperiod{Type}% \DTLifanybibfieldexists{School,Address,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLifbibfieldexists{School}{% \DTLstartsentencespace \DTLbibfield{School}% \DTLcheckbibfieldendsperiod{School}% \DTLifanybibfieldexists{Address,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLifbibfieldexists{Address}{% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformatmisc}{% \DTLifbibfieldexists{Author}{\DTLformatauthorlist\DTLaddperiod}{}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace \DTLbibfield{Title}% \DTLcheckbibfieldendsperiod{Title}% \DTLifbibfieldexists{HowPublished}{\DTLaddperiod}{% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{% \DTLaddperiod}% }% \DTLmidsentencefalse}{}% \DTLifbibfieldexists{HowPublished}{% \DTLstartsentencespace \DTLbibfield{HowPublished}% \DTLcheckbibfieldendsperiod{HowPublished}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{% \DTLaddperiod}}{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformatphdthesis}{% \DTLifbibfieldexists{Author}{\DTLformatauthorlist\DTLaddperiod}{}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace {\em\DTLbibfield{Title}}% \DTLcheckbibfieldendsperiod{Title}% \DTLaddperiod}{}% \DTLifbibfieldexists{Type}{% \DTLstartsentencespace \DTLbibfield{Type}% \DTLcheckbibfieldendsperiod{Type}% \DTLifanybibfieldexists{School,Address,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLifbibfieldexists{School}{% \DTLstartsentencespace \DTLbibfield{School}% \DTLcheckbibfieldendsperiod{School}% \DTLifanybibfieldexists{Address,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLifbibfieldexists{Address}{% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformatproceedings}{% \DTLifbibfieldexists{Editor}{% \DTLformateditorlist\DTLaddperiod}{% \DTLifbibfieldexists{Organization}{% \DTLstartsentencespace \DTLbibfield{Organization}% \DTLcheckbibfieldendsperiod{Organization}% \DTLaddperiod}{}}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace {\em\DTLbibfield{Title}}% \DTLcheckbibfieldendsperiod{Title}% \DTLifanybibfieldexists{Volume,Number,Address,Editor,Publisher,% Month,Year}{\DTLaddcomma}{\DTLaddperiod}% }{}% \DTLformatbvolume \DTLifbibfieldexists{Volume}{% \DTLifanybibfieldexists{Number,Address,Editor,Publisher,% Month,Year}{\DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatnumberseries \DTLifbibfieldexists{Number}{% \DTLifanybibfieldexists{Address,Editor,Publisher,% Month,Year}{\DTLaddcomma}{\DTLaddperiod}}{}% \DTLifbibfieldexists{Address}{% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{\DTLaddperiod}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% \DTLifbibfieldexists{Editor}{\DTLifbibfieldexists{Organization}{% \DTLstartsentencespace \DTLbibfield{Organization}% \DTLcheckbibfieldendsperiod{Organization}% \DTLifbibfieldexists{Publisher}{% \DTLaddcomma}{\DTLaddperiod}}{}}{}% \DTLifbibfieldexists{Publisher}{% \DTLstartsentencespace \DTLbibfield{Publisher}% \DTLcheckbibfieldendsperiod{Publisher}% \DTLaddperiod }{}% }{% no address \DTLifbibfieldexists{Editor}{% \DTLifbibfieldexists{Organization}{% \DTLstartsentencespace \DTLbibfield{Organization}% \DTLcheckbibfieldendsperiod{Organization}% \DTLifanybibfieldexists{Publisher,Month,Year}{% \DTLaddcomma}{\DTLaddperiod}}{}% }{}% \DTLifbibfieldexists{Publisher}{% \DTLstartsentencespace \DTLbibfield{Publisher}% \DTLcheckbibfieldendsperiod{Publisher}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% }% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformattechreport}{% \DTLifbibfieldexists{Author}{\DTLformatauthorlist\DTLaddperiod}{}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace \DTLbibfield{Title}% \DTLcheckbibfieldendsperiod{Title}% \DTLaddperiod}{}% \DTLifbibfieldexists{Type}{% \DTLstartsentencespace \DTLbibfield{Type}% \DTLcheckbibfieldendsperiod{Type}% \DTLifbibfieldexists{Number}{~}{}}{}% \DTLifbibfieldexists{Number}{% \DTLstartsentencespace \DTLbibfield{Number}% \DTLcheckbibfieldendsperiod{Number}% }{}% \DTLifanybibfieldexists{Type,Number}{% \DTLifanybibfieldexists{Institution,Address,Month,Year}{\DTLaddcomma }{\DTLaddperiod}}{}% \DTLifbibfieldexists{Institution}{% \DTLstartsentencespace \DTLbibfield{Institution}% \DTLcheckbibfieldendsperiod{Institution}% \DTLifanybibfieldexists{Address,Month,Year}{\DTLaddcomma }{\DTLaddperiod}}{}% \DTLifbibfieldexists{Address}{% \DTLstartsentencespace \DTLbibfield{Address}% \DTLcheckbibfieldendsperiod{Address}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma }{\DTLaddperiod}}{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLaddperiod}{}% }% \renewcommand*{\DTLformatunpublished}{% \DTLifbibfieldexists{Author}{\DTLformatauthorlist\DTLaddperiod}{}% \DTLifbibfieldexists{Title}{% \DTLstartsentencespace \DTLbibfield{Title}% \DTLcheckbibfieldendsperiod{Title}% \DTLaddperiod}{}% \DTLifbibfieldexists{Note}{% \DTLstartsentencespace \DTLbibfield{Note}% \DTLcheckbibfieldendsperiod{Note}% \DTLifanybibfieldexists{Month,Year}{\DTLaddcomma}{\DTLaddperiod}}{}% \DTLformatdate \DTLifanybibfieldexists{Month,Year}{\DTLaddperiod}{}% }% } \newcommand*{\DTLformatbooktitle}[1]{\emph{#1}} \newcommand{\dtlbst@abbrv}{% \dtlbst@plain \renewcommand*{\DTLformatauthor}[4]{% \DTLformatabbrvforenames{##4} \DTLformatvon{##1}% \DTLformatsurname{##2}% \DTLformatjr{##3}} \renewcommand*{\DTLformateditor}[4]{% \DTLformatabbrvforenames{##4} \DTLformatvon{##1}% \DTLformatsurname{##2}% \DTLformatjr{##3}} \let\DTLmonthname\dtl@abbrvmonthname \renewcommand*{\DTLacmcs}{ACM Comput.\ Surv.} \renewcommand*{\DTLacta}{Acta Inf.} \renewcommand*{\DTLcacm}{Commun.\ ACM} \renewcommand*{\DTLibmjrd}{IBM J.\ Res.\ Dev.} \renewcommand*{\DTLibmsj}{IBM Syst.~J.} \renewcommand*{\DTLieeese}{IEEE Trans. Softw.\ Eng.} \renewcommand*{\DTLieeetc}{IEEE Trans.\ Comput.} \renewcommand*{\DTLieeetcad}{IEEE Trans.\ Comput.-Aided Design Integrated Circuits} \renewcommand*{\DTLipl}{Inf.\ Process.\ Lett.} \renewcommand*{\DTLjacm}{J.~ACM} \renewcommand*{\DTLjcss}{J.~Comput.\ Syst.\ Sci.} \renewcommand*{\DTLscp}{Sci.\ Comput.\ Programming} \renewcommand*{\DTLsicomp}{SIAM J.~Comput.} \renewcommand*{\DTLtocs}{ACM Trans.\ Comput.\ Syst.} \renewcommand*{\DTLtods}{ACM Trans.\ Database Syst.} \renewcommand*{\DTLtog}{ACM Trans.\ Gr.} \renewcommand*{\DTLtoms}{ACM Trans.\ Math. Softw.} \renewcommand*{\DTLtoois}{ACM Trans. Office Inf.\ Syst.} \renewcommand*{\DTLtoplas}{ACM Trans.\ Prog. Lang.\ Syst.} \renewcommand*{\DTLtcs}{Theoretical Comput.\ Sci.} } \newcommand{\dtlbst@alpha}{% \dtlbst@plain \renewenvironment{DTLthebibliography}[2][\boolean{true}]{% \dtl@createalphabiblabels{##1}{##2}% \begin{thebibliography}{\@dtl@widestlabel}% }{\end{thebibliography}}% \renewcommand*{\DTLbibitem}{% \expandafter\bibitem\expandafter [\csname dtl@biblabel@\DBIBcitekey\endcsname]{\DBIBcitekey}}% \renewcommand*{\DTLmbibitem}[1]{% \expandafter\bibitem\expandafter [\csname dtl@biblabel@\DBIBcitekey\endcsname]{##1@\DBIBcitekey}}% } \newcommand*{\dtl@createalphabiblabels}[2]{% \dtl@message{Creating bib labels}% \begingroup \gdef\@dtl@widestlabel{}% \dtl@widest=0pt\relax \DTLforeachbibentry[#1]{#2}{% \dtl@message{\DBIBcitekey}% \DTLifbibfieldexists{Author}{% \dtl@listgetalphalabel{\@dtl@thislabel}{\@dtl@key@Author}% }{% \DTLifbibfieldexists{Editor}{% \dtl@listgetalphalabel{\@dtl@thislabel}{\@dtl@key@Editor}% }{% \DTLifbibfieldexists{Key}{% \expandafter\dtl@get@firstthree\expandafter {\@dtl@key@Key}{\@dtl@thislabel}% }{% \DTLifbibfieldexists{Organization}{% \expandafter\dtl@get@firstthree\expandafter {\@dtl@key@Organization}{\@dtl@thislabel}% }{% \expandafter\dtl@get@firstthree\expandafter {\DBIBentrytype}{\@dtl@thislabel}% }% }}}% \DTLifbibfieldexists{Year}{}{\DTLifbibfieldexists{CrossRef}{% \DTLgetvalueforkey{\@dtl@key@Year}{Year}{#2}{CiteKey}{% \@dtl@key@CrossRef}}{}}% \DTLifbibfieldexists{Year}{% \expandafter\dtl@get@yearsuffix\expandafter{\@dtl@key@Year}% \expandafter\toks@\expandafter{\@dtl@thislabel}% \expandafter\@dtl@toks\expandafter{\@dtl@year}% \edef\@dtl@thislabel{\the\toks@\the\@dtl@toks}% }{}% \let\@dtl@s@thislabel=\@dtl@thislabel \@onelevel@sanitize\@dtl@s@thislabel \@ifundefined{c@biblabel@\@dtl@s@thislabel}{% \newcounter{biblabel@\@dtl@s@thislabel}% \setcounter{biblabel@\@dtl@s@thislabel}{1}% \expandafter\edef\csname @dtl@bibfirst@\@dtl@s@thislabel\endcsname{% \DBIBcitekey}% \expandafter\global \expandafter\let\csname dtl@biblabel@\DBIBcitekey\endcsname= \@dtl@thislabel }{% \expandafter\ifnum\csname c@biblabel@\@dtl@s@thislabel\endcsname=1\relax \expandafter\let\expandafter\@dtl@tmp \csname @dtl@bibfirst@\@dtl@s@thislabel\endcsname \expandafter\protected@xdef\csname dtl@biblabel@\@dtl@tmp\endcsname{% \@dtl@thislabel a}% \fi \stepcounter{biblabel@\@dtl@s@thislabel}% \expandafter\protected@xdef\csname dtl@biblabel@\DBIBcitekey\endcsname{% \@dtl@thislabel\alph{biblabel@\@dtl@s@thislabel}}% }% \settowidth{\dtl@tmplength}{% \csname dtl@biblabel@\DBIBcitekey\endcsname}% \ifdim\dtl@tmplength>\dtl@widest \dtl@widest=\dtl@tmplength \expandafter\global\expandafter\let\expandafter\@dtl@widestlabel \expandafter=\csname dtl@biblabel@\DBIBcitekey\endcsname \fi }% \endgroup } \newcommand*{\dtl@listgetalphalabel}[2]{% \@dtl@authorcount=0\relax \@for\@dtl@author:=#2\do{% \advance\@dtl@authorcount by 1\relax}% \ifnum\@dtl@authorcount=1\relax \expandafter\dtl@getsinglealphalabel#2{#1}\relax \else {% \xdef#1{}% \@dtl@tmpcount=0\relax \def\DTLafterinitials{}\def\DTLbetweeninitials{}% \def\DTLafterinitialbeforehyphen{}\def\DTLinitialhyphen{}% \@for\@dtl@author:=#2\do{% \expandafter\dtl@getauthorinitial\@dtl@author \expandafter\toks@\expandafter{\@dtl@tmp}% \expandafter\@dtl@toks\expandafter{#1}% \xdef#1{\the\@dtl@toks\the\toks@}% \advance\@dtl@tmpcount by 1\relax \ifnum\@dtl@tmpcount>2\relax\@endfortrue\fi }}% \fi } \newcommand*{\dtl@getauthorinitial}[4]{% \def\@dtl@vonpart{#1}% \ifx\@dtl@vonpart\@empty \DTLstoreinitials{#2}{\@dtl@tmp}% \else \DTLstoreinitials{#1 #2}{\@dtl@tmp}% \fi} \newcommand*{\dtl@getsinglealphalabel}[5]{% \def\@dtl@vonpart{#1}% \ifx\@dtl@vonpart\@empty \DTLifSubString{#2}{-}{% {\def\DTLafterinitials{}\def\DTLbetweeninitials{}% \def\DTLafterinitialbeforehyphen{}% \def\DTLinitialhyphen{}% \DTLstoreinitials{#2}{\@dtl@tmp}\global\let#5=\@dtl@tmp}% }{% \dtl@getfirstthree{#5}#2{}{}{}{}\@nil } \else {\def\DTLafterinitials{}\def\DTLbetweeninitials{}% \def\DTLafterinitialbeforehyphen{}% \def\DTLinitialhyphen{}% \DTLstoreinitials{#1 #2}{\@dtl@tmp}\global\let#5=\@dtl@tmp}% \fi } \def\dtl@getfirstthree#1#2#3#4#5\@nil{% \def#1{#2#3#4}% } \newcommand*{\dtl@get@firstthree}[2]{% \dtl@getfirstthree#2#1{}{}{}{}{}\@nil} \newcommand*{\dtl@get@yearsuffix}[1]{% \dtl@getyearsuffix#1\@nil\relax\relax} \def\dtl@getyearsuffix#1#2#3{% \def\@dtl@argi{#1}\def\@dtl@argii{#2}% \def\@dtl@argiii{#3}% \ifx\@dtl@argi\@nnil \def\@dtl@year{}% \let\@dtl@donext=\relax \else \ifx\@dtl@argii\@nnil \dtl@ifsingle{#1}{% \def\@dtl@year{#1}% \let\@dtl@donext=\relax }{% \def\@dtl@donext{\dtl@getyearsuffix#1#2#3}% }% \else \ifx\@dtl@argiii\@nnil \dtl@ifsingle{#1}{% \dtl@ifsingle{#2}{% \def\@dtl@year{#1#2}% \let\@dtl@donext=\relax }{% \def\@dtl@donext{\dtl@getyearsuffix#2#3}% }% }{% \def\@dtl@donext{\dtl@getyearsuffix#2#3}% }% \else \def\@dtl@donext{\dtl@getyearsuffix{#2}{#3}}% \fi \fi \fi \@dtl@donext } \newcommand*{\DTLbibliographystyle}[1]{% \@ifundefined{dtlbst@#1}{\PackageError{databib}{Unknown bibliography style `#1'}{}}{\csname dtlbst@#1\endcsname}} \DTLbibliographystyle{\dtlbib@style} \newcommand*{\DTLmultibibs}[1]{% \@for\@dtl@af:=#1\do{% \@ifundefined{dtl@aux@\@dtl@af}{% \expandafter\newwrite\csname dtl@aux@\@dtl@af\endcsname \expandafter\immediate \expandafter\openout\csname dtl@aux@\@dtl@af\endcsname=\@dtl@af.aux \expandafter\def\csname b@\@dtl@af @*\endcsname{}% }{% \PackageError{databib}{Can't create auxiliary file `\@dtl@af.aux', \expandafter\string\csname dtl@aux@\@dtl@af\endcsname\space already exists}{}}}} \@onlypreamble{\DTLmultibibs} \newcommand*{\DTLcite}{\@ifnextchar[{\@tempswatrue \dtl@citex }{\@tempswafalse \dtl@citex[]}} \def\dtl@citex[#1]#2#3{% \leavevmode\let\@citea\@empty \@cite{\@for\@citeb:=#3\do{\@citea \def\@citea{,\penalty \@m \ }% \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \if@filesw \@ifundefined{dtl@aux@#2}{% \PackageError{databib}{multibib `#2' not defined}{% You need to define `#2' in \string\DTLmutlibibs}% }{% \expandafter\immediate \expandafter\write\csname dtl@aux@#2\endcsname{% \string\citation{\@citeb}}% }% \fi \@ifundefined{b@#2@\@citeb}{% \hbox{\reset@font\bfseries ?}% \G@refundefinedtrue \@latex@warning{Citation `\@citeb ' on page \thepage \space undefined}% }{% \@cite@ofmt{\csname b@#2@\@citeb \endcsname }% }% }}{#1}% } \newcommand*{\DTLnocite}[2]{% \@ifundefined{dtl@aux@#1}{% \PackageError{databib}{multibib `#1' not defined}{% You need to define `#1' in \string\DTLmutlibibs}% }{% \@bsphack \ifx\@onlypreamble\document \@for\@citeb:=#2\do{% \edef\@citeb{\expandafter\@firstofone\@citeb}% \if@filesw \expandafter\immediate \expandafter\write\csname dtl@aux@#1\endcsname{% \string\citation{\@citeb}}% \fi \@ifundefined{b@#1@\@citeb}{% \G@refundefinedtrue \@latex@warning{Citation `\@citeb ' undefined}}{}% }% \else \@latex@error{Cannot be used in preamble}\@eha \fi \@esphack }% } \newcommand*{\DTLloadmbbl}[3]{% \@ifundefined{dtl@aux@#1}{% \PackageError{databib}{multibib `#1' not defined}{% You need to define `#1' in \string\DTLmutlibibs}% }{% \if@filesw \expandafter\immediate\expandafter \write\csname dtl@aux@#1\endcsname{\string\bibstyle{databib}}% \expandafter\immediate\expandafter \write\csname dtl@aux@#1\endcsname{\string\bibdata{#3}}% \fi \DTLnewdb{#2}% \edef\DTLBIBdbname{#2}% \@input@{#1.bbl}% }% } \newcommand*{\DTLmbibliography}[3][\boolean{true}]{% \begin{DTLthebibliography}[#1]{#3}% \DTLforeachbibentry[#1]{#3}{% \DTLmbibitem{#2} \DTLformatbibentry \DTLendbibitem }% \end{DTLthebibliography}% } \endinput %% %% End of file `databib.sty'.