From 88a7c1cfb083c98a210bdf72c884745fea80386f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 26 Aug 2011 22:18:03 +0000 Subject: ascelike (24aug11) git-svn-id: svn://tug.org/texlive/trunk@23704 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst | 273 +++++++++++++++++---- 1 file changed, 227 insertions(+), 46 deletions(-) (limited to 'Master/texmf-dist/bibtex') diff --git a/Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst b/Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst index 5b6e3708ff1..d8c3f87900e 100644 --- a/Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst +++ b/Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst @@ -1,5 +1,8 @@ %% File: ascelike.bst %% +%% August 20, 2011 +%% +%% %% An unofficial bibliography style-file for ASCE-like bibliographies. %% Adapted from chicago.bst (24-jan-88 version) of Glenn Paulley %% This bst style should be used with document class ascelike.cls @@ -64,7 +67,7 @@ ENTRY institution journal key -% month not used in apalike + month note number organization @@ -74,6 +77,7 @@ ENTRY series title type + url volume year } @@ -413,6 +417,14 @@ FUNCTION {format.bvolume} if$ } +FUNCTION {format.howpublished} +{ howpublished empty$ + { "" } + { "(" howpublished * ")" * + } + if$ +} + FUNCTION {format.number.series} { volume empty$ { number empty$ @@ -502,7 +514,7 @@ FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ - { "chapter" } + { "Chapter" } { type "l" change.case$ } if$ chapter tie.or.space.connect @@ -671,6 +683,18 @@ FUNCTION {calc.label} % The change here from newapa is to also include organization as a % citation label if author or editor is missing. % +% Changed - MRK. With ASCE's author-year citation style, there is no +% need for the first argument in the \citeauthoryear command. The first +% argument in the chicago.bst style contains a full list of all +% author last names. This argument is not used with ASCE's styel. +% We replace this argument with a null argument "{}", +% with the 2nd and 3rd arguments giving the citation author and the year. +% This change is made so that two separate articles, say by Huang, Bird, and +% Bell and by Haung, Bird, and Hendrich (both published in, say, 2009) +% will be given the citations Jones et al. (2009a) and Jones et al. (2009b). +% Without the change, both would be given the citations Jones et al. (2009). +% Thanks to Alec Gosse. +% { type$ "book" = type$ "inbook" = or @@ -686,34 +710,38 @@ FUNCTION {calc.label} } if$ - author empty$ % generate the full label citation information. - { editor empty$ - { organization empty$ - { type$ "manual" = - { title empty$ - { "no author, editor, organization or title in " - cite$ * warning$ - "??" - } - { title } - if$ - } - { "no author, editor, or organization in " cite$ * warning$ - "??" } - if$ - } - { organization } - if$ - } - { editor my.full.label } - if$ - } - { author my.full.label } - if$ - -% leave label on the stack, to be popped when required. - - "}{" * swap$ * "}{" * +%------------- cut MRK ------------------- +% author empty$ % generate the full label citation information. +% { editor empty$ +% { organization empty$ +% { type$ "manual" = +% { title empty$ +% { "no author, editor, organization or title in " +% cite$ * warning$ +% "??" +% } +% { title } +% if$ +% } +% { "no author, editor, or organization in " cite$ * warning$ +% "??" } +% if$ +% } +% { organization } +% if$ +% } +% { editor my.full.label } +% if$ +% } +% { author my.full.label } +% if$ +% +%% leave label on the stack, to be popped when required. +% +% "}{" * swap$ * "}{" * +%------------- paste MRK --------------- + "}{" swap$ * "}{" * +%------------- end MRK ----------------- % year field.or.null purify$ #-1 #4 substring$ * % % save the year for sort processing afterwards (adding a, b, c, etc.) @@ -765,7 +793,12 @@ FUNCTION {article} } if$ new.block - note output + note empty$ + { } + { before.all 'output.state := + "\ " note * output + } + if$ fin.entry } @@ -790,6 +823,7 @@ FUNCTION {book} new.block format.number.series output new.sentence + format.howpublished output publisher "publisher" output.check address output } @@ -798,8 +832,27 @@ FUNCTION {book} } if$ format.edition output + url empty$ + { } + { mid.sentence 'output.state := + "$<$" url * "$>$" * output +% format.url output + } + if$ + month empty$ + { } + { before.all 'output.state := + "\ (" month * ")" * output + } + if$ new.block - note output + note empty$ + { } + { before.all 'output.state := + "\ " note * output + } + if$ +% note output fin.entry } @@ -836,12 +889,13 @@ FUNCTION {inbook} format.btitle "title" output.check crossref missing$ { format.bvolume output - format.chapter.pages "chapter and pages" output.check new.block format.number.series output - new.sentence + format.howpublished output publisher "publisher" output.check address output + format.edition output + format.chapter.pages output } { format.chapter.pages "chapter and pages" output.check new.block @@ -866,6 +920,7 @@ FUNCTION {incollection} { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output + format.howpublished output publisher "publisher" output.check address output format.edition output @@ -892,9 +947,10 @@ FUNCTION {inproceedings} { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output + format.howpublished output organization output % for apalike address output % there's no year - new.sentence % here so things +% new.sentence % here so things publisher output % are simpler format.pages output } @@ -902,6 +958,19 @@ FUNCTION {inproceedings} format.pages output } if$ + url empty$ + { } + { mid.sentence 'output.state := + "$<$" url * "$>$" * output +% format.url output + } + if$ + month empty$ + { } + { before.all 'output.state := + "\ (" month * ")" * output + } + if$ new.block note output fin.entry @@ -966,6 +1035,19 @@ FUNCTION {manual} % organization output address output format.edition output + url empty$ + { } + { mid.sentence 'output.state := + "$<$" url * "$>$" * output +% format.url output + } + if$ + month empty$ + { } + { before.all 'output.state := + "\ (" month * ")" * output + } + if$ new.block note output fin.entry @@ -974,18 +1056,45 @@ FUNCTION {manual} FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check - author format.key output % special for - output.year.check % apalike + author format.key output % special for + output.year.check % apalike new.block format.title "title" output.check - new.block - "Master's thesis" format.thesis.type output.nonnull + after.quote 'output.state := + "M.S. thesis" format.thesis.type output.nonnull school "school" output.check - address output + address output.nonnull + url empty$ + { } + { mid.sentence 'output.state := + "$<$" url * "$>$" * output +% format.url output + } + if$ + month empty$ + { } + { before.all 'output.state := + "\ (" month * ")" * output + } + if$ new.block note output fin.entry } +%{ output.bibitem +% format.authors "author" output.check +% author format.key output % special for +% output.year.check % apalike +% new.block +% format.title "title" output.check +% new.block +% "Master's thesis" format.thesis.type output.nonnull +% school "school" output.check +% address output +% new.block +% note output +% fin.entry +%} FUNCTION {misc} { output.bibitem @@ -993,14 +1102,60 @@ FUNCTION {misc} author format.key output % special for output.year.check % apalike new.block - format.title output - new.block - howpublished output + format.title "title" output.check + after.quote 'output.state := + journal emphasize "journal" output.check + organization output + url empty$ + { } + { mid.sentence 'output.state := + "$<$" url * "$>$" * output +% format.url output + } + if$ + month empty$ + { } + { before.all 'output.state := + "\ (" month * ")" * output + } + if$ new.block note output fin.entry } +FUNCTION {format.url} +{ url empty$ + { "" } + { "$<$" url * "$>$" * + } + if$ +} + +%{ output.bibitem +% format.authors "author" output.check +% author format.key output % special for +% output.year.check % apalike +% new.block +% format.title "title" output.check +% after.quote 'output.state := +% crossref missing$ +% { journal emphasize "journal" output.check +% organization output +% format.vol.num.pages output +% } +% { format.article.crossref output.nonnull +% format.pages output +% } +% if$ +% new.block +% note output +% fin.entry +%} + + + + FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check @@ -1008,10 +1163,23 @@ FUNCTION {phdthesis} output.year.check % apalike new.block format.title "title" output.check - after.quote.comma 'output.state := - "PhD thesis" format.thesis.type output.nonnull + after.quote 'output.state := + "Ph.D. thesis" format.thesis.type output.nonnull school "school" output.check - address output.check + address output.nonnull + url empty$ + { } + { mid.sentence 'output.state := + "$<$" url * "$>$" * output +% format.url output + } + if$ + month empty$ + { } + { before.all 'output.state := + "\ (" month * ")" * output + } + if$ new.block note output fin.entry @@ -1046,6 +1214,19 @@ FUNCTION {techreport} format.tr.number output.nonnull institution "institution" output.check address output + url empty$ + { } + { mid.sentence 'output.state := + "$<$" url * "$>$" * output +% format.url output + } + if$ + month empty$ + { } + { before.all 'output.state := + "\ (" month * ")" * output + } + if$ new.block note output fin.entry -- cgit v1.2.3