PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bibliographystyle anpassen



Koppi
26-10-2011, 02:51
Hallo,

ich erstelle mein Lit-verzeichnis mit \bibliographystyle{jpc}

Diese Datei hab ich bei mir (geringfügig) verändert. Was noch fehlt ist, dass nach den Authoren und nach dem Journal noch ein Semikolon eingefügt wird.
Leider finde ich in der Datei kein Ansatz WO das Semikolon eingetragen werden soll und WIE ich das mache.


ENTRY
{ address
author
booktitle
chapter
edition
editor
howpublished
institution
journal
key
month
note
number
organization
pages
publisher
school
series
title
type
volume
year
}
{}
{ label }

INTEGERS { output.state before.all mid.sentence after.sentence after.block after.item author.or.editor }

FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
#4 'after.item :=
}

FUNCTION {add.semicolon}
{ duplicate$
#-1 #1 substring$ "}" =
{ #-2 #1024 substring$ ";} " * }
{ "; " * }
if$
}

STRINGS { s t }

FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
{ add.semicolon write$
newline$
"\newblock " write$
}
{ output.state before.all =
'write$
{ output.state after.item =
{ " " * write$ }
{ add.period$ " " * write$ }
if$
}
if$
}
if$
mid.sentence 'output.state :=
}
if$
s
}

FUNCTION {output}
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}

FUNCTION {output.check}
{ 't :=
duplicate$ empty$
{ pop$ "empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}

FUNCTION {output.bibitem}
{ newline$
"\bibitem{" write$
cite$ write$
"}" write$
newline$
""
before.all 'output.state :=
}

FUNCTION {fin.entry}
{ add.period$
write$
newline$
}

FUNCTION {new.block}
{ output.state before.all =
'skip$
{ after.block 'output.state := }
if$
}

FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
'skip$
{ after.sentence 'output.state := }
if$
}
if$
}

FUNCTION {new.item}
{ duplicate$ empty$
{ skip$ }
{ output.state mid.sentence =
{ after.item 'output.state := }
{ skip$ }
if$
}
if$
}

FUNCTION {not}
{ { #0 }
{ #1 }
if$
}

FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}

FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}

FUNCTION {new.block.checka}
{ empty$
'skip$
'new.block
if$
}

FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.block
if$
}

FUNCTION {new.sentence.checka}
{ empty$
'skip$
'new.sentence
if$
}

FUNCTION {new.sentence.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.sentence
if$
}

FUNCTION {new.item.checka}
{ empty$
'skip$
'new.item
if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
'skip$
if$
}

FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
{ "{\em " swap$ * "}" * }
if$
}

FUNCTION {boldface}
{ duplicate$ empty$
{ pop$ "" }
{ "{\bf " swap$ * "}" * }
if$
}

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, jj}{, f}." format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ author.or.editor #1 =
{ "; " * t * }
{ ", " * t * }
if$
}
{ t "others" =
{ " et~al." * }
{ author.or.editor #1 =
{ "; " * t * }
{ ", " * t * }
if$
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}

FUNCTION {format.authors}
{ author empty$
{ "" }
{ #1 'author.or.editor :=
author format.names }
if$
}

FUNCTION {format.editors}
{ editor empty$
{ "" }
{ #2 'author.or.editor :=
editor format.names
editor num.names$ #1 >
{ ", Eds." * }
{ ", Ed." * }
if$
}
if$
}

FUNCTION {format.title}
{ title empty$
{ "" }
{ title "t" change.case$ }
if$
}

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 {format.date}
{ year empty$
{ month empty$
{ "" }
{ "there's a month but no year in " cite$ * warning$
month
}
if$
}
{ month empty$
{ year boldface }
{ month " " * year boldface }
if$
}
if$
}

FUNCTION {format.bdate}
{ year empty$
{ "there's no year in " cite$ * warning$ }
'year
if$
}

FUNCTION {format.btitle}
{ 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$
{ "" }
{ "Vol. " volume tie.or.space.connect
series empty$
'skip$
{ " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
if$
}

FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
{ output.state mid.sentence =
{ "number" }
{ "Number" }
if$
number tie.or.space.connect
series empty$
{ "there's a number but no series in " cite$ * warning$ }
{ " in " * series * }
if$
}
if$
}
{ "" }
if$
}

FUNCTION {format.edition}
{ edition empty$
{ "" }
{ output.state mid.sentence =
{ edition "l" change.case$ " Auflage" * }
{ edition "t" change.case$ " Auflage" * }
if$
}
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$
{ "" }
{ pages multi.page.check
{ "pages" pages n.dashify tie.or.space.connect }
{ "page" pages tie.or.space.connect }
if$
}
if$
}

FUNCTION {format.vol.num.pages}
{ volume emphasize field.or.null
number empty$
'skip$
{ " (" number * ")" * *
volume empty$
{ "there's a number but no volume in " cite$ * warning$ }
'skip$
if$
}
if$
pages empty$
'skip$
{ duplicate$ empty$
{ pop$ format.pages }
{ ", " * pages n.dashify * }
if$
}
if$
}

FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
{ "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$
{ "In " booktitle emphasize * }
{ "In " format.editors * ", " * booktitle emphasize * }
if$
}
if$
}

