% Basic control strings and macros for tib bibliography formatting, % and default definitions. % % tib and the accompaning TeX macros assume the \catcode of plain TeX % e.g. { demarks the beginning of a group, % demarks a comment, etc. % See D.E. Knuth, The TeXbook, p. 37. % So far as possible, definitions have been reduced to primitive TeX % strings, to make tib as compatible with any TeX as possible. % Two possible exceptions: the fonts \rm, \sl, \sevenrm are assumed % to have been loaded by TeX. If not, this file should be modified below. % Also macros for footnotes are tailored to the particular TeX, since % the footnote macros of different TeXs differ. Footnote macro files % ending in .p are for plain TeX; those ending in .l are for LaTeX. % % \Resetstrings and \Refformat are called within a local group--- % the string names will not conflict with uses elsewhere in the document. % Other control strings are defined globally. The following is % a complete list of such globally defined control strings (except those % the user might define in a private tib formatting file). % % \Resetstrings \Refformat \Rpunct \Lpunct % \Lspace \Lperiod \Lcomma \Lquest % \Lcolon \Lscolon \Lbang \Lquote % \Lqquote \Lrquote \Rspace \Rperiod % \Rcomma \Rquest \Rcolon \Rscolon % \Rbang \Rquote \Rqquote \Rrquote % \Refstd \Refstda \Smallcapsaand \Smallcapseand % \Acomma \Aand \Aandd \Ecomma % \Eand \Eandd \acomma \aand % \aandd \ecomma \eand \eandd % \Namecomma \Nameand \Nameandd \Revcomma % \Initper \Initgap \Citefont \ACitefont % \Authfont \Titlefont \Tomefont \Volfont % \Flagfont \Reffont \Smallcapsfont \Underlinemark % \Citebrackets \Citeparen \Citesuper \Citenamedate % \Lcitemark \Rcitemark \LAcitemark \RAcitemark % \LIcitemark \RIcitemark \Citehyphen \Citecomma % \Citebreak \Resetstrings \ztest \zstr % \Ztest \Zstr % \journalarticleformat \conferencereportformat \bookformat % \technicalreportformat \bookarticleformat \otherformat % % This file is \input first in a document processed by tib. % Secondly any tib format files are processed. Then the input % document file is read and processed. Thus the default definitions % of this file can be overridden either in the tib format files % or the input document. % % \Refformat calls macros for creating the actual bibliography listings. % Such macros are generally kept in tibtex files and \input by a statement % in the tib format file. \def\Resetstrings{%Clears all strings before processing reference listing. % The strings (\Astr, etc.) are fields taken from the database. % If the string is present, the appropriate test (\Atest, etc) is set % equal to \present---thus allowing the macros to test for the presence % or absence of a field. All reference processing is done in a local % group--the control string names will not conflict with uses % elsewhere in the document. \def\present{ }\let\bgroup={\let\egroup=}%primitive TeX \def\Astr{}\def\astr{}\def\Atest{}\def\atest{}% \def\Bstr{}\def\bstr{}\def\Btest{}\def\btest{}% \def\Cstr{}\def\cstr{}\def\Ctest{}\def\ctest{}% \def\Dstr{}\def\dstr{}\def\Dtest{}\def\dtest{}% \def\Estr{}\def\estr{}\def\Etest{}\def\etest{}% \def\Fstr{}\def\fstr{}\def\Ftest{}\def\ftest{}% \def\Gstr{}\def\gstr{}\def\Gtest{}\def\gtest{}% \def\Hstr{}\def\hstr{}\def\Htest{}\def\htest{}% \def\Istr{}\def\istr{}\def\Itest{}\def\itest{}% \def\Jstr{}\def\jstr{}\def\Jtest{}\def\jtest{}% \def\Kstr{}\def\kstr{}\def\Ktest{}\def\ktest{}% \def\Lstr{}\def\lstr{}\def\Ltest{}\def\ltest{}% \def\Mstr{}\def\mstr{}\def\Mtest{}\def\mtest{}% \def\Nstr{}\def\nstr{}\def\Ntest{}\def\ntest{}% \def\Ostr{}\def\ostr{}\def\Otest{}\def\otest{}% \def\Pstr{}\def\pstr{}\def\Ptest{}\def\ptest{}% \def\Qstr{}\def\qstr{}\def\Qtest{}\def\qtest{}% \def\Rstr{}\def\rstr{}\def\Rtest{}\def\rtest{}% \def\Sstr{}\def\sstr{}\def\Stest{}\def\stest{}% \def\Tstr{}\def\tstr{}\def\Ttest{}\def\ttest{}% \def\Ustr{}\def\ustr{}\def\Utest{}\def\utest{}% \def\Vstr{}\def\vstr{}\def\Vtest{}\def\vtest{}% \def\Wstr{}\def\wstr{}\def\Wtest{}\def\wtest{}% \def\Xstr{}\def\xstr{}\def\Xtest{}\def\xtest{}% \def\Ystr{}\def\ystr{}\def\Ytest{}\def\ytest{}% } \Resetstrings\def\Ztest{}\def\ztest{} \def\Refformat{%Determines the kind of reference by the presence or % absence of certain fields in the database listing, and calls the % appropriate macro. \if\Jtest\present {\if\Vtest\present\journalarticleformat \else\conferencereportformat\fi} \else\if\Btest\present\bookarticleformat \else\if\Rtest\present\technicalreportformat \else\if\Itest\present\bookformat \else\otherformat\fi\fi\fi\fi} \def\Rpunct{%Default punctuation control strings if the punctuation % is to appear after the citation. (tib looks for punctuation to % precede the incomplete citation in the input document; the TeX % output puts it to the left or right depending on the style of citation.) \def\Lspace{ }% \def\Lperiod{ }% . \def\Lcomma{ }% , \def\Lquest{ }% ? \def\Lcolon{ }% : \def\Lscolon{ }% ; \def\Lbang{ }% ! \def\Lquote{ }% ' \def\Lqquote{ }% " \def\Lrquote{ }% ` \def\Rspace{}% \def\Rperiod{.}% . \def\Rcomma{,}% , \def\Rquest{?}% ? \def\Rcolon{:}% : \def\Rscolon{;}% ; \def\Rbang{!}% ! \def\Rquote{'}% ' \def\Rqquote{"}% " \def\Rrquote{`}% ` } \def\Lpunct{%Default punctuation control strings if the punctuation % is to appear before the citation. (tib looks for punctuation to % precede the incomplete citation in the input document; the TeX % output puts it to the left or right depending on the style of citation.) \def\Lspace{}% \def\Lperiod{\unskip.}% . \def\Lcomma{\unskip,}% , \def\Lquest{\unskip?}% ? \def\Lcolon{\unskip:}% : \def\Lscolon{\unskip;}% ; \def\Lbang{\unskip!}% ! \def\Lquote{\unskip'}% ' \def\Lqquote{\unskip"}% " \def\Lrquote{\unskip`}% ` \def\Rspace{\spacefactor=1000}% \def\Rperiod{\spacefactor=3000}% . \def\Rcomma{\spacefactor=1250}% , \def\Rquest{\spacefactor=3000}% ? \def\Rcolon{\spacefactor=2000}% : \def\Rscolon{\spacefactor=1250}% ; \def\Rbang{\spacefactor=3000}% ! \def\Rquote{\spacefactor=1000}% ' \def\Rqquote{\spacefactor=1000}% " \def\Rrquote{\spacefactor=1000}% ` } \def\Refstd{%Standard control strings for formatting bibliography listings. \def\Acomma{\unskip, }%between multiple author names \def\Aand{\unskip\ and }%between two author names \def\Aandd{\unskip\ and }%between last two of multiple author names \def\Ecomma{\unskip, }%between multiple editor names \def\Eand{\unskip\ and }%between two editor names \def\Eandd{\unskip\ and }%between last two of multiple author names \def\acomma{\unskip, }%same for authors of reviewed material \def\aand{\unskip\ and }%same for authors of reviewed material \def\aandd{\unskip\ and }%same for authors of reviewed material \def\ecomma{\unskip, }%same for translators \def\eand{\unskip\ and }%same for translators \def\eandd{\unskip\ and }%same for translators \def\Namecomma{\unskip, }%same for citations using authors' names \def\Nameand{\unskip\ and }%same for citations using authors' names \def\Nameandd{\unskip\ and }%same for citations using authors' names \def\Revcomma{\unskip, }%between last and first name of reversed name \def\Initper{.\ }%punctuation after initial \def\Initgap{\dimen0=\spaceskip\divide\dimen0 by 2\hskip-\dimen0}% %gap between initials of abbreviated first name } \def\Smallcapsaand{%Smallcaps redefinition of \Aand and \Aandd for \Refstd \def\Aand{\unskip\bgroup{\Smallcapsfont\ AND }\egroup}% \def\Aandd{\unskip\bgroup{\Smallcapsfont\ AND }\egroup}% \def\eand{\unskip\bgroup\Smallcapsfont\ AND \egroup}% \def\eandd{\unskip\bgroup\Smallcapsfont\ AND \egroup}% } \def\Smallcapseand{%Smallcaps redefinition of \Eand, \Eeand, etc for Refstd \def\Eand{\unskip\bgroup\Smallcapsfont\ AND \egroup}% \def\Eandd{\unskip\bgroup\Smallcapsfont\ AND \egroup}% \def\aand{\unskip\bgroup\Smallcapsfont\ AND \egroup}% \def\aandd{\unskip\bgroup\Smallcapsfont\ AND \egroup}% } \def\Refstda{%Standard control strings for formatting bibliography listings. % \Refstda sets an Ampersand instead of the word "and". \chardef\Ampersand=`\&%primitive TeX \def\Acomma{\unskip, }%between multiple author names \def\Aand{\unskip\ \Ampersand\ }%between two author names \def\Aandd{\unskip\ \Ampersand\ }%between last two of multiple author names \def\Ecomma{\unskip, }%between multiple editor names \def\Eand{\unskip\ \Ampersand\ }%between two editor names \def\Eandd{\unskip\ \Ampersand\ }%between last two of multiple author names \def\acomma{\unskip, }%same for authors of reviewed material \def\aand{\unskip\ \Ampersand\ }%same for authors of reviewed material \def\aandd{\unskip\ \Ampersand\ }%same for authors of reviewed material \def\ecomma{\unskip, }%same for translators \def\eand{\unskip\ \Ampersand\ }%same for translators \def\eandd{\unskip\ \Ampersand\ }%same for translators \def\Namecomma{\unskip, }%same for citations using authors' names \def\Nameand{\unskip\ \Ampersand\ }%same for citations using authors' names \def\Nameandd{\unskip\ \Ampersand\ }%same for citations using authors' names \def\Revcomma{\unskip, }%between last and first name of reversed name \def\Initper{.\ }%punctuation after initial \def\Initgap{\dimen0=\spaceskip\divide\dimen0 by 2\hskip-\dimen0}% %gap between initials of abbreviated first name } %default fonts \def\Citefont{}%citations \def\ACitefont{}%alternate citations \def\Authfont{}%authors \def\Titlefont{}%titles \def\Tomefont{\sl}%journals or books \def\Volfont{}%volume number of journal \def\Flagfont{}%citation flag \def\Reffont{\rm}%set at beginning of reference listing \def\Smallcapsfont{\sevenrm}%small caps \def\Flagstyle#1{\hangindent\parindent\indent\hbox to0pt%flag style {\hss[{\Flagfont#1}]\kern.5em}\ignorespaces}% for references \def\Underlinemark{\vrule height .7pt depth 0pt width 3pc}%for replacing % successive listings of identical author(s) by underline (U option % in tib format file or -u flag on call). \def\Citebrackets{\Rpunct%defaults for putting citations in brackets []. \def\Lcitemark{\def\Cfont{\Citefont}[\bgroup\Cfont}%mark at left of citation \def\Rcitemark{\egroup]}%mark at right of citation \def\LAcitemark{\def\Cfont{\ACitefont}\bgroup\ACitefont}% %mark at left of alternate citation \def\RAcitemark{\egroup}%mark at right of alternate citation \def\LIcitemark{\egroup}%mark at left of insertion in citation \def\RIcitemark{\bgroup\Cfont}%mark at right of insertion in citation \def\Citehyphen{\egroup--\bgroup\Cfont}%separater for string of citations \def\Citecomma{\egroup,\hskip0pt\bgroup\Cfont}% %separater for multiple citations \def\Citebreak{}%mark between parts of citation (e.g. author\Citebreak date) } \def\Citeparen{\Rpunct%defaults for putting citations in parenthesis (). \def\Lcitemark{\def\Cfont{\Citefont}(\bgroup\Cfont}%mark at left of citation \def\Rcitemark{\egroup)}%mark at right of citation \def\LAcitemark{\def\Cfont{\ACitefont}\bgroup\ACitefont}% %mark at left of alternate citation \def\RAcitemark{\egroup}%mark at right of alternate citation \def\LIcitemark{\egroup}%mark at left of insertion in citation \def\RIcitemark{\bgroup\Cfont}%mark at right of insertion in citation \def\Citehyphen{\egroup--\bgroup\Cfont}%separater for string of citations \def\Citecomma{\egroup,\hskip0pt\bgroup\Cfont}% %separater for multiple citations \def\Citebreak{}%mark between parts of citation (e.g. author\Citebreak date) } \def\Citesuper{\Lpunct%defaults for making superscript citations \def\Lcitemark{\def\Cfont{\Citefont}\raise1ex\hbox\bgroup\bgroup\Cfont}% %mark at left of citation \def\Rcitemark{\egroup\egroup}%mark at right of citation \def\LAcitemark{\def\Cfont{\ACitefont}\bgroup\ACitefont}% %mark at left of alternate citation \def\RAcitemark{\egroup}%mark at right of alternate citation \def\LIcitemark{\egroup\egroup}%mark at left of insertion in citation \def\RIcitemark{\raise1ex\hbox\bgroup\bgroup\Cfont}% %mark at right of insertion in citation \def\Citehyphen{\egroup--\bgroup\Cfont}%separater for string of citations \def\Citecomma{\egroup,\hskip0pt\bgroup% \Cfont}%separater for multiple citations \def\Citebreak{}%mark between parts of citation (e.g. author\Citebreak date) } \def\Citenamedate{\Rpunct%defaults for making name-date citations \def\Lcitemark{%mark at left of citation--also sets internal punctuation \def\Citebreak{\egroup\ [\bgroup\Citefont}%separater in citation \def\Citecomma{\egroup]; %between multiple citations \bgroup\let\uchyph=1\Citefont}(\bgroup\let\uchyph=1\Citefont}% \def\Rcitemark{\egroup])}%mark at right of citation \def\LAcitemark{%mark at left of alternate citation \def\Citebreak{\egroup\ [\bgroup\Citefont}\def\Citecomma{\egroup], % \bgroup\ACitefont }\bgroup\let\uchyph=1\ACitefont}% \def\RAcitemark{\egroup]}%mark at right of alternate citation \def\Citehyphen{\egroup--\bgroup\Citefont}%separater for string of citations \def\LIcitemark{\egroup}%mark at left of insertion in citation \def\RIcitemark{\bgroup\Citefont}%mark at right of insertion in citation }