1 %% BibTeX bibliography style `splncs03'
\r
3 %% BibTeX bibliography style for use with numbered references in
\r
4 %% Springer Verlag's "Lecture Notes in Computer Science" series.
\r
5 %% (See Springer's documentation for llncs.cls for
\r
6 %% more details of the suggested reference format.) Note that this
\r
7 %% file will not work for author-year style citations.
\r
9 %% Use \documentclass{llncs} and \bibliographystyle{splncs03}, and cite
\r
10 %% a reference with (e.g.) \cite{smith77} to get a "[1]" in the text.
\r
12 %% This file comes to you courtesy of Maurizio "Titto" Patrignani of
\r
13 %% Dipartimento di Informatica e Automazione Universita' Roma Tre
\r
15 %% ================================================================================================
\r
16 %% This was file `titto-lncs-02.bst' produced on Wed Apr 1, 2009
\r
17 %% Edited by hand by titto based on `titto-lncs-01.bst' (see below)
\r
19 %% CHANGES (with respect to titto-lncs-01.bst):
\r
20 %% - Removed the call to \urlprefix (thus no "URL" string is added to the output)
\r
21 %% ================================================================================================
\r
22 %% This was file `titto-lncs-01.bst' produced on Fri Aug 22, 2008
\r
23 %% Edited by hand by titto based on `titto.bst' (see below)
\r
25 %% CHANGES (with respect to titto.bst):
\r
26 %% - Removed the "capitalize" command for editors string "(eds.)" and "(ed.)"
\r
27 %% - Introduced the functions titto.bbl.pages and titto.bbl.page for journal pages (without "pp.")
\r
28 %% - Added a new.sentence command to separate with a dot booktitle and series in the inproceedings
\r
29 %% - Commented all new.block commands before urls and notes (to separate them with a comma)
\r
30 %% - Introduced the functions titto.bbl.volume for handling journal volumes (without "vol." label)
\r
31 %% - Used for editors the same name conventions used for authors (see function format.in.ed.booktitle)
\r
32 %% - Removed a \newblock to avoid long spaces between title and "In: ..."
\r
33 %% - Added function titto.space.prefix to add a space instead of "~" after the (removed) "vol." label
\r
34 %% ================================================================================================
\r
35 %% This was file `titto.bst',
\r
36 %% generated with the docstrip utility.
\r
38 %% The original source files were:
\r
40 %% merlin.mbs (with options: `vonx,nm-rvvc,yr-par,jttl-rm,volp-com,jwdpg,jwdvol,numser,ser-vol,jnm-x,btit-rm,bt-rm,edparxc,bkedcap,au-col,in-col,fin-bare,pp,ed,abr,mth-bare,xedn,jabr,and-com,and-com-ed,xand,url,url-blk,em-x,nfss,')
\r
41 %% ----------------------------------------
\r
42 %% *** Tentative .bst file for Springer LNCS ***
\r
44 %% Copyright 1994-2007 Patrick W Daly
\r
45 % ===============================================================
\r
47 % This bibliographic style (bst) file has been generated from one or
\r
48 % more master bibliographic style (mbs) files, listed above.
\r
50 % This generated file can be redistributed and/or modified under the terms
\r
51 % of the LaTeX Project Public License Distributed from CTAN
\r
52 % archives in directory macros/latex/base/lppl.txt; either
\r
53 % version 1 of the License, or any later version.
\r
54 % ===============================================================
\r
55 % Name and version information of the main mbs file:
\r
56 % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)]
\r
57 % For use with BibTeX version 0.99a or later
\r
58 %-------------------------------------------------------------------
\r
59 % This bibliography style file is intended for texts in ENGLISH
\r
60 % This is a numerical citation style, and as such is standard LaTeX.
\r
61 % It requires no extra package to interface to the main text.
\r
62 % The form of the \bibitem entries is
\r
64 % Usage of \cite is as follows:
\r
65 % \cite{key} ==>> [#]
\r
66 % \cite[chap. 2]{key} ==>> [#, chap. 2]
\r
67 % where # is a number determined by the ordering in the reference list.
\r
68 % The order in the reference list is alphabetical by authors.
\r
69 %---------------------------------------------------------------------
\r
99 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
\r
100 FUNCTION {init.state.consts}
\r
101 { #0 'before.all :=
\r
102 #1 'mid.sentence :=
\r
103 #2 'after.sentence :=
\r
107 FUNCTION {output.nonnull}
\r
109 output.state mid.sentence =
\r
111 { output.state after.block =
\r
112 { add.period$ write$
\r
114 % "\newblock " write$ % removed for titto-lncs-01
\r
115 " " write$ % to avoid long spaces between title and "In: ..."
\r
117 { output.state before.all =
\r
119 { add.period$ " " * write$ }
\r
123 mid.sentence 'output.state :=
\r
129 { duplicate$ empty$
\r
134 FUNCTION {output.check}
\r
137 { pop$ "empty " t * " in " * cite$ * warning$ }
\r
141 FUNCTION {fin.entry}
\r
142 { duplicate$ empty$
\r
149 FUNCTION {new.block}
\r
150 { output.state before.all =
\r
152 { after.block 'output.state := }
\r
155 FUNCTION {new.sentence}
\r
156 { output.state after.block =
\r
158 { output.state before.all =
\r
160 { after.sentence 'output.state := }
\r
165 FUNCTION {add.blank}
\r
166 { " " * before.all 'output.state :=
\r
170 FUNCTION {add.colon}
\r
171 { duplicate$ empty$
\r
173 { ":" * add.blank }
\r
177 FUNCTION {date.block}
\r
198 FUNCTION {remove.dots}
\r
202 { z #1 #1 substring$
\r
203 z #2 global.max$ substring$ 'z :=
\r
204 duplicate$ "." = 'pop$
\r
210 FUNCTION {new.block.checka}
\r
216 FUNCTION {new.block.checkb}
\r
224 FUNCTION {new.sentence.checka}
\r
230 FUNCTION {new.sentence.checkb}
\r
238 FUNCTION {field.or.null}
\r
239 { duplicate$ empty$
\r
244 FUNCTION {emphasize}
\r
246 FUNCTION {tie.or.space.prefix}
\r
247 { duplicate$ text.length$ #3 <
\r
253 FUNCTION {titto.space.prefix} % always introduce a space
\r
254 { duplicate$ text.length$ #3 <
\r
262 FUNCTION {capitalize}
\r
263 { "u" change.case$ "t" change.case$ }
\r
265 FUNCTION {space.word}
\r
266 { " " swap$ * " " * }
\r
267 % Here are the language-specific definitions for explicit words.
\r
268 % Each function has a name bbl.xxx where xxx is the English word.
\r
269 % The language selected here is ENGLISH
\r
273 FUNCTION {bbl.etal}
\r
276 FUNCTION {bbl.editors}
\r
279 FUNCTION {bbl.editor}
\r
282 FUNCTION {bbl.edby}
\r
285 FUNCTION {bbl.edition}
\r
288 FUNCTION {bbl.volume}
\r
291 FUNCTION {titto.bbl.volume} % for handling journals
\r
297 FUNCTION {bbl.number}
\r
306 FUNCTION {bbl.pages}
\r
309 FUNCTION {bbl.page}
\r
312 FUNCTION {titto.bbl.pages} % for journals
\r
315 FUNCTION {titto.bbl.page} % for journals
\r
318 FUNCTION {bbl.chapter}
\r
321 FUNCTION {bbl.techrep}
\r
324 FUNCTION {bbl.mthesis}
\r
325 { "Master's thesis" }
\r
327 FUNCTION {bbl.phdthesis}
\r
330 MACRO {jan} {"Jan."}
\r
332 MACRO {feb} {"Feb."}
\r
334 MACRO {mar} {"Mar."}
\r
336 MACRO {apr} {"Apr."}
\r
338 MACRO {may} {"May"}
\r
340 MACRO {jun} {"Jun."}
\r
342 MACRO {jul} {"Jul."}
\r
344 MACRO {aug} {"Aug."}
\r
346 MACRO {sep} {"Sep."}
\r
348 MACRO {oct} {"Oct."}
\r
350 MACRO {nov} {"Nov."}
\r
352 MACRO {dec} {"Dec."}
\r
354 MACRO {acmcs} {"ACM Comput. Surv."}
\r
356 MACRO {acta} {"Acta Inf."}
\r
358 MACRO {cacm} {"Commun. ACM"}
\r
360 MACRO {ibmjrd} {"IBM J. Res. Dev."}
\r
362 MACRO {ibmsj} {"IBM Syst.~J."}
\r
364 MACRO {ieeese} {"IEEE Trans. Software Eng."}
\r
366 MACRO {ieeetc} {"IEEE Trans. Comput."}
\r
369 {"IEEE Trans. Comput. Aid. Des."}
\r
371 MACRO {ipl} {"Inf. Process. Lett."}
\r
373 MACRO {jacm} {"J.~ACM"}
\r
375 MACRO {jcss} {"J.~Comput. Syst. Sci."}
\r
377 MACRO {scp} {"Sci. Comput. Program."}
\r
379 MACRO {sicomp} {"SIAM J. Comput."}
\r
381 MACRO {tocs} {"ACM Trans. Comput. Syst."}
\r
383 MACRO {tods} {"ACM Trans. Database Syst."}
\r
385 MACRO {tog} {"ACM Trans. Graphic."}
\r
387 MACRO {toms} {"ACM Trans. Math. Software"}
\r
389 MACRO {toois} {"ACM Trans. Office Inf. Syst."}
\r
391 MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
\r
393 MACRO {tcs} {"Theor. Comput. Sci."}
\r
395 FUNCTION {bibinfo.check}
\r
397 duplicate$ missing$
\r
402 { duplicate$ empty$
\r
413 FUNCTION {bibinfo.warn}
\r
415 duplicate$ missing$
\r
417 swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
\r
420 { duplicate$ empty$
\r
422 swap$ "empty " swap$ * " in " * cite$ * warning$
\r
431 FUNCTION {format.url}
\r
434 % { "\urlprefix\url{" url * "}" * }
\r
435 { "\url{" url * "}" * } % changed in titto-lncs-02.bst
\r
439 INTEGERS { nameptr namesleft numnames }
\r
444 FUNCTION {format.names}
\r
446 duplicate$ empty$ 'skip$ {
\r
450 s num.names$ 'numnames :=
\r
451 numnames 'namesleft :=
\r
454 "{vv~}{ll}{, jj}{, f{.}.}"
\r
456 bibinfo bibinfo.check
\r
463 s nameptr "{ll}" format.name$ duplicate$ "others" =
\r
479 nameptr #1 + 'nameptr :=
\r
480 namesleft #1 - 'namesleft :=
\r
485 FUNCTION {format.names.ed}
\r
488 duplicate$ empty$ 'skip$ {
\r
492 s num.names$ 'numnames :=
\r
493 numnames 'namesleft :=
\r
496 "{f{.}.~}{vv~}{ll}{ jj}"
\r
498 bibinfo bibinfo.check
\r
505 s nameptr "{ll}" format.name$ duplicate$ "others" =
\r
522 nameptr #1 + 'nameptr :=
\r
523 namesleft #1 - 'namesleft :=
\r
528 FUNCTION {format.authors}
\r
529 { author "author" format.names
\r
531 FUNCTION {get.bbl.editor}
\r
532 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
\r
534 FUNCTION {format.editors}
\r
535 { editor "editor" format.names duplicate$ empty$ 'skip$
\r
545 FUNCTION {format.note}
\r
549 { note #1 #1 substring$
\r
552 { output.state mid.sentence =
\r
559 note #2 global.max$ substring$ * "note" bibinfo.check
\r
564 FUNCTION {format.title}
\r
566 duplicate$ empty$ 'skip$
\r
567 { "t" change.case$ }
\r
569 "title" bibinfo.check
\r
571 FUNCTION {output.bibitem}
\r
578 before.all 'output.state :=
\r
581 FUNCTION {n.dashify}
\r
586 { t #1 #1 substring$ "-" =
\r
587 { t #1 #2 substring$ "--" = not
\r
589 t #2 global.max$ substring$ 't :=
\r
591 { { t #1 #1 substring$ "-" = }
\r
593 t #2 global.max$ substring$ 't :=
\r
599 { t #1 #1 substring$ *
\r
600 t #2 global.max$ substring$ 't :=
\r
608 { bbl.in capitalize
\r
612 FUNCTION {format.date}
\r
614 month "month" bibinfo.check
\r
616 year "year" bibinfo.check duplicate$ empty$
\r
618 { "there's a month but no year in " cite$ * warning$ }
\r
635 before.all 'output.state :=
\r
640 FUNCTION {format.btitle}
\r
641 { title "title" bibinfo.check
\r
642 duplicate$ empty$ 'skip$
\r
647 FUNCTION {either.or.check}
\r
650 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
\r
653 FUNCTION {format.bvolume}
\r
656 { bbl.volume volume tie.or.space.prefix
\r
657 "volume" bibinfo.check * *
\r
658 series "series" bibinfo.check
\r
659 duplicate$ empty$ 'pop$
\r
660 { emphasize ", " * swap$ * }
\r
662 "volume and number" number either.or.check
\r
666 FUNCTION {format.number.series}
\r
669 { series field.or.null }
\r
670 { output.state mid.sentence =
\r
672 { bbl.number capitalize }
\r
674 number tie.or.space.prefix "number" bibinfo.check * *
\r
676 { "there's a number but no series in " cite$ * warning$ }
\r
677 { bbl.in space.word *
\r
678 series "series" bibinfo.check *
\r
688 FUNCTION {format.edition}
\r
689 { edition duplicate$ empty$ 'skip$
\r
691 output.state mid.sentence =
\r
695 "edition" bibinfo.check
\r
696 " " * bbl.edition *
\r
700 INTEGERS { multiresult }
\r
701 FUNCTION {multi.page.check}
\r
708 { t #1 #1 substring$
\r
710 swap$ duplicate$ "," =
\r
713 { #1 'multiresult := }
\r
714 { t #2 global.max$ substring$ 't := }
\r
720 FUNCTION {format.pages}
\r
721 { pages duplicate$ empty$ 'skip$
\r
722 { duplicate$ multi.page.check
\r
731 tie.or.space.prefix
\r
732 "pages" bibinfo.check
\r
737 FUNCTION {format.journal.pages}
\r
738 { pages duplicate$ empty$ 'pop$
\r
739 { swap$ duplicate$ empty$
\r
740 { pop$ pop$ format.pages }
\r
745 pages multi.page.check
\r
749 swap$ tie.or.space.prefix
\r
750 "pages" bibinfo.check
\r
758 FUNCTION {format.journal.eid}
\r
759 { eid "eid" bibinfo.check
\r
760 duplicate$ empty$ 'pop$
\r
761 { swap$ duplicate$ empty$ 'skip$
\r
770 FUNCTION {format.vol.num.pages} % this function is used only for journal entries
\r
771 { volume field.or.null
\r
772 duplicate$ empty$ 'skip$
\r
774 % bbl.volume swap$ tie.or.space.prefix
\r
775 titto.bbl.volume swap$ titto.space.prefix
\r
776 % rationale for the change above: for journals you don't want "vol." label
\r
777 % hence it does not make sense to attach the journal number to the label when
\r
779 "volume" bibinfo.check
\r
783 number "number" bibinfo.check duplicate$ empty$ 'skip$
\r
785 swap$ duplicate$ empty$
\r
786 { "there's a number but no volume in " cite$ * warning$ }
\r
794 { format.journal.pages }
\r
795 { format.journal.eid }
\r
799 FUNCTION {format.chapter.pages}
\r
804 { type "l" change.case$
\r
805 "type" bibinfo.check
\r
808 chapter tie.or.space.prefix
\r
809 "chapter" bibinfo.check
\r
813 { ", " * format.pages * }
\r
819 FUNCTION {format.booktitle}
\r
821 booktitle "booktitle" bibinfo.check
\r
823 FUNCTION {format.in.ed.booktitle}
\r
824 { format.booktitle duplicate$ empty$ 'skip$
\r
826 % editor "editor" format.names.ed duplicate$ empty$ 'pop$ % changed by titto
\r
827 editor "editor" format.names duplicate$ empty$ 'pop$
\r
840 FUNCTION {empty.misc.check}
\r
841 { author empty$ title empty$ howpublished empty$
\r
842 month empty$ year empty$ note empty$
\r
843 and and and and and
\r
845 { "all relevant fields are empty in " cite$ * warning$ }
\r
849 FUNCTION {format.thesis.type}
\r
850 { type duplicate$ empty$
\r
853 "t" change.case$ "type" bibinfo.check
\r
857 FUNCTION {format.tr.number}
\r
858 { number "number" bibinfo.check
\r
859 type duplicate$ empty$
\r
860 { pop$ bbl.techrep }
\r
863 "type" bibinfo.check
\r
864 swap$ duplicate$ empty$
\r
865 { pop$ "t" change.case$ }
\r
866 { tie.or.space.prefix * * }
\r
869 FUNCTION {format.article.crossref}
\r
871 key duplicate$ empty$
\r
873 journal duplicate$ empty$
\r
874 { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
\r
875 { "journal" bibinfo.check emphasize word.in swap$ * }
\r
878 { word.in swap$ * " " *}
\r
880 " \cite{" * crossref * "}" *
\r
882 FUNCTION {format.crossref.editor}
\r
883 { editor #1 "{vv~}{ll}" format.name$
\r
884 "editor" bibinfo.check
\r
885 editor num.names$ duplicate$
\r
888 "editor" bibinfo.check
\r
894 { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
\r
896 "editor" bibinfo.check
\r
902 * editor #2 "{vv~}{ll}" format.name$
\r
903 "editor" bibinfo.check
\r
912 FUNCTION {format.book.crossref}
\r
913 { volume duplicate$ empty$
\r
914 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
\r
919 swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
\r
923 editor field.or.null author field.or.null =
\r
927 { "need editor, key, or series for " cite$ * " to crossref " *
\r
928 crossref * warning$
\r
931 { series emphasize * }
\r
937 { format.crossref.editor * }
\r
939 " \cite{" * crossref * "}" *
\r
941 FUNCTION {format.incoll.inproc.crossref}
\r
944 editor field.or.null author field.or.null =
\r
947 { format.booktitle duplicate$ empty$
\r
948 { "need editor, key, or booktitle for " cite$ * " to crossref " *
\r
949 crossref * warning$
\r
951 { word.in swap$ * }
\r
954 { word.in key * " " *}
\r
957 { word.in format.crossref.editor * " " *}
\r
959 " \cite{" * crossref * "}" *
\r
961 FUNCTION {format.org.or.pub}
\r
964 address empty$ t empty$ and
\r
968 { address "address" bibinfo.check *
\r
973 { ", " * address "address" bibinfo.check * }
\r
980 FUNCTION {format.publisher.address}
\r
981 { publisher "publisher" bibinfo.warn format.org.or.pub
\r
984 FUNCTION {format.organization.address}
\r
985 { organization "organization" bibinfo.check format.org.or.pub
\r
990 format.authors "author" 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
1002 format.date "year" output.check
\r
1004 { format.article.crossref output.nonnull
\r
1005 format.pages output
\r
1011 format.note output
\r
1017 { format.editors "author and editor" output.check
\r
1020 { format.authors output.nonnull
\r
1023 { "author and editor" editor either.or.check }
\r
1029 format.btitle "title" output.check
\r
1031 { format.bvolume output
\r
1034 format.number.series output
\r
1035 format.publisher.address output
\r
1039 format.book.crossref output.nonnull
\r
1042 format.edition output
\r
1043 format.date "year" output.check
\r
1047 format.note output
\r
1050 FUNCTION {booklet}
\r
1052 format.authors output
\r
1055 format.title "title" output.check
\r
1057 howpublished "howpublished" bibinfo.check output
\r
1058 address "address" bibinfo.check output
\r
1059 format.date output
\r
1063 format.note output
\r
1070 { format.editors "author and editor" output.check
\r
1073 { format.authors output.nonnull
\r
1076 { "author and editor" editor either.or.check }
\r
1082 format.btitle "title" output.check
\r
1085 format.bvolume output
\r
1086 format.chapter.pages "chapter and pages" output.check
\r
1089 format.number.series output
\r
1090 format.publisher.address output
\r
1093 format.chapter.pages "chapter and pages" output.check
\r
1095 format.book.crossref output.nonnull
\r
1098 format.edition output
\r
1099 format.date "year" output.check
\r
1103 format.note output
\r
1107 FUNCTION {incollection}
\r
1109 format.authors "author" output.check
\r
1112 format.title "title" output.check
\r
1115 { format.in.ed.booktitle "booktitle" output.check
\r
1116 format.bvolume output
\r
1117 format.chapter.pages output
\r
1119 format.number.series output
\r
1120 format.publisher.address output
\r
1121 format.edition output
\r
1122 format.date "year" output.check
\r
1124 { format.incoll.inproc.crossref output.nonnull
\r
1125 format.chapter.pages output
\r
1131 format.note output
\r
1134 FUNCTION {inproceedings}
\r
1136 format.authors "author" output.check
\r
1139 format.title "title" output.check
\r
1142 { format.in.ed.booktitle "booktitle" output.check
\r
1143 new.sentence % added by titto
\r
1144 format.bvolume output
\r
1145 format.pages output
\r
1147 format.number.series output
\r
1149 { format.organization.address output }
\r
1150 { organization "organization" bibinfo.check output
\r
1151 format.publisher.address output
\r
1154 format.date "year" output.check
\r
1156 { format.incoll.inproc.crossref output.nonnull
\r
1157 format.pages output
\r
1163 format.note output
\r
1166 FUNCTION {conference} { inproceedings }
\r
1170 { organization "organization" bibinfo.check
\r
1171 duplicate$ empty$ 'pop$
\r
1173 address "address" bibinfo.check output
\r
1177 { format.authors output.nonnull }
\r
1181 format.btitle "title" output.check
\r
1183 { organization empty$
\r
1185 address new.block.checka
\r
1186 address "address" bibinfo.check output
\r
1192 organization address new.block.checkb
\r
1193 organization "organization" bibinfo.check output
\r
1194 address "address" bibinfo.check output
\r
1197 format.edition output
\r
1198 format.date output
\r
1202 format.note output
\r
1206 FUNCTION {mastersthesis}
\r
1208 format.authors "author" output.check
\r
1212 "title" output.check
\r
1214 bbl.mthesis format.thesis.type output.nonnull
\r
1215 school "school" bibinfo.warn output
\r
1216 address "address" bibinfo.check output
\r
1217 format.date "year" output.check
\r
1221 format.note output
\r
1227 format.authors output
\r
1229 title howpublished new.block.checkb
\r
1230 format.title output
\r
1231 howpublished new.block.checka
\r
1232 howpublished "howpublished" bibinfo.check output
\r
1233 format.date output
\r
1237 format.note output
\r
1241 FUNCTION {phdthesis}
\r
1243 format.authors "author" output.check
\r
1247 "title" output.check
\r
1249 bbl.phdthesis format.thesis.type output.nonnull
\r
1250 school "school" bibinfo.warn output
\r
1251 address "address" bibinfo.check output
\r
1252 format.date "year" output.check
\r
1256 format.note output
\r
1260 FUNCTION {proceedings}
\r
1263 { organization "organization" bibinfo.check output
\r
1265 { format.editors output.nonnull }
\r
1269 format.btitle "title" output.check
\r
1270 format.bvolume output
\r
1272 { publisher empty$
\r
1273 { format.number.series output }
\r
1276 format.number.series output
\r
1277 format.publisher.address output
\r
1281 { publisher empty$
\r
1284 format.number.series output
\r
1285 format.organization.address output }
\r
1288 format.number.series output
\r
1289 organization "organization" bibinfo.check output
\r
1290 format.publisher.address output
\r
1295 format.date "year" output.check
\r
1299 format.note output
\r
1303 FUNCTION {techreport}
\r
1305 format.authors "author" output.check
\r
1309 "title" output.check
\r
1311 format.tr.number output.nonnull
\r
1312 institution "institution" bibinfo.warn output
\r
1313 address "address" bibinfo.check output
\r
1314 format.date "year" output.check
\r
1318 format.note output
\r
1322 FUNCTION {unpublished}
\r
1324 format.authors "author" output.check
\r
1327 format.title "title" output.check
\r
1328 format.date output
\r
1332 format.note "note" output.check
\r
1336 FUNCTION {default.type} { misc }
\r
1338 FUNCTION {sortify}
\r
1343 FUNCTION {chop.word}
\r
1346 s #1 len substring$ =
\r
1347 { s len #1 + global.max$ substring$ }
\r
1351 FUNCTION {sort.format.names}
\r
1355 s num.names$ 'numnames :=
\r
1356 numnames 'namesleft :=
\r
1357 { namesleft #0 > }
\r
1359 "{ll{ }}{ ff{ }}{ jj{ }}"
\r
1360 format.name$ 't :=
\r
1364 namesleft #1 = t "others" = and
\r
1371 nameptr #1 + 'nameptr :=
\r
1372 namesleft #1 - 'namesleft :=
\r
1377 FUNCTION {sort.format.title}
\r
1381 "The " #4 t chop.word
\r
1385 #1 global.max$ substring$
\r
1387 FUNCTION {author.sort}
\r
1390 { "to sort, need author or key in " cite$ * warning$
\r
1396 { author sort.format.names }
\r
1399 FUNCTION {author.editor.sort}
\r
1403 { "to sort, need author, editor, or key in " cite$ * warning$
\r
1409 { editor sort.format.names }
\r
1412 { author sort.format.names }
\r
1415 FUNCTION {author.organization.sort}
\r
1417 { organization empty$
\r
1419 { "to sort, need author, organization, or key in " cite$ * warning$
\r
1425 { "The " #4 organization chop.word sortify }
\r
1428 { author sort.format.names }
\r
1431 FUNCTION {editor.organization.sort}
\r
1433 { organization empty$
\r
1435 { "to sort, need editor, organization, or key in " cite$ * warning$
\r
1441 { "The " #4 organization chop.word sortify }
\r
1444 { editor sort.format.names }
\r
1447 FUNCTION {presort}
\r
1451 'author.editor.sort
\r
1452 { type$ "proceedings" =
\r
1453 'editor.organization.sort
\r
1454 { type$ "manual" =
\r
1455 'author.organization.sort
\r
1464 year field.or.null sortify
\r
1468 title field.or.null
\r
1471 #1 entry.max$ substring$
\r
1476 STRINGS { longest.label }
\r
1477 INTEGERS { number.label longest.label.width }
\r
1478 FUNCTION {initialize.longest.label}
\r
1479 { "" 'longest.label :=
\r
1480 #1 'number.label :=
\r
1481 #0 'longest.label.width :=
\r
1483 FUNCTION {longest.label.pass}
\r
1484 { number.label int.to.str$ 'label :=
\r
1485 number.label #1 + 'number.label :=
\r
1486 label width$ longest.label.width >
\r
1487 { label 'longest.label :=
\r
1488 label width$ 'longest.label.width :=
\r
1493 EXECUTE {initialize.longest.label}
\r
1494 ITERATE {longest.label.pass}
\r
1495 FUNCTION {begin.bib}
\r
1496 { preamble$ empty$
\r
1498 { preamble$ write$ newline$ }
\r
1500 "\begin{thebibliography}{" longest.label * "}" *
\r
1502 "\providecommand{\url}[1]{\texttt{#1}}"
\r
1504 "\providecommand{\urlprefix}{URL }"
\r
1507 EXECUTE {begin.bib}
\r
1508 EXECUTE {init.state.consts}
\r
1509 ITERATE {call.type$}
\r
1510 FUNCTION {end.bib}
\r
1512 "\end{thebibliography}" write$ newline$
\r
1515 %% End of customized bst file
\r
1517 %% End of file `titto.bst'.
\r