]>
Commit | Line | Data |
---|---|---|
f97ec6ec | 1 | % t.Riemann@ifh.de: 12.03.2000 made the file work with spires output |
2 | % using a new utphys.bst file from the below sources and | |
3 | % http://golem.ph.utexas.edu/~distler/TeXstuff/utphys.bst | |
4 | % UT Physics bibliographic style, ver. 1.8a. | |
5 | %------------------------------------------------------------------------- | |
6 | % conference for: published proceedings | |
7 | % article for: articles WITHOUT title | |
8 | % articleT for: articles WITH title | |
9 | % yreport for: CERN yellow report | |
10 | % preprint for: usual preprints | |
11 | % report1 for: reports | |
12 | % also new: format.tr1.number | |
13 | % misc for: programs, books, etc., title not foreseen. | |
14 | % T. Riemann 18 Aug. 1997 | |
15 | %% changes of t. marked by %% | |
16 | % I took this from: http://xxx.lanl.gov/hypertext/bibstyles/ | |
17 | % as: utphys.bst | |
18 | % also: utcaps.bst (no decapitalizing of titles) | |
19 | % see also the styles there: h-elsevier.bst, h-physrev.bst, hep.bst | |
20 | % a big collection there: hyperbibstyles.tar.gz | |
21 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
22 | %UT Physics bibliographic style, ver. 1.1. Based on: | |
23 | % | |
24 | %X IEEE Transactions bibliography style (29-Jan-88 version) | |
25 | %X numeric labels, order-of-reference, IEEE abbreviations, | |
26 | %X quotes around article titles, commas separate all fields | |
27 | %X except after book titles and before "notes". Otherwise, | |
28 | %X much like the "plain" family, from which this is adapted. | |
29 | %X | |
30 | %X History | |
31 | %X 9/30/85 (HWT) Original version, by Howard Trickey. | |
32 | %X 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren | |
33 | %X Patashnik; | |
34 | %X THIS `ieeetr' VERSION DOES NOT WORK WITH BIBTEX 0.98i. | |
35 | % | |
36 | % Modifications: 1) added hypertex support and "archive" and "eprint" fields. | |
37 | % 2) parentheses around dates, and no "pp." for article entries | |
38 | % 3) "publisher, address" instead of "address: publisher" | |
39 | % 4) added "report" field for article entries. | |
40 | % 5) particle physics-oriented abbreviations, rather than ieee. | |
41 | % 6) added "collaboration" field, as per | |
42 | % Jonathan Flynn' suggestion. SPIRES now supports this | |
43 | % field. | |
44 | % | |
45 | % Modified by Jacques Distler, 10/96 | |
46 | % History: ver 1.0 9/96 | |
47 | % ver 1.1 10/96 - added "collaboration" field | |
48 | % | |
49 | % HyperTeX Wizardry: | |
50 | % | |
51 | % The following are equivalent: | |
52 | % archive = "hep-th" | |
53 | % eprint = "9605023" | |
54 | % and | |
55 | % eprint = "hep-th/9605023" | |
56 | % both produce | |
57 | % \href{http://xxx.lanl.gov/abs/hep-th/9605023}{{\tt hep-th/9605023}} | |
58 | % in the bibliographic output at the appropriate point. If you are using a | |
59 | % hypertex macropackage, like hyperref.sty, this will create a link to Los | |
60 | % Alamos. If you are NOT using a hypertex package, then you should make | |
61 | % definition: | |
62 | % \def\href#1#2{#2} | |
63 | % somewhere in your document (this is taken care of automatically in the | |
64 | % utarticle class). | |
65 | % tr: it suppresses the path etc. | |
66 | % | |
67 | % The bibtex output produced by SPIRES, while far from perfect, is pretty | |
68 | % suitable for use with this style. Indeed, this style was designed with | |
69 | % SPIRES in mind. | |
70 | ||
71 | ENTRY | |
72 | { address | |
73 | author | |
74 | booktitle | |
75 | chapter | |
76 | edition | |
77 | editor | |
78 | howpublished | |
79 | institution | |
80 | journal | |
81 | key | |
82 | month | |
83 | note | |
84 | number | |
85 | organization | |
86 | pages | |
87 | publisher | |
88 | school | |
89 | series | |
90 | title | |
91 | type | |
92 | volume | |
93 | year | |
94 | archive | |
95 | eprint | |
96 | report | |
97 | collaboration | |
98 | SLACcitation | |
99 | } | |
100 | {} | |
101 | { label } | |
102 | ||
103 | INTEGERS { output.state before.all mid.sentence after.quote after.sentence | |
104 | after.quoted.block after.block } | |
105 | ||
106 | FUNCTION {init.state.consts} | |
107 | { #0 'before.all := | |
108 | #1 'mid.sentence := | |
109 | #2 'after.quote := | |
110 | #3 'after.sentence := | |
111 | #4 'after.quoted.block := | |
112 | #5 'after.block := | |
113 | } | |
114 | ||
115 | STRINGS { s t } | |
116 | ||
117 | FUNCTION {output.nonnull} | |
118 | { 's := | |
119 | output.state mid.sentence = | |
120 | { ", " * write$ } | |
121 | { output.state after.quote = | |
122 | { " " * write$ } | |
123 | { output.state after.block = | |
124 | { add.period$ write$ | |
125 | newline$ | |
126 | "\newblock " write$ | |
127 | } | |
128 | { output.state before.all = | |
129 | 'write$ | |
130 | { output.state after.quoted.block = | |
131 | { write$ | |
132 | newline$ | |
133 | "\newblock " write$ | |
134 | } | |
135 | { add.period$ " " * write$ } | |
136 | if$ | |
137 | } | |
138 | if$ | |
139 | } | |
140 | if$ | |
141 | } | |
142 | if$ | |
143 | mid.sentence 'output.state := | |
144 | } | |
145 | if$ | |
146 | s | |
147 | } | |
148 | ||
149 | FUNCTION {output} | |
150 | { duplicate$ empty$ | |
151 | 'pop$ | |
152 | 'output.nonnull | |
153 | if$ | |
154 | } | |
155 | ||
156 | FUNCTION {output.check} | |
157 | { 't := | |
158 | duplicate$ empty$ | |
159 | { pop$ "empty " t * " in " * cite$ * warning$ } | |
160 | 'output.nonnull | |
161 | if$ | |
162 | } | |
163 | ||
164 | FUNCTION {output.bibitem} | |
165 | { newline$ | |
166 | "\bibitem{" write$ | |
167 | cite$ write$ | |
168 | "}" write$ | |
169 | newline$ | |
170 | "" | |
171 | before.all 'output.state := | |
172 | } | |
173 | ||
174 | FUNCTION {blank.sep} | |
175 | { after.quote 'output.state := | |
176 | } | |
177 | ||
178 | FUNCTION {fin.entry} | |
179 | { output.state after.quoted.block = | |
180 | 'skip$ | |
181 | 'add.period$ | |
182 | if$ | |
183 | write$ | |
184 | newline$ | |
185 | } | |
186 | ||
187 | FUNCTION {new.block} | |
188 | { output.state before.all = | |
189 | 'skip$ | |
190 | { output.state after.quote = | |
191 | { after.quoted.block 'output.state := } | |
192 | { after.block 'output.state := } | |
193 | if$ | |
194 | } | |
195 | if$ | |
196 | } | |
197 | ||
198 | FUNCTION {new.sentence} | |
199 | { output.state after.block = | |
200 | 'skip$ | |
201 | { output.state before.all = | |
202 | 'skip$ | |
203 | { after.sentence 'output.state := } | |
204 | if$ | |
205 | } | |
206 | if$ | |
207 | } | |
208 | ||
209 | FUNCTION {not} | |
210 | { { #0 } | |
211 | { #1 } | |
212 | if$ | |
213 | } | |
214 | ||
215 | FUNCTION {and} | |
216 | { 'skip$ | |
217 | { pop$ #0 } | |
218 | if$ | |
219 | } | |
220 | ||
221 | FUNCTION {or} | |
222 | { { pop$ #1 } | |
223 | 'skip$ | |
224 | if$ | |
225 | } | |
226 | ||
227 | FUNCTION {new.block.checka} | |
228 | { empty$ | |
229 | 'skip$ | |
230 | 'new.block | |
231 | if$ | |
232 | } | |
233 | ||
234 | FUNCTION {new.block.checkb} | |
235 | { empty$ | |
236 | swap$ empty$ | |
237 | and | |
238 | 'skip$ | |
239 | 'new.block | |
240 | if$ | |
241 | } | |
242 | ||
243 | FUNCTION {new.sentence.checka} | |
244 | { empty$ | |
245 | 'skip$ | |
246 | 'new.sentence | |
247 | if$ | |
248 | } | |
249 | ||
250 | FUNCTION {field.or.null} | |
251 | { duplicate$ empty$ | |
252 | { pop$ "" } | |
253 | 'skip$ | |
254 | if$ | |
255 | } | |
256 | ||
257 | FUNCTION {emphasize} | |
258 | { duplicate$ empty$ | |
259 | { pop$ "" } | |
260 | { "{\em " swap$ * "}" * } | |
261 | if$ | |
262 | } | |
263 | ||
264 | INTEGERS { nameptr namesleft numnames } | |
265 | ||
266 | FUNCTION {format.names} | |
267 | { 's := | |
268 | #1 'nameptr := | |
269 | s num.names$ 'numnames := | |
270 | numnames 'namesleft := | |
271 | { namesleft #0 > } | |
272 | { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := | |
273 | nameptr #1 > | |
274 | { namesleft #1 > | |
275 | { ", " * t * } | |
276 | { numnames #2 > | |
277 | { "," * } | |
278 | 'skip$ | |
279 | if$ | |
280 | t "others" = | |
281 | { " {\em et al.}" * } | |
282 | { " and " * t * } | |
283 | if$ | |
284 | } | |
285 | if$ | |
286 | } | |
287 | 't | |
288 | if$ | |
289 | nameptr #1 + 'nameptr := | |
290 | namesleft #1 - 'namesleft := | |
291 | } | |
292 | while$ | |
293 | } | |
294 | ||
295 | FUNCTION {format.authors} | |
296 | { author empty$ | |
297 | { "" } | |
298 | { author format.names } | |
299 | if$ | |
300 | } | |
301 | ||
302 | FUNCTION {format.eprint} | |
303 | { eprint empty$ | |
304 | { ""} | |
305 | { archive empty$ | |
306 | {"\href{http://www.arXiv.org/abs/" eprint * "}" * | |
307 | "{{\tt " * eprint * "}}" *} | |
308 | {"\href{" archive * "/" * eprint * "}" * | |
309 | "{{\tt " * eprint * "}}" *} | |
310 | if$ | |
311 | } | |
312 | if$ | |
313 | } | |
314 | % | |
315 | %FUNCTION {format.collaboration} | |
316 | %{ collaboration empty$ | |
317 | % { "" } | |
318 | % { "{\bf " collaboration * "} " * "Collaboration" * } | |
319 | % if$ | |
320 | %} | |
321 | % | |
322 | ||
323 | %FUNCTION {format.report} | |
324 | %{ report empty$ | |
325 | % { ""} | |
326 | % { "{\it " report * "} "} " * "preprint" * } | |
327 | % if$ | |
328 | %} | |
329 | ||
330 | % old format report | |
331 | FUNCTION {format.report} | |
332 | { report empty$ | |
333 | { ""} | |
334 | { report} | |
335 | if$ | |
336 | } | |
337 | ||
338 | ||
339 | ||
340 | FUNCTION {format.editors} | |
341 | { editor empty$ | |
342 | { "" } | |
343 | { editor format.names | |
344 | editor num.names$ #1 > | |
345 | { ", eds." * } | |
346 | { ", ed." * } | |
347 | if$ | |
348 | } | |
349 | if$ | |
350 | } | |
351 | %% next changed t. 3/97 comma moved outside quotation | |
352 | FUNCTION {format.title} | |
353 | { title empty$ | |
354 | { "" } | |
355 | { "``" title "t" change.case$ * "''," * } | |
356 | if$ | |
357 | } | |
358 | %% next changed t. 3/97 comma moved outside quotation | |
359 | FUNCTION {format.title.p} | |
360 | { title empty$ | |
361 | { "" } | |
362 | { "``" title "t" change.case$ * "''." * } | |
363 | if$ | |
364 | } | |
365 | ||
366 | FUNCTION {n.dashify} | |
367 | { 't := | |
368 | "" | |
369 | { t empty$ not } | |
370 | { t #1 #1 substring$ "-" = | |
371 | { t #1 #2 substring$ "--" = not | |
372 | { "--" * | |
373 | t #2 global.max$ substring$ 't := | |
374 | } | |
375 | { { t #1 #1 substring$ "-" = } | |
376 | { "-" * | |
377 | t #2 global.max$ substring$ 't := | |
378 | } | |
379 | while$ | |
380 | } | |
381 | if$ | |
382 | } | |
383 | { t #1 #1 substring$ * | |
384 | t #2 global.max$ substring$ 't := | |
385 | } | |
386 | if$ | |
387 | } | |
388 | while$ | |
389 | } | |
390 | ||
391 | FUNCTION {format.date} | |
392 | { year empty$ | |
393 | { month empty$ | |
394 | { "" } | |
395 | { "there's a month but no year in " cite$ * warning$ | |
396 | month | |
397 | } | |
398 | if$ | |
399 | } | |
400 | { month empty$ | |
401 | 'year | |
402 | { month ", " * year * } | |
403 | if$ | |
404 | } | |
405 | if$ | |
406 | } | |
407 | ||
408 | FUNCTION {format.date.paren} | |
409 | { year empty$ | |
410 | { month empty$ | |
411 | { "" } | |
412 | { "there's a month but no year in " cite$ * warning$ | |
413 | month | |
414 | } | |
415 | if$ | |
416 | } | |
417 | { month empty$ | |
418 | {"(" year * ")" *} | |
419 | {"(" month * ", " * year * ")" *} | |
420 | if$ | |
421 | } | |
422 | if$ | |
423 | } | |
424 | ||
425 | FUNCTION {format.collaboration} | |
426 | { collaboration empty$ | |
427 | { "" } | |
428 | { "{" collaboration * "} " * "Collaboration" * } | |
429 | if$ | |
430 | } | |
431 | ||
432 | FUNCTION {format.SLACcitation} | |
433 | { SLACcitation empty$ | |
434 | {""} | |
435 | { newline$ SLACcitation output "" newline$ } | |
436 | if$ | |
437 | } | |
438 | ||
439 | FUNCTION {format.btitle} | |
440 | { title emphasize | |
441 | } | |
442 | ||
443 | FUNCTION {tie.or.space.connect} | |
444 | { duplicate$ text.length$ #3 < | |
445 | { "~" } | |
446 | { " " } | |
447 | if$ | |
448 | swap$ * * | |
449 | } | |
450 | ||
451 | FUNCTION {either.or.check} | |
452 | { empty$ | |
453 | 'pop$ | |
454 | { "can't use both " swap$ * " fields in " * cite$ * warning$ } | |
455 | if$ | |
456 | } | |
457 | ||
458 | FUNCTION {format.bvolume} | |
459 | { volume empty$ | |
460 | { "" } | |
461 | { "vol.~" volume * | |
462 | series empty$ | |
463 | 'skip$ | |
464 | { " of " * series emphasize * } | |
465 | if$ | |
466 | "volume and number" number either.or.check | |
467 | } | |
468 | if$ | |
469 | } | |
470 | ||
471 | FUNCTION {format.number.series} | |
472 | { volume empty$ | |
473 | { number empty$ | |
474 | { series field.or.null } | |
475 | { output.state mid.sentence = | |
476 | { "no.~" } | |
477 | { "No.~" } | |
478 | if$ | |
479 | number * | |
480 | series empty$ | |
481 | { "there's a number but no series in " cite$ * warning$ } | |
482 | { " in " * series * } | |
483 | if$ | |
484 | } | |
485 | if$ | |
486 | } | |
487 | { "" } | |
488 | if$ | |
489 | } | |
490 | ||
491 | FUNCTION {format.edition} | |
492 | { edition empty$ | |
493 | { "" } | |
494 | { edition "l" change.case$ "~ed." * } | |
495 | if$ | |
496 | } | |
497 | ||
498 | INTEGERS { multiresult } | |
499 | ||
500 | FUNCTION {multi.page.check} | |
501 | { 't := | |
502 | #0 'multiresult := | |
503 | { multiresult not | |
504 | t empty$ not | |
505 | and | |
506 | } | |
507 | { t #1 #1 substring$ | |
508 | duplicate$ "-" = | |
509 | swap$ duplicate$ "," = | |
510 | swap$ "+" = | |
511 | or or | |
512 | { #1 'multiresult := } | |
513 | { t #2 global.max$ substring$ 't := } | |
514 | if$ | |
515 | } | |
516 | while$ | |
517 | multiresult | |
518 | } | |
519 | ||
520 | FUNCTION {format.pages} | |
521 | { pages empty$ | |
522 | { "" } | |
523 | { pages multi.page.check | |
524 | { "pp.~" pages n.dashify * } | |
525 | { "p.~" pages * } | |
526 | if$ | |
527 | } | |
528 | if$ | |
529 | } | |
530 | ||
531 | FUNCTION {format.pages.nopp} | |
532 | { pages empty$ | |
533 | { "" } | |
534 | { pages multi.page.check | |
535 | { pages n.dashify } | |
536 | { pages } | |
537 | if$ | |
538 | } | |
539 | if$ | |
540 | } | |
541 | ||
542 | ||
543 | FUNCTION {format.volume} | |
544 | { volume empty$ | |
545 | { "" } | |
546 | { "{\bf " volume * "}" * } | |
547 | if$ | |
548 | } | |
549 | ||
550 | FUNCTION {format.number} | |
551 | { number empty$ | |
552 | { "" } | |
553 | { "no.~" number * } | |
554 | if$ | |
555 | } | |
556 | ||
557 | FUNCTION {format.chapter.pages} | |
558 | { chapter empty$ | |
559 | 'format.pages | |
560 | { type empty$ | |
561 | { "ch.~" chapter * } | |
562 | { type "l" change.case$ chapter tie.or.space.connect } | |
563 | if$ | |
564 | pages empty$ | |
565 | 'skip$ | |
566 | { ", " * format.pages * } | |
567 | if$ | |
568 | } | |
569 | if$ | |
570 | } | |
571 | ||
572 | FUNCTION {format.in.ed.booktitle} | |
573 | { booktitle empty$ | |
574 | { "" } | |
575 | { "in " booktitle emphasize * | |
576 | editor empty$ | |
577 | 'skip$ | |
578 | { " (" * format.editors * ")" * } | |
579 | if$ | |
580 | } | |
581 | if$ | |
582 | } | |
583 | ||
584 | FUNCTION {format.thesis.type} | |
585 | { type empty$ | |
586 | 'skip$ | |
587 | { pop$ | |
588 | output.state after.block = | |
589 | { type "t" change.case$ } | |
590 | { type "l" change.case$ } | |
591 | if$ | |
592 | } | |
593 | if$ | |
594 | } | |
595 | ||
596 | FUNCTION {empty.misc.check} | |
597 | { author empty$ title empty$ howpublished empty$ | |
598 | month empty$ year empty$ note empty$ | |
599 | and and and and and | |
600 | { "all relevant fields are empty in " cite$ * warning$ } | |
601 | 'skip$ | |
602 | if$ | |
603 | } | |
604 | ||
605 | FUNCTION {format.tr.number} | |
606 | { type empty$ | |
607 | %% next changed t. 8/97 | |
608 | %% { "Tech. Rep." } | |
609 | { "preprint" } | |
610 | 'type | |
611 | if$ | |
612 | number empty$ | |
613 | { "l" change.case$ } | |
614 | { number tie.or.space.connect } | |
615 | if$ | |
616 | } | |
617 | FUNCTION {format.tr1.number} | |
618 | { type empty$ | |
619 | %% next changed t. 8/97 | |
620 | %% { "Tech. Rep." } | |
621 | { "report" } | |
622 | 'type | |
623 | if$ | |
624 | number empty$ | |
625 | { "l" change.case$ } | |
626 | { number tie.or.space.connect } | |
627 | if$ | |
628 | } | |
629 | %% next changed t. 3/97 forgot old | |
630 | FUNCTION {format.paddress} | |
631 | { address empty$ | |
632 | { "" } | |
633 | { "" address * "" * } | |
634 | if$ | |
635 | } | |
636 | ||
637 | FUNCTION {format.article.crossref} | |
638 | { key empty$ | |
639 | { journal empty$ | |
640 | { "need key or journal for " cite$ * " to crossref " * crossref * | |
641 | warning$ | |
642 | "" | |
643 | } | |
644 | { "in {\em " journal * "\/}" * } | |
645 | if$ | |
646 | } | |
647 | { "in " key * } | |
648 | if$ | |
649 | " \cite{" * crossref * "}" * | |
650 | } | |
651 | ||
652 | FUNCTION {format.crossref.editor} | |
653 | { editor #1 "{vv~}{ll}" format.name$ | |
654 | editor num.names$ duplicate$ | |
655 | #2 > | |
656 | { pop$ " {\em et al.}" * } | |
657 | { #2 < | |
658 | 'skip$ | |
659 | { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = | |
660 | { " {\em et al.}" * } | |
661 | { " and " * editor #2 "{vv~}{ll}" format.name$ * } | |
662 | if$ | |
663 | } | |
664 | if$ | |
665 | } | |
666 | if$ | |
667 | } | |
668 | ||
669 | FUNCTION {format.book.crossref} | |
670 | { volume empty$ | |
671 | { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ | |
672 | "In " | |
673 | } | |
674 | { "Vol.~" volume * | |
675 | " of " * | |
676 | } | |
677 | if$ | |
678 | editor empty$ | |
679 | editor field.or.null author field.or.null = | |
680 | or | |
681 | { key empty$ | |
682 | { series empty$ | |
683 | { "need editor, key, or series for " cite$ * " to crossref " * | |
684 | crossref * warning$ | |
685 | "" * | |
686 | } | |
687 | { "{\em " * series * "\/}" * } | |
688 | if$ | |
689 | } | |
690 | { key * } | |
691 | if$ | |
692 | } | |
693 | { format.crossref.editor * } | |
694 | if$ | |
695 | " \cite{" * crossref * "}" * | |
696 | } | |
697 | ||
698 | FUNCTION {format.incoll.inproc.crossref} | |
699 | { editor empty$ | |
700 | editor field.or.null author field.or.null = | |
701 | or | |
702 | { key empty$ | |
703 | { booktitle empty$ | |
704 | { "need editor, key, or booktitle for " cite$ * " to crossref " * | |
705 | crossref * warning$ | |
706 | "" | |
707 | } | |
708 | { "in {\em " booktitle * "\/}" * } | |
709 | if$ | |
710 | } | |
711 | { "in " key * } | |
712 | if$ | |
713 | } | |
714 | { "in " format.crossref.editor * } | |
715 | if$ | |
716 | " \cite{" * crossref * "}" * | |
717 | } | |
718 | ||
719 | FUNCTION {article} | |
720 | { output.bibitem | |
721 | format.collaboration output | |
722 | format.authors "author" output.check | |
723 | % 15-03-00: no title printed: format.title "title" output.check | |
724 | % 15-03-00: no extra comma: blank.sep | |
725 | crossref missing$ | |
726 | { journal missing$ | |
727 | {} | |
728 | { journal emphasize "journal" output.check | |
729 | blank.sep | |
730 | format.volume output | |
731 | blank.sep | |
732 | format.date.paren "year" output.check | |
733 | month empty$ | |
734 | { format.number output } | |
735 | 'skip$ | |
736 | if$ | |
737 | blank.sep | |
738 | format.pages.nopp output | |
739 | } | |
740 | %%tr if$ | |
741 | % | |
742 | %%tr report missing$ | |
743 | %%tr {format.eprint output} | |
744 | %%tr {blank.sep format.report output format.eprint output} | |
745 | if$ | |
746 | } | |
747 | { format.article.crossref output.nonnull | |
748 | format.pages output | |
749 | %%%tr qqqq | |
750 | note output | |
751 | %----------% blank.sep | |
752 | %---------- format.eprint output | |
753 | format.eprint output | |
754 | } | |
755 | if$ | |
756 | %tr 15032000 new.sentence | |
757 | % this 'new.sentence' produces a '.' | |
758 | note output | |
759 | format.eprint output | |
760 | new.sentence | |
761 | format.SLACcitation output | |
762 | fin.entry | |
763 | } | |
764 | ||
765 | ||
766 | ||
767 | ||
768 | FUNCTION {articleT} | |
769 | { output.bibitem | |
770 | format.collaboration output | |
771 | format.authors "author" output.check | |
772 | % prints article items with title | |
773 | % tr: 28 8 97 next line | |
774 | format.title "title" output.check | |
775 | blank.sep | |
776 | crossref missing$ | |
777 | { journal missing$ | |
778 | {} | |
779 | { journal emphasize "journal" output.check | |
780 | blank.sep | |
781 | format.volume output | |
782 | blank.sep | |
783 | format.date.paren "year" output.check | |
784 | month empty$ | |
785 | { format.number output } | |
786 | 'skip$ | |
787 | if$ | |
788 | blank.sep | |
789 | format.pages.nopp output | |
790 | } | |
791 | %%tr if$ | |
792 | % | |
793 | %%tr report missing$ | |
794 | %%tr {format.eprint output} | |
795 | %%tr {blank.sep format.report output format.eprint output} | |
796 | if$ | |
797 | } | |
798 | { format.article.crossref output.nonnull | |
799 | format.pages output | |
800 | %%%tr | |
801 | format.eprint output | |
802 | } | |
803 | if$ | |
804 | new.sentence | |
805 | note output | |
806 | new.sentence | |
807 | format.SLACcitation output | |
808 | fin.entry | |
809 | } | |
810 | ||
811 | FUNCTION {book} | |
812 | { output.bibitem | |
813 | format.collaboration output | |
814 | author empty$ | |
815 | { format.editors "author and editor" output.check } | |
816 | { format.authors output.nonnull | |
817 | crossref missing$ | |
818 | { "author and editor" editor either.or.check } | |
819 | 'skip$ | |
820 | if$ | |
821 | } | |
822 | if$ | |
823 | format.btitle "title" output.check | |
824 | crossref missing$ | |
825 | { format.bvolume output | |
826 | new.block | |
827 | format.number.series output | |
828 | new.sentence | |
829 | publisher "publisher" output.check | |
830 | address output | |
831 | } | |
832 | { new.block | |
833 | format.book.crossref output.nonnull | |
834 | } | |
835 | if$ | |
836 | format.edition output | |
837 | format.date "year" output.check | |
838 | new.block | |
839 | note output | |
840 | new.sentence | |
841 | format.SLACcitation output | |
842 | fin.entry | |
843 | } | |
844 | ||
845 | FUNCTION {booklet} | |
846 | { output.bibitem | |
847 | format.collaboration output | |
848 | format.authors output | |
849 | title empty$ | |
850 | { "empty title in " cite$ * warning$ | |
851 | howpublished new.sentence.checka | |
852 | } | |
853 | { howpublished empty$ not | |
854 | address empty$ month empty$ year empty$ and and | |
855 | or | |
856 | { format.title.p output.nonnull } | |
857 | { format.title output.nonnull } | |
858 | if$ | |
859 | blank.sep | |
860 | } | |
861 | if$ | |
862 | howpublished output | |
863 | address output | |
864 | format.date output | |
865 | new.block | |
866 | note output | |
867 | new.sentence | |
868 | format.SLACcitation output | |
869 | fin.entry | |
870 | } | |
871 | ||
872 | FUNCTION {inbook} | |
873 | { output.bibitem | |
874 | format.collaboration output | |
875 | author empty$ | |
876 | { format.editors "author and editor" output.check } | |
877 | { format.authors output.nonnull | |
878 | crossref missing$ | |
879 | { "author and editor" editor either.or.check } | |
880 | 'skip$ | |
881 | if$ | |
882 | } | |
883 | if$ | |
884 | format.btitle "title" output.check | |
885 | crossref missing$ | |
886 | { format.bvolume output | |
887 | format.chapter.pages "chapter and pages" output.check | |
888 | new.block | |
889 | format.number.series output | |
890 | new.block | |
891 | publisher "publisher" output.check | |
892 | address output | |
893 | } | |
894 | { format.chapter.pages "chapter and pages" output.check | |
895 | new.block | |
896 | format.book.crossref output.nonnull | |
897 | } | |
898 | if$ | |
899 | format.edition output | |
900 | format.date "year" output.check | |
901 | new.block | |
902 | format.eprint output | |
903 | new.block | |
904 | note output | |
905 | new.sentence | |
906 | format.SLACcitation output | |
907 | fin.entry | |
908 | } | |
909 | ||
910 | FUNCTION {incollection} | |
911 | { output.bibitem | |
912 | format.collaboration output | |
913 | format.authors "author" output.check | |
914 | format.title "title" output.check | |
915 | blank.sep | |
916 | crossref missing$ | |
917 | { format.in.ed.booktitle "booktitle" output.check | |
918 | format.bvolume output | |
919 | format.number.series output | |
920 | format.chapter.pages output | |
921 | new.block | |
922 | publisher "publisher" output.check | |
923 | address output | |
924 | format.edition output | |
925 | format.date "year" output.check | |
926 | } | |
927 | { format.incoll.inproc.crossref output.nonnull | |
928 | format.chapter.pages output | |
929 | } | |
930 | if$ | |
931 | new.block | |
932 | format.eprint output | |
933 | new.block | |
934 | note output | |
935 | new.sentence | |
936 | format.SLACcitation output | |
937 | fin.entry | |
938 | } | |
939 | ||
940 | FUNCTION {inproceedings} | |
941 | { output.bibitem | |
942 | format.collaboration output | |
943 | format.authors "author" output.check | |
944 | format.title "title" output.check | |
945 | blank.sep | |
946 | crossref missing$ | |
947 | { format.in.ed.booktitle "booktitle" output.check | |
948 | format.bvolume output | |
949 | format.number.series output | |
950 | format.pages output | |
951 | organization output | |
952 | publisher output | |
953 | format.paddress output | |
954 | format.date "year" output.check | |
955 | } | |
956 | { format.incoll.inproc.crossref output.nonnull | |
957 | format.pages output | |
958 | } | |
959 | if$ | |
960 | %%%tr 15 -03 2000: new.block | |
961 | note output | |
962 | %%%tr tr 15 -03 2000: new.block | |
963 | %%% 4/98 | |
964 | format.eprint output | |
965 | new.sentence | |
966 | format.SLACcitation output | |
967 | fin.entry | |
968 | } | |
969 | ||
970 | FUNCTION {conference} { inproceedings } | |
971 | ||
972 | FUNCTION {manual} | |
973 | { output.bibitem | |
974 | format.collaboration output | |
975 | author empty$ | |
976 | { organization empty$ | |
977 | 'skip$ | |
978 | { organization output.nonnull | |
979 | address output | |
980 | } | |
981 | if$ | |
982 | } | |
983 | { format.authors output.nonnull } | |
984 | if$ | |
985 | format.btitle "title" output.check | |
986 | author empty$ | |
987 | { organization empty$ | |
988 | { address new.block.checka | |
989 | address output | |
990 | } | |
991 | 'skip$ | |
992 | if$ | |
993 | } | |
994 | { organization address new.block.checkb | |
995 | organization output | |
996 | address output | |
997 | } | |
998 | if$ | |
999 | format.edition output | |
1000 | format.date output | |
1001 | new.block | |
1002 | note output | |
1003 | fin.entry | |
1004 | } | |
1005 | ||
1006 | FUNCTION {mastersthesis} | |
1007 | { output.bibitem | |
1008 | format.authors "author" output.check | |
1009 | format.title "title" output.check | |
1010 | blank.sep | |
1011 | "Master's thesis" format.thesis.type output.nonnull | |
1012 | school "school" output.check | |
1013 | address output | |
1014 | format.date "year" output.check | |
1015 | new.block | |
1016 | note output | |
1017 | fin.entry | |
1018 | } | |
1019 | ||
1020 | FUNCTION {misc} | |
1021 | { output.bibitem | |
1022 | format.collaboration output | |
1023 | format.authors output | |
1024 | note output | |
1025 | format.eprint output | |
1026 | new.sentence | |
1027 | format.SLACcitation output | |
1028 | fin.entry | |
1029 | empty.misc.check | |
1030 | } | |
1031 | ||
1032 | FUNCTION {phdthesis} | |
1033 | { output.bibitem | |
1034 | format.authors "author" output.check | |
1035 | format.btitle "title" output.check | |
1036 | new.block | |
1037 | "PhD thesis" format.thesis.type output.nonnull | |
1038 | school "school" output.check | |
1039 | address output | |
1040 | format.date "year" output.check | |
1041 | new.block | |
1042 | format.eprint output | |
1043 | new.block | |
1044 | note output | |
1045 | new.sentence | |
1046 | format.SLACcitation output | |
1047 | fin.entry | |
1048 | } | |
1049 | ||
1050 | FUNCTION {proceedings} | |
1051 | { output.bibitem | |
1052 | editor empty$ | |
1053 | { organization output } | |
1054 | { format.editors output.nonnull } | |
1055 | if$ | |
1056 | format.btitle "title" output.check | |
1057 | format.bvolume output | |
1058 | format.number.series output | |
1059 | format.paddress output | |
1060 | editor empty$ | |
1061 | 'skip$ | |
1062 | { organization output } | |
1063 | if$ | |
1064 | publisher output | |
1065 | format.date "year" output.check | |
1066 | new.block | |
1067 | note output | |
1068 | new.sentence | |
1069 | format.SLACcitation output | |
1070 | fin.entry | |
1071 | } | |
1072 | ||
1073 | FUNCTION {techreport} | |
1074 | { output.bibitem | |
1075 | format.collaboration output | |
1076 | format.authors "author" output.check | |
1077 | format.title "title" output.check | |
1078 | blank.sep | |
1079 | format.tr.number output.nonnull | |
1080 | %% next added t. 8/97 | |
1081 | blank.sep | |
1082 | institution "institution" output.check | |
1083 | address output | |
1084 | %tr format.date "year" output.check | |
1085 | %tr new.block | |
1086 | note output | |
1087 | %% next added t. 8/97 | |
1088 | blank.sep | |
1089 | %% next added t. 8/97 | |
1090 | format.date.paren "year" output.check | |
1091 | format.eprint output | |
1092 | fin.entry | |
1093 | } | |
1094 | ||
1095 | % next from tr. | |
1096 | FUNCTION {preprint} | |
1097 | { output.bibitem | |
1098 | format.collaboration output | |
1099 | format.authors "author" output.check | |
1100 | format.title "title" output.check | |
1101 | blank.sep | |
1102 | institution "institution" output.check | |
1103 | address output | |
1104 | blank.sep | |
1105 | format.tr.number output.nonnull | |
1106 | blank.sep | |
1107 | report output | |
1108 | blank.sep | |
1109 | format.date.paren "year" output.check | |
1110 | note output | |
1111 | % blank.sep | |
1112 | format.eprint output | |
1113 | new.sentence | |
1114 | format.SLACcitation output | |
1115 | fin.entry | |
1116 | } | |
1117 | ||
1118 | % next is tr. invention: | |
1119 | FUNCTION {yreport} | |
1120 | { output.bibitem | |
1121 | format.collaboration output | |
1122 | format.authors "author" output.check | |
1123 | format.title "title" output.check | |
1124 | blank.sep | |
1125 | % `address report' ttt institution "institution" output.check | |
1126 | address output | |
1127 | blank.sep | |
1128 | format.tr1.number output.nonnull | |
1129 | %% next added t. 8/97 | |
1130 | %% this is not a comma: | |
1131 | blank.sep | |
1132 | %tr format.date "year" output.check | |
1133 | %tr new.block | |
1134 | report output | |
1135 | %% next added t. 8/97 | |
1136 | blank.sep | |
1137 | %% next added t. 8/97 | |
1138 | format.date.paren "year" output.check | |
1139 | %%%%%%%%%%%% format.eprint output | |
1140 | fin.entry | |
1141 | } | |
1142 | ||
1143 | % next is tr. invention: | |
1144 | FUNCTION {report1} | |
1145 | { output.bibitem | |
1146 | format.collaboration output | |
1147 | format.authors "author" output.check | |
1148 | format.title "title" output.check | |
1149 | blank.sep | |
1150 | institution "institution" output.check | |
1151 | address output | |
1152 | blank.sep | |
1153 | format.tr1.number output.nonnull | |
1154 | %% next added t. 8/97 | |
1155 | %% this is no a comma: | |
1156 | blank.sep | |
1157 | %tr format.date "year" output.check | |
1158 | %tr new.block | |
1159 | note output | |
1160 | %% next added t. 8/97 | |
1161 | blank.sep | |
1162 | %% next added t. 8/97 | |
1163 | format.date.paren "year" output.check | |
1164 | %%%%%%%%%%%% format.eprint output | |
1165 | fin.entry | |
1166 | } | |
1167 | ||
1168 | FUNCTION {unpublished} | |
1169 | { output.bibitem | |
1170 | format.collaboration output | |
1171 | format.authors "author" output.check | |
1172 | format.title.p "title" output.check | |
1173 | blank.sep | |
1174 | note "note" output.check | |
1175 | format.date output | |
1176 | new.sentence | |
1177 | format.SLACcitation output | |
1178 | fin.entry | |
1179 | } | |
1180 | ||
1181 | FUNCTION {default.type} { misc } | |
1182 | ||
1183 | MACRO {jan} {"Jan."} | |
1184 | ||
1185 | MACRO {feb} {"Feb."} | |
1186 | ||
1187 | MACRO {mar} {"Mar."} | |
1188 | ||
1189 | MACRO {apr} {"Apr."} | |
1190 | ||
1191 | MACRO {may} {"May"} | |
1192 | ||
1193 | MACRO {jun} {"June"} | |
1194 | ||
1195 | MACRO {jul} {"July"} | |
1196 | ||
1197 | MACRO {aug} {"Aug."} | |
1198 | ||
1199 | MACRO {sep} {"Sept."} | |
1200 | ||
1201 | MACRO {oct} {"Oct."} | |
1202 | ||
1203 | MACRO {nov} {"Nov."} | |
1204 | ||
1205 | MACRO {dec} {"Dec."} | |
1206 | ||
1207 | MACRO {nup} {"Nucl. Phys."} | |
1208 | ||
1209 | MACRO {cmp} {"Comm. Math. Phys."} | |
1210 | ||
1211 | MACRO {prl} {"Phys. Rev. Lett."} | |
1212 | ||
1213 | MACRO {pl} {"Phys. Lett."} | |
1214 | ||
1215 | MACRO {rmp} {"Rev. Mod. Phys."} | |
1216 | ||
1217 | MACRO {ijmp} {"Int. Jour. Mod. Phys."} | |
1218 | ||
1219 | MACRO {mpl} {"Mod. Phys. Lett."} | |
1220 | ||
1221 | MACRO {pr} {"Phys. Rev."} | |
1222 | ||
1223 | MACRO {arXiv} {"http://arXiv.org/abs"} | |
1224 | MACRO {cogprints} {"http://cogprints.soton.ac.uk/abs"} | |
1225 | ||
1226 | READ | |
1227 | ||
1228 | STRINGS { longest.label } | |
1229 | ||
1230 | INTEGERS { number.label longest.label.width } | |
1231 | ||
1232 | FUNCTION {initialize.longest.label} | |
1233 | { "" 'longest.label := | |
1234 | #1 'number.label := | |
1235 | #0 'longest.label.width := | |
1236 | } | |
1237 | ||
1238 | FUNCTION {longest.label.pass} | |
1239 | { number.label int.to.str$ 'label := | |
1240 | number.label #1 + 'number.label := | |
1241 | label width$ longest.label.width > | |
1242 | { label 'longest.label := | |
1243 | label width$ 'longest.label.width := | |
1244 | } | |
1245 | 'skip$ | |
1246 | if$ | |
1247 | } | |
1248 | ||
1249 | EXECUTE {initialize.longest.label} | |
1250 | ||
1251 | ITERATE {longest.label.pass} | |
1252 | ||
1253 | FUNCTION {begin.bib} | |
1254 | { preamble$ empty$ | |
1255 | 'skip$ | |
1256 | { preamble$ write$ newline$ } | |
1257 | if$ | |
1258 | "\providecommand{\href}[2]{#2}" | |
1259 | %% "\begingroup\raggedright\begin{thebibliography}{" * longest.label * | |
1260 | "\begingroup\begin{thebibliography}{" * longest.label * | |
1261 | "}" * write$ newline$ } | |
1262 | ||
1263 | EXECUTE {begin.bib} | |
1264 | ||
1265 | EXECUTE {init.state.consts} | |
1266 | ||
1267 | ITERATE {call.type$} | |
1268 | ||
1269 | FUNCTION {end.bib} | |
1270 | { newline$ | |
1271 | "\end{thebibliography}\endgroup" write$ newline$ | |
1272 | } | |
1273 | ||
1274 | EXECUTE {end.bib} |