2 %% This is file `model2-names.bst' (Version 2.0),
\r
4 %% Copyright 2009-2013 Elsevier Ltd
\r
6 %% This file is part of the 'Elsarticle Bundle'.
\r
7 %% ---------------------------------------------
\r
9 %% It may be distributed under the conditions of the LaTeX Project Public
\r
10 %% License, either version 1.2 of this license or (at your option) any
\r
11 %% later version. The latest version of this license is in
\r
12 %% http://www.latex-project.org/lppl.txt
\r
13 %% and version 1.2 or later is part of all distributions of LaTeX
\r
14 %% version 1999/12/01 or later.
\r
16 %% $Id: model2-names.bst 217 2013-03-13 11:50:49Z rishi $
\r
18 %% $URL: http://lenova.river-valley.com/svn/elsbst/trunk/New-Model-2/model2-names.bst $
\r
52 { label extra.label sort.label short.list }
\r
54 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
\r
56 STRINGS { urlprefix doiprefix eprintprefix pubmedprefix }
\r
58 FUNCTION {init.web.variables}
\r
60 "\URLprefix " 'urlprefix :=
\r
61 "\DOIprefix" 'doiprefix :=
\r
62 "\ArXivprefix " 'eprintprefix :=
\r
63 "\Pubmedprefix " 'pubmedprefix :=
\r
66 FUNCTION {init.state.consts}
\r
69 #2 'after.sentence :=
\r
73 FUNCTION {output.comma}
\r
76 FUNCTION {output.nonnull}
\r
78 output.state mid.sentence =
\r
80 { output.state after.block =
\r
81 { add.period$ write$
\r
85 { output.state before.all =
\r
91 mid.sentence 'output.state :=
\r
96 FUNCTION {output.commanull}
\r
98 output.state mid.sentence =
\r
100 { output.state after.block =
\r
103 "\newblock " write$
\r
105 { output.state before.all =
\r
107 { add.period$ " " * write$ }
\r
111 mid.sentence 'output.state :=
\r
117 { duplicate$ empty$
\r
122 FUNCTION {output.check}
\r
125 { pop$ "empty " t * " in " * cite$ * warning$ }
\r
129 FUNCTION {output.book.check}
\r
132 { pop$ "empty " t * " in " * cite$ * warning$ }
\r
136 FUNCTION {fin.entry}
\r
142 FUNCTION {new.block}
\r
143 { output.state before.all =
\r
145 { after.block 'output.state := }
\r
148 FUNCTION {new.sentence}
\r
149 { output.state after.block =
\r
151 { output.state before.all =
\r
153 { after.sentence 'output.state := }
\r
158 FUNCTION {add.blank}
\r
159 { " " * before.all 'output.state :=
\r
162 FUNCTION {date.block}
\r
182 FUNCTION {new.block.checkb}
\r
190 FUNCTION {field.or.null}
\r
191 { duplicate$ empty$
\r
196 FUNCTION {emphasize}
\r
197 { duplicate$ empty$
\r
199 { "\textit{" swap$ * "}" * }
\r
202 FUNCTION {tie.or.space.prefix}
\r
203 { duplicate$ text.length$ #3 <
\r
210 FUNCTION {capitalize}
\r
211 { "u" change.case$ "t" change.case$ }
\r
213 FUNCTION {space.word}
\r
214 { " " swap$ * " " * }
\r
215 % Here are the language-specific definitions for explicit words.
\r
216 % Each function has a name bbl.xxx where xxx is the English word.
\r
217 % The language selected here is ENGLISH
\r
221 FUNCTION {bbl.etal}
\r
224 FUNCTION {bbl.editors}
\r
227 FUNCTION {bbl.editor}
\r
230 FUNCTION {bbl.edby}
\r
233 FUNCTION {bbl.edition}
\r
236 FUNCTION {bbl.volume}
\r
242 FUNCTION {bbl.number}
\r
251 FUNCTION {bbl.pages}
\r
254 FUNCTION {bbl.page}
\r
257 FUNCTION {bbl.chapter}
\r
260 FUNCTION {bbl.techrep}
\r
261 { "Technical Report" }
\r
263 FUNCTION {bbl.mthesis}
\r
264 { "Master's thesis" }
\r
266 FUNCTION {bbl.phdthesis}
\r
269 MACRO {jan} {"January"}
\r
271 MACRO {feb} {"February"}
\r
273 MACRO {mar} {"March"}
\r
275 MACRO {apr} {"April"}
\r
277 MACRO {may} {"May"}
\r
279 MACRO {jun} {"June"}
\r
281 MACRO {jul} {"July"}
\r
283 MACRO {aug} {"August"}
\r
285 MACRO {sep} {"September"}
\r
287 MACRO {oct} {"October"}
\r
289 MACRO {nov} {"November"}
\r
291 MACRO {dec} {"December"}
\r
293 MACRO {acmcs} {"ACM Comput. Surv."}
\r
295 MACRO {acta} {"Acta Inf."}
\r
297 MACRO {cacm} {"Commun. ACM"}
\r
299 MACRO {ibmjrd} {"IBM J. Res. Dev."}
\r
301 MACRO {ibmsj} {"IBM Syst.~J."}
\r
303 MACRO {ieeese} {"IEEE Trans. Software Eng."}
\r
305 MACRO {ieeetc} {"IEEE Trans. Comput."}
\r
308 {"IEEE Trans. Comput. Aid. Des."}
\r
310 MACRO {ipl} {"Inf. Process. Lett."}
\r
312 MACRO {jacm} {"J.~ACM"}
\r
314 MACRO {jcss} {"J.~Comput. Syst. Sci."}
\r
316 MACRO {scp} {"Sci. Comput. Program."}
\r
318 MACRO {sicomp} {"SIAM J. Comput."}
\r
320 MACRO {tocs} {"ACM Trans. Comput. Syst."}
\r
322 MACRO {tods} {"ACM Trans. Database Syst."}
\r
324 MACRO {tog} {"ACM Trans. Graphic."}
\r
326 MACRO {toms} {"ACM Trans. Math. Software"}
\r
328 MACRO {toois} {"ACM Trans. Office Inf. Syst."}
\r
330 MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
\r
332 MACRO {tcs} {"Theor. Comput. Sci."}
\r
334 %% Begin - Added on March 13, 2013
\r
336 MACRO {aj} {"Astron. J."}
\r
337 MACRO {actaa} {"Acta Astron."}
\r
338 MACRO {araa} {"Annu. Rev. Astron. Astrophys."}
\r
339 MACRO {apj} {"Astrophys. J."}
\r
340 MACRO {apjl} {"Astrophys. J. Lett."}
\r
341 MACRO {apjs} {"Astrophys. J. Suppl. S"}
\r
342 MACRO {ao} {"Appl. Optics"}
\r
343 MACRO {apss} {"Astrophys. Space Sci."}
\r
344 MACRO {aap} {"Astronom. Astrophys."}
\r
345 MACRO {aapr} {"Astron. Astrophys Rev"}
\r
346 MACRO {aaps} {"Astron. Astrophys. Sup."}
\r
347 MACRO {azh} {"Astron. Zh+"}
\r
348 MACRO {caa} {"Chinese Astron. Astr."}
\r
349 MACRO {icarus} {"Icarus"}
\r
350 MACRO {jcap} {"J. Cosmol. Astropart. Phys."}
\r
351 MACRO {jrasc} {"J. Roy. Astron. Soc. Can."}
\r
352 MACRO {memras} {"Memoirs of the RAS"}
\r
353 MACRO {mnras} {"Mon. Not. R. Astron. Soc."}
\r
354 MACRO {na} {"New Astron."}
\r
355 MACRO {nar} {"New Astron. Rev."}
\r
356 MACRO {pra} {"Phys. Rev. A"}
\r
357 MACRO {prb} {"Phys. Rev. B"}
\r
358 MACRO {prc} {"Phys. Rev. C"}
\r
359 MACRO {prd} {"Phys. Rev. D"}
\r
360 MACRO {pre} {"Phys. Rev. E"}
\r
361 MACRO {prl} {"Phys. Rev. Lett"}
\r
362 MACRO {pasa} {"Publ. Astron. Soc. Aust."}
\r
363 MACRO {pasp} {"Publ. Astron. Soc. Pac."}
\r
364 MACRO {pasj} {"Publ. Astron. Soc. Jpn."}
\r
365 MACRO {rmxaa} {"Rev. Mex. Astron. Astr."}
\r
366 MACRO {rjras} {"Q. J. Roy. Astron. Soc."}
\r
367 MACRO {skytel} {"Sky Telescope"}
\r
368 MACRO {solphys} {"Sol. Phys."}
\r
369 MACRO {sovast} {"Sov. Astron."}
\r
370 MACRO {ssr} {"Space Sci. Rev."}
\r
371 MACRO {zap} {"Zeitschrift fuer Astrophysik"}
\r
372 MACRO {nat} {"Nature"}
\r
373 MACRO {iaucirc} {"IAU Cirulars"}
\r
374 MACRO {gca} {"Geochim. Cosmochim. Ac."}
\r
375 MACRO {grl} {"Geophys. Res. Lett."}
\r
376 MACRO {jcp} {"J. Chem. Phys."}
\r
377 MACRO {jgr} {"J. Geophys. Res."}
\r
378 MACRO {jqsrt} {"J. Quant. Spectrosc. RA"}
\r
379 MACRO {nphysa} {"Nucl. Phys. A"}
\r
380 MACRO {physrep} {"Phys. Rep."}
\r
381 MACRO {physscr} {"Phys. Scrip."}
\r
382 MACRO {planss} {"Planet. Space Sci."}
\r
383 MACRO {baas} {"Bull. Aust. Acoust. Soc"}
\r
384 MACRO {aplett} {"Astrophys. Lett."}
\r
385 MACRO {procspie} {"Proc. SPIE"}
\r
386 MACRO {cjaa} {"Chinese J. Astron. Ast."}
\r
387 MACRO {fcp} {"Fundam. Cosm. Phys."}
\r
388 MACRO {memsai} {"Mem. Soc. Astron. Ital."}
\r
389 MACRO {bain} {"Bull. Astron. Inst. Neth., Suppl. Ser."}
\r
391 %% End - Added on March 13, 2013
\r
394 FUNCTION {bibinfo.check}
\r
396 duplicate$ missing$
\r
401 { duplicate$ empty$
\r
406 "\bibinfo{" swap$ * "}{" * swap$ * "}" *
\r
412 FUNCTION {bibinfo.warn}
\r
414 duplicate$ missing$
\r
416 swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
\r
419 { duplicate$ empty$
\r
421 swap$ "empty " swap$ * " in " * cite$ * warning$
\r
433 INTEGERS { nameptr namesleft numnames }
\r
435 FUNCTION {format.names}
\r
437 duplicate$ empty$ 'skip$ {
\r
441 s num.names$ 'numnames :=
\r
442 numnames 'namesleft :=
\r
445 "{vv~}{ll}{, jj}{, f{.}.}"
\r
447 bibinfo bibinfo.check
\r
455 s nameptr "{ll}" format.name$ duplicate$ "others" =
\r
470 nameptr #1 + 'nameptr :=
\r
471 namesleft #1 - 'namesleft :=
\r
476 FUNCTION {format.names.ed}
\r
480 FUNCTION {format.key}
\r
482 { key field.or.null }
\r
487 FUNCTION {format.authors}
\r
488 { author "author" format.names
\r
489 duplicate$ empty$ 'skip$
\r
490 { collaboration "collaboration" bibinfo.check
\r
491 duplicate$ empty$ 'skip$
\r
492 { " (" swap$ * ")" * }
\r
499 FUNCTION {get.bbl.editor}
\r
500 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
\r
502 FUNCTION {format.editors}
\r
503 { editor "editor" format.names duplicate$ empty$ 'skip$
\r
513 FUNCTION {format.note}
\r
517 { note #1 #1 substring$
\r
520 { output.state mid.sentence =
\r
527 note #2 global.max$ substring$ * "note" bibinfo.check
\r
532 FUNCTION {format.title}
\r
534 duplicate$ empty$ 'skip$
\r
535 { "t" change.case$ }
\r
537 "title" bibinfo.check
\r
539 FUNCTION {format.full.names}
\r
543 s num.names$ 'numnames :=
\r
544 numnames 'namesleft :=
\r
547 "{vv~}{ll}" format.name$
\r
554 s nameptr "{ll}" format.name$ duplicate$ "others" =
\r
572 nameptr #1 + 'nameptr :=
\r
573 namesleft #1 - 'namesleft :=
\r
578 FUNCTION {author.editor.key.full}
\r
582 { cite$ #1 #3 substring$ }
\r
586 { editor format.full.names }
\r
589 { author format.full.names }
\r
593 FUNCTION {author.key.full}
\r
596 { cite$ #1 #3 substring$ }
\r
600 { author format.full.names }
\r
604 FUNCTION {editor.key.full}
\r
607 { cite$ #1 #3 substring$ }
\r
611 { editor format.full.names }
\r
615 FUNCTION {make.full.names}
\r
619 'author.editor.key.full
\r
620 { type$ "proceedings" =
\r
628 FUNCTION {output.bibitem}
\r
630 "\bibitem[{" write$
\r
632 ")" make.full.names duplicate$ short.list =
\r
641 before.all 'output.state :=
\r
644 FUNCTION {n.dashify}
\r
649 { t #1 #1 substring$ "-" =
\r
650 { t #1 #2 substring$ "--" = not
\r
652 t #2 global.max$ substring$ 't :=
\r
654 { { t #1 #1 substring$ "-" = }
\r
656 t #2 global.max$ substring$ 't :=
\r
662 { t #1 #1 substring$ *
\r
663 t #2 global.max$ substring$ 't :=
\r
671 { bbl.in %capitalize
\r
675 FUNCTION {format.date}
\r
676 { year "year" bibinfo.check duplicate$ empty$
\r
682 before.all 'output.state :=
\r
685 FUNCTION {format.btitle}
\r
686 { title "title" bibinfo.check
\r
687 duplicate$ empty$ 'skip$
\r
692 FUNCTION {either.or.check}
\r
695 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
\r
698 FUNCTION {format.bvolume}
\r
701 { bbl.volume volume tie.or.space.prefix
\r
702 "volume" bibinfo.check * *
\r
703 series "series" bibinfo.check
\r
704 duplicate$ empty$ 'pop$
\r
705 { swap$ bbl.of space.word * swap$
\r
708 "volume and number" number either.or.check
\r
712 FUNCTION {format.number.series}
\r
715 { series field.or.null }
\r
717 { number "number" bibinfo.check }
\r
718 { output.state mid.sentence =
\r
720 { bbl.number capitalize }
\r
722 number tie.or.space.prefix "number" bibinfo.check * *
\r
723 bbl.in space.word *
\r
724 series "series" bibinfo.check *
\r
734 FUNCTION {format.edition}
\r
735 { edition duplicate$ empty$ 'skip$
\r
737 output.state mid.sentence =
\r
741 "edition" bibinfo.check
\r
742 " " * bbl.edition *
\r
746 INTEGERS { multiresult }
\r
747 FUNCTION {multi.page.check}
\r
754 { t #1 #1 substring$
\r
756 swap$ duplicate$ "," =
\r
759 { #1 'multiresult := }
\r
760 { t #2 global.max$ substring$ 't := }
\r
766 %FUNCTION {format.pages}
\r
767 %{ pages duplicate$ empty$ 'skip$
\r
768 % { duplicate$ multi.page.check
\r
775 % "pages" bibinfo.check
\r
780 FUNCTION {format.pages}
\r
781 { pages duplicate$ empty$ 'skip$
\r
782 { duplicate$ multi.page.check
\r
791 tie.or.space.prefix
\r
792 "pages" bibinfo.check
\r
798 FUNCTION {format.journal.pages}
\r
799 { pages duplicate$ empty$ 'pop$
\r
800 { swap$ duplicate$ empty$
\r
801 { pop$ pop$ format.pages }
\r
806 "pages" bibinfo.check
\r
813 FUNCTION {format.vol.num.pages}
\r
814 { volume field.or.null
\r
815 duplicate$ empty$ 'skip$
\r
817 "volume" bibinfo.check
\r
822 FUNCTION {format.chapter.pages}
\r
827 { type "l" change.case$
\r
828 "type" bibinfo.check
\r
831 chapter tie.or.space.prefix
\r
832 "chapter" bibinfo.check
\r
838 FUNCTION {format.booktitle}
\r
840 booktitle "booktitle" bibinfo.check
\r
842 FUNCTION {format.in.ed.booktitle}
\r
843 { format.booktitle duplicate$ empty$ 'skip$
\r
845 editor "editor" format.names.ed duplicate$ empty$ 'pop$
\r
850 "(" swap$ * "), " *
\r
858 FUNCTION {format.thesis.type}
\r
859 { type duplicate$ empty$
\r
862 "t" change.case$ "type" bibinfo.check
\r
866 FUNCTION {format.tr.number}
\r
867 { number "number" bibinfo.check
\r
868 type duplicate$ empty$
\r
869 { pop$ bbl.techrep }
\r
872 "type" bibinfo.check
\r
873 swap$ duplicate$ empty$
\r
874 { pop$ "t" change.case$ }
\r
875 { tie.or.space.prefix * * }
\r
878 FUNCTION {format.article.crossref}
\r
881 " \cite{" * crossref * "}" *
\r
883 FUNCTION {format.book.crossref}
\r
884 { volume duplicate$ empty$
\r
885 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
\r
890 swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
\r
893 " \cite{" * crossref * "}" *
\r
895 FUNCTION {format.incoll.inproc.crossref}
\r
898 " \cite{" * crossref * "}" *
\r
900 FUNCTION {format.org.or.pub}
\r
903 address empty$ t empty$ and
\r
907 { address "address" bibinfo.check *
\r
912 { ", " * address "address" bibinfo.check * }
\r
919 FUNCTION {format.publisher.address}
\r
920 { publisher "publisher" bibinfo.check format.org.or.pub
\r
923 FUNCTION {format.organization.address}
\r
924 { organization "organization" bibinfo.check format.org.or.pub
\r
927 FUNCTION {print.url}
\r
928 {url duplicate$ empty$
\r
931 urlprefix "\url{" * swap$ * "}" *
\r
936 FUNCTION {print.doi}
\r
937 {doi duplicate$ empty$
\r
940 doiprefix "\doi{" * swap$ * "}" *
\r
945 FUNCTION {print.eprint}
\r
946 {eprint duplicate$ empty$
\r
949 duplicate$ "\href{http://arxiv.org/abs/" swap$ * "}{\tt arXiv:" * swap$ * "}" * }
\r
953 FUNCTION {print.pubmed}
\r
954 {pubmed duplicate$ empty$
\r
957 pubmedprefix "\Pubmed{" * swap$ * "}" *
\r
963 { "%Type = Webpage" write$
\r
965 format.authors "author" output.check
\r
966 author format.key output
\r
969 format.title "title" output.check
\r
971 format.date "year" output.check
\r
975 format.date "year" output.check
\r
977 format.title "title" output.check
\r
987 { "%Type = Article" write$
\r
989 format.authors "author" output.check
\r
990 author format.key output
\r
991 format.date "year" output.check
\r
993 format.title "title" output.check
\r
998 "journal" bibinfo.check
\r
999 "journal" output.check
\r
1001 format.vol.num.pages output
\r
1003 { format.article.crossref output.nonnull
\r
1006 format.journal.pages
\r
1010 print.eprint output
\r
1011 print.pubmed output
\r
1012 format.note output
\r
1017 { "%Type = Book" write$
\r
1020 { format.editors "author and editor" output.check
\r
1021 editor format.key output
\r
1023 { format.authors output.nonnull
\r
1025 { "author and editor" editor either.or.check }
\r
1030 format.date "year" output.check
\r
1032 format.btitle "title" output.check
\r
1034 { format.bvolume output
\r
1036 format.number.series output
\r
1037 format.edition output
\r
1039 format.publisher.address output
\r
1043 format.book.crossref output.nonnull
\r
1049 print.eprint output
\r
1050 print.pubmed output
\r
1051 format.note output
\r
1055 FUNCTION {booklet}
\r
1056 { "%Type = Booklet" write$
\r
1058 format.authors output
\r
1059 author format.key output
\r
1060 format.date "year" output.check
\r
1062 format.title "title" output.check
\r
1064 howpublished "howpublished" bibinfo.check output
\r
1065 address "address" bibinfo.check output
\r
1069 print.eprint output
\r
1070 print.pubmed output
\r
1071 format.note output
\r
1076 { "%Type = Inbook" write$
\r
1079 { format.editors "author and editor" output.check
\r
1080 editor format.key output
\r
1082 { format.authors output.nonnull
\r
1084 { "author and editor" editor either.or.check }
\r
1089 format.date "year" output.check
\r
1091 format.btitle "title" output.check
\r
1092 format.edition output
\r
1095 format.publisher.address output
\r
1096 format.bvolume output
\r
1097 format.chapter.pages "chapter and pages" output.check
\r
1099 format.number.series output
\r
1103 format.chapter.pages "chapter and pages" output.check
\r
1105 format.book.crossref output.nonnull
\r
1108 format.pages "pages" output.check
\r
1112 print.eprint output
\r
1113 print.pubmed output
\r
1114 format.note output
\r
1118 FUNCTION {incollection}
\r
1119 { "%Type = Incollection" write$
\r
1121 format.authors "author" output.check
\r
1122 author format.key output
\r
1123 format.date "year" output.check
\r
1125 format.title "title" output.book.check
\r
1128 { format.in.ed.booktitle "booktitle" output.book.check
\r
1129 format.edition output
\r
1130 format.publisher.address output
\r
1131 format.bvolume output
\r
1132 format.number.series output
\r
1133 format.chapter.pages output
\r
1136 { format.incoll.inproc.crossref output.nonnull
\r
1137 format.chapter.pages output
\r
1140 format.pages "pages" output.check
\r
1144 print.eprint output
\r
1145 print.pubmed output
\r
1146 format.note output
\r
1150 FUNCTION {inproceedings}
\r
1151 { "%Type = Inproceedings" write$
\r
1153 format.authors "author" output.check
\r
1154 author format.key output
\r
1155 format.date "year" output.check
\r
1157 format.title "title" output.book.check
\r
1160 { format.in.ed.booktitle "booktitle" output.check
\r
1163 { format.organization.address output }
\r
1164 { organization "organization" bibinfo.check output
\r
1165 format.publisher.address output
\r
1168 % format.bvolume output
\r
1169 % format.number.series output
\r
1170 % format.pages output
\r
1172 { format.incoll.inproc.crossref output.nonnull
\r
1173 format.pages output
\r
1176 format.pages "pages" output.check
\r
1180 print.eprint output
\r
1181 print.pubmed output
\r
1182 format.note output
\r
1186 FUNCTION {conference} { inproceedings }
\r
1189 { "%Type = Manual" write$
\r
1191 format.authors output
\r
1192 author format.key output
\r
1193 format.date "year" output.check
\r
1195 format.btitle "title" output.check
\r
1196 format.edition output
\r
1197 organization address new.block.checkb
\r
1198 organization "organization" bibinfo.check output
\r
1199 address "address" bibinfo.check output
\r
1203 print.eprint output
\r
1204 print.pubmed output
\r
1205 format.note output
\r
1209 FUNCTION {mastersthesis}
\r
1210 { "%Type = Masterthesis" write$
\r
1212 format.authors "author" output.check
\r
1213 author format.key output
\r
1214 format.date "year" output.check
\r
1217 "title" output.check
\r
1219 bbl.mthesis format.thesis.type output.nonnull
\r
1220 school "school" bibinfo.warn output
\r
1221 address "address" bibinfo.check output
\r
1225 print.eprint output
\r
1226 print.pubmed output
\r
1227 format.note output
\r
1232 { "%Type = Misc" write$
\r
1234 format.authors output
\r
1235 author format.key output
\r
1236 format.date "year" output.check
\r
1238 format.title output
\r
1240 howpublished "howpublished" bibinfo.check output
\r
1244 print.eprint output
\r
1245 print.pubmed output
\r
1246 format.note output
\r
1250 FUNCTION {phdthesis}
\r
1251 { "%Type = Phdthesis" write$
\r
1253 format.authors "author" output.check
\r
1254 author format.key output
\r
1255 format.date "year" output.check
\r
1258 "title" output.check
\r
1260 bbl.phdthesis format.thesis.type output.nonnull
\r
1261 school "school" bibinfo.warn output
\r
1262 address "address" bibinfo.check output
\r
1266 print.eprint output
\r
1267 print.pubmed output
\r
1268 format.note output
\r
1272 FUNCTION {proceedings}
\r
1273 { "%Type = Proceedings" write$
\r
1275 format.editors output
\r
1276 editor format.key output
\r
1277 format.date "year" output.check
\r
1279 format.btitle "title" output.check
\r
1280 format.bvolume output
\r
1281 format.number.series output
\r
1284 { format.organization.address output }
\r
1285 { organization "organization" bibinfo.check output
\r
1286 format.publisher.address output
\r
1292 print.eprint output
\r
1293 print.pubmed output
\r
1294 format.note output
\r
1298 FUNCTION {techreport}
\r
1299 { "%Type = Techreport" write$
\r
1301 format.authors "author" output.check
\r
1302 author format.key output
\r
1303 format.date "year" output.check
\r
1306 "title" output.check
\r
1308 format.tr.number output.nonnull
\r
1309 institution "institution" bibinfo.warn output
\r
1310 address "address" bibinfo.check output
\r
1314 print.eprint output
\r
1315 print.pubmed output
\r
1316 format.note output
\r
1320 FUNCTION {unpublished}
\r
1321 { "%Type = Unpublished" write$
\r
1323 format.authors "author" output.check
\r
1324 author format.key output
\r
1325 format.date "year" output.check
\r
1327 format.title "title" output.check
\r
1331 print.eprint output
\r
1332 print.pubmed output
\r
1333 format.note "note" output.check
\r
1337 FUNCTION {default.type} { misc }
\r
1339 FUNCTION {sortify}
\r
1344 FUNCTION {chop.word}
\r
1347 s #1 len substring$ =
\r
1348 { s len #1 + global.max$ substring$ }
\r
1352 FUNCTION {format.lab.names}
\r
1355 s #1 "{vv~}{ll}" format.name$
\r
1356 s num.names$ duplicate$
\r
1363 { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
\r
1367 { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
\r
1376 FUNCTION {author.key.label}
\r
1379 { cite$ #1 #3 substring$ }
\r
1383 { author format.lab.names }
\r
1387 FUNCTION {author.editor.key.label}
\r
1391 { cite$ #1 #3 substring$ }
\r
1395 { editor format.lab.names }
\r
1398 { author format.lab.names }
\r
1402 FUNCTION {editor.key.label}
\r
1405 { cite$ #1 #3 substring$ }
\r
1409 { editor format.lab.names }
\r
1413 FUNCTION {calc.short.authors}
\r
1417 'author.editor.key.label
\r
1418 { type$ "proceedings" =
\r
1427 FUNCTION {calc.label}
\r
1428 { calc.short.authors
\r
1432 year duplicate$ empty$
\r
1433 short.list key field.or.null = or
\r
1441 FUNCTION {sort.format.names}
\r
1445 s num.names$ 'numnames :=
\r
1446 numnames 'namesleft :=
\r
1447 { namesleft #0 > }
\r
1449 "{ll{ }}{ f{ }}{ jj{ }}"
\r
1450 format.name$ 't :=
\r
1454 namesleft #1 = t "others" = and
\r
1461 nameptr #1 + 'nameptr :=
\r
1462 namesleft #1 - 'namesleft :=
\r
1467 FUNCTION {sort.format.title}
\r
1471 "The " #4 t chop.word
\r
1475 #1 global.max$ substring$
\r
1477 FUNCTION {author.sort}
\r
1480 { "to sort, need author or key in " cite$ * warning$
\r
1486 { author sort.format.names }
\r
1489 FUNCTION {author.editor.sort}
\r
1493 { "to sort, need author, editor, or key in " cite$ * warning$
\r
1499 { editor sort.format.names }
\r
1502 { author sort.format.names }
\r
1505 FUNCTION {editor.sort}
\r
1508 { "to sort, need editor or key in " cite$ * warning$
\r
1514 { editor sort.format.names }
\r
1517 FUNCTION {presort}
\r
1525 'author.editor.sort
\r
1526 { type$ "proceedings" =
\r
1532 #1 entry.max$ substring$
\r
1538 title field.or.null
\r
1541 #1 entry.max$ substring$
\r
1547 STRINGS { last.label next.extra }
\r
1548 INTEGERS { last.extra.num number.label }
\r
1549 FUNCTION {initialize.extra.label.stuff}
\r
1550 { #0 int.to.chr$ 'last.label :=
\r
1552 #0 'last.extra.num :=
\r
1553 #0 'number.label :=
\r
1555 FUNCTION {forward.pass}
\r
1556 { last.label label =
\r
1557 { last.extra.num #1 + 'last.extra.num :=
\r
1558 last.extra.num int.to.chr$ 'extra.label :=
\r
1560 { "a" chr.to.int$ 'last.extra.num :=
\r
1561 "" 'extra.label :=
\r
1562 label 'last.label :=
\r
1565 number.label #1 + 'number.label :=
\r
1567 FUNCTION {reverse.pass}
\r
1568 { next.extra "b" =
\r
1569 { "a" 'extra.label := }
\r
1572 extra.label 'next.extra :=
\r
1576 % { "{\natexlab{" swap$ * "}}" * }
\r
1577 { "" swap$ * "" * }
\r
1580 label extra.label * 'label :=
\r
1582 EXECUTE {initialize.extra.label.stuff}
\r
1583 ITERATE {forward.pass}
\r
1584 REVERSE {reverse.pass}
\r
1585 FUNCTION {bib.sort.order}
\r
1589 year field.or.null sortify
\r
1593 title field.or.null
\r
1596 #1 entry.max$ substring$
\r
1599 ITERATE {bib.sort.order}
\r
1601 FUNCTION {begin.bib}
\r
1602 { preamble$ empty$
\r
1604 { preamble$ write$ newline$ }
\r
1606 "\begin{thebibliography}{" number.label int.to.str$ * "}" *
\r
1608 "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
\r
1610 "\providecommand{\url}[1]{\texttt{#1}}"
\r
1612 "\providecommand{\href}[2]{#2}"
\r
1614 "\providecommand{\path}[1]{#1}"
\r
1616 "\providecommand{\DOIprefix}{doi:}"
\r
1618 "\providecommand{\ArXivprefix}{arXiv:}"
\r
1620 "\providecommand{\URLprefix}{URL: }"
\r
1622 "\providecommand{\Pubmedprefix}{pmid:}"
\r
1624 "\providecommand{\doi}[1]{\href{http://dx.doi.org/#1}{\path{#1}}}"
\r
1626 "\providecommand{\Pubmed}[1]{\href{pmid:#1}{\path{#1}}}"
\r
1628 "\providecommand{\bibinfo}[2]{#2}"
\r
1630 "\ifx\xfnm\relax \def\xfnm[#1]{\unskip,\space#1}\fi"
\r
1633 EXECUTE {begin.bib}
\r
1634 EXECUTE {init.state.consts}
\r
1635 EXECUTE {init.web.variables}
\r
1636 ITERATE {call.type$}
\r
1637 FUNCTION {end.bib}
\r
1639 "\end{thebibliography}" write$ newline$
\r
1642 %% End of customized bst file
\r
1644 %% End of file `model2-names.bst'.
\r
1651 %% a. doi, url, eprint, pmid added
\r
1652 %% b. Bibtype `webpage' defined
\r
1655 %% a. collaboration added.
\r