diff options
author | Karl Berry <karl@freefriends.org> | 2011-03-09 00:48:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-03-09 00:48:41 +0000 |
commit | e5abb7960d35683e02c220371b77d39148079a77 (patch) | |
tree | ea200eb0788b69c158c0edbd23955317330eed84 /Master | |
parent | fb580c9b1cafa00d5e4040ac1fd6eb17d878a94e (diff) |
urlbst (8mar11)
git-svn-id: svn://tug.org/texlive/trunk@21650 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst | 152 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst | 152 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst | 152 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst | 152 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/urlbst/Makefile.in (renamed from Master/texmf-dist/source/latex/urlbst/Makefile.in) | 75 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/urlbst/README | 352 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/urlbst/VERSION | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | Master/texmf-dist/doc/bibtex/urlbst/urlbst (renamed from Master/texmf-dist/doc/latex/urlbst/urlbst) | 171 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/urlbst/urlbst.bib (renamed from Master/texmf-dist/bibtex/bib/urlbst/urlbst.bib) | 36 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/urlbst/urlbst.html (renamed from Master/texmf-dist/doc/latex/urlbst/urlbst.html) | 85 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/urlbst/urlbst.html.in (renamed from Master/texmf-dist/doc/latex/urlbst/urlbst.html.in) | 81 | ||||
-rwxr-xr-x[-rw-r--r--] | Master/texmf-dist/doc/bibtex/urlbst/urlbst.in (renamed from Master/texmf-dist/doc/latex/urlbst/urlbst.in) | 161 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/urlbst/urlbst.pdf | bin | 0 -> 184859 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex (renamed from Master/texmf-dist/doc/latex/urlbst/urlbst.tex) | 61 | ||||
-rw-r--r-- | Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex.in (renamed from Master/texmf-dist/doc/latex/urlbst/urlbst.tex.in) | 59 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/urlbst/README | 283 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/urlbst/VERSION | 1 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/urlbst/urlbst.pdf | bin | 102644 -> 0 bytes | |||
-rwxr-xr-x | Master/texmf-dist/source/bibtex/urlbst/configure (renamed from Master/texmf-dist/source/latex/urlbst/configure) | 28 | ||||
-rw-r--r-- | Master/texmf-dist/source/bibtex/urlbst/configure.ac (renamed from Master/texmf-dist/source/latex/urlbst/configure.ac) | 12 |
20 files changed, 1233 insertions, 781 deletions
diff --git a/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst b/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst index aefda0e00f9..636613f34d4 100644 --- a/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst +++ b/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst @@ -1,5 +1,5 @@ -%%% Modification of BibTeX style file /usr/local/texlive/2007/texmf-dist/bibtex/bst/base/abbrv.bst -%%% ... by urlbst, version 0.6-1 (marked with "% urlbst") +%%% Modification of BibTeX style file /usr/local/texlive/2009/texmf-dist/bibtex/bst/base/abbrv.bst +%%% ... by urlbst, version 0.6-5 (marked with "% urlbst") %%% See <http://purl.org/nxg/dist/urlbst> %%% Added webpage entry type, and url and lastchecked fields. %%% Added eprint support. @@ -52,11 +52,25 @@ ENTRY INTEGERS { output.state before.all mid.sentence after.sentence after.block } -STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst... -INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver } -% Following constants may be adjusted by hand, if desired +% urlbst... +% urlbst constants and state variables +STRINGS { urlintro + eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl + openinlinelink closeinlinelink } +INTEGERS { hrefform inlinelinks makeinlinelink + addeprints adddoiresolver addpubmedresolver } FUNCTION {init.urlbst.variables} { + % The following constants may be adjusted by hand, if desired + + % The first set allow you to enable or disable certain functionality. + #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 + #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs + #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles + + % String constants, which you _might_ want to tweak. "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 @@ -64,13 +78,10 @@ FUNCTION {init.urlbst.variables} "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 - #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs - #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles - % the following are internal state variables, not config constants - #0 'makeinlinelink := % state variable managed by setup.inlinelink + + % The following are internal state variables, not configuration constants, + % so they shouldn't be fiddled with. + #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink "" 'openinlinelink := % ditto "" 'closeinlinelink := % ditto } @@ -83,10 +94,10 @@ INTEGERS { } % ...urlbst to here FUNCTION {init.state.consts} -{ #0 'outside.brackets := % urlbst +{ #0 'outside.brackets := % urlbst... #1 'open.brackets := #2 'within.brackets := - #3 'close.brackets := + #3 'close.brackets := % ...urlbst to here #0 'before.all := #1 'mid.sentence := @@ -129,24 +140,36 @@ FUNCTION {output.nonnull.original} % 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. -FUNCTION {setup.inlinelink} -{ makeinlinelink - { hrefform #1 = % hypertex - { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink := - "\special {html:</a>}" 'closeinlinelink := - } - { hrefform #2 = % hyperref - { "\href{" url * "}{" * 'openinlinelink := - "}" 'closeinlinelink := - } - 'skip$ - if$ % hrefform #2 = - } - if$ % hrefform #1 = +% (thanks to 'ijvm' for suggested code here) +FUNCTION {uand} +{ 'skip$ { pop$ #0 } if$ } % 'and' (which isn't defined at this point in the file) +FUNCTION {possibly.setup.inlinelink} +{ makeinlinelink hrefform #0 > uand + { doi empty$ adddoiresolver uand + { pubmed empty$ addpubmedresolver uand + { eprint empty$ addeprints uand + { url empty$ + { "" } + { url } + if$ } + { eprinturl eprint * } + if$ } + { pubmedurl pubmed * } + if$ } + { doiurl doi * } + if$ + % an appropriately-formatted URL is now on the stack + hrefform #1 = % hypertex + { "\special {html:<a href=" quote$ * swap$ * quote$ * "> }{" * 'openinlinelink := + "\special {html:</a>}" 'closeinlinelink := } + { "\href {" swap$ * "} {" * 'openinlinelink := % hrefform=#2 -- hyperref + % the space between "} {" matters: a URL of just the right length can cause "\% newline em" + "}" 'closeinlinelink := } + if$ #0 'makeinlinelink := - } + } 'skip$ - if$ % makeinlinelink + if$ % makeinlinelink } FUNCTION {add.inlinelink} { openinlinelink empty$ @@ -222,7 +245,7 @@ FUNCTION {output.check} if$ } -FUNCTION {output.bibitem.original} +FUNCTION {output.bibitem.original} % urlbst (renamed from output.bibitem, so it can be wrapped below) { newline$ "\bibitem{" write$ cite$ write$ @@ -232,7 +255,7 @@ FUNCTION {output.bibitem.original} before.all 'output.state := } -FUNCTION {fin.entry.original} +FUNCTION {fin.entry.original} % urlbst (renamed from fin.entry, so it can be wrapped below) { add.period$ write$ newline$ @@ -760,18 +783,23 @@ FUNCTION {output.url} 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$ + inlinelinks + 'skip$ % links were inline -- don't repeat them + { + 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$ + } if$ } @@ -781,7 +809,7 @@ FUNCTION {output.web.refs} FUNCTION {output.bibitem} { outside.brackets 'bracket.state := output.bibitem.original - inlinelinks url empty$ not and + inlinelinks url empty$ not doi empty$ not or pubmed empty$ not or eprint empty$ not or and { #1 'makeinlinelink := } { #0 'makeinlinelink := } if$ @@ -791,7 +819,7 @@ FUNCTION {output.bibitem} FUNCTION {fin.entry} { output.web.refs % urlbst makeinlinelink % ooops, it appears we didn't have a title for inlinelink - { setup.inlinelink % add some artificial link text here, as a fallback + { possibly.setup.inlinelink % add some artificial link text here, as a fallback "[link]" output.nonnull } 'skip$ if$ @@ -826,7 +854,7 @@ FUNCTION {webpage} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ + title empty$ 'skip$ 'possibly.setup.inlinelink if$ format.title "title" output.check inbrackets "online" output new.block @@ -849,12 +877,12 @@ FUNCTION {article} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ { journal emphasize "journal" output.check - format.vol.num.pages output + possibly.setup.inlinelink format.vol.num.pages output% urlbst format.date "year" output.check } { format.article.crossref output.nonnull @@ -878,7 +906,7 @@ FUNCTION {book} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check crossref missing$ { format.bvolume output @@ -903,7 +931,7 @@ FUNCTION {booklet} { output.bibitem format.authors output new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check howpublished address new.block.checkb howpublished output @@ -926,7 +954,7 @@ FUNCTION {inbook} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check crossref missing$ { format.bvolume output @@ -953,7 +981,7 @@ FUNCTION {incollection} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ @@ -980,7 +1008,7 @@ FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ @@ -1026,7 +1054,7 @@ FUNCTION {manual} { format.authors output.nonnull } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check author empty$ { organization empty$ @@ -1052,7 +1080,7 @@ FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull @@ -1068,7 +1096,7 @@ FUNCTION {misc} { output.bibitem format.authors output title howpublished new.block.checkb - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title output howpublished new.block.checka howpublished output @@ -1083,7 +1111,7 @@ FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check new.block "PhD thesis" format.thesis.type output.nonnull @@ -1102,7 +1130,7 @@ FUNCTION {proceedings} { format.editors output.nonnull } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check format.bvolume output format.number.series output @@ -1135,7 +1163,7 @@ FUNCTION {techreport} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block format.tr.number output.nonnull @@ -1151,7 +1179,7 @@ FUNCTION {unpublished} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block note "note" output.check @@ -1408,7 +1436,7 @@ FUNCTION {begin.bib} EXECUTE {begin.bib} -EXECUTE {init.urlbst.variables} +EXECUTE {init.urlbst.variables} % urlbst EXECUTE {init.state.consts} ITERATE {call.type$} diff --git a/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst b/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst index 19ed512e504..687aeeccede 100644 --- a/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst +++ b/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst @@ -1,5 +1,5 @@ -%%% Modification of BibTeX style file /usr/local/texlive/2007/texmf-dist/bibtex/bst/base/alpha.bst -%%% ... by urlbst, version 0.6-1 (marked with "% urlbst") +%%% Modification of BibTeX style file /usr/local/texlive/2009/texmf-dist/bibtex/bst/base/alpha.bst +%%% ... by urlbst, version 0.6-5 (marked with "% urlbst") %%% See <http://purl.org/nxg/dist/urlbst> %%% Added webpage entry type, and url and lastchecked fields. %%% Added eprint support. @@ -52,11 +52,25 @@ ENTRY INTEGERS { output.state before.all mid.sentence after.sentence after.block } -STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst... -INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver } -% Following constants may be adjusted by hand, if desired +% urlbst... +% urlbst constants and state variables +STRINGS { urlintro + eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl + openinlinelink closeinlinelink } +INTEGERS { hrefform inlinelinks makeinlinelink + addeprints adddoiresolver addpubmedresolver } FUNCTION {init.urlbst.variables} { + % The following constants may be adjusted by hand, if desired + + % The first set allow you to enable or disable certain functionality. + #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 + #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs + #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles + + % String constants, which you _might_ want to tweak. "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 @@ -64,13 +78,10 @@ FUNCTION {init.urlbst.variables} "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 - #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs - #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles - % the following are internal state variables, not config constants - #0 'makeinlinelink := % state variable managed by setup.inlinelink + + % The following are internal state variables, not configuration constants, + % so they shouldn't be fiddled with. + #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink "" 'openinlinelink := % ditto "" 'closeinlinelink := % ditto } @@ -83,10 +94,10 @@ INTEGERS { } % ...urlbst to here FUNCTION {init.state.consts} -{ #0 'outside.brackets := % urlbst +{ #0 'outside.brackets := % urlbst... #1 'open.brackets := #2 'within.brackets := - #3 'close.brackets := + #3 'close.brackets := % ...urlbst to here #0 'before.all := #1 'mid.sentence := @@ -129,24 +140,36 @@ FUNCTION {output.nonnull.original} % 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. -FUNCTION {setup.inlinelink} -{ makeinlinelink - { hrefform #1 = % hypertex - { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink := - "\special {html:</a>}" 'closeinlinelink := - } - { hrefform #2 = % hyperref - { "\href{" url * "}{" * 'openinlinelink := - "}" 'closeinlinelink := - } - 'skip$ - if$ % hrefform #2 = - } - if$ % hrefform #1 = +% (thanks to 'ijvm' for suggested code here) +FUNCTION {uand} +{ 'skip$ { pop$ #0 } if$ } % 'and' (which isn't defined at this point in the file) +FUNCTION {possibly.setup.inlinelink} +{ makeinlinelink hrefform #0 > uand + { doi empty$ adddoiresolver uand + { pubmed empty$ addpubmedresolver uand + { eprint empty$ addeprints uand + { url empty$ + { "" } + { url } + if$ } + { eprinturl eprint * } + if$ } + { pubmedurl pubmed * } + if$ } + { doiurl doi * } + if$ + % an appropriately-formatted URL is now on the stack + hrefform #1 = % hypertex + { "\special {html:<a href=" quote$ * swap$ * quote$ * "> }{" * 'openinlinelink := + "\special {html:</a>}" 'closeinlinelink := } + { "\href {" swap$ * "} {" * 'openinlinelink := % hrefform=#2 -- hyperref + % the space between "} {" matters: a URL of just the right length can cause "\% newline em" + "}" 'closeinlinelink := } + if$ #0 'makeinlinelink := - } + } 'skip$ - if$ % makeinlinelink + if$ % makeinlinelink } FUNCTION {add.inlinelink} { openinlinelink empty$ @@ -222,7 +245,7 @@ FUNCTION {output.check} if$ } -FUNCTION {output.bibitem.original} +FUNCTION {output.bibitem.original} % urlbst (renamed from output.bibitem, so it can be wrapped below) { newline$ "\bibitem[" write$ label write$ @@ -234,7 +257,7 @@ FUNCTION {output.bibitem.original} before.all 'output.state := } -FUNCTION {fin.entry.original} +FUNCTION {fin.entry.original} % urlbst (renamed from fin.entry, so it can be wrapped below) { add.period$ write$ newline$ @@ -762,18 +785,23 @@ FUNCTION {output.url} 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$ + inlinelinks + 'skip$ % links were inline -- don't repeat them + { + 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$ + } if$ } @@ -783,7 +811,7 @@ FUNCTION {output.web.refs} FUNCTION {output.bibitem} { outside.brackets 'bracket.state := output.bibitem.original - inlinelinks url empty$ not and + inlinelinks url empty$ not doi empty$ not or pubmed empty$ not or eprint empty$ not or and { #1 'makeinlinelink := } { #0 'makeinlinelink := } if$ @@ -793,7 +821,7 @@ FUNCTION {output.bibitem} FUNCTION {fin.entry} { output.web.refs % urlbst makeinlinelink % ooops, it appears we didn't have a title for inlinelink - { setup.inlinelink % add some artificial link text here, as a fallback + { possibly.setup.inlinelink % add some artificial link text here, as a fallback "[link]" output.nonnull } 'skip$ if$ @@ -828,7 +856,7 @@ FUNCTION {webpage} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ + title empty$ 'skip$ 'possibly.setup.inlinelink if$ format.title "title" output.check inbrackets "online" output new.block @@ -851,12 +879,12 @@ FUNCTION {article} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ { journal emphasize "journal" output.check - format.vol.num.pages output + possibly.setup.inlinelink format.vol.num.pages output% urlbst format.date "year" output.check } { format.article.crossref output.nonnull @@ -880,7 +908,7 @@ FUNCTION {book} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check crossref missing$ { format.bvolume output @@ -905,7 +933,7 @@ FUNCTION {booklet} { output.bibitem format.authors output new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check howpublished address new.block.checkb howpublished output @@ -928,7 +956,7 @@ FUNCTION {inbook} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check crossref missing$ { format.bvolume output @@ -955,7 +983,7 @@ FUNCTION {incollection} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ @@ -982,7 +1010,7 @@ FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ @@ -1028,7 +1056,7 @@ FUNCTION {manual} { format.authors output.nonnull } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check author empty$ { organization empty$ @@ -1054,7 +1082,7 @@ FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull @@ -1070,7 +1098,7 @@ FUNCTION {misc} { output.bibitem format.authors output title howpublished new.block.checkb - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title output howpublished new.block.checka howpublished output @@ -1085,7 +1113,7 @@ FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check new.block "PhD thesis" format.thesis.type output.nonnull @@ -1104,7 +1132,7 @@ FUNCTION {proceedings} { format.editors output.nonnull } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check format.bvolume output format.number.series output @@ -1137,7 +1165,7 @@ FUNCTION {techreport} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block format.tr.number output.nonnull @@ -1153,7 +1181,7 @@ FUNCTION {unpublished} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block note "note" output.check @@ -1568,7 +1596,7 @@ FUNCTION {begin.bib} EXECUTE {begin.bib} -EXECUTE {init.urlbst.variables} +EXECUTE {init.urlbst.variables} % urlbst EXECUTE {init.state.consts} ITERATE {call.type$} diff --git a/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst b/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst index 5c0788e1398..79f9623857d 100644 --- a/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst +++ b/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst @@ -1,5 +1,5 @@ -%%% Modification of BibTeX style file /usr/local/texlive/2007/texmf-dist/bibtex/bst/base/plain.bst -%%% ... by urlbst, version 0.6-1 (marked with "% urlbst") +%%% Modification of BibTeX style file /usr/local/texlive/2009/texmf-dist/bibtex/bst/base/plain.bst +%%% ... by urlbst, version 0.6-5 (marked with "% urlbst") %%% See <http://purl.org/nxg/dist/urlbst> %%% Added webpage entry type, and url and lastchecked fields. %%% Added eprint support. @@ -52,11 +52,25 @@ ENTRY INTEGERS { output.state before.all mid.sentence after.sentence after.block } -STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst... -INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver } -% Following constants may be adjusted by hand, if desired +% urlbst... +% urlbst constants and state variables +STRINGS { urlintro + eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl + openinlinelink closeinlinelink } +INTEGERS { hrefform inlinelinks makeinlinelink + addeprints adddoiresolver addpubmedresolver } FUNCTION {init.urlbst.variables} { + % The following constants may be adjusted by hand, if desired + + % The first set allow you to enable or disable certain functionality. + #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 + #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs + #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles + + % String constants, which you _might_ want to tweak. "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 @@ -64,13 +78,10 @@ FUNCTION {init.urlbst.variables} "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 - #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs - #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles - % the following are internal state variables, not config constants - #0 'makeinlinelink := % state variable managed by setup.inlinelink + + % The following are internal state variables, not configuration constants, + % so they shouldn't be fiddled with. + #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink "" 'openinlinelink := % ditto "" 'closeinlinelink := % ditto } @@ -83,10 +94,10 @@ INTEGERS { } % ...urlbst to here FUNCTION {init.state.consts} -{ #0 'outside.brackets := % urlbst +{ #0 'outside.brackets := % urlbst... #1 'open.brackets := #2 'within.brackets := - #3 'close.brackets := + #3 'close.brackets := % ...urlbst to here #0 'before.all := #1 'mid.sentence := @@ -129,24 +140,36 @@ FUNCTION {output.nonnull.original} % 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. -FUNCTION {setup.inlinelink} -{ makeinlinelink - { hrefform #1 = % hypertex - { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink := - "\special {html:</a>}" 'closeinlinelink := - } - { hrefform #2 = % hyperref - { "\href{" url * "}{" * 'openinlinelink := - "}" 'closeinlinelink := - } - 'skip$ - if$ % hrefform #2 = - } - if$ % hrefform #1 = +% (thanks to 'ijvm' for suggested code here) +FUNCTION {uand} +{ 'skip$ { pop$ #0 } if$ } % 'and' (which isn't defined at this point in the file) +FUNCTION {possibly.setup.inlinelink} +{ makeinlinelink hrefform #0 > uand + { doi empty$ adddoiresolver uand + { pubmed empty$ addpubmedresolver uand + { eprint empty$ addeprints uand + { url empty$ + { "" } + { url } + if$ } + { eprinturl eprint * } + if$ } + { pubmedurl pubmed * } + if$ } + { doiurl doi * } + if$ + % an appropriately-formatted URL is now on the stack + hrefform #1 = % hypertex + { "\special {html:<a href=" quote$ * swap$ * quote$ * "> }{" * 'openinlinelink := + "\special {html:</a>}" 'closeinlinelink := } + { "\href {" swap$ * "} {" * 'openinlinelink := % hrefform=#2 -- hyperref + % the space between "} {" matters: a URL of just the right length can cause "\% newline em" + "}" 'closeinlinelink := } + if$ #0 'makeinlinelink := - } + } 'skip$ - if$ % makeinlinelink + if$ % makeinlinelink } FUNCTION {add.inlinelink} { openinlinelink empty$ @@ -222,7 +245,7 @@ FUNCTION {output.check} if$ } -FUNCTION {output.bibitem.original} +FUNCTION {output.bibitem.original} % urlbst (renamed from output.bibitem, so it can be wrapped below) { newline$ "\bibitem{" write$ cite$ write$ @@ -232,7 +255,7 @@ FUNCTION {output.bibitem.original} before.all 'output.state := } -FUNCTION {fin.entry.original} +FUNCTION {fin.entry.original} % urlbst (renamed from fin.entry, so it can be wrapped below) { add.period$ write$ newline$ @@ -760,18 +783,23 @@ FUNCTION {output.url} 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$ + inlinelinks + 'skip$ % links were inline -- don't repeat them + { + 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$ + } if$ } @@ -781,7 +809,7 @@ FUNCTION {output.web.refs} FUNCTION {output.bibitem} { outside.brackets 'bracket.state := output.bibitem.original - inlinelinks url empty$ not and + inlinelinks url empty$ not doi empty$ not or pubmed empty$ not or eprint empty$ not or and { #1 'makeinlinelink := } { #0 'makeinlinelink := } if$ @@ -791,7 +819,7 @@ FUNCTION {output.bibitem} FUNCTION {fin.entry} { output.web.refs % urlbst makeinlinelink % ooops, it appears we didn't have a title for inlinelink - { setup.inlinelink % add some artificial link text here, as a fallback + { possibly.setup.inlinelink % add some artificial link text here, as a fallback "[link]" output.nonnull } 'skip$ if$ @@ -826,7 +854,7 @@ FUNCTION {webpage} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ + title empty$ 'skip$ 'possibly.setup.inlinelink if$ format.title "title" output.check inbrackets "online" output new.block @@ -849,12 +877,12 @@ FUNCTION {article} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ { journal emphasize "journal" output.check - format.vol.num.pages output + possibly.setup.inlinelink format.vol.num.pages output% urlbst format.date "year" output.check } { format.article.crossref output.nonnull @@ -878,7 +906,7 @@ FUNCTION {book} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check crossref missing$ { format.bvolume output @@ -903,7 +931,7 @@ FUNCTION {booklet} { output.bibitem format.authors output new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check howpublished address new.block.checkb howpublished output @@ -926,7 +954,7 @@ FUNCTION {inbook} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check crossref missing$ { format.bvolume output @@ -953,7 +981,7 @@ FUNCTION {incollection} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ @@ -980,7 +1008,7 @@ FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ @@ -1026,7 +1054,7 @@ FUNCTION {manual} { format.authors output.nonnull } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check author empty$ { organization empty$ @@ -1052,7 +1080,7 @@ FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull @@ -1068,7 +1096,7 @@ FUNCTION {misc} { output.bibitem format.authors output title howpublished new.block.checkb - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title output howpublished new.block.checka howpublished output @@ -1083,7 +1111,7 @@ FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check new.block "PhD thesis" format.thesis.type output.nonnull @@ -1102,7 +1130,7 @@ FUNCTION {proceedings} { format.editors output.nonnull } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check format.bvolume output format.number.series output @@ -1135,7 +1163,7 @@ FUNCTION {techreport} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block format.tr.number output.nonnull @@ -1151,7 +1179,7 @@ FUNCTION {unpublished} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block note "note" output.check @@ -1408,7 +1436,7 @@ FUNCTION {begin.bib} EXECUTE {begin.bib} -EXECUTE {init.urlbst.variables} +EXECUTE {init.urlbst.variables} % urlbst EXECUTE {init.state.consts} ITERATE {call.type$} diff --git a/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst b/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst index 602c0f105c7..0ccd294c018 100644 --- a/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst +++ b/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst @@ -1,5 +1,5 @@ -%%% Modification of BibTeX style file /usr/local/texlive/2007/texmf-dist/bibtex/bst/base/unsrt.bst -%%% ... by urlbst, version 0.6-1 (marked with "% urlbst") +%%% Modification of BibTeX style file /usr/local/texlive/2009/texmf-dist/bibtex/bst/base/unsrt.bst +%%% ... by urlbst, version 0.6-5 (marked with "% urlbst") %%% See <http://purl.org/nxg/dist/urlbst> %%% Added webpage entry type, and url and lastchecked fields. %%% Added eprint support. @@ -52,11 +52,25 @@ ENTRY INTEGERS { output.state before.all mid.sentence after.sentence after.block } -STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst... -INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver } -% Following constants may be adjusted by hand, if desired +% urlbst... +% urlbst constants and state variables +STRINGS { urlintro + eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl + openinlinelink closeinlinelink } +INTEGERS { hrefform inlinelinks makeinlinelink + addeprints adddoiresolver addpubmedresolver } FUNCTION {init.urlbst.variables} { + % The following constants may be adjusted by hand, if desired + + % The first set allow you to enable or disable certain functionality. + #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 + #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs + #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles + + % String constants, which you _might_ want to tweak. "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 @@ -64,13 +78,10 @@ FUNCTION {init.urlbst.variables} "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 - #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs - #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles - % the following are internal state variables, not config constants - #0 'makeinlinelink := % state variable managed by setup.inlinelink + + % The following are internal state variables, not configuration constants, + % so they shouldn't be fiddled with. + #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink "" 'openinlinelink := % ditto "" 'closeinlinelink := % ditto } @@ -83,10 +94,10 @@ INTEGERS { } % ...urlbst to here FUNCTION {init.state.consts} -{ #0 'outside.brackets := % urlbst +{ #0 'outside.brackets := % urlbst... #1 'open.brackets := #2 'within.brackets := - #3 'close.brackets := + #3 'close.brackets := % ...urlbst to here #0 'before.all := #1 'mid.sentence := @@ -129,24 +140,36 @@ FUNCTION {output.nonnull.original} % 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. -FUNCTION {setup.inlinelink} -{ makeinlinelink - { hrefform #1 = % hypertex - { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink := - "\special {html:</a>}" 'closeinlinelink := - } - { hrefform #2 = % hyperref - { "\href{" url * "}{" * 'openinlinelink := - "}" 'closeinlinelink := - } - 'skip$ - if$ % hrefform #2 = - } - if$ % hrefform #1 = +% (thanks to 'ijvm' for suggested code here) +FUNCTION {uand} +{ 'skip$ { pop$ #0 } if$ } % 'and' (which isn't defined at this point in the file) +FUNCTION {possibly.setup.inlinelink} +{ makeinlinelink hrefform #0 > uand + { doi empty$ adddoiresolver uand + { pubmed empty$ addpubmedresolver uand + { eprint empty$ addeprints uand + { url empty$ + { "" } + { url } + if$ } + { eprinturl eprint * } + if$ } + { pubmedurl pubmed * } + if$ } + { doiurl doi * } + if$ + % an appropriately-formatted URL is now on the stack + hrefform #1 = % hypertex + { "\special {html:<a href=" quote$ * swap$ * quote$ * "> }{" * 'openinlinelink := + "\special {html:</a>}" 'closeinlinelink := } + { "\href {" swap$ * "} {" * 'openinlinelink := % hrefform=#2 -- hyperref + % the space between "} {" matters: a URL of just the right length can cause "\% newline em" + "}" 'closeinlinelink := } + if$ #0 'makeinlinelink := - } + } 'skip$ - if$ % makeinlinelink + if$ % makeinlinelink } FUNCTION {add.inlinelink} { openinlinelink empty$ @@ -222,7 +245,7 @@ FUNCTION {output.check} if$ } -FUNCTION {output.bibitem.original} +FUNCTION {output.bibitem.original} % urlbst (renamed from output.bibitem, so it can be wrapped below) { newline$ "\bibitem{" write$ cite$ write$ @@ -232,7 +255,7 @@ FUNCTION {output.bibitem.original} before.all 'output.state := } -FUNCTION {fin.entry.original} +FUNCTION {fin.entry.original} % urlbst (renamed from fin.entry, so it can be wrapped below) { add.period$ write$ newline$ @@ -759,18 +782,23 @@ FUNCTION {output.url} 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$ + inlinelinks + 'skip$ % links were inline -- don't repeat them + { + 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$ + } if$ } @@ -780,7 +808,7 @@ FUNCTION {output.web.refs} FUNCTION {output.bibitem} { outside.brackets 'bracket.state := output.bibitem.original - inlinelinks url empty$ not and + inlinelinks url empty$ not doi empty$ not or pubmed empty$ not or eprint empty$ not or and { #1 'makeinlinelink := } { #0 'makeinlinelink := } if$ @@ -790,7 +818,7 @@ FUNCTION {output.bibitem} FUNCTION {fin.entry} { output.web.refs % urlbst makeinlinelink % ooops, it appears we didn't have a title for inlinelink - { setup.inlinelink % add some artificial link text here, as a fallback + { possibly.setup.inlinelink % add some artificial link text here, as a fallback "[link]" output.nonnull } 'skip$ if$ @@ -825,7 +853,7 @@ FUNCTION {webpage} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ + title empty$ 'skip$ 'possibly.setup.inlinelink if$ format.title "title" output.check inbrackets "online" output new.block @@ -848,12 +876,12 @@ FUNCTION {article} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ { journal emphasize "journal" output.check - format.vol.num.pages output + possibly.setup.inlinelink format.vol.num.pages output% urlbst format.date "year" output.check } { format.article.crossref output.nonnull @@ -877,7 +905,7 @@ FUNCTION {book} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check crossref missing$ { format.bvolume output @@ -902,7 +930,7 @@ FUNCTION {booklet} { output.bibitem format.authors output new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check howpublished address new.block.checkb howpublished output @@ -925,7 +953,7 @@ FUNCTION {inbook} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check crossref missing$ { format.bvolume output @@ -952,7 +980,7 @@ FUNCTION {incollection} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ @@ -979,7 +1007,7 @@ FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block crossref missing$ @@ -1025,7 +1053,7 @@ FUNCTION {manual} { format.authors output.nonnull } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check author empty$ { organization empty$ @@ -1051,7 +1079,7 @@ FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull @@ -1067,7 +1095,7 @@ FUNCTION {misc} { output.bibitem format.authors output title howpublished new.block.checkb - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title output howpublished new.block.checka howpublished output @@ -1082,7 +1110,7 @@ FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check new.block "PhD thesis" format.thesis.type output.nonnull @@ -1101,7 +1129,7 @@ FUNCTION {proceedings} { format.editors output.nonnull } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.btitle "title" output.check format.bvolume output format.number.series output @@ -1134,7 +1162,7 @@ FUNCTION {techreport} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block format.tr.number output.nonnull @@ -1150,7 +1178,7 @@ FUNCTION {unpublished} { output.bibitem format.authors "author" output.check new.block - title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst format.title "title" output.check new.block note "note" output.check @@ -1262,7 +1290,7 @@ FUNCTION {begin.bib} EXECUTE {begin.bib} -EXECUTE {init.urlbst.variables} +EXECUTE {init.urlbst.variables} % urlbst EXECUTE {init.state.consts} ITERATE {call.type$} diff --git a/Master/texmf-dist/source/latex/urlbst/Makefile.in b/Master/texmf-dist/doc/bibtex/urlbst/Makefile.in index 7add0fe04a2..4eba106fa06 100644 --- a/Master/texmf-dist/source/latex/urlbst/Makefile.in +++ b/Master/texmf-dist/doc/bibtex/urlbst/Makefile.in @@ -4,8 +4,7 @@ BSTSTYLES=plainurl.bst unsrturl.bst alphaurl.bst abbrvurl.bst TESTSTYLES=mlaurl.bst MAINTAINER_FILES= Makefile configure -GENERATED=urlbst urlbst.tex urlbst.pdf urlbst.html \ - README VERSION $(BSTSTYLES) +GENERATED=urlbst urlbst.tex urlbst.pdf urlbst.html README VERSION $(BSTSTYLES) # distribute generated files # ...plus the configure files # ...plus the configured files @@ -18,6 +17,10 @@ exec_prefix=@exec_prefix@ bindir=@bindir@ DIST=urlbst-@PACKAGE_VERSION@ +# On OS X, the following avoids extended attributes being included +TAR=COPYFILE_DISABLE=1 tar +#TAR=tar + ### Implicit rules # Don't include --inlinelinks when generating %url.bst here, as we @@ -36,7 +39,7 @@ DIST=urlbst-@PACKAGE_VERSION@ dvips -o $@ $< %.bbl: %.tex plainurl.bst pdflatex $< - if grep -q 'Citation.*undefined' ${<:.tex=.log}; then \ + if ! test -f $@ || grep -q 'Citation.*undefined' ${<:.tex=.log}; then \ bibtex ${<:.tex=}; \ pdflatex $<; \ rm ${<:.tex=.pdf}; \ @@ -48,22 +51,46 @@ DIST=urlbst-@PACKAGE_VERSION@ %.gz: % gzip --best -f $< - +.PRECIOUS: .bbl ### Targets start here all: urlbst -dist: $(DIST).tar.gz +dist: $(DIST).tar.gz $(DIST).zip + +$(DIST).tar: $(DIST)/urlbst.in + $(TAR) cf $@ $(DIST) -$(DIST).tar: $(DISTRIBS) - sed '1s,.*,#! /usr/bin/env perl,' urlbst >tmp && mv tmp urlbst \ - && chmod +x urlbst - rm -Rf $(DIST) $(DIST).tar - mkdir $(DIST) +$(DIST).zip: $(DIST)/urlbst.in + zip -r $@ $(DIST) + +$(DIST)/urlbst.in: $(DISTRIBS) + if test -d $(DIST); then rm -Rf $(DIST); fi && mkdir $(DIST) cp $(DISTRIBS) $(DIST) - tar cf $@ $(DIST) - rm -Rf $(DIST) + +# The following appears not to work. +# Perhaps it has to be installed, rather than run from the .app bundle +# (but it doesn't give you any choice about where you install it, +# and I'm not going to put it in a system location) +#PLATYPUS=/Data/LocalApplications/Platypus-4.0/Platypus.app/Contents/Resources/platypus +PLATYPUS=/usr/local/bin/platypus +urlbst.app: urlbst + rm -Rf urlbst.app + $(PLATYPUS) -a urlbst -c "$$PWD/urlbst" -o 'Progress Bar' \ + -p /usr/bin/perl -V @PACKAGE_VERSION@ -u Norman\ Gray -I uk.me.nxg.urlbst \ + -D -R -N CALLED_FROM_PLATYPUS=1 $$PWD/urlbst.app +urlbst-app.zip: urlbst.app + zip -r urlbst-app.zip urlbst.app + +#$(DIST).tar: $(DISTRIBS) +# sed '1s,.*,#! /usr/bin/env perl,' urlbst >tmp && mv tmp urlbst \ +# && chmod +x urlbst +# rm -Rf $(DIST) $(DIST).tar +# mkdir $(DIST) +# cp $(DISTRIBS) $(DIST) +# tar cf $@ $(DIST) +# rm -Rf $(DIST) urlbst: urlbst.in config.status ./config.status urlbst @@ -89,8 +116,18 @@ VERSION: echo $(DIST) >VERSION # The README is just a plain-text version of urlbst.html -README: urlbst.html - lynx -dump -nolist urlbst.html >README +README: urlbst.html prepare-roff.sed + xsltproc html2roff.xslt urlbst.html \ + | sed -f prepare-roff.sed \ + | nroff -Tutf8 -ms \ + | sed '/XXXEND/,$$d' >README + +# Write a roff file -- there comes a point where a string of -e '' +# commands is more confusing than is safe +# (plus trying to get '$a\' into that is mind-bending). +prepare-roff.sed: + rm -f $@ + { echo '$$a\'; echo '\'; echo 'XXXEND'; echo '/^ *$$/d'; echo 's/^ *//'; echo 's/^\.$$/\&./'; echo 's/^\. /\&. /'; } >$@ # Very simple install target -- hardly worth bothering, really.... install: urlbst @@ -129,21 +166,23 @@ test-all: rm test-all.mainaux # Tarball for unpacking in the webpage distribution directory -webpage-tarball.tar: urlbst.pdf urlbst.html $(DIST).tar.gz +webpage-tarball.tar: urlbst.pdf urlbst.html $(DIST).tar.gz $(DIST).zip mkdir webpage-tarball - cp urlbst.pdf $(DIST).tar.gz webpage-tarball + cp urlbst.pdf $(DIST).tar.gz $(DIST).zip webpage-tarball cp urlbst.html webpage-tarball/index.html - cd webpage-tarball; tar cf ../webpage-tarball.tar * + cd webpage-tarball; $(TAR) cf ../webpage-tarball.tar * rm -Rf webpage-tarball tidy: rm -f webpage-tarball.tar rm -f *~ test-* rm -f *.aux *.bbl *.log *.blg *.dvi *.pdf + rm -Rf urlbst.app clean: tidy rm -f *.bst - rm -Rf config.status autom4te.cache + rm -Rf config.status autom4te.cache prepare-roff.sed + rm -Rf $(DIST).tar $(DIST).tar.gz $(DIST).zip $(DIST) rm -f $(GENERATED) maintainer-clean: clean diff --git a/Master/texmf-dist/doc/bibtex/urlbst/README b/Master/texmf-dist/doc/bibtex/urlbst/README new file mode 100644 index 00000000000..a34caec73fe --- /dev/null +++ b/Master/texmf-dist/doc/bibtex/urlbst/README @@ -0,0 +1,352 @@ + + + + + + + + + + UUrrllbbsstt + + + + _A_B_S_T_R_A_C_T + + A script to add a wweebbppaaggee BibTeX entry type, + and add support for general uurrll and llaassttcchheecckkeedd + fields, to (most) BibTeX ..bbsstt files. Optionally + adds basic support for eepprriinntt , ddooii and ppuubbmmeedd + fields, and hypertex/hyperref support. + + The Persistent URL for this page is + hhttttpp::////ppuurrll..oorrgg//nnxxgg//ddiisstt//uurrllbbsstt &. + + Version 0.6‐5, 2011 March 8. + + + Contents + +* Usage + +* For example... + +* Download and installation + +* Further Information + +* Version history + + The standard BibTeX styles have no explicit support for +the web, in that they include no ‘webpage’ type, and have no +support for adding URLs to references. There are rumours +that such support might appear in BibTeX 1.0, but there is +no estimate of when that is likely to arrive. + + The Perl script uurrllbbsstt can be used to add this support +to an arbitrary ..bbsstt file which has a reasonably ‘conven‐ +tional’ structure. The result is meant to be robust rather +than pretty. + + It has a different goal from Patrick Daly’s ‘custom‐ +bib’ package ‐‐ that is intended to create a BibTeX style +.bst file from scratch, and supports ‘url’ and ‘eprint’ +fields. This package, on the other hand, is intended for +the case where you already have a style file that works (or +at least, which you cannot or will not change), and edits it +to add the new webpage entry type, plus the url, lastchecked +and eprint fields. Fuller details are in the manual. + +11.. UUssaaggee + + uurrllbbsstt [[‐‐‐‐eepprriinntt]] [[‐‐‐‐ddooii]] [[‐‐‐‐ppuubbmmeedd]] [[‐‐‐‐iinnlliinneelliinnkkss]] + [[‐‐‐‐nnoohhyyppeerrlliinnkkss]] [[‐‐‐‐hhyyppeerrtteexx]] [[‐‐‐‐hhyyppeerrrreeff]] [[iinnppuutt‐‐ffiillee + [[oouuttppuutt‐‐ffiillee]]]] + + if either the input‐file or the output‐file is omitted, +they default to stdin and stdout respectively. If the input +file already has a URL entry type, then the script objects. + + The added fields are: + +* uurrll and llaassttcchheecckkeedd , to associate a URL with a refer‐ + ence, along with the date at which the URL was last + checked to exist; + +* ddooii , for a reference’s DOI; + +* eepprriinntt , for an arXiv eprint reference; and + +* ppuubbmmeedd for a reference’s PubMed identifier (PMID). + + If either of the ‐‐‐‐hhyyppeerrtteexx or ‐‐‐‐hhyyppeerrrreeff options is +present, then the generated ..bbsstt file includes support for +hyperlinks in the generated eprint entries in the bibliogra‐ +phy, with the format being either HyperTeX (see arXiv, +again), supported by xdvi, dvips and others, or using the +support available from the hyperref package. These options +have no effect unless one of the ‐‐‐‐eepprriinntt or ‐‐‐‐ddooii options +is given: when URLs are included in the bibliography, they +are written out using the rrll{{......}} command, and hyperref +automatically processes that in the correct way to include a +hyperlink. + + The ‐‐‐‐iinnlliinneelliinnkkss option tells urlbst not to write out +the URL as text within the bibliography entry. Instead, +urlbst will produce a more conventional‐looking and compact +bibliography entry, but the entry’s title will now be a +hyperlink to that URL. This hyperlink may be useful to any‐ +one who reads your document online (this option can only be +used with ‐‐‐‐hhyyppeerrrreeff or ‐‐‐‐hhyyppeerrtteexx ). Any DOI or eprint +text which would be produced as a result of the appropriate +option will still appear in this mode. + + The distribution includes preconverted versions of the +four standard BibTeX .bst style files. + + Only the style files which result from conversion of +the standard styles are checked in the regression tests. +Other style files which are known to work include acm.bst, +amsalpha.bst, amsplain.bst, apalike.bst, gerabbrv.bst, ger‐ +alpha.bst, gerapali.bst, gerplain.bst, gerunsrt.bst, +ieeetr.bst, siam.bst, mla.bst + + Style files which are known to fail: + +* Currently (v0.5), there exists a style aacchhiiccaaggoo..bbsstt + which seems to fox uurrllbbsstt ; it turns out that there’s a + simpler but almost equivalent style cchhiiccaaggoo..bbsstt which + works. + +* Some APA‐like styles, including at least aappaaggeerr..bbsstt , + seem to be sufficiently different from the most common + styles, that they confuse uurrllbbsstt completely. + +* The _k_o_m_a_‐_s_c_r_i_p_t styles and the _r_e_f_e_r styles are not + designed to produce conventional ..bbbbll files, and uurrllbbsstt + does not aim to produce anything useful from these. + + This might be a good time for me to revisit the rather +convoluted logic within the script, to make it a little more +robust in the face of variants like these, but don’t hold +your breath... + + The natbib and revtex style files already have URL +fields. If you have a BibTeX style file which you think +ought to work, but with which the script fails, send it to +me, and I’ll try to work out what I’ve missed (no promises, +though). + + Note that the command to invoke the script changed from +‘urlbst.pl’ to plain ‘urlbst’ between versions 0.3 and 0.4. + +22.. FFoorr eexxaammppllee...... + + To add URL support to the standard ssiiaamm..bbsstt file, you +can give the command + + %% uurrllbbsstt //ppaatthh//ttoo//oorriiggiinnaall//ssiiaamm..bbsstt ssiiaammuurrll..bbsstt + + Your TeX installation will likely have some way of +helping you find where the original ..bbsstt files are. On +teTeX‐based systems, for example, the command kkppsseewwhhiicchh +ssiiaamm..bbsstt returns the full path of the ssiiaamm..bbsstt file which +BibTeX would find. + + The distributed files aabbbbrrvvuurrll..bbsstt , aallpphhaauurrll..bbsstt , +ppllaaiinnuurrll..bbsstt and uunnssrrttuurrll..bbsstt are versions of the standard +style files which have been pre‐converted. + + There is more general discussion of including URLs in +bibliographies in the UK TeX FAQ. + +33.. DDoowwnnllooaadd aanndd iinnssttaallllaattiioonn + + Download the file as a tarball or zip file and unpack +it. Or you can clone the source repository at bit‐ +bucket.org. + + To install, you should simply copy the distributed +uurrllbbsstt script to someplace on the path (such as +//uussrr//llooccaall//bbiinn , or ~~//llooccaall//bbiinn , depending on your privi‐ +leges and tastes). + + If you (might) want to use the pre‐converted standard +..bbsstt files, then you’ll need to copy these to somewhere in +the BibTeX search path. Type kpsepath bst on Unix to find +out the list of places BibTeX searches, and pick either one +of the user‐local locations, or a system‐wide one. If +you’re installing in a system‐wide location, you’ll need +admin privileges, obviously, and you will probably need to +use tteexxhhaasshh , mmkktteexxllssrr or its equivalent, to update LaTeX’s +filename cache. For further hints here, see the TeX FAQ +entries on installing a package and where LaTeX puts files. + + That should be all you have to do. + + The urlbst script is distributed with a path which +should just work, as long as the Perl binary is in your +path, but if you have problems here, then you might want to +change the first line to something like + + ##!! //uussrr//llooccaall//bbiinn//ppeerrll + + if that’s where your Perl binary is. + + You can also use the conventional ..//ccoonnffiigguurree;; mmaakkee;; +mmaakkee iinnssttaallll to configure and install the package (as root, +or using ssuuddoo if you’re installing it in a system location), +though you still have to install the ..bbsstt files by hand. +This is rather heavyweight for the trivial amount of config‐ +uration required, so it’s almost always simpler just to do +things by hand. + + If you need to change some of the uurrllbbsstt defaults, how‐ +ever, or if your fingers type ..//ccoonnffiigguurree spontaneously, +then you can be reassured that the configure script supports +the standard ‐‐‐‐pprreeffiixx option, plus the following options +setting defaults: + + ‐‐‐‐wwiitthh‐‐eepprriinnttss==uurrll , ‐‐‐‐wwiitthhoouutt‐‐eepprriinnttss This makes the + ‐‐‐‐eepprriinnttss option to urlbst available by default, and + allows you to optionally specify a prefix for creating + URLs from eprint numbers. The default for this URL is + hhttttpp::////aarrxxiivv..oorrgg//aabbss// ‐‐ this is appropriate for arXiv, + obviously, but there are now a variety of other pre‐ + print archives appearing, for which this might be inap‐ + propriate. If you have comments on this default, or + alternatives, please let me know. This option is + enabled by default; if you have some reason for dis‐ + abling the ‐‐‐‐eepprriinnttss option for urlbst, the give the + configure option ‐‐‐‐wwiitthhoouutt‐‐eepprriinnttss + + ‐‐‐‐wwiitthh‐‐ddooii==uurrll , ‐‐‐‐wwiitthhoouutt‐‐ddooii This makes available the + ‐‐‐‐ddooii option to urlbst and, as with the ‐‐‐‐wwiitthh‐‐eepprriinnttss + option, allows you to customise the DOI resolver URL. + The ‐‐‐‐ddooii option to urlbst is on by default. + + ‐‐‐‐wwiitthh‐‐hhrreeff==00//11//22 This allows you to specify the type + of hyperlinks which are inserted in the bibliography. + Values 0, 1 and 2, indicating no hyperlinks, hypertex‐ + style links, and hyperref‐style links, respectively. + The default is ‐‐‐‐wwiitthh‐‐hhrreeff==00 &. The hhyyppeerrrreeff ‐style + option is intended to complement the increasingly stan‐ + dard hhyyppeerrrreeff package. + + The first two options simply change defaults, and if +you never use the new eepprriinnttss or ddooii fields, then the +defaults don’t matter to you. + + Since the modified style generates URLs wrapped in the +rrll{{}} macro, it is useful to use the resulting bibliography +style alongside the uurrll package. Since this tends to work +with hhyyppeerrrreeff anyway, where possible, you don’t get any +extra goodness by changing the ‐‐‐‐wwiitthh‐‐hhrreeff default at con‐ +figuration time. + +33..11.. DDooccuummeennttaattiioonn + + Basic documentation is in the file uurrllbbsstt..tteexx &. This +is distributed as a PDF file, but if you want to regenerate +it, use + + %% llaatteexx uurrllbbsstt %% bbiibbtteexx uurrllbbsstt %% llaatteexx uurrllbbsstt %% llaatteexx + uurrllbbsstt + +44.. FFuurrtthheerr IInnffoorrmmaattiioonn aanndd aacckknnoowwlleeddggeemmeennttss + + uurrllbbsstt is archived on CTAN at bbiibblliioo//bbiibbtteexx//ccoonn‐‐ +ttrriibb//uurrllbbsstt// , and discussed in the TeX FAQ. + + The source code for the package is maintained at bit‐ +bucket.org, which also includes an issue tracker, where you +can report bugs (or just mail me). + + The home page of urlbst might possibly have more recent +versions than the one you’re looking at now. + + Thanks are due to many people for suggestions and +requests, and to ’ijvm’ for code contributions. + + Copyright 2002‐11, Norman Gray. Released under the +terms of the GNU General Public Licence. + +55.. VVeerrssiioonn hhiissttoorryy + + 00..66‐‐55,, 22001111 MMaarrcchh 88 Adjust support for inline links + (should now work for arXiv, DOI and Pubmed) + + 00..66‐‐44,, 22000099 AApprriill 2288 Work around BibTeX linebreaking + bug (thanks to Andras Salamon for the bug report). + + 00..66‐‐33,, 22000099 AApprriill 1199 Fix inline link generation (thanks + to Eric Chamberland for the bug report). + + 00..66‐‐22,, 22000088 NNoovveemmbbeerr 1177 We now turn on inlinelinks when + we spot format.vol.num.pages, which means we include + links for those styles which don’t include a title in + the citation (common for articles in physical science + styles, such as aip.sty). + + 00..66‐‐11,, 22000088 JJuunnee 1166 Fixed some broken links to the var‐ + ious citation standards (I think in this context this + should probably _n_o_t be happening, yes?). The distrib‐ + uted **uurrll..bbsstt no longer have the ‐‐‐‐iinnlliinneelliinnkkss option + turned on by default. + + _0_._6_, _2_0_0_7 _M_a_r_c_h _2_6 + + Added the option ‐‐‐‐iinnlliinneelliinnkkss , which adds inline +hyperlinks to any bibliography entries which have URLs, but +does so inline, rather than printing the URL explicitly in +the bibliography. This is (primarily) useful if you’re pre‐ +paring a version of a document which will be read on‐screen. +Thanks to Jason Eisner for the suggestion, and much testing. + + Incorporate hyperref bugfixes from PaweÅ Widera. + + 00..66bb33 Further reworkings of the inlinelinks support, so + that it’s now fired by a format.title (or format.bti‐ + tle) line, with a fallback in fin.entry. This should + be more robust, and allows me to delete some of the + previous version’s gymnastics. + + 00..66bb22 Reworked iinnlliinneelliinnkkss support; should now be more + robust. Incorporate hyperref bugfixes from PaweÅ + Widera. + + 00..66bb11 Added the option iinnlliinneelliinnkkss , which adds inline + hyperlinks to any bibliography entries which have URLs, + but does so inline, rather than printing the URL + explicitly in the bibliography. This is (only) useful + if you’re preparing a version of a document which will + be read on‐screen. + + 00..55..22,, 22000066 SSeepptteemmbbeerr 66 Another set of documentation‐ + only changes, hopefully clarifying installation. + + 00..55..11,, 22000066 JJaannuuaarryy 1100 No functionality changes. Docu‐ + mentation and webpage changes only, hopefully clarify‐ + ing usage and configuration + + _0_._5_, _2_0_0_5 _J_u_n_e _3 Added support for Digital Object Iden‐ + tifiers (DOI) fields in bibliographies. + + 00..44‐‐11,, 22000055 AApprriill 1122 Documentation improvements ‐‐ + there are now examples in the help text! + + _0_._4_, _2_0_0_4 _D_e_c_e_m_b_e_r _1 Bug fixes: now compatible with + mla.bst and friends. Now uses ..//ccoonnffiigguurree (option‐ + ally). Assorted reorganisation. + + _0_._3_, _2_0_0_3 _J_u_n_e _4 Added ‐‐eprint, ‐‐hypertex and + ‐‐hyperref options. + + _0_._2_, _2_0_0_2 _O_c_t_o_b_e_r _2_3 The ‘editor’ field is now sup‐ + ported in the webpage entry type. Basic documentation + added. + + _0_._1_, _2_0_0_2 _A_p_r_i_l Initial version + + Norman Gray 2011 March 8 + diff --git a/Master/texmf-dist/doc/bibtex/urlbst/VERSION b/Master/texmf-dist/doc/bibtex/urlbst/VERSION new file mode 100644 index 00000000000..3a3f6d04e37 --- /dev/null +++ b/Master/texmf-dist/doc/bibtex/urlbst/VERSION @@ -0,0 +1 @@ +urlbst-0.6-5b1 diff --git a/Master/texmf-dist/doc/latex/urlbst/urlbst b/Master/texmf-dist/doc/bibtex/urlbst/urlbst index 18501bd58b3..4cdae07ce5e 100644..100755 --- a/Master/texmf-dist/doc/latex/urlbst/urlbst +++ b/Master/texmf-dist/doc/bibtex/urlbst/urlbst @@ -1,4 +1,4 @@ -#! /usr/bin/env perl +#! /usr/bin/perl -w # # Usage: ./urlbst.pl [--eprint] [--doi] [--pubmed] # [--nohyperlinks] [--inlinelinks] [--hypertex] [--hyperref] @@ -8,9 +8,9 @@ # # See http://purl.org/nxg/dist/urlbst for documentation # -# $Id: urlbst.in,v 1.10 2008/01/27 23:18:54 norman Exp $ +# $Id$ -$version = '0.6-1'; +$version = '0.6-5'; ($progname = $0) =~ s/.*\///; $mymarker = "% $progname"; $mymarkerend = "% ...$progname to here"; @@ -20,15 +20,15 @@ $myurl = 'http://purl.org/nxg/dist/urlbst'; $infile = '-'; $outfile = '-'; -$addeprints = 0; # if true (nonzero) we add support for eprints +$addeprints = 1; # if true (nonzero) we add support for eprints $eprintprefix = 'arXiv:'; # make these settable with --eprint? syntax? $eprinturl = 'http://arxiv.org/abs/'; -$adddoiresolver = 0; +$adddoiresolver = 1; $doiprefix = 'doi:'; $doiurl = 'http://dx.doi.org/'; -$addpubmedresolver = 0; +$addpubmedresolver = 1; $pubmedprefix = 'PMID:'; $pubmedurl = 'http://www.ncbi.nlm.nih.gov/pubmed/'; @@ -36,7 +36,15 @@ $makehref = 0; $availablestring = "Available from: "; $inlinelinks = 0; -$Usage = "$progname [--eprint] [--doi] [--pubmed]\n [--nohyperlinks] [--inlinelinks] [--hypertex] [--hyperref]\n [--help] [input-file [output-file]]"; +$automatic_output_filename = 0; + +$Usage = "$progname [--eprint] [--doi] [--pubmed]\n [--nohyperlinks] [--[no]inlinelinks] [--hypertex] [--hyperref]\n [--help] [input-file [output-file]]"; + +# Magic environment variable: if this is set, then we're being called from a Platypus wrapper +# See http://www.sveinbjorn.org/platypus +if ($ENV{"CALLED_FROM_PLATYPUS"}) { + $automatic_output_filename = 1; +} while ($#ARGV >= 0) { if ($ARGV[0] eq '--eprint') { @@ -53,6 +61,10 @@ while ($#ARGV >= 0) { $makehref = 2; } elsif ($ARGV[0] eq '--inlinelinks') { $inlinelinks = 1; + } elsif ($ARGV[0] eq '--noinlinelinks') { + $inlinelinks = 0; + } elsif ($ARGV[0] eq '--automatic-output') { + $automatic_output_filename = 1; } elsif ($ARGV[0] eq '--help') { print <<EOD; urlbst version $version @@ -90,6 +102,21 @@ EOD $makehref = 2; } +if ($automatic_output_filename) { + if ($infile eq '-') { + print "ERROR: No input filename given with --automatic-output\n"; + } + $outfile = $infile; + @outparts = split /\./, $outfile; + $ext = pop(@outparts); + $outfile=join('.', @outparts); + if ($outfile eq '') { + $outfile = $ext . '-url'; + } else { + $outfile = $outfile . '-url.' . $ext; + } +} + $exitstatus = 0; # success status open (IN, "<$infile") || die "Can't open $infile to read"; @@ -196,11 +223,25 @@ while (<IN>) { # constants at the beginning. Also use this as the marker for # the place to add the init strings function. print OUT <<EOD; -STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } $mymarker... -INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver } -% Following constants may be adjusted by hand, if desired +$mymarker... +% urlbst constants and state variables +STRINGS { urlintro + eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl + openinlinelink closeinlinelink } +INTEGERS { hrefform inlinelinks makeinlinelink + addeprints adddoiresolver addpubmedresolver } FUNCTION {init.urlbst.variables} { + % The following constants may be adjusted by hand, if desired + + % The first set allow you to enable or disable certain functionality. + #$addeprints 'addeprints := % 0=no eprints; 1=include eprints + #$adddoiresolver 'adddoiresolver := % 0=no DOI resolver; 1=include it + #$addpubmedresolver 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it + #$makehref 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs + #$inlinelinks 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles + + % String constants, which you _might_ want to tweak. "$availablestring" 'urlintro := % prefix before URL "$eprinturl" 'eprinturl := % prefix to make URL from eprint ref "$eprintprefix" 'eprintprefix := % text prefix printed before eprint ref @@ -208,13 +249,10 @@ FUNCTION {init.urlbst.variables} "$doiprefix" 'doiprefix := % text prefix printed before DOI ref "$pubmedurl" 'pubmedurl := % prefix to make URL from PUBMED "$pubmedprefix" 'pubmedprefix := % text prefix printed before PUBMED ref - #$addeprints 'addeprints := % 0=no eprints; 1=include eprints - #$adddoiresolver 'adddoiresolver := % 0=no DOI resolver; 1=include it - #$addpubmedresolver 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it - #$makehref 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs - #$inlinelinks 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles - % the following are internal state variables, not config constants - #0 'makeinlinelink := % state variable managed by setup.inlinelink + + % The following are internal state variables, not configuration constants, + % so they shouldn't be fiddled with. + #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink "" 'openinlinelink := % ditto "" 'closeinlinelink := % ditto } @@ -231,10 +269,10 @@ EOD until ($line =~ /\{.*\}.*\{/s) { $line .= <IN>; } - $line =~ s/(\{.*?\}.*?\{)/$1 #0 'outside.brackets := $mymarker + $line =~ s/(\{.*?\}.*?\{)/$1 #0 'outside.brackets := $mymarker... #1 'open.brackets := #2 'within.brackets := - #3 'close.brackets := + #3 'close.brackets := $mymarkerend /s; print OUT $line; @@ -243,7 +281,7 @@ EOD }; /^ *EXECUTE *\{init\.state\.consts\}/ && do { - print OUT "EXECUTE {init.urlbst.variables}\n"; + print OUT "EXECUTE {init.urlbst.variables} $mymarker\n"; print OUT; next; }; @@ -264,6 +302,7 @@ EOD /FUNCTION *\{fin.entry\}/ && do { # Rename fin.entry to fin.entry.original (wrapped below) s/fin.entry/fin.entry.original/; + s/$/ $mymarker (renamed from fin.entry, so it can be wrapped below)/; $found{finentry} = 1; print OUT; next; @@ -283,8 +322,16 @@ EOD }; /^ *format\.b?title/ && do { - # interpolate a call to setup.inlinelink - print OUT " title empty\$ 'skip\$ 'setup\.inlinelink if\$ $mymarker\n"; + # interpolate a call to possibly.setup.inlinelink + print OUT " title empty\$ 'skip\$ 'possibly.setup\.inlinelink if\$ $mymarker\n"; + print OUT; + next; + }; + + /^ *format\.vol\.num\.pages/ && do { + # interpolate a call to possibly.setup.inlinelink + s/^( *)/$1possibly.setup.inlinelink /; + s/$/$mymarker/; print OUT; next; }; @@ -302,6 +349,7 @@ EOD /FUNCTION *\{output.bibitem\}/ && do { # Rename output.bibitem to output.bibitem.original (wrapped below) s/{output.bibitem\}/\{output.bibitem.original\}/; + s/$/ $mymarker (renamed from output.bibitem, so it can be wrapped below)/; $found{outputbibitem} = 1; print OUT; next; @@ -343,24 +391,36 @@ sub print_output_functions { % 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. -FUNCTION {setup.inlinelink} -{ makeinlinelink - { hrefform #1 = % hypertex - { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink := - "\special {html:</a>}" 'closeinlinelink := - } - { hrefform #2 = % hyperref - { "\href{" url * "}{" * 'openinlinelink := - "}" 'closeinlinelink := - } - 'skip$ - if$ % hrefform #2 = - } - if$ % hrefform #1 = +% (thanks to 'ijvm' for suggested code here) +FUNCTION {uand} +{ 'skip$ { pop$ #0 } if$ } % 'and' (which isn't defined at this point in the file) +FUNCTION {possibly.setup.inlinelink} +{ makeinlinelink hrefform #0 > uand + { doi empty$ adddoiresolver uand + { pubmed empty$ addpubmedresolver uand + { eprint empty$ addeprints uand + { url empty$ + { "" } + { url } + if$ } + { eprinturl eprint * } + if$ } + { pubmedurl pubmed * } + if$ } + { doiurl doi * } + if$ + % an appropriately-formatted URL is now on the stack + hrefform #1 = % hypertex + { "\special {html:<a href=" quote$ * swap$ * quote$ * "> }{" * 'openinlinelink := + "\special {html:</a>}" 'closeinlinelink := } + { "\href {" swap$ * "} {" * 'openinlinelink := % hrefform=#2 -- hyperref + % the space between "} {" matters: a URL of just the right length can cause "\% newline em" + "}" 'closeinlinelink := } + if$ #0 'makeinlinelink := - } + } 'skip$ - if$ % makeinlinelink + if$ % makeinlinelink } FUNCTION {add.inlinelink} { openinlinelink empty$ @@ -524,18 +584,23 @@ FUNCTION {output.url} 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$ + inlinelinks + 'skip$ % links were inline -- don't repeat them + { + 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$ + } if$ } @@ -545,7 +610,7 @@ FUNCTION {output.web.refs} FUNCTION {output.bibitem} { outside.brackets 'bracket.state := output.bibitem.original - inlinelinks url empty$ not and + inlinelinks url empty$ not doi empty$ not or pubmed empty$ not or eprint empty$ not or and { #1 'makeinlinelink := } { #0 'makeinlinelink := } if$ @@ -555,7 +620,7 @@ FUNCTION {output.bibitem} FUNCTION {fin.entry} { output.web.refs % urlbst makeinlinelink % ooops, it appears we didn't have a title for inlinelink - { setup.inlinelink % add some artificial link text here, as a fallback + { possibly.setup.inlinelink % add some artificial link text here, as a fallback "[link]" output.nonnull } 'skip$ if$ @@ -590,7 +655,7 @@ FUNCTION {webpage} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ + title empty$ 'skip$ 'possibly.setup.inlinelink if$ format.title "title" output.check inbrackets "online" output new.block diff --git a/Master/texmf-dist/bibtex/bib/urlbst/urlbst.bib b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.bib index d981b820df0..ee1cb4aac0e 100644 --- a/Master/texmf-dist/bibtex/bib/urlbst/urlbst.bib +++ b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.bib @@ -5,23 +5,24 @@ author = {B Land}, year = 2001, month = jul, - lastchecked = {23 October 2002} + lastchecked = {16 June 2008} } -@Webpage{apastyle, - url = {http://www.apastyle.org/elecref.html}, - author = {{American Psychological Association}}, - title = {Electronic References}, - year = 2001, - lastchecked = {23 October 2002}, - note = {Excerpted from 5th edition of the APA Publication Manual} +@Manual{apastyle, + title = {Publication Manual of the American Psychological + Association}, + organization = {{American Psychological Association}}, + edition = {6th}, + year = 2009, + lastchecked = {9 August 2009}, + url = {http://www.apastyle.org/manual/index.aspx} } @webpage{url:iso690, author = {{International Standards Organisation}}, title = {{ISO 690-2}}, - url = {http://www.collectionscanada.gc.ca/iso/tc46sc9/standard/690-2e.htm}, - lastchecked = {20 August 2001} + url = {http://en.wikipedia.org/wiki/ISO_690}, + lastchecked = {9 August 2009} } % This one appears to be dead @@ -35,24 +36,25 @@ } @Webpage{emory95, - author = "libsf@web.cc.emory.edu", + author = {{Goizueta Business Library}}, title = "Citation Formats", date = {1997}, - lastchecked = {23 October 2002}, + lastchecked = {9 August 2009}, url = {http://business.library.emory.edu/eresources/citing.html} } -@Book{walker, +@Book{walker06, author = {Janice R. Walker and Todd Taylor}, title = {The Columbia Guide to Online Style}, publisher = {Columbia University Press}, year = 2006, - DEADurl = {http://www.columbia.edu/cu/cup/cgos/}, edition = {2nd}, isbn = {978-0-231-13211-4}, - DEADlastchecked = {23 October 2002} + url = {http://cup.columbia.edu/book/978-0-231-13210-7/the-columbia-guide-to-online-style}, + lastchecked = {9 August 2009} } +% this one appears to be dead @Webpage{walker-orig, title = {{MLA}-Style Citations of Electronic Sources}, author = {Janice R. Walker}, @@ -64,11 +66,11 @@ @Webpage{texfaq, url = {http://www.tex.ac.uk/cgi-bin/texfaq2html?label=citeURL}, - title = {{UK \TeX\ FAQ: URLs in \BibTeX\ bibliographies}}, + title = {{UK \TeX\ FAQ: URLs in BibTeX bibliographies}}, key = {UK TeX FAQ}, editor = {Robin Fairbairns}, year = 2002, - lastchecked = {23 October 2002} + lastchecked = {16 June 2008} } diff --git a/Master/texmf-dist/doc/latex/urlbst/urlbst.html b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.html index eac33dfa948..a169d5b1971 100644 --- a/Master/texmf-dist/doc/latex/urlbst/urlbst.html +++ b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.html @@ -14,13 +14,13 @@ <p>A script to add a <code>webpage</code> BibTeX entry type, and add support for general <code>url</code> and <code>lastchecked</code> fields, to (most) BibTeX <code>.bst</code> files. Optionally adds -basic support for <code>eprint</code> and <code>doi</code> fields, and -hypertex/hyperref support, too.</p> +basic support for <code>eprint</code>, <code>doi</code> and <code>pubmed</code> fields, and +hypertex/hyperref support.</p> <p>The Persistent URL for this page is <code>http://purl.org/nxg/dist/urlbst</code>.</p> -<p>Version 0.6-1, 2008 June 16.</p> +<p>Version 0.6-5, 2011 March 8.</p> </div> <p>Contents</p> @@ -52,7 +52,7 @@ eprint fields. Fuller details are in the <a href="urlbst.pdf" <h2><a name='usage'>Usage</a></h2> <pre> -urlbst [--eprint] [--doi] +urlbst [--eprint] [--doi] [--pubmed] [--inlinelinks] [--nohyperlinks] [--hypertex] [--hyperref] [input-file [output-file]] </pre> @@ -60,14 +60,16 @@ urlbst [--eprint] [--doi] to stdin and stdout respectively. If the input file already has a URL entry type, then the script objects.</p> -<p>If the option <code>--eprint</code> is present, then include -support for a <code>eprint</code> field in the modified -<code>.bst</code> file, with a citation format matching that -recommended in <a href="http://arxiv.org/help/faq/references" >the -arXiv documentation</a>. Similarly, if the option <code>--doi</code> -is present, then include support for a <code>doi</code> field, -referring to a <a href="http://www.doi.org/">DOI</a> for the -bibliographic item.</p> +<p>The added fields are:</p> +<ul> +<li><code>url</code> and <code>lastchecked</code>, to associate a URL with + a reference, along with the date at which the URL was last checked + to exist;</li> +<li><code>doi</code>, for a reference's <a href='http://doi.org'>DOI</a>;</li> +<li><code>eprint</code>, for an <a href='http://arxiv.org'>arXiv</a> eprint reference; and</li> +<li><code>pubmed</code> for a reference's + <a href='http://pubmed.gov'>PubMed</a> identifier (PMID).</li> +</ul> <p>If either of the <code>--hypertex</code> or <code>--hyperref</code> options is present, then the generated <code>.bst</code> file includes @@ -153,9 +155,12 @@ FAQ</a>.</p> <h2><a name='download'>Download and installation</a></h2> -<p>Download the file -<a href="urlbst-0.6-1.tar.gz" >urlbst-0.6-1.tar.gz</a> -and unpack it.</p> +<p>Download the file as a +<a href="urlbst-0.6-5.tar.gz" >tarball</a> +or +<a href="urlbst-0.6-5.zip" >zip file</a> +and unpack it. Or you can clone the source repository at +<a href='http://bitbucket.org/nxg/urlbst/'>bitbucket.org</a>.</p> <p>To install, you should simply copy the distributed <code>urlbst</code> script to someplace on the path (such as @@ -254,7 +259,7 @@ is distributed as a PDF file, but if you want to regenerate it, use</p> % latex urlbst </pre> -<h2><a name='information'>Further Information</a></h2> +<h2><a name='information'>Further Information and acknowledgements</a></h2> <p><code>urlbst</code> is archived on CTAN at <a href="http://www.tex.ac.uk/tex-archive/biblio/bibtex/contrib/urlbst/" @@ -262,23 +267,45 @@ href="http://www.tex.ac.uk/tex-archive/biblio/bibtex/contrib/urlbst/" <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=citeURL" >TeX FAQ</a>.</p> +<p>The source code for the package is maintained at +<a href='http://bitbucket.org/nxg/urlbst/'>bitbucket.org</a>, +which also includes an issue tracker, where you can report bugs (or +just mail me).</p> + <p>The <a href="http://purl.org/nxg/dist/urlbst" >home page of urlbst</a> might possibly have more recent versions than the one you're looking at now.</p> -<p>Copyright 2002-8, Norman Gray. Released under the terms of the GNU +<p>Thanks are due to many people for suggestions and requests, +and to 'ijvm' for code contributions.</p> + +<p>Copyright 2002-11, Norman Gray. Released under the terms of the GNU General Public Licence.</p> <h2><a name='history'>Version history</a></h2> <dl> +<dt>0.6-5, 2011 March 8</dt> +<dd>Adjust support for inline links (should now work for arXiv, DOI and Pubmed)</dd> + +<dt>0.6-4, 2009 April 28</dt> +<dd>Work around BibTeX linebreaking bug (thanks to Andras Salamon for the bug report).</dd> + +<dt>0.6-3, 2009 April 19</dt> +<dd>Fix inline link generation (thanks to Eric Chamberland for the bug report).</dd> + +<dt>0.6-2, 2008 November 17</dt> +<dd>We now turn on inlinelinks when we spot format.vol.num.pages, +which means we include links for those styles which don't include a +title in the citation (common for articles in physical science styles, +such as aip.sty).</dd> <dt>0.6-1, 2008 June 16</dt> -<dd>Fixed some broken links to the various citation standards (I think -in this context this should probably <em>not</em> be happening, -yes?). The distributed <code>*url.bst</code> no longer have the +<dd>Fixed some broken links to the various citation standards +(I think in this context this should probably <em>not</em> be happening, yes?). +The distributed <code>*url.bst</code> no longer have the <code>--inlinelinks</code> option turned on by default.</dd> -<dt>0.6, 2007 March 26</dt> +<dt><strong>0.6, 2007 March 26</strong></dt> <dd><p>Added the option <code>--inlinelinks</code>, which adds inline hyperlinks to any bibliography entries which have URLs, but does so inline, rather than printing the URL explicitly in the bibliography. This is (primarily) @@ -313,25 +340,25 @@ installation.</dd> <dd>No functionality changes. Documentation and webpage changes only, hopefully clarifying usage and configuration</dd> -<dt>0.5, 2005 June 3</dt> +<dt><strong>0.5, 2005 June 3</strong></dt> <dd>Added support for Digital Object Identifiers (DOI) fields in bibliographies.</dd> <dt>0.4-1, 2005 April 12</dt> <dd>Documentation improvements -- there are now examples in the help text!</dd> -<dt>0.4, 2004 December 1</dt> -<dd>Bug fixes: now compatible with mla.bst and friends. Now uses -./configure (optionally). Assorted reorganisation.</dd> +<dt><strong>0.4, 2004 December 1</strong></dt> +<dd>Bug fixes: now compatible with mla.bst and friends. +Now uses <code>./configure</code> (optionally). Assorted reorganisation.</dd> -<dt>0.3, 2003 June 4</dt> +<dt><strong>0.3, 2003 June 4</strong></dt> <dd>Added --eprint, --hypertex and --hyperref options.</dd> -<dt>0.2, 2002 October 23</dt> +<dt><strong>0.2, 2002 October 23</strong></dt> <dd>The `editor' field is now supported in the webpage entry type. Basic documentation added.</dd> -<dt>0.1, 2002 April</dt> +<dt><strong>0.1, 2002 April</strong></dt> <dd>Initial version</dd> </dl> @@ -340,7 +367,7 @@ documentation added.</dd> <div class="signature"> <a href="http://nxg.me.uk" >Norman Gray</a><br/> -2008 June 16 +2011 March 8 </div> </body> diff --git a/Master/texmf-dist/doc/latex/urlbst/urlbst.html.in b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.html.in index 6facc246252..8a3de2e4387 100644 --- a/Master/texmf-dist/doc/latex/urlbst/urlbst.html.in +++ b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.html.in @@ -14,8 +14,8 @@ <p>A script to add a <code>webpage</code> BibTeX entry type, and add support for general <code>url</code> and <code>lastchecked</code> fields, to (most) BibTeX <code>.bst</code> files. Optionally adds -basic support for <code>eprint</code> and <code>doi</code> fields, and -hypertex/hyperref support, too.</p> +basic support for <code>eprint</code>, <code>doi</code> and <code>pubmed</code> fields, and +hypertex/hyperref support.</p> <p>The Persistent URL for this page is <code>http://purl.org/nxg/dist/urlbst</code>.</p> @@ -52,7 +52,7 @@ eprint fields. Fuller details are in the <a href="urlbst.pdf" <h2><a name='usage'>Usage</a></h2> <pre> -urlbst [--eprint] [--doi] +urlbst [--eprint] [--doi] [--pubmed] [--inlinelinks] [--nohyperlinks] [--hypertex] [--hyperref] [input-file [output-file]] </pre> @@ -60,14 +60,16 @@ urlbst [--eprint] [--doi] to stdin and stdout respectively. If the input file already has a URL entry type, then the script objects.</p> -<p>If the option <code>--eprint</code> is present, then include -support for a <code>eprint</code> field in the modified -<code>.bst</code> file, with a citation format matching that -recommended in <a href="http://arxiv.org/help/faq/references" >the -arXiv documentation</a>. Similarly, if the option <code>--doi</code> -is present, then include support for a <code>doi</code> field, -referring to a <a href="http://www.doi.org/">DOI</a> for the -bibliographic item.</p> +<p>The added fields are:</p> +<ul> +<li><code>url</code> and <code>lastchecked</code>, to associate a URL with + a reference, along with the date at which the URL was last checked + to exist;</li> +<li><code>doi</code>, for a reference's <a href='http://doi.org'>DOI</a>;</li> +<li><code>eprint</code>, for an <a href='http://arxiv.org'>arXiv</a> eprint reference; and</li> +<li><code>pubmed</code> for a reference's + <a href='http://pubmed.gov'>PubMed</a> identifier (PMID).</li> +</ul> <p>If either of the <code>--hypertex</code> or <code>--hyperref</code> options is present, then the generated <code>.bst</code> file includes @@ -153,9 +155,12 @@ FAQ</a>.</p> <h2><a name='download'>Download and installation</a></h2> -<p>Download the file -<a href="urlbst-@PACKAGE_VERSION@.tar.gz" >urlbst-@PACKAGE_VERSION@.tar.gz</a> -and unpack it.</p> +<p>Download the file as a +<a href="urlbst-@PACKAGE_VERSION@.tar.gz" >tarball</a> +or +<a href="urlbst-@PACKAGE_VERSION@.zip" >zip file</a> +and unpack it. Or you can clone the source repository at +<a href='http://bitbucket.org/nxg/urlbst/'>bitbucket.org</a>.</p> <p>To install, you should simply copy the distributed <code>urlbst</code> script to someplace on the path (such as @@ -254,7 +259,7 @@ is distributed as a PDF file, but if you want to regenerate it, use</p> % latex urlbst </pre> -<h2><a name='information'>Further Information</a></h2> +<h2><a name='information'>Further Information and acknowledgements</a></h2> <p><code>urlbst</code> is archived on CTAN at <a href="http://www.tex.ac.uk/tex-archive/biblio/bibtex/contrib/urlbst/" @@ -262,23 +267,45 @@ href="http://www.tex.ac.uk/tex-archive/biblio/bibtex/contrib/urlbst/" <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=citeURL" >TeX FAQ</a>.</p> +<p>The source code for the package is maintained at +<a href='http://bitbucket.org/nxg/urlbst/'>bitbucket.org</a>, +which also includes an issue tracker, where you can report bugs (or +just mail me).</p> + <p>The <a href="http://purl.org/nxg/dist/urlbst" >home page of urlbst</a> might possibly have more recent versions than the one you're looking at now.</p> -<p>Copyright 2002-8, Norman Gray. Released under the terms of the GNU +<p>Thanks are due to many people for suggestions and requests, +and to 'ijvm' for code contributions.</p> + +<p>Copyright 2002-11, Norman Gray. Released under the terms of the GNU General Public Licence.</p> <h2><a name='history'>Version history</a></h2> <dl> +<dt>0.6-5, 2011 March 8</dt> +<dd>Adjust support for inline links (should now work for arXiv, DOI and Pubmed)</dd> + +<dt>0.6-4, 2009 April 28</dt> +<dd>Work around BibTeX linebreaking bug (thanks to Andras Salamon for the bug report).</dd> + +<dt>0.6-3, 2009 April 19</dt> +<dd>Fix inline link generation (thanks to Eric Chamberland for the bug report).</dd> + +<dt>0.6-2, 2008 November 17</dt> +<dd>We now turn on inlinelinks when we spot format.vol.num.pages, +which means we include links for those styles which don't include a +title in the citation (common for articles in physical science styles, +such as aip.sty).</dd> <dt>0.6-1, 2008 June 16</dt> -<dd>Fixed some broken links to the various citation standards (I think -in this context this should probably <em>not</em> be happening, -yes?). The distributed <code>*url.bst</code> no longer have the +<dd>Fixed some broken links to the various citation standards +(I think in this context this should probably <em>not</em> be happening, yes?). +The distributed <code>*url.bst</code> no longer have the <code>--inlinelinks</code> option turned on by default.</dd> -<dt>0.6, 2007 March 26</dt> +<dt><strong>0.6, 2007 March 26</strong></dt> <dd><p>Added the option <code>--inlinelinks</code>, which adds inline hyperlinks to any bibliography entries which have URLs, but does so inline, rather than printing the URL explicitly in the bibliography. This is (primarily) @@ -313,25 +340,25 @@ installation.</dd> <dd>No functionality changes. Documentation and webpage changes only, hopefully clarifying usage and configuration</dd> -<dt>0.5, 2005 June 3</dt> +<dt><strong>0.5, 2005 June 3</strong></dt> <dd>Added support for Digital Object Identifiers (DOI) fields in bibliographies.</dd> <dt>0.4-1, 2005 April 12</dt> <dd>Documentation improvements -- there are now examples in the help text!</dd> -<dt>0.4, 2004 December 1</dt> -<dd>Bug fixes: now compatible with mla.bst and friends. Now uses -./configure (optionally). Assorted reorganisation.</dd> +<dt><strong>0.4, 2004 December 1</strong></dt> +<dd>Bug fixes: now compatible with mla.bst and friends. +Now uses <code>./configure</code> (optionally). Assorted reorganisation.</dd> -<dt>0.3, 2003 June 4</dt> +<dt><strong>0.3, 2003 June 4</strong></dt> <dd>Added --eprint, --hypertex and --hyperref options.</dd> -<dt>0.2, 2002 October 23</dt> +<dt><strong>0.2, 2002 October 23</strong></dt> <dd>The `editor' field is now supported in the webpage entry type. Basic documentation added.</dd> -<dt>0.1, 2002 April</dt> +<dt><strong>0.1, 2002 April</strong></dt> <dd>Initial version</dd> </dl> diff --git a/Master/texmf-dist/doc/latex/urlbst/urlbst.in b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.in index 0bb468f6322..f212601f96b 100644..100755 --- a/Master/texmf-dist/doc/latex/urlbst/urlbst.in +++ b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.in @@ -8,7 +8,7 @@ # # See http://purl.org/nxg/dist/urlbst for documentation # -# $Id: urlbst.in,v 1.10 2008/01/27 23:18:54 norman Exp $ +# $Id$ $version = '@PACKAGE_VERSION@'; ($progname = $0) =~ s/.*\///; @@ -36,7 +36,15 @@ $makehref = @WITHHREF@; $availablestring = "Available from: "; $inlinelinks = 0; -$Usage = "$progname [--eprint] [--doi] [--pubmed]\n [--nohyperlinks] [--inlinelinks] [--hypertex] [--hyperref]\n [--help] [input-file [output-file]]"; +$automatic_output_filename = 0; + +$Usage = "$progname [--eprint] [--doi] [--pubmed]\n [--nohyperlinks] [--[no]inlinelinks] [--hypertex] [--hyperref]\n [--help] [input-file [output-file]]"; + +# Magic environment variable: if this is set, then we're being called from a Platypus wrapper +# See http://www.sveinbjorn.org/platypus +if ($ENV{"CALLED_FROM_PLATYPUS"}) { + $automatic_output_filename = 1; +} while ($#ARGV >= 0) { if ($ARGV[0] eq '--eprint') { @@ -53,6 +61,10 @@ while ($#ARGV >= 0) { $makehref = 2; } elsif ($ARGV[0] eq '--inlinelinks') { $inlinelinks = 1; + } elsif ($ARGV[0] eq '--noinlinelinks') { + $inlinelinks = 0; + } elsif ($ARGV[0] eq '--automatic-output') { + $automatic_output_filename = 1; } elsif ($ARGV[0] eq '--help') { print <<EOD; urlbst version $version @@ -90,6 +102,21 @@ EOD $makehref = 2; } +if ($automatic_output_filename) { + if ($infile eq '-') { + print "ERROR: No input filename given with --automatic-output\n"; + } + $outfile = $infile; + @outparts = split /\./, $outfile; + $ext = pop(@outparts); + $outfile=join('.', @outparts); + if ($outfile eq '') { + $outfile = $ext . '-url'; + } else { + $outfile = $outfile . '-url.' . $ext; + } +} + $exitstatus = 0; # success status open (IN, "<$infile") || die "Can't open $infile to read"; @@ -196,11 +223,25 @@ while (<IN>) { # constants at the beginning. Also use this as the marker for # the place to add the init strings function. print OUT <<EOD; -STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } $mymarker... -INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver } -% Following constants may be adjusted by hand, if desired +$mymarker... +% urlbst constants and state variables +STRINGS { urlintro + eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl + openinlinelink closeinlinelink } +INTEGERS { hrefform inlinelinks makeinlinelink + addeprints adddoiresolver addpubmedresolver } FUNCTION {init.urlbst.variables} { + % The following constants may be adjusted by hand, if desired + + % The first set allow you to enable or disable certain functionality. + #$addeprints 'addeprints := % 0=no eprints; 1=include eprints + #$adddoiresolver 'adddoiresolver := % 0=no DOI resolver; 1=include it + #$addpubmedresolver 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it + #$makehref 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs + #$inlinelinks 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles + + % String constants, which you _might_ want to tweak. "$availablestring" 'urlintro := % prefix before URL "$eprinturl" 'eprinturl := % prefix to make URL from eprint ref "$eprintprefix" 'eprintprefix := % text prefix printed before eprint ref @@ -208,13 +249,10 @@ FUNCTION {init.urlbst.variables} "$doiprefix" 'doiprefix := % text prefix printed before DOI ref "$pubmedurl" 'pubmedurl := % prefix to make URL from PUBMED "$pubmedprefix" 'pubmedprefix := % text prefix printed before PUBMED ref - #$addeprints 'addeprints := % 0=no eprints; 1=include eprints - #$adddoiresolver 'adddoiresolver := % 0=no DOI resolver; 1=include it - #$addpubmedresolver 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it - #$makehref 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs - #$inlinelinks 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles - % the following are internal state variables, not config constants - #0 'makeinlinelink := % state variable managed by setup.inlinelink + + % The following are internal state variables, not configuration constants, + % so they shouldn't be fiddled with. + #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink "" 'openinlinelink := % ditto "" 'closeinlinelink := % ditto } @@ -231,10 +269,10 @@ EOD until ($line =~ /\{.*\}.*\{/s) { $line .= <IN>; } - $line =~ s/(\{.*?\}.*?\{)/$1 #0 'outside.brackets := $mymarker + $line =~ s/(\{.*?\}.*?\{)/$1 #0 'outside.brackets := $mymarker... #1 'open.brackets := #2 'within.brackets := - #3 'close.brackets := + #3 'close.brackets := $mymarkerend /s; print OUT $line; @@ -243,7 +281,7 @@ EOD }; /^ *EXECUTE *\{init\.state\.consts\}/ && do { - print OUT "EXECUTE {init.urlbst.variables}\n"; + print OUT "EXECUTE {init.urlbst.variables} $mymarker\n"; print OUT; next; }; @@ -264,6 +302,7 @@ EOD /FUNCTION *\{fin.entry\}/ && do { # Rename fin.entry to fin.entry.original (wrapped below) s/fin.entry/fin.entry.original/; + s/$/ $mymarker (renamed from fin.entry, so it can be wrapped below)/; $found{finentry} = 1; print OUT; next; @@ -283,8 +322,16 @@ EOD }; /^ *format\.b?title/ && do { - # interpolate a call to setup.inlinelink - print OUT " title empty\$ 'skip\$ 'setup\.inlinelink if\$ $mymarker\n"; + # interpolate a call to possibly.setup.inlinelink + print OUT " title empty\$ 'skip\$ 'possibly.setup\.inlinelink if\$ $mymarker\n"; + print OUT; + next; + }; + + /^ *format\.vol\.num\.pages/ && do { + # interpolate a call to possibly.setup.inlinelink + s/^( *)/$1possibly.setup.inlinelink /; + s/$/$mymarker/; print OUT; next; }; @@ -302,6 +349,7 @@ EOD /FUNCTION *\{output.bibitem\}/ && do { # Rename output.bibitem to output.bibitem.original (wrapped below) s/{output.bibitem\}/\{output.bibitem.original\}/; + s/$/ $mymarker (renamed from output.bibitem, so it can be wrapped below)/; $found{outputbibitem} = 1; print OUT; next; @@ -343,24 +391,36 @@ sub print_output_functions { % 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. -FUNCTION {setup.inlinelink} -{ makeinlinelink - { hrefform #1 = % hypertex - { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink := - "\special {html:</a>}" 'closeinlinelink := - } - { hrefform #2 = % hyperref - { "\href{" url * "}{" * 'openinlinelink := - "}" 'closeinlinelink := - } - 'skip$ - if$ % hrefform #2 = - } - if$ % hrefform #1 = +% (thanks to 'ijvm' for suggested code here) +FUNCTION {uand} +{ 'skip$ { pop$ #0 } if$ } % 'and' (which isn't defined at this point in the file) +FUNCTION {possibly.setup.inlinelink} +{ makeinlinelink hrefform #0 > uand + { doi empty$ adddoiresolver uand + { pubmed empty$ addpubmedresolver uand + { eprint empty$ addeprints uand + { url empty$ + { "" } + { url } + if$ } + { eprinturl eprint * } + if$ } + { pubmedurl pubmed * } + if$ } + { doiurl doi * } + if$ + % an appropriately-formatted URL is now on the stack + hrefform #1 = % hypertex + { "\special {html:<a href=" quote$ * swap$ * quote$ * "> }{" * 'openinlinelink := + "\special {html:</a>}" 'closeinlinelink := } + { "\href {" swap$ * "} {" * 'openinlinelink := % hrefform=#2 -- hyperref + % the space between "} {" matters: a URL of just the right length can cause "\% newline em" + "}" 'closeinlinelink := } + if$ #0 'makeinlinelink := - } + } 'skip$ - if$ % makeinlinelink + if$ % makeinlinelink } FUNCTION {add.inlinelink} { openinlinelink empty$ @@ -524,18 +584,23 @@ FUNCTION {output.url} 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$ + inlinelinks + 'skip$ % links were inline -- don't repeat them + { + 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$ + } if$ } @@ -545,7 +610,7 @@ FUNCTION {output.web.refs} FUNCTION {output.bibitem} { outside.brackets 'bracket.state := output.bibitem.original - inlinelinks url empty$ not and + inlinelinks url empty$ not doi empty$ not or pubmed empty$ not or eprint empty$ not or and { #1 'makeinlinelink := } { #0 'makeinlinelink := } if$ @@ -555,7 +620,7 @@ FUNCTION {output.bibitem} FUNCTION {fin.entry} { output.web.refs % urlbst makeinlinelink % ooops, it appears we didn't have a title for inlinelink - { setup.inlinelink % add some artificial link text here, as a fallback + { possibly.setup.inlinelink % add some artificial link text here, as a fallback "[link]" output.nonnull } 'skip$ if$ @@ -590,7 +655,7 @@ FUNCTION {webpage} } if$ new.block - title empty$ 'skip$ 'setup.inlinelink if$ + title empty$ 'skip$ 'possibly.setup.inlinelink if$ format.title "title" output.check inbrackets "online" output new.block diff --git a/Master/texmf-dist/doc/bibtex/urlbst/urlbst.pdf b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.pdf Binary files differnew file mode 100644 index 00000000000..51da2dfe7be --- /dev/null +++ b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.pdf diff --git a/Master/texmf-dist/doc/latex/urlbst/urlbst.tex b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex index 2554f08b5cb..c642188d7c0 100644 --- a/Master/texmf-dist/doc/latex/urlbst/urlbst.tex +++ b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex @@ -2,7 +2,7 @@ \title{The \texttt{urlbst} package} \author{Norman Gray\\\texttt{<http://nxg.me.uk>}} -\date{Version 0.6-1, 2008 June 16} +\date{Version 0.6-5, 2011 March 8} %\usepackage{times} \usepackage{url} @@ -33,9 +33,9 @@ \maketitle The \ub\ package consists of a Perl script which edits \BibTeX\ style -files (|.bst|) to add a \btfield{webpage} entry type, and which -supports \btfield{url} and corresponding \btfield{lastchecked} fields -on all other entry types. The distribution includes preconverted +files (|.bst|) to add a \btfield{webpage} entry type, and which adds a +few new fields -- notably including \btfield{url} -- +to all other entry types. The distribution includes preconverted versions of the four standard \BibTeX\ |.bst| style files. It has a different goal from Patrick Daly's \package{custom-bib} @@ -44,8 +44,20 @@ package~\cite{url:daly} -- that is intended to create a \BibTeX\ style \btfield{eprint} fields. This package, on the other hand, is intended for the case where you already have a style file that works (or at least, which you cannot or will not change), and edits it to add the -new \btfield{webpage} entry type, plus the \btfield{url}, -\btfield{lastchecked} and \btfield{eprint} fields. +new \btfield{webpage} entry type, plus the new fields. + +The added fields are: +\begin{itemize} +\item \btfield{url} and \btfield{lastchecked}, to associate a URL with + a reference, along with the date at which the URL was last checked + to exist; +\item \btfield{doi}, for a reference's DOI + (see \url{http://doi.org}); +\item \btfield{eprint}, for an arXiv eprint reference + (see \url{http://arxiv.org}); and +\item \btfield{pubmed} for a reference's PubMed identifier + (\textsc{PMID}, see \url{http://pubmed.gov}). +\end{itemize} Usage is simple: \begin{verbatim} @@ -70,9 +82,9 @@ If the option |--eprint| is present, then we switch on support for \texttt{eprint} fields in the modified .bst file, with a citation format matching that recommended in \url{http://arxiv.org/help/faq/references}. If the option -|--doi| is present, then include support for a |doi| field, referring +|--doi| is present, we include support for a |doi| field, referring to a Digital Object Identifier (DOI) as standardised by -\url{http://www.doi.org/}. And if |--pubmed| is present, then include +\url{http://www.doi.org/}. And if |--pubmed| is present, we include support for a |pubmed| field, referring to a PubMed identifier as supported at \url{http://www.pubmed.gov}. @@ -121,6 +133,21 @@ output, then nothing more need be done. If you selected Hyper\TeX\ output, however, then the script encloses the |\url| command in an appropriate Hyper\TeX\ special. +When the style file generates a link for DOIs, it does so by +prepending the string \texttt{http://dx.doi.org/} to the DOI. This is +generally reasonable, but some DOIs have characters in them which are +illegal in URLs, with the result that the resulting +\texttt{dx.doi.org} URL doesn't work. The only real way of resolving +this is to write a URL-encoding function in the style-file +implementation language, but while that would doubtless be feasible in +principle, it would be hard and very, very, ugly. The only advice I +can offer in this case is to rely on the fact that the DOI will still +appear in the typeset bibliography, and that users who would want to +take advantage of the DOI will frequently (or usually?) know how to +resolve the DOI when then need to. As a workaround, you could include +a URL-encoded DOI URL in the \btfield{url} field of the entry (thanks +to Eric Chamberland for this suggestion). + The \ub\ script works by spotting patterns and characteristic function names in the input |.bst| file. It works as-is in the case of the four standard \BibTeX\ style files |plain.bst|, |unsrt.bst|, @@ -166,14 +193,11 @@ it is the page itself which is of interest. You use the new |eprint|, question has an e-print, DOI or PubMed reference. \begin{figure} \begin{verbatim} -@Webpage{apastyle, - url = {http://www.apastyle.org/elecref.html}, - author = {{American Psychological Association}}, - title = {Electronic References}, - year = 2001, - lastchecked = {23 October 2002}, - note = {Excerpted from 5th edition of the APA Publication Manual} -} +@Manual{w3chome, + url = {http://www.w3.org}, + title = {The World Wide Web Consortium}, + year = 2009, + lastchecked = {26 August 2009}} @Book{schutz, author = {Bernard Schutz}, @@ -181,8 +205,7 @@ question has an e-print, DOI or PubMed reference. publisher = {Cambridge University Press}, year = {2003}, url = {http://www.gravityfromthegroundup.org/}, - lastchecked = {2008 June 16} -} + lastchecked = {2008 June 16}} \end{verbatim} \caption{\label{f:ex}The new \texttt{@webpage} entry type, and the \texttt{url} field in action} @@ -203,7 +226,7 @@ web pages. I have followed none specifically, but fortunately they do not appear to materially disagree. ISO-690~\cite{url:iso690} is a formal standard for this stuff. Walker -and Taylor's \emph{Columbia Guide to Online Style}~\cite{walker} +and Taylor's \emph{Columbia Guide to Online Style}~\cite{walker06} provides extensive coverage (but is only available on dead trees). Emory University's \emph{Citation Formats}~\cite{emory95} is a compendium of links rather diff --git a/Master/texmf-dist/doc/latex/urlbst/urlbst.tex.in b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex.in index a063aca4abf..a194ce8a6ce 100644 --- a/Master/texmf-dist/doc/latex/urlbst/urlbst.tex.in +++ b/Master/texmf-dist/doc/bibtex/urlbst/urlbst.tex.in @@ -33,9 +33,9 @@ \maketitle The \ub\ package consists of a Perl script which edits \BibTeX\ style -files (|.bst|) to add a \btfield{webpage} entry type, and which -supports \btfield{url} and corresponding \btfield{lastchecked} fields -on all other entry types. The distribution includes preconverted +files (|.bst|) to add a \btfield{webpage} entry type, and which adds a +few new fields -- notably including \btfield{url} -- +to all other entry types. The distribution includes preconverted versions of the four standard \BibTeX\ |.bst| style files. It has a different goal from Patrick Daly's \package{custom-bib} @@ -44,8 +44,20 @@ package~\cite{url:daly} -- that is intended to create a \BibTeX\ style \btfield{eprint} fields. This package, on the other hand, is intended for the case where you already have a style file that works (or at least, which you cannot or will not change), and edits it to add the -new \btfield{webpage} entry type, plus the \btfield{url}, -\btfield{lastchecked} and \btfield{eprint} fields. +new \btfield{webpage} entry type, plus the new fields. + +The added fields are: +\begin{itemize} +\item \btfield{url} and \btfield{lastchecked}, to associate a URL with + a reference, along with the date at which the URL was last checked + to exist; +\item \btfield{doi}, for a reference's DOI + (see \url{http://doi.org}); +\item \btfield{eprint}, for an arXiv eprint reference + (see \url{http://arxiv.org}); and +\item \btfield{pubmed} for a reference's PubMed identifier + (\textsc{PMID}, see \url{http://pubmed.gov}). +\end{itemize} Usage is simple: \begin{verbatim} @@ -70,9 +82,9 @@ If the option |--eprint| is present, then we switch on support for \texttt{eprint} fields in the modified .bst file, with a citation format matching that recommended in \url{http://arxiv.org/help/faq/references}. If the option -|--doi| is present, then include support for a |doi| field, referring +|--doi| is present, we include support for a |doi| field, referring to a Digital Object Identifier (DOI) as standardised by -\url{http://www.doi.org/}. And if |--pubmed| is present, then include +\url{http://www.doi.org/}. And if |--pubmed| is present, we include support for a |pubmed| field, referring to a PubMed identifier as supported at \url{http://www.pubmed.gov}. @@ -121,6 +133,21 @@ output, then nothing more need be done. If you selected Hyper\TeX\ output, however, then the script encloses the |\url| command in an appropriate Hyper\TeX\ special. +When the style file generates a link for DOIs, it does so by +prepending the string \texttt{http://dx.doi.org/} to the DOI. This is +generally reasonable, but some DOIs have characters in them which are +illegal in URLs, with the result that the resulting +\texttt{dx.doi.org} URL doesn't work. The only real way of resolving +this is to write a URL-encoding function in the style-file +implementation language, but while that would doubtless be feasible in +principle, it would be hard and very, very, ugly. The only advice I +can offer in this case is to rely on the fact that the DOI will still +appear in the typeset bibliography, and that users who would want to +take advantage of the DOI will frequently (or usually?) know how to +resolve the DOI when then need to. As a workaround, you could include +a URL-encoded DOI URL in the \btfield{url} field of the entry (thanks +to Eric Chamberland for this suggestion). + The \ub\ script works by spotting patterns and characteristic function names in the input |.bst| file. It works as-is in the case of the four standard \BibTeX\ style files |plain.bst|, |unsrt.bst|, @@ -166,14 +193,11 @@ it is the page itself which is of interest. You use the new |eprint|, question has an e-print, DOI or PubMed reference. \begin{figure} \begin{verbatim} -@Webpage{apastyle, - url = {http://www.apastyle.org/elecref.html}, - author = {{American Psychological Association}}, - title = {Electronic References}, - year = 2001, - lastchecked = {23 October 2002}, - note = {Excerpted from 5th edition of the APA Publication Manual} -} +@Manual{w3chome, + url = {http://www.w3.org}, + title = {The World Wide Web Consortium}, + year = 2009, + lastchecked = {26 August 2009}} @Book{schutz, author = {Bernard Schutz}, @@ -181,8 +205,7 @@ question has an e-print, DOI or PubMed reference. publisher = {Cambridge University Press}, year = {2003}, url = {http://www.gravityfromthegroundup.org/}, - lastchecked = {2008 June 16} -} + lastchecked = {2008 June 16}} \end{verbatim} \caption{\label{f:ex}The new \texttt{@webpage} entry type, and the \texttt{url} field in action} @@ -203,7 +226,7 @@ web pages. I have followed none specifically, but fortunately they do not appear to materially disagree. ISO-690~\cite{url:iso690} is a formal standard for this stuff. Walker -and Taylor's \emph{Columbia Guide to Online Style}~\cite{walker} +and Taylor's \emph{Columbia Guide to Online Style}~\cite{walker06} provides extensive coverage (but is only available on dead trees). Emory University's \emph{Citation Formats}~\cite{emory95} is a compendium of links rather diff --git a/Master/texmf-dist/doc/latex/urlbst/README b/Master/texmf-dist/doc/latex/urlbst/README deleted file mode 100644 index 7e30209d774..00000000000 --- a/Master/texmf-dist/doc/latex/urlbst/README +++ /dev/null @@ -1,283 +0,0 @@ - Urlbst - - A script to add a webpage BibTeX entry type, and add support for - general url and lastchecked fields, to (most) BibTeX .bst files. - Optionally adds basic support for eprint and doi fields, and - hypertex/hyperref support, too. - - The Persistent URL for this page is http://purl.org/nxg/dist/urlbst. - - Version 0.6-1, 2008 June 16. - - Contents - * Usage - * For example... - * Download and installation - * Further Information - * Version history - - The standard BibTeX styles have no explicit support for the web, in - that they include no `webpage' type, and have no support for adding - URLs to references. There are rumours that such support might appear in - BibTeX 1.0, but there is no estimate of when that is likely to arrive. - - The Perl script urlbst can be used to add this support to an arbitrary - .bst file which has a reasonably `conventional' structure. The result - is meant to be robust rather than pretty. - - It has a different goal from Patrick Daly's `custom-bib' package -- - that is intended to create a BibTeX style .bst file from scratch, and - supports `url' and `eprint' fields. This package, on the other hand, is - intended for the case where you already have a style file that works - (or at least, which you cannot or will not change), and edits it to add - the new webpage entry type, plus the url, lastchecked and eprint - fields. Fuller details are in the manual. - -Usage - -urlbst [--eprint] [--doi] - [--inlinelinks] [--nohyperlinks] [--hypertex] [--hyperref] - [input-file [output-file]] - - if either the input-file or the output-file is omitted, they default to - stdin and stdout respectively. If the input file already has a URL - entry type, then the script objects. - - If the option --eprint is present, then include support for a eprint - field in the modified .bst file, with a citation format matching that - recommended in the arXiv documentation. Similarly, if the option --doi - is present, then include support for a doi field, referring to a DOI - for the bibliographic item. - - If either of the --hypertex or --hyperref options is present, then the - generated .bst file includes support for hyperlinks in the generated - eprint entries in the bibliography, with the format being either - HyperTeX (see arXiv, again), supported by xdvi, dvips and others, or - using the support available from the hyperref package. These options - have no effect unless one of the --eprint or --doi options is given: - when URLs are included in the bibliography, they are written out using - the \url{...} command, and hyperref automatically processes that in the - correct way to include a hyperlink. - - The --inlinelinks option tells urlbst not to write out the URL as text - within the bibliography entry. Instead, urlbst will produce a more - conventional-looking and compact bibliography entry, but the entry's - title will now be a hyperlink to that URL. This hyperlink may be useful - to anyone who reads your document online (this option can only be used - with --hyperref or --hypertex). Any DOI or eprint text which would be - produced as a result of the appropriate option will still appear in - this mode. - - The distribution includes preconverted versions of the four standard - BibTeX .bst style files. - - Only the style files which result from conversion of the standard - styles are checked in the regression tests. Other style files which are - known to work include - - acm.bst, amsalpha.bst, amsplain.bst, apalike.bst, gerabbrv.bst, - geralpha.bst, gerapali.bst, gerplain.bst, gerunsrt.bst, ieeetr.bst, - siam.bst, mla.bst - - Style files which are known to fail: - * Currently (v0.5), there exists a style achicago.bst which seems to - fox urlbst; it turns out that there's a simpler but almost - equivalent style chicago.bst which works. - * Some APA-like styles, including at least apager.bst, seem to be - sufficiently different from the most common styles, that they - confuse urlbst completely. - * The koma-script styles and the refer styles are not designed to - produce conventional .bbl files, and urlbst does not aim to produce - anything useful from these. - - This might be a good time for me to revisit the rather convoluted logic - within the script, to make it a little more robust in the face of - variants like these, but don't hold your breath... - - The natbib and revtex style files already have URL fields. If you have - a BibTeX style file which you think ought to work, but with which the - script fails, send it to me, and I'll try to work out what I've missed - (no promises, though). - - Note that the command to invoke the script changed from `urlbst.pl' to - plain `urlbst' between versions 0.3 and 0.4. - -For example... - - To add URL support to the standard siam.bst file, you can give the - command -% urlbst /path/to/original/siam.bst siamurl.bst - - Your TeX installation will likely have some way of helping you find - where the original .bst files are. On teTeX-based systems, for example, - the command kpsewhich siam.bst returns the full path of the siam.bst - file which BibTeX would find. - - The distributed files abbrvurl.bst, alphaurl.bst, plainurl.bst and - unsrturl.bst are versions of the standard style files which have been - pre-converted. - - There is more general discussion of including URLs in bibliographies in - the UK TeX FAQ. - -Download and installation - - Download the file urlbst-0.6-1.tar.gz and unpack it. - - To install, you should simply copy the distributed urlbst script to - someplace on the path (such as /usr/local/bin, or ~/local/bin, - depending on your privileges and tastes). - - If you (might) want to use the pre-converted standard .bst files, then - you'll need to copy these to somewhere in the BibTeX search path. Type - kpsepath bst on Unix to find out the list of places BibTeX searches, - and pick either one of the user-local locations, or a system-wide one. - If you're installing in a system-wide location, you'll need admin - privileges, obviously, and you will probably need to use texhash, - mktexlsr or its equivalent, to update LaTeX's filename cache. For - further hints here, see the TeX FAQ entries on installing a package and - where LaTeX puts files. - - That should be all you have to do. - - The urlbst script is distributed with a path which should just work, as - long as the Perl binary is in your path, but if you have problems here, - then you might want to change the first line to something like -#! /usr/local/bin/perl - - if that's where your Perl binary is. - - You can also use the conventional ./configure; make; make install to - configure and install the package (as root, or using sudo if you're - installing it in a system location), though you still have to install - the .bst files by hand. This is rather heavyweight for the trivial - amount of configuration required, so it's almost always simpler just to - do things by hand. - - If you need to change some of the urlbst defaults, however, or if your - fingers type ./configure spontaneously, then you can be reassured that - the configure script supports the standard --prefix option, plus the - following options setting defaults: - - --with-eprints=url, --without-eprints - This makes the --eprints option to urlbst available by default, - and allows you to optionally specify a prefix for creating URLs - from eprint numbers. The default for this URL is - http://arxiv.org/abs/ -- this is appropriate for arXiv, - obviously, but there are now a variety of other preprint - archives appearing, for which this might be inappropriate. If - you have comments on this default, or alternatives, please let - me know. This option is enabled by default; if you have some - reason for disabling the --eprints option for urlbst, the give - the configure option --without-eprints - - --with-doi=url, --without-doi - This makes available the --doi option to urlbst and, as with the - --with-eprints option, allows you to customise the DOI resolver - URL. The --doi option to urlbst is on by default. - - --with-href=0/1/2 - This allows you to specify the type of hyperlinks which are - inserted in the bibliography. Values 0, 1 and 2, indicating no - hyperlinks, hypertex-style links, and hyperref-style links, - respectively. The default is --with-href=0. The hyperref-style - option is intended to complement the increasingly standard - hyperref package. - - The first two options simply change defaults, and if you never use the - new eprints or doi fields, then the defaults don't matter to you. - - Since the modified style generates URLs wrapped in the \url{} macro, it - is useful to use the resulting bibliography style alongside the url - package. Since this tends to work with hyperref anyway, where possible, - you don't get any extra goodness by changing the --with-href default at - configuration time. - - Documentation - - Basic documentation is in the file urlbst.tex. This is distributed as a - PDF file, but if you want to regenerate it, use -% latex urlbst -% bibtex urlbst -% latex urlbst -% latex urlbst - -Further Information - - urlbst is archived on CTAN at biblio/bibtex/contrib/urlbst/, and - discussed in the TeX FAQ. - - The home page of urlbst might possibly have more recent versions than - the one you're looking at now. - - Copyright 2002-8, Norman Gray. Released under the terms of the GNU - General Public Licence. - -Version history - - 0.6-1, 2008 June 16 - Fixed some broken links to the various citation standards (I - think in this context this should probably not be happening, - yes?). The distributed *url.bst no longer have the --inlinelinks - option turned on by default. - - 0.6, 2007 March 26 - Added the option --inlinelinks, which adds inline hyperlinks to - any bibliography entries which have URLs, but does so inline, - rather than printing the URL explicitly in the bibliography. - This is (primarily) useful if you're preparing a version of a - document which will be read on-screen. Thanks to Jason Eisner - for the suggestion, and much testing. - - Incorporate hyperref bugfixes from Pawel/ Widera. - - 0.6b3 - Further reworkings of the inlinelinks support, so that - it's now fired by a format.title (or format.btitle) line, - with a fallback in fin.entry. This should be more robust, - and allows me to delete some of the previous version's - gymnastics. - - 0.6b2 - Reworked inlinelinks support; should now be more robust. - Incorporate hyperref bugfixes from Pawel/ Widera. - - 0.6b1 - Added the option inlinelinks, which adds inline hyperlinks - to any bibliography entries which have URLs, but does so - inline, rather than printing the URL explicitly in the - bibliography. This is (only) useful if you're preparing a - version of a document which will be read on-screen. - - 0.5.2, 2006 September 6 - Another set of documentation-only changes, hopefully clarifying - installation. - - 0.5.1, 2006 January 10 - No functionality changes. Documentation and webpage changes - only, hopefully clarifying usage and configuration - - 0.5, 2005 June 3 - Added support for Digital Object Identifiers (DOI) fields in - bibliographies. - - 0.4-1, 2005 April 12 - Documentation improvements -- there are now examples in the help - text! - - 0.4, 2004 December 1 - Bug fixes: now compatible with mla.bst and friends. Now uses - ./configure (optionally). Assorted reorganisation. - - 0.3, 2003 June 4 - Added --eprint, --hypertex and --hyperref options. - - 0.2, 2002 October 23 - The `editor' field is now supported in the webpage entry type. - Basic documentation added. - - 0.1, 2002 April - Initial version - - Norman Gray - 2008 June 16 diff --git a/Master/texmf-dist/doc/latex/urlbst/VERSION b/Master/texmf-dist/doc/latex/urlbst/VERSION deleted file mode 100644 index 6a4461b90b2..00000000000 --- a/Master/texmf-dist/doc/latex/urlbst/VERSION +++ /dev/null @@ -1 +0,0 @@ -urlbst-0.6-1 diff --git a/Master/texmf-dist/doc/latex/urlbst/urlbst.pdf b/Master/texmf-dist/doc/latex/urlbst/urlbst.pdf Binary files differdeleted file mode 100644 index 5ff76111f17..00000000000 --- a/Master/texmf-dist/doc/latex/urlbst/urlbst.pdf +++ /dev/null diff --git a/Master/texmf-dist/source/latex/urlbst/configure b/Master/texmf-dist/source/bibtex/urlbst/configure index 7543f55f02b..50363b82685 100755 --- a/Master/texmf-dist/source/latex/urlbst/configure +++ b/Master/texmf-dist/source/bibtex/urlbst/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.ac Revision: 1.16 . +# From configure.ac Revision. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for urlbst 0.6-1. +# Generated by GNU Autoconf 2.61 for urlbst 0.6-5. # # Report bugs to <norman@astro.gla.ac.uk>. # @@ -575,8 +575,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='urlbst' PACKAGE_TARNAME='urlbst' -PACKAGE_VERSION='0.6-1' -PACKAGE_STRING='urlbst 0.6-1' +PACKAGE_VERSION='0.6-5' +PACKAGE_STRING='urlbst 0.6-5' PACKAGE_BUGREPORT='norman@astro.gla.ac.uk' ac_unique_file="urlbst.in" @@ -1134,7 +1134,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures urlbst 0.6-1 to adapt to many kinds of systems. +\`configure' configures urlbst 0.6-5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1195,7 +1195,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of urlbst 0.6-1:";; + short | recursive ) echo "Configuration of urlbst 0.6-5:";; esac cat <<\_ACEOF @@ -1268,7 +1268,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -urlbst configure 0.6-1 +urlbst configure 0.6-5 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1282,7 +1282,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by urlbst $as_me 0.6-1, which was +It was created by urlbst $as_me 0.6-5, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -1635,7 +1635,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -RELEASEDATE="2008 June 16" +RELEASEDATE="2011 March 8" @@ -1684,17 +1684,17 @@ fi -WITHEPRINTS=0 +WITHEPRINTS=1 EPRINTURL=http://arxiv.org/abs/ -WITHDOIRESOLVER=0 +WITHDOIRESOLVER=1 DOIURL=http://dx.doi.org/ -WITHPUBMEDRESOLVER=0 +WITHPUBMEDRESOLVER=1 PUBMEDURL=http://www.ncbi.nlm.nih.gov/pubmed/ @@ -2190,7 +2190,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by urlbst $as_me 0.6-1, which was +This file was extended by urlbst $as_me 0.6-5, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2233,7 +2233,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -urlbst config.status 0.6-1 +urlbst config.status 0.6-5 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/Master/texmf-dist/source/latex/urlbst/configure.ac b/Master/texmf-dist/source/bibtex/urlbst/configure.ac index cd41ab186c1..8981ad569cc 100644 --- a/Master/texmf-dist/source/latex/urlbst/configure.ac +++ b/Master/texmf-dist/source/bibtex/urlbst/configure.ac @@ -1,8 +1,8 @@ dnl Process this file with autoconf to produce a configure script -AC_REVISION($Revision: 1.16 $) +AC_REVISION($Revision$) -AC_INIT(urlbst, 0.6-1, norman@astro.gla.ac.uk) -RELEASEDATE="2008 June 16" +AC_INIT(urlbst, 0.6-5, norman@astro.gla.ac.uk) +RELEASEDATE="2011 March 8" AC_SUBST(RELEASEDATE) AC_PREREQ(2.50) @@ -13,19 +13,19 @@ AC_PATH_PROG(PERL, perl) dnl Add --with-eprints: tune default support for eprints -WITHEPRINTS=0 +WITHEPRINTS=1 AC_SUBST(WITHEPRINTS) EPRINTURL=http://arxiv.org/abs/ AC_SUBST(EPRINTURL) dnl Add --with-doi: tune default support for DOI fields -WITHDOIRESOLVER=0 +WITHDOIRESOLVER=1 AC_SUBST(WITHDOIRESOLVER) DOIURL=http://dx.doi.org/ AC_SUBST(DOIURL) dnl Add --with-pubmed -WITHPUBMEDRESOLVER=0 +WITHPUBMEDRESOLVER=1 AC_SUBST(WITHPUBMEDRESOLVER) PUBMEDURL=http://www.ncbi.nlm.nih.gov/pubmed/ AC_SUBST(PUBMEDURL) |