From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/margbib/margbib.dtx | 191 +++++++++++++++++++++++++++++++ macros/latex/contrib/margbib/margbib.ins | 67 +++++++++++ macros/latex/contrib/margbib/margbib.pdf | Bin 0 -> 200443 bytes 3 files changed, 258 insertions(+) create mode 100644 macros/latex/contrib/margbib/margbib.dtx create mode 100644 macros/latex/contrib/margbib/margbib.ins create mode 100644 macros/latex/contrib/margbib/margbib.pdf (limited to 'macros/latex/contrib/margbib') 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{}, 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} +% +%\ProvidesPackage{margbib} +%\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} +% +% \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 Binary files /dev/null and b/macros/latex/contrib/margbib/margbib.pdf differ -- cgit v1.2.3