Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

add JSS files

  • Loading branch information...
commit 1f1a03a99ca9e79f6d4ddb59c225245bd3b0d191 1 parent eefb793
Sean Anderson authored April 05, 2013
44  inst/examples/JSSstyle/README.txt
... ...
@@ -0,0 +1,44 @@
  1
+***************************************************
  2
+** jss: A Document Class for Publications in the **
  3
+**        Journal of Statistical Software        **
  4
+***************************************************
  5
+
  6
+This zip-archive contains the pdfLaTeX infrastructure for
  7
+publications in the Journal of Statistical Software. The files
  8
+  - jss.cls (LaTeX2e class)
  9
+  - jss.bst (BibTeX style)
  10
+  - jsslogo.jpg (JPG logo)
  11
+need to be included in your search path (local working directory,
  12
+texmf or localtexmf tree).
  13
+
  14
+A manual how to use jss.cls is provided in
  15
+  - jss.pdf.
  16
+
  17
+Furthermore, there are templates for articles, code snippets, book
  18
+reviews and software reviews available in 
  19
+  - article.tex
  20
+  - codesnippet.tex
  21
+  - bookreview.tex
  22
+  - softwarereview.tex
  23
+
  24
+JSS papers should be prepared using JSS styles; the submission of
  25
+the final version needs to include the full sources (.tex, .bib, and
  26
+all graphics). A quick check for the most important aspects of the
  27
+JSS style is given below; authors should make sure that all of them
  28
+are addressed in the final version:  
  29
+  - The manuscript can be compiled by pdfLaTeX.
  30
+  - \proglang, \pkg and \code have been used for highlighting
  31
+    throughout the paper (including titles and references), except
  32
+    where explicitly escaped.
  33
+  - References are provided in a .bib BibTeX database and included
  34
+    in the text by \cite, \citep, \citet, etc.
  35
+  - Titles and headers are formatted as described in the JSS manual:
  36
+      - \title in title style,
  37
+      - \section etc. in sentence style,
  38
+      - all titles in the BibTeX file in title style.
  39
+  - Figures, tables and equations are marked with a \label and
  40
+    referred to by \ref, e.g., "Figure~\ref{...}".
  41
+  - Software packes are \cite{}d properly.
  42
+For more details, see the style FAQ at http://www.jstatsoft.org/style
  43
+and the manual jss.pdf, in particular the style checklist in
  44
+Section 2.1.
64  inst/examples/JSSstyle/article.tex
... ...
@@ -0,0 +1,64 @@
  1
+\documentclass[article]{jss}
  2
+
  3
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  4
+%% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  5
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  6
+
  7
+%% almost as usual
  8
+\author{Achim Zeileis\\Universit\"at Innsbruck \And 
  9
+        Second Author\\Plus Affiliation}
  10
+\title{A Capitalized Title: Something about a Package \pkg{foo}}
  11
+
  12
+%% for pretty printing and a nice hypersummary also set:
  13
+\Plainauthor{Achim Zeileis, Second Author} %% comma-separated
  14
+\Plaintitle{A Capitalized Title: Something about a Package foo} %% without formatting
  15
+\Shorttitle{\pkg{foo}: A Capitalized Title} %% a short title (if necessary)
  16
+
  17
+%% an abstract and keywords
  18
+\Abstract{
  19
+  The abstract of the article.
  20
+}
  21
+\Keywords{keywords, comma-separated, not capitalized, \proglang{Java}}
  22
+\Plainkeywords{keywords, comma-separated, not capitalized, Java} %% without formatting
  23
+%% at least one keyword must be supplied
  24
+
  25
+%% publication information
  26
+%% NOTE: Typically, this can be left commented and will be filled out by the technical editor
  27
+%% \Volume{50}
  28
+%% \Issue{9}
  29
+%% \Month{June}
  30
+%% \Year{2012}
  31
+%% \Submitdate{2012-06-04}
  32
+%% \Acceptdate{2012-06-04}
  33
+
  34
+%% The address of (at least) one author should be given
  35
+%% in the following format:
  36
