nickjillings@1289
|
1 %%
|
nickjillings@1289
|
2 %% IEEEtran.bst
|
nickjillings@1289
|
3 %% BibTeX Bibliography Style file for IEEE Journals and Conferences (unsorted)
|
nickjillings@1289
|
4 %% Version 1.12 (2007/01/11)
|
nickjillings@1289
|
5 %%
|
nickjillings@1289
|
6 %% Copyright (c) 2003-2007 Michael Shell
|
nickjillings@1289
|
7 %%
|
nickjillings@1289
|
8 %% Original starting code base and algorithms obtained from the output of
|
nickjillings@1289
|
9 %% Patrick W. Daly's makebst package as well as from prior versions of
|
nickjillings@1289
|
10 %% IEEE BibTeX styles:
|
nickjillings@1289
|
11 %%
|
nickjillings@1289
|
12 %% 1. Howard Trickey and Oren Patashnik's ieeetr.bst (1985/1988)
|
nickjillings@1289
|
13 %% 2. Silvano Balemi and Richard H. Roy's IEEEbib.bst (1993)
|
nickjillings@1289
|
14 %%
|
nickjillings@1289
|
15 %% Support sites:
|
nickjillings@1289
|
16 %% http://www.michaelshell.org/tex/ieeetran/
|
nickjillings@1289
|
17 %% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
|
nickjillings@1289
|
18 %% and/or
|
nickjillings@1289
|
19 %% http://www.ieee.org/
|
nickjillings@1289
|
20 %%
|
nickjillings@1289
|
21 %% For use with BibTeX version 0.99a or later
|
nickjillings@1289
|
22 %%
|
nickjillings@1289
|
23 %% This is a numerical citation style.
|
nickjillings@1289
|
24 %%
|
nickjillings@1289
|
25 %%*************************************************************************
|
nickjillings@1289
|
26 %% Legal Notice:
|
nickjillings@1289
|
27 %% This code is offered as-is without any warranty either expressed or
|
nickjillings@1289
|
28 %% implied; without even the implied warranty of MERCHANTABILITY or
|
nickjillings@1289
|
29 %% FITNESS FOR A PARTICULAR PURPOSE!
|
nickjillings@1289
|
30 %% User assumes all risk.
|
nickjillings@1289
|
31 %% In no event shall IEEE or any contributor to this code be liable for
|
nickjillings@1289
|
32 %% any damages or losses, including, but not limited to, incidental,
|
nickjillings@1289
|
33 %% consequential, or any other damages, resulting from the use or misuse
|
nickjillings@1289
|
34 %% of any information contained here.
|
nickjillings@1289
|
35 %%
|
nickjillings@1289
|
36 %% All comments are the opinions of their respective authors and are not
|
nickjillings@1289
|
37 %% necessarily endorsed by the IEEE.
|
nickjillings@1289
|
38 %%
|
nickjillings@1289
|
39 %% This work is distributed under the LaTeX Project Public License (LPPL)
|
nickjillings@1289
|
40 %% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
|
nickjillings@1289
|
41 %% distributed and modified. A copy of the LPPL, version 1.3, is included
|
nickjillings@1289
|
42 %% in the base LaTeX documentation of all distributions of LaTeX released
|
nickjillings@1289
|
43 %% 2003/12/01 or later.
|
nickjillings@1289
|
44 %% Retain all contribution notices and credits.
|
nickjillings@1289
|
45 %% ** Modified files should be clearly indicated as such, including **
|
nickjillings@1289
|
46 %% ** renaming them and changing author support contact information. **
|
nickjillings@1289
|
47 %%
|
nickjillings@1289
|
48 %% File list of work: IEEEabrv.bib, IEEEfull.bib, IEEEexample.bib,
|
nickjillings@1289
|
49 %% IEEEtran.bst, IEEEtranS.bst, IEEEtranSA.bst,
|
nickjillings@1289
|
50 %% IEEEtranN.bst, IEEEtranSN.bst, IEEEtran_bst_HOWTO.pdf
|
nickjillings@1289
|
51 %%*************************************************************************
|
nickjillings@1289
|
52 %
|
nickjillings@1289
|
53 %
|
nickjillings@1289
|
54 % Changelog:
|
nickjillings@1289
|
55 %
|
nickjillings@1289
|
56 % 1.00 (2002/08/13) Initial release
|
nickjillings@1289
|
57 %
|
nickjillings@1289
|
58 % 1.10 (2002/09/27)
|
nickjillings@1289
|
59 % 1. Corrected minor bug for improperly formed warning message when a
|
nickjillings@1289
|
60 % book was not given a title. Thanks to Ming Kin Lai for reporting this.
|
nickjillings@1289
|
61 % 2. Added support for CTLname_format_string and CTLname_latex_cmd fields
|
nickjillings@1289
|
62 % in the BST control entry type.
|
nickjillings@1289
|
63 %
|
nickjillings@1289
|
64 % 1.11 (2003/04/02)
|
nickjillings@1289
|
65 % 1. Fixed bug with URLs containing underscores when using url.sty. Thanks
|
nickjillings@1289
|
66 % to Ming Kin Lai for reporting this.
|
nickjillings@1289
|
67 %
|
nickjillings@1289
|
68 % 1.12 (2007/01/11)
|
nickjillings@1289
|
69 % 1. Fixed bug with unwanted comma before "et al." when an entry contained
|
nickjillings@1289
|
70 % more than two author names. Thanks to Pallav Gupta for reporting this.
|
nickjillings@1289
|
71 % 2. Fixed bug with anomalous closing quote in tech reports that have a
|
nickjillings@1289
|
72 % type, but without a number or address. Thanks to Mehrdad Mirreza for
|
nickjillings@1289
|
73 % reporting this.
|
nickjillings@1289
|
74 % 3. Use braces in \providecommand in begin.bib to better support
|
nickjillings@1289
|
75 % latex2html. TeX style length assignments OK with recent versions
|
nickjillings@1289
|
76 % of latex2html - 1.71 (2002/2/1) or later is strongly recommended.
|
nickjillings@1289
|
77 % Use of the language field still causes trouble with latex2html.
|
nickjillings@1289
|
78 % Thanks to Federico Beffa for reporting this.
|
nickjillings@1289
|
79 % 4. Added IEEEtran.bst ID and version comment string to .bbl output.
|
nickjillings@1289
|
80 % 5. Provide a \BIBdecl hook that allows the user to execute commands
|
nickjillings@1289
|
81 % just prior to the first entry.
|
nickjillings@1289
|
82 % 6. Use default urlstyle (is using url.sty) of "same" rather than rm to
|
nickjillings@1289
|
83 % better work with a wider variety of bibliography styles.
|
nickjillings@1289
|
84 % 7. Changed month abbreviations from Sept., July and June to Sep., Jul.,
|
nickjillings@1289
|
85 % and Jun., respectively, as IEEE now does. Thanks to Moritz Borgmann
|
nickjillings@1289
|
86 % for reporting this.
|
nickjillings@1289
|
87 % 8. Control entry types should not be considered when calculating longest
|
nickjillings@1289
|
88 % label width.
|
nickjillings@1289
|
89 % 9. Added alias www for electronic/online.
|
nickjillings@1289
|
90 % 10. Added CTLname_url_prefix control entry type.
|
nickjillings@1289
|
91
|
nickjillings@1289
|
92
|
nickjillings@1289
|
93 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
94 %% DEFAULTS FOR THE CONTROLS OF THE BST STYLE %%
|
nickjillings@1289
|
95 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
96
|
nickjillings@1289
|
97 % These are the defaults for the user adjustable controls. The values used
|
nickjillings@1289
|
98 % here can be overridden by the user via IEEEtranBSTCTL entry type.
|
nickjillings@1289
|
99
|
nickjillings@1289
|
100 % NOTE: The recommended LaTeX command to invoke a control entry type is:
|
nickjillings@1289
|
101 %
|
nickjillings@1289
|
102 %\makeatletter
|
nickjillings@1289
|
103 %\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}}
|
nickjillings@1289
|
104 %\def\@bstctlcite[#1]#2{\@bsphack
|
nickjillings@1289
|
105 % \@for\@citeb:=#2\do{%
|
nickjillings@1289
|
106 % \edef\@citeb{\expandafter\@firstofone\@citeb}%
|
nickjillings@1289
|
107 % \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}%
|
nickjillings@1289
|
108 % \@esphack}
|
nickjillings@1289
|
109 %\makeatother
|
nickjillings@1289
|
110 %
|
nickjillings@1289
|
111 % It is called at the start of the document, before the first \cite, like:
|
nickjillings@1289
|
112 % \bstctlcite{IEEEexample:BSTcontrol}
|
nickjillings@1289
|
113 %
|
nickjillings@1289
|
114 % IEEEtran.cls V1.6 and later does provide this command.
|
nickjillings@1289
|
115
|
nickjillings@1289
|
116
|
nickjillings@1289
|
117
|
nickjillings@1289
|
118 % #0 turns off the display of the number for articles.
|
nickjillings@1289
|
119 % #1 enables
|
nickjillings@1289
|
120 FUNCTION {default.is.use.number.for.article} { #1 }
|
nickjillings@1289
|
121
|
nickjillings@1289
|
122
|
nickjillings@1289
|
123 % #0 turns off the display of the paper and type fields in @inproceedings.
|
nickjillings@1289
|
124 % #1 enables
|
nickjillings@1289
|
125 FUNCTION {default.is.use.paper} { #1 }
|
nickjillings@1289
|
126
|
nickjillings@1289
|
127
|
nickjillings@1289
|
128 % #0 turns off the forced use of "et al."
|
nickjillings@1289
|
129 % #1 enables
|
nickjillings@1289
|
130 FUNCTION {default.is.forced.et.al} { #0 }
|
nickjillings@1289
|
131
|
nickjillings@1289
|
132 % The maximum number of names that can be present beyond which an "et al."
|
nickjillings@1289
|
133 % usage is forced. Be sure that num.names.shown.with.forced.et.al (below)
|
nickjillings@1289
|
134 % is not greater than this value!
|
nickjillings@1289
|
135 % Note: There are many instances of references in IEEE journals which have
|
nickjillings@1289
|
136 % a very large number of authors as well as instances in which "et al." is
|
nickjillings@1289
|
137 % used profusely.
|
nickjillings@1289
|
138 FUNCTION {default.max.num.names.before.forced.et.al} { #10 }
|
nickjillings@1289
|
139
|
nickjillings@1289
|
140 % The number of names that will be shown with a forced "et al.".
|
nickjillings@1289
|
141 % Must be less than or equal to max.num.names.before.forced.et.al
|
nickjillings@1289
|
142 FUNCTION {default.num.names.shown.with.forced.et.al} { #1 }
|
nickjillings@1289
|
143
|
nickjillings@1289
|
144
|
nickjillings@1289
|
145 % #0 turns off the alternate interword spacing for entries with URLs.
|
nickjillings@1289
|
146 % #1 enables
|
nickjillings@1289
|
147 FUNCTION {default.is.use.alt.interword.spacing} { #1 }
|
nickjillings@1289
|
148
|
nickjillings@1289
|
149 % If alternate interword spacing for entries with URLs is enabled, this is
|
nickjillings@1289
|
150 % the interword spacing stretch factor that will be used. For example, the
|
nickjillings@1289
|
151 % default "4" here means that the interword spacing in entries with URLs can
|
nickjillings@1289
|
152 % stretch to four times normal. Does not have to be an integer. Note that
|
nickjillings@1289
|
153 % the value specified here can be overridden by the user in their LaTeX
|
nickjillings@1289
|
154 % code via a command such as:
|
nickjillings@1289
|
155 % "\providecommand\BIBentryALTinterwordstretchfactor{1.5}" in addition to
|
nickjillings@1289
|
156 % that via the IEEEtranBSTCTL entry type.
|
nickjillings@1289
|
157 FUNCTION {default.ALTinterwordstretchfactor} { "4" }
|
nickjillings@1289
|
158
|
nickjillings@1289
|
159
|
nickjillings@1289
|
160 % #0 turns off the "dashification" of repeated (i.e., identical to those
|
nickjillings@1289
|
161 % of the previous entry) names. IEEE normally does this.
|
nickjillings@1289
|
162 % #1 enables
|
nickjillings@1289
|
163 FUNCTION {default.is.dash.repeated.names} { #1 }
|
nickjillings@1289
|
164
|
nickjillings@1289
|
165
|
nickjillings@1289
|
166 % The default name format control string.
|
nickjillings@1289
|
167 FUNCTION {default.name.format.string}{ "{f.~}{vv~}{ll}{, jj}" }
|
nickjillings@1289
|
168
|
nickjillings@1289
|
169
|
nickjillings@1289
|
170 % The default LaTeX font command for the names.
|
nickjillings@1289
|
171 FUNCTION {default.name.latex.cmd}{ "" }
|
nickjillings@1289
|
172
|
nickjillings@1289
|
173
|
nickjillings@1289
|
174 % The default URL prefix.
|
nickjillings@1289
|
175 FUNCTION {default.name.url.prefix}{ "[Online]. Available:" }
|
nickjillings@1289
|
176
|
nickjillings@1289
|
177
|
nickjillings@1289
|
178 % Other controls that cannot be accessed via IEEEtranBSTCTL entry type.
|
nickjillings@1289
|
179
|
nickjillings@1289
|
180 % #0 turns off the terminal startup banner/completed message so as to
|
nickjillings@1289
|
181 % operate more quietly.
|
nickjillings@1289
|
182 % #1 enables
|
nickjillings@1289
|
183 FUNCTION {is.print.banners.to.terminal} { #1 }
|
nickjillings@1289
|
184
|
nickjillings@1289
|
185
|
nickjillings@1289
|
186
|
nickjillings@1289
|
187
|
nickjillings@1289
|
188 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
189 %% FILE VERSION AND BANNER %%
|
nickjillings@1289
|
190 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
191
|
nickjillings@1289
|
192 FUNCTION{bst.file.version} { "1.12" }
|
nickjillings@1289
|
193 FUNCTION{bst.file.date} { "2007/01/11" }
|
nickjillings@1289
|
194 FUNCTION{bst.file.website} { "http://www.michaelshell.org/tex/ieeetran/bibtex/" }
|
nickjillings@1289
|
195
|
nickjillings@1289
|
196 FUNCTION {banner.message}
|
nickjillings@1289
|
197 { is.print.banners.to.terminal
|
nickjillings@1289
|
198 { "-- IEEEtran.bst version" " " * bst.file.version *
|
nickjillings@1289
|
199 " (" * bst.file.date * ") " * "by Michael Shell." *
|
nickjillings@1289
|
200 top$
|
nickjillings@1289
|
201 "-- " bst.file.website *
|
nickjillings@1289
|
202 top$
|
nickjillings@1289
|
203 "-- See the " quote$ * "IEEEtran_bst_HOWTO.pdf" * quote$ * " manual for usage information." *
|
nickjillings@1289
|
204 top$
|
nickjillings@1289
|
205 }
|
nickjillings@1289
|
206 { skip$ }
|
nickjillings@1289
|
207 if$
|
nickjillings@1289
|
208 }
|
nickjillings@1289
|
209
|
nickjillings@1289
|
210 FUNCTION {completed.message}
|
nickjillings@1289
|
211 { is.print.banners.to.terminal
|
nickjillings@1289
|
212 { ""
|
nickjillings@1289
|
213 top$
|
nickjillings@1289
|
214 "Done."
|
nickjillings@1289
|
215 top$
|
nickjillings@1289
|
216 }
|
nickjillings@1289
|
217 { skip$ }
|
nickjillings@1289
|
218 if$
|
nickjillings@1289
|
219 }
|
nickjillings@1289
|
220
|
nickjillings@1289
|
221
|
nickjillings@1289
|
222
|
nickjillings@1289
|
223
|
nickjillings@1289
|
224 %%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
225 %% STRING CONSTANTS %%
|
nickjillings@1289
|
226 %%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
227
|
nickjillings@1289
|
228 FUNCTION {bbl.and}{ "and" }
|
nickjillings@1289
|
229 FUNCTION {bbl.etal}{ "et~al." }
|
nickjillings@1289
|
230 FUNCTION {bbl.editors}{ "eds." }
|
nickjillings@1289
|
231 FUNCTION {bbl.editor}{ "ed." }
|
nickjillings@1289
|
232 FUNCTION {bbl.edition}{ "ed." }
|
nickjillings@1289
|
233 FUNCTION {bbl.volume}{ "vol." }
|
nickjillings@1289
|
234 FUNCTION {bbl.of}{ "of" }
|
nickjillings@1289
|
235 FUNCTION {bbl.number}{ "no." }
|
nickjillings@1289
|
236 FUNCTION {bbl.in}{ "in" }
|
nickjillings@1289
|
237 FUNCTION {bbl.pages}{ "pp." }
|
nickjillings@1289
|
238 FUNCTION {bbl.page}{ "p." }
|
nickjillings@1289
|
239 FUNCTION {bbl.chapter}{ "ch." }
|
nickjillings@1289
|
240 FUNCTION {bbl.paper}{ "paper" }
|
nickjillings@1289
|
241 FUNCTION {bbl.part}{ "pt." }
|
nickjillings@1289
|
242 FUNCTION {bbl.patent}{ "Patent" }
|
nickjillings@1289
|
243 FUNCTION {bbl.patentUS}{ "U.S." }
|
nickjillings@1289
|
244 FUNCTION {bbl.revision}{ "Rev." }
|
nickjillings@1289
|
245 FUNCTION {bbl.series}{ "ser." }
|
nickjillings@1289
|
246 FUNCTION {bbl.standard}{ "Std." }
|
nickjillings@1289
|
247 FUNCTION {bbl.techrep}{ "Tech. Rep." }
|
nickjillings@1289
|
248 FUNCTION {bbl.mthesis}{ "Master's thesis" }
|
nickjillings@1289
|
249 FUNCTION {bbl.phdthesis}{ "Ph.D. dissertation" }
|
nickjillings@1289
|
250 FUNCTION {bbl.st}{ "st" }
|
nickjillings@1289
|
251 FUNCTION {bbl.nd}{ "nd" }
|
nickjillings@1289
|
252 FUNCTION {bbl.rd}{ "rd" }
|
nickjillings@1289
|
253 FUNCTION {bbl.th}{ "th" }
|
nickjillings@1289
|
254
|
nickjillings@1289
|
255
|
nickjillings@1289
|
256 % This is the LaTeX spacer that is used when a larger than normal space
|
nickjillings@1289
|
257 % is called for (such as just before the address:publisher).
|
nickjillings@1289
|
258 FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " }
|
nickjillings@1289
|
259
|
nickjillings@1289
|
260 % The LaTeX code for dashes that are used to represent repeated names.
|
nickjillings@1289
|
261 % Note: Some older IEEE journals used something like
|
nickjillings@1289
|
262 % "\rule{0.275in}{0.5pt}\," which is fairly thick and runs right along
|
nickjillings@1289
|
263 % the baseline. However, IEEE now uses a thinner, above baseline,
|
nickjillings@1289
|
264 % six dash long sequence.
|
nickjillings@1289
|
265 FUNCTION {repeated.name.dashes} { "------" }
|
nickjillings@1289
|
266
|
nickjillings@1289
|
267
|
nickjillings@1289
|
268
|
nickjillings@1289
|
269 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
270 %% PREDEFINED STRING MACROS %%
|
nickjillings@1289
|
271 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
272
|
nickjillings@1289
|
273 MACRO {jan} {"Jan."}
|
nickjillings@1289
|
274 MACRO {feb} {"Feb."}
|
nickjillings@1289
|
275 MACRO {mar} {"Mar."}
|
nickjillings@1289
|
276 MACRO {apr} {"Apr."}
|
nickjillings@1289
|
277 MACRO {may} {"May"}
|
nickjillings@1289
|
278 MACRO {jun} {"Jun."}
|
nickjillings@1289
|
279 MACRO {jul} {"Jul."}
|
nickjillings@1289
|
280 MACRO {aug} {"Aug."}
|
nickjillings@1289
|
281 MACRO {sep} {"Sep."}
|
nickjillings@1289
|
282 MACRO {oct} {"Oct."}
|
nickjillings@1289
|
283 MACRO {nov} {"Nov."}
|
nickjillings@1289
|
284 MACRO {dec} {"Dec."}
|
nickjillings@1289
|
285
|
nickjillings@1289
|
286
|
nickjillings@1289
|
287
|
nickjillings@1289
|
288 %%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
289 %% ENTRY FIELDS %%
|
nickjillings@1289
|
290 %%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
291
|
nickjillings@1289
|
292 ENTRY
|
nickjillings@1289
|
293 { address
|
nickjillings@1289
|
294 assignee
|
nickjillings@1289
|
295 author
|
nickjillings@1289
|
296 booktitle
|
nickjillings@1289
|
297 chapter
|
nickjillings@1289
|
298 day
|
nickjillings@1289
|
299 dayfiled
|
nickjillings@1289
|
300 edition
|
nickjillings@1289
|
301 editor
|
nickjillings@1289
|
302 howpublished
|
nickjillings@1289
|
303 institution
|
nickjillings@1289
|
304 intype
|
nickjillings@1289
|
305 journal
|
nickjillings@1289
|
306 key
|
nickjillings@1289
|
307 language
|
nickjillings@1289
|
308 month
|
nickjillings@1289
|
309 monthfiled
|
nickjillings@1289
|
310 nationality
|
nickjillings@1289
|
311 note
|
nickjillings@1289
|
312 number
|
nickjillings@1289
|
313 organization
|
nickjillings@1289
|
314 pages
|
nickjillings@1289
|
315 paper
|
nickjillings@1289
|
316 publisher
|
nickjillings@1289
|
317 school
|
nickjillings@1289
|
318 series
|
nickjillings@1289
|
319 revision
|
nickjillings@1289
|
320 title
|
nickjillings@1289
|
321 type
|
nickjillings@1289
|
322 url
|
nickjillings@1289
|
323 volume
|
nickjillings@1289
|
324 year
|
nickjillings@1289
|
325 yearfiled
|
nickjillings@1289
|
326 CTLuse_article_number
|
nickjillings@1289
|
327 CTLuse_paper
|
nickjillings@1289
|
328 CTLuse_forced_etal
|
nickjillings@1289
|
329 CTLmax_names_forced_etal
|
nickjillings@1289
|
330 CTLnames_show_etal
|
nickjillings@1289
|
331 CTLuse_alt_spacing
|
nickjillings@1289
|
332 CTLalt_stretch_factor
|
nickjillings@1289
|
333 CTLdash_repeated_names
|
nickjillings@1289
|
334 CTLname_format_string
|
nickjillings@1289
|
335 CTLname_latex_cmd
|
nickjillings@1289
|
336 CTLname_url_prefix
|
nickjillings@1289
|
337 }
|
nickjillings@1289
|
338 {}
|
nickjillings@1289
|
339 { label }
|
nickjillings@1289
|
340
|
nickjillings@1289
|
341
|
nickjillings@1289
|
342
|
nickjillings@1289
|
343
|
nickjillings@1289
|
344 %%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
345 %% INTEGER VARIABLES %%
|
nickjillings@1289
|
346 %%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
347
|
nickjillings@1289
|
348 INTEGERS { prev.status.punct this.status.punct punct.std
|
nickjillings@1289
|
349 punct.no punct.comma punct.period
|
nickjillings@1289
|
350 prev.status.space this.status.space space.std
|
nickjillings@1289
|
351 space.no space.normal space.large
|
nickjillings@1289
|
352 prev.status.quote this.status.quote quote.std
|
nickjillings@1289
|
353 quote.no quote.close
|
nickjillings@1289
|
354 prev.status.nline this.status.nline nline.std
|
nickjillings@1289
|
355 nline.no nline.newblock
|
nickjillings@1289
|
356 status.cap cap.std
|
nickjillings@1289
|
357 cap.no cap.yes}
|
nickjillings@1289
|
358
|
nickjillings@1289
|
359 INTEGERS { longest.label.width multiresult nameptr namesleft number.label numnames }
|
nickjillings@1289
|
360
|
nickjillings@1289
|
361 INTEGERS { is.use.number.for.article
|
nickjillings@1289
|
362 is.use.paper
|
nickjillings@1289
|
363 is.forced.et.al
|
nickjillings@1289
|
364 max.num.names.before.forced.et.al
|
nickjillings@1289
|
365 num.names.shown.with.forced.et.al
|
nickjillings@1289
|
366 is.use.alt.interword.spacing
|
nickjillings@1289
|
367 is.dash.repeated.names}
|
nickjillings@1289
|
368
|
nickjillings@1289
|
369
|
nickjillings@1289
|
370 %%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
371 %% STRING VARIABLES %%
|
nickjillings@1289
|
372 %%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
373
|
nickjillings@1289
|
374 STRINGS { bibinfo
|
nickjillings@1289
|
375 longest.label
|
nickjillings@1289
|
376 oldname
|
nickjillings@1289
|
377 s
|
nickjillings@1289
|
378 t
|
nickjillings@1289
|
379 ALTinterwordstretchfactor
|
nickjillings@1289
|
380 name.format.string
|
nickjillings@1289
|
381 name.latex.cmd
|
nickjillings@1289
|
382 name.url.prefix}
|
nickjillings@1289
|
383
|
nickjillings@1289
|
384
|
nickjillings@1289
|
385
|
nickjillings@1289
|
386
|
nickjillings@1289
|
387 %%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
388 %% LOW LEVEL FUNCTIONS %%
|
nickjillings@1289
|
389 %%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
390
|
nickjillings@1289
|
391 FUNCTION {initialize.controls}
|
nickjillings@1289
|
392 { default.is.use.number.for.article 'is.use.number.for.article :=
|
nickjillings@1289
|
393 default.is.use.paper 'is.use.paper :=
|
nickjillings@1289
|
394 default.is.forced.et.al 'is.forced.et.al :=
|
nickjillings@1289
|
395 default.max.num.names.before.forced.et.al 'max.num.names.before.forced.et.al :=
|
nickjillings@1289
|
396 default.num.names.shown.with.forced.et.al 'num.names.shown.with.forced.et.al :=
|
nickjillings@1289
|
397 default.is.use.alt.interword.spacing 'is.use.alt.interword.spacing :=
|
nickjillings@1289
|
398 default.is.dash.repeated.names 'is.dash.repeated.names :=
|
nickjillings@1289
|
399 default.ALTinterwordstretchfactor 'ALTinterwordstretchfactor :=
|
nickjillings@1289
|
400 default.name.format.string 'name.format.string :=
|
nickjillings@1289
|
401 default.name.latex.cmd 'name.latex.cmd :=
|
nickjillings@1289
|
402 default.name.url.prefix 'name.url.prefix :=
|
nickjillings@1289
|
403 }
|
nickjillings@1289
|
404
|
nickjillings@1289
|
405
|
nickjillings@1289
|
406 % This IEEEtran.bst features a very powerful and flexible mechanism for
|
nickjillings@1289
|
407 % controlling the capitalization, punctuation, spacing, quotation, and
|
nickjillings@1289
|
408 % newlines of the formatted entry fields. (Note: IEEEtran.bst does not need
|
nickjillings@1289
|
409 % or use the newline/newblock feature, but it has been implemented for
|
nickjillings@1289
|
410 % possible future use.) The output states of IEEEtran.bst consist of
|
nickjillings@1289
|
411 % multiple independent attributes and, as such, can be thought of as being
|
nickjillings@1289
|
412 % vectors, rather than the simple scalar values ("before.all",
|
nickjillings@1289
|
413 % "mid.sentence", etc.) used in most other .bst files.
|
nickjillings@1289
|
414 %
|
nickjillings@1289
|
415 % The more flexible and complex design used here was motivated in part by
|
nickjillings@1289
|
416 % IEEE's rather unusual bibliography style. For example, IEEE ends the
|
nickjillings@1289
|
417 % previous field item with a period and large space prior to the publisher
|
nickjillings@1289
|
418 % address; the @electronic entry types use periods as inter-item punctuation
|
nickjillings@1289
|
419 % rather than the commas used by the other entry types; and URLs are never
|
nickjillings@1289
|
420 % followed by periods even though they are the last item in the entry.
|
nickjillings@1289
|
421 % Although it is possible to accommodate these features with the conventional
|
nickjillings@1289
|
422 % output state system, the seemingly endless exceptions make for convoluted,
|
nickjillings@1289
|
423 % unreliable and difficult to maintain code.
|
nickjillings@1289
|
424 %
|
nickjillings@1289
|
425 % IEEEtran.bst's output state system can be easily understood via a simple
|
nickjillings@1289
|
426 % illustration of two most recently formatted entry fields (on the stack):
|
nickjillings@1289
|
427 %
|
nickjillings@1289
|
428 % CURRENT_ITEM
|
nickjillings@1289
|
429 % "PREVIOUS_ITEM
|
nickjillings@1289
|
430 %
|
nickjillings@1289
|
431 % which, in this example, is to eventually appear in the bibliography as:
|
nickjillings@1289
|
432 %
|
nickjillings@1289
|
433 % "PREVIOUS_ITEM," CURRENT_ITEM
|
nickjillings@1289
|
434 %
|
nickjillings@1289
|
435 % It is the job of the output routine to take the previous item off of the
|
nickjillings@1289
|
436 % stack (while leaving the current item at the top of the stack), apply its
|
nickjillings@1289
|
437 % trailing punctuation (including closing quote marks) and spacing, and then
|
nickjillings@1289
|
438 % to write the result to BibTeX's output buffer:
|
nickjillings@1289
|
439 %
|
nickjillings@1289
|
440 % "PREVIOUS_ITEM,"
|
nickjillings@1289
|
441 %
|
nickjillings@1289
|
442 % Punctuation (and spacing) between items is often determined by both of the
|
nickjillings@1289
|
443 % items rather than just the first one. The presence of quotation marks
|
nickjillings@1289
|
444 % further complicates the situation because, in standard English, trailing
|
nickjillings@1289
|
445 % punctuation marks are supposed to be contained within the quotes.
|
nickjillings@1289
|
446 %
|
nickjillings@1289
|
447 % IEEEtran.bst maintains two output state (aka "status") vectors which
|
nickjillings@1289
|
448 % correspond to the previous and current (aka "this") items. Each vector
|
nickjillings@1289
|
449 % consists of several independent attributes which track punctuation,
|
nickjillings@1289
|
450 % spacing, quotation, and newlines. Capitalization status is handled by a
|
nickjillings@1289
|
451 % separate scalar because the format routines, not the output routine,
|
nickjillings@1289
|
452 % handle capitalization and, therefore, there is no need to maintain the
|
nickjillings@1289
|
453 % capitalization attribute for both the "previous" and "this" items.
|
nickjillings@1289
|
454 %
|
nickjillings@1289
|
455 % When a format routine adds a new item, it copies the current output status
|
nickjillings@1289
|
456 % vector to the previous output status vector and (usually) resets the
|
nickjillings@1289
|
457 % current (this) output status vector to a "standard status" vector. Using a
|
nickjillings@1289
|
458 % "standard status" vector in this way allows us to redefine what we mean by
|
nickjillings@1289
|
459 % "standard status" at the start of each entry handler and reuse the same
|
nickjillings@1289
|
460 % format routines under the various inter-item separation schemes. For
|
nickjillings@1289
|
461 % example, the standard status vector for the @book entry type may use
|
nickjillings@1289
|
462 % commas for item separators, while the @electronic type may use periods,
|
nickjillings@1289
|
463 % yet both entry handlers exploit many of the exact same format routines.
|
nickjillings@1289
|
464 %
|
nickjillings@1289
|
465 % Because format routines have write access to the output status vector of
|
nickjillings@1289
|
466 % the previous item, they can override the punctuation choices of the
|
nickjillings@1289
|
467 % previous format routine! Therefore, it becomes trivial to implement rules
|
nickjillings@1289
|
468 % such as "Always use a period and a large space before the publisher." By
|
nickjillings@1289
|
469 % pushing the generation of the closing quote mark to the output routine, we
|
nickjillings@1289
|
470 % avoid all the problems caused by having to close a quote before having all
|
nickjillings@1289
|
471 % the information required to determine what the punctuation should be.
|
nickjillings@1289
|
472 %
|
nickjillings@1289
|
473 % The IEEEtran.bst output state system can easily be expanded if needed.
|
nickjillings@1289
|
474 % For instance, it is easy to add a "space.tie" attribute value if the
|
nickjillings@1289
|
475 % bibliography rules mandate that two items have to be joined with an
|
nickjillings@1289
|
476 % unbreakable space.
|
nickjillings@1289
|
477
|
nickjillings@1289
|
478 FUNCTION {initialize.status.constants}
|
nickjillings@1289
|
479 { #0 'punct.no :=
|
nickjillings@1289
|
480 #1 'punct.comma :=
|
nickjillings@1289
|
481 #2 'punct.period :=
|
nickjillings@1289
|
482 #0 'space.no :=
|
nickjillings@1289
|
483 #1 'space.normal :=
|
nickjillings@1289
|
484 #2 'space.large :=
|
nickjillings@1289
|
485 #0 'quote.no :=
|
nickjillings@1289
|
486 #1 'quote.close :=
|
nickjillings@1289
|
487 #0 'cap.no :=
|
nickjillings@1289
|
488 #1 'cap.yes :=
|
nickjillings@1289
|
489 #0 'nline.no :=
|
nickjillings@1289
|
490 #1 'nline.newblock :=
|
nickjillings@1289
|
491 }
|
nickjillings@1289
|
492
|
nickjillings@1289
|
493 FUNCTION {std.status.using.comma}
|
nickjillings@1289
|
494 { punct.comma 'punct.std :=
|
nickjillings@1289
|
495 space.normal 'space.std :=
|
nickjillings@1289
|
496 quote.no 'quote.std :=
|
nickjillings@1289
|
497 nline.no 'nline.std :=
|
nickjillings@1289
|
498 cap.no 'cap.std :=
|
nickjillings@1289
|
499 }
|
nickjillings@1289
|
500
|
nickjillings@1289
|
501 FUNCTION {std.status.using.period}
|
nickjillings@1289
|
502 { punct.period 'punct.std :=
|
nickjillings@1289
|
503 space.normal 'space.std :=
|
nickjillings@1289
|
504 quote.no 'quote.std :=
|
nickjillings@1289
|
505 nline.no 'nline.std :=
|
nickjillings@1289
|
506 cap.yes 'cap.std :=
|
nickjillings@1289
|
507 }
|
nickjillings@1289
|
508
|
nickjillings@1289
|
509 FUNCTION {initialize.prev.this.status}
|
nickjillings@1289
|
510 { punct.no 'prev.status.punct :=
|
nickjillings@1289
|
511 space.no 'prev.status.space :=
|
nickjillings@1289
|
512 quote.no 'prev.status.quote :=
|
nickjillings@1289
|
513 nline.no 'prev.status.nline :=
|
nickjillings@1289
|
514 punct.no 'this.status.punct :=
|
nickjillings@1289
|
515 space.no 'this.status.space :=
|
nickjillings@1289
|
516 quote.no 'this.status.quote :=
|
nickjillings@1289
|
517 nline.no 'this.status.nline :=
|
nickjillings@1289
|
518 cap.yes 'status.cap :=
|
nickjillings@1289
|
519 }
|
nickjillings@1289
|
520
|
nickjillings@1289
|
521 FUNCTION {this.status.std}
|
nickjillings@1289
|
522 { punct.std 'this.status.punct :=
|
nickjillings@1289
|
523 space.std 'this.status.space :=
|
nickjillings@1289
|
524 quote.std 'this.status.quote :=
|
nickjillings@1289
|
525 nline.std 'this.status.nline :=
|
nickjillings@1289
|
526 }
|
nickjillings@1289
|
527
|
nickjillings@1289
|
528 FUNCTION {cap.status.std}{ cap.std 'status.cap := }
|
nickjillings@1289
|
529
|
nickjillings@1289
|
530 FUNCTION {this.to.prev.status}
|
nickjillings@1289
|
531 { this.status.punct 'prev.status.punct :=
|
nickjillings@1289
|
532 this.status.space 'prev.status.space :=
|
nickjillings@1289
|
533 this.status.quote 'prev.status.quote :=
|
nickjillings@1289
|
534 this.status.nline 'prev.status.nline :=
|
nickjillings@1289
|
535 }
|
nickjillings@1289
|
536
|
nickjillings@1289
|
537
|
nickjillings@1289
|
538 FUNCTION {not}
|
nickjillings@1289
|
539 { { #0 }
|
nickjillings@1289
|
540 { #1 }
|
nickjillings@1289
|
541 if$
|
nickjillings@1289
|
542 }
|
nickjillings@1289
|
543
|
nickjillings@1289
|
544 FUNCTION {and}
|
nickjillings@1289
|
545 { { skip$ }
|
nickjillings@1289
|
546 { pop$ #0 }
|
nickjillings@1289
|
547 if$
|
nickjillings@1289
|
548 }
|
nickjillings@1289
|
549
|
nickjillings@1289
|
550 FUNCTION {or}
|
nickjillings@1289
|
551 { { pop$ #1 }
|
nickjillings@1289
|
552 { skip$ }
|
nickjillings@1289
|
553 if$
|
nickjillings@1289
|
554 }
|
nickjillings@1289
|
555
|
nickjillings@1289
|
556
|
nickjillings@1289
|
557 % convert the strings "yes" or "no" to #1 or #0 respectively
|
nickjillings@1289
|
558 FUNCTION {yes.no.to.int}
|
nickjillings@1289
|
559 { "l" change.case$ duplicate$
|
nickjillings@1289
|
560 "yes" =
|
nickjillings@1289
|
561 { pop$ #1 }
|
nickjillings@1289
|
562 { duplicate$ "no" =
|
nickjillings@1289
|
563 { pop$ #0 }
|
nickjillings@1289
|
564 { "unknown boolean " quote$ * swap$ * quote$ *
|
nickjillings@1289
|
565 " in " * cite$ * warning$
|
nickjillings@1289
|
566 #0
|
nickjillings@1289
|
567 }
|
nickjillings@1289
|
568 if$
|
nickjillings@1289
|
569 }
|
nickjillings@1289
|
570 if$
|
nickjillings@1289
|
571 }
|
nickjillings@1289
|
572
|
nickjillings@1289
|
573
|
nickjillings@1289
|
574 % pushes true if the single char string on the stack is in the
|
nickjillings@1289
|
575 % range of "0" to "9"
|
nickjillings@1289
|
576 FUNCTION {is.num}
|
nickjillings@1289
|
577 { chr.to.int$
|
nickjillings@1289
|
578 duplicate$ "0" chr.to.int$ < not
|
nickjillings@1289
|
579 swap$ "9" chr.to.int$ > not and
|
nickjillings@1289
|
580 }
|
nickjillings@1289
|
581
|
nickjillings@1289
|
582 % multiplies the integer on the stack by a factor of 10
|
nickjillings@1289
|
583 FUNCTION {bump.int.mag}
|
nickjillings@1289
|
584 { #0 'multiresult :=
|
nickjillings@1289
|
585 { duplicate$ #0 > }
|
nickjillings@1289
|
586 { #1 -
|
nickjillings@1289
|
587 multiresult #10 +
|
nickjillings@1289
|
588 'multiresult :=
|
nickjillings@1289
|
589 }
|
nickjillings@1289
|
590 while$
|
nickjillings@1289
|
591 pop$
|
nickjillings@1289
|
592 multiresult
|
nickjillings@1289
|
593 }
|
nickjillings@1289
|
594
|
nickjillings@1289
|
595 % converts a single character string on the stack to an integer
|
nickjillings@1289
|
596 FUNCTION {char.to.integer}
|
nickjillings@1289
|
597 { duplicate$
|
nickjillings@1289
|
598 is.num
|
nickjillings@1289
|
599 { chr.to.int$ "0" chr.to.int$ - }
|
nickjillings@1289
|
600 {"noninteger character " quote$ * swap$ * quote$ *
|
nickjillings@1289
|
601 " in integer field of " * cite$ * warning$
|
nickjillings@1289
|
602 #0
|
nickjillings@1289
|
603 }
|
nickjillings@1289
|
604 if$
|
nickjillings@1289
|
605 }
|
nickjillings@1289
|
606
|
nickjillings@1289
|
607 % converts a string on the stack to an integer
|
nickjillings@1289
|
608 FUNCTION {string.to.integer}
|
nickjillings@1289
|
609 { duplicate$ text.length$ 'namesleft :=
|
nickjillings@1289
|
610 #1 'nameptr :=
|
nickjillings@1289
|
611 #0 'numnames :=
|
nickjillings@1289
|
612 { nameptr namesleft > not }
|
nickjillings@1289
|
613 { duplicate$ nameptr #1 substring$
|
nickjillings@1289
|
614 char.to.integer numnames bump.int.mag +
|
nickjillings@1289
|
615 'numnames :=
|
nickjillings@1289
|
616 nameptr #1 +
|
nickjillings@1289
|
617 'nameptr :=
|
nickjillings@1289
|
618 }
|
nickjillings@1289
|
619 while$
|
nickjillings@1289
|
620 pop$
|
nickjillings@1289
|
621 numnames
|
nickjillings@1289
|
622 }
|
nickjillings@1289
|
623
|
nickjillings@1289
|
624
|
nickjillings@1289
|
625
|
nickjillings@1289
|
626
|
nickjillings@1289
|
627 % The output routines write out the *next* to the top (previous) item on the
|
nickjillings@1289
|
628 % stack, adding punctuation and such as needed. Since IEEEtran.bst maintains
|
nickjillings@1289
|
629 % the output status for the top two items on the stack, these output
|
nickjillings@1289
|
630 % routines have to consider the previous output status (which corresponds to
|
nickjillings@1289
|
631 % the item that is being output). Full independent control of punctuation,
|
nickjillings@1289
|
632 % closing quote marks, spacing, and newblock is provided.
|
nickjillings@1289
|
633 %
|
nickjillings@1289
|
634 % "output.nonnull" does not check for the presence of a previous empty
|
nickjillings@1289
|
635 % item.
|
nickjillings@1289
|
636 %
|
nickjillings@1289
|
637 % "output" does check for the presence of a previous empty item and will
|
nickjillings@1289
|
638 % remove an empty item rather than outputing it.
|
nickjillings@1289
|
639 %
|
nickjillings@1289
|
640 % "output.warn" is like "output", but will issue a warning if it detects
|
nickjillings@1289
|
641 % an empty item.
|
nickjillings@1289
|
642
|
nickjillings@1289
|
643 FUNCTION {output.nonnull}
|
nickjillings@1289
|
644 { swap$
|
nickjillings@1289
|
645 prev.status.punct punct.comma =
|
nickjillings@1289
|
646 { "," * }
|
nickjillings@1289
|
647 { skip$ }
|
nickjillings@1289
|
648 if$
|
nickjillings@1289
|
649 prev.status.punct punct.period =
|
nickjillings@1289
|
650 { add.period$ }
|
nickjillings@1289
|
651 { skip$ }
|
nickjillings@1289
|
652 if$
|
nickjillings@1289
|
653 prev.status.quote quote.close =
|
nickjillings@1289
|
654 { "''" * }
|
nickjillings@1289
|
655 { skip$ }
|
nickjillings@1289
|
656 if$
|
nickjillings@1289
|
657 prev.status.space space.normal =
|
nickjillings@1289
|
658 { " " * }
|
nickjillings@1289
|
659 { skip$ }
|
nickjillings@1289
|
660 if$
|
nickjillings@1289
|
661 prev.status.space space.large =
|
nickjillings@1289
|
662 { large.space * }
|
nickjillings@1289
|
663 { skip$ }
|
nickjillings@1289
|
664 if$
|
nickjillings@1289
|
665 write$
|
nickjillings@1289
|
666 prev.status.nline nline.newblock =
|
nickjillings@1289
|
667 { newline$ "\newblock " write$ }
|
nickjillings@1289
|
668 { skip$ }
|
nickjillings@1289
|
669 if$
|
nickjillings@1289
|
670 }
|
nickjillings@1289
|
671
|
nickjillings@1289
|
672 FUNCTION {output}
|
nickjillings@1289
|
673 { duplicate$ empty$
|
nickjillings@1289
|
674 'pop$
|
nickjillings@1289
|
675 'output.nonnull
|
nickjillings@1289
|
676 if$
|
nickjillings@1289
|
677 }
|
nickjillings@1289
|
678
|
nickjillings@1289
|
679 FUNCTION {output.warn}
|
nickjillings@1289
|
680 { 't :=
|
nickjillings@1289
|
681 duplicate$ empty$
|
nickjillings@1289
|
682 { pop$ "empty " t * " in " * cite$ * warning$ }
|
nickjillings@1289
|
683 'output.nonnull
|
nickjillings@1289
|
684 if$
|
nickjillings@1289
|
685 }
|
nickjillings@1289
|
686
|
nickjillings@1289
|
687 % "fin.entry" is the output routine that handles the last item of the entry
|
nickjillings@1289
|
688 % (which will be on the top of the stack when "fin.entry" is called).
|
nickjillings@1289
|
689
|
nickjillings@1289
|
690 FUNCTION {fin.entry}
|
nickjillings@1289
|
691 { this.status.punct punct.no =
|
nickjillings@1289
|
692 { skip$ }
|
nickjillings@1289
|
693 { add.period$ }
|
nickjillings@1289
|
694 if$
|
nickjillings@1289
|
695 this.status.quote quote.close =
|
nickjillings@1289
|
696 { "''" * }
|
nickjillings@1289
|
697 { skip$ }
|
nickjillings@1289
|
698 if$
|
nickjillings@1289
|
699 write$
|
nickjillings@1289
|
700 newline$
|
nickjillings@1289
|
701 }
|
nickjillings@1289
|
702
|
nickjillings@1289
|
703
|
nickjillings@1289
|
704 FUNCTION {is.last.char.not.punct}
|
nickjillings@1289
|
705 { duplicate$
|
nickjillings@1289
|
706 "}" * add.period$
|
nickjillings@1289
|
707 #-1 #1 substring$ "." =
|
nickjillings@1289
|
708 }
|
nickjillings@1289
|
709
|
nickjillings@1289
|
710 FUNCTION {is.multiple.pages}
|
nickjillings@1289
|
711 { 't :=
|
nickjillings@1289
|
712 #0 'multiresult :=
|
nickjillings@1289
|
713 { multiresult not
|
nickjillings@1289
|
714 t empty$ not
|
nickjillings@1289
|
715 and
|
nickjillings@1289
|
716 }
|
nickjillings@1289
|
717 { t #1 #1 substring$
|
nickjillings@1289
|
718 duplicate$ "-" =
|
nickjillings@1289
|
719 swap$ duplicate$ "," =
|
nickjillings@1289
|
720 swap$ "+" =
|
nickjillings@1289
|
721 or or
|
nickjillings@1289
|
722 { #1 'multiresult := }
|
nickjillings@1289
|
723 { t #2 global.max$ substring$ 't := }
|
nickjillings@1289
|
724 if$
|
nickjillings@1289
|
725 }
|
nickjillings@1289
|
726 while$
|
nickjillings@1289
|
727 multiresult
|
nickjillings@1289
|
728 }
|
nickjillings@1289
|
729
|
nickjillings@1289
|
730 FUNCTION {capitalize}{ "u" change.case$ "t" change.case$ }
|
nickjillings@1289
|
731
|
nickjillings@1289
|
732 FUNCTION {emphasize}
|
nickjillings@1289
|
733 { duplicate$ empty$
|
nickjillings@1289
|
734 { pop$ "" }
|
nickjillings@1289
|
735 { "\emph{" swap$ * "}" * }
|
nickjillings@1289
|
736 if$
|
nickjillings@1289
|
737 }
|
nickjillings@1289
|
738
|
nickjillings@1289
|
739 FUNCTION {do.name.latex.cmd}
|
nickjillings@1289
|
740 { name.latex.cmd
|
nickjillings@1289
|
741 empty$
|
nickjillings@1289
|
742 { skip$ }
|
nickjillings@1289
|
743 { name.latex.cmd "{" * swap$ * "}" * }
|
nickjillings@1289
|
744 if$
|
nickjillings@1289
|
745 }
|
nickjillings@1289
|
746
|
nickjillings@1289
|
747 % IEEEtran.bst uses its own \BIBforeignlanguage command which directly
|
nickjillings@1289
|
748 % invokes the TeX hyphenation patterns without the need of the Babel
|
nickjillings@1289
|
749 % package. Babel does a lot more than switch hyphenation patterns and
|
nickjillings@1289
|
750 % its loading can cause unintended effects in many class files (such as
|
nickjillings@1289
|
751 % IEEEtran.cls).
|
nickjillings@1289
|
752 FUNCTION {select.language}
|
nickjillings@1289
|
753 { duplicate$ empty$ 'pop$
|
nickjillings@1289
|
754 { language empty$ 'skip$
|
nickjillings@1289
|
755 { "\BIBforeignlanguage{" language * "}{" * swap$ * "}" * }
|
nickjillings@1289
|
756 if$
|
nickjillings@1289
|
757 }
|
nickjillings@1289
|
758 if$
|
nickjillings@1289
|
759 }
|
nickjillings@1289
|
760
|
nickjillings@1289
|
761 FUNCTION {tie.or.space.prefix}
|
nickjillings@1289
|
762 { duplicate$ text.length$ #3 <
|
nickjillings@1289
|
763 { "~" }
|
nickjillings@1289
|
764 { " " }
|
nickjillings@1289
|
765 if$
|
nickjillings@1289
|
766 swap$
|
nickjillings@1289
|
767 }
|
nickjillings@1289
|
768
|
nickjillings@1289
|
769 FUNCTION {get.bbl.editor}
|
nickjillings@1289
|
770 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
|
nickjillings@1289
|
771
|
nickjillings@1289
|
772 FUNCTION {space.word}{ " " swap$ * " " * }
|
nickjillings@1289
|
773
|
nickjillings@1289
|
774
|
nickjillings@1289
|
775 % Field Conditioners, Converters, Checkers and External Interfaces
|
nickjillings@1289
|
776
|
nickjillings@1289
|
777 FUNCTION {empty.field.to.null.string}
|
nickjillings@1289
|
778 { duplicate$ empty$
|
nickjillings@1289
|
779 { pop$ "" }
|
nickjillings@1289
|
780 { skip$ }
|
nickjillings@1289
|
781 if$
|
nickjillings@1289
|
782 }
|
nickjillings@1289
|
783
|
nickjillings@1289
|
784 FUNCTION {either.or.check}
|
nickjillings@1289
|
785 { empty$
|
nickjillings@1289
|
786 { pop$ }
|
nickjillings@1289
|
787 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
|
nickjillings@1289
|
788 if$
|
nickjillings@1289
|
789 }
|
nickjillings@1289
|
790
|
nickjillings@1289
|
791 FUNCTION {empty.entry.warn}
|
nickjillings@1289
|
792 { author empty$ title empty$ howpublished empty$
|
nickjillings@1289
|
793 month empty$ year empty$ note empty$ url empty$
|
nickjillings@1289
|
794 and and and and and and
|
nickjillings@1289
|
795 { "all relevant fields are empty in " cite$ * warning$ }
|
nickjillings@1289
|
796 'skip$
|
nickjillings@1289
|
797 if$
|
nickjillings@1289
|
798 }
|
nickjillings@1289
|
799
|
nickjillings@1289
|
800
|
nickjillings@1289
|
801 % The bibinfo system provides a way for the electronic parsing/acquisition
|
nickjillings@1289
|
802 % of a bibliography's contents as is done by ReVTeX. For example, a field
|
nickjillings@1289
|
803 % could be entered into the bibliography as:
|
nickjillings@1289
|
804 % \bibinfo{volume}{2}
|
nickjillings@1289
|
805 % Only the "2" would show up in the document, but the LaTeX \bibinfo command
|
nickjillings@1289
|
806 % could do additional things with the information. IEEEtran.bst does provide
|
nickjillings@1289
|
807 % a \bibinfo command via "\providecommand{\bibinfo}[2]{#2}". However, it is
|
nickjillings@1289
|
808 % currently not used as the bogus bibinfo functions defined here output the
|
nickjillings@1289
|
809 % entry values directly without the \bibinfo wrapper. The bibinfo functions
|
nickjillings@1289
|
810 % themselves (and the calls to them) are retained for possible future use.
|
nickjillings@1289
|
811 %
|
nickjillings@1289
|
812 % bibinfo.check avoids acting on missing fields while bibinfo.warn will
|
nickjillings@1289
|
813 % issue a warning message if a missing field is detected. Prior to calling
|
nickjillings@1289
|
814 % the bibinfo functions, the user should push the field value and then its
|
nickjillings@1289
|
815 % name string, in that order.
|
nickjillings@1289
|
816
|
nickjillings@1289
|
817 FUNCTION {bibinfo.check}
|
nickjillings@1289
|
818 { swap$ duplicate$ missing$
|
nickjillings@1289
|
819 { pop$ pop$ "" }
|
nickjillings@1289
|
820 { duplicate$ empty$
|
nickjillings@1289
|
821 { swap$ pop$ }
|
nickjillings@1289
|
822 { swap$ pop$ }
|
nickjillings@1289
|
823 if$
|
nickjillings@1289
|
824 }
|
nickjillings@1289
|
825 if$
|
nickjillings@1289
|
826 }
|
nickjillings@1289
|
827
|
nickjillings@1289
|
828 FUNCTION {bibinfo.warn}
|
nickjillings@1289
|
829 { swap$ duplicate$ missing$
|
nickjillings@1289
|
830 { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" }
|
nickjillings@1289
|
831 { duplicate$ empty$
|
nickjillings@1289
|
832 { swap$ "empty " swap$ * " in " * cite$ * warning$ }
|
nickjillings@1289
|
833 { swap$ pop$ }
|
nickjillings@1289
|
834 if$
|
nickjillings@1289
|
835 }
|
nickjillings@1289
|
836 if$
|
nickjillings@1289
|
837 }
|
nickjillings@1289
|
838
|
nickjillings@1289
|
839
|
nickjillings@1289
|
840 % IEEE separates large numbers with more than 4 digits into groups of
|
nickjillings@1289
|
841 % three. IEEE uses a small space to separate these number groups.
|
nickjillings@1289
|
842 % Typical applications include patent and page numbers.
|
nickjillings@1289
|
843
|
nickjillings@1289
|
844 % number of consecutive digits required to trigger the group separation.
|
nickjillings@1289
|
845 FUNCTION {large.number.trigger}{ #5 }
|
nickjillings@1289
|
846
|
nickjillings@1289
|
847 % For numbers longer than the trigger, this is the blocksize of the groups.
|
nickjillings@1289
|
848 % The blocksize must be less than the trigger threshold, and 2 * blocksize
|
nickjillings@1289
|
849 % must be greater than the trigger threshold (can't do more than one
|
nickjillings@1289
|
850 % separation on the initial trigger).
|
nickjillings@1289
|
851 FUNCTION {large.number.blocksize}{ #3 }
|
nickjillings@1289
|
852
|
nickjillings@1289
|
853 % What is actually inserted between the number groups.
|
nickjillings@1289
|
854 FUNCTION {large.number.separator}{ "\," }
|
nickjillings@1289
|
855
|
nickjillings@1289
|
856 % So as to save on integer variables by reusing existing ones, numnames
|
nickjillings@1289
|
857 % holds the current number of consecutive digits read and nameptr holds
|
nickjillings@1289
|
858 % the number that will trigger an inserted space.
|
nickjillings@1289
|
859 FUNCTION {large.number.separate}
|
nickjillings@1289
|
860 { 't :=
|
nickjillings@1289
|
861 ""
|
nickjillings@1289
|
862 #0 'numnames :=
|
nickjillings@1289
|
863 large.number.trigger 'nameptr :=
|
nickjillings@1289
|
864 { t empty$ not }
|
nickjillings@1289
|
865 { t #-1 #1 substring$ is.num
|
nickjillings@1289
|
866 { numnames #1 + 'numnames := }
|
nickjillings@1289
|
867 { #0 'numnames :=
|
nickjillings@1289
|
868 large.number.trigger 'nameptr :=
|
nickjillings@1289
|
869 }
|
nickjillings@1289
|
870 if$
|
nickjillings@1289
|
871 t #-1 #1 substring$ swap$ *
|
nickjillings@1289
|
872 t #-2 global.max$ substring$ 't :=
|
nickjillings@1289
|
873 numnames nameptr =
|
nickjillings@1289
|
874 { duplicate$ #1 nameptr large.number.blocksize - substring$ swap$
|
nickjillings@1289
|
875 nameptr large.number.blocksize - #1 + global.max$ substring$
|
nickjillings@1289
|
876 large.number.separator swap$ * *
|
nickjillings@1289
|
877 nameptr large.number.blocksize - 'numnames :=
|
nickjillings@1289
|
878 large.number.blocksize #1 + 'nameptr :=
|
nickjillings@1289
|
879 }
|
nickjillings@1289
|
880 { skip$ }
|
nickjillings@1289
|
881 if$
|
nickjillings@1289
|
882 }
|
nickjillings@1289
|
883 while$
|
nickjillings@1289
|
884 }
|
nickjillings@1289
|
885
|
nickjillings@1289
|
886 % Converts all single dashes "-" to double dashes "--".
|
nickjillings@1289
|
887 FUNCTION {n.dashify}
|
nickjillings@1289
|
888 { large.number.separate
|
nickjillings@1289
|
889 't :=
|
nickjillings@1289
|
890 ""
|
nickjillings@1289
|
891 { t empty$ not }
|
nickjillings@1289
|
892 { t #1 #1 substring$ "-" =
|
nickjillings@1289
|
893 { t #1 #2 substring$ "--" = not
|
nickjillings@1289
|
894 { "--" *
|
nickjillings@1289
|
895 t #2 global.max$ substring$ 't :=
|
nickjillings@1289
|
896 }
|
nickjillings@1289
|
897 { { t #1 #1 substring$ "-" = }
|
nickjillings@1289
|
898 { "-" *
|
nickjillings@1289
|
899 t #2 global.max$ substring$ 't :=
|
nickjillings@1289
|
900 }
|
nickjillings@1289
|
901 while$
|
nickjillings@1289
|
902 }
|
nickjillings@1289
|
903 if$
|
nickjillings@1289
|
904 }
|
nickjillings@1289
|
905 { t #1 #1 substring$ *
|
nickjillings@1289
|
906 t #2 global.max$ substring$ 't :=
|
nickjillings@1289
|
907 }
|
nickjillings@1289
|
908 if$
|
nickjillings@1289
|
909 }
|
nickjillings@1289
|
910 while$
|
nickjillings@1289
|
911 }
|
nickjillings@1289
|
912
|
nickjillings@1289
|
913
|
nickjillings@1289
|
914 % This function detects entries with names that are identical to that of
|
nickjillings@1289
|
915 % the previous entry and replaces the repeated names with dashes (if the
|
nickjillings@1289
|
916 % "is.dash.repeated.names" user control is nonzero).
|
nickjillings@1289
|
917 FUNCTION {name.or.dash}
|
nickjillings@1289
|
918 { 's :=
|
nickjillings@1289
|
919 oldname empty$
|
nickjillings@1289
|
920 { s 'oldname := s }
|
nickjillings@1289
|
921 { s oldname =
|
nickjillings@1289
|
922 { is.dash.repeated.names
|
nickjillings@1289
|
923 { repeated.name.dashes }
|
nickjillings@1289
|
924 { s 'oldname := s }
|
nickjillings@1289
|
925 if$
|
nickjillings@1289
|
926 }
|
nickjillings@1289
|
927 { s 'oldname := s }
|
nickjillings@1289
|
928 if$
|
nickjillings@1289
|
929 }
|
nickjillings@1289
|
930 if$
|
nickjillings@1289
|
931 }
|
nickjillings@1289
|
932
|
nickjillings@1289
|
933 % Converts the number string on the top of the stack to
|
nickjillings@1289
|
934 % "numerical ordinal form" (e.g., "7" to "7th"). There is
|
nickjillings@1289
|
935 % no artificial limit to the upper bound of the numbers as the
|
nickjillings@1289
|
936 % least significant digit always determines the ordinal form.
|
nickjillings@1289
|
937 FUNCTION {num.to.ordinal}
|
nickjillings@1289
|
938 { duplicate$ #-1 #1 substring$ "1" =
|
nickjillings@1289
|
939 { bbl.st * }
|
nickjillings@1289
|
940 { duplicate$ #-1 #1 substring$ "2" =
|
nickjillings@1289
|
941 { bbl.nd * }
|
nickjillings@1289
|
942 { duplicate$ #-1 #1 substring$ "3" =
|
nickjillings@1289
|
943 { bbl.rd * }
|
nickjillings@1289
|
944 { bbl.th * }
|
nickjillings@1289
|
945 if$
|
nickjillings@1289
|
946 }
|
nickjillings@1289
|
947 if$
|
nickjillings@1289
|
948 }
|
nickjillings@1289
|
949 if$
|
nickjillings@1289
|
950 }
|
nickjillings@1289
|
951
|
nickjillings@1289
|
952 % If the string on the top of the stack begins with a number,
|
nickjillings@1289
|
953 % (e.g., 11th) then replace the string with the leading number
|
nickjillings@1289
|
954 % it contains. Otherwise retain the string as-is. s holds the
|
nickjillings@1289
|
955 % extracted number, t holds the part of the string that remains
|
nickjillings@1289
|
956 % to be scanned.
|
nickjillings@1289
|
957 FUNCTION {extract.num}
|
nickjillings@1289
|
958 { duplicate$ 't :=
|
nickjillings@1289
|
959 "" 's :=
|
nickjillings@1289
|
960 { t empty$ not }
|
nickjillings@1289
|
961 { t #1 #1 substring$
|
nickjillings@1289
|
962 t #2 global.max$ substring$ 't :=
|
nickjillings@1289
|
963 duplicate$ is.num
|
nickjillings@1289
|
964 { s swap$ * 's := }
|
nickjillings@1289
|
965 { pop$ "" 't := }
|
nickjillings@1289
|
966 if$
|
nickjillings@1289
|
967 }
|
nickjillings@1289
|
968 while$
|
nickjillings@1289
|
969 s empty$
|
nickjillings@1289
|
970 'skip$
|
nickjillings@1289
|
971 { pop$ s }
|
nickjillings@1289
|
972 if$
|
nickjillings@1289
|
973 }
|
nickjillings@1289
|
974
|
nickjillings@1289
|
975 % Converts the word number string on the top of the stack to
|
nickjillings@1289
|
976 % Arabic string form. Will be successful up to "tenth".
|
nickjillings@1289
|
977 FUNCTION {word.to.num}
|
nickjillings@1289
|
978 { duplicate$ "l" change.case$ 's :=
|
nickjillings@1289
|
979 s "first" =
|
nickjillings@1289
|
980 { pop$ "1" }
|
nickjillings@1289
|
981 { skip$ }
|
nickjillings@1289
|
982 if$
|
nickjillings@1289
|
983 s "second" =
|
nickjillings@1289
|
984 { pop$ "2" }
|
nickjillings@1289
|
985 { skip$ }
|
nickjillings@1289
|
986 if$
|
nickjillings@1289
|
987 s "third" =
|
nickjillings@1289
|
988 { pop$ "3" }
|
nickjillings@1289
|
989 { skip$ }
|
nickjillings@1289
|
990 if$
|
nickjillings@1289
|
991 s "fourth" =
|
nickjillings@1289
|
992 { pop$ "4" }
|
nickjillings@1289
|
993 { skip$ }
|
nickjillings@1289
|
994 if$
|
nickjillings@1289
|
995 s "fifth" =
|
nickjillings@1289
|
996 { pop$ "5" }
|
nickjillings@1289
|
997 { skip$ }
|
nickjillings@1289
|
998 if$
|
nickjillings@1289
|
999 s "sixth" =
|
nickjillings@1289
|
1000 { pop$ "6" }
|
nickjillings@1289
|
1001 { skip$ }
|
nickjillings@1289
|
1002 if$
|
nickjillings@1289
|
1003 s "seventh" =
|
nickjillings@1289
|
1004 { pop$ "7" }
|
nickjillings@1289
|
1005 { skip$ }
|
nickjillings@1289
|
1006 if$
|
nickjillings@1289
|
1007 s "eighth" =
|
nickjillings@1289
|
1008 { pop$ "8" }
|
nickjillings@1289
|
1009 { skip$ }
|
nickjillings@1289
|
1010 if$
|
nickjillings@1289
|
1011 s "ninth" =
|
nickjillings@1289
|
1012 { pop$ "9" }
|
nickjillings@1289
|
1013 { skip$ }
|
nickjillings@1289
|
1014 if$
|
nickjillings@1289
|
1015 s "tenth" =
|
nickjillings@1289
|
1016 { pop$ "10" }
|
nickjillings@1289
|
1017 { skip$ }
|
nickjillings@1289
|
1018 if$
|
nickjillings@1289
|
1019 }
|
nickjillings@1289
|
1020
|
nickjillings@1289
|
1021
|
nickjillings@1289
|
1022 % Converts the string on the top of the stack to numerical
|
nickjillings@1289
|
1023 % ordinal (e.g., "11th") form.
|
nickjillings@1289
|
1024 FUNCTION {convert.edition}
|
nickjillings@1289
|
1025 { duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1026 { duplicate$ #1 #1 substring$ is.num
|
nickjillings@1289
|
1027 { extract.num
|
nickjillings@1289
|
1028 num.to.ordinal
|
nickjillings@1289
|
1029 }
|
nickjillings@1289
|
1030 { word.to.num
|
nickjillings@1289
|
1031 duplicate$ #1 #1 substring$ is.num
|
nickjillings@1289
|
1032 { num.to.ordinal }
|
nickjillings@1289
|
1033 { "edition ordinal word " quote$ * edition * quote$ *
|
nickjillings@1289
|
1034 " may be too high (or improper) for conversion" * " in " * cite$ * warning$
|
nickjillings@1289
|
1035 }
|
nickjillings@1289
|
1036 if$
|
nickjillings@1289
|
1037 }
|
nickjillings@1289
|
1038 if$
|
nickjillings@1289
|
1039 }
|
nickjillings@1289
|
1040 if$
|
nickjillings@1289
|
1041 }
|
nickjillings@1289
|
1042
|
nickjillings@1289
|
1043
|
nickjillings@1289
|
1044
|
nickjillings@1289
|
1045
|
nickjillings@1289
|
1046 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
1047 %% LATEX BIBLIOGRAPHY CODE %%
|
nickjillings@1289
|
1048 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
1049
|
nickjillings@1289
|
1050 FUNCTION {start.entry}
|
nickjillings@1289
|
1051 { newline$
|
nickjillings@1289
|
1052 "\bibitem{" write$
|
nickjillings@1289
|
1053 cite$ write$
|
nickjillings@1289
|
1054 "}" write$
|
nickjillings@1289
|
1055 newline$
|
nickjillings@1289
|
1056 ""
|
nickjillings@1289
|
1057 initialize.prev.this.status
|
nickjillings@1289
|
1058 }
|
nickjillings@1289
|
1059
|
nickjillings@1289
|
1060 % Here we write out all the LaTeX code that we will need. The most involved
|
nickjillings@1289
|
1061 % code sequences are those that control the alternate interword spacing and
|
nickjillings@1289
|
1062 % foreign language hyphenation patterns. The heavy use of \providecommand
|
nickjillings@1289
|
1063 % gives users a way to override the defaults. Special thanks to Javier Bezos,
|
nickjillings@1289
|
1064 % Johannes Braams, Robin Fairbairns, Heiko Oberdiek, Donald Arseneau and all
|
nickjillings@1289
|
1065 % the other gurus on comp.text.tex for their help and advice on the topic of
|
nickjillings@1289
|
1066 % \selectlanguage, Babel and BibTeX.
|
nickjillings@1289
|
1067 FUNCTION {begin.bib}
|
nickjillings@1289
|
1068 { "% Generated by IEEEtran.bst, version: " bst.file.version * " (" * bst.file.date * ")" *
|
nickjillings@1289
|
1069 write$ newline$
|
nickjillings@1289
|
1070 preamble$ empty$ 'skip$
|
nickjillings@1289
|
1071 { preamble$ write$ newline$ }
|
nickjillings@1289
|
1072 if$
|
nickjillings@1289
|
1073 "\begin{thebibliography}{" longest.label * "}" *
|
nickjillings@1289
|
1074 write$ newline$
|
nickjillings@1289
|
1075 "\providecommand{\url}[1]{#1}"
|
nickjillings@1289
|
1076 write$ newline$
|
nickjillings@1289
|
1077 "\csname url@samestyle\endcsname"
|
nickjillings@1289
|
1078 write$ newline$
|
nickjillings@1289
|
1079 "\providecommand{\newblock}{\relax}"
|
nickjillings@1289
|
1080 write$ newline$
|
nickjillings@1289
|
1081 "\providecommand{\bibinfo}[2]{#2}"
|
nickjillings@1289
|
1082 write$ newline$
|
nickjillings@1289
|
1083 "\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}"
|
nickjillings@1289
|
1084 write$ newline$
|
nickjillings@1289
|
1085 "\providecommand{\BIBentryALTinterwordstretchfactor}{"
|
nickjillings@1289
|
1086 ALTinterwordstretchfactor * "}" *
|
nickjillings@1289
|
1087 write$ newline$
|
nickjillings@1289
|
1088 "\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus "
|
nickjillings@1289
|
1089 write$ newline$
|
nickjillings@1289
|
1090 "\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}"
|
nickjillings@1289
|
1091 write$ newline$
|
nickjillings@1289
|
1092 "\providecommand{\BIBforeignlanguage}[2]{{%"
|
nickjillings@1289
|
1093 write$ newline$
|
nickjillings@1289
|
1094 "\expandafter\ifx\csname l@#1\endcsname\relax"
|
nickjillings@1289
|
1095 write$ newline$
|
nickjillings@1289
|
1096 "\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%"
|
nickjillings@1289
|
1097 write$ newline$
|
nickjillings@1289
|
1098 "\typeout{** loaded for the language `#1'. Using the pattern for}%"
|
nickjillings@1289
|
1099 write$ newline$
|
nickjillings@1289
|
1100 "\typeout{** the default language instead.}%"
|
nickjillings@1289
|
1101 write$ newline$
|
nickjillings@1289
|
1102 "\else"
|
nickjillings@1289
|
1103 write$ newline$
|
nickjillings@1289
|
1104 "\language=\csname l@#1\endcsname"
|
nickjillings@1289
|
1105 write$ newline$
|
nickjillings@1289
|
1106 "\fi"
|
nickjillings@1289
|
1107 write$ newline$
|
nickjillings@1289
|
1108 "#2}}"
|
nickjillings@1289
|
1109 write$ newline$
|
nickjillings@1289
|
1110 "\providecommand{\BIBdecl}{\relax}"
|
nickjillings@1289
|
1111 write$ newline$
|
nickjillings@1289
|
1112 "\BIBdecl"
|
nickjillings@1289
|
1113 write$ newline$
|
nickjillings@1289
|
1114 }
|
nickjillings@1289
|
1115
|
nickjillings@1289
|
1116 FUNCTION {end.bib}
|
nickjillings@1289
|
1117 { newline$ "\end{thebibliography}" write$ newline$ }
|
nickjillings@1289
|
1118
|
nickjillings@1289
|
1119 FUNCTION {if.url.alt.interword.spacing}
|
nickjillings@1289
|
1120 { is.use.alt.interword.spacing
|
nickjillings@1289
|
1121 {url empty$ 'skip$ {"\BIBentryALTinterwordspacing" write$ newline$} if$}
|
nickjillings@1289
|
1122 { skip$ }
|
nickjillings@1289
|
1123 if$
|
nickjillings@1289
|
1124 }
|
nickjillings@1289
|
1125
|
nickjillings@1289
|
1126 FUNCTION {if.url.std.interword.spacing}
|
nickjillings@1289
|
1127 { is.use.alt.interword.spacing
|
nickjillings@1289
|
1128 {url empty$ 'skip$ {"\BIBentrySTDinterwordspacing" write$ newline$} if$}
|
nickjillings@1289
|
1129 { skip$ }
|
nickjillings@1289
|
1130 if$
|
nickjillings@1289
|
1131 }
|
nickjillings@1289
|
1132
|
nickjillings@1289
|
1133
|
nickjillings@1289
|
1134
|
nickjillings@1289
|
1135
|
nickjillings@1289
|
1136 %%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
1137 %% LONGEST LABEL PASS %%
|
nickjillings@1289
|
1138 %%%%%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
1139
|
nickjillings@1289
|
1140 FUNCTION {initialize.longest.label}
|
nickjillings@1289
|
1141 { "" 'longest.label :=
|
nickjillings@1289
|
1142 #1 'number.label :=
|
nickjillings@1289
|
1143 #0 'longest.label.width :=
|
nickjillings@1289
|
1144 }
|
nickjillings@1289
|
1145
|
nickjillings@1289
|
1146 FUNCTION {longest.label.pass}
|
nickjillings@1289
|
1147 { type$ "ieeetranbstctl" =
|
nickjillings@1289
|
1148 { skip$ }
|
nickjillings@1289
|
1149 { number.label int.to.str$ 'label :=
|
nickjillings@1289
|
1150 number.label #1 + 'number.label :=
|
nickjillings@1289
|
1151 label width$ longest.label.width >
|
nickjillings@1289
|
1152 { label 'longest.label :=
|
nickjillings@1289
|
1153 label width$ 'longest.label.width :=
|
nickjillings@1289
|
1154 }
|
nickjillings@1289
|
1155 { skip$ }
|
nickjillings@1289
|
1156 if$
|
nickjillings@1289
|
1157 }
|
nickjillings@1289
|
1158 if$
|
nickjillings@1289
|
1159 }
|
nickjillings@1289
|
1160
|
nickjillings@1289
|
1161
|
nickjillings@1289
|
1162
|
nickjillings@1289
|
1163
|
nickjillings@1289
|
1164 %%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
1165 %% FORMAT HANDLERS %%
|
nickjillings@1289
|
1166 %%%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
1167
|
nickjillings@1289
|
1168 %% Lower Level Formats (used by higher level formats)
|
nickjillings@1289
|
1169
|
nickjillings@1289
|
1170 FUNCTION {format.address.org.or.pub.date}
|
nickjillings@1289
|
1171 { 't :=
|
nickjillings@1289
|
1172 ""
|
nickjillings@1289
|
1173 year empty$
|
nickjillings@1289
|
1174 { "empty year in " cite$ * warning$ }
|
nickjillings@1289
|
1175 { skip$ }
|
nickjillings@1289
|
1176 if$
|
nickjillings@1289
|
1177 address empty$ t empty$ and
|
nickjillings@1289
|
1178 year empty$ and month empty$ and
|
nickjillings@1289
|
1179 { skip$ }
|
nickjillings@1289
|
1180 { this.to.prev.status
|
nickjillings@1289
|
1181 this.status.std
|
nickjillings@1289
|
1182 cap.status.std
|
nickjillings@1289
|
1183 address "address" bibinfo.check *
|
nickjillings@1289
|
1184 t empty$
|
nickjillings@1289
|
1185 { skip$ }
|
nickjillings@1289
|
1186 { punct.period 'prev.status.punct :=
|
nickjillings@1289
|
1187 space.large 'prev.status.space :=
|
nickjillings@1289
|
1188 address empty$
|
nickjillings@1289
|
1189 { skip$ }
|
nickjillings@1289
|
1190 { ": " * }
|
nickjillings@1289
|
1191 if$
|
nickjillings@1289
|
1192 t *
|
nickjillings@1289
|
1193 }
|
nickjillings@1289
|
1194 if$
|
nickjillings@1289
|
1195 year empty$ month empty$ and
|
nickjillings@1289
|
1196 { skip$ }
|
nickjillings@1289
|
1197 { t empty$ address empty$ and
|
nickjillings@1289
|
1198 { skip$ }
|
nickjillings@1289
|
1199 { ", " * }
|
nickjillings@1289
|
1200 if$
|
nickjillings@1289
|
1201 month empty$
|
nickjillings@1289
|
1202 { year empty$
|
nickjillings@1289
|
1203 { skip$ }
|
nickjillings@1289
|
1204 { year "year" bibinfo.check * }
|
nickjillings@1289
|
1205 if$
|
nickjillings@1289
|
1206 }
|
nickjillings@1289
|
1207 { month "month" bibinfo.check *
|
nickjillings@1289
|
1208 year empty$
|
nickjillings@1289
|
1209 { skip$ }
|
nickjillings@1289
|
1210 { " " * year "year" bibinfo.check * }
|
nickjillings@1289
|
1211 if$
|
nickjillings@1289
|
1212 }
|
nickjillings@1289
|
1213 if$
|
nickjillings@1289
|
1214 }
|
nickjillings@1289
|
1215 if$
|
nickjillings@1289
|
1216 }
|
nickjillings@1289
|
1217 if$
|
nickjillings@1289
|
1218 }
|
nickjillings@1289
|
1219
|
nickjillings@1289
|
1220
|
nickjillings@1289
|
1221 FUNCTION {format.names}
|
nickjillings@1289
|
1222 { 'bibinfo :=
|
nickjillings@1289
|
1223 duplicate$ empty$ 'skip$ {
|
nickjillings@1289
|
1224 this.to.prev.status
|
nickjillings@1289
|
1225 this.status.std
|
nickjillings@1289
|
1226 's :=
|
nickjillings@1289
|
1227 "" 't :=
|
nickjillings@1289
|
1228 #1 'nameptr :=
|
nickjillings@1289
|
1229 s num.names$ 'numnames :=
|
nickjillings@1289
|
1230 numnames 'namesleft :=
|
nickjillings@1289
|
1231 { namesleft #0 > }
|
nickjillings@1289
|
1232 { s nameptr
|
nickjillings@1289
|
1233 name.format.string
|
nickjillings@1289
|
1234 format.name$
|
nickjillings@1289
|
1235 bibinfo bibinfo.check
|
nickjillings@1289
|
1236 't :=
|
nickjillings@1289
|
1237 nameptr #1 >
|
nickjillings@1289
|
1238 { nameptr num.names.shown.with.forced.et.al #1 + =
|
nickjillings@1289
|
1239 numnames max.num.names.before.forced.et.al >
|
nickjillings@1289
|
1240 is.forced.et.al and and
|
nickjillings@1289
|
1241 { "others" 't :=
|
nickjillings@1289
|
1242 #1 'namesleft :=
|
nickjillings@1289
|
1243 }
|
nickjillings@1289
|
1244 { skip$ }
|
nickjillings@1289
|
1245 if$
|
nickjillings@1289
|
1246 namesleft #1 >
|
nickjillings@1289
|
1247 { ", " * t do.name.latex.cmd * }
|
nickjillings@1289
|
1248 { s nameptr "{ll}" format.name$ duplicate$ "others" =
|
nickjillings@1289
|
1249 { 't := }
|
nickjillings@1289
|
1250 { pop$ }
|
nickjillings@1289
|
1251 if$
|
nickjillings@1289
|
1252 t "others" =
|
nickjillings@1289
|
1253 { " " * bbl.etal emphasize * }
|
nickjillings@1289
|
1254 { numnames #2 >
|
nickjillings@1289
|
1255 { "," * }
|
nickjillings@1289
|
1256 { skip$ }
|
nickjillings@1289
|
1257 if$
|
nickjillings@1289
|
1258 bbl.and
|
nickjillings@1289
|
1259 space.word * t do.name.latex.cmd *
|
nickjillings@1289
|
1260 }
|
nickjillings@1289
|
1261 if$
|
nickjillings@1289
|
1262 }
|
nickjillings@1289
|
1263 if$
|
nickjillings@1289
|
1264 }
|
nickjillings@1289
|
1265 { t do.name.latex.cmd }
|
nickjillings@1289
|
1266 if$
|
nickjillings@1289
|
1267 nameptr #1 + 'nameptr :=
|
nickjillings@1289
|
1268 namesleft #1 - 'namesleft :=
|
nickjillings@1289
|
1269 }
|
nickjillings@1289
|
1270 while$
|
nickjillings@1289
|
1271 cap.status.std
|
nickjillings@1289
|
1272 } if$
|
nickjillings@1289
|
1273 }
|
nickjillings@1289
|
1274
|
nickjillings@1289
|
1275
|
nickjillings@1289
|
1276
|
nickjillings@1289
|
1277
|
nickjillings@1289
|
1278 %% Higher Level Formats
|
nickjillings@1289
|
1279
|
nickjillings@1289
|
1280 %% addresses/locations
|
nickjillings@1289
|
1281
|
nickjillings@1289
|
1282 FUNCTION {format.address}
|
nickjillings@1289
|
1283 { address duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1284 { this.to.prev.status
|
nickjillings@1289
|
1285 this.status.std
|
nickjillings@1289
|
1286 cap.status.std
|
nickjillings@1289
|
1287 }
|
nickjillings@1289
|
1288 if$
|
nickjillings@1289
|
1289 }
|
nickjillings@1289
|
1290
|
nickjillings@1289
|
1291
|
nickjillings@1289
|
1292
|
nickjillings@1289
|
1293 %% author/editor names
|
nickjillings@1289
|
1294
|
nickjillings@1289
|
1295 FUNCTION {format.authors}{ author "author" format.names }
|
nickjillings@1289
|
1296
|
nickjillings@1289
|
1297 FUNCTION {format.editors}
|
nickjillings@1289
|
1298 { editor "editor" format.names duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1299 { ", " *
|
nickjillings@1289
|
1300 get.bbl.editor
|
nickjillings@1289
|
1301 capitalize
|
nickjillings@1289
|
1302 *
|
nickjillings@1289
|
1303 }
|
nickjillings@1289
|
1304 if$
|
nickjillings@1289
|
1305 }
|
nickjillings@1289
|
1306
|
nickjillings@1289
|
1307
|
nickjillings@1289
|
1308
|
nickjillings@1289
|
1309 %% date
|
nickjillings@1289
|
1310
|
nickjillings@1289
|
1311 FUNCTION {format.date}
|
nickjillings@1289
|
1312 {
|
nickjillings@1289
|
1313 month "month" bibinfo.check duplicate$ empty$
|
nickjillings@1289
|
1314 year "year" bibinfo.check duplicate$ empty$
|
nickjillings@1289
|
1315 { swap$ 'skip$
|
nickjillings@1289
|
1316 { this.to.prev.status
|
nickjillings@1289
|
1317 this.status.std
|
nickjillings@1289
|
1318 cap.status.std
|
nickjillings@1289
|
1319 "there's a month but no year in " cite$ * warning$ }
|
nickjillings@1289
|
1320 if$
|
nickjillings@1289
|
1321 *
|
nickjillings@1289
|
1322 }
|
nickjillings@1289
|
1323 { this.to.prev.status
|
nickjillings@1289
|
1324 this.status.std
|
nickjillings@1289
|
1325 cap.status.std
|
nickjillings@1289
|
1326 swap$ 'skip$
|
nickjillings@1289
|
1327 {
|
nickjillings@1289
|
1328 swap$
|
nickjillings@1289
|
1329 " " * swap$
|
nickjillings@1289
|
1330 }
|
nickjillings@1289
|
1331 if$
|
nickjillings@1289
|
1332 *
|
nickjillings@1289
|
1333 }
|
nickjillings@1289
|
1334 if$
|
nickjillings@1289
|
1335 }
|
nickjillings@1289
|
1336
|
nickjillings@1289
|
1337 FUNCTION {format.date.electronic}
|
nickjillings@1289
|
1338 { month "month" bibinfo.check duplicate$ empty$
|
nickjillings@1289
|
1339 year "year" bibinfo.check duplicate$ empty$
|
nickjillings@1289
|
1340 { swap$
|
nickjillings@1289
|
1341 { pop$ }
|
nickjillings@1289
|
1342 { "there's a month but no year in " cite$ * warning$
|
nickjillings@1289
|
1343 pop$ ")" * "(" swap$ *
|
nickjillings@1289
|
1344 this.to.prev.status
|
nickjillings@1289
|
1345 punct.no 'this.status.punct :=
|
nickjillings@1289
|
1346 space.normal 'this.status.space :=
|
nickjillings@1289
|
1347 quote.no 'this.status.quote :=
|
nickjillings@1289
|
1348 cap.yes 'status.cap :=
|
nickjillings@1289
|
1349 }
|
nickjillings@1289
|
1350 if$
|
nickjillings@1289
|
1351 }
|
nickjillings@1289
|
1352 { swap$
|
nickjillings@1289
|
1353 { swap$ pop$ ")" * "(" swap$ * }
|
nickjillings@1289
|
1354 { "(" swap$ * ", " * swap$ * ")" * }
|
nickjillings@1289
|
1355 if$
|
nickjillings@1289
|
1356 this.to.prev.status
|
nickjillings@1289
|
1357 punct.no 'this.status.punct :=
|
nickjillings@1289
|
1358 space.normal 'this.status.space :=
|
nickjillings@1289
|
1359 quote.no 'this.status.quote :=
|
nickjillings@1289
|
1360 cap.yes 'status.cap :=
|
nickjillings@1289
|
1361 }
|
nickjillings@1289
|
1362 if$
|
nickjillings@1289
|
1363 }
|
nickjillings@1289
|
1364
|
nickjillings@1289
|
1365
|
nickjillings@1289
|
1366
|
nickjillings@1289
|
1367 %% edition/title
|
nickjillings@1289
|
1368
|
nickjillings@1289
|
1369 % Note: IEEE considers the edition to be closely associated with
|
nickjillings@1289
|
1370 % the title of a book. So, in IEEEtran.bst the edition is normally handled
|
nickjillings@1289
|
1371 % within the formatting of the title. The format.edition function is
|
nickjillings@1289
|
1372 % retained here for possible future use.
|
nickjillings@1289
|
1373 FUNCTION {format.edition}
|
nickjillings@1289
|
1374 { edition duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1375 { this.to.prev.status
|
nickjillings@1289
|
1376 this.status.std
|
nickjillings@1289
|
1377 convert.edition
|
nickjillings@1289
|
1378 status.cap
|
nickjillings@1289
|
1379 { "t" }
|
nickjillings@1289
|
1380 { "l" }
|
nickjillings@1289
|
1381 if$ change.case$
|
nickjillings@1289
|
1382 "edition" bibinfo.check
|
nickjillings@1289
|
1383 "~" * bbl.edition *
|
nickjillings@1289
|
1384 cap.status.std
|
nickjillings@1289
|
1385 }
|
nickjillings@1289
|
1386 if$
|
nickjillings@1289
|
1387 }
|
nickjillings@1289
|
1388
|
nickjillings@1289
|
1389 % This is used to format the booktitle of a conference proceedings.
|
nickjillings@1289
|
1390 % Here we use the "intype" field to provide the user a way to
|
nickjillings@1289
|
1391 % override the word "in" (e.g., with things like "presented at")
|
nickjillings@1289
|
1392 % Use of intype stops the emphasis of the booktitle to indicate that
|
nickjillings@1289
|
1393 % we no longer mean the written conference proceedings, but the
|
nickjillings@1289
|
1394 % conference itself.
|
nickjillings@1289
|
1395 FUNCTION {format.in.booktitle}
|
nickjillings@1289
|
1396 { booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1397 { this.to.prev.status
|
nickjillings@1289
|
1398 this.status.std
|
nickjillings@1289
|
1399 select.language
|
nickjillings@1289
|
1400 intype missing$
|
nickjillings@1289
|
1401 { emphasize
|
nickjillings@1289
|
1402 bbl.in " " *
|
nickjillings@1289
|
1403 }
|
nickjillings@1289
|
1404 { intype " " * }
|
nickjillings@1289
|
1405 if$
|
nickjillings@1289
|
1406 swap$ *
|
nickjillings@1289
|
1407 cap.status.std
|
nickjillings@1289
|
1408 }
|
nickjillings@1289
|
1409 if$
|
nickjillings@1289
|
1410 }
|
nickjillings@1289
|
1411
|
nickjillings@1289
|
1412 % This is used to format the booktitle of collection.
|
nickjillings@1289
|
1413 % Here the "intype" field is not supported, but "edition" is.
|
nickjillings@1289
|
1414 FUNCTION {format.in.booktitle.edition}
|
nickjillings@1289
|
1415 { booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1416 { this.to.prev.status
|
nickjillings@1289
|
1417 this.status.std
|
nickjillings@1289
|
1418 select.language
|
nickjillings@1289
|
1419 emphasize
|
nickjillings@1289
|
1420 edition empty$ 'skip$
|
nickjillings@1289
|
1421 { ", " *
|
nickjillings@1289
|
1422 edition
|
nickjillings@1289
|
1423 convert.edition
|
nickjillings@1289
|
1424 "l" change.case$
|
nickjillings@1289
|
1425 * "~" * bbl.edition *
|
nickjillings@1289
|
1426 }
|
nickjillings@1289
|
1427 if$
|
nickjillings@1289
|
1428 bbl.in " " * swap$ *
|
nickjillings@1289
|
1429 cap.status.std
|
nickjillings@1289
|
1430 }
|
nickjillings@1289
|
1431 if$
|
nickjillings@1289
|
1432 }
|
nickjillings@1289
|
1433
|
nickjillings@1289
|
1434 FUNCTION {format.article.title}
|
nickjillings@1289
|
1435 { title duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1436 { this.to.prev.status
|
nickjillings@1289
|
1437 this.status.std
|
nickjillings@1289
|
1438 "t" change.case$
|
nickjillings@1289
|
1439 }
|
nickjillings@1289
|
1440 if$
|
nickjillings@1289
|
1441 "title" bibinfo.check
|
nickjillings@1289
|
1442 duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1443 { quote.close 'this.status.quote :=
|
nickjillings@1289
|
1444 is.last.char.not.punct
|
nickjillings@1289
|
1445 { punct.std 'this.status.punct := }
|
nickjillings@1289
|
1446 { punct.no 'this.status.punct := }
|
nickjillings@1289
|
1447 if$
|
nickjillings@1289
|
1448 select.language
|
nickjillings@1289
|
1449 "``" swap$ *
|
nickjillings@1289
|
1450 cap.status.std
|
nickjillings@1289
|
1451 }
|
nickjillings@1289
|
1452 if$
|
nickjillings@1289
|
1453 }
|
nickjillings@1289
|
1454
|
nickjillings@1289
|
1455 FUNCTION {format.article.title.electronic}
|
nickjillings@1289
|
1456 { title duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1457 { this.to.prev.status
|
nickjillings@1289
|
1458 this.status.std
|
nickjillings@1289
|
1459 cap.status.std
|
nickjillings@1289
|
1460 "t" change.case$
|
nickjillings@1289
|
1461 }
|
nickjillings@1289
|
1462 if$
|
nickjillings@1289
|
1463 "title" bibinfo.check
|
nickjillings@1289
|
1464 duplicate$ empty$
|
nickjillings@1289
|
1465 { skip$ }
|
nickjillings@1289
|
1466 { select.language }
|
nickjillings@1289
|
1467 if$
|
nickjillings@1289
|
1468 }
|
nickjillings@1289
|
1469
|
nickjillings@1289
|
1470 FUNCTION {format.book.title.edition}
|
nickjillings@1289
|
1471 { title "title" bibinfo.check
|
nickjillings@1289
|
1472 duplicate$ empty$
|
nickjillings@1289
|
1473 { "empty title in " cite$ * warning$ }
|
nickjillings@1289
|
1474 { this.to.prev.status
|
nickjillings@1289
|
1475 this.status.std
|
nickjillings@1289
|
1476 select.language
|
nickjillings@1289
|
1477 emphasize
|
nickjillings@1289
|
1478 edition empty$ 'skip$
|
nickjillings@1289
|
1479 { ", " *
|
nickjillings@1289
|
1480 edition
|
nickjillings@1289
|
1481 convert.edition
|
nickjillings@1289
|
1482 status.cap
|
nickjillings@1289
|
1483 { "t" }
|
nickjillings@1289
|
1484 { "l" }
|
nickjillings@1289
|
1485 if$
|
nickjillings@1289
|
1486 change.case$
|
nickjillings@1289
|
1487 * "~" * bbl.edition *
|
nickjillings@1289
|
1488 }
|
nickjillings@1289
|
1489 if$
|
nickjillings@1289
|
1490 cap.status.std
|
nickjillings@1289
|
1491 }
|
nickjillings@1289
|
1492 if$
|
nickjillings@1289
|
1493 }
|
nickjillings@1289
|
1494
|
nickjillings@1289
|
1495 FUNCTION {format.book.title}
|
nickjillings@1289
|
1496 { title "title" bibinfo.check
|
nickjillings@1289
|
1497 duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1498 { this.to.prev.status
|
nickjillings@1289
|
1499 this.status.std
|
nickjillings@1289
|
1500 cap.status.std
|
nickjillings@1289
|
1501 select.language
|
nickjillings@1289
|
1502 emphasize
|
nickjillings@1289
|
1503 }
|
nickjillings@1289
|
1504 if$
|
nickjillings@1289
|
1505 }
|
nickjillings@1289
|
1506
|
nickjillings@1289
|
1507
|
nickjillings@1289
|
1508
|
nickjillings@1289
|
1509 %% journal
|
nickjillings@1289
|
1510
|
nickjillings@1289
|
1511 FUNCTION {format.journal}
|
nickjillings@1289
|
1512 { journal duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1513 { this.to.prev.status
|
nickjillings@1289
|
1514 this.status.std
|
nickjillings@1289
|
1515 cap.status.std
|
nickjillings@1289
|
1516 select.language
|
nickjillings@1289
|
1517 emphasize
|
nickjillings@1289
|
1518 }
|
nickjillings@1289
|
1519 if$
|
nickjillings@1289
|
1520 }
|
nickjillings@1289
|
1521
|
nickjillings@1289
|
1522
|
nickjillings@1289
|
1523
|
nickjillings@1289
|
1524 %% how published
|
nickjillings@1289
|
1525
|
nickjillings@1289
|
1526 FUNCTION {format.howpublished}
|
nickjillings@1289
|
1527 { howpublished duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1528 { this.to.prev.status
|
nickjillings@1289
|
1529 this.status.std
|
nickjillings@1289
|
1530 cap.status.std
|
nickjillings@1289
|
1531 }
|
nickjillings@1289
|
1532 if$
|
nickjillings@1289
|
1533 }
|
nickjillings@1289
|
1534
|
nickjillings@1289
|
1535
|
nickjillings@1289
|
1536
|
nickjillings@1289
|
1537 %% institutions/organization/publishers/school
|
nickjillings@1289
|
1538
|
nickjillings@1289
|
1539 FUNCTION {format.institution}
|
nickjillings@1289
|
1540 { institution duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1541 { this.to.prev.status
|
nickjillings@1289
|
1542 this.status.std
|
nickjillings@1289
|
1543 cap.status.std
|
nickjillings@1289
|
1544 }
|
nickjillings@1289
|
1545 if$
|
nickjillings@1289
|
1546 }
|
nickjillings@1289
|
1547
|
nickjillings@1289
|
1548 FUNCTION {format.organization}
|
nickjillings@1289
|
1549 { organization duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1550 { this.to.prev.status
|
nickjillings@1289
|
1551 this.status.std
|
nickjillings@1289
|
1552 cap.status.std
|
nickjillings@1289
|
1553 }
|
nickjillings@1289
|
1554 if$
|
nickjillings@1289
|
1555 }
|
nickjillings@1289
|
1556
|
nickjillings@1289
|
1557 FUNCTION {format.address.publisher.date}
|
nickjillings@1289
|
1558 { publisher "publisher" bibinfo.warn format.address.org.or.pub.date }
|
nickjillings@1289
|
1559
|
nickjillings@1289
|
1560 FUNCTION {format.address.publisher.date.nowarn}
|
nickjillings@1289
|
1561 { publisher "publisher" bibinfo.check format.address.org.or.pub.date }
|
nickjillings@1289
|
1562
|
nickjillings@1289
|
1563 FUNCTION {format.address.organization.date}
|
nickjillings@1289
|
1564 { organization "organization" bibinfo.check format.address.org.or.pub.date }
|
nickjillings@1289
|
1565
|
nickjillings@1289
|
1566 FUNCTION {format.school}
|
nickjillings@1289
|
1567 { school duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1568 { this.to.prev.status
|
nickjillings@1289
|
1569 this.status.std
|
nickjillings@1289
|
1570 cap.status.std
|
nickjillings@1289
|
1571 }
|
nickjillings@1289
|
1572 if$
|
nickjillings@1289
|
1573 }
|
nickjillings@1289
|
1574
|
nickjillings@1289
|
1575
|
nickjillings@1289
|
1576
|
nickjillings@1289
|
1577 %% volume/number/series/chapter/pages
|
nickjillings@1289
|
1578
|
nickjillings@1289
|
1579 FUNCTION {format.volume}
|
nickjillings@1289
|
1580 { volume empty.field.to.null.string
|
nickjillings@1289
|
1581 duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1582 { this.to.prev.status
|
nickjillings@1289
|
1583 this.status.std
|
nickjillings@1289
|
1584 bbl.volume
|
nickjillings@1289
|
1585 status.cap
|
nickjillings@1289
|
1586 { capitalize }
|
nickjillings@1289
|
1587 { skip$ }
|
nickjillings@1289
|
1588 if$
|
nickjillings@1289
|
1589 swap$ tie.or.space.prefix
|
nickjillings@1289
|
1590 "volume" bibinfo.check
|
nickjillings@1289
|
1591 * *
|
nickjillings@1289
|
1592 cap.status.std
|
nickjillings@1289
|
1593 }
|
nickjillings@1289
|
1594 if$
|
nickjillings@1289
|
1595 }
|
nickjillings@1289
|
1596
|
nickjillings@1289
|
1597 FUNCTION {format.number}
|
nickjillings@1289
|
1598 { number empty.field.to.null.string
|
nickjillings@1289
|
1599 duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1600 { this.to.prev.status
|
nickjillings@1289
|
1601 this.status.std
|
nickjillings@1289
|
1602 status.cap
|
nickjillings@1289
|
1603 { bbl.number capitalize }
|
nickjillings@1289
|
1604 { bbl.number }
|
nickjillings@1289
|
1605 if$
|
nickjillings@1289
|
1606 swap$ tie.or.space.prefix
|
nickjillings@1289
|
1607 "number" bibinfo.check
|
nickjillings@1289
|
1608 * *
|
nickjillings@1289
|
1609 cap.status.std
|
nickjillings@1289
|
1610 }
|
nickjillings@1289
|
1611 if$
|
nickjillings@1289
|
1612 }
|
nickjillings@1289
|
1613
|
nickjillings@1289
|
1614 FUNCTION {format.number.if.use.for.article}
|
nickjillings@1289
|
1615 { is.use.number.for.article
|
nickjillings@1289
|
1616 { format.number }
|
nickjillings@1289
|
1617 { "" }
|
nickjillings@1289
|
1618 if$
|
nickjillings@1289
|
1619 }
|
nickjillings@1289
|
1620
|
nickjillings@1289
|
1621 % IEEE does not seem to tie the series so closely with the volume
|
nickjillings@1289
|
1622 % and number as is done in other bibliography styles. Instead the
|
nickjillings@1289
|
1623 % series is treated somewhat like an extension of the title.
|
nickjillings@1289
|
1624 FUNCTION {format.series}
|
nickjillings@1289
|
1625 { series empty$
|
nickjillings@1289
|
1626 { "" }
|
nickjillings@1289
|
1627 { this.to.prev.status
|
nickjillings@1289
|
1628 this.status.std
|
nickjillings@1289
|
1629 bbl.series " " *
|
nickjillings@1289
|
1630 series "series" bibinfo.check *
|
nickjillings@1289
|
1631 cap.status.std
|
nickjillings@1289
|
1632 }
|
nickjillings@1289
|
1633 if$
|
nickjillings@1289
|
1634 }
|
nickjillings@1289
|
1635
|
nickjillings@1289
|
1636
|
nickjillings@1289
|
1637 FUNCTION {format.chapter}
|
nickjillings@1289
|
1638 { chapter empty$
|
nickjillings@1289
|
1639 { "" }
|
nickjillings@1289
|
1640 { this.to.prev.status
|
nickjillings@1289
|
1641 this.status.std
|
nickjillings@1289
|
1642 type empty$
|
nickjillings@1289
|
1643 { bbl.chapter }
|
nickjillings@1289
|
1644 { type "l" change.case$
|
nickjillings@1289
|
1645 "type" bibinfo.check
|
nickjillings@1289
|
1646 }
|
nickjillings@1289
|
1647 if$
|
nickjillings@1289
|
1648 chapter tie.or.space.prefix
|
nickjillings@1289
|
1649 "chapter" bibinfo.check
|
nickjillings@1289
|
1650 * *
|
nickjillings@1289
|
1651 cap.status.std
|
nickjillings@1289
|
1652 }
|
nickjillings@1289
|
1653 if$
|
nickjillings@1289
|
1654 }
|
nickjillings@1289
|
1655
|
nickjillings@1289
|
1656
|
nickjillings@1289
|
1657 % The intended use of format.paper is for paper numbers of inproceedings.
|
nickjillings@1289
|
1658 % The paper type can be overridden via the type field.
|
nickjillings@1289
|
1659 % We allow the type to be displayed even if the paper number is absent
|
nickjillings@1289
|
1660 % for things like "postdeadline paper"
|
nickjillings@1289
|
1661 FUNCTION {format.paper}
|
nickjillings@1289
|
1662 { is.use.paper
|
nickjillings@1289
|
1663 { paper empty$
|
nickjillings@1289
|
1664 { type empty$
|
nickjillings@1289
|
1665 { "" }
|
nickjillings@1289
|
1666 { this.to.prev.status
|
nickjillings@1289
|
1667 this.status.std
|
nickjillings@1289
|
1668 type "type" bibinfo.check
|
nickjillings@1289
|
1669 cap.status.std
|
nickjillings@1289
|
1670 }
|
nickjillings@1289
|
1671 if$
|
nickjillings@1289
|
1672 }
|
nickjillings@1289
|
1673 { this.to.prev.status
|
nickjillings@1289
|
1674 this.status.std
|
nickjillings@1289
|
1675 type empty$
|
nickjillings@1289
|
1676 { bbl.paper }
|
nickjillings@1289
|
1677 { type "type" bibinfo.check }
|
nickjillings@1289
|
1678 if$
|
nickjillings@1289
|
1679 " " * paper
|
nickjillings@1289
|
1680 "paper" bibinfo.check
|
nickjillings@1289
|
1681 *
|
nickjillings@1289
|
1682 cap.status.std
|
nickjillings@1289
|
1683 }
|
nickjillings@1289
|
1684 if$
|
nickjillings@1289
|
1685 }
|
nickjillings@1289
|
1686 { "" }
|
nickjillings@1289
|
1687 if$
|
nickjillings@1289
|
1688 }
|
nickjillings@1289
|
1689
|
nickjillings@1289
|
1690
|
nickjillings@1289
|
1691 FUNCTION {format.pages}
|
nickjillings@1289
|
1692 { pages duplicate$ empty$ 'skip$
|
nickjillings@1289
|
1693 { this.to.prev.status
|
nickjillings@1289
|
1694 this.status.std
|
nickjillings@1289
|
1695 duplicate$ is.multiple.pages
|
nickjillings@1289
|
1696 {
|
nickjillings@1289
|
1697 bbl.pages swap$
|
nickjillings@1289
|
1698 n.dashify
|
nickjillings@1289
|
1699 }
|
nickjillings@1289
|
1700 {
|
nickjillings@1289
|
1701 bbl.page swap$
|
nickjillings@1289
|
1702 }
|
nickjillings@1289
|
1703 if$
|
nickjillings@1289
|
1704 tie.or.space.prefix
|
nickjillings@1289
|
1705 "pages" bibinfo.check
|
nickjillings@1289
|
1706 * *
|
nickjillings@1289
|
1707 cap.status.std
|
nickjillings@1289
|
1708 }
|
nickjillings@1289
|
1709 if$
|
nickjillings@1289
|
1710 }
|
nickjillings@1289
|
1711
|
nickjillings@1289
|
1712
|
nickjillings@1289
|
1713
|
nickjillings@1289
|
1714 %% technical report number
|
nickjillings@1289
|
1715
|
nickjillings@1289
|
1716 FUNCTION {format.tech.report.number}
|
nickjillings@1289
|
1717 { number "number" bibinfo.check
|
nickjillings@1289
|
1718 this.to.prev.status
|
nickjillings@1289
|
1719 this.status.std
|
nickjillings@1289
|
1720 cap.status.std
|
nickjillings@1289
|
1721 type duplicate$ empty$
|
nickjillings@1289
|
1722 { pop$
|
nickjillings@1289
|
1723 bbl.techrep
|
nickjillings@1289
|
1724 }
|
nickjillings@1289
|
1725 { skip$ }
|
nickjillings@1289
|
1726 if$
|
nickjillings@1289
|
1727 "type" bibinfo.check
|
nickjillings@1289
|
1728 swap$ duplicate$ empty$
|
nickjillings@1289
|
1729 { pop$ }
|
nickjillings@1289
|
1730 { tie.or.space.prefix * * }
|
nickjillings@1289
|
1731 if$
|
nickjillings@1289
|
1732 }
|
nickjillings@1289
|
1733
|
nickjillings@1289
|
1734
|
nickjillings@1289
|
1735
|
nickjillings@1289
|
1736 %% note
|
nickjillings@1289
|
1737
|
nickjillings@1289
|
1738 FUNCTION {format.note}
|
nickjillings@1289
|
1739 { note empty$
|
nickjillings@1289
|
1740 { "" }
|
nickjillings@1289
|
1741 { this.to.prev.status
|
nickjillings@1289
|
1742 this.status.std
|
nickjillings@1289
|
1743 punct.period 'this.status.punct :=
|
nickjillings@1289
|
1744 note #1 #1 substring$
|
nickjillings@1289
|
1745 duplicate$ "{" =
|
nickjillings@1289
|
1746 { skip$ }
|
nickjillings@1289
|
1747 { status.cap
|
nickjillings@1289
|
1748 { "u" }
|
nickjillings@1289
|
1749 { "l" }
|
nickjillings@1289
|
1750 if$
|
nickjillings@1289
|
1751 change.case$
|
nickjillings@1289
|
1752 }
|
nickjillings@1289
|
1753 if$
|
nickjillings@1289
|
1754 note #2 global.max$ substring$ * "note" bibinfo.check
|
nickjillings@1289
|
1755 cap.yes 'status.cap :=
|
nickjillings@1289
|
1756 }
|
nickjillings@1289
|
1757 if$
|
nickjillings@1289
|
1758 }
|
nickjillings@1289
|
1759
|
nickjillings@1289
|
1760
|
nickjillings@1289
|
1761
|
nickjillings@1289
|
1762 %% patent
|
nickjillings@1289
|
1763
|
nickjillings@1289
|
1764 FUNCTION {format.patent.date}
|
nickjillings@1289
|
1765 { this.to.prev.status
|
nickjillings@1289
|
1766 this.status.std
|
nickjillings@1289
|
1767 year empty$
|
nickjillings@1289
|
1768 { monthfiled duplicate$ empty$
|
nickjillings@1289
|
1769 { "monthfiled" bibinfo.check pop$ "" }
|
nickjillings@1289
|
1770 { "monthfiled" bibinfo.check }
|
nickjillings@1289
|
1771 if$
|
nickjillings@1289
|
1772 dayfiled duplicate$ empty$
|
nickjillings@1289
|
1773 { "dayfiled" bibinfo.check pop$ "" * }
|
nickjillings@1289
|
1774 { "dayfiled" bibinfo.check
|
nickjillings@1289
|
1775 monthfiled empty$
|
nickjillings@1289
|
1776 { "dayfiled without a monthfiled in " cite$ * warning$
|
nickjillings@1289
|
1777 *
|
nickjillings@1289
|
1778 }
|
nickjillings@1289
|
1779 { " " swap$ * * }
|
nickjillings@1289
|
1780 if$
|
nickjillings@1289
|
1781 }
|
nickjillings@1289
|
1782 if$
|
nickjillings@1289
|
1783 yearfiled empty$
|
nickjillings@1289
|
1784 { "no year or yearfiled in " cite$ * warning$ }
|
nickjillings@1289
|
1785 { yearfiled "yearfiled" bibinfo.check
|
nickjillings@1289
|
1786 swap$
|
nickjillings@1289
|
1787 duplicate$ empty$
|
nickjillings@1289
|
1788 { pop$ }
|
nickjillings@1289
|
1789 { ", " * swap$ * }
|
nickjillings@1289
|
1790 if$
|
nickjillings@1289
|
1791 }
|
nickjillings@1289
|
1792 if$
|
nickjillings@1289
|
1793 }
|
nickjillings@1289
|
1794 { month duplicate$ empty$
|
nickjillings@1289
|
1795 { "month" bibinfo.check pop$ "" }
|
nickjillings@1289
|
1796 { "month" bibinfo.check }
|
nickjillings@1289
|
1797 if$
|
nickjillings@1289
|
1798 day duplicate$ empty$
|
nickjillings@1289
|
1799 { "day" bibinfo.check pop$ "" * }
|
nickjillings@1289
|
1800 { "day" bibinfo.check
|
nickjillings@1289
|
1801 month empty$
|
nickjillings@1289
|
1802 { "day without a month in " cite$ * warning$
|
nickjillings@1289
|
1803 *
|
nickjillings@1289
|
1804 }
|
nickjillings@1289
|
1805 { " " swap$ * * }
|
nickjillings@1289
|
1806 if$
|
nickjillings@1289
|
1807 }
|
nickjillings@1289
|
1808 if$
|
nickjillings@1289
|
1809 year "year" bibinfo.check
|
nickjillings@1289
|
1810 swap$
|
nickjillings@1289
|
1811 duplicate$ empty$
|
nickjillings@1289
|
1812 { pop$ }
|
nickjillings@1289
|
1813 { ", " * swap$ * }
|
nickjillings@1289
|
1814 if$
|
nickjillings@1289
|
1815 }
|
nickjillings@1289
|
1816 if$
|
nickjillings@1289
|
1817 cap.status.std
|
nickjillings@1289
|
1818 }
|
nickjillings@1289
|
1819
|
nickjillings@1289
|
1820 FUNCTION {format.patent.nationality.type.number}
|
nickjillings@1289
|
1821 { this.to.prev.status
|
nickjillings@1289
|
1822 this.status.std
|
nickjillings@1289
|
1823 nationality duplicate$ empty$
|
nickjillings@1289
|
1824 { "nationality" bibinfo.warn pop$ "" }
|
nickjillings@1289
|
1825 { "nationality" bibinfo.check
|
nickjillings@1289
|
1826 duplicate$ "l" change.case$ "united states" =
|
nickjillings@1289
|
1827 { pop$ bbl.patentUS }
|
nickjillings@1289
|
1828 { skip$ }
|
nickjillings@1289
|
1829 if$
|
nickjillings@1289
|
1830 " " *
|
nickjillings@1289
|
1831 }
|
nickjillings@1289
|
1832 if$
|
nickjillings@1289
|
1833 type empty$
|
nickjillings@1289
|
1834 { bbl.patent "type" bibinfo.check }
|
nickjillings@1289
|
1835 { type "type" bibinfo.check }
|
nickjillings@1289
|
1836 if$
|
nickjillings@1289
|
1837 *
|
nickjillings@1289
|
1838 number duplicate$ empty$
|
nickjillings@1289
|
1839 { "number" bibinfo.warn pop$ }
|
nickjillings@1289
|
1840 { "number" bibinfo.check
|
nickjillings@1289
|
1841 large.number.separate
|
nickjillings@1289
|
1842 swap$ " " * swap$ *
|
nickjillings@1289
|
1843 }
|
nickjillings@1289
|
1844 if$
|
nickjillings@1289
|
1845 cap.status.std
|
nickjillings@1289
|
1846 }
|
nickjillings@1289
|
1847
|
nickjillings@1289
|
1848
|
nickjillings@1289
|
1849
|
nickjillings@1289
|
1850 %% standard
|
nickjillings@1289
|
1851
|
nickjillings@1289
|
1852 FUNCTION {format.organization.institution.standard.type.number}
|
nickjillings@1289
|
1853 { this.to.prev.status
|
nickjillings@1289
|
1854 this.status.std
|
nickjillings@1289
|
1855 organization duplicate$ empty$
|
nickjillings@1289
|
1856 { pop$
|
nickjillings@1289
|
1857 institution duplicate$ empty$
|
nickjillings@1289
|
1858 { "institution" bibinfo.warn }
|
nickjillings@1289
|
1859 { "institution" bibinfo.warn " " * }
|
nickjillings@1289
|
1860 if$
|
nickjillings@1289
|
1861 }
|
nickjillings@1289
|
1862 { "organization" bibinfo.warn " " * }
|
nickjillings@1289
|
1863 if$
|
nickjillings@1289
|
1864 type empty$
|
nickjillings@1289
|
1865 { bbl.standard "type" bibinfo.check }
|
nickjillings@1289
|
1866 { type "type" bibinfo.check }
|
nickjillings@1289
|
1867 if$
|
nickjillings@1289
|
1868 *
|
nickjillings@1289
|
1869 number duplicate$ empty$
|
nickjillings@1289
|
1870 { "number" bibinfo.check pop$ }
|
nickjillings@1289
|
1871 { "number" bibinfo.check
|
nickjillings@1289
|
1872 large.number.separate
|
nickjillings@1289
|
1873 swap$ " " * swap$ *
|
nickjillings@1289
|
1874 }
|
nickjillings@1289
|
1875 if$
|
nickjillings@1289
|
1876 cap.status.std
|
nickjillings@1289
|
1877 }
|
nickjillings@1289
|
1878
|
nickjillings@1289
|
1879 FUNCTION {format.revision}
|
nickjillings@1289
|
1880 { revision empty$
|
nickjillings@1289
|
1881 { "" }
|
nickjillings@1289
|
1882 { this.to.prev.status
|
nickjillings@1289
|
1883 this.status.std
|
nickjillings@1289
|
1884 bbl.revision
|
nickjillings@1289
|
1885 revision tie.or.space.prefix
|
nickjillings@1289
|
1886 "revision" bibinfo.check
|
nickjillings@1289
|
1887 * *
|
nickjillings@1289
|
1888 cap.status.std
|
nickjillings@1289
|
1889 }
|
nickjillings@1289
|
1890 if$
|
nickjillings@1289
|
1891 }
|
nickjillings@1289
|
1892
|
nickjillings@1289
|
1893
|
nickjillings@1289
|
1894 %% thesis
|
nickjillings@1289
|
1895
|
nickjillings@1289
|
1896 FUNCTION {format.master.thesis.type}
|
nickjillings@1289
|
1897 { this.to.prev.status
|
nickjillings@1289
|
1898 this.status.std
|
nickjillings@1289
|
1899 type empty$
|
nickjillings@1289
|
1900 {
|
nickjillings@1289
|
1901 bbl.mthesis
|
nickjillings@1289
|
1902 }
|
nickjillings@1289
|
1903 {
|
nickjillings@1289
|
1904 type "type" bibinfo.check
|
nickjillings@1289
|
1905 }
|
nickjillings@1289
|
1906 if$
|
nickjillings@1289
|
1907 cap.status.std
|
nickjillings@1289
|
1908 }
|
nickjillings@1289
|
1909
|
nickjillings@1289
|
1910 FUNCTION {format.phd.thesis.type}
|
nickjillings@1289
|
1911 { this.to.prev.status
|
nickjillings@1289
|
1912 this.status.std
|
nickjillings@1289
|
1913 type empty$
|
nickjillings@1289
|
1914 {
|
nickjillings@1289
|
1915 bbl.phdthesis
|
nickjillings@1289
|
1916 }
|
nickjillings@1289
|
1917 {
|
nickjillings@1289
|
1918 type "type" bibinfo.check
|
nickjillings@1289
|
1919 }
|
nickjillings@1289
|
1920 if$
|
nickjillings@1289
|
1921 cap.status.std
|
nickjillings@1289
|
1922 }
|
nickjillings@1289
|
1923
|
nickjillings@1289
|
1924
|
nickjillings@1289
|
1925
|
nickjillings@1289
|
1926 %% URL
|
nickjillings@1289
|
1927
|
nickjillings@1289
|
1928 FUNCTION {format.url}
|
nickjillings@1289
|
1929 { url empty$
|
nickjillings@1289
|
1930 { "" }
|
nickjillings@1289
|
1931 { this.to.prev.status
|
nickjillings@1289
|
1932 this.status.std
|
nickjillings@1289
|
1933 cap.yes 'status.cap :=
|
nickjillings@1289
|
1934 name.url.prefix " " *
|
nickjillings@1289
|
1935 "\url{" * url * "}" *
|
nickjillings@1289
|
1936 punct.no 'this.status.punct :=
|
nickjillings@1289
|
1937 punct.period 'prev.status.punct :=
|
nickjillings@1289
|
1938 space.normal 'this.status.space :=
|
nickjillings@1289
|
1939 space.normal 'prev.status.space :=
|
nickjillings@1289
|
1940 quote.no 'this.status.quote :=
|
nickjillings@1289
|
1941 }
|
nickjillings@1289
|
1942 if$
|
nickjillings@1289
|
1943 }
|
nickjillings@1289
|
1944
|
nickjillings@1289
|
1945
|
nickjillings@1289
|
1946
|
nickjillings@1289
|
1947
|
nickjillings@1289
|
1948 %%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
1949 %% ENTRY HANDLERS %%
|
nickjillings@1289
|
1950 %%%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
1951
|
nickjillings@1289
|
1952
|
nickjillings@1289
|
1953 % Note: In many journals, IEEE (or the authors) tend not to show the number
|
nickjillings@1289
|
1954 % for articles, so the display of the number is controlled here by the
|
nickjillings@1289
|
1955 % switch "is.use.number.for.article"
|
nickjillings@1289
|
1956 FUNCTION {article}
|
nickjillings@1289
|
1957 { std.status.using.comma
|
nickjillings@1289
|
1958 start.entry
|
nickjillings@1289
|
1959 if.url.alt.interword.spacing
|
nickjillings@1289
|
1960 format.authors "author" output.warn
|
nickjillings@1289
|
1961 name.or.dash
|
nickjillings@1289
|
1962 format.article.title "title" output.warn
|
nickjillings@1289
|
1963 format.journal "journal" bibinfo.check "journal" output.warn
|
nickjillings@1289
|
1964 format.volume output
|
nickjillings@1289
|
1965 format.number.if.use.for.article output
|
nickjillings@1289
|
1966 format.pages output
|
nickjillings@1289
|
1967 format.date "year" output.warn
|
nickjillings@1289
|
1968 format.note output
|
nickjillings@1289
|
1969 format.url output
|
nickjillings@1289
|
1970 fin.entry
|
nickjillings@1289
|
1971 if.url.std.interword.spacing
|
nickjillings@1289
|
1972 }
|
nickjillings@1289
|
1973
|
nickjillings@1289
|
1974 FUNCTION {book}
|
nickjillings@1289
|
1975 { std.status.using.comma
|
nickjillings@1289
|
1976 start.entry
|
nickjillings@1289
|
1977 if.url.alt.interword.spacing
|
nickjillings@1289
|
1978 author empty$
|
nickjillings@1289
|
1979 { format.editors "author and editor" output.warn }
|
nickjillings@1289
|
1980 { format.authors output.nonnull }
|
nickjillings@1289
|
1981 if$
|
nickjillings@1289
|
1982 name.or.dash
|
nickjillings@1289
|
1983 format.book.title.edition output
|
nickjillings@1289
|
1984 format.series output
|
nickjillings@1289
|
1985 author empty$
|
nickjillings@1289
|
1986 { skip$ }
|
nickjillings@1289
|
1987 { format.editors output }
|
nickjillings@1289
|
1988 if$
|
nickjillings@1289
|
1989 format.address.publisher.date output
|
nickjillings@1289
|
1990 format.volume output
|
nickjillings@1289
|
1991 format.number output
|
nickjillings@1289
|
1992 format.note output
|
nickjillings@1289
|
1993 format.url output
|
nickjillings@1289
|
1994 fin.entry
|
nickjillings@1289
|
1995 if.url.std.interword.spacing
|
nickjillings@1289
|
1996 }
|
nickjillings@1289
|
1997
|
nickjillings@1289
|
1998 FUNCTION {booklet}
|
nickjillings@1289
|
1999 { std.status.using.comma
|
nickjillings@1289
|
2000 start.entry
|
nickjillings@1289
|
2001 if.url.alt.interword.spacing
|
nickjillings@1289
|
2002 format.authors output
|
nickjillings@1289
|
2003 name.or.dash
|
nickjillings@1289
|
2004 format.article.title "title" output.warn
|
nickjillings@1289
|
2005 format.howpublished "howpublished" bibinfo.check output
|
nickjillings@1289
|
2006 format.organization "organization" bibinfo.check output
|
nickjillings@1289
|
2007 format.address "address" bibinfo.check output
|
nickjillings@1289
|
2008 format.date output
|
nickjillings@1289
|
2009 format.note output
|
nickjillings@1289
|
2010 format.url output
|
nickjillings@1289
|
2011 fin.entry
|
nickjillings@1289
|
2012 if.url.std.interword.spacing
|
nickjillings@1289
|
2013 }
|
nickjillings@1289
|
2014
|
nickjillings@1289
|
2015 FUNCTION {electronic}
|
nickjillings@1289
|
2016 { std.status.using.period
|
nickjillings@1289
|
2017 start.entry
|
nickjillings@1289
|
2018 if.url.alt.interword.spacing
|
nickjillings@1289
|
2019 format.authors output
|
nickjillings@1289
|
2020 name.or.dash
|
nickjillings@1289
|
2021 format.date.electronic output
|
nickjillings@1289
|
2022 format.article.title.electronic output
|
nickjillings@1289
|
2023 format.howpublished "howpublished" bibinfo.check output
|
nickjillings@1289
|
2024 format.organization "organization" bibinfo.check output
|
nickjillings@1289
|
2025 format.address "address" bibinfo.check output
|
nickjillings@1289
|
2026 format.note output
|
nickjillings@1289
|
2027 format.url output
|
nickjillings@1289
|
2028 fin.entry
|
nickjillings@1289
|
2029 empty.entry.warn
|
nickjillings@1289
|
2030 if.url.std.interword.spacing
|
nickjillings@1289
|
2031 }
|
nickjillings@1289
|
2032
|
nickjillings@1289
|
2033 FUNCTION {inbook}
|
nickjillings@1289
|
2034 { std.status.using.comma
|
nickjillings@1289
|
2035 start.entry
|
nickjillings@1289
|
2036 if.url.alt.interword.spacing
|
nickjillings@1289
|
2037 author empty$
|
nickjillings@1289
|
2038 { format.editors "author and editor" output.warn }
|
nickjillings@1289
|
2039 { format.authors output.nonnull }
|
nickjillings@1289
|
2040 if$
|
nickjillings@1289
|
2041 name.or.dash
|
nickjillings@1289
|
2042 format.book.title.edition output
|
nickjillings@1289
|
2043 format.series output
|
nickjillings@1289
|
2044 format.address.publisher.date output
|
nickjillings@1289
|
2045 format.volume output
|
nickjillings@1289
|
2046 format.number output
|
nickjillings@1289
|
2047 format.chapter output
|
nickjillings@1289
|
2048 format.pages output
|
nickjillings@1289
|
2049 format.note output
|
nickjillings@1289
|
2050 format.url output
|
nickjillings@1289
|
2051 fin.entry
|
nickjillings@1289
|
2052 if.url.std.interword.spacing
|
nickjillings@1289
|
2053 }
|
nickjillings@1289
|
2054
|
nickjillings@1289
|
2055 FUNCTION {incollection}
|
nickjillings@1289
|
2056 { std.status.using.comma
|
nickjillings@1289
|
2057 start.entry
|
nickjillings@1289
|
2058 if.url.alt.interword.spacing
|
nickjillings@1289
|
2059 format.authors "author" output.warn
|
nickjillings@1289
|
2060 name.or.dash
|
nickjillings@1289
|
2061 format.article.title "title" output.warn
|
nickjillings@1289
|
2062 format.in.booktitle.edition "booktitle" output.warn
|
nickjillings@1289
|
2063 format.series output
|
nickjillings@1289
|
2064 format.editors output
|
nickjillings@1289
|
2065 format.address.publisher.date.nowarn output
|
nickjillings@1289
|
2066 format.volume output
|
nickjillings@1289
|
2067 format.number output
|
nickjillings@1289
|
2068 format.chapter output
|
nickjillings@1289
|
2069 format.pages output
|
nickjillings@1289
|
2070 format.note output
|
nickjillings@1289
|
2071 format.url output
|
nickjillings@1289
|
2072 fin.entry
|
nickjillings@1289
|
2073 if.url.std.interword.spacing
|
nickjillings@1289
|
2074 }
|
nickjillings@1289
|
2075
|
nickjillings@1289
|
2076 FUNCTION {inproceedings}
|
nickjillings@1289
|
2077 { std.status.using.comma
|
nickjillings@1289
|
2078 start.entry
|
nickjillings@1289
|
2079 if.url.alt.interword.spacing
|
nickjillings@1289
|
2080 format.authors "author" output.warn
|
nickjillings@1289
|
2081 name.or.dash
|
nickjillings@1289
|
2082 format.article.title "title" output.warn
|
nickjillings@1289
|
2083 format.in.booktitle "booktitle" output.warn
|
nickjillings@1289
|
2084 format.series output
|
nickjillings@1289
|
2085 format.editors output
|
nickjillings@1289
|
2086 format.volume output
|
nickjillings@1289
|
2087 format.number output
|
nickjillings@1289
|
2088 publisher empty$
|
nickjillings@1289
|
2089 { format.address.organization.date output }
|
nickjillings@1289
|
2090 { format.organization "organization" bibinfo.check output
|
nickjillings@1289
|
2091 format.address.publisher.date output
|
nickjillings@1289
|
2092 }
|
nickjillings@1289
|
2093 if$
|
nickjillings@1289
|
2094 format.paper output
|
nickjillings@1289
|
2095 format.pages output
|
nickjillings@1289
|
2096 format.note output
|
nickjillings@1289
|
2097 format.url output
|
nickjillings@1289
|
2098 fin.entry
|
nickjillings@1289
|
2099 if.url.std.interword.spacing
|
nickjillings@1289
|
2100 }
|
nickjillings@1289
|
2101
|
nickjillings@1289
|
2102 FUNCTION {manual}
|
nickjillings@1289
|
2103 { std.status.using.comma
|
nickjillings@1289
|
2104 start.entry
|
nickjillings@1289
|
2105 if.url.alt.interword.spacing
|
nickjillings@1289
|
2106 format.authors output
|
nickjillings@1289
|
2107 name.or.dash
|
nickjillings@1289
|
2108 format.book.title.edition "title" output.warn
|
nickjillings@1289
|
2109 format.howpublished "howpublished" bibinfo.check output
|
nickjillings@1289
|
2110 format.organization "organization" bibinfo.check output
|
nickjillings@1289
|
2111 format.address "address" bibinfo.check output
|
nickjillings@1289
|
2112 format.date output
|
nickjillings@1289
|
2113 format.note output
|
nickjillings@1289
|
2114 format.url output
|
nickjillings@1289
|
2115 fin.entry
|
nickjillings@1289
|
2116 if.url.std.interword.spacing
|
nickjillings@1289
|
2117 }
|
nickjillings@1289
|
2118
|
nickjillings@1289
|
2119 FUNCTION {mastersthesis}
|
nickjillings@1289
|
2120 { std.status.using.comma
|
nickjillings@1289
|
2121 start.entry
|
nickjillings@1289
|
2122 if.url.alt.interword.spacing
|
nickjillings@1289
|
2123 format.authors "author" output.warn
|
nickjillings@1289
|
2124 name.or.dash
|
nickjillings@1289
|
2125 format.article.title "title" output.warn
|
nickjillings@1289
|
2126 format.master.thesis.type output.nonnull
|
nickjillings@1289
|
2127 format.school "school" bibinfo.warn output
|
nickjillings@1289
|
2128 format.address "address" bibinfo.check output
|
nickjillings@1289
|
2129 format.date "year" output.warn
|
nickjillings@1289
|
2130 format.note output
|
nickjillings@1289
|
2131 format.url output
|
nickjillings@1289
|
2132 fin.entry
|
nickjillings@1289
|
2133 if.url.std.interword.spacing
|
nickjillings@1289
|
2134 }
|
nickjillings@1289
|
2135
|
nickjillings@1289
|
2136 FUNCTION {misc}
|
nickjillings@1289
|
2137 { std.status.using.comma
|
nickjillings@1289
|
2138 start.entry
|
nickjillings@1289
|
2139 if.url.alt.interword.spacing
|
nickjillings@1289
|
2140 format.authors output
|
nickjillings@1289
|
2141 name.or.dash
|
nickjillings@1289
|
2142 format.article.title output
|
nickjillings@1289
|
2143 format.howpublished "howpublished" bibinfo.check output
|
nickjillings@1289
|
2144 format.organization "organization" bibinfo.check output
|
nickjillings@1289
|
2145 format.address "address" bibinfo.check output
|
nickjillings@1289
|
2146 format.pages output
|
nickjillings@1289
|
2147 format.date output
|
nickjillings@1289
|
2148 format.note output
|
nickjillings@1289
|
2149 format.url output
|
nickjillings@1289
|
2150 fin.entry
|
nickjillings@1289
|
2151 empty.entry.warn
|
nickjillings@1289
|
2152 if.url.std.interword.spacing
|
nickjillings@1289
|
2153 }
|
nickjillings@1289
|
2154
|
nickjillings@1289
|
2155 FUNCTION {patent}
|
nickjillings@1289
|
2156 { std.status.using.comma
|
nickjillings@1289
|
2157 start.entry
|
nickjillings@1289
|
2158 if.url.alt.interword.spacing
|
nickjillings@1289
|
2159 format.authors output
|
nickjillings@1289
|
2160 name.or.dash
|
nickjillings@1289
|
2161 format.article.title output
|
nickjillings@1289
|
2162 format.patent.nationality.type.number output
|
nickjillings@1289
|
2163 format.patent.date output
|
nickjillings@1289
|
2164 format.note output
|
nickjillings@1289
|
2165 format.url output
|
nickjillings@1289
|
2166 fin.entry
|
nickjillings@1289
|
2167 empty.entry.warn
|
nickjillings@1289
|
2168 if.url.std.interword.spacing
|
nickjillings@1289
|
2169 }
|
nickjillings@1289
|
2170
|
nickjillings@1289
|
2171 FUNCTION {periodical}
|
nickjillings@1289
|
2172 { std.status.using.comma
|
nickjillings@1289
|
2173 start.entry
|
nickjillings@1289
|
2174 if.url.alt.interword.spacing
|
nickjillings@1289
|
2175 format.editors output
|
nickjillings@1289
|
2176 name.or.dash
|
nickjillings@1289
|
2177 format.book.title "title" output.warn
|
nickjillings@1289
|
2178 format.series output
|
nickjillings@1289
|
2179 format.volume output
|
nickjillings@1289
|
2180 format.number output
|
nickjillings@1289
|
2181 format.organization "organization" bibinfo.check output
|
nickjillings@1289
|
2182 format.date "year" output.warn
|
nickjillings@1289
|
2183 format.note output
|
nickjillings@1289
|
2184 format.url output
|
nickjillings@1289
|
2185 fin.entry
|
nickjillings@1289
|
2186 if.url.std.interword.spacing
|
nickjillings@1289
|
2187 }
|
nickjillings@1289
|
2188
|
nickjillings@1289
|
2189 FUNCTION {phdthesis}
|
nickjillings@1289
|
2190 { std.status.using.comma
|
nickjillings@1289
|
2191 start.entry
|
nickjillings@1289
|
2192 if.url.alt.interword.spacing
|
nickjillings@1289
|
2193 format.authors "author" output.warn
|
nickjillings@1289
|
2194 name.or.dash
|
nickjillings@1289
|
2195 format.article.title "title" output.warn
|
nickjillings@1289
|
2196 format.phd.thesis.type output.nonnull
|
nickjillings@1289
|
2197 format.school "school" bibinfo.warn output
|
nickjillings@1289
|
2198 format.address "address" bibinfo.check output
|
nickjillings@1289
|
2199 format.date "year" output.warn
|
nickjillings@1289
|
2200 format.note output
|
nickjillings@1289
|
2201 format.url output
|
nickjillings@1289
|
2202 fin.entry
|
nickjillings@1289
|
2203 if.url.std.interword.spacing
|
nickjillings@1289
|
2204 }
|
nickjillings@1289
|
2205
|
nickjillings@1289
|
2206 FUNCTION {proceedings}
|
nickjillings@1289
|
2207 { std.status.using.comma
|
nickjillings@1289
|
2208 start.entry
|
nickjillings@1289
|
2209 if.url.alt.interword.spacing
|
nickjillings@1289
|
2210 format.editors output
|
nickjillings@1289
|
2211 name.or.dash
|
nickjillings@1289
|
2212 format.book.title "title" output.warn
|
nickjillings@1289
|
2213 format.series output
|
nickjillings@1289
|
2214 format.volume output
|
nickjillings@1289
|
2215 format.number output
|
nickjillings@1289
|
2216 publisher empty$
|
nickjillings@1289
|
2217 { format.address.organization.date output }
|
nickjillings@1289
|
2218 { format.organization "organization" bibinfo.check output
|
nickjillings@1289
|
2219 format.address.publisher.date output
|
nickjillings@1289
|
2220 }
|
nickjillings@1289
|
2221 if$
|
nickjillings@1289
|
2222 format.note output
|
nickjillings@1289
|
2223 format.url output
|
nickjillings@1289
|
2224 fin.entry
|
nickjillings@1289
|
2225 if.url.std.interword.spacing
|
nickjillings@1289
|
2226 }
|
nickjillings@1289
|
2227
|
nickjillings@1289
|
2228 FUNCTION {standard}
|
nickjillings@1289
|
2229 { std.status.using.comma
|
nickjillings@1289
|
2230 start.entry
|
nickjillings@1289
|
2231 if.url.alt.interword.spacing
|
nickjillings@1289
|
2232 format.authors output
|
nickjillings@1289
|
2233 name.or.dash
|
nickjillings@1289
|
2234 format.book.title "title" output.warn
|
nickjillings@1289
|
2235 format.howpublished "howpublished" bibinfo.check output
|
nickjillings@1289
|
2236 format.organization.institution.standard.type.number output
|
nickjillings@1289
|
2237 format.revision output
|
nickjillings@1289
|
2238 format.date output
|
nickjillings@1289
|
2239 format.note output
|
nickjillings@1289
|
2240 format.url output
|
nickjillings@1289
|
2241 fin.entry
|
nickjillings@1289
|
2242 if.url.std.interword.spacing
|
nickjillings@1289
|
2243 }
|
nickjillings@1289
|
2244
|
nickjillings@1289
|
2245 FUNCTION {techreport}
|
nickjillings@1289
|
2246 { std.status.using.comma
|
nickjillings@1289
|
2247 start.entry
|
nickjillings@1289
|
2248 if.url.alt.interword.spacing
|
nickjillings@1289
|
2249 format.authors "author" output.warn
|
nickjillings@1289
|
2250 name.or.dash
|
nickjillings@1289
|
2251 format.article.title "title" output.warn
|
nickjillings@1289
|
2252 format.howpublished "howpublished" bibinfo.check output
|
nickjillings@1289
|
2253 format.institution "institution" bibinfo.warn output
|
nickjillings@1289
|
2254 format.address "address" bibinfo.check output
|
nickjillings@1289
|
2255 format.tech.report.number output.nonnull
|
nickjillings@1289
|
2256 format.date "year" output.warn
|
nickjillings@1289
|
2257 format.note output
|
nickjillings@1289
|
2258 format.url output
|
nickjillings@1289
|
2259 fin.entry
|
nickjillings@1289
|
2260 if.url.std.interword.spacing
|
nickjillings@1289
|
2261 }
|
nickjillings@1289
|
2262
|
nickjillings@1289
|
2263 FUNCTION {unpublished}
|
nickjillings@1289
|
2264 { std.status.using.comma
|
nickjillings@1289
|
2265 start.entry
|
nickjillings@1289
|
2266 if.url.alt.interword.spacing
|
nickjillings@1289
|
2267 format.authors "author" output.warn
|
nickjillings@1289
|
2268 name.or.dash
|
nickjillings@1289
|
2269 format.article.title "title" output.warn
|
nickjillings@1289
|
2270 format.date output
|
nickjillings@1289
|
2271 format.note "note" output.warn
|
nickjillings@1289
|
2272 format.url output
|
nickjillings@1289
|
2273 fin.entry
|
nickjillings@1289
|
2274 if.url.std.interword.spacing
|
nickjillings@1289
|
2275 }
|
nickjillings@1289
|
2276
|
nickjillings@1289
|
2277
|
nickjillings@1289
|
2278 % The special entry type which provides the user interface to the
|
nickjillings@1289
|
2279 % BST controls
|
nickjillings@1289
|
2280 FUNCTION {IEEEtranBSTCTL}
|
nickjillings@1289
|
2281 { is.print.banners.to.terminal
|
nickjillings@1289
|
2282 { "** IEEEtran BST control entry " quote$ * cite$ * quote$ * " detected." *
|
nickjillings@1289
|
2283 top$
|
nickjillings@1289
|
2284 }
|
nickjillings@1289
|
2285 { skip$ }
|
nickjillings@1289
|
2286 if$
|
nickjillings@1289
|
2287 CTLuse_article_number
|
nickjillings@1289
|
2288 empty$
|
nickjillings@1289
|
2289 { skip$ }
|
nickjillings@1289
|
2290 { CTLuse_article_number
|
nickjillings@1289
|
2291 yes.no.to.int
|
nickjillings@1289
|
2292 'is.use.number.for.article :=
|
nickjillings@1289
|
2293 }
|
nickjillings@1289
|
2294 if$
|
nickjillings@1289
|
2295 CTLuse_paper
|
nickjillings@1289
|
2296 empty$
|
nickjillings@1289
|
2297 { skip$ }
|
nickjillings@1289
|
2298 { CTLuse_paper
|
nickjillings@1289
|
2299 yes.no.to.int
|
nickjillings@1289
|
2300 'is.use.paper :=
|
nickjillings@1289
|
2301 }
|
nickjillings@1289
|
2302 if$
|
nickjillings@1289
|
2303 CTLuse_forced_etal
|
nickjillings@1289
|
2304 empty$
|
nickjillings@1289
|
2305 { skip$ }
|
nickjillings@1289
|
2306 { CTLuse_forced_etal
|
nickjillings@1289
|
2307 yes.no.to.int
|
nickjillings@1289
|
2308 'is.forced.et.al :=
|
nickjillings@1289
|
2309 }
|
nickjillings@1289
|
2310 if$
|
nickjillings@1289
|
2311 CTLmax_names_forced_etal
|
nickjillings@1289
|
2312 empty$
|
nickjillings@1289
|
2313 { skip$ }
|
nickjillings@1289
|
2314 { CTLmax_names_forced_etal
|
nickjillings@1289
|
2315 string.to.integer
|
nickjillings@1289
|
2316 'max.num.names.before.forced.et.al :=
|
nickjillings@1289
|
2317 }
|
nickjillings@1289
|
2318 if$
|
nickjillings@1289
|
2319 CTLnames_show_etal
|
nickjillings@1289
|
2320 empty$
|
nickjillings@1289
|
2321 { skip$ }
|
nickjillings@1289
|
2322 { CTLnames_show_etal
|
nickjillings@1289
|
2323 string.to.integer
|
nickjillings@1289
|
2324 'num.names.shown.with.forced.et.al :=
|
nickjillings@1289
|
2325 }
|
nickjillings@1289
|
2326 if$
|
nickjillings@1289
|
2327 CTLuse_alt_spacing
|
nickjillings@1289
|
2328 empty$
|
nickjillings@1289
|
2329 { skip$ }
|
nickjillings@1289
|
2330 { CTLuse_alt_spacing
|
nickjillings@1289
|
2331 yes.no.to.int
|
nickjillings@1289
|
2332 'is.use.alt.interword.spacing :=
|
nickjillings@1289
|
2333 }
|
nickjillings@1289
|
2334 if$
|
nickjillings@1289
|
2335 CTLalt_stretch_factor
|
nickjillings@1289
|
2336 empty$
|
nickjillings@1289
|
2337 { skip$ }
|
nickjillings@1289
|
2338 { CTLalt_stretch_factor
|
nickjillings@1289
|
2339 'ALTinterwordstretchfactor :=
|
nickjillings@1289
|
2340 "\renewcommand{\BIBentryALTinterwordstretchfactor}{"
|
nickjillings@1289
|
2341 ALTinterwordstretchfactor * "}" *
|
nickjillings@1289
|
2342 write$ newline$
|
nickjillings@1289
|
2343 }
|
nickjillings@1289
|
2344 if$
|
nickjillings@1289
|
2345 CTLdash_repeated_names
|
nickjillings@1289
|
2346 empty$
|
nickjillings@1289
|
2347 { skip$ }
|
nickjillings@1289
|
2348 { CTLdash_repeated_names
|
nickjillings@1289
|
2349 yes.no.to.int
|
nickjillings@1289
|
2350 'is.dash.repeated.names :=
|
nickjillings@1289
|
2351 }
|
nickjillings@1289
|
2352 if$
|
nickjillings@1289
|
2353 CTLname_format_string
|
nickjillings@1289
|
2354 empty$
|
nickjillings@1289
|
2355 { skip$ }
|
nickjillings@1289
|
2356 { CTLname_format_string
|
nickjillings@1289
|
2357 'name.format.string :=
|
nickjillings@1289
|
2358 }
|
nickjillings@1289
|
2359 if$
|
nickjillings@1289
|
2360 CTLname_latex_cmd
|
nickjillings@1289
|
2361 empty$
|
nickjillings@1289
|
2362 { skip$ }
|
nickjillings@1289
|
2363 { CTLname_latex_cmd
|
nickjillings@1289
|
2364 'name.latex.cmd :=
|
nickjillings@1289
|
2365 }
|
nickjillings@1289
|
2366 if$
|
nickjillings@1289
|
2367 CTLname_url_prefix
|
nickjillings@1289
|
2368 missing$
|
nickjillings@1289
|
2369 { skip$ }
|
nickjillings@1289
|
2370 { CTLname_url_prefix
|
nickjillings@1289
|
2371 'name.url.prefix :=
|
nickjillings@1289
|
2372 }
|
nickjillings@1289
|
2373 if$
|
nickjillings@1289
|
2374
|
nickjillings@1289
|
2375
|
nickjillings@1289
|
2376 num.names.shown.with.forced.et.al max.num.names.before.forced.et.al >
|
nickjillings@1289
|
2377 { "CTLnames_show_etal cannot be greater than CTLmax_names_forced_etal in " cite$ * warning$
|
nickjillings@1289
|
2378 max.num.names.before.forced.et.al 'num.names.shown.with.forced.et.al :=
|
nickjillings@1289
|
2379 }
|
nickjillings@1289
|
2380 { skip$ }
|
nickjillings@1289
|
2381 if$
|
nickjillings@1289
|
2382 }
|
nickjillings@1289
|
2383
|
nickjillings@1289
|
2384
|
nickjillings@1289
|
2385 %%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
2386 %% ENTRY ALIASES %%
|
nickjillings@1289
|
2387 %%%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
2388 FUNCTION {conference}{inproceedings}
|
nickjillings@1289
|
2389 FUNCTION {online}{electronic}
|
nickjillings@1289
|
2390 FUNCTION {internet}{electronic}
|
nickjillings@1289
|
2391 FUNCTION {webpage}{electronic}
|
nickjillings@1289
|
2392 FUNCTION {www}{electronic}
|
nickjillings@1289
|
2393 FUNCTION {default.type}{misc}
|
nickjillings@1289
|
2394
|
nickjillings@1289
|
2395
|
nickjillings@1289
|
2396
|
nickjillings@1289
|
2397 %%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
2398 %% MAIN PROGRAM %%
|
nickjillings@1289
|
2399 %%%%%%%%%%%%%%%%%%
|
nickjillings@1289
|
2400
|
nickjillings@1289
|
2401 READ
|
nickjillings@1289
|
2402
|
nickjillings@1289
|
2403 EXECUTE {initialize.controls}
|
nickjillings@1289
|
2404 EXECUTE {initialize.status.constants}
|
nickjillings@1289
|
2405 EXECUTE {banner.message}
|
nickjillings@1289
|
2406
|
nickjillings@1289
|
2407 EXECUTE {initialize.longest.label}
|
nickjillings@1289
|
2408 ITERATE {longest.label.pass}
|
nickjillings@1289
|
2409
|
nickjillings@1289
|
2410 EXECUTE {begin.bib}
|
nickjillings@1289
|
2411 ITERATE {call.type$}
|
nickjillings@1289
|
2412 EXECUTE {end.bib}
|
nickjillings@1289
|
2413
|
nickjillings@1289
|
2414 EXECUTE{completed.message}
|
nickjillings@1289
|
2415
|
nickjillings@1289
|
2416
|
nickjillings@1289
|
2417 %% That's all folks, mds.
|