summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/inlinebib/inlinebib.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:57:08 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:57:08 +0000
commitad49b1da75fc4eef2808ccb07ceae93a5ba5dcf3 (patch)
treef3932c8e1c551fd092ad63d8668166eb6898c6ab /Master/texmf-dist/tex/latex/inlinebib/inlinebib.sty
parent36d4aa42d015b48d19108d0b983d26cc207ca078 (diff)
inlinebib
git-svn-id: svn://tug.org/texlive/trunk@995 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/inlinebib/inlinebib.sty')
-rw-r--r--Master/texmf-dist/tex/latex/inlinebib/inlinebib.sty165
1 files changed, 165 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/inlinebib/inlinebib.sty b/Master/texmf-dist/tex/latex/inlinebib/inlinebib.sty
new file mode 100644
index 00000000000..b631dd22605
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/inlinebib/inlinebib.sty
@@ -0,0 +1,165 @@
+%% Copyright (C) 1994, 1995 René Seindal (rene@seindal.dk)
+
+% This files may be distributed under the terms of the LaTeX Project Public
+% License as distributed from CTAN archives in macros/latex/base/lppl.txt;
+% either version 1.0 or, at your option, any later version.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{inlinebib}[1994/12/06\space Inline bibliography style]
+\ProcessOptions
+
+ %% No labels in the final list of litterature.
+
+\let\@biblabel\@gobble
+
+
+ %% This is called for each bibitem without option in the bbl file.
+ %% The inlinebib style does not use bibitems with optional
+ %% arguments. The arguments are: #1 = key, #2 = basic entry, #3 =
+ %% notes for last reference list only, #4 = short entry for successive
+ %% citations. The period that ends an entry in the list is never
+ %% present in the inline reference. Punctuations should be added
+ %% manually.
+
+\long\def\@bibitem#1 #2 \note #3 \short #4 \end{\par\if@filesw
+ {\def\protect##1{\string ##1\space}%
+ \let\newblock\@empty
+ \immediate\write\@auxout{\string
+ \bibcite{#1}{\string\@bibcall{#1}{#2}{#4}}}}\fi
+ {\let\cite\shortcite #2#3}}
+% {\let\cite\shortcite #2}}
+
+
+
+ %% This is called from the aux file at the start of the job.
+
+\long\def\bibcite#1#2{\global\@namedef{b@#1}{#2}}
+
+
+
+
+ %% Set globally true iff an immediate following period should be
+ %% gobbled, because the citation ends in a period, e.g., from a
+ %% trailing "cit." or "ibid." and there is no optional part.
+
+\newif\if@gobbleperiod
+\newif\if@withpages
+
+
+ %% Separate the first and the following citations of a reference, and
+ %% handle successive identical citations of the same reference. Each
+ %% macro b@LABEL is defined as \@bibcall{LABEL}{FULLCITE}{SHORTCITE}.
+ %% The actual definition of b@LABELis not changed after the first
+ %% citation, since it provokes messages of "Labels may have changed"
+ %% from LaTeX.
+
+\def\@lastcite{}
+\def\noibid{\gdef\@lastcite{}}
+
+\long\def\@bibcall#1#2#3{\global\@gobbleperiodfalse
+ \@ifundefined{B@#1}%
+ {{#2}\global\@namedef{B@#1}{}}%
+ {\@bibsecond{#1}{#3}}%
+ \gdef\@lastcite{#1}%
+}
+
+\long\def\@bibsecond#1#2{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@lastcite {\em ibid.}\else {#2} cit.\fi
+ \if@withpages \else \global\@gobbleperiodtrue \fi
+}
+
+ %% Called for each normal \cite call. This version does not allow
+ %% multiple citations in one call, as it makes little sense. The
+ %% labels are much too long.
+
+\def\cite{\protect\@pcite}
+\def\@pcite{\@ifnextchar [{\@withpagestrue\@citex}{\@withpagesfalse\@citex[]}}
+
+\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
+ \@ifundefined{b@#2}%
+ {{\reset@font\bf ?}\@warning
+ {Citation `#2' on page \thepage \space undefined}}%
+ {\@cite{\@nameuse{b@#2}}{#1}}%
+ \let\next\relax
+ \if@gobbleperiod \let\next\check@period \fi
+ \next
+}
+
+
+ %% Produces the actual inline citation, no bracketes around it.
+
+\def\@cite#1#2{{#1\if@withpages , #2\fi}}
+
+
+ %% Remove a following period.
+
+\def\check@period{\futurelet\next\check@peri@d}
+\def\check@peri@d{\ifx\next .\let\next\eat@period
+ \else \let\next\relax \fi \next}
+\def\eat@period.{}
+
+
+
+
+
+ %% Forced full citation
+
+\def\fullycite{\protect\@pfcite}
+\def\@pfcite{\@ifnextchar [{\@withpagestrue\@fcitex}{\@withpagesfalse\@fcitex[]}}
+
+\def\@fcitex[#1]#2{\expandafter\let\csname B@#2\endcsname\undefined
+ \@citex[#1]{#2}}
+
+ %% Forced short citation, with no "cit." suffix or "ibid."
+ %% substitutions.
+
+\def\shortcite{\protect\@pscite}
+\def\@pscite{\@ifnextchar [{\@withpagestrue\@scitex}{\@withpagesfalse\@scitex[]}}
+
+\def\@scitex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
+ \@ifundefined{b@#2}{{\reset@font\bf ?}\@warning
+ {Citation `#2' on page \thepage \space undefined}}%
+ {\long\def\@bibcall##1##2##3{##3}%
+ \@cite{\@nameuse{b@#2}}{#1}}}
+
+
+
+ %% Force full citations of the specified list of references.
+
+\def\fullcitenext#1{{\@tfor
+ \@tempa :=#1\do{\expandafter\global\expandafter
+ \let\csname B@\@tempa\endcsname\undefined}}}
+
+ %% Force short citations of the specified list of references.
+
+\def\shortcitenext#1{{\@for
+ \@tempa :=#1\do{\expandafter\global\expandafter
+ \let\csname B@\@tempa\endcsname\@empty}}}
+
+
+
+
+ %% This is to allow for an introduction to the bibliography
+
+\let\bibc@mment\@empty
+\long\def\bibliographycomment#1{%
+ \def\bibc@mment{\let\bibc@mment\@empty #1\par\bigskip}%
+}
+
+
+
+ %% Copied from report.sty, changed to avoid unwanted left margin and
+ %% add bibliography comment.
+
+\def\thebibliography#1{\chapter*{\bibname\@mkboth
+ {\uppercase{\bibname}}{\uppercase{\bibname}}}\bibc@mment
+ \small
+ \def\newblock{\hskip .11em plus.33em minus.07em}%
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=\@m
+ \parindent\z@\relax
+ \parskip\medskipamount
+}
+
+\def\endthebibliography{\par\medskip}