annotate Paper/ipsjsort-e.bst @ 16:661c35912701

no image version
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Mon, 17 Apr 2023 10:27:01 +0900
parents 466b958a3419
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
k228587
parents:
diff changeset
1 % ipsjsort-e.bst 28-Oct-10 by Hiroshi Nakashima (ver 3.00)
k228587
parents:
diff changeset
2 % ipsjsort-e.bst 15-Jun-07 by Hiroshi Nakashima (ver 2.12)
k228587
parents:
diff changeset
3 % ipsjsort.bst 30-Jan-02 by Hiroshi Nakashima (ver 2.00)
k228587
parents:
diff changeset
4 % ipsjsort.bst 28-Dec-93 by Hiroshi Nakashima (ver 1.00)
k228587
parents:
diff changeset
5 % jssst.bst tomura@etl.go.jp (Satoru Tomura)
k228587
parents:
diff changeset
6 % BibTeX standard bibliography style `jplain'
k228587
parents:
diff changeset
7 % version 0.10 for JBibTeX versions 0.10 or later, JLaTeX version 2.09.
k228587
parents:
diff changeset
8 % by Shouichi Matsui, matsui@denken.junet
k228587
parents:
diff changeset
9
k228587
parents:
diff changeset
10 ENTRY
k228587
parents:
diff changeset
11 { address
k228587
parents:
diff changeset
12 author
k228587
parents:
diff changeset
13 booktitle
k228587
parents:
diff changeset
14 chapter
k228587
parents:
diff changeset
15 doi % 3.00(1)
k228587
parents:
diff changeset
16 edition
k228587
parents:
diff changeset
17 editor
k228587
parents:
diff changeset
18 howpublished
k228587
parents:
diff changeset
19 institution
k228587
parents:
diff changeset
20 journal
k228587
parents:
diff changeset
21 key
k228587
parents:
diff changeset
22 month
k228587
parents:
diff changeset
23 note
k228587
parents:
diff changeset
24 number
k228587
parents:
diff changeset
25 organization
k228587
parents:
diff changeset
26 pages
k228587
parents:
diff changeset
27 publisher
k228587
parents:
diff changeset
28 refdate % 3.00(1)
k228587
parents:
diff changeset
29 school
k228587
parents:
diff changeset
30 series
k228587
parents:
diff changeset
31 title
k228587
parents:
diff changeset
32 type
k228587
parents:
diff changeset
33 url % 3.00(1)
k228587
parents:
diff changeset
34 volume
k228587
parents:
diff changeset
35 year
k228587
parents:
diff changeset
36 }
k228587
parents:
diff changeset
37 {}
k228587
parents:
diff changeset
38 { label }
k228587
parents:
diff changeset
39
k228587
parents:
diff changeset
40 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
k228587
parents:
diff changeset
41
k228587
parents:
diff changeset
42 INTEGERS { before.year }
k228587
parents:
diff changeset
43
k228587
parents:
diff changeset
44 FUNCTION {init.state.consts}
k228587
parents:
diff changeset
45 { #0 'before.all :=
k228587
parents:
diff changeset
46 #1 'mid.sentence :=
k228587
parents:
diff changeset
47 #2 'after.sentence :=
k228587
parents:
diff changeset
48 #3 'after.block :=
k228587
parents:
diff changeset
49 #4 'before.year := % 1.00(1)
k228587
parents:
diff changeset
50 }
k228587
parents:
diff changeset
51
k228587
parents:
diff changeset
52 STRINGS { s t }
k228587
parents:
diff changeset
53
k228587
parents:
diff changeset
54 FUNCTION {output.nonnull}
k228587
parents:
diff changeset
55 { 's :=
k228587
parents:
diff changeset
56 output.state mid.sentence =
k228587
parents:
diff changeset
57 { ", " * write$ }
k228587
parents:
diff changeset
58 { output.state after.block =
k228587
parents:
diff changeset
59 { add.period$ write$
k228587
parents:
diff changeset
60 newline$
k228587
parents:
diff changeset
61 "\newblock " write$
k228587
parents:
diff changeset
62 }
k228587
parents:
diff changeset
63 { output.state before.all =
k228587
parents:
diff changeset
64 'write$
k228587
parents:
diff changeset
65 { output.state before.year = % 1.00(1)
k228587
parents:
diff changeset
66 { " " * write$ }
k228587
parents:
diff changeset
67 { add.period$ " " * write$ }
k228587
parents:
diff changeset
68 if$
k228587
parents:
diff changeset
69 }
k228587
parents:
diff changeset
70 if$
k228587
parents:
diff changeset
71 }
k228587
parents:
diff changeset
72 if$
k228587
parents:
diff changeset
73 mid.sentence 'output.state :=
k228587
parents:
diff changeset
74 }
k228587
parents:
diff changeset
75 if$
k228587
parents:
diff changeset
76 s
k228587
parents:
diff changeset
77 }
k228587
parents:
diff changeset
78
k228587
parents:
diff changeset
79 FUNCTION {output}
k228587
parents:
diff changeset
80 { duplicate$ empty$
k228587
parents:
diff changeset
81 'pop$
k228587
parents:
diff changeset
82 'output.nonnull
k228587
parents:
diff changeset
83 if$
k228587
parents:
diff changeset
84 }
k228587
parents:
diff changeset
85
k228587
parents:
diff changeset
86 FUNCTION {required.argument}
k228587
parents:
diff changeset
87 { 't :=
k228587
parents:
diff changeset
88 empty$
k228587
parents:
diff changeset
89 {"Missing required argument " t * " in " * cite$ * warning$}
k228587
parents:
diff changeset
90 'skip$
k228587
parents:
diff changeset
91 if$
k228587
parents:
diff changeset
92 }
k228587
parents:
diff changeset
93
k228587
parents:
diff changeset
94 FUNCTION {required.exclusive.or.argument}
k228587
parents:
diff changeset
95 { 't :=
k228587
parents:
diff changeset
96 empty$
k228587
parents:
diff changeset
97 { 's :=
k228587
parents:
diff changeset
98 empty$
k228587
parents:
diff changeset
99 { t " or " * s * " is missing in " * cite$ * warning$}
k228587
parents:
diff changeset
100 'skip$
k228587
parents:
diff changeset
101 if$
k228587
parents:
diff changeset
102 }
k228587
parents:
diff changeset
103 { 's :=
k228587
parents:
diff changeset
104 empty$
k228587
parents:
diff changeset
105 'skip$
k228587
parents:
diff changeset
106 { "You can use only one of " t * " and " * s * " in " * cite$ * warning$}
k228587
parents:
diff changeset
107 if$
k228587
parents:
diff changeset
108 }
k228587
parents:
diff changeset
109 if$
k228587
parents:
diff changeset
110 }
k228587
parents:
diff changeset
111
k228587
parents:
diff changeset
112 FUNCTION {required.and.or.argument}
k228587
parents:
diff changeset
113 { 't := empty$
k228587
parents:
diff changeset
114 { 's := empty$
k228587
parents:
diff changeset
115 { "there's no " t * " and/or " * s * cite$ * warning$ }
k228587
parents:
diff changeset
116 'skip$
k228587
parents:
diff changeset
117 if$
k228587
parents:
diff changeset
118 }
k228587
parents:
diff changeset
119 { pop$ pop$ }
k228587
parents:
diff changeset
120 if$
k228587
parents:
diff changeset
121 }
k228587
parents:
diff changeset
122
k228587
parents:
diff changeset
123 FUNCTION {optional.series.volume.number.argument}
k228587
parents:
diff changeset
124 { series empty$
k228587
parents:
diff changeset
125 { volume empty$
k228587
parents:
diff changeset
126 { number empty$
k228587
parents:
diff changeset
127 'skip$
k228587
parents:
diff changeset
128 { "there's a number but no series in " cite$ * warning$ }
k228587
parents:
diff changeset
129 if$
k228587
parents:
diff changeset
130 }
k228587
parents:
diff changeset
131 { number empty$
k228587
parents:
diff changeset
132 { "there's a volume but no series in " cite$ * warning$ }
k228587
parents:
diff changeset
133 { "you can use only one of volume and number in " cite$ * warning$}
k228587
parents:
diff changeset
134 if$
k228587
parents:
diff changeset
135 }
k228587
parents:
diff changeset
136 if$
k228587
parents:
diff changeset
137 }
k228587
parents:
diff changeset
138 { volume empty$
k228587
parents:
diff changeset
139 { number empty$
k228587
parents:
diff changeset
140 { "there's a series but neither volume nor number in " cite$ * warning$ }
k228587
parents:
diff changeset
141 'skip$
k228587
parents:
diff changeset
142 if$
k228587
parents:
diff changeset
143 }
k228587
parents:
diff changeset
144 { number empty$
k228587
parents:
diff changeset
145 'skip$
k228587
parents:
diff changeset
146 { "you can use only one of volume and number in " cite$ * warning$ }
k228587
parents:
diff changeset
147 if$
k228587
parents:
diff changeset
148 }
k228587
parents:
diff changeset
149 if$
k228587
parents:
diff changeset
150 }
k228587
parents:
diff changeset
151 if$
k228587
parents:
diff changeset
152 }
k228587
parents:
diff changeset
153
k228587
parents:
diff changeset
154 FUNCTION {output.bibitem}
k228587
parents:
diff changeset
155 { newline$
k228587
parents:
diff changeset
156 "\bibitem{" write$
k228587
parents:
diff changeset
157 cite$ write$
k228587
parents:
diff changeset
158 "}" write$
k228587
parents:
diff changeset
159 newline$
k228587
parents:
diff changeset
160 before.all 'output.state :=
k228587
parents:
diff changeset
161 }
k228587
parents:
diff changeset
162
k228587
parents:
diff changeset
163 FUNCTION {fin.entry}
k228587
parents:
diff changeset
164 { add.period$
k228587
parents:
diff changeset
165 write$
k228587
parents:
diff changeset
166 newline$
k228587
parents:
diff changeset
167 }
k228587
parents:
diff changeset
168
k228587
parents:
diff changeset
169 FUNCTION {new.block}
k228587
parents:
diff changeset
170 { output.state before.all =
k228587
parents:
diff changeset
171 'skip$
k228587
parents:
diff changeset
172 { after.block 'output.state := }
k228587
parents:
diff changeset
173 if$
k228587
parents:
diff changeset
174 }
k228587
parents:
diff changeset
175
k228587
parents:
diff changeset
176 FUNCTION {new.sentence}
k228587
parents:
diff changeset
177 { output.state after.block =
k228587
parents:
diff changeset
178 'skip$
k228587
parents:
diff changeset
179 { output.state before.all =
k228587
parents:
diff changeset
180 'skip$
k228587
parents:
diff changeset
181 { after.sentence 'output.state := }
k228587
parents:
diff changeset
182 if$
k228587
parents:
diff changeset
183 }
k228587
parents:
diff changeset
184 if$
k228587
parents:
diff changeset
185 }
k228587
parents:
diff changeset
186
k228587
parents:
diff changeset
187 FUNCTION {not}
k228587
parents:
diff changeset
188 { { #0 }
k228587
parents:
diff changeset
189 { #1 }
k228587
parents:
diff changeset
190 if$
k228587
parents:
diff changeset
191 }
k228587
parents:
diff changeset
192
k228587
parents:
diff changeset
193 FUNCTION {and}
k228587
parents:
diff changeset
194 { 'skip$
k228587
parents:
diff changeset
195 { pop$ #0 }
k228587
parents:
diff changeset
196 if$
k228587
parents:
diff changeset
197 }
k228587
parents:
diff changeset
198
k228587
parents:
diff changeset
199 FUNCTION {or}
k228587
parents:
diff changeset
200 { { pop$ #1 }
k228587
parents:
diff changeset
201 'skip$
k228587
parents:
diff changeset
202 if$
k228587
parents:
diff changeset
203 }
k228587
parents:
diff changeset
204
k228587
parents:
diff changeset
205 FUNCTION {new.block.checka}
k228587
parents:
diff changeset
206 { empty$
k228587
parents:
diff changeset
207 'skip$
k228587
parents:
diff changeset
208 'new.block
k228587
parents:
diff changeset
209 if$
k228587
parents:
diff changeset
210 }
k228587
parents:
diff changeset
211
k228587
parents:
diff changeset
212 FUNCTION {new.block.checkb}
k228587
parents:
diff changeset
213 { empty$
k228587
parents:
diff changeset
214 swap$ empty$
k228587
parents:
diff changeset
215 and
k228587
parents:
diff changeset
216 'skip$
k228587
parents:
diff changeset
217 'new.block
k228587
parents:
diff changeset
218 if$
k228587
parents:
diff changeset
219 }
k228587
parents:
diff changeset
220
k228587
parents:
diff changeset
221 FUNCTION {new.sentence.checka}
k228587
parents:
diff changeset
222 { empty$
k228587
parents:
diff changeset
223 'skip$
k228587
parents:
diff changeset
224 'new.sentence
k228587
parents:
diff changeset
225 if$
k228587
parents:
diff changeset
226 }
k228587
parents:
diff changeset
227
k228587
parents:
diff changeset
228 FUNCTION {new.sentence.checkb}
k228587
parents:
diff changeset
229 { empty$
k228587
parents:
diff changeset
230 swap$ empty$
k228587
parents:
diff changeset
231 and
k228587
parents:
diff changeset
232 'skip$
k228587
parents:
diff changeset
233 'new.sentence
k228587
parents:
diff changeset
234 if$
k228587
parents:
diff changeset
235 }
k228587
parents:
diff changeset
236
k228587
parents:
diff changeset
237 FUNCTION {field.or.null}
k228587
parents:
diff changeset
238 { duplicate$ empty$
k228587
parents:
diff changeset
239 { pop$ "" }
k228587
parents:
diff changeset
240 'skip$
k228587
parents:
diff changeset
241 if$
k228587
parents:
diff changeset
242 }
k228587
parents:
diff changeset
243
k228587
parents:
diff changeset
244 FUNCTION {emphasize}
k228587
parents:
diff changeset
245 { duplicate$ empty$
k228587
parents:
diff changeset
246 { pop$ "" }
k228587
parents:
diff changeset
247 { "{\em " swap$ * "}" * }
k228587
parents:
diff changeset
248 if$
k228587
parents:
diff changeset
249 }
k228587
parents:
diff changeset
250
k228587
parents:
diff changeset
251 INTEGERS { nameptr namesleft numnames }
k228587
parents:
diff changeset
252
k228587
parents:
diff changeset
253 FUNCTION {format.names} % 1.00(4), 2.00(4)
k228587
parents:
diff changeset
254 { 's :=
k228587
parents:
diff changeset
255 #1 'nameptr :=
k228587
parents:
diff changeset
256 s num.names$ 'numnames :=
k228587
parents:
diff changeset
257 numnames 'namesleft :=
k228587
parents:
diff changeset
258 { namesleft #0 > }
k228587
parents:
diff changeset
259 { s nameptr "{vv }{ll}{, jj}{, f.}" format.name$ 't :=
k228587
parents:
diff changeset
260 nameptr #1 >
k228587
parents:
diff changeset
261 { namesleft #1 >
k228587
parents:
diff changeset
262 { ", " * t * }
k228587
parents:
diff changeset
263 { t "others" =
k228587
parents:
diff changeset
264 {" et al." * }
k228587
parents:
diff changeset
265 {" and " * t * }
k228587
parents:
diff changeset
266 if$
k228587
parents:
diff changeset
267 }
k228587
parents:
diff changeset
268 if$
k228587
parents:
diff changeset
269 }
k228587
parents:
diff changeset
270 't
k228587
parents:
diff changeset
271 if$
k228587
parents:
diff changeset
272 nameptr #1 + 'nameptr :=
k228587
parents:
diff changeset
273 namesleft #1 - 'namesleft :=
k228587
parents:
diff changeset
274 }
k228587
parents:
diff changeset
275 while$
k228587
parents:
diff changeset
276 }
k228587
parents:
diff changeset
277
k228587
parents:
diff changeset
278 FUNCTION {format.authors}
k228587
parents:
diff changeset
279 { author empty$
k228587
parents:
diff changeset
280 { "" }
k228587
parents:
diff changeset
281 { author format.names }
k228587
parents:
diff changeset
282 if$
k228587
parents:
diff changeset
283 }
k228587
parents:
diff changeset
284
k228587
parents:
diff changeset
285 FUNCTION {add.colon} % 2.00(5)
k228587
parents:
diff changeset
286 { ": " *
k228587
parents:
diff changeset
287 }
k228587
parents:
diff changeset
288
k228587
parents:
diff changeset
289 FUNCTION {format.editors.inparen} % 2.00(6)
k228587
parents:
diff changeset
290 { editor empty$
k228587
parents:
diff changeset
291 { "" }
k228587
parents:
diff changeset
292 { editor format.names
k228587
parents:
diff changeset
293 editor num.names$ #1 >
k228587
parents:
diff changeset
294 {", eds." *}
k228587
parents:
diff changeset
295 {", ed." *}
k228587
parents:
diff changeset
296 if$
k228587
parents:
diff changeset
297 }
k228587
parents:
diff changeset
298 if$
k228587
parents:
diff changeset
299 }
k228587
parents:
diff changeset
300
k228587
parents:
diff changeset
301 FUNCTION {format.editors}
k228587
parents:
diff changeset
302 { editor empty$
k228587
parents:
diff changeset
303 { "" }
k228587
parents:
diff changeset
304 { editor format.names
k228587
parents:
diff changeset
305 editor num.names$ #1 >
k228587
parents:
diff changeset
306 {"(eds.)" *}
k228587
parents:
diff changeset
307 {"(ed.)" *}
k228587
parents:
diff changeset
308 if$
k228587
parents:
diff changeset
309 }
k228587
parents:
diff changeset
310 if$
k228587
parents:
diff changeset
311 }
k228587
parents:
diff changeset
312
k228587
parents:
diff changeset
313 FUNCTION {n.dashify}
k228587
parents:
diff changeset
314 { 't :=
k228587
parents:
diff changeset
315 ""
k228587
parents:
diff changeset
316 { t empty$ not }
k228587
parents:
diff changeset
317 { t #1 #1 substring$ "-" =
k228587
parents:
diff changeset
318 { t #1 #2 substring$ "--" = not
k228587
parents:
diff changeset
319 { "--" *
k228587
parents:
diff changeset
320 t #2 global.max$ substring$ 't :=
k228587
parents:
diff changeset
321 }
k228587
parents:
diff changeset
322 { { t #1 #1 substring$ "-" = }
k228587
parents:
diff changeset
323 { "-" *
k228587
parents:
diff changeset
324 t #2 global.max$ substring$ 't :=
k228587
parents:
diff changeset
325 }
k228587
parents:
diff changeset
326 while$
k228587
parents:
diff changeset
327 }
k228587
parents:
diff changeset
328 if$
k228587
parents:
diff changeset
329 }
k228587
parents:
diff changeset
330 { t #1 #1 substring$ *
k228587
parents:
diff changeset
331 t #2 global.max$ substring$ 't :=
k228587
parents:
diff changeset
332 }
k228587
parents:
diff changeset
333 if$
k228587
parents:
diff changeset
334 }
k228587
parents:
diff changeset
335 while$
k228587
parents:
diff changeset
336 }
k228587
parents:
diff changeset
337
k228587
parents:
diff changeset
338 FUNCTION {format.date}
k228587
parents:
diff changeset
339 { before.year 'output.state := % 1.00(1)
k228587
parents:
diff changeset
340 year empty$
k228587
parents:
diff changeset
341 { month empty$
k228587
parents:
diff changeset
342 { "" }
k228587
parents:
diff changeset
343 { "there's a month but no year in " cite$ * warning$
k228587
parents:
diff changeset
344 "" % 1.00(5)
k228587
parents:
diff changeset
345 }
k228587
parents:
diff changeset
346 if$
k228587
parents:
diff changeset
347 }
k228587
parents:
diff changeset
348 { "(" year ")" * * } % 1.00(5)
k228587
parents:
diff changeset
349 if$
k228587
parents:
diff changeset
350 }
k228587
parents:
diff changeset
351
k228587
parents:
diff changeset
352 FUNCTION {format.ref.date} % 3.00(1)>>
k228587
parents:
diff changeset
353 { before.year 'output.state :=
k228587
parents:
diff changeset
354 "\refdatee{" refdate "}" * *
k228587
parents:
diff changeset
355 } % 3.00(1)<<
k228587
parents:
diff changeset
356
k228587
parents:
diff changeset
357 FUNCTION {tie.or.space.connect}
k228587
parents:
diff changeset
358 { duplicate$ text.length$ #3 <
k228587
parents:
diff changeset
359 { "~" }
k228587
parents:
diff changeset
360 { "\ " } % 1.00(6)
k228587
parents:
diff changeset
361 if$
k228587
parents:
diff changeset
362 swap$ * *
k228587
parents:
diff changeset
363 }
k228587
parents:
diff changeset
364
k228587
parents:
diff changeset
365 FUNCTION {output.volume}
k228587
parents:
diff changeset
366 {
k228587
parents:
diff changeset
367 volume empty$
k228587
parents:
diff changeset
368 'skip$
k228587
parents:
diff changeset
369 { "Vol.~" volume * output}
k228587
parents:
diff changeset
370 if$
k228587
parents:
diff changeset
371
k228587
parents:
diff changeset
372 }
k228587
parents:
diff changeset
373
k228587
parents:
diff changeset
374 FUNCTION {output.number}
k228587
parents:
diff changeset
375 {
k228587
parents:
diff changeset
376 number empty$
k228587
parents:
diff changeset
377 'skip$
k228587
parents:
diff changeset
378 { "No.~" number * output}
k228587
parents:
diff changeset
379 if$
k228587
parents:
diff changeset
380 }
k228587
parents:
diff changeset
381
k228587
parents:
diff changeset
382 FUNCTION {output.series.volume.number}
k228587
parents:
diff changeset
383 { series empty$
k228587
parents:
diff changeset
384 { output.volume
k228587
parents:
diff changeset
385 output.number }
k228587
parents:
diff changeset
386 { series output
k228587
parents:
diff changeset
387 output.volume
k228587
parents:
diff changeset
388 output.number }
k228587
parents:
diff changeset
389 if$
k228587
parents:
diff changeset
390 }
k228587
parents:
diff changeset
391
k228587
parents:
diff changeset
392 FUNCTION {format.edition}
k228587
parents:
diff changeset
393 { edition empty$
k228587
parents:
diff changeset
394 { "" }
k228587
parents:
diff changeset
395 { output.state mid.sentence =
k228587
parents:
diff changeset
396 { edition "l" change.case$ " edition" * }
k228587
parents:
diff changeset
397 { edition "t" change.case$ " edition" * }
k228587
parents:
diff changeset
398 if$
k228587
parents:
diff changeset
399 }
k228587
parents:
diff changeset
400 if$
k228587
parents:
diff changeset
401 }
k228587
parents:
diff changeset
402
k228587
parents:
diff changeset
403 INTEGERS { multiresult }
k228587
parents:
diff changeset
404
k228587
parents:
diff changeset
405 FUNCTION {multi.page.check}
k228587
parents:
diff changeset
406 { 't :=
k228587
parents:
diff changeset
407 #0 'multiresult :=
k228587
parents:
diff changeset
408 { multiresult not
k228587
parents:
diff changeset
409 t empty$ not
k228587
parents:
diff changeset
410 and
k228587
parents:
diff changeset
411 }
k228587
parents:
diff changeset
412 { t #1 #1 substring$
k228587
parents:
diff changeset
413 duplicate$ "-" =
k228587
parents:
diff changeset
414 swap$ duplicate$ "," =
k228587
parents:
diff changeset
415 swap$ "+" =
k228587
parents:
diff changeset
416 or or
k228587
parents:
diff changeset
417 { #1 'multiresult := }
k228587
parents:
diff changeset
418 { t #2 global.max$ substring$ 't := }
k228587
parents:
diff changeset
419 if$
k228587
parents:
diff changeset
420 }
k228587
parents:
diff changeset
421 while$
k228587
parents:
diff changeset
422 multiresult
k228587
parents:
diff changeset
423 }
k228587
parents:
diff changeset
424
k228587
parents:
diff changeset
425 FUNCTION {format.online} % 3.00(1)>>
k228587
parents:
diff changeset
426 { duplicate$ empty$
k228587
parents:
diff changeset
427 { "(online)" * }
k228587
parents:
diff changeset
428 { " (online)" * }
k228587
parents:
diff changeset
429 if$
k228587
parents:
diff changeset
430 } % 3.00(1)<<
k228587
parents:
diff changeset
431
k228587
parents:
diff changeset
432 FUNCTION {format.url} % 3.00(1)>>
k228587
parents:
diff changeset
433 { "\urle{" url "}" * *
k228587
parents:
diff changeset
434 } % 3.00(1)<<
k228587
parents:
diff changeset
435
k228587
parents:
diff changeset
436 FUNCTION {format.pages} % 1.00(7)
k228587
parents:
diff changeset
437 { pages empty$
k228587
parents:
diff changeset
438 { "" }
k228587
parents:
diff changeset
439 { pages multi.page.check
k228587
parents:
diff changeset
440 { "pp." pages n.dashify tie.or.space.connect }
k228587
parents:
diff changeset
441 { "p." pages tie.or.space.connect }
k228587
parents:
diff changeset
442 if$
k228587
parents:
diff changeset
443 }
k228587
parents:
diff changeset
444 if$
k228587
parents:
diff changeset
445 }
k228587
parents:
diff changeset
446
k228587
parents:
diff changeset
447 FUNCTION {format.doi.url} % 3.00(1)>>
k228587
parents:
diff changeset
448 { doi empty$
k228587
parents:
diff changeset
449 { url empty$
k228587
parents:
diff changeset
450 'skip$
k228587
parents:
diff changeset
451 { format.online output.nonnull
k228587
parents:
diff changeset
452 format.url
k228587
parents:
diff changeset
453 }
k228587
parents:
diff changeset
454 if$
k228587
parents:
diff changeset
455 }
k228587
parents:
diff changeset
456 { format.online output.nonnull
k228587
parents:
diff changeset
457 "\doi{" doi "}" * *
k228587
parents:
diff changeset
458 }
k228587
parents:
diff changeset
459 if$ % 3.00(1)<<
k228587
parents:
diff changeset
460 }
k228587
parents:
diff changeset
461
k228587
parents:
diff changeset
462 FUNCTION {format.pages.output} % 3.00(1)>>
k228587
parents:
diff changeset
463 { format.pages
k228587
parents:
diff changeset
464 format.doi.url output % 3.00(1)<<
k228587
parents:
diff changeset
465 }
k228587
parents:
diff changeset
466
k228587
parents:
diff changeset
467 FUNCTION {format.vol.num.pages} % 1.00(8)
k228587
parents:
diff changeset
468 { volume empty$
k228587
parents:
diff changeset
469 { ""}
k228587
parents:
diff changeset
470 { " Vol.~" volume * }
k228587
parents:
diff changeset
471 if$
k228587
parents:
diff changeset
472 number empty$
k228587
parents:
diff changeset
473 'skip$
k228587
parents:
diff changeset
474 { volume empty$
k228587
parents:
diff changeset
475 { "there's a number but no volume in " cite$ * warning$ }
k228587
parents:
diff changeset
476 { "," *}
k228587
parents:
diff changeset
477 if$
k228587
parents:
diff changeset
478 " No.~" number * *
k228587
parents:
diff changeset
479 }
k228587
parents:
diff changeset
480 if$
k228587
parents:
diff changeset
481 pages empty$
k228587
parents:
diff changeset
482 'skip$
k228587
parents:
diff changeset
483 { duplicate$ empty$
k228587
parents:
diff changeset
484 { pop$ format.pages }
k228587
parents:
diff changeset
485 { ", " * format.pages * }
k228587
parents:
diff changeset
486 if$
k228587
parents:
diff changeset
487 }
k228587
parents:
diff changeset
488 if$
k228587
parents:
diff changeset
489 format.doi.url % 3.00(1)
k228587
parents:
diff changeset
490 }
k228587
parents:
diff changeset
491
k228587
parents:
diff changeset
492 FUNCTION {format.chapter.pages}
k228587
parents:
diff changeset
493 { chapter empty$
k228587
parents:
diff changeset
494 'format.pages
k228587
parents:
diff changeset
495 { type empty$
k228587
parents:
diff changeset
496 { "chapter" chapter tie.or.space.connect }
k228587
parents:
diff changeset
497 { type "l" change.case$ chapter tie.or.space.connect }
k228587
parents:
diff changeset
498 if$
k228587
parents:
diff changeset
499 pages empty$
k228587
parents:
diff changeset
500 'skip$
k228587
parents:
diff changeset
501 { ", " * format.pages * }
k228587
parents:
diff changeset
502 if$
k228587
parents:
diff changeset
503 }
k228587
parents:
diff changeset
504 if$
k228587
parents:
diff changeset
505 format.doi.url % 3.00(1)
k228587
parents:
diff changeset
506 }
k228587
parents:
diff changeset
507
k228587
parents:
diff changeset
508 FUNCTION {format.in.ed.booktitle}
k228587
parents:
diff changeset
509 { booktitle empty$
k228587
parents:
diff changeset
510 { "" }
k228587
parents:
diff changeset
511 { booktitle emphasize
k228587
parents:
diff changeset
512 editor empty$
k228587
parents:
diff changeset
513 'skip$
k228587
parents:
diff changeset
514 { " (" * format.editors.inparen * ")" *} % 1.00(9), 2.00(6)
k228587
parents:
diff changeset
515 if$
k228587
parents:
diff changeset
516 }
k228587
parents:
diff changeset
517 if$
k228587
parents:
diff changeset
518 }
k228587
parents:
diff changeset
519
k228587
parents:
diff changeset
520 FUNCTION {empty.misc.check}
k228587
parents:
diff changeset
521 { author empty$ title empty$ howpublished empty$
k228587
parents:
diff changeset
522 month empty$ year empty$ note empty$
k228587
parents:
diff changeset
523 and and and and and
k228587
parents:
diff changeset
524 key empty$ not and
k228587
parents:
diff changeset
525 { "all relevant fields are empty in " cite$ * warning$ }
k228587
parents:
diff changeset
526 'skip$
k228587
parents:
diff changeset
527 if$
k228587
parents:
diff changeset
528 }
k228587
parents:
diff changeset
529
k228587
parents:
diff changeset
530 FUNCTION {format.thesis.type}
k228587
parents:
diff changeset
531 { type empty$
k228587
parents:
diff changeset
532 'skip$
k228587
parents:
diff changeset
533 { pop$
k228587
parents:
diff changeset
534 type "t" change.case$
k228587
parents:
diff changeset
535 }
k228587
parents:
diff changeset
536 if$
k228587
parents:
diff changeset
537 }
k228587
parents:
diff changeset
538
k228587
parents:
diff changeset
539 FUNCTION {format.tr.number}
k228587
parents:
diff changeset
540 { type empty$
k228587
parents:
diff changeset
541 { "Technical Report" }
k228587
parents:
diff changeset
542 {type}
k228587
parents:
diff changeset
543 if$
k228587
parents:
diff changeset
544 number empty$
k228587
parents:
diff changeset
545 { "t" change.case$ }
k228587
parents:
diff changeset
546 { " " number * * }
k228587
parents:
diff changeset
547 if$
k228587
parents:
diff changeset
548 }
k228587
parents:
diff changeset
549
k228587
parents:
diff changeset
550 FUNCTION {format.article.crossref} % 2.00(8)
k228587
parents:
diff changeset
551 { key empty$
k228587
parents:
diff changeset
552 { journal empty$
k228587
parents:
diff changeset
553 { "need key or journal for " cite$ * " to crossref " * crossref *
k228587
parents:
diff changeset
554 warning$
k228587
parents:
diff changeset
555 ""
k228587
parents:
diff changeset
556 }
k228587
parents:
diff changeset
557 { journal emphasize } % 1.00(10)
k228587
parents:
diff changeset
558 if$
k228587
parents:
diff changeset
559 }
k228587
parents:
diff changeset
560 { "In " key * }
k228587
parents:
diff changeset
561 if$
k228587
parents:
diff changeset
562 " \cite{" * crossref * "}" *
k228587
parents:
diff changeset
563 }
k228587
parents:
diff changeset
564
k228587
parents:
diff changeset
565 FUNCTION {format.crossref.editor} % 1.00(11)
k228587
parents:
diff changeset
566 { editor #1 "{vv }{ll}" format.name$
k228587
parents:
diff changeset
567 editor num.names$ duplicate$
k228587
parents:
diff changeset
568 #2 >
k228587
parents:
diff changeset
569 {pop$ " et al." * }
k228587
parents:
diff changeset
570 { #2 <
k228587
parents:
diff changeset
571 'skip$
k228587
parents:
diff changeset
572 { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
k228587
parents:
diff changeset
573 {" et al." * }
k228587
parents:
diff changeset
574 {" and " * editor #2 "{vv }{ll}" format.name$ * }
k228587
parents:
diff changeset
575 if$
k228587
parents:
diff changeset
576 }
k228587
parents:
diff changeset
577 if$
k228587
parents:
diff changeset
578 }
k228587
parents:
diff changeset
579 if$
k228587
parents:
diff changeset
580 }
k228587
parents:
diff changeset
581
k228587
parents:
diff changeset
582 FUNCTION {format.book.crossref} % 2.00(8)
k228587
parents:
diff changeset
583 { editor empty$
k228587
parents:
diff changeset
584 editor field.or.null author field.or.null =
k228587
parents:
diff changeset
585 or
k228587
parents:
diff changeset
586 { key empty$
k228587
parents:
diff changeset
587 { series empty$
k228587
parents:
diff changeset
588 { "need editor, key, or series for " cite$ * " to crossref " *
k228587
parents:
diff changeset
589 crossref * warning$
k228587
parents:
diff changeset
590 ""
k228587
parents:
diff changeset
591 }
k228587
parents:
diff changeset
592 { series emphasize } % 1.00(10)
k228587
parents:
diff changeset
593 if$
k228587
parents:
diff changeset
594 }
k228587
parents:
diff changeset
595 { "In " key * }
k228587
parents:
diff changeset
596 if$
k228587
parents:
diff changeset
597 }
k228587
parents:
diff changeset
598 { format.crossref.editor }
k228587
parents:
diff changeset
599 if$
k228587
parents:
diff changeset
600 " \cite{" * crossref * "}" *
k228587
parents:
diff changeset
601 volume empty$
k228587
parents:
diff changeset
602 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ }
k228587
parents:
diff changeset
603 { * "Vol." * volume tie.or.space.connect }
k228587
parents:
diff changeset
604 if$
k228587
parents:
diff changeset
605 }
k228587
parents:
diff changeset
606
k228587
parents:
diff changeset
607 FUNCTION {format.incoll.inproc.crossref} % 2.00(8)
k228587
parents:
diff changeset
608 { editor empty$
k228587
parents:
diff changeset
609 editor field.or.null author field.or.null =
k228587
parents:
diff changeset
610 or
k228587
parents:
diff changeset
611 { key empty$
k228587
parents:
diff changeset
612 { booktitle empty$
k228587
parents:
diff changeset
613 { "need editor, key, or booktitle for " cite$ * " to crossref " *
k228587
parents:
diff changeset
614 crossref * warning$
k228587
parents:
diff changeset
615 ""
k228587
parents:
diff changeset
616 }
k228587
parents:
diff changeset
617 { booktitle emphasize } % 1.00(10)
k228587
parents:
diff changeset
618 if$
k228587
parents:
diff changeset
619 }
k228587
parents:
diff changeset
620 { "In " key * }
k228587
parents:
diff changeset
621 if$
k228587
parents:
diff changeset
622 }
k228587
parents:
diff changeset
623 { format.crossref.editor }
k228587
parents:
diff changeset
624 if$
k228587
parents:
diff changeset
625 " \cite{" * crossref * "}" *
k228587
parents:
diff changeset
626 }
k228587
parents:
diff changeset
627
k228587
parents:
diff changeset
628 FUNCTION {article}
k228587
parents:
diff changeset
629 {
k228587
parents:
diff changeset
630 %%%%
k228587
parents:
diff changeset
631 author "author" required.argument
k228587
parents:
diff changeset
632 title "title" required.argument
k228587
parents:
diff changeset
633 journal "journal" required.argument
k228587
parents:
diff changeset
634 year "year" required.argument
k228587
parents:
diff changeset
635 %%%% jssst
k228587
parents:
diff changeset
636 volume "volume"
k228587
parents:
diff changeset
637 number "number"
k228587
parents:
diff changeset
638 required.and.or.argument
k228587
parents:
diff changeset
639 pages "pages" required.argument
k228587
parents:
diff changeset
640 %%%%
k228587
parents:
diff changeset
641 output.bibitem
k228587
parents:
diff changeset
642 format.authors add.colon % 2.00(5)
k228587
parents:
diff changeset
643 title output
k228587
parents:
diff changeset
644 crossref missing$
k228587
parents:
diff changeset
645 { journal emphasize output
k228587
parents:
diff changeset
646 format.vol.num.pages output % 1.00(12)
k228587
parents:
diff changeset
647 format.date output
k228587
parents:
diff changeset
648 }
k228587
parents:
diff changeset
649 { format.article.crossref output.nonnull
k228587
parents:
diff changeset
650 format.pages.output % 3.00(1)
k228587
parents:
diff changeset
651 }
k228587
parents:
diff changeset
652 if$
k228587
parents:
diff changeset
653 new.block
k228587
parents:
diff changeset
654 note output
k228587
parents:
diff changeset
655 fin.entry
k228587
parents:
diff changeset
656 }
k228587
parents:
diff changeset
657
k228587
parents:
diff changeset
658 FUNCTION {book}
k228587
parents:
diff changeset
659 {
k228587
parents:
diff changeset
660 %%%%
k228587
parents:
diff changeset
661 author "author"
k228587
parents:
diff changeset
662 editor "editor"
k228587
parents:
diff changeset
663 required.exclusive.or.argument
k228587
parents:
diff changeset
664 title "title" required.argument
k228587
parents:
diff changeset
665 publisher "publisher" required.argument
k228587
parents:
diff changeset
666 year "year" required.argument
k228587
parents:
diff changeset
667 optional.series.volume.number.argument
k228587
parents:
diff changeset
668 %%%%
k228587
parents:
diff changeset
669 output.bibitem
k228587
parents:
diff changeset
670 author empty$
k228587
parents:
diff changeset
671 { format.editors}
k228587
parents:
diff changeset
672 { format.authors}
k228587
parents:
diff changeset
673 if$
k228587
parents:
diff changeset
674 add.colon % 2.00(5)
k228587
parents:
diff changeset
675 title emphasize output
k228587
parents:
diff changeset
676 crossref missing$
k228587
parents:
diff changeset
677 { output.series.volume.number
k228587
parents:
diff changeset
678 publisher output
k228587
parents:
diff changeset
679 address output
k228587
parents:
diff changeset
680 }
k228587
parents:
diff changeset
681 { new.block
k228587
parents:
diff changeset
682 format.book.crossref output.nonnull
k228587
parents:
diff changeset
683 }
k228587
parents:
diff changeset
684 if$
k228587
parents:
diff changeset
685 format.edition output
k228587
parents:
diff changeset
686 format.date output
k228587
parents:
diff changeset
687 new.block
k228587
parents:
diff changeset
688 note output
k228587
parents:
diff changeset
689 fin.entry
k228587
parents:
diff changeset
690 }
k228587
parents:
diff changeset
691
k228587
parents:
diff changeset
692 FUNCTION {booklet}
k228587
parents:
diff changeset
693 {
k228587
parents:
diff changeset
694 %%%%
k228587
parents:
diff changeset
695 title "title" required.argument
k228587
parents:
diff changeset
696 %%%% jssst
k228587
parents:
diff changeset
697 author "author" required.argument
k228587
parents:
diff changeset
698 %%%%
k228587
parents:
diff changeset
699 output.bibitem
k228587
parents:
diff changeset
700 format.authors add.colon % 2.00(5)
k228587
parents:
diff changeset
701 title output
k228587
parents:
diff changeset
702 howpublished output
k228587
parents:
diff changeset
703 address output
k228587
parents:
diff changeset
704 format.date output
k228587
parents:
diff changeset
705 new.block
k228587
parents:
diff changeset
706 note output
k228587
parents:
diff changeset
707 fin.entry
k228587
parents:
diff changeset
708 }
k228587
parents:
diff changeset
709
k228587
parents:
diff changeset
710 FUNCTION {inbook}
k228587
parents:
diff changeset
711 {
k228587
parents:
diff changeset
712 %%%%
k228587
parents:
diff changeset
713 author "author"
k228587
parents:
diff changeset
714 editor "editor"
k228587
parents:
diff changeset
715 required.exclusive.or.argument
k228587
parents:
diff changeset
716 title "title" required.argument
k228587
parents:
diff changeset
717 chapter "chapter"
k228587
parents:
diff changeset
718 pages "pages"
k228587
parents:
diff changeset
719 required.and.or.argument
k228587
parents:
diff changeset
720 publisher "publisher" required.argument
k228587
parents:
diff changeset
721 year "year" required.argument
k228587
parents:
diff changeset
722
k228587
parents:
diff changeset
723 optional.series.volume.number.argument
k228587
parents:
diff changeset
724 %%%%
k228587
parents:
diff changeset
725 output.bibitem
k228587
parents:
diff changeset
726 author empty$
k228587
parents:
diff changeset
727 { format.editors}
k228587
parents:
diff changeset
728 { format.authors}
k228587
parents:
diff changeset
729 if$
k228587
parents:
diff changeset
730 add.colon % 2.00(5)
k228587
parents:
diff changeset
731 title emphasize output
k228587
parents:
diff changeset
732 crossref missing$
k228587
parents:
diff changeset
733 { output.series.volume.number
k228587
parents:
diff changeset
734 format.chapter.pages output
k228587
parents:
diff changeset
735 publisher output
k228587
parents:
diff changeset
736 }
k228587
parents:
diff changeset
737 { format.chapter.pages output
k228587
parents:
diff changeset
738 new.block
k228587
parents:
diff changeset
739 format.book.crossref output.nonnull
k228587
parents:
diff changeset
740 }
k228587
parents:
diff changeset
741 if$
k228587
parents:
diff changeset
742 format.edition output
k228587
parents:
diff changeset
743 format.date output % 1.00(13)
k228587
parents:
diff changeset
744 new.block
k228587
parents:
diff changeset
745 note output
k228587
parents:
diff changeset
746 fin.entry
k228587
parents:
diff changeset
747 }
k228587
parents:
diff changeset
748
k228587
parents:
diff changeset
749 FUNCTION {incollection}
k228587
parents:
diff changeset
750 {
k228587
parents:
diff changeset
751 %%%%
k228587
parents:
diff changeset
752 author "author" required.argument
k228587
parents:
diff changeset
753 title "title" required.argument
k228587
parents:
diff changeset
754 booktitle "booktitle" required.argument
k228587
parents:
diff changeset
755 publisher "publisher" required.argument
k228587
parents:
diff changeset
756 year "year" required.argument
k228587
parents:
diff changeset
757
k228587
parents:
diff changeset
758 optional.series.volume.number.argument
k228587
parents:
diff changeset
759 %%%%
k228587
parents:
diff changeset
760 output.bibitem
k228587
parents:
diff changeset
761 format.authors add.colon % 2.00(5)
k228587
parents:
diff changeset
762 title output
k228587
parents:
diff changeset
763 crossref missing$
k228587
parents:
diff changeset
764 { format.in.ed.booktitle output
k228587
parents:
diff changeset
765 output.series.volume.number
k228587
parents:
diff changeset
766 publisher output
k228587
parents:
diff changeset
767 address output
k228587
parents:
diff changeset
768 format.edition output
k228587
parents:
diff changeset
769 format.chapter.pages output % 1.00(13)
k228587
parents:
diff changeset
770 format.date output
k228587
parents:
diff changeset
771 }
k228587
parents:
diff changeset
772 { format.incoll.inproc.crossref output.nonnull
k228587
parents:
diff changeset
773 format.chapter.pages output
k228587
parents:
diff changeset
774 }
k228587
parents:
diff changeset
775 if$
k228587
parents:
diff changeset
776 new.block
k228587
parents:
diff changeset
777 note output
k228587
parents:
diff changeset
778 fin.entry
k228587
parents:
diff changeset
779 }
k228587
parents:
diff changeset
780
k228587
parents:
diff changeset
781 FUNCTION {inproceedings}
k228587
parents:
diff changeset
782 {
k228587
parents:
diff changeset
783 %%%%
k228587
parents:
diff changeset
784 author "author" required.argument
k228587
parents:
diff changeset
785 title "title" required.argument
k228587
parents:
diff changeset
786 year "year" required.argument
k228587
parents:
diff changeset
787
k228587
parents:
diff changeset
788 optional.series.volume.number.argument
k228587
parents:
diff changeset
789 %%%%
k228587
parents:
diff changeset
790 output.bibitem
k228587
parents:
diff changeset
791 format.authors add.colon % 2.00(5)
k228587
parents:
diff changeset
792 title output
k228587
parents:
diff changeset
793 crossref missing$
k228587
parents:
diff changeset
794 { format.in.ed.booktitle output
k228587
parents:
diff changeset
795 booktitle "booktitle" required.argument
k228587
parents:
diff changeset
796 output.series.volume.number
k228587
parents:
diff changeset
797 address output
k228587
parents:
diff changeset
798 organization output
k228587
parents:
diff changeset
799 publisher output
k228587
parents:
diff changeset
800 format.pages.output % 3.00(1)
k228587
parents:
diff changeset
801 format.date output % 1.00(13)
k228587
parents:
diff changeset
802 }
k228587
parents:
diff changeset
803 { format.incoll.inproc.crossref output.nonnull
k228587
parents:
diff changeset
804 format.pages.output % 3.00(1)
k228587
parents:
diff changeset
805 }
k228587
parents:
diff changeset
806 if$
k228587
parents:
diff changeset
807 new.block
k228587
parents:
diff changeset
808 note output
k228587
parents:
diff changeset
809 fin.entry
k228587
parents:
diff changeset
810 }
k228587
parents:
diff changeset
811
k228587
parents:
diff changeset
812 FUNCTION {conference} { inproceedings }
k228587
parents:
diff changeset
813
k228587
parents:
diff changeset
814 FUNCTION {manual}
k228587
parents:
diff changeset
815 {
k228587
parents:
diff changeset
816 %%%%
k228587
parents:
diff changeset
817 title "title" required.argument
k228587
parents:
diff changeset
818 %%%% jssst
k228587
parents:
diff changeset
819 author "author"
k228587
parents:
diff changeset
820 organization "organazaion"
k228587
parents:
diff changeset
821 required.exclusive.or.argument
k228587
parents:
diff changeset
822 %%%%
k228587
parents:
diff changeset
823 output.bibitem
k228587
parents:
diff changeset
824 author empty$
k228587
parents:
diff changeset
825 { organization}
k228587
parents:
diff changeset
826 { format.authors}
k228587
parents:
diff changeset
827 if$
k228587
parents:
diff changeset
828 add.colon % 2.00(5)
k228587
parents:
diff changeset
829 title emphasize output
k228587
parents:
diff changeset
830 author empty$
k228587
parents:
diff changeset
831 'skip$
k228587
parents:
diff changeset
832 { organization output }
k228587
parents:
diff changeset
833 if$
k228587
parents:
diff changeset
834 address output
k228587
parents:
diff changeset
835 format.edition output
k228587
parents:
diff changeset
836 format.date output
k228587
parents:
diff changeset
837 new.block
k228587
parents:
diff changeset
838 note output
k228587
parents:
diff changeset
839 fin.entry
k228587
parents:
diff changeset
840 }
k228587
parents:
diff changeset
841
k228587
parents:
diff changeset
842 FUNCTION {mastersthesis}
k228587
parents:
diff changeset
843 {
k228587
parents:
diff changeset
844 %%%%
k228587
parents:
diff changeset
845 author "author" required.argument
k228587
parents:
diff changeset
846 title "title" required.argument
k228587
parents:
diff changeset
847 school "school" required.argument
k228587
parents:
diff changeset
848 year "year" required.argument
k228587
parents:
diff changeset
849 %%%%
k228587
parents:
diff changeset
850 output.bibitem
k228587
parents:
diff changeset
851 format.authors add.colon % 2.00(5)
k228587
parents:
diff changeset
852 title output
k228587
parents:
diff changeset
853 "Master's thesis"
k228587
parents:
diff changeset
854 format.thesis.type output.nonnull
k228587
parents:
diff changeset
855 school output
k228587
parents:
diff changeset
856 address output
k228587
parents:
diff changeset
857 format.date output
k228587
parents:
diff changeset
858 new.block
k228587
parents:
diff changeset
859 note output
k228587
parents:
diff changeset
860 fin.entry
k228587
parents:
diff changeset
861 }
k228587
parents:
diff changeset
862
k228587
parents:
diff changeset
863 FUNCTION {misc}
k228587
parents:
diff changeset
864 {
k228587
parents:
diff changeset
865 %%%%
k228587
parents:
diff changeset
866 %%%% jssst
k228587
parents:
diff changeset
867 author "author" required.argument
k228587
parents:
diff changeset
868 title "title" required.argument
k228587
parents:
diff changeset
869 %%%%
k228587
parents:
diff changeset
870 output.bibitem
k228587
parents:
diff changeset
871 format.authors add.colon % 2.00(5)
k228587
parents:
diff changeset
872 title output
k228587
parents:
diff changeset
873 howpublished output
k228587
parents:
diff changeset
874 format.date output
k228587
parents:
diff changeset
875 new.block
k228587
parents:
diff changeset
876 note output
k228587
parents:
diff changeset
877 fin.entry
k228587
parents:
diff changeset
878 empty.misc.check
k228587
parents:
diff changeset
879 }
k228587
parents:
diff changeset
880
k228587
parents:
diff changeset
881 FUNCTION {phdthesis}
k228587
parents:
diff changeset
882 {
k228587
parents:
diff changeset
883 %%%%
k228587
parents:
diff changeset
884 author "author" required.argument
k228587
parents:
diff changeset
885 title "title" required.argument
k228587
parents:
diff changeset
886 school "school" required.argument
k228587
parents:
diff changeset
887 year "year" required.argument
k228587
parents:
diff changeset
888 %%%%
k228587
parents:
diff changeset
889 output.bibitem
k228587
parents:
diff changeset
890 format.authors add.colon % 2.00(5)
k228587
parents:
diff changeset
891 title output % 2.00(9)
k228587
parents:
diff changeset
892 "PhD Thesis"
k228587
parents:
diff changeset
893 format.thesis.type output.nonnull
k228587
parents:
diff changeset
894 school output
k228587
parents:
diff changeset
895 address output
k228587
parents:
diff changeset
896 format.date output
k228587
parents:
diff changeset
897 new.block
k228587
parents:
diff changeset
898 note output
k228587
parents:
diff changeset
899 fin.entry
k228587
parents:
diff changeset
900 }
k228587
parents:
diff changeset
901
k228587
parents:
diff changeset
902 FUNCTION {proceedings}
k228587
parents:
diff changeset
903 {
k228587
parents:
diff changeset
904 %%%%
k228587
parents:
diff changeset
905 title "title" required.argument
k228587
parents:
diff changeset
906 year "year" required.argument
k228587
parents:
diff changeset
907
k228587
parents:
diff changeset
908 optional.series.volume.number.argument
k228587
parents:
diff changeset
909 %%%% jssst
k228587
parents:
diff changeset
910 editor "editor"
k228587
parents:
diff changeset
911 organization "organization"
k228587
parents:
diff changeset
912 required.exclusive.or.argument
k228587
parents:
diff changeset
913 %%%%
k228587
parents:
diff changeset
914 output.bibitem
k228587
parents:
diff changeset
915 editor empty$
k228587
parents:
diff changeset
916 { organization }
k228587
parents:
diff changeset
917 { format.editors }
k228587
parents:
diff changeset
918 if$
k228587
parents:
diff changeset
919 add.colon % 2.00(5)
k228587
parents:
diff changeset
920 title emphasize output
k228587
parents:
diff changeset
921 output.series.volume.number
k228587
parents:
diff changeset
922 address output
k228587
parents:
diff changeset
923 editor empty$
k228587
parents:
diff changeset
924 'skip$
k228587
parents:
diff changeset
925 { organization output }
k228587
parents:
diff changeset
926 if$
k228587
parents:
diff changeset
927 publisher output
k228587
parents:
diff changeset
928 format.date output
k228587
parents:
diff changeset
929 new.block
k228587
parents:
diff changeset
930 note output
k228587
parents:
diff changeset
931 fin.entry
k228587
parents:
diff changeset
932 }
k228587
parents:
diff changeset
933
k228587
parents:
diff changeset
934 FUNCTION {techreport}
k228587
parents:
diff changeset
935 {
k228587
parents:
diff changeset
936 %%%%
k228587
parents:
diff changeset
937 author "author" required.argument
k228587
parents:
diff changeset
938 title "title" required.argument
k228587
parents:
diff changeset
939 institution "institution" required.argument
k228587
parents:
diff changeset
940 year "year" required.argument
k228587
parents:
diff changeset
941 %%%%
k228587
parents:
diff changeset
942 output.bibitem
k228587
parents:
diff changeset
943 format.authors add.colon % 2.00(5)
k228587
parents:
diff changeset
944 title output
k228587
parents:
diff changeset
945 format.tr.number output.nonnull
k228587
parents:
diff changeset
946 institution output
k228587
parents:
diff changeset
947 address output
k228587
parents:
diff changeset
948 format.date output
k228587
parents:
diff changeset
949 new.block
k228587
parents:
diff changeset
950 note output
k228587
parents:
diff changeset
951 fin.entry
k228587
parents:
diff changeset
952 }
k228587
parents:
diff changeset
953
k228587
parents:
diff changeset
954 FUNCTION {unpublished}
k228587
parents:
diff changeset
955 {
k228587
parents:
diff changeset
956 %%%%
k228587
parents:
diff changeset
957 author "author" required.argument
k228587
parents:
diff changeset
958 title "title" required.argument
k228587
parents:
diff changeset
959 note "note" required.argument
k228587
parents:
diff changeset
960 %%%%
k228587
parents:
diff changeset
961 output.bibitem
k228587
parents:
diff changeset
962 format.authors add.colon % 2.00(5)
k228587
parents:
diff changeset
963 title output
k228587
parents:
diff changeset
964 format.date output
k228587
parents:
diff changeset
965 new.block
k228587
parents:
diff changeset
966 note output
k228587
parents:
diff changeset
967 fin.entry
k228587
parents:
diff changeset
968 }
k228587
parents:
diff changeset
969
k228587
parents:
diff changeset
970 FUNCTION {webpage} % 3.00(1)>>
k228587
parents:
diff changeset
971 {
k228587
parents:
diff changeset
972 %%%%
k228587
parents:
diff changeset
973 author "author" required.argument
k228587
parents:
diff changeset
974 title "title" required.argument
k228587
parents:
diff changeset
975 url "url" required.argument
k228587
parents:
diff changeset
976 refdate "refdate" required.argument
k228587
parents:
diff changeset
977 %%%%
k228587
parents:
diff changeset
978 output.bibitem
k228587
parents:
diff changeset
979 format.authors add.colon
k228587
parents:
diff changeset
980 title output
k228587
parents:
diff changeset
981 organization format.doi.url output
k228587
parents:
diff changeset
982 format.ref.date output
k228587
parents:
diff changeset
983 new.block
k228587
parents:
diff changeset
984 note output
k228587
parents:
diff changeset
985 fin.entry
k228587
parents:
diff changeset
986 } % 3.00(1)<<
k228587
parents:
diff changeset
987
k228587
parents:
diff changeset
988 FUNCTION {default.type} { misc }
k228587
parents:
diff changeset
989
k228587
parents:
diff changeset
990 MACRO {jan} {"January"}
k228587
parents:
diff changeset
991
k228587
parents:
diff changeset
992 MACRO {feb} {"February"}
k228587
parents:
diff changeset
993
k228587
parents:
diff changeset
994 MACRO {mar} {"March"}
k228587
parents:
diff changeset
995
k228587
parents:
diff changeset
996 MACRO {apr} {"April"}
k228587
parents:
diff changeset
997
k228587
parents:
diff changeset
998 MACRO {may} {"May"}
k228587
parents:
diff changeset
999
k228587
parents:
diff changeset
1000 MACRO {jun} {"June"}
k228587
parents:
diff changeset
1001
k228587
parents:
diff changeset
1002 MACRO {jul} {"July"}
k228587
parents:
diff changeset
1003
k228587
parents:
diff changeset
1004 MACRO {aug} {"August"}
k228587
parents:
diff changeset
1005
k228587
parents:
diff changeset
1006 MACRO {sep} {"September"}
k228587
parents:
diff changeset
1007
k228587
parents:
diff changeset
1008 MACRO {oct} {"October"}
k228587
parents:
diff changeset
1009
k228587
parents:
diff changeset
1010 MACRO {nov} {"November"}
k228587
parents:
diff changeset
1011
k228587
parents:
diff changeset
1012 MACRO {dec} {"December"}
k228587
parents:
diff changeset
1013
k228587
parents:
diff changeset
1014 MACRO {acmcs} {"ACM Computing Surveys"}
k228587
parents:
diff changeset
1015
k228587
parents:
diff changeset
1016 MACRO {acta} {"Acta Informatica"}
k228587
parents:
diff changeset
1017
k228587
parents:
diff changeset
1018 MACRO {cacm} {"Communications of the ACM"}
k228587
parents:
diff changeset
1019
k228587
parents:
diff changeset
1020 MACRO {ibmjrd} {"IBM Journal of Research and Development"}
k228587
parents:
diff changeset
1021
k228587
parents:
diff changeset
1022 MACRO {ibmsj} {"IBM Systems Journal"}
k228587
parents:
diff changeset
1023
k228587
parents:
diff changeset
1024 MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
k228587
parents:
diff changeset
1025
k228587
parents:
diff changeset
1026 MACRO {ieeetc} {"IEEE Transactions on Computers"}
k228587
parents:
diff changeset
1027
k228587
parents:
diff changeset
1028 MACRO {ieeetcad}
k228587
parents:
diff changeset
1029 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
k228587
parents:
diff changeset
1030
k228587
parents:
diff changeset
1031 MACRO {ipl} {"Information Processing Letters"}
k228587
parents:
diff changeset
1032
k228587
parents:
diff changeset
1033 MACRO {jacm} {"Journal of the ACM"}
k228587
parents:
diff changeset
1034
k228587
parents:
diff changeset
1035 MACRO {jcss} {"Journal of Computer and System Sciences"}
k228587
parents:
diff changeset
1036
k228587
parents:
diff changeset
1037 MACRO {scp} {"Science of Computer Programming"}
k228587
parents:
diff changeset
1038
k228587
parents:
diff changeset
1039 MACRO {sicomp} {"SIAM Journal on Computing"}
k228587
parents:
diff changeset
1040
k228587
parents:
diff changeset
1041 MACRO {tocs} {"ACM Transactions on Computer Systems"}
k228587
parents:
diff changeset
1042
k228587
parents:
diff changeset
1043 MACRO {tods} {"ACM Transactions on Database Systems"}
k228587
parents:
diff changeset
1044
k228587
parents:
diff changeset
1045 MACRO {tog} {"ACM Transactions on Graphics"}
k228587
parents:
diff changeset
1046
k228587
parents:
diff changeset
1047 MACRO {toms} {"ACM Transactions on Mathematical Software"}
k228587
parents:
diff changeset
1048
k228587
parents:
diff changeset
1049 MACRO {toois} {"ACM Transactions on Office Information Systems"}
k228587
parents:
diff changeset
1050
k228587
parents:
diff changeset
1051 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
k228587
parents:
diff changeset
1052
k228587
parents:
diff changeset
1053 MACRO {tcs} {"Theoretical Computer Science"}
k228587
parents:
diff changeset
1054
k228587
parents:
diff changeset
1055 READ
k228587
parents:
diff changeset
1056
k228587
parents:
diff changeset
1057 FUNCTION {sortify}
k228587
parents:
diff changeset
1058 { purify$
k228587
parents:
diff changeset
1059 "l" change.case$
k228587
parents:
diff changeset
1060 }
k228587
parents:
diff changeset
1061
k228587
parents:
diff changeset
1062 INTEGERS { len }
k228587
parents:
diff changeset
1063
k228587
parents:
diff changeset
1064 FUNCTION {chop.word}
k228587
parents:
diff changeset
1065 { 's :=
k228587
parents:
diff changeset
1066 'len :=
k228587
parents:
diff changeset
1067 s #1 len substring$ =
k228587
parents:
diff changeset
1068 { s len #1 + global.max$ substring$ }
k228587
parents:
diff changeset
1069 's
k228587
parents:
diff changeset
1070 if$
k228587
parents:
diff changeset
1071 }
k228587
parents:
diff changeset
1072
k228587
parents:
diff changeset
1073 FUNCTION {sort.format.names}
k228587
parents:
diff changeset
1074 { 's :=
k228587
parents:
diff changeset
1075 #1 'nameptr :=
k228587
parents:
diff changeset
1076 ""
k228587
parents:
diff changeset
1077 s num.names$ 'numnames :=
k228587
parents:
diff changeset
1078 numnames 'namesleft :=
k228587
parents:
diff changeset
1079 { namesleft #0 > }
k228587
parents:
diff changeset
1080 { nameptr #1 >
k228587
parents:
diff changeset
1081 { " " * }
k228587
parents:
diff changeset
1082 'skip$
k228587
parents:
diff changeset
1083 if$
k228587
parents:
diff changeset
1084 s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
k228587
parents:
diff changeset
1085 nameptr numnames = t "others" = and
k228587
parents:
diff changeset
1086 { "et al" * }
k228587
parents:
diff changeset
1087 { t sortify * }
k228587
parents:
diff changeset
1088 if$
k228587
parents:
diff changeset
1089 nameptr #1 + 'nameptr :=
k228587
parents:
diff changeset
1090 namesleft #1 - 'namesleft :=
k228587
parents:
diff changeset
1091 }
k228587
parents:
diff changeset
1092 while$
k228587
parents:
diff changeset
1093 }
k228587
parents:
diff changeset
1094
k228587
parents:
diff changeset
1095 FUNCTION {sort.format.title}
k228587
parents:
diff changeset
1096 { 't :=
k228587
parents:
diff changeset
1097 "A " #2
k228587
parents:
diff changeset
1098 "An " #3
k228587
parents:
diff changeset
1099 "The " #4 t chop.word
k228587
parents:
diff changeset
1100 chop.word
k228587
parents:
diff changeset
1101 chop.word
k228587
parents:
diff changeset
1102 sortify
k228587
parents:
diff changeset
1103 #1 global.max$ substring$
k228587
parents:
diff changeset
1104 }
k228587
parents:
diff changeset
1105
k228587
parents:
diff changeset
1106 FUNCTION {author.sort}
k228587
parents:
diff changeset
1107 { author empty$
k228587
parents:
diff changeset
1108 { key empty$
k228587
parents:
diff changeset
1109 { "to sort, need author or key in " cite$ * warning$
k228587
parents:
diff changeset
1110 ""
k228587
parents:
diff changeset
1111 }
k228587
parents:
diff changeset
1112 { key sortify }
k228587
parents:
diff changeset
1113 if$
k228587
parents:
diff changeset
1114 }
k228587
parents:
diff changeset
1115 { author sort.format.names }
k228587
parents:
diff changeset
1116 if$
k228587
parents:
diff changeset
1117 }
k228587
parents:
diff changeset
1118
k228587
parents:
diff changeset
1119 FUNCTION {author.editor.sort}
k228587
parents:
diff changeset
1120 { author empty$
k228587
parents:
diff changeset
1121 { editor empty$
k228587
parents:
diff changeset
1122 { key empty$
k228587
parents:
diff changeset
1123 { "to sort, need author, editor, or key in " cite$ * warning$
k228587
parents:
diff changeset
1124 ""
k228587
parents:
diff changeset
1125 }
k228587
parents:
diff changeset
1126 { key sortify }
k228587
parents:
diff changeset
1127 if$
k228587
parents:
diff changeset
1128 }
k228587
parents:
diff changeset
1129 { editor sort.format.names }
k228587
parents:
diff changeset
1130 if$
k228587
parents:
diff changeset
1131 }
k228587
parents:
diff changeset
1132 { author sort.format.names }
k228587
parents:
diff changeset
1133 if$
k228587
parents:
diff changeset
1134 }
k228587
parents:
diff changeset
1135
k228587
parents:
diff changeset
1136 FUNCTION {author.organization.sort}
k228587
parents:
diff changeset
1137 { author empty$
k228587
parents:
diff changeset
1138 { organization empty$
k228587
parents:
diff changeset
1139 { key empty$
k228587
parents:
diff changeset
1140 { "to sort, need author, organization, or key in " cite$ * warning$
k228587
parents:
diff changeset
1141 ""
k228587
parents:
diff changeset
1142 }
k228587
parents:
diff changeset
1143 { key sortify }
k228587
parents:
diff changeset
1144 if$
k228587
parents:
diff changeset
1145 }
k228587
parents:
diff changeset
1146 { "The " #4 organization chop.word sortify }
k228587
parents:
diff changeset
1147 if$
k228587
parents:
diff changeset
1148 }
k228587
parents:
diff changeset
1149 { author sort.format.names }
k228587
parents:
diff changeset
1150 if$
k228587
parents:
diff changeset
1151 }
k228587
parents:
diff changeset
1152
k228587
parents:
diff changeset
1153 FUNCTION {editor.organization.sort}
k228587
parents:
diff changeset
1154 { editor empty$
k228587
parents:
diff changeset
1155 { organization empty$
k228587
parents:
diff changeset
1156 { key empty$
k228587
parents:
diff changeset
1157 { "to sort, need editor, organization, or key in " cite$ * warning$
k228587
parents:
diff changeset
1158 ""
k228587
parents:
diff changeset
1159 }
k228587
parents:
diff changeset
1160 { key sortify }
k228587
parents:
diff changeset
1161 if$
k228587
parents:
diff changeset
1162 }
k228587
parents:
diff changeset
1163 { "The " #4 organization chop.word sortify }
k228587
parents:
diff changeset
1164 if$
k228587
parents:
diff changeset
1165 }
k228587
parents:
diff changeset
1166 { editor sort.format.names }
k228587
parents:
diff changeset
1167 if$
k228587
parents:
diff changeset
1168 }
k228587
parents:
diff changeset
1169
k228587
parents:
diff changeset
1170 FUNCTION {presort}
k228587
parents:
diff changeset
1171 { type$ "book" =
k228587
parents:
diff changeset
1172 type$ "inbook" =
k228587
parents:
diff changeset
1173 or
k228587
parents:
diff changeset
1174 'author.editor.sort
k228587
parents:
diff changeset
1175 { type$ "proceedings" =
k228587
parents:
diff changeset
1176 'editor.organization.sort
k228587
parents:
diff changeset
1177 { type$ "manual" =
k228587
parents:
diff changeset
1178 'author.organization.sort
k228587
parents:
diff changeset
1179 'author.sort
k228587
parents:
diff changeset
1180 if$
k228587
parents:
diff changeset
1181 }
k228587
parents:
diff changeset
1182 if$
k228587
parents:
diff changeset
1183 }
k228587
parents:
diff changeset
1184 if$
k228587
parents:
diff changeset
1185 " "
k228587
parents:
diff changeset
1186 *
k228587
parents:
diff changeset
1187 year field.or.null sortify
k228587
parents:
diff changeset
1188 *
k228587
parents:
diff changeset
1189 " "
k228587
parents:
diff changeset
1190 *
k228587
parents:
diff changeset
1191 title field.or.null
k228587
parents:
diff changeset
1192 sort.format.title
k228587
parents:
diff changeset
1193 *
k228587
parents:
diff changeset
1194 #1 entry.max$ substring$
k228587
parents:
diff changeset
1195 'sort.key$ :=
k228587
parents:
diff changeset
1196 }
k228587
parents:
diff changeset
1197
k228587
parents:
diff changeset
1198 ITERATE {presort}
k228587
parents:
diff changeset
1199
k228587
parents:
diff changeset
1200 SORT
k228587
parents:
diff changeset
1201
k228587
parents:
diff changeset
1202 STRINGS { longest.label }
k228587
parents:
diff changeset
1203
k228587
parents:
diff changeset
1204 INTEGERS { number.label longest.label.width }
k228587
parents:
diff changeset
1205
k228587
parents:
diff changeset
1206 FUNCTION {initialize.longest.label}
k228587
parents:
diff changeset
1207 { "" 'longest.label :=
k228587
parents:
diff changeset
1208 #1 'number.label :=
k228587
parents:
diff changeset
1209 #0 'longest.label.width :=
k228587
parents:
diff changeset
1210 }
k228587
parents:
diff changeset
1211
k228587
parents:
diff changeset
1212 FUNCTION {longest.label.pass}
k228587
parents:
diff changeset
1213 { number.label int.to.str$ 'label :=
k228587
parents:
diff changeset
1214 number.label #1 + 'number.label :=
k228587
parents:
diff changeset
1215 label width$ longest.label.width >
k228587
parents:
diff changeset
1216 { label 'longest.label :=
k228587
parents:
diff changeset
1217 label width$ 'longest.label.width :=
k228587
parents:
diff changeset
1218 }
k228587
parents:
diff changeset
1219 'skip$
k228587
parents:
diff changeset
1220 if$
k228587
parents:
diff changeset
1221 }
k228587
parents:
diff changeset
1222
k228587
parents:
diff changeset
1223 EXECUTE {initialize.longest.label}
k228587
parents:
diff changeset
1224
k228587
parents:
diff changeset
1225 ITERATE {longest.label.pass}
k228587
parents:
diff changeset
1226
k228587
parents:
diff changeset
1227 FUNCTION {begin.bib}
k228587
parents:
diff changeset
1228 { preamble$ empty$
k228587
parents:
diff changeset
1229 'skip$
k228587
parents:
diff changeset
1230 { preamble$ write$ newline$ }
k228587
parents:
diff changeset
1231 if$
k228587
parents:
diff changeset
1232 "\begin{thebibliography}{" longest.label * "}" * write$ newline$
k228587
parents:
diff changeset
1233 }
k228587
parents:
diff changeset
1234
k228587
parents:
diff changeset
1235 EXECUTE {begin.bib}
k228587
parents:
diff changeset
1236
k228587
parents:
diff changeset
1237 EXECUTE {init.state.consts}
k228587
parents:
diff changeset
1238
k228587
parents:
diff changeset
1239 ITERATE {call.type$}
k228587
parents:
diff changeset
1240
k228587
parents:
diff changeset
1241 FUNCTION {end.bib}
k228587
parents:
diff changeset
1242 { newline$
k228587
parents:
diff changeset
1243 "\end{thebibliography}" write$ newline$
k228587
parents:
diff changeset
1244 }
k228587
parents:
diff changeset
1245
k228587
parents:
diff changeset
1246 EXECUTE {end.bib}
k228587
parents:
diff changeset
1247
k228587
parents:
diff changeset
1248