summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/mlbib
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/mlbib
Initial commit
Diffstat (limited to 'macros/latex/contrib/mlbib')
l---------macros/latex/contrib/mlbib/README1
-rw-r--r--macros/latex/contrib/mlbib/install.0352
-rw-r--r--macros/latex/contrib/mlbib/journal.bib313
-rw-r--r--macros/latex/contrib/mlbib/journal.bst1174
-rw-r--r--macros/latex/contrib/mlbib/local03.tex79
-rw-r--r--macros/latex/contrib/mlbib/mlbib.drv54
-rw-r--r--macros/latex/contrib/mlbib/mlbib.dtx820
-rw-r--r--macros/latex/contrib/mlbib/mlbib.pdfbin0 -> 105392 bytes
-rw-r--r--macros/latex/contrib/mlbib/mlbib.sty376
-rw-r--r--macros/latex/contrib/mlbib/paper.bst1182
-rw-r--r--macros/latex/contrib/mlbib/readme.0334
-rw-r--r--macros/latex/contrib/mlbib/test03.bbl41
-rw-r--r--macros/latex/contrib/mlbib/test03.bib356
-rw-r--r--macros/latex/contrib/mlbib/test03.tex20
-rw-r--r--macros/latex/contrib/mlbib/thesis.bib313
-rw-r--r--macros/latex/contrib/mlbib/thesis.bst1241
16 files changed, 6056 insertions, 0 deletions
diff --git a/macros/latex/contrib/mlbib/README b/macros/latex/contrib/mlbib/README
new file mode 120000
index 0000000000..3575702aa2
--- /dev/null
+++ b/macros/latex/contrib/mlbib/README
@@ -0,0 +1 @@
+readme.03 \ No newline at end of file
diff --git a/macros/latex/contrib/mlbib/install.03 b/macros/latex/contrib/mlbib/install.03
new file mode 100644
index 0000000000..0e23dd84e7
--- /dev/null
+++ b/macros/latex/contrib/mlbib/install.03
@@ -0,0 +1,52 @@
+\def\batchfile{install.03}
+\def\filename{mlbib}
+
+{\immediate\openin15 docstrip.tex
+\ifeof 15
+\typeout{***********************************************}
+\typeout{* Sorry can not find the file `docstrip.tex'. *}
+\typeout{***********************************************}
+\expandafter\aftergroup\csname @@end\expandafter\endcsname
+\expandafter\aftergroup\csname end\expandafter\endcsname \fi}
+
+\input docstrip.tex
+
+\preamble
+
+Copyright (C) 1992, 1996 by Wenzel Matiaske, mati1831@perform.ww.tu-berlin.de
+
+You are not allowed to distribute this file without the
+original source \filename.dtx. For distribution of the
+sources see the copyright notice in the file \filename.dtx.
+
+\endpreamble
+
+\keepsilent
+
+\Msg{*** Generating the document packages files ***}
+
+\generateFile{mlbib.sty}{t}{\from{mlbib.dtx}{package}}
+
+\Msg{*** Generating the documentation driver ***}
+
+\generateFile{mlbib.drv}{t}{\from{mlbib.dtx}{driver}}
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space mlbib.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* `.drv' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
+
+
+
diff --git a/macros/latex/contrib/mlbib/journal.bib b/macros/latex/contrib/mlbib/journal.bib
new file mode 100644
index 0000000000..f38d9a352f
--- /dev/null
+++ b/macros/latex/contrib/mlbib/journal.bib
@@ -0,0 +1,313 @@
+% journal.bib 15-Dec-90
+% last modification 30-Oct-96
+%
+% Copyright (C) 1990--1996 Wenzel Matiaske
+%
+% A short description of entry types for BibTeX database is included
+% at the beginning of the database
+%
+% For general use of BibTeX see O. Patashnik ``btxbst.doc'' or
+% L. Lamport ``LaTeX'' pp. 140-147
+%
+% Please send bug fixes and enhancements to the address below:
+% ___
+% wenzel matiaske | / /_/-Berlin
+% |
+% | mail: Technical University Berlin
+% | Dept. of Economics & Management, WW6
+% | Uhlandstr. 4-5, D-10623 Berlin
+% | phone: +49 30 314-22574
+% | fax: +49 30 314-21787
+% | email: W.Matiaske!ww!TU-Berlin!de
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Types of entries currently allowed in a BibTeX file:
+%%
+%% ARTICLE -- An article from a journal or magazine.
+%% - required fields: author, title, journal, year.
+%% - optional fields: volume, number, pages, month, note.
+%%
+%% BOOK -- A book with an explicit publisher.
+%% - required: author or edititor, title, publisher, year.
+%% - optional: volume, series, address, edition, month, note.
+%%
+%% BOOKLET -- A work that is printed and bound,
+%% but without a named publisher or sponsoring institution.
+%% - required: title.
+%% - optional: author, howpublished, address, month, year, note.
+%%
+%% CONFERENCE -- The same as INPROCEEDINGS,
+%% included for Scribe compatibility.
+%%
+%% INBOOK -- A part of a book,
+%% which may be a chapter (or section or whatever) and/or a range of pages.
+%% - required: author or editor, title, chapter and/or pages,
+%% publisher, year.
+%% - optional: volume, series, address, edition, month, note.
+%%
+%% INCOLLECTION -- A part of a book having its own title.
+%% - required: author, title, booktitle, publisher, year.
+%% - optional: editor, chapter, pages, address, month, note.
+%%
+%% INPROCEEDINGS -- An article in a conference proceedings.
+%% - required: author, title, booktitle, year.
+%% - optional: editor, pages, organization, publisher, address,
+%% month, note.
+%%
+%% MANUAL -- Technical documentation.
+%% - required: title.
+%% - optional: author, organization, address, edition, month,
+%% year, note.
+%%
+%% MASTERSTHESIS -- A Master's thesis.
+%% - required: author, title, school, year.
+%% - optional: address, month, note.
+%%
+%% MISC -- Use this type when nothing else fits.
+%% - required: ---
+%% - optional: author, title, howpublished, month, year, note.
+%%
+%% PHDTHESIS -- A PhD thesis.
+%% - required: author, title, school, year.
+%% - optional: address, month, note.
+%%
+%% PROCEEDINGS -- The proceedings of a conference.
+%% - required: title, year.
+%% - optional: editor, publisher, organization, address, month, note.
+%%
+%% TECHREPORT -- A report published by a school or other institution,
+%% usually numbered within a series.
+%% - required: author, title, institution, year.
+%% - optional: type, number, address, month, note.
+%%
+%% UNPUBLISHED -- A document having an author and title, but not formally
+%% published.
+%% - required: author, title, note.
+%% - optional: month, year.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+@string{aAW = "angew. Arbeitswissenschaft"}
+@string{ADMS = "Admin. and Society"}
+@string{AER = "Am. Econ. Rev."}
+@string{AfK = "Archiv f{{\"u}}r Kommunalforschung???"}
+@string{AJPS = "Am. J. Pol. Sci."}
+@string{AJS = "Am. J. Sociol."}
+@string{AME = "Acad. Management Executive"}
+@string{AMJ = "Acad. Management J."}
+@string{AMR = "Acad. Management Rev."}
+@string{AP = "Am. Psychologist"}
+@string{APSR = "Am. Pol. Sci. Rev."}
+@string{ARP = "Ann. Rev. Psychol."}
+@string{ARS = "Ann. Rev. Sociol."}
+@string{AS = "The Am. Sociologist"}
+@string{ASQ = "Admin. Sci. Q."}
+@string{ASR = "Am. Sociol. Rev."}
+@string{AdMJ = "Advanced Management J."}
+@string{AfSW = "Archiv f{{\"u}}r Sozialwissenschaft und Sozialpolitik"}
+@string{AuL = "Arbeit und Leistung"}
+@string{BAnz = "Bundesanzeiger"}
+@string{BB = "Betriebs Berater"}
+@string{BFuP = "Betriebswirtschaftliche Forschung und Praxis"}
+@string{BH = "Business Horizons"}
+@string{BIOM = "Biometrika"}
+@string{BJM = "British J. Management"}
+@string{BJS = "British J. Sociol."}
+@string{BS = "Behav. Sci."}
+@string{BT-Dr = "Bundestagsdrucksache"}
+@string{BW = "Der Betriebswirt"}
+@string{CMR = "California Management Rev."}
+@string{DB = "Der Betrieb"}
+@string{DBW = "Die Betriebswirtschaft"}
+@string{DIAG = "Diagnostika"}
+@string{DU = "Die Unternehmung"}
+@string{DV = "Die Verwaltung"}
+@string{DoV = "Die {{\"o}}ffentliche Verwaltung"}
+@string{ECO = "Economica"}
+@string{EER = "European Econ. Rev."}
+@string{EaPM = "Educational and Psychological Measurement"}
+@string{FB = "Fortschrittliche Betriebsf{{\"u}}hrung"}
+@string{FB/IE = "Fortschrittliche Betriebsf{{\"u}}hrung/Industrial Engineering"}
+@string{FUB = "Freie Universit{{\"a}}t Berlin"}
+@string{GD = "Gruppendynamik"}
+@string{GS = "General Systems"}
+@string{HB = "Handelsblatt"}
+@string{HBR = "Harvard Business Rev."}
+@string{HBS = "Harvard Business School"}
+@string{HCR = "Human Communication Res."}
+@string{HER = "Harvard Education Rev."}
+@string{HF = "Human Factors"}
+@string{HIOP = "Handbook Industrial and Organizational Psychol."}
+@string{HIOP = "Handbook Industrial and Organizational Psychol."}
+@string{HM = "Harvard Manager"}
+@string{HO = "Human Organization"}
+@string{HOB = "The Handbook Organizational Behav."}
+@string{HR = "Human Relations"}
+@string{HRM = "Human Resource Management"}
+@string{HSP = "The Handbook Soc. Psychol."}
+@string{HSR = "Hist. Soc. Res."}
+@string{HUB = "Humboldt Universit{{\"a}}t Berlin"}
+@string{HWA = "Handw{{\"o}}rterbuch der Absatzwirtschaft"}
+@string{HWB = "Handw{{\"o}}rterbuch der Betriebswirtschaft"}
+@string{HWF = "Handw{{\"o}}rterbuch der F{{\"u}}hrung"}
+@string{HWO = "Handw{{\"o}}rterbuch der Organisation"}
+@string{HWP = "Handw{{\"o}}rterbuch des Personalwesens"}
+@string{HWPlan = "Handw{{\"o}}rterbuch der Planung"}
+@string{HWProd = "Handw{{\"o}}rterbuch der Produktionswirtschaft"}
+@string{HWR = "Handw{{\"o}}rterbuch des Rechnungswesens"}
+@string{HWS = "Handw{{\"o}}rterbuch der Sozialwissenschaften"}
+@string{HWStR = "Handw{{\"o}}rterbuch des Steuerrechts"}
+@string{HdA = "Humanisierung der Arbeit"}
+@string{HdSW = "Handw{{\"o}}rterbuch der Sozialwissenschaften"}
+@string{HdW = "Handbuch der Wirtschaftswissenschaften"}
+@string{HdWW = "Handw{{\"o}}rterbuch der Wirtschaftswissenschaften"}
+@string{IMR = "Industrial Management Rev."}
+@string{IO = "Industrielle Organisation/Management-Zeitschrift"}
+@string{IR = "Industrial Relations"}
+@string{IJSA = "Internat. J. Selection and Assessment"}
+@string{ISMO = "Internat. Studies Management and Organization"}
+@string{ISR = "Institute for Soc. Res."}
+@string{ISSJ = "Internat. Soc. Sci. J."}
+@string{JASA = "J. Am. Stat. Assoc."}
+@string{JABS = "J. Appl. Behav. Sci."}
+@string{JAP = "J. Appl. Psychol."}
+@string{JAPM = "J. Appl. Psychol. Monograph"}
+@string{JAS = "J. Appl. Sociol."}
+@string{JASP = "J. Abnormal and Soc. Psychol."}
+@string{JBR = "J. Business Res."}
+@string{JBV = "J. Business Venturing"}
+@string{JBus = "J. Business"}
+@string{JCB = "J. Contemporary Business"}
+@string{JCR = "J. Consumer Res."}
+@string{JEBO = "J. Econ. Behav. and Organization"}
+@string{JEL = "J. Econ. Literature"}
+@string{JESP = "J. Experimental Soc. Psychol."}
+@string{JET = "J. European Training"}
+@string{JGM = "J. General Management"}
+@string{JHR = "Hist. Soc. Res."}
+@string{JIE = "J. Industrial Econ."}
+@string{JITE = "J. Institutional and Theoretical Econ."}
+@string{JLE = "J. Law and Econ."}
+@string{JLEO = "J. Law, Econ. and Organization"}
+@string{JM = "J. Management"}
+@string{JMS = "J. Management Studies"}
+@string{JoMP = "J. Math. Psychol."}
+@string{JoMS = "J. Math. Sociol."}
+@string{JMark = "J. Marketing"}
+@string{JOB = "J. Occupational Behav."}
+@string{JOOP = "J. Occupational and Organizational Psychol."}
+@string{JP = "J. Psychol."}
+@string{JPE = "J. Public Economy"}
+@string{JPSP = "J. Personality and Soc. Psychol."}
+@string{JPers = "J. Personality"}
+@string{JSI = "J. Soc. Issues"}
+@string{JSP = "J. Soc. Psychol."}
+@string{JVB = "J. Vocational Behav."}
+@string{JbSowi = "Jahrbuch f{{\"u}}r Sozialwissenschaften"}
+@string{JfB = "J. f{{\"u}}r Betriebswirtschaft"}
+@string{KZfSS = "K{{\"o}}lner Zeitschrift f{{\"u}}r Soziologie und Sozialpsychologie"}
+@string{Komm = "Kommunikation"}
+@string{LRP = "Long Range Planning"}
+@string{MBR = "Multivariate Behavi. Res."}
+@string{MDE = "Managerial and Decision Econ."}
+@string{MIR = "Management Internat. Rev."}
+@string{MIT = "Massachusetts Institute Technology"}
+@string{MR = "Managerial Rev."}
+@string{MS = "Management Sci."}
+@string{MW = "Management-Wissen"}
+@string{MZ = "Management Z."}
+@string{MZFP = "Marketing ZFP"}
+@string{Merk = "Merkur"}
+@string{MittAB = "Mitteilungen zur Arbeitsmarkt- und Berufsforschung"}
+@string{NB = "Neue Betriebswirtschaft"}
+@string{NFA = "Neue Formen der Arbeitsorganisation"}
+@string{OAS = "Organization and Admin. Sci."}
+@string{OBHP = "Organizational Behav. and Human Performance"}
+@string{ODY = "Organizational Dynamics"}
+@string{OE = "Organisationsentwicklung"}
+@string{OP = "Occupational Psychol."}
+@string{OS = "Organization Studies"}
+@string{OeB = "Der {{\"O}}sterreichische Betriebswirt"}
+@string{PA = "Personnel Admin."}
+@string{PAR = "Public Admin. Rev."}
+@string{PBULL = "Psychological Bulletin"}
+@string{PBei = "Psychologische Beitr{{\"a}}ge"}
+@string{PJ = "Personnel J."}
+@string{PM = "Psychological Monographs"}
+@string{POQ = "Public Opinion Q."}
+@string{PP = "Personnel Psychol."}
+@string{PPM = "Public Personel Management"}
+@string{PR = "Psychological Rev."}
+@string{PRJ = "Public Relations J."}
+@string{PRP = "Psychological Reports"}
+@string{PRQ = "Public Relations Q."}
+@string{PSR = "Psychologische Rundschau"}
+@string{PSYCH = "Psychometrika"}
+@string{Pers = "Personal --- Mensch und Arbeit"}
+@string{PuA = "Planung und Analyse"}
+@string{PuP = "Psychologie und Praxis"}
+@string{QJE = "Q. J. Econ."}
+@string{ROB = "Res. Organizational Behav."}
+@string{Stat = "The Statistician"}
+@string{SF = "Soc. Forces"}
+@string{SMJ = "Strategic Management J."}
+@string{SMR = "Sloan Management Rev."}
+@string{SOFI = "Soziologisches Forschungsinstitut G{{\"o}}ttingen"}
+@string{SP = "Soc. Problems"}
+@string{SR = "Soziologische Revue"}
+@string{STATH2 = "Statist. Hefte (N.F.)"}
+@string{STATI1 = "Statistics"}
+%@string{STOCH1 = "Stochastica"}
+%@string{STOCH2 = "Stochastics"}
+@string{SUPQA = "Sage University Paper Series on Quantitative Applications in the Soc. Sci."}
+@string{SW = "Soziale Welt"}
+@string{Soc = "Sociol."}
+@string{SocMR = "Sociol. Meth. Res."},
+@string{SocQ = "Sociological Q."}
+@string{SuB = "Sozialwissenschaften und Berufspraxis"}
+@string{TDJ = "Training and Development J."}
+@string{TUB = "Technische Universit{{\"a}}t Berlin"}
+@string{UCLA = "University California, Los Angeles"}
+@string{ULA = "ULA-Nachrichten"}
+@string{WISU = "Wirtschaftsstudium"}
+@string{WZB = "Wissenschaftszentrum Berlin"}
+@string{WiSt = "Wirtschaftswissenschaftliches Studium"}
+@string{Wpfg = "Die Wirtschaftspr{{\"u}}fung"}
+@string{ZAI = "ZA-Information"}
+@string{ZBR = "Z. f{{\"u}}r Beamtenrecht"}
+@string{ZFO = "Z. F{{\"u}}hrung + Organisation"}
+@string{ZfA = "Z. f{{\"u}}r Arbeitswissenschaft"}
+@string{ZfAO = "Z. f{{\"u}}r Arbeits- und Organisationspsychologie"}
+@string{ZfB = "Z. f{{\"u}}r Betriebswirtschaft"}
+@string{ZfDDP = "Z. f{{\"u}}r Differenzielle und Diagnostische Psychologie"}
+@string{ZfN = "Z. f{{\"u}}r National{{\"o}}konomie"}
+@string{ZfO = "Z. f{{\"u}}r Organisation"}
+@string{ZfP = "Z. f{{\"u}}r Psychologie"}
+@string{ZfPf = "Z. f{{\"u}}r Personalforschung"}
+@string{ZfS = "Z. f{{\"u}}r Soziologie"}
+@string{ZfSP = "Z. f{{\"u}}r Sozialpsychologie"}
+@string{ZfbF = "Z. f{{\"u}}r betriebswirtschaftliche Forschung"}
+@string{ZfgK = "Z. f{{\"u}}r das gesamte Kreditwesen"}
+@string{ZfgSt = "Z. f{{\"u}}r die gesamte Staatswissenschaft"}
+@string{ZfhF = "Z. f{{\"u}}r handelswissenschaftliche Forschung"}
+@string{ZUMA = "ZUMA Nachrichten"}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+@string{jan = "Januar"}
+@string{feb = "Februar"}
+@string{mar = "M{{\"a}}rz"}
+@string{apr = "April"}
+@string{mai = "Mai"}
+@string{jun = "Juni"}
+@string{jul = "Juli"}
+@string{aug = "August"}
+@string{sep = "September"}
+@string{okt = "Oktober"}
+@string{nov = "November"}
+@string{dez = "Dezember"}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+@preamble{ "\providecommand{\noopsort}[1]{} "
+ # "\providecommand{\printfirst}[2]{#1} "
+ # "\providecommand{\singleletter}[1]{#1} "
+ # "\providecommand{\switchargs}[2]{#2#1} " }
+
diff --git a/macros/latex/contrib/mlbib/journal.bst b/macros/latex/contrib/mlbib/journal.bst
new file mode 100644
index 0000000000..ce6f29f98b
--- /dev/null
+++ b/macros/latex/contrib/mlbib/journal.bst
@@ -0,0 +1,1174 @@
+FUNCTION {bye}
+{ "BibTeX-style: `journal 0.1d' <30-10-96> (wm)" top$
+ "German Documentation: `mlbib.dtx' <30-10-96> (wm)" top$
+}
+
+% BibTeX bibliography style `journal'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1991, 1993 all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst,
+ % journal.bst, thesis.bst or paper.bst.
+ % This restriction helps ensure that all standard styles are identical.
+
+% ACKNOWLEDGEMENT
+% This document is a modified version of `apalike.bst' to which it
+% owes much of its functionality.
+
+% USAGE
+% The file `mlbib.dtx' has the german documentation for this style.
+
+% AUTHOR
+% ___
+% wenzel matiaske | / /_/-Berlin
+% | mail: Technical University Berlin
+% | Dept. of Economics, WW6
+% | Uhlandstr. 4-5, D-10623 Berlin
+% | phone: +49 30 314-22574
+% | email: mati1831@perform.ww.tu-berlin.de
+
+% HISTORY
+% <0.1a> <10.10.91> german version, german labels, uppercase titles
+% <0.1b> <05.05.92> multilingual Version, `bib-labels', `if-titles'
+% <0.1c> <31.01.93> `bbl-labels', compatible to `thesis.bst'
+% <0.1d> <30.10.96> updates for mlbib package
+
+% NOTE
+% There are undoubtably bugs in this program. Should you make
+% improvements, bug fixes, etc., however, I ask you to send improvements
+% back to me for incorporation into the macro for the rest of us.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ language
+% month
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label extra.label sort.label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output.nonnull.colon}
+{ 's :=
+ output.state mid.sentence =
+ { ": " * write$ }
+ { output.state after.block =
+ { ": " * write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.colon}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull.colon
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check.colon}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull.colon
+ if$
+}
+
+FUNCTION {item.check}
+{ 't :=
+ empty$
+ { "empty " t * " in " * cite$ * warning$ }
+ { skip$ }
+ if$
+}
+
+FUNCTION {output.year.check}
+{ year empty$
+ { "empty year in " cite$ * warning$ }
+ { write$
+ " \bbllb" year * extra.label * "\bblrb: \newblock " *
+ before.all 'output.state :=
+ }
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem[" write$
+ label write$
+ "}]{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ language empty$
+ 'skip$
+ { "{\bbl" language * write$ newline$ }
+ if$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+ language empty$
+ 'skip$
+ { "}" write$ newline$ }
+ if$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {shows}
+{ duplicate$ ":::: `" swap$ * "'" * top$
+}
+
+FUNCTION {showstack}
+{"STACK====================================================================="
+top$
+stack$
+"ENDSTACK=================================================================="
+top$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {bbltf}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bbltf " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {bblvf}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bblvf " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {bblquote}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\bbllqq" swap$ * "\bblrqq" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { "{\rm \bbland}" * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { "{\bblnf " * author format.names * "}" }
+ if$
+}
+
+FUNCTION {format.key}
+{ empty$
+ { key field.or.null }
+ { "" }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { "{\bblnf " * editor format.names * "}"
+ editor num.names$ #1 >
+ { ", \bbleds\ " * }
+ { ", \bbled\ " * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { language empty$ % default english
+ { "\bbllq " title "t" change.case$ * "\bblrq" * } % language empty, then lower case
+ { language "english" = % non empty, equal english
+ { "\bbllq " title "t" change.case$ * "\bblrq" * } % then lower case,
+ { "\bbllq " title * "\bblrq" * } % else title
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.btitle}
+{ title bbltf
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { "\bblvol" volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { ", " * series bbltf * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "\bblno" }
+ { "\bblNo" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { ", " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { edition "l" change.case$ " \bbledit" * }
+ { edition "t" change.case$ " \bbledit" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { "\bblpp~" pages n.dashify * }
+ { "\bblp~" pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume bblvf field.or.null
+ number empty$
+ 'skip$
+ { "\/(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$
+ }
+ if$
+ pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ", " * pages n.dashify * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "chapter" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "In: " booktitle bbltf * }
+ { "In: " format.editors * ", " * booktitle bbltf * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "\bbltrep " }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { ", \bblno" * number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ "In:"
+ " \citeasnoun{" * crossref * "}" *
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In: "
+ }
+ { "\bblVol" volume tie.or.space.connect
+ ", in: " *
+ }
+ if$
+ "\citeasnoun{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ "In:"
+ " \citeasnoun{" * crossref * "}" *
+}
+
+FUNCTION {format.addr.pub}
+{ publisher empty$
+ { address empty$
+ { "" }
+ { address }
+ if$
+ }
+ { address empty$
+ 'publisher
+ { address ": " * publisher * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal empty$
+ { "empty journal in " cite$ * warning$ }
+ { " In: " journal bbltf * output }
+ if$
+ format.vol.num.pages output
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ output.year.check
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ format.edition output
+ format.addr.pub "address and publisher" output.check
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ howpublished output
+ address output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ output.year.check
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ format.edition output
+ format.addr.pub "address and publisher" output.check
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ format.edition output
+ format.addr.pub "address and publisher" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ new.sentence
+ organization output
+ address output
+ publisher output.colon
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ output.year.check
+ new.block
+ format.btitle "title" output.check
+ organization address new.block.checkb
+ format.edition output
+ address output
+ organization output.colon
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "\bblmth" format.thesis.type output.nonnull
+ address output
+ school "school" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ output.year.check
+ new.block
+ format.title output
+ new.block
+ howpublished output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "\bblphd" format.thesis.type output.nonnull
+ address output
+ school "school" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ format.editors output
+ editor format.key output
+ output.year.check
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ new.sentence
+ organization output
+ address output
+ publisher output.colon
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ address output
+ institution "institution" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {format.lab.names}
+{ 's :=
+ s #1 "{vv~}{ll}" format.name$
+ s num.names$ duplicate$
+ #2 >
+ { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { "{\bbland}" * s #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.label
+ 'author.key.label
+ if$
+ }
+ if$
+ "\protect\citeauthoryear{{\citenf " swap$ * "\/}}{" *
+ year field.or.null purify$ #-1 #4 substring$
+ *
+ 'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.sort}
+{ editor empty$
+ { key empty$
+ { "to sort, need editor or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ calc.label
+ label sortify
+ " "
+ *
+ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.sort
+ 'author.sort
+ if$
+ }
+ if$
+ #1 entry.max$ substring$
+ 'sort.label :=
+ sort.label
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { last.label next.extra }
+
+INTEGERS { last.extra.num }
+
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'last.extra.num :=
+}
+
+FUNCTION {forward.pass}
+{ last.label label =
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'extra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'extra.label :=
+ label 'last.label :=
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ label extra.label * 'label :=
+ extra.label 'next.extra :=
+}
+
+EXECUTE {initialize.extra.label.stuff}
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+FUNCTION {bib.sort.order}
+{ sort.label
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {bib.sort.order}
+
+SORT
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{} \bblsize" write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+
+EXECUTE {bye}
+
+
+
diff --git a/macros/latex/contrib/mlbib/local03.tex b/macros/latex/contrib/mlbib/local03.tex
new file mode 100644
index 0000000000..6879bd563a
--- /dev/null
+++ b/macros/latex/contrib/mlbib/local03.tex
@@ -0,0 +1,79 @@
+%\iffalse
+% local03.tex --- 01/09/93
+% 28/10/96
+%
+% Copyright (C) 1996 by Wenzel Matiaske, mati1831@perform.ww.tu-berlin.de
+%
+% As input to the local LaTeX-guide "`local.tex"'.
+%
+% For distribution of this document see the copyright notice in the
+% original sources mentioned below.
+%
+%\fi
+
+\makeatletter
+\newif\iflocalin
+\newif\ifappendixin
+\@ifundefined{localin}{\localintrue}{\localinfalse}
+\@ifundefined{appendixin}{\appendixinfalse}{\appendixintrue}
+\@ifundefined{docdir}{\def\docdir{\dots /emtex/doc/}}{}
+\@ifundefined{bibtex}{\def\bibtex{%
+{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{}
+\@ifundefined{file}{\def\file#1{{\sl `#1'\/}}}{}
+\makeatother
+
+\iflocalin
+ \subsubsection{The \bibtex\ Styles {\tt thesis}, {\tt journal}, and {\tt paper}}
+\fi
+\ifappendixin
+ \subsection{The \bibtex\ Styles {\tt thesis}, {\tt journal}, and {\tt paper}}
+\fi
+
+The local style collection contains three `apalike' \bibtex-styles. The
+first one is called \verb|thesis.bst| and produces a bibliography equal
+to the format of the American Sociological Review. \verb|journal.bst|
+equals the standard `apalike' format. The format \verb|paper.bst| is
+designed for bibliographies in the style of the
+``Handw\"{o}rterb\"{u}cher der Betriebs\-wirtschafts\-lehre'' (Gabler).
+The \bibtex-styles are multilingual and support a {\tt language} field
+in the bibliography database.
+
+These style files allow short citations via the commands
+\verb|\citeasnoun{|\emph{ref}\verb|}| or
+\verb|\cite*{|\emph{ref}\verb|}| (e.~g. Author (year)),
+\verb|\citeauthor|, and
+\verb|\citeyear|.
+
+The commands are defined in a corresponding \LaTeX{} package
+called \verb|mlbib|. The package works together with {\tt
+german.sty}, so the language can be changed with the
+\verb|\selectlanguage{\|\emph{language}\verb|}| command. Even if
+the {\tt language} field is used in the database, single lingual
+bibliographies can be produced with the package option
+\verb+singlelingual+.
+
+The package also supports changes of the citation and bibliography
+layout. The layout of the bibliography and the citations may be changed
+with the package options \verb+thesis+, \verb+journal+, and
+\verb+paper+ which provide some standard layout. These standard forms
+may be changed via the commands
+\verb+\bblfont{}+,
+\verb+\bblauthorfont{}+,
+\verb+\bbltitlefont{}+,
+\verb+\bblvolumefont{}+,
+\verb+\bblleft{}+, and
+\verb+\bblright{}+, which change the layout of the bibliography.
+The layout of citations may
+be modified with the commands
+ \verb+\citeauthorfont{}+,
+ \verb+\citebetween{}+,
+ \verb+\citeleft{}+,
+ \verb+\citeright{}+,
+ \verb+\citeasnounleft{}+ and
+ \verb+\citeasnounright{}+.
+
+
+\iflocalin
+For more details see the german documentation
+\file{\docdir thebib}.
+\fi
diff --git a/macros/latex/contrib/mlbib/mlbib.drv b/macros/latex/contrib/mlbib/mlbib.drv
new file mode 100644
index 0000000000..a86ae3fc71
--- /dev/null
+++ b/macros/latex/contrib/mlbib/mlbib.drv
@@ -0,0 +1,54 @@
+%%
+%% This is file `mlbib.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% mlbib.dtx (with options: `driver')
+%%
+%% Copyright (C) 1992, 1996 by Wenzel Matiaske, mati1831@perform.ww.tu-berlin.de
+%%
+%% You are not allowed to distribute this file without the
+%% original source mlbib.dtx. For distribution of the
+%% sources see the copyright notice in the file mlbib.dtx.
+%%
+\def\filename{mlbib}
+\def\fileversion{1.0}
+\def\filedate{1996/10/30}
+\def\docdate{1995/10/30}
+
+\typeout{******************************************}
+\typeout{* Documentation for LaTeX package `mlbib' *}
+\typeout{******************************************}
+
+\documentclass[11pt]{ltxdoc}
+\usepackage{german}
+\usepackage{mlbib}
+
+\makeatletter
+\newif\ifsolodoc
+ \@ifundefined{solo}{\solodoctrue}{\solodocfalse}
+\IndexPrologue{\section*{Index}%
+ \markboth{Index}{Index}%
+ Die kursiv gesetzten Seitenzahlen
+ verweisen auf Beschreibungen der Makros,
+ unterstrichene Programmzeilennummern
+ auf deren Definitionen.}
+\GlossaryPrologue{\section*{Neuerungen}%
+ \markboth{Neuerungen}{Neuerungen}}
+\def\saved@macroname{Neuerung}
+\renewenvironment{theglossary}{%
+ \glossary@prologue%
+ \GlossaryParms \let\item\@idxitem \ignorespaces}%
+ {}
+\makeatother
+\setcounter{StandardModuleDepth}{1}
+\CodelineNumbered
+\RecordChanges
+\setlength{\parindent}{0pt}
+\begin{document}
+\DocInput{mlbib.dtx} \newpage \PrintChanges % \newpage \PrintIndex
+\end{document}
+\endinput
+%%
+%% End of file `mlbib.drv'.
diff --git a/macros/latex/contrib/mlbib/mlbib.dtx b/macros/latex/contrib/mlbib/mlbib.dtx
new file mode 100644
index 0000000000..13d98d1d50
--- /dev/null
+++ b/macros/latex/contrib/mlbib/mlbib.dtx
@@ -0,0 +1,820 @@
+%\iffalse
+%<+package|driver>\def\filename{mlbib}
+%<+package|driver>\def\fileversion{1.0}
+%<+package|driver>\def\filedate{1996/10/30}
+%<+package|driver>\def\docdate{1995/10/30}
+%\fi
+%
+% \CheckSum{941}
+%
+% \iffalse This is a META-COMMENT
+%
+% Copyright (C) 1992, 1996 by Wenzel Matiaske, mati1831@perform.ww.tu-berlin.de
+%
+% This file is to be used with the LaTeX2e system.
+% ------------------------------------------------
+%
+% This macro is free software; you can redistribute it and/or modify it
+% under the terms of the GNU General Public License as published by the
+% Free Software Foundation; either version 1, or (at your option) any
+% later version.
+%
+% The macros and the documentation are distributed in the hope that they
+% 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
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% There are undoubtably bugs in the macros or the documentation. Should
+% you make improvements, bug fixes, etc., however, I ask you to send
+% improvements back to me for incorporation into the macro for the
+% rest of us.
+%
+% Updates are available via anonymous ftp to host `perform.ww.tu-berlin.de'.
+%
+% ___
+% wenzel matiaske | / /_/-Berlin
+% | mail: Technical University Berlin
+% | Dept. of Economics, WW6
+% | Uhlandstr. 4-5, D-10623 Berlin
+% | phone: +49 30 314-22574
+% | email: mati1831@perform.ww.tu-berlin.de
+%
+% \fi
+%
+
+% \ifsolodoc
+% \title{Multilinguale Zitierformate}
+% \author{Wenzel Matiaske\thanks{%
+% TU-Berlin, FB 14, WW 6, Uhlandstr. 4--5, 10623~Berlin,
+% Tel.~030-314\,225\,74, email: mati1831@perform.ww.tu-berlin.de.}}
+% \date{\docdate}
+% \maketitle
+% \selectlanguage{\english}
+% \def\localin{\par}
+% \begin{small}
+% \begin{center}{\bf Abstract}\end{center}
+% \MakePercentComment \input{local03} \MakePercentIgnore
+% \end{small}
+% \newpage
+% \selectlanguage{\german}
+% \section{Einleitung}
+% \else
+% \section{Multilinguale Zitierformate}
+% \fi
+%
+%
+%
+% Die Stilformate \verb+thesis+ und \verb+journal+ werden
+% durch die \BibTeX-Formate \verb+thesis.bst+, \verb+journal.bst+
+% und \verb+paper.bst+ sowie zugeh\"orige \LaTeX-Pakete
+% erg\"anzt\footnote{Version
+% \fileversion\ vom \filedate. Dokumentation vom \docdate.}.
+% Das Format \verb+thesis.bst+
+% ist dem Stil der "`American Sociological Review"' angelehnt,
+% \verb+journal.bst+ erzeugt ein g\"angiges Standardformat und
+% \verb+paper.bst+ folgt den Vorgaben f\"ur die "`Handw\"orterb\"ucher der
+% Betriebswirtschaftslehre"' des Gabler Verlages.
+% Beispiele der beschriebenen Literaturformate sind in Abbildung
+% \ref{examplebib} zusammengestellt.
+%
+% \begin{table}[ht] \small \centering
+% \caption{\label{examplebib} Beispiele der Literaturformate}
+% \begin{tabular}{@{}lp{28em}@{}}
+% \hline
+% \tt thesis & Aamport, Leslie A. (1986). "`The gnats and gnus document
+% preparation system"'. \emph{G-Animal's Journal},
+% \textbf{41}, S.~73--78. \\
+% & Lincoll, Daniel D. (1977). Semigroups of recurrences. In:
+% David J. Lipcoll, Daniel H. Lawrie und A. Herbert Sameh,
+% Hrsg., \emph{Fast Computers,} S. 179--183. New York:
+% Academic Press. \\
+% & Lipcoll, David J., Daniel H. Lawrie und A. Herbert Sameh,
+% Hrsg. (1977). \emph{Fast Computers}. New York: Academic
+% Press. \\ \\
+% \tt journal & \textsc{Aamport, L. A.} (1986): The gnats and gnus document
+% preparation system. In: G-Animal's Journal,
+% \textbf{41}(7), 73--78. \\
+% & \textsc{Lincoll, D D.} (1977): Semigroups of recurrences. In:
+% \textsc{Lipcoll, D. J., Lawrie, D. H. \& Sameh, A. H.,}
+% Hg., Fast Computers, 179--183. New York:
+% Academic Press. \\
+% & \textsc{Lipcoll, D. J., Lawrie D. H. \& Sameh A. H.},
+% Hg. (1977): Fast Computers. New York: Academic
+% Press. \\ \\
+% \tt paper & \emph{Aamport, L. A.}: The gnats and gnus document preparation
+% system. In: G-Animal's Journal, 41 Jg., 7, S. 73--78. \\
+% & \emph{Lincoll, D. D.}: Semigroups of recurrences. In: Fast
+% Computers, hrsg. von \emph{D. J. Lipcoll, D. H. Lawrie} und
+% \emph{A. H. Sameh.} New York, 1977, S. 179--183. \\
+% & \emph{Lipcoll, D. J./Lawrie, D. H./Sameh, A. H.} (Hrsg.): Fast
+% Computers. New York, 1977. \\
+% \hline
+% \end{tabular}
+%\end{table}
+%
+% Die Formate dienen der
+% \"ublichen sozialwissenschaftlichen Zitierweise; d.~h. der Angabe
+% von Autor und Erscheinungsjahr. Dies verlangt die Definition
+% einiger zus\"atzlicher Zitierbefehle.
+% Eine Besonderheit ist,
+% da\ss{} die Auszeichnungen der Formate --- wie die Bezeichnungen des
+% Herausgebers, der Auf"|lage oder der Seitenangabe --- in verschiedenen
+% Sprachen zur Verf\"ugung stehen. Derzeit sind englische, franz\"osische
+% und deutsche K\"urzel implementiert. Ferner sind die in Zitaten und
+% im Literaturverzeichnis verwendeten Schriftarten variabel.
+%
+% \ifsolodoc \section{Zus\"atzliche Zitierbefehle} \else
+% \subsection{Zus\"atzliche Zitierbefehle} \fi
+%
+% \DescribeMacro{\cite}
+% \DescribeMacro{\cite*}
+% \DescribeMacro{\citeasnoun}
+% \DescribeMacro{\citeauthor}
+% \DescribeMacro{\citeyear}
+% Den Bed\"urfnissen sozialwissenschaftlicher Zitierweise entsprechend
+% werden neben dem \"ublichen \verb+\cite{+\emph{label}\verb+}+-Befehl
+% drei bzw. vier weitere Kommandos zur Verf\"ugung gestellt. Die Befehle
+% \verb+\citeasnoun{+\emph{label}\verb+}+ bzw.
+% \verb+\cite*{+\emph{label}\verb+}+
+% erzeugen den Namen und das
+% in runden Klammern eingeschlossene Erscheinungsjahr der Referenz,
+% \verb+\citeauthor{+\emph{label}\verb+}+ nur den oder die Autoren
+% und \verb+\citeyear{+\emph{label}\verb+}+ nur das Erscheinungsjahr.
+%
+% \begin{figure} \small
+% \begin{verbatim}
+%\documentclass[12pt]{article}
+%
+%\usepackage{german}
+%\usepackage[paper,singlelingual]{mlbib}
+%
+%\begin{document}
+%
+%In seinem aufsehenerregenden Artikel diskutiert
+%\citeasnoun{article-full} die Formatierung durch \emph{Gnats} und
+%\emph{Gnus}.
+%
+%\bibliographystyle{thesis}
+%\bibliography{thesis,xampl}
+%\end{document}
+% \end{verbatim}
+% \caption{\label{usebst}Anwendungsbeispiel der Zitierformate}
+% \end{figure}
+%
+% \ifsolodoc \section{Wahl der Sprache} \else
+% \subsection{Wahl der Sprache im Literaturverzeichnis} \fi
+%
+% Die genannten Eigenschaften der \BibTeX-Formate sind im korrespondierenden
+% Paket \texttt{mlbib.sty} definiert (vgl. das Anwendungsbeispiel \ref{usebst}).
+% Das Paket arbeitet mit dem \verb+german.sty+ zusammen.
+% Ist dieser bereits geladen, oder kann dieses Paket durch
+% \texttt{mlbib.sty} eingelesen werden, erfolgt die Auszeichnung des
+% Literaturverzeichnisses in deutscher Sprache.
+% Englische oder franz\"osische
+% Abk\"urzungen k\"onnen durch die Befehle
+% \verb+\selectlanguage{+\emph{english}\verb+}+ oder
+% \verb+\selectlanguage{+\emph{french}\verb+}+ angefordert werden.
+% Kann der \texttt{german.sty} nicht gelesen werden, benutzt das
+% Paket englische Krzel im Literaturverzeichnis.
+%
+% \DescribeEnv{multilingual}
+% \DescribeEnv{singlelingual}
+% Die \BibTeX-Formate unterst\"utzen ein zus\"atzliches optionales
+% \verb+language+ Feld zur Angabe der Sprache (\texttt{english},
+% \texttt{french} oder \texttt{german}), in welcher der Text erschienen ist.
+% Die Angabe empfiehlt sich, da bei nicht englischsprachigen
+% Texten eine Umwandlung bestimmter Titel (Artikel, Arbeitspapiere etc.)
+% in kleine Buchstaben unterbleibt.
+% Ferner bewirkt dieser Eintrag, da\ss{} die K\"urzel
+% im Literaturverzeichnis in der jeweiligen Sprache erscheinen.
+% Dies ist die Voreinstellung \verb+multilingual+ des Paketes
+% \texttt{mlbib.sty}
+% Fehlt das Feld \verb+language+ im Datenbankeintrag
+% wird die voreingestellte
+% Sprache des Dokumentes benutzt. Soll das Literaturverzeichnis
+% durchg\"angig in einer Sprache gesetzt werden, obwohl in der
+% Datenbank \texttt{language} Felder spezifiziert sind, ist die
+% Paket-Option \verb+singlelingual+ anzugeben.
+%
+% \ifsolodoc \section{Layout\"anderungen} \else
+% \subsection{Layout\"anderungen} \fi
+%
+% \DescribeEnv{thesis}
+% \DescribeEnv{journal}
+% \DescribeEnv{paper}
+% Das Layout der Literaturlisten und der Zitate ist vermittels
+% einiger vorgefertigter Option leicht zu „ndern. Die Paket-Optionen
+% \texttt{thesis}, \texttt{journal} und \texttt{paper} erzeugen in
+% Zusammenarbeit mit dem entsprechenden \BibTeX-Format die in
+% šbersicht \ref{examplebib} vorgestellten Stilvarianten.
+%
+% Zur individuellen Anpassung der Zitierstile stehen einige Befehle
+% zur Verfgung, die in Tabelle \ref{bblpunct} zusammengestellt
+% sind. Das Kommando \verb+\bblfont{+\emph{schriftart}\verb+}+ dient
+% beispielsweise der Žnderung der Schriftgr”áe des
+% Literaturverzeichnisses.
+%
+%
+%\begin{table}[htb]\centering \small
+%\caption{\label{bblpunct}Einstellung von Schriftarten und Punktierungen}
+%\begin{tabular}{ll}
+%\hline
+%\verb+\bblfont{+\emph{bibliography}\verb+}+ & \verb+\citeauthorfont{+\emph{author}\verb+}+ \\
+%\verb+\bblauthorfont{+\emph{author}\verb+}+ & \verb+\citebetween{+\emph{between cites}\verb+}+ \\
+%\verb+\bbltitlefont{+\emph{title}\verb+}+ & \verb+\citeleft{+\emph{(* cite}\verb+}+ \\
+%\verb+\bblvolumefont{+\emph{volume}\verb+}+ & \verb+\citeright{+\emph{cite *)}\verb+}+ \\
+%\verb+\bblleft{+\emph{( * year}\verb+}+ & \verb+\citeasnounleft{+\emph{Name (* year}\verb+}+ \\
+%\verb+\bblright{+\emph{year * )}\verb+}+ & \verb+\citeasnounright{+\emph{year *)}\verb+}+ \\
+%
+%\hline
+%\end{tabular}
+%\end{table}
+%
+% Die Voreinstellungen in der Stiloption \texttt{thesis}
+% lauten f\"ur das Literaturverzeichnis:
+%
+% \begin{itemize}
+% \item \verb+\bblfont{\small}+ ,
+% \item \verb+\bblauthorfont{}+,
+% \item \verb+\bbltitlefont{\itshape}+,
+% \item \verb+\bblvolumefont{\bfseries}+,
+% \item \verb+\bblleft{(}+,
+% \item \verb+\bblright{)}+.
+% \end{itemize}
+%
+% Entsprechend wird die gesamte Literaturliste in kleinerer Schrift gesetzt,
+% die Autoren werden nicht hervorgehoben, dagegen werden
+% Titel bzw. Zeitschriften
+% durch Kursivdruck und Jahrg\"ange durch Fettdruck betont.
+% Das Erscheinungsjahr wird in Klammern gesetzt.
+% Bez\"uglich der Zitate sind bei dieser Option die Befehle
+%
+% \begin{itemize}
+% \item \verb+\citeauthorfont{\itshape}+,
+% \item \verb+\citebetween{; }+,
+% \item \verb+\citeleft{}+,
+% \item \verb+\citeright{}+,
+% \item \verb+\citeasnounleft{(}+ und
+% \item \verb+\citeasnounright{)}+
+% \end{itemize}
+%
+% voreingestellt.
+% Autoren werden im Text entsprechend durch kursive Typen hervorgehoben,
+% mehrere Zitate werden durch Semikolon getrennt und das gesamte Zitat
+% wird im Fall des Befehls \verb|\cite| nicht in Klammern gesetzt.
+% Bei der Sternform des Befehls bzw. dem Kommando \verb+\citeasnoun+
+% werden dagegen runde Klammern verwendet.
+%
+% \DescribeEnv{smallskip}
+% \DescribeEnv{noskip}
+% Zwei weitere Optionen untersttzen die Ver„nderung der vertikalen
+% Abst„nde zwischen den Listeneintr„gen im Literaturverzeichnis. Die
+% Option \verb+smallskip+ fordert kleinere Abst„nde an; die Option
+% \verb+noskip+ verzichtet v”llig auf Abst„nde.
+%
+%
+% \ifsolodoc \section{Zeitschriftenk\"urzel} \else
+% \subsection{Zeitschriftenk\"urzel} \fi
+%
+% Das Paket umfa\ss{}t ferner zwei Datenbanken, die eine Reihe
+% Abk\"urzungen wichtiger sozial- und wirtschaftswissenschaftlicher
+% Fachzeitschriften definieren. Die Datei \verb+thesis.bib+ enth\"alt
+% die vollst\"andigen Namen der Zeitschriften, \verb+journal.bib+ die
+% bibliographischen Kurzformen (bislang unvollst„ndig).
+% Werden die Abk\"urzungen in der
+% eigenen Literarturdatenbank benutzt, ist eine der beiden
+% im Kommando \verb+\bibliography+ anzugeben.
+%
+% \StopEventually{%
+% }
+%
+% \changes{thebbl~0.9b}{91/10/01}{Definitionen f\"ur journal.bst}
+% \changes{thebbl~0.9c}{92/12/01}{Dokumentation im docstyle Format}
+% \changes{thebbl~0.9d}{93/07/31}{Definitionen f\"ur paper.bst}
+% \changes{mlbib~1.0}{1996/10/30}{Update fr \LaTeX2e}
+%
+% \ifsolodoc \section{Implementation} \else
+% \subsection{Implementation} \fi
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% Das Makro beginnt mit der \"ublichen Terminalausgabe.
+%
+% \begin{macrocode}
+\ProvidesPackage{mlbib}
+ [\filedate\space\fileversion\space%
+ LaTeX2e package (wm)]
+% \end{macrocode}
+%
+% Benutzerschnittstelle zur Festlegung der Schriftgr\"o\ss{}en
+% und Hervorhebungen im Literaturverzeichnis.
+%
+% \begin{macrocode}
+\providecommand{\bblfont}[1]{\def\bblsize{#1}} \def\bblsize{}
+\providecommand{\bblauthorfont}[1]{\def\bblnf{#1}} \def\bblnf{}
+\providecommand{\bbltitlefont}[1]{\def\bbltf{#1}} \def\bbltf{}
+\providecommand{\bblvolumefont}[1]{\def\bblvf{#1}} \def\bblvf{}
+\providecommand{\bblleft}[1]{\def\bbllb{#1}} \def\bbllb{}
+\providecommand{\bblright}[1]{\def\bblrb{#1}} \def\bblrb{}
+% \end{macrocode}
+%
+% Benutzerschnittstelle f\"ur das Layout von Zitaten.
+%
+% \begin{macrocode}
+\providecommand{\citeauthorfont}[1]{\def\citenf{#1}} \def\citenf{}
+\providecommand{\citebetween}[1]{\def\citebet{#1}} \def\citebet{}
+\providecommand{\citeleft}[1]{\def\citelb{#1}} \def\citelb{}
+\providecommand{\citeright}[1]{\def\citerb{#1}} \def\citerb{}
+\providecommand{\citeasnounleft}[1]{\def\citeanlb{#1}} \def\citeanlb{}
+\providecommand{\citeasnounright}[1]{\def\citeanrb{#1}} \def\citeanrb{}
+% \end{macrocode}
+%
+% Schalter, um zwischen ein- und mehrsprachigen
+% Literaturverzeichnissen zu wechseln.
+%
+% \begin{macrocode}
+\newif\if@multilanguage \@multilanguagetrue
+% \end{macrocode}
+%
+% Schalter, um die Abst„nde der Listeneintr„ge zu beinflussen.
+%
+% \begin{macrocode}
+\newif\if@smallskip \@smallskipfalse
+\newif\if@noskip \@noskipfalse
+% \end{macrocode}
+%
+% Definition optionaler Stile zur Auszeichnung des
+% Literaturverzeichnisses und der Zitate.
+%
+% \begin{macrocode}
+\DeclareOption{thesis}{
+\def\bblcaptionsenglish{%
+ \def\bbland{, and\ }
+ \def\bbled{ed.}
+ \def\bbleds{eds.}
+ \def\bblbyed{edited by}
+ \def\bblvol{vol.}
+ \def\bblVol{Vol.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{edition}
+ \def\bblp{p.}
+ \def\bblpp{pp.}
+ \def\bblchap{chapter}
+ \def\bbltrep{Technical Report}
+ \def\bblmth{Master's thesis}
+ \def\bblphd{Ph.~D. thesis}
+ \def\bbllq{``}
+ \def\bblrq{''}
+ \def\citepp{,\ }}
+\def\bblcaptionsfrench{%
+ \def\bbland{\ et\ }
+ \def\bbled{r\'{e}d.}
+ \def\bbleds{r\'{e}ds.}
+ \def\bblbyed{edit\'e par }
+ \def\bblvol{tome}
+ \def\bblVol{tm.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{\'{e}dition}
+ \def\bblp{page}
+ \def\bblpp{pages}
+ \def\bblchap{chapitre}
+ \def\bbltrep{Papier d'\'{e}tudes}
+ \def\bblmth{Th\`{e}se du dipl\^{o}me}
+ \def\bblphd{Th\`{e}se du doctorat}
+ \def\bbllq{\flqq}
+ \def\bblrq{\frqq}
+ \def\citepp{,\ }}
+\def\bblcaptionsgerman{%
+ \def\bbland{\ und\ }
+ \def\bbled{Hrsg.}
+ \def\bbleds{Hrsg.}
+ \def\bblbyed{hrsg. von }
+ \def\bblvol{Bd.}
+ \def\bblVol{Bd.}
+ \def\bbljvol{}
+ \def\bblno{Nr.}
+ \def\bblNo{Nr.}
+ \def\bbledit{Auf\/lage}
+ \def\bblp{S.}
+ \def\bblpp{S.}
+ \def\bblchap{Kapitel}
+ \def\bbltrep{Arbeitspapier}
+ \def\bblmth{Diplomarbeit}
+ \def\bblphd{Dissertation}
+ \def\bbllq{\glqq}
+ \def\bblrq{\grqq}
+ \def\citepp{, S.\ }}%%%
+ \bblfont{\small}
+ \bblauthorfont{}
+ \bbltitlefont{\itshape}
+ \bblvolumefont{\bfseries}
+ \bblleft{(} \bblright{)}
+ \citeauthorfont{\itshape}
+ \citebetween{; }
+ \citeleft{} \citeright{}
+ \citeasnounleft{(} \citeasnounright{)}
+}%%%%%%%%%%%%%%%%%%%%%%
+\DeclareOption{journal}{
+\def\bblcaptionsenglish{%
+ \def\bbland{\ \&\ }
+ \def\bbled{ed.}
+ \def\bbleds{eds.}
+ \def\bblbyed{ed. by}
+ \def\bblvol{vol.}
+ \def\bblVol{Vol.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{edition}
+ \def\bblp{}
+ \def\bblpp{}
+ \def\bblchap{chap.}
+ \def\bbltrep{Tech. rep.}
+ \def\bblmth{Master's thesis}
+ \def\bblphd{PhD thesis}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+\def\bblcaptionsfrench{%
+ \def\bbland{\ \&\ }
+ \def\bbled{r\'{e}d.}
+ \def\bbleds{r\'{e}ds.}
+ \def\bblbyed{edit\'e par}
+ \def\bblvol{tome}
+ \def\bblVol{tm.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{\'{e}dition}
+ \def\bblp{}
+ \def\bblpp{}
+ \def\bblchap{chap.}
+ \def\bbltrep{Papier d'\'{e}tudes}
+ \def\bblmth{Th\`{e}se du dipl\^{o}me}
+ \def\bblphd{Th\`{e}se du doctorat}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+\def\bblcaptionsgerman{%
+ \def\bbland{\ \&\ }
+ \def\bbled{Hg.}
+ \def\bbleds{Hg.}
+ \def\bblbyed{hg. von}
+ \def\bblvol{Bd.}
+ \def\bblVol{Bd.}
+ \def\bbljvol{}
+ \def\bblno{Nr.}
+ \def\bblNo{Nr.}
+ \def\bbledit{Aufl.}
+ \def\bblp{}
+ \def\bblpp{}
+ \def\bblchap{Kap.}
+ \def\bbltrep{Arbeitspapier}
+ \def\bblmth{Diplomarbeit}
+ \def\bblphd{Diss.}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+ \bblfont{\footnotesize}
+ \bblauthorfont{\scshape}
+ \bbltitlefont{}
+ \bblvolumefont{}
+ \bblleft{(} \bblright{)}
+ \citeauthorfont{\scshape}
+ \citebetween{; }
+ \citeleft{(} \citeright{)}
+ \citeasnounleft{(} \citeasnounright{)}
+}%%%%%%%%%%%%%%%%%%%%%%
+\DeclareOption{paper}{
+\def\bblcaptionsenglish{%
+ \def\bbland{, and\ }
+ \def\bbled{(ed.)}
+ \def\bbleds{(eds.)}
+ \def\bblbyed{edited by}
+ \def\bblvol{vol.}
+ \def\bblVol{Vol.}
+ \let\bbljvol\bblvol
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{edition}
+ \def\bblp{p.}
+ \def\bblpp{pp.}
+ \def\bblchap{chapter}
+ \def\bbltrep{Technical Report}
+ \def\bblmth{Master's thesis}
+ \def\bblphd{Ph.~D. thesis}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+\def\bblcaptionsfrench{%
+ \def\bbland{\ et\ }
+ \def\bbled{r\'{e}d.}
+ \def\bbleds{r\'{e}ds.}
+ \def\bblbyed{edit\'e par}
+ \def\bblvol{tome}
+ \def\bblVol{tm.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \let\bbljvol\bblvol
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{\'{e}dition}
+ \def\bblp{}
+ \def\bblpp{}
+ \def\bblchap{chapitre}
+ \def\bbltrep{Papier d'\'{e}tudes}
+ \def\bblmth{Th\`{e}se du dipl\^{o}me}
+ \def\bblphd{Th\`{e}se du doctorat}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+\def\bblcaptionsgerman{%
+ \def\bbland{\ und\ }
+ \def\bbled{(Hrsg.)}
+ \def\bbleds{(Hrsg.)}
+ \def\bblbyed{hrsg. von}
+ \def\bblvol{Bd.}
+ \def\bblVol{Bd.}
+ \def\bbljvol{Jg.}
+ \def\bblno{Nr. }
+ \def\bblNo{Nr. }
+ \def\bbledit{Aufl.}
+ \def\bblp{S.}
+ \def\bblpp{S.}
+ \def\bblchap{Kap.}
+ \def\bbltrep{Arbeitspapier}
+ \def\bblmth{Diplomarbeit}
+ \def\bblphd{Dissertation}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{, S.\ }}%%%
+ \bblfont{\small}
+ \bblauthorfont{\itshape}
+ \bbltitlefont{}
+ \bblvolumefont{}
+ \bblleft{} \bblright{}
+ \citeauthorfont{\itshape}
+ \citebetween{; }
+ \citeleft{(} \citeright{)}
+ \citeasnounleft{(} \citeasnounright{)}
+}
+\DeclareOption{multilingual}{\@multilanguagetrue}
+\DeclareOption{singlelingual}{\@multilanguagefalse}
+\DeclareOption{smallskip}{\@smallskiptrue}
+\DeclareOption{noskip}{\@noskiptrue\@smallskiptrue}
+\DeclareOption{normalskip}{\@smallskipfalse}
+\ExecuteOptions{thesis,multilingual,normalskip}
+\ProcessOptions
+% \end{macrocode}
+%
+% Es folgen die Definitionen zur Sprachanpassung. Sofern das
+% \verb+german+-Paket nicht eingelesen wurde, wird versucht
+% dieses zu ”ffnen. Gelingt dies nicht, erfolgt eine Warnung und die
+% Ausgabe aller Auszeichnungen erfolgt in englischer Sprache.
+%
+% \begin{macrocode}
+\@ifundefined{mdqon}{%
+ \InputIfFileExist{german}{}{}}{}
+\@ifundefined{mdqon}{%
+ \@warning{Style option `german' undefined,}
+ \typeout{\@spaces\@spaces\@spaces\space\space\space
+ Using english captions in the bibliography.}
+ \let\bblenglish=\bblcaptionsenglish
+ \let\bblfrench=\bblcaptionsenglish
+ \let\bblgerman=\bblcaptionsenglish
+ \bblenglish
+}{
+% \end{macrocode}
+% Andernfalls werden die in \texttt{german.sty} definierten
+% \verb+\extras+\emph{language\/} Befehle \"ubernommen und
+% um die entsprechenden \verb+\bblcaptions+\emph{language\/}
+% erg\"anzt. Diese werden im Makro \verb+\p@selectlanguage+
+% zur Spracheinstellung benutzt. Ferner wird ein Kommando
+% \verb+\frenchTeX+ definiert, da\ss{} die Befehle zur Erzeugung
+% von Umlauten umstellt und die Sprachumschaltung aktiviert.
+% \begin{macrocode}
+ \def\extrasUSenglish{\bblcaptionsenglish}
+ \def\extrasenglish{\bblcaptionsenglish}
+ \def\extrasgerman{\frenchspacing
+ \lefthyphenmin\tw@ \righthyphenmin\tw@ \bblcaptionsgerman}
+ \let\extrasaustrian=\extrasgerman
+ \def\extrasfrench{\frenchspacing \bblcaptionsfrench}
+ \def\frenchTeX{\mdqoff \let"\dq \umlauthigh \let\3\original@three
+ \selectlanguage{french}}
+% \end{macrocode}
+%
+% Die Abfrage definiert die von den \BibTeX-Formaten erzeugten
+% Kommandos als Sprachumschalter. Dies ist gleichzeitig die
+% Voreinstellung.
+% \begin{macrocode}
+ \if@multilanguage
+ \let\bblenglish=\originalTeX
+ \let\bblfrench=\frenchTeX
+ \let\bblgerman=\germanTeX
+ \else
+% \end{macrocode}
+%
+% Der Else-Zweig hebt die Wirkung der von den \BibTeX-Formaten erzeugten
+% Kommandos auf.
+% \begin{macrocode}
+ \let\bblenglish=\relax
+ \let\bblfrench=\relax
+ \let\bblgerman=\relax
+ \fi
+% \end{macrocode}
+%
+% Abschlie\ss{}end wird die im Dokument gew\"ahlte Sprache aktiviert,
+% um bei fehlenden \texttt{language} Eintr\"agen in der Datenbank
+% diese Sprache voreinzustellen.
+% \begin{macrocode}
+ \ifnum\language=\l@german
+ \selectlanguage{german}
+ \else\ifnum\language=\l@austrian
+ \selectlanguage{austrian}
+ \else\ifnum\language=\l@french
+ \selectlanguage{french}
+ \else\ifnum\language=\l@english
+ \selectlanguage{english}
+ \else
+ \selectlanguage{USenglish}
+ \fi\fi\fi\fi
+}
+% \end{macrocode}
+% Ggf. wird der Name des Literaturverzeichnisses voreingestellt.
+% \begin{macrocode}
+\@ifundefined{bibname}{\def\bibname{Bibliography}}{}
+% \end{macrocode}
+% Definition der Literaturliste entsprechend dem \texttt{apalike.sty}
+% von Patashnik/King. Die Definition erfolgt in Abh\"angigkeit von
+% der Stilart (chapter), der Stiloption \texttt{cbib}
+% (vgl. \texttt{thesis.cls}) und der Stiloption \texttt{journal}
+% (vgl. \texttt{journal.cls}.
+%
+% \begin{macrocode}
+
+
+
+\newdimen\bibhang \setlength{\bibhang}{2em}
+\@ifundefined{chapter}{%
+ \def\thebibliography#1{%
+ \section*{\refname\@mkboth{\refname}{\refname}}\list
+ {\relax}{\setlength{\labelsep}{0em}
+ \if@smallskip
+ \setlength{\itemsep}{0\p@ plus .07em}
+ \if@noskip
+ \setlength{\parsep}{0\p@ plus .07em}
+ \fi
+ \fi
+ \setlength{\itemindent}{-\bibhang}
+ \setlength{\leftmargin}{\bibhang}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}}{%
+ \def\thebibliography#1{%
+ \chapter*{\bibname\@mkboth{\bibname}{\bibname}}\list
+ {\relax}{\setlength{\labelsep}{0em}
+ \if@smallskip
+ \setlength{\itemsep}{0\p@ plus .07em}
+ \if@noskip
+ \setlength{\parsep}{0\p@ plus .07em}
+ \fi
+ \fi
+ \setlength{\itemindent}{-\bibhang}
+ \setlength{\leftmargin}{\bibhang}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}}
+\@ifundefined{option@cbib}{}{
+ \def\thebibliography#1{%
+ \section*{\refname%
+ \@ifundefined{option@journal}{\@mkboth{\refname}{\refname}}{}}
+ \list
+ {\relax}{\setlength{\labelsep}{0em}
+ \if@smallskip
+ \setlength{\itemsep}{0\p@ plus .07em}
+ \if@noskip
+ \setlength{\parsep}{0\p@ plus .07em}
+ \fi
+ \fi
+ \setlength{\itemindent}{-\bibhang}
+ \setlength{\leftmargin}{\bibhang}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}}
+% \end{macrocode}
+% Fehlt jeglicher Eintrag erfolgt eine Warnung.
+% \begin{macrocode}
+\def\endthebibliography{%
+ \def\@noitemerr{\@warning{Empty `thebibliography' environment}}%
+ \endlist}
+% \end{macrocode}
+% Die Labels erscheinen nicht im Literaturverzeichnis.
+% \begin{macrocode}
+\def\@biblabel#1{}
+% \end{macrocode}
+% Zitate werden nicht geklammert. Bei mehreren Referenzen wird der
+% Befehl \verb+\citebet+ eingef\"ugt.
+% \begin{macrocode}
+\def\@citex[#1]#2{%
+ \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi%
+ \def\@citea{}\@cite{\@for\@citeb:=#2\do{\@citea\def\@citea{\citebet{}}%
+ \@ifundefined{b@\@citeb}{{\@eB\textbf{?}}\@warning%
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+{\csname b@\@citeb\endcsname}}}{#1}}
+% \end{macrocode}
+% Definition der Zitierkommandos.
+% \begin{macrocode}
+\let\@internalcite\cite
+\def\cite{\@ifstar{\citeasnoun}{\new@cite}}
+\def\new@cite{\def\@citeseppen{-1000}%
+ \def\@cite##1##2{\citelb##1\if@tempswa\citepp ##2\fi\citerb }%
+ \def\citeauthoryear##1##2{{\citenf ##1} ##2}\def\@eB{}\@internalcite}%
+\def\citeasnoun{\def\@citeseppen{-1000}%
+ \def\@cite##1##2{##1\if@tempswa\citepp ##2\citeanrb\else\citeanrb\fi}%
+ \def\citeauthoryear##1##2{{\citenf ##1} \citeanlb##2}%
+ \def\@eB{(}\@internalcite}
+\def\citeyear{\def\@citeseppen{-1000}%
+ \def\@cite##1##2{##1\if@tempswa\citepp ##2\fi}%
+ \def\citeauthoryear##1##2{##2}\def\@eB{}\@internalcite}
+\def\citeauthor{\def\@citeseppen{-1000}%
+ \def\@cite##1##2{##1\if@tempswa\citepp ##2\fi}%
+ \def\citeauthoryear##1##2{{\citenf ##1}}\def\@eB{}\@internalcite}
+%
+%</package>
+% \end{macrocode}
+%
+% \section{Treiber-Datei}
+%
+% Der letzte Abschnitt enth\"alt die Treiberdatei zur Erstellung der
+% Dokumentation.
+% \begin{macrocode}
+%<*driver>
+\typeout{******************************************}
+\typeout{* Documentation for LaTeX package `mlbib' *}
+\typeout{******************************************}
+
+\documentclass[11pt]{ltxdoc}
+\usepackage{german}
+\usepackage{mlbib}
+
+\makeatletter
+\newif\ifsolodoc
+ \@ifundefined{solo}{\solodoctrue}{\solodocfalse}
+\IndexPrologue{\section*{Index}%
+ \markboth{Index}{Index}%
+ Die kursiv gesetzten Seitenzahlen
+ verweisen auf Beschreibungen der Makros,
+ unterstrichene Programmzeilennummern
+ auf deren Definitionen.}
+\GlossaryPrologue{\section*{Neuerungen}%
+ \markboth{Neuerungen}{Neuerungen}}
+\def\saved@macroname{Neuerung}
+\renewenvironment{theglossary}{%
+ \glossary@prologue%
+ \GlossaryParms \let\item\@idxitem \ignorespaces}%
+ {}
+\makeatother
+\setcounter{StandardModuleDepth}{1}
+% \OnlyDescription
+% \CodelineIndex
+\CodelineNumbered
+\RecordChanges
+\setlength{\parindent}{0pt}
+\begin{document}
+\DocInput{mlbib.dtx} \newpage \PrintChanges % \newpage \PrintIndex
+\end{document}
+\endinput
+%</driver>
+% \end{macrocode}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+% \Finale
+% \endinput
+# Local Variables:
+# mode: latex
+# End:
+
+
diff --git a/macros/latex/contrib/mlbib/mlbib.pdf b/macros/latex/contrib/mlbib/mlbib.pdf
new file mode 100644
index 0000000000..7f642e5c13
--- /dev/null
+++ b/macros/latex/contrib/mlbib/mlbib.pdf
Binary files differ
diff --git a/macros/latex/contrib/mlbib/mlbib.sty b/macros/latex/contrib/mlbib/mlbib.sty
new file mode 100644
index 0000000000..4dfe4cd948
--- /dev/null
+++ b/macros/latex/contrib/mlbib/mlbib.sty
@@ -0,0 +1,376 @@
+%%
+%% This is file `mlbib.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% mlbib.dtx (with options: `package')
+%%
+%% Copyright (C) 1992, 1996 by Wenzel Matiaske, mati1831@perform.ww.tu-berlin.de
+%%
+%% You are not allowed to distribute this file without the
+%% original source mlbib.dtx. For distribution of the
+%% sources see the copyright notice in the file mlbib.dtx.
+%%
+\def\filename{mlbib}
+\def\fileversion{1.0}
+\def\filedate{1996/10/30}
+\def\docdate{1995/10/30}
+
+\ProvidesPackage{mlbib}
+ [\filedate\space\fileversion\space%
+ LaTeX2e package (wm)]
+\providecommand{\bblfont}[1]{\def\bblsize{#1}} \def\bblsize{}
+\providecommand{\bblauthorfont}[1]{\def\bblnf{#1}} \def\bblnf{}
+\providecommand{\bbltitlefont}[1]{\def\bbltf{#1}} \def\bbltf{}
+\providecommand{\bblvolumefont}[1]{\def\bblvf{#1}} \def\bblvf{}
+\providecommand{\bblleft}[1]{\def\bbllb{#1}} \def\bbllb{}
+\providecommand{\bblright}[1]{\def\bblrb{#1}} \def\bblrb{}
+\providecommand{\citeauthorfont}[1]{\def\citenf{#1}} \def\citenf{}
+\providecommand{\citebetween}[1]{\def\citebet{#1}} \def\citebet{}
+\providecommand{\citeleft}[1]{\def\citelb{#1}} \def\citelb{}
+\providecommand{\citeright}[1]{\def\citerb{#1}} \def\citerb{}
+\providecommand{\citeasnounleft}[1]{\def\citeanlb{#1}} \def\citeanlb{}
+\providecommand{\citeasnounright}[1]{\def\citeanrb{#1}} \def\citeanrb{}
+\newif\if@multilanguage \@multilanguagetrue
+\newif\if@smallskip \@smallskipfalse
+\newif\if@noskip \@noskipfalse
+\DeclareOption{thesis}{
+\def\bblcaptionsenglish{%
+ \def\bbland{, and\ }
+ \def\bbled{ed.}
+ \def\bbleds{eds.}
+ \def\bblbyed{edited by}
+ \def\bblvol{vol.}
+ \def\bblVol{Vol.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{edition}
+ \def\bblp{p.}
+ \def\bblpp{pp.}
+ \def\bblchap{chapter}
+ \def\bbltrep{Technical Report}
+ \def\bblmth{Master's thesis}
+ \def\bblphd{Ph.~D. thesis}
+ \def\bbllq{``}
+ \def\bblrq{''}
+ \def\citepp{,\ }}
+\def\bblcaptionsfrench{%
+ \def\bbland{\ et\ }
+ \def\bbled{r\'{e}d.}
+ \def\bbleds{r\'{e}ds.}
+ \def\bblbyed{edit\'e par }
+ \def\bblvol{tome}
+ \def\bblVol{tm.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{\'{e}dition}
+ \def\bblp{page}
+ \def\bblpp{pages}
+ \def\bblchap{chapitre}
+ \def\bbltrep{Papier d'\'{e}tudes}
+ \def\bblmth{Th\`{e}se du dipl\^{o}me}
+ \def\bblphd{Th\`{e}se du doctorat}
+ \def\bbllq{\flqq}
+ \def\bblrq{\frqq}
+ \def\citepp{,\ }}
+\def\bblcaptionsgerman{%
+ \def\bbland{\ und\ }
+ \def\bbled{Hrsg.}
+ \def\bbleds{Hrsg.}
+ \def\bblbyed{hrsg. von }
+ \def\bblvol{Bd.}
+ \def\bblVol{Bd.}
+ \def\bbljvol{}
+ \def\bblno{Nr.}
+ \def\bblNo{Nr.}
+ \def\bbledit{Auf\/lage}
+ \def\bblp{S.}
+ \def\bblpp{S.}
+ \def\bblchap{Kapitel}
+ \def\bbltrep{Arbeitspapier}
+ \def\bblmth{Diplomarbeit}
+ \def\bblphd{Dissertation}
+ \def\bbllq{\glqq}
+ \def\bblrq{\grqq}
+ \def\citepp{, S.\ }}%%%
+ \bblfont{\small}
+ \bblauthorfont{}
+ \bbltitlefont{\itshape}
+ \bblvolumefont{\bfseries}
+ \bblleft{(} \bblright{)}
+ \citeauthorfont{\itshape}
+ \citebetween{; }
+ \citeleft{} \citeright{}
+ \citeasnounleft{(} \citeasnounright{)}
+}%%%%%%%%%%%%%%%%%%%%%%
+\DeclareOption{journal}{
+\def\bblcaptionsenglish{%
+ \def\bbland{\ \&\ }
+ \def\bbled{ed.}
+ \def\bbleds{eds.}
+ \def\bblbyed{ed. by}
+ \def\bblvol{vol.}
+ \def\bblVol{Vol.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{edition}
+ \def\bblp{}
+ \def\bblpp{}
+ \def\bblchap{chap.}
+ \def\bbltrep{Tech. rep.}
+ \def\bblmth{Master's thesis}
+ \def\bblphd{PhD thesis}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+\def\bblcaptionsfrench{%
+ \def\bbland{\ \&\ }
+ \def\bbled{r\'{e}d.}
+ \def\bbleds{r\'{e}ds.}
+ \def\bblbyed{edit\'e par}
+ \def\bblvol{tome}
+ \def\bblVol{tm.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{\'{e}dition}
+ \def\bblp{}
+ \def\bblpp{}
+ \def\bblchap{chap.}
+ \def\bbltrep{Papier d'\'{e}tudes}
+ \def\bblmth{Th\`{e}se du dipl\^{o}me}
+ \def\bblphd{Th\`{e}se du doctorat}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+\def\bblcaptionsgerman{%
+ \def\bbland{\ \&\ }
+ \def\bbled{Hg.}
+ \def\bbleds{Hg.}
+ \def\bblbyed{hg. von}
+ \def\bblvol{Bd.}
+ \def\bblVol{Bd.}
+ \def\bbljvol{}
+ \def\bblno{Nr.}
+ \def\bblNo{Nr.}
+ \def\bbledit{Aufl.}
+ \def\bblp{}
+ \def\bblpp{}
+ \def\bblchap{Kap.}
+ \def\bbltrep{Arbeitspapier}
+ \def\bblmth{Diplomarbeit}
+ \def\bblphd{Diss.}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+ \bblfont{\footnotesize}
+ \bblauthorfont{\scshape}
+ \bbltitlefont{}
+ \bblvolumefont{}
+ \bblleft{(} \bblright{)}
+ \citeauthorfont{\scshape}
+ \citebetween{; }
+ \citeleft{(} \citeright{)}
+ \citeasnounleft{(} \citeasnounright{)}
+}%%%%%%%%%%%%%%%%%%%%%%
+\DeclareOption{paper}{
+\def\bblcaptionsenglish{%
+ \def\bbland{, and\ }
+ \def\bbled{(ed.)}
+ \def\bbleds{(eds.)}
+ \def\bblbyed{edited by}
+ \def\bblvol{vol.}
+ \def\bblVol{Vol.}
+ \let\bbljvol\bblvol
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{edition}
+ \def\bblp{p.}
+ \def\bblpp{pp.}
+ \def\bblchap{chapter}
+ \def\bbltrep{Technical Report}
+ \def\bblmth{Master's thesis}
+ \def\bblphd{Ph.~D. thesis}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+\def\bblcaptionsfrench{%
+ \def\bbland{\ et\ }
+ \def\bbled{r\'{e}d.}
+ \def\bbleds{r\'{e}ds.}
+ \def\bblbyed{edit\'e par}
+ \def\bblvol{tome}
+ \def\bblVol{tm.}
+ \def\bbljvol{}
+ \def\bblno{no.}
+ \let\bbljvol\bblvol
+ \def\bblno{no.}
+ \def\bblNo{No.}
+ \def\bbledit{\'{e}dition}
+ \def\bblp{}
+ \def\bblpp{}
+ \def\bblchap{chapitre}
+ \def\bbltrep{Papier d'\'{e}tudes}
+ \def\bblmth{Th\`{e}se du dipl\^{o}me}
+ \def\bblphd{Th\`{e}se du doctorat}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{,\ }}
+\def\bblcaptionsgerman{%
+ \def\bbland{\ und\ }
+ \def\bbled{(Hrsg.)}
+ \def\bbleds{(Hrsg.)}
+ \def\bblbyed{hrsg. von}
+ \def\bblvol{Bd.}
+ \def\bblVol{Bd.}
+ \def\bbljvol{Jg.}
+ \def\bblno{Nr. }
+ \def\bblNo{Nr. }
+ \def\bbledit{Aufl.}
+ \def\bblp{S.}
+ \def\bblpp{S.}
+ \def\bblchap{Kap.}
+ \def\bbltrep{Arbeitspapier}
+ \def\bblmth{Diplomarbeit}
+ \def\bblphd{Dissertation}
+ \def\bbllq{}
+ \def\bblrq{}
+ \def\citepp{, S.\ }}%%%
+ \bblfont{\small}
+ \bblauthorfont{\itshape}
+ \bbltitlefont{}
+ \bblvolumefont{}
+ \bblleft{} \bblright{}
+ \citeauthorfont{\itshape}
+ \citebetween{; }
+ \citeleft{(} \citeright{)}
+ \citeasnounleft{(} \citeasnounright{)}
+}
+\DeclareOption{multilingual}{\@multilanguagetrue}
+\DeclareOption{singlelingual}{\@multilanguagefalse}
+\DeclareOption{smallskip}{\@smallskiptrue}
+\DeclareOption{noskip}{\@noskiptrue\@smallskiptrue}
+\DeclareOption{normalskip}{\@smallskipfalse}
+\ExecuteOptions{thesis,multilingual,normalskip}
+\ProcessOptions
+\@ifundefined{mdqon}{%
+ \InputIfFileExist{german}{}{}}{}
+\@ifundefined{mdqon}{%
+ \@warning{Style option `german' undefined,}
+ \typeout{\@spaces\@spaces\@spaces\space\space\space
+ Using english captions in the bibliography.}
+ \let\bblenglish=\bblcaptionsenglish
+ \let\bblfrench=\bblcaptionsenglish
+ \let\bblgerman=\bblcaptionsenglish
+ \bblenglish
+}{
+ \def\extrasUSenglish{\bblcaptionsenglish}
+ \def\extrasenglish{\bblcaptionsenglish}
+ \def\extrasgerman{\frenchspacing
+ \lefthyphenmin\tw@ \righthyphenmin\tw@ \bblcaptionsgerman}
+ \let\extrasaustrian=\extrasgerman
+ \def\extrasfrench{\frenchspacing \bblcaptionsfrench}
+ \def\frenchTeX{\mdqoff \let"\dq \umlauthigh \let\3\original@three
+ \selectlanguage{french}}
+ \if@multilanguage
+ \let\bblenglish=\originalTeX
+ \let\bblfrench=\frenchTeX
+ \let\bblgerman=\germanTeX
+ \else
+ \let\bblenglish=\relax
+ \let\bblfrench=\relax
+ \let\bblgerman=\relax
+ \fi
+ \ifnum\language=\l@german
+ \selectlanguage{german}
+ \else\ifnum\language=\l@austrian
+ \selectlanguage{austrian}
+ \else\ifnum\language=\l@french
+ \selectlanguage{french}
+ \else\ifnum\language=\l@english
+ \selectlanguage{english}
+ \else
+ \selectlanguage{USenglish}
+ \fi\fi\fi\fi
+}
+\@ifundefined{bibname}{\def\bibname{Bibliography}}{}
+
+\newdimen\bibhang \setlength{\bibhang}{2em}
+\@ifundefined{chapter}{%
+ \def\thebibliography#1{%
+ \section*{\refname\@mkboth{\refname}{\refname}}\list
+ {\relax}{\setlength{\labelsep}{0em}
+ \if@smallskip
+ \setlength{\itemsep}{0\p@ plus .07em}
+ \if@noskip
+ \setlength{\parsep}{0\p@ plus .07em}
+ \fi
+ \fi
+ \setlength{\itemindent}{-\bibhang}
+ \setlength{\leftmargin}{\bibhang}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}}{%
+ \def\thebibliography#1{%
+ \chapter*{\bibname\@mkboth{\bibname}{\bibname}}\list
+ {\relax}{\setlength{\labelsep}{0em}
+ \if@smallskip
+ \setlength{\itemsep}{0\p@ plus .07em}
+ \if@noskip
+ \setlength{\parsep}{0\p@ plus .07em}
+ \fi
+ \fi
+ \setlength{\itemindent}{-\bibhang}
+ \setlength{\leftmargin}{\bibhang}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}}
+\@ifundefined{option@cbib}{}{
+ \def\thebibliography#1{%
+ \section*{\refname%
+ \@ifundefined{option@journal}{\@mkboth{\refname}{\refname}}{}}
+ \list
+ {\relax}{\setlength{\labelsep}{0em}
+ \if@smallskip
+ \setlength{\itemsep}{0\p@ plus .07em}
+ \if@noskip
+ \setlength{\parsep}{0\p@ plus .07em}
+ \fi
+ \fi
+ \setlength{\itemindent}{-\bibhang}
+ \setlength{\leftmargin}{\bibhang}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}}
+\def\endthebibliography{%
+ \def\@noitemerr{\@warning{Empty `thebibliography' environment}}%
+ \endlist}
+\def\@biblabel#1{}
+\def\@citex[#1]#2{%
+ \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi%
+ \def\@citea{}\@cite{\@for\@citeb:=#2\do{\@citea\def\@citea{\citebet{}}%
+ \@ifundefined{b@\@citeb}{{\@eB\textbf{?}}\@warning%
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+{\csname b@\@citeb\endcsname}}}{#1}}
+\let\@internalcite\cite
+\def\cite{\@ifstar{\citeasnoun}{\new@cite}}
+\def\new@cite{\def\@citeseppen{-1000}%
+ \def\@cite##1##2{\citelb##1\if@tempswa\citepp ##2\fi\citerb }%
+ \def\citeauthoryear##1##2{{\citenf ##1} ##2}\def\@eB{}\@internalcite}%
+\def\citeasnoun{\def\@citeseppen{-1000}%
+ \def\@cite##1##2{##1\if@tempswa\citepp ##2\citeanrb\else\citeanrb\fi}%
+ \def\citeauthoryear##1##2{{\citenf ##1} \citeanlb##2}%
+ \def\@eB{(}\@internalcite}
+\def\citeyear{\def\@citeseppen{-1000}%
+ \def\@cite##1##2{##1\if@tempswa\citepp ##2\fi}%
+ \def\citeauthoryear##1##2{##2}\def\@eB{}\@internalcite}
+\def\citeauthor{\def\@citeseppen{-1000}%
+ \def\@cite##1##2{##1\if@tempswa\citepp ##2\fi}%
+ \def\citeauthoryear##1##2{{\citenf ##1}}\def\@eB{}\@internalcite}
+\endinput
+%%
+%% End of file `mlbib.sty'.
diff --git a/macros/latex/contrib/mlbib/paper.bst b/macros/latex/contrib/mlbib/paper.bst
new file mode 100644
index 0000000000..b6cc7595e1
--- /dev/null
+++ b/macros/latex/contrib/mlbib/paper.bst
@@ -0,0 +1,1182 @@
+FUNCTION {bye}
+{ "BibTeX-style: `paper 0.1b' <30-10-96> (wm)" top$
+ "German Documentation: `mlbib.dtx' <30-10-96> (wm)" top$
+}
+
+% BibTeX bibliography style `paper'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1991, 1993 all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst,
+ % paper.bst, journal.bst or thesis.bst.
+ % This restriction helps ensure that all standard styles are identical.
+
+% ACKNOWLEDGEMENT
+% This document is a modified version of `apalike.bst' to which it
+% owes much of its functionality.
+
+% USAGE
+% The file `mlbib.dtx' has the german documentation for this style.
+
+% AUTHOR
+% ___
+% wenzel matiaske | / /_/-Berlin
+% | mail: Technical University Berlin
+% | Dept. of Economics, WW6
+% | Uhlandstr. 4-5, D-10623 Berlin
+% | phone: +49 30 314-22574
+% | email: mati1831@perform.ww.tu-berlin.de
+
+% HISTORY
+% <0.1a> <31.07.93>
+% <0.1b> <30.10.96> updates for mlbib package
+
+% NOTE
+% There are undoubtably bugs in this program. Should you make
+% improvements, bug fixes, etc., however, I ask you to send improvements
+% back to me for incorporation into the macro for the rest of us.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ language
+% month %%% not used in paper.bst
+ note
+ number
+ organization
+ pages
+% publisher %%% not used in paper.bst
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label extra.label sort.label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output.nonnull.colon}
+{ 's :=
+ output.state mid.sentence =
+ { ": " * write$ }
+ { output.state after.block =
+ { ": " * write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.colon}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull.colon
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check.colon}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull.colon
+ if$
+}
+
+FUNCTION {item.check}
+{ 't :=
+ empty$
+ { "empty " t * " in " * cite$ * warning$ }
+ { skip$ }
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem[" write$
+ label write$
+ "}]{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ language empty$
+ 'skip$
+ { "{\bbl" language * write$ newline$ }
+ if$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+ language empty$
+ 'skip$
+ { "}" write$ newline$ }
+ if$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {shows}
+{ duplicate$ ":::: `" swap$ * "'" * top$
+}
+
+FUNCTION {showstack}
+{"STACK====================================================================="
+top$
+stack$
+"ENDSTACK=================================================================="
+top$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {bbltf}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bbltf " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {bblvf}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bblvf " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {bblquote}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\bbllqq" swap$ * "\bblrqq" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{v.~}{ll}{, jj.}{, f.}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { "/" * t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { "/" * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.in.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{f.~}{v.~}{ll}{, jj.}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { "}\bbland {\bblnf " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {output.year.check}
+{ year empty$
+ { "empty year in " cite$ * warning$ }
+ { write$
+ ", " year * extra.label *
+ }
+ if$
+}
+
+FUNCTION {format.key}
+{ empty$
+ { key field.or.null }
+ { "" }
+ if$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { "{\bblnf " * author format.names * "}" }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { "{\bblnf " * editor format.names * "}"
+ editor num.names$ #1 >
+ { " \bbleds" * }
+ { " \bbled" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.editors}
+{ editor empty$
+ { "" }
+ { "\bblbyed\ {\bblnf " editor format.in.names * "\/}" * }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { language empty$ % default english
+ { "\bbllq " title "t" change.case$ * "\bblrq" * } % language empty, then lower case
+ { language "english" = % non empty, equal english
+ { "\bbllq " title "t" change.case$ * "\bblrq" * } % then lower case,
+ { "\bbllq " title * "\bblrq" * } % else title
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.btitle}
+{ title bbltf
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { series empty$
+ { "\bblVol~" volume * }
+ { ". " * series bbltf * "\bblvol~" volume * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "\bblno " }
+ { "\bblNo " }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { ", " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { edition "l" change.case$ " \bbledit" * }
+ { edition "t" change.case$ " \bbledit" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { "\bblpp~" pages n.dashify * }
+ { "\bblp~" pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.volume}
+{ volume empty$
+ { "" }
+ { language empty$
+ { "\bblvol~" volume * }
+ { language "german" =
+ { volume "~\bbljvol" * }
+ { "\bblvol~" volume * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "chapter" }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.booktitle}
+{ booktitle empty$
+ { "" }
+ { "In: " booktitle bbltf * }
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "\bbltrep " }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { ", \bblno" * number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ "In:"
+ " \citeasnoun{" * crossref * "}" *
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In: "
+ }
+ { "\bblVol" volume tie.or.space.connect
+ ", in: " *
+ }
+ if$
+ "\citeasnoun{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ "In:"
+ " \citeasnoun{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ new.block
+ format.title "title" output.check.colon
+ new.block
+ crossref missing$
+ { journal empty$
+ { "empty journal in " cite$ * warning$ }
+ { " In: " journal bbltf * output }
+ if$
+ format.volume output
+ number output
+ output.year.check
+ format.pages output
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check.colon
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ format.edition output
+ address "address" output.check
+ output.year.check
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ new.sentence
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ new.block
+ format.title "title" output.check.colon
+ new.block
+ howpublished output
+ address output
+ output.year.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check.colon
+ crossref missing$
+ { format.in.booktitle "booktitle" output.check
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ format.edition output
+ address "address" output.check
+ output.year.check
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ new.block
+ format.title "title" output.check.colon
+ new.block
+ crossref missing$
+ { format.in.booktitle "booktitle" output.check
+ format.number.series output
+ format.bvolume output
+ format.in.editors output
+ new.sentence
+ format.edition output
+ address "address" output.check
+ output.year.check
+ format.chapter.pages output
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ new.block
+ format.title "title" output.check.colon
+ new.block
+ crossref missing$
+ { format.in.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ organization output
+ new.sentence
+ address output
+ output.year.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ new.block
+ format.btitle "title" output.check.colon
+ organization address new.block.checkb
+ format.edition output
+ organization output
+ address output
+ output.year.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ new.block
+ format.title "title" output.check.colon
+ new.block
+ "\bblmth" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ output.year.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ new.block
+ format.title output.colon
+ new.block
+ howpublished output
+ output.year.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ new.block
+ format.btitle "title" output.check.colon
+ new.block
+ "\bblphd" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ output.year.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ format.editors output
+ editor format.key output
+ new.block
+ format.btitle "title" output.check.colon
+ format.bvolume output
+ format.number.series output
+ new.sentence
+ organization output
+ address output
+ output.year.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ new.block
+ format.title "title" output.check.colon
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ output.year.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ new.block
+ format.title "title" output.check.colon
+ new.block
+ output.year.check
+ note "note" output.check
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {format.lab.names}
+{ 's :=
+ s #1 "{vv~}{ll}" format.name$
+ s num.names$ duplicate$
+ #2 >
+ { pop$ " et~al." * }
+ { #2 <
+ 'skip$
+ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { "/" * s #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.label
+ 'author.key.label
+ if$
+ }
+ if$
+ "\protect\citeauthoryear{{\citenf " swap$ * "\/}}{" *
+ year field.or.null purify$ #-1 #4 substring$
+ *
+ 'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.sort}
+{ editor empty$
+ { key empty$
+ { "to sort, need editor or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ calc.label
+ label sortify
+ " "
+ *
+ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.sort
+ 'author.sort
+ if$
+ }
+ if$
+ #1 entry.max$ substring$
+ 'sort.label :=
+ sort.label
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { last.label next.extra }
+
+INTEGERS { last.extra.num }
+
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'last.extra.num :=
+}
+
+FUNCTION {forward.pass}
+{ last.label label =
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'extra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'extra.label :=
+ label 'last.label :=
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ label extra.label * 'label :=
+ extra.label 'next.extra :=
+}
+
+EXECUTE {initialize.extra.label.stuff}
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+FUNCTION {bib.sort.order}
+{ sort.label
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {bib.sort.order}
+
+SORT
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{} \bblsize" write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+
+EXECUTE {bye}
+
+
+
diff --git a/macros/latex/contrib/mlbib/readme.03 b/macros/latex/contrib/mlbib/readme.03
new file mode 100644
index 0000000000..53327ff51b
--- /dev/null
+++ b/macros/latex/contrib/mlbib/readme.03
@@ -0,0 +1,34 @@
+The files in the archive MLBIB.ZIP include the following
+macros and files for LaTeX:
+
+ INSTALL.03 Driver for Installing the package
+ LOCAL03.TEX Input to the local LaTeX-guide "`local.tex"'
+ MLBIB.STY LaTeX-style file MLBIB
+ MLBIB.DTX LaTeX-style files MLBIB in DOC.STY option format
+ MLBIB.DVI Documentation in dvi format
+ JOURNAL.BST BibTeX style file JOURNAL
+(NR) JOURNAL.BIB BibTeX database of econ./psych./soc. journals (short form)
+ PAPER.BST BibTeX style file PAPER
+ THESIS.BST BibTeX style file THESIS
+ THESIS.BIB BibTeX database of econ./psych./soc. journals (long form)
+ README.03 This file
+ TEST03.TEX Example input text for MLBIB.STY
+ TEST03.BIB Example BibTeX Database
+
+Run `LaTeX install.03' for installing the package. Needs
+the `docstrip' utility.
+
+Updates are available via anonymous ftp to host
+`perform.ww.tu-berlin.de' or from CTAN.
+ ___
+wenzel matiaske | / /_/-Berlin
+ | mail: Technical University Berlin
+ | Dept. of Economics, WW6
+ | Uhlandstr. 4-5, D-10623 Berlin
+ | phone: +49 30 314-22574
+ | email: mati1831@perform.ww.tu-berlin.de
+
+
+
+
+
diff --git a/macros/latex/contrib/mlbib/test03.bbl b/macros/latex/contrib/mlbib/test03.bbl
new file mode 100644
index 0000000000..2a6249a290
--- /dev/null
+++ b/macros/latex/contrib/mlbib/test03.bbl
@@ -0,0 +1,41 @@
+\providecommand{\noopsort}[1]{} \providecommand{\printfirst}[2]{#1}
+ \providecommand{\singleletter}[1]{#1} \providecommand{\switchargs}[2]{#2#1}
+\begin{thebibliography}{} \bblsize
+
+\bibitem[\protect\citeauthoryear{{\citenf Aamport\/}}{1986}]{article-full}
+{\bblenglish
+{\bblnf Aamport, L.~A.}:
+\newblock \bbllq The gnats and gnus document preparation system\bblrq.
+\newblock In: {\bbltf \mbox{G-Animal's} Journal}, \bblvol~41, 7, 1986,
+ \bblpp~73+.
+\newblock This is a full ARTICLE entry (language = english).
+}
+
+\bibitem[\protect\citeauthoryear{{\citenf Knuth\/}}{1973}]{inbook-full}
+{\bblenglish
+{\bblnf Knuth, D.~E.}:
+\newblock {\bbltf Fundamental Algorithms}. {\bbltf The Art of Computer
+ Programming}, \bblvol~1, section 1.2, \bblpp~10--119.
+\newblock Second \bbledit, Reading, Massachusetts, {\noopsort{1973b}}1973.
+\newblock This is a full INBOOK entry (language = english).
+}
+
+\bibitem[\protect\citeauthoryear{{\citenf Knuth\/}}{1981}]{book-full}
+{\bblenglish
+{\bblnf Knuth, D.~E.}:
+\newblock {\bbltf Seminumerical Algorithms}. {\bbltf The Art of Computer
+ Programming}, \bblvol~2.
+\newblock Second \bbledit, Reading, Massachusetts, {\noopsort{1973c}}1981. This
+ is a full BOOK entry (language = english).
+}
+
+\bibitem[\protect\citeauthoryear{{\citenf Lipcoll
+ et~al.\/}}{1977}]{whole-collection}
+{\bblenglish
+{\bblnf Lipcoll, D.~J./Lawrie, D.~H./Sameh, A.~H.} \bbleds:
+\newblock {\bbltf High Speed Computer and Algorithm Organization}.
+\newblock \bblNo ~23, Fast Computers. Third \bbledit, New York, 1977. This is a
+ cross-referenced BOOK (collection) entry (language = english).
+}
+
+\end{thebibliography}
diff --git a/macros/latex/contrib/mlbib/test03.bib b/macros/latex/contrib/mlbib/test03.bib
new file mode 100644
index 0000000000..9b73f1ee4e
--- /dev/null
+++ b/macros/latex/contrib/mlbib/test03.bib
@@ -0,0 +1,356 @@
+@ARTICLE{article-minimal,
+ author = {L[eslie] A. Aamport},
+ title = {The Gnats and Gnus Document Preparation System},
+ journal = {\mbox{G-Animal's} Journal},
+ year = 1986,
+}
+
+@ARTICLE{article-full,
+ author = {L[eslie] A. Aamport},
+ title = {The Gnats and Gnus Document Preparation System},
+ journal = {\mbox{G-Animal's} Journal},
+ year = 1986,
+ volume = 41,
+ number = 7,
+ pages = "73+",
+ month = jul,
+ note = "This is a full ARTICLE entry (language = english)",
+ language = "english",
+}
+
+The KEY field is here to override the KEY field in the journal being
+cross referenced (so is the NOTE field, in addition to its imparting
+information).
+
+@ARTICLE{article-crossref,
+ crossref = {WHOLE-JOURNAL},
+ key = "",
+ author = {L[eslie] A. Aamport},
+ title = {The Gnats and Gnus Document Preparation System},
+ pages = "73+",
+ note = "This is a cross-referencing ARTICLE entry",
+}
+
+@ARTICLE{whole-journal,
+ key = "GAJ",
+ journal = {\mbox{G-Animal's} Journal},
+ year = 1986,
+ volume = 41,
+ number = 7,
+ month = jul,
+ note = {The entire issue is devoted to gnats and gnus
+ (this entry is a cross-referenced ARTICLE (journal))},
+}
+
+@INBOOK{inbook-minimal,
+ author = "Donald E. Knuth",
+ title = "Fundamental Algorithms",
+ publisher = "Addison-Wesley",
+ year = "{\noopsort{1973b}}1973",
+ chapter = "1.2",
+}
+
+@INBOOK{inbook-full,
+ author = "Donald E. Knuth",
+ title = "Fundamental Algorithms",
+ volume = 1,
+ series = "The Art of Computer Programming",
+ publisher = "Addison-Wesley",
+ address = "Reading, Massachusetts",
+ edition = "Second",
+ month = "10~" # jan,
+ year = "{\noopsort{1973b}}1973",
+ type = "Section",
+ chapter = "1.2",
+ pages = "10--119",
+ note = "This is a full INBOOK entry (language = english)",
+ language = "english",
+}
+
+@INBOOK{inbook-crossref,
+ crossref = "whole-set",
+ title = "Fundamental Algorithms",
+ volume = 1,
+ series = "The Art of Computer Programming",
+ edition = "Second",
+ year = "{\noopsort{1973b}}1973",
+ type = "Section",
+ chapter = "1.2",
+ note = "This is a cross-referencing INBOOK entry",
+}
+
+@BOOK{book-minimal,
+ author = "Donald E. Knuth",
+ title = "Seminumerical Algorithms",
+ publisher = "Addison-Wesley",
+ year = "{\noopsort{1973c}}1981",
+}
+
+@BOOK{book-full,
+ author = "Donald E. Knuth",
+ title = "Seminumerical Algorithms",
+ volume = 2,
+ series = "The Art of Computer Programming",
+ publisher = "Addison-Wesley",
+ address = "Reading, Massachusetts",
+ edition = "Second",
+ month = "10~" # jan,
+ year = "{\noopsort{1973c}}1981",
+ note = "This is a full BOOK entry (language = english)",
+ language = "english",
+}
+
+@BOOK{book-crossref,
+ crossref = "whole-set",
+ title = "Seminumerical Algorithms",
+ volume = 2,
+ series = "The Art of Computer Programming",
+ edition = "Second",
+ year = "{\noopsort{1973c}}1981",
+ note = "This is a cross-referencing BOOK entry",
+}
+
+@BOOK{whole-set,
+ author = "Donald E. Knuth",
+ publisher = "Addison-Wesley",
+ title = "The Art of Computer Programming",
+ series = "Four volumes",
+ year = "{\noopsort{1973a}}{\switchargs{--90}{1968}}",
+ note = "Seven volumes planned (this is a cross-referenced set of BOOKs)",
+}
+
+@BOOKLET{booklet-minimal,
+ key = "Kn{\printfirst{v}{1987}}",
+ title = "The Programming of Computer Art",
+}
+
+@BOOKLET{booklet-full,
+ author = "Jill C. Knvth",
+ title = "The Programming of Computer Art",
+ howpublished = "Vernier Art Center",
+ address = "Stanford, California",
+ month = feb,
+ year = 1988,
+ note = "This is a full BOOKLET entry",
+}
+
+@INCOLLECTION{incollection-minimal,
+ author = "Daniel D. Lincoll",
+ title = "Semigroups of Recurrences",
+ booktitle = "High Speed Computer and Algorithm Organization",
+ publisher = "Academic Press",
+ year = 1977,
+}
+
+@INCOLLECTION{incollection-full,
+ author = "Daniel D. Lincoll",
+ title = "Semigroups of Recurrences",
+ editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
+ booktitle = "High Speed Computer and Algorithm Organization",
+ number = 23,
+ series = "Fast Computers",
+ chapter = 3,
+ type = "Part",
+ pages = "179--183",
+ publisher = "Academic Press",
+ address = "New York",
+ edition = "Third",
+ month = sep,
+ year = 1977,
+ note = "This is a full INCOLLECTION entry",
+}
+
+@INCOLLECTION{incollection-crossref,
+ crossref = "whole-collection",
+ author = "Daniel D. Lincoll",
+ title = "Semigroups of Recurrences",
+ pages = "179--183",
+ note = "This is a cross-referencing INCOLLECTION entry",
+}
+
+@BOOK{whole-collection,
+ editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh",
+ title = "High Speed Computer and Algorithm Organization",
+ booktitle = "High Speed Computer and Algorithm Organization",
+ number = 23,
+ series = "Fast Computers",
+ publisher = "Academic Press",
+ address = "New York",
+ edition = "Third",
+ month = sep,
+ year = 1977,
+ note = "This is a cross-referenced BOOK (collection) entry
+ (language = english)",
+ language = "english",
+}
+
+@MANUAL{manual-minimal,
+ key = "Manmaker",
+ title = "The Definitive Computer Manual",
+}
+
+@MANUAL{manual-full,
+ author = "Larry Manmaker",
+ title = "The Definitive Computer Manual",
+ organization = "Chips-R-Us",
+ address = "Silicon Valley",
+ edition = "Silver",
+ month = apr # "-" # may,
+ year = 1986,
+ note = "This is a full MANUAL entry",
+}
+
+@MASTERSTHESIS{mastersthesis-minimal,
+ author = "{\'{E}}douard Masterly",
+ title = "Mastering Thesis Writing",
+ school = "Stanford University",
+ year = 1988,
+}
+
+@MASTERSTHESIS{mastersthesis-full,
+ author = "{\'{E}}douard Masterly",
+ title = "Mastering Thesis Writing",
+ school = "Stanford University",
+ type = "Master's project",
+ address = "English Department",
+ month = jun # "-" # aug,
+ year = 1988,
+ note = "This is a full MASTERSTHESIS entry",
+}
+
+@MISC{misc-minimal,
+ key = "Missilany",
+ note = "This is a minimal MISC entry",
+}
+
+@MISC{misc-full,
+ author = "Joe-Bob Missilany",
+ title = "Handing out random pamphlets in airports",
+ howpublished = "Handed out at O'Hare",
+ month = oct,
+ year = 1984,
+ note = "This is a full MISC entry",
+}
+
+@STRING{STOC-key = "OX{\singleletter{stoc}}"}
+
+@STRING{ACM = "The OX Association for Computing Machinery"}
+
+@STRING{STOC = " Symposium on the Theory of Computing"}
+
+@INPROCEEDINGS{inproceedings-minimal,
+ author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
+ title = "On Notions of Information Transfer in {VLSI} Circuits",
+ booktitle = "Proc. Fifteenth Annual ACM" # STOC,
+ year = 1983,
+}
+
+@INPROCEEDINGS{inproceedings-full,
+ author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
+ title = "On Notions of Information Transfer in {VLSI} Circuits",
+ editor = "Wizard V. Oz and Mihalis Yannakakis",
+ booktitle = "Proc. Fifteenth Annual ACM" # STOC,
+ number = 17,
+ series = "All ACM Conferences",
+ pages = "133--139",
+ month = mar,
+ year = 1983,
+ address = "Boston",
+ organization = ACM,
+ publisher = "Academic Press",
+ note = "This is a full INPROCEDINGS entry",
+}
+
+@INPROCEEDINGS{inproceedings-crossref,
+ crossref = "whole-proceedings",
+ author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis",
+ title = "On Notions of Information Transfer in {VLSI} Circuits",
+ organization = "",
+ pages = "133--139",
+ note = "This is a cross-referencing INPROCEEDINGS entry",
+}
+
+@PROCEEDINGS{proceedings-minimal,
+ key = STOC-key,
+ title = "Proc. Fifteenth Annual" # STOC,
+ year = 1983,
+}
+
+@PROCEEDINGS{proceedings-full,
+ editor = "Wizard V. Oz and Mihalis Yannakakis",
+ title = "Proc. Fifteenth Annual" # STOC,
+ number = 17,
+ series = "All ACM Conferences",
+ month = mar,
+ year = 1983,
+ address = "Boston",
+ organization = ACM,
+ publisher = "Academic Press",
+ note = "This is a full PROCEEDINGS entry",
+}
+
+@PROCEEDINGS{whole-proceedings,
+ key = STOC-key,
+ organization = ACM,
+ title = "Proc. Fifteenth Annual" # STOC,
+ address = "Boston",
+ year = 1983,
+ booktitle = "Proc. Fifteenth Annual ACM" # STOC,
+ note = "This is a cross-referenced PROCEEDINGS",
+}
+
+@PHDTHESIS{phdthesis-minimal,
+ author = "F. Phidias Phony-Baloney",
+ title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
+ school = "Fanstord University",
+ year = 1988,
+}
+
+@PHDTHESIS{phdthesis-full,
+ author = "F. Phidias Phony-Baloney",
+ title = "Fighting Fire with Fire: Festooning {F}rench Phrases",
+ school = "Fanstord University",
+ type = "{PhD} Dissertation",
+ address = "Department of French",
+ month = jun # "-" # aug,
+ year = 1988,
+ note = "This is a full PHDTHESIS entry",
+}
+
+@TECHREPORT{techreport-minimal,
+ author = "Tom Terrific",
+ title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
+ institution = "Fanstord University",
+ year = 1988,
+}
+
+@TECHREPORT{techreport-full,
+ author = "Tom T{\'{e}}rrific",
+ title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm",
+ institution = "Fanstord University",
+ type = "Wishful Research Result",
+ number = "7",
+ address = "Computer Science Department, Fanstord, California",
+ month = oct,
+ year = 1988,
+ note = "This is a full TECHREPORT entry",
+}
+
+@UNPUBLISHED{unpublished-minimal,
+ author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
+ title = "Lower Bounds for Wishful Research Results",
+ note = "Talk at Fanstord University (this is a minimal UNPUBLISHED entry)",
+}
+
+@UNPUBLISHED{unpublished-full,
+ author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot",
+ title = "Lower Bounds for Wishful Research Results",
+ month = nov # ", " # dec,
+ year = 1988,
+ note = "Talk at Fanstord University (this is a full UNPUBLISHED entry)",
+}
+
+@MISC{random-note-crossref,
+ key = {Volume-2},
+ note = "Volume~2 is listed under Knuth \cite{book-full}"
+}
diff --git a/macros/latex/contrib/mlbib/test03.tex b/macros/latex/contrib/mlbib/test03.tex
new file mode 100644
index 0000000000..2a45b83dba
--- /dev/null
+++ b/macros/latex/contrib/mlbib/test03.tex
@@ -0,0 +1,20 @@
+\documentclass[12pt]{article}
+
+\usepackage{german}
+\usepackage[noskip,paper]{mlbib}
+
+% \bblsinglelingual
+
+\begin{document}
+
+In seinem aufsehenerregenden Artikel diskutiert
+\citeasnoun{article-full} die Formatierung durch \emph{Gnats} und
+\emph{Gnus}. Seine šberlegungen basieren auf der Arbeit von
+\cite*[45~ff.]{book-full}. Weitere Vorarbeit leisteten
+\cite*{whole-collection}. \nocite{inbook-full}
+
+
+\bibliographystyle{paper}
+\bibliography{thesis,test03}
+\end{document}
+
diff --git a/macros/latex/contrib/mlbib/thesis.bib b/macros/latex/contrib/mlbib/thesis.bib
new file mode 100644
index 0000000000..6957977f94
--- /dev/null
+++ b/macros/latex/contrib/mlbib/thesis.bib
@@ -0,0 +1,313 @@
+% thesis.bib 15-Dec-90
+% last modification 30-Oct-96
+%
+% Copyright (C) 1990--1996 Wenzel Matiaske
+%
+% A short description of entry types for BibTeX database is included
+% at the beginning of the database
+%
+% For general use of BibTeX see O. Patashnik ``btxbst.doc'' or
+% L. Lamport ``LaTeX'' pp. 140-147
+%
+% Please send bug fixes and enhancements to the address below:
+% ___
+% wenzel matiaske | / /_/-Berlin
+% |
+% | mail: Technical University Berlin
+% | Dept. of Economics & Management, WW6
+% | Uhlandstr. 4-5, D-10623 Berlin
+% | phone: +49 30 314-22574
+% | fax: +49 30 314-21787
+% | email: W.Matiaske!ww!TU-Berlin!de
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Types of entries currently allowed in a BibTeX file:
+%%
+%% ARTICLE -- An article from a journal or magazine.
+%% - required fields: author, title, journal, year.
+%% - optional fields: volume, number, pages, month, note.
+%%
+%% BOOK -- A book with an explicit publisher.
+%% - required: author or edititor, title, publisher, year.
+%% - optional: volume, series, address, edition, month, note.
+%%
+%% BOOKLET -- A work that is printed and bound,
+%% but without a named publisher or sponsoring institution.
+%% - required: title.
+%% - optional: author, howpublished, address, month, year, note.
+%%
+%% CONFERENCE -- The same as INPROCEEDINGS,
+%% included for Scribe compatibility.
+%%
+%% INBOOK -- A part of a book,
+%% which may be a chapter (or section or whatever) and/or a range of pages.
+%% - required: author or editor, title, chapter and/or pages,
+%% publisher, year.
+%% - optional: volume, series, address, edition, month, note.
+%%
+%% INCOLLECTION -- A part of a book having its own title.
+%% - required: author, title, booktitle, publisher, year.
+%% - optional: editor, chapter, pages, address, month, note.
+%%
+%% INPROCEEDINGS -- An article in a conference proceedings.
+%% - required: author, title, booktitle, year.
+%% - optional: editor, pages, organization, publisher, address,
+%% month, note.
+%%
+%% MANUAL -- Technical documentation.
+%% - required: title.
+%% - optional: author, organization, address, edition, month,
+%% year, note.
+%%
+%% MASTERSTHESIS -- A Master's thesis.
+%% - required: author, title, school, year.
+%% - optional: address, month, note.
+%%
+%% MISC -- Use this type when nothing else fits.
+%% - required: ---
+%% - optional: author, title, howpublished, month, year, note.
+%%
+%% PHDTHESIS -- A PhD thesis.
+%% - required: author, title, school, year.
+%% - optional: address, month, note.
+%%
+%% PROCEEDINGS -- The proceedings of a conference.
+%% - required: title, year.
+%% - optional: editor, publisher, organization, address, month, note.
+%%
+%% TECHREPORT -- A report published by a school or other institution,
+%% usually numbered within a series.
+%% - required: author, title, institution, year.
+%% - optional: type, number, address, month, note.
+%%
+%% UNPUBLISHED -- A document having an author and title, but not formally
+%% published.
+%% - required: author, title, note.
+%% - optional: month, year.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+@string{aAW = "angewandte Arbeitswissenschaft"}
+@string{ADMS = "Administration and Society"}
+@string{AER = "American Economic Review"}
+@string{AfK = "Archiv f{{\"u}}r Kommunalforschung???"}
+@string{AJPS = "American Journal of Political Science"}
+@string{AJS = "American Journal of Sociology"}
+@string{AME = "Academy of Management Executive"}
+@string{AMJ = "Academy of Management Journal"}
+@string{AMR = "Academy of Management Review"}
+@string{AP = "American Psychologist"}
+@string{APSR = "American Political Science Review"}
+@string{ARP = "Annual Review of Psychology"}
+@string{ARS = "Annual Review of Sociology"}
+@string{AS = "The American Sociologist"}
+@string{ASQ = "Administrative Science Quarterly"}
+@string{ASR = "American Sociological Review"}
+@string{AdMJ = "Advanced Management Journal"}
+@string{AfSW = "Archiv f{{\"u}}r Sozialwissenschaft und Sozialpolitik"}
+@string{AuL = "Arbeit und Leistung"}
+@string{BAnz = "Bundesanzeiger"}
+@string{BB = "Betriebs Berater"}
+@string{BFuP = "Betriebswirtschaftliche Forschung und Praxis"}
+@string{BH = "Business Horizons"}
+@string{BIOM = "Biometrika"}
+@string{BJM = "British Journal of Management"}
+@string{BJS = "British Journal of Sociology"}
+@string{BS = "Behavioral Sciences"}
+@string{BT-Dr = "Bundestagsdrucksache"}
+@string{BW = "Der Betriebswirt"}
+@string{CMR = "California Management Review"}
+@string{DB = "Der Betrieb"}
+@string{DBW = "Die Betriebswirtschaft"}
+@string{DIAG = "Diagnostika"}
+@string{DU = "Die Unternehmung"}
+@string{DV = "Die Verwaltung"}
+@string{DoV = "Die {{\"o}}ffentliche Verwaltung"}
+@string{ECO = "Economica"}
+@string{EER = "European Economic Review"}
+@string{EaPM = "Educational and Psychological Measurement"}
+@string{FB = "Fortschrittliche Betriebsf{{\"u}}hrung"}
+@string{FB/IE = "Fortschrittliche Betriebsf{{\"u}}hrung/Industrial Engineering"}
+@string{FUB = "Freie Universit{{\"a}}t Berlin"}
+@string{GD = "Gruppendynamik"}
+@string{GS = "General Systems"}
+@string{HB = "Handelsblatt"}
+@string{HBR = "Harvard Business Review"}
+@string{HBS = "Harvard Business School"}
+@string{HCR = "Human Communication Research"}
+@string{HER = "Harvard Education Review"}
+@string{HF = "Human Factors"}
+@string{HIOP = "Handbook of Industrial and Organizational Psychology"}
+@string{HIOP = "Handbook of Industrial and Organizational Psychology"}
+@string{HM = "Harvard Manager"}
+@string{HO = "Human Organization"}
+@string{HOB = "The Handbook of Organizational Behavior"}
+@string{HR = "Human Relations"}
+@string{HRM = "Human Resource Management"}
+@string{HSP = "The Handbook of Social Psychology"}
+@string{HSR = "Historical Social Research"}
+@string{HUB = "Humboldt Universit{{\"a}}t Berlin"}
+@string{HWA = "Handw{{\"o}}rterbuch der Absatzwirtschaft"}
+@string{HWB = "Handw{{\"o}}rterbuch der Betriebswirtschaft"}
+@string{HWF = "Handw{{\"o}}rterbuch der F{{\"u}}hrung"}
+@string{HWO = "Handw{{\"o}}rterbuch der Organisation"}
+@string{HWP = "Handw{{\"o}}rterbuch des Personalwesens"}
+@string{HWPlan = "Handw{{\"o}}rterbuch der Planung"}
+@string{HWProd = "Handw{{\"o}}rterbuch der Produktionswirtschaft"}
+@string{HWR = "Handw{{\"o}}rterbuch des Rechnungswesens"}
+@string{HWS = "Handw{{\"o}}rterbuch der Sozialwissenschaften"}
+@string{HWStR = "Handw{{\"o}}rterbuch des Steuerrechts"}
+@string{HdA = "Humanisierung der Arbeit"}
+@string{HdSW = "Handw{{\"o}}rterbuch der Sozialwissenschaften"}
+@string{HdW = "Handbuch der Wirtschaftswissenschaften"}
+@string{HdWW = "Handw{{\"o}}rterbuch der Wirtschaftswissenschaften"}
+@string{IMR = "Industrial Management Review"}
+@string{IO = "Industrielle Organisation/Management-Zeitschrift"}
+@string{IR = "Industrial Relations"}
+@string{IJSA = "International Journal of Selection and Assessment"}
+@string{ISMO = "International Studies of Management and Organization"}
+@string{ISR = "Institute for Social Research"}
+@string{ISSJ = "International Social Science Journal"}
+@string{JASA = "Journal of the American Statistical Association"}
+@string{JABS = "Journal of Applied Behavioral Science"}
+@string{JAP = "Journal of Applied Psychology"}
+@string{JAPM = "Journal of Applied Psychology Monograph"}
+@string{JAS = "Journal of Applied Sociology"}
+@string{JASP = "Journal of Abnormal and Social Psychology"}
+@string{JBR = "Journal of Business Research"}
+@string{JBV = "Journal of Business Venturing"}
+@string{JBus = "Journal of Business"}
+@string{JCB = "Journal of Contemporary Business"}
+@string{JCR = "Journal of Consumer Research"}
+@string{JEBO = "Journal of Economic Behavior and Organization"}
+@string{JEL = "Journal of Economic Literature"}
+@string{JESP = "Journal of Experimental Social Psychology"}
+@string{JET = "Journal of European Training"}
+@string{JGM = "Journal of General Management"}
+@string{JHR = "Historical Social Research"}
+@string{JIE = "Journal of Industrial Economics"}
+@string{JITE = "Journal of Institutional and Theoretical Economics"}
+@string{JLE = "Journal of Law and Economics"}
+@string{JLEO = "Journal of Law, Economics and Organization"}
+@string{JM = "Journal of Management"}
+@string{JMS = "Journal of Management Studies"}
+@string{JoMP = "Journal of Mathematical Psychology"}
+@string{JoMS = "Journal of Mathematical Sociology"}
+@string{JMark = "Journal of Marketing"}
+@string{JOB = "Journal of Occupational Behavior"}
+@string{JOOP = "Journal of Occupational and Organizational Psychology"}
+@string{JP = "Journal of Psychology"}
+@string{JPE = "Journal of Public Economy"}
+@string{JPSP = "Journal of Personality and Social Psychology"}
+@string{JPers = "Journal of Personality"}
+@string{JSI = "Journal of Social Issues"}
+@string{JSP = "Journal of Social Psychology"}
+@string{JVB = "Journal of Vocational Behavior"}
+@string{JbSowi = "Jahrbuch f{{\"u}}r Sozialwissenschaften"}
+@string{JfB = "Journal f{{\"u}}r Betriebswirtschaft"}
+@string{KZfSS = "K{{\"o}}lner Zeitschrift f{{\"u}}r Soziologie und Sozialpsychologie"}
+@string{Komm = "Kommunikation"}
+@string{LRP = "Long Range Planning"}
+@string{MBR = "Multivariate Behavioral Research"}
+@string{MDE = "Managerial and Decision Economics"}
+@string{MIR = "Management International Review"}
+@string{MIT = "Massachusetts Institute of Technology"}
+@string{MR = "Managerial Review"}
+@string{MS = "Management Science"}
+@string{MW = "Management-Wissen"}
+@string{MZ = "Management Zeitschrift"}
+@string{MZFP = "Marketing ZFP"}
+@string{Merk = "Merkur"}
+@string{MittAB = "Mitteilungen zur Arbeitsmarkt- und Berufsforschung"}
+@string{NB = "Neue Betriebswirtschaft"}
+@string{NFA = "Neue Formen der Arbeitsorganisation"}
+@string{OAS = "Organization and Administrative Sciences"}
+@string{OBHP = "Organizational Behavior and Human Performance"}
+@string{ODY = "Organizational Dynamics"}
+@string{OE = "Organisationsentwicklung"}
+@string{OP = "Occupational Psychology"}
+@string{OS = "Organization Studies"}
+@string{OeB = "Der {{\"O}}sterreichische Betriebswirt"}
+@string{PA = "Personnel Administration"}
+@string{PAR = "Public Administration Review"}
+@string{PBULL = "Psychological Bulletin"}
+@string{PBei = "Psychologische Beitr{{\"a}}ge"}
+@string{PJ = "Personnel Journal"}
+@string{PM = "Psychological Monographs"}
+@string{POQ = "Public Opinion Quarterly"}
+@string{PP = "Personnel Psychology"}
+@string{PPM = "Public Personel Management"}
+@string{PR = "Psychological Review"}
+@string{PRJ = "Public Relations Journal"}
+@string{PRP = "Psychological Reports"}
+@string{PRQ = "Public Relations Quarterly"}
+@string{PSR = "Psychologische Rundschau"}
+@string{PSYCH = "Psychometrika"}
+@string{Pers = "Personal --- Mensch und Arbeit"}
+@string{PuA = "Planung und Analyse"}
+@string{PuP = "Psychologie und Praxis"}
+@string{QJE = "Quarterly Journal of Economics"}
+@string{ROB = "Research of Organizational Behavior"}
+@string{Stat = "The Statistician"}
+@string{SF = "Social Forces"}
+@string{SMJ = "Strategic Management Journal"}
+@string{SMR = "Sloan Management Review"}
+@string{SOFI = "Soziologisches Forschungsinstitut G{{\"o}}ttingen"}
+@string{SP = "Social Problems"}
+@string{SR = "Soziologische Revue"}
+@string{STATH2 = "Statistische Hefte (N.F.)"}
+@string{STATI1 = "Statistics"}
+%@string{STOCH1 = "Stochastica"}
+%@string{STOCH2 = "Stochastics"}
+@string{SUPQA = "Sage University Paper Series on Quantitative Applications in the Social Sciences"}
+@string{SW = "Soziale Welt"}
+@string{Soc = "Sociology"}
+@string{SocMR = "Sociological Methods \& Research"},
+@string{SocQ = "Sociological Quarterly"}
+@string{SuB = "Sozialwissenschaften und Berufspraxis"}
+@string{TDJ = "Training and Development Journal"}
+@string{TUB = "Technische Universit{{\"a}}t Berlin"}
+@string{UCLA = "University of California, Los Angeles"}
+@string{ULA = "ULA-Nachrichten"}
+@string{WISU = "Wirtschaftsstudium"}
+@string{WZB = "Wissenschaftszentrum Berlin"}
+@string{WiSt = "Wirtschaftswissenschaftliches Studium"}
+@string{Wpfg = "Die Wirtschaftspr{{\"u}}fung"}
+@string{ZAI = "ZA-Information"}
+@string{ZBR = "Zeitschrift f{{\"u}}r Beamtenrecht"}
+@string{ZFO = "Zeitschrift F{{\"u}}hrung + Organisation"}
+@string{ZfA = "Zeitschrift f{{\"u}}r Arbeitswissenschaft"}
+@string{ZfAO = "Zeitschrift f{{\"u}}r Arbeits- und Organisationspsychologie"}
+@string{ZfB = "Zeitschrift f{{\"u}}r Betriebswirtschaft"}
+@string{ZfDDP = "Zeitschrift f{{\"u}}r Differenzielle und Diagnostische Psychologie"}
+@string{ZfN = "Zeitschrift f{{\"u}}r National{{\"o}}konomie"}
+@string{ZfO = "Zeitschrift f{{\"u}}r Organisation"}
+@string{ZfP = "Zeitschrift f{{\"u}}r Psychologie"}
+@string{ZfPf = "Zeitschrift f{{\"u}}r Personalforschung"}
+@string{ZfS = "Zeitschrift f{{\"u}}r Soziologie"}
+@string{ZfSP = "Zeitschrift f{{\"u}}r Sozialpsychologie"}
+@string{ZfbF = "Zeitschrift f{{\"u}}r betriebswirtschaftliche Forschung"}
+@string{ZfgK = "Zeitschrift f{{\"u}}r das gesamte Kreditwesen"}
+@string{ZfgSt = "Zeitschrift f{{\"u}}r die gesamte Staatswissenschaft"}
+@string{ZfhF = "Zeitschrift f{{\"u}}r handelswissenschaftliche Forschung"}
+@string{ZUMA = "ZUMA Nachrichten"}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+@string{jan = "Januar"}
+@string{feb = "Februar"}
+@string{mar = "M{{\"a}}rz"}
+@string{apr = "April"}
+@string{mai = "Mai"}
+@string{jun = "Juni"}
+@string{jul = "Juli"}
+@string{aug = "August"}
+@string{sep = "September"}
+@string{okt = "Oktober"}
+@string{nov = "November"}
+@string{dez = "Dezember"}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+@preamble{ "\providecommand{\noopsort}[1]{} "
+ # "\providecommand{\printfirst}[2]{#1} "
+ # "\providecommand{\singleletter}[1]{#1} "
+ # "\providecommand{\switchargs}[2]{#2#1} " }
+
diff --git a/macros/latex/contrib/mlbib/thesis.bst b/macros/latex/contrib/mlbib/thesis.bst
new file mode 100644
index 0000000000..5bbb7a8bd5
--- /dev/null
+++ b/macros/latex/contrib/mlbib/thesis.bst
@@ -0,0 +1,1241 @@
+FUNCTION {bye}
+{ "BibTeX-style: `thesis 0.1h' <30-10-96> (wm)" top$
+ "German Documentation: `mlbib.dtx' <30-10-96> (wm)" top$
+}
+
+% BibTeX bibliography style `thesis'
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1991, 1993 all rights reserved.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst,
+ % thesis.bst, journal.bst or paper.bst.
+ % This restriction helps ensure that all standard styles are identical.
+
+% ACKNOWLEDGEMENT
+% This document is a modified version of `apalike.bst' to which it
+% owes much of its functionality.
+
+% USAGE
+% The file `mlbib.dtx' has the german documentation for this style.
+
+% AUTHOR
+% ___
+% wenzel matiaske | / /_/-Berlin
+% | mail: Technical University Berlin
+% | Dept. of Economics, WW6
+% | Uhlandstr. 4-5, D-10623 Berlin
+% | phone: +49 30 314-22574
+% | email: mati1831@perform.ww.tu-berlin.de
+
+% HISTORY
+% <0.1a> <15.12.90> german version, german labels, uppercase titles
+% <0.1b> <03.07.91> multilingual Version, `bib-labels', `if-titles'
+% <0.1c> <10.10.91> `bysame'
+% <0.1d> <31.01.93> `bbl-labels', compatible to `paper.bst', `tpbib.sty'
+% <0.1f> <20.10.94> format.in.ed.booktitle used in function inbook
+% <0.1g> <08.11.95> minor fixes
+% <0.1h> <30.10.96> updates for mlbib package
+
+% NOTE
+% There are undoubtably bugs in this program. Should you make
+% improvements, bug fixes, etc., however, I ask you to send improvements
+% back to me for incorporation into the macro for the rest of us.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+ language % special
+% month not used
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+% extra label ``samextra'' is used for repeating entries of on author.
+% extra label ``yearextra'' is used for defining entries like 1991a.
+ { label samextra.label yearextra.label sort.label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.year.check}
+{ year empty$
+ { "empty year in " cite$ * warning$ }
+ { write$
+ " \bbllb" year * yearextra.label * "\bblrb" *
+ mid.sentence 'output.state :=
+ }
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem[" write$
+ label write$
+ "}]{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ language empty$
+ 'skip$
+ { "{\bbl" language * write$ newline$ }
+ if$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+ language empty$
+ 'skip$
+ { "}" write$ newline$ }
+ if$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {shows}
+{ duplicate$ ":::: `" swap$ * "'" * top$
+}
+
+FUNCTION {showstack}
+{"STACK====================================================================="
+top$
+stack$
+"ENDSTACK=================================================================="
+top$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {bbltf}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bbltf " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {bblvf}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bblvf " swap$ * "}" * }
+ if$
+}
+
+FUNCTION {bblquote}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\bbllqq" swap$ * "\bblrqq" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 =
+ { s nameptr "{ll}{, ff}{~vv}{, jj}" format.name$ 't := }
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others" =
+ { "{\bblnf et~al.}" * }
+ { "{\bblnf \bbland}" * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.in.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others" =
+ { "{\bblnf et~al.}" * }
+ { "{\bblnf \bbland}" * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { samextra.label "\bysame" =
+ {"\bysame"}
+ { "{\bblnf " * author format.names * "}" }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.key}
+{ empty$
+ { key field.or.null }
+ { "" }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { samextra.label "\bysame" =
+ {"\bysame"}
+ { "{\bblnf " * editor format.names * "}" }
+ if$
+ editor num.names$ #1 >
+ { ", \bbleds{} " * }
+ { ", \bbled{} " * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.editors}
+{ editor empty$
+ { "" }
+ { "{\bblnf " * editor format.in.names * "}"
+ editor num.names$ #1 >
+ { ", \bbleds" * }
+ { ", \bbled" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { language empty$ % default english
+ { "\bbllq " title "t" change.case$ * "\bblrq" * } % language empty, then lower case
+ { language "english" = % non empty, equal english
+ { "\bbllq " title "t" change.case$ * "\bblrq" * } % then lower case,
+ { "\bbllq " title * "\bblrq" * } % else title
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.btitle}
+{ title bbltf
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { series empty$
+ 'skip$
+ { ", " * series bbltf * }
+ if$
+ "\bblvol~" volume *
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "\bblno~" }
+ { "\bblNo~" }
+ if$
+ number *
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { ", in " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { edition "l" change.case$ " \bbledit" * }
+ { edition "t" change.case$ " \bbledit" * }
+ if$
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { "\bblpp~" pages n.dashify * }
+ { "\bblp~" pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.journal.vol}
+{ journal empty$
+ { "empty journal name in " cite$ * warning$
+ "" }
+ { journal bbltf
+ volume empty$
+ 'skip$
+ { ", " * volume bblvf * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.number}
+{ volume empty$
+ { number empty$
+ { "empty volume and number in " cite$ * warning$
+ "" }
+ { "\bblno~" number * }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "\bblchap\" }
+ { type }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "In " booktitle bbltf * }
+ { "In " format.in.editors * ", " * booktitle bbltf * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "\bbltrep " }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { ", \bblno" * number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ "In"
+ " \citeasnoun{" * crossref * "}" *
+}
+
+FUNCTION {format.book.crossref}
+{ "In "
+ "\citeasnoun{" * crossref * "}" *
+ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ }
+ { ", \bblvol~" * volume *
+ }
+ if$
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ "In"
+ " \citeasnoun{" * crossref * "}" *
+}
+
+FUNCTION {format.addr.pub}
+{ publisher empty$
+ { address empty$
+ { "" }
+ { address }
+ if$
+ }
+ { address empty$
+ 'publisher
+ { address ": " * publisher * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.journal.vol "volume and number" output.check
+ format.number output
+ format.pages "pages" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ output.year.check
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ format.edition output
+ format.addr.pub "address and publisher" output.check
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ howpublished output
+ address "address" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check
+ editor format.key output
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle output
+ format.number.series output
+ format.bvolume output
+ format.chapter.pages output
+ new.sentence
+ format.edition output
+ format.addr.pub "address and publisher" output.check
+ }
+ { new.block
+ format.incoll.inproc.crossref output.nonnull
+ format.bvolume output
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ format.edition output
+ format.addr.pub "address and publisher" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.bvolume output
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address "address" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ output.year.check
+ new.block
+ format.btitle "title" output.check
+ organization address new.block.checkb
+ organization output
+ format.edition output
+ address output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "\bblmth" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ author format.key output
+ output.year.check
+ new.block
+ format.title output
+ new.block
+ howpublished output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "\bblphd" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ format.editors output
+ editor format.key output
+ output.year.check
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ new.sentence
+ organization output
+ address output
+ publisher output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output
+ output.year.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ fin.entry
+}
+
+FUNCTION {default.type} { misc }
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {format.lab.names}
+{ 's :=
+ s #1 "{f.~}{vv~}{ll}{, jj}" format.name$
+ s num.names$ duplicate$
+ #2 >
+ { pop$ " \textnormal{et~al.} " * }
+ { #2 <
+ 'skip$
+ { s #2 "{f.~}{vv~}{ll}{, jj}" format.name$ "others" =
+ { " \textnormal{et~al.}" * }
+ { "\textnormal{\bbland}" * s #2 "{f.~}{vv~}{ll}{, jj}" format.name$ * }
+ if$
+ } % three possibilities: F. Last
+ if$ % F. Last and F. Last
+ } % F. et al.
+ if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.label
+ 'author.key.label
+ if$
+ }
+ if$
+ "\protect\citeauthoryear{" swap$ * "}{" *
+ year field.or.null purify$ #-1 #4 substring$
+ *
+ 'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{ll{ }}{ f{ }}{ vv{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.sort}
+{ editor empty$
+ { key empty$
+ { "to sort, need editor or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ calc.label
+ label sortify
+ " "
+ *
+ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.sort
+ 'author.sort
+ if$
+ }
+ if$
+ #1 entry.max$ substring$
+ 'sort.label :=
+ sort.label
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { last.label next.extra prev.author prev.editor }
+
+INTEGERS { last.extra.num }
+
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'last.extra.num :=
+ "abcxyz" 'prev.author :=
+}
+
+FUNCTION {forward.pass}
+{ last.label label =
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'yearextra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'yearextra.label :=
+ label 'last.label :=
+ }
+ if$
+ author empty$
+ { editor empty$
+ 'skip$
+ { editor prev.editor =
+ editor prev.author =
+ or
+ { "\bysame" 'samextra.label := }
+ { "" 'samextra.label :=
+ editor 'prev.editor :=
+ }
+ if$
+ }
+ if$
+ }
+ { author prev.author =
+ author prev.editor =
+ or
+ { "\bysame" 'samextra.label := }
+ { "" 'samextra.label :=
+ author 'prev.author :=
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'yearextra.label := }
+ 'skip$
+ if$
+ label yearextra.label * 'label :=
+ yearextra.label 'next.extra :=
+}
+
+EXECUTE {initialize.extra.label.stuff}
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+FUNCTION {bib.sort.order}
+{ sort.label
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {bib.sort.order}
+
+SORT
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{} \bblsize" write$ newline$
+ "\ifx\undefined\bysame" write$ newline$
+ "\newcommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\ }"
+ write$ newline$
+ "\fi" write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+
+EXECUTE {bye}
+