summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2009-11-20 10:08:07 +0000
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2009-11-20 10:08:07 +0000
commit754d87c1ab6482f6628142cac6b94c783e36c1c7 (patch)
treeb7b010841924789df295ed2125e0c7227abbe037 /Master
parentaab9b5b29ca5474c8e04f0f555ac801f57dd29d2 (diff)
bibhtml update: version 2.0.1, released 2009 November 2
git-svn-id: svn://tug.org/texlive/trunk@16093 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/bibtex/bst/bibhtml/abbrvhtml.bst4
-rw-r--r--Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst19
-rw-r--r--Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldate.bst2329
-rw-r--r--Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldater.bst2329
-rw-r--r--Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst36
-rw-r--r--Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldate.bst1799
-rw-r--r--Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldater.bst2098
-rw-r--r--Master/texmf-dist/bibtex/bst/bibhtml/unsrthtml.bst4
-rw-r--r--Master/texmf-dist/doc/bibtex/bibhtml/README7
-rw-r--r--Master/texmf-dist/doc/bibtex/bibhtml/bibhtml4
-rw-r--r--Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-extract-aux.xslt4
-rw-r--r--Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-insert-bib.xslt4
-rw-r--r--Master/texmf-dist/doc/bibtex/bibhtml/bibhtml.html95
-rw-r--r--Master/texmf-dist/doc/bibtex/bibhtml/detex.sed4
-rw-r--r--Master/texmf-dist/doc/bibtex/bibhtml/style.css166
15 files changed, 4282 insertions, 4620 deletions
diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/abbrvhtml.bst b/Master/texmf-dist/bibtex/bst/bibhtml/abbrvhtml.bst
index eeb6f9e9979..9d506770bbd 100644
--- a/Master/texmf-dist/bibtex/bst/bibhtml/abbrvhtml.bst
+++ b/Master/texmf-dist/bibtex/bst/bibhtml/abbrvhtml.bst
@@ -1,7 +1,7 @@
%% abbrvhtml.bst
%%
-%% Part of bibhtml, version 2.0, released 2009 August 9
-%% Hg node 4a5600417b09.
+%% Part of bibhtml, version 2.0.1, released 2009 November 2
+%% Hg node 6ca3807543d6.
%% See <http://purl.org/nxg/dist/bibhtml>
%%
%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>
diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst
index c4c87183e7b..a23e6113c64 100644
--- a/Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst
+++ b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst
@@ -1,7 +1,7 @@
%% alphahtml.bst
%%
-%% Part of bibhtml, version 2.0, released 2009 August 9
-%% Hg node 4a5600417b09.
+%% Part of bibhtml, version 2.0.1, released 2009 November 2
+%% Hg node 6ca3807543d6.
%% See <http://purl.org/nxg/dist/bibhtml>
%%
%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>
@@ -1453,7 +1453,7 @@ FUNCTION {editor.organization.sort}
FUNCTION {presort}
{ calc.label
- sort.label
+ sort.label %EDIT2
" "
*
type$ "book" =
@@ -1533,11 +1533,16 @@ ITERATE {forward.pass}
REVERSE {reverse.pass}
+%%% XXX The macro \etalchar is generated in function format.lab.names.
+%%% I have no idea what format.lab.names does,
+%%% and it doesn't seem to do anything in my test cases.
+%%% However the \etalchar definition messes up the HTML output,
+%%% so I'll simply skip that for now...
FUNCTION {begin.bib}
-{ et.al.char.used
- { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
- 'skip$
- if$
+{ %et.al.char.used
+ % { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
+ % 'skip$
+ %if$
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldate.bst b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldate.bst
index 129a7fc65b4..14f25357f9d 100644
--- a/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldate.bst
+++ b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldate.bst
@@ -5,8 +5,8 @@
%%
%% alphahtml.bst
%%
-%% Part of bibhtml, version 2.0, released 2009 August 9
-%% Hg node 4a5600417b09.
+%% Part of bibhtml, version 2.0.1, released 2009 November 2
+%% Hg node 6ca3807543d6.
%% See <http://purl.org/nxg/dist/bibhtml>
%%
%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>
@@ -22,1544 +22,1341 @@
%%% Added PUBMED support.
%%% Added hyperref support.
%%% Original headers follow...
-
-% 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.
-
ENTRY
- { address
- author
- booktitle
- chapter
- edition
- editor
- howpublished
- institution
- journal
- key
- month
- note
- number
- organization
- pages
- publisher
- school
- series
- title
- type
- volume
- year
- eprint % urlbst
- doi % urlbst
- pubmed % urlbst
- url % urlbst
- lastchecked % urlbst
- }
- {}
- { label extra.label sort.label }
-
+{ address
+author
+booktitle
+chapter
+edition
+editor
+howpublished
+institution
+journal
+key
+month
+note
+number
+organization
+pages
+publisher
+school
+series
+title
+type
+volume
+year
+eprint % urlbst
+doi % urlbst
+pubmed % urlbst
+url % urlbst
+lastchecked % urlbst
+}
+{}
+{ label extra.label sort.label }
INTEGERS { output.state before.all mid.sentence after.sentence after.block doiform }
-
STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst...
INTEGERS { inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver }
-% Following constants may be adjusted by hand, if desired
FUNCTION {init.urlbst.variables}
{
- "Available from: " 'urlintro := % prefix before URL
- "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
- "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
- "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
- "doi:" 'doiprefix := % text prefix printed before DOI ref
- "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
- "PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
- #1 'addeprints := % 0=no eprints; 1=include eprints
- #1 'adddoiresolver := % 0=no DOI resolver; 1=include it
- #1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it
- #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
- #1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing
- % the following are internal state variables, not config constants
- #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink
- "" 'openinlinelink := % ditto
- "" 'closeinlinelink := % ditto
+"Available from: " 'urlintro := % prefix before URL
+"http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+"arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+"http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+"doi:" 'doiprefix := % text prefix printed before DOI ref
+"http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
+"PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
+#1 'addeprints := % 0=no eprints; 1=include eprints
+#1 'adddoiresolver := % 0=no DOI resolver; 1=include it
+#1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it
+#1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+#1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing
+#0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink
+"" 'openinlinelink := % ditto
+"" 'closeinlinelink := % ditto
}
INTEGERS {
- bracket.state
- outside.brackets
- open.brackets
- within.brackets
- close.brackets
- close.first.block
-}
-% ...urlbst to here
+bracket.state
+outside.brackets
+open.brackets
+within.brackets
+close.brackets
+close.first.block
+}
FUNCTION {init.state.consts}
{ #0 'outside.brackets := % urlbst
- #1 'open.brackets :=
- #2 'within.brackets :=
- #3 'close.brackets :=
-
- #0 'before.all :=
- #1 'mid.sentence :=
- #2 'after.sentence :=
- #3 'after.block :=
- #0 'close.first.block :=
-}
-
+#1 'open.brackets :=
+#2 'within.brackets :=
+#3 'close.brackets :=
+#0 'before.all :=
+#1 'mid.sentence :=
+#2 'after.sentence :=
+#3 'after.block :=
+#0 'close.first.block :=
+}
STRINGS { s t }
-
-% urlbst
FUNCTION {output.nonnull.original}
{ 's :=
- output.state mid.sentence =
- { ", " * write$ }
- { output.state after.block =
- { add.period$ write$
- % close the <dt> after the end of the first block
- close.first.block
- { "</a></dt>" write$ newline$ "<dd>" write$
- #0 'close.first.block := }
- { newline$ }
- if$
- }
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
- if$
- mid.sentence 'output.state :=
- }
- if$
- s
-}
-
-% urlbst...
-% The following three functions are for handling inlinelink. They wrap
-% a block of text which is potentially output with write$ by multiple
-% other functions, so we don't know the content a priori.
-% They communicate between each other using the variables makeinlinelink
-% (which is true if a link should be made), and closeinlinelink (which holds
-% the string which should close any current link. They can be called
-% at any time, but start.inlinelink will be a no-op unless something has
-% previously set makeinlinelink true, and the two ...end.inlinelink functions
-% will only do their stuff if start.inlinelink has previously set
-% closeinlinelink to be non-empty.
+output.state mid.sentence =
+{ ", " * write$ }
+{ output.state after.block =
+{ add.period$ write$
+close.first.block
+{ "</a></dt>" write$ newline$ "<dd>" write$
+#0 'close.first.block := }
+{ newline$ }
+if$
+}
+{ output.state before.all =
+'write$
+{ add.period$ " " * write$ }
+if$
+}
+if$
+mid.sentence 'output.state :=
+}
+if$
+s
+}
FUNCTION {possibly.setup.inlinelink}
{ makeinlinelink
- { "<a href=" quote$ * url * quote$ * ">" * 'openinlinelink :=
- "</a>" 'closeinlinelink :=
- #0 'makeinlinelink := }
- 'skip$
- if$ % makeinlinelink
+{ "<a href=" quote$ * url * quote$ * ">" * 'openinlinelink :=
+"</a>" 'closeinlinelink :=
+#0 'makeinlinelink := }
+'skip$
+if$ % makeinlinelink
}
FUNCTION {add.inlinelink}
{ openinlinelink empty$
- 'skip$
- { openinlinelink swap$ * closeinlinelink *
- "" 'openinlinelink :=
- }
- if$
+'skip$
+{ openinlinelink swap$ * closeinlinelink *
+"" 'openinlinelink :=
+}
+if$
}
FUNCTION {output.nonnull}
{ % Save the thing we've been asked to output
- 's :=
- % If the bracket-state is close.brackets, then add a close-bracket to
- % what is currently at the top of the stack, and set bracket.state
- % to outside.brackets
- bracket.state close.brackets =
- { "]" *
- outside.brackets 'bracket.state :=
- }
- 'skip$
- if$
- bracket.state outside.brackets =
- { % We're outside all brackets -- this is the normal situation.
- % Write out what's currently at the top of the stack, using the
- % original output.nonnull function.
- s
- add.inlinelink
- output.nonnull.original % invoke the original output.nonnull
- }
- { % Still in brackets. Add open-bracket or (continuation) comma, add the
- % new text (in s) to the top of the stack, and move to the close-brackets
- % state, ready for next time (unless inbrackets resets it). If we come
- % into this branch, then output.state is carefully undisturbed.
- bracket.state open.brackets =
- { " [" * }
- { ", " * } % bracket.state will be within.brackets
- if$
- s *
- close.brackets 'bracket.state :=
- }
- if$
-}
-
-% Call this function just before adding something which should be presented in
-% brackets. bracket.state is handled specially within output.nonnull.
+'s :=
+bracket.state close.brackets =
+{ "]" *
+outside.brackets 'bracket.state :=
+}
+'skip$
+if$
+bracket.state outside.brackets =
+{ % We're outside all brackets -- this is the normal situation.
+s
+add.inlinelink
+output.nonnull.original % invoke the original output.nonnull
+}
+{ % Still in brackets. Add open-bracket or (continuation) comma, add the
+bracket.state open.brackets =
+{ " [" * }
+{ ", " * } % bracket.state will be within.brackets
+if$
+s *
+close.brackets 'bracket.state :=
+}
+if$
+}
FUNCTION {inbrackets}
{ bracket.state close.brackets =
- { within.brackets 'bracket.state := } % reset the state: not open nor closed
- { open.brackets 'bracket.state := }
- if$
+{ within.brackets 'bracket.state := } % reset the state: not open nor closed
+{ open.brackets 'bracket.state := }
+if$
}
-
FUNCTION {format.lastchecked}
{ lastchecked empty$
- { "" }
- { inbrackets "cited " lastchecked * }
- if$
+{ "" }
+{ inbrackets "cited " lastchecked * }
+if$
}
-% ...urlbst to here
-
FUNCTION {output}
{ duplicate$ empty$
- 'pop$
- 'output.nonnull
- if$
+'pop$
+'output.nonnull
+if$
}
-
FUNCTION {output.check}
{ 't :=
- duplicate$ empty$
- { pop$ "empty " t * " in " * cite$ * warning$ }
- 'output.nonnull
- if$
+duplicate$ empty$
+{ pop$ "empty " t * " in " * cite$ * warning$ }
+'output.nonnull
+if$
}
-
FUNCTION {output.bibitem.original}
{ newline$
- "<dt><a name='" write$
- cite$ write$
- "'>[" cite$ * "] " * write$
- % the <dt> is closed within output.nonnull, as long as close.first.block is true
- #1 'close.first.block :=
- newline$
- ""
- before.all 'output.state :=
-}
-
+"<dt><a name='" write$
+cite$ write$
+"'>[" cite$ * "] " * write$
+#1 'close.first.block :=
+newline$
+""
+before.all 'output.state :=
+}
FUNCTION {fin.entry.original}
{ add.period$ "</dd>" *
- write$
- newline$
+write$
+newline$
}
-
FUNCTION {new.block}
{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
+'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$
-}
-
+'skip$
+{ output.state before.all =
+'skip$
+{ after.sentence 'output.state := }
+if$
+}
+if$
+}
FUNCTION {not}
{ { #0 }
- { #1 }
- if$
+{ #1 }
+if$
}
-
FUNCTION {and}
{ 'skip$
- { pop$ #0 }
- if$
+{ pop$ #0 }
+if$
}
-
FUNCTION {or}
{ { pop$ #1 }
- 'skip$
- if$
+'skip$
+if$
}
-
FUNCTION {new.block.checka}
{ empty$
- 'skip$
- 'new.block
- if$
+'skip$
+'new.block
+if$
}
-
FUNCTION {new.block.checkb}
{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
+swap$ empty$
+and
+'skip$
+'new.block
+if$
}
-
FUNCTION {new.sentence.checka}
{ empty$
- 'skip$
- 'new.sentence
- if$
+'skip$
+'new.sentence
+if$
}
-
FUNCTION {new.sentence.checkb}
{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.sentence
- if$
+swap$ empty$
+and
+'skip$
+'new.sentence
+if$
}
-
FUNCTION {field.or.null}
{ duplicate$ empty$
- { pop$ "" }
- 'skip$
- if$
+{ pop$ "" }
+'skip$
+if$
}
-
FUNCTION {emphasize}
{ duplicate$ empty$
- { pop$ "" }
- { "<em>" swap$ * "</em>" * }
- if$
+{ pop$ "" }
+{ "<em>" swap$ * "</em>" * }
+if$
}
-
INTEGERS { nameptr namesleft numnames }
-
FUNCTION {format.names}
{ 's :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
- nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
+#1 'nameptr :=
+s num.names$ 'numnames :=
+numnames 'namesleft :=
+{ namesleft #0 > }
+{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+nameptr #1 >
+{ namesleft #1 >
+{ ", " * t * }
+{ numnames #2 >
+{ "," * }
+'skip$
+if$
+t "others" =
+{ " et~al." * }
+{ " and " * t * }
+if$
+}
+if$
+}
+'t
+if$
+nameptr #1 + 'nameptr :=
+namesleft #1 - 'namesleft :=
+}
+while$
+}
FUNCTION {format.authors}
{ author empty$
- { "" }
- { author format.names }
- if$
+{ "" }
+{ author format.names }
+if$
}
-
FUNCTION {format.editors}
{ editor empty$
- { "" }
- { editor format.names
- editor num.names$ #1 >
- { ", editors" * }
- { ", editor" * }
- if$
- }
- if$
-}
-
+{ "" }
+{ editor format.names
+editor num.names$ #1 >
+{ ", editors" * }
+{ ", editor" * }
+if$
+}
+if$
+}
FUNCTION {format.title}
{ title empty$
- { "" }
- { title "t" change.case$ }
- if$
+{ "" }
+{ 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$
-}
-
+""
+{ 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.date}
{ year empty$
- { month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
- if$
- }
- { month empty$
- 'year
- { month " " * year * }
- if$
- }
- if$
-}
-
+{ month empty$
+{ "" }
+{ "there's a month but no year in " cite$ * warning$
+month
+}
+if$
+}
+{ month empty$
+'year
+{ month " " * year * }
+if$
+}
+if$
+}
FUNCTION {format.btitle}
{ title emphasize
}
-
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
- if$
- swap$ * *
+{ "~" }
+{ " " }
+if$
+swap$ * *
}
-
FUNCTION {either.or.check}
{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
+'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$
-}
-
+{ "" }
+{ "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$
-}
-
+{ 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$
-}
-
+{ "" }
+{ 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
-}
-
+#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$
-}
-
+{ "" }
+{ 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$
-}
-
+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$
-}
-
+'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$
-}
-
+{ "" }
+{ editor empty$
+{ "In " booktitle emphasize * }
+{ "In " format.editors * ", " * booktitle emphasize * }
+if$
+}
+if$
+}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- key empty$ not and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
+month empty$ year empty$ note empty$
+and and and and and
+key empty$ not and
+{ "all relevant fields are empty in " cite$ * warning$ }
+'skip$
+if$
+}
FUNCTION {format.thesis.type}
{ type empty$
- 'skip$
- { pop$
- type "t" change.case$
- }
- if$
+'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$
-}
-
+{ "Technical Report" }
+'type
+if$
+number empty$
+{ "t" change.case$ }
+{ number tie.or.space.connect }
+if$
+}
FUNCTION {format.article.crossref}
{ key empty$
- { journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In {\em " journal * "\/}" * }
- if$
- }
- { "In " key * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
-}
-
+{ journal empty$
+{ "need key or journal for " cite$ * " to crossref " * crossref *
+warning$
+""
+}
+{ "In {\em " journal * "\/}" * }
+if$
+}
+{ "In " key * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
+}
FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
- editor num.names$ duplicate$
- #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$
- }
- if$
- }
- if$
-}
-
+editor num.names$ duplicate$
+#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$
+}
+if$
+}
+if$
+}
FUNCTION {format.book.crossref}
{ volume empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- "In "
- }
- { "Volume" volume tie.or.space.connect
- " of " *
- }
- if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "<em>" * series * "</em>" * }
- if$
- }
- { key * }
- if$
- }
- { format.crossref.editor * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
-}
-
+{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+"In "
+}
+{ "Volume" volume tie.or.space.connect
+" of " *
+}
+if$
+editor empty$
+editor field.or.null author field.or.null =
+or
+{ key empty$
+{ series empty$
+{ "need editor, key, or series for " cite$ * " to crossref " *
+crossref * warning$
+"" *
+}
+{ "<em>" * series * "</em>" * }
+if$
+}
+{ key * }
+if$
+}
+{ format.crossref.editor * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
+}
FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { booktitle empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- ""
- }
- { "In <em>" booktitle * "</em>" * }
- if$
- }
- { "In " key * }
- if$
- }
- { "In " format.crossref.editor * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
-}
-
-% urlbst...
-% Functions for making hypertext links.
+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 * "</em>" * }
+if$
+}
+{ "In " key * }
+if$
+}
+{ "In " format.crossref.editor * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
+}
FUNCTION {make.href}
{
- "<a href='" swap$ * "'><code>" * swap$ * "</code></a>" *
+"<a href='" swap$ * "'><code>" * swap$ * "</code></a>" *
}
-
-% If inlinelinks is true, then format.url should be a no-op, since it's
-% (a) redundant, and (b) could end up as a link-within-a-link.
FUNCTION {format.url}
{ inlinelinks #1 = url empty$ or
- { "" }
- { urlintro "<code>" * url * "</code>" * }
- if$
+{ "" }
+{ urlintro "<code>" * url * "</code>" * }
+if$
}
-
FUNCTION {format.eprint}
{ eprint empty$
- { "" }
- { eprintprefix eprint * eprinturl eprint * make.href }
- if$
+{ "" }
+{ eprintprefix eprint * eprinturl eprint * make.href }
+if$
}
-
FUNCTION {format.doi}
{ doi empty$
- { "" }
- { doiform #0 =
- { doiprefix doi * doiurl doi * make.href }
- { "DOI:{" doi * "}" * }
- if$
- }
- if$
-}
-
+{ "" }
+{ doiform #0 =
+{ doiprefix doi * doiurl doi * make.href }
+{ "DOI:{" doi * "}" * }
+if$
+}
+if$
+}
FUNCTION {format.pubmed}
{ pubmed empty$
- { "" }
- { pubmedprefix pubmed * pubmedurl pubmed * make.href }
- if$
-}
-
-% Output a URL. We can't use the more normal idiom (something like
-% `format.url output'), because the `inbrackets' within
-% format.lastchecked applies to everything between calls to `output',
-% so that `format.url format.lastchecked * output' ends up with both
-% the URL and the lastchecked in brackets.
+{ "" }
+{ pubmedprefix pubmed * pubmedurl pubmed * make.href }
+if$
+}
FUNCTION {output.url}
{ url empty$
- 'skip$
- { new.block
- format.url output
- format.lastchecked output
- }
- if$
-}
-
+'skip$
+{ new.block
+format.url output
+format.lastchecked output
+}
+if$
+}
FUNCTION {output.web.refs}
{
- new.block
- output.url
- addeprints eprint empty$ not and
- { format.eprint output.nonnull }
- 'skip$
- if$
- adddoiresolver doi empty$ not and
- { format.doi output.nonnull }
- 'skip$
- if$
- addpubmedresolver pubmed empty$ not and
- { format.pubmed output.nonnull }
- 'skip$
- if$
-}
-
-% Wrapper for output.bibitem.original.
-% If the URL field is not empty, set makeinlinelink to be true,
-% so that an inline link will be started at the next opportunity
+new.block
+output.url
+addeprints eprint empty$ not and
+{ format.eprint output.nonnull }
+'skip$
+if$
+adddoiresolver doi empty$ not and
+{ format.doi output.nonnull }
+'skip$
+if$
+addpubmedresolver pubmed empty$ not and
+{ format.pubmed output.nonnull }
+'skip$
+if$
+}
FUNCTION {output.bibitem}
{ outside.brackets 'bracket.state :=
- output.bibitem.original
- inlinelinks url empty$ not and
- { #1 'makeinlinelink := }
- { #0 'makeinlinelink := }
- if$
-}
-
-% Wrapper for fin.entry.original
+output.bibitem.original
+inlinelinks url empty$ not and
+{ #1 'makeinlinelink := }
+{ #0 'makeinlinelink := }
+if$
+}
FUNCTION {fin.entry}
{ output.web.refs % urlbst
- makeinlinelink % ooops, it appears we didn't have a title for inlinelink
- { possibly.setup.inlinelink % add some artificial link text here, as a fallback
- "[link]" output.nonnull }
- 'skip$
- if$
- bracket.state close.brackets = % urlbst
- { "]" * }
- 'skip$
- if$
- fin.entry.original
-}
-
-% Webpage entry type.
-% Title and url fields required;
-% author, note, year, month, and lastchecked fields optional
-% See references
-% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
-% http://www.classroom.net/classroom/CitingNetResources.html
-% http://neal.ctstateu.edu/history/cite.html
-% http://www.cas.usf.edu/english/walker/mla.html
-% for citation formats for web pages.
+makeinlinelink % ooops, it appears we didn't have a title for inlinelink
+{ possibly.setup.inlinelink % add some artificial link text here, as a fallback
+"[link]" output.nonnull }
+'skip$
+if$
+bracket.state close.brackets = % urlbst
+{ "]" * }
+'skip$
+if$
+fin.entry.original
+}
FUNCTION {webpage}
{ output.bibitem
- author empty$
- { editor empty$
- 'skip$ % author and editor both optional
- { format.editors output.nonnull }
- if$
- }
- { editor empty$
- { format.authors output.nonnull }
- { "can't use both author and editor fields in " cite$ * warning$ }
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$
- format.title "title" output.check
- inbrackets "online" output
- new.block
- year empty$
- 'skip$
- { format.date "year" output.check }
- if$
- % We don't need to output the URL details ('lastchecked' and 'url'),
- % because fin.entry does that for us, using output.web.refs. The only
- % reason we would want to put them here is if we were to decide that
- % they should go in front of the rather miscellaneous information in 'note'.
- new.block
- note output
- fin.entry
-}
-% ...urlbst to here
-
-
+author empty$
+{ editor empty$
+'skip$ % author and editor both optional
+{ format.editors output.nonnull }
+if$
+}
+{ editor empty$
+{ format.authors output.nonnull }
+{ "can't use both author and editor fields in " cite$ * warning$ }
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$
+format.title "title" output.check
+inbrackets "online" output
+new.block
+year empty$
+'skip$
+{ format.date "year" output.check }
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {article}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- crossref missing$
- { journal emphasize "journal" output.check
- possibly.setup.inlinelink format.vol.num.pages output% urlbst
- format.date "year" output.check
- }
- { format.article.crossref output.nonnull
- format.pages output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+crossref missing$
+{ journal emphasize "journal" output.check
+possibly.setup.inlinelink format.vol.num.pages output% urlbst
+format.date "year" output.check
+}
+{ format.article.crossref output.nonnull
+format.pages output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {book}
{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+author empty$
+{ format.editors "author and editor" output.check }
+{ format.authors output.nonnull
+crossref missing$
+{ "author and editor" editor either.or.check }
+'skip$
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {booklet}
{ output.bibitem
- format.authors output
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- howpublished address new.block.checkb
- howpublished output
- address output
- format.date output
- new.block
- note output
- fin.entry
-}
-
+format.authors output
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+howpublished address new.block.checkb
+howpublished output
+address output
+format.date output
+new.block
+note output
+fin.entry
+}
FUNCTION {inbook}
{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+author empty$
+{ format.editors "author and editor" output.check }
+{ format.authors output.nonnull
+crossref missing$
+{ "author and editor" editor either.or.check }
+'skip$
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {incollection}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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.date "year" output.check
- }
- { format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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.date "year" output.check
+}
+{ format.incoll.inproc.crossref output.nonnull
+format.chapter.pages output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {inproceedings}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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 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
- }
- if$
- }
- { format.incoll.inproc.crossref output.nonnull
- format.pages output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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 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
+}
+if$
+}
+{ format.incoll.inproc.crossref output.nonnull
+format.pages output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {conference} { inproceedings }
-
FUNCTION {manual}
{ output.bibitem
- author empty$
- { organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
- if$
- }
- { format.authors output.nonnull }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- author empty$
- { organization empty$
- { address new.block.checka
- address output
- }
- 'skip$
- if$
- }
- { organization address new.block.checkb
- organization output
- address output
- }
- if$
- format.edition output
- format.date output
- new.block
- note output
- fin.entry
-}
-
+author empty$
+{ organization empty$
+'skip$
+{ organization output.nonnull
+address output
+}
+if$
+}
+{ format.authors output.nonnull }
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+author empty$
+{ organization empty$
+{ address new.block.checka
+address output
+}
+'skip$
+if$
+}
+{ organization address new.block.checkb
+organization output
+address output
+}
+if$
+format.edition output
+format.date output
+new.block
+note output
+fin.entry
+}
FUNCTION {mastersthesis}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- "Master's thesis" format.thesis.type output.nonnull
- school "school" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+"Master's thesis" format.thesis.type output.nonnull
+school "school" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {misc}
{ output.bibitem
- format.authors output
- title howpublished new.block.checkb
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title output
- howpublished new.block.checka
- howpublished output
- format.date output
- new.block
- note output
- fin.entry
- empty.misc.check
-}
-
+format.authors output
+title howpublished new.block.checkb
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title output
+howpublished new.block.checka
+howpublished output
+format.date output
+new.block
+note output
+fin.entry
+empty.misc.check
+}
FUNCTION {phdthesis}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- new.block
- "PhD thesis" format.thesis.type output.nonnull
- school "school" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+new.block
+"PhD thesis" format.thesis.type output.nonnull
+school "school" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {proceedings}
{ output.bibitem
- editor empty$
- { organization output }
- { format.editors output.nonnull }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- format.bvolume output
- format.number.series output
- address empty$
- { editor empty$
- { publisher new.sentence.checka }
- { organization publisher new.sentence.checkb
- organization output
- }
- if$
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- new.sentence
- editor empty$
- 'skip$
- { organization output }
- if$
- publisher output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+editor empty$
+{ organization output }
+{ format.editors output.nonnull }
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+format.bvolume output
+format.number.series output
+address empty$
+{ editor empty$
+{ publisher new.sentence.checka }
+{ organization publisher new.sentence.checkb
+organization output
+}
+if$
+publisher output
+format.date "year" output.check
+}
+{ address output.nonnull
+format.date "year" output.check
+new.sentence
+editor empty$
+'skip$
+{ organization output }
+if$
+publisher output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {techreport}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- format.tr.number output.nonnull
- institution "institution" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+format.tr.number output.nonnull
+institution "institution" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {unpublished}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- note "note" output.check
- format.date output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+note "note" output.check
+format.date output
+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"}
-
+{"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$
+"l" change.case$
}
-
INTEGERS { len }
-
FUNCTION {chop.word}
{ 's :=
- 'len :=
- s #1 len substring$ =
- { s len #1 + global.max$ substring$ }
- 's
- if$
+'len :=
+s #1 len substring$ =
+{ s len #1 + global.max$ substring$ }
+'s
+if$
}
-
INTEGERS { et.al.char.used }
-
FUNCTION {initialize.et.al.char.used}
{ #0 'et.al.char.used :=
}
-
EXECUTE {initialize.et.al.char.used}
-
FUNCTION {format.lab.names}
{ 's :=
- s num.names$ 'numnames :=
- numnames #1 >
- { numnames #4 >
- { #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 :=
- }
- while$
- numnames #4 >
- { "{\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$
- if$
- }
- if$
-}
-
+s num.names$ 'numnames :=
+numnames #1 >
+{ numnames #4 >
+{ #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 :=
+}
+while$
+numnames #4 >
+{ "{\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$
+if$
+}
+if$
+}
FUNCTION {author.key.label}
{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { author format.lab.names }
- if$
-}
-
+{ key empty$
+{ cite$ #1 #3 substring$ }
+{ key #3 text.prefix$ }
+if$
+}
+{ author format.lab.names }
+if$
+}
FUNCTION {author.editor.key.label}
{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { editor format.lab.names }
- if$
- }
- { author format.lab.names }
- if$
-}
-
+{ editor empty$
+{ key empty$
+{ cite$ #1 #3 substring$ }
+{ key #3 text.prefix$ }
+if$
+}
+{ editor format.lab.names }
+if$
+}
+{ author format.lab.names }
+if$
+}
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$ }
- if$
- }
- { author format.lab.names }
- if$
-}
-
+{ key empty$
+{ organization empty$
+{ cite$ #1 #3 substring$ }
+{ "The " #4 organization chop.word #3 text.prefix$ }
+if$
+}
+{ key #3 text.prefix$ }
+if$
+}
+{ author format.lab.names }
+if$
+}
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$ }
- if$
- }
- { editor format.lab.names }
- if$
-}
-
+{ key empty$
+{ organization empty$
+{ cite$ #1 #3 substring$ }
+{ "The " #4 organization chop.word #3 text.prefix$ }
+if$
+}
+{ key #3 text.prefix$ }
+if$
+}
+{ editor format.lab.names }
+if$
+}
FUNCTION {calc.label}
{ type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.key.label
- { type$ "proceedings" =
- 'editor.key.organization.label
- { type$ "manual" =
- 'author.key.organization.label
- 'author.key.label
- if$
- }
- if$
- }
- if$
- duplicate$
- year field.or.null purify$ #-1 #2 substring$
- *
- 'label :=
- year field.or.null purify$ #-1 #4 substring$
- *
- sortify 'sort.label :=
+type$ "inbook" =
+or
+'author.editor.key.label
+{ type$ "proceedings" =
+'editor.key.organization.label
+{ type$ "manual" =
+'author.key.organization.label
+'author.key.label
+if$
+}
+if$
+}
+if$
+duplicate$
+year field.or.null purify$ #-1 #2 substring$
+*
+'label :=
+year field.or.null purify$ #-1 #4 substring$
+*
+sortify 'sort.label :=
}
-
FUNCTION {sort.format.names}
{ 's :=
- #1 'nameptr :=
- ""
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { nameptr #1 >
- { " " * }
- 'skip$
- if$
- s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
- nameptr numnames = t "others" = and
- { "et al" * }
- { t sortify * }
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
+#1 'nameptr :=
+""
+s num.names$ 'numnames :=
+numnames 'namesleft :=
+{ namesleft #0 > }
+{ nameptr #1 >
+{ " " * }
+'skip$
+if$
+s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+nameptr numnames = t "others" = and
+{ "et al" * }
+{ t sortify * }
+if$
+nameptr #1 + 'nameptr :=
+namesleft #1 - 'namesleft :=
+}
+while$
+}
FUNCTION {sort.format.title}
{ 't :=
- "A " #2
- "An " #3
- "The " #4 t chop.word
- chop.word
- chop.word
- sortify
- #1 global.max$ substring$
-}
-
+"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$
-}
-
+{ 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$
-}
-
+{ 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 {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 }
- if$
- }
- { author sort.format.names }
- if$
-}
-
+{ organization empty$
+{ 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 }
+if$
+}
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 }
- if$
- }
- { editor sort.format.names }
- if$
-}
-
+{ organization empty$
+{ 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 }
+if$
+}
FUNCTION {presort}
{ calc.label
- sort.label
- " "
- *
- type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.sort
- { type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
- if$
- }
- if$
- *
- " "
- *
year field.or.null sortify
- *
" "
*
- title field.or.null
- sort.format.title
+ sort.label
*
- #1 entry.max$ substring$
- 'sort.key$ :=
+" "
+*
+type$ "book" =
+type$ "inbook" =
+or
+'author.editor.sort
+{ type$ "proceedings" =
+'editor.organization.sort
+{ type$ "manual" =
+'author.organization.sort
+'author.sort
+if$
+}
+if$
+}
+if$
+*
+" "
+*
+year field.or.null sortify
+*
+" "
+*
+title field.or.null
+sort.format.title
+*
+#1 entry.max$ substring$
+'sort.key$ :=
}
-
ITERATE {presort}
-
SORT
-
STRINGS { longest.label last.sort.label next.extra }
-
INTEGERS { longest.label.width last.extra.num }
-
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
- #0 int.to.chr$ 'last.sort.label :=
- "" 'next.extra :=
- #0 'longest.label.width :=
- #0 'last.extra.num :=
+#0 int.to.chr$ 'last.sort.label :=
+"" 'next.extra :=
+#0 'longest.label.width :=
+#0 'last.extra.num :=
}
-
FUNCTION {forward.pass}
{ last.sort.label sort.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 :=
- sort.label 'last.sort.label :=
- }
- if$
-}
-
+{ last.extra.num #1 + 'last.extra.num :=
+last.extra.num int.to.chr$ 'extra.label :=
+}
+{ "a" chr.to.int$ 'last.extra.num :=
+"" 'extra.label :=
+sort.label 'last.sort.label :=
+}
+if$
+}
FUNCTION {reverse.pass}
{ next.extra "b" =
- { "a" 'extra.label := }
- 'skip$
- if$
- label extra.label * 'label :=
- label width$ longest.label.width >
- { label 'longest.label :=
- label width$ 'longest.label.width :=
- }
- 'skip$
- if$
- extra.label 'next.extra :=
-}
-
+{ "a" 'extra.label := }
+'skip$
+if$
+label extra.label * 'label :=
+label width$ longest.label.width >
+{ label 'longest.label :=
+label width$ 'longest.label.width :=
+}
+'skip$
+if$
+extra.label 'next.extra :=
+}
EXECUTE {initialize.longest.label}
-
ITERATE {forward.pass}
-
REVERSE {reverse.pass}
-
+%%% XXX The macro \etalchar is generated in function format.lab.names.
+%%% I have no idea what format.lab.names does,
+%%% and it doesn't seem to do anything in my test cases.
+%%% However the \etalchar definition messes up the HTML output,
+%%% so I'll simply skip that for now...
FUNCTION {begin.bib}
-{ et.al.char.used
- { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
- 'skip$
- if$
- preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- "<dl>" write$ newline$
-}
-
+{ %et.al.char.used
+preamble$ empty$
+'skip$
+{ preamble$ write$ newline$ }
+if$
+"<dl>" write$ newline$
+}
EXECUTE {begin.bib}
-
EXECUTE {init.urlbst.variables}
EXECUTE {init.state.consts}
-
ITERATE {call.type$}
-
FUNCTION {end.bib}
{ newline$
- "</dl>" write$ newline$
+"</dl>" write$ newline$
}
-
EXECUTE {end.bib}
diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldater.bst b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldater.bst
index 76c7aab3244..0149fe03954 100644
--- a/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldater.bst
+++ b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldater.bst
@@ -5,8 +5,8 @@
%%
%% alphahtml.bst
%%
-%% Part of bibhtml, version 2.0, released 2009 August 9
-%% Hg node 4a5600417b09.
+%% Part of bibhtml, version 2.0.1, released 2009 November 2
+%% Hg node 6ca3807543d6.
%% See <http://purl.org/nxg/dist/bibhtml>
%%
%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>
@@ -22,1544 +22,1341 @@
%%% Added PUBMED support.
%%% Added hyperref support.
%%% Original headers follow...
-
-% 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.
-
ENTRY
- { address
- author
- booktitle
- chapter
- edition
- editor
- howpublished
- institution
- journal
- key
- month
- note
- number
- organization
- pages
- publisher
- school
- series
- title
- type
- volume
- year
- eprint % urlbst
- doi % urlbst
- pubmed % urlbst
- url % urlbst
- lastchecked % urlbst
- }
- {}
- { label extra.label sort.label }
-
+{ address
+author
+booktitle
+chapter
+edition
+editor
+howpublished
+institution
+journal
+key
+month
+note
+number
+organization
+pages
+publisher
+school
+series
+title
+type
+volume
+year
+eprint % urlbst
+doi % urlbst
+pubmed % urlbst
+url % urlbst
+lastchecked % urlbst
+}
+{}
+{ label extra.label sort.label }
INTEGERS { output.state before.all mid.sentence after.sentence after.block doiform }
-
STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst...
INTEGERS { inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver }
-% Following constants may be adjusted by hand, if desired
FUNCTION {init.urlbst.variables}
{
- "Available from: " 'urlintro := % prefix before URL
- "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
- "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
- "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
- "doi:" 'doiprefix := % text prefix printed before DOI ref
- "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
- "PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
- #1 'addeprints := % 0=no eprints; 1=include eprints
- #1 'adddoiresolver := % 0=no DOI resolver; 1=include it
- #1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it
- #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
- #1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing
- % the following are internal state variables, not config constants
- #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink
- "" 'openinlinelink := % ditto
- "" 'closeinlinelink := % ditto
+"Available from: " 'urlintro := % prefix before URL
+"http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+"arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+"http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+"doi:" 'doiprefix := % text prefix printed before DOI ref
+"http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
+"PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
+#1 'addeprints := % 0=no eprints; 1=include eprints
+#1 'adddoiresolver := % 0=no DOI resolver; 1=include it
+#1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it
+#1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+#1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing
+#0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink
+"" 'openinlinelink := % ditto
+"" 'closeinlinelink := % ditto
}
INTEGERS {
- bracket.state
- outside.brackets
- open.brackets
- within.brackets
- close.brackets
- close.first.block
-}
-% ...urlbst to here
+bracket.state
+outside.brackets
+open.brackets
+within.brackets
+close.brackets
+close.first.block
+}
FUNCTION {init.state.consts}
{ #0 'outside.brackets := % urlbst
- #1 'open.brackets :=
- #2 'within.brackets :=
- #3 'close.brackets :=
-
- #0 'before.all :=
- #1 'mid.sentence :=
- #2 'after.sentence :=
- #3 'after.block :=
- #0 'close.first.block :=
-}
-
+#1 'open.brackets :=
+#2 'within.brackets :=
+#3 'close.brackets :=
+#0 'before.all :=
+#1 'mid.sentence :=
+#2 'after.sentence :=
+#3 'after.block :=
+#0 'close.first.block :=
+}
STRINGS { s t }
-
-% urlbst
FUNCTION {output.nonnull.original}
{ 's :=
- output.state mid.sentence =
- { ", " * write$ }
- { output.state after.block =
- { add.period$ write$
- % close the <dt> after the end of the first block
- close.first.block
- { "</a></dt>" write$ newline$ "<dd>" write$
- #0 'close.first.block := }
- { newline$ }
- if$
- }
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
- if$
- mid.sentence 'output.state :=
- }
- if$
- s
-}
-
-% urlbst...
-% The following three functions are for handling inlinelink. They wrap
-% a block of text which is potentially output with write$ by multiple
-% other functions, so we don't know the content a priori.
-% They communicate between each other using the variables makeinlinelink
-% (which is true if a link should be made), and closeinlinelink (which holds
-% the string which should close any current link. They can be called
-% at any time, but start.inlinelink will be a no-op unless something has
-% previously set makeinlinelink true, and the two ...end.inlinelink functions
-% will only do their stuff if start.inlinelink has previously set
-% closeinlinelink to be non-empty.
+output.state mid.sentence =
+{ ", " * write$ }
+{ output.state after.block =
+{ add.period$ write$
+close.first.block
+{ "</a></dt>" write$ newline$ "<dd>" write$
+#0 'close.first.block := }
+{ newline$ }
+if$
+}
+{ output.state before.all =
+'write$
+{ add.period$ " " * write$ }
+if$
+}
+if$
+mid.sentence 'output.state :=
+}
+if$
+s
+}
FUNCTION {possibly.setup.inlinelink}
{ makeinlinelink
- { "<a href=" quote$ * url * quote$ * ">" * 'openinlinelink :=
- "</a>" 'closeinlinelink :=
- #0 'makeinlinelink := }
- 'skip$
- if$ % makeinlinelink
+{ "<a href=" quote$ * url * quote$ * ">" * 'openinlinelink :=
+"</a>" 'closeinlinelink :=
+#0 'makeinlinelink := }
+'skip$
+if$ % makeinlinelink
}
FUNCTION {add.inlinelink}
{ openinlinelink empty$
- 'skip$
- { openinlinelink swap$ * closeinlinelink *
- "" 'openinlinelink :=
- }
- if$
+'skip$
+{ openinlinelink swap$ * closeinlinelink *
+"" 'openinlinelink :=
+}
+if$
}
FUNCTION {output.nonnull}
{ % Save the thing we've been asked to output
- 's :=
- % If the bracket-state is close.brackets, then add a close-bracket to
- % what is currently at the top of the stack, and set bracket.state
- % to outside.brackets
- bracket.state close.brackets =
- { "]" *
- outside.brackets 'bracket.state :=
- }
- 'skip$
- if$
- bracket.state outside.brackets =
- { % We're outside all brackets -- this is the normal situation.
- % Write out what's currently at the top of the stack, using the
- % original output.nonnull function.
- s
- add.inlinelink
- output.nonnull.original % invoke the original output.nonnull
- }
- { % Still in brackets. Add open-bracket or (continuation) comma, add the
- % new text (in s) to the top of the stack, and move to the close-brackets
- % state, ready for next time (unless inbrackets resets it). If we come
- % into this branch, then output.state is carefully undisturbed.
- bracket.state open.brackets =
- { " [" * }
- { ", " * } % bracket.state will be within.brackets
- if$
- s *
- close.brackets 'bracket.state :=
- }
- if$
-}
-
-% Call this function just before adding something which should be presented in
-% brackets. bracket.state is handled specially within output.nonnull.
+'s :=
+bracket.state close.brackets =
+{ "]" *
+outside.brackets 'bracket.state :=
+}
+'skip$
+if$
+bracket.state outside.brackets =
+{ % We're outside all brackets -- this is the normal situation.
+s
+add.inlinelink
+output.nonnull.original % invoke the original output.nonnull
+}
+{ % Still in brackets. Add open-bracket or (continuation) comma, add the
+bracket.state open.brackets =
+{ " [" * }
+{ ", " * } % bracket.state will be within.brackets
+if$
+s *
+close.brackets 'bracket.state :=
+}
+if$
+}
FUNCTION {inbrackets}
{ bracket.state close.brackets =
- { within.brackets 'bracket.state := } % reset the state: not open nor closed
- { open.brackets 'bracket.state := }
- if$
+{ within.brackets 'bracket.state := } % reset the state: not open nor closed
+{ open.brackets 'bracket.state := }
+if$
}
-
FUNCTION {format.lastchecked}
{ lastchecked empty$
- { "" }
- { inbrackets "cited " lastchecked * }
- if$
+{ "" }
+{ inbrackets "cited " lastchecked * }
+if$
}
-% ...urlbst to here
-
FUNCTION {output}
{ duplicate$ empty$
- 'pop$
- 'output.nonnull
- if$
+'pop$
+'output.nonnull
+if$
}
-
FUNCTION {output.check}
{ 't :=
- duplicate$ empty$
- { pop$ "empty " t * " in " * cite$ * warning$ }
- 'output.nonnull
- if$
+duplicate$ empty$
+{ pop$ "empty " t * " in " * cite$ * warning$ }
+'output.nonnull
+if$
}
-
FUNCTION {output.bibitem.original}
{ newline$
- "<dt><a name='" write$
- cite$ write$
- "'>[" cite$ * "] " * write$
- % the <dt> is closed within output.nonnull, as long as close.first.block is true
- #1 'close.first.block :=
- newline$
- ""
- before.all 'output.state :=
-}
-
+"<dt><a name='" write$
+cite$ write$
+"'>[" cite$ * "] " * write$
+#1 'close.first.block :=
+newline$
+""
+before.all 'output.state :=
+}
FUNCTION {fin.entry.original}
{ add.period$ "</dd>" *
- write$
- newline$
+write$
+newline$
}
-
FUNCTION {new.block}
{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
+'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$
-}
-
+'skip$
+{ output.state before.all =
+'skip$
+{ after.sentence 'output.state := }
+if$
+}
+if$
+}
FUNCTION {not}
{ { #0 }
- { #1 }
- if$
+{ #1 }
+if$
}
-
FUNCTION {and}
{ 'skip$
- { pop$ #0 }
- if$
+{ pop$ #0 }
+if$
}
-
FUNCTION {or}
{ { pop$ #1 }
- 'skip$
- if$
+'skip$
+if$
}
-
FUNCTION {new.block.checka}
{ empty$
- 'skip$
- 'new.block
- if$
+'skip$
+'new.block
+if$
}
-
FUNCTION {new.block.checkb}
{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
+swap$ empty$
+and
+'skip$
+'new.block
+if$
}
-
FUNCTION {new.sentence.checka}
{ empty$
- 'skip$
- 'new.sentence
- if$
+'skip$
+'new.sentence
+if$
}
-
FUNCTION {new.sentence.checkb}
{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.sentence
- if$
+swap$ empty$
+and
+'skip$
+'new.sentence
+if$
}
-
FUNCTION {field.or.null}
{ duplicate$ empty$
- { pop$ "" }
- 'skip$
- if$
+{ pop$ "" }
+'skip$
+if$
}
-
FUNCTION {emphasize}
{ duplicate$ empty$
- { pop$ "" }
- { "<em>" swap$ * "</em>" * }
- if$
+{ pop$ "" }
+{ "<em>" swap$ * "</em>" * }
+if$
}
-
INTEGERS { nameptr namesleft numnames }
-
FUNCTION {format.names}
{ 's :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
- nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
+#1 'nameptr :=
+s num.names$ 'numnames :=
+numnames 'namesleft :=
+{ namesleft #0 > }
+{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+nameptr #1 >
+{ namesleft #1 >
+{ ", " * t * }
+{ numnames #2 >
+{ "," * }
+'skip$
+if$
+t "others" =
+{ " et~al." * }
+{ " and " * t * }
+if$
+}
+if$
+}
+'t
+if$
+nameptr #1 + 'nameptr :=
+namesleft #1 - 'namesleft :=
+}
+while$
+}
FUNCTION {format.authors}
{ author empty$
- { "" }
- { author format.names }
- if$
+{ "" }
+{ author format.names }
+if$
}
-
FUNCTION {format.editors}
{ editor empty$
- { "" }
- { editor format.names
- editor num.names$ #1 >
- { ", editors" * }
- { ", editor" * }
- if$
- }
- if$
-}
-
+{ "" }
+{ editor format.names
+editor num.names$ #1 >
+{ ", editors" * }
+{ ", editor" * }
+if$
+}
+if$
+}
FUNCTION {format.title}
{ title empty$
- { "" }
- { title "t" change.case$ }
- if$
+{ "" }
+{ 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$
-}
-
+""
+{ 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.date}
{ year empty$
- { month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
- if$
- }
- { month empty$
- 'year
- { month " " * year * }
- if$
- }
- if$
-}
-
+{ month empty$
+{ "" }
+{ "there's a month but no year in " cite$ * warning$
+month
+}
+if$
+}
+{ month empty$
+'year
+{ month " " * year * }
+if$
+}
+if$
+}
FUNCTION {format.btitle}
{ title emphasize
}
-
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
- if$
- swap$ * *
+{ "~" }
+{ " " }
+if$
+swap$ * *
}
-
FUNCTION {either.or.check}
{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
+'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$
-}
-
+{ "" }
+{ "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$
-}
-
+{ 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$
-}
-
+{ "" }
+{ 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
-}
-
+#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$
-}
-
+{ "" }
+{ 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$
-}
-
+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$
-}
-
+'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$
-}
-
+{ "" }
+{ editor empty$
+{ "In " booktitle emphasize * }
+{ "In " format.editors * ", " * booktitle emphasize * }
+if$
+}
+if$
+}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- key empty$ not and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
+month empty$ year empty$ note empty$
+and and and and and
+key empty$ not and
+{ "all relevant fields are empty in " cite$ * warning$ }
+'skip$
+if$
+}
FUNCTION {format.thesis.type}
{ type empty$
- 'skip$
- { pop$
- type "t" change.case$
- }
- if$
+'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$
-}
-
+{ "Technical Report" }
+'type
+if$
+number empty$
+{ "t" change.case$ }
+{ number tie.or.space.connect }
+if$
+}
FUNCTION {format.article.crossref}
{ key empty$
- { journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In {\em " journal * "\/}" * }
- if$
- }
- { "In " key * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
-}
-
+{ journal empty$
+{ "need key or journal for " cite$ * " to crossref " * crossref *
+warning$
+""
+}
+{ "In {\em " journal * "\/}" * }
+if$
+}
+{ "In " key * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
+}
FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
- editor num.names$ duplicate$
- #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$
- }
- if$
- }
- if$
-}
-
+editor num.names$ duplicate$
+#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$
+}
+if$
+}
+if$
+}
FUNCTION {format.book.crossref}
{ volume empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- "In "
- }
- { "Volume" volume tie.or.space.connect
- " of " *
- }
- if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "<em>" * series * "</em>" * }
- if$
- }
- { key * }
- if$
- }
- { format.crossref.editor * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
-}
-
+{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+"In "
+}
+{ "Volume" volume tie.or.space.connect
+" of " *
+}
+if$
+editor empty$
+editor field.or.null author field.or.null =
+or
+{ key empty$
+{ series empty$
+{ "need editor, key, or series for " cite$ * " to crossref " *
+crossref * warning$
+"" *
+}
+{ "<em>" * series * "</em>" * }
+if$
+}
+{ key * }
+if$
+}
+{ format.crossref.editor * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
+}
FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { booktitle empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- ""
- }
- { "In <em>" booktitle * "</em>" * }
- if$
- }
- { "In " key * }
- if$
- }
- { "In " format.crossref.editor * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
-}
-
-% urlbst...
-% Functions for making hypertext links.
+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 * "</em>" * }
+if$
+}
+{ "In " key * }
+if$
+}
+{ "In " format.crossref.editor * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
+}
FUNCTION {make.href}
{
- "<a href='" swap$ * "'><code>" * swap$ * "</code></a>" *
+"<a href='" swap$ * "'><code>" * swap$ * "</code></a>" *
}
-
-% If inlinelinks is true, then format.url should be a no-op, since it's
-% (a) redundant, and (b) could end up as a link-within-a-link.
FUNCTION {format.url}
{ inlinelinks #1 = url empty$ or
- { "" }
- { urlintro "<code>" * url * "</code>" * }
- if$
+{ "" }
+{ urlintro "<code>" * url * "</code>" * }
+if$
}
-
FUNCTION {format.eprint}
{ eprint empty$
- { "" }
- { eprintprefix eprint * eprinturl eprint * make.href }
- if$
+{ "" }
+{ eprintprefix eprint * eprinturl eprint * make.href }
+if$
}
-
FUNCTION {format.doi}
{ doi empty$
- { "" }
- { doiform #0 =
- { doiprefix doi * doiurl doi * make.href }
- { "DOI:{" doi * "}" * }
- if$
- }
- if$
-}
-
+{ "" }
+{ doiform #0 =
+{ doiprefix doi * doiurl doi * make.href }
+{ "DOI:{" doi * "}" * }
+if$
+}
+if$
+}
FUNCTION {format.pubmed}
{ pubmed empty$
- { "" }
- { pubmedprefix pubmed * pubmedurl pubmed * make.href }
- if$
-}
-
-% Output a URL. We can't use the more normal idiom (something like
-% `format.url output'), because the `inbrackets' within
-% format.lastchecked applies to everything between calls to `output',
-% so that `format.url format.lastchecked * output' ends up with both
-% the URL and the lastchecked in brackets.
+{ "" }
+{ pubmedprefix pubmed * pubmedurl pubmed * make.href }
+if$
+}
FUNCTION {output.url}
{ url empty$
- 'skip$
- { new.block
- format.url output
- format.lastchecked output
- }
- if$
-}
-
+'skip$
+{ new.block
+format.url output
+format.lastchecked output
+}
+if$
+}
FUNCTION {output.web.refs}
{
- new.block
- output.url
- addeprints eprint empty$ not and
- { format.eprint output.nonnull }
- 'skip$
- if$
- adddoiresolver doi empty$ not and
- { format.doi output.nonnull }
- 'skip$
- if$
- addpubmedresolver pubmed empty$ not and
- { format.pubmed output.nonnull }
- 'skip$
- if$
-}
-
-% Wrapper for output.bibitem.original.
-% If the URL field is not empty, set makeinlinelink to be true,
-% so that an inline link will be started at the next opportunity
+new.block
+output.url
+addeprints eprint empty$ not and
+{ format.eprint output.nonnull }
+'skip$
+if$
+adddoiresolver doi empty$ not and
+{ format.doi output.nonnull }
+'skip$
+if$
+addpubmedresolver pubmed empty$ not and
+{ format.pubmed output.nonnull }
+'skip$
+if$
+}
FUNCTION {output.bibitem}
{ outside.brackets 'bracket.state :=
- output.bibitem.original
- inlinelinks url empty$ not and
- { #1 'makeinlinelink := }
- { #0 'makeinlinelink := }
- if$
-}
-
-% Wrapper for fin.entry.original
+output.bibitem.original
+inlinelinks url empty$ not and
+{ #1 'makeinlinelink := }
+{ #0 'makeinlinelink := }
+if$
+}
FUNCTION {fin.entry}
{ output.web.refs % urlbst
- makeinlinelink % ooops, it appears we didn't have a title for inlinelink
- { possibly.setup.inlinelink % add some artificial link text here, as a fallback
- "[link]" output.nonnull }
- 'skip$
- if$
- bracket.state close.brackets = % urlbst
- { "]" * }
- 'skip$
- if$
- fin.entry.original
-}
-
-% Webpage entry type.
-% Title and url fields required;
-% author, note, year, month, and lastchecked fields optional
-% See references
-% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
-% http://www.classroom.net/classroom/CitingNetResources.html
-% http://neal.ctstateu.edu/history/cite.html
-% http://www.cas.usf.edu/english/walker/mla.html
-% for citation formats for web pages.
+makeinlinelink % ooops, it appears we didn't have a title for inlinelink
+{ possibly.setup.inlinelink % add some artificial link text here, as a fallback
+"[link]" output.nonnull }
+'skip$
+if$
+bracket.state close.brackets = % urlbst
+{ "]" * }
+'skip$
+if$
+fin.entry.original
+}
FUNCTION {webpage}
{ output.bibitem
- author empty$
- { editor empty$
- 'skip$ % author and editor both optional
- { format.editors output.nonnull }
- if$
- }
- { editor empty$
- { format.authors output.nonnull }
- { "can't use both author and editor fields in " cite$ * warning$ }
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$
- format.title "title" output.check
- inbrackets "online" output
- new.block
- year empty$
- 'skip$
- { format.date "year" output.check }
- if$
- % We don't need to output the URL details ('lastchecked' and 'url'),
- % because fin.entry does that for us, using output.web.refs. The only
- % reason we would want to put them here is if we were to decide that
- % they should go in front of the rather miscellaneous information in 'note'.
- new.block
- note output
- fin.entry
-}
-% ...urlbst to here
-
-
+author empty$
+{ editor empty$
+'skip$ % author and editor both optional
+{ format.editors output.nonnull }
+if$
+}
+{ editor empty$
+{ format.authors output.nonnull }
+{ "can't use both author and editor fields in " cite$ * warning$ }
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$
+format.title "title" output.check
+inbrackets "online" output
+new.block
+year empty$
+'skip$
+{ format.date "year" output.check }
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {article}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- crossref missing$
- { journal emphasize "journal" output.check
- possibly.setup.inlinelink format.vol.num.pages output% urlbst
- format.date "year" output.check
- }
- { format.article.crossref output.nonnull
- format.pages output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+crossref missing$
+{ journal emphasize "journal" output.check
+possibly.setup.inlinelink format.vol.num.pages output% urlbst
+format.date "year" output.check
+}
+{ format.article.crossref output.nonnull
+format.pages output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {book}
{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+author empty$
+{ format.editors "author and editor" output.check }
+{ format.authors output.nonnull
+crossref missing$
+{ "author and editor" editor either.or.check }
+'skip$
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {booklet}
{ output.bibitem
- format.authors output
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- howpublished address new.block.checkb
- howpublished output
- address output
- format.date output
- new.block
- note output
- fin.entry
-}
-
+format.authors output
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+howpublished address new.block.checkb
+howpublished output
+address output
+format.date output
+new.block
+note output
+fin.entry
+}
FUNCTION {inbook}
{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+author empty$
+{ format.editors "author and editor" output.check }
+{ format.authors output.nonnull
+crossref missing$
+{ "author and editor" editor either.or.check }
+'skip$
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {incollection}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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.date "year" output.check
- }
- { format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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.date "year" output.check
+}
+{ format.incoll.inproc.crossref output.nonnull
+format.chapter.pages output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {inproceedings}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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 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
- }
- if$
- }
- { format.incoll.inproc.crossref output.nonnull
- format.pages output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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 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
+}
+if$
+}
+{ format.incoll.inproc.crossref output.nonnull
+format.pages output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {conference} { inproceedings }
-
FUNCTION {manual}
{ output.bibitem
- author empty$
- { organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
- if$
- }
- { format.authors output.nonnull }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- author empty$
- { organization empty$
- { address new.block.checka
- address output
- }
- 'skip$
- if$
- }
- { organization address new.block.checkb
- organization output
- address output
- }
- if$
- format.edition output
- format.date output
- new.block
- note output
- fin.entry
-}
-
+author empty$
+{ organization empty$
+'skip$
+{ organization output.nonnull
+address output
+}
+if$
+}
+{ format.authors output.nonnull }
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+author empty$
+{ organization empty$
+{ address new.block.checka
+address output
+}
+'skip$
+if$
+}
+{ organization address new.block.checkb
+organization output
+address output
+}
+if$
+format.edition output
+format.date output
+new.block
+note output
+fin.entry
+}
FUNCTION {mastersthesis}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- "Master's thesis" format.thesis.type output.nonnull
- school "school" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+"Master's thesis" format.thesis.type output.nonnull
+school "school" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {misc}
{ output.bibitem
- format.authors output
- title howpublished new.block.checkb
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title output
- howpublished new.block.checka
- howpublished output
- format.date output
- new.block
- note output
- fin.entry
- empty.misc.check
-}
-
+format.authors output
+title howpublished new.block.checkb
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title output
+howpublished new.block.checka
+howpublished output
+format.date output
+new.block
+note output
+fin.entry
+empty.misc.check
+}
FUNCTION {phdthesis}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- new.block
- "PhD thesis" format.thesis.type output.nonnull
- school "school" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+new.block
+"PhD thesis" format.thesis.type output.nonnull
+school "school" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {proceedings}
{ output.bibitem
- editor empty$
- { organization output }
- { format.editors output.nonnull }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- format.bvolume output
- format.number.series output
- address empty$
- { editor empty$
- { publisher new.sentence.checka }
- { organization publisher new.sentence.checkb
- organization output
- }
- if$
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- new.sentence
- editor empty$
- 'skip$
- { organization output }
- if$
- publisher output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+editor empty$
+{ organization output }
+{ format.editors output.nonnull }
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+format.bvolume output
+format.number.series output
+address empty$
+{ editor empty$
+{ publisher new.sentence.checka }
+{ organization publisher new.sentence.checkb
+organization output
+}
+if$
+publisher output
+format.date "year" output.check
+}
+{ address output.nonnull
+format.date "year" output.check
+new.sentence
+editor empty$
+'skip$
+{ organization output }
+if$
+publisher output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {techreport}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- format.tr.number output.nonnull
- institution "institution" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+format.tr.number output.nonnull
+institution "institution" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {unpublished}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- note "note" output.check
- format.date output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+note "note" output.check
+format.date output
+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"}
-
+{"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$
+"l" change.case$
}
-
INTEGERS { len }
-
FUNCTION {chop.word}
{ 's :=
- 'len :=
- s #1 len substring$ =
- { s len #1 + global.max$ substring$ }
- 's
- if$
+'len :=
+s #1 len substring$ =
+{ s len #1 + global.max$ substring$ }
+'s
+if$
}
-
INTEGERS { et.al.char.used }
-
FUNCTION {initialize.et.al.char.used}
{ #0 'et.al.char.used :=
}
-
EXECUTE {initialize.et.al.char.used}
-
FUNCTION {format.lab.names}
{ 's :=
- s num.names$ 'numnames :=
- numnames #1 >
- { numnames #4 >
- { #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 :=
- }
- while$
- numnames #4 >
- { "{\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$
- if$
- }
- if$
-}
-
+s num.names$ 'numnames :=
+numnames #1 >
+{ numnames #4 >
+{ #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 :=
+}
+while$
+numnames #4 >
+{ "{\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$
+if$
+}
+if$
+}
FUNCTION {author.key.label}
{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { author format.lab.names }
- if$
-}
-
+{ key empty$
+{ cite$ #1 #3 substring$ }
+{ key #3 text.prefix$ }
+if$
+}
+{ author format.lab.names }
+if$
+}
FUNCTION {author.editor.key.label}
{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { editor format.lab.names }
- if$
- }
- { author format.lab.names }
- if$
-}
-
+{ editor empty$
+{ key empty$
+{ cite$ #1 #3 substring$ }
+{ key #3 text.prefix$ }
+if$
+}
+{ editor format.lab.names }
+if$
+}
+{ author format.lab.names }
+if$
+}
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$ }
- if$
- }
- { author format.lab.names }
- if$
-}
-
+{ key empty$
+{ organization empty$
+{ cite$ #1 #3 substring$ }
+{ "The " #4 organization chop.word #3 text.prefix$ }
+if$
+}
+{ key #3 text.prefix$ }
+if$
+}
+{ author format.lab.names }
+if$
+}
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$ }
- if$
- }
- { editor format.lab.names }
- if$
-}
-
+{ key empty$
+{ organization empty$
+{ cite$ #1 #3 substring$ }
+{ "The " #4 organization chop.word #3 text.prefix$ }
+if$
+}
+{ key #3 text.prefix$ }
+if$
+}
+{ editor format.lab.names }
+if$
+}
FUNCTION {calc.label}
{ type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.key.label
- { type$ "proceedings" =
- 'editor.key.organization.label
- { type$ "manual" =
- 'author.key.organization.label
- 'author.key.label
- if$
- }
- if$
- }
- if$
- duplicate$
- year field.or.null purify$ #-1 #2 substring$
- *
- 'label :=
- year field.or.null purify$ #-1 #4 substring$
- *
- sortify 'sort.label :=
+type$ "inbook" =
+or
+'author.editor.key.label
+{ type$ "proceedings" =
+'editor.key.organization.label
+{ type$ "manual" =
+'author.key.organization.label
+'author.key.label
+if$
+}
+if$
+}
+if$
+duplicate$
+year field.or.null purify$ #-1 #2 substring$
+*
+'label :=
+year field.or.null purify$ #-1 #4 substring$
+*
+sortify 'sort.label :=
}
-
FUNCTION {sort.format.names}
{ 's :=
- #1 'nameptr :=
- ""
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { nameptr #1 >
- { " " * }
- 'skip$
- if$
- s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
- nameptr numnames = t "others" = and
- { "et al" * }
- { t sortify * }
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
+#1 'nameptr :=
+""
+s num.names$ 'numnames :=
+numnames 'namesleft :=
+{ namesleft #0 > }
+{ nameptr #1 >
+{ " " * }
+'skip$
+if$
+s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+nameptr numnames = t "others" = and
+{ "et al" * }
+{ t sortify * }
+if$
+nameptr #1 + 'nameptr :=
+namesleft #1 - 'namesleft :=
+}
+while$
+}
FUNCTION {sort.format.title}
{ 't :=
- "A " #2
- "An " #3
- "The " #4 t chop.word
- chop.word
- chop.word
- sortify
- #1 global.max$ substring$
-}
-
+"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$
-}
-
+{ 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$
-}
-
+{ 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 {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 }
- if$
- }
- { author sort.format.names }
- if$
-}
-
+{ organization empty$
+{ 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 }
+if$
+}
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 }
- if$
- }
- { editor sort.format.names }
- if$
-}
-
+{ organization empty$
+{ 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 }
+if$
+}
FUNCTION {presort}
{ calc.label
- sort.label
- " "
- *
- type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.sort
- { type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
- if$
- }
- if$
- *
- " "
- *
year field.or.null sortify
- *
" "
*
- title field.or.null
- sort.format.title
+ sort.label
*
- #1 entry.max$ substring$
- 'sort.key$ :=
+" "
+*
+type$ "book" =
+type$ "inbook" =
+or
+'author.editor.sort
+{ type$ "proceedings" =
+'editor.organization.sort
+{ type$ "manual" =
+'author.organization.sort
+'author.sort
+if$
+}
+if$
+}
+if$
+*
+" "
+*
+year field.or.null sortify
+*
+" "
+*
+title field.or.null
+sort.format.title
+*
+#1 entry.max$ substring$
+'sort.key$ :=
}
-
ITERATE {presort}
-
SORT
-
STRINGS { longest.label last.sort.label next.extra }
-
INTEGERS { longest.label.width last.extra.num }
-
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
- #0 int.to.chr$ 'last.sort.label :=
- "" 'next.extra :=
- #0 'longest.label.width :=
- #0 'last.extra.num :=
+#0 int.to.chr$ 'last.sort.label :=
+"" 'next.extra :=
+#0 'longest.label.width :=
+#0 'last.extra.num :=
}
-
FUNCTION {forward.pass}
{ last.sort.label sort.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 :=
- sort.label 'last.sort.label :=
- }
- if$
-}
-
+{ last.extra.num #1 + 'last.extra.num :=
+last.extra.num int.to.chr$ 'extra.label :=
+}
+{ "a" chr.to.int$ 'last.extra.num :=
+"" 'extra.label :=
+sort.label 'last.sort.label :=
+}
+if$
+}
FUNCTION {reverse.pass}
{ next.extra "b" =
- { "a" 'extra.label := }
- 'skip$
- if$
- label extra.label * 'label :=
- label width$ longest.label.width >
- { label 'longest.label :=
- label width$ 'longest.label.width :=
- }
- 'skip$
- if$
- extra.label 'next.extra :=
-}
-
+{ "a" 'extra.label := }
+'skip$
+if$
+label extra.label * 'label :=
+label width$ longest.label.width >
+{ label 'longest.label :=
+label width$ 'longest.label.width :=
+}
+'skip$
+if$
+extra.label 'next.extra :=
+}
EXECUTE {initialize.longest.label}
-
ITERATE {forward.pass}
-
REVERSE {reverse.pass}
-
+%%% XXX The macro \etalchar is generated in function format.lab.names.
+%%% I have no idea what format.lab.names does,
+%%% and it doesn't seem to do anything in my test cases.
+%%% However the \etalchar definition messes up the HTML output,
+%%% so I'll simply skip that for now...
FUNCTION {begin.bib}
-{ et.al.char.used
- { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
- 'skip$
- if$
- preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- "<dl>" write$ newline$
-}
-
+{ %et.al.char.used
+preamble$ empty$
+'skip$
+{ preamble$ write$ newline$ }
+if$
+"<dl>" write$ newline$
+}
EXECUTE {begin.bib}
-
EXECUTE {init.urlbst.variables}
EXECUTE {init.state.consts}
-
REVERSE {call.type$}
-
FUNCTION {end.bib}
{ newline$
- "</dl>" write$ newline$
+"</dl>" write$ newline$
}
-
EXECUTE {end.bib}
diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst
index b9e900faacc..5e611b14119 100644
--- a/Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst
+++ b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst
@@ -1,7 +1,7 @@
%% plainhtml.bst
%%
-%% Part of bibhtml, version 2.0, released 2009 August 9
-%% Hg node 4a5600417b09.
+%% Part of bibhtml, version 2.0.1, released 2009 November 2
+%% Hg node 6ca3807543d6.
%% See <http://purl.org/nxg/dist/bibhtml>
%%
%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>
@@ -1323,7 +1323,7 @@ FUNCTION {editor.organization.sort}
if$
}
-FUNCTION {presort}
+FUNCTION {presort.by.author}
{ type$ "book" =
type$ "inbook" =
or
@@ -1351,7 +1351,35 @@ FUNCTION {presort}
'sort.key$ :=
}
-ITERATE {presort}
+FUNCTION {presort.by.year}
+{ year field.or.null sortify
+ " "
+ *
+ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort.by.author}
SORT
diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldate.bst b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldate.bst
index 0e1b81efac7..4d7ebd78e35 100644
--- a/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldate.bst
+++ b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldate.bst
@@ -5,8 +5,8 @@
%%
%% plainhtml.bst
%%
-%% Part of bibhtml, version 2.0, released 2009 August 9
-%% Hg node 4a5600417b09.
+%% Part of bibhtml, version 2.0.1, released 2009 November 2
+%% Hg node 6ca3807543d6.
%% See <http://purl.org/nxg/dist/bibhtml>
%%
%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>
@@ -23,986 +23,986 @@
%%% Added hyperref support.
%%% Original headers follow...
ENTRY
- { address
- author
- booktitle
- chapter
- edition
- editor
- howpublished
- institution
- journal
- key
- month
- note
- number
- organization
- pages
- publisher
- school
- series
- title
- type
- volume
- year
- eprint % urlbst
- doi % urlbst
- pubmed % urlbst
- url % urlbst
- lastchecked % urlbst
- }
- {}
- { label }
+{ address
+author
+booktitle
+chapter
+edition
+editor
+howpublished
+institution
+journal
+key
+month
+note
+number
+organization
+pages
+publisher
+school
+series
+title
+type
+volume
+year
+eprint % urlbst
+doi % urlbst
+pubmed % urlbst
+url % urlbst
+lastchecked % urlbst
+}
+{}
+{ label }
INTEGERS { output.state before.all mid.sentence after.sentence after.block doiform }
STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst...
INTEGERS { inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver }
FUNCTION {init.urlbst.variables}
{
- "Available from: " 'urlintro := % prefix before URL
- "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
- "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
- "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
- "doi:" 'doiprefix := % text prefix printed before DOI ref
- "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
- "PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
- #1 'addeprints := % 0=no eprints; 1=include eprints
- #1 'adddoiresolver := % 0=no DOI resolver; 1=include it
- #1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it
- #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
- #1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing
- #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink
- "" 'openinlinelink := % ditto
- "" 'closeinlinelink := % ditto
+"Available from: " 'urlintro := % prefix before URL
+"http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+"arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+"http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+"doi:" 'doiprefix := % text prefix printed before DOI ref
+"http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
+"PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
+#1 'addeprints := % 0=no eprints; 1=include eprints
+#1 'adddoiresolver := % 0=no DOI resolver; 1=include it
+#1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it
+#1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+#1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing
+#0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink
+"" 'openinlinelink := % ditto
+"" 'closeinlinelink := % ditto
}
INTEGERS {
- bracket.state
- outside.brackets
- open.brackets
- within.brackets
- close.brackets
- close.first.block
+bracket.state
+outside.brackets
+open.brackets
+within.brackets
+close.brackets
+close.first.block
}
FUNCTION {init.state.consts}
{ #0 'outside.brackets := % urlbst
- #1 'open.brackets :=
- #2 'within.brackets :=
- #3 'close.brackets :=
- #0 'before.all :=
- #1 'mid.sentence :=
- #2 'after.sentence :=
- #3 'after.block :=
- #0 'close.first.block :=
+#1 'open.brackets :=
+#2 'within.brackets :=
+#3 'close.brackets :=
+#0 'before.all :=
+#1 'mid.sentence :=
+#2 'after.sentence :=
+#3 'after.block :=
+#0 'close.first.block :=
}
STRINGS { s t }
FUNCTION {output.nonnull.original}
{ 's :=
- output.state mid.sentence =
- { ", " * write$ }
- { output.state after.block =
- { add.period$ write$
- close.first.block
- { "</a></dt>" write$ newline$ "<dd>" write$
- #0 'close.first.block := }
- { newline$ }
- if$
- }
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
- if$
- mid.sentence 'output.state :=
- }
- if$
- s
+output.state mid.sentence =
+{ ", " * write$ }
+{ output.state after.block =
+{ add.period$ write$
+close.first.block
+{ "</a></dt>" write$ newline$ "<dd>" write$
+#0 'close.first.block := }
+{ newline$ }
+if$
+}
+{ output.state before.all =
+'write$
+{ add.period$ " " * write$ }
+if$
+}
+if$
+mid.sentence 'output.state :=
+}
+if$
+s
}
FUNCTION {possibly.setup.inlinelink}
{ makeinlinelink
- { "<a href=" quote$ * url * quote$ * ">" * 'openinlinelink :=
- "</a>" 'closeinlinelink :=
- #0 'makeinlinelink := }
- 'skip$
- if$ % makeinlinelink
+{ "<a href=" quote$ * url * quote$ * ">" * 'openinlinelink :=
+"</a>" 'closeinlinelink :=
+#0 'makeinlinelink := }
+'skip$
+if$ % makeinlinelink
}
FUNCTION {add.inlinelink}
{ openinlinelink empty$
- 'skip$
- { openinlinelink swap$ * closeinlinelink *
- "" 'openinlinelink :=
- }
- if$
+'skip$
+{ openinlinelink swap$ * closeinlinelink *
+"" 'openinlinelink :=
+}
+if$
}
FUNCTION {output.nonnull}
{ % Save the thing we've been asked to output
- 's :=
- bracket.state close.brackets =
- { "]" *
- outside.brackets 'bracket.state :=
- }
- 'skip$
- if$
- bracket.state outside.brackets =
- { % We're outside all brackets -- this is the normal situation.
- s
- add.inlinelink
- output.nonnull.original % invoke the original output.nonnull
- }
- { % Still in brackets. Add open-bracket or (continuation) comma, add the
- bracket.state open.brackets =
- { " [" * }
- { ", " * } % bracket.state will be within.brackets
- if$
- s *
- close.brackets 'bracket.state :=
- }
- if$
+'s :=
+bracket.state close.brackets =
+{ "]" *
+outside.brackets 'bracket.state :=
+}
+'skip$
+if$
+bracket.state outside.brackets =
+{ % We're outside all brackets -- this is the normal situation.
+s
+add.inlinelink
+output.nonnull.original % invoke the original output.nonnull
+}
+{ % Still in brackets. Add open-bracket or (continuation) comma, add the
+bracket.state open.brackets =
+{ " [" * }
+{ ", " * } % bracket.state will be within.brackets
+if$
+s *
+close.brackets 'bracket.state :=
+}
+if$
}
FUNCTION {inbrackets}
{ bracket.state close.brackets =
- { within.brackets 'bracket.state := } % reset the state: not open nor closed
- { open.brackets 'bracket.state := }
- if$
+{ within.brackets 'bracket.state := } % reset the state: not open nor closed
+{ open.brackets 'bracket.state := }
+if$
}
FUNCTION {format.lastchecked}
{ lastchecked empty$
- { "" }
- { inbrackets "cited " lastchecked * }
- if$
+{ "" }
+{ inbrackets "cited " lastchecked * }
+if$
}
FUNCTION {output}
{ duplicate$ empty$
- 'pop$
- 'output.nonnull
- if$
+'pop$
+'output.nonnull
+if$
}
FUNCTION {output.check}
{ 't :=
- duplicate$ empty$
- { pop$ "empty " t * " in " * cite$ * warning$ }
- 'output.nonnull
- if$
+duplicate$ empty$
+{ pop$ "empty " t * " in " * cite$ * warning$ }
+'output.nonnull
+if$
}
FUNCTION {output.bibitem.original}
{ newline$
- "<dt><a name='" write$
- cite$ write$
- "'>[" cite$ * "] " * write$
- #1 'close.first.block :=
- newline$
- ""
- before.all 'output.state :=
+"<dt><a name='" write$
+cite$ write$
+"'>[" cite$ * "] " * write$
+#1 'close.first.block :=
+newline$
+""
+before.all 'output.state :=
}
FUNCTION {fin.entry.original}
{ add.period$ "</dd>" *
- write$
- newline$
+write$
+newline$
}
FUNCTION {new.block}
{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
+'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$
+'skip$
+{ output.state before.all =
+'skip$
+{ after.sentence 'output.state := }
+if$
+}
+if$
}
FUNCTION {not}
{ { #0 }
- { #1 }
- if$
+{ #1 }
+if$
}
FUNCTION {and}
{ 'skip$
- { pop$ #0 }
- if$
+{ pop$ #0 }
+if$
}
FUNCTION {or}
{ { pop$ #1 }
- 'skip$
- if$
+'skip$
+if$
}
FUNCTION {new.block.checka}
{ empty$
- 'skip$
- 'new.block
- if$
+'skip$
+'new.block
+if$
}
FUNCTION {new.block.checkb}
{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
+swap$ empty$
+and
+'skip$
+'new.block
+if$
}
FUNCTION {new.sentence.checka}
{ empty$
- 'skip$
- 'new.sentence
- if$
+'skip$
+'new.sentence
+if$
}
FUNCTION {new.sentence.checkb}
{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.sentence
- if$
+swap$ empty$
+and
+'skip$
+'new.sentence
+if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
- { pop$ "" }
- 'skip$
- if$
+{ pop$ "" }
+'skip$
+if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
- { pop$ "" }
- { "<em>" swap$ * "</em>" * }
- if$
+{ pop$ "" }
+{ "<em>" swap$ * "</em>" * }
+if$
}
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{ 's :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
- nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+#1 'nameptr :=
+s num.names$ 'numnames :=
+numnames 'namesleft :=
+{ namesleft #0 > }
+{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+nameptr #1 >
+{ namesleft #1 >
+{ ", " * t * }
+{ numnames #2 >
+{ "," * }
+'skip$
+if$
+t "others" =
+{ " et~al." * }
+{ " and " * t * }
+if$
+}
+if$
+}
+'t
+if$
+nameptr #1 + 'nameptr :=
+namesleft #1 - 'namesleft :=
+}
+while$
}
FUNCTION {format.authors}
{ author empty$
- { "" }
- { author format.names }
- if$
+{ "" }
+{ author format.names }
+if$
}
FUNCTION {format.editors}
{ editor empty$
- { "" }
- { editor format.names
- editor num.names$ #1 >
- { ", editors" * }
- { ", editor" * }
- if$
- }
- if$
+{ "" }
+{ editor format.names
+editor num.names$ #1 >
+{ ", editors" * }
+{ ", editor" * }
+if$
+}
+if$
}
FUNCTION {format.title}
{ title empty$
- { "" }
- { title "t" change.case$ }
- if$
+{ "" }
+{ 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$
+""
+{ 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.date}
{ year empty$
- { month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
- if$
- }
- { month empty$
- 'year
- { month " " * year * }
- if$
- }
- if$
+{ month empty$
+{ "" }
+{ "there's a month but no year in " cite$ * warning$
+month
+}
+if$
+}
+{ month empty$
+'year
+{ month " " * year * }
+if$
+}
+if$
}
FUNCTION {format.btitle}
{ title emphasize
}
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
- if$
- swap$ * *
+{ "~" }
+{ " " }
+if$
+swap$ * *
}
FUNCTION {either.or.check}
{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
+'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$
+{ "" }
+{ "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$
+{ 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$
+{ "" }
+{ 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
+#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$
+{ "" }
+{ 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$
+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$
+'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$
+{ "" }
+{ editor empty$
+{ "In " booktitle emphasize * }
+{ "In " format.editors * ", " * booktitle emphasize * }
+if$
+}
+if$
}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- key empty$ not and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
+month empty$ year empty$ note empty$
+and and and and and
+key empty$ not and
+{ "all relevant fields are empty in " cite$ * warning$ }
+'skip$
+if$
}
FUNCTION {format.thesis.type}
{ type empty$
- 'skip$
- { pop$
- type "t" change.case$
- }
- if$
+'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$
+{ "Technical Report" }
+'type
+if$
+number empty$
+{ "t" change.case$ }
+{ number tie.or.space.connect }
+if$
}
FUNCTION {format.article.crossref}
{ key empty$
- { journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In <em>" journal * "</em>" * }
- if$
- }
- { "In " key * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
+{ journal empty$
+{ "need key or journal for " cite$ * " to crossref " * crossref *
+warning$
+""
+}
+{ "In <em>" journal * "</em>" * }
+if$
+}
+{ "In " key * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
}
FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
- editor num.names$ duplicate$
- #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$
- }
- if$
- }
- if$
+editor num.names$ duplicate$
+#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$
+}
+if$
+}
+if$
}
FUNCTION {format.book.crossref}
{ volume empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- "In "
- }
- { "Volume" volume tie.or.space.connect
- " of " *
- }
- if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "<em>" * series * "</em>" * }
- if$
- }
- { key * }
- if$
- }
- { format.crossref.editor * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
+{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+"In "
+}
+{ "Volume" volume tie.or.space.connect
+" of " *
+}
+if$
+editor empty$
+editor field.or.null author field.or.null =
+or
+{ key empty$
+{ series empty$
+{ "need editor, key, or series for " cite$ * " to crossref " *
+crossref * warning$
+"" *
+}
+{ "<em>" * series * "</em>" * }
+if$
+}
+{ key * }
+if$
+}
+{ format.crossref.editor * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
}
FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { booktitle empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- ""
- }
- { "In <em>" booktitle * "</em>" * }
- if$
- }
- { "In " key * }
- if$
- }
- { "In " format.crossref.editor * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
+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 * "</em>" * }
+if$
+}
+{ "In " key * }
+if$
+}
+{ "In " format.crossref.editor * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
}
FUNCTION {make.href}
{
- "<a href='" swap$ * "'><code>" * swap$ * "</code></a>" *
+"<a href='" swap$ * "'><code>" * swap$ * "</code></a>" *
}
FUNCTION {format.url}
{ inlinelinks #1 = url empty$ or
- { "" }
- { urlintro "<code>" * url * "</code>" * }
- if$
+{ "" }
+{ urlintro "<code>" * url * "</code>" * }
+if$
}
FUNCTION {format.eprint}
{ eprint empty$
- { "" }
- { eprintprefix eprint * eprinturl eprint * make.href }
- if$
+{ "" }
+{ eprintprefix eprint * eprinturl eprint * make.href }
+if$
}
FUNCTION {format.doi}
{ doi empty$
- { "" }
- { doiform #0 =
- { doiprefix doi * doiurl doi * make.href }
- { "DOI:{" doi * "}" * }
- if$
- }
- if$
+{ "" }
+{ doiform #0 =
+{ doiprefix doi * doiurl doi * make.href }
+{ "DOI:{" doi * "}" * }
+if$
+}
+if$
}
FUNCTION {format.pubmed}
{ pubmed empty$
- { "" }
- { pubmedprefix pubmed * pubmedurl pubmed * make.href }
- if$
+{ "" }
+{ pubmedprefix pubmed * pubmedurl pubmed * make.href }
+if$
}
FUNCTION {output.url}
{ url empty$
- 'skip$
- { new.block
- format.url output
- format.lastchecked output
- }
- if$
+'skip$
+{ new.block
+format.url output
+format.lastchecked output
+}
+if$
}
FUNCTION {output.web.refs}
{
- new.block
- output.url
- addeprints eprint empty$ not and
- { format.eprint output.nonnull }
- 'skip$
- if$
- adddoiresolver doi empty$ not and
- { format.doi output.nonnull }
- 'skip$
- if$
- addpubmedresolver pubmed empty$ not and
- { format.pubmed output.nonnull }
- 'skip$
- if$
+new.block
+output.url
+addeprints eprint empty$ not and
+{ format.eprint output.nonnull }
+'skip$
+if$
+adddoiresolver doi empty$ not and
+{ format.doi output.nonnull }
+'skip$
+if$
+addpubmedresolver pubmed empty$ not and
+{ format.pubmed output.nonnull }
+'skip$
+if$
}
FUNCTION {output.bibitem}
{ outside.brackets 'bracket.state :=
- output.bibitem.original
- inlinelinks url empty$ not and
- { #1 'makeinlinelink := }
- { #0 'makeinlinelink := }
- if$
+output.bibitem.original
+inlinelinks url empty$ not and
+{ #1 'makeinlinelink := }
+{ #0 'makeinlinelink := }
+if$
}
FUNCTION {fin.entry}
{ output.web.refs % urlbst
- makeinlinelink % ooops, it appears we didn't have a title for inlinelink
- { possibly.setup.inlinelink % add some artificial link text here, as a fallback
- "[link]" output.nonnull }
- 'skip$
- if$
- bracket.state close.brackets = % urlbst
- { "]" * }
- 'skip$
- if$
- fin.entry.original
+makeinlinelink % ooops, it appears we didn't have a title for inlinelink
+{ possibly.setup.inlinelink % add some artificial link text here, as a fallback
+"[link]" output.nonnull }
+'skip$
+if$
+bracket.state close.brackets = % urlbst
+{ "]" * }
+'skip$
+if$
+fin.entry.original
}
FUNCTION {webpage}
{ output.bibitem
- author empty$
- { editor empty$
- 'skip$ % author and editor both optional
- { format.editors output.nonnull }
- if$
- }
- { editor empty$
- { format.authors output.nonnull }
- { "can't use both author and editor fields in " cite$ * warning$ }
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$
- format.title "title" output.check
- inbrackets "online" output
- new.block
- year empty$
- 'skip$
- { format.date "year" output.check }
- if$
- new.block
- note output
- fin.entry
+author empty$
+{ editor empty$
+'skip$ % author and editor both optional
+{ format.editors output.nonnull }
+if$
+}
+{ editor empty$
+{ format.authors output.nonnull }
+{ "can't use both author and editor fields in " cite$ * warning$ }
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$
+format.title "title" output.check
+inbrackets "online" output
+new.block
+year empty$
+'skip$
+{ format.date "year" output.check }
+if$
+new.block
+note output
+fin.entry
}
FUNCTION {article}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- crossref missing$
- { journal emphasize "journal" output.check
- possibly.setup.inlinelink format.vol.num.pages output% urlbst
- format.date "year" output.check
- }
- { format.article.crossref output.nonnull
- format.pages output
- }
- if$
- new.block
- note output
- fin.entry
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+crossref missing$
+{ journal emphasize "journal" output.check
+possibly.setup.inlinelink format.vol.num.pages output% urlbst
+format.date "year" output.check
+}
+{ format.article.crossref output.nonnull
+format.pages output
+}
+if$
+new.block
+note output
+fin.entry
}
FUNCTION {book}
{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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
- format.date "year" output.check
- new.block
- note output
- fin.entry
+author empty$
+{ format.editors "author and editor" output.check }
+{ format.authors output.nonnull
+crossref missing$
+{ "author and editor" editor either.or.check }
+'skip$
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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
+format.date "year" output.check
+new.block
+note output
+fin.entry
}
FUNCTION {booklet}
{ output.bibitem
- format.authors output
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- howpublished address new.block.checkb
- howpublished output
- address output
- format.date output
- new.block
- note output
- fin.entry
+format.authors output
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+howpublished address new.block.checkb
+howpublished output
+address output
+format.date output
+new.block
+note output
+fin.entry
}
FUNCTION {inbook}
{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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
- format.date "year" output.check
- new.block
- note output
- fin.entry
+author empty$
+{ format.editors "author and editor" output.check }
+{ format.authors output.nonnull
+crossref missing$
+{ "author and editor" editor either.or.check }
+'skip$
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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
+format.date "year" output.check
+new.block
+note output
+fin.entry
}
FUNCTION {incollection}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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.date "year" output.check
- }
- { format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block
- note output
- fin.entry
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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.date "year" output.check
+}
+{ format.incoll.inproc.crossref output.nonnull
+format.chapter.pages output
+}
+if$
+new.block
+note output
+fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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 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
- }
- if$
- }
- { format.incoll.inproc.crossref output.nonnull
- format.pages output
- }
- if$
- new.block
- note output
- fin.entry
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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 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
+}
+if$
+}
+{ format.incoll.inproc.crossref output.nonnull
+format.pages output
+}
+if$
+new.block
+note output
+fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
- author empty$
- { organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
- if$
- }
- { format.authors output.nonnull }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- author empty$
- { organization empty$
- { address new.block.checka
- address output
- }
- 'skip$
- if$
- }
- { organization address new.block.checkb
- organization output
- address output
- }
- if$
- format.edition output
- format.date output
- new.block
- note output
- fin.entry
+author empty$
+{ organization empty$
+'skip$
+{ organization output.nonnull
+address output
+}
+if$
+}
+{ format.authors output.nonnull }
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+author empty$
+{ organization empty$
+{ address new.block.checka
+address output
+}
+'skip$
+if$
+}
+{ organization address new.block.checkb
+organization output
+address output
+}
+if$
+format.edition output
+format.date output
+new.block
+note output
+fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- "Master's thesis" format.thesis.type output.nonnull
- school "school" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+"Master's thesis" format.thesis.type output.nonnull
+school "school" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
}
FUNCTION {misc}
{ output.bibitem
- format.authors output
- title howpublished new.block.checkb
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title output
- howpublished new.block.checka
- howpublished output
- format.date output
- new.block
- note output
- fin.entry
- empty.misc.check
+format.authors output
+title howpublished new.block.checkb
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title output
+howpublished new.block.checka
+howpublished output
+format.date output
+new.block
+note output
+fin.entry
+empty.misc.check
}
FUNCTION {phdthesis}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- new.block
- "PhD thesis" format.thesis.type output.nonnull
- school "school" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+new.block
+"PhD thesis" format.thesis.type output.nonnull
+school "school" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
- editor empty$
- { organization output }
- { format.editors output.nonnull }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- format.bvolume output
- format.number.series output
- address empty$
- { editor empty$
- { publisher new.sentence.checka }
- { organization publisher new.sentence.checkb
- organization output
- }
- if$
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- new.sentence
- editor empty$
- 'skip$
- { organization output }
- if$
- publisher output
- }
- if$
- new.block
- note output
- fin.entry
+editor empty$
+{ organization output }
+{ format.editors output.nonnull }
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+format.bvolume output
+format.number.series output
+address empty$
+{ editor empty$
+{ publisher new.sentence.checka }
+{ organization publisher new.sentence.checkb
+organization output
+}
+if$
+publisher output
+format.date "year" output.check
+}
+{ address output.nonnull
+format.date "year" output.check
+new.sentence
+editor empty$
+'skip$
+{ organization output }
+if$
+publisher output
+}
+if$
+new.block
+note output
+fin.entry
}
FUNCTION {techreport}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- format.tr.number output.nonnull
- institution "institution" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+format.tr.number output.nonnull
+institution "institution" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- note "note" output.check
- format.date output
- fin.entry
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+note "note" output.check
+format.date output
+fin.entry
}
FUNCTION {default.type} { misc }
MACRO {jan} {"January"}
@@ -1025,7 +1025,7 @@ 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"}
+{"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"}
@@ -1041,162 +1041,189 @@ MACRO {tcs} {"Theoretical Computer Science"}
READ
FUNCTION {sortify}
{ purify$
- "l" change.case$
+"l" change.case$
}
INTEGERS { len }
FUNCTION {chop.word}
{ 's :=
- 'len :=
- s #1 len substring$ =
- { s len #1 + global.max$ substring$ }
- 's
- if$
+'len :=
+s #1 len substring$ =
+{ s len #1 + global.max$ substring$ }
+'s
+if$
}
FUNCTION {sort.format.names}
{ 's :=
- #1 'nameptr :=
- ""
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { nameptr #1 >
- { " " * }
- 'skip$
- if$
- s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
- nameptr numnames = t "others" = and
- { "et al" * }
- { t sortify * }
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+#1 'nameptr :=
+""
+s num.names$ 'numnames :=
+numnames 'namesleft :=
+{ namesleft #0 > }
+{ nameptr #1 >
+{ " " * }
+'skip$
+if$
+s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+nameptr numnames = t "others" = and
+{ "et al" * }
+{ t sortify * }
+if$
+nameptr #1 + 'nameptr :=
+namesleft #1 - 'namesleft :=
+}
+while$
}
FUNCTION {sort.format.title}
{ 't :=
- "A " #2
- "An " #3
- "The " #4 t chop.word
- chop.word
- chop.word
- sortify
- #1 global.max$ substring$
+"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$
+{ 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$
+{ 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 {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 }
- if$
- }
- { author sort.format.names }
- if$
+{ organization empty$
+{ 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 }
+if$
}
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 }
- if$
- }
- { editor sort.format.names }
- if$
-}
-FUNCTION {presort}
+{ organization empty$
+{ 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 }
+if$
+}
+FUNCTION {presort.by.author}
{ type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.sort
- { type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
- if$
- }
- if$
- " "
- *
- year field.or.null sortify
- *
- " "
- *
- title field.or.null
- sort.format.title
- *
- #1 entry.max$ substring$
- 'sort.key$ :=
-}
-ITERATE {presort}
+type$ "inbook" =
+or
+'author.editor.sort
+{ type$ "proceedings" =
+'editor.organization.sort
+{ type$ "manual" =
+'author.organization.sort
+'author.sort
+if$
+}
+if$
+}
+if$
+" "
+*
+year field.or.null sortify
+*
+" "
+*
+title field.or.null
+sort.format.title
+*
+#1 entry.max$ substring$
+'sort.key$ :=
+}
+FUNCTION {presort.by.year}
+{ year field.or.null sortify
+" "
+*
+type$ "book" =
+type$ "inbook" =
+or
+'author.editor.sort
+{ type$ "proceedings" =
+'editor.organization.sort
+{ type$ "manual" =
+'author.organization.sort
+'author.sort
+if$
+}
+if$
+}
+if$
+*
+" "
+*
+title field.or.null
+sort.format.title
+*
+#1 entry.max$ substring$
+'sort.key$ :=
+}
+ITERATE {presort.by.year}
SORT
STRINGS { longest.label }
INTEGERS { number.label longest.label.width }
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
- #1 'number.label :=
- #0 'longest.label.width :=
+#1 'number.label :=
+#0 'longest.label.width :=
}
FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
- number.label #1 + 'number.label :=
- label width$ longest.label.width >
- { label 'longest.label :=
- label width$ 'longest.label.width :=
- }
- 'skip$
- if$
+number.label #1 + 'number.label :=
+label width$ longest.label.width >
+{ label 'longest.label :=
+label width$ 'longest.label.width :=
+}
+'skip$
+if$
}
EXECUTE {initialize.longest.label}
ITERATE {longest.label.pass}
FUNCTION {begin.bib}
{ preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- "<dl>" write$ newline$
+'skip$
+{ preamble$ write$ newline$ }
+if$
+"<dl>" write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.urlbst.variables}
@@ -1204,6 +1231,6 @@ EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
- "</dl>" write$ newline$
+"</dl>" write$ newline$
}
EXECUTE {end.bib}
diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldater.bst b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldater.bst
index d1cc88411e2..5260664575a 100644
--- a/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldater.bst
+++ b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldater.bst
@@ -5,8 +5,8 @@
%%
%% plainhtml.bst
%%
-%% Part of bibhtml, version 2.0, released 2009 August 9
-%% Hg node 4a5600417b09.
+%% Part of bibhtml, version 2.0.1, released 2009 November 2
+%% Hg node 6ca3807543d6.
%% See <http://purl.org/nxg/dist/bibhtml>
%%
%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>
@@ -22,1387 +22,1215 @@
%%% Added PUBMED support.
%%% Added hyperref support.
%%% Original headers follow...
-
-% 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.
-
ENTRY
- { address
- author
- booktitle
- chapter
- edition
- editor
- howpublished
- institution
- journal
- key
- month
- note
- number
- organization
- pages
- publisher
- school
- series
- title
- type
- volume
- year
- eprint % urlbst
- doi % urlbst
- pubmed % urlbst
- url % urlbst
- lastchecked % urlbst
- }
- {}
- { label }
-
+{ address
+author
+booktitle
+chapter
+edition
+editor
+howpublished
+institution
+journal
+key
+month
+note
+number
+organization
+pages
+publisher
+school
+series
+title
+type
+volume
+year
+eprint % urlbst
+doi % urlbst
+pubmed % urlbst
+url % urlbst
+lastchecked % urlbst
+}
+{}
+{ label }
INTEGERS { output.state before.all mid.sentence after.sentence after.block doiform }
-
STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst...
INTEGERS { inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver }
-% Following constants may be adjusted by hand, if desired
FUNCTION {init.urlbst.variables}
{
- "Available from: " 'urlintro := % prefix before URL
- "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
- "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
- "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
- "doi:" 'doiprefix := % text prefix printed before DOI ref
- "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
- "PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
- #1 'addeprints := % 0=no eprints; 1=include eprints
- #1 'adddoiresolver := % 0=no DOI resolver; 1=include it
- #1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it
- #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
- #1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing
- % the following are internal state variables, not config constants
- #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink
- "" 'openinlinelink := % ditto
- "" 'closeinlinelink := % ditto
+"Available from: " 'urlintro := % prefix before URL
+"http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+"arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+"http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+"doi:" 'doiprefix := % text prefix printed before DOI ref
+"http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
+"PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
+#1 'addeprints := % 0=no eprints; 1=include eprints
+#1 'adddoiresolver := % 0=no DOI resolver; 1=include it
+#1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it
+#1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+#1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing
+#0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink
+"" 'openinlinelink := % ditto
+"" 'closeinlinelink := % ditto
}
INTEGERS {
- bracket.state
- outside.brackets
- open.brackets
- within.brackets
- close.brackets
- close.first.block
-}
-% ...urlbst to here
+bracket.state
+outside.brackets
+open.brackets
+within.brackets
+close.brackets
+close.first.block
+}
FUNCTION {init.state.consts}
{ #0 'outside.brackets := % urlbst
- #1 'open.brackets :=
- #2 'within.brackets :=
- #3 'close.brackets :=
-
- #0 'before.all :=
- #1 'mid.sentence :=
- #2 'after.sentence :=
- #3 'after.block :=
- #0 'close.first.block :=
-}
-
+#1 'open.brackets :=
+#2 'within.brackets :=
+#3 'close.brackets :=
+#0 'before.all :=
+#1 'mid.sentence :=
+#2 'after.sentence :=
+#3 'after.block :=
+#0 'close.first.block :=
+}
STRINGS { s t }
-
-% urlbst
FUNCTION {output.nonnull.original}
{ 's :=
- output.state mid.sentence =
- { ", " * write$ }
- { output.state after.block =
- { add.period$ write$
- % close the <dt> after the end of the first block
- close.first.block
- { "</a></dt>" write$ newline$ "<dd>" write$
- #0 'close.first.block := }
- { newline$ }
- if$
- %"\newblock " write$
- }
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
- if$
- mid.sentence 'output.state :=
- }
- if$
- s
-}
-
-% urlbst...
-% The following three functions are for handling inlinelink. They wrap
-% a block of text which is potentially output with write$ by multiple
-% other functions, so we don't know the content a priori.
-% They communicate between each other using the variables makeinlinelink
-% (which is true if a link should be made), and closeinlinelink (which holds
-% the string which should close any current link. They can be called
-% at any time, but start.inlinelink will be a no-op unless something has
-% previously set makeinlinelink true, and the two ...end.inlinelink functions
-% will only do their stuff if start.inlinelink has previously set
-% closeinlinelink to be non-empty.
+output.state mid.sentence =
+{ ", " * write$ }
+{ output.state after.block =
+{ add.period$ write$
+close.first.block
+{ "</a></dt>" write$ newline$ "<dd>" write$
+#0 'close.first.block := }
+{ newline$ }
+if$
+}
+{ output.state before.all =
+'write$
+{ add.period$ " " * write$ }
+if$
+}
+if$
+mid.sentence 'output.state :=
+}
+if$
+s
+}
FUNCTION {possibly.setup.inlinelink}
{ makeinlinelink
- { "<a href=" quote$ * url * quote$ * ">" * 'openinlinelink :=
- "</a>" 'closeinlinelink :=
- #0 'makeinlinelink := }
- 'skip$
- if$ % makeinlinelink
+{ "<a href=" quote$ * url * quote$ * ">" * 'openinlinelink :=
+"</a>" 'closeinlinelink :=
+#0 'makeinlinelink := }
+'skip$
+if$ % makeinlinelink
}
FUNCTION {add.inlinelink}
{ openinlinelink empty$
- 'skip$
- { openinlinelink swap$ * closeinlinelink *
- "" 'openinlinelink :=
- }
- if$
+'skip$
+{ openinlinelink swap$ * closeinlinelink *
+"" 'openinlinelink :=
+}
+if$
}
FUNCTION {output.nonnull}
{ % Save the thing we've been asked to output
- 's :=
- % If the bracket-state is close.brackets, then add a close-bracket to
- % what is currently at the top of the stack, and set bracket.state
- % to outside.brackets
- bracket.state close.brackets =
- { "]" *
- outside.brackets 'bracket.state :=
- }
- 'skip$
- if$
- bracket.state outside.brackets =
- { % We're outside all brackets -- this is the normal situation.
- % Write out what's currently at the top of the stack, using the
- % original output.nonnull function.
- s
- add.inlinelink
- output.nonnull.original % invoke the original output.nonnull
- }
- { % Still in brackets. Add open-bracket or (continuation) comma, add the
- % new text (in s) to the top of the stack, and move to the close-brackets
- % state, ready for next time (unless inbrackets resets it). If we come
- % into this branch, then output.state is carefully undisturbed.
- bracket.state open.brackets =
- { " [" * }
- { ", " * } % bracket.state will be within.brackets
- if$
- s *
- close.brackets 'bracket.state :=
- }
- if$
-}
-
-% Call this function just before adding something which should be presented in
-% brackets. bracket.state is handled specially within output.nonnull.
+'s :=
+bracket.state close.brackets =
+{ "]" *
+outside.brackets 'bracket.state :=
+}
+'skip$
+if$
+bracket.state outside.brackets =
+{ % We're outside all brackets -- this is the normal situation.
+s
+add.inlinelink
+output.nonnull.original % invoke the original output.nonnull
+}
+{ % Still in brackets. Add open-bracket or (continuation) comma, add the
+bracket.state open.brackets =
+{ " [" * }
+{ ", " * } % bracket.state will be within.brackets
+if$
+s *
+close.brackets 'bracket.state :=
+}
+if$
+}
FUNCTION {inbrackets}
{ bracket.state close.brackets =
- { within.brackets 'bracket.state := } % reset the state: not open nor closed
- { open.brackets 'bracket.state := }
- if$
+{ within.brackets 'bracket.state := } % reset the state: not open nor closed
+{ open.brackets 'bracket.state := }
+if$
}
-
FUNCTION {format.lastchecked}
{ lastchecked empty$
- { "" }
- { inbrackets "cited " lastchecked * }
- if$
+{ "" }
+{ inbrackets "cited " lastchecked * }
+if$
}
-% ...urlbst to here
-
FUNCTION {output}
{ duplicate$ empty$
- 'pop$
- 'output.nonnull
- if$
+'pop$
+'output.nonnull
+if$
}
-
FUNCTION {output.check}
{ 't :=
- duplicate$ empty$
- { pop$ "empty " t * " in " * cite$ * warning$ }
- 'output.nonnull
- if$
+duplicate$ empty$
+{ pop$ "empty " t * " in " * cite$ * warning$ }
+'output.nonnull
+if$
}
-
FUNCTION {output.bibitem.original}
{ newline$
- "<dt><a name='" write$
- cite$ write$
- "'>[" cite$ * "] " * write$
- % the <dt> is closed within output.nonnull, as long as close.first.block is true
- #1 'close.first.block :=
- newline$
- ""
- before.all 'output.state :=
-}
-
+"<dt><a name='" write$
+cite$ write$
+"'>[" cite$ * "] " * write$
+#1 'close.first.block :=
+newline$
+""
+before.all 'output.state :=
+}
FUNCTION {fin.entry.original}
{ add.period$ "</dd>" *
- write$
- newline$
+write$
+newline$
}
-
FUNCTION {new.block}
{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
+'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$
-}
-
+'skip$
+{ output.state before.all =
+'skip$
+{ after.sentence 'output.state := }
+if$
+}
+if$
+}
FUNCTION {not}
{ { #0 }
- { #1 }
- if$
+{ #1 }
+if$
}
-
FUNCTION {and}
{ 'skip$
- { pop$ #0 }
- if$
+{ pop$ #0 }
+if$
}
-
FUNCTION {or}
{ { pop$ #1 }
- 'skip$
- if$
+'skip$
+if$
}
-
FUNCTION {new.block.checka}
{ empty$
- 'skip$
- 'new.block
- if$
+'skip$
+'new.block
+if$
}
-
FUNCTION {new.block.checkb}
{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
+swap$ empty$
+and
+'skip$
+'new.block
+if$
}
-
FUNCTION {new.sentence.checka}
{ empty$
- 'skip$
- 'new.sentence
- if$
+'skip$
+'new.sentence
+if$
}
-
FUNCTION {new.sentence.checkb}
{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.sentence
- if$
+swap$ empty$
+and
+'skip$
+'new.sentence
+if$
}
-
FUNCTION {field.or.null}
{ duplicate$ empty$
- { pop$ "" }
- 'skip$
- if$
+{ pop$ "" }
+'skip$
+if$
}
-
FUNCTION {emphasize}
{ duplicate$ empty$
- { pop$ "" }
- { "<em>" swap$ * "</em>" * }
- if$
+{ pop$ "" }
+{ "<em>" swap$ * "</em>" * }
+if$
}
-
INTEGERS { nameptr namesleft numnames }
-
FUNCTION {format.names}
{ 's :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
- nameptr #1 >
- { namesleft #1 >
- { ", " * t * }
- { numnames #2 >
- { "," * }
- 'skip$
- if$
- t "others" =
- { " et~al." * }
- { " and " * t * }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
+#1 'nameptr :=
+s num.names$ 'numnames :=
+numnames 'namesleft :=
+{ namesleft #0 > }
+{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+nameptr #1 >
+{ namesleft #1 >
+{ ", " * t * }
+{ numnames #2 >
+{ "," * }
+'skip$
+if$
+t "others" =
+{ " et~al." * }
+{ " and " * t * }
+if$
+}
+if$
+}
+'t
+if$
+nameptr #1 + 'nameptr :=
+namesleft #1 - 'namesleft :=
+}
+while$
+}
FUNCTION {format.authors}
{ author empty$
- { "" }
- { author format.names }
- if$
+{ "" }
+{ author format.names }
+if$
}
-
FUNCTION {format.editors}
{ editor empty$
- { "" }
- { editor format.names
- editor num.names$ #1 >
- { ", editors" * }
- { ", editor" * }
- if$
- }
- if$
-}
-
+{ "" }
+{ editor format.names
+editor num.names$ #1 >
+{ ", editors" * }
+{ ", editor" * }
+if$
+}
+if$
+}
FUNCTION {format.title}
{ title empty$
- { "" }
- { title "t" change.case$ }
- if$
+{ "" }
+{ 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$
-}
-
+""
+{ 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.date}
{ year empty$
- { month empty$
- { "" }
- { "there's a month but no year in " cite$ * warning$
- month
- }
- if$
- }
- { month empty$
- 'year
- { month " " * year * }
- if$
- }
- if$
-}
-
+{ month empty$
+{ "" }
+{ "there's a month but no year in " cite$ * warning$
+month
+}
+if$
+}
+{ month empty$
+'year
+{ month " " * year * }
+if$
+}
+if$
+}
FUNCTION {format.btitle}
{ title emphasize
}
-
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
- if$
- swap$ * *
+{ "~" }
+{ " " }
+if$
+swap$ * *
}
-
FUNCTION {either.or.check}
{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
+'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$
-}
-
+{ "" }
+{ "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$
-}
-
+{ 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$
-}
-
+{ "" }
+{ 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
-}
-
+#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$
-}
-
+{ "" }
+{ 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$
-}
-
+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$
-}
-
+'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$
-}
-
+{ "" }
+{ editor empty$
+{ "In " booktitle emphasize * }
+{ "In " format.editors * ", " * booktitle emphasize * }
+if$
+}
+if$
+}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- key empty$ not and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
+month empty$ year empty$ note empty$
+and and and and and
+key empty$ not and
+{ "all relevant fields are empty in " cite$ * warning$ }
+'skip$
+if$
+}
FUNCTION {format.thesis.type}
{ type empty$
- 'skip$
- { pop$
- type "t" change.case$
- }
- if$
+'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$
-}
-
+{ "Technical Report" }
+'type
+if$
+number empty$
+{ "t" change.case$ }
+{ number tie.or.space.connect }
+if$
+}
FUNCTION {format.article.crossref}
{ key empty$
- { journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In <em>" journal * "</em>" * }
- if$
- }
- { "In " key * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
-}
-
+{ journal empty$
+{ "need key or journal for " cite$ * " to crossref " * crossref *
+warning$
+""
+}
+{ "In <em>" journal * "</em>" * }
+if$
+}
+{ "In " key * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
+}
FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
- editor num.names$ duplicate$
- #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$
- }
- if$
- }
- if$
-}
-
+editor num.names$ duplicate$
+#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$
+}
+if$
+}
+if$
+}
FUNCTION {format.book.crossref}
{ volume empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- "In "
- }
- { "Volume" volume tie.or.space.connect
- " of " *
- }
- if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "<em>" * series * "</em>" * }
- if$
- }
- { key * }
- if$
- }
- { format.crossref.editor * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
-}
-
+{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+"In "
+}
+{ "Volume" volume tie.or.space.connect
+" of " *
+}
+if$
+editor empty$
+editor field.or.null author field.or.null =
+or
+{ key empty$
+{ series empty$
+{ "need editor, key, or series for " cite$ * " to crossref " *
+crossref * warning$
+"" *
+}
+{ "<em>" * series * "</em>" * }
+if$
+}
+{ key * }
+if$
+}
+{ format.crossref.editor * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
+}
FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { booktitle empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- ""
- }
- { "In <em>" booktitle * "</em>" * }
- if$
- }
- { "In " key * }
- if$
- }
- { "In " format.crossref.editor * }
- if$
- " <span class='cite'>" * crossref * "</span>" *
-}
-
-% urlbst...
-% Functions for making hypertext links.
+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 * "</em>" * }
+if$
+}
+{ "In " key * }
+if$
+}
+{ "In " format.crossref.editor * }
+if$
+" <span class='cite'>" * crossref * "</span>" *
+}
FUNCTION {make.href}
{
- "<a href='" swap$ * "'><code>" * swap$ * "</code></a>" *
+"<a href='" swap$ * "'><code>" * swap$ * "</code></a>" *
}
-
-% If inlinelinks is true, then format.url should be a no-op, since it's
-% (a) redundant, and (b) could end up as a link-within-a-link.
FUNCTION {format.url}
{ inlinelinks #1 = url empty$ or
- { "" }
- { urlintro "<code>" * url * "</code>" * }
- if$
+{ "" }
+{ urlintro "<code>" * url * "</code>" * }
+if$
}
-
FUNCTION {format.eprint}
{ eprint empty$
- { "" }
- { eprintprefix eprint * eprinturl eprint * make.href }
- if$
+{ "" }
+{ eprintprefix eprint * eprinturl eprint * make.href }
+if$
}
-
FUNCTION {format.doi}
{ doi empty$
- { "" }
- { doiform #0 =
- { doiprefix doi * doiurl doi * make.href }
- { "DOI:{" doi * "}" * }
- if$
- }
- if$
-}
-
+{ "" }
+{ doiform #0 =
+{ doiprefix doi * doiurl doi * make.href }
+{ "DOI:{" doi * "}" * }
+if$
+}
+if$
+}
FUNCTION {format.pubmed}
{ pubmed empty$
- { "" }
- { pubmedprefix pubmed * pubmedurl pubmed * make.href }
- if$
-}
-
-% Output a URL. We can't use the more normal idiom (something like
-% `format.url output'), because the `inbrackets' within
-% format.lastchecked applies to everything between calls to `output',
-% so that `format.url format.lastchecked * output' ends up with both
-% the URL and the lastchecked in brackets.
+{ "" }
+{ pubmedprefix pubmed * pubmedurl pubmed * make.href }
+if$
+}
FUNCTION {output.url}
{ url empty$
- 'skip$
- { new.block
- format.url output
- format.lastchecked output
- }
- if$
-}
-
+'skip$
+{ new.block
+format.url output
+format.lastchecked output
+}
+if$
+}
FUNCTION {output.web.refs}
{
- new.block
- output.url
- addeprints eprint empty$ not and
- { format.eprint output.nonnull }
- 'skip$
- if$
- adddoiresolver doi empty$ not and
- { format.doi output.nonnull }
- 'skip$
- if$
- addpubmedresolver pubmed empty$ not and
- { format.pubmed output.nonnull }
- 'skip$
- if$
-}
-
-% Wrapper for output.bibitem.original.
-% If the URL field is not empty, set makeinlinelink to be true,
-% so that an inline link will be started at the next opportunity
+new.block
+output.url
+addeprints eprint empty$ not and
+{ format.eprint output.nonnull }
+'skip$
+if$
+adddoiresolver doi empty$ not and
+{ format.doi output.nonnull }
+'skip$
+if$
+addpubmedresolver pubmed empty$ not and
+{ format.pubmed output.nonnull }
+'skip$
+if$
+}
FUNCTION {output.bibitem}
{ outside.brackets 'bracket.state :=
- output.bibitem.original
- inlinelinks url empty$ not and
- { #1 'makeinlinelink := }
- { #0 'makeinlinelink := }
- if$
-}
-
-% Wrapper for fin.entry.original
+output.bibitem.original
+inlinelinks url empty$ not and
+{ #1 'makeinlinelink := }
+{ #0 'makeinlinelink := }
+if$
+}
FUNCTION {fin.entry}
{ output.web.refs % urlbst
- makeinlinelink % ooops, it appears we didn't have a title for inlinelink
- { possibly.setup.inlinelink % add some artificial link text here, as a fallback
- "[link]" output.nonnull }
- 'skip$
- if$
- bracket.state close.brackets = % urlbst
- { "]" * }
- 'skip$
- if$
- fin.entry.original
-}
-
-% Webpage entry type.
-% Title and url fields required;
-% author, note, year, month, and lastchecked fields optional
-% See references
-% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
-% http://www.classroom.net/classroom/CitingNetResources.html
-% http://neal.ctstateu.edu/history/cite.html
-% http://www.cas.usf.edu/english/walker/mla.html
-% for citation formats for web pages.
+makeinlinelink % ooops, it appears we didn't have a title for inlinelink
+{ possibly.setup.inlinelink % add some artificial link text here, as a fallback
+"[link]" output.nonnull }
+'skip$
+if$
+bracket.state close.brackets = % urlbst
+{ "]" * }
+'skip$
+if$
+fin.entry.original
+}
FUNCTION {webpage}
{ output.bibitem
- author empty$
- { editor empty$
- 'skip$ % author and editor both optional
- { format.editors output.nonnull }
- if$
- }
- { editor empty$
- { format.authors output.nonnull }
- { "can't use both author and editor fields in " cite$ * warning$ }
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$
- format.title "title" output.check
- inbrackets "online" output
- new.block
- year empty$
- 'skip$
- { format.date "year" output.check }
- if$
- % We don't need to output the URL details ('lastchecked' and 'url'),
- % because fin.entry does that for us, using output.web.refs. The only
- % reason we would want to put them here is if we were to decide that
- % they should go in front of the rather miscellaneous information in 'note'.
- new.block
- note output
- fin.entry
-}
-% ...urlbst to here
-
-
+author empty$
+{ editor empty$
+'skip$ % author and editor both optional
+{ format.editors output.nonnull }
+if$
+}
+{ editor empty$
+{ format.authors output.nonnull }
+{ "can't use both author and editor fields in " cite$ * warning$ }
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$
+format.title "title" output.check
+inbrackets "online" output
+new.block
+year empty$
+'skip$
+{ format.date "year" output.check }
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {article}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- crossref missing$
- { journal emphasize "journal" output.check
- possibly.setup.inlinelink format.vol.num.pages output% urlbst
- format.date "year" output.check
- }
- { format.article.crossref output.nonnull
- format.pages output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+crossref missing$
+{ journal emphasize "journal" output.check
+possibly.setup.inlinelink format.vol.num.pages output% urlbst
+format.date "year" output.check
+}
+{ format.article.crossref output.nonnull
+format.pages output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {book}
{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+author empty$
+{ format.editors "author and editor" output.check }
+{ format.authors output.nonnull
+crossref missing$
+{ "author and editor" editor either.or.check }
+'skip$
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {booklet}
{ output.bibitem
- format.authors output
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- howpublished address new.block.checkb
- howpublished output
- address output
- format.date output
- new.block
- note output
- fin.entry
-}
-
+format.authors output
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+howpublished address new.block.checkb
+howpublished output
+address output
+format.date output
+new.block
+note output
+fin.entry
+}
FUNCTION {inbook}
{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
- }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+author empty$
+{ format.editors "author and editor" output.check }
+{ format.authors output.nonnull
+crossref missing$
+{ "author and editor" editor either.or.check }
+'skip$
+if$
+}
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {incollection}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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.date "year" output.check
- }
- { format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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.date "year" output.check
+}
+{ format.incoll.inproc.crossref output.nonnull
+format.chapter.pages output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {inproceedings}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- 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 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
- }
- if$
- }
- { format.incoll.inproc.crossref output.nonnull
- format.pages output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+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 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
+}
+if$
+}
+{ format.incoll.inproc.crossref output.nonnull
+format.pages output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {conference} { inproceedings }
-
FUNCTION {manual}
{ output.bibitem
- author empty$
- { organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
- if$
- }
- { format.authors output.nonnull }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- author empty$
- { organization empty$
- { address new.block.checka
- address output
- }
- 'skip$
- if$
- }
- { organization address new.block.checkb
- organization output
- address output
- }
- if$
- format.edition output
- format.date output
- new.block
- note output
- fin.entry
-}
-
+author empty$
+{ organization empty$
+'skip$
+{ organization output.nonnull
+address output
+}
+if$
+}
+{ format.authors output.nonnull }
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+author empty$
+{ organization empty$
+{ address new.block.checka
+address output
+}
+'skip$
+if$
+}
+{ organization address new.block.checkb
+organization output
+address output
+}
+if$
+format.edition output
+format.date output
+new.block
+note output
+fin.entry
+}
FUNCTION {mastersthesis}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- "Master's thesis" format.thesis.type output.nonnull
- school "school" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+"Master's thesis" format.thesis.type output.nonnull
+school "school" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {misc}
{ output.bibitem
- format.authors output
- title howpublished new.block.checkb
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title output
- howpublished new.block.checka
- howpublished output
- format.date output
- new.block
- note output
- fin.entry
- empty.misc.check
-}
-
+format.authors output
+title howpublished new.block.checkb
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title output
+howpublished new.block.checka
+howpublished output
+format.date output
+new.block
+note output
+fin.entry
+empty.misc.check
+}
FUNCTION {phdthesis}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- new.block
- "PhD thesis" format.thesis.type output.nonnull
- school "school" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+new.block
+"PhD thesis" format.thesis.type output.nonnull
+school "school" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {proceedings}
{ output.bibitem
- editor empty$
- { organization output }
- { format.editors output.nonnull }
- if$
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.btitle "title" output.check
- format.bvolume output
- format.number.series output
- address empty$
- { editor empty$
- { publisher new.sentence.checka }
- { organization publisher new.sentence.checkb
- organization output
- }
- if$
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- new.sentence
- editor empty$
- 'skip$
- { organization output }
- if$
- publisher output
- }
- if$
- new.block
- note output
- fin.entry
-}
-
+editor empty$
+{ organization output }
+{ format.editors output.nonnull }
+if$
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.btitle "title" output.check
+format.bvolume output
+format.number.series output
+address empty$
+{ editor empty$
+{ publisher new.sentence.checka }
+{ organization publisher new.sentence.checkb
+organization output
+}
+if$
+publisher output
+format.date "year" output.check
+}
+{ address output.nonnull
+format.date "year" output.check
+new.sentence
+editor empty$
+'skip$
+{ organization output }
+if$
+publisher output
+}
+if$
+new.block
+note output
+fin.entry
+}
FUNCTION {techreport}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- format.tr.number output.nonnull
- institution "institution" output.check
- address output
- format.date "year" output.check
- new.block
- note output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+format.tr.number output.nonnull
+institution "institution" output.check
+address output
+format.date "year" output.check
+new.block
+note output
+fin.entry
+}
FUNCTION {unpublished}
{ output.bibitem
- format.authors "author" output.check
- new.block
- title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
- format.title "title" output.check
- new.block
- note "note" output.check
- format.date output
- fin.entry
-}
-
+format.authors "author" output.check
+new.block
+title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst
+format.title "title" output.check
+new.block
+note "note" output.check
+format.date output
+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"}
-
+{"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$
+"l" change.case$
}
-
INTEGERS { len }
-
FUNCTION {chop.word}
{ 's :=
- 'len :=
- s #1 len substring$ =
- { s len #1 + global.max$ substring$ }
- 's
- if$
+'len :=
+s #1 len substring$ =
+{ s len #1 + global.max$ substring$ }
+'s
+if$
}
-
FUNCTION {sort.format.names}
{ 's :=
- #1 'nameptr :=
- ""
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { nameptr #1 >
- { " " * }
- 'skip$
- if$
- s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
- nameptr numnames = t "others" = and
- { "et al" * }
- { t sortify * }
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
+#1 'nameptr :=
+""
+s num.names$ 'numnames :=
+numnames 'namesleft :=
+{ namesleft #0 > }
+{ nameptr #1 >
+{ " " * }
+'skip$
+if$
+s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+nameptr numnames = t "others" = and
+{ "et al" * }
+{ t sortify * }
+if$
+nameptr #1 + 'nameptr :=
+namesleft #1 - 'namesleft :=
+}
+while$
+}
FUNCTION {sort.format.title}
{ 't :=
- "A " #2
- "An " #3
- "The " #4 t chop.word
- chop.word
- chop.word
- sortify
- #1 global.max$ substring$
-}
-
+"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$
-}
-
+{ 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$
-}
-
+{ 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 {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 }
- if$
- }
- { author sort.format.names }
- if$
-}
-
+{ organization empty$
+{ 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 }
+if$
+}
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 }
- if$
- }
- { editor sort.format.names }
- if$
-}
-
-FUNCTION {presort}
+{ organization empty$
+{ 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 }
+if$
+}
+FUNCTION {presort.by.author}
{ type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.sort
- { type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
- if$
- }
- if$
- " "
- *
- year field.or.null sortify
- *
- " "
- *
- title field.or.null
- sort.format.title
- *
- #1 entry.max$ substring$
- 'sort.key$ :=
-}
-
-ITERATE {presort}
-
+type$ "inbook" =
+or
+'author.editor.sort
+{ type$ "proceedings" =
+'editor.organization.sort
+{ type$ "manual" =
+'author.organization.sort
+'author.sort
+if$
+}
+if$
+}
+if$
+" "
+*
+year field.or.null sortify
+*
+" "
+*
+title field.or.null
+sort.format.title
+*
+#1 entry.max$ substring$
+'sort.key$ :=
+}
+FUNCTION {presort.by.year}
+{ year field.or.null sortify
+" "
+*
+type$ "book" =
+type$ "inbook" =
+or
+'author.editor.sort
+{ type$ "proceedings" =
+'editor.organization.sort
+{ type$ "manual" =
+'author.organization.sort
+'author.sort
+if$
+}
+if$
+}
+if$
+*
+" "
+*
+title field.or.null
+sort.format.title
+*
+#1 entry.max$ substring$
+'sort.key$ :=
+}
+ITERATE {presort.by.year}
SORT
-
STRINGS { longest.label }
-
INTEGERS { number.label longest.label.width }
-
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
- #1 'number.label :=
- #0 'longest.label.width :=
+#1 'number.label :=
+#0 'longest.label.width :=
}
-
FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
- number.label #1 + 'number.label :=
- label width$ longest.label.width >
- { label 'longest.label :=
- label width$ 'longest.label.width :=
- }
- 'skip$
- if$
-}
-
+number.label #1 + 'number.label :=
+label width$ longest.label.width >
+{ label 'longest.label :=
+label width$ 'longest.label.width :=
+}
+'skip$
+if$
+}
EXECUTE {initialize.longest.label}
-
ITERATE {longest.label.pass}
-
FUNCTION {begin.bib}
{ preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- "<dl>" write$ newline$
+'skip$
+{ preamble$ write$ newline$ }
+if$
+"<dl>" write$ newline$
}
-
EXECUTE {begin.bib}
-
EXECUTE {init.urlbst.variables}
EXECUTE {init.state.consts}
-
REVERSE {call.type$}
-
FUNCTION {end.bib}
{ newline$
- "</dl>" write$ newline$
+"</dl>" write$ newline$
}
-
EXECUTE {end.bib}
diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/unsrthtml.bst b/Master/texmf-dist/bibtex/bst/bibhtml/unsrthtml.bst
index 2f31492aefc..977e21f097b 100644
--- a/Master/texmf-dist/bibtex/bst/bibhtml/unsrthtml.bst
+++ b/Master/texmf-dist/bibtex/bst/bibhtml/unsrthtml.bst
@@ -1,7 +1,7 @@
%% unsrthtml.bst
%%
-%% Part of bibhtml, version 2.0, released 2009 August 9
-%% Hg node 4a5600417b09.
+%% Part of bibhtml, version 2.0.1, released 2009 November 2
+%% Hg node 6ca3807543d6.
%% See <http://purl.org/nxg/dist/bibhtml>
%%
%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>
diff --git a/Master/texmf-dist/doc/bibtex/bibhtml/README b/Master/texmf-dist/doc/bibtex/bibhtml/README
index cdd8f9b5dab..3462b1c0452 100644
--- a/Master/texmf-dist/doc/bibtex/bibhtml/README
+++ b/Master/texmf-dist/doc/bibtex/bibhtml/README
@@ -1,14 +1,15 @@
Bibhtml consists of a set of BibTeX style files, which allow you to
use BibTeX to produce bibliographies in HTML. These are modelled
-closely on the standard BibTeX style files.
+closely on the standard BibTeX style files, paired so that
+plainhtml.bst is derived from plain.bst.
To accompany them, this package includes a pair of XSLT scripts which
illustrate how you might integrate these generated bibliographies into
an XML/HTML workflow.
-The long-term URL for this page is http://purl.org/nxg/dist/bibhtml
+The long-term URL for this package is http://purl.org/nxg/dist/bibhtml
-This distribution contains bibhtml version 2.0, released 2009 August 9.
+This distribution contains bibhtml version 2.0.1, released 2009 November 2.
Norman Gray, http://nxg.me.uk
diff --git a/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml b/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml
index a7edf5fc826..250b5e5a109 100644
--- a/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml
+++ b/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml
@@ -32,7 +32,7 @@
use strict;
-my $version = 'Bibhtml, version 2.0, Norman Gray <norman@astro.gla.ac.uk>, 2009 August 9';
+my $version = 'Bibhtml, version 2.0.1, Norman Gray <norman@astro.gla.ac.uk>, 2009 November 2';
# configuration...
@@ -439,7 +439,7 @@ sub readconfig {
sub printhelp {
print STDOUT <<\_EOD;
-This is bibhtml version 2.0, 2009 August 9.
+This is bibhtml version 2.0.1, 2009 November 2.
Usage:
% bibhtml [options...] filename...
diff --git a/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-extract-aux.xslt b/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-extract-aux.xslt
index b630d338e7a..2862c56dba4 100644
--- a/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-extract-aux.xslt
+++ b/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-extract-aux.xslt
@@ -2,8 +2,8 @@
<!--
! bibhtml-extract-aux.xslt
!
- ! Part of bibhtml, version 2.0, released 2009 August 9
- ! Hg Node 4a5600417b09.
+ ! Part of bibhtml, version 2.0.1, released 2009 November 2
+ ! Hg Node 6ca3807543d6.
! See <http://purl.org/nxg/dist/bibhtml>
!
! This sample script processes an XML file which contains elements like
diff --git a/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-insert-bib.xslt b/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-insert-bib.xslt
index fb1d64b319a..57ff5600725 100644
--- a/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-insert-bib.xslt
+++ b/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml-insert-bib.xslt
@@ -2,8 +2,8 @@
<!--
! bibhtml-extract-aux.xslt
!
- ! Part of bibhtml, version 2.0, released 2009 August 9
- ! Hg node 4a5600417b09.
+ ! Part of bibhtml, version 2.0.1, released 2009 November 2
+ ! Hg node 6ca3807543d6.
! See <http://purl.org/nxg/dist/bibhtml>
!
! This sample script processes an XML file which contains elements like
diff --git a/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml.html b/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml.html
index ae24e497a0c..d68dfd94d81 100644
--- a/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml.html
+++ b/Master/texmf-dist/doc/bibtex/bibhtml/bibhtml.html
@@ -4,7 +4,7 @@
<title>Bibhtml documentation</title>
<meta name="keywords" content="bibhtml, bibtex, HTML" />
<link href="http://nxg.me.uk" rev="author" />
- <link type="text/css" rel="stylesheet" href="http://nxg.me.uk/style/base.css" />
+ <link type="text/css" rel="stylesheet" href="style.css" />
</head>
<body>
@@ -20,10 +20,10 @@ modelled closely on the standard BibTeX style files.</p>
which illustrate how you might integrate these generated
bibliographies into an XML/HTML workflow.</p>
-<p>The long-term URL for this page is <code>http://purl.org/nxg/dist/bibhtml</code></p>
+<p>The long-term URL for this package is <code>http://purl.org/nxg/dist/bibhtml</code></p>
<p>This documentation describes
-bibhtml version 2.0, released 2009 August 9.</p>
+bibhtml version 2.0.1, released 2009 November 2.</p>
</div>
<h3>Contents</h3>
@@ -40,21 +40,22 @@ bibhtml version 2.0, released 2009 August 9.</p>
<p><em>Bibhtml</em> consists of a set of BibTeX style files, which
allow you to use BibTeX to produce bibliographies in HTML. These are
-modelled closely on the standard BibTeX style files.</p>
+modelled closely on the standard BibTeX style files. For sample output,
+see <a href="#refs">the reference section below</a>.</p>
<p>To accompany them, this package includes a pair of XSLT scripts
which illustrate how you might integrate these generated
bibliographies into an XML/HTML workflow.</p>
<p>The output of these style files is usable as-is, but it benefits
-from some post-processing, to remove TeX-isms. There's a <em>sed</em>
+from some post-processing, to remove TeX-isms. There’s a <em>sed</em>
script in the distribution which does exactly that, called
<code>detex.sed</code>. If you want to make a version of that im some
other regexp-supporting language, let me know and I can include it in
the distribution.</p>
<p>As well,
-it includes a Perl script which orchestrates the various steps
+the package includes a Perl script which orchestrates the various steps
required to manage such a bibliography for one or more HTML files.
The references in the text are linked directly to the corresponding
bibliography entry, and if a URL is defined in the entry within the
@@ -78,7 +79,7 @@ XSLT-based workflow. For further details, see the discussion of the
style files <a href="#bst-files">below</a>.</p>
<p>There is also a Perl script, <em>bibhtml</em>, which can orchestrate generating and using
-this <code>.aux</code> file. This script isn't really maintained any
+this <code>.aux</code> file. This script isn’t really maintained any
more, but it is still distributed, and documented <a href="#usage">below</a>.</p>
<p><em>Bibhtml</em> works with a standard BibTeX database -- it is
@@ -93,9 +94,14 @@ archive, this will be of no interest to you.</p>
<h2><a name="bst-files" id="bst-files">BibTeX style files</a></h2>
<p>The package includes several BibTeX style files. As well as the
-ones directly derived from the standard styles, there are also <code>plainhtmldate.bst</code> and
-<code>plainhtmldater.bst</code>, which are derived from the standard
-<code>plain.bst</code> which sort the
+ones directly derived from the standard styles, there are also
+<code>plainhtmldate.bst</code>,
+<code>plainhtmldater.bst</code>,
+<code>alphahtmldate.bst</code> and
+<code>alphahtmldater.bst</code> styles,
+which are derived from the standard
+<code>plain.bst</code> and <code>alpha.bst</code> styles,
+which sort the
output by date and reverse date, rather than by author.</p>
<p>In version 2 of the <em>bibhtml</em> package, the
@@ -191,7 +197,7 @@ reasonably usable without any post-processing. However it is not
ideal, since there are occasionaly TeX-isms such as backslash-escaped
characters and the like, depending on what is in the source
<code>.bib</code> file. Also, without post-processing any DOIs in
-the source file aren't formed into links.</p>
+the source file aren’t formed into links.</p>
<p>The distribution includes a <code>sed</code> file,
<code>detex.sed</code>, which can do appropriate post-processing.
@@ -203,28 +209,31 @@ Thus the normal workflow is:</p>
</pre>
<p>Since it uses <code>sed</code>, this is fairly obviously
unix-specific, but if anyone would like to contribute a script with
-similar functionality (it's just a few moderately tortuous regular
-expressions), I'd be delighted to include it in the distribution.</p>
+similar functionality (it’s just a few moderately tortuous regular
+expressions), I’d be delighted to include it in the distribution.</p>
<h2><a name="install" id="install">Installation</a></h2>
<p>The <code>.bst</code> files have to be installed
-<a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf">&#x2018;somewhere where LaTeX can find them&#x2019;</a>. If you give the command
+<a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf">‘somewhere where LaTeX can find them’</a>. If you give the command
<code>kpsepath bst</code> you can see the list of directories that
-BibTeX searches for <code>.bst</code> files &#x2013; on my system, I'd put
+BibTeX searches for <code>.bst</code> files – on my system, I’d put
them into <code>/usr/local/texlive/texmf-local/bibtex/bst</code>,
which is a directory for system-wide local additions.</p>
<p>If you wish, you may change the distributed BibTeX style files (see
<a href="#bst-files">above</a>) to the extent of changing the
-`eprint' mirror site from the master <code>xxx.arxiv.org</code> to a
-more local mirror. If you don't use the LANL preprint archive, this
+‘eprint’ mirror site from the master <code>xxx.arxiv.org</code> to a
+more local mirror. If you don’t use the LANL preprint archive, this
will be of no interest to you.</p>
<h2><a name="usage" id="usage">The <em>bibhtml</em> script</a></h2>
-<p>As noted above, this script should still work and is distributed on
-that basis, but it's no longer maintained, and won't be further developed.</p>
+<p>As noted above, <strong>this script should still work and is distributed on
+that basis, but it’s no longer maintained, and won’t be further developed.</strong>
+The XSLT-based mechanism described above is probably more robust;
+also, the interface described in this section is not the same as the interface
+of the <a href="#xslt">XSLT scripts</a> section above.</p>
<h3>The BibTeX database</h3>
@@ -241,7 +250,7 @@ with these in future versions. </p>
composed of the BibTeX citation key. Thus, you might cite [grendel89]
with</p>
<pre>&lt;a href="bibliography.html#grendel89"&gt;(Grendel, 1989)&lt;/a&gt;</pre>
-<p>(of course, the link text can be anything you like). That's all there is to
+<p>(of course, the link text can be anything you like). That’s all there is to
it. When you run <em>bibhtml</em>, it generates an
<code>.aux</code> file which makes BibTeX produce references for exactly those
keys which appear in this way. </p>
@@ -258,7 +267,7 @@ and
<code>&lt;?bibhtml end ?&gt;</code>
(which should be on lines by themselves) with the formatted
bibliography. It leaves those instructions in place, naturally, so once
-this file is set up, you shouldn't have to touch it again. Older
+this file is set up, you shouldn’t have to touch it again. Older
versions of bibhtml used the magic comments <code>&lt;-- bibhtml start
--&gt;</code> and <code>&lt;-- bibhtml end --&gt;</code>: these are
still supported, but are deprecated and may disappear in a future version.</p>
@@ -275,12 +284,12 @@ example), which will not therefore have to be rescanned in future.</p>
the command line (see <a href="#options">below</a>) or using the
<code>&lt;?bibhtml bibdata </code><em>bibfile</em><code>?&gt;</code>
and <code>&lt;?bibhtml bibstyle</code><em>stylefile</em><code>?&gt;</code> instructions. The
-value of `bibdata' is cumulative, and appends to any value specified
-on the command line. A value of `bibstyle' specified on the command
+value of ‘bibdata’ is cumulative, and appends to any value specified
+on the command line. A value of ‘bibstyle’ specified on the command
line, in contrast, overrides any value in the file.</p>
<p>As a special case, <em>bibhtml</em> also replaces the line <em>after</em> a
-comment <code>&lt;?bibhtml today ?&gt;</code> with today's date.</p>
+comment <code>&lt;?bibhtml today ?&gt;</code> with today’s date.</p>
<p>Summary of processing instructions:</p>
@@ -307,7 +316,7 @@ of <code>\bibliographystyle{</code><em>stylefile</em><code>}</code>
command in a LaTex file; see also the <code>-s</code> command-line option.</dd>
<dt><code>&lt;?bibhtml today?&gt;</code></dt>
-<dd>Replace the <em>following</em> line by today's date.</dd>
+<dd>Replace the <em>following</em> line by today’s date.</dd>
</dl>
<h3><a name="options" id="options">Supported options</a></h3>
@@ -332,17 +341,17 @@ whatever has been specified as the bibliography file name. </p>
<dd>Set this to +3 if you want <code>~</code> translated to
<code>&amp;nbsp;</code>, and <code>--</code> to
<code>&amp;enspace;</code>. Or set it to -3 (the default) if you
-don't.</dd>
+don’t.</dd>
<dt>-a</dt>
-<dd>If this option is set, <em>bibhtml</em> won't bother scanning any
+<dd>If this option is set, <em>bibhtml</em> won’t bother scanning any
files at all, and will generate references for all the entries in your
database. This is equivalent to <code>\nocite{*}</code> in LaTeX.</dd>
<dt>-b bibdata</dt>
<dd>The name of your BibTeX database file, as it would be specified in a
<code>\bibliography{}</code> command in LaTeX. Unless <em>you</em> happen to
-keep all your references in a file called <code>bib.bib</code>, you'll
+keep all your references in a file called <code>bib.bib</code>, you’ll
probably want to change this. Or you can use the <code>&lt;?bibhtml
bibdata xxx?&gt;</code> <a href="#pis">processing instruction</a>.</dd>
@@ -353,7 +362,7 @@ options, which are inserted in the command line at that point.</dd>
<dt><a name="merge" id="merge">--merge</a></dt>
<dd>In this special case, <em>bibhtml</em> takes two arguments, a
<code>.bbl</code> file and an <code>.html</code> file,
-merges the first into the second, and nothing else. It's
+merges the first into the second, and nothing else. It’s
intended to be used when you have generated a
<code>.bbl</code> file by a separate run of BibTeX, and simply
wish to merge the results into your bibliography file. As
@@ -361,15 +370,15 @@ such, it will most likely be useful as part of a script, or
other post-processing system.</dd>
<dt>-r rootname</dt>
-<dd>Specify this and you'll create <code>rootname.html</code>,
+<dd>Specify this and you’ll create <code>rootname.html</code>,
<code>rootname.aux</code> and so on. Why not just stick with the default
-`bibliography'...? </dd>
+‘bibliography’...? </dd>
<dt><a name="opt-s" id="opt-s">-s bibstyle</a></dt>
<dd>The name of the BibTeX bibliography style you want to use, as it
would be specified for the <code>\bibstyle</code> command in
LaTeX. If you want to have a different layout for your HTML
-bibliographies, please don't change the file plainhtml.bst
+bibliographies, please don’t change the file plainhtml.bst
distributed with bibhtml. Instead, make a <em>copy</em> of
plainhtml.bst under a different name, edit it as much as you
like, and use this option of bibhtml to use the modified
@@ -392,8 +401,8 @@ verbose.</dd>
</dl>
<p>The defaults for the various parameters are unlikely to be helpful,
-so you're likely to want to set one or more of them every time you run
-the program. It is for this reason, and because you're likely to want
+so you’re likely to want to set one or more of them every time you run
+the program. It is for this reason, and because you’re likely to want
the same set of options every time you create the bibliography for a
set of files in a directory, that you can put a collection of options
in a configuration file. This can be specified on the command line
@@ -426,9 +435,10 @@ platforms. If so, please get in touch, with suggestions. </p>
<h2><a name="example" id="example">Example</a></h2>
<p>There are multiple sources of advice for how to cite electronic
-documents. The most formal are an ISO standard <a href="#url:iso690"><span class="cite">url:iso690</span></a>, and the American Psychological
-Association's guidance in Sect. 6.31 of <a href="#apastyle"><span class="cite">apastyle</span></a>. As well, there are older, but still
-useful discussions in <a href="#walker06"><span class="cite">walker06</span></a> and <a href="#emory95"><span class="cite">emory95</span></a>.</p>
+documents. The most formal are an ISO standard <h:a xmlns:h="http://www.w3.org/1999/xhtml" href="#url:iso690"><span class="cite">url:iso690</span></h:a>, and the American Psychological
+Association’s guidance in Sect. 6.31 of <h:a xmlns:h="http://www.w3.org/1999/xhtml" href="#apastyle"><span class="cite">apastyle</span></h:a>. As well, there are older but still
+useful discussions in <h:a xmlns:h="http://www.w3.org/1999/xhtml" href="#walker06"><span class="cite">walker06</span></h:a> and
+<h:a xmlns:h="http://www.w3.org/1999/xhtml" href="#emory95"><span class="cite">emory95</span></h:a>.</p>
<h2><a name="refs" id="refs">References</a></h2>
@@ -474,11 +484,11 @@ and at
<a href="http://purl.org/nxg/dist/bibhtml"><code>http://purl.org/nxg/dist/bibhtml</code></a>.</p>
<p>Download the distribution:
-<a href="bibhtml-2.0.tar.gz">bibhtml-2.0.tar.gz</a> or
-<a href="bibhtml-2.0.zip">bibhtml-2.0.zip</a>.</p>
+<a href="bibhtml-2.0.1.tar.gz">bibhtml-2.0.1.tar.gz</a> or
+<a href="bibhtml-2.0.1.zip">bibhtml-2.0.1.zip</a>.</p>
<p>Do <a href="mailto:norman@astro.gla.ac.uk">let me know</a> if
-you use this stuff. I'd be grateful for any bug reports,
+you use this stuff. I’d be grateful for any bug reports,
and bug fixes, and also for any comments on the clarity or
otherwise of this documentation.</p>
@@ -501,6 +511,9 @@ online copy of the GPL at <code><a href="http://www.gnu.org/copyleft/gpl.html">h
<dl>
+<dt>2.0.1, 2009 November 2</dt>
+<dd>The *date.bst and *dater.bst styles now work again.</dd>
+
<dt>2.0, 2009 August 9</dt>
<dd>First real release of v2.0, after mild use elsewhere.</dd>
@@ -555,7 +568,7 @@ inserts the bibliography in-place.</li>
<div class="signature">
<a href="http://nxg.me.uk">Norman</a><br />
-2009 August 9
+2009 November 2
</div>
</body>
diff --git a/Master/texmf-dist/doc/bibtex/bibhtml/detex.sed b/Master/texmf-dist/doc/bibtex/bibhtml/detex.sed
index 24034434203..795901bdf94 100644
--- a/Master/texmf-dist/doc/bibtex/bibhtml/detex.sed
+++ b/Master/texmf-dist/doc/bibtex/bibhtml/detex.sed
@@ -1,6 +1,6 @@
# Edit TeXisms in the .bbl output, to make it HTML-ready
-# From bibhtml release 2.0, of 2009 August 9.
-# Hg node 4a5600417b09.
+# From bibhtml release 2.0.1, of 2009 November 2.
+# Hg node 6ca3807543d6.
# See http://purl.org/nxg/dist/bibhtml
# Remove %\n line-breaks added by BibTeX
diff --git a/Master/texmf-dist/doc/bibtex/bibhtml/style.css b/Master/texmf-dist/doc/bibtex/bibhtml/style.css
new file mode 100644
index 00000000000..0f464d2b9ed
--- /dev/null
+++ b/Master/texmf-dist/doc/bibtex/bibhtml/style.css
@@ -0,0 +1,166 @@
+body {
+ color: #333;
+ background: white;
+ margin-left: +30%;
+ margin-right: +20%;
+ padding: 0.5em; /* this will make a difference if I decide to
+ have the background a different colour */
+ /* I can't decide on font: Optima's always nice, but Gill looks
+ agreeably intense. Helvetica's a decent fallback. */
+ font-family: "Helvetica Neue", "Gill Sans", gill, Helvetica, sans-serif;
+ /* font-family: Optima, "Gill Sans", gill, Helvetica, sans-serif; */
+ /* font-family: "Gill Sans", gill, Helvetica, sans-serif; */
+ font-size: 11pt;
+ line-height: 150%;
+}
+
+code, pre {
+ font-family: Monaco, fixed;
+ font-size: 9pt;
+}
+
+a { text-decoration: none; }
+a:link { color: #66C; }
+a:visited { color: #669; }
+a[href]:hover { background: #EEE; }
+
+div.abstract {
+ font-style: oblique;
+ text-align: left;
+}
+div.abstract em { font-style: normal; }
+div.abstract code {
+ font-style: normal;
+ font-size: 80%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #822;
+ font-weight: 100; /* few fonts have ultra-light weights */
+ line-height: 100%; /* no need to spread out titles */
+}
+h1 {
+ margin-left: -40%;
+ margin-right: -5%;
+ padding: 0.5em;
+ border: solid #666;
+ text-align: right;
+}
+h2 {
+ margin-left: -40%;
+ margin-right: -5%;
+ padding: 0.2em;
+ border-top: solid thin #666;
+ clear: both;
+}
+h3 {
+ margin-left: -30%;
+ float: left;
+ width: 25%;
+ display: block;
+ text-align: right;
+ vertical-align: bottom;
+ padding-top: 0pt;
+ padding-right: 0.5em;
+ margin-top: 0pt;
+ line-height: 120%;
+}
+
+/*
+h4 {
+ color: #C66;
+}
+*/
+
+pre, table { background: #dde; }
+
+pre {
+ padding: 1em;
+ line-height: 130%;
+}
+
+table {
+ font-size: smaller;
+}
+td {
+ padding: 0.5ex;
+}
+
+Q:before { content: "“"; }
+Q:after { content: "”"; }
+
+img.smallimage {
+ float: right;
+ margin: 24pt;
+ margin-right: -30%;
+}
+
+div.signature {
+ margin-left: -40%;
+ margin-right: -5%;
+ text-align: right;
+ border: solid #666;
+ padding: 0.3em;
+ clear: both;
+}
+
+/* ============================================================
+ * Some other curiosities of my one-time formatting for web pages
+ */
+pre.doc-history {
+ font-size: xx-small;
+ background #eee;
+ line-height: 100%;
+}
+
+div.subtoc, div.subsubtoc { display: none; }
+
+/* ============================================================
+ * Special formatting for ToC
+ */
+
+/*
+ If there's significant amount of text in front of the first subsection,
+ then the following are good to put in the per-document stylesheet:
+ width: 25%;
+ float: right;
+*/
+div#toc {
+ color: #888;
+ padding: 0;
+ font-size: smaller;
+ text-align: right;
+}
+div#toc a:link { color: #888; }
+div#toc > ul {
+ padding: 0pt;
+ margin: 0pt;
+ list-style: none;
+}
+div#toc li {
+ padding: 0pt;
+ display: inline-block;
+}
+div#toc li:before {
+ content: "§ ";
+ margin-left: 1em;
+}
+/* the following elements aren't currently generated by structure.lx */
+div#toc li ul {
+ padding-left: 1em;
+ margin-left: 0;
+ font-style: italic;
+ display: inline;
+}
+div#toc li ul:before {
+ content: "( ";
+}
+div#toc li ul:after {
+ content: " ) ";
+}
+div#toc li li {
+ padding-left: 0pt;
+}
+div#toc li li:after {
+ content: "; ";
+}