Files
dehaeze26_cubic_architectur…/paper/asmejour/asmejour.bst
2025-11-27 17:53:13 +01:00

1953 lines
42 KiB
Plaintext

%%
%% This is file `asmejour.bst', initially generated with the docstrip utility and extensively customized.
%%
%% *** This bibtex style follows ASME journals ***
%%
%%
%% This file is asmejour.bst, version 1.09 dated 2025/04/04.
%%
%% This file was generated and edited by John Lienhard.
%% This file is a derivative work under Clause 6 of the LPPL license.
%%
%% The generated file and the modifications are based on the formats that ASME is using in
%% published journal papers in early 2022. Details of the modifications follow.
%%
%% Created entry: @online{...} for web publications (and aliased it to @www and @electronic)
%% Created fields: eventdate, urldate, urltype, venue, fourth, fourthtype
%% Format for url: urlprefix = {}, format.web.urldate, bbl.urldate; urltype = {} changes "accessed" to other text.
%% Added fields: venue and eventdate to @inproceedings
%% Added field: version={}, format.version to @book, @online, @manual; versiontype = {} changes "Version" to other
%% Updated doi: doi url prefix updated to https://doi.org/
%%
%% Remove "emphasize" from journal article, and linked doi (or else url) to journal name (or book title)
%% without explicitly showing the urls. The urls may be added to the note = {..} field to display explicitly
%% doilink fn is similar to tex.stackexchange.com/questions/76174/set-doi-link-on-journal-name-with-bibtex-bst
%% Modified fin.entry to omit period after a url, including a separate version for article and book which have
%% hyperlinks to titles.
%%
%% Capitalize: Vol., Chap., & No.
%% Remove "emphasize" before comma in format.bvolume,
%% @incollection: move chapter and edition, change format.in.ed.booktitle, modify format for "series"
%%
%% Modify \eprint to include full url, and provided some macros for archive={..} ...
%% ....this format is uncommon in ASME journals so implemented only as a url (but can easily patch if needed)
%%
%% Change format.note capitalizations from "l" to "t" and "u" to "t" respectively.
%%
%% Included macros for the titles of ASME's journals, following ASME formats (updated 4/10/20)
%%
%%
%% Modifications in v1.03 (2020/04/12)
%%
%% @article: add warning for empty pages; change ordering of numpages "pages" for eid
%% @book: reorder edition, version, and volume
%% @inbook: reorder edition, version, volume, etc.; hyperlink title to doi, url, or eprint
%% @incollection: create format.doi.booktitle to hyperlink title of collection to doi, url, or eprint.
%% @inproceedings: move venue, eventdate, and paper number toward end; warn that address should not be used with venue;
%% warn for empty venue and empty date;
%% create format.pvolume and format.in.ed.proctitle, to permit both [paper] number and volume
%% print either organization or publisher but not both
%% add bbl.paperno = "Paper No." and enable type ={} to change it (this is not backward compatible!)
%% hyperlink paper number to doi, or url, or eprint by default.
%% @inserialcollection: new entry type created to deal with citing articles in edited volumes that
%% come under different titles in a an ongoing series. This changes the placement
%% of Vol. number in the reference, putting series name and volume in ( ) after title.
%% This calls a new function format.in.ed.serialtitle. Hyperlink title of book.
%% For most uses, ordinary @incollection will be preferred.
%% This edit also reverts @incollection and @inproceedings to use Series, Vol. after eds,
%% which is consistent with many ASME references
%% @proceedings: edit order of fields; warn that address should not be used with venue;
%% print either organization or publisher but not both;
%% hyperlink title of proceedings to doi, url, or eprint;
%% provide format.alt.link to print the hyperlink if the report number is empty.
%% @techrep: move report number after address; hyperlink report number to doi, url, or eprint;
%% provide format.alt.link to print the hyperlink if the report number is empty.
%% provide institution.address function
%%
%% Modifications in v1.04 (2020/04/15)
%% add hdl macro as a synonym for hndl
%% separate format.serial.volume from format.bvolume;
%% arrange format.bvolume to order vol and series as ", Vol. X of Series Title", which affects
%% @book, @inbook, @incollection, and @proceedings.
%%
%% Modifications in v1.05 (2021/12/23)
%% convert remaining http:// prefixes to https://
%% replace \href{}{} in \eprint by \url
%% provide \hrefurl for compatibility with LaTeX3 pdfmanagement
%% use \hrefurl in doilink, rather than \href
%% add macro text "jht" for "ASME J. Heat Transfer-Trans. ASME"
%%
%% Modifications in v1.06 (2022/12/30)
%% add macro text "jhmt" for "ASME J. Heat Mass Transfer"
%%
%% Modifications in v1.07 (2023/05/06)
%% correct code that provides \hrefurl
%%
%% Modifications in v1.08 (2024/02/03)
%% correct punctuation in journal macros
%%
%% Modifications in v1.09 (2025/04/04)
%% support chapter and page in @book
%%
%% Author: John H. Lienhard V
%% Department of Mechanical Engineering
%% Massachusetts Institute of Technology
%% Cambridge, MA 02139-4307 USA
%%
%========================================================================
%% LICENSE:
%%
%% Copyright (c) 2020 John H. Lienhard
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
%% associated documentation files (the "Software"), to deal in the Software without restriction,
%% including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
%% and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
%% subject to the following conditions:
%%
%% The above copyright notice and this permission notice shall be included in all copies or
%% substantial portions of the Software.
%%
%% The software is provided "as is", without warranty of any kind, express or implied, including but
%% not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement.
%% in no event shall the authors or copyright holders be liable for any claim, damages or other liability,
%% whether in an action of contract, tort or otherwise, arising from, out of or in connection with the
%% software or the use or other dealings in the software.
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
% The original source files for docstrip were:
%
% merlin.mbs (with options: `seq-no,nm-rev,jnrlst,dt-beg,xmth,tit-qq,atit-u,thtit-a,vol-bf,volp-com,jwdpg,pp-last,num-xser,numser,ser-vol,ser-ed,pre-edn,doi,edby,edbyy,blk-com,in-x,pp,ed,abr,ednx,ord,jabr,revdata,eprint,url,url-blk,eprint,url,url-nt,em-it,nfss,')
% ----------------------------------------
%
% Copyright 1994-2011 Patrick W Daly
% ===============================================================
% IMPORTANT NOTICE:
% This bibliographic style (bst) file has been generated from one or
% more master bibliographic style (mbs) files, listed above.
%
% This generated file can be redistributed and/or modified under the terms
% of the LaTeX Project Public License Distributed from CTAN
% archives in directory macros/latex/base/lppl.txt; either
% version 1 of the License, or any later version.
% ===============================================================
% Name and version information of the main mbs file:
% \ProvidesFile{merlin.mbs}[2011/11/18 4.33 (PWD, AO, DPC)]
% For use with BibTeX version 0.99a or later
%
% ===============================================================
%-------------------------------------------------------------------
%-------------------------------------------------------------------
% This bibliography style file is intended for texts in ENGLISH
% This is a numerical citation style, and as such is standard LaTeX.
% It requires no extra package to interface to the main text.
% The form of the \bibitem entries is
% \bibitem{key}...
% Usage of \cite is as follows:
% \cite{key} ==>> [#]
% \cite[chap. 2]{key} ==>> [#, chap. 2]
% where # is a number determined by the ordering in the reference list.
% The order in the reference list is that by which the works were originally
% cited in the text, or that in the database.
%---------------------------------------------------------------------
ENTRY
{ address
archive
author
booktitle
chapter
collaboration
doi
edition
editor
eid
eprint
eventdate
howpublished
institution
journal
key
month
note
number
numpages
organization
pages
publisher
school
series
title
type
url
urldate
urltype
venue
version
versiontype
volume
year
}
{}
{ label }
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
}
STRINGS { s t}
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
{ add.period$ write$
newline$
"\newblock " write$
}
{ output.state before.all =
'write$
{ add.period$ " " * write$ }
if$
}
if$
mid.sentence 'output.state :=
}
if$
s
}
FUNCTION {output}
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
{ pop$ "empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}
FUNCTION {fin.entry}
{ url empty$
{ eprint empty$
{
add.period$
write$
newline$
}{
write$
newline$
}
if$
}{
write$
newline$
}
if$
}
%% For entries that hyperlink content
FUNCTION {fin.urllink.entry}
{ add.period$
write$
newline$
}
FUNCTION {new.block}
{ output.state before.all =
'skip$
{ after.block 'output.state := }
if$
}
FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
'skip$
{ after.sentence 'output.state := }
if$
}
if$
}
FUNCTION {add.blank}
{ " " * before.all 'output.state :=
}
FUNCTION {date.block}
{
skip$
}
FUNCTION {not}
{ { #0 }
{ #1 }
if$
}
FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}
FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}
FUNCTION {non.stop}
{ duplicate$
"}" * add.period$
#-1 #1 substring$ "." =
}
FUNCTION {new.block.checka}
{ empty$
'skip$
'new.block
if$
}
FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.block
if$
}
FUNCTION {new.sentence.checka}
{ empty$
'skip$
'new.sentence
if$
}
FUNCTION {new.sentence.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.sentence
if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
'skip$
if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
{ "\textit{" swap$ * "}" * }
if$
}
FUNCTION {bolden}
{ duplicate$ empty$
{ pop$ "" }
{ "\textbf{" swap$ * "}" * }
if$
}
FUNCTION {tie.or.space.prefix}
{ duplicate$ text.length$ #3 <
{ "~" }
{ " " }
if$
swap$
}
FUNCTION {capitalize}
{ "u" change.case$ "t" change.case$ }
FUNCTION {space.word}
{ " " swap$ * " " * }
% Here are the language-specific definitions for explicit words.
% Each function has a name bbl.xxx where xxx is the English word.
% The language selected here is ENGLISH
FUNCTION {bbl.and}
{ "and"}
FUNCTION {bbl.etal}
{ "et~al." }
FUNCTION {bbl.editors}
{ "eds." }
FUNCTION {bbl.editor}
{ "ed." }
FUNCTION {bbl.edby}
{ "edited by" }
FUNCTION {bbl.edition}
{ "ed." }
FUNCTION {bbl.volume}
{ "Vol." }
FUNCTION {bbl.of}
{ "of" }
FUNCTION {bbl.number}
{ "No." }
FUNCTION {bbl.nr}
{ "No." }
FUNCTION {bbl.in}
{ "in" }
FUNCTION {bbl.pages}
{ "pp." }
FUNCTION {bbl.page}
{ "p." }
FUNCTION {bbl.eidpp}
{ "pages" }
FUNCTION {bbl.chapter}
{ "Chap." }
FUNCTION {bbl.techrep}
{ "Tech. Rep." }
FUNCTION {bbl.paperno}
{ "Paper No." }
FUNCTION {bbl.mthesis}
{ "Master's thesis" }
FUNCTION {bbl.phdthesis}
{ "Ph.D. thesis" }
FUNCTION {bbl.first}
{ "1st" }
FUNCTION {bbl.second}
{ "2nd" }
FUNCTION {bbl.third}
{ "3rd" }
FUNCTION {bbl.fourth}
{ "4th" }
FUNCTION {bbl.fifth}
{ "5th" }
FUNCTION {bbl.st}
{ "st" }
FUNCTION {bbl.nd}
{ "nd" }
FUNCTION {bbl.rd}
{ "rd" }
FUNCTION {bbl.th}
{ "th" }
FUNCTION {bbl.urldate}
{ "accessed" }
FUNCTION {bbl.version}
{ "Version" }
MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
MACRO {mar} {"Mar."}
MACRO {apr} {"Apr."}
MACRO {may} {"May"}
MACRO {jun} {"Jun."}
MACRO {jul} {"Jul."}
MACRO {aug} {"Aug."}
MACRO {sep} {"Sep."}
MACRO {oct} {"Oct."}
MACRO {nov} {"Nov."}
MACRO {dec} {"Dec."}
FUNCTION {eng.ord}
{ duplicate$ "1" swap$ *
#-2 #1 substring$ "1" =
{ bbl.th * }
{ duplicate$ #-1 #1 substring$
duplicate$ "1" =
{ pop$ bbl.st * }
{ duplicate$ "2" =
{ pop$ bbl.nd * }
{ "3" =
{ bbl.rd * }
{ bbl.th * }
if$
}
if$
}
if$
}
if$
}
MACRO {arxiv} {"https://arxiv.org/abs/"}
MACRO {googlebooks} {"https://books.google.com/books?id="}
MACRO {hdl} {"https://hdl.handle.net/"}
MACRO {hndl} {"https://hdl.handle.net/"}
MACRO {jstor} {"https://www.jstor.org/stable/"}
MACRO {oclc} {"https://www.worldcat.org/oclc/"}
MACRO {pubmed} {"https://www.ncbi.nlm.nih.gov/pubmed/"}
MACRO {amr} {"Appl.\ Mech.\ Rev."}
MACRO {lds} {"ASME Letters Dynamic Systems"}
MACRO {jru} {"ASME J. Risk Uncertainty"}
MACRO {jsbc} {"ASME J. Sustainable Bldg.\ and Cities"}
MACRO {jam} {"ASME J. Appl.\ Mech."}
MACRO {jbe} {"ASME J. Biomed.\ Eng."}
MACRO {jcnd} {"ASME J. Comput.\ Nonlin.\ Dyn."}
MACRO {jcise} {"ASME J. Comput.\ Inf.\ Sci.\ Eng."}
MACRO {jds} {"J. Dyn.\ Syst.---T. ASME"}
MACRO {jep} {"ASME J. Electron.\ Packag."}
MACRO {jert} {"ASME J. Energy Resour."}
MACRO {jegtp} {"ASME J. Eng.\ Gas Turbines Power"}
MACRO {jem} {"ASME J. Eng.\ Mater."}
MACRO {jfe} {"ASME J. Fluids Eng."}
MACRO {jfcst} {"ASME J. Fuel Cell Sci.\ Tech."}
MACRO {jht} {"ASME J. Heat Transfer---Trans.\ ASME"}
MACRO {jhmt} {"ASME J. Heat Mass Transfer"}
MACRO {jmse} {"ASME J. Manuf.\ Sci.\ E."}
MACRO {jmd} {"ASME J. Mech.\ Des."}
MACRO {jmr} {"ASME J. Mech.\ Robot."}
MACRO {jmdv} {"ASME J. Med.\ Devices"}
MACRO {jmnm} {"ASME J. Micro Nano-Manuf."}
MACRO {jnem} {"ASME J. Nanotech Eng.\ Med."}
MACRO {joma} {"ASME J. Offshore Mech.\ Arct."}
MACRO {jpv} {"ASME J. Press.\ Vess."}
MACRO {jse} {"ASME J. Sol.\ Energy"}
MACRO {jtsea} {"ASME J. Therm.\ Sci.\ Eng.\ Appl."}
MACRO {jtb} {"ASME J. Tribol."}
MACRO {jtm} {"ASME J. Turbomach."}
MACRO {jva} {"ASME J. Vib.\ Acoust."}
MACRO {acmcs} {"ACM Comput.\ Surv."}
MACRO {acta} {"Acta Inf."}
MACRO {cacm} {"Commun.\ ACM"}
MACRO {ibmjrd} {"IBM J. Res.\ Dev."}
MACRO {ibmsj} {"IBM Syst.~J."}
MACRO {ieeese} {"IEEE Trans.\ Software Eng."}
MACRO {ieeetc} {"IEEE Trans.\ Comput."}
MACRO {ieeetcad}
{"IEEE Trans. Comput.\ Aid.\ Des."}
MACRO {ipl} {"Inf.\ Process.\ Lett."}
MACRO {jacm} {"J.~ACM"}
MACRO {jcss} {"J.~Comput.\ Syst.\ Sci."}
MACRO {scp} {"Sci.\ Comput.\ Program."}
MACRO {sicomp} {"SIAM J. Comput."}
MACRO {tocs} {"ACM Trans.\ Comput.\ Syst."}
MACRO {tods} {"ACM Trans.\ Database Syst."}
MACRO {tog} {"ACM Trans.\ Graphic."}
MACRO {toms} {"ACM Trans.\ Math.\ Software"}
MACRO {toois} {"ACM Trans.\ Office Inf.\ Syst."}
MACRO {toplas} {"ACM Trans.\ Progr.\ Lang.\ Syst."}
MACRO {tcs} {"Theor.\ Comput.\ Sci."}
FUNCTION {bibinfo.check}
{ swap$
duplicate$ missing$
{
pop$ pop$
""
}
{ duplicate$ empty$
{
swap$ pop$
}
{ swap$
pop$
}
if$
}
if$
}
FUNCTION {bibinfo.warn}
{ swap$
duplicate$ missing$
{
swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
""
}
{ duplicate$ empty$
{
swap$ "empty " swap$ * " in " * cite$ * warning$
}
{ swap$
pop$
}
if$
}
if$
}
FUNCTION {format.eprint}
{ eprint duplicate$ empty$
'skip$
{ "\eprint"
archive empty$
{ "there's an eprint but no archive in " cite$ * warning$ }
{ "[" * archive * "]" * }
if$
"{" * swap$ * "}" *
}
if$
}
FUNCTION {format.version}
{ version empty$
{""}
{version "version" bibinfo.check
versiontype duplicate$ empty$
{ pop$ bbl.version }
'skip$
if$
"versiontype" bibinfo.check
swap$ duplicate$ empty$
{ pop$ "t" change.case$ }
{ tie.or.space.prefix * * }
if$
}
if$
}
FUNCTION {format.web.urldate}
{ urldate empty$
{""}
{urldate "urldate" bibinfo.check
urltype duplicate$ empty$
{ pop$ bbl.urldate }
'skip$
if$
"urltype" bibinfo.check
swap$ duplicate$ empty$
{ pop$ "t" change.case$ }
{ tie.or.space.prefix * * }
if$
", " *
}
if$
}
FUNCTION {format.url}
{
url
duplicate$ empty$
{ pop$ "" }
{ "\urlprefix\url{" swap$ * "}" *
format.web.urldate swap$ *
}
if$
}
INTEGERS { nameptr namesleft numnames }
STRINGS { bibinfo}
FUNCTION {format.names}
{ 'bibinfo :=
duplicate$ empty$ 'skip$ {
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv~}{ll}{, f.}{, jj}"
format.name$
bibinfo bibinfo.check
't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{
" " * bbl.etal *
}
{
bbl.and
space.word * t *
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
}
FUNCTION {format.names.ed}
{
'bibinfo :=
duplicate$ empty$ 'skip$ {
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{f.~}{vv~}{ll}{, jj}"
format.name$
bibinfo bibinfo.check
't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{
" " * bbl.etal *
}
{
bbl.and
space.word * t *
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
}
FUNCTION {format.authors}
{ author "author" format.names
duplicate$ empty$ 'skip$
{ collaboration "collaboration" bibinfo.check
duplicate$ empty$ 'skip$
{ " (" swap$ * ")" * }
if$
*
}
if$
}
FUNCTION {get.bbl.editor}
{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
FUNCTION {format.editors}
{ editor "editor" format.names duplicate$ empty$ 'skip$
{
"," *
" " *
get.bbl.editor
*
}
if$
}
FUNCTION {format.doi}
{ doi empty$
{ "" }
{
"\doi{" doi * "}" *
}
if$
}
FUNCTION {doilink}
{ duplicate$ empty$
{ pop$ "" }
{ doi empty$
{ url empty$
{ eprint empty$
{ skip$ }
{ "\hrefurl{" archive eprint * * "}{" * swap$ * "}" * }
if$
}
{ "\hrefurl{" url * "}{" * swap$ * "}" * }
if$
}
{ "\hrefurl{https://doi.org/" doi * "}{" * swap$ * "}" * }
if$
}
if$
}
FUNCTION {format.note}
{
note empty$
{ "" }
{ note #1 #1 substring$
duplicate$ "{" =
'skip$
{ output.state mid.sentence =
{ "t" }
{ "t" }
if$
change.case$
}
if$
note #2 global.max$ substring$ * "note" bibinfo.check
}
if$
}
FUNCTION {format.title}
{ title
"title" bibinfo.check
duplicate$ empty$ 'skip$
{
"\enquote{" swap$ *
non.stop
{ ",} " * }
{ "} " * }
if$
}
if$
}
FUNCTION {end.quote.title}
{ title empty$
'skip$
{ before.all 'output.state := }
if$
}
FUNCTION {output.bibitem}
{ newline$
"\bibitem{" write$
cite$ write$
"}" write$
newline$
""
before.all 'output.state :=
}
FUNCTION {n.dashify}
{
't :=
""
{ t empty$ not }
{ t #1 #1 substring$ "-" =
{ t #1 #2 substring$ "--" = not
{ "--" *
t #2 global.max$ substring$ 't :=
}
{ { t #1 #1 substring$ "-" = }
{ "-" *
t #2 global.max$ substring$ 't :=
}
while$
}
if$
}
{ t #1 #1 substring$ *
t #2 global.max$ substring$ 't :=
}
if$
}
while$
}
FUNCTION {word.in}
{ "" }
FUNCTION {format.date}
{
""
duplicate$ empty$
year "year" bibinfo.check duplicate$ empty$
{ swap$ 'skip$
{ "there's a month but no year in " cite$ * warning$ }
if$
*
}
{ swap$ 'skip$
{
swap$
" " * swap$
}
if$
*
}
if$
}
FUNCTION {format.btitle}
{ title "title" bibinfo.check
duplicate$ empty$ 'skip$
{
emphasize
}
if$
}
FUNCTION {format.doi.btitle}
{ title "title" bibinfo.check
duplicate$ empty$ 'skip$
{
doilink emphasize
}
if$
}
FUNCTION {either.or.check}
{ empty$
'pop$
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
}
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
{ bbl.volume volume tie.or.space.prefix "volume" bibinfo.check * *
series "series" bibinfo.check
duplicate$ empty$ 'pop$
{ swap$ bbl.of space.word * swap$
* }
if$
"volume and number" number either.or.check
}
if$
}
FUNCTION {format.pvolume}
{ volume empty$
{ "" }
{ bbl.volume volume tie.or.space.prefix
"volume" bibinfo.check * *
series "series" bibinfo.check
duplicate$ empty$ 'pop$
{ ", " * swap$ *}
if$
}
if$
}
FUNCTION {format.serial.volume}
{ volume empty$
{ "" }
{ bbl.volume volume tie.or.space.prefix
"volume" bibinfo.check * *
series "series" bibinfo.check
duplicate$ empty$ 'pop$
{ ", " * swap$ *}
if$
"volume and number" number either.or.check
}
if$
}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
{ series empty$
{ number "number" bibinfo.check }
{ output.state mid.sentence =
{ bbl.number }
{ bbl.number capitalize }
if$
number tie.or.space.prefix "number" bibinfo.check * *
bbl.in space.word *
series "series" bibinfo.check *
}
if$
}
if$
}
{ "" }
if$
}
FUNCTION {is.num}
{ chr.to.int$
duplicate$ "0" chr.to.int$ < not
swap$ "9" chr.to.int$ > not and
}
FUNCTION {extract.num}
{ duplicate$ 't :=
"" 's :=
{ t empty$ not }
{ t #1 #1 substring$
t #2 global.max$ substring$ 't :=
duplicate$ is.num
{ s swap$ * 's := }
{ pop$ "" 't := }
if$
}
while$
s empty$
'skip$
{ pop$ s }
if$
}
FUNCTION {convert.edition}
{ extract.num "l" change.case$ 's :=
s "first" = s "1" = or
{ bbl.first 't := }
{ s "second" = s "2" = or
{ bbl.second 't := }
{ s "third" = s "3" = or
{ bbl.third 't := }
{ s "fourth" = s "4" = or
{ bbl.fourth 't := }
{ s "fifth" = s "5" = or
{ bbl.fifth 't := }
{ s #1 #1 substring$ is.num
{ s eng.ord 't := }
{ edition 't := }
if$
}
if$
}
if$
}
if$
}
if$
}
if$
t
}
FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
{
convert.edition
output.state mid.sentence =
{ "l" }
{ "t" }
if$ change.case$
"edition" bibinfo.check
" " * bbl.edition *
}
if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
#0 'multiresult :=
{ multiresult not
t empty$ not
and
}
{ t #1 #1 substring$
duplicate$ "-" =
swap$ duplicate$ "," =
swap$ "+" =
or or
{ #1 'multiresult := }
{ t #2 global.max$ substring$ 't := }
if$
}
while$
multiresult
}
FUNCTION {format.pages}
{ pages duplicate$ empty$ 'skip$
{ duplicate$ multi.page.check
{
bbl.pages swap$
n.dashify
}
{
bbl.page swap$
}
if$
tie.or.space.prefix
"pages" bibinfo.check
* *
}
if$
}
FUNCTION {format.journal.pages}
{ pages duplicate$ empty$
{ "empty pages in " cite$ * warning$ }
'skip$
if$
duplicate$ empty$ 'pop$
{ swap$ duplicate$ empty$
{ pop$ pop$ format.pages}
{
", " *
swap$
n.dashify
pages multi.page.check
'bbl.pages
'bbl.page
if$
swap$ tie.or.space.prefix
"pages" bibinfo.check
* *
*
}
if$
}
if$
}
FUNCTION {format.journal.eid}
{ eid "eid" bibinfo.check
duplicate$ empty$ 'pop$
{ swap$ duplicate$ empty$ 'skip$
{
", " *
}
if$
swap$ *
numpages empty$ 'skip$
{ numpages bbl.eidpp tie.or.space.prefix
"numpages" bibinfo.check * *
" (" swap$ * ")" * *
}
if$
}
if$
}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
duplicate$ empty$ 'skip$
{
"volume" bibinfo.check
}
if$
bolden
number "number" bibinfo.check duplicate$ empty$ 'skip$
{
swap$ duplicate$ empty$
{ "there's a number but no volume in " cite$ * warning$ }
'skip$
if$
swap$
"(" swap$ * ")" *
}
if$ *
}
FUNCTION {format.chapter.pages}
{ chapter empty$
{ "" }
{ type empty$
{ bbl.chapter }
{ type "l" change.case$
"type" bibinfo.check
}
if$
chapter tie.or.space.prefix
"chapter" bibinfo.check
* *
}
if$
}
FUNCTION {format.booktitle}
{
booktitle "booktitle" bibinfo.check
emphasize
}
FUNCTION {format.doi.booktitle}
{
booktitle "booktitle" bibinfo.check
doilink emphasize
}
FUNCTION {format.in.ed.booktitle}
{ format.doi.booktitle duplicate$ empty$ 'skip$
{
format.edition duplicate$ empty$ 'pop$
{ ", " swap$ * * }
if$
editor "editor" format.names.ed duplicate$ empty$ 'pop$
{
get.bbl.editor
swap$ "," *
" " * swap$ *
swap$
"," *
" " * swap$
* }
if$
format.bvolume duplicate$ empty$ 'pop$
{ ", " swap$ * * }
if$
word.in swap$ *
}
if$
}
FUNCTION {format.in.ed.proctitle}
{ format.booktitle duplicate$ empty$ 'skip$
{
format.edition duplicate$ empty$ 'pop$
{ ", " swap$ * * }
if$
editor "editor" format.names.ed duplicate$ empty$ 'pop$
{
get.bbl.editor
swap$ "," *
" " * swap$ *
swap$
"," *
" " * swap$
* }
if$
format.pvolume duplicate$ empty$ 'pop$
{ ", " swap$ * * }
if$
word.in swap$ *
}
if$
}
FUNCTION {format.in.ed.serialtitle}
{ format.doi.booktitle duplicate$ empty$ 'skip$
{
format.serial.volume duplicate$ empty$ 'pop$
{ " (" swap$ * * ")" *}
if$
format.edition duplicate$ empty$ 'pop$
{ ", " swap$ * * }
if$
editor "editor" format.names.ed duplicate$ empty$ 'pop$
{
get.bbl.editor
swap$ "," *
" " * swap$ *
swap$
"," *
" " * swap$
* }
if$
word.in swap$ *
}
if$
}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
month empty$ year empty$ note empty$
and and and and and
{ "all relevant fields are empty in " cite$ * warning$ }
'skip$
if$
}
FUNCTION {format.thesis.type}
{ type duplicate$ empty$
'pop$
{ swap$ pop$
"t" change.case$ "type" bibinfo.check
}
if$
}
FUNCTION {format.alt.link}
{ doi empty$
{ url empty$
{ eprint empty$
{ format.note output
fin.urllink.entry
}
{ format.note output
format.eprint output
fin.entry
}
if$
}
{ format.note output
format.url output
fin.entry
}
if$
}
{ format.doi output
format.note output
fin.urllink.entry
}
if$
}
FUNCTION {format.tr.number}
{ number "number" bibinfo.check
type duplicate$ empty$
{ pop$ bbl.techrep }
'skip$
if$
"type" bibinfo.check
swap$ duplicate$ empty$
{ pop$ "t" change.case$ }
{ tie.or.space.prefix * * }
if$
duplicate$ empty$ 'skip$
{
doilink
}
if$
}
FUNCTION {format.paper.number}
{ number "number" bibinfo.check
type duplicate$ empty$
{ pop$ bbl.paperno }
'skip$
if$
"type" bibinfo.check
swap$ duplicate$ empty$
{ pop$ "t" change.case$ }
{ tie.or.space.prefix * * }
if$
duplicate$ empty$ 'skip$
{
doilink
}
if$
}
FUNCTION {format.venue}
{ venue "venue" bibinfo.check
duplicate$ empty$ 'skip$
{
}
if$
}
FUNCTION {format.eventdate}
{ eventdate "eventdate" bibinfo.check
duplicate$ empty$ 'skip$
{
}
if$
}
FUNCTION {format.article.crossref}
{
key duplicate$ empty$
{ pop$
journal duplicate$ empty$
{ "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
{ "journal" bibinfo.check emphasize word.in swap$ * }
if$
}
{ word.in swap$ * " " *}
if$
" \cite{" * crossref * "}" *
}
FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
"editor" bibinfo.check
editor num.names$ duplicate$
#2 >
{ pop$
"editor" bibinfo.check
" " * bbl.etal
*
}
{ #2 <
'skip$
{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{
"editor" bibinfo.check
" " * bbl.etal
*
}
{
bbl.and space.word
* editor #2 "{vv~}{ll}" format.name$
"editor" bibinfo.check
*
}
if$
}
if$
}
if$
}
FUNCTION {format.book.crossref}
{ volume duplicate$ empty$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
pop$ word.in
}
{ bbl.volume
swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
}
if$
editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ series empty$
{ "need editor, key, or series for " cite$ * " to crossref " *
crossref * warning$
"" *
}
{ series emphasize * }
if$
}
{ key * }
if$
}
{ format.crossref.editor * }
if$
" \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
{
editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ format.booktitle duplicate$ empty$
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
crossref * warning$
}
{ word.in swap$ * }
if$
}
{ word.in key * " " *}
if$
}
{ word.in format.crossref.editor * " " *}
if$
" \cite{" * crossref * "}" *
}
FUNCTION {format.org.or.pub}
{ 't :=
""
address empty$ t empty$ and
'skip$
{
t empty$
{ address "address" bibinfo.check *
}
{ t *
address empty$
'skip$
{ ", " * address "address" bibinfo.check * }
if$
}
if$
}
if$
}
FUNCTION {format.publisher.address}
{ publisher "publisher" bibinfo.warn format.org.or.pub
}
FUNCTION {format.organization.address}
{ organization "organization" bibinfo.check format.org.or.pub
}
FUNCTION {format.institution.address}
{ institution "institution" bibinfo.check format.org.or.pub
}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
format.date "year" output.check
date.block
format.title "title" output.check
end.quote.title
crossref missing$
{
journal
"journal" bibinfo.check
doilink
"journal" output.check
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
}
if$
eid empty$
{ format.journal.pages }
{ format.journal.eid }
if$
format.note output
fin.urllink.entry
}
FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.date "year" output.check
date.block
format.doi.btitle "title" output.check
crossref missing$
{ format.edition output
format.version output
format.bvolume output
format.number.series output
format.publisher.address output
}
{
format.book.crossref output.nonnull
}
if$
format.chapter.pages output
format.pages output
format.note output
fin.urllink.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
format.date output
date.block
format.title "title" output.check
end.quote.title
howpublished "howpublished" bibinfo.check output
address "address" bibinfo.check output
format.doi output
format.note output
format.eprint output
format.url output
fin.entry
}
FUNCTION {inbook}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.date "year" output.check
date.block
format.doi.btitle "title" output.check
crossref missing$
{
format.edition output
format.version output
format.bvolume output
format.number.series output
format.publisher.address output
format.chapter.pages "chapter and pages" output.check
}
{
format.chapter.pages "chapter and pages" output.check
format.book.crossref output.nonnull
}
if$
format.pages "pages" output.check
format.note output
fin.urllink.entry
}
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
format.date "year" output.check
date.block
format.title "title" output.check
end.quote.title
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.number.series output
format.publisher.address output
format.chapter.pages output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.pages "pages" output.check
format.note output
fin.urllink.entry
}
FUNCTION {inserialcollection}
{ output.bibitem
format.authors "author" output.check
format.date "year" output.check
date.block
format.title "title" output.check
end.quote.title
crossref missing$
{ format.in.ed.serialtitle "booktitle" output.check
format.number.series output
format.publisher.address output
format.chapter.pages output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.pages "pages" output.check
format.note output
fin.urllink.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
format.date "year" output.check
date.block
format.title "title" output.check
end.quote.title
crossref missing$
{ format.in.ed.proctitle "booktitle" output.check
publisher empty$
{ format.organization.address output }
{ format.publisher.address output }
if$
}
{ format.incoll.inproc.crossref output.nonnull
}
if$
venue empty$
{ venue "venue" output.check}
{ "address and venue" address either.or.check format.venue output }
if$
format.eventdate "eventdate" output.check
number empty$
{ format.pages "pages" output.check
format.alt.link
}
{ format.paper.number "number" output.check
format.pages "pages" output.check
format.note output
fin.urllink.entry
}
if$
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
author empty$
{ organization "organization" bibinfo.check
duplicate$ empty$ 'pop$
{ output
address "address" bibinfo.check output
}
if$
}
{ format.authors output.nonnull }
if$
format.date output
date.block
format.btitle "title" output.check
format.edition output
format.version output
author empty$
{ organization empty$
{
address "address" bibinfo.check output
}
'skip$
if$
}
{
organization "organization" bibinfo.check output
address "address" bibinfo.check output
}
if$
format.doi output
format.note output
format.eprint output
format.url output
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
format.date "year" output.check
date.block
format.title
"title" output.check
end.quote.title
bbl.mthesis format.thesis.type output.nonnull
school "school" bibinfo.warn output
address "address" bibinfo.check output
format.doi output
format.note output
format.eprint output
format.url output
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
format.date output
format.title output
end.quote.title
howpublished "howpublished" bibinfo.check output
format.doi output
format.note output
format.eprint output
format.url output
fin.entry
empty.misc.check
}
FUNCTION {online}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.date "year" output.check
date.block
format.title
"title" output.check
end.quote.title
format.version output
organization "organization" bibinfo.warn output
address "address" bibinfo.check output
format.doi output
format.note output
format.eprint output
format.url "url" bibinfo.warn output
fin.entry
}
FUNCTION {electronic} { online }
FUNCTION {www} { online }
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
format.date "year" output.check
date.block
format.title
"title" output.check
end.quote.title
bbl.phdthesis format.thesis.type output.nonnull
school "school" bibinfo.warn output
address "address" bibinfo.check output
format.doi output
format.note output
format.eprint output
format.url output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
editor empty$
{ organization "organization" bibinfo.check output
}
{ format.editors output.nonnull }
if$
format.date "year" output.check
date.block
format.doi.btitle "title" output.check
format.bvolume output
editor empty$
{ publisher empty$
{ format.number.series output }
{
format.number.series output
format.publisher.address output
}
if$
}
{ publisher empty$
{
format.number.series output
format.organization.address output }
{
format.number.series output
format.publisher.address output
}
if$
}
if$
"address and venue" address either.or.check format.venue "venue" output.check
format.eventdate "eventdate" output.check
format.note output
fin.urllink.entry
}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
format.date "year" output.check
date.block
format.title
"title" output.check
end.quote.title
format.institution.address output
number empty$
{ format.alt.link }
{ format.tr.number output.nonnull
format.note output
fin.urllink.entry
}
if$
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
format.date output
date.block
format.title "title" output.check
end.quote.title
format.doi output
format.note "note" output.check
format.eprint output
format.url output
fin.entry
}
FUNCTION {default.type} { misc }
READ
STRINGS { longest.label }
INTEGERS { number.label longest.label.width }
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
#1 'number.label :=
#0 'longest.label.width :=
}
FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
number.label #1 + 'number.label :=
label width$ longest.label.width >
{ label 'longest.label :=
label width$ 'longest.label.width :=
}
'skip$
if$
}
EXECUTE {initialize.longest.label}
ITERATE {longest.label.pass}
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{" longest.label * "}" *
write$ newline$
"\newcommand{\enquote}[1]{``#1''}"
write$ newline$
"\providecommand{\url}[1]{\texttt{#1}}"
write$ newline$
"\providecommand{\urlprefix}{}"
write$ newline$
"\expandafter\ifx\csname urlstyle\endcsname\relax"
write$ newline$
" \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
write$ newline$
" \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
write$ newline$
"\providecommand{\eprint}[2][]{\urlprefix\url{#1#2}}"
write$ newline$
"\providecommand{\hrefurl}[2]{\href{#1}{#2}}"
write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}
%% End of customized bst file
%%
%% End of file `asmejour.bst'.