You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

316 lines
9.0 KiB

% 2 IX 1994
% =========
%
% To jest:
% BibloTeX ver.1.0
%
% system makr do generowania bibliografii w systemie plain-TeX
%
% adaptacja: B.Licho¤ski 1994
%----------------------------------- begin BibloTeX ----------------------
%% @texfile{
%% author = "Bogus/law Licho/nski",
%% version = "1.0",
%% date = "30 Mar 1994",
%% filename = "biblotex.tex",
%% address = "Gdynia ul. Kameliowa 17",
%% codetable = "ISO/ASCII",
%% supported = "yes",
%% docstring = "Definicje makr plain TeX dla programu BibTeX",
%% }
\edef\cite{\the\catcode`@}%
\catcode`@ = 11
\let\@oldatcatcode = \cite
\chardef\@letter = 11
\chardef\@other = 12
\def\@innerdef#1#2{\edef#1{\expandafter\noexpand\csname #2\endcsname}}%
\@innerdef\@innernewcount{newcount}%
\@innerdef\@innernewdimen{newdimen}%
\@innerdef\@innernewif{newif}%
\@innerdef\@innernewwrite{newwrite}%
\def\@gobble#1{}%
\ifx\inputlineno\@undefined
\let\@linenumber = \empty % Pre-3.0.
\else
\def\@linenumber{\the\inputlineno:\space}%
\fi
\def\@futurenonspacelet#1{\def\cs{#1}%
\afterassignment\@stepone\let\@nexttoken=
}%
\begingroup % The grouping here avoids stepping on an outside use of `\\'.
\def\\{\global\let\@stoken= }%
\\ % now \@stoken is a space token (\\ is a control symbol, so that
% space after it is seen).
\endgroup
\def\@stepone{\expandafter\futurelet\cs\@steptwo}%
\def\@steptwo{\expandafter\ifx\cs\@stoken\let\@@next=\@stepthree
\else\let\@@next=\@nexttoken\fi \@@next}%
\def\@stepthree{\afterassignment\@stepone\let\@@next= }%
\def\@getoptionalarg#1{%
\let\@optionaltemp = #1%
\let\@optionalnext = \relax
\@futurenonspacelet\@optionalnext\@bracketcheck
}%
\def\@bracketcheck{%
\ifx [\@optionalnext
\expandafter\@@getoptionalarg
\else
\let\@optionalarg = \empty
\expandafter\@optionaltemp
\fi
}%
\def\@@getoptionalarg[#1]{%
\def\@optionalarg{#1}%
\@optionaltemp
}%
%
% From LaTeX.
%
\def\@nnil{\@nil}%
\def\@fornoop#1\@@#2#3{}%
\def\@for#1:=#2\do#3{%
\edef\@fortmp{#2}%
\ifx\@fortmp\empty \else
\expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}%
\fi
}%
\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
#5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi
}%
\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
\let\@nextwhile=\@fornoop \else
#4\relax\let\@nextwhile=\@iforloop\fi\@nextwhile#2\@@#3{#4}%
}%
\@innernewif\if@fileexists
\def\@testfileexistence{\@getoptionalarg\@finishtestfileexistence}%
\def\@finishtestfileexistence#1{%
\begingroup
\def\extension{#1}%
\immediate\openin0 =
\ifx\@optionalarg\empty\jobname\else\@optionalarg\fi
\ifx\extension\empty \else .#1\fi
\space
\ifeof 0
\global\@fileexistsfalse
\else
\global\@fileexiststrue
\fi
\immediate\closein0
\endgroup
}%
\toks0 = {%
\def\bibliographystyle#1{%
\@readauxfile
\@writeaux{\string\bibstyle{#1}}%
}%
\let\bibstyle = \@gobble
\let\bblfilebasename = \jobname
\def\bibliography#1{%
\@readauxfile
\@writeaux{\string\bibdata{#1}}%
\@testfileexistence[\bblfilebasename]{bbl}%
\if@fileexists
\nobreak
\@readbblfile
\fi
}%
\let\bibdata = \@gobble
\def\nocite#1{%
\@readauxfile
\@writeaux{\string\citation{#1}}%
}%
\@innernewif\if@notfirstcitation
\def\cite{\@getoptionalarg\@cite}%
\def\@cite#1{%
\let\@citenotetext = \@optionalarg
\printcitestart
\nocite{#1}%
\@notfirstcitationfalse
\@for \@citation :=#1\do
{%
\expandafter\@onecitation\@citation\@@
}%
\ifx\empty\@citenotetext\else
\printcitenote{\@citenotetext}%
\fi
\printcitefinish
}%
\def\@onecitation#1\@@{%
\if@notfirstcitation
\printbetweencitations
\fi
\expandafter \ifx \csname\@citelabel{#1}\endcsname \relax
\if@citewarning
\message{\@linenumber Undefined citation `#1'.}%
\fi
\expandafter\gdef\csname\@citelabel{#1}\endcsname{%
{\tt
\escapechar = -1
\nobreak\hskip0pt
\expandafter\string\csname#1\endcsname
\nobreak\hskip0pt
}%
}%
\fi
\csname\@citelabel{#1}\endcsname
\@notfirstcitationtrue
}%
\def\@citelabel#1{b@#1}%
\def\@citedef#1#2{\expandafter\gdef\csname\@citelabel{#1}\endcsname{#2}}%
\def\@readbblfile{%
\ifx\@itemnum\@undefined
\@innernewcount\@itemnum
\fi
\begingroup
\def\begin##1##2{%
\setbox0 = \hbox{\biblabelcontents{##2}}%
\biblabelwidth = \wd0
}%
\def\end##1{}% ##1 is `thebibliography' again.
\@itemnum = 0
\def\bibitem{\@getoptionalarg\@bibitem}%
\def\@bibitem{%
\ifx\@optionalarg\empty
\expandafter\@numberedbibitem
\else
\expandafter\@alphabibitem
\fi
}%
\def\@alphabibitem##1{%
\expandafter \xdef\csname\@citelabel{##1}\endcsname {\@optionalarg}%
\ifx\biblabelprecontents\@undefined
\let\biblabelprecontents = \relax
\fi
\ifx\biblabelpostcontents\@undefined
\let\biblabelpostcontents = \hss
\fi
\@finishbibitem{##1}%
}%
\def\@numberedbibitem##1{%
\advance\@itemnum by 1
\expandafter \xdef\csname\@citelabel{##1}\endcsname{\number\@itemnum}%
\ifx\biblabelprecontents\@undefined
\let\biblabelprecontents = \hss
\fi
\ifx\biblabelpostcontents\@undefined
\let\biblabelpostcontents = \relax
\fi
\@finishbibitem{##1}%
}%
\def\@finishbibitem##1{%
\biblabelprint{\csname\@citelabel{##1}\endcsname}%
\@writeaux{\string\@citedef{##1}{\csname\@citelabel{##1}\endcsname}}%
\ignorespaces
}%
\let\em = \bblem
\let\newblock = \bblnewblock
\let\sc = \bblsc
\frenchspacing
\clubpenalty = 4000 \widowpenalty = 4000
\tolerance = 10000 \hfuzz = .5pt
\everypar = {\hangindent = \biblabelwidth
\advance\hangindent by \biblabelextraspace}%
\bblrm
\parskip = 1.5ex plus .5ex minus .5ex
\biblabelextraspace = .5em
\bblhook
\input \bblfilebasename.bbl
\endgroup
}%
\@innernewdimen\biblabelwidth
\@innernewdimen\biblabelextraspace
\def\biblabelprint#1{%
\noindent
\hbox to \biblabelwidth{%
\biblabelprecontents
\biblabelcontents{#1}%
\biblabelpostcontents
}%
\kern\biblabelextraspace
}%
\def\biblabelcontents#1{{\bblrm [#1]}}%
\def\bblrm{\rm}%
\def\bblem{\it}%
\def\bblsc{\ifx\@scfont\@undefined
\font\@scfont = plcsc10
\fi
\@scfont
}%
\def\bblnewblock{\hskip .11em plus .33em minus .07em }%
\let\bblhook = \empty
\def\printcitestart{[}% left bracket
\def\printcitefinish{]}% right bracket
\def\printbetweencitations{, }% comma, space
\def\printcitenote#1{, #1}% comma, space, note (if it exists)
\let\citation = \@gobble
\@innernewcount\@numparams
\def\newcommand#1{%
\def\@commandname{#1}%
\@getoptionalarg\@continuenewcommand
}%
\def\@continuenewcommand{%
\@numparams = \ifx\@optionalarg\empty 0\else\@optionalarg \fi \relax
\@newcommand
}%
\def\@newcommand#1{%
\def\@startdef{\expandafter\edef\@commandname}%
\ifnum\@numparams=0
\let\@paramdef = \empty
\else
\ifnum\@numparams>9
\errmessage{\the\@numparams\space is too many parameters}%
\else
\ifnum\@numparams<0
\errmessage{\the\@numparams\space is too few parameters}%
\else
\edef\@paramdef{%
\ifcase\@numparams
\empty No arguments.
\or ####1%
\or ####1####2%
\or ####1####2####3%
\or ####1####2####3####4%
\or ####1####2####3####4####5%
\or ####1####2####3####4####5####6%
\or ####1####2####3####4####5####6####7%
\or ####1####2####3####4####5####6####7####8%
\or ####1####2####3####4####5####6####7####8####9%
\fi
}%
\fi
\fi
\fi
\expandafter\@startdef\@paramdef{#1}%
}%
}%
\ifx\nobibtex\@undefined \the\toks0 \fi
\def\@readauxfile{%
\if@auxfiledone \else % remember: \@auxfiledonetrue if \noauxfile is defined
\global\@auxfiledonetrue
\@testfileexistence{aux}%
\if@fileexists
\begingroup
\endlinechar = -1
\catcode`@ = 11
\input \jobname.aux
\endgroup
\else
\message{\@undefinedmessage}%
\global\@citewarningfalse
\fi
\immediate\openout\@auxfile = \jobname.aux
\fi
}%
\newif\if@auxfiledone
\ifx\noauxfile\@undefined \else \@auxfiledonetrue\fi
\@innernewwrite\@auxfile
\def\@writeaux#1{\ifx\noauxfile\@undefined \write\@auxfile{#1}\fi}%
\ifx\@undefinedmessage\@undefined
\def\@undefinedmessage{No .aux file; I won't give you warnings about
undefined citations.}%
\fi
\@innernewif\if@citewarning
\ifx\noauxfile\@undefined \@citewarningtrue\fi
\catcode`@ = \@oldatcatcode
\prefixing
%----------------------------------- end BibloTeX -------------------------