Re: Canadian uniform citation (McGill)
"e_kaplinsky" <[email protected]> Thu, 02 Nov 2006 19:01:44 -0000
| Newsgroups | gmane.comp.tex.bibtex.jurabib.user |
|---|---|
| Message-ID | <[email protected]> |
Hello Charles,
I've been waiting for a Canadian uniform citation style to be made
available for quite some time now, and I must thank you for your
efforts! I work at the University of Toronto law school and I hope to
introduce your style here.
I'm trying to implement your solution with no success. What am I doing
wrong?
1. save your file as canadian_legal.bst and put it under /bibtex/bst
2. In the document options select Xjurabib
3. In the preamble enter \usepackage[jurabib]
4. Add to preamble \jurabibsetup{} with the recommended options
(oxford,citefull etc.)
5. Insert Bibliography from a working .bib file with the
canadian_legal style
6. Insert citations in text (using the menu or \footcite?)
I am getting ? instead of references.
Regards,
Eran Kaplinsky
--- In [email protected], Charles de Miramon <cmiramon@...> wrote:
>
> elawquake wrote:
>
> > --- In [email protected], Jens Berger <jberger@> wrote:
> >
> > Hi Jens,
> >
> > If I may be allowed a followup, how do I remove the comma before and
> > colon after "in"?
> >
> > NOT "article name", in: William A. Fischel, ed.,
> > BUT "article name" in William A. Fischel, ed.,
> >
> > And also, is it possible to produce correct typographer quotes? I now
> > get closing quotation marks on both sides.
> >
> > Best,
> > elaw
>
> Try this slightly modified attached bst file. You have to change your
> bibliography style to canadian_legal.
>
> Cheers,
> Charles
>
> --
> http://www.kde-france.org
> %%
> %% This is file `jox.bst',
> %% generated with the docstrip utility.
> %%
> %% The original source files were:
> %%
> %% jurabib.dtx (with options: `joxbst')
> %% ----------------------------------------
> %% BibTeX style for use with the jurabib package version v0.6
> %% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org)
> %% See jurabib.ins for the copyright details.
> %%
> FUNCTION {version} { " v0.1k" }
>
> ENTRY
> { address
> author
> booktitle
> chapter
> edition
> editor
> howpublished
> institution
> journal
> key
> month
> note
> number
> organization
> pages
> publisher
> school
> series
> stitle
> title
> type
> volume
> year
> url
> urldate
> volumetitle
> juratitle
> shorttitle
> juraauthor
> shortauthor
> howcited
> ssedition
> language
> titleaddon
> booktitleaddon
> editortype
> sortkey
> annote
> gender
> translator
> flanguage
> oyear
> oaddress
> opublisher
> pseudonym
> volformat
> noed
> }
> { repeat-authors }
> { label dummy.label extra.label sort.label short.list
current-authors }
>
> INTEGERS { output.state before.all mid.sentence }
>
> FUNCTION {init.state.consts}
> { #0 'before.all :=
> #1 'mid.sentence :=
> }
>
> STRINGS { s t u v w x }
>
> FUNCTION {output.nonnull}
> { 's :=
> output.state mid.sentence =
> { ", " * write$ }
> { write$ 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 {format.endnote}
> { note empty$
> { "" }
> { " \jbendnote {" note * "}" * }
> if$
> }
>
> FUNCTION {format.howcited}{ before.all 'output.state := "}
{\bibhowcited}" format.endnote * * }
>
> INTEGERS { nameptr namesleft numnames }
>
> FUNCTION {format.name.sig}
> { 's :=
> #1 'nameptr :=
> s num.names$ 'numnames :=
> numnames 'namesleft :=
> { namesleft #0 > }
> { s nameptr "{ff}{ vv}{ ll}{ jj}" format.name$ 't :=
> nameptr #1 >
> { namesleft #1 >
> { "sssss" * t * }
> { t "others" =
> { " et al." * }
> { "" * t * }
> if$
> }
> if$
> }
> 't
> if$
> nameptr #1 + 'nameptr :=
> namesleft #1 - 'namesleft :=
> }
> while$
> }
>
> FUNCTION {format.snd.editors}
> { editor empty$
> { "" * }
> { author empty$
> { editortype empty$
> { editor num.names$ #1 >
> { "\snded {\sndeditorsname}" * }
> { "\snded {\sndeditorname}" * }
> if$
> }
> { "\snded {(" editortype * ")}" * * }
> if$
> }
> 'skip$
> if$
> }
> if$
> }
>
> FUNCTION {count.authors.or.editors}
> { 's :=
> #1 'nameptr :=
> s num.names$ 'numnames :=
> numnames 'namesleft :=
> { namesleft #0 > }
> { "" 't :=
> nameptr #1 >
> { namesleft #1 >
> { "" * }
> { "s" * } % more than one author/editor, append `s'
> if$
> }
> 't
> if$
> nameptr #1 + 'nameptr :=
> namesleft #1 - 'namesleft :=
> }
> while$
> }
>
> FUNCTION {set.after.author.sep}
> { before.all 'output.state :=
> author missing$
> { editor missing$
> { organization missing$
> { "} {empty} {} {" }
> { "} {" organization "} {org} {" * * }
> if$
> }
> { "} {" editor format.name.sig * "} {ed" editor
count.authors.or.editors "} {" * * * }
> if$
> }
> { "} {" author format.name.sig * "} {au" author
count.authors.or.editors "} {" * * * }
> if$
> author empty$
> { format.snd.editors }
> 'skip$
> if$
> "" *
> }
>
> FUNCTION {format.note}
> { note empty$
> 'skip$
> { output.state before.all =
> { "\jbnote {}{" * note * "}" * }
> { " \jbnote {1}{" * note * "}" * }
> if$
> }
> if$
> }
>
>
> FUNCTION {not}
> { { #0 }
> { #1 }
> if$
> }
>
> FUNCTION {and}
> { 'skip$
> { pop$ #0 }
> if$
> }
>
> FUNCTION {or}
> { { pop$ #1 }
> 'skip$
> if$
> }
>
> FUNCTION {non.stop}
> { duplicate$
> "}" *
> #-1 #1 substring$ "." =
> }
>
> FUNCTION {field.or.null}
> { duplicate$ empty$
> { pop$ "" }
> 'skip$
> if$
> }
>
> FUNCTION {capitalize}
> { "u" change.case$ "t" change.case$ }
>
> FUNCTION {space.word}
> { " " swap$ * " " * }
>
> FUNCTION {bbl.edition}
> { "\editionname {} " }
>
> FUNCTION {bbl.vol}
> { "\volname {}" }
>
> FUNCTION {bbl.volume}
> { "\volumename {}" }
>
> FUNCTION {bbl.of}
> { " \volumeofname {} " }
>
> FUNCTION {bbl.number}
> { "\numbername" }
>
> FUNCTION {bbl.in}
> { "\incollinname {} " }
>
> FUNCTION {bbl.in.series}
> { "\inseriesname {}" }
>
> FUNCTION {bbl.chapter}
> { "\bibchaptername {}" }
>
> FUNCTION {bbl.techrep}
> { "\technicalreportname {}" }
>
> FUNCTION {bbl.mthesis}
> { "\mastersthesisname {}" }
>
> FUNCTION {bbl.phdthesis}
> { "\phdthesisname {}"}
>
> MACRO {jan} {"\janname"}
> MACRO {feb} {"\febname"}
> MACRO {mar} {"\marname"}
> MACRO {apr} {"\aprname"}
> MACRO {may} {"\mayname"}
> MACRO {jun} {"\junname"}
> MACRO {jul} {"\julname"}
> MACRO {aug} {"\augname"}
> MACRO {sep} {"\sepname"}
> MACRO {oct} {"\octname"}
> MACRO {nov} {"\novname"}
> MACRO {dec} {"\decname"}
>
> FUNCTION {checked.emph.format}
> { type$ "book" = type$ "inbook" = type$ "proceedings" = type$
"inproceedings" = or or or
> { "\bibtfont {" }
> { "\bibapifont {" }
> if$
> }
>
> FUNCTION {emphasize}
> { duplicate$ empty$
> { pop$ "" }
> { checked.emph.format swap$ * "}" * }
> if$
> }
>
> FUNCTION {b.emphasize}
> { duplicate$ empty$
> { pop$ "" }
> { "\bibbtfont {" swap$ * "}" * }
> if$
> }
>
> FUNCTION {write.url}
> { url empty$
> { urldate empty$
> 'skip$
> { "there's an urldate, but no url in " cite$ * warning$ }
> if$
> }
> { type$ "www" =
> 'skip$
> { ", " * }
> if$
> title empty$ output.state before.all = and
> { "" * mid.sentence 'output.state := }
> { " " * }
> if$
> urldate empty$
> { "\jburluse {" cite$ * "}" * * }
> { "\jburluse {" cite$ * "}\bibbudcsep
{}\urldatecomment " * urldate * * }
> if$
> }
> if$
> }
>
> FUNCTION {lastnamemarkup}
> { duplicate$ empty$
> { pop$ "" }
> { "\bibnf {" swap$ * "}" * }
> if$
> }
>
> FUNCTION {editorlastnamemarkup}
> { duplicate$ empty$
> { pop$ "" }
> { author empty$
> { "\biblenf {" swap$ * "}" * }
> { "\bibenf {" swap$ * "}" * }
> if$
> }
> if$
> }
>
> FUNCTION {othermarkup}
> { duplicate$ empty$
> { pop$ " {}" }
> { " {" swap$ * "}" * }
> if$
> }
>
> FUNCTION {indexmarkup}
> { duplicate$ empty$
> { pop$ "{}" }
> { "{" swap$ * "}" * }
> if$
> }
>
> FUNCTION {format.names.for.index}
> { 's :=
> #1 'nameptr :=
> s num.names$ 'numnames :=
> numnames 'namesleft :=
> { namesleft #0 > }
> { s nameptr "{ll}" format.name$ 't := t indexmarkup 't :=
> s nameptr "{ff}" format.name$ indexmarkup 'u :=
> s nameptr "{f.}" format.name$ indexmarkup 'v :=
> s nameptr "{vv}" format.name$ indexmarkup 'w :=
> s nameptr "{jj}" format.name$ indexmarkup 'x :=
> t u * v * w * x * 't :=
> t "{others}{}{}{}{}" =
> 'skip$
> { nameptr #1 >
> { namesleft #1 >
> { "; " * t * }
> {
> t "others" =
> 'skip$
> { "; " * t * }
> if$
> }
> if$
> }
> 't
> if$
> }
> if$
> nameptr #1 + 'nameptr :=
> namesleft #1 - 'namesleft :=
> }
> while$
> }
>
> FUNCTION {format.names}
> { 's :=
> #1 'nameptr :=
> s num.names$ 'numnames :=
> numnames 'namesleft :=
> { namesleft #0 > }
> { s nameptr "{ll}" format.name$ 't := t lastnamemarkup 't :=
> s nameptr "{ff}" format.name$ othermarkup 'u :=
> s nameptr "{f.}" format.name$ othermarkup 'v :=
> s nameptr "{vv}" format.name$ othermarkup 'w :=
> s nameptr "{jj}" format.name$ othermarkup 'x :=
> t u * v * w * x * 't :=
> nameptr #1 >
> { namesleft #1 >
> { numnames #3 >
> { "" * }
> { numnames #3 <
> { "\Bibbtasep " * t * }
> { "\Bibbfsasep " * t * }
> if$
> }
> if$
> }
> { t "\bibnf {others} {} {} {} {}" =
> numnames #3 > or
> { "\bibimfont {\Bibetal}" * }
> { numnames #3 <
> { "\Bibbtasep " * t * }
> { "\Bibbstasep " * t * }
> if$
> }
> if$
> }
> if$
> }
> 't
> if$
> nameptr #1 + 'nameptr :=
> namesleft #1 - 'namesleft :=
> }
> while$
> }
>
> FUNCTION {format.editor.names}
> { 's :=
> #1 'nameptr :=
> s num.names$ 'numnames :=
> numnames 'namesleft :=
> { namesleft #0 > }
> { s nameptr "{ll}" format.name$ 't := t editorlastnamemarkup 't :=
> s nameptr "{ff}" format.name$ othermarkup 'u :=
> s nameptr "{f.}" format.name$ othermarkup 'v :=
> s nameptr "{vv}" format.name$ othermarkup 'w :=
> s nameptr "{jj}" format.name$ othermarkup 'x :=
> t u * v * w * x * 't :=
> nameptr #1 >
> { namesleft #1 >
> { numnames #3 >
> { "" * }
> { numnames #3 <
> { "\Bibbtasep " * t * }
> { "\Bibbfsasep " * t * }
> if$
> }
> if$
> }
> { t "\bibenf {others} {} {} {} {}" =
> t "\biblenf {others} {} {} {} {}" = or
> t "\bibenf {others} {} {} {} {} \editorsname" = or
> t "\biblenf {others} {} {} {} {} \editorsname" = or
> numnames #3 > or
> { "\bibimfont {\Bibetal}" * }
> { numnames #3 <
> { "\Bibbtasep " * t * }
> { "\Bibbstasep " * t * }
> if$
> }
> if$
> }
> if$
> }
> 't
> if$
> nameptr #1 + 'nameptr :=
> namesleft #1 - 'namesleft :=
> }
> while$
> }
>
> FUNCTION {format.authors}
> { author empty$
> { pseudonym empty$
> { "" }
> { "[" pseudonym format.names * "]" * }
> if$
> }
> { author format.names
> pseudonym empty$
> 'skip$
> { " [" * pseudonym format.names * "]" * }
> if$
> }
> if$
> }
>
> FUNCTION {format.editors}
> { editor empty$
> { pseudonym empty$
> { "" }
> { "[" pseudonym format.editor.names * "]" * }
> if$
> }
> { editor format.editor.names
> pseudonym empty$
> 'skip$
> { " [" * pseudonym format.editor.names * "]" * }
> if$
> noed missing$
> { editor num.names$ #1 >
> { editortype empty$
> { "\bibedformat {\editorsname}" * }
> { "\bibedformat {" * editortype * "}" * }
> if$
> }
> { editortype empty$
> { "\bibedformat {\editorname}" * }
> { "\bibedformat {" * editortype * "}" * }
> if$
> }
> if$
> }
> { noed 's :=
> s "1" =
> 'skip$
> { editor num.names$ #1 >
> { editortype empty$
> { "\bibedformat {\editorsname}" * }
> { "\bibedformat {" * editortype * "}" * }
> if$
> }
> { editortype empty$
> { "\bibedformat {\editorname}" * }
> { "\bibedformat {" * editortype * "}" * }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
>
> FUNCTION {format.in.editors}
> { editor empty$
> { pseudonym empty$
> 'skip$
> { "[" pseudonym format.editor.names * "]" * }
> if$
> }
> { editor format.editor.names
> pseudonym empty$
> 'skip$
> { " [" * pseudonym format.editor.names * "]" * }
> if$
> noed missing$
> { editor num.names$ #1 >
> { editortype empty$
> { " \bibedinformat {\editorsname}" * }
> { " \bibedinformat {" * editortype * "}" * }
> if$
> }
> { editortype empty$
> { " \bibedinformat {\editorname}" * }
> { " \bibedinformat {" * editortype * "}" * }
> if$
> }
> if$
> }
> { noed 's :=
> s "1" =
> 'skip$
> { editor num.names$ #1 >
> { editortype empty$
> { " \bibedinformat {\editorsname}" * }
> { " \bibedinformat {" * editortype *
"}" * }
> if$
> }
> { editortype empty$
> { " \bibedinformat {\editorname}" * }
> { " \bibedinformat {" * editortype *
"}" * }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
>
> FUNCTION {fin.entry}
> { format.howcited
> " \jbdoitem {" *
> author empty$
> 'skip$
> { author format.names.for.index * }
> if$
> "} {"
> editor empty$
> 'skip$
> { editor format.names.for.index * }
> if$
> "} {" *
> organization empty$
> 'skip$
> { "{" organization * "}{}{}{}{}" * * }
> if$
> "}" * * write$
> annote missing$
> { " \bibAnnoteFile {" cite$ * "}" * write$ newline$ }
> { " \bibAnnote {" annote * "}" * write$ newline$ }
> if$
> }
>
> FUNCTION {format.titleaddon}
> { title empty$
> 'skip$
> { titleaddon empty$
> 'skip$
> { ", " * titleaddon * }
> if$
> }
> if$
> }
>
> FUNCTION {format.booktitleaddon}
> { booktitle empty$
> 'skip$
> { booktitleaddon empty$
> 'skip$
> { ", " * booktitleaddon * }
> if$
> }
> if$
> }
>
> FUNCTION {format.title}
> { before.all 'output.state :=
> title empty$
> { "" }
> { title checked.emph.format swap$ * non.stop
> { before.all 'output.state := "}" * }
> { before.all 'output.state := "}" * }
> if$
> }
> if$
> }
>
> FUNCTION {journalnamemarkup}
> { duplicate$ empty$
> { pop$ "" }
> { "\bibJTsep \bibjtfont {" swap$ * "}" * }
> if$
> }
>
> FUNCTION {seriesformat}
> { duplicate$ empty$
> { pop$ "" }
> { "\bibsnfont {" swap$ * "}" * }
> if$
> }
>
> FUNCTION {is.num}
> { chr.to.int$
> duplicate$ "0" chr.to.int$ < not
> swap$ "9" chr.to.int$ > not and
> }
>
> FUNCTION {extract.num}
> { duplicate$ 't :=
> "" 's :=
> { t empty$ not }
> { t #1 #1 substring$
> t #2 global.max$ substring$ 't :=
> duplicate$ is.num
> { s swap$ * 's := }
> { pop$ "" 't := }
> if$
> }
> while$
> s empty$
> 'skip$
> { pop$ s }
> if$
> }
>
> FUNCTION {convert.edition.superscript}
> { edition extract.num "l" change.case$ 's :=
> s "first" = s "1" = or s "erste" = or
> { "1" 't := }
> { s "second" = s "2" = or s "zweite" = or
> { "2" 't := }
> { s "third" = s "3" = or s "dritte" = or
> { "3" 't := }
> { s "fourth" = s "4" = or s "vierte" = or
> { "4" 't := }
> { s "fifth" = s "5" = or s "fuenfte" = or
> { "5" 't := }
> { s "sixth" = s "6" = or s "sechste" = or
> { "6" 't := }
> { s "seventh" = s "7" = or s "siebte" = or s
"siebente" = or
> { "7" 't := }
> { s "eighth" = s "8" = or s "achte" = or
> { "8" 't := }
> { s "nineth" = s "9" = or s "neunte"
= or
> { "9" 't := }
> { s #1 #1 substring$ is.num
> { s "" * 't := }
> { edition 't := }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> t
> }
>
> 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 {output.bibitem.fst}
> { newline$
> "\bibitem[{" write$
> shortauthor empty$
> { juraauthor empty$
> { author empty$
> { editor empty$
> { organization empty$
> { "empty" write$ }
> { organization write$ }
> if$
> }
> { label write$ }
> if$
> }
> { label write$ }
> if$
> }
> { juraauthor write$ }
> if$
> }
> { shortauthor write$ }
> if$
> "}%" write$
> sortkey empty$
> 'skip$
> { newline$ "% SORTKEY: [" sortkey * "]" * write$ }
> if$
> newline$
> shorttitle empty$
> { juratitle empty$
> { journal empty$
> { " {}%" write$ }
> { title empty$
> { key empty$
> { " {}%" write$ }
> { " {" key * "}%" * write$ }
> if$
> }
> { " {" title * "}%" * write$ }
> if$
> }
> if$
> }
> { " {" juratitle * "}%" * write$ }
> if$
> }
> { " {" shorttitle * "}%" * write$ }
> if$
> newline$
> repeat-authors
> { " {{1}" write$ }
> { " {{0}" write$ }
> if$
> howcited empty$
> { "{}" write$ }
> { "{" howcited * "}" * write$ }
> if$
> type$ empty$
> { "{}" write$ }
> { "{" type$ * "}" * write$ }
> if$
> year empty$
> { "{}" write$ }
> { "{" year * write$
> extra.label "" =
> 'skip$
> { "\el {" write$ extra.label write$ "}" write$ }
> if$
> "}" write$
> }
> if$
> edition empty$
> { "{}" write$ }
> { "{" convert.edition.superscript extract.num * "}" * write$ }
> if$
> ssedition empty$
> { "{}" write$ }
> { "{" ssedition * "}" * write$ }
> if$
> language empty$
> { "{}" write$ }
> { "{" language * "}" * write$ }
> if$
> pages empty$
> { "{}%" write$ }
> { "{" write$ pages n.dashify write$ "}%" write$ }
> if$
> newline$
> }
>
> FUNCTION {output.bibitem.snd}
> { publisher empty$
> { address empty$
> { year empty$
> { " {" write$ }
> { " {" write$
> year write$
> extra.label "" =
> 'skip$
> { "\el {" write$ extra.label write$
"}" write$ }
> if$
> }
> if$
> }
> { year empty$
> { " {" write$ address write$ }
> { " {" write$ address write$ "\bibbdsep {} "
write$
> year write$
> extra.label "" =
> 'skip$
> { "\el {" write$ extra.label write$
"}" write$ }
> if$
> }
> if$
> }
> if$
> }
> { address empty$
> { year empty$
> { " {" write$ publisher write$ }
> { " {" write$ publisher write$ "\bibbdsep {}
" write$
> year write$
> extra.label "" =
> 'skip$
> { "\el {" write$ extra.label write$
"}" write$ }
> if$
> }
> if$
> }
> { year empty$
> { " {" write$ address write$ "\bpubaddr {} "
write$ publisher write$ }
> { " {" write$ address write$ "\bpubaddr {} "
write$ publisher write$ "\bibbdsep {} " write$
> year write$
> extra.label "" =
> 'skip$
> { "\el {" write$ extra.label write$
"}" write$ }
> if$
> }
> if$
> }
> if$
> }
> if$
> "}}%" write$ newline$
> " {" write$
> title empty$
> { "{}%" write$ newline$ }
> { "{" title * "}%" * write$ newline$ }
> if$
> gender empty$
> { " {}" write$ }
> { " {" gender * "}" * write$ }
> if$
> oyear empty$
> { "{}" write$ }
> { "{" oyear * "}" * write$ }
> if$
> author empty$
> { editor empty$
> { "{4}" write$ }% author and editor empty
> { "{3}" write$ }% author empty, editor not
> if$
> }
> { editor empty$
> { "{2}" write$ }% editor empty, author not
> { "{1}" write$ }% both author and editor given
> if$
> }
> if$
> "{}{}{}{}{}}%" write$ newline$
> " ]{" write$
> cite$ write$
> "}" write$
> url empty$
> 'skip$
> { newline$ " \jburldef {" write$ cite$ write$ "}{" write$ url
write$ "}%" write$ }
> if$
> newline$
> " \jbbibargs {" write$
> ""
> before.all 'output.state :=
> }
>
> FUNCTION {output.bibitem}{ output.bibitem.fst output.bibitem.snd }
>
> FUNCTION {word.in}
> { bbl.in
> " " * }
>
> FUNCTION {add.extra.label}
> {extra.label "" =
> 'skip$
> { "\bibel {" extra.label * "}" * * }
> if$
> }
>
> FUNCTION {format.date}
> { year empty$
> 'skip$
> { output.state before.all =
> { "" * mid.sentence 'output.state := }
> { " " * }
> if$
> "\dateldelim {}" *
> month empty$
> 'skip$
> { month "{} " * * }
> if$
> year * add.extra.label "\daterdelim {}" *
> }
> if$
> }
>
> FUNCTION {format.btitle}
> { before.all 'output.state :=
> title emphasize
> }
>
> FUNCTION {format.booktitle}
> { before.all 'output.state :=
> booktitle b.emphasize
> }
>
> FUNCTION {format.booklet.title}
> { before.all 'output.state :=
> title emphasize
> }
>
> FUNCTION {tie.or.space.connect}
> { duplicate$ text.length$ #3 <
> { "~" }
> { " " }
> if$
> swap$ * *
> }
>
> FUNCTION {either.or.check}
> { empty$
> 'pop$
> { "can't use both " swap$ * " fields in " * cite$ * warning$ }
> if$
> }
>
> FUNCTION {format.bvolume}
> { volume empty$
> { " " }
> {
> volumetitle empty$
> { crossref missing$
> { bbl.volume volume tie.or.space.connect }
> { bbl.vol volume tie.or.space.connect }
> if$
> }
> {
> crossref missing$
> { bbl.volume volume tie.or.space.connect }
> { bbl.vol volume tie.or.space.connect }
> if$
> ": \bibvtfont {" * volumetitle "}" * *
> }
> if$
> }
> if$
> }
>
> FUNCTION {format.bvolume.btitle.reversed}
> { volume empty$
> { title empty$
> 'skip$
> {
> before.all 'output.state :=
> title emphasize
> }
> if$
> }
> { volumetitle empty$
> { title empty$
> 'skip$
> {
> before.all 'output.state :=
> title emphasize
> }
> if$
> }
> { "\bibvtfont {" volumetitle * "}" * *
> bbl.volume volume tie.or.space.connect
> title empty$
> 'skip$
> { bbl.of title emphasize * * }
> if$
> }
> if$
> }
> if$
> }
>
> FUNCTION {format.bvolume.btitle}
> { volformat missing$
> {
> format.btitle "title" output.check format.bvolume output
> }
> { volformat 's :=
> s "reversed" =
> { volumetitle empty$
> {
> "volformat given but no volumetitle in " cite$ *
warning$
> format.bvolume.btitle.reversed output
> }
> {
> volume empty$
> { "there's a volumetitle but no volume in "
cite$ * warning$ * }
> 'skip$
> if$
> title empty$
> {
> "volformat given but no title in " cite$ *
warning$
> }
> {
> format.bvolume.btitle.reversed output
> }
> if$
> }
> if$
> }
> {
> format.btitle "title" output.check format.bvolume output
> }
> if$
> }
> if$
> }
>
> FUNCTION {format.bvolume.booktitle.reversed}
> { volume empty$
> { booktitle empty$
> 'skip$
> {
> before.all 'output.state :=
> booktitle b.emphasize
> }
> if$
> }
> { volumetitle empty$
> { booktitle empty$
> 'skip$
> {
> before.all 'output.state :=
> bbl.volume volume tie.or.space.connect
> booktitle empty$
> 'skip$
> { bbl.of booktitle b.emphasize * * }
> if$
> }
> if$
> }
> { "\bibvtfont {" volumetitle * "}" * *
> bbl.volume volume tie.or.space.connect
> booktitle empty$
> 'skip$
> { bbl.of booktitle b.emphasize * * }
> if$
> }
> if$
> }
> if$
> }
>
> FUNCTION {format.in.editor.booktitle.volume.voltitle}
> { editor empty$
> { chapter empty$
> { " " * }
> { " " * }
> if$
> word.in *
> }
> { chapter empty$
> { " " * }
> { " " * }
> if$
> word.in format.in.editors * " " * *
> }
> if$
> volformat missing$
> {
> format.booktitle "booktitle" output.check
> format.bvolume output
> format.booktitleaddon
> }
> { volformat 's :=
> s "reversed" =
> { volumetitle empty$
> {
> "volformat given but no volumetitle in " cite$ *
warning$
> format.bvolume.booktitle.reversed output
> format.booktitleaddon
> }
> {
> volume empty$
> { "there's a volumetitle but no volume in "
cite$ * warning$ * }
> 'skip$
> if$
> booktitle empty$
> {
> "volformat given but no booktitle in " cite$
* warning$
> }
> {
> format.bvolume.booktitle.reversed output
> format.booktitleaddon
> }
> if$
> }
> if$
> }
> { format.booktitle "booktitle" output.check
> format.bvolume output
> format.booktitleaddon
> }
> if$
> }
> if$
> }
>
> FUNCTION {format.number.series.book.old}
> { number empty$
> { series seriesformat field.or.null }
> { series empty$
> { "there's a number but no series in " cite$ * warning$ number }
> { series seriesformat number tie.or.space.connect }
> if$
> }
> if$
> }
>
> FUNCTION {format.number.series.book}
> { volume empty$
> { number empty$
> { series empty$
> { "" }
> { " \numberandseries {}{" series * "}" * }
> if$
> }
> { series empty$
> { " \numberandseries {" number * "}{}" * "There's a number
but no series in " cite$ * warning$ }
> { " \numberandseries {" number * "}{" * series "}" * * }
> if$
> }
> if$
> }
> { series empty$
> { "" }
> { type$ "proceedings" =
> { " \numberandseries {}{" series * "}" * } % { " (" series
* ")" * }
> { "" }
> if$
> }
> if$
> }
> if$
> }
>
> FUNCTION {format.number.series}
> { volume empty$
> { number empty$
> { series seriesformat field.or.null }
> { output.state mid.sentence =
> { bbl.number }
> { bbl.number capitalize }
> if$
> number tie.or.space.connect
> series empty$
> { "there's a number but no series in " cite$ * warning$ }
> { bbl.in.series space.word * series seriesformat * }
> if$
> }
> if$
> }
> { type$ "incollection" = crossref missing$ and
> { format.number.series.book }
> { "" }
> if$
> }
> if$
> }
>
> FUNCTION {first.ed} { "\firstedname" }
> FUNCTION {second.ed}{ "\secondedname" }
> FUNCTION {third.ed} { "\thirdedname" }
> FUNCTION {fourth.ed}{ "\fourthedname" }
> FUNCTION {fifth.ed} { "\fifthedname" }
> FUNCTION {th.ed} { "\thedname" }
>
> FUNCTION {convert.edition}
> { edition extract.num "l" change.case$ 's :=
> s "first" = s "1" = or
> { first.ed 't := }
> { s "second" = s "2" = or
> { second.ed 't := }
> { s "third" = s "3" = or
> { third.ed 't := }
> { s "fourth" = s "4" = or
> { fourth.ed 't := }
> { s "fifth" = s "5" = or
> { fifth.ed 't := }
> { s #1 #1 substring$ is.num
> { s th.ed * 't := }
> { edition 't := }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> }
> if$
> t
> }
>
> FUNCTION {format.edition}
> { edition empty$
> { "" }
> { convert.edition "~\editionname {}" * }
> 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 empty$
> { "" }
> { before.all 'output.state :=
> "\jbPages {" pages n.dashify * "}" *
> }
> if$
> }
>
> FUNCTION {format.journal.pages}
> { pages empty$
> 'skip$
> { duplicate$ empty$
> { pop$ format.pages }
> { " \jbartPages {" pages n.dashify * "}" * * }
> if$
> }
> if$
> }
>
> FUNCTION {format.vol.num.pages}
> { before.all 'output.state :=
> volume empty$
> { year empty$ not
> { "there's a year but no volume in " cite$ * warning$ }
> 'skip$
> if$
> number empty$
> { "" }
> { "there's a number but no volume in " cite$ * warning$
> type$ "periodical" =
> { "~\per" * }
> { "~\art" * }
> if$
> "volnumformat {}{" number * "}" *
> }
> if$
> }
> { type$ "periodical" =
> { "~\per" * }
> { "~\art" * }
> if$
> number empty$
> { "volnumformat {" volume * "}{}" * }
> { "volnumformat {" volume * "}{" number * "}" * * }
> if$
> }
> if$
> year empty$
> { month empty$ not
> { "there's a month but no year in " cite$ * warning$ }
> 'skip$
> if$
> }
> { type$ "periodical" =
> { " \per" * }
> { " \art" * }
> if$
> month empty$
> { "yearformat {" year * add.extra.label "}" * * }
> { "yearformat {" month * "{} " * year * add.extra.label "}"
* * }
> if$
> }
> if$
> }
>
> FUNCTION {format.chapter.inbook.incoll}
> { chapter empty$
> { "" }
> { before.all 'output.state :=
> type empty$
> { ", " bbl.chapter * }
> { ", " type * "l" change.case$ }
> if$
> chapter tie.or.space.connect
> }
> if$
> }
>
> FUNCTION {format.chapter.pages}
> { chapter empty$
> 'format.pages
> { type empty$
> { before.all 'output.state := ", " bbl.chapter * }
> { ", " type * "l" change.case$ }
> if$
> chapter tie.or.space.connect
> pages empty$
> 'skip$
> { format.pages * }
> if$
> }
> if$
> }
>
> FUNCTION {format.in.ed.booktitle}
> { booktitle empty$
> { "" }
> { editor empty$
> { word.in booktitle b.emphasize format.booktitleaddon * }
> { word.in format.in.editors * ", " * booktitle b.emphasize
format.booktitleaddon * }
> if$
> }
> if$
> }
>
> FUNCTION {format.thesis.type}
> { type empty$
> 'skip$
> { pop$
> type "t" change.case$
> }
> if$
> }
>
> FUNCTION {format.tr.number}
> { type empty$
> { bbl.techrep }
> 'type
> if$
> number empty$
> { "t" change.case$ }
> { number tie.or.space.connect }
> if$
> }
>
> FUNCTION {format.article.crossref}
> { " \protect\jbartcrossrefchecked {" crossref * "}" * }
>
> FUNCTION {format.book.crossref}
> { type$ "book" =
> { volume empty$
> { "empty volume in " cite$ * "'s crossref of " * crossref *
warning$
> "\protect\jbcrossrefchecked {" crossref * "}" * }
> { "\protect\jbcrossrefchecked[" volume * "]{" * crossref "}"
* * }
> if$
> }
> { "\protect\jbcrossrefchecked {" crossref * "}" * }
> if$
> }
>
> FUNCTION {format.incoll.inproc.crossref}
> { " \protect\jbincollcrossref {" crossref * "}" *
> editor empty$
> { "{}" * }
> { "{1}" * }
> if$
> }
>
> FUNCTION {oaddress.opublisher.oyear.format}
> { type$ "book" =
> { oyear empty$
> { opublisher empty$
> { oaddress empty$
> 'skip$
> { oaddress "\osep {} " * * }
> if$
> }
> { oaddress empty$
> { opublisher "\osep {} " * * }
> { oaddress "\bpubaddr {} " * opublisher "\osep
{} " * * * }
> if$
> }
> if$
> }
> { year empty$
> { "oyear without year in " cite$ * warning$ }
> 'skip$
> if$
> opublisher empty$
> { oaddress empty$
> { oyear * "\osep {} \reprintname {}, " * }
> { oaddress "\bibbdsep {} " * oyear "\osep {} "
* * * }
> if$
> }
> { oaddress empty$
> { opublisher * "\bibbdsep {} " * oyear "\osep
{} " * * }
> { oaddress "\bpubaddr {} " * opublisher
"\bibbdsep {} " * * oyear "\osep {} " * * * }
> if$
> }
> if$
> }
> if$
> }
> 'skip$
> if$
> }
>
> FUNCTION {format.publisher}
> { year empty$ month empty$ not and
> { "there's a month but no year in " cite$ * warning$ }
> 'skip$
> if$
> address empty$ publisher empty$ year empty$ and and
> 'skip$
> { " \apyformat {" * }
> if$
> oaddress.opublisher.oyear.format
> address empty$
> {
> publisher empty$
> {
> year empty$
> 'skip$
> { month empty$
> { year * add.extra.label }
> { month "{} " * year * * add.extra.label }
> if$
> }
> if$
> }
> {
> year empty$
> { month empty$
> { publisher * }
> 'skip$
> if$
> }
> { month empty$
> { publisher "\bibbdsep {} " * year * *
add.extra.label }
> { publisher "\bibbdsep {} " * month "{} " *
year * * * add.extra.label }
> if$
> }
> if$
> }
> if$
> }
> {
> publisher empty$
> {
> year empty$
> { address * }
> { month empty$
> { address "\bibbdsep {} " * year * *
add.extra.label }
> { address "\bibbdsep {} " * month "{} " * year
* * * add.extra.label }
> if$
> }
> if$
> }
> {
> year empty$
> { month empty$
> { address "\bpubaddr {} " * publisher * * }
> 'skip$
> if$
> }
> { month empty$
> { address "\bpubaddr {} " * publisher
"\bibbdsep {} " * year * * * add.extra.label }
> { address "\bpubaddr {} " * publisher
"\bibbdsep {} " * month "{} " * year * * * * add.extra.label }
> if$
> }
> if$
> }
> if$
> }
> if$
> address empty$ publisher empty$ year empty$ and and
> 'skip$
> { "}" * }
> if$
> }
>
> FUNCTION {format.publisher.manual}
> { year empty$ month empty$ not and
> { "there's a month but no year in " cite$ * warning$ }
> 'skip$
> if$
> address empty$ organization empty$ year empty$ and and
> 'skip$
> { " \apyformat {" * }
> if$
> address empty$
> {
> organization empty$
> {
> year empty$
> 'skip$
> { month empty$
> { year * add.extra.label }
> { month "{} " * year * * add.extra.label }
> if$
> }
> if$
> }
> {
> year empty$
> { month empty$
> { organization * }
> 'skip$
> if$
> }
> { month empty$
> { organization "\bibbdsep {} " * year * *
add.extra.label }
> { organization "\bibbdsep {} " * month "{} " *
year * * * add.extra.label }
> if$
> }
> if$
> }
> if$
> }
> { organization empty$
> { year empty$
> { address * }
> { month empty$
> { address "\bibbdsep {} " * year * *
add.extra.label }
> { address "\bpubaddr {} " * month "{} " * year
* * * add.extra.label }
> if$
> }
> if$
> }
> { year empty$
> { month empty$
> { address "\bpubaddr {} " * organization * * }
> 'skip$
> if$
> }
> { month empty$
> { address "\bpubaddr {} " * organization
"\bibbdsep {} " * year * * * add.extra.label }
> { address "\bpubaddr {} " * organization
"\bibbdsep {} " * month "{} " * year * * * * add.extra.label }
> if$
> }
> if$
> }
> if$
> }
> if$
> address empty$ organization empty$ year empty$ and and
> 'skip$
> { "}" * }
> if$
> }
>
> FUNCTION {format.publisher.techreport}
> { year empty$ month empty$ not and
> { "there's a month but no year in " cite$ * warning$ }
> 'skip$
> if$
> address empty$ institution empty$ year empty$ and and
> 'skip$
> { " \apyformat {" * }
> if$
> address empty$
> {
> institution empty$
> {
> year empty$
> 'skip$
> { month empty$
> { year * add.extra.label }
> { month "{} " * year * * add.extra.label }
> if$
> }
> if$
> }
> {
> year empty$
> { month empty$
> { institution * }
> 'skip$
> if$
> }
> { month empty$
> { institution "\bibbdsep {} " * year * *
add.extra.label }
> { institution "\bibbdsep {} " * month "{} " *
year * * * add.extra.label }
> if$
> }
> if$
> }
> if$
> }
> { institution empty$
> { year empty$
> { address * }
> { month empty$
> { address "\bibbdsep {} " * year * *
add.extra.label }
> { address "\bpubaddr {} " * month "{} " * year
* * * add.extra.label }
> if$
> }
> if$
> }
> { year empty$
> { month empty$
> { address "\bpubaddr {} " * institution * * }
> 'skip$
> if$
> }
> { month empty$
> { address "\bpubaddr {} " * institution
"\bibbdsep {} " * year * * * add.extra.label }
> { address "\bpubaddr {} " * institution
"\bibbdsep {} " * month "{} " * year * * * * add.extra.label }
> if$
> }
> if$
> }
> if$
> }
> if$
> address empty$ institution empty$ year empty$ and and
> 'skip$
> { "}" * }
> if$
> }
>
> FUNCTION {format.edby.editors}
> { author empty$
> 'skip$
> { editor empty$
> 'skip$
> { "\edbyname {} " editor format.editor.names * output }
> if$
> }
> if$
> }
>
> FUNCTION {make.translators}
> { translator empty$
> { flanguage empty$
> { "" }
> { "\translator {}{" flanguage "l" change.case$ * "}{1}" * }
> if$
> }
> { "\translator {" translator * "}" *
> flanguage empty$
> { "{}{1}" * }
> { "{" * flanguage "l" change.case$ * "}{1}" * }
> if$
> }
> if$
> }
>
> FUNCTION {article}
> { output.bibitem
> format.authors "author" output.check
> set.after.author.sep output
> format.title "title" output.check
> format.titleaddon
> crossref missing$
> { journal journalnamemarkup
> "journal" output.check
> format.vol.num.pages output
> write.url
> format.journal.pages
> }
> { format.article.crossref output.nonnull
> format.pages output
> }
> if$
> format.note
> fin.entry
> }
>
> FUNCTION {periodical} {article}
>
> FUNCTION {review}
> { output.bibitem
> format.authors "author" output.check
> set.after.author.sep output
> format.title "title" output.check
> format.titleaddon
> crossref missing$
> { journal journalnamemarkup
> "journal" output.check
> format.vol.num.pages output
> write.url
> format.journal.pages
> }
> { format.article.crossref output.nonnull
> format.pages output
> }
> if$
> format.note
> fin.entry
> }
>
> FUNCTION {format.editors.last}
> { editor empty$
> { "" before.all 'output.state := }
> { author empty$ not
> { " \edbyname{} " editor format.editor.names * }
> { "" before.all 'output.state := }
> if$
> }
> if$
> }
>
> FUNCTION {book}
> { output.bibitem
> author empty$
> { editor empty$ not
> { format.editors output.nonnull }
> { "neither author nor editor in " cite$ * warning$ }
> if$
> }
> { format.authors output.nonnull }
> if$
> set.after.author.sep output
> crossref missing$
> { format.bvolume.btitle
> format.editors.last output.nonnull
> make.translators output
> format.titleaddon
> format.number.series.book output
> format.edition output
> format.pages output
> format.publisher
> write.url
> format.note
> }
> { format.btitle "title" output.check
> format.book.crossref output.nonnull
> }
> if$
> fin.entry
> }
>
> FUNCTION {booklet}
> { output.bibitem
> format.authors output
> set.after.author.sep output
> format.btitle "title" output.check
> format.titleaddon
> howpublished output
> format.publisher
> format.pages output
> write.url
> format.note
> fin.entry
> }
>
> FUNCTION {inbook}
> { output.bibitem
> format.authors "author" output.check
> set.after.author.sep output
> crossref missing$
> { format.bvolume.btitle
> format.titleaddon
> make.translators output
> format.number.series output
> format.edition output
> format.publisher
> write.url
> format.chapter.inbook.incoll output
> format.pages output
> format.note
> }
> { format.btitle "title" output.check
> format.chapter.inbook.incoll output
> format.incoll.inproc.crossref output.nonnull
> format.bvolume output
> format.pages output
> }
> if$
> fin.entry
> }
>
> FUNCTION {incollection}
> { output.bibitem
> format.authors "author" output.check
> set.after.author.sep output
> crossref missing$
> { format.btitle "title" output.check
> format.titleaddon
> format.chapter.inbook.incoll output
> format.in.editor.booktitle.volume.voltitle
> make.translators output
> format.number.series.book output
> format.edition output
> format.publisher
> write.url
> format.note
> format.pages output
> }
> { format.title "title" output.check
> format.chapter.inbook.incoll output
> format.incoll.inproc.crossref output.nonnull
> format.bvolume output
> format.pages output
> }
> if$
> fin.entry
> }
>
> FUNCTION {inproceedings}
> { output.bibitem
> format.authors "author" output.check
> set.after.author.sep output
> format.title "title" output.check
> format.titleaddon
> crossref missing$
> { format.in.ed.booktitle "booktitle" output.check
> format.bvolume output
> format.number.series output
> publisher empty$
> { organization output
> format.publisher
> }
> { organization output
> format.publisher
> }
> if$
> write.url
> format.note
> format.pages output
> }
> { format.incoll.inproc.crossref output.nonnull
> format.pages output
> }
> if$
> fin.entry
> }
>
> FUNCTION {conference} { inproceedings }
>
> FUNCTION {manual}
> { output.bibitem
> format.authors output
> set.after.author.sep output
> format.btitle "title" output.check
> format.titleaddon
> format.edition output
> format.publisher.manual
> write.url
> format.note
> fin.entry
> }
>
> FUNCTION {mastersthesis}
> { output.bibitem
> format.authors "author" output.check
> set.after.author.sep output
> format.btitle "title" output.check
> format.titleaddon
> bbl.mthesis format.thesis.type output.nonnull
> school "school" output.check
> format.publisher
> write.url
> format.note
> fin.entry
> }
>
> FUNCTION {misc}
> { output.bibitem
> format.authors output
> set.after.author.sep output
> format.btitle output
> format.titleaddon
> howpublished output
> format.date
> write.url
> format.note
> fin.entry
> }
>
> FUNCTION {phdthesis}
> { output.bibitem
> format.authors "author" output.check
> set.after.author.sep output
> format.btitle "title" output.check
> format.titleaddon
> bbl.phdthesis format.thesis.type output.nonnull
> school "school" output.check
> format.publisher
> write.url
> format.note
> fin.entry
> }
>
> FUNCTION {proceedings}
> { output.bibitem
> format.editors output
> set.after.author.sep output
> format.btitle "title" output.check
> format.titleaddon
> format.number.series.book output
> organization output
> format.publisher
> write.url
> format.note
> fin.entry
> }
>
> FUNCTION {techreport}
> { output.bibitem
> format.authors "author" output.check
> set.after.author.sep output
> format.title "title" output.check
> format.tr.number output.nonnull
> format.publisher.techreport
> write.url
> format.note
> fin.entry
> }
>
> FUNCTION {unpublished}
> { output.bibitem
> format.authors "author" output.check
> set.after.author.sep output
> format.title "title" output.check
> format.titleaddon
> format.date
> write.url
> format.note
> fin.entry
> }
>
> FUNCTION {www}
> { output.bibitem
> format.authors output.nonnull
> set.after.author.sep output
> format.title output.nonnull
> write.url
> format.note
> 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$
> }
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> INTEGERS { nextchar-ptr } % points just past 1st
"text" char
>
> FUNCTION {get.nextchar.ptr} % set nextchar-ptr to be
just past
> { #1 'nextchar-ptr := % the first "text"
char---this will
> { duplicate$ % be not quite trivial if
> nextchar-ptr #1 substring$ % the first "text" char is a
> "" = not % special characters like {\'E}
> }
> { nextchar-ptr #1 + 'nextchar-ptr := }
> while$
> pop$
> nextchar-ptr
> }
>
> STRINGS { first-char } % the to-be-capitalized
character
>
> FUNCTION {capitalize.von.part} % capitalize 1st character
of string
> { duplicate$ #1 text.prefix$ % get 1st character
> duplicate$ get.nextchar.ptr
> swap$ "u" change.case$ % capitalize it
> 'first-char :=
> global.max$ substring$ % get rest of string
> first-char swap$ * % append the two
> }
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> FUNCTION {format.lab.names}
> { 's := % for two: (Jones/de~Bruijn)
> s #1 "{vv~}{ll}" format.name$ capitalize.von.part % for three:
(Jones/de~Bruijn/Smith)
> s num.names$ duplicate$ % for more: (Jones et~al.)
> #2 <
> 'pop$ % for just one person
> { duplicate$ duplicate$
> #2 >
> swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" =
> or
> { pop$ "\Bibetal" * } % for 4 or more, or last
is `others'
> { #2 =
> { "\jbbtasep " * s #2 "{vv~}{ll}" format.name$
capitalize.von.part * } % for (exactly) two
> { "\jbbfsasep " * s #2 "{vv~}{ll}" format.name$
capitalize.von.part * % for three
> "\jbbstasep " * s #3 "{vv~}{ll}" format.name$
capitalize.von.part *
> }
> if$
> }
> if$
> }
> if$
> year missing$
> 'skip$
> { "\jbdy {" year * "}" * * }% dummy year to prevent from
`1993a' and `2001b' for works by the same author
> if$
> }
>
> FUNCTION {author.key.label}
> { author empty$
> { key empty$
> { cite$ #1 #3 substring$ }
> 'key
> if$
> }
> { author format.lab.names }
> if$
> }
>
> FUNCTION {author.editor.key.label}
> { author empty$
> { editor empty$
> { key empty$
> { cite$ #1 #3 substring$ }
> 'key
> if$
> }
> { editor format.lab.names }
> if$
> }
> { author format.lab.names }
> if$
> }
>
> FUNCTION {editor.key.label}
> { editor empty$
> { key empty$
> { cite$ #1 #3 substring$ }
> 'key
> if$
> }
> { editor format.lab.names }
> if$
> }
>
> FUNCTION {calc.label}
> { type$ "book" = type$ "inbook" = or type$ "incollection" = or
> 'author.editor.key.label
> { type$ "proceedings" =
> 'editor.key.label
> 'author.key.label
> if$
> }
> if$
> 'label :=
> }
>
> FUNCTION {calc.dummy.label}
> { type$ "book" = type$ "inbook" = or type$ "incollection" = or type$
"commented" = or
> 'author.editor.key.label
> { type$ "proceedings" =
> 'editor.key.label
> 'author.key.label
> if$
> }
> if$
> 'dummy.label :=
> }
>
> FUNCTION {sort.format.names}
> { 's :=
> #1 'nameptr :=
> ""
> s num.names$ 'numnames :=
> numnames 'namesleft :=
> { namesleft #0 > }
> { nameptr #1 >
> { " " * }
> 'skip$
> if$
> s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't :=
> nameptr numnames = t "\bibnf {others} {} {} {} {}" = and
> { "\Bibetal" * }
> { 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$
> { pseudonym empty$
> { key empty$
> { "to sort, need author, pseudonym or key in " cite$
* warning$ "" }
> { key sortify }
> if$
> }
> { pseudonym sort.format.names }
> if$
> }
> { author sort.format.names }
> if$
> }
>
> FUNCTION {author.editor.sort}
> { author empty$
> { editor empty$
> { pseudonym empty$
> { key empty$
> { "to sort, need author, editor, pseudonym or key
in " cite$ * warning$ "" }
> { key sortify }
> if$
> }
> { pseudonym sort.format.names }
> if$
> }
> { editor sort.format.names }
> if$
> }
> { author sort.format.names }
> if$
> }
>
> FUNCTION {editor.sort}
> { editor empty$
> { pseudonym empty$
> { key empty$
> { "to sort, need author, editor, pseudonym or key in "
cite$ * warning$ "" }
> { key sortify }
> if$
> }
> { pseudonym sort.format.names }
> if$
> }
> { editor sort.format.names }
> if$
> }
>
> FUNCTION {presort}
> { calc.label
> calc.dummy.label
> dummy.label sortify " " *
> sortkey empty$
> { type$ "book" =
> type$ "incollection" = or
> type$ "inbook" = or
> 'author.editor.sort
> { type$ "proceedings" =
> 'editor.sort
> 'author.sort
> if$
> }
> if$
> }
> { sortkey sort.format.names }
> if$
> " "
> *
> year field.or.null sortify
> *
> " "
> *
> title field.or.null
> sort.format.title
> *
> #1 entry.max$ substring$
> 'sort.label :=
> sort.label *
> #1 entry.max$ substring$
> 'sort.key$ :=
> }
>
> ITERATE {presort}
>
>
> SORT
>
>
> STRINGS { last.dummy.label next.extra }
>
> INTEGERS { last.extra.num number.label }
>
> FUNCTION {forward.pass}
> { last.dummy.label dummy.label =
> { last.extra.num #1 + 'last.extra.num :=
> last.extra.num int.to.chr$ 'extra.label :=
> }
> { "a" chr.to.int$ 'last.extra.num :=
> "" 'extra.label :=
> dummy.label 'last.dummy.label :=
> }
> if$
> number.label #1 + 'number.label :=
> }
>
> FUNCTION {reverse.pass}
> { next.extra "b" =
> { "a" 'extra.label := }
> 'skip$
> if$
> extra.label 'next.extra :=
> extra.label
> duplicate$ empty$
> 'skip$
> { "" swap$ * }
> if$
> 'extra.label :=
> dummy.label extra.label * 'dummy.label :=
> }
>
> ITERATE {forward.pass}
>
> REVERSE {reverse.pass}
>
> FUNCTION {bib.sort.order} { sort.label 'sort.key$ := }
>
> ITERATE {bib.sort.order}
>
> SORT
>
> FUNCTION {set.current.authors}
> { author empty$
> { editor empty$
> { organization empty$
> { cite$ 'current-authors := }
> { organization 'current-authors := }
> if$
> }
> { editor format.names #1 entry.max$ substring$ 'current-authors := }
> if$
> }
> { author format.names #1 entry.max$ substring$ 'current-authors := }
> if$
> }
>
> STRINGS { previous-authors }
>
> FUNCTION {initialize.previous.authors} { "" 'previous-authors := }
>
> FUNCTION {mark.repeat.authors}
> { current-authors previous-authors =
> { #1 'repeat-authors := }
> 'skip$
> if$
> current-authors 'previous-authors :=
> }
>
> ITERATE {set.current.authors}
>
> EXECUTE {initialize.previous.authors}
>
> ITERATE {mark.repeat.authors}
>
> EXECUTE {initialize.previous.authors}
>
> REVERSE {mark.repeat.authors}
>
> FUNCTION {begin.bib}
> { preamble$ empty$
> 'skip$
> { preamble$ write$ newline$ }
> if$
> "%" write$ newline$
> "% This bibliography was produced by using jox.bst" write$ version
write$ newline$
> "%" write$ newline$
> "\begin{thebibliography}{}" 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 file `jox.bst'.
>
--
Please remember -- this is an international english speaking mailing list!
If you have a problem, please provide a complete minimal example document (with a small bibliography database), which runs out of he box without any superfluous packages loaded, otherwise we could not help.
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/jurabib/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/jurabib/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:[email protected]
mailto:[email protected]
<*> To unsubscribe from this group, send an email to:
[email protected]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/