p@33
|
1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% IEEE.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
p@33
|
2 % Bibliography Syle file for articles according to IEEE instructions
|
p@33
|
3 % balemi@aut.ee.ethz.ch <22-JUN-93>
|
p@33
|
4 % modified from unsrt.bib. Contributions by Richard H. Roy
|
p@33
|
5
|
p@33
|
6 ENTRY
|
p@33
|
7 { address
|
p@33
|
8 author
|
p@33
|
9 booktitle
|
p@33
|
10 chapter
|
p@33
|
11 edition
|
p@33
|
12 editor
|
p@33
|
13 howpublished
|
p@33
|
14 institution
|
p@33
|
15 journal
|
p@33
|
16 key
|
p@33
|
17 month
|
p@33
|
18 note
|
p@33
|
19 number
|
p@33
|
20 organization
|
p@33
|
21 pages
|
p@33
|
22 publisher
|
p@33
|
23 school
|
p@33
|
24 series
|
p@33
|
25 title
|
p@33
|
26 type
|
p@33
|
27 volume
|
p@33
|
28 year
|
p@33
|
29 }
|
p@33
|
30 {}
|
p@33
|
31 { label }
|
p@33
|
32
|
p@33
|
33 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
|
p@33
|
34
|
p@33
|
35 FUNCTION {init.state.consts}
|
p@33
|
36 { #0 'before.all :=
|
p@33
|
37 #1 'mid.sentence :=
|
p@33
|
38 #2 'after.sentence :=
|
p@33
|
39 #3 'after.block :=
|
p@33
|
40 }
|
p@33
|
41
|
p@33
|
42 STRINGS { s t }
|
p@33
|
43
|
p@33
|
44 FUNCTION {output.nonnull}
|
p@33
|
45 { 's :=
|
p@33
|
46 output.state mid.sentence =
|
p@33
|
47 { ", " * write$ }
|
p@33
|
48 { output.state after.block =
|
p@33
|
49 % next line commented out by rhr and changed to write comma
|
p@33
|
50 % { add.period$ write$
|
p@33
|
51 { ", " * write$
|
p@33
|
52 newline$
|
p@33
|
53 "\newblock " write$
|
p@33
|
54 }
|
p@33
|
55 { output.state before.all =
|
p@33
|
56 'write$
|
p@33
|
57 { add.period$ " " * write$ }
|
p@33
|
58 if$
|
p@33
|
59 }
|
p@33
|
60 if$
|
p@33
|
61 mid.sentence 'output.state :=
|
p@33
|
62 }
|
p@33
|
63 if$
|
p@33
|
64 s
|
p@33
|
65 }
|
p@33
|
66
|
p@33
|
67 FUNCTION {output}
|
p@33
|
68 { duplicate$ empty$
|
p@33
|
69 'pop$
|
p@33
|
70 'output.nonnull
|
p@33
|
71 if$
|
p@33
|
72 }
|
p@33
|
73
|
p@33
|
74 FUNCTION {output.check}
|
p@33
|
75 { 't :=
|
p@33
|
76 duplicate$ empty$
|
p@33
|
77 { pop$ "empty " t * " in " * cite$ * warning$ }
|
p@33
|
78 'output.nonnull
|
p@33
|
79 if$
|
p@33
|
80 }
|
p@33
|
81
|
p@33
|
82 FUNCTION {output.bibitem}
|
p@33
|
83 { newline$
|
p@33
|
84 "\bibitem{" write$
|
p@33
|
85 cite$ write$
|
p@33
|
86 "}" write$
|
p@33
|
87 newline$
|
p@33
|
88 ""
|
p@33
|
89 before.all 'output.state :=
|
p@33
|
90 }
|
p@33
|
91
|
p@33
|
92 FUNCTION {fin.entry}
|
p@33
|
93 { add.period$
|
p@33
|
94 write$
|
p@33
|
95 newline$
|
p@33
|
96 }
|
p@33
|
97
|
p@33
|
98 % 5/24/89 rhr
|
p@33
|
99 % modified fin.entry function - prints note field after body of entry
|
p@33
|
100 %FUNCTION {fin.entry}
|
p@33
|
101 %{ add.period$
|
p@33
|
102 % note empty$
|
p@33
|
103 % 'write$
|
p@33
|
104 % { "\par\bgroup\parindent=0em " * annote * "\par\egroup " * write$
|
p@33
|
105 % }
|
p@33
|
106 % if$
|
p@33
|
107 % newline$
|
p@33
|
108 %}
|
p@33
|
109
|
p@33
|
110 FUNCTION {new.block}
|
p@33
|
111 { output.state before.all =
|
p@33
|
112 'skip$
|
p@33
|
113 { after.block 'output.state := }
|
p@33
|
114 if$
|
p@33
|
115 }
|
p@33
|
116
|
p@33
|
117 % new block without terminating last block with a comma
|
p@33
|
118 FUNCTION {new.ncblock}
|
p@33
|
119 {
|
p@33
|
120 write$
|
p@33
|
121 newline$
|
p@33
|
122 "\newblock "
|
p@33
|
123 before.all 'output.state :=
|
p@33
|
124 }
|
p@33
|
125
|
p@33
|
126 FUNCTION {new.nccont}
|
p@33
|
127 {
|
p@33
|
128 write$
|
p@33
|
129 " "
|
p@33
|
130 before.all 'output.state :=
|
p@33
|
131 }
|
p@33
|
132
|
p@33
|
133 FUNCTION {new.sentence}
|
p@33
|
134 { output.state after.block =
|
p@33
|
135 'skip$
|
p@33
|
136 { output.state before.all =
|
p@33
|
137 'skip$
|
p@33
|
138 { after.sentence 'output.state := }
|
p@33
|
139 if$
|
p@33
|
140 }
|
p@33
|
141 if$
|
p@33
|
142 }
|
p@33
|
143
|
p@33
|
144 FUNCTION {not}
|
p@33
|
145 { { #0 }
|
p@33
|
146 { #1 }
|
p@33
|
147 if$
|
p@33
|
148 }
|
p@33
|
149
|
p@33
|
150 FUNCTION {and}
|
p@33
|
151 { 'skip$
|
p@33
|
152 { pop$ #0 }
|
p@33
|
153 if$
|
p@33
|
154 }
|
p@33
|
155
|
p@33
|
156 FUNCTION {or}
|
p@33
|
157 { { pop$ #1 }
|
p@33
|
158 'skip$
|
p@33
|
159 if$
|
p@33
|
160 }
|
p@33
|
161
|
p@33
|
162 FUNCTION {new.block.checka}
|
p@33
|
163 { empty$
|
p@33
|
164 'skip$
|
p@33
|
165 'new.block
|
p@33
|
166 if$
|
p@33
|
167 }
|
p@33
|
168
|
p@33
|
169 FUNCTION {new.block.checkb}
|
p@33
|
170 { empty$
|
p@33
|
171 swap$ empty$
|
p@33
|
172 and
|
p@33
|
173 'skip$
|
p@33
|
174 'new.block
|
p@33
|
175 if$
|
p@33
|
176 }
|
p@33
|
177
|
p@33
|
178 FUNCTION {new.sentence.checka}
|
p@33
|
179 { empty$
|
p@33
|
180 'skip$
|
p@33
|
181 'new.sentence
|
p@33
|
182 if$
|
p@33
|
183 }
|
p@33
|
184
|
p@33
|
185 FUNCTION {new.sentence.checkb}
|
p@33
|
186 { empty$
|
p@33
|
187 swap$ empty$
|
p@33
|
188 and
|
p@33
|
189 'skip$
|
p@33
|
190 'new.sentence
|
p@33
|
191 if$
|
p@33
|
192 }
|
p@33
|
193
|
p@33
|
194 FUNCTION {field.or.null}
|
p@33
|
195 { duplicate$ empty$
|
p@33
|
196 { pop$ "" }
|
p@33
|
197 'skip$
|
p@33
|
198 if$
|
p@33
|
199 }
|
p@33
|
200
|
p@33
|
201 FUNCTION {emphasize}
|
p@33
|
202 { duplicate$ empty$
|
p@33
|
203 { pop$ "" }
|
p@33
|
204 { "{\em " swap$ * "}" * }
|
p@33
|
205 if$
|
p@33
|
206 }
|
p@33
|
207
|
p@33
|
208 FUNCTION {boldface}
|
p@33
|
209 { duplicate$ empty$
|
p@33
|
210 { pop$ "" }
|
p@33
|
211 { "{\bf " swap$ * "}" * }
|
p@33
|
212 if$
|
p@33
|
213 }
|
p@33
|
214
|
p@33
|
215 %FUNCTION {boldface}
|
p@33
|
216 %{ 's swap$ :=
|
p@33
|
217 % s "" =
|
p@33
|
218 % { "" }
|
p@33
|
219 % { "{\bf " s * "}" * }
|
p@33
|
220 % if$
|
p@33
|
221 %}
|
p@33
|
222 %
|
p@33
|
223 INTEGERS { nameptr namesleft numnames }
|
p@33
|
224
|
p@33
|
225 FUNCTION {format.names}
|
p@33
|
226 { 's :=
|
p@33
|
227 #1 'nameptr :=
|
p@33
|
228 s num.names$ 'numnames :=
|
p@33
|
229 numnames 'namesleft :=
|
p@33
|
230 { namesleft #0 > }
|
p@33
|
231 { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
|
p@33
|
232 nameptr #1 >
|
p@33
|
233 { namesleft #1 >
|
p@33
|
234 { ", " * t * }
|
p@33
|
235 { numnames #2 >
|
p@33
|
236 { "," * }
|
p@33
|
237 'skip$
|
p@33
|
238 if$
|
p@33
|
239 t "others" =
|
p@33
|
240 { " et~al." * }
|
p@33
|
241 { " and " * t * }
|
p@33
|
242 if$
|
p@33
|
243 }
|
p@33
|
244 if$
|
p@33
|
245 }
|
p@33
|
246 't
|
p@33
|
247 if$
|
p@33
|
248 nameptr #1 + 'nameptr :=
|
p@33
|
249 namesleft #1 - 'namesleft :=
|
p@33
|
250 }
|
p@33
|
251 while$
|
p@33
|
252 }
|
p@33
|
253
|
p@33
|
254 FUNCTION {format.authors}
|
p@33
|
255 { author empty$
|
p@33
|
256 { "" }
|
p@33
|
257 { author format.names }
|
p@33
|
258 if$
|
p@33
|
259 }
|
p@33
|
260
|
p@33
|
261 FUNCTION {format.editors}
|
p@33
|
262 { editor empty$
|
p@33
|
263 { "" }
|
p@33
|
264 { editor format.names
|
p@33
|
265 editor num.names$ #1 >
|
p@33
|
266 { ", Eds." * }
|
p@33
|
267 { ", Ed." * }
|
p@33
|
268 if$
|
p@33
|
269 }
|
p@33
|
270 if$
|
p@33
|
271 }
|
p@33
|
272
|
p@33
|
273 FUNCTION {format.title}
|
p@33
|
274 { title empty$
|
p@33
|
275 { "" }
|
p@33
|
276 { "``" title "t" change.case$ * }
|
p@33
|
277 if$
|
p@33
|
278 }
|
p@33
|
279
|
p@33
|
280 FUNCTION {n.dashify}
|
p@33
|
281 { 't :=
|
p@33
|
282 ""
|
p@33
|
283 { t empty$ not }
|
p@33
|
284 { t #1 #1 substring$ "-" =
|
p@33
|
285 { t #1 #2 substring$ "--" = not
|
p@33
|
286 { "--" *
|
p@33
|
287 t #2 global.max$ substring$ 't :=
|
p@33
|
288 }
|
p@33
|
289 { { t #1 #1 substring$ "-" = }
|
p@33
|
290 { "-" *
|
p@33
|
291 t #2 global.max$ substring$ 't :=
|
p@33
|
292 }
|
p@33
|
293 while$
|
p@33
|
294 }
|
p@33
|
295 if$
|
p@33
|
296 }
|
p@33
|
297 { t #1 #1 substring$ *
|
p@33
|
298 t #2 global.max$ substring$ 't :=
|
p@33
|
299 }
|
p@33
|
300 if$
|
p@33
|
301 }
|
p@33
|
302 while$
|
p@33
|
303 }
|
p@33
|
304
|
p@33
|
305 FUNCTION {format.date}
|
p@33
|
306 { year empty$
|
p@33
|
307 { month empty$
|
p@33
|
308 { "" }
|
p@33
|
309 { "there's a month but no year in " cite$ * warning$
|
p@33
|
310 month
|
p@33
|
311 }
|
p@33
|
312 if$
|
p@33
|
313 }
|
p@33
|
314 { month empty$
|
p@33
|
315 'year
|
p@33
|
316 { month " " * year * }
|
p@33
|
317 if$
|
p@33
|
318 }
|
p@33
|
319 if$
|
p@33
|
320 }
|
p@33
|
321
|
p@33
|
322 % FUNCTION {format.date}
|
p@33
|
323 % { year empty$
|
p@33
|
324 % 'year
|
p@33
|
325 % { " " year * }
|
p@33
|
326 % if$
|
p@33
|
327 % }
|
p@33
|
328
|
p@33
|
329 FUNCTION {format.btitle}
|
p@33
|
330 { title emphasize
|
p@33
|
331 }
|
p@33
|
332
|
p@33
|
333 FUNCTION {tie.or.space.connect}
|
p@33
|
334 { duplicate$ text.length$ #3 <
|
p@33
|
335 { "~" }
|
p@33
|
336 { " " }
|
p@33
|
337 if$
|
p@33
|
338 swap$ * *
|
p@33
|
339 }
|
p@33
|
340
|
p@33
|
341 FUNCTION {either.or.check}
|
p@33
|
342 { empty$
|
p@33
|
343 'pop$
|
p@33
|
344 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
|
p@33
|
345 if$
|
p@33
|
346 }
|
p@33
|
347
|
p@33
|
348 FUNCTION {format.bvolume}
|
p@33
|
349 { volume empty$
|
p@33
|
350 { "" }
|
p@33
|
351 { "vol." volume tie.or.space.connect
|
p@33
|
352 series empty$
|
p@33
|
353 'skip$
|
p@33
|
354 { " of " * series emphasize * }
|
p@33
|
355 if$
|
p@33
|
356 "volume and number" number either.or.check
|
p@33
|
357 }
|
p@33
|
358 if$
|
p@33
|
359 }
|
p@33
|
360
|
p@33
|
361 FUNCTION {format.number.series}
|
p@33
|
362 { volume empty$
|
p@33
|
363 { number empty$
|
p@33
|
364 { series field.or.null }
|
p@33
|
365 { output.state mid.sentence =
|
p@33
|
366 { "number" }
|
p@33
|
367 { "Number" }
|
p@33
|
368 if$
|
p@33
|
369 number tie.or.space.connect
|
p@33
|
370 series empty$
|
p@33
|
371 { "there's a number but no series in " cite$ * warning$ }
|
p@33
|
372 { " in " * series * }
|
p@33
|
373 if$
|
p@33
|
374 }
|
p@33
|
375 if$
|
p@33
|
376 }
|
p@33
|
377 { "" }
|
p@33
|
378 if$
|
p@33
|
379 }
|
p@33
|
380
|
p@33
|
381 FUNCTION {format.edition}
|
p@33
|
382 { edition empty$
|
p@33
|
383 { "" }
|
p@33
|
384 { output.state mid.sentence =
|
p@33
|
385 { edition "l" change.case$ " edition" * }
|
p@33
|
386 { edition "t" change.case$ " edition" * }
|
p@33
|
387 if$
|
p@33
|
388 }
|
p@33
|
389 if$
|
p@33
|
390 }
|
p@33
|
391
|
p@33
|
392 INTEGERS { multiresult }
|
p@33
|
393
|
p@33
|
394 FUNCTION {multi.page.check}
|
p@33
|
395 { 't :=
|
p@33
|
396 #0 'multiresult :=
|
p@33
|
397 { multiresult not
|
p@33
|
398 t empty$ not
|
p@33
|
399 and
|
p@33
|
400 }
|
p@33
|
401 { t #1 #1 substring$
|
p@33
|
402 duplicate$ "-" =
|
p@33
|
403 swap$ duplicate$ "," =
|
p@33
|
404 swap$ "+" =
|
p@33
|
405 or or
|
p@33
|
406 { #1 'multiresult := }
|
p@33
|
407 { t #2 global.max$ substring$ 't := }
|
p@33
|
408 if$
|
p@33
|
409 }
|
p@33
|
410 while$
|
p@33
|
411 multiresult
|
p@33
|
412 }
|
p@33
|
413
|
p@33
|
414 FUNCTION {format.pages}
|
p@33
|
415 { pages empty$
|
p@33
|
416 { "" }
|
p@33
|
417 { pages multi.page.check
|
p@33
|
418 { "pp." pages n.dashify tie.or.space.connect }
|
p@33
|
419 { "p." pages tie.or.space.connect }
|
p@33
|
420 if$
|
p@33
|
421 }
|
p@33
|
422 if$
|
p@33
|
423 }
|
p@33
|
424
|
p@33
|
425 FUNCTION {format.vol.num.pages}
|
p@33
|
426 {
|
p@33
|
427 volume empty$
|
p@33
|
428 {"" }
|
p@33
|
429 {"vol. " volume *}
|
p@33
|
430 if$
|
p@33
|
431 number empty$
|
p@33
|
432 'skip$
|
p@33
|
433 {", no. " number * *}
|
p@33
|
434 if$
|
p@33
|
435 pages empty$
|
p@33
|
436 'skip$
|
p@33
|
437 { duplicate$ empty$
|
p@33
|
438 { pop$ format.pages }
|
p@33
|
439 { ", pp. " * pages n.dashify * }
|
p@33
|
440 if$
|
p@33
|
441 }
|
p@33
|
442 if$
|
p@33
|
443 }
|
p@33
|
444
|
p@33
|
445 %FUNCTION {format.vol.num.pages}
|
p@33
|
446 %%boldface added 3/17/87 rhr
|
p@33
|
447 %{ volume field.or.null boldface
|
p@33
|
448 % number empty$
|
p@33
|
449 % 'skip$
|
p@33
|
450 % { "(" number * ")" * *
|
p@33
|
451 % volume empty$
|
p@33
|
452 % { "there's a number but no volume in " cite$ * warning$ }
|
p@33
|
453 % 'skip$
|
p@33
|
454 % if$
|
p@33
|
455 % }
|
p@33
|
456 % if$
|
p@33
|
457 % pages empty$
|
p@33
|
458 % 'skip$
|
p@33
|
459 % { duplicate$ empty$
|
p@33
|
460 % { pop$ format.pages }
|
p@33
|
461 % { ":" * pages n.dashify * }
|
p@33
|
462 % if$
|
p@33
|
463 % }
|
p@33
|
464 % if$
|
p@33
|
465 %}
|
p@33
|
466
|
p@33
|
467 FUNCTION {format.chapter.pages}
|
p@33
|
468 { chapter empty$
|
p@33
|
469 'format.pages
|
p@33
|
470 { type empty$
|
p@33
|
471 { "chapter" }
|
p@33
|
472 { type "l" change.case$ }
|
p@33
|
473 if$
|
p@33
|
474 chapter tie.or.space.connect
|
p@33
|
475 pages empty$
|
p@33
|
476 'skip$
|
p@33
|
477 { ", " * format.pages * }
|
p@33
|
478 if$
|
p@33
|
479 }
|
p@33
|
480 if$
|
p@33
|
481 }
|
p@33
|
482
|
p@33
|
483 FUNCTION {format.in.ed.booktitle}
|
p@33
|
484 { booktitle empty$
|
p@33
|
485 { "" }
|
p@33
|
486 { editor empty$
|
p@33
|
487 { "in " booktitle emphasize * }
|
p@33
|
488 { "in " booktitle emphasize * ", " * format.editors * }
|
p@33
|
489 if$
|
p@33
|
490 }
|
p@33
|
491 if$
|
p@33
|
492 }
|
p@33
|
493
|
p@33
|
494 FUNCTION {empty.misc.check}
|
p@33
|
495 { author empty$ title empty$ howpublished empty$
|
p@33
|
496 month empty$ year empty$ note empty$
|
p@33
|
497 and and and and and
|
p@33
|
498 { "all relevant fields are empty in " cite$ * warning$ }
|
p@33
|
499 'skip$
|
p@33
|
500 if$
|
p@33
|
501 }
|
p@33
|
502
|
p@33
|
503 FUNCTION {format.thesis.type}
|
p@33
|
504 { type empty$
|
p@33
|
505 'skip$
|
p@33
|
506 { pop$
|
p@33
|
507 type "t" change.case$
|
p@33
|
508 }
|
p@33
|
509 if$
|
p@33
|
510 }
|
p@33
|
511
|
p@33
|
512 FUNCTION {format.tr.number}
|
p@33
|
513 { type empty$
|
p@33
|
514 { "Tech. {R}ep." }
|
p@33
|
515 'type
|
p@33
|
516 if$
|
p@33
|
517 number empty$
|
p@33
|
518 { "t" change.case$ }
|
p@33
|
519 { number tie.or.space.connect }
|
p@33
|
520 if$
|
p@33
|
521 }
|
p@33
|
522
|
p@33
|
523 FUNCTION {format.article.crossref}
|
p@33
|
524 { key empty$
|
p@33
|
525 { journal empty$
|
p@33
|
526 { "need key or journal for " cite$ * " to crossref " * crossref *
|
p@33
|
527 warning$
|
p@33
|
528 ""
|
p@33
|
529 }
|
p@33
|
530 { "In {\em " journal * "\/}" * }
|
p@33
|
531 if$
|
p@33
|
532 }
|
p@33
|
533 { "In " key * }
|
p@33
|
534 if$
|
p@33
|
535 " \cite{" * crossref * "}" *
|
p@33
|
536 }
|
p@33
|
537
|
p@33
|
538 FUNCTION {format.crossref.editor}
|
p@33
|
539 { editor #1 "{vv~}{ll}" format.name$
|
p@33
|
540 editor num.names$ duplicate$
|
p@33
|
541 #2 >
|
p@33
|
542 { pop$ " et~al." * }
|
p@33
|
543 { #2 <
|
p@33
|
544 'skip$
|
p@33
|
545 { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
|
p@33
|
546 { " et~al." * }
|
p@33
|
547 { " and " * editor #2 "{vv~}{ll}" format.name$ * }
|
p@33
|
548 if$
|
p@33
|
549 }
|
p@33
|
550 if$
|
p@33
|
551 }
|
p@33
|
552 if$
|
p@33
|
553 }
|
p@33
|
554
|
p@33
|
555 FUNCTION {format.book.crossref}
|
p@33
|
556 { volume empty$
|
p@33
|
557 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
|
p@33
|
558 "In "
|
p@33
|
559 }
|
p@33
|
560 { "vol." volume tie.or.space.connect
|
p@33
|
561 " of " *
|
p@33
|
562 }
|
p@33
|
563 if$
|
p@33
|
564 editor empty$
|
p@33
|
565 editor field.or.null author field.or.null =
|
p@33
|
566 or
|
p@33
|
567 { key empty$
|
p@33
|
568 { series empty$
|
p@33
|
569 { "need editor, key, or series for " cite$ * " to crossref " *
|
p@33
|
570 crossref * warning$
|
p@33
|
571 "" *
|
p@33
|
572 }
|
p@33
|
573 { "{\em " * series * "\/}" * }
|
p@33
|
574 if$
|
p@33
|
575 }
|
p@33
|
576 { key * }
|
p@33
|
577 if$
|
p@33
|
578 }
|
p@33
|
579 { format.crossref.editor * }
|
p@33
|
580 if$
|
p@33
|
581 " \cite{" * crossref * "}" *
|
p@33
|
582 }
|
p@33
|
583
|
p@33
|
584 FUNCTION {format.incoll.inproc.crossref}
|
p@33
|
585 { editor empty$
|
p@33
|
586 editor field.or.null author field.or.null =
|
p@33
|
587 or
|
p@33
|
588 { key empty$
|
p@33
|
589 { booktitle empty$
|
p@33
|
590 { "need editor, key, or booktitle for " cite$ * " to crossref " *
|
p@33
|
591 crossref * warning$
|
p@33
|
592 ""
|
p@33
|
593 }
|
p@33
|
594 { "In {\em " booktitle * "\/}" * }
|
p@33
|
595 if$
|
p@33
|
596 }
|
p@33
|
597 { "In " key * }
|
p@33
|
598 if$
|
p@33
|
599 }
|
p@33
|
600 { "In " format.crossref.editor * }
|
p@33
|
601 if$
|
p@33
|
602 " \cite{" * crossref * "}" *
|
p@33
|
603 }
|
p@33
|
604
|
p@33
|
605 FUNCTION {article}
|
p@33
|
606 { output.bibitem
|
p@33
|
607 format.authors "author" output.check
|
p@33
|
608 new.block
|
p@33
|
609 format.title ",''" * "title" output.check
|
p@33
|
610 new.ncblock
|
p@33
|
611 crossref missing$
|
p@33
|
612 { journal emphasize "journal" output.check
|
p@33
|
613 format.vol.num.pages output
|
p@33
|
614 format.date "year" output.check
|
p@33
|
615 }
|
p@33
|
616 { format.article.crossref output.nonnull
|
p@33
|
617 format.pages output
|
p@33
|
618 }
|
p@33
|
619 if$
|
p@33
|
620 new.block
|
p@33
|
621 note output
|
p@33
|
622 fin.entry
|
p@33
|
623 }
|
p@33
|
624
|
p@33
|
625 FUNCTION {book}
|
p@33
|
626 { output.bibitem
|
p@33
|
627 author empty$
|
p@33
|
628 { format.editors "author and editor" output.check }
|
p@33
|
629 { format.authors output.nonnull
|
p@33
|
630 crossref missing$
|
p@33
|
631 { "author and editor" editor either.or.check }
|
p@33
|
632 'skip$
|
p@33
|
633 if$
|
p@33
|
634 }
|
p@33
|
635 if$
|
p@33
|
636 new.block
|
p@33
|
637 format.btitle "title" output.check
|
p@33
|
638 crossref missing$
|
p@33
|
639 { format.bvolume output
|
p@33
|
640 new.block
|
p@33
|
641 format.number.series output
|
p@33
|
642 new.sentence
|
p@33
|
643 publisher "publisher" output.check
|
p@33
|
644 address output
|
p@33
|
645 }
|
p@33
|
646 { new.block
|
p@33
|
647 format.book.crossref output.nonnull
|
p@33
|
648 }
|
p@33
|
649 if$
|
p@33
|
650 format.edition output
|
p@33
|
651 format.date "year" output.check
|
p@33
|
652 new.block
|
p@33
|
653 note output
|
p@33
|
654 fin.entry
|
p@33
|
655 }
|
p@33
|
656
|
p@33
|
657 FUNCTION {booklet}
|
p@33
|
658 { output.bibitem
|
p@33
|
659 format.authors output
|
p@33
|
660 new.block
|
p@33
|
661 format.title ",''" * "title" output.check
|
p@33
|
662 new.nccont
|
p@33
|
663 howpublished address new.block.checkb
|
p@33
|
664 howpublished output
|
p@33
|
665 address output
|
p@33
|
666 format.date output
|
p@33
|
667 new.block
|
p@33
|
668 note output
|
p@33
|
669 fin.entry
|
p@33
|
670 }
|
p@33
|
671
|
p@33
|
672 FUNCTION {inbook}
|
p@33
|
673 { output.bibitem
|
p@33
|
674 author empty$
|
p@33
|
675 { format.editors "author and editor" output.check }
|
p@33
|
676 { format.authors output.nonnull
|
p@33
|
677 crossref missing$
|
p@33
|
678 { "author and editor" editor either.or.check }
|
p@33
|
679 'skip$
|
p@33
|
680 if$
|
p@33
|
681 }
|
p@33
|
682 if$
|
p@33
|
683 new.block
|
p@33
|
684 format.btitle "title" output.check
|
p@33
|
685 crossref missing$
|
p@33
|
686 { format.bvolume output
|
p@33
|
687 format.chapter.pages "chapter and pages" output.check
|
p@33
|
688 new.block
|
p@33
|
689 format.number.series output
|
p@33
|
690 new.sentence
|
p@33
|
691 publisher "publisher" output.check
|
p@33
|
692 address output
|
p@33
|
693 }
|
p@33
|
694 { format.chapter.pages "chapter and pages" output.check
|
p@33
|
695 new.block
|
p@33
|
696 format.book.crossref output.nonnull
|
p@33
|
697 }
|
p@33
|
698 if$
|
p@33
|
699 format.edition output
|
p@33
|
700 format.date "year" output.check
|
p@33
|
701 new.block
|
p@33
|
702 note output
|
p@33
|
703 fin.entry
|
p@33
|
704 }
|
p@33
|
705
|
p@33
|
706 FUNCTION {incollection}
|
p@33
|
707 { output.bibitem
|
p@33
|
708 format.authors "author" output.check
|
p@33
|
709 new.block
|
p@33
|
710 format.title ",''" * "title" output.check
|
p@33
|
711 new.ncblock
|
p@33
|
712 crossref missing$
|
p@33
|
713 { format.in.ed.booktitle "booktitle" output.check
|
p@33
|
714 format.bvolume output
|
p@33
|
715 format.number.series output
|
p@33
|
716 format.chapter.pages output
|
p@33
|
717 new.sentence
|
p@33
|
718 publisher "publisher" output.check
|
p@33
|
719 address output
|
p@33
|
720 format.edition output
|
p@33
|
721 format.date "year" output.check
|
p@33
|
722 }
|
p@33
|
723 { format.incoll.inproc.crossref output.nonnull
|
p@33
|
724 format.chapter.pages output
|
p@33
|
725 }
|
p@33
|
726 if$
|
p@33
|
727 new.block
|
p@33
|
728 note output
|
p@33
|
729 fin.entry
|
p@33
|
730 }
|
p@33
|
731
|
p@33
|
732 FUNCTION {inproceedings}
|
p@33
|
733 { output.bibitem
|
p@33
|
734 format.authors "author" output.check
|
p@33
|
735 new.block
|
p@33
|
736 format.title ",''" * "title" output.check
|
p@33
|
737 new.ncblock
|
p@33
|
738 crossref missing$
|
p@33
|
739 { format.in.ed.booktitle "booktitle" output.check
|
p@33
|
740 address empty$
|
p@33
|
741 { organization publisher new.sentence.checkb
|
p@33
|
742 organization output
|
p@33
|
743 format.date "year" output.check
|
p@33
|
744 }
|
p@33
|
745 { address output.nonnull
|
p@33
|
746 format.date "year" output.check
|
p@33
|
747 organization output
|
p@33
|
748 }
|
p@33
|
749 if$
|
p@33
|
750 format.bvolume output
|
p@33
|
751 format.number.series output
|
p@33
|
752 format.pages output
|
p@33
|
753 publisher output
|
p@33
|
754 }
|
p@33
|
755 { format.incoll.inproc.crossref output.nonnull
|
p@33
|
756 format.pages output
|
p@33
|
757 }
|
p@33
|
758 if$
|
p@33
|
759 new.block
|
p@33
|
760 note output
|
p@33
|
761 fin.entry
|
p@33
|
762 }
|
p@33
|
763
|
p@33
|
764 FUNCTION {conference} { inproceedings }
|
p@33
|
765
|
p@33
|
766 FUNCTION {manual}
|
p@33
|
767 { output.bibitem
|
p@33
|
768 author empty$
|
p@33
|
769 { organization empty$
|
p@33
|
770 'skip$
|
p@33
|
771 { organization output.nonnull
|
p@33
|
772 address output
|
p@33
|
773 }
|
p@33
|
774 if$
|
p@33
|
775 }
|
p@33
|
776 { format.authors output.nonnull }
|
p@33
|
777 if$
|
p@33
|
778 new.block
|
p@33
|
779 format.btitle "title" output.check
|
p@33
|
780 author empty$
|
p@33
|
781 { organization empty$
|
p@33
|
782 { address new.block.checka
|
p@33
|
783 address output
|
p@33
|
784 }
|
p@33
|
785 'skip$
|
p@33
|
786 if$
|
p@33
|
787 }
|
p@33
|
788 { organization address new.block.checkb
|
p@33
|
789 organization output
|
p@33
|
790 address output
|
p@33
|
791 }
|
p@33
|
792 if$
|
p@33
|
793 format.edition output
|
p@33
|
794 format.date output
|
p@33
|
795 new.block
|
p@33
|
796 note output
|
p@33
|
797 fin.entry
|
p@33
|
798 }
|
p@33
|
799
|
p@33
|
800 FUNCTION {mastersthesis}
|
p@33
|
801 { output.bibitem
|
p@33
|
802 format.authors "author" output.check
|
p@33
|
803 new.block
|
p@33
|
804 format.title ",''" * "title" output.check
|
p@33
|
805 new.ncblock
|
p@33
|
806 "M.S. thesis" format.thesis.type output.nonnull
|
p@33
|
807 school "school" output.check
|
p@33
|
808 address output
|
p@33
|
809 format.date "year" output.check
|
p@33
|
810 new.block
|
p@33
|
811 note output
|
p@33
|
812 fin.entry
|
p@33
|
813 }
|
p@33
|
814
|
p@33
|
815 FUNCTION {misc}
|
p@33
|
816 { output.bibitem
|
p@33
|
817 format.authors output
|
p@33
|
818 title howpublished new.block.checkb
|
p@33
|
819 format.title ",''" * output
|
p@33
|
820 new.nccont
|
p@33
|
821 howpublished new.block.checka
|
p@33
|
822 howpublished output
|
p@33
|
823 format.date output
|
p@33
|
824 new.block
|
p@33
|
825 note output
|
p@33
|
826 fin.entry
|
p@33
|
827 empty.misc.check
|
p@33
|
828 }
|
p@33
|
829
|
p@33
|
830 FUNCTION {phdthesis}
|
p@33
|
831 { output.bibitem
|
p@33
|
832 format.authors "author" output.check
|
p@33
|
833 new.block
|
p@33
|
834 format.btitle "title" output.check
|
p@33
|
835 new.block
|
p@33
|
836 "Ph.D. thesis" format.thesis.type output.nonnull
|
p@33
|
837 school "school" output.check
|
p@33
|
838 address output
|
p@33
|
839 format.date "year" output.check
|
p@33
|
840 new.block
|
p@33
|
841 note output
|
p@33
|
842 fin.entry
|
p@33
|
843 }
|
p@33
|
844
|
p@33
|
845 FUNCTION {proceedings}
|
p@33
|
846 { output.bibitem
|
p@33
|
847 editor empty$
|
p@33
|
848 { organization output }
|
p@33
|
849 { format.editors output.nonnull }
|
p@33
|
850 if$
|
p@33
|
851 new.block
|
p@33
|
852 format.btitle "title" output.check
|
p@33
|
853 format.bvolume output
|
p@33
|
854 format.number.series output
|
p@33
|
855 address empty$
|
p@33
|
856 { editor empty$
|
p@33
|
857 { publisher new.sentence.checka }
|
p@33
|
858 { organization publisher new.sentence.checkb
|
p@33
|
859 organization output
|
p@33
|
860 }
|
p@33
|
861 if$
|
p@33
|
862 publisher output
|
p@33
|
863 format.date "year" output.check
|
p@33
|
864 }
|
p@33
|
865 { address output.nonnull
|
p@33
|
866 format.date "year" output.check
|
p@33
|
867 new.sentence
|
p@33
|
868 editor empty$
|
p@33
|
869 'skip$
|
p@33
|
870 { organization output }
|
p@33
|
871 if$
|
p@33
|
872 publisher output
|
p@33
|
873 }
|
p@33
|
874 if$
|
p@33
|
875 new.block
|
p@33
|
876 note output
|
p@33
|
877 fin.entry
|
p@33
|
878 }
|
p@33
|
879
|
p@33
|
880 FUNCTION {techreport}
|
p@33
|
881 { output.bibitem
|
p@33
|
882 format.authors "author" output.check
|
p@33
|
883 new.block
|
p@33
|
884 format.title ",''" * "title" output.check
|
p@33
|
885 new.ncblock
|
p@33
|
886 format.tr.number output.nonnull
|
p@33
|
887 institution "institution" output.check
|
p@33
|
888 address output
|
p@33
|
889 format.date "year" output.check
|
p@33
|
890 new.block
|
p@33
|
891 note output
|
p@33
|
892 fin.entry
|
p@33
|
893 }
|
p@33
|
894
|
p@33
|
895 FUNCTION {unpublished}
|
p@33
|
896 { output.bibitem
|
p@33
|
897 format.authors "author" output.check
|
p@33
|
898 new.block
|
p@33
|
899 format.title ",''" * "title" output.check
|
p@33
|
900 new.ncblock
|
p@33
|
901 note "note" output.check
|
p@33
|
902 format.date output
|
p@33
|
903 fin.entry
|
p@33
|
904 }
|
p@33
|
905
|
p@33
|
906 FUNCTION {default.type} { misc }
|
p@33
|
907
|
p@33
|
908 MACRO {jan} {"Jan."}
|
p@33
|
909
|
p@33
|
910 MACRO {feb} {"Feb."}
|
p@33
|
911
|
p@33
|
912 MACRO {mar} {"Mar."}
|
p@33
|
913
|
p@33
|
914 MACRO {apr} {"Apr."}
|
p@33
|
915
|
p@33
|
916 MACRO {may} {"May"}
|
p@33
|
917
|
p@33
|
918 MACRO {jun} {"June"}
|
p@33
|
919
|
p@33
|
920 MACRO {jul} {"July"}
|
p@33
|
921
|
p@33
|
922 MACRO {aug} {"Aug."}
|
p@33
|
923
|
p@33
|
924 MACRO {sep} {"Sept."}
|
p@33
|
925
|
p@33
|
926 MACRO {oct} {"Oct."}
|
p@33
|
927
|
p@33
|
928 MACRO {nov} {"Nov."}
|
p@33
|
929
|
p@33
|
930 MACRO {dec} {"Dec."}
|
p@33
|
931
|
p@33
|
932 MACRO {acmcs} {"ACM Computing Surveys"}
|
p@33
|
933
|
p@33
|
934 MACRO {acta} {"Acta Informatica"}
|
p@33
|
935
|
p@33
|
936 MACRO {cacm} {"Communications of the ACM"}
|
p@33
|
937
|
p@33
|
938 MACRO {ibmjrd} {"IBM Journal of Research and Development"}
|
p@33
|
939
|
p@33
|
940 MACRO {ibmsj} {"IBM Systems Journal"}
|
p@33
|
941
|
p@33
|
942 MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
|
p@33
|
943
|
p@33
|
944 MACRO {ieeetc} {"IEEE Transactions on Computers"}
|
p@33
|
945
|
p@33
|
946 MACRO {ieeetcad}
|
p@33
|
947 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
|
p@33
|
948
|
p@33
|
949 MACRO {ipl} {"Information Processing Letters"}
|
p@33
|
950
|
p@33
|
951 MACRO {jacm} {"Journal of the ACM"}
|
p@33
|
952
|
p@33
|
953 MACRO {jcss} {"Journal of Computer and System Sciences"}
|
p@33
|
954
|
p@33
|
955 MACRO {scp} {"Science of Computer Programming"}
|
p@33
|
956
|
p@33
|
957 MACRO {sicomp} {"SIAM Journal on Computing"}
|
p@33
|
958
|
p@33
|
959 MACRO {tocs} {"ACM Transactions on Computer Systems"}
|
p@33
|
960
|
p@33
|
961 MACRO {tods} {"ACM Transactions on Database Systems"}
|
p@33
|
962
|
p@33
|
963 MACRO {tog} {"ACM Transactions on Graphics"}
|
p@33
|
964
|
p@33
|
965 MACRO {toms} {"ACM Transactions on Mathematical Software"}
|
p@33
|
966
|
p@33
|
967 MACRO {toois} {"ACM Transactions on Office Information Systems"}
|
p@33
|
968
|
p@33
|
969 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
|
p@33
|
970
|
p@33
|
971 MACRO {tcs} {"Theoretical Computer Science"}
|
p@33
|
972
|
p@33
|
973 READ
|
p@33
|
974
|
p@33
|
975 STRINGS { longest.label }
|
p@33
|
976
|
p@33
|
977 INTEGERS { number.label longest.label.width }
|
p@33
|
978
|
p@33
|
979 FUNCTION {initialize.longest.label}
|
p@33
|
980 { "" 'longest.label :=
|
p@33
|
981 #1 'number.label :=
|
p@33
|
982 #0 'longest.label.width :=
|
p@33
|
983 }
|
p@33
|
984
|
p@33
|
985 FUNCTION {longest.label.pass}
|
p@33
|
986 { number.label int.to.str$ 'label :=
|
p@33
|
987 number.label #1 + 'number.label :=
|
p@33
|
988 label width$ longest.label.width >
|
p@33
|
989 { label 'longest.label :=
|
p@33
|
990 label width$ 'longest.label.width :=
|
p@33
|
991 }
|
p@33
|
992 'skip$
|
p@33
|
993 if$
|
p@33
|
994 }
|
p@33
|
995
|
p@33
|
996 EXECUTE {initialize.longest.label}
|
p@33
|
997
|
p@33
|
998 ITERATE {longest.label.pass}
|
p@33
|
999
|
p@33
|
1000 FUNCTION {begin.bib}
|
p@33
|
1001 { preamble$ empty$
|
p@33
|
1002 'skip$
|
p@33
|
1003 { preamble$ write$ newline$ }
|
p@33
|
1004 if$
|
p@33
|
1005 "\begin{thebibliography}{" longest.label * "}" * write$ newline$
|
p@33
|
1006 }
|
p@33
|
1007
|
p@33
|
1008 EXECUTE {begin.bib}
|
p@33
|
1009
|
p@33
|
1010 EXECUTE {init.state.consts}
|
p@33
|
1011
|
p@33
|
1012 ITERATE {call.type$}
|
p@33
|
1013
|
p@33
|
1014 FUNCTION {end.bib}
|
p@33
|
1015 { newline$
|
p@33
|
1016 "\end{thebibliography}" write$ newline$
|
p@33
|
1017 }
|
p@33
|
1018
|
p@33
|
1019 EXECUTE {end.bib}
|
p@33
|
1020
|
p@33
|
1021 %%%%%%%%%%%%%%%%%%%%%%%%%%%%% End of IEEE.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|