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