{{- define "article" -}} In {{.journal}}{{template "vnp" .}}{{template "date" .}} {{- end -}} {{- define "book" -}} {{template "Volume" .}}{{template "nseries" .}}{{.publisher | ne ". %s"}}{{.address | ne ", %s" -}} {{.edition | ne ", %s"}}{{template "date" .}} {{- end -}} {{- define "incollection" -}} {{template "edtitle" .}}{{template "volume" .}}{{template "nseries" .}}{{template "chapterpages" . -}} {{.publisher | ne ". %s"}}{{.address | ne ", %s"}}{{template "date" .}} {{- end -}} {{- define "inproceedings" -}} {{template "edtitle" .}}{{template "volume" .}}{{ template "nseries" .}}{{template "page" .}} {{- if not .address -}} {{- if or .organization .publisher -}} . {{.organization | ne "%s"}}{{.publisher | ne ", %s"}} {{- end -}} {{template "date" .}} {{- else -}} {{.address | ne ", %s"}}{{template "date" .}}{{.organization | ne ". %s"}}{{.publisher | ne ", %s"}} {{- end -}} {{- end -}} {{- define "mastersthesis" -}} {{or .type "Master's thesis"}}{{.school | ne ", %s"}}{{.address | ne ", %s"}}{{template "date" .}} {{- end -}} {{- define "misc" -}} {{if .title}}{{.title}}{{.howpublished | ne ", %s"}}{{else}}{{.howpublished}}{{end}}{{template "date" .}} {{- end -}} {{- define "phdthesis" -}} {{or .type "PhD thesis"}}{{.school | ne ", %s"}}{{.address | ne ", %s"}}{{template "date" .}} {{- end -}} {{- define "techreport" -}} {{or .type "Technical Report"}}{{.institution | ne ", %s"}}{{template "date" .}} {{- end -}} {{- define "edtitle" -}} {{- if .booktitle -}} {{- if .editor -}} In {{template "authors" .editor}}, {{if gt (len .editor) 1}}editors{{else}}editor{{end}}, {{.booktitle}} {{- else -}} In {{.booktitle}} {{- end -}} {{- end -}} {{- end -}} {{- define "volume" -}} {{- if .volume -}} {{.volume | ne ", volume %s"}} {{- if .series}} of {{.series}}{{- end -}} {{- end -}} {{- end -}} {{- define "Volume" -}} {{- if .volume -}} {{.volume | ne "Volume %s"}} {{- if .series}} of {{.series}}{{- end -}} {{- end -}} {{- end -}} {{- define "chapterpages" -}} {{- if .chapter -}} {{or .type "chapter" | ne ", %s"}} {{.chapter}}{{template "page" .}} {{- end -}} {{- end -}} {{- define "nseries" -}} {{- if not .volume -}} {{- if not .number -}} {{.series | ne ", %s"}} {{- else -}} , number {{.number}} in {{.series}} {{- end -}} {{- end -}} {{- end -}} {{- define "vnp" -}} {{- if .volume -}} {{.volume | ne ", %s"}}{{.number | ne "(%s)"}} {{- .pages.String | print | dashify | ne ":%s"}} {{- else -}} {{template "page" .}} {{- end -}} {{- end -}} {{- define "page" -}} {{if .pages }}{{if contains .pages.String "-–,+"}}, pages {{else}}, page {{end}}{{.pages.String | dashify | printf "%s"}}{{end}} {{- end -}} {{- define "date" -}} {{if .year }}, {{.month | ne "%s "}}{{.year}}{{end}} {{- end -}} {{- define "links" -}} {{- if .www_pdf_url -}} [pdf] {{- end -}} {{- if .www_ps_url -}} [ps] {{- end -}} {{- if .www_html_url -}} [html] {{- end -}} [bib] {{- end -}} {{- define "authors" -}} {{$len := len .}} {{- if eq $len 1 -}} {{template "author" index . 0}} {{- else if eq $len 2 -}} {{template "author" index . 0}}{{" and "}} {{template "author" index . 1}} {{- else -}} {{range $index, $name := . -}} {{template "author" .}} {{- if eq $index (add $len -2) -}} {{", and "}} {{- else if lt $index (add $len -2) -}} {{", "}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- define "author" -}} {{.Format "{f.~}{vv~}{ll}{, jj}" | untex}} {{- end -}}