From 2e59afec9907d090fa6cb3d54066333df8826741 Mon Sep 17 00:00:00 2001 From: "Dr. Clea F. Rees" Date: Wed, 10 Dec 2008 20:50:19 +0000 Subject: multibib update 2008/12/10 git-svn-id: svn://tug.org/texlive/trunk@11585 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/bibtex/bst/multibib/mbunsrtdin.bst | 1333 ++++++++++++++++++++ Master/texmf-dist/doc/latex/multibib/README | 28 +- Master/texmf-dist/doc/latex/multibib/bibtexall | 18 +- Master/texmf-dist/doc/latex/multibib/multibib.pdf | Bin 329634 -> 215343 bytes .../texmf-dist/source/latex/multibib/multibib.dtx | 267 +++- .../texmf-dist/source/latex/multibib/multibib.ins | 42 +- Master/texmf-dist/tex/latex/multibib/multibib.sty | 140 +- 7 files changed, 1720 insertions(+), 108 deletions(-) create mode 100644 Master/texmf-dist/bibtex/bst/multibib/mbunsrtdin.bst (limited to 'Master') diff --git a/Master/texmf-dist/bibtex/bst/multibib/mbunsrtdin.bst b/Master/texmf-dist/bibtex/bst/multibib/mbunsrtdin.bst new file mode 100644 index 00000000000..8d5a3fb2896 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/multibib/mbunsrtdin.bst @@ -0,0 +1,1333 @@ +%% UNSRTDIN.BST Ausgabe [8] 10/10/00 +%% (C) Klaus F. Lorenzen, Hamburg email: lorenzen.marxen@t-online.de +%% ersetzt UNSRTDIN.BST Ausgabe [7,1] 23/11/99 +%% ersetzt DINUNSRT.BST +%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +%% UNSRTDIN.BST wurde entwickelt aus BibTeX standard bibliography style +%% `unsrt'.Mit UNSRTDIN.BST werden Literaturverzeichnisse gemaess der deutschen +%% Zitiernorm DIN 1505 Teil 2 formatiert. +%% Analog zu den 4 US standard styles wird ein vollstaendiger Satz von +%% 4 DIN-gerechten bst-style Dateien veroeffentlicht (alphadin.bst, +%% plaindin.bst, unsrtdin.bst, abbrvdin.bst). Die gueltige Version +%% ist am schnellsten aus dem WWW ueber folgende URL zu beziehen +%% http://www.fh-hamburg.de/pers/Lorenzen/bibtex/ +%% Stand: 16/6/99 +%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +% +%% WAS IST UNSRTDIN.BST ? +%% Dieser style produziert Literaturzitate in Literaturverzeichnissen +%% gemaess der deutschen Norm DIN 1505, Teil 2 vom Jan. 1984. +%% Die Reihenfolge der Zitate im Literaturverzeichnis entspricht der Zitierung +%% im Text. Form und Gestaltung entsprechen der von plaindin.bst. +%% Es gibt Unterschiede zwischen der US- und der deutschen Zitierkonvention, +%% was die bibliographischen Typen und die verschiedenen Trennzeichen zwischen +%% den Feldern angeht. Daher ist auch keine 100%ige Abbildung der beiden +%% Regelwerke aufeinander moeglich. Dies ist aber immer durch eine achtsame +%% Erfassung beherrschbar! Die vorliegenden DIN-styles versuchen einige +%% bibliographische Beschraenkungen der Originalstyles zu ueberwinden. +%% Es laesst sich in fast allen Faellen problemlos ein Original-bib-file +%% (d.i. die Datenbank, die die bibliographischen Informationen enthaelt) +%% wahlweise nach US-Norm oder deutscher DIN-Norm verarbeiten. +%% [Beispiel: Produzieren Sie mit der XAMPL.bib-Datenbank aus dem Original- +%% paket 2 verschiedene Literaturverzeichnisse.] Zu Gunsten +%% der Allgemeingueltigkeit von bib-files ist bei den Publikationstypen +%% (entry-types) und den bibliographischen Kategorien (fields) in Zweifels- +%% faellen immer (ja, mit endlichen Ausnahmen) die originale US-Bedeutung +%% beibehalten worden. Bei der Erfassung von Literaturquellen in bib-files +%% gelten folglich die in der TEX-Literatur veroeffentlichten Regeln. +%% Kommt es dennoch zu kleineren "Schoenheitsfehlern" im fertig gesetzten +%% output, so koennen diese so gut wie immer durch eine leicht veraenderte +%% Erfassung im bib-inputfile beseitigt werden. Last but not least koennen +%% Sie im output-file < *.bbl > noch letzte Hand zur Korrektur ansetzen. +% +%% UMGANG MIT FEHLERMELDUNGEN +%% Noch nicht alle ueberfluessigen Fehlermeldungen des Original-style sind +%% ausgemerzt. Die meisten Warnmeldungen beruhen auf +%% den andersartigen bibliographischen Regeln nach DIN 1505 und dem damit +%% verbundenen Ermessensspielraum, sind also in Wahrheit keine "Fehler". +%% Dennoch sollten Sie diese Warnungen beachten, um heraus zu finden, ob +%% evtl. eine unzulaessige Kombination von Publikationstyp (=entry-type) und +%% "fields" vorgenommen worden ist. Das fuehrt mitunter zu Wasserfallartigen +%% Fehlermeldungen: meistens duerfen Sie das einfach ignorieren. +%% +%% DANKSAGUNG +%% Hartmut Lueddecke, FH Hamburg habe ich fuer viele Verbesserungsvorschlaege +%% und stete Unterstuetzung zu danken. Vielen an dieser Stelle ungenannt +%% bleibenden Anwendern gilt mein Dank, die in den vergangenen Jahren durch +%% ihre Aufmerksamkeit dazu beigetragen haben, Fehler auszumerzen und +%% Verbesserungen vorzunehmen. +%% +%% HINWEIS: es gibt eine Kombination von ALPHADIN.BST mit dem NATBIB-Stil +%% von Patrick W.Daly), womit Literaturverzeichnisse komplett nach +%% DIN 1505 Teil 2 UND Teil 3 formatiert werden koennen. Naeheres +%% per URL http://www.fh-hamburg.de/pers/Lorenzen/bibtex/ +%% +%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +%% Eine ausfuehrliches Internet-Tutorial mit Beispielen ist in Vorbereitung. +%% Fuer den Anfang ist diese Datei schon etwas kommentiert! +%% Kritik, Vorschlaege usw. bitte an : +%% FH Hamburg, Klaus F. Lorenzen, Grindelhof 30, 20146 Hamburg +%% e-mail: lorenzen.marxen@t-online.de +%% 16/6/99 +%% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +% version 0.99c for BibTeX versions 0.99c or later, LaTeX2e +% Copyright (C) 1985, 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 +% bstdin.doc, plaindin.bst, unsrtdin.bst, alphadin.bst, and abbrvdin.bst. +% This restriction helps ensure that all standard styles are identical. +%% ==> The file btxbst.doc has the original documentation for style 'alpha'. +%% + +ENTRY + { address %% Verlagsort + author %% persoenlicher Urheber eines Werkes + booktitle %% a) Gesamttitel eines mehrbaendigen Werkes +% %% b) Titel des Sammelwerks, das einzelne selbstaendige +% %% Beitraege mit eigenem Titel enthaelt (->incollection) + chapter %% Kapitel in einem Buch (Monographie) + edition %% Auflagevermerk + editor %% Persoenl.Herausgeber oder Koerperschaftlicher Herausgeber + howpublished %% beliebiger Verlegervermerk: von wem, wo + institution %% Institution, die e.Verlagsfreie Veroeffentlichung betreibt + isbn %% Standardnr fuer Buecher + issn %% - " - : Zeitschriften u. Serien + journal %% Titel einer Zeitschrift + key %% Zusaetzlich vergebener Sortierschluessel, mitunter notwend. + month %% naehere Bestimmung des Erscheinungsjahres (-> macro 's) + note %% freies Eingabefeld fuer zusaetzliche Informationen + number %% Mehrfachbedeutung in Abhaengigkeit vom Eingabetyp + organization %% a) Name der Organisation/des Organisators e. Tagung,Konferenz +% %% b) Name einer Firma/Gesellschaft, die ein ->manual herausgab + pages %% Umfangsangaben, meist Seitenzahlen + publisher %% Verlag + school %% Hochschule/Universitaet, die eine Dipl.-Arb./Dissertation veroeff. + series %% Titel e.Reihe, in der ein best. Buchtitel erschienen ist + title %% Titel einer (namentlich gekennzeichneten) Veroeffentlichung + type %% Zusatzfeld z.Kennzeichnung e.besonderen Publikationstyps + volume %% a) Zaehlung bei einem mehrbaendigen Werk (-> book) +% %% b) Jahrgang einer Zeitschrift (-> article + year %% Erscheinungsjahr + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +%% die folg. BOOLE'sche VAR steuern d. Ausg. ": " nach Urheber-Feldern +%% und ". - " vor ISBN oder Anmerkungen (NOTE) + +INTEGERS { colon.after period.dash } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'colon.after := + #5 'period.dash := +} +INTEGERS { zahl lang } + +STRINGS { h s t u v } + +%% neue DIN-Funktion, 16/2/94 + +FUNCTION {output.nonnull} +{ 's := + output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + { write$ } + { output.state colon.after = + { ": " * write$ + newline$ + "\newblock " write$ + } + { output.state period.dash = + { ". -- " * write$ + newline$ + "\newblock " write$ + } + { output.state mid.sentence = + { ", " * write$ } + { write$ + newline$ + "\newblock " write$ + } + if$ + } + if$ + } + if$ + } + if$ + after.block '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.bibitem} +{ newline$ +% Do no write label; incompatible with multibib and continous labels TH 2008-11-05 +% "\bibitem[" write$ +% label write$ +% "]{" write$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} %%$$$ nach DIN neu 16/2/94 +{ write$ + newline$ +} + +FUNCTION {set.period.dash} %% Wenn ein ". - " die Satzteile trennen soll.! +{ output.state before.all = + 'skip$ + { period.dash 'output.state := } + if$ +} + +%% neu 16/2/94 +%% prueft, ob PAGES, ISBN- oder NOTE-Feld vh. ist und setzt dann ". - " davor. + +FUNCTION {set.period.dash.check} +{ empty$ + 'skip$ + 'set.period.dash + if$ +} + +FUNCTION {set.colon.after} %%$$$ Wenn ein ": " d. Satzteile trennen soll! +{ output.state before.all = + 'skip$ + { colon.after 'output.state := } + if$ +} + +%% neu / alt 17/2/94 Wenn ein " " die Satzteile trennen soll.! +FUNCTION {new.sentence} +{ output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ +} + +%% neu 17/2/94 Wenn ein ", " die Satzteile trennen soll.! +FUNCTION { part.of.sentence } +{ output.state before.all = + 'skip$ + { mid.sentence 'output.state := } + if$ +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +INTEGERS { nameptr namesleft numnames } + +STRINGS { fkt } + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +%% neu, setzt Autor/Hrsg. in Kapitaelchen 9/3/94 +FUNCTION { capitalize } + { duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} + +%%$$$ DIN-Quellenangabe : spezieller unselbst. Teil ist erschienen "In: " +%% dem bibliogr. selbst. Werk, z.B. Zeitschrift, Buch + +%% 1/4/96 +FUNCTION {article.in.journal} +{ duplicate$ empty$ + { pop$ "" } + { author missing$ + { title missing$ + { emphasize " " * * }%% wenn ein Zs-Heft als ganzes zitiert wird + { emphasize "{In: }" swap$ " " * * } + if$ + } + { emphasize "{In: }" swap$ " " * * } + if$ + } + if$ +} + +%% nach Vorschlag von H.Lueddecke, um Adelspraedikate beim Sortieren +%% nach den(m) Vornamen aufzufuehren. Lo, 2/11/94 +FUNCTION {format.names} +{ 's := + "" 'u := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{vv~}{ll}" format.name$ 't :=%% das ergibt DIN-Ansetzung + %% Lue's Vorschlag s nameptr "{ll}" format.name$ 't := + t capitalize 't := + s nameptr "{, ff}" format.name$ 'u := + %% Lue's Vorschlag s nameptr "{, ff}{ vv}" format.name$ 'u := + u text.length$ 'lang := + #1 'zahl := + "" 'v := + { zahl lang < } + { u zahl #1 substring$ "~" = + { v "" = + { u #1 zahl #1 - substring$ 'v := } + 'skip$ + if$ + v u zahl #2 substring$ * "." * 'v := } + 'skip$ + if$ + zahl #1 + 'zahl := } + while$ + v "" = + { u 'v := } + 'skip$ + if$ +%% der string fkt enthaelt " (Hrsg.)", wenn Editorfeld nicht leer ist + t v * fkt * 't := %% Komma nach Nachnamen wird oben erledigt! + %% t enthaelt nun d. formatierten Nnamen, Vnamen + nameptr #1 > + { namesleft #1 > + { " ; " * t * } + { numnames #2 > + { " " * } + 'skip$ + if$ +%% %% n. schindle's hinweis 12/1/96 erweitert + t "\textsc{others}" = t "\textsc{others} (Hrsg.)" = or + { " [u.~a.]" * }%% 13/2/94 +%%%% { "et~al." * } %% Geschmackssache, waehle eins von beiden + { " ; " * t * } + if$ + } + if$ %% Ende der namesleft-Pruefung + } + 't + %% hierdurch wird bei jed. Schleifendurchgang das sich komplet- + %% tierende Zwischen-Namensergebnis wieder auf den stack gelegt + + if$ %% Ende der nameptr-Pruefung + + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ %% Ende von { namesleft #0 > } ganz oben + "" 'fkt := %% fkt wird zurueckgesetzt +} + +%%$$$ geaendert 14/2/94 + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +%%$$$ geaend. 20/2/94 Anpassung an DIN, wonach Autor + Hrsg. zusammen vorkom- +%% men duerfen.!! + +FUNCTION {format.editors} +{ editor empty$ + { author empty$ + { "Weder Verfasser noch Hrsg. in " cite$ * warning$ } + 'skip$ + if$ + } + { author empty$ + { " (Hrsg.)" 'fkt := + editor format.names + } + { " (Hrsg.)" 'fkt := + " ; " * editor format.names * + } + if$ + } + if$ + } + +%% Lo, 12/5/99 neue Funktion fuer proceedings, misc usw. + +FUNCTION { format.editors.organization } +{ organization empty$ + 'skip$ + { type$ "misc" = + { organization } + { " ; " * organization " (Veranst.)" *} + if$ + } + if$ +} + +%%$$$ Sonderfall: Herausgeber bei Typ incollection, 21/2/94 +FUNCTION {format.ed.incoll} +{ editor empty$ + { "" } + { " (Hrsg.)" 'fkt := + editor format.names + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } %% Text so wie er dasteht im Feld title + 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$ +} + +%% geaendert 24/2/94 +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ %% b. Buechern nur Jahr, ohne Monat ausgeb. im Impressum + 'year + { month " " * year * } + if$ + } + if$ +} + +%% +%%$$$ neue Fkt., 16/2/94 u. 14/3/94 das sog. Impressum +FUNCTION {format.address.publisher.year} +{ publisher empty$ + { address empty$ + { year empty$ + { "" } + { year } + if$ + } + { "Es gibt einen Verlagsort, aber keinen Verlag in " cite$ * warning$ + address ", " * format.date * + } + if$ + } + { address empty$ + { year empty$ + { "Es gibt nur eine Verlagsangabe in " cite$ * warning$ + publisher + } + { publisher ", " * format.date * } + if$ + } + { year empty$ + { address " : " * publisher * } + { address " : " * publisher * ", " * format.date * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + + +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$ +} + +%% neu 8/3/94 in dieser Funkt. steckt im volume empty-Teil noch ein bug, der +%% aber ignoriert werden kann; das Ergebnis ist ok. +FUNCTION {format.btitle.vol} +{ number empty$ + { series empty$ + { volume empty$ + { title emphasize } + { title emphasize ". Bd." * volume tie.or.space.connect } + if$ + } + { volume empty$ + { title emphasize }%% ein Buch, das zusaetzl. SERIES=Reihentitel besitzt + %% jetzt kommt d. Fall des mehrbaendigen Werkes mit Gesamttitel=SERIES + %% Zaehlung=VOLUME und Bandtitel=TITLE; + { series emphasize ". Bd." * volume tie.or.space.connect + ": " * "{\emph{" * title * "}}" * } + if$ + } + if$%% series-test + } + { title emphasize }%% wenn number ex., dann immer title-Feld + if$%% Ende number-test +} + +%%$$$ neu 16/2/94 +%% Serien- / Reihentitel werden im Feld series gespeichert. Weist die +%% Serie eine Zaehlung der Einzeltitel auf, gibt man entweder nach DIN alles +%% in das Feld series so ein: ---> TITEL DER SERIE NR. (der Vorlage) <--- +%% z. B. SERIES= { Mensch und Computer 12 }. +%% [ Die Nummer der Vorlage darf auch durch " ; " abgesetzt werden. ] +%% oder: +%% man gibt die Zaehlung in das Feld NUMBER ein, z.B. NUMBER = {12}. +%% Achtung!! +%% Bei mehrbaendigen Werken steht d. Gesamttitel im Feld SERIES und die +%% Bandzaehlung im Feld VOLUME; NUMBER darf dann nicht besetzt sein! +%% Anderenfalls liegt ein Erfassungsfehler vor, da sich Reihe u. mehrbd. +%% Werk gegenseitig ausschliessen. + +FUNCTION {format.series.number.din} +{ volume empty$ + { number empty$ + { series empty$ + { "" }%% Ausstieg mit Nullstring + { "(" series * ")" * } %% d. Seriennr koennte auch gleich hier + %% im SERIES-Feld miterfasst werden + if$ + } + { series empty$ + { "(" number tie.or.space.connect ")" * + "there's a number but no series in " cite$ * warning$ + } + { "(" series * number tie.or.space.connect ")" * } + if$ + } + if$ + } + { series empty$ + { "" } + { type$ "proceedings" = %% Sonderfall, es darf VOLUME und NUMBER ex. ! + { number empty$ + { "(" series * ")" * } + { "(" series * number tie.or.space.connect ")" * } + if$ + } + { "" }%% Ausstieg mit Nullstring, s. Kommentar + if$ + }%% bei gezaehlten Reihen MUSS die Reihennr. im Feld NUMBER stehen! + if$ %% wenn also d. Feld VOLUME nicht leer ist, dann liegt ausser bei + %% Typ PROCEEDINGS falsche + } %% Erfassung vor und es erfolgt d. Ausstieg mit d. Nullstring! + if$ +} + +%% seltener Fall bei MISC: Ausgabe einer Serie; die Nummer der Serie muss +%% in SERIES miterfasst werden 16/6/99 + +FUNCTION {format.misc.series} +{ series empty$ + { "" } + { "(" series * ")" * } + if$ +} + + +%%$$$ 16/2/94 +%% Auflagenvermerke gibt man komplett, einschliesslich Abkuerzungen in +%% das Feld edition ein: ---> EDITION= { 3., erw. und verb. Aufl. } +%% oder fremdsprachlich: EDITION= { 2nd edition } + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition } + if$ +} + +%%$$$ neu, 18/3/94 +FUNCTION { format.isbn.issn } +{ isbn empty$ + { issn empty$ + { "" } + { "ISSN" issn n.dashify tie.or.space.connect } + if$ + } + { "ISBN" isbn n.dashify tie.or.space.connect } + if$ +} + +%%$$$ geaendert, 21/2/94 gibt Seitenzahl bei BOOK-Typ und verwandten T. aus +FUNCTION {format.pages.book} +{ pages empty$ + { "" } + { "" pages n.dashify tie.or.space.connect " S" *} %% 17/12/95 + if$ +} + +%%$$$ alle anderen Seitenang. zB. Zeitschrft., INBOOK usw. a la Orig., 9/3/94 +FUNCTION {format.pages} +{ pages empty$ + { "" } + { "S." pages n.dashify tie.or.space.connect } + if$ +} + +%% Angaben v. Jahrgang, Jahr, Heftnr., Seiten bei Artikel-Typ +%% 14/3/94, 26/2/97 + +FUNCTION {format.vol.year.num.pages} +{ volume field.or.null + year empty$ + { "Es gibt einen Jahrgang, aber kein Jahr in " cite$ * warning$ } + { " (" year * ")" * * } + if$ + month empty$ + 'skip$ + { ", " month * * } + if$ + number empty$ + 'skip$ + { ", Nr. " number * * } + if$ + pages empty$%% Lo, 26/2/97 + 'skip$ + { ", " format.pages * *}%% + if$ + +%% pages empty$%% das war die Fass. Nov. 96, die auch ging +%% 'skip$ +%% { duplicate$ empty$ +%% { pop$ format.pages }%% da pages leer, wird nur "" auf stack gelegt +%% { ", " format.pages * *} +%% if$ +%% } +%% if$ + +} + +%% geaendert 21/2/94 +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Kapitel " } + { type } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +%%$$$ geaendert 21/2/94 +FUNCTION {format.in.ed.booktitle.din} +{ booktitle empty$ + { "" } + { editor empty$ + { volume empty$ + { "{In: }" booktitle emphasize * }%% n. Belieben fettes In: + { "{In: }" booktitle emphasize * %% - " - + " Bd." volume tie.or.space.connect * + } + if$ + } + { volume empty$ + { "{In: }" format.ed.incoll * ": " * booktitle emphasize * } + { "{In: }" format.ed.incoll * ": " * booktitle emphasize * + " Bd." volume tie.or.space.connect * + } + if$ + } + if$ + } + if$ +} + +%% geaendert 1/3/94 +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type + } + if$ +} + +%% geaendert 23/2/94 i.Orig. wird zuerst die number, dann der type getestet +FUNCTION {format.tr.number.din} +{ type empty$ + { number empty$ + { " -- Forschungsbericht" } %% bei Minimalangaben besser ohne "."! + { "(" number tie.or.space.connect "). -- Forschungsbericht" * } + if$ + } + { number empty$ + { " -- " type * } %% bei Minimalangaben besser ohne "."! + { "(" number tie.or.space.connect "). -- " * type * } + if$ + } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "{In: }{\em " journal * "\/}" * }%% + if$ + } + { "{In: }" key * }%% + if$ + "{\cite{" * crossref * "}" * "}" * ", " * format.pages * +%% " (siehe \cite{" * crossref * "}" * "), " * format.pages * +} + +%%geaendert 7/3/94 und noch einmal nach Lueddecke, s.o. +FUNCTION {format.crossref.editor} +%vorher,Lue { editor #1 "{vv~}{ll}" format.name$ " (Hrsg.)" * + { editor #1 "{ll}" format.name$ " (Hrsg.)" * + editor num.names$ duplicate$ + #2 > + { pop$ " [u.~a.]" * } +%% { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " [u.~a.]" } +%% { " et~al." * } + { " ; " * editor #2 "{vv~}{ll}" format.name$ * " (Hrsg.)" * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "{\texttt{siehe}} " +%% "(siehe " + } + { ". -- Bd." volume tie.or.space.connect + " von " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "" * }%% dadurch kommt nach der Bandzaehl. gleich das label 2/6/99 +%% { "{\emph{" * series * "}} {\texttt{siehe}}" * } + if$ + } + { key * } + if$ + } + { "" * }%% nach der Bandzaehlung kommt gleich das label; Lo 2/6/99 +%% { format.crossref.editor * } + if$ + "{\cite{" * crossref * "}" * "}" * +%% "{\cite{" * crossref * "}" * "}" * %%"), " * format.pages * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "{In: }{\emph " booktitle * "}" * }%% fettes In: n. Belieben + if$ + } + { "{In: }" }%% 26/5/99 +%% { "{In: }" key * } + if$ + } +%% { "{In: }{\em " booktitle * "\/}" * }%% + { "{In: }" }%% Lo, 10/2/99 es sieht der reine Bezug (Referenz) besser aus! + if$ +%% " (siehe \cite{" * crossref * "}" * "), " * format.pages * + "{\cite{" * crossref * "}" * "}" * ", " * format.pages *%% das fette label, Lo 23/2/99 +%% alte Vers. bis 27/2/97 " (siehe \cite{" * crossref * "}" * ")" * +} + +%%geaendert +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + set.colon.after + format.title "title" output.check + crossref missing$ + { journal article.in.journal output.nonnull % 26/2/97 + new.sentence + format.vol.year.num.pages output + } + { format.article.crossref output.nonnull } + if$ + note set.period.dash.check + note output + issn set.period.dash.check + format.isbn.issn output + fin.entry +} + +%%$$$ geaendert, 20/2/94 +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors format.editors output.nonnull } + if$ + set.colon.after + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + format.edition "edition" output.check + format.address.publisher.year "publisher" output.check + new.sentence + crossref missing$ + { format.series.number.din output + pages set.period.dash.check%% 19/5/99 wie bei adinat.bst + format.pages.book output + } + { format.book.crossref output.nonnull + pages set.period.dash.check + format.pages.book output + } + if$ + note set.period.dash.check + note output + isbn set.period.dash.check + format.isbn.issn output + fin.entry +} + +%% geaendert 23/2/94 +FUNCTION {inbook} +{ output.bibitem +%% unselbst. Teile eines Buches werden am Anf. genannt, dann d selbst. Quelle + chapter empty$ + { "Es fehlen die Kapitelangaben in " cite$ * warning$ } + { type empty$ + { "Kap. " }%% d.i. die Standardvorgabe + { type }%% wenn man keine bes. Typform angeben will, koennte ein kl. +%% Zwischenraum gewaehlt werden, z.B. " \, " + if$ + chapter tie.or.space.connect " {In: }" * *%% n. Belieben fettes "In:" + %% diese Plazierung und der 2. * stammt v. N. Zacharias, Oldenburg, Juli 2000 + } + if$ + +%% -------- jetzt kommt der bibliogr. selbst. Teil + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + } + if$ + set.colon.after + format.btitle.vol "title" output.check + crossref missing$ + { format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number.din output +%% vorher note ... + part.of.sentence + format.pages "pages" output.check + note set.period.dash.check + note output + } + { format.book.crossref output.nonnull + note set.period.dash.check + note output + } + if$ + isbn set.period.dash.check + format.isbn.issn output + fin.entry +} + +%% geaenderte Seitenzahlausgabe, wenn crossref-Feld benutzt wird, 27/2/97 +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + set.colon.after + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle.din "booktitle" output.check + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number.din output + note set.period.dash.check + note output + isbn set.period.dash.check + issn set.period.dash.check + format.isbn.issn output + part.of.sentence + format.chapter.pages "pages" output.check + } + { format.incoll.inproc.crossref output.nonnull + note set.period.dash.check + note output + isbn set.period.dash.check + issn set.period.dash.check + format.isbn.issn output + } + if$ + fin.entry +} + +%% geaendert 22/2/94, 15/11/96 (Hinweis v. Alin Shindun, Uni Siegen) +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + set.colon.after + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle.din "booktitle" output.check + address empty$ + { organization new.sentence.checka + organization output + part.of.sentence + format.address.publisher.year output + } + { format.address.publisher.year "publisher" output.check } + if$ + new.sentence + series empty$ %%neu nach Hinweis v. Alin Shindun, 15/11/96 + 'skip$ + { format.series.number.din output } + if$ + note set.period.dash.check + note output + isbn set.period.dash.check + issn set.period.dash.check + format.isbn.issn output + part.of.sentence + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + note set.period.dash.check + note output + isbn set.period.dash.check + issn set.period.dash.check + format.isbn.issn output + } + if$ + fin.entry +} + +FUNCTION {conference} { inproceedings }%% nach Patashnik, wg US-Kompatibilitaet + +%% geaendert, 11/6/99 +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + { title empty$ + 'skip$ + {format.btitle "title" output.check } + if$ + } + { organization output.nonnull + set.colon.after + format.btitle "title" output.check + } + if$ + } + { format.authors output.nonnull + set.colon.after + format.btitle "title" output.check + } + if$ + format.edition "edition" output.check + author empty$ + { organization empty$ + { address output + part.of.sentence + } + 'skip$ + if$ + } + { address ": " * organization * output + part.of.sentence + } + if$ + format.date output + pages set.period.dash.check + format.pages.book output + note set.period.dash.check + note output + fin.entry +} + +%% MASTERSTHESIS ersetzt zugleich PHDTHESIS !! KFL, 17/2/94 +%% Ausgabe-Standard ist "Diplomarbeit", fuer andere Abschlussarbeiten +%% bei der Erfassung TYPE="anderer Typ" eingeben. +%% z.B. TYPE={Dissertation}, TYPE={Diss.}, TYPE={Habil.}, TYPE={Magisterarb.} +%% +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + set.colon.after + format.btitle "title" output.check + address output + part.of.sentence + school "school" output.check + part.of.sentence + "Diplomarbeit" format.thesis.type output.nonnull + part.of.sentence + format.date "year" output.check +%% pages new.sentence.checka + pages set.period.dash.check + format.pages.book output + note set.period.dash.check + note output + fin.entry +} + +FUNCTION {phdthesis} %% {mastersthesis}% ist identisch bis auf Standardwert, s.o. +{ output.bibitem + format.authors "author" output.check + set.colon.after + format.btitle "title" output.check + address output + part.of.sentence + school "school" output.check + part.of.sentence + "Diss." format.thesis.type output.nonnull % koennte auch `Dissertation' sein + part.of.sentence + format.date "year" output.check + pages set.period.dash.check + format.pages.book output + note set.period.dash.check + note output + fin.entry +} + +%% hiermit werden u.a. Normen erfasst +FUNCTION {misc} +{ output.bibitem + note empty$ + { title empty$ + { "" } + { format.authors format.editors output.nonnull + format.btitle output + howpublished output + format.date output + } + if$ + } + { note duplicate$ #1 #4 substring$ "Norm" = + { output new.sentence + format.date output + format.title output + } + { pop$ "" + author empty$ + { editor empty$ + { organization empty$ + { 'skip$ } + { format.editors.organization output.nonnull + set.colon.after } + if$ + } + { format.editors format.editors.organization output.nonnull + set.colon.after } + if$ + } + { format.authors format.editors output.nonnull + set.colon.after } + if$ + format.btitle output + howpublished output + format.date output + new.sentence + format.misc.series output%% neu 16/6/99 + note set.period.dash.check + note output + } + if$ + } + if$ + fin.entry +} + +FUNCTION {booklet} {misc}%% booklet ist nach dt. Vorgehensweise oft ueberfluessig + +%% geaendert 21/5/99 +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization empty$ + { "" } + { organization " (Veranst.)" * output } + if$ + } + { format.editors format.editors.organization output.nonnull } + if$ + set.colon.after + format.btitle "title" output.check + volume empty$ + { "" output.nonnull } + { "{\textnormal{Bd.}}" volume tie.or.space.connect emphasize "volume" output.check } + if$ + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number.din output.nonnull + pages set.period.dash.check + format.pages.book output + note set.period.dash.check + note output + isbn set.period.dash.check + issn set.period.dash.check + format.isbn.issn output + fin.entry +} + +%% geaendert 23/2/94 auch fuer Firmenschriften u."a. zu benutzen +FUNCTION {techreport} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors format.editors output.nonnull } + if$ + set.colon.after + format.title "title" output.check + institution new.sentence.checka + institution empty$ + 'skip$ + { " / " institution * output.nonnull } + if$ + format.address.publisher.year output + number new.sentence.checka + format.tr.number.din "number" output.check +%% new.sentence + pages set.period.dash.check + format.pages.book output + note "note" output.check + isbn set.period.dash.check + issn set.period.dash.check + format.isbn.issn output + fin.entry +} + +FUNCTION {unpublished} {misc}%% author, title, note muessen sein! howpublished +%% %% entfaellt natuerlich +FUNCTION {default.type} { misc } + +MACRO {jan} {"Januar"} + +MACRO {feb} {"Februar"} + +MACRO {mar} {"M{\^^b a}rz"} +%% nach Bernd Raichle, Febr. 1999 + +MACRO {apr} {"April"} + +MACRO {mai} {"Mai"} + +MACRO {may} {"Mai"} + +MACRO {jun} {"Juni"} + +MACRO {jul} {"Juli"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {okt} {"Oktober"} + +MACRO {oct} {"Oktober"} + +MACRO {nov} {"November"} + +MACRO {dez} {"Dezember"} + +MACRO {dec} {"Dezember"} + + +%%$$$ stillgelegte Beispiele fr den Gebrauch von Krzeln (hier Zs-Titel). + +%%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"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% Ende von UNSRTDIN.BST, Stand: 23/11/99 KFL diff --git a/Master/texmf-dist/doc/latex/multibib/README b/Master/texmf-dist/doc/latex/multibib/README index 21aaa09913b..3239ef99918 100644 --- a/Master/texmf-dist/doc/latex/multibib/README +++ b/Master/texmf-dist/doc/latex/multibib/README @@ -17,7 +17,7 @@ To produce the documentation latex multibib.dtx - If you do not want to include the macro section in the documentation, + If you do not want to exclude the macro section from the documentation, remove the comment sign before \OnlyDescription. To produce an index for the documentation: @@ -31,20 +31,24 @@ To produce the documentation Contents: - 00Readme this file ;-) - multibib.dtx documented source file for the multibib package - multibib.ins installation file - mbgglo.ist modification of gglo.ist to produce a change history for - the documentation of multibib - mbgind.ist modification of gind.ist to produce an index for - the documentation of multibib + README this file ;-) + + multibib.dtx documented source file for the multibib package + multibib.ins installation file + multibib.pdf documentation + + mbgglo.ist modification of gglo.ist to produce a change history for + the documentation of multibib + mbgind.ist modification of gind.ist to produce an index for + the documentation of multibib - bibtexall shell script to run bibtex on each .aux file in the - present directory - mbplain.bst modification of plain.bst to be used together with multibib + bibtexall shell script to run bibtex on each .aux file in the + present directory + mbplain.bst modification of plain.bst to be used together with multibib + mbunsrtdin.bst modification of unsrtdin.bst to be used together with multibib Happy TeXing - Thorsten Hansen, thorsten.hansen@psychol.uni-giessen.de + Thorsten Hansen, Thorsten.Hansen@psychol.uni-giessen.de diff --git a/Master/texmf-dist/doc/latex/multibib/bibtexall b/Master/texmf-dist/doc/latex/multibib/bibtexall index 6a0e58ec474..3b2849486aa 100755 --- a/Master/texmf-dist/doc/latex/multibib/bibtexall +++ b/Master/texmf-dist/doc/latex/multibib/bibtexall @@ -2,8 +2,20 @@ # # Evoke bibtex for each .aux file in the present directory. # -# Thorsten Hansen, 2003-03-24 - +# Usage: +# Change to the directory where you want to bibtex all .aux files which +# have a citation command and type +# +# bibtexall +# +# Thorsten Hansen, 2003-03-24 (first entry) +# 2005-10-26 do not evoke bibtex on .aux files w/o \citation's +# 2008-11-06 no message for files w/o citations for file in *.aux ; do - bibtex `basename $file .aux` + if grep -c -q '\\citation' $file; then + echo "process $file" + bibtex `basename $file .aux` +# else +# echo "ignore file $file which has no \citation command" + fi done diff --git a/Master/texmf-dist/doc/latex/multibib/multibib.pdf b/Master/texmf-dist/doc/latex/multibib/multibib.pdf index 74585637375..2e230e21648 100644 Binary files a/Master/texmf-dist/doc/latex/multibib/multibib.pdf and b/Master/texmf-dist/doc/latex/multibib/multibib.pdf differ diff --git a/Master/texmf-dist/source/latex/multibib/multibib.dtx b/Master/texmf-dist/source/latex/multibib/multibib.dtx index a4a387ce815..8c6c0ecbe19 100644 --- a/Master/texmf-dist/source/latex/multibib/multibib.dtx +++ b/Master/texmf-dist/source/latex/multibib/multibib.dtx @@ -1,9 +1,23 @@ -% \CheckSum{394} +% \CheckSum{538} % % \iffalse %% Package `multibib' to use with LaTeX2e. -%% Copyright (C) 2003 by Thorsten Hansen. All rights reserved. %% +%% Copyright (C) 2008 by Thorsten Hansen +%% +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, either version 1.3 of this license +% or any later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt and version 1.3 or later is +% part of all distributions of LaTeX version 2003/12/01 or +% later. +% +% This work has the LPPL maintenance status "maintained". The Current +% Maintainer of this work is Thorsten Hansen. +% +% This is a contributed file to the LaTeX2e system. +% % %<*dtx> \ProvidesFile{multibib.dtx} @@ -13,7 +27,7 @@ %\ProvidesFile{multibib.drv} % \fi % \ProvidesFile{multibib.dtx} - [2004/01/28 v1.3 Multiple bibliographies for one document.] + [2008/12/10 v1.4 Multiple bibliographies for one document.] % % \iffalse %<*driver> @@ -85,7 +99,7 @@ % \GetFileInfo{multibib.dtx} % \title{The \textsf{multibib} Package} % \author{Thorsten Hansen\\ -% \normalsize thorsten.hansen@psychol.uni-giessen.de} +% \normalsize Thorsten.Hansen@psychol.uni-giessen.de} % \date{\fileversion\quad \filedate} % \maketitle % @@ -117,8 +131,16 @@ % \changes{v1.2b}{2003/09/22}{General compatibility mechanism for packages % which define their own cite commands, motivated by % compatibility to \package{jurabib}.} -% \changes{v1.2c}{2004/01/23}{Streamline code.} +% \changes{v1.2c}{2004/01/23}{Code streamlined.} % \changes{v1.3}{2004/01/24}{Documentation.} +% \changes{v1.3a}{2004/02/09}{Continuous numerical labels with natbib.} +% \changes{v1.3b}{2004/02/10}{\macrott{isnumber} changed to accept +% arguments with \macrott{fi}, e.g., +% {\macrott{iffalse}{bjko}\macrott{fi}}.} +% \changes{v1.3c}{2004/02/10}{Allow \macrott{bibliographystyle} to +% be used in the preamble.} +% \changes{v1.3d}{2005/10/25}{New option \option{labeled}.} +% \changes{v1.4}{2008/12/10}{Documentation.} % % % @@ -150,7 +172,7 @@ % Suppose, you have to separate your citations into two bibliographies, % one for primary literature and one for secondary literature. The % \package{multibib} package defines the |\newcite| command which -% introduces a new new family of cite and bibliography commands. +% introduces a new family of cite and bibliography commands. % \begin{verbatim} % \newcites{sec}{Secondary Literature} % \end{verbatim} @@ -243,6 +265,24 @@ % % \subsection{Package Options} % \begin{description} +% \item[labeled] Add the internal suffixes for each +% bibliography as prefixes to the labels to the bibliography. For +% example, if you define +% \begin{verbatim}\newcites{A,B,C}% +% {Own \LaTeX\ Work,% +% Submitted,% +% {Habilitations, Dissertations and Diploma Thesis}} +% \end{verbatim} +% and specify a numerical bibstyle +% \verb+\bibliographystyleA{plain}+, the labels in the +% bibliography and the cited references will be [A1], [A2], [A3], +% \dots; analogously, \verb+\bibliographystyleB{plain}+ results +% in labels and cited references [B1], [B2], [B3],\dots; and +% \verb+\bibliographystyleC{plain}+ results in labels and cited +% references [C1], [C2], [C3], \dots . This option is useful +% together with option \option{resetlabels} and numerical +% reference schemes. +% % \item[resetlabels] When using numerical reference schemes, % start each bibliography with~`[1]'. Default is continuous numbering, % such that labels are created unambiguously. @@ -267,7 +307,7 @@ % \subsection{Limitations} % % \begin{itemize} -% \item When using numerical reference schemes and references to the +% \item When numerical reference schemes are used and references to the % same item appear in different bibliographies, the labels % cannot be resolved properly. Rather, the replacement text % (i.e, the number) is used which is defined in the auxiliary @@ -395,7 +435,7 @@ % internal macro |\@citex| called from |\cite| by, e.g., changing % the number of arguments, and/or define new variants of |\cite|, such as % \package{natbib}'s |\citep|, deserve a special handling to ensure -% combatibility to \package{multibib}. In the first case, the problem +% compatibility to \package{multibib}. In the first case, the problem % arise because \package{multibib}'s redefinition of |\@citex| to write to % a new auxiliary file |\@newciteauxhandle| instead of writing to % |\@auxout| is overwritten. In the second case, the problem arise @@ -430,7 +470,7 @@ % |\@restoreauxhandle|. % \end{enumerate} % At present, packages \package{cite} and \package{jurabib} use this -% combatibility mechanism. +% compatibility mechanism. % % % @@ -447,7 +487,7 @@ % \begin{verbatim} % \def\@mb@citenamelist{cite,citep,citet,citealp,citealt,footcite} % \end{verbatim} -% At present, package \package{jurabib} use this combatibility mechanism. +% At present, package \package{jurabib} use this compatibility mechanism. % % % @@ -552,7 +592,7 @@ % % \section{The Macros} % -% One paradigm with guided the development of the code was to use +% One paradigm which guided the development of the code was to use % standard \LaTeX\ commands as much as possible, and to customize their % behavior using |\let|. % @@ -573,9 +613,29 @@ \newif\ifcontinuouslabels \continuouslabelstrue \DeclareOption{resetlabels}{\continuouslabelsfalse} -\ProcessOptions % \end{macrocode} % \end{macro} +% +% +% \begin{macro}{labeled} +% \changes{v1.3d}{2005/10/25}{Define option \option{labeled}.} +% +% Define a new option to add the internal suffixes for each +% bibliography as labels to the bibitems. +% \begin{macrocode} +\newif\iflabeled +\labeledfalse +\DeclareOption{labeled}{\labeledtrue} +% \end{macrocode} +% \end{macro} +% +% +% +% \noindent Finally, process all package options. +% +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} % % % \subsection{Preliminaries} @@ -596,13 +656,12 @@ % \begin{macro}{\@newciteauxhandle} % \changes{v1.1b}{2001/10/10}{Handle removed.} % -% Define a new handle of the auxiliary file for -% all |\cite| and |\nocite| commands, standard as well as newly -% defined. For the standard commands, this handle is let to -% |\auxout|. Since version 1.1b the definition -% |\let\@newciteauxhandle\@auxout| is no longer needed since -% below we reset |\@citex| to its standard value after each call of -% |\mb@@citex|. +% Define a new handle of the auxiliary file for all |\cite| and +% |\nocite| commands, standard as well as newly defined. For the +% standard commands, this handle is let to |\auxout|. Since version +% 1.1b the definition |\let\@newciteauxhandle\@auxout| is no longer +% needed since below we reset |\@citex| to its standard value +% after each call of |\mb@@citex|. % \end{macro} % % @@ -726,6 +785,8 @@ % \changes{v1.0i}{2000/01/14}{No change of label width for option % \option{resetlabels}.} % \changes{v1.0k}{1999/01/14}{\package{suthesis} compatibility.} +% \changes{v1.3a}{2004/02/09}{Natbib specific definition of +% thebibliography, modified to use \macrott{usecounter}.} % % The argument of |\thebibliography| determines the width of the % labels in the bibliography. First it is checked if the parameter @@ -748,21 +809,62 @@ \addcontentsline{toc}{chapter}{\bibname}% \@ldthebibliography{#1}}}% {}% - \let\std@thebibliography\thebibliography - \def\thebibliography#1{% - \@isnumber{#1}% - {\ifnum\mb@biblabelwidth=0 - \@tempcnta\c@enumiv - \ifcontinuouslabels - \advance\@tempcnta#1% - \fi - \std@thebibliography{\@arabic\@tempcnta}% - \else - \std@thebibliography{\@arabic\mb@biblabelwidth}% + \@ifpackageloaded{natbib}% + {% + + +\renewenvironment{thebibliography}[1]{% + \bibsection\parindent \z@\bibpreamble\bibfont\list + {\@biblabel{\arabic{NAT@ctr}}}{\@bibsetup{#1}% + \usecounter{NAT@ctr}}% %% only changed here to usecounter + \ifNAT@openbib + \renewcommand\newblock{\par} + \else + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% + \fi + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax + \let\citeN\cite \let\shortcite\cite + \let\citeasnoun\cite + }{\def\@noitemerr{% + \PackageWarning{natbib} + {Empty `thebibliography' environment}}% + \endlist\vskip-\lastskip} + + \let\std@thebibliography\thebibliography + \def\thebibliography#1{% + \@isnumber{#1}% + {\ifnum\mb@biblabelwidth=0 + \@tempcnta\c@NAT@ctr %% changed here to c@NAT@ctr + \ifcontinuouslabels + \advance\@tempcnta#1% + \fi + \std@thebibliography{\@arabic\@tempcnta}% + \else + \std@thebibliography{\@arabic\mb@biblabelwidth}% \global\mb@biblabelwidth 0 - \fi}% - {\std@thebibliography{#1}}% - }% + \fi}% + {\std@thebibliography{#1}}% + }% + }% + {% else, natbib not loaded + \let\std@thebibliography\thebibliography + + \def\thebibliography#1{% + \@isnumber{#1}% + {\ifnum\mb@biblabelwidth=0 + \@tempcnta\c@enumiv + \ifcontinuouslabels + \advance\@tempcnta#1% + \fi + \std@thebibliography{\@arabic\@tempcnta}% + \else + \std@thebibliography{\@arabic\mb@biblabelwidth}% + \global\mb@biblabelwidth 0 + \fi}% + {\std@thebibliography{#1}}% + }% + }% } % \end{macrocode} % \end{macro} @@ -773,6 +875,9 @@ % \changes{v1.0g}{2000/01/10}{Empty string is not handled as number.} % \changes{v1.1d}{2001/01/04}{Execute \macrott{@scannumber} in % \macrott{hbox}.} +% \changes{v1.3b}{2004/02/10}{\macrott{isnumber} changed to accept +% arguments with \macrott{fi}, e.g., +% {\macrott{iffalse}{bjko}\macrott{fi}}.} % % Macro |\@isnumber| behaves as follows: If |#1| is a number (which % may contain blanks at arbitrary positions), |#2| is executed, @@ -780,13 +885,18 @@ % % \begin{macrocode} \newcommand{\@isnumber}[3]{% - \def\argi{#1}% - \ifx\argi\empty + \def\argdef{#1}% + \edef\argedef{#1}% + \ifx\argedef\empty #3 \else - \global\@tempswafalse - \setbox\@tempboxa=\hbox{\@scannumber#1\plugh}% - \if@tempswa#2\else#3\fi + \ifx\argdef\argedef + \global\@tempswafalse + \setbox\@tempboxa=\hbox{\@scannumber#1\plugh}% + \if@tempswa#2\else#3\fi + \else + #3 + \fi \fi} % \end{macrocode} % \end{macro} @@ -993,29 +1103,55 @@ % \end{macro} % % +% \begin{macro}{\bibitem} +% +% \changes{v1.3d}{2005/10/25}{Define a bibliography specific +% version of \macrott{@bibitem} and +% \macrott{@biblabel} if \option{labeled} is +% active.} +% +% \begin{macrocode} + \iflabeled % if option labeled + \expandafter\edef\csname @bibitem\@suffix\endcsname##1{% + \noexpand\item + \noexpand\if@filesw \noexpand\immediate\noexpand\write\noexpand\@auxout + {\noexpand\string\noexpand\bibcite{##1}% + {\@suffix\noexpand\the\noexpand\value{\noexpand\@listctr}}}% + \noexpand\fi + \noexpand\ignorespaces}% + \expandafter\edef\csname @biblabel\@suffix\endcsname##1{[\@suffix##1]}% + \fi % end if option labeled +% \end{macrocode} +% \end{macro} +% +% % \begin{macro}{\bibliography} % \changes{v1.0i}{2000/01/12}{Remove setting of \macrott{usecounter} and % \macrott{newusecounter} which is done % in redefined \macrott{bibliography}.} % \changes{v1.1e}{2001/01/04}{Definition of \macrott{bibname} analogously % to \macrott{refname}.} -% -% Define new |\bibliography|\meta{s} equivalents. -% The standard |\bibliography| macro does -% two things: The bibdata file is written to the auxiliary file -% |\@auxout| and the |.bbl| file |\jobname.bbl| is inputed. For -% |\bibliography|\meta{s}, we thus let both |\@auxout| -% and |\jobname| refer to the new auxiliary file \meta{s}|.aux|. -% Since some styles and classes write the heading -% of the bibliography to the table of contents, the old meaning of -% |\@auxout| is saved in |\temp@auxout| and |\addtocontents| is locally -% replaced by \package{multibib}s variant |\mb@addtocontents| -% (defined above) which writes to |\temp@auxout| instead of -% |\auxout|. Further, the heading of the bibliography generated by -% |\refname| or |\bibname| depending on the class is set to the -% particular heading of |\bibliography|\meta{s}. After this -% redefinitions, the standard |\bibliography| can be evoked. -% Extra braces are needed to encapsulate the various |\let|s. +% \changes{v1.3d}{2005/10/25}{Activate the bibliography specific +% versions of \macrott{@bibitem} and +% \macrott{@biblabel} if \option{labeled} is +% active.} +% +% Define new |\bibliography|\meta{s} equivalents. +% The standard |\bibliography| macro does +% two things: The bibdata file is written to the auxiliary file +% |\@auxout| and the |.bbl| file |\jobname.bbl| is inputed. For +% |\bibliography|\meta{s}, we thus let both |\@auxout| +% and |\jobname| refer to the new auxiliary file \meta{s}|.aux|. +% Since some styles and classes write the heading +% of the bibliography to the table of contents, the old meaning of +% |\@auxout| is saved in |\temp@auxout| and |\addtocontents| is locally +% replaced by \package{multibib}s variant |\mb@addtocontents| +% (defined above) which writes to |\temp@auxout| instead of +% |\auxout|. Further, the heading of the bibliography generated by +% |\refname| or |\bibname| depending on the class is set to the +% particular heading of |\bibliography|\meta{s}. After this +% redefinitions, the standard |\bibliography| can be evoked. +% Extra braces are needed to encapsulate the various |\let|s. % \begin{macrocode} \expandafter\edef\csname bibliography\@suffix\endcsname##1{{% \let\noexpand\temp@auxout\noexpand\@auxout @@ -1026,7 +1162,13 @@ \let\noexpand\refname \expandafter\noexpand\csname refname\@suffix\endcsname \let\noexpand\bibname - \expandafter\noexpand\csname refname\@suffix\endcsname + \expandafter\noexpand\csname refname\@suffix\endcsname + \iflabeled + \let\noexpand\@bibitem + \expandafter\noexpand\csname @bibitem\@suffix\endcsname + \let\noexpand\@biblabel + \expandafter\noexpand\csname @biblabel\@suffix\endcsname + \fi \noexpand\bibliography{##1}% }} % \end{macrocode} @@ -1035,11 +1177,18 @@ % \newpage % % \begin{macro}{\bibliographystyle} +% \changes{v1.3c}{2004/02/10}{Write directly the \macrott{bibstyle} +% macro to the specific auxfile instead of redefining a +% auxhandle and then using the standard +% \macrott{bibliographystyle} macro.} +% % Define new |\bibliographystyle|\meta{s} equivalents. % \begin{macrocode} - \expandafter\edef\csname bibliographystyle\@suffix\endcsname##1{{% - \let\noexpand\@auxout\csname @auxout\@suffix\endcsname - \noexpand\bibliographystyle{##1}}}% + \expandafter\edef\csname bibliographystyle\@suffix\endcsname##1{% + \noexpand\if@filesw + \noexpand\immediate\noexpand\write\csname @auxout\@suffix\endcsname + {\noexpand\string\noexpand\bibstyle{##1}}% + \noexpand\fi} % \end{macrocode} % \end{macro} % diff --git a/Master/texmf-dist/source/latex/multibib/multibib.ins b/Master/texmf-dist/source/latex/multibib/multibib.ins index 4b8f4970182..55ea1edb126 100644 --- a/Master/texmf-dist/source/latex/multibib/multibib.ins +++ b/Master/texmf-dist/source/latex/multibib/multibib.ins @@ -1,5 +1,45 @@ +% +% This is file `multibib.ins', +% for extracting package files from the original source file +% `multibib.dtx'. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, either version 1.3 of this license +% or any later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt and version 1.3 or later is +% part of all distributions of LaTeX version 2003/12/01 or later. +% +% To produce the package run multibib.ins through LaTeX. +% +% Copyright (C) 2008 Thorsten Hansen + \input docstrip +\preamble + +IMPORTANT NOTICE: + +This work may be distributed and/or modified under the conditions of +the LaTeX Project Public License, either version 1.3 of this license +or any later version. The latest version of this license is in +http://www.latex-project.org/lppl.txt and version 1.3 or later is +part of all distributions of LaTeX version 2003/12/01 or +later. + +This work has the LPPL maintenance status "maintained". The Current +Maintainer of this work is Thorsten Hansen. + +Any modified versions of this file must be renamed with new filenames +distinct from multibib.sty. + +This is a generated file. It may not be distributed without the +original source file \inFileName. + +To produce the documentation run \inFileName through LaTeX. + + +\endpreamble + \generate{\file{multibib.sty}{\from{multibib.dtx}{package}}} \Msg{***********************************************************} @@ -9,7 +49,7 @@ \Msg{*} \Msg{* `multibib.sty'} \Msg{*} -\Msg{* To produce the documentation run the .dtx file through LaTeX.} +\Msg{* To produce the documentation run multibib.dtx through LaTeX.} \Msg{*} \Msg{* Happy TeXing} \Msg{***********************************************************} diff --git a/Master/texmf-dist/tex/latex/multibib/multibib.sty b/Master/texmf-dist/tex/latex/multibib/multibib.sty index d77c922be29..fa7866ceeca 100644 --- a/Master/texmf-dist/tex/latex/multibib/multibib.sty +++ b/Master/texmf-dist/tex/latex/multibib/multibib.sty @@ -8,28 +8,39 @@ %% %% IMPORTANT NOTICE: %% -%% For the copyright see the source file. +%% This work may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.3 of this license +%% or any later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt and version 1.3 or later is +%% part of all distributions of LaTeX version 2003/12/01 or +%% later. %% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from multibib.sty. +%% This work has the LPPL maintenance status "maintained". The Current +%% Maintainer of this work is Thorsten Hansen. +%% +%% Any modified versions of this file must be renamed with new filenames +%% distinct from multibib.sty. +%% +%% This is a generated file. It may not be distributed without the +%% original source file multibib.dtx. +%% +%% To produce the documentation run multibib.dtx through LaTeX. %% -%% For distribution of the original source see the terms -%% for copying and modification in the file multibib.dtx. %% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) %% Package `multibib' to use with LaTeX2e. -%% Copyright (C) 2003 by Thorsten Hansen. All rights reserved. +%% +%% Copyright (C) 2008 by Thorsten Hansen %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{multibib} - [2004/01/28 v1.3 Multiple bibliographies for one document.] + [2008/12/10 v1.4 Multiple bibliographies for one document.] \newif\ifcontinuouslabels \continuouslabelstrue \DeclareOption{resetlabels}{\continuouslabelsfalse} +\newif\iflabeled +\labeledfalse +\DeclareOption{labeled}{\labeledtrue} \ProcessOptions \def\mylop#1\to#2{\expandafter\mylopoff#1\mylopoff#1#2} \long\def\mylopoff#1,#2\mylopoff#3#4{\def#4{#1}\def#3{#2}} @@ -73,30 +84,75 @@ \addcontentsline{toc}{chapter}{\bibname}% \@ldthebibliography{#1}}}% {}% - \let\std@thebibliography\thebibliography - \def\thebibliography#1{% - \@isnumber{#1}% - {\ifnum\mb@biblabelwidth=0 - \@tempcnta\c@enumiv - \ifcontinuouslabels - \advance\@tempcnta#1% - \fi - \std@thebibliography{\@arabic\@tempcnta}% - \else - \std@thebibliography{\@arabic\mb@biblabelwidth}% + \@ifpackageloaded{natbib}% + {% + +\renewenvironment{thebibliography}[1]{% + \bibsection\parindent \z@\bibpreamble\bibfont\list + {\@biblabel{\arabic{NAT@ctr}}}{\@bibsetup{#1}% + \usecounter{NAT@ctr}}% %% only changed here to usecounter + \ifNAT@openbib + \renewcommand\newblock{\par} + \else + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% + \fi + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax + \let\citeN\cite \let\shortcite\cite + \let\citeasnoun\cite + }{\def\@noitemerr{% + \PackageWarning{natbib} + {Empty `thebibliography' environment}}% + \endlist\vskip-\lastskip} + + \let\std@thebibliography\thebibliography + \def\thebibliography#1{% + \@isnumber{#1}% + {\ifnum\mb@biblabelwidth=0 + \@tempcnta\c@NAT@ctr %% changed here to c@NAT@ctr + \ifcontinuouslabels + \advance\@tempcnta#1% + \fi + \std@thebibliography{\@arabic\@tempcnta}% + \else + \std@thebibliography{\@arabic\mb@biblabelwidth}% \global\mb@biblabelwidth 0 - \fi}% - {\std@thebibliography{#1}}% - }% + \fi}% + {\std@thebibliography{#1}}% + }% + }% + {% else, natbib not loaded + \let\std@thebibliography\thebibliography + + \def\thebibliography#1{% + \@isnumber{#1}% + {\ifnum\mb@biblabelwidth=0 + \@tempcnta\c@enumiv + \ifcontinuouslabels + \advance\@tempcnta#1% + \fi + \std@thebibliography{\@arabic\@tempcnta}% + \else + \std@thebibliography{\@arabic\mb@biblabelwidth}% + \global\mb@biblabelwidth 0 + \fi}% + {\std@thebibliography{#1}}% + }% + }% } \newcommand{\@isnumber}[3]{% - \def\argi{#1}% - \ifx\argi\empty + \def\argdef{#1}% + \edef\argedef{#1}% + \ifx\argedef\empty #3 \else - \global\@tempswafalse - \setbox\@tempboxa=\hbox{\@scannumber#1\plugh}% - \if@tempswa#2\else#3\fi + \ifx\argdef\argedef + \global\@tempswafalse + \setbox\@tempboxa=\hbox{\@scannumber#1\plugh}% + \if@tempswa#2\else#3\fi + \else + #3 + \fi \fi} \let\plugh\relax \newcommand{\@scannumber}[1]{% @@ -147,6 +203,16 @@ \expandafter\edef\csname nocite\@suffix\endcsname##1{{% \let\noexpand\@auxout\csname @auxout\@suffix\endcsname \noexpand\nocite{##1}}}% + \iflabeled % if option labeled + \expandafter\edef\csname @bibitem\@suffix\endcsname##1{% + \noexpand\item + \noexpand\if@filesw \noexpand\immediate\noexpand\write\noexpand\@auxout + {\noexpand\string\noexpand\bibcite{##1}% + {\@suffix\noexpand\the\noexpand\value{\noexpand\@listctr}}}% + \noexpand\fi + \noexpand\ignorespaces}% + \expandafter\edef\csname @biblabel\@suffix\endcsname##1{[\@suffix##1]}% + \fi % end if option labeled \expandafter\edef\csname bibliography\@suffix\endcsname##1{{% \let\noexpand\temp@auxout\noexpand\@auxout \let\noexpand\addtocontents\noexpand\mb@addtocontents @@ -157,11 +223,19 @@ \expandafter\noexpand\csname refname\@suffix\endcsname \let\noexpand\bibname \expandafter\noexpand\csname refname\@suffix\endcsname + \iflabeled + \let\noexpand\@bibitem + \expandafter\noexpand\csname @bibitem\@suffix\endcsname + \let\noexpand\@biblabel + \expandafter\noexpand\csname @biblabel\@suffix\endcsname + \fi \noexpand\bibliography{##1}% }} - \expandafter\edef\csname bibliographystyle\@suffix\endcsname##1{{% - \let\noexpand\@auxout\csname @auxout\@suffix\endcsname - \noexpand\bibliographystyle{##1}}}% + \expandafter\edef\csname bibliographystyle\@suffix\endcsname##1{% + \noexpand\if@filesw + \noexpand\immediate\noexpand\write\csname @auxout\@suffix\endcsname + {\noexpand\string\noexpand\bibstyle{##1}}% + \noexpand\fi} }% } \@onlypreamble\newcites -- cgit v1.2.3