summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/margbib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/margbib
Initial commit
Diffstat (limited to 'macros/latex/contrib/margbib')
-rw-r--r--macros/latex/contrib/margbib/margbib.dtx191
-rw-r--r--macros/latex/contrib/margbib/margbib.ins67
-rw-r--r--macros/latex/contrib/margbib/margbib.pdfbin0 -> 200443 bytes
3 files changed, 258 insertions, 0 deletions
diff --git a/macros/latex/contrib/margbib/margbib.dtx b/macros/latex/contrib/margbib/margbib.dtx
new file mode 100644
index 0000000000..a37d84ec6f
--- /dev/null
+++ b/macros/latex/contrib/margbib/margbib.dtx
@@ -0,0 +1,191 @@
+% \iffalse meta-comment
+%
+% This file is part of the MARGBIB package, a package for displaying
+% bibliography tags in the margins. Copyright (C) 1997 Karsten Tinnefeld.
+%
+% This file is NOT part of the LaTeX2e system, but intended for use with it.
+%
+% This document is free software; you can redistribute it and/or modify it
+% under the terms of the GNU Library General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% This document is distributed in the hope that it will be useful, but WITHOUT
+% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+% more details.
+%
+% You should have received a copy of the GNU General Public License somehow;
+% if not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+% Cambridge, MA 02139, USA.
+%
+% INSTALLATION:
+%%%%%%%%%%%%%%%
+%
+% Install this style by running the file `margbib.ins' thro' TeX. This will
+% create the file `margbib.sty' and, if your docstrip.cfg is set up the right
+% way (has a \BaseDirectory{<path to my texmf directory>}, see the
+% docstrip-documentation), automatically moved to \$TEXMF/tex/latex/misc.
+%
+% The documentation is created by running `latex margbib.dtx`.
+%
+\NeedsTeXFormat{LaTeX2e}
+%<*dtx>
+\ProvidesFile{margbib.dtx}
+%</dtx>
+%<!driver>\ProvidesPackage{margbib}
+%<driver>\ProvidesFile{margbib.drv}
+% \fi
+% \ProvidesFile{margbib.dtx}
+ [1997/11/11 1.0c Bib-Items into the margins]
+%
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{margbib}
+\GetFileInfo{margbib.dtx}
+\def\docdate{1997/11/10}
+\RecordChanges
+\begin{document}
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{55}
+%
+% {\makeatletter\@ifundefined{AmS}
+% {\gdef\AmS{\leavevmode\hbox{$\mathcal A\kern-.2em\lower.376ex%
+% \hbox{$\mathcal M$}\kern-.2em\mathcal S$}}}{}}
+% \def\KOMAScript{\textsf{KOMA-Script}}
+% \def\refname{Example}
+%
+% \date{printed \today}
+% \title{The \texttt{margbib} document style\thanks{%
+% This file has version number \fileversion,
+% last revised \filedate, documentation dated \docdate.}}
+% \author{Karsten Tinnefeld\\\texttt{tinnefeld@irb.cs.uni-dortmund.de}}
+% \maketitle
+%
+% \begin{abstract}
+% This document describes the \texttt{margbib} document style. This style
+% redefines the \texttt{thebibliography} environment in order to move the
+% bibliography labels into the borders.
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% Why the |margbib| style? Many typesetters say that text is only readable
+% when it is not wider than, say, about 70 letters. This limit is very tight,
+% provided typesetting on one column ISO A4 paper, the usual European
+% paper size. Thus there is a tradeoff between readability in normal text
+% paragraphs and the amount of trouble in line breaking especially of
+% bibliographies, where masses of names and declarative title words
+% discourage easy hyphenation. Large tags in all ``speaking'' citation styles
+% such as |alpha| or |abbrv| make it even harder as the books' label sizes
+% increase.
+%
+% Therefore, this style takes the label off the normal paragraph and places
+% it right beside the text in the margin. Since the normal |\marginpar|
+% command has problems with its output routine in case |twoside| is
+% used---first the marginalium is set, then a compound paragraph is possibly
+% put onto the next page---we employ the |marn.sty| created in 1993 by Donald
+% Arseneau. It ensures right placing of the marginal note in this case. This
+% is done utilising the |.aux|-file, but who does not re\TeX\ each
+% document twice or thrice?
+%
+% This document style has been tested with the normal \LaTeXe\ base, the
+% \AmS\ and the \KOMAScript\ documents. It works---most important---with the
+% twoside option and the use of normal |\marginpar|s, for problems therewith
+% cf. the documentation to |marn.sty|. I have found one minor caveat: it does
+% not print out this famous ``labels have changed, please re\TeX!'' message
+% in case of modifications, so my AUC \TeX\footnote{AUC \TeX\ is Per
+% Abrahamsen's famous \TeX\ mode for Emacs.}\ makes wrong proposals about
+% what to do next. Minor, as I said.
+%
+% \section{Remark}
+%
+% The \AmS\ bibliography styles make the paragraph text some degrees smaller
+% than regular. This package keeps this font size in paragraph text, but sets
+% the margin labels in normal font. This does not look that great, but
+% whoever wants to combine both is encouraged to fix it.
+%
+% \begin{thebibliography}{Knu86}
+% \bibitem[Knu86]{knuth86:_texbook}
+% Donald~E. Knuth.
+% \newblock {\em The \TeX{}book}, volume~A of {\em Computers \&
+% Typesetting}.
+% \newblock American Mathematical Society, Reading MA, 1986.
+%
+% \bibitem[Mit97]{mittelbach97}
+% Frank Mittelbach.
+% \newblock {\em The |doc| and |shortvrb| packages}.
+% \newblock Gutenbach Universit{\"a}t Mainz, February 5th, 1997.
+% \end{thebibliography}
+%
+% \StopEventually{}
+%
+% \section{The Code}
+%
+% \changes{v1.0b}{1997/11/10}{Only require |marn.sty| when available.}
+%
+% Let us look whether the document style |marn| by Donald Arseneau
+% exists. This will avoid difficulties in |twoside|-mode. If so, we
+% load the package, otherwise output a warning and make do with
+% |\marginpar|.
+%
+% \begin{macrocode}
+\IfFileExists{marn.sty}{%
+ \RequirePackage{marn}
+ }{%
+ \PackageWarning{margbib}{%
+ marn package unavailable -- using \string\marginpar}%
+ \let\marn\marginpar}
+% \end{macrocode}
+%
+% \begin{macro}{\bibitem}
+% This redefines |\bibitem| and the two subcommands (with and without the
+% optional tag) to move our label information into the borders. We could
+% leave out the first line of the following code for all the examined
+% styles, after all, but since the |@|-commands are not said to persist,
+% this redundancy may be future's benefit.
+%
+% \begin{macrocode}
+\def\bibitem{\@ifnextchar[\@lbibitem\@bibitem}
+\def\@lbibitem[#1]#2{\item[]\if@filesw
+ {\makebox{}\marn{\@biblabel{#1}}%
+ \let\protect\noexpand
+ \immediate
+ \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+\def\@bibitem#1{\item[]\if@filesw\immediate\write\@auxout
+ {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{thebibliography}
+% In order to broaden our text to the whole |\item|less width, we have to
+% redefine the |thebibliography| environment. For the sake of its
+% document-dependent facilities, we first steal the code and then
+% manipulate it: The shape of the paragraph is simply reset.
+%
+% Why override the given environment instead of defining a new? For those
+% who write bibliographies one after the other by themselves, this is no
+% problem. But \BibTeX\ generates |thebibliography| environments, and
+% nothing else. Thus it is only a question of working with |margbib.sty| or
+% without. Whoever wanted to have \emph{different} forms of bibliographies
+% in one document, e. g. using |chapterbib|, might possibly have cramped
+% her style.
+%
+% \begin{macrocode}
+\let\m@rgbib=\thebibliography
+\let\endm@rgbib=\endthebibliography
+\renewenvironment{thebibliography}[1]{%
+ \begin{m@rgbib}{#1}
+ \parshape=0\relax
+ }{%
+ \end{m@rgbib}
+ }
+% \end{macrocode}
+% \end{environment}
+%
+%\Finale
diff --git a/macros/latex/contrib/margbib/margbib.ins b/macros/latex/contrib/margbib/margbib.ins
new file mode 100644
index 0000000000..d9f22fbb5a
--- /dev/null
+++ b/macros/latex/contrib/margbib/margbib.ins
@@ -0,0 +1,67 @@
+%% margbib.ins
+%%
+%% Docstrip installation instruction file
+%% for docstyle `margbib', Version 1.0c of 1997/11/11
+%%
+%% Copyright (C) 1997 by Karsten Tinnefeld. Legal stuff see below.
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/09/15]
+\def\batchfile{margbib.ins}
+\input docstrip
+\preamble
+
+This file is part of the MARGBIB package, a package for displaying
+bibliography tags in the margins. Copyright (C) 1997 Karsten Tinnefeld.
+
+This file is NOT part of the LaTeX2e system, but intended for use with
+it.
+
+This file is free software; you can redistribute it and/or modify it
+under the terms of the GNU Library General Public License as published
+by the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This document is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+somehow; if not, write to the Free Software Foundation, Inc., 675 Mass
+Ave, Cambridge, MA 02139, USA.
+
+Error Reports in case of UNCHANGED versions to
+
+ Karsten Tinnefeld
+ Leostrasse 11
+ D-44225 Dortmund
+ Germany
+ Email: tinnefeld@irb.cs.uni-dortmund.de
+
+\endpreamble
+
+\keepsilent
+\usedir{tex/latex/base}
+
+\generate{\file{margbib.sty}{\from{margbib.dtx}{}}}
+
+\Msg{************************************************************}
+\Msg{*}
+\makeatletter\@ifundefined{basedir}{
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+}{%
+\Msg{* The following files have been automatically created in a}
+\Msg{* directory searched by TeX:}
+}\makeatother
+\Msg{*}
+\Msg{* \space\space margbib.sty}
+\Msg{*}
+\Msg{* To produce the implementation documentation you}
+\Msg{* can run the file `margbib.dtx' through LaTeX:}
+\Msg{* \space\space latex margbib.dtx}
+\Msg{*}
+\Msg{************************************************************}
+\endbatchfile
+%%
+%% End of file `margbib.ins'.
diff --git a/macros/latex/contrib/margbib/margbib.pdf b/macros/latex/contrib/margbib/margbib.pdf
new file mode 100644
index 0000000000..cf3d1cdea5
--- /dev/null
+++ b/macros/latex/contrib/margbib/margbib.pdf
Binary files differ