--- /dev/null
+%% BibTeX bibliography style `splncs03'\r
+%%\r
+%% BibTeX bibliography style for use with numbered references in\r
+%% Springer Verlag's "Lecture Notes in Computer Science" series.\r
+%% (See Springer's documentation for llncs.cls for\r
+%% more details of the suggested reference format.) Note that this\r
+%% file will not work for author-year style citations.\r
+%%\r
+%% Use \documentclass{llncs} and \bibliographystyle{splncs03}, and cite\r
+%% a reference with (e.g.) \cite{smith77} to get a "[1]" in the text.\r
+%%\r
+%% This file comes to you courtesy of Maurizio "Titto" Patrignani of\r
+%% Dipartimento di Informatica e Automazione Universita' Roma Tre\r
+%%\r
+%% ================================================================================================\r
+%% This was file `titto-lncs-02.bst' produced on Wed Apr 1, 2009\r
+%% Edited by hand by titto based on `titto-lncs-01.bst' (see below)\r
+%%\r
+%% CHANGES (with respect to titto-lncs-01.bst):\r
+%% - Removed the call to \urlprefix (thus no "URL" string is added to the output)\r
+%% ================================================================================================\r
+%% This was file `titto-lncs-01.bst' produced on Fri Aug 22, 2008\r
+%% Edited by hand by titto based on `titto.bst' (see below)\r
+%%\r
+%% CHANGES (with respect to titto.bst):\r
+%% - Removed the "capitalize" command for editors string "(eds.)" and "(ed.)"\r
+%% - Introduced the functions titto.bbl.pages and titto.bbl.page for journal pages (without "pp.")\r
+%% - Added a new.sentence command to separate with a dot booktitle and series in the inproceedings\r
+%% - Commented all new.block commands before urls and notes (to separate them with a comma)\r
+%% - Introduced the functions titto.bbl.volume for handling journal volumes (without "vol." label)\r
+%% - Used for editors the same name conventions used for authors (see function format.in.ed.booktitle)\r
+%% - Removed a \newblock to avoid long spaces between title and "In: ..."\r
+%% - Added function titto.space.prefix to add a space instead of "~" after the (removed) "vol." label\r
+%% ================================================================================================\r
+%% This was file `titto.bst',\r
+%% generated with the docstrip utility.\r
+%%\r
+%% The original source files were:\r
+%%\r
+%% 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
+%% ----------------------------------------\r
+%% *** Tentative .bst file for Springer LNCS ***\r
+%%\r
+%% Copyright 1994-2007 Patrick W Daly\r
+ % ===============================================================\r
+ % IMPORTANT NOTICE:\r
+ % This bibliographic style (bst) file has been generated from one or\r
+ % more master bibliographic style (mbs) files, listed above.\r
+ %\r
+ % This generated file can be redistributed and/or modified under the terms\r
+ % of the LaTeX Project Public License Distributed from CTAN\r
+ % archives in directory macros/latex/base/lppl.txt; either\r
+ % version 1 of the License, or any later version.\r
+ % ===============================================================\r
+ % Name and version information of the main mbs file:\r
+ % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)]\r
+ % For use with BibTeX version 0.99a or later\r
+ %-------------------------------------------------------------------\r
+ % This bibliography style file is intended for texts in ENGLISH\r
+ % This is a numerical citation style, and as such is standard LaTeX.\r
+ % It requires no extra package to interface to the main text.\r
+ % The form of the \bibitem entries is\r
+ % \bibitem{key}...\r
+ % Usage of \cite is as follows:\r
+ % \cite{key} ==>> [#]\r
+ % \cite[chap. 2]{key} ==>> [#, chap. 2]\r
+ % where # is a number determined by the ordering in the reference list.\r
+ % The order in the reference list is alphabetical by authors.\r
+ %---------------------------------------------------------------------\r
+\r
+ENTRY\r
+ { address\r
+ author\r
+ booktitle\r
+ chapter\r
+ edition\r
+ editor\r
+ eid\r
+ howpublished\r
+ institution\r
+ journal\r
+ key\r
+ month\r
+ note\r
+ number\r
+ organization\r
+ pages\r
+ publisher\r
+ school\r
+ series\r
+ title\r
+ type\r
+ url\r
+ volume\r
+ year\r
+ }\r
+ {}\r
+ { label }\r
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }\r
+FUNCTION {init.state.consts}\r
+{ #0 'before.all :=\r
+ #1 'mid.sentence :=\r
+ #2 'after.sentence :=\r
+ #3 'after.block :=\r
+}\r
+STRINGS { s t}\r
+FUNCTION {output.nonnull}\r
+{ 's :=\r
+ output.state mid.sentence =\r
+ { ", " * write$ }\r
+ { output.state after.block =\r
+ { add.period$ write$\r
+% newline$\r
+% "\newblock " write$ % removed for titto-lncs-01\r
+ " " write$ % to avoid long spaces between title and "In: ..."\r
+ }\r
+ { output.state before.all =\r
+ 'write$\r
+ { add.period$ " " * write$ }\r
+ if$\r
+ }\r
+ if$\r
+ mid.sentence 'output.state :=\r
+ }\r
+ if$\r
+ s\r
+}\r
+FUNCTION {output}\r
+{ duplicate$ empty$\r
+ 'pop$\r
+ 'output.nonnull\r
+ if$\r
+}\r
+FUNCTION {output.check}\r
+{ 't :=\r
+ duplicate$ empty$\r
+ { pop$ "empty " t * " in " * cite$ * warning$ }\r
+ 'output.nonnull\r
+ if$\r
+}\r
+FUNCTION {fin.entry}\r
+{ duplicate$ empty$\r
+ 'pop$\r
+ 'write$\r
+ if$\r
+ newline$\r
+}\r
+\r
+FUNCTION {new.block}\r
+{ output.state before.all =\r
+ 'skip$\r
+ { after.block 'output.state := }\r
+ if$\r
+}\r
+FUNCTION {new.sentence}\r
+{ output.state after.block =\r
+ 'skip$\r
+ { output.state before.all =\r
+ 'skip$\r
+ { after.sentence 'output.state := }\r
+ if$\r
+ }\r
+ if$\r
+}\r
+FUNCTION {add.blank}\r
+{ " " * before.all 'output.state :=\r
+}\r
+\r
+\r
+FUNCTION {add.colon}\r
+{ duplicate$ empty$\r
+ 'skip$\r
+ { ":" * add.blank }\r
+ if$\r
+}\r
+\r
+FUNCTION {date.block}\r
+{\r
+ new.block\r
+}\r
+\r
+FUNCTION {not}\r
+{ { #0 }\r
+ { #1 }\r
+ if$\r
+}\r
+FUNCTION {and}\r
+{ 'skip$\r
+ { pop$ #0 }\r
+ if$\r
+}\r
+FUNCTION {or}\r
+{ { pop$ #1 }\r
+ 'skip$\r
+ if$\r
+}\r
+STRINGS {z}\r
+FUNCTION {remove.dots}\r
+{ 'z :=\r
+ ""\r
+ { z empty$ not }\r
+ { z #1 #1 substring$\r
+ z #2 global.max$ substring$ 'z :=\r
+ duplicate$ "." = 'pop$\r
+ { * }\r
+ if$\r
+ }\r
+ while$\r
+}\r
+FUNCTION {new.block.checka}\r
+{ empty$\r
+ 'skip$\r
+ 'new.block\r
+ if$\r
+}\r
+FUNCTION {new.block.checkb}\r
+{ empty$\r
+ swap$ empty$\r
+ and\r
+ 'skip$\r
+ 'new.block\r
+ if$\r
+}\r
+FUNCTION {new.sentence.checka}\r
+{ empty$\r
+ 'skip$\r
+ 'new.sentence\r
+ if$\r
+}\r
+FUNCTION {new.sentence.checkb}\r
+{ empty$\r
+ swap$ empty$\r
+ and\r
+ 'skip$\r
+ 'new.sentence\r
+ if$\r
+}\r
+FUNCTION {field.or.null}\r
+{ duplicate$ empty$\r
+ { pop$ "" }\r
+ 'skip$\r
+ if$\r
+}\r
+FUNCTION {emphasize}\r
+{ skip$ }\r
+FUNCTION {tie.or.space.prefix}\r
+{ duplicate$ text.length$ #3 <\r
+ { "~" }\r
+ { " " }\r
+ if$\r
+ swap$\r
+}\r
+FUNCTION {titto.space.prefix} % always introduce a space\r
+{ duplicate$ text.length$ #3 <\r
+ { " " }\r
+ { " " }\r
+ if$\r
+ swap$\r
+}\r
+\r
+\r
+FUNCTION {capitalize}\r
+{ "u" change.case$ "t" change.case$ }\r
+\r
+FUNCTION {space.word}\r
+{ " " swap$ * " " * }\r
+ % Here are the language-specific definitions for explicit words.\r
+ % Each function has a name bbl.xxx where xxx is the English word.\r
+ % The language selected here is ENGLISH\r
+FUNCTION {bbl.and}\r
+{ "and"}\r
+\r
+FUNCTION {bbl.etal}\r
+{ "et~al." }\r
+\r
+FUNCTION {bbl.editors}\r
+{ "eds." }\r
+\r
+FUNCTION {bbl.editor}\r
+{ "ed." }\r
+\r
+FUNCTION {bbl.edby}\r
+{ "edited by" }\r
+\r
+FUNCTION {bbl.edition}\r
+{ "edn." }\r
+\r
+FUNCTION {bbl.volume}\r
+{ "vol." }\r
+\r
+FUNCTION {titto.bbl.volume} % for handling journals\r
+{ "" }\r
+\r
+FUNCTION {bbl.of}\r
+{ "of" }\r
+\r
+FUNCTION {bbl.number}\r
+{ "no." }\r
+\r
+FUNCTION {bbl.nr}\r
+{ "no." }\r
+\r
+FUNCTION {bbl.in}\r
+{ "in" }\r
+\r
+FUNCTION {bbl.pages}\r
+{ "pp." }\r
+\r
+FUNCTION {bbl.page}\r
+{ "p." }\r
+\r
+FUNCTION {titto.bbl.pages} % for journals\r
+{ "" }\r
+\r
+FUNCTION {titto.bbl.page} % for journals\r
+{ "" }\r
+\r
+FUNCTION {bbl.chapter}\r
+{ "chap." }\r
+\r
+FUNCTION {bbl.techrep}\r
+{ "Tech. Rep." }\r
+\r
+FUNCTION {bbl.mthesis}\r
+{ "Master's thesis" }\r
+\r
+FUNCTION {bbl.phdthesis}\r
+{ "Ph.D. thesis" }\r
+\r
+MACRO {jan} {"Jan."}\r
+\r
+MACRO {feb} {"Feb."}\r
+\r
+MACRO {mar} {"Mar."}\r
+\r
+MACRO {apr} {"Apr."}\r
+\r
+MACRO {may} {"May"}\r
+\r
+MACRO {jun} {"Jun."}\r
+\r
+MACRO {jul} {"Jul."}\r
+\r
+MACRO {aug} {"Aug."}\r
+\r
+MACRO {sep} {"Sep."}\r
+\r
+MACRO {oct} {"Oct."}\r
+\r
+MACRO {nov} {"Nov."}\r
+\r
+MACRO {dec} {"Dec."}\r
+\r
+MACRO {acmcs} {"ACM Comput. Surv."}\r
+\r
+MACRO {acta} {"Acta Inf."}\r
+\r
+MACRO {cacm} {"Commun. ACM"}\r
+\r
+MACRO {ibmjrd} {"IBM J. Res. Dev."}\r
+\r
+MACRO {ibmsj} {"IBM Syst.~J."}\r
+\r
+MACRO {ieeese} {"IEEE Trans. Software Eng."}\r
+\r
+MACRO {ieeetc} {"IEEE Trans. Comput."}\r
+\r
+MACRO {ieeetcad}\r
+ {"IEEE Trans. Comput. Aid. Des."}\r
+\r
+MACRO {ipl} {"Inf. Process. Lett."}\r
+\r
+MACRO {jacm} {"J.~ACM"}\r
+\r
+MACRO {jcss} {"J.~Comput. Syst. Sci."}\r
+\r
+MACRO {scp} {"Sci. Comput. Program."}\r
+\r
+MACRO {sicomp} {"SIAM J. Comput."}\r
+\r
+MACRO {tocs} {"ACM Trans. Comput. Syst."}\r
+\r
+MACRO {tods} {"ACM Trans. Database Syst."}\r
+\r
+MACRO {tog} {"ACM Trans. Graphic."}\r
+\r
+MACRO {toms} {"ACM Trans. Math. Software"}\r
+\r
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}\r
+\r
+MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}\r
+\r
+MACRO {tcs} {"Theor. Comput. Sci."}\r
+\r
+FUNCTION {bibinfo.check}\r
+{ swap$\r
+ duplicate$ missing$\r
+ {\r
+ pop$ pop$\r
+ ""\r
+ }\r
+ { duplicate$ empty$\r
+ {\r
+ swap$ pop$\r
+ }\r
+ { swap$\r
+ pop$\r
+ }\r
+ if$\r
+ }\r
+ if$\r
+}\r
+FUNCTION {bibinfo.warn}\r
+{ swap$\r
+ duplicate$ missing$\r
+ {\r
+ swap$ "missing " swap$ * " in " * cite$ * warning$ pop$\r
+ ""\r
+ }\r
+ { duplicate$ empty$\r
+ {\r
+ swap$ "empty " swap$ * " in " * cite$ * warning$\r
+ }\r
+ { swap$\r
+ pop$\r
+ }\r
+ if$\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.url}\r
+{ url empty$\r
+ { "" }\r
+% { "\urlprefix\url{" url * "}" * }\r
+ { "\url{" url * "}" * } % changed in titto-lncs-02.bst\r
+ if$\r
+}\r
+\r
+INTEGERS { nameptr namesleft numnames }\r
+\r
+\r
+STRINGS { bibinfo}\r
+\r
+FUNCTION {format.names}\r
+{ 'bibinfo :=\r
+ duplicate$ empty$ 'skip$ {\r
+ 's :=\r
+ "" 't :=\r
+ #1 'nameptr :=\r
+ s num.names$ 'numnames :=\r
+ numnames 'namesleft :=\r
+ { namesleft #0 > }\r
+ { s nameptr\r
+ "{vv~}{ll}{, jj}{, f{.}.}"\r
+ format.name$\r
+ bibinfo bibinfo.check\r
+ 't :=\r
+ nameptr #1 >\r
+ {\r
+ namesleft #1 >\r
+ { ", " * t * }\r
+ {\r
+ s nameptr "{ll}" format.name$ duplicate$ "others" =\r
+ { 't := }\r
+ { pop$ }\r
+ if$\r
+ "," *\r
+ t "others" =\r
+ {\r
+ " " * bbl.etal *\r
+ }\r
+ { " " * t * }\r
+ if$\r
+ }\r
+ if$\r
+ }\r
+ 't\r
+ if$\r
+ nameptr #1 + 'nameptr :=\r
+ namesleft #1 - 'namesleft :=\r
+ }\r
+ while$\r
+ } if$\r
+}\r
+FUNCTION {format.names.ed}\r
+{\r
+ 'bibinfo :=\r
+ duplicate$ empty$ 'skip$ {\r
+ 's :=\r
+ "" 't :=\r
+ #1 'nameptr :=\r
+ s num.names$ 'numnames :=\r
+ numnames 'namesleft :=\r
+ { namesleft #0 > }\r
+ { s nameptr\r
+ "{f{.}.~}{vv~}{ll}{ jj}"\r
+ format.name$\r
+ bibinfo bibinfo.check\r
+ 't :=\r
+ nameptr #1 >\r
+ {\r
+ namesleft #1 >\r
+ { ", " * t * }\r
+ {\r
+ s nameptr "{ll}" format.name$ duplicate$ "others" =\r
+ { 't := }\r
+ { pop$ }\r
+ if$\r
+ "," *\r
+ t "others" =\r
+ {\r
+\r
+ " " * bbl.etal *\r
+ }\r
+ { " " * t * }\r
+ if$\r
+ }\r
+ if$\r
+ }\r
+ 't\r
+ if$\r
+ nameptr #1 + 'nameptr :=\r
+ namesleft #1 - 'namesleft :=\r
+ }\r
+ while$\r
+ } if$\r
+}\r
+FUNCTION {format.authors}\r
+{ author "author" format.names\r
+}\r
+FUNCTION {get.bbl.editor}\r
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }\r
+\r
+FUNCTION {format.editors}\r
+{ editor "editor" format.names duplicate$ empty$ 'skip$\r
+ {\r
+ " " *\r
+ get.bbl.editor\r
+% capitalize\r
+ "(" swap$ * ")" *\r
+ *\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.note}\r
+{\r
+ note empty$\r
+ { "" }\r
+ { note #1 #1 substring$\r
+ duplicate$ "{" =\r
+ 'skip$\r
+ { output.state mid.sentence =\r
+ { "l" }\r
+ { "u" }\r
+ if$\r
+ change.case$\r
+ }\r
+ if$\r
+ note #2 global.max$ substring$ * "note" bibinfo.check\r
+ }\r
+ if$\r
+}\r
+\r
+FUNCTION {format.title}\r
+{ title\r
+ duplicate$ empty$ 'skip$\r
+ { "t" change.case$ }\r
+ if$\r
+ "title" bibinfo.check\r
+}\r
+FUNCTION {output.bibitem}\r
+{ newline$\r
+ "\bibitem{" write$\r
+ cite$ write$\r
+ "}" write$\r
+ newline$\r
+ ""\r
+ before.all 'output.state :=\r
+}\r
+\r
+FUNCTION {n.dashify}\r
+{\r
+ 't :=\r
+ ""\r
+ { t empty$ not }\r
+ { t #1 #1 substring$ "-" =\r
+ { t #1 #2 substring$ "--" = not\r
+ { "--" *\r
+ t #2 global.max$ substring$ 't :=\r
+ }\r
+ { { t #1 #1 substring$ "-" = }\r
+ { "-" *\r
+ t #2 global.max$ substring$ 't :=\r
+ }\r
+ while$\r
+ }\r
+ if$\r
+ }\r
+ { t #1 #1 substring$ *\r
+ t #2 global.max$ substring$ 't :=\r
+ }\r
+ if$\r
+ }\r
+ while$\r
+}\r
+\r
+FUNCTION {word.in}\r
+{ bbl.in capitalize\r
+ ":" *\r
+ " " * }\r
+\r
+FUNCTION {format.date}\r
+{\r
+ month "month" bibinfo.check\r
+ duplicate$ empty$\r
+ year "year" bibinfo.check duplicate$ empty$\r
+ { swap$ 'skip$\r
+ { "there's a month but no year in " cite$ * warning$ }\r
+ if$\r
+ *\r
+ }\r
+ { swap$ 'skip$\r
+ {\r
+ swap$\r
+ " " * swap$\r
+ }\r
+ if$\r
+ *\r
+ remove.dots\r
+ }\r
+ if$\r
+ duplicate$ empty$\r
+ 'skip$\r
+ {\r
+ before.all 'output.state :=\r
+ " (" swap$ * ")" *\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.btitle}\r
+{ title "title" bibinfo.check\r
+ duplicate$ empty$ 'skip$\r
+ {\r
+ }\r
+ if$\r
+}\r
+FUNCTION {either.or.check}\r
+{ empty$\r
+ 'pop$\r
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }\r
+ if$\r
+}\r
+FUNCTION {format.bvolume}\r
+{ volume empty$\r
+ { "" }\r
+ { bbl.volume volume tie.or.space.prefix\r
+ "volume" bibinfo.check * *\r
+ series "series" bibinfo.check\r
+ duplicate$ empty$ 'pop$\r
+ { emphasize ", " * swap$ * }\r
+ if$\r
+ "volume and number" number either.or.check\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.number.series}\r
+{ volume empty$\r
+ { number empty$\r
+ { series field.or.null }\r
+ { output.state mid.sentence =\r
+ { bbl.number }\r
+ { bbl.number capitalize }\r
+ if$\r
+ number tie.or.space.prefix "number" bibinfo.check * *\r
+ series empty$\r
+ { "there's a number but no series in " cite$ * warning$ }\r
+ { bbl.in space.word *\r
+ series "series" bibinfo.check *\r
+ }\r
+ if$\r
+ }\r
+ if$\r
+ }\r
+ { "" }\r
+ if$\r
+}\r
+\r
+FUNCTION {format.edition}\r
+{ edition duplicate$ empty$ 'skip$\r
+ {\r
+ output.state mid.sentence =\r
+ { "l" }\r
+ { "t" }\r
+ if$ change.case$\r
+ "edition" bibinfo.check\r
+ " " * bbl.edition *\r
+ }\r
+ if$\r
+}\r
+INTEGERS { multiresult }\r
+FUNCTION {multi.page.check}\r
+{ 't :=\r
+ #0 'multiresult :=\r
+ { multiresult not\r
+ t empty$ not\r
+ and\r
+ }\r
+ { t #1 #1 substring$\r
+ duplicate$ "-" =\r
+ swap$ duplicate$ "," =\r
+ swap$ "+" =\r
+ or or\r
+ { #1 'multiresult := }\r
+ { t #2 global.max$ substring$ 't := }\r
+ if$\r
+ }\r
+ while$\r
+ multiresult\r
+}\r
+FUNCTION {format.pages}\r
+{ pages duplicate$ empty$ 'skip$\r
+ { duplicate$ multi.page.check\r
+ {\r
+ bbl.pages swap$\r
+ n.dashify\r
+ }\r
+ {\r
+ bbl.page swap$\r
+ }\r
+ if$\r
+ tie.or.space.prefix\r
+ "pages" bibinfo.check\r
+ * *\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.journal.pages}\r
+{ pages duplicate$ empty$ 'pop$\r
+ { swap$ duplicate$ empty$\r
+ { pop$ pop$ format.pages }\r
+ {\r
+ ", " *\r
+ swap$\r
+ n.dashify\r
+ pages multi.page.check\r
+ 'titto.bbl.pages\r
+ 'titto.bbl.page\r
+ if$\r
+ swap$ tie.or.space.prefix\r
+ "pages" bibinfo.check\r
+ * *\r
+ *\r
+ }\r
+ if$\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.journal.eid}\r
+{ eid "eid" bibinfo.check\r
+ duplicate$ empty$ 'pop$\r
+ { swap$ duplicate$ empty$ 'skip$\r
+ {\r
+ ", " *\r
+ }\r
+ if$\r
+ swap$ *\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.vol.num.pages} % this function is used only for journal entries\r
+{ volume field.or.null\r
+ duplicate$ empty$ 'skip$\r
+ {\r
+% bbl.volume swap$ tie.or.space.prefix\r
+ titto.bbl.volume swap$ titto.space.prefix\r
+% rationale for the change above: for journals you don't want "vol." label\r
+% hence it does not make sense to attach the journal number to the label when\r
+% it is short\r
+ "volume" bibinfo.check\r
+ * *\r
+ }\r
+ if$\r
+ number "number" bibinfo.check duplicate$ empty$ 'skip$\r
+ {\r
+ swap$ duplicate$ empty$\r
+ { "there's a number but no volume in " cite$ * warning$ }\r
+ 'skip$\r
+ if$\r
+ swap$\r
+ "(" swap$ * ")" *\r
+ }\r
+ if$ *\r
+ eid empty$\r
+ { format.journal.pages }\r
+ { format.journal.eid }\r
+ if$\r
+}\r
+\r
+FUNCTION {format.chapter.pages}\r
+{ chapter empty$\r
+ 'format.pages\r
+ { type empty$\r
+ { bbl.chapter }\r
+ { type "l" change.case$\r
+ "type" bibinfo.check\r
+ }\r
+ if$\r
+ chapter tie.or.space.prefix\r
+ "chapter" bibinfo.check\r
+ * *\r
+ pages empty$\r
+ 'skip$\r
+ { ", " * format.pages * }\r
+ if$\r
+ }\r
+ if$\r
+}\r
+\r
+FUNCTION {format.booktitle}\r
+{\r
+ booktitle "booktitle" bibinfo.check\r
+}\r
+FUNCTION {format.in.ed.booktitle}\r
+{ format.booktitle duplicate$ empty$ 'skip$\r
+ {\r
+% editor "editor" format.names.ed duplicate$ empty$ 'pop$ % changed by titto\r
+ editor "editor" format.names duplicate$ empty$ 'pop$\r
+ {\r
+ " " *\r
+ get.bbl.editor\r
+% capitalize\r
+ "(" swap$ * ") " *\r
+ * swap$\r
+ * }\r
+ if$\r
+ word.in swap$ *\r
+ }\r
+ if$\r
+}\r
+FUNCTION {empty.misc.check}\r
+{ author empty$ title empty$ howpublished empty$\r
+ month empty$ year empty$ note empty$\r
+ and and and and and\r
+ key empty$ not and\r
+ { "all relevant fields are empty in " cite$ * warning$ }\r
+ 'skip$\r
+ if$\r
+}\r
+FUNCTION {format.thesis.type}\r
+{ type duplicate$ empty$\r
+ 'pop$\r
+ { swap$ pop$\r
+ "t" change.case$ "type" bibinfo.check\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.tr.number}\r
+{ number "number" bibinfo.check\r
+ type duplicate$ empty$\r
+ { pop$ bbl.techrep }\r
+ 'skip$\r
+ if$\r
+ "type" bibinfo.check\r
+ swap$ duplicate$ empty$\r
+ { pop$ "t" change.case$ }\r
+ { tie.or.space.prefix * * }\r
+ if$\r
+}\r
+FUNCTION {format.article.crossref}\r
+{\r
+ key duplicate$ empty$\r
+ { pop$\r
+ journal duplicate$ empty$\r
+ { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }\r
+ { "journal" bibinfo.check emphasize word.in swap$ * }\r
+ if$\r
+ }\r
+ { word.in swap$ * " " *}\r
+ if$\r
+ " \cite{" * crossref * "}" *\r
+}\r
+FUNCTION {format.crossref.editor}\r
+{ editor #1 "{vv~}{ll}" format.name$\r
+ "editor" bibinfo.check\r
+ editor num.names$ duplicate$\r
+ #2 >\r
+ { pop$\r
+ "editor" bibinfo.check\r
+ " " * bbl.etal\r
+ *\r
+ }\r
+ { #2 <\r
+ 'skip$\r
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =\r
+ {\r
+ "editor" bibinfo.check\r
+ " " * bbl.etal\r
+ *\r
+ }\r
+ {\r
+ bbl.and space.word\r
+ * editor #2 "{vv~}{ll}" format.name$\r
+ "editor" bibinfo.check\r
+ *\r
+ }\r
+ if$\r
+ }\r
+ if$\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.book.crossref}\r
+{ volume duplicate$ empty$\r
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$\r
+ pop$ word.in\r
+ }\r
+ { bbl.volume\r
+ capitalize\r
+ swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *\r
+ }\r
+ if$\r
+ editor empty$\r
+ editor field.or.null author field.or.null =\r
+ or\r
+ { key empty$\r
+ { series empty$\r
+ { "need editor, key, or series for " cite$ * " to crossref " *\r
+ crossref * warning$\r
+ "" *\r
+ }\r
+ { series emphasize * }\r
+ if$\r
+ }\r
+ { key * }\r
+ if$\r
+ }\r
+ { format.crossref.editor * }\r
+ if$\r
+ " \cite{" * crossref * "}" *\r
+}\r
+FUNCTION {format.incoll.inproc.crossref}\r
+{\r
+ editor empty$\r
+ editor field.or.null author field.or.null =\r
+ or\r
+ { key empty$\r
+ { format.booktitle duplicate$ empty$\r
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *\r
+ crossref * warning$\r
+ }\r
+ { word.in swap$ * }\r
+ if$\r
+ }\r
+ { word.in key * " " *}\r
+ if$\r
+ }\r
+ { word.in format.crossref.editor * " " *}\r
+ if$\r
+ " \cite{" * crossref * "}" *\r
+}\r
+FUNCTION {format.org.or.pub}\r
+{ 't :=\r
+ ""\r
+ address empty$ t empty$ and\r
+ 'skip$\r
+ {\r
+ t empty$\r
+ { address "address" bibinfo.check *\r
+ }\r
+ { t *\r
+ address empty$\r
+ 'skip$\r
+ { ", " * address "address" bibinfo.check * }\r
+ if$\r
+ }\r
+ if$\r
+ }\r
+ if$\r
+}\r
+FUNCTION {format.publisher.address}\r
+{ publisher "publisher" bibinfo.warn format.org.or.pub\r
+}\r
+\r
+FUNCTION {format.organization.address}\r
+{ organization "organization" bibinfo.check format.org.or.pub\r
+}\r
+\r
+FUNCTION {article}\r
+{ output.bibitem\r
+ format.authors "author" output.check\r
+ add.colon\r
+ new.block\r
+ format.title "title" output.check\r
+ new.block\r
+ crossref missing$\r
+ {\r
+ journal\r
+ "journal" bibinfo.check\r
+ "journal" output.check\r
+ add.blank\r
+ format.vol.num.pages output\r
+ format.date "year" output.check\r
+ }\r
+ { format.article.crossref output.nonnull\r
+ format.pages output\r
+ }\r
+ if$\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+FUNCTION {book}\r
+{ output.bibitem\r
+ author empty$\r
+ { format.editors "author and editor" output.check\r
+ add.colon\r
+ }\r
+ { format.authors output.nonnull\r
+ add.colon\r
+ crossref missing$\r
+ { "author and editor" editor either.or.check }\r
+ 'skip$\r
+ if$\r
+ }\r
+ if$\r
+ new.block\r
+ format.btitle "title" output.check\r
+ crossref missing$\r
+ { format.bvolume output\r
+ new.block\r
+ new.sentence\r
+ format.number.series output\r
+ format.publisher.address output\r
+ }\r
+ {\r
+ new.block\r
+ format.book.crossref output.nonnull\r
+ }\r
+ if$\r
+ format.edition output\r
+ format.date "year" output.check\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+FUNCTION {booklet}\r
+{ output.bibitem\r
+ format.authors output\r
+ add.colon\r
+ new.block\r
+ format.title "title" output.check\r
+ new.block\r
+ howpublished "howpublished" bibinfo.check output\r
+ address "address" bibinfo.check output\r
+ format.date output\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+\r
+FUNCTION {inbook}\r
+{ output.bibitem\r
+ author empty$\r
+ { format.editors "author and editor" output.check\r
+ add.colon\r
+ }\r
+ { format.authors output.nonnull\r
+ add.colon\r
+ crossref missing$\r
+ { "author and editor" editor either.or.check }\r
+ 'skip$\r
+ if$\r
+ }\r
+ if$\r
+ new.block\r
+ format.btitle "title" output.check\r
+ crossref missing$\r
+ {\r
+ format.bvolume output\r
+ format.chapter.pages "chapter and pages" output.check\r
+ new.block\r
+ new.sentence\r
+ format.number.series output\r
+ format.publisher.address output\r
+ }\r
+ {\r
+ format.chapter.pages "chapter and pages" output.check\r
+ new.block\r
+ format.book.crossref output.nonnull\r
+ }\r
+ if$\r
+ format.edition output\r
+ format.date "year" output.check\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+\r
+FUNCTION {incollection}\r
+{ output.bibitem\r
+ format.authors "author" output.check\r
+ add.colon\r
+ new.block\r
+ format.title "title" output.check\r
+ new.block\r
+ crossref missing$\r
+ { format.in.ed.booktitle "booktitle" output.check\r
+ format.bvolume output\r
+ format.chapter.pages output\r
+ new.sentence\r
+ format.number.series output\r
+ format.publisher.address output\r
+ format.edition output\r
+ format.date "year" output.check\r
+ }\r
+ { format.incoll.inproc.crossref output.nonnull\r
+ format.chapter.pages output\r
+ }\r
+ if$\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+FUNCTION {inproceedings}\r
+{ output.bibitem\r
+ format.authors "author" output.check\r
+ add.colon\r
+ new.block\r
+ format.title "title" output.check\r
+ new.block\r
+ crossref missing$\r
+ { format.in.ed.booktitle "booktitle" output.check\r
+ new.sentence % added by titto\r
+ format.bvolume output\r
+ format.pages output\r
+ new.sentence\r
+ format.number.series output\r
+ publisher empty$\r
+ { format.organization.address output }\r
+ { organization "organization" bibinfo.check output\r
+ format.publisher.address output\r
+ }\r
+ if$\r
+ format.date "year" output.check\r
+ }\r
+ { format.incoll.inproc.crossref output.nonnull\r
+ format.pages output\r
+ }\r
+ if$\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+FUNCTION {conference} { inproceedings }\r
+FUNCTION {manual}\r
+{ output.bibitem\r
+ author empty$\r
+ { organization "organization" bibinfo.check\r
+ duplicate$ empty$ 'pop$\r
+ { output\r
+ address "address" bibinfo.check output\r
+ }\r
+ if$\r
+ }\r
+ { format.authors output.nonnull }\r
+ if$\r
+ add.colon\r
+ new.block\r
+ format.btitle "title" output.check\r
+ author empty$\r
+ { organization empty$\r
+ {\r
+ address new.block.checka\r
+ address "address" bibinfo.check output\r
+ }\r
+ 'skip$\r
+ if$\r
+ }\r
+ {\r
+ organization address new.block.checkb\r
+ organization "organization" bibinfo.check output\r
+ address "address" bibinfo.check output\r
+ }\r
+ if$\r
+ format.edition output\r
+ format.date output\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+\r
+FUNCTION {mastersthesis}\r
+{ output.bibitem\r
+ format.authors "author" output.check\r
+ add.colon\r
+ new.block\r
+ format.btitle\r
+ "title" output.check\r
+ new.block\r
+ bbl.mthesis format.thesis.type output.nonnull\r
+ school "school" bibinfo.warn output\r
+ address "address" bibinfo.check output\r
+ format.date "year" output.check\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+\r
+FUNCTION {misc}\r
+{ output.bibitem\r
+ format.authors output\r
+ add.colon\r
+ title howpublished new.block.checkb\r
+ format.title output\r
+ howpublished new.block.checka\r
+ howpublished "howpublished" bibinfo.check output\r
+ format.date output\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+ empty.misc.check\r
+}\r
+FUNCTION {phdthesis}\r
+{ output.bibitem\r
+ format.authors "author" output.check\r
+ add.colon\r
+ new.block\r
+ format.btitle\r
+ "title" output.check\r
+ new.block\r
+ bbl.phdthesis format.thesis.type output.nonnull\r
+ school "school" bibinfo.warn output\r
+ address "address" bibinfo.check output\r
+ format.date "year" output.check\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+\r
+FUNCTION {proceedings}\r
+{ output.bibitem\r
+ editor empty$\r
+ { organization "organization" bibinfo.check output\r
+ }\r
+ { format.editors output.nonnull }\r
+ if$\r
+ add.colon\r
+ new.block\r
+ format.btitle "title" output.check\r
+ format.bvolume output\r
+ editor empty$\r
+ { publisher empty$\r
+ { format.number.series output }\r
+ {\r
+ new.sentence\r
+ format.number.series output\r
+ format.publisher.address output\r
+ }\r
+ if$\r
+ }\r
+ { publisher empty$\r
+ {\r
+ new.sentence\r
+ format.number.series output\r
+ format.organization.address output }\r
+ {\r
+ new.sentence\r
+ format.number.series output\r
+ organization "organization" bibinfo.check output\r
+ format.publisher.address output\r
+ }\r
+ if$\r
+ }\r
+ if$\r
+ format.date "year" output.check\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+\r
+FUNCTION {techreport}\r
+{ output.bibitem\r
+ format.authors "author" output.check\r
+ add.colon\r
+ new.block\r
+ format.title\r
+ "title" output.check\r
+ new.block\r
+ format.tr.number output.nonnull\r
+ institution "institution" bibinfo.warn output\r
+ address "address" bibinfo.check output\r
+ format.date "year" output.check\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note output\r
+ fin.entry\r
+}\r
+\r
+FUNCTION {unpublished}\r
+{ output.bibitem\r
+ format.authors "author" output.check\r
+ add.colon\r
+ new.block\r
+ format.title "title" output.check\r
+ format.date output\r
+% new.block\r
+ format.url output\r
+% new.block\r
+ format.note "note" output.check\r
+ fin.entry\r
+}\r
+\r
+FUNCTION {default.type} { misc }\r
+READ\r
+FUNCTION {sortify}\r
+{ purify$\r
+ "l" change.case$\r
+}\r
+INTEGERS { len }\r
+FUNCTION {chop.word}\r
+{ 's :=\r
+ 'len :=\r
+ s #1 len substring$ =\r
+ { s len #1 + global.max$ substring$ }\r
+ 's\r
+ if$\r
+}\r
+FUNCTION {sort.format.names}\r
+{ 's :=\r
+ #1 'nameptr :=\r
+ ""\r
+ s num.names$ 'numnames :=\r
+ numnames 'namesleft :=\r
+ { namesleft #0 > }\r
+ { s nameptr\r
+ "{ll{ }}{ ff{ }}{ jj{ }}"\r
+ format.name$ 't :=\r
+ nameptr #1 >\r
+ {\r
+ " " *\r
+ namesleft #1 = t "others" = and\r
+ { "zzzzz" * }\r
+ { t sortify * }\r
+ if$\r
+ }\r
+ { t sortify * }\r
+ if$\r
+ nameptr #1 + 'nameptr :=\r
+ namesleft #1 - 'namesleft :=\r
+ }\r
+ while$\r
+}\r
+\r
+FUNCTION {sort.format.title}\r
+{ 't :=\r
+ "A " #2\r
+ "An " #3\r
+ "The " #4 t chop.word\r
+ chop.word\r
+ chop.word\r
+ sortify\r
+ #1 global.max$ substring$\r
+}\r
+FUNCTION {author.sort}\r
+{ author empty$\r
+ { key empty$\r
+ { "to sort, need author or key in " cite$ * warning$\r
+ ""\r
+ }\r
+ { key sortify }\r
+ if$\r
+ }\r
+ { author sort.format.names }\r
+ if$\r
+}\r
+FUNCTION {author.editor.sort}\r
+{ author empty$\r
+ { editor empty$\r
+ { key empty$\r
+ { "to sort, need author, editor, or key in " cite$ * warning$\r
+ ""\r
+ }\r
+ { key sortify }\r
+ if$\r
+ }\r
+ { editor sort.format.names }\r
+ if$\r
+ }\r
+ { author sort.format.names }\r
+ if$\r
+}\r
+FUNCTION {author.organization.sort}\r
+{ author empty$\r
+ { organization empty$\r
+ { key empty$\r
+ { "to sort, need author, organization, or key in " cite$ * warning$\r
+ ""\r
+ }\r
+ { key sortify }\r
+ if$\r
+ }\r
+ { "The " #4 organization chop.word sortify }\r
+ if$\r
+ }\r
+ { author sort.format.names }\r
+ if$\r
+}\r
+FUNCTION {editor.organization.sort}\r
+{ editor empty$\r
+ { organization empty$\r
+ { key empty$\r
+ { "to sort, need editor, organization, or key in " cite$ * warning$\r
+ ""\r
+ }\r
+ { key sortify }\r
+ if$\r
+ }\r
+ { "The " #4 organization chop.word sortify }\r
+ if$\r
+ }\r
+ { editor sort.format.names }\r
+ if$\r
+}\r
+FUNCTION {presort}\r
+{ type$ "book" =\r
+ type$ "inbook" =\r
+ or\r
+ 'author.editor.sort\r
+ { type$ "proceedings" =\r
+ 'editor.organization.sort\r
+ { type$ "manual" =\r
+ 'author.organization.sort\r
+ 'author.sort\r
+ if$\r
+ }\r
+ if$\r
+ }\r
+ if$\r
+ " "\r
+ *\r
+ year field.or.null sortify\r
+ *\r
+ " "\r
+ *\r
+ title field.or.null\r
+ sort.format.title\r
+ *\r
+ #1 entry.max$ substring$\r
+ 'sort.key$ :=\r
+}\r
+ITERATE {presort}\r
+SORT\r
+STRINGS { longest.label }\r
+INTEGERS { number.label longest.label.width }\r
+FUNCTION {initialize.longest.label}\r
+{ "" 'longest.label :=\r
+ #1 'number.label :=\r
+ #0 'longest.label.width :=\r
+}\r
+FUNCTION {longest.label.pass}\r
+{ number.label int.to.str$ 'label :=\r
+ number.label #1 + 'number.label :=\r
+ label width$ longest.label.width >\r
+ { label 'longest.label :=\r
+ label width$ 'longest.label.width :=\r
+ }\r
+ 'skip$\r
+ if$\r
+}\r
+EXECUTE {initialize.longest.label}\r
+ITERATE {longest.label.pass}\r
+FUNCTION {begin.bib}\r
+{ preamble$ empty$\r
+ 'skip$\r
+ { preamble$ write$ newline$ }\r
+ if$\r
+ "\begin{thebibliography}{" longest.label * "}" *\r
+ write$ newline$\r
+ "\providecommand{\url}[1]{\texttt{#1}}"\r
+ write$ newline$\r
+ "\providecommand{\urlprefix}{URL }"\r
+ write$ newline$\r
+}\r
+EXECUTE {begin.bib}\r
+EXECUTE {init.state.consts}\r
+ITERATE {call.type$}\r
+FUNCTION {end.bib}\r
+{ newline$\r
+ "\end{thebibliography}" write$ newline$\r
+}\r
+EXECUTE {end.bib}\r
+%% End of customized bst file\r
+%%\r
+%% End of file `titto.bst'.\r
+\r
+\r