summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-12-14 01:20:07 +0000
committerKarl Berry <karl@freefriends.org>2010-12-14 01:20:07 +0000
commitc590486e0d651a309b105ee736a5fad59f0573dc (patch)
tree267f5ca85f75388b91e78a2a4d9eac47932c6531
parent3501983d237deff730c8a0bcf159e21d88d019fe (diff)
bibtex 8-Dec-10, clarify license
git-svn-id: svn://tug.org/texlive/trunk@20729 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/ChangeLog5
-rw-r--r--Build/source/texk/web2c/bibtex.web16
-rw-r--r--Master/texmf-dist/bibtex/bib/base/xampl.bib13
-rw-r--r--Master/texmf-dist/bibtex/bst/base/abbrv.bst16
-rw-r--r--Master/texmf-dist/bibtex/bst/base/acm.bst376
-rw-r--r--Master/texmf-dist/bibtex/bst/base/alpha.bst458
-rw-r--r--Master/texmf-dist/bibtex/bst/base/apalike.bst1105
-rw-r--r--Master/texmf-dist/bibtex/bst/base/ieeetr.bst286
-rw-r--r--Master/texmf-dist/bibtex/bst/base/plain.bst362
-rw-r--r--Master/texmf-dist/bibtex/bst/base/siam.bst310
-rw-r--r--Master/texmf-dist/bibtex/bst/base/unsrt.bst286
-rw-r--r--Master/texmf-dist/doc/bibtex/base/README36
-rw-r--r--Master/texmf-dist/doc/bibtex/base/bibshare82
-rw-r--r--Master/texmf-dist/doc/bibtex/base/btxbst.doc1314
-rw-r--r--Master/texmf-dist/doc/bibtex/base/btxdoc.bib43
-rw-r--r--Master/texmf-dist/doc/bibtex/base/btxdoc.pdfbin136742 -> 187656 bytes
-rw-r--r--Master/texmf-dist/doc/bibtex/base/btxdoc.tex7
-rw-r--r--Master/texmf-dist/doc/bibtex/base/btxhak.pdfbin115471 -> 166659 bytes
-rw-r--r--Master/texmf-dist/doc/bibtex/base/btxhak.tex7
-rw-r--r--Master/texmf-dist/tex/generic/bibtex/apalike.sty72
-rw-r--r--Master/texmf-dist/tex/generic/bibtex/apalike.tex87
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds65
-rw-r--r--Master/tlpkg/tlpsrc/bibtex.tlpsrc1
24 files changed, 3121 insertions, 1828 deletions
diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog
index 898773efd65..e92cc32d589 100644
--- a/Build/source/texk/web2c/ChangeLog
+++ b/Build/source/texk/web2c/ChangeLog
@@ -1,3 +1,8 @@
+2010-12-14 Karl Berry <karl@tug.org>
+
+ * bibtex.web: non-functional update to clarify license,
+ version of 8-Dec-10.
+
2010-07-06 Peter Breitenlohner <peb@mppmu.mpg.de>
* configure.ac: Get version string from ../../version.ac.
diff --git a/Build/source/texk/web2c/bibtex.web b/Build/source/texk/web2c/bibtex.web
index 3dec37a90d9..543467df4c4 100644
--- a/Build/source/texk/web2c/bibtex.web
+++ b/Build/source/texk/web2c/bibtex.web
@@ -1,8 +1,12 @@
% This program is copyright (C) 1985, 1988, 2010 by Oren Patashnik;
-% all rights reserved.
-% Copying of this file is authorized only if (1) you are Oren Patashnik, or if
-% (2) you make absolutely no changes to your copy. (The WEB system provides
-% for alterations via an auxiliary file; the master file should stay intact.)
+% all rights are reserved.
+%
+% This program, BibTeX, is available under the same terms as
+% Donald Knuth's TeX program.
+%
+% (Request to implementors: The WEB system provides for alterations via
+% an auxiliary file; the master file should stay intact.)
+%
% See Appendix H of the WEB manual for hints on how to install this program.
% Version 0.98f was released in March 1985.
@@ -36,6 +40,8 @@
% Version 0.99d was released in March 2010. It made output lines breakable
% only at white_space (so that, for example, URLs would not be broken).
% Other known bugs (all minor) will be fixed in a subsequent release.
+% Updated bibtex.web was released on 8 December 2010. Still version
+% 0.99d; this release clarified the license.
% Please report any bugs to biblio@@tug.org
@@ -85,7 +91,7 @@
\def\topofcontents{\null\vfill
\def\titlepage{F}
\centerline{\:\titlefont The {\:\ttitlefont \BibTeX} preprocessor}
- \vskip 15pt \centerline{(Version 0.99c---\today)} \vfill}
+ \vskip 15pt \centerline{(Version 0.99d---\today)} \vfill}
\pageno=\contentspagenumber \advance\pageno by 1
diff --git a/Master/texmf-dist/bibtex/bib/base/xampl.bib b/Master/texmf-dist/bibtex/bib/base/xampl.bib
index f651547ce26..85ee5cb703e 100644
--- a/Master/texmf-dist/bibtex/bib/base/xampl.bib
+++ b/Master/texmf-dist/bibtex/bib/base/xampl.bib
@@ -1,7 +1,12 @@
+% Copyright (C) 1988, 2010 Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted if it
+% is unmodified. Modifications (and their redistribution) are also
+% permitted, as long as the resulting file is renamed.
+
@preamble{ "\newcommand{\noopsort}[1]{} "
- # "\newcommand{\printfirst}[2]{#1} "
- # "\newcommand{\singleletter}[1]{#1} "
- # "\newcommand{\switchargs}[2]{#2#1} " }
+ # "\newcommand{\printfirst}[2]{#1} "
+ # "\newcommand{\singleletter}[1]{#1} "
+ # "\newcommand{\switchargs}[2]{#2#1} " }
@ARTICLE{article-minimal,
author = {L[eslie] A. Aamport},
@@ -43,7 +48,7 @@ information).
number = 7,
month = jul,
note = {The entire issue is devoted to gnats and gnus
- (this entry is a cross-referenced ARTICLE (journal))},
+ (this entry is a cross-referenced ARTICLE (journal))},
}
@INBOOK{inbook-minimal,
diff --git a/Master/texmf-dist/bibtex/bst/base/abbrv.bst b/Master/texmf-dist/bibtex/bst/base/abbrv.bst
index 740f569f860..23fae1a28cc 100644
--- a/Master/texmf-dist/bibtex/bst/base/abbrv.bst
+++ b/Master/texmf-dist/bibtex/bst/base/abbrv.bst
@@ -1,12 +1,12 @@
% BibTeX standard bibliography style `abbrv'
- % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
- % 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
- % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
- % This restriction helps ensure that all standard styles are identical.
- % The file btxbst.doc has the documentation for this style.
+ % Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later.
+ % Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
+ % Unlimited copying and redistribution of this file are permitted as long as
+ % it is unmodified. Modifications (and redistribution of modified versions)
+ % are also permitted, but only if the resulting file is renamed to something
+ % besides btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
ENTRY
{ address
diff --git a/Master/texmf-dist/bibtex/bst/base/acm.bst b/Master/texmf-dist/bibtex/bst/base/acm.bst
index 1750daa7a17..5e52a0d6382 100644
--- a/Master/texmf-dist/bibtex/bst/base/acm.bst
+++ b/Master/texmf-dist/bibtex/bst/base/acm.bst
@@ -1,13 +1,19 @@
-% ACM Transactions bibliography style (24-Jan-88 version)
+% Copyright (C) 1986, 1988, 2010 Howard Trickey and Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted as long as
+% it is unmodified. Modifications (and redistribution of modified versions)
+% are also permitted, but only if the resulting file is renamed.
+%
+% ACM Transactions bibliography style (8-Dec-10 version)
% A lot like abbrv.bst, but names come out "Last, initials", and in \sc.
% Some dates are parenthesized.
%
% History
-% 2/ 6/86 (HWT) Original version, by Howard Trickey.
-% 3/ 5/86 (HWT) Put in pp. everywhere but articles, as per ACM style.
-% 1/24/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
-% corrected the abbreviations to "Mar." and "Sept.";
-% THIS `acm' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+% 2/ 6/86 (HWT) Original version, by Howard Trickey.
+% 3/ 5/86 (HWT) Put in pp. everywhere but articles, as per ACM style.
+% 1/24/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
+% corrected the abbreviations to "Mar." and "Sept.";
+% THIS `acm' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+% 12/ 8/10 (OP&HWT) Clarify license.
ENTRY
{ address
@@ -52,15 +58,15 @@ FUNCTION {output.nonnull}
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
- { add.period$ write$
- newline$
- "\newblock " write$
- }
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
if$
mid.sentence 'output.state :=
}
@@ -110,8 +116,8 @@ FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
- 'skip$
- { after.sentence 'output.state := }
+ 'skip$
+ { after.sentence 'output.state := }
if$
}
if$
@@ -189,16 +195,16 @@ FUNCTION {format.names}
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { t "others" =
- { ", et~al." * }
- { ", and " * t * }
- if$
- }
- if$
- }
- 't
+ { namesleft #1 >
+ { ", " * t * }
+ { t "others" =
+ { ", et~al." * }
+ { ", and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -216,20 +222,20 @@ FUNCTION {format.innames}
{ namesleft #0 > }
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -249,8 +255,8 @@ FUNCTION {format.editors}
{ "" }
{ editor format.names scapify
editor num.names$ #1 >
- { ", Eds." * }
- { ", Ed." * }
+ { ", Eds." * }
+ { ", Ed." * }
if$
}
if$
@@ -261,8 +267,8 @@ FUNCTION {format.ineditors}
{ "" }
{ editor format.innames
editor num.names$ #1 >
- { ", Eds." * }
- { ", Ed." * }
+ { ", Eds." * }
+ { ", Ed." * }
if$
}
if$
@@ -280,21 +286,21 @@ FUNCTION {n.dashify}
""
{ 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 :=
- }
+ { 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$
@@ -303,15 +309,15 @@ FUNCTION {n.dashify}
FUNCTION {format.date}
{ year empty$
{ month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
if$
}
{ month empty$
- 'year
- { month " " * year * }
+ 'year
+ { month " " * year * }
if$
}
if$
@@ -341,8 +347,8 @@ FUNCTION {format.bvolume}
{ "" }
{ "vol.~" volume *
series empty$
- 'skip$
- { " of " * series emphasize * }
+ 'skip$
+ { " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
@@ -352,17 +358,17 @@ FUNCTION {format.bvolume}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
- { series field.or.null }
- { output.state mid.sentence =
- { "no.~" }
- { "No.~" }
- if$
- number *
- series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { " in " * series * }
- if$
- }
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "no.~" }
+ { "No.~" }
+ if$
+ number *
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
if$
}
{ "" }
@@ -373,8 +379,8 @@ FUNCTION {format.edition}
{ edition empty$
{ "" }
{ output.state mid.sentence =
- { edition "l" change.case$ "~ed." * }
- { edition "t" change.case$ "~ed." * }
+ { edition "l" change.case$ "~ed." * }
+ { edition "t" change.case$ "~ed." * }
if$
}
if$
@@ -401,8 +407,8 @@ FUNCTION {multi.page.check}
swap$ duplicate$ "," =
swap$ "+" =
or or
- { #1 'multiresult := }
- { t #2 global.max$ substring$ 't := }
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
if$
}
while$
@@ -413,8 +419,8 @@ FUNCTION {format.pp.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
- { "pp.~" pages n.dashify * }
- { "p.~" pages * }
+ { "pp.~" pages n.dashify * }
+ { "p.~" pages * }
if$
}
if$
@@ -427,16 +433,16 @@ FUNCTION {format.journal.vol.num.date}
}
{ journal
volume empty$
- 'skip$
- { " " * volume * }
+ 'skip$
+ { " " * volume * }
if$
number empty$
- 'emphasizeic
- { emphasize ", " * number * }
+ 'emphasizeic
+ { emphasize ", " * number * }
if$
year empty$
- { "empty year in " cite$ * warning$ }
- { " (" * format.date * ")" * }
+ { "empty year in " cite$ * warning$ }
+ { " (" * format.date * ")" * }
if$
}
if$
@@ -446,12 +452,12 @@ FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pp.pages
{ type empty$
- { "ch.~" chapter * }
- { type "l" change.case$ chapter tie.or.space.connect }
+ { "ch.~" chapter * }
+ { type "l" change.case$ chapter tie.or.space.connect }
if$
pages empty$
- 'skip$
- { ", " * format.pp.pages * }
+ 'skip$
+ { ", " * format.pp.pages * }
if$
}
if$
@@ -462,8 +468,8 @@ FUNCTION {format.in.ed.booktitle}
{ "" }
{ "In " booktitle emphasize *
editor empty$
- 'skip$
- { ", " * format.ineditors * }
+ 'skip$
+ { ", " * format.ineditors * }
if$
}
if$
@@ -474,23 +480,23 @@ FUNCTION {format.proc.date}
{ duplicate$ empty$
{ pop$ "" }
{ year empty$
- { "empty year in " cite$ * warning$
- address empty$
- 'emphasize
- { emphasizeic
- " (" * address * ")" *
- }
- if$
- }
- { emphasizeic
- " (" *
- address empty$
- 'skip$
- { address * ", " * }
- if$
- format.date *
- ")" *
- }
+ { "empty year in " cite$ * warning$
+ address empty$
+ 'emphasize
+ { emphasizeic
+ " (" * address * ")" *
+ }
+ if$
+ }
+ { emphasizeic
+ " (" *
+ address empty$
+ 'skip$
+ { address * ", " * }
+ if$
+ format.date *
+ ")" *
+ }
if$
}
if$
@@ -536,11 +542,11 @@ FUNCTION {format.tr.number}
FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In {\em " journal * "\/}" * }
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
if$
}
{ "In " key * }
@@ -554,12 +560,12 @@ FUNCTION {format.crossref.editor}
#2 >
{ pop$ " et~al." * }
{ #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
- }
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
if$
}
if$
@@ -578,15 +584,15 @@ FUNCTION {format.book.crossref}
editor field.or.null author field.or.null =
or
{ key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "{\em " * series * "\/}" * }
- if$
- }
- { key * }
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
if$
}
{ format.crossref.editor * }
@@ -599,15 +605,15 @@ FUNCTION {format.incoll.inproc.crossref}
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 {\em " booktitle * "\/}" * }
- if$
- }
- { "In " key * }
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
if$
}
{ "In " format.crossref.editor * }
@@ -640,8 +646,8 @@ FUNCTION {book}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -686,8 +692,8 @@ FUNCTION {inbook}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -966,13 +972,13 @@ FUNCTION {sort.format.names}
numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
- { " " * }
- 'skip$
+ { " " * }
+ 'skip$
if$
s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
nameptr numnames = t "others" = and
- { "et al" * }
- { t sortify * }
+ { "et al" * }
+ { t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -994,10 +1000,10 @@ FUNCTION {sort.format.title}
FUNCTION {author.sort}
{ author empty$
{ key empty$
- { "to sort, need author or key in " cite$ * warning$
- ""
- }
- { key sortify }
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
if$
}
{ author sort.format.names }
@@ -1007,14 +1013,14 @@ FUNCTION {author.sort}
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 }
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
if$
}
{ author sort.format.names }
@@ -1024,14 +1030,14 @@ FUNCTION {author.editor.sort}
FUNCTION {author.organization.sort}
{ author empty$
{ organization empty$
- { key empty$
- { "to sort, need author, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ author sort.format.names }
@@ -1041,14 +1047,14 @@ FUNCTION {author.organization.sort}
FUNCTION {editor.organization.sort}
{ editor empty$
{ organization empty$
- { key empty$
- { "to sort, need editor, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ editor sort.format.names }
@@ -1061,12 +1067,12 @@ FUNCTION {presort}
or
'author.editor.sort
{ type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
if$
}
if$
diff --git a/Master/texmf-dist/bibtex/bst/base/alpha.bst b/Master/texmf-dist/bibtex/bst/base/alpha.bst
index 33354b6a941..e59a2ebb7f9 100644
--- a/Master/texmf-dist/bibtex/bst/base/alpha.bst
+++ b/Master/texmf-dist/bibtex/bst/base/alpha.bst
@@ -1,12 +1,12 @@
% BibTeX standard bibliography style `alpha'
- % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
- % 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
- % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
- % This restriction helps ensure that all standard styles are identical.
- % The file btxbst.doc has the documentation for this style.
+ % Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later.
+ % Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
+ % Unlimited copying and redistribution of this file are permitted as long as
+ % it is unmodified. Modifications (and redistribution of modified versions)
+ % are also permitted, but only if the resulting file is renamed to something
+ % besides btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
ENTRY
{ address
@@ -51,15 +51,15 @@ FUNCTION {output.nonnull}
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
- { add.period$ write$
- newline$
- "\newblock " write$
- }
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
if$
mid.sentence 'output.state :=
}
@@ -111,8 +111,8 @@ FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
- 'skip$
- { after.sentence 'output.state := }
+ 'skip$
+ { after.sentence 'output.state := }
if$
}
if$
@@ -192,20 +192,20 @@ FUNCTION {format.names}
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -225,8 +225,8 @@ FUNCTION {format.editors}
{ "" }
{ editor format.names
editor num.names$ #1 >
- { ", editors" * }
- { ", editor" * }
+ { ", editors" * }
+ { ", editor" * }
if$
}
if$
@@ -244,21 +244,21 @@ FUNCTION {n.dashify}
""
{ 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 :=
- }
+ { 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$
@@ -267,15 +267,15 @@ FUNCTION {n.dashify}
FUNCTION {format.date}
{ year empty$
{ month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
if$
}
{ month empty$
- 'year
- { month " " * year * }
+ 'year
+ { month " " * year * }
if$
}
if$
@@ -305,8 +305,8 @@ FUNCTION {format.bvolume}
{ "" }
{ "volume" volume tie.or.space.connect
series empty$
- 'skip$
- { " of " * series emphasize * }
+ 'skip$
+ { " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
@@ -316,17 +316,17 @@ FUNCTION {format.bvolume}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
- { series field.or.null }
- { output.state mid.sentence =
- { "number" }
- { "Number" }
- if$
- number tie.or.space.connect
- series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { " in " * series * }
- if$
- }
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
if$
}
{ "" }
@@ -337,8 +337,8 @@ FUNCTION {format.edition}
{ edition empty$
{ "" }
{ output.state mid.sentence =
- { edition "l" change.case$ " edition" * }
- { edition "t" change.case$ " edition" * }
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
if$
}
if$
@@ -358,8 +358,8 @@ FUNCTION {multi.page.check}
swap$ duplicate$ "," =
swap$ "+" =
or or
- { #1 'multiresult := }
- { t #2 global.max$ substring$ 't := }
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
if$
}
while$
@@ -370,8 +370,8 @@ FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
- { "pages" pages n.dashify tie.or.space.connect }
- { "page" pages tie.or.space.connect }
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
if$
}
if$
@@ -383,16 +383,16 @@ FUNCTION {format.vol.num.pages}
'skip$
{ "(" number * ")" * *
volume empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
if$
}
if$
pages empty$
'skip$
{ duplicate$ empty$
- { pop$ format.pages }
- { ":" * pages n.dashify * }
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
if$
}
if$
@@ -402,13 +402,13 @@ FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
- { "chapter" }
- { type "l" change.case$ }
+ { "chapter" }
+ { type "l" change.case$ }
if$
chapter tie.or.space.connect
pages empty$
- 'skip$
- { ", " * format.pages * }
+ 'skip$
+ { ", " * format.pages * }
if$
}
if$
@@ -418,8 +418,8 @@ FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
{ "" }
{ editor empty$
- { "In " booktitle emphasize * }
- { "In " format.editors * ", " * booktitle emphasize * }
+ { "In " booktitle emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
if$
}
if$
@@ -458,11 +458,11 @@ FUNCTION {format.tr.number}
FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In {\em " journal * "\/}" * }
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
if$
}
{ "In " key * }
@@ -476,12 +476,12 @@ FUNCTION {format.crossref.editor}
#2 >
{ pop$ " et~al." * }
{ #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
- }
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
if$
}
if$
@@ -500,15 +500,15 @@ FUNCTION {format.book.crossref}
editor field.or.null author field.or.null =
or
{ key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "{\em " * series * "\/}" * }
- if$
- }
- { key * }
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
if$
}
{ format.crossref.editor * }
@@ -521,15 +521,15 @@ FUNCTION {format.incoll.inproc.crossref}
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 {\em " booktitle * "\/}" * }
- if$
- }
- { "In " key * }
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
if$
}
{ "In " format.crossref.editor * }
@@ -563,8 +563,8 @@ FUNCTION {book}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -609,8 +609,8 @@ FUNCTION {inbook}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -675,17 +675,17 @@ FUNCTION {inproceedings}
format.number.series output
format.pages output
address empty$
- { organization publisher new.sentence.checkb
- organization output
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- new.sentence
- organization output
- publisher output
- }
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
if$
}
{ format.incoll.inproc.crossref output.nonnull
@@ -703,10 +703,10 @@ FUNCTION {manual}
{ output.bibitem
author empty$
{ organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
if$
}
{ format.authors output.nonnull }
@@ -715,10 +715,10 @@ FUNCTION {manual}
format.btitle "title" output.check
author empty$
{ organization empty$
- { address new.block.checka
- address output
- }
- 'skip$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
if$
}
{ organization address new.block.checkb
@@ -789,10 +789,10 @@ FUNCTION {proceedings}
format.number.series output
address empty$
{ editor empty$
- { publisher new.sentence.checka }
- { organization publisher new.sentence.checkb
- organization output
- }
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
if$
publisher output
format.date "year" output.check
@@ -801,8 +801,8 @@ FUNCTION {proceedings}
format.date "year" output.check
new.sentence
editor empty$
- 'skip$
- { organization output }
+ 'skip$
+ { organization output }
if$
publisher output
}
@@ -936,37 +936,37 @@ FUNCTION {format.lab.names}
s num.names$ 'numnames :=
numnames #1 >
{ numnames #4 >
- { #3 'namesleft := }
- { numnames 'namesleft := }
+ { #3 'namesleft := }
+ { numnames 'namesleft := }
if$
#1 'nameptr :=
""
- { namesleft #0 > }
- { nameptr numnames =
- { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { "{\etalchar{+}}" *
- #1 'et.al.char.used :=
- }
- { s nameptr "{v{}}{l{}}" format.name$ * }
- if$
- }
- { s nameptr "{v{}}{l{}}" format.name$ * }
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
+ { namesleft #0 > }
+ { nameptr numnames =
+ { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
while$
numnames #4 >
- { "{\etalchar{+}}" *
- #1 'et.al.char.used :=
- }
- 'skip$
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ 'skip$
if$
}
{ s #1 "{v{}}{l{}}" format.name$
duplicate$ text.length$ #2 <
- { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
- 'skip$
+ { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
+ 'skip$
if$
}
if$
@@ -975,8 +975,8 @@ FUNCTION {format.lab.names}
FUNCTION {author.key.label}
{ author empty$
{ key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
if$
}
{ author format.lab.names }
@@ -986,12 +986,12 @@ FUNCTION {author.key.label}
FUNCTION {author.editor.key.label}
{ author empty$
{ editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { editor format.lab.names }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
if$
}
{ author format.lab.names }
@@ -1001,12 +1001,12 @@ FUNCTION {author.editor.key.label}
FUNCTION {author.key.organization.label}
{ author empty$
{ key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
- if$
- }
- { key #3 text.prefix$ }
+ { organization empty$
+ { cite$ #1 #3 substring$ }
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
if$
}
{ author format.lab.names }
@@ -1016,12 +1016,12 @@ FUNCTION {author.key.organization.label}
FUNCTION {editor.key.organization.label}
{ editor empty$
{ key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
- if$
- }
- { key #3 text.prefix$ }
+ { organization empty$
+ { cite$ #1 #3 substring$ }
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
if$
}
{ editor format.lab.names }
@@ -1034,12 +1034,12 @@ FUNCTION {calc.label}
or
'author.editor.key.label
{ type$ "proceedings" =
- 'editor.key.organization.label
- { type$ "manual" =
- 'author.key.organization.label
- 'author.key.label
- if$
- }
+ 'editor.key.organization.label
+ { type$ "manual" =
+ 'author.key.organization.label
+ 'author.key.label
+ if$
+ }
if$
}
if$
@@ -1060,13 +1060,13 @@ FUNCTION {sort.format.names}
numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
- { " " * }
- 'skip$
+ { " " * }
+ 'skip$
if$
s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
nameptr numnames = t "others" = and
- { "et al" * }
- { t sortify * }
+ { "et al" * }
+ { t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -1088,10 +1088,10 @@ FUNCTION {sort.format.title}
FUNCTION {author.sort}
{ author empty$
{ key empty$
- { "to sort, need author or key in " cite$ * warning$
- ""
- }
- { key sortify }
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
if$
}
{ author sort.format.names }
@@ -1101,14 +1101,14 @@ FUNCTION {author.sort}
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 }
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
if$
}
{ author sort.format.names }
@@ -1118,14 +1118,14 @@ FUNCTION {author.editor.sort}
FUNCTION {author.organization.sort}
{ author empty$
{ organization empty$
- { key empty$
- { "to sort, need author, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ author sort.format.names }
@@ -1135,14 +1135,14 @@ FUNCTION {author.organization.sort}
FUNCTION {editor.organization.sort}
{ editor empty$
{ organization empty$
- { key empty$
- { "to sort, need editor, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ editor sort.format.names }
@@ -1159,12 +1159,12 @@ FUNCTION {presort}
or
'author.editor.sort
{ type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
if$
}
if$
diff --git a/Master/texmf-dist/bibtex/bst/base/apalike.bst b/Master/texmf-dist/bibtex/bst/base/apalike.bst
new file mode 100644
index 00000000000..15df7f7668d
--- /dev/null
+++ b/Master/texmf-dist/bibtex/bst/base/apalike.bst
@@ -0,0 +1,1105 @@
+% BibTeX `apalike' bibliography style (version 0.99a, 8-Dec-10), adapted from
+% the `alpha' style, version 0.99a; for BibTeX version 0.99a.
+%
+% Copyright (C) 1988, 2010 Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted as long as
+% it is unmodified. Modifications (and redistribution of modified versions)
+% are also permitted, but only if the resulting file is renamed.
+%
+% Differences between this style and `alpha' are generally heralded by a `%'.
+% The file btxbst.doc has the documentation for alpha.bst.
+%
+% This style should be used with the `apalike' LaTeX style (apalike.sty).
+% \cite's come out like "(Jones, 1986)" in the text but there are no labels
+% in the bibliography, and something like "(1986)" comes out immediately
+% after the author. Author (and editor) names appear as last name, comma,
+% initials. A `year' field is required for every entry, and so is either
+% an author (or in some cases, an editor) field or a key field.
+%
+% Editorial note:
+% Many journals require a style like `apalike', but I strongly, strongly,
+% strongly recommend that you not use it if you have a choice---use something
+% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars,
+% Knopf, 1979) argues convincingly that a style like `plain' encourages better
+% writing than one like `apalike'. Furthermore the strongest arguments for
+% using an author-date style like `apalike'---that it's "the most practical"
+% (The Chicago Manual of Style, University of Chicago Press, thirteenth
+% edition, 1982, pages 400--401)---fall flat on their face with the new
+% computer-typesetting technology. For instance page 401 anachronistically
+% states "The chief disadvantage of [a style like `plain'] is that additions
+% or deletions cannot be made after the manuscript is typed without changing
+% numbers in both text references and list." LaTeX sidesteps the disadvantage.
+%
+% History:
+% 15-sep-86 (OP) Original version by Oren Patashnik, ideas from Susan King.
+% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length
+% in bib.sort.order to eliminate error message.
+% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a;
+% apalike now sorts by author, then year, then title;
+% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+% 8-dec-10 (OP) Still version 0.99a, as the code itself was unchanged;
+% this release clarified the license.
+
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ key
+% month not used in apalike
+ 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}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+% apalike needs this function because
+% the year has special punctuation;
+% apalike ignores the month
+FUNCTION {output.year.check}
+{ year empty$
+ { "empty year in " cite$ * warning$ }
+ { write$
+ " (" year * extra.label * ")" *
+ mid.sentence 'output.state :=
+ }
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem[" write$
+ label write$
+ "]{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+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 {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 {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ 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 := % last name first
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names }
+ if$
+}
+
+FUNCTION {format.key} % this function is just for apalike
+{ empty$
+ { key field.or.null }
+ { "" }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor format.names
+ editor num.names$ #1 >
+ { ", editors" * }
+ { ", editor" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title "t" change.case$ }
+ 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 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$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { "volume" volume tie.or.space.connect
+ series empty$
+ 'skip$
+ { " of " * series emphasize * }
+ 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 =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ 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$ " edition" * }
+ { edition "t" change.case$ " edition" * }
+ 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
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume 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 emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Technical Report" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.article.crossref}
+{ "In" % this is for apalike
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In "
+ }
+ { "Volume" volume tie.or.space.connect
+ " of " *
+ }
+ if$
+ "\cite{" * crossref * "}" * % this is for apalike
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ "In" % this is for apalike
+ " \cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ 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 % special for apalike
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ author format.key output % special for
+ output.year.check % apalike
+ 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 % special for apalike
+ 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
+ publisher "publisher" output.check
+ address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ 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
+ publisher "publisher" output.check
+ address output
+ format.edition 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 % special for
+ output.year.check % apalike
+ 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 output % for apalike
+ new.sentence % there's no year
+ organization output % here so things
+ publisher output % are simpler
+ }
+ { 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 % special for
+ output.year.check % apalike
+ new.block
+ format.btitle "title" output.check
+ organization address new.block.checkb
+ organization output
+ address output
+ format.edition output
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ new.block
+ format.title "title" output.check
+ new.block
+ "Master's thesis" 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 % special for
+ output.year.check % apalike
+ 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 % special for
+ output.year.check % apalike
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "PhD thesis" 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 % special for
+ output.year.check % apalike
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address output % for apalike
+ new.sentence % we always output
+ organization output % a nonempty organization
+ publisher output % here
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ author format.key output % special for
+ output.year.check % apalike
+ 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 % special for
+ output.year.check % apalike
+ 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$
+}
+
+% There are three apalike cases: one person (Jones),
+% two (Jones and de~Bruijn), and more (Jones et~al.).
+% This function is much like format.crossref.editors.
+%
+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." * }
+ { " and " * s #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key % apalike uses the whole key
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key % apalike uses the whole 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 % apalike uses the whole key, no organization
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.label % apalike ignores organization
+ 'author.key.label % for labeling and sorting
+ if$
+ }
+ if$
+ ", " % these three lines are
+ * % for apalike, which
+ year field.or.null purify$ #-1 #4 substring$ % uses all four digits
+ *
+ 'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$ % apalike uses initials
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here
+ 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$
+}
+
+% apalike uses two sorting passes; the first one sets the
+% labels so that the `a's, `b's, etc. can be computed;
+% the second pass puts the references in "correct" order.
+% The presort function is for the first pass. It computes
+% label, sort.label, and title, and then concatenates.
+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$ % for
+ 'sort.label := % apalike
+ sort.label % style
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT % by label, sort.label, title---for final label calculation
+
+STRINGS { last.label next.extra } % apalike labels are only for the text;
+
+INTEGERS { last.extra.num } % there are none in the bibliography
+
+FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label'
+{ #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}
+
+% Now that the label is right we sort for real,
+% on sort.label then year then title. This is
+% for the second sorting 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 % by sort.label, year, title---giving final bibliography order
+
+FUNCTION {begin.bib}
+{ preamble$ empty$ % no \etalchar in apalike
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{}" write$ newline$ % no labels in apalike
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
diff --git a/Master/texmf-dist/bibtex/bst/base/ieeetr.bst b/Master/texmf-dist/bibtex/bst/base/ieeetr.bst
index e582e8cc06d..b8cacb51f6f 100644
--- a/Master/texmf-dist/bibtex/bst/base/ieeetr.bst
+++ b/Master/texmf-dist/bibtex/bst/base/ieeetr.bst
@@ -1,13 +1,19 @@
-% IEEE Transactions bibliography style (29-Jan-88 version)
+% Copyright (C) 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted as long as
+% it is unmodified. Modifications (and redistribution of modified versions)
+% are also permitted, but only if the resulting file is renamed.
+%
+% IEEE Transactions bibliography style (8-Dec-10 version)
% numeric labels, order-of-reference, IEEE abbreviations,
% quotes around article titles, commas separate all fields
% except after book titles and before "notes". Otherwise,
% much like the "plain" family, from which this is adapted.
%
% History
-% 9/30/85 (HWT) Original version, by Howard Trickey.
-% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
-% THIS `ieeetr' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+% 9/30/85 (HWT) Original version, by Howard Trickey.
+% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
+% THIS `ieeetr' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+% 12/ 8/10 (OP&HWT) Clarify license.
ENTRY
{ address
@@ -37,7 +43,7 @@ ENTRY
{ label }
INTEGERS { output.state before.all mid.sentence after.quote after.sentence
- after.quoted.block after.block }
+ after.quoted.block after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
@@ -55,26 +61,26 @@ FUNCTION {output.nonnull}
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.quote =
- { " " * write$ }
- { output.state after.block =
- { add.period$ write$
- newline$
- "\newblock " write$
- }
- { output.state before.all =
- 'write$
- { output.state after.quoted.block =
- { write$
- newline$
- "\newblock " write$
- }
- { add.period$ " " * write$ }
- if$
- }
- if$
- }
- if$
- }
+ { " " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { output.state after.quoted.block =
+ { write$
+ newline$
+ "\newblock " write$
+ }
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
if$
mid.sentence 'output.state :=
}
@@ -124,8 +130,8 @@ FUNCTION {new.block}
{ output.state before.all =
'skip$
{ output.state after.quote =
- { after.quoted.block 'output.state := }
- { after.block 'output.state := }
+ { after.quoted.block 'output.state := }
+ { after.block 'output.state := }
if$
}
if$
@@ -135,8 +141,8 @@ FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
- 'skip$
- { after.sentence 'output.state := }
+ 'skip$
+ { after.sentence 'output.state := }
if$
}
if$
@@ -207,20 +213,20 @@ FUNCTION {format.names}
{ namesleft #0 > }
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " {\em et~al.}" * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " {\em et~al.}" * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -240,8 +246,8 @@ FUNCTION {format.editors}
{ "" }
{ editor format.names
editor num.names$ #1 >
- { ", eds." * }
- { ", ed." * }
+ { ", eds." * }
+ { ", ed." * }
if$
}
if$
@@ -266,21 +272,21 @@ FUNCTION {n.dashify}
""
{ 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 :=
- }
+ { 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$
@@ -289,15 +295,15 @@ FUNCTION {n.dashify}
FUNCTION {format.date}
{ year empty$
{ month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
if$
}
{ month empty$
- 'year
- { month " " * year * }
+ 'year
+ { month " " * year * }
if$
}
if$
@@ -327,8 +333,8 @@ FUNCTION {format.bvolume}
{ "" }
{ "vol.~" volume *
series empty$
- 'skip$
- { " of " * series emphasize * }
+ 'skip$
+ { " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
@@ -338,17 +344,17 @@ FUNCTION {format.bvolume}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
- { series field.or.null }
- { output.state mid.sentence =
- { "no.~" }
- { "No.~" }
- if$
- number *
- series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { " in " * series * }
- if$
- }
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "no.~" }
+ { "No.~" }
+ if$
+ number *
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
if$
}
{ "" }
@@ -376,8 +382,8 @@ FUNCTION {multi.page.check}
swap$ duplicate$ "," =
swap$ "+" =
or or
- { #1 'multiresult := }
- { t #2 global.max$ substring$ 't := }
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
if$
}
while$
@@ -388,8 +394,8 @@ FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
- { "pp.~" pages n.dashify * }
- { "p.~" pages * }
+ { "pp.~" pages n.dashify * }
+ { "p.~" pages * }
if$
}
if$
@@ -413,12 +419,12 @@ FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
- { "ch.~" chapter * }
- { type "l" change.case$ chapter tie.or.space.connect }
+ { "ch.~" chapter * }
+ { type "l" change.case$ chapter tie.or.space.connect }
if$
pages empty$
- 'skip$
- { ", " * format.pages * }
+ 'skip$
+ { ", " * format.pages * }
if$
}
if$
@@ -429,8 +435,8 @@ FUNCTION {format.in.ed.booktitle}
{ "" }
{ "in " booktitle emphasize *
editor empty$
- 'skip$
- { " (" * format.editors * ")" * }
+ 'skip$
+ { " (" * format.editors * ")" * }
if$
}
if$
@@ -441,8 +447,8 @@ FUNCTION {format.thesis.type}
'skip$
{ pop$
output.state after.block =
- { type "t" change.case$ }
- { type "l" change.case$ }
+ { type "t" change.case$ }
+ { type "l" change.case$ }
if$
}
if$
@@ -472,8 +478,8 @@ FUNCTION {format.addr.pub}
{ publisher empty$
{ "" }
{ address empty$
- { "" }
- { address ": " * }
+ { "" }
+ { address ": " * }
if$
publisher *
}
@@ -490,11 +496,11 @@ FUNCTION {format.paddress}
FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "in {\em " journal * "\/}" * }
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "in {\em " journal * "\/}" * }
if$
}
{ "in " key * }
@@ -508,12 +514,12 @@ FUNCTION {format.crossref.editor}
#2 >
{ pop$ " {\em et~al.}" * }
{ #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " {\em et~al.}" * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
- }
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " {\em et~al.}" * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
if$
}
if$
@@ -532,15 +538,15 @@ FUNCTION {format.book.crossref}
editor field.or.null author field.or.null =
or
{ key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "{\em " * series * "\/}" * }
- if$
- }
- { key * }
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
if$
}
{ format.crossref.editor * }
@@ -553,15 +559,15 @@ FUNCTION {format.incoll.inproc.crossref}
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 {\em " booktitle * "\/}" * }
- if$
- }
- { "in " key * }
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "in {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "in " key * }
if$
}
{ "in " format.crossref.editor * }
@@ -578,8 +584,8 @@ FUNCTION {article}
{ journal emphasize "journal" output.check
format.volume output
month empty$
- { format.number output }
- 'skip$
+ { format.number output }
+ 'skip$
if$
format.pages output
format.date "year" output.check
@@ -599,8 +605,8 @@ FUNCTION {book}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -632,8 +638,8 @@ FUNCTION {booklet}
{ howpublished empty$ not
address empty$ month empty$ year empty$ and and
or
- { format.title.p output.nonnull }
- { format.title output.nonnull }
+ { format.title.p output.nonnull }
+ { format.title output.nonnull }
if$
blank.sep
}
@@ -652,8 +658,8 @@ FUNCTION {inbook}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -730,10 +736,10 @@ FUNCTION {manual}
{ output.bibitem
author empty$
{ organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
if$
}
{ format.authors output.nonnull }
@@ -741,10 +747,10 @@ FUNCTION {manual}
format.btitle "title" output.check
author empty$
{ organization empty$
- { address new.block.checka
- address output
- }
- 'skip$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
if$
}
{ organization address new.block.checkb
@@ -781,8 +787,8 @@ FUNCTION {misc}
{ howpublished empty$ not
month empty$ year empty$ and
or
- { format.title.p output.nonnull }
- { format.title output.nonnull }
+ { format.title.p output.nonnull }
+ { format.title output.nonnull }
if$
blank.sep
}
diff --git a/Master/texmf-dist/bibtex/bst/base/plain.bst b/Master/texmf-dist/bibtex/bst/base/plain.bst
index 83286c1a803..7adf4bb0a34 100644
--- a/Master/texmf-dist/bibtex/bst/base/plain.bst
+++ b/Master/texmf-dist/bibtex/bst/base/plain.bst
@@ -1,12 +1,12 @@
% BibTeX standard bibliography style `plain'
- % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
- % 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
- % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
- % This restriction helps ensure that all standard styles are identical.
- % The file btxbst.doc has the documentation for this style.
+ % Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later.
+ % Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
+ % Unlimited copying and redistribution of this file are permitted as long as
+ % it is unmodified. Modifications (and redistribution of modified versions)
+ % are also permitted, but only if the resulting file is renamed to something
+ % besides btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
ENTRY
{ address
@@ -51,15 +51,15 @@ FUNCTION {output.nonnull}
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
- { add.period$ write$
- newline$
- "\newblock " write$
- }
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
if$
mid.sentence 'output.state :=
}
@@ -109,8 +109,8 @@ FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
- 'skip$
- { after.sentence 'output.state := }
+ 'skip$
+ { after.sentence 'output.state := }
if$
}
if$
@@ -190,20 +190,20 @@ FUNCTION {format.names}
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -223,8 +223,8 @@ FUNCTION {format.editors}
{ "" }
{ editor format.names
editor num.names$ #1 >
- { ", editors" * }
- { ", editor" * }
+ { ", editors" * }
+ { ", editor" * }
if$
}
if$
@@ -242,21 +242,21 @@ FUNCTION {n.dashify}
""
{ 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 :=
- }
+ { 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$
@@ -265,15 +265,15 @@ FUNCTION {n.dashify}
FUNCTION {format.date}
{ year empty$
{ month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
if$
}
{ month empty$
- 'year
- { month " " * year * }
+ 'year
+ { month " " * year * }
if$
}
if$
@@ -303,8 +303,8 @@ FUNCTION {format.bvolume}
{ "" }
{ "volume" volume tie.or.space.connect
series empty$
- 'skip$
- { " of " * series emphasize * }
+ 'skip$
+ { " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
@@ -314,17 +314,17 @@ FUNCTION {format.bvolume}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
- { series field.or.null }
- { output.state mid.sentence =
- { "number" }
- { "Number" }
- if$
- number tie.or.space.connect
- series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { " in " * series * }
- if$
- }
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
if$
}
{ "" }
@@ -335,8 +335,8 @@ FUNCTION {format.edition}
{ edition empty$
{ "" }
{ output.state mid.sentence =
- { edition "l" change.case$ " edition" * }
- { edition "t" change.case$ " edition" * }
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
if$
}
if$
@@ -356,8 +356,8 @@ FUNCTION {multi.page.check}
swap$ duplicate$ "," =
swap$ "+" =
or or
- { #1 'multiresult := }
- { t #2 global.max$ substring$ 't := }
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
if$
}
while$
@@ -368,8 +368,8 @@ FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
- { "pages" pages n.dashify tie.or.space.connect }
- { "page" pages tie.or.space.connect }
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
if$
}
if$
@@ -381,16 +381,16 @@ FUNCTION {format.vol.num.pages}
'skip$
{ "(" number * ")" * *
volume empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
if$
}
if$
pages empty$
'skip$
{ duplicate$ empty$
- { pop$ format.pages }
- { ":" * pages n.dashify * }
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
if$
}
if$
@@ -400,13 +400,13 @@ FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
- { "chapter" }
- { type "l" change.case$ }
+ { "chapter" }
+ { type "l" change.case$ }
if$
chapter tie.or.space.connect
pages empty$
- 'skip$
- { ", " * format.pages * }
+ 'skip$
+ { ", " * format.pages * }
if$
}
if$
@@ -416,8 +416,8 @@ FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
{ "" }
{ editor empty$
- { "In " booktitle emphasize * }
- { "In " format.editors * ", " * booktitle emphasize * }
+ { "In " booktitle emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
if$
}
if$
@@ -456,11 +456,11 @@ FUNCTION {format.tr.number}
FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In {\em " journal * "\/}" * }
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
if$
}
{ "In " key * }
@@ -474,12 +474,12 @@ FUNCTION {format.crossref.editor}
#2 >
{ pop$ " et~al." * }
{ #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
- }
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
if$
}
if$
@@ -498,15 +498,15 @@ FUNCTION {format.book.crossref}
editor field.or.null author field.or.null =
or
{ key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "{\em " * series * "\/}" * }
- if$
- }
- { key * }
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
if$
}
{ format.crossref.editor * }
@@ -519,15 +519,15 @@ FUNCTION {format.incoll.inproc.crossref}
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 {\em " booktitle * "\/}" * }
- if$
- }
- { "In " key * }
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
if$
}
{ "In " format.crossref.editor * }
@@ -561,8 +561,8 @@ FUNCTION {book}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -607,8 +607,8 @@ FUNCTION {inbook}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -673,17 +673,17 @@ FUNCTION {inproceedings}
format.number.series output
format.pages output
address empty$
- { organization publisher new.sentence.checkb
- organization output
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- new.sentence
- organization output
- publisher output
- }
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
if$
}
{ format.incoll.inproc.crossref output.nonnull
@@ -701,10 +701,10 @@ FUNCTION {manual}
{ output.bibitem
author empty$
{ organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
if$
}
{ format.authors output.nonnull }
@@ -713,10 +713,10 @@ FUNCTION {manual}
format.btitle "title" output.check
author empty$
{ organization empty$
- { address new.block.checka
- address output
- }
- 'skip$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
if$
}
{ organization address new.block.checkb
@@ -787,10 +787,10 @@ FUNCTION {proceedings}
format.number.series output
address empty$
{ editor empty$
- { publisher new.sentence.checka }
- { organization publisher new.sentence.checkb
- organization output
- }
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
if$
publisher output
format.date "year" output.check
@@ -799,8 +799,8 @@ FUNCTION {proceedings}
format.date "year" output.check
new.sentence
editor empty$
- 'skip$
- { organization output }
+ 'skip$
+ { organization output }
if$
publisher output
}
@@ -929,13 +929,13 @@ FUNCTION {sort.format.names}
numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
- { " " * }
- 'skip$
+ { " " * }
+ 'skip$
if$
s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
nameptr numnames = t "others" = and
- { "et al" * }
- { t sortify * }
+ { "et al" * }
+ { t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -957,10 +957,10 @@ FUNCTION {sort.format.title}
FUNCTION {author.sort}
{ author empty$
{ key empty$
- { "to sort, need author or key in " cite$ * warning$
- ""
- }
- { key sortify }
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
if$
}
{ author sort.format.names }
@@ -970,14 +970,14 @@ FUNCTION {author.sort}
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 }
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
if$
}
{ author sort.format.names }
@@ -987,14 +987,14 @@ FUNCTION {author.editor.sort}
FUNCTION {author.organization.sort}
{ author empty$
{ organization empty$
- { key empty$
- { "to sort, need author, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ author sort.format.names }
@@ -1004,14 +1004,14 @@ FUNCTION {author.organization.sort}
FUNCTION {editor.organization.sort}
{ editor empty$
{ organization empty$
- { key empty$
- { "to sort, need editor, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ editor sort.format.names }
@@ -1024,12 +1024,12 @@ FUNCTION {presort}
or
'author.editor.sort
{ type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
if$
}
if$
diff --git a/Master/texmf-dist/bibtex/bst/base/siam.bst b/Master/texmf-dist/bibtex/bst/base/siam.bst
index 86b86d984f8..ce88b41e416 100644
--- a/Master/texmf-dist/bibtex/bst/base/siam.bst
+++ b/Master/texmf-dist/bibtex/bst/base/siam.bst
@@ -1,13 +1,19 @@
-% SIAM bibliography style (29-Jan-88 version)
+% Copyright (C) 1986, 1987, 1988, 2010 Howard Trickey and Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted as long as
+% it is unmodified. Modifications (and redistribution of modified versions)
+% are also permitted, but only if the resulting file is renamed.
+%
+% SIAM bibliography style (8-Dec-10 version)
% numeric labels, alphabetic order, Mathematical Reviews abbreviations,
% names in \sc, titles in italics, book titles mixed upper-lower and article
% titles lowercase, commas separate all fields except before "notes".
%
% History
-% 1/30/86 (HWT) Original version, by Howard Trickey.
-% 6/15/87 (HWT) Fix format.editors---Martin Costabel.
-% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
-% THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+% 1/30/86 (HWT) Original version, by Howard Trickey.
+% 6/15/87 (HWT) Fix format.editors---Martin Costabel.
+% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
+% THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+% 12/ 8/10 (OP&HWT) Clarify license.
ENTRY
{ address
@@ -51,11 +57,11 @@ FUNCTION {output.nonnull}
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
- { add.period$ write$
- newline$
- "\newblock " write$
- }
- 'write$
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ 'write$
if$
mid.sentence 'output.state :=
}
@@ -157,20 +163,20 @@ FUNCTION {format.names}
{ namesleft #0 > }
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -219,11 +225,11 @@ FUNCTION {format.editors}
}
{ editor last.authors =
{ "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" }
- { editor format.names scapify }
+ { editor format.names scapify }
if$
editor num.names$ #1 >
{ ", eds." * }
- { ", ed." * }
+ { ", ed." * }
if$
editor 'last.authors :=
}
@@ -235,8 +241,8 @@ FUNCTION {format.ineditors}
{ "" }
{ editor format.names
editor num.names$ #1 >
- { ", eds." * }
- { ", ed." * }
+ { ", eds." * }
+ { ", ed." * }
if$
}
if$
@@ -254,21 +260,21 @@ FUNCTION {n.dashify}
""
{ 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 :=
- }
+ { 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$
@@ -277,15 +283,15 @@ FUNCTION {n.dashify}
FUNCTION {format.date}
{ year empty$
{ month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
if$
}
{ month empty$
- 'year
- { month " " * year * }
+ 'year
+ { month " " * year * }
if$
}
if$
@@ -315,8 +321,8 @@ FUNCTION {format.bvolume}
{ "" }
{ "vol.~" volume *
series empty$
- 'skip$
- { " of " * series * }
+ 'skip$
+ { " of " * series * }
if$
"volume and number" number either.or.check
}
@@ -326,13 +332,13 @@ FUNCTION {format.bvolume}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
- { series field.or.null }
- { "no.~" number *
- series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { " in " * series * }
- if$
- }
+ { series field.or.null }
+ { "no.~" number *
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
if$
}
{ "" }
@@ -360,8 +366,8 @@ FUNCTION {multi.page.check}
swap$ duplicate$ "," =
swap$ "+" =
or or
- { #1 'multiresult := }
- { t #2 global.max$ substring$ 't := }
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
if$
}
while$
@@ -372,8 +378,8 @@ FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
- { "pp.~" pages n.dashify * }
- { "p.~" pages * }
+ { "pp.~" pages n.dashify * }
+ { "p.~" pages * }
if$
}
if$
@@ -391,12 +397,12 @@ FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
- { "ch.~" chapter * }
- { type "l" change.case$ chapter tie.or.space.connect }
+ { "ch.~" chapter * }
+ { type "l" change.case$ chapter tie.or.space.connect }
if$
pages empty$
- 'skip$
- { ", " * format.pages * }
+ 'skip$
+ { ", " * format.pages * }
if$
}
if$
@@ -406,8 +412,8 @@ FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
{ "" }
{ editor empty$
- { "in " booktitle * }
- { "in " booktitle * ", " * format.ineditors * }
+ { "in " booktitle * }
+ { "in " booktitle * ", " * format.ineditors * }
if$
}
if$
@@ -446,11 +452,11 @@ FUNCTION {format.tr.number}
FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "in " journal * }
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "in " journal * }
if$
}
{ "in " key * }
@@ -464,12 +470,12 @@ FUNCTION {format.crossref.editor}
#2 >
{ pop$ " et~al." * }
{ #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
- }
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
if$
}
if$
@@ -488,15 +494,15 @@ FUNCTION {format.book.crossref}
editor field.or.null author field.or.null =
or
{ key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { series * }
- if$
- }
- { key * }
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { series * }
+ if$
+ }
+ { key * }
if$
}
{ format.crossref.editor * }
@@ -509,15 +515,15 @@ FUNCTION {format.incoll.inproc.crossref}
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 " booktitle * }
- if$
- }
- { "in " key * }
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "in " booktitle * }
+ if$
+ }
+ { "in " key * }
if$
}
{ "in " format.crossref.editor * }
@@ -547,8 +553,8 @@ FUNCTION {book}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -587,8 +593,8 @@ FUNCTION {inbook}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -639,15 +645,15 @@ FUNCTION {inproceedings}
format.bvolume output
format.number.series output
address empty$
- { organization output
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- organization output
- publisher output
- }
+ { organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ organization output
+ publisher output
+ }
if$
}
{ format.incoll.inproc.crossref output.nonnull }
@@ -729,8 +735,8 @@ FUNCTION {proceedings}
format.number.series output
address empty$
{ editor empty$
- 'skip$
- { organization output }
+ 'skip$
+ { organization output }
if$
publisher output
format.date "year" output.check
@@ -738,8 +744,8 @@ FUNCTION {proceedings}
{ address output.nonnull
format.date "year" output.check
editor empty$
- 'skip$
- { organization output }
+ 'skip$
+ { organization output }
if$
publisher output
}
@@ -865,13 +871,13 @@ FUNCTION {sort.format.names}
numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
- { " " * }
- 'skip$
+ { " " * }
+ 'skip$
if$
s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
nameptr numnames = t "others" = and
- { "et al" * }
- { t sortify * }
+ { "et al" * }
+ { t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -893,10 +899,10 @@ FUNCTION {sort.format.title}
FUNCTION {author.sort}
{ author empty$
{ key empty$
- { "to sort, need author or key in " cite$ * warning$
- ""
- }
- { key sortify }
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
if$
}
{ author sort.format.names }
@@ -906,14 +912,14 @@ FUNCTION {author.sort}
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 }
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
if$
}
{ author sort.format.names }
@@ -923,14 +929,14 @@ FUNCTION {author.editor.sort}
FUNCTION {author.organization.sort}
{ author empty$
{ organization empty$
- { key empty$
- { "to sort, need author, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ author sort.format.names }
@@ -940,14 +946,14 @@ FUNCTION {author.organization.sort}
FUNCTION {editor.organization.sort}
{ editor empty$
{ organization empty$
- { key empty$
- { "to sort, need editor, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ editor sort.format.names }
@@ -960,12 +966,12 @@ FUNCTION {presort}
or
'author.editor.sort
{ type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
if$
}
if$
diff --git a/Master/texmf-dist/bibtex/bst/base/unsrt.bst b/Master/texmf-dist/bibtex/bst/base/unsrt.bst
index bb85ab8b4d0..4be323eea0e 100644
--- a/Master/texmf-dist/bibtex/bst/base/unsrt.bst
+++ b/Master/texmf-dist/bibtex/bst/base/unsrt.bst
@@ -1,12 +1,12 @@
% BibTeX standard bibliography style `unsrt'
- % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
- % 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
- % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
- % This restriction helps ensure that all standard styles are identical.
- % The file btxbst.doc has the documentation for this style.
+ % Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later.
+ % Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
+ % Unlimited copying and redistribution of this file are permitted as long as
+ % it is unmodified. Modifications (and redistribution of modified versions)
+ % are also permitted, but only if the resulting file is renamed to something
+ % besides btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
ENTRY
{ address
@@ -51,15 +51,15 @@ FUNCTION {output.nonnull}
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
- { add.period$ write$
- newline$
- "\newblock " write$
- }
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
if$
mid.sentence 'output.state :=
}
@@ -109,8 +109,8 @@ FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
- 'skip$
- { after.sentence 'output.state := }
+ 'skip$
+ { after.sentence 'output.state := }
if$
}
if$
@@ -190,20 +190,20 @@ FUNCTION {format.names}
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -223,8 +223,8 @@ FUNCTION {format.editors}
{ "" }
{ editor format.names
editor num.names$ #1 >
- { ", editors" * }
- { ", editor" * }
+ { ", editors" * }
+ { ", editor" * }
if$
}
if$
@@ -242,21 +242,21 @@ FUNCTION {n.dashify}
""
{ 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 :=
- }
+ { 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$
@@ -265,15 +265,15 @@ FUNCTION {n.dashify}
FUNCTION {format.date}
{ year empty$
{ month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
if$
}
{ month empty$
- 'year
- { month " " * year * }
+ 'year
+ { month " " * year * }
if$
}
if$
@@ -303,8 +303,8 @@ FUNCTION {format.bvolume}
{ "" }
{ "volume" volume tie.or.space.connect
series empty$
- 'skip$
- { " of " * series emphasize * }
+ 'skip$
+ { " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
@@ -314,17 +314,17 @@ FUNCTION {format.bvolume}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
- { series field.or.null }
- { output.state mid.sentence =
- { "number" }
- { "Number" }
- if$
- number tie.or.space.connect
- series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { " in " * series * }
- if$
- }
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
if$
}
{ "" }
@@ -335,8 +335,8 @@ FUNCTION {format.edition}
{ edition empty$
{ "" }
{ output.state mid.sentence =
- { edition "l" change.case$ " edition" * }
- { edition "t" change.case$ " edition" * }
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
if$
}
if$
@@ -356,8 +356,8 @@ FUNCTION {multi.page.check}
swap$ duplicate$ "," =
swap$ "+" =
or or
- { #1 'multiresult := }
- { t #2 global.max$ substring$ 't := }
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
if$
}
while$
@@ -368,8 +368,8 @@ FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
- { "pages" pages n.dashify tie.or.space.connect }
- { "page" pages tie.or.space.connect }
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
if$
}
if$
@@ -381,16 +381,16 @@ FUNCTION {format.vol.num.pages}
'skip$
{ "(" number * ")" * *
volume empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
if$
}
if$
pages empty$
'skip$
{ duplicate$ empty$
- { pop$ format.pages }
- { ":" * pages n.dashify * }
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
if$
}
if$
@@ -400,13 +400,13 @@ FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
- { "chapter" }
- { type "l" change.case$ }
+ { "chapter" }
+ { type "l" change.case$ }
if$
chapter tie.or.space.connect
pages empty$
- 'skip$
- { ", " * format.pages * }
+ 'skip$
+ { ", " * format.pages * }
if$
}
if$
@@ -416,8 +416,8 @@ FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
{ "" }
{ editor empty$
- { "In " booktitle emphasize * }
- { "In " format.editors * ", " * booktitle emphasize * }
+ { "In " booktitle emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
if$
}
if$
@@ -455,11 +455,11 @@ FUNCTION {format.tr.number}
FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In {\em " journal * "\/}" * }
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
if$
}
{ "In " key * }
@@ -473,12 +473,12 @@ FUNCTION {format.crossref.editor}
#2 >
{ pop$ " et~al." * }
{ #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
- }
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
if$
}
if$
@@ -497,15 +497,15 @@ FUNCTION {format.book.crossref}
editor field.or.null author field.or.null =
or
{ key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "{\em " * series * "\/}" * }
- if$
- }
- { key * }
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
if$
}
{ format.crossref.editor * }
@@ -518,15 +518,15 @@ FUNCTION {format.incoll.inproc.crossref}
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 {\em " booktitle * "\/}" * }
- if$
- }
- { "In " key * }
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
if$
}
{ "In " format.crossref.editor * }
@@ -560,8 +560,8 @@ FUNCTION {book}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -606,8 +606,8 @@ FUNCTION {inbook}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -672,17 +672,17 @@ FUNCTION {inproceedings}
format.number.series output
format.pages output
address empty$
- { organization publisher new.sentence.checkb
- organization output
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- new.sentence
- organization output
- publisher output
- }
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
if$
}
{ format.incoll.inproc.crossref output.nonnull
@@ -700,10 +700,10 @@ FUNCTION {manual}
{ output.bibitem
author empty$
{ organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
if$
}
{ format.authors output.nonnull }
@@ -712,10 +712,10 @@ FUNCTION {manual}
format.btitle "title" output.check
author empty$
{ organization empty$
- { address new.block.checka
- address output
- }
- 'skip$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
if$
}
{ organization address new.block.checkb
@@ -786,10 +786,10 @@ FUNCTION {proceedings}
format.number.series output
address empty$
{ editor empty$
- { publisher new.sentence.checka }
- { organization publisher new.sentence.checkb
- organization output
- }
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
if$
publisher output
format.date "year" output.check
@@ -798,8 +798,8 @@ FUNCTION {proceedings}
format.date "year" output.check
new.sentence
editor empty$
- 'skip$
- { organization output }
+ 'skip$
+ { organization output }
if$
publisher output
}
diff --git a/Master/texmf-dist/doc/bibtex/base/README b/Master/texmf-dist/doc/bibtex/base/README
new file mode 100644
index 00000000000..53e7cdb4d9f
--- /dev/null
+++ b/Master/texmf-dist/doc/bibtex/base/README
@@ -0,0 +1,36 @@
+The intent is for the BibTeX program to be distributed under the same
+terms as Knuth's TeX program, and for the BibTeX support files
+to be distributed under the same terms as Knuth's support files.
+
+If questions or problems, please write to biblio@tug.org, the general
+mailing list for BibTeX (and other TeX/bibliography systems). For
+archives and subscription information, see http://lists.tug.org/biblio.
+
+Files distributed here:
+bibtex.web the source file for BibTeX
+btxdoc.tex documentation, and also sample input for BibTeX implementors
+btxdoc.pdf generated output for browsing
+btxhak.tex documentation for style designers
+btxdoc.bib the bibliography database file for btxdoc.tex
+btxhak.pdf generated output for browsing
+xampl.bib a database file with an example of every standard entry type
+
+btxbst.doc the documentation and template for the four standard
+ bibliography styles:
+abbrv.bst abbreviated
+alpha.bst alphabetic
+plain.bst plain
+unsrt.bst unsorted
+
+The four semi-standard bibliography styles:
+acm.bst ACM Transactions
+apalike.bst APA-like
+ieeetr.bst IEEE Transactions
+siam.bst SIAM
+
+Support files for apalike:
+apalike.sty LaTeX support for apalike.bst
+apalike.tex Plain TeX support for apalike.bst (uses btxmac.tex)
+
+--Karl Berry and Oren Patashnik (written 2010).
+(This file is public domain.)
diff --git a/Master/texmf-dist/doc/bibtex/base/bibshare b/Master/texmf-dist/doc/bibtex/base/bibshare
deleted file mode 100644
index cb0c4938fcc..00000000000
--- a/Master/texmf-dist/doc/bibtex/base/bibshare
+++ /dev/null
@@ -1,82 +0,0 @@
-Notes on how to share bibtex files.
-
-Construction of citation keys:
-
-@article
- Author:<abbrev-journal>-<volume or yyear>-<start page or month#>
-
-@inproceedings
- Author:<abbrev-booktitle><yyear>-<start page> [no -, e.g, RIDT91]
-
-@incollection
- Author:<abbrev-booktitle>-<yyear>-<start page>
-
-@proceedings
-@book
-@...thesis
- Author:<abbrev-title>-<yyear>
-
-@unpublished
- Author:<abbrev-title>-<yyear>-<month# or whatever>
-
-@techreport
- Author:<abbrev-title>-<yyear> or
- Author:<abbrev-inst>-<yyear>-<number>
-
-
-To make abbrev, use initial letters from the first three or so important
-words in the title. If title has one word, probably better to
-abbreviate it than to use just a single letter, as in `SCI' rather than
-`S' for the journal `Science'. For books it probably doesn't matter much.
-
-Use \#, \&, \$
-Use \allcaps
-
-journal string prefix `j-'
-publisher `pub-'
-publisher address `pub-<publisher>:adr'
-institution `inst-'
-
-
-This book has a good collections of journal abbreviations:
-
-Coden for Periodical Titles, Volume 1, ASTM Data Series DS 23A,
-American Society for Testing and Materials, 1916 Race St, Philadelphia, PA 19103
-
-
-CONVENTIONS (for naming BibTeX citation keys)
-
-Books are tagged by the first author's last name, a colon, up to 3
-upper-case letters taken from the first three upper-case words in the
-title (ignoring words like A, And, The), followed by the last two digits
-of the publication year. If there is a volume entry, it is appended to
-the tag, prefixed by a hyphen.
-
-When appropriate, a van part is included in the author tag. For names
-with accented letters, accents are dropped in the author tag.
-
-This scheme is systematic enough that it can be programmed: most of the
-Addison-Wesley book entries were created with an awk program from a dump
-of the AW database supplied by Mona Zeftel. Older entries in this
-bibliography were modified on 28-Nov-1990 to conform to this tagging
-scheme.
-
-The choice of a limit of 3 letters was determined from experiments on
-the Addison-Wesley collection. Long tags are undesirable because they
-are a nuisance to type, and also interfere with the tagged bibliography
-output produced using the LaTeX showtags style option.
-
-Journal article tags look like author:abbrev-volume-number-page, where
-the author part is the last name of the first author: for example,
-Gilchrist:NAMS-36-9-1199.
-
-Technical report tags look like author:abbrev-number: for example,
-Billawala:STAN-CS-89-1256.
-
-InProceedings tags look like author:conferencename-page: for example,
-Agostini:TEX85-117.
-
-With few exceptions, value fields for acknowledgement, address, journal,
-and publisher keywords should use macros. This helps to ensure
-consistency, and reduces the entry sizes. Address entries must always
-include the country.
diff --git a/Master/texmf-dist/doc/bibtex/base/btxbst.doc b/Master/texmf-dist/doc/bibtex/base/btxbst.doc
index 37d38bd9f1e..8cb9709de08 100644
--- a/Master/texmf-dist/doc/bibtex/base/btxbst.doc
+++ b/Master/texmf-dist/doc/bibtex/base/btxbst.doc
@@ -1,23 +1,23 @@
% BibTeX `plain' family
- % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.
- % 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
- % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
- % This restriction helps ensure that all standard styles are identical.
- % The file btxbst.doc has the documentation for this style.
-% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in
+ % Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later.
+ % Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
+ % Unlimited copying and redistribution of this file are permitted as long as
+ % it is unmodified. Modifications (and redistribution of modified versions)
+ % are also permitted, but only if the resulting file is renamed to something
+ % besides btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+ % This restriction helps ensure that all standard styles are identical.
+ % The file btxbst.doc has the documentation for this style.
+% Please notify biblio@tug.org of any bugs in
% these standard styles or in this documentation file.
%
-% This is file btxbxt.doc; it helps document bibliography styles,
+% This is file btxbst.doc; it helps document bibliography styles,
% and is also a template file that you can use to make
% several different style files, if you have access to a C preprocessor.
% For example, the standard styles were made by doing something like
-% cpp -P -DPLAIN btxbst.doc plain.txt
-% cpp -P -DUNSRT btxbst.doc unsrt.txt
-% cpp -P -DALPHA btxbst.doc alpha.txt
-% cpp -P -DABBRV btxbst.doc abbrv.txt
+% cpp -P -DPLAIN btxbst.doc plain.txt
+% cpp -P -DUNSRT btxbst.doc unsrt.txt
+% cpp -P -DALPHA btxbst.doc alpha.txt
+% cpp -P -DABBRV btxbst.doc abbrv.txt
% and then renaming after removing unwanted comments and blank lines.
% If you don't have access,
% you can edit this file by hand to imitate the preprocessor,
@@ -25,16 +25,16 @@
%
% The output of the preprocessor is the same as the input, except that certain
% lines will be excluded (and some blank lines will be added). The sequence
-% #if VAR
-% lines to be included when VAR is not zero
-% #else
-% lines to be included when VAR is zero
-% #endif
+% #if VAR
+% lines to be included when VAR is not zero
+% #else
+% lines to be included when VAR is zero
+% #endif
% (with the #-signs appearing in column 1) means that one set or the other of
% the lines are to be included depending on the value of VAR.
% The #else part is optional. Comments can be added after #else and #endif.
% Variables can be set by
-% #define VAR value
+% #define VAR value
% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef
% to see if it has none.
% Another #if form used in this file is #if !VAR, which includes the lines
@@ -49,28 +49,28 @@
% various lines that are chosen from the rest of the file.
% Each boolean variable should be set true (1) or false (0) in each style.
% Here are the current variables, and their meanings:
-% LAB_ALPH: an alphabetic label is used (if false then a numeric
-% label is used)
-% SORTED: the entries should be sorted by label (if nonnumeric)
-% and other info, like authors (if false, then
-% entries remain in order of occurrence)
-% NAME_FULL: the authors, editors, etc., get the full names as
-% given in the bibliography file (if false, the first
-% names become initials)
-% ATIT_LOWER: titles of non-"books" (e.g., articles) should be
-% converted to lower-case, except the first letter or
-% first letter after a colon
-% (if false then they appear as in the database)
-% MONTH_FULL: months are spelled out in full (if false, then
-% they're abbreviated)
-% JOUR_FULL: macro journal names are spelled out in full
-% (if false then they are abbreviated, currently
-% as they appear in ACM publications)
+% LAB_ALPH: an alphabetic label is used (if false then a numeric
+% label is used)
+% SORTED: the entries should be sorted by label (if nonnumeric)
+% and other info, like authors (if false, then
+% entries remain in order of occurrence)
+% NAME_FULL: the authors, editors, etc., get the full names as
+% given in the bibliography file (if false, the first
+% names become initials)
+% ATIT_LOWER: titles of non-"books" (e.g., articles) should be
+% converted to lower-case, except the first letter or
+% first letter after a colon
+% (if false then they appear as in the database)
+% MONTH_FULL: months are spelled out in full (if false, then
+% they're abbreviated)
+% JOUR_FULL: macro journal names are spelled out in full
+% (if false then they are abbreviated, currently
+% as they appear in ACM publications)
#ifndef UNSRT
# ifndef ALPHA
-# ifndef ABBRV
-# define PLAIN 1
-# endif
+# ifndef ABBRV
+# define PLAIN 1
+# endif
# endif
#endif
#ifdef PLAIN
@@ -111,76 +111,78 @@
#endif
%
% Entry formatting: Similar to that recommended by Mary-Claire van Leunen
-% in "A Handbook for Scholars". Book-like titles are italicized
-% (emphasized) and non-book titles are converted to sentence
-% capitilization (and not enclosed in quotes).
-% This file outputs a \newblock between major blocks of an entry
-% (the name \newblock is analogous to the names \newline and \newpage)
-% so that the user can obtain an "open" format, which has a line break
-% before each block and lines after the first are indented within blocks,
-% by giving the optional \documentstyle argument `openbib';
-% The default is the "closed" format---blocks runs together.
+% in "A Handbook for Scholars". Book-like titles are italicized
+% (emphasized) and non-book titles are converted to sentence
+% capitilization (and not enclosed in quotes).
+% This file outputs a \newblock between major blocks of an entry
+% (the name \newblock is analogous to the names \newline and \newpage)
+% so that the user can obtain an "open" format, which has a line break
+% before each block and lines after the first are indented within blocks,
+% by giving the optional \documentstyle argument `openbib';
+% The default is the "closed" format---blocks runs together.
%
% Citation alphabetic label format:
-% [Knu73] for single author (or editor or key)
-% [AHU83] (first letters of last names) for multiple authors
+% [Knu73] for single author (or editor or key)
+% [AHU83] (first letters of last names) for multiple authors
%
% Citation label numberic format:
-% [number]
+% [number]
%
% Reference list ordering for sorted, alphabetic lables:
-% alphabetical by citation label, then by author(s) or whatever
-% passes for author in the absence of one, then by year,
-% then title
+% alphabetical by citation label, then by author(s) or whatever
+% passes for author in the absence of one, then by year,
+% then title
%
% Reference list ordering for sorted, numeric lables:
-% alphabetical by author(s) or whatever passes
-% for author in the absence of one, then by year, then title
+% alphabetical by author(s) or whatever passes
+% for author in the absence of one, then by year, then title
%
% Reference list ordering for unsorted:
-% by the order cited in the text
+% by the order cited in the text
%
% History
-% 12/16/84 (HWT) Original `plain' version, by Howard Trickey.
-% 12/23/84 (LL) Some comments made by Leslie Lamport.
-% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik.
-% 2/17/85 (HWT) Template file and other standard styles made.
-% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f.
-% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i:
-% fixed Theoretical Computer Science macro name;
-% fixed the format.vol.num.pages function.
-% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes:
-% assignment operator (:=) arguments reversed;
-% the preamble$ function outputs the database PREAMBLE;
-% entry.max$ and global.max$ (built-in) variables replace
-% entry.string.max and global.string.max functions;
-% alphabetizing by year then title, not just title;
-% many unnecessary ties removed; \it ==> \em;
-% the `alpha' style uses a superscripted `+' instead of a
-% `*' for unnamed names in constructing the label;
-% the `abbrv' style now uses "Mar." and "Sept.";
-% the functions calc.label and presort now look at just
-% the fields they're supposed to;
-% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles;
-% INBOOK and INCOLLECTION take an optional type (e.g.
-% type = "Section"), overriding the default "chapter";
-% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow
-% either volume or number, not just volume;
-% INCOLLECTION now allows an edition and series field;
-% PROCEEDINGS and INPROCEEDINGS now use the address field
-% to tell where a conference was held;
-% INPROCEEDINGS and PROCEEDINGS now allow either volume
-% or number, and also a series field;
-% MASTERSTHESIS and PHDTHESIS accept types other than
-% "Master's thesis" and "PhD thesis";
-% UNPUBLISHED now outputs, in one block, note then date;
-% MANUAL now prints out the organization in
-% the first block if the author field is empty;
-% MISC can't be empty---it requires some optional field.
-% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three
-% erroneous occurrences of `cite ' to `cite$ '; this
-% change didn't affect the four standard styles, so the
-% 0.99a versions of those styles are still current.
+% 12/16/84 (HWT) Original `plain' version, by Howard Trickey.
+% 12/23/84 (LL) Some comments made by Leslie Lamport.
+% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik.
+% 2/17/85 (HWT) Template file and other standard styles made.
+% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f.
+% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i:
+% fixed Theoretical Computer Science macro name;
+% fixed the format.vol.num.pages function.
+% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes:
+% assignment operator (:=) arguments reversed;
+% the preamble$ function outputs the database PREAMBLE;
+% entry.max$ and global.max$ (built-in) variables replace
+% entry.string.max and global.string.max functions;
+% alphabetizing by year then title, not just title;
+% many unnecessary ties removed; \it ==> \em;
+% the `alpha' style uses a superscripted `+' instead of a
+% `*' for unnamed names in constructing the label;
+% the `abbrv' style now uses "Mar." and "Sept.";
+% the functions calc.label and presort now look at just
+% the fields they're supposed to;
+% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles;
+% INBOOK and INCOLLECTION take an optional type (e.g.
+% type = "Section"), overriding the default "chapter";
+% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow
+% either volume or number, not just volume;
+% INCOLLECTION now allows an edition and series field;
+% PROCEEDINGS and INPROCEEDINGS now use the address field
+% to tell where a conference was held;
+% INPROCEEDINGS and PROCEEDINGS now allow either volume
+% or number, and also a series field;
+% MASTERSTHESIS and PHDTHESIS accept types other than
+% "Master's thesis" and "PhD thesis";
+% UNPUBLISHED now outputs, in one block, note then date;
+% MANUAL now prints out the organization in
+% the first block if the author field is empty;
+% MISC can't be empty---it requires some optional field.
+% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three
+% erroneous occurrences of `cite ' to `cite$ '; this
+% change didn't affect the four standard styles, so the
+% 0.99a versions of those styles are still current.
+% 12/ 8/10 (OP) Still version 0.99b, as the code itself was unchanged;
+% this release clarified the license.
%
% The ENTRY declaration
% Like Scribe's (according to pages 231-2 of the April '84 edition),
@@ -192,69 +194,69 @@
ENTRY
% Fields:
{ address
-% Usually the address of a publisher or other type of organization.
-% Put information in this field only if it helps the reader find the
-% thing---for example you should omit the address of a major
-% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS,
-% however, it's the address of the conference; for those two entry
-% types, include the publisher's or organization's address, if
-% necessary, in the publisher or organization field.
+% Usually the address of a publisher or other type of organization.
+% Put information in this field only if it helps the reader find the
+% thing---for example you should omit the address of a major
+% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS,
+% however, it's the address of the conference; for those two entry
+% types, include the publisher's or organization's address, if
+% necessary, in the publisher or organization field.
% annote
-% Long annotation---for annotated bibliographies (begins sentence).
+% Long annotation---for annotated bibliographies (begins sentence).
author
-% Name(s) of author(s), in BibTeX name format.
+% Name(s) of author(s), in BibTeX name format.
booktitle
-% Book title when the thing being referenced isn't the whole book.
-% For book entries, the title field should be used instead.
+% Book title when the thing being referenced isn't the whole book.
+% For book entries, the title field should be used instead.
chapter
-% Chapter (or section or whatever) number.
+% Chapter (or section or whatever) number.
edition
-% Edition of a book---should be an ordinal (e.g., "Second").
+% Edition of a book---should be an ordinal (e.g., "Second").
editor
-% Name(s) of editor(s), in BibTeX name format.
-% If there is also an author field, then the editor field should be
-% for the book or collection that the work appears in.
+% Name(s) of editor(s), in BibTeX name format.
+% If there is also an author field, then the editor field should be
+% for the book or collection that the work appears in.
howpublished
-% How something strange has been published (begins sentence).
+% How something strange has been published (begins sentence).
institution
-% Sponsoring institution of a technical report.
+% Sponsoring institution of a technical report.
journal
-% Journal name (macros are provided for many).
+% Journal name (macros are provided for many).
key
-% Alphabetizing, labeling, and cross-referencing key
-% (needed when an entry has no author or editor).
+% Alphabetizing, labeling, and cross-referencing key
+% (needed when an entry has no author or editor).
month
-% Month (macros are provided).
+% Month (macros are provided).
note
-% To help the reader find a reference (begins sentence).
+% To help the reader find a reference (begins sentence).
number
-% Number of a journal or technical report, or of a work in a series.
+% Number of a journal or technical report, or of a work in a series.
organization
-% Organization sponsoring a conference (or publishing a manual); if
-% the editor (or author) is empty, and if the organization produces
-% an awkward label or cross reference, you should put appropriately
-% condensed organization information in the key field as well.
+% Organization sponsoring a conference (or publishing a manual); if
+% the editor (or author) is empty, and if the organization produces
+% an awkward label or cross reference, you should put appropriately
+% condensed organization information in the key field as well.
pages
-% Page number or numbers (use `--' to separate a range, use `+'
-% to indicate pages following that don't form a simple range).
+% Page number or numbers (use `--' to separate a range, use `+'
+% to indicate pages following that don't form a simple range).
publisher
-% Publisher name.
+% Publisher name.
school
-% School name (for theses).
+% School name (for theses).
series
-% The name of a series or set of books.
-% An individual book will will also have it's own title.
+% The name of a series or set of books.
+% An individual book will will also have it's own title.
title
-% The title of the thing you're referred to.
+% The title of the thing you're referred to.
type
-% Type of a Techreport (e.g., "Research Note") to be used instead of
-% the default "Technical Report"; or, similarly, the type of a
-% thesis; or of a part of a book.
+% Type of a Techreport (e.g., "Research Note") to be used instead of
+% the default "Technical Report"; or, similarly, the type of a
+% thesis; or of a part of a book.
volume
-% The volume number of a journal or multivolume work.
+% The volume number of a journal or multivolume work.
year
-% The year should contain only numerals (technically, it should end
-% with four numerals, after purification; doesn't a begin sentence).
+% The year should contain only numerals (technically, it should end
+% with four numerals, after purification; doesn't a begin sentence).
}
% There are no integer entry variables
{}
@@ -301,15 +303,15 @@ ENTRY
%
% To tell which separator is needed, we maintain an output.state.
% It will be one of these values:
-% before.all just after the \bibitem
-% mid.sentence in the middle of a sentence: comma needed
-% if more sentence is output
-% after.sentence just after a sentence: period needed
-% after.block just after a block (and sentence):
-% period and \newblock needed.
+% before.all just after the \bibitem
+% mid.sentence in the middle of a sentence: comma needed
+% if more sentence is output
+% after.sentence just after a sentence: period needed
+% after.block just after a block (and sentence):
+% period and \newblock needed.
% Note: These styles don't use after.sentence
%
-% VAR: output.state : INTEGER -- state variable for output
+% VAR: output.state : INTEGER -- state variable for output
%
% The output.nonnull function saves its argument (assumed to be nonnull)
% on the stack, and writes the old saved value followed by any needed
@@ -318,25 +320,25 @@ ENTRY
%
% output.nonnull(s) ==
% BEGIN
-% s := argument on stack
-% if output.state = mid.sentence then
-% write$(pop() * ", ")
-% -- "pop" isn't a function: just use stack top
-% else
-% if output.state = after.block then
-% write$(add.period$(pop()))
-% newline$
-% write$("\newblock ")
-% else
-% if output.state = before.all then
-% write$(pop())
-% else -- output.state should be after.sentence
-% write$(add.period$(pop()) * " ")
-% fi
-% fi
-% output.state := mid.sentence
-% fi
-% push s on stack
+% s := argument on stack
+% if output.state = mid.sentence then
+% write$(pop() * ", ")
+% -- "pop" isn't a function: just use stack top
+% else
+% if output.state = after.block then
+% write$(add.period$(pop()))
+% newline$
+% write$("\newblock ")
+% else
+% if output.state = before.all then
+% write$(pop())
+% else -- output.state should be after.sentence
+% write$(add.period$(pop()) * " ")
+% fi
+% fi
+% output.state := mid.sentence
+% fi
+% push s on stack
% END
%
% The output function calls output.nonnull if its argument is non-empty;
@@ -344,8 +346,8 @@ ENTRY
%
% output(s) ==
% BEGIN
-% if not empty$(s) then output.nonnull(s)
-% fi
+% if not empty$(s) then output.nonnull(s)
+% fi
% END
%
% The output.check function is the same as the output function except that, if
@@ -356,10 +358,10 @@ ENTRY
%
% output.check(s,t) ==
% BEGIN
-% if empty$(s) then
-% warning$("empty " * t * " in " * cite$)
-% else output.nonnull(s)
-% fi
+% if empty$(s) then
+% warning$("empty " * t * " in " * cite$)
+% else output.nonnull(s)
+% fi
% END
%
% The output.bibitem function writes the \bibitem for the current entry
@@ -369,15 +371,15 @@ ENTRY
%
% output.bibitem ==
% BEGIN
-% newline$
-% write$("\bibitem[") % for alphabetic labels,
-% write$(label) % these three lines
-% write$("]{") % are used
-% write$("\bibitem{") % this line for numeric labels
-% write$(cite$)
-% write$("}")
-% push "" on stack
-% output.state := before.all
+% newline$
+% write$("\bibitem[") % for alphabetic labels,
+% write$(label) % these three lines
+% write$("]{") % are used
+% write$("\bibitem{") % this line for numeric labels
+% write$(cite$)
+% write$("}")
+% push "" on stack
+% output.state := before.all
% END
%
% The fin.entry function finishes off an entry by adding a period to the
@@ -388,8 +390,8 @@ ENTRY
%
% fin.entry ==
% BEGIN
-% write$(add.period$(pop()))
-% newline$
+% write$(add.period$(pop()))
+% newline$
% END
%
% The new.block function prepares for a new block to be output, and
@@ -397,18 +399,18 @@ ENTRY
%
% new.block ==
% BEGIN
-% if output.state <> before.all then
-% output.state := after.block
-% fi
+% if output.state <> before.all then
+% output.state := after.block
+% fi
% END
%
% new.sentence ==
% BEGIN
-% if output.state <> after.block then
-% if output.state <> before.all then
-% output.state := after.sentence
-% fi
-% fi
+% if output.state <> after.block then
+% if output.state <> before.all then
+% output.state := after.sentence
+% fi
+% fi
% END
%
@@ -430,15 +432,15 @@ FUNCTION {output.nonnull}
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
- { add.period$ write$
- newline$
- "\newblock " write$
- }
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
if$
mid.sentence 'output.state :=
}
@@ -496,8 +498,8 @@ FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
- 'skip$
- { after.sentence 'output.state := }
+ 'skip$
+ { after.sentence 'output.state := }
if$
}
if$
@@ -579,8 +581,8 @@ FUNCTION {new.sentence.checkb}
%
% field.or.null(s) ==
% BEGIN
-% if empty$(s) then return ""
-% else return s
+% if empty$(s) then return ""
+% else return s
% END
%
% Another helper function is emphasize, which returns the argument emphazised,
@@ -590,8 +592,8 @@ FUNCTION {new.sentence.checkb}
%
% emphasize(s) ==
% BEGIN
-% if empty$(s) then return ""
-% else return "{\em " * s * "}"
+% if empty$(s) then return ""
+% else return "{\em " * s * "}"
%
% The format.names function formats the argument (which should be in
% BibTeX name format) into "First Von Last, Junior", separated by commas
@@ -600,35 +602,35 @@ FUNCTION {new.sentence.checkb}
% contain at least one name.
%
% VAR: nameptr, namesleft, numnames: INTEGER
-% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack)
+% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack)
%
% format.names(s) ==
% BEGIN
-% nameptr := 1
-% numnames := num.names$(s)
-% namesleft := numnames
-% while namesleft > 0
-% do
-% % for full names:
-% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}")
-% % for abbreviated first names:
-% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}")
-% if nameptr > 1 then
-% if namesleft > 1 then nameresult := nameresult * ", " * t
-% else if numnames > 2
-% then nameresult := nameresult * ","
-% fi
-% if t = "others"
-% then nameresult := nameresult * " et~al."
-% else nameresult := nameresult * " and " * t
-% fi
-% fi
-% else nameresult := t
-% fi
-% nameptr := nameptr + 1
-% namesleft := namesleft - 1
-% od
-% return nameresult
+% nameptr := 1
+% numnames := num.names$(s)
+% namesleft := numnames
+% while namesleft > 0
+% do
+% % for full names:
+% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}")
+% % for abbreviated first names:
+% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}")
+% if nameptr > 1 then
+% if namesleft > 1 then nameresult := nameresult * ", " * t
+% else if numnames > 2
+% then nameresult := nameresult * ","
+% fi
+% if t = "others"
+% then nameresult := nameresult * " et~al."
+% else nameresult := nameresult * " and " * t
+% fi
+% fi
+% else nameresult := t
+% fi
+% nameptr := nameptr + 1
+% namesleft := namesleft - 1
+% od
+% return nameresult
% END
%
% The format.authors function returns the result of format.names(author)
@@ -636,9 +638,9 @@ FUNCTION {new.sentence.checkb}
%
% format.authors ==
% BEGIN
-% if empty$(author) then return ""
-% else return format.names(author)
-% fi
+% if empty$(author) then return ""
+% else return format.names(author)
+% fi
% END
%
% Format.editors is like format.authors, but it uses the editor field,
@@ -646,14 +648,14 @@ FUNCTION {new.sentence.checkb}
%
% format.editors ==
% BEGIN
-% if empty$(editor) then return ""
-% else
-% if num.names$(editor) > 1 then
-% return format.names(editor) * ", editors"
-% else
-% return format.names(editor) * ", editor"
-% fi
-% fi
+% if empty$(editor) then return ""
+% else
+% if num.names$(editor) > 1 then
+% return format.names(editor) * ", editors"
+% else
+% return format.names(editor) * ", editor"
+% fi
+% fi
% END
%
% Other formatting functions are similar, so no "comment version" will be
@@ -690,20 +692,20 @@ FUNCTION {format.names}
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
#endif NAME_FULL
nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -723,8 +725,8 @@ FUNCTION {format.editors}
{ "" }
{ editor format.names
editor num.names$ #1 >
- { ", editors" * }
- { ", editor" * }
+ { ", editors" * }
+ { ", editor" * }
if$
}
if$
@@ -756,33 +758,33 @@ FUNCTION {format.title}
% The n.dashify function makes each single `-' in a string a double `--'
% if it's not already
%
-% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack)
+% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack)
%
% n.dashify(s) ==
% BEGIN
-% t := s
-% pageresult := ""
-% while (not empty$(t))
-% do
-% if (first character of t = "-")
-% then
-% if (next character isn't)
-% then
-% pageresult := pageresult * "--"
-% t := t with the "-" removed
-% else
-% while (first character of t = "-")
-% do
-% pageresult := pageresult * "-"
-% t := t with the "-" removed
-% od
-% fi
-% else
-% pageresult := pageresult * the first character
-% t := t with the first character removed
-% fi
-% od
-% return pageresult
+% t := s
+% pageresult := ""
+% while (not empty$(t))
+% do
+% if (first character of t = "-")
+% then
+% if (next character isn't)
+% then
+% pageresult := pageresult * "--"
+% t := t with the "-" removed
+% else
+% while (first character of t = "-")
+% do
+% pageresult := pageresult * "-"
+% t := t with the "-" removed
+% od
+% fi
+% else
+% pageresult := pageresult * the first character
+% t := t with the first character removed
+% fi
+% od
+% return pageresult
% END
FUNCTION {n.dashify}
@@ -790,21 +792,21 @@ FUNCTION {n.dashify}
""
{ 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 :=
- }
+ { 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$
@@ -817,15 +819,15 @@ FUNCTION {n.dashify}
FUNCTION {format.date}
{ year empty$
{ month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
if$
}
{ month empty$
- 'year
- { month " " * year * }
+ 'year
+ { month " " * year * }
if$
}
if$
@@ -846,9 +848,9 @@ FUNCTION {format.btitle}
%
% tie.or.space.connect(str1,str2) ==
% BEGIN
-% if text.length$(str2) < 3
-% then return the concatenation of str1, "~", and str2
-% else return the concatenation of str1, " ", and str2
+% if text.length$(str2) < 3
+% then return the concatenation of str1, "~", and str2
+% else return the concatenation of str1, " ", and str2
% END
FUNCTION {tie.or.space.connect}
@@ -864,9 +866,9 @@ FUNCTION {tie.or.space.connect}
%
% either.or.check(t,s) ==
% BEGIN
-% if empty$(s) then
-% warning$(can't use both " * t * " fields in " * cite$)
-% fi
+% if empty$(s) then
+% warning$(can't use both " * t * " fields in " * cite$)
+% fi
% END
FUNCTION {either.or.check}
@@ -887,8 +889,8 @@ FUNCTION {format.bvolume}
{ "" }
{ "volume" volume tie.or.space.connect
series empty$
- 'skip$
- { " of " * series emphasize * }
+ 'skip$
+ { " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
@@ -908,17 +910,17 @@ FUNCTION {format.bvolume}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
- { series field.or.null }
- { output.state mid.sentence =
- { "number" }
- { "Number" }
- if$
- number tie.or.space.connect
- series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { " in " * series * }
- if$
- }
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" }
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
if$
}
{ "" }
@@ -933,8 +935,8 @@ FUNCTION {format.edition}
{ edition empty$
{ "" }
{ output.state mid.sentence =
- { edition "l" change.case$ " edition" * }
- { edition "t" change.case$ " edition" * }
+ { edition "l" change.case$ " edition" * }
+ { edition "t" change.case$ " edition" * }
if$
}
if$
@@ -947,20 +949,20 @@ FUNCTION {format.edition}
% so that format.pages can use "page" instead of "pages" if none exists.
% Note: global.max$ here means "take the rest of the string"
%
-% VAR: multiresult: INTEGER (actually, a boolean)
+% VAR: multiresult: INTEGER (actually, a boolean)
%
% multi.page.check(s) ==
% BEGIN
-% t := s
-% multiresult := false
-% while ((not multiresult) and (not empty$(t)))
-% do
-% if (first character of t = "-" or "," or "+")
-% then multiresult := true
-% else t := t with the first character removed
-% fi
-% od
-% return multiresult
+% t := s
+% multiresult := false
+% while ((not multiresult) and (not empty$(t)))
+% do
+% if (first character of t = "-" or "," or "+")
+% then multiresult := true
+% else t := t with the first character removed
+% fi
+% od
+% return multiresult
% END
INTEGERS { multiresult }
@@ -977,8 +979,8 @@ FUNCTION {multi.page.check}
swap$ duplicate$ "," =
swap$ "+" =
or or
- { #1 'multiresult := }
- { t #2 global.max$ substring$ 't := }
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
if$
}
while$
@@ -992,8 +994,8 @@ FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
- { "pages" pages n.dashify tie.or.space.connect }
- { "page" pages tie.or.space.connect }
+ { "pages" pages n.dashify tie.or.space.connect }
+ { "page" pages tie.or.space.connect }
if$
}
if$
@@ -1009,16 +1011,16 @@ FUNCTION {format.vol.num.pages}
'skip$
{ "(" number * ")" * *
volume empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
if$
}
if$
pages empty$
'skip$
{ duplicate$ empty$
- { pop$ format.pages }
- { ":" * pages n.dashify * }
+ { pop$ format.pages }
+ { ":" * pages n.dashify * }
if$
}
if$
@@ -1033,13 +1035,13 @@ FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
- { "chapter" }
- { type "l" change.case$ }
+ { "chapter" }
+ { type "l" change.case$ }
if$
chapter tie.or.space.connect
pages empty$
- 'skip$
- { ", " * format.pages * }
+ 'skip$
+ { ", " * format.pages * }
if$
}
if$
@@ -1053,8 +1055,8 @@ FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
{ "" }
{ editor empty$
- { "In " booktitle emphasize * }
- { "In " format.editors * ", " * booktitle emphasize * }
+ { "In " booktitle emphasize * }
+ { "In " format.editors * ", " * booktitle emphasize * }
if$
}
if$
@@ -1127,18 +1129,18 @@ FUNCTION {format.tr.number}
%
% format.article.crossref ==
% BEGIN
-% if empty$(key) then
-% if empty$(journal) then
-% warning$("need key or journal for " * cite$ *
-% " to crossref " * crossref)
-% return(" \cite{" * crossref * "}")
-% else
-% return("In " * emphazise.correct (journal) *
-% " \cite{" * crossref * "}")
-% fi
-% else
-% return("In " * key * " \cite{" * crossref * "}")
-% fi
+% if empty$(key) then
+% if empty$(journal) then
+% warning$("need key or journal for " * cite$ *
+% " to crossref " * crossref)
+% return(" \cite{" * crossref * "}")
+% else
+% return("In " * emphazise.correct (journal) *
+% " \cite{" * crossref * "}")
+% fi
+% else
+% return("In " * key * " \cite{" * crossref * "}")
+% fi
% END
%
% The other cross-referencing functions are similar, so no "comment version"
@@ -1147,11 +1149,11 @@ FUNCTION {format.tr.number}
FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In {\em " journal * "\/}" * }
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "In {\em " journal * "\/}" * }
if$
}
{ "In " key * }
@@ -1169,12 +1171,12 @@ FUNCTION {format.crossref.editor}
#2 >
{ pop$ " et~al." * }
{ #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
- }
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al." * }
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
if$
}
if$
@@ -1199,15 +1201,15 @@ FUNCTION {format.book.crossref}
editor field.or.null author field.or.null =
or
{ key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "{\em " * series * "\/}" * }
- if$
- }
- { key * }
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
if$
}
{ format.crossref.editor * }
@@ -1226,15 +1228,15 @@ FUNCTION {format.incoll.inproc.crossref}
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 {\em " booktitle * "\/}" * }
- if$
- }
- { "In " key * }
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "In {\em " booktitle * "\/}" * }
+ if$
+ }
+ { "In " key * }
if$
}
{ "In " format.crossref.editor * }
@@ -1252,60 +1254,60 @@ FUNCTION {format.incoll.inproc.crossref}
%
% The article function is for an article in a journal. An article may
% CROSSREF another article.
-% Required fields: author, title, journal, year
-% Optional fields: volume, number, pages, month, note
+% Required fields: author, title, journal, year
+% Optional fields: volume, number, pages, month, note
%
% article ==
% BEGIN
-% output.bibitem
-% output.check(format.authors,"author")
-% new.block
-% output.check(format.title,"title")
-% new.block
-% if missing$(crossref) then
-% output.check(emphasize(journal),"journal")
-% output(format.vol.num.pages)
-% output.check(format.date,"year")
+% output.bibitem
+% output.check(format.authors,"author")
+% new.block
+% output.check(format.title,"title")
+% new.block
+% if missing$(crossref) then
+% output.check(emphasize(journal),"journal")
+% output(format.vol.num.pages)
+% output.check(format.date,"year")
% else
-% output.nonnull(format.article.crossref)
-% output(format.pages)
-% fi
-% new.block
-% output(note)
-% fin.entry
+% output.nonnull(format.article.crossref)
+% output(format.pages)
+% fi
+% new.block
+% output(note)
+% fin.entry
% END
%
% The book function is for a whole book. A book may CROSSREF another book.
-% Required fields: author or editor, title, publisher, year
-% Optional fields: volume or number, series, address, edition, month,
-% note
+% Required fields: author or editor, title, publisher, year
+% Optional fields: volume or number, series, address, edition, month,
+% note
%
% book ==
% BEGIN
-% if empty$(author) then output.check(format.editors,"author and editor")
-% else output.check(format.authors,"author")
-% if missing$(crossref) then
-% either.or.check("author and editor",editor)
-% fi
-% fi
-% new.block
-% output.check(format.btitle,"title")
-% if missing$(crossref) then
-% output(format.bvolume)
-% new.block
-% output(format.number.series)
-% new.sentence
-% output.check(publisher,"publisher")
-% output(address)
+% if empty$(author) then output.check(format.editors,"author and editor")
+% else output.check(format.authors,"author")
+% if missing$(crossref) then
+% either.or.check("author and editor",editor)
+% fi
+% fi
+% new.block
+% output.check(format.btitle,"title")
+% if missing$(crossref) then
+% output(format.bvolume)
+% new.block
+% output(format.number.series)
+% new.sentence
+% output.check(publisher,"publisher")
+% output(address)
% else
-% new.block
-% output.nonnull(format.book.crossref)
-% fi
-% output(format.edition)
-% output.check(format.date,"year")
-% new.block
-% output(note)
-% fin.entry
+% new.block
+% output.nonnull(format.book.crossref)
+% fi
+% output(format.edition)
+% output.check(format.date,"year")
+% new.block
+% output(note)
+% fin.entry
% END
%
% The other entry functions are all quite similar, so no "comment version"
@@ -1337,8 +1339,8 @@ FUNCTION {book}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -1364,8 +1366,8 @@ FUNCTION {book}
}
% A booklet is a bound thing without a publisher or sponsoring institution.
-% Required: title
-% Optional: author, howpublished, address, month, year, note
+% Required: title
+% Optional: author, howpublished, address, month, year, note
FUNCTION {booklet}
{ output.bibitem
@@ -1386,8 +1388,8 @@ FUNCTION {booklet}
% An inbook is a piece of a book: either a chapter and/or a page range.
% It may CROSSREF a book. If there's no volume field, the type field
% will come before number and series.
-% Required: author or editor, title, chapter and/or pages, publisher,year
-% Optional: volume or number, series, type, address, edition, month, note
+% Required: author or editor, title, chapter and/or pages, publisher,year
+% Optional: volume or number, series, type, address, edition, month, note
FUNCTION {inbook}
{ output.bibitem
@@ -1395,8 +1397,8 @@ FUNCTION {inbook}
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
+ { "author and editor" editor either.or.check }
+ 'skip$
if$
}
if$
@@ -1426,9 +1428,9 @@ FUNCTION {inbook}
% An incollection is like inbook, but where there is a separate title
% for the referenced thing (and perhaps an editor for the whole).
% An incollection may CROSSREF a book.
-% Required: author, title, booktitle, publisher, year
-% Optional: editor, volume or number, series, type, chapter, pages,
-% address, edition, month, note
+% Required: author, title, booktitle, publisher, year
+% Optional: editor, volume or number, series, type, chapter, pages,
+% address, edition, month, note
FUNCTION {incollection}
{ output.bibitem
@@ -1459,9 +1461,9 @@ FUNCTION {incollection}
% An inproceedings is an article in a conference proceedings, and it may
% CROSSREF a proceedings. If there's no address field, the month (& year)
% will appear just before note.
-% Required: author, title, booktitle, year
-% Optional: editor, volume or number, series, pages, address, month,
-% organization, publisher, note
+% Required: author, title, booktitle, year
+% Optional: editor, volume or number, series, pages, address, month,
+% organization, publisher, note
FUNCTION {inproceedings}
{ output.bibitem
@@ -1475,17 +1477,17 @@ FUNCTION {inproceedings}
format.number.series output
format.pages output
address empty$
- { organization publisher new.sentence.checkb
- organization output
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- new.sentence
- organization output
- publisher output
- }
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
if$
}
{ format.incoll.inproc.crossref output.nonnull
@@ -1502,17 +1504,17 @@ FUNCTION {inproceedings}
FUNCTION {conference} { inproceedings }
% A manual is technical documentation.
-% Required: title
-% Optional: author, organization, address, edition, month, year, note
+% Required: title
+% Optional: author, organization, address, edition, month, year, note
FUNCTION {manual}
{ output.bibitem
author empty$
{ organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
if$
}
{ format.authors output.nonnull }
@@ -1521,10 +1523,10 @@ FUNCTION {manual}
format.btitle "title" output.check
author empty$
{ organization empty$
- { address new.block.checka
- address output
- }
- 'skip$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
if$
}
{ organization address new.block.checkb
@@ -1540,8 +1542,8 @@ FUNCTION {manual}
}
% A mastersthesis is a Master's thesis.
-% Required: author, title, school, year
-% Optional: type, address, month, note
+% Required: author, title, school, year
+% Optional: type, address, month, note
FUNCTION {mastersthesis}
{ output.bibitem
@@ -1559,8 +1561,8 @@ FUNCTION {mastersthesis}
}
% A misc is something that doesn't fit elsewhere.
-% Required: at least one of the `optional' fields
-% Optional: author, title, howpublished, month, year, note
+% Required: at least one of the `optional' fields
+% Optional: author, title, howpublished, month, year, note
FUNCTION {misc}
{ output.bibitem
@@ -1577,8 +1579,8 @@ FUNCTION {misc}
}
% A phdthesis is like a mastersthesis.
-% Required: author, title, school, year
-% Optional: type, address, month, note
+% Required: author, title, school, year
+% Optional: type, address, month, note
FUNCTION {phdthesis}
{ output.bibitem
@@ -1599,9 +1601,9 @@ FUNCTION {phdthesis}
% If there is an organization but no editor field, the organization will
% appear as the first optional field (we try to make the first block nonempty);
% if there's no address field, the month (& year) will appear just before note.
-% Required: title, year
-% Optional: editor, volume or number, series, address, month,
-% organization, publisher, note
+% Required: title, year
+% Optional: editor, volume or number, series, address, month,
+% organization, publisher, note
FUNCTION {proceedings}
{ output.bibitem
@@ -1615,10 +1617,10 @@ FUNCTION {proceedings}
format.number.series output
address empty$
{ editor empty$
- { publisher new.sentence.checka }
- { organization publisher new.sentence.checkb
- organization output
- }
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
if$
publisher output
format.date "year" output.check
@@ -1627,8 +1629,8 @@ FUNCTION {proceedings}
format.date "year" output.check
new.sentence
editor empty$
- 'skip$
- { organization output }
+ 'skip$
+ { organization output }
if$
publisher output
}
@@ -1639,8 +1641,8 @@ FUNCTION {proceedings}
}
% A techreport is a technical report.
-% Required: author, title, institution, year
-% Optional: type, number, address, month, note
+% Required: author, title, institution, year
+% Optional: type, number, address, month, note
FUNCTION {techreport}
{ output.bibitem
@@ -1658,8 +1660,8 @@ FUNCTION {techreport}
}
% An unpublished is something that hasn't been published.
-% Required: author, title, note
-% Optional: month, year
+% Required: author, title, note
+% Optional: month, year
FUNCTION {unpublished}
{ output.bibitem
@@ -1892,37 +1894,37 @@ FUNCTION {chop.word}
%
% format.lab.names(s) ==
% BEGIN
-% numnames := num.names$(s)
-% if numnames > 1 then
-% if numnames > 4 then
-% namesleft := 3
-% else
-% namesleft := numnames
-% nameptr := 1
-% nameresult := ""
-% while namesleft > 0
-% do
-% if (name_ptr = numnames) and
-% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others"
-% then nameresult := nameresult * "{\etalchar{+}}"
-% et.al.char.used := true
-% else nameresult := nameresult *
-% format.name$(s, nameptr, "{v{}}{l{}}")
-% nameptr := nameptr + 1
-% namesleft := namesleft - 1
-% od
-% if numnames > 4 then
-% nameresult := nameresult * "{\etalchar{+}}"
-% et.al.char.used := true
-% else
-% t := format.name$(s, 1, "{v{}}{l{}}")
-% if text.length$(t) < 2 then % there's just one name-token
-% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3)
-% else
-% nameresult := t
-% fi
-% fi
-% return nameresult
+% numnames := num.names$(s)
+% if numnames > 1 then
+% if numnames > 4 then
+% namesleft := 3
+% else
+% namesleft := numnames
+% nameptr := 1
+% nameresult := ""
+% while namesleft > 0
+% do
+% if (name_ptr = numnames) and
+% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others"
+% then nameresult := nameresult * "{\etalchar{+}}"
+% et.al.char.used := true
+% else nameresult := nameresult *
+% format.name$(s, nameptr, "{v{}}{l{}}")
+% nameptr := nameptr + 1
+% namesleft := namesleft - 1
+% od
+% if numnames > 4 then
+% nameresult := nameresult * "{\etalchar{+}}"
+% et.al.char.used := true
+% else
+% t := format.name$(s, 1, "{v{}}{l{}}")
+% if text.length$(t) < 2 then % there's just one name-token
+% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3)
+% else
+% nameresult := t
+% fi
+% fi
+% return nameresult
% END
%
% Exactly what fields we look at in constructing the primary part of the label
@@ -1956,18 +1958,18 @@ FUNCTION {chop.word}
%
% calc.label ==
% BEGIN
-% if type$ = "book" or "inbook" then
-% author.editor.key.label
-% else if type$ = "proceedings" then
-% editor.key.organization.label
-% else if type$ = "manual" then
-% author.key.organization.label
-% else
-% author.key.label
-% fi fi fi
-% label := label * substring$(purify$(field.or.null(year)), -1, 2)
-% % assuming we will also sort, we calculate a sort.label
-% sort.label := sortify(label), but use the last four, not two, digits
+% if type$ = "book" or "inbook" then
+% author.editor.key.label
+% else if type$ = "proceedings" then
+% editor.key.organization.label
+% else if type$ = "manual" then
+% author.key.organization.label
+% else
+% author.key.label
+% fi fi fi
+% label := label * substring$(purify$(field.or.null(year)), -1, 2)
+% % assuming we will also sort, we calculate a sort.label
+% sort.label := sortify(label), but use the last four, not two, digits
% END
#if LAB_ALPH
@@ -1985,37 +1987,37 @@ FUNCTION {format.lab.names}
s num.names$ 'numnames :=
numnames #1 >
{ numnames #4 >
- { #3 'namesleft := }
- { numnames 'namesleft := }
+ { #3 'namesleft := }
+ { numnames 'namesleft := }
if$
#1 'nameptr :=
""
- { namesleft #0 > }
- { nameptr numnames =
- { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { "{\etalchar{+}}" *
- #1 'et.al.char.used :=
- }
- { s nameptr "{v{}}{l{}}" format.name$ * }
- if$
- }
- { s nameptr "{v{}}{l{}}" format.name$ * }
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
+ { namesleft #0 > }
+ { nameptr numnames =
+ { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
while$
numnames #4 >
- { "{\etalchar{+}}" *
- #1 'et.al.char.used :=
- }
- 'skip$
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ 'skip$
if$
}
{ s #1 "{v{}}{l{}}" format.name$
duplicate$ text.length$ #2 <
- { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
- 'skip$
+ { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
+ 'skip$
if$
}
if$
@@ -2025,13 +2027,13 @@ FUNCTION {author.key.label}
{ author empty$
{ key empty$
#if SORTED
- { cite$ #1 #3 substring$ }
-#else !SORTED % need warning here because we won't give it later
- { "for label, need author or key in " cite$ * warning$
- cite$ #1 #3 substring$
- }
+ { cite$ #1 #3 substring$ }
+#else !SORTED % need warning here because we won't give it later
+ { "for label, need author or key in " cite$ * warning$
+ cite$ #1 #3 substring$
+ }
#endif SORTED
- { key #3 text.prefix$ }
+ { key #3 text.prefix$ }
if$
}
{ author format.lab.names }
@@ -2041,18 +2043,18 @@ FUNCTION {author.key.label}
FUNCTION {author.editor.key.label}
{ author empty$
{ editor empty$
- { key empty$
+ { key empty$
#if SORTED
- { cite$ #1 #3 substring$ }
-#else !SORTED % need warning here because we won't give it later
- { "for label, need author, editor, or key in " cite$ * warning$
- cite$ #1 #3 substring$
- }
+ { cite$ #1 #3 substring$ }
+#else !SORTED % need warning here because we won't give it later
+ { "for label, need author, editor, or key in " cite$ * warning$
+ cite$ #1 #3 substring$
+ }
#endif SORTED
- { key #3 text.prefix$ }
- if$
- }
- { editor format.lab.names }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
if$
}
{ author format.lab.names }
@@ -2062,19 +2064,19 @@ FUNCTION {author.editor.key.label}
FUNCTION {author.key.organization.label}
{ author empty$
{ key empty$
- { organization empty$
+ { organization empty$
#if SORTED
- { cite$ #1 #3 substring$ }
-#else !SORTED % need warning here because we won't give it later
- { "for label, need author, key, or organization in " cite$ *
- warning$
- cite$ #1 #3 substring$
- }
+ { cite$ #1 #3 substring$ }
+#else !SORTED % need warning here because we won't give it later
+ { "for label, need author, key, or organization in " cite$ *
+ warning$
+ cite$ #1 #3 substring$
+ }
#endif SORTED
- { "The " #4 organization chop.word #3 text.prefix$ }
- if$
- }
- { key #3 text.prefix$ }
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
if$
}
{ author format.lab.names }
@@ -2084,19 +2086,19 @@ FUNCTION {author.key.organization.label}
FUNCTION {editor.key.organization.label}
{ editor empty$
{ key empty$
- { organization empty$
+ { organization empty$
#if SORTED
- { cite$ #1 #3 substring$ }
-#else !SORTED % need warning here because we won't give it later
- { "for label, need editor, key, or organization in " cite$ *
- warning$
- cite$ #1 #3 substring$
- }
+ { cite$ #1 #3 substring$ }
+#else !SORTED % need warning here because we won't give it later
+ { "for label, need editor, key, or organization in " cite$ *
+ warning$
+ cite$ #1 #3 substring$
+ }
#endif SORTED
- { "The " #4 organization chop.word #3 text.prefix$ }
- if$
- }
- { key #3 text.prefix$ }
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
if$
}
{ editor format.lab.names }
@@ -2109,12 +2111,12 @@ FUNCTION {calc.label}
or
'author.editor.key.label
{ type$ "proceedings" =
- 'editor.key.organization.label
- { type$ "manual" =
- 'author.key.organization.label
- 'author.key.label
- if$
- }
+ 'editor.key.organization.label
+ { type$ "manual" =
+ 'author.key.organization.label
+ 'author.key.label
+ if$
+ }
if$
}
if$
@@ -2171,8 +2173,8 @@ FUNCTION {sort.format.names}
numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
- { " " * }
- 'skip$
+ { " " * }
+ 'skip$
if$
#if NAME_FULL
s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
@@ -2180,8 +2182,8 @@ FUNCTION {sort.format.names}
s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
#endif NAME_FULL
nameptr numnames = t "others" = and
- { "et al" * }
- { t sortify * }
+ { "et al" * }
+ { t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
@@ -2212,10 +2214,10 @@ FUNCTION {sort.format.title}
FUNCTION {author.sort}
{ author empty$
{ key empty$
- { "to sort, need author or key in " cite$ * warning$
- ""
- }
- { key sortify }
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
if$
}
{ author sort.format.names }
@@ -2225,14 +2227,14 @@ FUNCTION {author.sort}
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 }
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
if$
}
{ author sort.format.names }
@@ -2242,14 +2244,14 @@ FUNCTION {author.editor.sort}
FUNCTION {author.organization.sort}
{ author empty$
{ organization empty$
- { key empty$
- { "to sort, need author, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ author sort.format.names }
@@ -2259,14 +2261,14 @@ FUNCTION {author.organization.sort}
FUNCTION {editor.organization.sort}
{ editor empty$
{ organization empty$
- { key empty$
- { "to sort, need editor, organization, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { "The " #4 organization chop.word sortify }
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
if$
}
{ editor sort.format.names }
@@ -2292,12 +2294,12 @@ FUNCTION {presort}
or
'author.editor.sort
{ type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
if$
}
if$
@@ -2340,36 +2342,36 @@ SORT
%
% initialize.longest.label ==
% BEGIN
-% longest.label := ""
-% last.sort.label := int.to.chr$(0)
-% next.extra := ""
-% longest.label.width := 0
-% last.extra.num := 0
+% longest.label := ""
+% last.sort.label := int.to.chr$(0)
+% next.extra := ""
+% longest.label.width := 0
+% last.extra.num := 0
% END
%
% forward.pass ==
% BEGIN
-% if last.sort.label = sort.label then
-% last.extra.num := last.extra.num + 1
-% extra.label := int.to.chr$(last.extra.num)
-% else
-% last.extra.num := chr.to.int$("a")
-% extra.label := ""
-% last.sort.label := sort.label
-% fi
+% if last.sort.label = sort.label then
+% last.extra.num := last.extra.num + 1
+% extra.label := int.to.chr$(last.extra.num)
+% else
+% last.extra.num := chr.to.int$("a")
+% extra.label := ""
+% last.sort.label := sort.label
+% fi
% END
%
% reverse.pass ==
% BEGIN
-% if next.extra = "b" then
-% extra.label := "a"
-% fi
-% label := label * extra.label
-% if width$(label) > longest.label.width then
-% longest.label := label
-% longest.label.width := width$(label)
-% fi
-% next.extra := extra.label
+% if next.extra = "b" then
+% extra.label := "a"
+% fi
+% label := label * extra.label
+% if width$(label) > longest.label.width then
+% longest.label := label
+% longest.label.width := width$(label)
+% fi
+% next.extra := extra.label
% END
#if LAB_ALPH
diff --git a/Master/texmf-dist/doc/bibtex/base/btxdoc.bib b/Master/texmf-dist/doc/bibtex/base/btxdoc.bib
index 4eaf3eddc56..5a30c68d693 100644
--- a/Master/texmf-dist/doc/bibtex/base/btxdoc.bib
+++ b/Master/texmf-dist/doc/bibtex/base/btxdoc.bib
@@ -1,7 +1,10 @@
-Copyright (C) 1988, all rights reserved.
+% Copyright (C) 1988, 2010 Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted if it
+% is unmodified. Modifications (and their redistribution) are also
+% permitted, as long as the resulting file is renamed.
@COMMENT(You may put a comment in a `comment' command,
- the way you would with SCRIBE.)
+ the way you would with SCRIBE.)
Or you may dispense with the command and simply give the comment,
as long as it's not within an entry.
@@ -10,31 +13,31 @@ If you really want to put a comment inside an entry, simply
make up a never-to-be-used field.
@FAKE-ENTRY
- {fake-database-key,
- never-to-be-used-field = "Even if this were a real entry,
- I could still have a comment inside an entry
- by making up a fake field"
- }
+ {fake-database-key,
+ never-to-be-used-field = "Even if this were a real entry,
+ I could still have a comment inside an entry
+ by making up a fake field"
+ }
-@string (SCRIBE-NOTE = {Chapter twelve and appendices E8 through E10 deal
- with bibliographies})
+@string (SCRIBE-NOTE = {Chapter twelve and appendices E8 through E10 deal
+ with bibliographies})
The next entry shows some of the syntactically legal things that
those with the inclination may use.@
-MaNuAl (scribe,
- TITLE="Scribe Document Production System
+MaNuAl (scribe,
+ TITLE="Scribe Document Production System
- User Manual",
- ORGANIZATION = {Unilogic,}#" Ltd"# {.
- },
- ADDRESS = "Pittsburgh",
- MONTH
+ User Manual",
+ ORGANIZATION = {Unilogic,}#" Ltd"# {.
+ },
+ ADDRESS = "Pittsburgh",
+ MONTH
=aPR
- ,YEAR=1984,
- note = scribe-note,
-) May the inclination not be with you.
+ ,YEAR=1984,
+ note = scribe-note,
+) May the inclination not be with you.
@MISC{prime-number-theorem,
@@ -72,7 +75,7 @@ MaNuAl (scribe,
author = "Oren Patashnik",
title = "Designing {\BibTeX} Styles",
note = "The part of \BibTeX's documentation
- that's not meant for general users",
+ that's not meant for general users",
month = "8~" # feb,
year = 1988 }
diff --git a/Master/texmf-dist/doc/bibtex/base/btxdoc.pdf b/Master/texmf-dist/doc/bibtex/base/btxdoc.pdf
index 7a096ad6a01..1b5227d76a3 100644
--- a/Master/texmf-dist/doc/bibtex/base/btxdoc.pdf
+++ b/Master/texmf-dist/doc/bibtex/base/btxdoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/bibtex/base/btxdoc.tex b/Master/texmf-dist/doc/bibtex/base/btxdoc.tex
index 52723e08b69..b41318fa1c1 100644
--- a/Master/texmf-dist/doc/bibtex/base/btxdoc.tex
+++ b/Master/texmf-dist/doc/bibtex/base/btxdoc.tex
@@ -1,4 +1,7 @@
-% Copyright (C) 1988, all rights reserved.
+% Copyright (C) 1988, 2010 Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted if it
+% is unmodified. Modifications (and their redistribution) are also
+% permitted, as long as the resulting file is renamed.
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
@@ -17,7 +20,7 @@
[This document will be expanded when \BibTeX\ version 1.00 comes out.
Please report typos, omissions, inaccuracies,
and especially unclear explanations
-to me ({\tt patashnik@SCORE.STANFORD.EDU}).
+to {\tt biblio@tug.org} ({\tt http://lists.tug.org/biblio}).
Suggestions for improvements are wanted and welcome.]
This documentation, for \BibTeX\ version 0.99b,
diff --git a/Master/texmf-dist/doc/bibtex/base/btxhak.pdf b/Master/texmf-dist/doc/bibtex/base/btxhak.pdf
index efe43d8305b..1b825c3cdcf 100644
--- a/Master/texmf-dist/doc/bibtex/base/btxhak.pdf
+++ b/Master/texmf-dist/doc/bibtex/base/btxhak.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/bibtex/base/btxhak.tex b/Master/texmf-dist/doc/bibtex/base/btxhak.tex
index 21928a4e848..e91c8a81ab4 100644
--- a/Master/texmf-dist/doc/bibtex/base/btxhak.tex
+++ b/Master/texmf-dist/doc/bibtex/base/btxhak.tex
@@ -1,10 +1,13 @@
-% Copyright (C) 1988, all rights reserved.
+% Copyright (C) 1988, 2010 Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted if it
+% is unmodified. Modifications (and their redistribution) are also
+% permitted, as long as the resulting file is renamed.
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\title{Designing B\kern-.05em{\large I}\kern-.025em{\large B}\kern-.08em\TeX\
- Styles}
+ Styles}
\author{Oren Patashnik}
\date{February 8, 1988}
diff --git a/Master/texmf-dist/tex/generic/bibtex/apalike.sty b/Master/texmf-dist/tex/generic/bibtex/apalike.sty
new file mode 100644
index 00000000000..e6b6d88bb0e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/bibtex/apalike.sty
@@ -0,0 +1,72 @@
+% apalike.sty style, used in conjunction with apalike.bst,
+% will produce an apa-like bibliography style.
+%
+% Copyright (C) 1986, 1987, 2010 Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted as long as
+% it is unmodified. Modifications (and redistribution of modified versions)
+% are also permitted, but only if the resulting file is renamed.
+%
+% 1) Bibliography entries formatted alphabetically, last name
+% first, each entry having a hanging indentation and no label.
+% 2) References in the following formats:
+% (Author, 1986)
+% (Author and Author, 1986)
+% (Author et al., 1986).
+% 3) Multiple references in the form (Author1, 1986; Author2, 1987)
+%
+% To be used as an optional argument to the \documentstyle command; for example
+% \documentstyle[11pt,apalike]{book}
+%
+% History:
+% 16-Sep-86, original version by Oren Patashnik, ideas from Susan King.
+% 13-Oct-87 changes:
+% Fixed bug in last line by adding the {} that disappeard when
+% the \hbox{} was removed from the pre-APALIKE definition;
+% added club and widow penalties;
+% patched the \newblock LaTeX bug from `-.07em' to simply `.07em';
+% and made this work for document styles that don't define `chapter'.
+% Undated changes by Karl Berry and/or Oren Patashnik:
+% 1) use \refname and \bibname instead of hardwiring
+% the strings "References" and "Bibliography"; this change was first
+% made in the apalike.sty in the germbib package.
+% 2) do not define \bibhang if it is already defined.
+% Karl Berry contributes his changes to the public domain.
+% 8-Dec-10, clarify license.
+
+% Use parens instead of brackets for \cite, and no label in the bibliography
+%
+\def\@cite#1#2{(#1\if@tempswa , #2\fi)}
+\def\@biblabel#1{}
+
+% Set length of hanging indentation for bibliography entries
+%
+\ifx\bibhang\@thisisundefined \newlength{\bibhang} \fi
+\setlength{\bibhang}{2em}
+
+% \thebibliography environment depends on whether or not `chapter's can exist
+%
+\@ifundefined{chapter}{\def\thebibliography#1{\section*{\refname\@mkboth
+ {\sl\uppercase{\refname}}{\sl\uppercase{\refname}}}\list
+ {\relax}{\setlength{\labelsep}{0em}
+ \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
+ {\sl\uppercase{\bibname}}{\sl\uppercase{\bibname}}}\list
+ {\relax}{\setlength{\labelsep}{0em}
+ \setlength{\itemindent}{-\bibhang}
+ \setlength{\leftmargin}{\bibhang}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}}
+
+% `; ' goes between cites, and there's no \hbox around individual cites
+%
+\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
+ \def\@citea{}\@cite{\@for\@citeb:=#2\do
+ {\@citea\def\@citea{; }\@ifundefined
+ {b@\@citeb}{{\bf ?}\@warning
+ {Citation `\@citeb' on page \thepage \space undefined}}%
+{\csname b@\@citeb\endcsname}}}{#1}}
diff --git a/Master/texmf-dist/tex/generic/bibtex/apalike.tex b/Master/texmf-dist/tex/generic/bibtex/apalike.tex
new file mode 100644
index 00000000000..9ff4ec8bce4
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/bibtex/apalike.tex
@@ -0,0 +1,87 @@
+% apalike.tex, version 0.99b (8-Dec-10), for btxmac 0.99i, BibTeX 0.99c,
+% TeX 3.0 or later.
+%
+% Copyright (C) 1990, 1991, 1992, 2010 Oren Patashnik.
+% Unlimited copying and redistribution of this file are permitted as long as
+% it is unmodified. Modifications (and redistribution of modified versions)
+% are also permitted, but only if the resulting file is renamed.
+%
+% This file, apalike.tex, contains TeX macros that let you use the
+% apalike bibliography style with plain TeX. In essence, this file
+% provides the TeX counterpart to apalike.sty, the LaTeX style file
+% required for using the apalike bibliography style. Please report any
+% bugs (outright goofs, misfeatures, or unclear documentation) to
+% biblio@tug.org. These macros will become frozen
+% shortly after BibTeX version 1.00 is released.
+%
+% AMS-TEX WARNING: This style (apalike) doesn't work with AmS-TeX's
+% `amsppt' style, because AmS-TeX redefines the tie character `~' of
+% plain TeX, and the `amsppt' style redefines plain TeX's `\nobreak'
+% macro, so that a multiple-author reference for which `apalike'
+% automatically produces an in-text citation like `(Jones et~al., 1992)'
+% will throw AmS-TeX's `amsppt' style into an infinite loop, exceeding
+% its input stack size. (I've checked no other AmS-TeX styles for this
+% problem.) The AmS-TeX warning of btxmac.tex gives more information.
+% END OF AMS-TEX WARNING.
+%
+% Editorial note (i.e., flame):
+% Many journals require a style like `apalike', but I recommend that you
+% not use it if you have a choice---use something like `plain' instead.
+% Mary-Claire van Leunen (A Handbook for Scholars, Knopf, 1979) argues
+% convincingly that a style like `plain' encourages better writing than
+% one like `apalike'. Furthermore the best argument for using an
+% author-date style like `apalike'---that it's "the most practical"
+% (The Chicago Manual of Style, University of Chicago Press, thirteenth
+% edition, 1982, pages 400--401)---falls flat on its face with the new
+% computer-typesetting technology. For instance page 401 of the Chicago
+% Manual anachronistically states "The chief disadvantage of [a style
+% like `plain'] is that additions or deletions cannot be made after the
+% manuscript is typed without changing numbers in both text references
+% and list." With (La)TeX the disadvantage obviously evaporates.
+% Moreover, apalike indulges in what I think is a shortsighted practice:
+% automatically abbreviating first names. Abbreviating may occasionally
+% make the work a page shorter, but at the cost of a less useful
+% reference list; that's too high a cost for such a marginal benefit.
+% The offense isn't egregious for a name like `Donald E. Knuth'---at
+% least among those familiar with his field---since there aren't many
+% other `D. E. Knuth's floating around. But referring to `D. E. Smith'
+% in a field having more than one can be quite confusing. Moreover,
+% with the proliferation of computers and citation indexes nowadays,
+% it's important to indicate in the reference list an author's name
+% exactly as it appears in the work cited. Automatically abbreviating
+% first names is simply bad scholarship. (End of flame.)
+%
+% To use these macros you need the btxmac.tex macros, which let you use
+% BibTeX with plain TeX (rather than with LaTeX); the file btxmac.tex
+% explains those macros in detail, and gives examples. You simply
+% \input apalike right after you \input btxmac to invoke these macros.
+%
+%
+% HISTORY
+%
+% Oren Patashnik wrote the original version of these macros in December
+% 1990, for use with btxmac.tex.
+%
+% 12-Dec-90 Version 0.99a, first general release.
+% 29-Feb-92 0.99b, changed `\biblabelextrahang' to `\biblabelextraspace',
+% to keep up with btxmac.tex version 0.99i.
+% 8-Dec-10 Still version 0.99b, as the code itself was unchanged;
+% this release clarified the license.
+%
+% Here, finally (I swear, I thought he was never gonna stop), are the
+% macros. The first bunch makes the label empty and sets 2em of
+% hanging indentation (via \biblabelextraspace) for each entry.
+%
+\def\biblabelprint#1{\noindent}%
+\def\biblabelcontents#1{}%
+\def\bblhook{\biblabelextraspace = 2em }%
+%
+%
+% And the last bunch formats an in-text citation: parens around the
+% entire citation; semicolons separating individual references; and a
+% comma between a reference and its note (like `page 41') if it exists.
+%
+\def\printcitestart{(}% left paren
+\def\printcitefinish{)}% right parent
+\def\printbetweencitations{; }% semicolon, space
+\def\printcitenote#1{, #1}% comma, space, note (if it exists)
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index e52bf96edb7..2bf5293d02c 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -52,7 +52,7 @@ my @TLP_working = qw(
biblatex biblatex-apa biblatex-chem biblatex-chicago
biblatex-dw biblatex-historian biblatex-nature
biblatex-philosophy biblatex-science
- bibleref biblist bibtopic
+ bibleref biblist bibtex bibtopic
bibtopicprefix bibexport bibunits
bidi bigfoot bigints binomexp biocon bizcard
blacklettert1 blindtext blkarray block blockdraw_mp blowup
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 07db9169098..80e38268928 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -757,7 +757,7 @@ $Master = "$mydir/../..";
'xecyr', "&MAKEcopy",
'xelibertine', "die 'skipping, replaced by libertine'",
'xetex-pstricks',"&MAKEcopy",
- 'xfrac', "die 'skipping, use mh (I guess)'",
+ 'xfrac', "die 'skipping, use mh (I think)'",
'xinitials', "die 'skipping, will be in xpackages when ready (Morten says)'",
'xits', "&MAKEflatten",
'xkeyval', "&MAKExkeyval",
@@ -793,6 +793,7 @@ $Master = "$mydir/../..";
'amstex' => '&POSTamstex',
'apalike' => '&POSTapalike',
'babelbib' => '&POSTbabelbib',
+ 'bibtex' => '&POSTbibtex',
'context-games' => '&POSTcontext_games',
'coordsys' => '&POSTcoordsys',
'ctex' => '&POSTctex',
@@ -846,6 +847,7 @@ $standarddest = "texmf-dist";
'arrayjob', 'generic',
'barr', 'generic',
'bghyphen', 'generic',
+ 'bibtex', 'generic',
'circ', 'latex',
'cirth', 'generic',
'dehyph-exptl','generic',
@@ -931,6 +933,7 @@ $standardtex='\.(.bx|cfg|sty|clo|ldf|cls|def|fd|cmap|4ht)$';
'bbold', 'bbold.sty|\.fd', # no fonttabl.sty
'bclogo', 'bc[^l].*\.(tex|pdf|eps)|bclogo\.sty',
'bghyphen', '\.tex',
+ 'bibtex', 'apalike\..*|' . $standardtex,
'bidi', '^bidi\.tex|' . $standardtex,
'blockdraw_mp','NULL', # skip .sty's
'breqn', '\.sty|\.sym',
@@ -1621,6 +1624,7 @@ $standardbib = 'NULL'; # almost all bib files are for the doc
%specialbib= (
'IEEEtran' => '\.bib$',
'amsrefs' => 'ams.*bib', # not jr.bib
+ 'bibtex' => 'xampl\.bib$',
'computational-complexity' => '\.bib$',
);
@@ -1947,7 +1951,11 @@ sub set_dir_defaults
my ($ctan_dir) = @_;
my $guess = "";
- if ($ctan_dir =~ m!/tex-archive/fonts/!) {
+ if ($ctan_dir =~ m!/tex-archive/biblio/bibtex!) {
+ $standarddocfmt = $standardsourcefmt = "bibtex";
+ $guess = "$standarddocfmt for docfmt/srcfmt";
+
+ } elsif ($ctan_dir =~ m!/tex-archive/fonts/!) {
$standarddocfmt = $standardsourcefmt = "fonts";
$guess = "$standarddocfmt for docfmt/srcfmt";
@@ -1986,21 +1994,44 @@ sub set_dir_defaults
-sub xchdir
-{
+sub xchdir {
my ($dir) = @_;
chdir ($dir) || die "chdir($dir) failed: $!";
chomp (my $pwd = `pwd`);
print "\t CHDIR $dir (now $pwd)\n";
}
-sub xmkdir
-{
+sub xmkdir {
my (@dirs) = @_;
&SYSTEM ("mkdir -p @dirs");
}
+# run a shell command.
+#
+sub SYSTEM {
+ my ($job) = @_;
+ if ($opt_test) {
+ print "\t SYSTEM $job\n";
+ } else {
+ print "\t SYSTEM $job\n" if $opt_debug;
+ system ($job);
+ }
+}
+
+
+# copy man pages from runtime to new stage directory,
+# so they won't appear to be deleted.
+#
+sub preserve_man_pages {
+ my ($pkg) = @_;
+
+ my $mandest = "$TOPDEST/texmf/doc/man/man1";
+ &xmkdir ($mandest);
+ &SYSTEM ("$CP $Master/texmf/doc/man/man1/$pkg.* $mandest/");
+}
+
+
# some packages need to intervene at the beginning.
sub run_prehook
@@ -2602,18 +2633,6 @@ sub runfonts {
}
-sub SYSTEM
-{
- local ($job) = @_;
- if ($opt_test) {
- print "\t SYSTEM $job\n";
- } else {
- print "\t SYSTEM $job\n" if $opt_debug;
- system($job);
- }
-}
-
-
sub MAKEflatten
{
@@ -3981,6 +4000,15 @@ sub POSTbabelbib {
&SYSTEM ("cd $DEST && $MV texmf/* . && rmdir texmf");
}
+sub POSTbibtex {
+ print "POST$package - switch to base/\n";
+ &SYSTEM ("cd $DEST && $MV bibtex/bst/bibtex bibtex/bst/base");
+ &SYSTEM ("cd $DEST && $MV bibtex/bib/bibtex bibtex/bib/base");
+ &SYSTEM ("cd $DEST && $MV doc/bibtex/bibtex doc/bibtex/base");
+ &SYSTEM ("$RM bibtex.web"); # handle separately
+ &preserve_man_pages ("bibtex");
+}
+
sub POSTcontext_games {
print "POST$package - remove duplicated fonts\n";
&SYSTEM ("$RM -rf fonts");
@@ -4245,6 +4273,7 @@ sub POSTzhspacing {
&SYSTEM ("$MV doc/* .; rmdir doc");
}
+
# Allow overrides. In particular, CTAN can change some hashes to make
# packages with licenses that TL doesn't allow.
diff --git a/Master/tlpkg/tlpsrc/bibtex.tlpsrc b/Master/tlpkg/tlpsrc/bibtex.tlpsrc
index 34d2ca4feef..5619821a49e 100644
--- a/Master/tlpkg/tlpsrc/bibtex.tlpsrc
+++ b/Master/tlpkg/tlpsrc/bibtex.tlpsrc
@@ -3,5 +3,6 @@ srcpattern f ignore
runpattern d texmf-dist/bibtex/bib/base
runpattern d texmf-dist/bibtex/bst/base
docpattern d texmf-dist/doc/bibtex/base
+docpattern d texmf-dist/tex/generic/bibtex
docpattern f texmf/doc/man/man1/bibtex.*
binpattern f bin/${ARCH}/bibtex