You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2894 lines
65 KiB
2894 lines
65 KiB
%%
|
|
%% This is file `jurabib.bst',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% jurabib.dtx (with options: `jurabst')
|
|
%% ----------------------------------------
|
|
%% 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.
|
|
%%
|
|
ENTRY{
|
|
address
|
|
author
|
|
booktitle
|
|
chapter
|
|
edition
|
|
editor
|
|
howpublished
|
|
institution
|
|
isbn
|
|
issn
|
|
journal
|
|
key
|
|
language
|
|
month
|
|
note
|
|
number
|
|
organization
|
|
pages
|
|
publisher
|
|
school
|
|
series
|
|
title
|
|
type
|
|
volume
|
|
year
|
|
%%
|
|
url
|
|
urldate
|
|
volumetitle
|
|
dissyear
|
|
howcited
|
|
juratitle
|
|
juraauthor
|
|
shorttitle
|
|
shortauthor
|
|
ssedition
|
|
titleaddon
|
|
booktitleaddon
|
|
editortype
|
|
sortkey
|
|
annote
|
|
gender
|
|
translator
|
|
flanguage
|
|
oyear
|
|
oaddress
|
|
opublisher
|
|
updated
|
|
totalpages
|
|
founder
|
|
archive
|
|
subarchive
|
|
shortarchive
|
|
shortsubarchive
|
|
sig1
|
|
sig2
|
|
sig3
|
|
sig4
|
|
archname
|
|
}
|
|
{ repeat-authors repeat-titles }
|
|
{ label dummy.label extra.label sort.label current-authors }
|
|
|
|
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
|
|
|
|
INTEGERS { colon.after period.dash }
|
|
|
|
FUNCTION {init.state.consts}
|
|
{ #0 'before.all :=
|
|
#1 'mid.sentence :=
|
|
#2 'after.sentence :=
|
|
#3 'after.block :=
|
|
#4 'colon.after :=
|
|
#5 'period.dash :=
|
|
}
|
|
|
|
STRINGS { s t u v w x }
|
|
|
|
FUNCTION {output.nonnull}
|
|
{ 's :=
|
|
output.state after.block =
|
|
{ write$ }
|
|
{ output.state before.all =
|
|
{ write$ }
|
|
{ output.state colon.after =
|
|
{ "" * write$ }
|
|
{ output.state period.dash =
|
|
{ ", " * write$ }
|
|
{ output.state mid.sentence =
|
|
{ " " * write$ }
|
|
{ write$ }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
after.block '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 {not}
|
|
{ { #0 }
|
|
{ #1 }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {and}
|
|
{ 'skip$
|
|
{ pop$ #0 }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {or}
|
|
{ { pop$ #1 }
|
|
'skip$
|
|
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$
|
|
{ archive empty$
|
|
{ "empty" write$ }
|
|
{ archive write$ }
|
|
if$
|
|
}
|
|
{ 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$ }
|
|
{ volume empty$
|
|
{ year empty$
|
|
{ " {" journal * "}%" * write$ }
|
|
{ " {" journal * "\jbsy {" * year * "}}%" * write$ }
|
|
if$
|
|
}
|
|
{ year empty$
|
|
{ " {" journal * "}%" * write$ }
|
|
{ " {" journal * " " * volume * " " * " \peryearformat {" year * "}}%" * * write$ }
|
|
if$
|
|
}
|
|
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$
|
|
{ type$ "book" = dissyear empty$ not and
|
|
{ "{" dissyear * write$
|
|
extra.label "" =
|
|
skip$
|
|
{ "\el {" write$ extra.label write$ "}" write$ }
|
|
if$
|
|
"}" write$
|
|
}
|
|
{ "{}" write$ }
|
|
if$
|
|
}
|
|
{ "{" 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$
|
|
}
|
|
|
|
FUNCTION {output.bibitem.snd}
|
|
{ newline$
|
|
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 *
|
|
type$ "archival" =
|
|
{ shortarchive empty$ not
|
|
{ ", In: " shortarchive * * }
|
|
{ archive empty$ not
|
|
{ ", In: " archive * * }
|
|
'skip$
|
|
if$
|
|
}
|
|
if$
|
|
shortsubarchive empty$
|
|
'skip$
|
|
{ ", " shortsubarchive * * }
|
|
if$
|
|
sig1 empty$
|
|
'skip$
|
|
{ ", " sig1 * *
|
|
sig2 empty$
|
|
'skip$
|
|
{ ". " sig2 * *
|
|
sig3 empty$
|
|
'skip$
|
|
{ ". " sig3 * *
|
|
sig4 empty$
|
|
'skip$
|
|
{ ". " sig4 * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
pages empty$
|
|
'skip$
|
|
{ " \jbArchPages {" pages n.dashify * "}" * * }
|
|
if$
|
|
}
|
|
'skip$
|
|
if$
|
|
"}%" * 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 {format.note}
|
|
{ note empty$
|
|
'skip$
|
|
{ output.state before.all =
|
|
{" \jbnote {} {" * note * "} " * }
|
|
{" \jbnote {1} {" * note * "} " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.endnote}
|
|
{ note empty$
|
|
{ "" }
|
|
{ " \jbendnote {" note * "}" * }
|
|
if$
|
|
}
|
|
|
|
|
|
FUNCTION {format.juradiss.book}
|
|
{ dissyear empty$
|
|
{ "" }
|
|
{ type empty$
|
|
{ school empty$
|
|
{ "Dissyear but no school in " cite$ * warning$
|
|
" (\alsothesisname {} \jurthesisname" *
|
|
year empty$ not year missing$ not and
|
|
{ "\bibbdsep {} " dissyear * }
|
|
'skip$
|
|
if$
|
|
")" *
|
|
}
|
|
{ " (\alsothesisname {} \jurthesisname, " school *
|
|
year empty$ not year missing$ not and
|
|
{ "\bibbdsep {} " dissyear * * }
|
|
'skip$
|
|
if$
|
|
")" *
|
|
}
|
|
if$
|
|
}
|
|
{ school empty$
|
|
{ "Dissyear but no school in " cite$ * warning$
|
|
" (\alsothesisname {} " type *
|
|
year empty$ not year missing$ not and
|
|
{ "\bibbdsep {} " dissyear * }
|
|
'skip$
|
|
if$
|
|
")" *
|
|
}
|
|
{ " (\alsothesisname {} " type *
|
|
", " school * *
|
|
year empty$ not year missing$ not and
|
|
{ "\bibbdsep {} " dissyear * * }
|
|
'skip$
|
|
if$
|
|
")" *
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.thesis}
|
|
{ year empty$
|
|
{ school empty$
|
|
{ "No universtiy in " cite$ * warning$ }
|
|
{ "There's a university, but no year in " cite$ * warning$ }
|
|
if$
|
|
""
|
|
}
|
|
{ type empty$
|
|
{ school empty$
|
|
{ "No university in " cite$ * warning$
|
|
type$ "mastersthesis" =
|
|
{ "\apyformat {\mastersthesisname" * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * "}" * }
|
|
{ type$ "jurthesis" =
|
|
{ "\apyformat {\jurthesisname" * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * "}" * }
|
|
{ "\apyformat {\phdthesisname" * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * "}" * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ type$ "mastersthesis" =
|
|
{ "\mastersthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * }
|
|
{ type$ "jurthesis" =
|
|
{ "\jurthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * }
|
|
{ "\phdthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ school empty$
|
|
{ "No university in " cite$ * warning$ type
|
|
address empty$ 'skip$ { " \apyformat {" address * } if$ "\bibbdsep {} " * * year * "}" * }
|
|
{ type " \apyformat {" * school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {set.comma.pages.check}
|
|
{ year empty$
|
|
'skip$
|
|
{ pages empty$
|
|
{ url empty$
|
|
'skip$
|
|
{ ", " * }
|
|
if$
|
|
}
|
|
{ ", " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {set.period.dash}
|
|
{ output.state before.all =
|
|
'skip$
|
|
{ period.dash 'output.state := }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {set.period.dash.check}
|
|
{ empty$
|
|
'skip$
|
|
'set.period.dash
|
|
if$
|
|
}
|
|
|
|
FUNCTION {new.sentence}
|
|
{ output.state before.all =
|
|
'skip$
|
|
{ after.sentence 'output.state := }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {part.of.sentence}
|
|
{ output.state before.all =
|
|
'skip$
|
|
{ mid.sentence 'output.state := }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {new.sentence.checka}
|
|
{ empty$
|
|
'skip$
|
|
'new.sentence
|
|
if$
|
|
}
|
|
|
|
FUNCTION {field.or.null}
|
|
{ duplicate$ empty$
|
|
{ pop$ "" }
|
|
'skip$
|
|
if$
|
|
}
|
|
|
|
|
|
FUNCTION {get.final.nonrightbrace.char}
|
|
{ { duplicate$
|
|
#-1 #1 substring$
|
|
duplicate$
|
|
"}" =
|
|
}
|
|
{ pop$
|
|
#-2 global.max$ substring$
|
|
}
|
|
while$
|
|
swap$ pop$
|
|
}
|
|
|
|
|
|
FUNCTION {check.punct.instead.of.add.period}
|
|
{ duplicate$
|
|
get.final.nonrightbrace.char
|
|
duplicate$ "." = swap$
|
|
duplicate$ "!" = swap$
|
|
"?" = or or
|
|
{ "} " * }
|
|
{ "}\bibatsep\ " * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {check.punct.instead.of.add.period.art}
|
|
{ duplicate$
|
|
get.final.nonrightbrace.char
|
|
duplicate$ "." = swap$
|
|
duplicate$ "!" = swap$
|
|
"?" = or or
|
|
{ "} " * }
|
|
{ pages empty$ note empty$ url empty$ and and
|
|
{ "} " * }
|
|
{ volume empty$
|
|
{ pages empty$
|
|
{ "}\ajtsep\ " * }
|
|
{ crossref missing$
|
|
{ month empty$
|
|
{ "}\ajtsep\ " * }
|
|
{ "}\ajtsep " * }
|
|
if$
|
|
}
|
|
{ "}\ajtsep " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ "}\ajtsep\ " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {emphasize}
|
|
{ duplicate$ empty$
|
|
{ pop$ "" }
|
|
{ "\bibtfont {" swap$ check.punct.instead.of.add.period * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {journaltitlemarkup}
|
|
{ duplicate$ empty$
|
|
{ pop$ "" }
|
|
{ "\bibJTsep \bibjtfont {" swap$ check.punct.instead.of.add.period.art * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {incollbooktitlemarkup}
|
|
{ duplicate$ empty$
|
|
{ pop$ "" }
|
|
{ "\bibbtfont {" swap$ check.punct.instead.of.add.period * }
|
|
if$
|
|
}
|
|
|
|
INTEGERS { nameptr namesleft numnames }
|
|
|
|
FUNCTION { lastnamemarkup }
|
|
{ duplicate$ empty$
|
|
{ pop$ "" }
|
|
{ "\bibnf {" swap$ * "}" * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION { editorlastnamemarkup }
|
|
{ duplicate$ empty$
|
|
{ pop$ "" }
|
|
{ author empty$
|
|
{ "\biblenf {" swap$ * "}" * } % lonely editor(s)!
|
|
{ "\bibenf {" swap$ * "}" * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION { othermarkup }
|
|
{ duplicate$ empty$
|
|
{ pop$ " {}" }
|
|
{ " {" swap$ * "}" * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {article.in.journal}
|
|
{ duplicate$ empty$
|
|
{ pop$ "" }
|
|
{ author missing$
|
|
{ title missing$
|
|
'skip$
|
|
{ journaltitlemarkup "" swap$ * }
|
|
if$
|
|
}
|
|
{ journaltitlemarkup "" swap$ * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.names} % NEW v0.5
|
|
{ '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 * } % between (exactly) two authors
|
|
{ "\Bibbfsasep " * t * } % between first and second author (if more than two)
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ t "\bibnf {others} {} {} {} {}" =
|
|
t "\bibnf {others} {} {} {} {} \edfont {\editorsname}" = or
|
|
numnames #3 > or
|
|
{ "\bibIMfont {\Bibetal}" * }
|
|
{ numnames #3 <
|
|
{ "\Bibbtasep " * t * } % between (exactly) two authors
|
|
{ "\Bibbstasep " * t * } % between second and third author
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
't
|
|
if$
|
|
nameptr #1 + 'nameptr :=
|
|
namesleft #1 - 'namesleft :=
|
|
}
|
|
while$
|
|
}
|
|
|
|
FUNCTION {format.editor.names} % NEW v0.5
|
|
{ '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 <
|
|
{ "\Bibbtesep " * t * } % between (exactly) two editors
|
|
{ "\Bibbfsesep " * t * } % between first and second editor (if more than two)
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ t "\bibenf {others} {} {} {} {}" =
|
|
t "\biblenf {others} {} {} {} {}" = or
|
|
t "\bibenf {others} {} {} {} {} \edfont {\editorsname}" = or
|
|
t "\biblenf {others} {} {} {} {} \edfont {\editorsname}" = or
|
|
numnames #3 > or
|
|
{ "\bibIMfont {\Bibetal}" * }
|
|
{ numnames #3 <
|
|
{ "\Bibbtesep " * t * } % between (exactly) two editors
|
|
{ "\Bibbstesep " * t * } % between second and third editor
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
't
|
|
if$
|
|
nameptr #1 + 'nameptr :=
|
|
namesleft #1 - 'namesleft :=
|
|
}
|
|
while$
|
|
}
|
|
|
|
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 >
|
|
{ "" * t * }
|
|
{ t "others" =
|
|
{ " et al." * }
|
|
{ "" * t * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
't
|
|
if$
|
|
nameptr #1 + 'nameptr :=
|
|
namesleft #1 - 'namesleft :=
|
|
}
|
|
while$
|
|
}
|
|
|
|
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.authors}
|
|
{ author empty$
|
|
{ "" }
|
|
{ author format.names }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.founders}
|
|
{ founder empty$
|
|
'skip$
|
|
{ author empty$
|
|
'skip$
|
|
{ " in: " * }
|
|
if$
|
|
founder format.names "\foundername" * *
|
|
editor empty$
|
|
'skip$
|
|
{ author empty$
|
|
{ "\afterfoundersep {}" * }
|
|
'skip$
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.editors}
|
|
{ editor empty$
|
|
{ "" }
|
|
{ author empty$
|
|
{ editor format.editor.names
|
|
editortype empty$
|
|
{ editor num.names$ #1 >
|
|
{ "\fsted {\editorsname}" * }
|
|
{ "\fsted {\editorname}" * }
|
|
if$
|
|
}
|
|
{ "\fsted {(" editortype * ")}" * * }
|
|
if$
|
|
}
|
|
{ founder empty$
|
|
{ "\bibfnfont {;} " * }
|
|
{ type$ "commented" =
|
|
{ "\afterfoundersep {}" * }
|
|
{ "\bibfnfont {;} " * }
|
|
if$
|
|
}
|
|
if$
|
|
editor format.editor.names *
|
|
editortype empty$
|
|
{ editor num.names$ #1 >
|
|
{ " \edfont {\editorsname}" * }
|
|
{ " \edfont {\editorname}" * }
|
|
if$
|
|
}
|
|
{ " \edfont {(" editortype * ")}" * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
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 { format.howcited }
|
|
{ "} {\bibhowcited}" format.endnote * }
|
|
|
|
FUNCTION {fin.entry.endnote}
|
|
{ " \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 {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 }
|
|
{ author missing$
|
|
{ editor missing$
|
|
{ organization missing$
|
|
{ archive missing$
|
|
{ "} {empty} {} {" }
|
|
{ "} {" archive format.name.sig * "} {} {" * }
|
|
if$
|
|
}
|
|
{ "} {" 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.names.info}
|
|
{ 's :=
|
|
#1 'nameptr :=
|
|
s num.names$ 'numnames :=
|
|
numnames 'namesleft :=
|
|
{ namesleft #0 > }
|
|
{ s nameptr "{ff }{vv }{ll}" format.name$ 't :=
|
|
nameptr #1 >
|
|
{ namesleft #1 >
|
|
{ " " * t * }
|
|
{ t "others" =
|
|
{ " et al." * }
|
|
{ " " * t * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
't
|
|
if$
|
|
nameptr #1 + 'nameptr :=
|
|
namesleft #1 - 'namesleft :=
|
|
}
|
|
while$
|
|
}
|
|
|
|
FUNCTION { format.howcited.comment }
|
|
{ edition empty$
|
|
{ "} {\bibcommenthowcited}" format.endnote * }
|
|
{ "} {\bibcommenthowcited}" format.endnote * *
|
|
author empty$ editor empty$ not and
|
|
{ " \jbauthorinfo {" editor format.names.info " " title * * * "}{" cite$ "}" * * * }
|
|
{ author empty$ shortauthor empty$ not and
|
|
{ " \jbauthorinfo {" shortauthor format.names.info " " title * * * "}{" cite$ "}" * * * }
|
|
{ " \jbauthorinfo {" author format.names.info " " title * * * "}{" cite$ "}" * * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION { format.howcited.artperiod }
|
|
{ "} {\bibartperiodhowcited}" format.endnote * }
|
|
|
|
FUNCTION {format.proceed.organization}
|
|
{ organization empty$
|
|
{ "" }
|
|
{ organization " \organizationname {}" * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.titleaddon}
|
|
{ title empty$
|
|
{ "" }
|
|
{ titleaddon empty$
|
|
{ "" }
|
|
{ titleaddon "\bibatsep\ " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.title}
|
|
{ title empty$
|
|
{ "" }
|
|
{ "\bibtfont {" title check.punct.instead.of.add.period * format.titleaddon * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.artperiodincoll.title}
|
|
{ title empty$
|
|
{ "" }
|
|
{ "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.volumetitle}
|
|
{ volumetitle empty$
|
|
{ "" }
|
|
{ volume empty$
|
|
{ "There's a volumetitle but no volume in " cite$ * warning$ volumetitle ", " * }
|
|
{ volumetitle ", " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {add.extra.label}
|
|
{ extra.label "" =
|
|
'skip$
|
|
{ "\bibel {" extra.label * "}" * * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.date}
|
|
{ year empty$
|
|
{ month empty$
|
|
{ "" }
|
|
{ "There's a month but no year in " cite$ * warning$ month }
|
|
if$
|
|
}
|
|
{ month empty$
|
|
{ edition empty$
|
|
'skip$
|
|
{ "\jbssedbd {" convert.edition.superscript extract.num * "}" * * }
|
|
if$
|
|
year
|
|
add.extra.label
|
|
}
|
|
{ month " " *
|
|
edition empty$
|
|
'skip$
|
|
{ "\jbssedbd {" convert.edition.superscript extract.num * "}" * * }
|
|
if$
|
|
year *
|
|
add.extra.label
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.update}
|
|
{ updated missing$ not
|
|
{ "\updatesep {} \updatename {} " * updated * }
|
|
'skip$
|
|
if$
|
|
}
|
|
|
|
FUNCTION {oaddress.opublisher.oyear.format}
|
|
{ type$ "book" = type$ "inbook" = type$ "incollection" = or or
|
|
{ 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 {make.translators}
|
|
{ before.all 'output.state :=
|
|
translator empty$
|
|
{ flanguage empty$
|
|
{ "" }
|
|
{ "\translator {}{" flanguage "l" change.case$ * "}" *
|
|
type$ "incollection" = not
|
|
type$ "article" = not
|
|
and
|
|
{ "{1} " * }
|
|
{ type$ "incollection" =
|
|
{ booktitle empty$
|
|
{ "{} " * }
|
|
{ "{1} " * }
|
|
if$
|
|
}
|
|
{ type$ "article" =
|
|
{ "{1}" * }
|
|
{ series empty$
|
|
{ "{} " * }
|
|
{ "{1} " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ "\translator {" translator * "}" *
|
|
flanguage empty$
|
|
{ "{}" * }
|
|
{ "{" * flanguage "l" change.case$ * "}" * }
|
|
if$
|
|
type$ "incollection" = not
|
|
type$ "article" = not
|
|
and
|
|
{ "{1} " * }
|
|
{
|
|
type$ "incollection" =
|
|
{ booktitle empty$
|
|
{ "{} " * }
|
|
{ "{1} " * }
|
|
if$
|
|
}
|
|
{ type$ "article" =
|
|
{ "{1} " * }
|
|
{ series empty$
|
|
{ "{} " * }
|
|
{ "{1} " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
before.all 'output.state :=
|
|
}
|
|
|
|
|
|
FUNCTION {checked.inst}
|
|
{ institution empty$
|
|
{ " \apyformat {" *
|
|
oaddress.opublisher.oyear.format
|
|
}
|
|
{ address empty$ not
|
|
{ " \apyformat {" * }
|
|
'skip$
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.address.publisher.year}
|
|
{ publisher empty$
|
|
{ address empty$
|
|
{ year empty$
|
|
{ "Neither address nor year in " cite$ * warning$ "" }
|
|
{ "No address in " cite$ * warning$
|
|
institution empty$
|
|
{ " \apyformat {" oaddress.opublisher.oyear.format format.date * "}" * }
|
|
{ " \apyformat {" institution * "\bibbdsep {} " * format.date "}" * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ year empty$
|
|
{ checked.inst address "}" * }
|
|
{ checked.inst address "\bibbdsep {} " format.date * "}" * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ address empty$
|
|
{ year empty$
|
|
{ "There's only a publisher (no address, no year) in " cite$ * warning$ publisher }
|
|
{ checked.inst publisher "\bibbdsep {} " * format.date "}" * * }
|
|
if$
|
|
}
|
|
{ year empty$
|
|
{ checked.inst address * "\bpubaddr {} " publisher "}" * * }%
|
|
{ checked.inst address * "\bpubaddr {} " publisher "\bibbdsep {} " * format.date "}" * * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.howpublished.address.year}
|
|
{ howpublished empty$
|
|
{ address empty$
|
|
{ year empty$
|
|
{ "Neither address nor year in " cite$ * warning$ "" }
|
|
{ "No address in " cite$ * warning$ format.date }
|
|
if$
|
|
}
|
|
{ " \apyformat {" oaddress.opublisher.oyear.format address * "\bibbdsep {} " * format.date "}" * * }
|
|
if$
|
|
}
|
|
{ address empty$
|
|
{ year empty$
|
|
{ "There's only a howpublished (no address, no year) in " cite$ * warning$ howpublished }
|
|
{ " \apyformat {" oaddress.opublisher.oyear.format howpublished * "\bibbdsep {} " * format.date "}" * * }
|
|
if$
|
|
}
|
|
{ year empty$
|
|
{ " \apyformat {" oaddress.opublisher.oyear.format address * "\bpubaddr {} " * howpublished "}" * * }
|
|
{ " \apyformat {" oaddress.opublisher.oyear.format address * "\bpubaddr {} " * howpublished * "\bibbdsep {} " * format.date "}" * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {tie.or.space.connect}
|
|
{ duplicate$ text.length$ #4 <
|
|
{ "~" }
|
|
{ " " }
|
|
if$
|
|
swap$ * *
|
|
}
|
|
|
|
FUNCTION {bibvol.tie.or.space.connect}
|
|
{ duplicate$ text.length$ #4 <
|
|
{ "~" }
|
|
{ "{} " }
|
|
if$
|
|
swap$ * *
|
|
}
|
|
|
|
FUNCTION {format.btitle}{ title emphasize format.titleaddon * }
|
|
|
|
FUNCTION {format.btitle.vol}
|
|
{ number empty$
|
|
{ series empty$
|
|
{ volume empty$
|
|
{ title emphasize format.titleaddon * }
|
|
{
|
|
title emphasize format.titleaddon * " \volumeformat {" volume * "} " * *
|
|
}
|
|
if$
|
|
}
|
|
{ volume empty$
|
|
{ title emphasize format.titleaddon * }
|
|
{
|
|
title emphasize format.titleaddon * "\volumeformat {" volume * "} " * * series "\bibatsep\ " * *
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ title emphasize format.titleaddon * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.btitle.vol.inbook}
|
|
{ number empty$
|
|
{ series empty$
|
|
{ volume empty$
|
|
{ "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * }
|
|
{ "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon *
|
|
" \volumeformat {" volume * "} " * *
|
|
}
|
|
if$
|
|
}
|
|
{ volume empty$
|
|
{ "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * }
|
|
{ series emphasize
|
|
"\volumeformat {" volume * "} " * *
|
|
"\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.url}
|
|
{ url empty$
|
|
{ "" }
|
|
{ author empty$ title empty$ and
|
|
'skip$
|
|
{ " " * }
|
|
if$
|
|
urldate empty$
|
|
{"\jburluse {" cite$ * "}" * }
|
|
{"\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.naked.url}
|
|
{ url empty$
|
|
{ "" }
|
|
{ urldate empty$
|
|
{ title empty$
|
|
'skip$
|
|
{ title emphasize * }
|
|
if$
|
|
"\jburluse {" cite$ * "}" *
|
|
}
|
|
{ title empty$
|
|
'skip$
|
|
{ title emphasize * }
|
|
if$
|
|
"\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate *
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.series.number}
|
|
{ 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 {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$
|
|
{ "" }
|
|
{ "\jbedition {" * convert.edition "~\editionname {}\jbaensep} " * }% dot or not ???????
|
|
if$
|
|
}
|
|
|
|
FUNCTION { format.isbn.issn }
|
|
{ isbn empty$
|
|
{ issn empty$
|
|
{ "" }
|
|
{ "\jbissn {" issn n.dashify * "}" * }
|
|
if$
|
|
}
|
|
{ "\jbisbn {" isbn n.dashify * "}" * }
|
|
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$
|
|
{ "" }
|
|
{ " \jbPages{" pages n.dashify * "}" * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {multi.pagerange.check}
|
|
{ 't :=
|
|
#0 'multiresult :=
|
|
{ multiresult not
|
|
t empty$ not
|
|
and
|
|
}
|
|
{ t #1 #1 substring$
|
|
duplicate$ "-" =
|
|
swap$ duplicate$ "b" =
|
|
swap$ "/" = or or
|
|
{ #1 'multiresult := }
|
|
{ t #2 global.max$ substring$ 't := }
|
|
if$
|
|
}
|
|
while$
|
|
multiresult
|
|
}
|
|
|
|
FUNCTION {check.missing.pages}
|
|
{ pages empty$
|
|
{ "Empty pages in " cite$ * warning$ }
|
|
{ pages multi.pagerange.check
|
|
{ "" * }
|
|
{ type$ "article" = type$ "periodical" = or
|
|
{ "There's only a starting page, no pagerange in " cite$ * warning$ }
|
|
'skip$
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.pages.book}
|
|
{ pages empty$
|
|
{ "" }
|
|
{ " \jbpages {" pages " \bibtotalpagesname}" *}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.totalpages}
|
|
{ totalpages empty$
|
|
{ "" }
|
|
{
|
|
", " totalpages "~\bibtotalpagesname" * *
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.vol.year.num.pages}
|
|
{ volume empty$
|
|
{ "" }
|
|
{ " \artvolumeformat {" volume * "}" *
|
|
year empty$
|
|
{ "There's a volume but no year in " cite$ * warning$ }
|
|
'skip$
|
|
if$
|
|
}
|
|
if$
|
|
month empty$
|
|
'skip$
|
|
{ "\ " month * * }
|
|
if$
|
|
year empty$
|
|
'skip$
|
|
{ " \artyearformat {" year * add.extra.label "}" * * }
|
|
if$
|
|
number empty$
|
|
'skip$
|
|
{ "\artnumberformat {" number * "}" * * }
|
|
if$
|
|
pages empty$
|
|
'skip$
|
|
{ duplicate$ empty$
|
|
{ pop$ format.pages }
|
|
{ "" format.pages * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.vol.bracedyear.num.pages}
|
|
{ volume empty$
|
|
{ "" }
|
|
{ " \pervolumeformat {" volume * "}" *
|
|
year empty$
|
|
{ "There's a volume but no year in " cite$ * warning$ }
|
|
'skip$
|
|
if$
|
|
}
|
|
if$
|
|
year empty$
|
|
'skip$
|
|
{ " \peryearformat {" year * add.extra.label "}" * * }
|
|
if$
|
|
month empty$
|
|
'skip$
|
|
{ ", " month * * }
|
|
if$
|
|
number empty$
|
|
'skip$
|
|
{ ", \pernumberformat {" number * "}" * * }
|
|
if$
|
|
pages empty$
|
|
'skip$
|
|
{ duplicate$ empty$
|
|
{ pop$ format.pages }
|
|
{ "" format.pages * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.chapter.pages}
|
|
{ chapter empty$
|
|
'format.pages
|
|
{ type empty$
|
|
{ "\unskip.\,-- \bibchapterlongname" }
|
|
{ "\unskip.\,-- " type * }
|
|
if$
|
|
chapter tie.or.space.connect
|
|
pages empty$
|
|
'skip$
|
|
{ format.pages * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.booktitleaddon}
|
|
{ booktitle empty$
|
|
{ "" }
|
|
{ booktitleaddon empty$
|
|
{ "" }
|
|
{ booktitleaddon }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.incoll.editor.booktitle}
|
|
{ booktitle empty$
|
|
{ "" }
|
|
{ editor empty$
|
|
{ volume empty$
|
|
{ "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{}" *
|
|
booktitleaddon empty$
|
|
{ "{} " * }
|
|
{ "{1} " * }
|
|
if$
|
|
}
|
|
{ "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{" * volume * "}" *
|
|
booktitleaddon empty$
|
|
{ "{} " * }
|
|
{ "{1} " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ volume empty$
|
|
{ "\incolledformat {"
|
|
editor empty$
|
|
{ "" }
|
|
{ editor format.editor.names "}" * *
|
|
editortype empty$
|
|
{ editor num.names$ #1 >
|
|
{ "{\edfont {\editorsname}}{" * }
|
|
{ "{\edfont {\editorname}}{" * }
|
|
if$
|
|
}
|
|
{ "{\edfont {(" * editortype * ")}}{" * }
|
|
if$
|
|
}
|
|
if$
|
|
booktitle incollbooktitlemarkup * format.booktitleaddon * "}{}" *
|
|
booktitleaddon empty$
|
|
{ "{} " * }
|
|
{ "{1} " * }
|
|
if$
|
|
}
|
|
{ "\incolledformat {" *
|
|
editor empty$
|
|
{ "" }
|
|
{ editor format.editor.names "}" * *
|
|
editortype empty$
|
|
{ editor num.names$ #1 >
|
|
{ "{\edfont {\editorsname}}{" * }
|
|
{ "{\edfont {\editorname}}{" * }
|
|
if$
|
|
}
|
|
{ "{\edfont {(" * editortype * ")}}{" * }
|
|
if$
|
|
}
|
|
if$
|
|
booktitle incollbooktitlemarkup * format.booktitleaddon * "}{" volume * "}" *
|
|
booktitleaddon empty$
|
|
{ "{} " * }
|
|
{ "{1} " * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.tr.number.jur}
|
|
{ type empty$
|
|
{ number empty$
|
|
{ " -- \technicalreportname {} " }
|
|
{ "~(" number * ").\,-- \technicalreportname {} " * }
|
|
if$
|
|
}
|
|
{ number empty$
|
|
{ " -- " type * }
|
|
{ "~(" number * ").\,-- " type * " " * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.article.crossref.bracedyear}
|
|
{ key empty$
|
|
{ journal empty$
|
|
{ "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" }
|
|
{ "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * }
|
|
if$
|
|
volume empty$
|
|
{ "No volume in " cite$ * warning$ }
|
|
{ " \pervolumeformat {" volume * "} " * }
|
|
if$
|
|
year empty$
|
|
{ "No year in " cite$ * warning$ }
|
|
{ "\peryearformat {" year * add.extra.label "}" * * }
|
|
if$
|
|
pages empty$
|
|
'skip$
|
|
{ duplicate$ empty$
|
|
{ pop$ format.pages }
|
|
{ format.pages * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ "" key * }
|
|
if$
|
|
"\ \protect\jbcrossrefchecked {" * crossref * "}\unskip" *
|
|
}
|
|
|
|
FUNCTION {format.article.crossref}
|
|
{ key empty$
|
|
{ journal empty$
|
|
{ "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" }
|
|
{ "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * }
|
|
if$
|
|
}
|
|
{ "" key * }
|
|
if$
|
|
year empty$
|
|
'skip$
|
|
{ year * }
|
|
if$
|
|
" \protect\jbcrossrefchecked {" crossref * "}" *
|
|
}
|
|
|
|
FUNCTION {format.book.crossref}
|
|
{ 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$ "" * }
|
|
{ "" * }
|
|
if$
|
|
}
|
|
{ key * }
|
|
if$
|
|
}
|
|
{ "" * }
|
|
if$
|
|
volume empty$
|
|
{ "Empty volume in " cite$ * "'s crossref of " * crossref * warning$ ""
|
|
" \protect\jbcrossrefchecked {" * crossref * "}\unskip" * }
|
|
{ " \protect\jbcrossrefchecked[" * volume * "]{" * crossref "}\unskip" * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.incoll.inproc.crossref}
|
|
{ " \protect\jbincollcrossref {" * crossref * "}" *
|
|
editor empty$
|
|
{ "{}" * }
|
|
{ "{1}" * }
|
|
if$
|
|
format.pages % *<== 0.5f removed too.
|
|
}
|
|
|
|
FUNCTION { format.editors.organization }
|
|
{ organization empty$
|
|
'skip$
|
|
{ type$ "misc" =
|
|
{ organization }
|
|
{ author empty$
|
|
{ editor empty$
|
|
{ " " organization * " \organizationname {}" * }
|
|
{ "; " organization * " \organizationname {}" * }
|
|
if$
|
|
}
|
|
{ "; " organization * " \organizationname {}" * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.address.organization.manual}
|
|
{ author empty$
|
|
{ organization empty$
|
|
{ address empty$
|
|
'skip$
|
|
{ address output part.of.sentence
|
|
year empty$ not { "\bibbdsep {}" *} 'skip$ if$
|
|
}
|
|
if$
|
|
}
|
|
'skip$
|
|
if$
|
|
}
|
|
{ address empty$
|
|
{ organization empty$
|
|
'skip$
|
|
{ organization output part.of.sentence
|
|
year empty$ not { "\bibbdsep {}" *} 'skip$ if$
|
|
}
|
|
if$
|
|
}
|
|
{ organization empty$
|
|
{ address output part.of.sentence }
|
|
{ address "\bpubaddr {} " * organization * output part.of.sentence }
|
|
if$
|
|
year empty$ not { "\bibbdsep {}" *} 'skip$ if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
|
|
FUNCTION {article}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.artperiodincoll.title "title" output.check
|
|
crossref missing$
|
|
{ journal article.in.journal output.nonnull
|
|
new.sentence
|
|
format.vol.year.num.pages output
|
|
}
|
|
{ format.article.crossref output.nonnull }
|
|
if$
|
|
format.url output
|
|
format.note
|
|
format.isbn.issn output
|
|
format.howcited.artperiod output
|
|
check.missing.pages
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {commented}
|
|
{ output.bibitem
|
|
author empty$
|
|
{ editor empty$
|
|
{ format.founders }
|
|
{ format.founders format.editors "editor" output.check }
|
|
if$
|
|
}
|
|
{ editor empty$
|
|
{ format.authors format.founders output.nonnull }
|
|
{ format.authors format.founders format.editors output.nonnull }
|
|
if$
|
|
}
|
|
if$
|
|
set.after.author.sep output
|
|
crossref missing$
|
|
{ format.btitle.vol "title" output.check }
|
|
{ format.btitle "title" output.check }
|
|
if$
|
|
format.volumetitle output
|
|
format.edition output
|
|
format.address.publisher.year "publisher" output.check
|
|
format.update
|
|
new.sentence
|
|
crossref missing$
|
|
{ format.series.number output }
|
|
{ format.book.crossref output.nonnull }
|
|
if$
|
|
format.url output
|
|
format.pages output
|
|
format.note
|
|
format.howcited.comment output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {periodical}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.artperiodincoll.title "title" output.check
|
|
crossref missing$
|
|
{ journal article.in.journal output.nonnull
|
|
new.sentence
|
|
format.vol.bracedyear.num.pages output
|
|
}
|
|
{ new.sentence format.article.crossref.bracedyear output.nonnull }
|
|
if$
|
|
format.url output
|
|
format.note
|
|
format.isbn.issn output
|
|
format.howcited.artperiod output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {book}
|
|
{ output.bibitem
|
|
author empty$
|
|
{ editor empty$
|
|
{ "" "author and editor" output.check }
|
|
{ format.editors output.nonnull }
|
|
if$
|
|
}
|
|
{ editor empty$
|
|
{ format.authors output.nonnull }
|
|
{ format.authors "\jbtiafed {" format.editors * "}" * output.nonnull }
|
|
if$
|
|
}
|
|
if$
|
|
set.after.author.sep output
|
|
crossref missing$
|
|
{ format.btitle.vol "title" output.check }
|
|
{ format.btitle "title" output.check }
|
|
if$
|
|
author empty$ not editor empty$ not and
|
|
{ "\jbedafti {\edbyname {} " editor * "," * * "} " * }
|
|
'skip$
|
|
if$
|
|
make.translators output
|
|
format.volumetitle output
|
|
format.edition output
|
|
format.address.publisher.year "publisher" output.check
|
|
new.sentence
|
|
format.juradiss.book output
|
|
crossref missing$
|
|
{ format.series.number output }
|
|
{ format.book.crossref output.nonnull }
|
|
if$
|
|
format.url output
|
|
format.pages output
|
|
format.totalpages output
|
|
format.note
|
|
format.isbn.issn output
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {inbook}
|
|
{ output.bibitem
|
|
author empty$
|
|
{ format.editors "author and editor" output.check }
|
|
{ editor empty$
|
|
{ format.authors output.nonnull }
|
|
{ format.authors format.editors output.nonnull }
|
|
if$
|
|
}
|
|
if$
|
|
set.after.author.sep output
|
|
crossref missing$
|
|
{ chapter empty$
|
|
{ "There's no chapter in " cite$ * warning$ "" * }
|
|
{ type empty$
|
|
{ "\Bibchaptername{}" }
|
|
{ type }
|
|
if$
|
|
chapter tie.or.space.connect " In " * *
|
|
}
|
|
if$
|
|
format.btitle.vol.inbook "title" output.check
|
|
make.translators output
|
|
format.volumetitle output
|
|
format.edition output
|
|
format.address.publisher.year "publisher" output.check
|
|
new.sentence
|
|
format.series.number output
|
|
format.url output
|
|
format.pages "pages" output.check
|
|
format.note
|
|
format.isbn.issn output
|
|
}
|
|
{ chapter empty$
|
|
{ "There's no chapter in " cite$ * warning$ "" *
|
|
format.btitle.vol.inbook "title" output.check
|
|
}
|
|
{ type empty$
|
|
{ "\Bibchaptername{}" }
|
|
{ type }
|
|
if$
|
|
chapter tie.or.space.connect "" * *
|
|
}
|
|
if$
|
|
format.volumetitle output
|
|
format.book.crossref output.nonnull
|
|
format.url output
|
|
format.pages "pages" output.check
|
|
format.note
|
|
}
|
|
if$
|
|
part.of.sentence
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {incollection}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.artperiodincoll.title "title" output.check
|
|
make.translators output
|
|
crossref missing$
|
|
{ format.incoll.editor.booktitle "booktitle" output.check
|
|
format.volumetitle output
|
|
format.edition output
|
|
format.address.publisher.year "publisher" output.check
|
|
new.sentence
|
|
format.series.number output
|
|
format.url output
|
|
format.isbn.issn output
|
|
part.of.sentence
|
|
format.chapter.pages output
|
|
format.note
|
|
}
|
|
{ format.volumetitle output
|
|
format.incoll.inproc.crossref output.nonnull
|
|
format.url output
|
|
format.note
|
|
}
|
|
if$
|
|
format.howcited output
|
|
check.missing.pages
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {inproceedings}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.artperiodincoll.title "title" output.check
|
|
crossref missing$
|
|
{ format.incoll.editor.booktitle "booktitle" output.check
|
|
address empty$
|
|
{ organization new.sentence.checka
|
|
organization output
|
|
part.of.sentence
|
|
format.address.publisher.year output
|
|
}
|
|
{ format.address.publisher.year "publisher" output.check }
|
|
if$
|
|
new.sentence
|
|
series empty$
|
|
'skip$
|
|
{ format.series.number output }
|
|
if$
|
|
format.url output
|
|
format.note
|
|
format.isbn.issn output
|
|
part.of.sentence
|
|
format.pages output
|
|
}
|
|
{ format.incoll.inproc.crossref output.nonnull
|
|
format.url output
|
|
format.note
|
|
}
|
|
if$
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {conference}{inproceedings}
|
|
|
|
FUNCTION {manual}
|
|
{ output.bibitem
|
|
author empty$
|
|
{ organization empty$
|
|
'skip$
|
|
{ "\bibnf{" organization * "} {} {} {} {}" * output.nonnull }
|
|
if$
|
|
}
|
|
{ format.authors output.nonnull }
|
|
if$
|
|
set.after.author.sep output
|
|
format.btitle "title" output.check
|
|
format.edition output
|
|
format.address.organization.manual
|
|
format.date output
|
|
pages set.period.dash.check
|
|
format.pages.book output
|
|
format.url output
|
|
format.note
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {mastersthesis}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.btitle "title" output.check
|
|
format.thesis output
|
|
set.comma.pages.check
|
|
pages new.sentence.checka
|
|
format.pages output
|
|
format.url output
|
|
format.note
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {phdthesis}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.btitle "title" output.check
|
|
format.thesis output
|
|
set.comma.pages.check
|
|
pages new.sentence.checka
|
|
format.pages output
|
|
format.url output
|
|
format.note
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {jurthesis}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.btitle "title" output.check
|
|
format.thesis output
|
|
set.comma.pages.check
|
|
pages new.sentence.checka
|
|
format.pages output
|
|
format.url output
|
|
format.note
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {booklet}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.title "title" output.check
|
|
format.howpublished.address.year output
|
|
format.note
|
|
format.url output
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {misc}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.title output
|
|
format.howpublished.address.year output
|
|
format.note
|
|
format.url output
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {proceedings}
|
|
{ output.bibitem
|
|
editor empty$
|
|
{ organization empty$
|
|
'skip$
|
|
{ "\biblnfont {" organization * " \organizationname}" * output }
|
|
if$
|
|
}
|
|
{ format.editors output.nonnull }
|
|
if$
|
|
set.after.author.sep output
|
|
format.btitle "title" output.check
|
|
new.sentence
|
|
editor empty$
|
|
'skip$
|
|
{ format.proceed.organization output }
|
|
if$
|
|
new.sentence
|
|
format.series.number output.nonnull
|
|
volume empty$
|
|
{ "" output.nonnull }
|
|
{ "\volumeformat {" volume * "} " * "volume" output.check }
|
|
if$
|
|
format.address.publisher.year "publisher" output.check
|
|
pages set.period.dash.check
|
|
format.pages.book output
|
|
format.url output
|
|
format.note
|
|
format.isbn.issn output
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {techreport}
|
|
{ output.bibitem
|
|
author empty$
|
|
{ format.editors "author and editor" output.check }
|
|
{ editor empty$
|
|
{ format.authors output.nonnull }
|
|
{ format.authors format.editors output.nonnull }
|
|
if$
|
|
}
|
|
if$
|
|
set.after.author.sep output
|
|
format.title "title" output.check
|
|
institution new.sentence.checka
|
|
format.address.publisher.year output
|
|
number new.sentence.checka
|
|
format.tr.number.jur "number" output.check
|
|
pages set.period.dash.check
|
|
format.pages.book output
|
|
format.url output
|
|
format.note
|
|
format.isbn.issn output
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {www}
|
|
{ output.bibitem
|
|
format.authors "author" output.check
|
|
set.after.author.sep output
|
|
format.naked.url output
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {lexicon}
|
|
{ output.bibitem
|
|
set.after.author.sep output
|
|
crossref missing$
|
|
{ format.btitle.vol "title" output.check }
|
|
{ format.btitle "title" output.check }
|
|
if$
|
|
author empty$
|
|
{ editor empty$
|
|
'skip$
|
|
{ "\edbyname{} " * editor format.editor.names "," * * }
|
|
if$
|
|
}
|
|
{ "\byname{} " author format.names * "," * * }
|
|
if$
|
|
make.translators output
|
|
format.volumetitle output
|
|
format.edition output
|
|
format.address.publisher.year "publisher" output.check
|
|
new.sentence
|
|
format.juradiss.book output
|
|
crossref missing$
|
|
{ format.series.number output }
|
|
{ format.book.crossref output.nonnull }
|
|
if$
|
|
format.url output
|
|
format.pages output
|
|
format.totalpages output
|
|
format.note
|
|
format.isbn.issn output
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
STRINGS { last.archive last.subarchive }
|
|
|
|
FUNCTION {init.last.archive }
|
|
{ "" 'last.archive :=
|
|
"" 'last.subarchive := }
|
|
|
|
FUNCTION {archival}
|
|
{ output.bibitem
|
|
archive empty$
|
|
{ "" 'last.archive := }
|
|
{ archive last.archive =
|
|
{ "} {" archive format.name.sig * "} {} {\jbsamearch{} " * * }
|
|
{ "\bibanfont{" archive * "archive" output.check
|
|
shortarchive empty$
|
|
'skip$
|
|
{ " \jbshortarchformat{" shortarchive * "}" * * }
|
|
if$
|
|
"}" *
|
|
"} {" archive format.name.sig * "} {} {\jbnotsamearch{} " * *
|
|
}
|
|
if$
|
|
archive 'last.archive :=
|
|
}
|
|
if$
|
|
subarchive empty$
|
|
{ "" 'last.subarchive := }
|
|
{ subarchive last.subarchive =
|
|
'skip$
|
|
{ subarchive output
|
|
shortsubarchive empty$
|
|
'skip$
|
|
{ " \jbshortsubarchformat{" shortsubarchive * "}" * * }
|
|
if$
|
|
"\jbsubarchsep{} " *
|
|
}
|
|
if$
|
|
subarchive 'last.subarchive :=
|
|
}
|
|
if$
|
|
sig1 empty$
|
|
'skip$
|
|
{ "\jbarchsig {" *
|
|
subarchive empty$
|
|
'skip$
|
|
{ "\jbsamesubarchindent{} " * }
|
|
if$
|
|
sig1 *
|
|
sig2 empty$
|
|
'skip$
|
|
{ ". " sig2 * *
|
|
sig3 empty$
|
|
'skip$
|
|
{ ". " sig3 * *
|
|
sig4 empty$
|
|
'skip$
|
|
{ ". " sig4 * * }
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
"} {" *
|
|
}
|
|
if$
|
|
archname missing$
|
|
{ "}" * }
|
|
{ archname "}" * output }
|
|
if$
|
|
format.howcited output
|
|
fin.entry.endnote
|
|
}
|
|
|
|
FUNCTION {unpublished}{misc}
|
|
|
|
FUNCTION {default.type}{misc}
|
|
|
|
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\ "}
|
|
|
|
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 {format.lab.names}
|
|
{ 's := % for two: (Jones/de~Bruijn)
|
|
s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith)
|
|
s num.names$ duplicate$ % for more: (Jones et\,al.)
|
|
#2 <
|
|
'pop$ % for just one person
|
|
{ duplicate$ duplicate$
|
|
#3 >
|
|
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$ * } % for (exactly) two
|
|
{ "\jbbfsasep " * s #2 "{vv~}{ll}" format.name$ * % for three
|
|
"\jbbstasep " * s #3 "{vv~}{ll}" format.name$ *
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
year missing$
|
|
'skip$
|
|
{ "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author
|
|
if$
|
|
}
|
|
|
|
FUNCTION {format.editor.lab.names}
|
|
{ 's := % for two: (Jones/de~Bruijn)
|
|
s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith)
|
|
s num.names$ duplicate$ % for more: (Jones et\,al.)
|
|
#2 <
|
|
'pop$ % for just one person
|
|
{ duplicate$ duplicate$
|
|
#3 >
|
|
swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" =
|
|
or
|
|
{ pop$ "\Bibetal" * } % for 4 or more, or last is `others'
|
|
{ #2 =
|
|
{ "\jbbtesep " * s #2 "{vv~}{ll}" format.name$ * } % for (exactly) two
|
|
{ "\jbbfsesep " * s #2 "{vv~}{ll}" format.name$ * % for three
|
|
"\jbbstesep " * s #3 "{vv~}{ll}" format.name$ *
|
|
}
|
|
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.editor.lab.names }
|
|
if$
|
|
}
|
|
{ author format.lab.names }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {editor.key.label}
|
|
{ editor empty$
|
|
{ key empty$
|
|
{ cite$ #1 #3 substring$ }
|
|
'key
|
|
if$
|
|
}
|
|
{ editor format.editor.lab.names }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {calc.label}
|
|
{ type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or type$ "lexicon" = 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
|
|
"Der " #4
|
|
"Die " #4
|
|
"Das " #4
|
|
"Ein " #4
|
|
"Eine " #5
|
|
"The " #4 t chop.word
|
|
chop.word
|
|
chop.word
|
|
chop.word
|
|
chop.word
|
|
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 {editor.sort}
|
|
{ editor empty$
|
|
{ key empty$
|
|
{ "to sort, need editor or key in " cite$ * warning$ "" }
|
|
{ key sortify }
|
|
if$
|
|
}
|
|
{ editor sort.format.names }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {archival.sort}
|
|
{ archive empty$
|
|
{ shortarchive empty$
|
|
{ "to sort, need archive or shortarchive in " cite$ * warning$ "" }
|
|
{ shortarchive sortify }
|
|
if$
|
|
}
|
|
{ archive sortify }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {presort}
|
|
{ calc.label
|
|
calc.dummy.label
|
|
dummy.label sortify " " *
|
|
sortkey empty$
|
|
{ type$ "book" =
|
|
type$ "incollection" = or
|
|
type$ "inbook" = or
|
|
type$ "commented" = or
|
|
'author.editor.sort
|
|
{ type$ "proceedings" =
|
|
'editor.sort
|
|
{ type$ "archival" =
|
|
'archival.sort
|
|
'author.sort
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
if$
|
|
}
|
|
{ sortkey sort.format.names }
|
|
if$
|
|
type$ "archival" = not
|
|
{ " "
|
|
*
|
|
year field.or.null sortify
|
|
*
|
|
" "
|
|
*
|
|
title field.or.null
|
|
sort.format.title
|
|
*
|
|
}
|
|
{ " "
|
|
*
|
|
subarchive field.or.null sortify
|
|
*
|
|
" "
|
|
*
|
|
sig1 field.or.null sortify
|
|
*
|
|
" "
|
|
*
|
|
sig2 field.or.null sortify
|
|
*
|
|
" "
|
|
*
|
|
sig3 field.or.null sortify
|
|
*
|
|
" "
|
|
*
|
|
sig4 field.or.null sortify
|
|
*
|
|
}
|
|
if$
|
|
#1 entry.max$ substring$
|
|
'sort.label :=
|
|
sort.label *
|
|
#1 entry.max$ substring$
|
|
'sort.key$ :=
|
|
}
|
|
|
|
ITERATE {presort}
|
|
|
|
%% FUNCTION {before.sort} { "BEFORE SORT:" top$ }
|
|
%% EXECUTE {before.sort}
|
|
%% FUNCTION {print.sort.keys} {sort.key$ top$}
|
|
%% ITERATE {print.sort.keys}
|
|
|
|
SORT
|
|
|
|
%% FUNCTION {after.sort} {"AFTER SORT:" top$}
|
|
%% EXECUTE {after.sort}
|
|
%% ITERATE {print.sort.keys}
|
|
|
|
|
|
INTEGERS { last.extra.num number.label extra.extra.num }
|
|
|
|
FUNCTION {make.extra.label}
|
|
{ last.extra.num #122 <
|
|
{ last.extra.num #1 + }
|
|
{ extra.extra.num #0 =
|
|
{ "a" chr.to.int$ }
|
|
{ extra.extra.num #1 + }
|
|
if$
|
|
'extra.extra.num :=
|
|
"a" chr.to.int$ }
|
|
if$
|
|
'last.extra.num :=
|
|
extra.extra.num #0 =
|
|
{ last.extra.num int.to.chr$ }
|
|
{ extra.extra.num int.to.chr$ 'extra.label :=
|
|
extra.label last.extra.num int.to.chr$ * }
|
|
if$
|
|
}
|
|
|
|
FUNCTION {forward.pass}
|
|
{ w dummy.label =
|
|
{ make.extra.label 'extra.label := }
|
|
{ "a" chr.to.int$ 'last.extra.num :=
|
|
#0 'extra.extra.num :=
|
|
"" 'extra.label :=
|
|
dummy.label 'w :=
|
|
}
|
|
if$
|
|
number.label #1 + 'number.label :=
|
|
}
|
|
|
|
FUNCTION {reverse.pass}
|
|
{ x "b" =
|
|
{ "a" 'extra.label := }
|
|
'skip$
|
|
if$
|
|
extra.label 'x :=
|
|
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 := }
|
|
%% ^^^^^^^^^^^^ NOT format.editor.names, otherwise \jb@@arg is always = 0!!!
|
|
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 jurabib.bst" 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 `jurabib.bst'.
|
|
|