FUNCTION {format.in.booktitle.ed}
{ booktitle empty$
{ "" }
{ editor empty$
{ "In " booktitle emphasize * }
{ "In " booktitle emphasize * "; " * format.editors * }
if$
}
if$
}

FUNCTION {format.pub.address}
{ publisher empty$
{ "" }
{ address empty$
{ publisher }
{ publisher ": " * address *}
if$
}
if$
}

FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
month empty$ year empty$ note empty$
and and and and and
{ "all relevant fields are empty in " cite$ * warning$ }
'skip$
if$
}

FUNCTION {format.thesis.type}
{ type empty$
'skip$
{ pop$
type "t" change.case$
}
if$
}

FUNCTION {format.tr.number}
{ type empty$
{ "Technical Report" }
'type
if$
number empty$
{ "t" change.case$ }
{ number tie.or.space.connect }
if$
}

FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
{ "need key or journal for " cite$ * " to crossref " * crossref *
warning$
""
}
{ "In {\em " journal * "\/}" * }
if$
}
{ "In " key * }
if$
" \cite{" * crossref * "}" *
}

FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
editor num.names$ duplicate$
#2 >
{ pop$ " et~al." * }
{ #2 <
'skip$
{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{ " et~al." * }
{ " and " * editor #2 "{vv~}{ll}" format.name$ * }
if$
}
if$
}
if$
}

FUNCTION {format.book.crossref}
{ volume empty$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
"In "
}
{ "Volume" volume tie.or.space.connect
" of " *
}
if$
editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ series empty$
{ "need editor, key, or series for " cite$ * " to crossref " *
crossref * warning$
"" *
}
{ "{\em " * series * "\/}" * }
if$
}
{ key * }
if$
}
{ format.crossref.editor * }
if$
" \cite{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ booktitle empty$
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
crossref * warning$
""
}
{ "In {\em " booktitle * "\/}" * }
if$
}
{ "In " key * }
if$
}
{ "In " format.crossref.editor * }
if$
" \cite{" * crossref * "}" *
}

FUNCTION {article}
{ output.bibitem
format.authors "author" output.check new.item
crossref missing$
{ journal emphasize "journal" output.check new.item
format.date "year" output.check
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
fin.entry
}

FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check new.item }
{ format.authors output.nonnull new.item
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.btitle "title" output.check
crossref missing$
{ format.bvolume output
format.number.series output
new.block
format.pub.address "publisher" output.check
}
{ format.book.crossref output.nonnull }
if$
format.edition output
format.bdate "year" output.check
new.block
fin.entry
}

FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check new.item
crossref missing$
{ format.in.booktitle.ed "booktitle" output.check
format.bvolume output
format.number.series output
new.block
format.pub.address "publisher" output.check
format.edition output
format.bdate "year" output.check
new.block
format.chapter.pages output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
new.block
fin.entry
}

FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check new.item
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.number.series output
format.pages output
address empty$
{ organization publisher new.sentence.checkb
organization output
publisher output
format.bdate "year" output.check
}
{ address output.nonnull
format.bdate "year" output.check
new.sentence
organization output
publisher output
}
if$
}
{ format.incoll.inproc.crossref output.nonnull
format.pages output
}
if$
new.block
fin.entry
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{ output.bibitem
format.title "title" output.check new.sentence
author empty$
{ organization empty$
'skip$
{ organization output.nonnull
address output
}
if$
}
{ format.authors output.nonnull new.item }
if$
author empty$
{ organization empty$
{ address new.block.checka
address output
}
'skip$
if$
}
{ organization address new.block.checkb
organization output
address output
}
if$
format.edition output
format.date output
new.block
fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check new.item
format.title "title" output.check new.item
"Studienarbeit" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
new.block
fin.entry
}

FUNCTION {misc}
{ output.bibitem
format.authors output new.item
format.title output
new.sentence
format.date output
howpublished new.item.checka
howpublished output
new.block
fin.entry
empty.misc.check
}

FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check new.item
format.btitle "title" output.check new.item
"Dissertation" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
new.block
fin.entry
}


FUNCTION {default.type} { misc }

MACRO {jan} {"January"}

READ

STRINGS { longest.label }

INTEGERS { number.label longest.label.width }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
#1 'number.label :=
#0 'longest.label.width :=
}

FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
number.label #1 + 'number.label :=
label width$ longest.label.width >
{ label 'longest.label :=
label width$ 'longest.label.width :=
}
'skip$
if$
}

EXECUTE {initialize.longest.label}

ITERATE {longest.label.pass}

FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{" longest.label * "}" * write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
"\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}


Ich hoffe sehr, dass sich jemand hier damit auskennt...