From 8603d483a604da3d57e6287fd7690179d681d847 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Fri, 22 Jun 2012 16:32:39 +0200 Subject: [PATCH] First submitted version. TODO: shorten it, write about post-processing --- extended-abstract.pdf | Bin 0 -> 27078 bytes extended-abstract.tex | 150 +++- paper.bib | 436 ++++++++++++ splncs03.bst | 1519 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 2099 insertions(+), 6 deletions(-) create mode 100644 extended-abstract.pdf create mode 100644 paper.bib create mode 100644 splncs03.bst diff --git a/extended-abstract.pdf b/extended-abstract.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6f5cd39c6c3b465169c58a3821eaaf9dae982e81 GIT binary patch literal 27078 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 D9S> [#] + % \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 alphabetical by authors. + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + 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$ % removed for titto-lncs-01 + " " write$ % to avoid long spaces between title and "In: ..." + } + { 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} +{ duplicate$ empty$ + 'pop$ + 'write$ + if$ + 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 {add.colon} +{ duplicate$ empty$ + 'skip$ + { ":" * add.blank } + if$ +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +STRINGS {z} +FUNCTION {remove.dots} +{ 'z := + "" + { z empty$ not } + { z #1 #1 substring$ + z #2 global.max$ substring$ 'z := + duplicate$ "." = 'pop$ + { * } + if$ + } + while$ +} +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} +{ skip$ } +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} +FUNCTION {titto.space.prefix} % always introduce a space +{ 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} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {titto.bbl.volume} % for handling journals +{ "" } + +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 {titto.bbl.pages} % for journals +{ "" } + +FUNCTION {titto.bbl.page} % for journals +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +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."} + +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.url} +{ url empty$ + { "" } +% { "\urlprefix\url{" url * "}" * } + { "\url{" url * "}" * } % changed in titto-lncs-02.bst + 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}{, jj}{, f{.}.}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + "," * + t "others" = + { + " " * bbl.etal * + } + { " " * 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$ + "," * + t "others" = + { + + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.authors} +{ author "author" format.names +} +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 +% capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +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} +{ bbl.in capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ + month "month" bibinfo.check + 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$ + * + remove.dots + } + if$ + duplicate$ empty$ + 'skip$ + { + before.all 'output.state := + " (" swap$ * ")" * + } + if$ +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + 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$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + 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$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + pages multi.page.check + 'titto.bbl.pages + 'titto.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$ * + } + if$ +} +FUNCTION {format.vol.num.pages} % this function is used only for journal entries +{ volume field.or.null + duplicate$ empty$ 'skip$ + { +% bbl.volume swap$ tie.or.space.prefix + titto.bbl.volume swap$ titto.space.prefix +% rationale for the change above: for journals you don't want "vol." label +% hence it does not make sense to attach the journal number to the label when +% it is short + "volume" bibinfo.check + * * + } + if$ + 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$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { +% editor "editor" format.names.ed duplicate$ empty$ 'pop$ % changed by titto + editor "editor" format.names duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor +% capitalize + "(" 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 + key empty$ not 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.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$ +} +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 + capitalize + 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 {article} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + "journal" output.check + add.blank + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ +% new.block + format.url output +% new.block + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + new.sentence + format.number.series output + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check +% new.block + format.url output +% new.block + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + add.colon + new.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.date output +% new.block + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + new.sentence + format.number.series output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check +% new.block + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.chapter.pages output + new.sentence + format.number.series output + format.publisher.address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ +% new.block + format.url output +% new.block + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence % added by titto + format.bvolume output + format.pages output + new.sentence + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ +% new.block + format.url output +% new.block + format.note output + fin.entry +} +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$ + add.colon + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address "address" bibinfo.check output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + } + if$ + format.edition output + format.date output +% new.block + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check +% new.block + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + add.colon + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished "howpublished" bibinfo.check output + format.date output +% new.block + format.url output +% new.block + format.note output + fin.entry + empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check +% new.block + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization "organization" bibinfo.check output + } + { format.editors output.nonnull } + if$ + add.colon + new.block + format.btitle "title" output.check + format.bvolume output + editor empty$ + { publisher empty$ + { format.number.series output } + { + new.sentence + format.number.series output + format.publisher.address output + } + if$ + } + { publisher empty$ + { + new.sentence + format.number.series output + format.organization.address output } + { + new.sentence + format.number.series output + organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + if$ + format.date "year" output.check +% new.block + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check +% new.block + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title "title" output.check + format.date output +% new.block + format.url output +% new.block + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} +SORT +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$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\urlprefix}{URL }" + 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 `titto.bst'. + + -- 2.43.0