Journal/Response/apa.bst
author Christian Urban <christian dot urban at kcl dot ac dot uk>
Sun, 22 Dec 2013 07:37:26 +0000
changeset 393 058f29ab515c
parent 374 01d223421ba0
permissions -rwxr-xr-x
added
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
374
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     1
%%% ====================================================================
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     2
%%%  @BibTeX-style-file{
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     3
%%%     author          = "Alan Rogers",
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     4
%%%     version         = "1.1",
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     5
%%%     date            = "June 27, 1992",
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     6
%%%     filename        = "apa.bst",
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     7
%%%     address         = "Dept of Anthropology, University of Utah,
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     8
%%%                       Salt Lake City, UT 84112",
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
     9
%%%     checksum        = "21129 1130 3156 23582",
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    10
%%%     email           = "rogers@anthro.utah.edu",
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    11
%%%     supported       = "no",
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    12
%%%     docstring       = "Adapted from apalike.bst.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    13
%%%                        Usage: \documentstyle[astron]{...}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    14
%%%                          ...
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    15
%%%                          \bibliographystyle{apa}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    16
%%%                          ...
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    17
%%%                        This file incorporates features of Sake J.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    18
%%%                        Hogeveen's `astron.bst' into`apalike.bst'.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    19
%%%                        The \documentstyle command above invokes
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    20
%%%                        Hogeveen's `astron.sty', which must be in
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    21
%%%                        TeX's search path.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    22
%%%
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    23
%%%                        The modifications implement `\cite*{}', which
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    24
%%%                        generates references in short form.  For
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    25
%%%                        example, `Rogers \cite*{...}' would produce
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    26
%%%                        `Rogers (1992)'."
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    27
%%%  }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    28
%%% ====================================================================
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    29
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    30
% BibTeX `apalike' bibliography style (24-Jan-88 version)
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    31
% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    32
% Copyright (C) 1988, all rights reserved.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    33
% Copying of this file is allowed, provided that if you make any changes at all
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    34
% you name it something other than `apalike.bst'.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    35
% This restriction helps ensure that all copies are identical.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    36
% Differences between this style and `alpha' are generally heralded by a `%'.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    37
% The file btxbst.doc has the documentation for alpha.bst.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    38
%
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    39
% This style should be used with the `apalike' LaTeX style (apalike.sty).
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    40
% \cite's come out like "(Jones, 1986)" in the text but there are no labels
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    41
% in the bibliography, and something like "(1986)" comes out immediately
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    42
% after the author.  Author (and editor) names appear as last name, comma,
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    43
% initials.  A `year' field is required for every entry, and so is either
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    44
% an author (or in some cases, an editor) field or a key field.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    45
%
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    46
% Editorial note:
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    47
% Many journals require a style like `apalike', but I strongly, strongly,
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    48
% strongly recommend that you not use it if you have a choice---use something
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    49
% like `plain' instead.  Mary-Claire van Leunen (A Handbook for Scholars,
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    50
% Knopf, 1979) argues convincingly that a style like `plain' encourages better
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    51
% writing than one like `apalike'.  Furthermore the strongest arguments for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    52
% using an author-date style like `apalike'---that it's "the most practical"
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    53
% (The Chicago Manual of Style, University of Chicago Press, thirteenth
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    54
% edition, 1982, pages 400--401)---fall flat on their face with the new
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    55
% computer-typesetting technology.  For instance page 401 anachronistically
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    56
% states "The chief disadvantage of [a style like `plain'] is that additions
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    57
% or deletions cannot be made after the manuscript is typed without changing
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    58
% numbers in both text references and list."  LaTeX sidesteps the disadvantage.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    59
%
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    60
% History:
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    61
%   15-sep-86	(SK,OP)	Original version, by Susan King and Oren Patashnik.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    62
%   10-nov-86	(OP)	Truncated the sort.key$ string to the correct length
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    63
%			in bib.sort.order to eliminate error message.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    64
%   24-jan-88	(OP)	Updated for BibTeX version 0.99a, from alpha.bst 0.99a;
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    65
%			apalike now sorts by author, then year, then title;
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    66
%			THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    67
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    68
ENTRY
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    69
  { address
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    70
    author
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    71
    booktitle
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    72
    chapter
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    73
    edition
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    74
    editor
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    75
    howpublished
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    76
    institution
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    77
    journal
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    78
    key
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    79
%    month		not used in apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    80
    note
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    81
    number
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    82
    organization
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    83
    pages
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    84
    publisher
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    85
    school
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    86
    series
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    87
    title
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    88
    type
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    89
    volume
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    90
    year
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    91
  }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    92
  {}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    93
  { label extra.label sort.label }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    94
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    95
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    96
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    97
FUNCTION {init.state.consts}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    98
{ #0 'before.all :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
    99
  #1 'mid.sentence :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   100
  #2 'after.sentence :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   101
  #3 'after.block :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   102
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   103
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   104
STRINGS { s t }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   105
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   106
FUNCTION {output.nonnull}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   107
{ 's :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   108
  output.state mid.sentence =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   109
    { ", " * write$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   110
    { output.state after.block =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   111
	{ add.period$ write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   112
	  newline$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   113
	  "\newblock " write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   114
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   115
	{ output.state before.all =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   116
	    'write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   117
	    { add.period$ " " * write$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   118
	  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   119
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   120
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   121
      mid.sentence 'output.state :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   122
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   123
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   124
  s
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   125
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   126
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   127
FUNCTION {output}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   128
{ duplicate$ empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   129
    'pop$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   130
    'output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   131
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   132
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   133
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   134
FUNCTION {output.check}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   135
{ 't :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   136
  duplicate$ empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   137
    { pop$ "empty " t * " in " * cite$ * warning$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   138
    'output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   139
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   140
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   141
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   142
%					apalike needs this function because
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   143
%					the year has special punctuation;
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   144
%					apalike ignores the month
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   145
FUNCTION {output.year.check}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   146
{ year empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   147
    { "empty year in " cite$ * warning$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   148
    { write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   149
      " [" year * extra.label * "]" *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   150
      mid.sentence 'output.state :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   151
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   152
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   153
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   154
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   155
FUNCTION {output.bibitem}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   156
{ newline$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   157
  "\bibitem[" write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   158
  label write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   159
  "]{" write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   160
  cite$ write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   161
  "}" write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   162
  newline$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   163
  ""
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   164
  before.all 'output.state :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   165
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   166
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   167
FUNCTION {fin.entry}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   168
{ add.period$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   169
  write$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   170
  newline$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   171
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   172
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   173
FUNCTION {new.block}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   174
{ output.state before.all =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   175
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   176
    { after.block 'output.state := }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   177
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   178
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   179
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   180
FUNCTION {new.sentence}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   181
{ output.state after.block =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   182
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   183
    { output.state before.all =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   184
	'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   185
	{ after.sentence 'output.state := }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   186
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   187
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   188
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   189
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   190
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   191
FUNCTION {not}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   192
{   { #0 }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   193
    { #1 }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   194
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   195
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   196
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   197
FUNCTION {and}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   198
{   'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   199
    { pop$ #0 }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   200
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   201
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   202
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   203
FUNCTION {or}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   204
{   { pop$ #1 }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   205
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   206
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   207
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   208
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   209
FUNCTION {new.block.checkb}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   210
{ empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   211
  swap$ empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   212
  and
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   213
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   214
    'new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   215
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   216
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   217
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   218
FUNCTION {field.or.null}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   219
{ duplicate$ empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   220
    { pop$ "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   221
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   222
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   223
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   224
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   225
FUNCTION {emphasize}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   226
{ duplicate$ empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   227
    { pop$ "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   228
    { "{\em " swap$ * "}" * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   229
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   230
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   231
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   232
INTEGERS { nameptr namesleft numnames }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   233
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   234
FUNCTION {format.names}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   235
{ 's :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   236
  #1 'nameptr :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   237
  s num.names$ 'numnames :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   238
  numnames 'namesleft :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   239
    { namesleft #0 > }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   240
    { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=   % last name first
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   241
      nameptr #1 >
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   242
	{ namesleft #1 >
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   243
	    { ", " * t * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   244
	    { numnames #2 >
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   245
		{ "," * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   246
		'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   247
	      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   248
	      t "others" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   249
		{ " et~al." * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   250
		{ " and " * t * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   251
	      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   252
	    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   253
	  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   254
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   255
	't
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   256
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   257
      nameptr #1 + 'nameptr :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   258
      namesleft #1 - 'namesleft :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   259
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   260
  while$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   261
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   262
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   263
FUNCTION {format.authors}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   264
{ author empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   265
    { "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   266
    { author format.names }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   267
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   268
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   269
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   270
FUNCTION {format.key}			% this function is just for apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   271
{ empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   272
    { key field.or.null }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   273
    { "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   274
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   275
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   276
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   277
FUNCTION {format.editors}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   278
{ editor empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   279
    { "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   280
    { editor format.names
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   281
      editor num.names$ #1 >
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   282
	{ ", editors" * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   283
	{ ", editor" * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   284
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   285
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   286
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   287
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   288
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   289
FUNCTION {format.title}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   290
{ title empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   291
    { "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   292
    { title "t" change.case$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   293
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   294
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   295
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   296
FUNCTION {n.dashify}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   297
{ 't :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   298
  ""
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   299
    { t empty$ not }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   300
    { t #1 #1 substring$ "-" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   301
	{ t #1 #2 substring$ "--" = not
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   302
	    { "--" *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   303
	      t #2 global.max$ substring$ 't :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   304
	    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   305
	    {   { t #1 #1 substring$ "-" = }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   306
		{ "-" *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   307
		  t #2 global.max$ substring$ 't :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   308
		}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   309
	      while$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   310
	    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   311
	  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   312
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   313
	{ t #1 #1 substring$ *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   314
	  t #2 global.max$ substring$ 't :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   315
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   316
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   317
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   318
  while$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   319
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   320
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   321
FUNCTION {format.btitle}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   322
{ title emphasize
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   323
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   324
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   325
FUNCTION {tie.or.space.connect}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   326
{ duplicate$ text.length$ #3 <
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   327
    { "~" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   328
    { " " }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   329
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   330
  swap$ * *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   331
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   332
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   333
FUNCTION {either.or.check}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   334
{ empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   335
    'pop$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   336
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   337
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   338
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   339
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   340
FUNCTION {format.bvolume}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   341
{ volume empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   342
    { "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   343
    { "volume" volume tie.or.space.connect
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   344
      series empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   345
	'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   346
	{ " of " * series emphasize * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   347
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   348
      "volume and number" number either.or.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   349
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   350
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   351
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   352
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   353
FUNCTION {format.number.series}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   354
{ volume empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   355
    { number empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   356
	{ series field.or.null }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   357
	{ output.state mid.sentence =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   358
	    { "number" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   359
	    { "Number" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   360
	  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   361
	  number tie.or.space.connect
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   362
	  series empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   363
	    { "there's a number but no series in " cite$ * warning$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   364
	    { " in " * series * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   365
	  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   366
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   367
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   368
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   369
    { "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   370
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   371
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   372
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   373
FUNCTION {format.edition}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   374
{ edition empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   375
    { "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   376
    { output.state mid.sentence =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   377
	{ edition "l" change.case$ " edition" * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   378
	{ edition "t" change.case$ " edition" * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   379
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   380
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   381
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   382
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   383
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   384
INTEGERS { multiresult }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   385
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   386
FUNCTION {multi.page.check}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   387
{ 't :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   388
  #0 'multiresult :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   389
    { multiresult not
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   390
      t empty$ not
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   391
      and
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   392
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   393
    { t #1 #1 substring$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   394
      duplicate$ "-" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   395
      swap$ duplicate$ "," =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   396
      swap$ "+" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   397
      or or
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   398
	{ #1 'multiresult := }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   399
	{ t #2 global.max$ substring$ 't := }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   400
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   401
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   402
  while$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   403
  multiresult
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   404
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   405
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   406
FUNCTION {format.pages}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   407
{ pages empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   408
    { "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   409
    { pages multi.page.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   410
	{ "pages" pages n.dashify tie.or.space.connect }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   411
	{ "page" pages tie.or.space.connect }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   412
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   413
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   414
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   415
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   416
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   417
FUNCTION {format.vol.num.pages}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   418
{ volume field.or.null
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   419
  number empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   420
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   421
    { "(" number * ")" * *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   422
      volume empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   423
	{ "there's a number but no volume in " cite$ * warning$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   424
	'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   425
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   426
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   427
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   428
  pages empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   429
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   430
    { duplicate$ empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   431
	{ pop$ format.pages }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   432
	{ ":" * pages n.dashify * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   433
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   434
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   435
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   436
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   437
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   438
FUNCTION {format.chapter.pages}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   439
{ chapter empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   440
    'format.pages
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   441
    { type empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   442
	{ "chapter" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   443
	{ type "l" change.case$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   444
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   445
      chapter tie.or.space.connect
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   446
      pages empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   447
	'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   448
	{ ", " * format.pages * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   449
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   450
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   451
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   452
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   453
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   454
FUNCTION {format.in.ed.booktitle}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   455
{ booktitle empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   456
    { "" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   457
    { editor empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   458
	{ "In " booktitle emphasize * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   459
	{ "In " format.editors * ", " * booktitle emphasize * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   460
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   461
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   462
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   463
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   464
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   465
FUNCTION {format.thesis.type}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   466
{ type empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   467
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   468
    { pop$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   469
      type "t" change.case$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   470
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   471
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   472
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   473
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   474
FUNCTION {format.tr.number}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   475
{ type empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   476
    { "Technical Report" }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   477
    'type
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   478
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   479
  number empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   480
    { "t" change.case$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   481
    { number tie.or.space.connect }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   482
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   483
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   484
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   485
FUNCTION {format.article.crossref}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   486
{ "In"							% this is for apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   487
  " \cite{" * crossref * "}" *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   488
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   489
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   490
FUNCTION {format.book.crossref}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   491
{ volume empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   492
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   493
      "In "
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   494
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   495
    { "Volume" volume tie.or.space.connect
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   496
      " of " *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   497
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   498
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   499
  "\cite{" * crossref * "}" *				% this is for apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   500
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   501
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   502
FUNCTION {format.incoll.inproc.crossref}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   503
{ "In"							% this is for apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   504
  " \cite{" * crossref * "}" *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   505
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   506
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   507
FUNCTION {article}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   508
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   509
  format.authors "author" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   510
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   511
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   512
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   513
  format.title "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   514
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   515
  crossref missing$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   516
    { journal emphasize "journal" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   517
      format.vol.num.pages output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   518
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   519
    { format.article.crossref output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   520
      format.pages output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   521
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   522
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   523
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   524
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   525
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   526
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   527
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   528
FUNCTION {book}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   529
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   530
  author empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   531
    { format.editors "author and editor" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   532
      editor format.key output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   533
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   534
    { format.authors output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   535
      crossref missing$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   536
	{ "author and editor" editor either.or.check }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   537
	'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   538
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   539
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   540
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   541
  output.year.check				% special for apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   542
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   543
  format.btitle "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   544
  crossref missing$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   545
    { format.bvolume output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   546
      new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   547
      format.number.series output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   548
      new.sentence
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   549
      publisher "publisher" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   550
      address output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   551
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   552
    { new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   553
      format.book.crossref output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   554
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   555
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   556
  format.edition output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   557
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   558
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   559
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   560
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   561
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   562
FUNCTION {booklet}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   563
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   564
  format.authors output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   565
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   566
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   567
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   568
  format.title "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   569
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   570
  howpublished output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   571
  address output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   572
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   573
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   574
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   575
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   576
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   577
FUNCTION {inbook}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   578
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   579
  author empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   580
    { format.editors "author and editor" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   581
      editor format.key output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   582
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   583
    { format.authors output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   584
      crossref missing$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   585
	{ "author and editor" editor either.or.check }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   586
	'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   587
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   588
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   589
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   590
  output.year.check				% special for apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   591
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   592
  format.btitle "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   593
  crossref missing$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   594
    { format.bvolume output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   595
      format.chapter.pages "chapter and pages" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   596
      new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   597
      format.number.series output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   598
      new.sentence
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   599
      publisher "publisher" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   600
      address output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   601
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   602
    { format.chapter.pages "chapter and pages" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   603
      new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   604
      format.book.crossref output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   605
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   606
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   607
  format.edition output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   608
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   609
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   610
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   611
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   612
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   613
FUNCTION {incollection}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   614
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   615
  format.authors "author" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   616
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   617
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   618
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   619
  format.title "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   620
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   621
  crossref missing$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   622
    { format.in.ed.booktitle "booktitle" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   623
      format.bvolume output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   624
      format.number.series output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   625
      format.chapter.pages output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   626
      new.sentence
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   627
      publisher "publisher" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   628
      address output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   629
      format.edition output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   630
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   631
    { format.incoll.inproc.crossref output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   632
      format.chapter.pages output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   633
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   634
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   635
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   636
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   637
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   638
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   639
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   640
FUNCTION {inproceedings}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   641
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   642
  format.authors "author" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   643
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   644
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   645
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   646
  format.title "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   647
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   648
  crossref missing$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   649
    { format.in.ed.booktitle "booktitle" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   650
      format.bvolume output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   651
      format.number.series output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   652
      format.pages output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   653
      address output					% for apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   654
      new.sentence					% there's no year
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   655
      organization output				% here so things
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   656
      publisher output					% are simpler
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   657
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   658
    { format.incoll.inproc.crossref output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   659
      format.pages output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   660
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   661
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   662
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   663
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   664
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   665
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   666
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   667
FUNCTION {conference} { inproceedings }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   668
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   669
FUNCTION {manual}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   670
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   671
  format.authors output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   672
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   673
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   674
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   675
  format.btitle "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   676
  organization address new.block.checkb
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   677
  organization output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   678
  address output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   679
  format.edition output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   680
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   681
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   682
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   683
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   684
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   685
FUNCTION {mastersthesis}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   686
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   687
  format.authors "author" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   688
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   689
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   690
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   691
  format.title "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   692
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   693
  "Master's thesis" format.thesis.type output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   694
  school "school" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   695
  address output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   696
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   697
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   698
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   699
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   700
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   701
FUNCTION {misc}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   702
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   703
  format.authors output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   704
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   705
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   706
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   707
  format.title output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   708
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   709
  howpublished output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   710
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   711
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   712
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   713
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   714
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   715
FUNCTION {phdthesis}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   716
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   717
  format.authors "author" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   718
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   719
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   720
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   721
  format.btitle "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   722
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   723
  "PhD thesis" format.thesis.type output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   724
  school "school" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   725
  address output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   726
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   727
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   728
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   729
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   730
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   731
FUNCTION {proceedings}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   732
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   733
  format.editors output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   734
  editor format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   735
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   736
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   737
  format.btitle "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   738
  format.bvolume output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   739
  format.number.series output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   740
  address output				% for apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   741
  new.sentence					% we always output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   742
  organization output				% a nonempty organization
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   743
  publisher output				% here
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   744
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   745
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   746
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   747
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   748
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   749
FUNCTION {techreport}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   750
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   751
  format.authors "author" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   752
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   753
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   754
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   755
  format.title "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   756
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   757
  format.tr.number output.nonnull
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   758
  institution "institution" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   759
  address output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   760
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   761
  note output
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   762
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   763
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   764
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   765
FUNCTION {unpublished}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   766
{ output.bibitem
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   767
  format.authors "author" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   768
  author format.key output				% special for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   769
  output.year.check					% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   770
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   771
  format.title "title" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   772
  new.block
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   773
  note "note" output.check
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   774
  fin.entry
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   775
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   776
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   777
FUNCTION {default.type} { misc }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   778
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   779
MACRO {jan} {"January"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   780
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   781
MACRO {feb} {"February"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   782
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   783
MACRO {mar} {"March"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   784
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   785
MACRO {apr} {"April"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   786
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   787
MACRO {may} {"May"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   788
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   789
MACRO {jun} {"June"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   790
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   791
MACRO {jul} {"July"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   792
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   793
MACRO {aug} {"August"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   794
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   795
MACRO {sep} {"September"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   796
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   797
MACRO {oct} {"October"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   798
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   799
MACRO {nov} {"November"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   800
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   801
MACRO {dec} {"December"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   802
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   803
MACRO {acmcs} {"ACM Computing Surveys"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   804
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   805
MACRO {acta} {"Acta Informatica"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   806
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   807
MACRO {cacm} {"Communications of the ACM"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   808
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   809
MACRO {ibmjrd} {"IBM Journal of Research and Development"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   810
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   811
MACRO {ibmsj} {"IBM Systems Journal"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   812
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   813
MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   814
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   815
MACRO {ieeetc} {"IEEE Transactions on Computers"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   816
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   817
MACRO {ieeetcad}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   818
 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   819
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   820
MACRO {ipl} {"Information Processing Letters"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   821
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   822
MACRO {jacm} {"Journal of the ACM"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   823
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   824
MACRO {jcss} {"Journal of Computer and System Sciences"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   825
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   826
MACRO {scp} {"Science of Computer Programming"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   827
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   828
MACRO {sicomp} {"SIAM Journal on Computing"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   829
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   830
MACRO {tocs} {"ACM Transactions on Computer Systems"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   831
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   832
MACRO {tods} {"ACM Transactions on Database Systems"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   833
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   834
MACRO {tog} {"ACM Transactions on Graphics"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   835
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   836
MACRO {toms} {"ACM Transactions on Mathematical Software"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   837
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   838
MACRO {toois} {"ACM Transactions on Office Information Systems"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   839
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   840
MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   841
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   842
MACRO {tcs} {"Theoretical Computer Science"}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   843
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   844
READ
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   845
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   846
FUNCTION {sortify}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   847
{ purify$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   848
  "l" change.case$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   849
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   850
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   851
INTEGERS { len }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   852
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   853
FUNCTION {chop.word}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   854
{ 's :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   855
  'len :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   856
  s #1 len substring$ =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   857
    { s len #1 + global.max$ substring$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   858
    's
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   859
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   860
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   861
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   862
%			There are three apalike cases: one person (Jones),
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   863
%			two (Jones and de~Bruijn), and more (Jones et~al.).
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   864
%			This function is much like format.crossref.editors.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   865
%
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   866
FUNCTION {format.lab.names}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   867
{ 's :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   868
  s #1 "{vv~}{ll}" format.name$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   869
  s num.names$ duplicate$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   870
  #2 >
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   871
    { pop$ " et~al." * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   872
    { #2 <
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   873
	'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   874
	{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   875
	    { " et~al." * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   876
	    { " and " * s #2 "{vv~}{ll}" format.name$ * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   877
	  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   878
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   879
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   880
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   881
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   882
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   883
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   884
FUNCTION {author.key.label}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   885
{ author empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   886
    { key empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   887
	{ cite$ #1 #3 substring$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   888
	'key					% apalike uses the whole key
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   889
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   890
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   891
    { author format.lab.names }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   892
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   893
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   894
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   895
FUNCTION {author.editor.key.label}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   896
{ author empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   897
    { editor empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   898
	{ key empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   899
	    { cite$ #1 #3 substring$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   900
	    'key				% apalike uses the whole key
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   901
	  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   902
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   903
	{ editor format.lab.names }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   904
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   905
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   906
    { author format.lab.names }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   907
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   908
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   909
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   910
FUNCTION {editor.key.label}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   911
{ editor empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   912
    { key empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   913
	{ cite$ #1 #3 substring$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   914
	'key			% apalike uses the whole key, no organization
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   915
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   916
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   917
    { editor format.lab.names }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   918
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   919
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   920
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   921
FUNCTION {calc.label}      % this function came from ASTRON.BST (ARR)
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   922
{ type$ "book" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   923
  type$ "inbook" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   924
  or
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   925
    'author.editor.key.label
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   926
    { type$ "proceedings" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   927
        'editor.key.label                       % apalike ignores organization
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   928
        'author.key.label                       % for labeling and sorting
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   929
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   930
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   931
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   932
  "\protect\astroncite{" swap$ * "}{"                   % these three lines are
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   933
  *                                                     % for apalike, which
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   934
  year field.or.null purify$ #-1 #4 substring$          % uses all four digits
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   935
  *                       % the mathing closing "}" comes in at the reverse.pass
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   936
  'label :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   937
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   938
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   939
FUNCTION {sort.format.names}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   940
{ 's :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   941
  #1 'nameptr :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   942
  ""
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   943
  s num.names$ 'numnames :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   944
  numnames 'namesleft :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   945
    { namesleft #0 > }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   946
    { nameptr #1 >
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   947
	{ "   " * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   948
	'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   949
      if$						% apalike uses initials
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   950
      s nameptr "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}" format.name$ 't := % <= here
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   951
      nameptr numnames = t "others" = and
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   952
	{ "et al" * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   953
	{ t sortify * }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   954
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   955
      nameptr #1 + 'nameptr :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   956
      namesleft #1 - 'namesleft :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   957
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   958
  while$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   959
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   960
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   961
FUNCTION {sort.format.title}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   962
{ 't :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   963
  "A " #2
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   964
    "An " #3
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   965
      "The " #4 t chop.word
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   966
    chop.word
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   967
  chop.word
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   968
  sortify
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   969
  #1 global.max$ substring$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   970
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   971
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   972
FUNCTION {author.sort}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   973
{ author empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   974
    { key empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   975
	{ "to sort, need author or key in " cite$ * warning$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   976
	  ""
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   977
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   978
	{ key sortify }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   979
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   980
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   981
    { author sort.format.names }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   982
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   983
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   984
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   985
FUNCTION {author.editor.sort}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   986
{ author empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   987
    { editor empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   988
	{ key empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   989
	    { "to sort, need author, editor, or key in " cite$ * warning$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   990
	      ""
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   991
	    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   992
	    { key sortify }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   993
	  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   994
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   995
	{ editor sort.format.names }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   996
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   997
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   998
    { author sort.format.names }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
   999
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1000
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1001
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1002
FUNCTION {editor.sort}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1003
{ editor empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1004
    { key empty$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1005
	{ "to sort, need editor or key in " cite$ * warning$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1006
	  ""
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1007
	}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1008
	{ key sortify }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1009
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1010
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1011
    { editor sort.format.names }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1012
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1013
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1014
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1015
%			apalike uses two sorting passes; the first one sets the
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1016
%			labels so that the `a's, `b's, etc. can be computed;
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1017
%			the second pass puts the references in "correct" order.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1018
%			The presort function is for the first pass. It computes
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1019
%			label, sort.label, and title, and then concatenates.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1020
FUNCTION {presort}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1021
{ calc.label
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1022
  label sortify
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1023
  "    "
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1024
  *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1025
  type$ "book" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1026
  type$ "inbook" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1027
  or
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1028
    'author.editor.sort
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1029
    { type$ "proceedings" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1030
	'editor.sort
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1031
	'author.sort
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1032
      if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1033
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1034
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1035
  #1 entry.max$ substring$	% for
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1036
  'sort.label :=		% apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1037
  sort.label			% style
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1038
  *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1039
  "    "
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1040
  *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1041
  title field.or.null
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1042
  sort.format.title
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1043
  *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1044
  #1 entry.max$ substring$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1045
  'sort.key$ :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1046
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1047
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1048
ITERATE {presort}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1049
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1050
SORT		% by label, sort.label, title---for final label calculation
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1051
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1052
STRINGS { last.label next.extra }	% apalike labels are only for the text;
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1053
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1054
INTEGERS { last.extra.num }		% there are none in the bibliography
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1055
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1056
FUNCTION {initialize.extra.label.stuff}	% and hence there is no `longest.label'
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1057
{ #0 int.to.chr$ 'last.label :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1058
  "" 'next.extra :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1059
  #0 'last.extra.num :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1060
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1061
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1062
FUNCTION {forward.pass}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1063
{ last.label label =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1064
    { last.extra.num #1 + 'last.extra.num :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1065
      last.extra.num int.to.chr$ 'extra.label :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1066
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1067
    { "a" chr.to.int$ 'last.extra.num :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1068
      "" 'extra.label :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1069
      label 'last.label :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1070
    }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1071
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1072
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1073
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1074
FUNCTION {reverse.pass}       % this function came from ASTRON.BST (ARR)
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1075
{ next.extra "b" =
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1076
    { "a" 'extra.label := }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1077
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1078
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1079
  label extra.label * "}" * 'label :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1080
  extra.label 'next.extra :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1081
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1082
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1083
EXECUTE {initialize.extra.label.stuff}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1084
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1085
ITERATE {forward.pass}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1086
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1087
REVERSE {reverse.pass}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1088
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1089
%				Now that the label is right we sort for real,
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1090
%				on sort.label then year then title.  This is
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1091
%				for the second sorting pass.
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1092
FUNCTION {bib.sort.order}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1093
{ sort.label
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1094
  "    "
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1095
  *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1096
  year field.or.null sortify
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1097
  *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1098
  "    "
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1099
  *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1100
  title field.or.null
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1101
  sort.format.title
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1102
  *
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1103
  #1 entry.max$ substring$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1104
  'sort.key$ :=
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1105
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1106
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1107
ITERATE {bib.sort.order}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1108
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1109
SORT		% by sort.label, year, title---giving final bibliography order
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1110
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1111
FUNCTION {begin.bib}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1112
{ preamble$ empty$				% no \etalchar in apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1113
    'skip$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1114
    { preamble$ write$ newline$ }
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1115
  if$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1116
  "\begin{thebibliography}{}" write$ newline$		% no labels in apalike
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1117
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1118
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1119
EXECUTE {begin.bib}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1120
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1121
EXECUTE {init.state.consts}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1122
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1123
ITERATE {call.type$}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1124
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1125
FUNCTION {end.bib}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1126
{ newline$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1127
  "\end{thebibliography}" write$ newline$
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1128
}
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1129
01d223421ba0 slight changes
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
diff changeset
  1130
EXECUTE {end.bib}