+\Address{
  37
+  Achim Zeileis\\
  38
+  Department of Statistics and Mathematics\\
  39
+  Faculty of Economics and Statistics\\
  40
+  Universit\"at Innsbruck\\
  41
+  6020 Innsbruck, Austria\\
  42
+  E-mail: \email{Achim.Zeileis@uibk.ac.at}\\
  43
+  URL: \url{http://eeecon.uibk.ac.at/~zeileis/}
  44
+}
  45
+%% It is also possible to add a telephone and fax number
  46
+%% before the e-mail in the following format:
  47
+%% Telephone: +43/512/507-7103
  48
+%% Fax: +43/512/507-2851
  49
+
  50
+%% for those who use Sweave please include the following line (with % symbols):
  51
+%% need no \usepackage{Sweave.sty}
  52
+
  53
+%% end of declarations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  54
+
  55
+
  56
+\begin{document}
  57
+
  58
+%% include your article here, just as usual
  59
+%% Note that you should use the \pkg{}, \proglang{} and \code{} commands.
  60
+
  61
+\section[About Java]{About \proglang{Java}}
  62
+%% Note: If there is markup in \(sub)section, then it has to be escape as above.
  63
+
  64
+\end{document}
51  inst/examples/JSSstyle/bookreview.tex
... ...
@@ -0,0 +1,51 @@
  1
+\documentclass[bookreview]{jss}
  2
+
  3
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  4
+%% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  5
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  6
+
  7
+%% reviewer
  8
+\Reviewer{Frederic Udina\\Pompeu Fabra University}
  9
+\Plainreviewer{Frederic Udina}
  10
+
  11
+%% about the book
  12
+\Booktitle{Visualizing Categorical Data}
  13
+\Bookauthor{Michael Friendly}
  14
+\Publisher{SAS Institute Inc.}
  15
+\Pubaddress{Carey, NC}
  16
+\Pubyear{2000}
  17
+\ISBN{1-58025-660-0}
  18
+\Pages{456}
  19
+\Price{USD 69.95 (P)}
  20
+\URL{http://www.math.yorku.ca/SCS/vcd/}
  21
+%% if different from \Booktitle also set
  22
+%% \Plaintitle{Visualizing Categorical Data}
  23
+%% \Shorttitle{Visualizing Categorical Data}
  24
+
  25
+%% publication information
  26
+%% NOTE: Typically, this can be left commented and will be filled out by the technical editor
  27
+%% \Volume{50}
  28
+%% \Issue{7}
  29
+%% \Month{June}
  30
+%% \Year{2012}
  31
+%% \Submitdate{2012-06-04}
  32
+
  33
+%% address of (at least one) author
  34
+\Address{
  35
+  Frederic Udina\\
  36
+  Pompeu Fabra University\\
  37
+  Department of Economics and Business\\
  38
+  Barcelona, Spain 08005\\
  39
+  E-mail: \email{udina@upf.es}\\
  40
+  URL: \url{http://libiya.upf.es/}
  41
+}
  42
+
  43
+%% end of declarations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  44
+
  45
+
  46
+\begin{document}
  47
+
  48
+%% include the review as usual
  49
+%% Note that you should use the \pkg{}, \proglang{} and \code{} commands.
  50
+
  51
+\end{document}
65  inst/examples/JSSstyle/codesnippet.tex
... ...
@@ -0,0 +1,65 @@
  1
+\documentclass[codesnippet]{jss}
  2
+
  3
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  4
+%% declarations for jss.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  5
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  6
+
  7
+%% almost as usual
  8
+\author{Achim Zeileis\\Universit\"at Innsbruck \And 
  9
+        Second Author\\Plus Affiliation}
  10
+\title{A Capitalized Title: Possibly Containing More Details}
  11
+
  12
+%% for pretty printing and a nice hypersummary also set:
  13
+\Plainauthor{Achim Zeileis, Second Author} %% comma-separated
  14
+\Plaintitle{A Capitalized Title: Possibly Containing More Details} %% without formatting
  15
+\Shorttitle{A Capitalized Title} %% a short title (if necessary)
  16
+
  17
+%% an abstract and keywords
  18
+\Abstract{
  19
+  Here should be the abstract.
  20
+}
  21
+\Keywords{keywords, comma-separated, not capitalized, \proglang{Java}}
  22
+\Plainkeywords{keywords, comma-separated, not capitalized, Java} %% without formatting
  23
+%% at least one keyword must be supplied
  24
+
  25
+%% publication information
  26
+%% NOTE: Typically, this can be left commented and will be filled out by the technical editor
  27
+%% \Volume{50}
  28
+%% \Issue{9}
  29
+%% \Month{June}
  30
+%% \Year{2012}
  31
+%% \Submitdate{2012-06-04}
  32
+%% \Acceptdate{2012-06-04}
  33
+
  34
+%% The address of (at least) one author should be given
  35
+%% in the following format:
  36
+\Address{
  37
+  Achim Zeileis\\
  38
+  Department of Statistics and Mathematics\\
  39
+  Faculty of Economics and Statistics\\
  40
+  Universit\"at Innsbruck\\
  41
+  6020 Innsbruck, Austria\\
  42
+  E-mail: \email{Achim.Zeileis@uibk.ac.at}\\
  43
+  URL: \url{http://eeecon.uibk.ac.at/~zeileis/}
  44
+}
  45
+%% It is also possible to add a telephone and fax number
  46
+%% before the e-mail in the following format:
  47
+%% Telephone: +43/512/507-7103
  48
+%% Fax: +43/512/507-2851
  49
+
  50
+%% for those who use Sweave please include the following line (with % symbols):
  51
+%% need no \usepackage{Sweave.sty}
  52
+
  53
+%% end of declarations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  54
+
  55
+
  56
+\begin{document}
  57
+
  58
+%% include your article here, just as usual
  59
+%% Note that you should use the \pkg{}, \proglang{} and \code{} commands.
  60
+
  61
+\section[About Java]{About \proglang{Java}}
  62
+%% Note: If there is markup in \(sub)section, then it has to be escape as above.
  63
+
  64
+
  65
+\end{document}
1,631  inst/examples/JSSstyle/jss.bst
... ...
@@ -0,0 +1,1631 @@
  1
+%%
  2
+%% This is file `jss.bst',
  3
+%% generated with the docstrip utility.
  4
+%%
  5
+%% The original source files were:
  6
+%%
  7
+%% merlin.mbs  (with options: `ay,nat,nm-rvx,keyxyr,dt-beg,yr-par,note-yr,tit-qq,atit-u,trnum-it,vol-bf,volp-com,num-xser,pre-edn,isbn,issn,edpar,pp,ed,xedn,xand,etal-it,revdata,eprint,url,url-blk,doi,nfss')
  8
+%% 
  9
+%% ** BibTeX style file for JSS publications (http://www.jstatsoft.org/)
  10
+%% 
  11
+%% Copyright 1994-2007 Patrick W Daly
  12
+%% License: GPL-2
  13
+ % ===============================================================
  14
+ % IMPORTANT NOTICE:
  15
+ % This bibliographic style (bst) file has been generated from one or
  16
+ % more master bibliographic style (mbs) files, listed above, provided
  17
+ % with kind permission of Patrick W Daly.
  18
+ %
  19
+ % This generated file can be redistributed and/or modified under the terms
  20
+ % of the General Public License (Version 2).
  21
+ % ===============================================================
  22
+ % Name and version information of the main mbs file:
  23
+ % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)]
  24
+ %   For use with BibTeX version 0.99a or later
  25
+ %-------------------------------------------------------------------
  26
+ % This bibliography style file is intended for texts in ENGLISH
  27
+ % This is an author-year citation style bibliography. As such, it is
  28
+ % non-standard LaTeX, and requires a special package file to function properly.
  29
+ % Such a package is    natbib.sty   by Patrick W. Daly
  30
+ % The form of the \bibitem entries is
  31
+ %   \bibitem[Jones et al.(1990)]{key}...
  32
+ %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
  33
+ % The essential feature is that the label (the part in brackets) consists
  34
+ % of the author names, as they should appear in the citation, with the year
  35
+ % in parentheses following. There must be no space before the opening
  36
+ % parenthesis!
  37
+ % With natbib v5.3, a full list of authors may also follow the year.
  38
+ % In natbib.sty, it is possible to define the type of enclosures that is
  39
+ % really wanted (brackets or parentheses), but in either case, there must
  40
+ % be parentheses in the label.
  41
+ % The \cite command functions as follows:
  42
+ %   \citet{key} ==>>                Jones et al. (1990)
  43
+ %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
  44
+ %   \citep{key} ==>>                (Jones et al., 1990)
  45
+ %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
  46
+ %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
  47
+ %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
  48
+ %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., p. 32)
  49
+ %   \citeauthor{key} ==>>           Jones et al.
  50
+ %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
  51
+ %   \citeyear{key} ==>>             1990
  52
+ %---------------------------------------------------------------------
  53
+
  54
+ENTRY
  55
+  { address
  56
+    archive
  57
+    author
  58
+    booktitle
  59
+    chapter
  60
+    collaboration
  61
+    doi
  62
+    edition
  63
+    editor
  64
+    eid
  65
+    eprint
  66
+    howpublished
  67
+    institution
  68
+    isbn
  69
+    issn
  70
+    journal
  71
+    key
  72
+    month
  73
+    note
  74
+    number
  75
+    numpages
  76
+    organization
  77
+    pages
  78
+    publisher
  79
+    school
  80
+    series
  81
+    title
  82
+    type
  83
+    url
  84
+    volume
  85
+    year
  86
+  }
  87
+  {}
  88
+  { label extra.label sort.label short.list }
  89
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  90
+FUNCTION {init.state.consts}
  91
+{ #0 'before.all :=
  92
+  #1 'mid.sentence :=
  93
+  #2 'after.sentence :=
  94
+  #3 'after.block :=
  95
+}
  96
+STRINGS { s t}
  97
+FUNCTION {output.nonnull}
  98
+{ 's :=
  99
+  output.state mid.sentence =
  100
+    { ", " * write$ }
  101
+    { output.state after.block =
  102
+        { add.period$ write$
  103
+          newline$
  104
+          "\newblock " write$
  105
+        }
  106
+        { output.state before.all =
  107
+            'write$
  108
+            { add.period$ " " * write$ }
  109
+          if$
  110
+        }
  111
+      if$
  112
+      mid.sentence 'output.state :=
  113
+    }
  114
+  if$
  115
+  s
  116
+}
  117
+FUNCTION {output}
  118
+{ duplicate$ empty$
  119
+    'pop$
  120
+    'output.nonnull
  121
+  if$
  122
+}
  123
+FUNCTION {output.check}
  124
+{ 't :=
  125
+  duplicate$ empty$
  126
+    { pop$ "empty " t * " in " * cite$ * warning$ }
  127
+    'output.nonnull
  128
+  if$
  129
+}
  130
+FUNCTION {fin.entry}
  131
+{ add.period$
  132
+  write$
  133
+  newline$
  134
+}
  135
+
  136
+FUNCTION {new.block}
  137
+{ output.state before.all =
  138
+    'skip$
  139
+    { after.block 'output.state := }
  140
+  if$
  141
+}
  142
+FUNCTION {new.sentence}
  143
+{ output.state after.block =
  144
+    'skip$
  145
+    { output.state before.all =
  146
+        'skip$
  147
+        { after.sentence 'output.state := }
  148
+      if$
  149
+    }
  150
+  if$
  151
+}
  152
+FUNCTION {add.blank}
  153
+{  " " * before.all 'output.state :=
  154
+}
  155
+
  156
+FUNCTION {date.block}
  157
+{
  158
+  new.block
  159
+}
  160
+
  161
+FUNCTION {not}
  162
+{   { #0 }
  163
+    { #1 }
  164
+  if$
  165
+}
  166
+FUNCTION {and}
  167
+{   'skip$
  168
+    { pop$ #0 }
  169
+  if$
  170
+}
  171
+FUNCTION {or}
  172
+{   { pop$ #1 }
  173
+    'skip$
  174
+  if$
  175
+}
  176
+FUNCTION {non.stop}
  177
+{ duplicate$
  178
+   "}" * add.period$
  179
+   #-1 #1 substring$ "." =
  180
+}
  181
+
  182
+STRINGS {z}
  183
+FUNCTION {remove.dots}
  184
+{ 'z :=
  185
+  ""
  186
+  { z empty$ not }
  187
+  { z #1 #1 substring$
  188
+    z #2 global.max$ substring$ 'z :=
  189
+    duplicate$ "." = 'pop$
  190
+      { * }
  191
+    if$
  192
+  }
  193
+  while$
  194
+}
  195
+FUNCTION {new.block.checkb}
  196
+{ empty$
  197
+  swap$ empty$
  198
+  and
  199
+    'skip$
  200
+    'new.block
  201
+  if$
  202
+}
  203
+FUNCTION {field.or.null}
  204
+{ duplicate$ empty$
  205
+    { pop$ "" }
  206
+    'skip$
  207
+  if$
  208
+}
  209
+FUNCTION {emphasize}
  210
+{ duplicate$ empty$
  211
+    { pop$ "" }
  212
+    { "\emph{" swap$ * "}" * }
  213
+  if$
  214
+}
  215
+FUNCTION {bolden}
  216
+{ duplicate$ empty$
  217
+    { pop$ "" }
  218
+    { "\textbf{" swap$ * "}" * }
  219
+  if$
  220
+}
  221
+FUNCTION {tie.or.space.prefix}
  222
+{ duplicate$ text.length$ #3 <
  223
+    { "~" }
  224
+    { " " }
  225
+  if$
  226
+  swap$
  227
+}
  228
+
  229
+FUNCTION {capitalize}
  230
+{ "u" change.case$ "t" change.case$ }
  231
+
  232
+FUNCTION {space.word}
  233
+{ " " swap$ * " " * }
  234
+ % Here are the language-specific definitions for explicit words.
  235
+ % Each function has a name bbl.xxx where xxx is the English word.
  236
+ % The language selected here is ENGLISH
  237
+FUNCTION {bbl.and}
  238
+{ "and"}
  239
+
  240
+FUNCTION {bbl.etal}
  241
+{ "et~al." }
  242
+
  243
+FUNCTION {bbl.editors}
  244
+{ "eds." }
  245
+
  246
+FUNCTION {bbl.editor}
  247
+{ "ed." }
  248
+
  249
+FUNCTION {bbl.edby}
  250
+{ "edited by" }
  251
+
  252
+FUNCTION {bbl.edition}
  253
+{ "edition" }
  254
+
  255
+FUNCTION {bbl.volume}
  256
+{ "volume" }
  257
+
  258
+FUNCTION {bbl.of}
  259
+{ "of" }
  260
+
  261
+FUNCTION {bbl.number}
  262
+{ "number" }
  263
+
  264
+FUNCTION {bbl.nr}
  265
+{ "no." }
  266
+
  267
+FUNCTION {bbl.in}
  268
+{ "in" }
  269
+
  270
+FUNCTION {bbl.pages}
  271
+{ "pp." }
  272
+
  273
+FUNCTION {bbl.page}
  274
+{ "p." }
  275
+
  276
+FUNCTION {bbl.eidpp}
  277
+{ "pages" }
  278
+
  279
+FUNCTION {bbl.chapter}
  280
+{ "chapter" }
  281
+
  282
+FUNCTION {bbl.techrep}
  283
+{ "Technical Report" }
  284
+
  285
+FUNCTION {bbl.mthesis}
  286
+{ "Master's thesis" }
  287
+
  288
+FUNCTION {bbl.phdthesis}
  289
+{ "Ph.D. thesis" }
  290
+
  291
+MACRO {jan} {"January"}
  292
+
  293
+MACRO {feb} {"February"}
  294
+
  295
+MACRO {mar} {"March"}
  296
+
  297
+MACRO {apr} {"April"}
  298
+
  299
+MACRO {may} {"May"}
  300
+
  301
+MACRO {jun} {"June"}
  302
+
  303
+MACRO {jul} {"July"}
  304
+
  305
+MACRO {aug} {"August"}
  306
+
  307
+MACRO {sep} {"September"}
  308
+
  309
+MACRO {oct} {"October"}
  310
+
  311
+MACRO {nov} {"November"}
  312
+
  313
+MACRO {dec} {"December"}
  314
+
  315
+MACRO {acmcs} {"ACM Computing Surveys"}
  316
+
  317
+MACRO {acta} {"Acta Informatica"}
  318
+
  319
+MACRO {cacm} {"Communications of the ACM"}
  320
+
  321
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
  322
+
  323
+MACRO {ibmsj} {"IBM Systems Journal"}
  324
+
  325
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
  326
+
  327
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
  328
+
  329
+MACRO {ieeetcad}
  330
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
  331
+
  332
+MACRO {ipl} {"Information Processing Letters"}
  333
+
  334
+MACRO {jacm} {"Journal of the ACM"}
  335
+
  336
+MACRO {jcss} {"Journal of Computer and System Sciences"}
  337
+
  338
+MACRO {scp} {"Science of Computer Programming"}
  339
+
  340
+MACRO {sicomp} {"SIAM Journal on Computing"}
  341
+
  342
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
  343
+
  344
+MACRO {tods} {"ACM Transactions on Database Systems"}
  345
+
  346
+MACRO {tog} {"ACM Transactions on Graphics"}
  347
+
  348
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
  349
+
  350
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
  351
+
  352
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
  353
+
  354
+MACRO {tcs} {"Theoretical Computer Science"}
  355
+FUNCTION {bibinfo.check}
  356
+{ swap$
  357
+  duplicate$ missing$
  358
+    {
  359
+      pop$ pop$
  360
+      ""
  361
+    }
  362
+    { duplicate$ empty$
  363
+        {
  364
+          swap$ pop$
  365
+        }
  366
+        { swap$
  367
+          pop$
  368
+        }
  369
+      if$
  370
+    }
  371
+  if$
  372
+}
  373
+FUNCTION {bibinfo.warn}
  374
+{ swap$
  375
+  duplicate$ missing$
  376
+    {
  377
+      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
  378
+      ""
  379
+    }
  380
+    { duplicate$ empty$
  381
+        {
  382
+          swap$ "empty " swap$ * " in " * cite$ * warning$
  383
+        }
  384
+        { swap$
  385
+          pop$
  386
+        }
  387
+      if$
  388
+    }
  389
+  if$
  390
+}
  391
+FUNCTION {format.eprint}
  392
+{ eprint duplicate$ empty$
  393
+    'skip$
  394
+    { "\eprint"
  395
+      archive empty$
  396
+        'skip$
  397
+        { "[" * archive * "]" * }
  398
+      if$
  399
+      "{" * swap$ * "}" *
  400
+    }
  401
+  if$
  402
+}
  403
+FUNCTION {format.url}
  404
+{ url empty$
  405
+    { "" }
  406
+    { "\urlprefix\url{" url * "}" * }
  407
+  if$
  408
+}
  409
+
  410
+INTEGERS { nameptr namesleft numnames }
  411
+
  412
+
  413
+STRINGS  { bibinfo}
  414
+
  415
+FUNCTION {format.names}
  416
+{ 'bibinfo :=
  417
+  duplicate$ empty$ 'skip$ {
  418
+  's :=
  419
+  "" 't :=
  420
+  #1 'nameptr :=
  421
+  s num.names$ 'numnames :=
  422
+  numnames 'namesleft :=
  423
+    { namesleft #0 > }
  424
+    { s nameptr
  425
+      "{vv~}{ll}{ jj}{ f{}}"
  426
+      format.name$
  427
+      remove.dots
  428
+      bibinfo bibinfo.check
  429
+      't :=
  430
+      nameptr #1 >
  431
+        {
  432
+          namesleft #1 >
  433
+            { ", " * t * }
  434
+            {
  435
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
  436
+                { 't := }
  437
+                { pop$ }
  438
+              if$
  439
+              "," *
  440
+              t "others" =
  441
+                {
  442
+                  " " * bbl.etal emphasize *
  443
+                }
  444
+                { " " * t * }
  445
+              if$
  446
+            }
  447
+          if$
  448
+        }
  449
+        't
  450
+      if$
  451
+      nameptr #1 + 'nameptr :=
  452
+      namesleft #1 - 'namesleft :=
  453
+    }
  454
+  while$
  455
+  } if$
  456
+}
  457
+FUNCTION {format.names.ed}
  458
+{
  459
+  'bibinfo :=
  460
+  duplicate$ empty$ 'skip$ {
  461
+  's :=
  462
+  "" 't :=
  463
+  #1 'nameptr :=
  464
+  s num.names$ 'numnames :=
  465
+  numnames 'namesleft :=
  466
+    { namesleft #0 > }
  467
+    { s nameptr
  468
+      "{f{}~}{vv~}{ll}{ jj}"
  469
+      format.name$
  470
+      remove.dots
  471
+      bibinfo bibinfo.check
  472
+      't :=
  473
+      nameptr #1 >
  474
+        {
  475
+          namesleft #1 >
  476
+            { ", " * t * }
  477
+            {
  478
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
  479
+                { 't := }
  480
+                { pop$ }
  481
+              if$
  482
+              "," *
  483
+              t "others" =
  484
+                {
  485
+
  486
+                  " " * bbl.etal emphasize *
  487
+                }
  488
+                { " " * t * }
  489
+              if$
  490
+            }
  491
+          if$
  492
+        }
  493
+        't
  494
+      if$
  495
+      nameptr #1 + 'nameptr :=
  496
+      namesleft #1 - 'namesleft :=
  497
+    }
  498
+  while$
  499
+  } if$
  500
+}
  501
+FUNCTION {format.key}
  502
+{ empty$
  503
+    { key field.or.null }
  504
+    { "" }
  505
+  if$
  506
+}
  507
+
  508
+FUNCTION {format.authors}
  509
+{ author "author" format.names
  510
+    duplicate$ empty$ 'skip$
  511
+    { collaboration "collaboration" bibinfo.check
  512
+      duplicate$ empty$ 'skip$
  513
+        { " (" swap$ * ")" * }
  514
+      if$
  515
+      *
  516
+    }
  517
+  if$
  518
+}
  519
+FUNCTION {get.bbl.editor}
  520
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
  521
+
  522
+FUNCTION {format.editors}
  523
+{ editor "editor" format.names duplicate$ empty$ 'skip$
  524
+    {
  525
+      " " *
  526
+      get.bbl.editor
  527
+   "(" swap$ * ")" *
  528
+      *
  529
+    }
  530
+  if$
  531
+}
  532
+FUNCTION {format.isbn}
  533
+{ isbn "isbn" bibinfo.check
  534
+  duplicate$ empty$ 'skip$
  535
+    {
  536
+      new.block
  537
+      "ISBN " swap$ *
  538
+    }
  539
+  if$
  540
+}
  541
+
  542
+FUNCTION {format.issn}
  543
+{ issn "issn" bibinfo.check
  544
+  duplicate$ empty$ 'skip$
  545
+    {
  546
+      new.block
  547
+      "ISSN " swap$ *
  548
+    }
  549
+  if$
  550
+}
  551
+
  552
+FUNCTION {format.doi}
  553
+{ doi "doi" bibinfo.check
  554
+  duplicate$ empty$ 'skip$
  555
+    {
  556
+      new.block
  557
+      "\doi{" swap$ * "}" *
  558
+    }
  559
+  if$
  560
+}
  561
+FUNCTION {format.note}
  562
+{
  563
+ note empty$
  564
+    { "" }
  565
+    { note #1 #1 substring$
  566
+      duplicate$ "{" =
  567
+        'skip$
  568
+        { output.state mid.sentence =
  569
+          { "l" }
  570
+          { "u" }
  571
+        if$
  572
+        change.case$
  573
+        }
  574
+      if$
  575
+      note #2 global.max$ substring$ * "note" bibinfo.check
  576
+    }
  577
+  if$
  578
+}
  579
+
  580
+FUNCTION {format.title}
  581
+{ title
  582
+  "title" bibinfo.check
  583
+  duplicate$ empty$ 'skip$
  584
+    {
  585
+      "\enquote{" swap$ *
  586
+      add.period$ "}" *
  587
+    }
  588
+  if$
  589
+}
  590
+FUNCTION {format.full.names}
  591
+{'s :=
  592
+ "" 't :=
  593
+  #1 'nameptr :=
  594
+  s num.names$ 'numnames :=
  595
+  numnames 'namesleft :=
  596
+    { namesleft #0 > }
  597
+    { s nameptr
  598
+      "{vv~}{ll}" format.name$
  599
+      't :=
  600
+      nameptr #1 >
  601
+        {
  602
+          namesleft #1 >
  603
+            { ", " * t * }
  604
+            {
  605
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
  606
+                { 't := }
  607
+                { pop$ }
  608
+              if$
  609
+              t "others" =
  610
+                {
  611
+                  " " * bbl.etal emphasize *
  612
+                }
  613
+                {
  614
+                  numnames #2 >
  615
+                    { "," * }
  616
+                    'skip$
  617
+                  if$
  618
+                  bbl.and
  619
+                  space.word * t *
  620
+                }
  621
+              if$
  622
+            }
  623
+          if$
  624
+        }
  625
+        't
  626
+      if$
  627
+      nameptr #1 + 'nameptr :=
  628
+      namesleft #1 - 'namesleft :=
  629
+    }
  630
+  while$
  631
+}
  632
+
  633
+FUNCTION {author.editor.key.full}
  634
+{ author empty$
  635
+    { editor empty$
  636
+        { key empty$
  637
+            { cite$ #1 #3 substring$ }
  638
+            'key
  639
+          if$
  640
+        }
  641
+        { editor format.full.names }
  642
+      if$
  643
+    }
  644
+    { author format.full.names }
  645
+  if$
  646
+}
  647
+
  648
+FUNCTION {author.key.full}
  649
+{ author empty$
  650
+    { key empty$
  651
+         { cite$ #1 #3 substring$ }
  652
+          'key
  653
+      if$
  654
+    }
  655
+    { author format.full.names }
  656
+  if$
  657
+}
  658
+
  659
+FUNCTION {editor.key.full}
  660
+{ editor empty$
  661
+    { key empty$
  662
+         { cite$ #1 #3 substring$ }
  663
+          'key
  664
+      if$
  665
+    }
  666
+    { editor format.full.names }
  667
+  if$
  668
+}
  669
+
  670
+FUNCTION {make.full.names}
  671
+{ type$ "book" =
  672
+  type$ "inbook" =
  673
+  or
  674
+    'author.editor.key.full
  675
+    { type$ "proceedings" =
  676
+        'editor.key.full
  677
+        'author.key.full
  678
+      if$
  679
+    }
  680
+  if$
  681
+}
  682
+
  683
+FUNCTION {output.bibitem}
  684
+{ newline$
  685
+  "\bibitem[{" write$
  686
+  label write$
  687
+  ")" make.full.names duplicate$ short.list =
  688
+     { pop$ }
  689
+     { * }
  690
+   if$
  691
+  "}]{" * write$
  692
+  cite$ write$
  693
+  "}" write$
  694
+  newline$
  695
+  ""
  696
+  before.all 'output.state :=
  697
+}
  698
+
  699
+FUNCTION {n.dashify}
  700
+{
  701
+  't :=
  702
+  ""
  703
+    { t empty$ not }
  704
+    { t #1 #1 substring$ "-" =
  705
+        { t #1 #2 substring$ "--" = not
  706
+            { "--" *
  707
+              t #2 global.max$ substring$ 't :=
  708
+            }
  709
+            {   { t #1 #1 substring$ "-" = }
  710
+                { "-" *
  711
+                  t #2 global.max$ substring$ 't :=
  712
+                }
  713
+              while$
  714
+            }
  715
+          if$
  716
+        }
  717
+        { t #1 #1 substring$ *
  718
+          t #2 global.max$ substring$ 't :=
  719
+        }
  720
+      if$
  721
+    }
  722
+  while$
  723
+}
  724
+
  725
+FUNCTION {word.in}
  726
+{ bbl.in capitalize
  727
+  " " * }
  728
+
  729
+FUNCTION {format.date}
  730
+{ year "year" bibinfo.check duplicate$ empty$
  731
+    {
  732
+      "empty year in " cite$ * "; set to ????" * warning$
  733
+       pop$ "????"
  734
+    }
  735
+    'skip$
  736
+  if$
  737
+  extra.label *
  738
+  before.all 'output.state :=
  739
+  " (" swap$ * ")" *
  740
+}
  741
+FUNCTION {format.btitle}
  742
+{ title "title" bibinfo.check
  743
+  duplicate$ empty$ 'skip$
  744
+    {
  745
+      emphasize
  746
+    }
  747
+  if$
  748
+}
  749
+FUNCTION {either.or.check}
  750
+{ empty$
  751
+    'pop$
  752
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  753
+  if$
  754
+}
  755
+FUNCTION {format.bvolume}
  756
+{ volume empty$
  757
+    { "" }
  758
+    { bbl.volume volume tie.or.space.prefix
  759
+      "volume" bibinfo.check * *
  760
+      series "series" bibinfo.check
  761
+      duplicate$ empty$ 'pop$
  762
+        { swap$ bbl.of space.word * swap$
  763
+          emphasize * }
  764
+      if$
  765
+      "volume and number" number either.or.check
  766
+    }
  767
+  if$
  768
+}
  769
+FUNCTION {format.number.series}
  770
+{ volume empty$
  771
+    { number empty$
  772
+        { series field.or.null }
  773
+        { series empty$
  774
+            { number "number" bibinfo.check }
  775
+            { output.state mid.sentence =
  776
+                { bbl.number }
  777
+                { bbl.number capitalize }
  778
+              if$
  779
+              number tie.or.space.prefix "number" bibinfo.check * *
  780
+              bbl.in space.word *
  781
+              series "series" bibinfo.check *
  782
+            }
  783
+          if$
  784
+        }
  785
+      if$
  786
+    }
  787
+    { "" }
  788
+  if$
  789
+}
  790
+
  791
+FUNCTION {format.edition}
  792
+{ edition duplicate$ empty$ 'skip$
  793
+    {
  794
+      output.state mid.sentence =
  795
+        { "l" }
  796
+        { "t" }
  797
+      if$ change.case$
  798
+      "edition" bibinfo.check
  799
+      " " * bbl.edition *
  800
+    }
  801
+  if$
  802
+}
  803
+INTEGERS { multiresult }
  804
+FUNCTION {multi.page.check}
  805
+{ 't :=
  806
+  #0 'multiresult :=
  807
+    { multiresult not
  808
+      t empty$ not
  809
+      and
  810
+    }
  811
+    { t #1 #1 substring$
  812
+      duplicate$ "-" =
  813
+      swap$ duplicate$ "," =
  814
+      swap$ "+" =
  815
+      or or
  816
+        { #1 'multiresult := }
  817
+        { t #2 global.max$ substring$ 't := }
  818
+      if$
  819
+    }
  820
+  while$
  821
+  multiresult
  822
+}
  823
+FUNCTION {format.pages}
  824
+{ pages duplicate$ empty$ 'skip$
  825
+    { duplicate$ multi.page.check
  826
+        {
  827
+          bbl.pages swap$
  828
+          n.dashify
  829
+        }
  830
+        {
  831
+          bbl.page swap$
  832
+        }
  833
+      if$
  834
+      tie.or.space.prefix
  835
+      "pages" bibinfo.check
  836
+      * *
  837
+    }
  838
+  if$
  839
+}
  840
+FUNCTION {format.journal.pages}
  841
+{ pages duplicate$ empty$ 'pop$
  842
+    { swap$ duplicate$ empty$
  843
+        { pop$ pop$ format.pages }
  844
+        {
  845
+          ", " *
  846
+          swap$
  847
+          n.dashify
  848
+          "pages" bibinfo.check
  849
+          *
  850
+        }
  851
+      if$
  852
+    }
  853
+  if$
  854
+}
  855
+FUNCTION {format.journal.eid}
  856
+{ eid "eid" bibinfo.check
  857
+  duplicate$ empty$ 'pop$
  858
+    { swap$ duplicate$ empty$ 'skip$
  859
+      {
  860
+          ", " *
  861
+      }
  862
+      if$