diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /biblio/bibtex/contrib/inlinebib/inlinebib.sty |
Initial commit
Diffstat (limited to 'biblio/bibtex/contrib/inlinebib/inlinebib.sty')
-rw-r--r-- | biblio/bibtex/contrib/inlinebib/inlinebib.sty | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/biblio/bibtex/contrib/inlinebib/inlinebib.sty b/biblio/bibtex/contrib/inlinebib/inlinebib.sty new file mode 100644 index 0000000000..b631dd2260 --- /dev/null +++ b/biblio/bibtex/contrib/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} |