Blame latex/misc/bibtopic.sty

Packit Service 76cb02
%%
Packit Service 76cb02
%% This is file `bibtopic.sty',
Packit Service 76cb02
%% generated with the docstrip utility.
Packit Service 76cb02
%%
Packit Service 76cb02
%% The original source files were:
Packit Service 76cb02
%%
Packit Service 76cb02
%% bibtopic.dtx  (with options: `package')
Packit Service 76cb02
%% 
Packit Service 76cb02
%% LaTeX package for multiple bibliographies
Packit Service 76cb02
%% 
Packit Service 76cb02
%% Copyright (C) 1998-2000 P. Basso, S. Ulrich
Packit Service 76cb02
%%               2001-2004 S. Ulrich
Packit Service 76cb02
%% 
Packit Service 76cb02
%% Please send bug reports to: <stefanulrich@users.sourceforge.net>
Packit Service 76cb02
%% 
Packit Service 76cb02
%% This program is free software; you can redistribute it and/or
Packit Service 76cb02
%% modify it under the terms of the GNU General Public License
Packit Service 76cb02
%% as published by the Free Software Foundation; either version 2
Packit Service 76cb02
%% of the License, or (at your option) any later version.
Packit Service 76cb02
%% 
Packit Service 76cb02
%% This program is distributed in the hope that it will be useful,
Packit Service 76cb02
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 76cb02
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 76cb02
%% GNU General Public License for more details.
Packit Service 76cb02
%% 
Packit Service 76cb02
%% You should have received a copy of the GNU General Public License
Packit Service 76cb02
%% along with this program; if not, write to the Free Software
Packit Service 76cb02
%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
Packit Service 76cb02
%% 
Packit Service 76cb02
\NeedsTeXFormat{LaTeX2e}[1996/12/01] \ProvidesPackage{bibtopic}[2002/08/22 v1.0k
Packit Service 76cb02
Sectioned Bibliographies]
Packit Service 76cb02
\RequirePackage{ifthen}
Packit Service 76cb02
\newcommand\bt@tempa{}
Packit Service 76cb02
\newcommand\bt@tempb{}
Packit Service 76cb02
\newcommand\bt@tempc{}
Packit Service 76cb02
\newcommand\bt@args{}
Packit Service 76cb02
\newcommand*\bt@info{\@gobble}
Packit Service 76cb02
\newcommand*\bt@infoNoLine{\@gobble}
Packit Service 76cb02
\newcommand\bt@gobblethree[3]{}
Packit Service 76cb02
\newif\ifbt@natbib
Packit Service 76cb02
\newif\ifbt@koma@class
Packit Service 76cb02
\newif\ifbt@brf
Packit Service 76cb02
\newif\ifbt@after@brf
Packit Service 76cb02
\newif\ifbt@elem
Packit Service 76cb02
\newif\ifbt@inside@sect
Packit Service 76cb02
\newif\ifbt@inside@unit
Packit Service 76cb02
\newif\ifbt@found@item
Packit Service 76cb02
\newif\ifbt@print@cited
Packit Service 76cb02
\newif\ifbt@print@all
Packit Service 76cb02
\newif\if@globalbiblio
Packit Service 76cb02
\newcommand\bt@stepcnt[1]{%
Packit Service 76cb02
     \@tempcnta#1
Packit Service 76cb02
     \advance\@tempcnta\@ne
Packit Service 76cb02
     \protected@xdef#1{\the\@tempcnta}%
Packit Service 76cb02
}
Packit Service 76cb02
\newcounter{btauxfile}
Packit Service 76cb02
\def\thebtauxfile{\jobname\arabic{btauxfile}}
Packit Service 76cb02
\newcommand\bt@unit@cnt{1}
Packit Service 76cb02
\newcommand\bt@internal@sect@cnt{0}
Packit Service 76cb02
\newcommand\bt@helpctr{0}
Packit Service 76cb02
\newcommand\bt@totalctr{0}
Packit Service 76cb02
\newread\bt@infilea
Packit Service 76cb02
\newread\bt@infileb
Packit Service 76cb02
\newwrite\bt@outfile
Packit Service 76cb02
Packit Service 76cb02
\newif\ifbt@btunits
Packit Service 76cb02
\DeclareOption{btunits}{%
Packit Service 76cb02
    \PackageWarningNoLine{bibtopic}{ignoring obsolete `btunits' option}
Packit Service 76cb02
}
Packit Service 76cb02
\newif\ifbt@fallback@thb
Packit Service 76cb02
\DeclareOption{defaultbib}{%
Packit Service 76cb02
    \global\bt@fallback@thbtrue
Packit Service 76cb02
}
Packit Service 76cb02
\DeclareOption{verbose}{%    
Packit Service 76cb02
    \def\bt@info#1{%
Packit Service 76cb02
        \begingroup
Packit Service 76cb02
            \def\MessageBreak{^^J(bibtopic)\@spaces\@spaces\@spaces}%
Packit Service 76cb02
            \set@display@protect
Packit Service 76cb02
            \immediate\write\@unused{%
Packit Service 76cb02
                ^^JPackage bibtopic info: #1\on@line.^^J%
Packit Service 76cb02
            }%
Packit Service 76cb02
        \endgroup
Packit Service 76cb02
    }%
Packit Service 76cb02
    \def\bt@infoNoLine#1{%
Packit Service 76cb02
        \begingroup
Packit Service 76cb02
            \def\MessageBreak{^^J(bibtopic)\@spaces\@spaces\@spaces}%
Packit Service 76cb02
            \set@display@protect
Packit Service 76cb02
            \immediate\write\@unused{%
Packit Service 76cb02
                ^^JPackage bibtopic info: #1.^^J%
Packit Service 76cb02
            }%
Packit Service 76cb02
        \endgroup
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newif\ifbt@breakcites
Packit Service 76cb02
\DeclareOption{breakcites}{%
Packit Service 76cb02
    \global\bt@breakcitestrue
Packit Service 76cb02
}
Packit Service 76cb02
\newif\ifbt@normalwarnings
Packit Service 76cb02
\DeclareOption{normalwarnings}{%
Packit Service 76cb02
    \global\bt@normalwarningstrue
Packit Service 76cb02
}
Packit Service 76cb02
\newif\ifbt@printheadings
Packit Service 76cb02
\DeclareOption{printheadings}{%
Packit Service 76cb02
    \global\bt@printheadingstrue
Packit Service 76cb02
}
Packit Service 76cb02
\newif\ifbt@part@cont@ctr
Packit Service 76cb02
\DeclareOption{unitcntnoreset}{%
Packit Service 76cb02
    \global\bt@part@cont@ctrtrue
Packit Service 76cb02
}
Packit Service 76cb02
\newif\ifbt@sectctr@reset
Packit Service 76cb02
\DeclareOption{sectcntreset}{%
Packit Service 76cb02
    \global\bt@sectctr@resettrue
Packit Service 76cb02
}
Packit Service 76cb02
\newif\ifbt@fast
Packit Service 76cb02
\bt@fasttrue
Packit Service 76cb02
\DeclareOption{slow}{%
Packit Service 76cb02
    \global\bt@fastfalse
Packit Service 76cb02
}
Packit Service 76cb02
\DeclareOption{dot}{%
Packit Service 76cb02
   \def\thebtauxfile{\jobname.\arabic{btauxfile}}%
Packit Service 76cb02
}
Packit Service 76cb02
\newif\ifbt@warn@override
Packit Service 76cb02
\bt@warn@overridetrue
Packit Service 76cb02
\newif\ifbt@override@numargs
Packit Service 76cb02
\bt@override@numargstrue
Packit Service 76cb02
\newif\ifbt@overridden@numargs
Packit Service 76cb02
\DeclareOption{overridenumbers}{%
Packit Service 76cb02
    \bt@warn@overridefalse
Packit Service 76cb02
    \bt@override@numargstrue
Packit Service 76cb02
}
Packit Service 76cb02
\DeclareOption{dontoverridenumbers}{%
Packit Service 76cb02
    \bt@warn@overridefalse
Packit Service 76cb02
    \bt@override@numargsfalse
Packit Service 76cb02
}
Packit Service 76cb02
\ProcessOptions*
Packit Service 76cb02
Packit Service 76cb02
\newcommand\bt@isnum[1]{%
Packit Service 76cb02
    \if!\ifnum9<1#1!\else_\fi
Packit Service 76cb02
        \expandafter\@firstoftwo
Packit Service 76cb02
    \else
Packit Service 76cb02
        \expandafter\@secondoftwo
Packit Service 76cb02
    \fi
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@sect@ref@list{}
Packit Service 76cb02
\newcommand\bt@curr@file{}
Packit Service 76cb02
\newcommand\bt@curr@line{}
Packit Service 76cb02
\newcommand*\bt@kv@req@list{}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@curr@bib@file{}
Packit Service 76cb02
\newcommand*\bt@cited@list{}
Packit Service 76cb02
\newcommand*\bt@warn@files{}
Packit Service 76cb02
\newcommand*\bt@label{}
Packit Service 76cb02
\newcommand*\bt@globalstyle{}%
Packit Service 76cb02
\newcommand*\bt@defaultstyle{plain}%
Packit Service 76cb02
\newcommand*\@bt@orig@citation{}
Packit Service 76cb02
\let\@bt@orig@citation\citation
Packit Service 76cb02
\ifthenelse{\boolean{bt@fast}}{%
Packit Service 76cb02
   \def\citation#1{%
Packit Service 76cb02
      \@for\bt@tempa:=#1\do{%
Packit Service 76cb02
        \def\@extra@b@citeb{\bt@unit@cnt}%
Packit Service 76cb02
        \global\@namedef{\bt@tempa bt@\@extra@binfo}{}%
Packit Service 76cb02
        \@bt@orig@citation{\bt@tempa}%
Packit Service 76cb02
      }%
Packit Service 76cb02
   }%
Packit Service 76cb02
}{%
Packit Service 76cb02
   \def\citation#1{%
Packit Service 76cb02
      \@for\bt@tempa:=#1\do{%
Packit Service 76cb02
        \def\@extra@b@citeb{\bt@unit@cnt}%
Packit Service 76cb02
        \bt@add@elem{\bt@tempa}{\bt@cited@list}%
Packit Service 76cb02
        \@bt@orig@citation{\bt@tempa}%
Packit Service 76cb02
      }%
Packit Service 76cb02
   }%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@citesurround{}%
Packit Service 76cb02
Packit Service 76cb02
\def\bt@citesurround#1{%
Packit Service 76cb02
    \ifthenelse{\not\boolean{bt@breakcites}}{%
Packit Service 76cb02
        \hbox{#1}%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        #1%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\@ifundefined{citeform}{\let\citeform\relax}{}
Packit Service 76cb02
\@ifundefined{citepunct}{\def\citepunct{,\penalty\@m\ }}{}
Packit Service 76cb02
\@ifpackageloaded{backref}{%
Packit Service 76cb02
    \bt@after@brftrue
Packit Service 76cb02
}{%
Packit Service 76cb02
    \relax
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand\bt@citex{}
Packit Service 76cb02
\def\bt@citex[#1]#2{%  Add \@extra@b@citeb to \cite
Packit Service 76cb02
    \let\@citea\@empty
Packit Service 76cb02
    \@cite{%
Packit Service 76cb02
        \@for\@citeb:=#2\do{%
Packit Service 76cb02
            \@citea\let\@citea\citepunct
Packit Service 76cb02
            \edef\@citeb{\expandafter\@firstofone\@citeb}%
Packit Service 76cb02
            \if@filesw\immediate\write\@auxout{%
Packit Service 76cb02
                \string\citation{\@citeb}}\fi
Packit Service 76cb02
            \@ifundefined{b@\@citeb \@extra@b@citeb}{%
Packit Service 76cb02
                \mbox{\reset@font\bfseries ?}%
Packit Service 76cb02
                \@warning{Citation `\@citeb' on page \thepage\space
Packit Service 76cb02
                undefined}\G@refundefinedtrue
Packit Service 76cb02
            }{%
Packit Service 76cb02
                \bt@citesurround{\citeform{\csname b@\@citeb
Packit Service 76cb02
                \@extra@b@citeb\endcsname}}%
Packit Service 76cb02
            }%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{#1}%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand\bt@nocite{}
Packit Service 76cb02
\def\bt@nocite#1{%
Packit Service 76cb02
    \@bsphack % Add \@extra@b@citeb to \nocite
Packit Service 76cb02
    \@for\@citeb:=#1\do{%
Packit Service 76cb02
        \edef\@citeb{\expandafter\@firstofone\@citeb}%
Packit Service 76cb02
        \if@filesw
Packit Service 76cb02
            \immediate\write\@auxout{%
Packit Service 76cb02
                \string\citation{\@citeb}%
Packit Service 76cb02
            }%
Packit Service 76cb02
        \fi
Packit Service 76cb02
        \@ifundefined{b@\@citeb\@extra@b@citeb}{%
Packit Service 76cb02
            \G@refundefinedtrue
Packit Service 76cb02
            \@warning{Citation `\@citeb'  undefined}%
Packit Service 76cb02
        }{}%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \@esphack
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@setcites{%
Packit Service 76cb02
    \let\@citex\bt@citex
Packit Service 76cb02
    \let\nocite\bt@nocite
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand\change@bibcite{%
Packit Service 76cb02
    \let\change@bibcite\relax
Packit Service 76cb02
    \def\bibcite##1##2{%
Packit Service 76cb02
        \global\@namedef{b@##1\@extra@binfo}{##2}%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\gdef\the@ipfilectr{}
Packit Service 76cb02
\def\@extra@b@citeb{\the@ipfilectr}
Packit Service 76cb02
\gdef\@extra@binfo{}  % in case .aux files are left from old run.
Packit Service 76cb02
Packit Service 76cb02
\newcommand\bt@saveitem{}
Packit Service 76cb02
\newcommand*\bt@savebib{}
Packit Service 76cb02
\newcommand*\bt@endsavebib{}
Packit Service 76cb02
\newif\ifbt@harvard@errs
Packit Service 76cb02
Packit Service 76cb02
\AtBeginDocument{%
Packit Service 76cb02
    \@ifclassloaded{scrbook}{%
Packit Service 76cb02
        \global\bt@koma@classtrue
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \@ifclassloaded{scrartcl}{%
Packit Service 76cb02
            \global\bt@koma@classtrue
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \@ifclassloaded{scrreprt}{%
Packit Service 76cb02
                \global\bt@koma@classtrue
Packit Service 76cb02
            }{%
Packit Service 76cb02
                \relax
Packit Service 76cb02
            }%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \global\let\bt@savebib\thebibliography
Packit Service 76cb02
    \global\let\bt@endsavebib\endthebibliography
Packit Service 76cb02
    \let\bt@saveitem\bibitem
Packit Service 76cb02
    \@ifpackageloaded{natbib}{%
Packit Service 76cb02
        \global\bt@natbibtrue
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \def\harvarditem{\global\bt@harvard@errstrue}%
Packit Service 76cb02
        \let\harvardand\relax
Packit Service 76cb02
        \let\harvardyearleft\relax
Packit Service 76cb02
        \let\harvardyearright\relax
Packit Service 76cb02
    }%
Packit Service 76cb02
    \@ifpackageloaded{backref}{%
Packit Service 76cb02
        \ifthenelse{\not\boolean{bt@after@brf}}{%
Packit Service 76cb02
            \PackageError{%
Packit Service 76cb02
                bibtopic%
Packit Service 76cb02
            }{%
Packit Service 76cb02
                Load bibtopic after hyperref when using the `backref'
Packit Service 76cb02
                option\MessageBreak of hyperref%
Packit Service 76cb02
            }{%
Packit Service 76cb02
                Please see the section about `Compatibility with other^^J%
Packit Service 76cb02
                packages' in bibtopic.dvi for details.
Packit Service 76cb02
            }%
Packit Service 76cb02
        }{}%
Packit Service 76cb02
        \global\bt@brftrue
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \relax
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\AtEndDocument{%
Packit Service 76cb02
    \immediate\write\@auxout{%
Packit Service 76cb02
        \string\csname\space bt@set@cnt\string\endcsname{\bt@helpctr}}%
Packit Service 76cb02
    \def\citation#1{\@bt@orig@citation{#1}}%
Packit Service 76cb02
    \let\bt@kv@add\@gobbletwo
Packit Service 76cb02
    \bt@files@warnings
Packit Service 76cb02
    \ifnum\bt@helpctr=\bt@totalctr\else
Packit Service 76cb02
        \PackageWarningNoLine{%
Packit Service 76cb02
            bibtopic%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            Rerun to get indentation of bibitems right%
Packit Service 76cb02
        }%
Packit Service 76cb02
    \fi
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@savelist{}
Packit Service 76cb02
\newcommand*\bt@append@list[2]{%
Packit Service 76cb02
    \let\bt@savelist#2
Packit Service 76cb02
    \protected@xdef#2{\bt@savelist\@elt{#1}}%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@add@elem[2]{%
Packit Service 76cb02
    \bt@if@elem{#1}{#2}{%
Packit Service 76cb02
        \relax
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \bt@append@list{#1}{#2}%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand\bt@test@cmd{}
Packit Service 76cb02
\newcommand*\bt@if@elem[2]{%
Packit Service 76cb02
    \let\bt@test@cmd\@secondoftwo
Packit Service 76cb02
    \let\bt@elt\@elt
Packit Service 76cb02
    \protected@edef\bt@tempc{#1}%
Packit Service 76cb02
    \def\@elt##1{%
Packit Service 76cb02
        \protected@edef\bt@tempb{##1}%
Packit Service 76cb02
        \ifx\bt@tempc\bt@tempb
Packit Service 76cb02
            \let\bt@test@cmd\@firstoftwo
Packit Service 76cb02
        \fi
Packit Service 76cb02
    }%
Packit Service 76cb02
    #2%
Packit Service 76cb02
    \let\@elt\bt@elt
Packit Service 76cb02
    \bt@test@cmd
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand\bt@elt{}
Packit Service 76cb02
\newcommand*\bt@mk@warning@list[1]{%
Packit Service 76cb02
    \@temptokena={}%
Packit Service 76cb02
    \let\bt@elt\@elt
Packit Service 76cb02
    \def\@elt##1{%
Packit Service 76cb02
        \@temptokena=\expandafter{\the\@temptokena ##1\MessageBreak}%
Packit Service 76cb02
    }%
Packit Service 76cb02
    #1%
Packit Service 76cb02
    \let\@elt\bt@elt
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\@orig@bibliographystyle{}
Packit Service 76cb02
\let\@orig@bibliographystyle\bibliographystyle
Packit Service 76cb02
\def\bibliographystyle#1{%
Packit Service 76cb02
    \gdef\bt@globalstyle{#1}%
Packit Service 76cb02
    \bt@info{Default bibliographystyle is `#1'}%
Packit Service 76cb02
    \@orig@bibliographystyle{#1}%
Packit Service 76cb02
}
Packit Service 76cb02
\def\bibliography{%
Packit Service 76cb02
    \PackageWarning{%
Packit Service 76cb02
        bibtopic%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        Ignoring `\string\bibliography' command\MessageBreak
Packit Service 76cb02
        (not compatible with bibtopic.sty)%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \@gobble
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\@bt@write@auxfile[3]{%
Packit Service 76cb02
    \bt@can@overwrite{btaux.aux}%
Packit Service 76cb02
    \bt@copy@verbatim{\thebtauxfile.aux}{btaux.aux}%    
Packit Service 76cb02
    \immediate\closeout\bt@outfile
Packit Service 76cb02
    \immediate\openout\bt@outfile\thebtauxfile.aux
Packit Service 76cb02
    \ifthenelse{\boolean{bt@natbib}}{%
Packit Service 76cb02
        \immediate\write\bt@outfile{%
Packit Service 76cb02
                \@percentchar\@percentchar\space
Packit Service 76cb02
                Info from `bibtopic.sty': natbib loaded.^^J%
Packit Service 76cb02
                \string\bibstyle{#1}^^J%
Packit Service 76cb02
                \string\citation{#2}^^J%
Packit Service 76cb02
                \string\bibdata{#3}%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \immediate\write\bt@outfile{%
Packit Service 76cb02
            \string\bibstyle{#1}^^J%
Packit Service 76cb02
            \string\citation{#2}^^J%
Packit Service 76cb02
            \string\bibdata{#3}%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \immediate\closeout\bt@outfile
Packit Service 76cb02
    \bt@if@files@differ{\thebtauxfile.aux}{btaux.aux}{%
Packit Service 76cb02
        \bt@if@elem{\thebtauxfile}{\bt@warn@files}{%
Packit Service 76cb02
            \relax
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \ifthenelse{\boolean{bt@normalwarnings}}{%
Packit Service 76cb02
                \PackageWarningNoLine{%
Packit Service 76cb02
                    bibtopic%
Packit Service 76cb02
                }{%
Packit Service 76cb02
                    \thebtauxfile.bbl may be outdated%
Packit Service 76cb02
                }%
Packit Service 76cb02
            }{%
Packit Service 76cb02
                \bt@appendtofile{\thebtauxfile.bbl}{%
Packit Service 76cb02
                    \string\csname\space
Packit Service 76cb02
                    bt@warn@outdated\string\endcsname{\thebtauxfile}%
Packit Service 76cb02
                }%
Packit Service 76cb02
            }%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{}% they don't differ
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@appendtofile[2]{%
Packit Service 76cb02
    \bt@can@overwrite{btbbl.aux}%
Packit Service 76cb02
    \bt@copy@verbatim{#1}{btbbl.aux}%
Packit Service 76cb02
    \immediate\closeout\bt@outfile
Packit Service 76cb02
    \bt@copy@verbatim{btbbl.aux}{#1}
Packit Service 76cb02
    \immediate\write\bt@outfile{\expandafter\string #2}%
Packit Service 76cb02
    \immediate\closeout\bt@outfile
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@save@list[1]{%
Packit Service 76cb02
    \expandafter\protected@xdef\csname bt@sect%
Packit Service 76cb02
       #1\endcsname{\bt@cited@list}%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand\btBegThbCmd{}
Packit Service 76cb02
\newcommand*\bt@beg@thb@hook{%
Packit Service 76cb02
    \btBegThbCmd
Packit Service 76cb02
    \global\bt@found@itemfalse
Packit Service 76cb02
    \bt@item{}%
Packit Service 76cb02
}%
Packit Service 76cb02
\newcommand\bt@save@cnt{0}
Packit Service 76cb02
\newcommand*\bt@end@thb@hook{%
Packit Service 76cb02
    \endbt@item
Packit Service 76cb02
    \ifthenelse{\boolean{bt@natbib}}{%
Packit Service 76cb02
        \protected@xdef\bt@save@cnt{\theNAT@ctr}%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \protected@xdef\bt@save@cnt{\@arabic\c@enumiv}%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \bt@bibitemcheck
Packit Service 76cb02
}%
Packit Service 76cb02
\newcommand*\bt@change@bibitem{%
Packit Service 76cb02
    \expandafter\ifx\btBegThbCmd\empty\else
Packit Service 76cb02
            \bt@info{\string\btBegThbCmd nonempty: \meaning\btBegThbCmd}%
Packit Service 76cb02
    \fi
Packit Service 76cb02
    \ifthenelse{\boolean{bt@natbib}}{%
Packit Service 76cb02
        \def\harvarditem{\endbt@item\bt@harvitem}%
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \def\bibitem{\endbt@item\bt@item}%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@adjust@label[1]{%     
Packit Service 76cb02
    \bt@isnum{#1}{%
Packit Service 76cb02
        \def\bt@label{\bt@totalctr}%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \def\bt@label{#1}%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@change@thb{%
Packit Service 76cb02
    \long\def\bt@tempa##1##2\endthebibliography{%
Packit Service 76cb02
        \def\bt@tempc{##1}%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \expandafter\bt@tempa\thebibliography{}\endthebibliography
Packit Service 76cb02
    \ifthenelse{\boolean{bt@brf}}{%
Packit Service 76cb02
        \@ifundefined{BRorg@thebibliography}{%
Packit Service 76cb02
            \PackageInfo{bibtopic}{assuming backref.sty <= v1.16}%
Packit Service 76cb02
            \let\bt@brf@bbl@cmd\oldbibl
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \PackageInfo{bibtopic}{assuming backref.sty >= v1.19}%
Packit Service 76cb02
            \let\bt@brf@bbl@cmd\BRorg@thebibliography
Packit Service 76cb02
        }%
Packit Service 76cb02
        \def\bt@tempb{\@starttoc}%
Packit Service 76cb02
        \ifx\bt@tempb\bt@tempc
Packit Service 76cb02
            \expandafter\bt@tempa\bt@brf@bbl@cmd{}\endthebibliography
Packit Service 76cb02
        \fi
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \def\bt@tempa{\bibfont}%
Packit Service 76cb02
    \ifx\bt@tempa\bt@tempc %
Packit Service 76cb02
        \bt@change@nat@thb
Packit Service 76cb02
    \else
Packit Service 76cb02
        \def\bt@tempa{\bibsection}%
Packit Service 76cb02
        \ifx\bt@tempa\bt@tempc
Packit Service 76cb02
            \bt@change@nat@thb
Packit Service 76cb02
        \else
Packit Service 76cb02
            \def\bt@tempa{\bib@heading}%
Packit Service 76cb02
            \ifx\bt@tempa\bt@tempc
Packit Service 76cb02
                \bt@change@KOMA@thb
Packit Service 76cb02
            \else
Packit Service 76cb02
                \def\bt@tempa{\chapter}%
Packit Service 76cb02
                \ifx\bt@tempa\bt@tempc
Packit Service 76cb02
                    \bt@change@standard@thb
Packit Service 76cb02
                \else
Packit Service 76cb02
                    \def\bt@tempa{\section}%
Packit Service 76cb02
                    \ifx\bt@tempa\bt@tempc
Packit Service 76cb02
                    \bt@change@standard@thb
Packit Service 76cb02
                    \else
Packit Service 76cb02
                        \ifbt@koma@class
Packit Service 76cb02
                            \bt@change@KOMA@thb
Packit Service 76cb02
                        \else
Packit Service 76cb02
                            \ifthenelse{\boolean{bt@fallback@thb}}{%
Packit Service 76cb02
                                \PackageWarning{%
Packit Service 76cb02
                                    bibtopic%
Packit Service 76cb02
                                }{%
Packit Service 76cb02
                                    `defaultbib' specified; using
Packit Service 76cb02
                                    built-in\MessageBreak
Packit Service 76cb02
                                    `thebibliography' environment%
Packit Service 76cb02
                                }%
Packit Service 76cb02
                                \let\thebibliography\bt@dflt@bthb
Packit Service 76cb02
                                \let\endthebibliography\bt@dflt@ethb
Packit Service 76cb02
                            }{%
Packit Service 76cb02
                                \PackageError{%
Packit Service 76cb02
                                    bibtopic%
Packit Service 76cb02
                                }{%
Packit Service 76cb02
                                    Found unknown `thebibliography' environment%
Packit Service 76cb02
                                }{%
Packit Service 76cb02
                                    You should either use a package providing
Packit Service 76cb02
                                    a known bibliography^^J%
Packit Service 76cb02
                                    environment (such as natbib), or use the
Packit Service 76cb02
                                    `defaultbib' package^^J%
Packit Service 76cb02
                                    option as a workaround; please see the
Packit Service 76cb02
                                    section about `Warnings^^J%
Packit Service 76cb02
                                    and error messages' in `bibtopic.dvi' for
Packit Service 76cb02
                                    details.
Packit Service 76cb02
                                }%
Packit Service 76cb02
                            }%
Packit Service 76cb02
                        \fi
Packit Service 76cb02
                    \fi
Packit Service 76cb02
                \fi
Packit Service 76cb02
            \fi
Packit Service 76cb02
        \fi
Packit Service 76cb02
    \fi
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\providecommand\@openbib@code{}
Packit Service 76cb02
\newcommand\bt@dflt@bthb[1]{%
Packit Service 76cb02
    \bt@adjust@label{#1}%
Packit Service 76cb02
    \ifthenelse{\boolean{bt@printheadings}}{%
Packit Service 76cb02
        \@ifundefined{chapter}{%
Packit Service 76cb02
            \@ifundefined{section}{%
Packit Service 76cb02
            \@startsection{section}{1}{\z@}%
Packit Service 76cb02
                {-3.5ex \@plus -1ex \@minus -.2ex}%
Packit Service 76cb02
                {2.3ex \@plus.2ex}%
Packit Service 76cb02
                {\normalfont\Large\bfseries}*{\refname}%
Packit Service 76cb02
            }{%
Packit Service 76cb02
            \section*{\refname\@mkboth{\refname}{\refname}}%
Packit Service 76cb02
            }%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \chapter*{\bibname\@mkboth{\bibname}{\bibname}}%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \list{\@biblabel{\@arabic\c@enumiv}}{%
Packit Service 76cb02
        \settowidth\labelwidth{\@biblabel{#1}}%
Packit Service 76cb02
        \leftmargin\labelwidth
Packit Service 76cb02
        \advance\leftmargin\labelsep
Packit Service 76cb02
        \@openbib@code
Packit Service 76cb02
        \ifthenelse{\boolean{bt@sectctr@reset}}{%
Packit Service 76cb02
            \usecounter{enumiv}%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \@nmbrlisttrue
Packit Service 76cb02
            \def\@listctr{enumiv}%
Packit Service 76cb02
        }%
Packit Service 76cb02
        \let\p@enumiv\@empty
Packit Service 76cb02
        \renewcommand*\theenumiv{\@arabic\c@enumiv}%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \sloppy\clubpenalty4000\widowpenalty4000%
Packit Service 76cb02
    \sfcode`\.=\@m
Packit Service 76cb02
    \bt@beg@thb@hook
Packit Service 76cb02
}%
Packit Service 76cb02
Packit Service 76cb02
\newcommand\bt@dflt@ethb{%
Packit Service 76cb02
    \bt@end@thb@hook
Packit Service 76cb02
    \def\@noitemerr{%
Packit Service 76cb02
        \@latex@warning{Empty `thebibliography' environment}%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \endlist
Packit Service 76cb02
}%
Packit Service 76cb02
Packit Service 76cb02
\newcommand\bt@change@nat@thb{%
Packit Service 76cb02
    \def\thebibliography##1{%
Packit Service 76cb02
        \bt@adjust@label{##1}%
Packit Service 76cb02
        \ifthenelse{\not\boolean{bt@printheadings}}{%
Packit Service 76cb02
            \let\bibsection\relax
Packit Service 76cb02
        }{}%
Packit Service 76cb02
        \bt@savebib{\bt@label}%    
Packit Service 76cb02
        \ifthenelse{\not\boolean{bt@sectctr@reset}}{%
Packit Service 76cb02
            \setcounter{NAT@ctr}{\bt@save@cnt}%
Packit Service 76cb02
        }{}%
Packit Service 76cb02
        \bt@beg@thb@hook
Packit Service 76cb02
    }%
Packit Service 76cb02
    \def\endthebibliography{%
Packit Service 76cb02
       \bt@end@thb@hook
Packit Service 76cb02
       %   \bt@endsavebib %% not; define it explicitly instead:
Packit Service 76cb02
       \def\@noitemerr{%
Packit Service 76cb02
           \PackageWarning{%
Packit Service 76cb02
              bibtopic%
Packit Service 76cb02
           }{%
Packit Service 76cb02
              Empty `thebibliography' environment%
Packit Service 76cb02
           }%
Packit Service 76cb02
       }%
Packit Service 76cb02
       \endlist % \vskip-\lastskip omitted here
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@change@standard@thb{%
Packit Service 76cb02
    \def\thebibliography##1{%
Packit Service 76cb02
        \bt@adjust@label{##1}%
Packit Service 76cb02
        \ifthenelse{\not\boolean{bt@printheadings}}{%
Packit Service 76cb02
            \let\chapter\@gobbletwo
Packit Service 76cb02
            \let\section\@gobbletwo
Packit Service 76cb02
        }{}%
Packit Service 76cb02
        \bt@savebib{\bt@label}%
Packit Service 76cb02
        \ifthenelse{\not\boolean{bt@sectctr@reset}}{%
Packit Service 76cb02
            \setcounter{enumiv}{\bt@save@cnt}%
Packit Service 76cb02
        }{}%
Packit Service 76cb02
        \bt@beg@thb@hook
Packit Service 76cb02
    }%
Packit Service 76cb02
    \def\endthebibliography{%
Packit Service 76cb02
        \bt@end@thb@hook
Packit Service 76cb02
        \bt@endsavebib
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@change@KOMA@thb{%
Packit Service 76cb02
    \ifthenelse{\not\boolean{bt@printheadings}}{%
Packit Service 76cb02
        \let\bib@heading\relax
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \bt@change@standard@thb
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand\bt@harvitem{%
Packit Service 76cb02
    \@ifnextchar[{\bt@@harvitem}{\bt@@harvitem[]}%] brace matching
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@@harvitem[4][]{%
Packit Service 76cb02
    \ifthenelse{\equal{#1}{}}{%
Packit Service 76cb02
        \protected@xdef\bt@args{[#2(#3)]}%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \bt@warn@brackets{#2}#1[]\end%
Packit Service 76cb02
        \protected@xdef\bt@args{[#1(#3)#2]}%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \bt@call@item{#4}%
Packit Service 76cb02
}
Packit Service 76cb02
\newenvironment{bt@item}{%
Packit Service 76cb02
    \@ifnextchar[{\bt@@item}{\bt@@item[]}%] brace matching
Packit Service 76cb02
}{
Packit Service 76cb02
    \relax
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@@item[2][]{%
Packit Service 76cb02
    \ifthenelse{\equal{#2}{}}{%
Packit Service 76cb02
        \def\endbt@item{\relax}%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \ifthenelse{\equal{#1}{}}{%
Packit Service 76cb02
            \gdef\bt@args{}%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \bt@isnum{#1}{%
Packit Service 76cb02
                \ifthenelse{\boolean{bt@override@numargs}}{%
Packit Service 76cb02
                    \global\bt@overridden@numargstrue
Packit Service 76cb02
                    \gdef\bt@args{}%
Packit Service 76cb02
                }{%
Packit Service 76cb02
                    \bt@warn@brackets{#2}#1[]\end%
Packit Service 76cb02
                    \protected@xdef\bt@args{[#1]}%
Packit Service 76cb02
                }%
Packit Service 76cb02
            }{%
Packit Service 76cb02
                \bt@warn@brackets{#2}#1[]\end%
Packit Service 76cb02
                \protected@xdef\bt@args{[#1]}%
Packit Service 76cb02
            }%
Packit Service 76cb02
        }%
Packit Service 76cb02
        \bt@call@item{#2}%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@warn@brackets{}
Packit Service 76cb02
\def\bt@warn@brackets#1#2[#3]#4\end{%
Packit Service 76cb02
    \ifthenelse{\equal{#3}{}}{%
Packit Service 76cb02
        \relax
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \PackageError{%
Packit Service 76cb02
            bibtopic%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            Can't parse brackets in key `#1' properly%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            You seem to have used brackets `[]' inside that key in^^J%
Packit Service 76cb02
            `\bt@curr@bib@file.bib', and bibtopic could have confused these^^J%
Packit Service 76cb02
            with the optional argument of the `\string\bibitem' command.^^J%
Packit Service 76cb02
            To avoid this, please `hide' such brackets in an extra pair^^J%
Packit Service 76cb02
            of braces, like this: `{[]}'.^^J^^J%
Packit Service 76cb02
            (Don't forget to rerun BibTeX on `\thebtauxfile' afterwards.)^^J%
Packit Service 76cb02
            If you proceed now, your bibliograpy may look somewhat garbled.
Packit Service 76cb02
        }%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@boxing@hook{%
Packit Service 76cb02
    \global\let\@noitemerr\relax
Packit Service 76cb02
    \def\cite{%
Packit Service 76cb02
        \@ifstar{}{}% just gobble it
Packit Service 76cb02
        \@ifnextchar[{% brace matching ]}{
Packit Service 76cb02
            \@citex
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \@citex[]%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }
Packit Service 76cb02
    \def\@citex[##1]{%
Packit Service 76cb02
        \@ifnextchar[{%]}{
Packit Service 76cb02
            \bt@gobble@citex[##1]%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \bt@gobble@citex[##1][]%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \def\bt@gobble@citex[##1][##2]##3{}%
Packit Service 76cb02
    \let\citet\cite
Packit Service 76cb02
    \let\Citet\cite
Packit Service 76cb02
    \let\citep\cite
Packit Service 76cb02
    \let\Citep\cite
Packit Service 76cb02
    \let\citealt\cite
Packit Service 76cb02
    \let\Citealt\cite
Packit Service 76cb02
    \let\citealp\cite
Packit Service 76cb02
    \let\Citealp\cite
Packit Service 76cb02
    \let\citetext\cite
Packit Service 76cb02
    \let\citeauthor\cite
Packit Service 76cb02
    \let\Citeauthor\cite
Packit Service 76cb02
    \let\citeauthoryear\cite
Packit Service 76cb02
    \let\citeyearpar\cite
Packit Service 76cb02
    \let\citetalias\cite
Packit Service 76cb02
    \let\citepalias\cite
Packit Service 76cb02
    \let\jbdoitem\relax
Packit Service 76cb02
    \let\jbbibargs\bt@gobblethree
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@call@item{}
Packit Service 76cb02
\ifthenelse{\boolean{bt@fast}}{%
Packit Service 76cb02
   \def\bt@call@item#1{%
Packit Service 76cb02
       \@ifundefined{#1bt@\@extra@b@citeb}{%
Packit Service 76cb02
           \bt@print@all@or@notcited{#1}%
Packit Service 76cb02
       }{%
Packit Service 76cb02
           \bt@print@all@or@cited{#1}%
Packit Service 76cb02
       }%
Packit Service 76cb02
   }
Packit Service 76cb02
}{%
Packit Service 76cb02
   \def\bt@call@item#1{%
Packit Service 76cb02
       \def\endbt@item{\relax}%
Packit Service 76cb02
       \bt@if@elem{#1}{\csname bt@sect\bt@unit@cnt\endcsname}{%
Packit Service 76cb02
           \bt@print@all@or@cited{#1}%
Packit Service 76cb02
       }{%
Packit Service 76cb02
           \bt@print@all@or@notcited{#1}%
Packit Service 76cb02
       }%
Packit Service 76cb02
   }%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@print@all@or@cited[1]{%
Packit Service 76cb02
    \ifthenelse{\boolean{bt@print@cited}}{%
Packit Service 76cb02
        \bt@do@print@item{#1}%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \ifthenelse{\boolean{bt@print@all}}{%
Packit Service 76cb02
            \bt@do@print@item{#1}%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \bt@dont@print@item
Packit Service 76cb02
        }%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@print@all@or@notcited[1]{%
Packit Service 76cb02
    \ifthenelse{\boolean{bt@print@cited}}{%
Packit Service 76cb02
        \bt@dont@print@item
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \bt@do@print@item{#1}%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@do@print@item[1]{%
Packit Service 76cb02
    \global\bt@found@itemtrue
Packit Service 76cb02
    \bt@stepcnt\bt@helpctr
Packit Service 76cb02
    \bt@if@elem{#1}{\bt@kv@req@list}{%
Packit Service 76cb02
        \bt@add@elem{#1}{\bt@sect@ref@list}%    
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \def\endbt@item{\relax}%
Packit Service 76cb02
    \expandafter\bt@saveitem\bt@args{#1}%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newbox\bt@tempboxa
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@dont@print@item{%
Packit Service 76cb02
    \def\endbt@item{%
Packit Service 76cb02
        \end{lrbox}%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \begin{lrbox}{\bt@tempboxa}%
Packit Service 76cb02
    \bt@boxing@hook
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand\bt@copy@verbatim[2]{%
Packit Service 76cb02
    \openin\bt@infilea=#1\relax
Packit Service 76cb02
    \immediate\openout\bt@outfile=#2\relax
Packit Service 76cb02
    \immediate\write\bt@outfile{%
Packit Service 76cb02
        \@percentchar%
Packit Service 76cb02
        \@percentchar%
Packit Service 76cb02
        \@percentchar%
Packit Service 76cb02
        \space produced automatically by bibtopic.sty v1.0k%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \begingroup
Packit Service 76cb02
        \let\do\@makeother \dospecials
Packit Service 76cb02
        \endlinechar\m@ne
Packit Service 76cb02
        \ifeof\bt@infilea
Packit Service 76cb02
            \bt@info{Tried to copy #1, but couldn't find it}%
Packit Service 76cb02
        \else
Packit Service 76cb02
            \loop
Packit Service 76cb02
                \read\bt@infilea to\bt@tempa
Packit Service 76cb02
                % same trick as with \if!...!
Packit Service 76cb02
                \if\ifeof\bt@infilea 0\else 1\fi 1
Packit Service 76cb02
                \immediate\write\bt@outfile{\bt@tempa}%
Packit Service 76cb02
            \repeat
Packit Service 76cb02
        \fi
Packit Service 76cb02
    \endgroup
Packit Service 76cb02
    \closein\bt@infilea
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@can@overwrite[1]{%
Packit Service 76cb02
    \openin\bt@infilea=#1\relax
Packit Service 76cb02
    \bgroup
Packit Service 76cb02
        \let\do\@makeother \dospecials
Packit Service 76cb02
        \endlinechar\m@ne
Packit Service 76cb02
        \ifeof\bt@infilea
Packit Service 76cb02
            \bt@info{File `#1' doesn't exist}%
Packit Service 76cb02
        \else
Packit Service 76cb02
            \read\bt@infilea to\@tempa
Packit Service 76cb02
            \ifeof\bt@infilea
Packit Service 76cb02
                \bt@info{File `#1' is empty}%
Packit Service 76cb02
            \else
Packit Service 76cb02
            \bt@if@signatureline{\@tempa}{%
Packit Service 76cb02
                \relax
Packit Service 76cb02
            }{%
Packit Service 76cb02
                \PackageError{bibtopic}{%
Packit Service 76cb02
                    file `#1' not written by bibtopic%
Packit Service 76cb02
                }{%
Packit Service 76cb02
                    The file `#1' looks as if it hasn't been written
Packit Service 76cb02
                    by bibtopic;^^J%
Packit Service 76cb02
                    however, bibtopic would now try to overwrite this file.^^J%
Packit Service 76cb02
                    (See section 3 in bibtopic.dvi for more details.)^^J%
Packit Service 76cb02
                    If this file contains anything important, please^^J%
Packit Service 76cb02
                    copy its contents to a safe place now.^^J^^J%
Packit Service 76cb02
                    If you hit RETURN now, this file will be overwritten.^^J%
Packit Service 76cb02
                }%
Packit Service 76cb02
            }%
Packit Service 76cb02
            \fi
Packit Service 76cb02
        \fi
Packit Service 76cb02
    \egroup
Packit Service 76cb02
    \closein\bt@infilea
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand\bt@version{0}
Packit Service 76cb02
\newcommand\bt@if@@signatureline{}
Packit Service 76cb02
\newcommand\bt@if@signatureline{}
Packit Service 76cb02
{
Packit Service 76cb02
\catcode`\ =12
Packit Service 76cb02
\catcode`\%=12
Packit Service 76cb02
\endlinechar\m@ne
Packit Service 76cb02
\gdef\bt@if@signatureline#1{
Packit Service 76cb02
\expandafter\bt@if@@signatureline
Packit Service 76cb02
#1%%% produced automatically by bibtopic.sty v.%%%\end
Packit Service 76cb02
}
Packit Service 76cb02
\gdef\bt@if@@signatureline
Packit Service 76cb02
#1%%% produced automatically by bibtopic.sty v#2.#3%%%#4\end{
Packit Service 76cb02
\ifx\\#2\\
Packit Service 76cb02
\let\bt@tempc\@secondoftwo
Packit Service 76cb02
\else
Packit Service 76cb02
\def\bt@version{#2.#3}
Packit Service 76cb02
\let\bt@tempc\@firstoftwo
Packit Service 76cb02
\fi
Packit Service 76cb02
\bt@tempc
Packit Service 76cb02
}
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newif\ifbt@cont
Packit Service 76cb02
\newif\ifbt@files@diff
Packit Service 76cb02
\newcommand\bt@line@cnt{}
Packit Service 76cb02
\newcommand*\bt@if@files@differ[4]{%    
Packit Service 76cb02
    \bt@files@difffalse
Packit Service 76cb02
    \def\bt@line@cnt{0}%
Packit Service 76cb02
    \bgroup
Packit Service 76cb02
        \let\do\@makeother
Packit Service 76cb02
        \dospecials
Packit Service 76cb02
        \endlinechar-1
Packit Service 76cb02
        \openin\bt@infilea=#1
Packit Service 76cb02
        \openin\bt@infileb=#2
Packit Service 76cb02
        \bt@conttrue
Packit Service 76cb02
        \loop
Packit Service 76cb02
        \ifeof\bt@infilea
Packit Service 76cb02
            \bt@contfalse
Packit Service 76cb02
            \ifeof\bt@infileb
Packit Service 76cb02
            \else
Packit Service 76cb02
                \global\bt@files@difftrue
Packit Service 76cb02
            \fi
Packit Service 76cb02
        \else
Packit Service 76cb02
            \ifeof\bt@infileb
Packit Service 76cb02
                \bt@contfalse
Packit Service 76cb02
                \global\bt@files@difftrue
Packit Service 76cb02
            \fi
Packit Service 76cb02
        \fi
Packit Service 76cb02
        \ifbt@cont
Packit Service 76cb02
            \read\bt@infilea to\bt@tempa
Packit Service 76cb02
            \read\bt@infileb to\bt@tempb
Packit Service 76cb02
            \bt@stepcnt{\bt@line@cnt}%
Packit Service 76cb02
            \ifnum\bt@line@cnt=1
Packit Service 76cb02
                \bt@if@signatureline{\bt@tempb}{%
Packit Service 76cb02
                    \read\bt@infileb to\bt@tempb
Packit Service 76cb02
                }{}%
Packit Service 76cb02
            \fi
Packit Service 76cb02
            \ifx\bt@tempa\bt@tempb
Packit Service 76cb02
            \else
Packit Service 76cb02
                \bt@contfalse
Packit Service 76cb02
                \global\bt@files@difftrue
Packit Service 76cb02
            \fi
Packit Service 76cb02
        \repeat
Packit Service 76cb02
        \closein\bt@infilea
Packit Service 76cb02
        \closein\bt@infileb
Packit Service 76cb02
    \egroup
Packit Service 76cb02
    \ifthenelse{\boolean{bt@files@diff}}{%
Packit Service 76cb02
        #3%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        #4%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@set@cnt[1]{%
Packit Service 76cb02
    \gdef\bt@totalctr{#1}%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@keyval@list{}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@kv@add[2]{%
Packit Service 76cb02
    \protected@edef\bt@tempa{\bt@keyval@list}%
Packit Service 76cb02
    \protected@xdef\bt@keyval@list{\noexpand\@elt{#1}{#2}\bt@tempa}%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\DeclareRobustCommand*\btCiteSect[1]{%
Packit Service 76cb02
    \btGetVal{#1}%
Packit Service 76cb02
    \cite{#1} (section\nobreakspace{}\ref{\btretval})%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\DeclareRobustCommand*\btRef[2]{%
Packit Service 76cb02
    % get section label of #1 from \bt@keyval@list
Packit Service 76cb02
    % reference type is #2
Packit Service 76cb02
    \ifx\bt@keyval@list\@undefined
Packit Service 76cb02
        {\bfseries{???}}%
Packit Service 76cb02
    \else
Packit Service 76cb02
        \bt@get@keyval{#1}{\bt@keyval@list}%
Packit Service 76cb02
        #2{\btretval}%
Packit Service 76cb02
    \fi
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\DeclareRobustCommand*\btGetVal[1]{%
Packit Service 76cb02
    \bt@get@keyval{#1}{\bt@keyval@list}%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@print@keyvals[2]{%
Packit Service 76cb02
    \let\bt@elt\@elt%
Packit Service 76cb02
    \def\@elt##1{%
Packit Service 76cb02
        \protected@write\@auxout{}{%
Packit Service 76cb02
            \string\bt@kv@add{##1}{#2}%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }#1%
Packit Service 76cb02
    \let\@elt\bt@elt
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@get@keyval[2]{%
Packit Service 76cb02
    \gdef\btretval{???}%
Packit Service 76cb02
    \bt@add@elem{#1}{\bt@kv@req@list}%
Packit Service 76cb02
    %% get value of key #1 from list #2
Packit Service 76cb02
    \protected@edef\bt@tempa{#1}%
Packit Service 76cb02
    \bt@elemfalse
Packit Service 76cb02
    \let\bt@elt\@elt%
Packit Service 76cb02
    \def\@elt##1##2{\def\bt@tempb{##1}%
Packit Service 76cb02
        \ifx\bt@tempa\bt@tempb  %##2
Packit Service 76cb02
            \gdef\btretval{##2}%
Packit Service 76cb02
        \fi
Packit Service 76cb02
    }%
Packit Service 76cb02
    #2%
Packit Service 76cb02
    \let\@elt\bt@elt
Packit Service 76cb02
    \ifthenelse{\equal{\btretval}{???}}{%
Packit Service 76cb02
        \PackageWarning{bibtopic}{%
Packit Service 76cb02
            Key `#1' not found\MessageBreak in list of cited works%
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{}%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@get@label[2]{%
Packit Service 76cb02
    \protected@edef\bt@tempa{#1}%
Packit Service 76cb02
    \let\bt@elt\@elt%
Packit Service 76cb02
    \def\@elt##1##2{\def\bt@tempb{##1}%
Packit Service 76cb02
        \ifx\bt@tempa\bt@tempb%
Packit Service 76cb02
        ##2
Packit Service 76cb02
        \fi
Packit Service 76cb02
    }%
Packit Service 76cb02
    #2%
Packit Service 76cb02
    \let\@elt\bt@elt
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newenvironment{btSect}[2][\bt@globalstyle]{%
Packit Service 76cb02
    \ifthenelse{\equal{#1}{}}{%
Packit Service 76cb02
        \PackageWarning{%
Packit Service 76cb02
            bibtopic%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            No \string\bibliographystyle\space given
Packit Service 76cb02
            - \MessageBreak assuming `\bt@defaultstyle'%
Packit Service 76cb02
        }%
Packit Service 76cb02
        \def\bt@globalstyle{\bt@defaultstyle}%
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \expandafter\ifx\csname bt@sect\bt@unit@cnt%
Packit Service 76cb02
            \endcsname\relax
Packit Service 76cb02
        \expandafter\protected@xdef\csname bt@sect%
Packit Service 76cb02
            \bt@unit@cnt\endcsname{\bt@cited@list}%
Packit Service 76cb02
    \fi
Packit Service 76cb02
    \stepcounter{btauxfile}%
Packit Service 76cb02
    \bt@info{bibliographystyle is `#1'\MessageBreak
Packit Service 76cb02
            for file `\thebtauxfile .bbl'%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \bt@inside@secttrue
Packit Service 76cb02
    \gdef\bt@curr@bib@file{#2}%
Packit Service 76cb02
    \gdef\bt@sect@ref@list{}%    
Packit Service 76cb02
    \bt@change@thb%
Packit Service 76cb02
    \if@filesw
Packit Service 76cb02
        \@bt@write@auxfile{#1}{*}{#2}%
Packit Service 76cb02
    \fi
Packit Service 76cb02
}{%
Packit Service 76cb02
    \relax
Packit Service 76cb02
}%
Packit Service 76cb02
\newenvironment{btUnit}{%
Packit Service 76cb02
    \ifthenelse{\boolean{bt@inside@unit}}{%
Packit Service 76cb02
        \PackageError{%
Packit Service 76cb02
            bibtopic%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            The `btUnit' environment cannot be nested%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            You cannot use a `btUnit' environment inside another^^J%
Packit Service 76cb02
            `btUnit' environment.
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \global\bt@inside@unittrue
Packit Service 76cb02
    \immediate\write\@auxout{%
Packit Service 76cb02
        \string\csname\space change@bibcite\string\endcsname%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \ifthenelse{\not\boolean{bt@natbib}}{%
Packit Service 76cb02
        \bt@setcites
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \ifthenelse{\not\boolean{bt@part@cont@ctr}}{%
Packit Service 76cb02
        \def\bt@save@cnt{0}%
Packit Service 76cb02
        \ifthenelse{\boolean{bt@natbib}}{%
Packit Service 76cb02
            \setcounter{NAT@ctr}{0}%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \setcounter{enumiv}{0}% for standard styles
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \protected@xdef\the@ipfilectr{\bt@unit@cnt}%
Packit Service 76cb02
    \immediate\write\@auxout{\string\def\string\bt@cited@list{}^^J%
Packit Service 76cb02
                    \string\gdef\string\@extra@binfo{\@extra@b@citeb}}%
Packit Service 76cb02
}{%
Packit Service 76cb02
    \immediate\write\@auxout{\string\bt@save@list{\bt@unit@cnt}}
Packit Service 76cb02
    \bt@stepcnt\bt@unit@cnt
Packit Service 76cb02
    \gdef\the@ipfilectr{}%
Packit Service 76cb02
    \immediate\write\@auxout{%
Packit Service 76cb02
        \string\gdef\string\@extra@binfo{\@extra@b@citeb}}%
Packit Service 76cb02
    \global\bt@inside@unitfalse
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\btPrintCited{%
Packit Service 76cb02
    \ifthenelse{\boolean{bt@inside@sect}}{%
Packit Service 76cb02
        \protected@edef\bt@curr@line{\the\inputlineno}%
Packit Service 76cb02
        \def\bt@curr@cmd{\string\btPrintCited}%
Packit Service 76cb02
        \bt@stepcnt\bt@internal@sect@cnt%
Packit Service 76cb02
        \bt@print@citedtrue\bt@print@allfalse
Packit Service 76cb02
        \label{Sec:\bt@internal@sect@cnt}%
Packit Service 76cb02
        \bt@change@bibitem
Packit Service 76cb02
        \bt@input@or@warn{\thebtauxfile}%
Packit Service 76cb02
        \bt@print@keyvals{\bt@sect@ref@list}{%
Packit Service 76cb02
            Sec:\bt@internal@sect@cnt
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \bt@sect@err{btSect}{\btPrintCited}%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\btPrintNotCited{%
Packit Service 76cb02
    \ifthenelse{\boolean{bt@inside@sect}}{%
Packit Service 76cb02
        \protected@edef\bt@curr@line{\the\inputlineno}%
Packit Service 76cb02
        \def\bt@curr@cmd{\string\btPrintNotCited}%
Packit Service 76cb02
        \bt@stepcnt\bt@internal@sect@cnt
Packit Service 76cb02
        \bt@print@citedfalse\bt@print@allfalse
Packit Service 76cb02
        \label{Sec:\bt@internal@sect@cnt}%
Packit Service 76cb02
        \bt@change@bibitem
Packit Service 76cb02
        \bt@input@or@warn{\thebtauxfile}%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \bt@sect@err{btSect}{\btPrintNotCited}%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\btPrintAll{%
Packit Service 76cb02
    \ifthenelse{\boolean{bt@inside@sect}}{%
Packit Service 76cb02
        \protected@edef\bt@curr@line{\the\inputlineno}%
Packit Service 76cb02
        \def\bt@curr@cmd{\string\btPrintAll}%
Packit Service 76cb02
        \bt@stepcnt\bt@internal@sect@cnt
Packit Service 76cb02
        \bt@print@citedfalse\bt@print@alltrue
Packit Service 76cb02
        \label{Sec:\bt@internal@sect@cnt}%
Packit Service 76cb02
        \bt@change@bibitem
Packit Service 76cb02
        \bt@input@or@warn{\thebtauxfile}%
Packit Service 76cb02
        \bt@print@keyvals{\bt@sect@ref@list}%
Packit Service 76cb02
            {Sec:\bt@internal@sect@cnt}%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \bt@sect@err{btSect}{\btPrintAll}%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
\newenvironment{bibtopics}[2]{%
Packit Service 76cb02
    \begin{btSect}[#1]{#2}%
Packit Service 76cb02
    \btPrintAll
Packit Service 76cb02
}{%
Packit Service 76cb02
    \end{btSect}%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand\bt@bibstyle{}
Packit Service 76cb02
\newcommand\bt@citation{}
Packit Service 76cb02
\newcommand\bt@bibdata{}
Packit Service 76cb02
\newenvironment{bibunit}[1][\bt@globalstyle]{%
Packit Service 76cb02
    \ifx#1\@empty
Packit Service 76cb02
        \PackageWarning{%
Packit Service 76cb02
            bibtopic%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            No \string\bibliographystyle\space given
Packit Service 76cb02
            - \MessageBreak assuming `\bt@defaultstyle'%
Packit Service 76cb02
        }%
Packit Service 76cb02
        \def\bt@globalstyle{\bt@defaultstyle}%
Packit Service 76cb02
    \fi
Packit Service 76cb02
    \def\bt@bibstyle{#1}%
Packit Service 76cb02
    \def\nocite##1{\def\bt@citation{##1}}%
Packit Service 76cb02
    \def\cite##1{\def\bt@citation{##1}}%
Packit Service 76cb02
    \gdef\putbib[##1]{\gdef\bt@bibdata{##1}}%
Packit Service 76cb02
    \stepcounter{btauxfile}%
Packit Service 76cb02
}{%
Packit Service 76cb02
    \bt@change@thb
Packit Service 76cb02
    \if@filesw
Packit Service 76cb02
        \@bt@write@auxfile{\bt@bibstyle}{\bt@citation}{\bt@bibdata}%
Packit Service 76cb02
    \fi
Packit Service 76cb02
        \bt@inside@secttrue
Packit Service 76cb02
        \btPrintAll
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@bibitemcheck{%
Packit Service 76cb02
    \ifthenelse{\not\boolean{bt@found@item}}{%
Packit Service 76cb02
        \PackageWarningNoLine{%
Packit Service 76cb02
            bibtopic%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            No appropriate bibitems found for command\MessageBreak %
Packit Service 76cb02
            \bt@curr@cmd\space on line \bt@curr@line%     
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{}%
Packit Service 76cb02
}
Packit Service 76cb02
\newcommand*\bt@sect@err[2]{%
Packit Service 76cb02
    \PackageError{%
Packit Service 76cb02
        bibtopic%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        You can't use `\string#2' outside of `#1'%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        See the documentation on the `\string#2' command\MessageBreak
Packit Service 76cb02
        in `bibtopic.dvi' for details.
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@bibtex@warning[1]{%
Packit Service 76cb02
    \PackageWarningNoLine{%
Packit Service 76cb02
        bibtopic%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        Please (re)run BibTeX on the file(s):%
Packit Service 76cb02
        \expandafter\MessageBreak#1%
Packit Service 76cb02
        and after that rerun LaTeX%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@files@warnings{%
Packit Service 76cb02
    \ifthenelse{\boolean{bt@harvard@errs}}{%
Packit Service 76cb02
        \PackageError{%
Packit Service 76cb02
            bibtopic%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            Your command \string\harvarditem\space was ignored%
Packit Service 76cb02
        }{%
Packit Service 76cb02
            `bibtopic' currently supports the `\string\harvarditem'
Packit Service 76cb02
            command^^J
Packit Service 76cb02
            only in connection with the `natbib' package. So either^^J%
Packit Service 76cb02
            load this package, or change the `\string\citationstyle' command
Packit Service 76cb02
            to some^^J%
Packit Service 76cb02
            non-harvard style.^^J%
Packit Service 76cb02
            If you hit RETURN now, some of your bibliographies will be empty.
Packit Service 76cb02
        }%
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \ifthenelse{\boolean{bt@overridden@numargs}}{%
Packit Service 76cb02
        \ifthenelse{\boolean{bt@warn@override}}{%
Packit Service 76cb02
            \PackageWarningNoLine{%
Packit Service 76cb02
                bibtopic%
Packit Service 76cb02
            }{%
Packit Service 76cb02
                The numerical argument in some `\string\bibitem' commands^^J%
Packit Service 76cb02
                has been ignored. Using one of the package options^^J%
Packit Service 76cb02
                `overridenumbers' or `dontoverridenumbers' will make^^J%
Packit Service 76cb02
                this warning go away.^^J%
Packit Service 76cb02
                Please see the documentation on these options^^J%
Packit Service 76cb02
                in `bibtopic.dvi' for more details.
Packit Service 76cb02
            }%
Packit Service 76cb02
        }{}%
Packit Service 76cb02
    }{}%
Packit Service 76cb02
    \ifthenelse{\equal{\bt@warn@files}{}}{%
Packit Service 76cb02
        \relax
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \bt@mk@warning@list{\bt@warn@files}%
Packit Service 76cb02
        \bt@bibtex@warning{\the\@temptokena}%
Packit Service 76cb02
        \def\bt@helpctr{\bt@totalctr}%
Packit Service 76cb02
    }%
Packit Service 76cb02
}
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@input@or@warn[1]{%
Packit Service 76cb02
    \IfFileExists{#1.bbl}%
Packit Service 76cb02
    {%
Packit Service 76cb02
        \input#1.bbl%
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \bt@if@elem{#1}{\bt@warn@files}{%
Packit Service 76cb02
            \relax
Packit Service 76cb02
        }{%
Packit Service 76cb02
            \PackageWarningNoLine{%
Packit Service 76cb02
                bibtopic%
Packit Service 76cb02
            }{%
Packit Service 76cb02
                No file #1.bbl%
Packit Service 76cb02
            }%
Packit Service 76cb02
            \ifbt@normalwarnings
Packit Service 76cb02
            \else
Packit Service 76cb02
                \bt@append@list{#1}{\bt@warn@files}%
Packit Service 76cb02
            \fi
Packit Service 76cb02
        }%
Packit Service 76cb02
    }%
Packit Service 76cb02
}%
Packit Service 76cb02
Packit Service 76cb02
\newcommand*\bt@warn@outdated[1]{%
Packit Service 76cb02
    \bt@if@elem{#1}{\bt@warn@files}{%
Packit Service 76cb02
        \relax
Packit Service 76cb02
    }{%
Packit Service 76cb02
        \bt@infoNoLine{Marking #1.bbl as outdated}%
Packit Service 76cb02
        \bt@append@list{#1}{\bt@warn@files}%
Packit Service 76cb02
    }%
Packit Service 76cb02
    \ifthenelse{\not\boolean{bt@natbib}}{%
Packit Service 76cb02
        \global\let\bt@item\relax
Packit Service 76cb02
        \global\let\endbt@item\relax
Packit Service 76cb02
    }{}%
Packit Service 76cb02
}%
Packit Service 76cb02
\endinput
Packit Service 76cb02
%%
Packit Service 76cb02
%% End of file `bibtopic.sty'.