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
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 -------------------------
|
|
|