texlive[52718] Master: jmb own package on ctan

commits+karl at tug.org commits+karl at tug.org
Sun Nov 10 20:27:04 CET 2019


Revision: 52718
          http://tug.org/svn/texlive?view=revision&revision=52718
Author:   karl
Date:     2019-11-10 20:27:04 +0100 (Sun, 10 Nov 2019)
Log Message:
-----------
jmb own package on ctan

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-bibtexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/bibtex/bst/jmb/
    trunk/Master/texmf-dist/bibtex/bst/jmb/jmb.bst
    trunk/Master/texmf-dist/tex/latex/jmb/
    trunk/Master/texmf-dist/tex/latex/jmb/jmb.sty
    trunk/Master/tlpkg/tlpsrc/jmb.tlpsrc

Removed Paths:
-------------
    trunk/Master/texmf-dist/bibtex/bst/beebe/jmb.bst
    trunk/Master/tlpkg/tlpsrc/jtb.tlpsrc

Deleted: trunk/Master/texmf-dist/bibtex/bst/beebe/jmb.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/beebe/jmb.bst	2019-11-10 19:25:59 UTC (rev 52717)
+++ trunk/Master/texmf-dist/bibtex/bst/beebe/jmb.bst	2019-11-10 19:27:04 UTC (rev 52718)
@@ -1,1368 +0,0 @@
-%%% ====================================================================
-%%%  @BibTeX-style-file{
-%%%     author          = "Tom Schneider",
-%%%     version         = "1.21",
-%%%     date            = "29 June 1992",
-%%%     time            = "17:30:33 MDT",
-%%%     filename        = "jmb.bst",
-%%%     address         = "National Cancer Institute
-%%%                        Laboratory of Mathematical Biology
-%%%                        Frederick, Maryland 21701-1013
-%%%                        USA",
-%%%     checksum        = "11681 1368 4735 33144",
-%%%     email           = "toms at ncifcrf.gov (Internet)",
-%%%     codetable       = "ISO/ASCII",
-%%%     keywords        = "molecular biology, BibTeX",
-%%%     supported       = "yes",
-%%%     docstring       = "This BibTeX bibliography style is for the
-%%%                        Journal of Molecular Biology and Journal of
-%%%                        Theoretical Biology.  This file is available
-%%%                        by anonymous ftp from ncifcrf.gov in
-%%%                        pub/delila.
-%%%
-%%%                        TITLES can be turned on and off!  Just nocite
-%%%                        the reference TitlesOn in the paper (i.e.
-%%%                        \nocite{TitlesOn}) and have a bibliography
-%%%                        article in your database with that cite key!
-%%%                        Without titles is Journal of Molecular
-%%%                        Biology; With titles is Journal of
-%%%                        Theoretical Biology.
-%%%
-%%%                        WARNING: Since I use mostly article, book and
-%%%                        inproceedings, these are formatted pretty
-%%%                        closely to the Journal of Theoretical Biology
-%%%                        style while other things are neglected.
-%%%                        Also, I can't guarantee that the style is
-%%%                        exactly right.
-%%%
-%%%                        The following documentation is identical from
-%%%                        the source of jmb.bst, which was the
-%%%                        apalike.bst taken from the Clarkson archive
-%%%                        on 1989 June 19.
-%%%
-%%%                        The checksum field above contains a CRC-16
-%%%                        checksum as the first value, followed by the
-%%%                        equivalent of the standard UNIX wc (word
-%%%                        count) utility output of lines, words, and
-%%%                        characters.  This is produced by Robert
-%%%                        Solovay's checksum utility."
-%%%  }
-%%% ====================================================================
-
-% BibTex `jmb' bibliography style
-% version = 1.21 of jmb.bst 1992 June 29
-%                   Fix format.vol.num.pages to use field.or.null to
-%                   correctly handle case of missing volume.
-%                   [Nelson H. F. Beebe <beebe at plot79.math.utah.edu>]
-% version = 1.20 of jmb.bst 1990 November 16
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% BibTeX `apalike' bibliography style (24-Jan-88 version)
-% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a.
-% Copyright (C) 1988, all rights reserved.
-% Copying of this file is allowed, provided that if you make any changes at all
-% you name it something other than `apalike.bst'.
-% This restriction helps ensure that all copies are identical.
-% Differences between this style and `alpha' are generally heralded by a `%'.
-% The file btxbst.doc has the documentation for alpha.bst.
-%
-% This style should be used with the `apalike' LaTeX style (apalike.sty).
-% \cite's come out like "(Jones, 1986)" in the text but there are no labels
-% in the bibliography, and something like "(1986)" comes out immediately
-% after the author.  Author (and editor) names appear as last name, comma,
-% initials.  A `year' field is required for every entry, and so is either
-% an author (or in some cases, an editor) field or a key field.
-%
-% Editorial note:
-% Many journals require a style like `apalike', but I strongly, strongly,
-% strongly recommend that you not use it if you have a choice---use something
-% like `plain' instead.  Mary-Claire van Leunen (A Handbook for Scholars,
-% Knopf, 1979) argues convincingly that a style like `plain' encourages better
-% writing than one like `apalike'.  Furthermore the strongest arguments for
-% using an author-date style like `apalike'---that it's "the most practical"
-% (The Chicago Manual of Style, University of Chicago Press, thirteenth
-% edition, 1982, pages 400--401)---fall flat on their face with the new
-% computer-typesetting technology.  For instance page 401 anachronistically
-% states "The chief disadvantage of [a style like `plain'] is that additions
-% or deletions cannot be made after the manuscript is typed without changing
-% numbers in both text references and list."  LaTeX sidesteps the disadvantage.
-%
-% History:
-%   15-sep-86	(SK,OP)	Original version, by Susan King and Oren Patashnik.
-%   10-nov-86	(OP)	Truncated the sort.key$ string to the correct length
-%			in bib.sort.order to eliminate error message.
-%   24-jan-88	(OP)	Updated for BibTeX version 0.99a, from alpha.bst 0.99a;
-%			apalike now sorts by author, then year, then title;
-%			THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% The program was further modified by Tom Schneider:
-%
-%   1989 June 19 (TDS)  Renamed jmb.bst.  Items that do not have years were
-%        listed in the bibliography without identifiers.  However, they
-%        have identifiers in the text.  The identifier was added.
-%        Titles were removed :-(.
-
-%   1989 October 2 (TDS)  Made labels in the paper use the & symbol rather
-%                  than `and', as required by JMB.
-%   1989 October 3 (TDS)  Made et~al. be in italics.
-%                  Removed comma after journal name.  (actually, all
-%                  mid sentence commas go!)
-%                  Made volume number be bold faced.
-%                  Converted colon (:) after volume number to a comma (,).
-%                  If a journal name does NOT end in a period, add
-%                  a comma after the name.
-%   1989 October 14 (TDS)  Without a year the program used to sort on the
-%                   title.  I made it sort on the cite$ if there is no year.
-%   1989 October 18 (TDS)  If there is one reference without a year, put
-%                   an "a" at the end of its label, so that it comes out
-%                   as (Smith, a) in the text.  in FUNCTION {forward.pass}
-%   1989 November 2 (TDS)  Unpublished papers now give the title.
-%   1989 November 18 (TDS)  TITLES can be turned on and off!
-%                   Just nocite the reference TitlesOn in the paper
-%                   and have a bibliography article in your database
-%                   with that cite key!
-%   1989 December 5 (TDS)  I can't stand sorting to fall back on the
-%                   titles of the article - no control!  So in function
-%                   bib.sort.order the default is now cite$.
-%   1990 November 14 (TDS) Changes to match JTB better:
-%                    Names in the bibliography are now connected
-%                    with "\&" instead of "and", since this fits JTB better.
-%                    "In" is now "In:".
-%                    "editors" and "editor" are now "eds" and "ed".
-%                    booktitle follows editors.  editors in parenthesis.
-%                    pp. and p. instead of pages and page.
-%                    location followed by colon (:) and then publisher.
-
-ENTRY  % declare variables that have a value for each entry on the list
-  { address
-    author
-    booktitle
-    chapter
-    edition
-    editor
-    howpublished
-    institution
-    journal
-    key
-%    month		not used in apalike
-    note
-    number
-    organization
-    pages
-    publisher
-    school
-    series
-    title
-    type
-    volume
-    year
-  }
-  {}
-  { label extra.label sort.label }
-
-INTEGERS { output.state before.all mid.sentence after.sentence after.block
-           docomma givetitles }
-
-FUNCTION {init.state.consts}
-{ #0 'before.all :=
-  #1 'mid.sentence :=
-  #2 'after.sentence :=
-  #3 'after.block :=
-
-  #0 'docomma :=    % if it is 0 then don't do commas, otherwise do them.
-}
-
-FUNCTION {init.toggle.switches}
-{% set switches for controlling the output!
-  #0 'givetitles := % if it is 0 then don't give titles, otherwise do them.
-}
-
-STRINGS { s t }
-
-FUNCTION {output.nonnull}
-{ 's :=
-  output.state mid.sentence =
-
-% %    { ", " * write$ }  % the comma here is responsible for every comma!
-% %                       % But JMB doesn't want commas, so away it goes!
-%      { " " * write$ }    % That does it!
-
-    { % doing a comma is controlled specifically in JMB using docomma
-      docomma #0 =
-      { " " * write$ }
-      { ", " * write$ }
-      if$
-    }
-    { output.state after.block =
-	{ add.period$ write$
-	  newline$
-	  "\newblock " write$
-	}
-	{ output.state before.all =
-	    'write$
-	    { add.period$ " " * write$ }
-	  if$
-	}
-      if$
-      mid.sentence 'output.state :=
-    }
-  if$
-  s
-}
-
-FUNCTION {output}
-{ duplicate$ empty$
-    'pop$
-    'output.nonnull
-  if$
-}
-
-FUNCTION {output.check}
-{ 't :=
-  duplicate$ empty$
-     {  t "title" =
-           { pop$ } % jmb ignores titles and does not object if missing
-           { pop$ "empty " t * " in " * cite$ * warning$ }
-        if$
-     }
-    'output.nonnull  % block periods
-    % { pop$  } % don't do anything
-  if$
-}
-
-%    t "title" =
-%    { "zowie" warning$ }
-%    {  duplicate$ empty$
-%       { pop$ "EmPtY " t * " in " * cite$ * warning$ }
-%       'output.nonnull
-%    }
-%    if$
-%  if$
-%}
-
-%					apalike needs this function because
-%					the year has special punctuation;
-%					apalike ignores the month
-FUNCTION {output.year.check}
-{ year empty$
-    {
-      "empty year in " cite$ ", using label: " extra.label * * * warning$
-      write$
-      " (" extra.label * ")" *
-      mid.sentence 'output.state :=
-    }
-    { write$
-      " (" year * extra.label * ")" *
-      mid.sentence 'output.state :=
-    }
-  if$
-}
-
-FUNCTION {output.bibitem}
-{ newline$
-  "\bibitem[" write$
-  label write$
-  "]{" write$
-  cite$ write$
-  "}" write$
-  newline$
-  ""
-  before.all 'output.state :=
-}
-
-FUNCTION {fin.entry}
-{ add.period$
-  write$
-  newline$
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
-    'skip$
-    { after.block 'output.state := }
-  if$
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block =
-    'skip$
-    { output.state before.all =
-	'skip$
-	{ after.sentence 'output.state := }
-      if$
-    }
-  if$
-}
-
-FUNCTION {not}
-{   { #0 }
-    { #1 }
-  if$
-}
-
-FUNCTION {and}
-{   'skip$
-    { pop$ #0 }
-  if$
-}
-
-FUNCTION {or}
-{   { pop$ #1 }
-    'skip$
-  if$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.block
-  if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
-    { pop$ "" }
-    'skip$
-  if$
-}
-
-FUNCTION {emphasize}
-{ duplicate$ empty$
-    { pop$ "" }
-    { "{\em " swap$ * "}" * }
-  if$
-}
-
-INTEGERS { nameptr namesleft numnames }
-
-FUNCTION {format.names}
-{ 's :=
-  #1 'nameptr :=
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=   % last name first
-      nameptr #1 >
-	{ namesleft #1 >
-	    { ", " * t * }
-	    { numnames #2 >
-		{ "," * }
-		'skip$
-	      if$
-	      t "others" =
-		{ " {\em et~al.}" * }
-		{ " \& " * t * }
-	      if$
-	    }
-	  if$
-	}
-	't
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-
-FUNCTION {format.authors}
-{ author empty$
-    { "" }
-    { author format.names }
-  if$
-}
-
-FUNCTION {format.key}			% this function is just for apalike
-{ empty$
-    { key field.or.null }
-    { "" }
-  if$
-}
-
-FUNCTION {format.editors}
-{ editor empty$
-    { "" }
-    { editor format.names
-      editor num.names$ #1 >
-	{ ", eds" * } % TDS
-	{ ", ed" * } % TDS
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.title}
-{ title empty$
-    { "" }
-    { % decide whether to give the title or not
-       givetitles #1 =
-       { title "t" change.case$ } % produce the title
-       { title pop$ "" }          % don't produce the title
-       if$
-    }
-  if$
-}
-
-FUNCTION {n.dashify}
-{ 't :=
-  ""
-    { t empty$ not }
-    { t #1 #1 substring$ "-" =
-	{ t #1 #2 substring$ "--" = not
-	    { "--" *
-	      t #2 global.max$ substring$ 't :=
-	    }
-	    {   { t #1 #1 substring$ "-" = }
-		{ "-" *
-		  t #2 global.max$ substring$ 't :=
-		}
-	      while$
-	    }
-	  if$
-	}
-	{ t #1 #1 substring$ *
-	  t #2 global.max$ substring$ 't :=
-	}
-      if$
-    }
-  while$
-}
-
-FUNCTION {format.btitle}
-{ title emphasize
-}
-
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
-    { "~" }
-    { " " }
-  if$
-  swap$ * *
-}
-
-FUNCTION {either.or.check}
-{ empty$
-    'pop$
-    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
-  if$
-}
-
-FUNCTION {format.bvolume}
-{ volume empty$
-    { "" }
-    { "volume" volume tie.or.space.connect
-      series empty$
-	'skip$
-	{ " of " * series emphasize * }
-      if$
-      "volume and number" number either.or.check
-    }
-  if$
-}
-
-FUNCTION {format.number.series}
-{ volume empty$
-    { number empty$
-	{ series field.or.null }
-	{ output.state mid.sentence =
-	    { "number" }
-	    { "Number" }
-	  if$
-	  number tie.or.space.connect
-	  series empty$
-	    { "there's a number but no series in " cite$ * warning$ }
-	    { " in " * series * }
-	  if$
-	}
-      if$
-    }
-    { "" }
-  if$
-}
-
-FUNCTION {format.edition}
-{ edition empty$
-    { "" }
-    { output.state mid.sentence =
-	{ edition "l" change.case$ " edition" * }
-	{ edition "t" change.case$ " edition" * }
-      if$
-    }
-  if$
-}
-
-INTEGERS { multiresult }
-
-FUNCTION {multi.page.check}
-{ 't :=
-  #0 'multiresult :=
-    { multiresult not
-      t empty$ not
-      and
-    }
-    { t #1 #1 substring$
-      duplicate$ "-" =
-      swap$ duplicate$ "," =
-      swap$ "+" =
-      or or
-	{ #1 'multiresult := }
-	{ t #2 global.max$ substring$ 't := }
-      if$
-    }
-  while$
-  multiresult
-}
-
-FUNCTION {format.pages}
-{ pages empty$
-    { "" }
-    { pages multi.page.check
-	{ "pp." pages n.dashify tie.or.space.connect } % TDS
-	{ "p." pages tie.or.space.connect } % TDS
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.vol.num.pages}
-{ "{\bf " volume field.or.null * "}" *  % make volume bold face
-  number empty$
-    'skip$
-    { " (" number * ")" * *
-       volume empty$
-	{ "there's a number but no volume in " cite$ * warning$ }
-	'skip$
-      if$
-    }
-  if$
-  pages empty$
-    'skip$
-    { duplicate$ empty$
-	{ pop$ format.pages }
-%	{ ":" * pages n.dashify * } % no more colons after the volume
-	{ ", " * pages n.dashify * } % comma's instead
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
-    'format.pages
-    { type empty$
-	{ "chapter" }
-	{ type "l" change.case$ }
-      if$
-      chapter tie.or.space.connect
-      pages empty$
-	'skip$
-	{ ", " * format.pages * }
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.in.ed.booktitle}
-{ booktitle empty$
-    { "" }
-    { editor empty$
-	{ "In: " booktitle emphasize * } % TDS
-	{ "In: " booktitle emphasize * ", " *
-          "(" format.editors ")" * * * } % TDS
-      if$
-    }
-  if$
-}
-
-FUNCTION {format.thesis.type}
-{ type empty$
-    'skip$
-    { pop$
-      type "t" change.case$
-    }
-  if$
-}
-
-FUNCTION {format.tr.number}
-{ type empty$
-    { "Technical Report" }
-    'type
-  if$
-  number empty$
-    { "t" change.case$ }
-    { number tie.or.space.connect }
-  if$
-}
-
-FUNCTION {format.article.crossref}
-{ "In:"				% this is for apalike % TDS
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.book.crossref}
-{ volume empty$
-    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
-      "In: " % TDS
-    }
-    { "Volume" volume tie.or.space.connect
-      " of " *
-    }
-  if$
-  "\cite{" * crossref * "}" *				% this is for apalike
-}
-
-FUNCTION {format.incoll.inproc.crossref}
-{ "In:"				% this is for apalike % TDS
-  " \cite{" * crossref * "}" *
-}
-
-FUNCTION {article}
-{
-  cite$ "TitlesOn" =
-  'skip$ % Don't write out an article of this kind, it's a toggle switch!
-  {
-  output.bibitem
-  format.authors "author" output.check
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    { % figure out the last character of the journal name.
-      % "<<" journal #-1 #1 substring$ ">>" * *  % for testing
-      % "<" journal ">" * *  % this works ok     % for testing
-
-      journal #-1 #1 substring$ "." =
-      { journal }  % journal ended in period so don't do anything
-      { journal ", " *}  % journal ended without period, so add comma
-      if$
-      emphasize "journal" output.check
-
-%      journal * emphasize "journal" output.check % the original method
-
-      format.vol.num.pages output
-    }
-    { format.article.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  new.block
-  note output
-  fin.entry
-  }
-  if$
-}
-
-FUNCTION {book}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check
-      editor format.key output
-    }
-    { format.authors output.nonnull
-      crossref missing$
-	{ "author and editor" editor either.or.check }
-	'skip$
-      if$
-    }
-  if$
-  output.year.check				% special for apalike
-  new.block
-  format.btitle "title" output.check
-  #1 'docomma :=    % TURN COMMAS ON FOR JMB
-  crossref missing$
-    {
-      format.bvolume output
-      new.block
-      format.number.series output
-      new.sentence
-         #0 'docomma := % no comma after address
-      address ":" * output % TDS
-      publisher "publisher" output.check % TDS
-         #1 'docomma := % comma back on
-%      publisher "publisher" output.check
-%      address output
-    }
-    { new.block
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.edition output
-  new.block
-  note output
-  fin.entry
-  #0 'docomma :=    % TURN COMMAS OFF
-}
-
-FUNCTION {booklet}
-{ output.bibitem
-  format.authors output
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.title "title" output.check
-  new.block
-  howpublished output
-  address output
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {inbook}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check
-      editor format.key output
-    }
-    { format.authors output.nonnull
-      crossref missing$
-	{ "author and editor" editor either.or.check }
-	'skip$
-      if$
-    }
-  if$
-  output.year.check				% special for apalike
-  new.block
-  format.btitle "title" output.check
-  crossref missing$
-    { format.bvolume output
-      format.chapter.pages "chapter and pages" output.check
-      new.block
-      format.number.series output
-      new.sentence
-         #0 'docomma := % no comma after address
-      address ":" * output % TDS
-      publisher "publisher" output.check % TDS
-         #1 'docomma := % comma back on
-%      publisher "publisher" output.check
-%      address output
-    }
-    { format.chapter.pages "chapter and pages" output.check
-      new.block
-      format.book.crossref output.nonnull
-    }
-  if$
-  format.edition output
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {incollection}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-      format.bvolume output
-      format.number.series output
-      format.chapter.pages output
-      new.sentence
-      publisher "publisher" output.check
-      address output
-      format.edition output
-    }
-    { format.incoll.inproc.crossref output.nonnull
-      format.chapter.pages output
-    }
-  if$
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {inproceedings}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    {
-%      #1 'docomma :=    % TURN COMMAS ON FOR JMB, BUT NOT FOR JTB: inconsistent
-      format.in.ed.booktitle "booktitle" output.check
-      format.bvolume output
-      format.number.series output
-      format.pages "," * output % TDS toss in comma instead of period
-%      address output % TDS address is below for JTB
-%      new.sentence % TDS remove period
-      organization output
-         #0 'docomma := % NO COMMA AFTER ADDRESS
-      address ":" * output % TDS
-      publisher "publisher" output.check % TDS
-         #1 'docomma := % comma back on
-
-%      publisher output					% are simpler
-      #0 'docomma :=    % TURN COMMAS OFF
-    }
-    { format.incoll.inproc.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {conference} { inproceedings }
-
-FUNCTION {manual}
-{ output.bibitem
-  format.authors output
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.btitle "title" output.check
-  organization address new.block.checkb
-  organization output
-  address output
-  format.edition output
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {mastersthesis}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.title "title" output.check
-  new.block
-  "Master's thesis" format.thesis.type output.nonnull
-  school "school" output.check
-  address output
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {misc}
-{ output.bibitem
-  format.authors output
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.title output
-  new.block
-  howpublished output
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {phdthesis}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.btitle "title" output.check
-  new.block
-  "PhD thesis" format.thesis.type output.nonnull
-  school "school" output.check
-  address output
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {proceedings}
-{ output.bibitem
-  format.editors output
-  editor format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.btitle "title" output.check
-  format.bvolume output
-  format.number.series output
-  address output				% for apalike
-  new.sentence					% we always output
-  organization output				% a nonempty organization
-  publisher output				% here
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {techreport}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-  format.title "title" output.check
-  new.block
-  format.tr.number output.nonnull
-  institution "institution" output.check
-  address output
-  new.block
-  note output
-  fin.entry
-}
-
-FUNCTION {unpublished}
-{ output.bibitem
-  format.authors "author" output.check
-  author format.key output				% special for
-  output.year.check					% apalike
-  new.block
-
-% Since format.title is out of commission, the original method won't work:
-%  format.title "title" output.check
-% so do the equivalent of the format.title procedure: (TDS)
-  title empty$
-    { "" }
-    { title "t" change.case$ } % produce the title
-  if$
-  "title" output.check
-
-  new.block
-  note "note" output.check
-  fin.entry
-}
-
-FUNCTION {default.type} { misc }
-
-MACRO {jan} {"January"}
-
-MACRO {feb} {"February"}
-
-MACRO {mar} {"March"}
-
-MACRO {apr} {"April"}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"June"}
-
-MACRO {jul} {"July"}
-
-MACRO {aug} {"August"}
-
-MACRO {sep} {"September"}
-
-MACRO {oct} {"October"}
-
-MACRO {nov} {"November"}
-
-MACRO {dec} {"December"}
-
-MACRO {acmcs} {"ACM Computing Surveys"}
-
-MACRO {acta} {"Acta Informatica"}
-
-MACRO {cacm} {"Communications of the ACM"}
-
-MACRO {ibmjrd} {"IBM Journal of Research and Development"}
-
-MACRO {ibmsj} {"IBM Systems Journal"}
-
-MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
-
-MACRO {ieeetc} {"IEEE Transactions on Computers"}
-
-MACRO {ieeetcad}
- {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
-
-MACRO {ipl} {"Information Processing Letters"}
-
-MACRO {jacm} {"Journal of the ACM"}
-
-MACRO {jcss} {"Journal of Computer and System Sciences"}
-
-MACRO {scp} {"Science of Computer Programming"}
-
-MACRO {sicomp} {"SIAM Journal on Computing"}
-
-MACRO {tocs} {"ACM Transactions on Computer Systems"}
-
-MACRO {tods} {"ACM Transactions on Database Systems"}
-
-MACRO {tog} {"ACM Transactions on Graphics"}
-
-MACRO {toms} {"ACM Transactions on Mathematical Software"}
-
-MACRO {toois} {"ACM Transactions on Office Information Systems"}
-
-MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
-
-MACRO {tcs} {"Theoretical Computer Science"}
-
-READ
-
-% ***********************************************************
-
-FUNCTION {check.for.titlecommand}
-% go through each entry and see if one of them has the key
-% 'TitlesOn'.  If this is found, then do titles!
-% 1989 November 18 TDS
-{
-%  "|" label "|" * * write$ newline$  % |Arrhenius {\em et~al.}, 1986|
-%  "|" cite$ "|" * * write$ newline$  % |Arrhenius1986|
-% so cite$ is the thing I want to detect...
-
-  cite$ "TitlesOn" =
-  { % got it!
-%    "FOUND TitlesOn" write$ newline$
-     "Titles Will Be Printed" warning$
-    #1 'givetitles := % give titles!
-  }
-  'skip$
-  if$
-}
-EXECUTE {init.toggle.switches}
-ITERATE {check.for.titlecommand}
-% ***********************************************************
-
-FUNCTION {sortify}
-{ purify$
-  "l" change.case$
-}
-
-INTEGERS { len }
-
-FUNCTION {chop.word}
-{ 's :=
-  'len :=
-  s #1 len substring$ =
-    { s len #1 + global.max$ substring$ }
-    's
-  if$
-}
-
-%			There are three apalike cases: one person (Jones),
-%			two (Jones and de~Bruijn), and more (Jones et~al.).
-%			This function is much like format.crossref.editors.
-%
-FUNCTION {format.lab.names}
-{ 's :=
-  s #1 "{vv~}{ll}" format.name$
-  s num.names$ duplicate$
-  #2 >
-    { pop$ " {\em et~al.}" * }
-    { #2 <
-	'skip$
-	{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
-	    { " {\em et~al.}" * }
-	    { " \& " * s #2 "{vv~}{ll}" format.name$ * }
-            % note new use of & rather than `and'.  TDS
-	  if$
-	}
-      if$
-    }
-  if$
-}
-
-FUNCTION {author.key.label}
-{ author empty$
-    { key empty$
-	{ cite$ #1 #3 substring$ }
-	'key					% apalike uses the whole key
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {author.editor.key.label}
-{ author empty$
-    { editor empty$
-	{ key empty$
-	    { cite$ #1 #3 substring$ }
-	    'key				% apalike uses the whole key
-	  if$
-	}
-	{ editor format.lab.names }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {editor.key.label}
-{ editor empty$
-    { key empty$
-	{ cite$ #1 #3 substring$ }
-	'key			% apalike uses the whole key, no organization
-      if$
-    }
-    { editor format.lab.names }
-  if$
-}
-
-FUNCTION {calc.label}
-{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.key.label
-    { type$ "proceedings" =
-	'editor.key.label			% apalike ignores organization
-	'author.key.label			% for labeling and sorting
-      if$
-    }
-  if$
-  ", "							% these three lines are
-  *							% for apalike, which
-  year field.or.null purify$ #-1 #4 substring$		% uses all four digits
-  *
-  'label :=
-}
-
-FUNCTION {sort.format.names}
-{ 's :=
-  #1 'nameptr :=
-  ""
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { nameptr #1 >
-	{ "   " * }
-	'skip$
-      if$						% apalike uses initials
-      s nameptr "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}" format.name$ 't := % <= here
-      nameptr numnames = t "others" = and
-	{ "{\em et al}" * }
-	{ t sortify * }
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-
-FUNCTION {sort.format.title}
-{ 't :=
-  "A " #2
-    "An " #3
-      "The " #4 t chop.word
-    chop.word
-  chop.word
-  sortify
-  #1 global.max$ substring$
-}
-
-FUNCTION {author.sort}
-{ author empty$
-    { key empty$
-	{ "to sort, need author or key in " cite$ * warning$
-	  ""
-	}
-	{ key sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {author.editor.sort}
-{ author empty$
-    { editor empty$
-	{ key empty$
-	    { "to sort, need author, editor, or key in " cite$ * warning$
-	      ""
-	    }
-	    { key sortify }
-	  if$
-	}
-	{ editor sort.format.names }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-
-FUNCTION {editor.sort}
-{ editor empty$
-    { key empty$
-	{ "to sort, need editor or key in " cite$ * warning$
-	  ""
-	}
-	{ key sortify }
-      if$
-    }
-    { editor sort.format.names }
-  if$
-}
-
-%			apalike uses two sorting passes; the first one sets the
-%			labels so that the `a's, `b's, etc. can be computed;
-%			the second pass puts the references in "correct" order.
-%			The presort function is for the first pass. It computes
-%			label, sort.label, and title, and then concatenates.
-FUNCTION {presort}
-{ calc.label
-  label sortify
-  "    "
-  *
-  type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.sort
-    { type$ "proceedings" =
-	'editor.sort
-	'author.sort
-      if$
-    }
-  if$
-  #1 entry.max$ substring$	% for
-  'sort.label :=		% apalike
-  sort.label			% style
-  *
-  "    "
-  *
-  title field.or.null
-  sort.format.title
-  *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-}
-
-ITERATE {presort}
-
-SORT		% by label, sort.label, title---for final label calculation
-
-STRINGS { last.label next.extra }	% apalike labels are only for the text;
-
-INTEGERS { last.extra.num }		% there are none in the bibliography
-
-FUNCTION {initialize.extra.label.stuff}	% and hence there is no `longest.label'
-{ #0 int.to.chr$ 'last.label :=
-  "" 'next.extra :=
-  #0 'last.extra.num :=
-}
-
-FUNCTION {forward.pass}
-% pass through the references forward
-{
-%"\\     label=" label "//" * * write$ newline$ % display the label
-%"\\last.label=" last.label "//" * * write$ newline$ % display the label
-
- last.label label =   % if the label repeats the previous label...
-    { % then increment the extra number
-      last.extra.num #1 + 'last.extra.num :=
-      % and convert it to a label
-      last.extra.num int.to.chr$ 'extra.label :=
-    }
-    { % else set things up for the next entry
-      "a" chr.to.int$ 'last.extra.num :=
-
-      % However, if the year was missing, tack on an extra "a". TDS
-      year empty$
-      {"a" 'extra.label :=}
-      {"" 'extra.label :=}
-      if$
-
-%      "" 'extra.label :=  % the original method was not to do anything TDS
-
-      label 'last.label :=   % capture this label for next time
-    }
-  if$
-%"\\extra.label = " extra.label "//" * * write$ newline$ % display the label
-}
-
-FUNCTION {reverse.pass}
-% pass through the references backwards
-% add extra characters to the end of the label string
-{
-%"{{" label "}}" * * write$ newline$ % display the label
- next.extra "b" =
-% original logic:
-    { "a" 'extra.label := }
-    'skip$
-    if$
-
-% next.extra "b" = { "next.extra was = b" write$ newline$} 'skip$ if$
-
-% new as of 1989 Oct 18
-%    { "a" 'extra.label := }
-%    { % Put on an "a" at the end of the label if the year is missing. TDS
-%      year empty$
-%       { "a" 'extra.label := }
-%       %{ label "a" * 'label := }
-%       'skip$ % otherwise leave it alone (orignial method)
-%     if$ }
-%  if$
-
-  label extra.label * 'label :=
-  extra.label 'next.extra :=
-%"{{" label "}}" * * write$ newline$ % display the label
-}
-
-FUNCTION {bib.sort.order}
-% Generate the sort.key$ variables for sorting.
-% The sorting is first on the sort.label (ie, author's name), followed
-% by the year then the title.  If there is no year, the cite$ is used.
-{
-  sort.label  % this is based on the author name
-  "    " * % tack on some space
-% original apa command was to use the year or an empty string:
-%  year field.or.null sortify
-%
-% Replace that with the use of the cite$, when there is no year:
-  year duplicate$ empty$
-     {pop$ cite$}
-     'skip$
-  if$
-
-  * "    " *  % tack on some space
-
-% I CAN'T STAND SORTING ON TITLE!!! TDS 1989 Dec 5
-%  title field.or.null
-%  sort.format.title
-%  * % attach them together
-  cite$
-  * % use cite$ instead!!
-
-  % note: if there is no year, then the cite$ will override the sorting
-  % on the title.  Oh well.  Title sorting is sorta (ha ha) awful.
-
-  #1 entry.max$ substring$
-  'sort.key$ :=
-
-  % The following line helps debug the program.  It shows what the sort.key$ is.
-  % "%" sort.key$ * write$ newline$
-}
-
-% Here is the place that the actual executions of the labeling and sorting
-% functions are done.
-
-
-EXECUTE {initialize.extra.label.stuff} % initialize variables
-ITERATE {bib.sort.order}               % set up the sorting keys
-SORT		% by sort.label, year, title---giving final bibliography order
-% Having sorted NOW we apply the extra letters at the end!
-ITERATE {forward.pass}
-REVERSE {reverse.pass}
-
-FUNCTION {begin.bib}
-{ preamble$ empty$				% no \etalchar in apalike
-    'skip$
-    { preamble$ write$ newline$ }
-  if$
-  "\begin{thebibliography}{}" write$ newline$		% no labels in apalike
-}
-
-EXECUTE {begin.bib}
-
-EXECUTE {init.state.consts}
-
-ITERATE {call.type$}
-
-FUNCTION {end.bib}
-{ newline$
-  "\end{thebibliography}" write$ newline$
-}
-
-EXECUTE {end.bib}

Added: trunk/Master/texmf-dist/bibtex/bst/jmb/jmb.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/jmb/jmb.bst	                        (rev 0)
+++ trunk/Master/texmf-dist/bibtex/bst/jmb/jmb.bst	2019-11-10 19:27:04 UTC (rev 52718)
@@ -0,0 +1,1368 @@
+%%% ====================================================================
+%%%  @BibTeX-style-file{
+%%%     author          = "Tom Schneider",
+%%%     version         = "1.21",
+%%%     date            = "29 June 1992",
+%%%     time            = "17:30:33 MDT",
+%%%     filename        = "jmb.bst",
+%%%     address         = "National Cancer Institute
+%%%                        Laboratory of Mathematical Biology
+%%%                        Frederick, Maryland 21701-1013
+%%%                        USA",
+%%%     checksum        = "11681 1368 4735 33144",
+%%%     email           = "toms at ncifcrf.gov (Internet)",
+%%%     codetable       = "ISO/ASCII",
+%%%     keywords        = "molecular biology, BibTeX",
+%%%     supported       = "yes",
+%%%     docstring       = "This BibTeX bibliography style is for the
+%%%                        Journal of Molecular Biology and Journal of
+%%%                        Theoretical Biology.  This file is available
+%%%                        by anonymous ftp from ncifcrf.gov in
+%%%                        pub/delila.
+%%%
+%%%                        TITLES can be turned on and off!  Just nocite
+%%%                        the reference TitlesOn in the paper (i.e.
+%%%                        \nocite{TitlesOn}) and have a bibliography
+%%%                        article in your database with that cite key!
+%%%                        Without titles is Journal of Molecular
+%%%                        Biology; With titles is Journal of
+%%%                        Theoretical Biology.
+%%%
+%%%                        WARNING: Since I use mostly article, book and
+%%%                        inproceedings, these are formatted pretty
+%%%                        closely to the Journal of Theoretical Biology
+%%%                        style while other things are neglected.
+%%%                        Also, I can't guarantee that the style is
+%%%                        exactly right.
+%%%
+%%%                        The following documentation is identical from
+%%%                        the source of jmb.bst, which was the
+%%%                        apalike.bst taken from the Clarkson archive
+%%%                        on 1989 June 19.
+%%%
+%%%                        The checksum field above contains a CRC-16
+%%%                        checksum as the first value, followed by the
+%%%                        equivalent of the standard UNIX wc (word
+%%%                        count) utility output of lines, words, and
+%%%                        characters.  This is produced by Robert
+%%%                        Solovay's checksum utility."
+%%%  }
+%%% ====================================================================
+
+% BibTex `jmb' bibliography style
+% version = 1.21 of jmb.bst 1992 June 29
+%                   Fix format.vol.num.pages to use field.or.null to
+%                   correctly handle case of missing volume.
+%                   [Nelson H. F. Beebe <beebe at plot79.math.utah.edu>]
+% version = 1.20 of jmb.bst 1990 November 16
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% BibTeX `apalike' bibliography style (24-Jan-88 version)
+% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a.
+% Copyright (C) 1988, all rights reserved.
+% Copying of this file is allowed, provided that if you make any changes at all
+% you name it something other than `apalike.bst'.
+% This restriction helps ensure that all copies are identical.
+% Differences between this style and `alpha' are generally heralded by a `%'.
+% The file btxbst.doc has the documentation for alpha.bst.
+%
+% This style should be used with the `apalike' LaTeX style (apalike.sty).
+% \cite's come out like "(Jones, 1986)" in the text but there are no labels
+% in the bibliography, and something like "(1986)" comes out immediately
+% after the author.  Author (and editor) names appear as last name, comma,
+% initials.  A `year' field is required for every entry, and so is either
+% an author (or in some cases, an editor) field or a key field.
+%
+% Editorial note:
+% Many journals require a style like `apalike', but I strongly, strongly,
+% strongly recommend that you not use it if you have a choice---use something
+% like `plain' instead.  Mary-Claire van Leunen (A Handbook for Scholars,
+% Knopf, 1979) argues convincingly that a style like `plain' encourages better
+% writing than one like `apalike'.  Furthermore the strongest arguments for
+% using an author-date style like `apalike'---that it's "the most practical"
+% (The Chicago Manual of Style, University of Chicago Press, thirteenth
+% edition, 1982, pages 400--401)---fall flat on their face with the new
+% computer-typesetting technology.  For instance page 401 anachronistically
+% states "The chief disadvantage of [a style like `plain'] is that additions
+% or deletions cannot be made after the manuscript is typed without changing
+% numbers in both text references and list."  LaTeX sidesteps the disadvantage.
+%
+% History:
+%   15-sep-86	(SK,OP)	Original version, by Susan King and Oren Patashnik.
+%   10-nov-86	(OP)	Truncated the sort.key$ string to the correct length
+%			in bib.sort.order to eliminate error message.
+%   24-jan-88	(OP)	Updated for BibTeX version 0.99a, from alpha.bst 0.99a;
+%			apalike now sorts by author, then year, then title;
+%			THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The program was further modified by Tom Schneider:
+%
+%   1989 June 19 (TDS)  Renamed jmb.bst.  Items that do not have years were
+%        listed in the bibliography without identifiers.  However, they
+%        have identifiers in the text.  The identifier was added.
+%        Titles were removed :-(.
+
+%   1989 October 2 (TDS)  Made labels in the paper use the & symbol rather
+%                  than `and', as required by JMB.
+%   1989 October 3 (TDS)  Made et~al. be in italics.
+%                  Removed comma after journal name.  (actually, all
+%                  mid sentence commas go!)
+%                  Made volume number be bold faced.
+%                  Converted colon (:) after volume number to a comma (,).
+%                  If a journal name does NOT end in a period, add
+%                  a comma after the name.
+%   1989 October 14 (TDS)  Without a year the program used to sort on the
+%                   title.  I made it sort on the cite$ if there is no year.
+%   1989 October 18 (TDS)  If there is one reference without a year, put
+%                   an "a" at the end of its label, so that it comes out
+%                   as (Smith, a) in the text.  in FUNCTION {forward.pass}
+%   1989 November 2 (TDS)  Unpublished papers now give the title.
+%   1989 November 18 (TDS)  TITLES can be turned on and off!
+%                   Just nocite the reference TitlesOn in the paper
+%                   and have a bibliography article in your database
+%                   with that cite key!
+%   1989 December 5 (TDS)  I can't stand sorting to fall back on the
+%                   titles of the article - no control!  So in function
+%                   bib.sort.order the default is now cite$.
+%   1990 November 14 (TDS) Changes to match JTB better:
+%                    Names in the bibliography are now connected
+%                    with "\&" instead of "and", since this fits JTB better.
+%                    "In" is now "In:".
+%                    "editors" and "editor" are now "eds" and "ed".
+%                    booktitle follows editors.  editors in parenthesis.
+%                    pp. and p. instead of pages and page.
+%                    location followed by colon (:) and then publisher.
+
+ENTRY  % declare variables that have a value for each entry on the list
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+%    month		not used in apalike
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+  }
+  {}
+  { label extra.label sort.label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block
+           docomma givetitles }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+
+  #0 'docomma :=    % if it is 0 then don't do commas, otherwise do them.
+}
+
+FUNCTION {init.toggle.switches}
+{% set switches for controlling the output!
+  #0 'givetitles := % if it is 0 then don't give titles, otherwise do them.
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+
+% %    { ", " * write$ }  % the comma here is responsible for every comma!
+% %                       % But JMB doesn't want commas, so away it goes!
+%      { " " * write$ }    % That does it!
+
+    { % doing a comma is controlled specifically in JMB using docomma
+      docomma #0 =
+      { " " * write$ }
+      { ", " * write$ }
+      if$
+    }
+    { output.state after.block =
+	{ add.period$ write$
+	  newline$
+	  "\newblock " write$
+	}
+	{ output.state before.all =
+	    'write$
+	    { add.period$ " " * write$ }
+	  if$
+	}
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+     {  t "title" =
+           { pop$ } % jmb ignores titles and does not object if missing
+           { pop$ "empty " t * " in " * cite$ * warning$ }
+        if$
+     }
+    'output.nonnull  % block periods
+    % { pop$  } % don't do anything
+  if$
+}
+
+%    t "title" =
+%    { "zowie" warning$ }
+%    {  duplicate$ empty$
+%       { pop$ "EmPtY " t * " in " * cite$ * warning$ }
+%       'output.nonnull
+%    }
+%    if$
+%  if$
+%}
+
+%					apalike needs this function because
+%					the year has special punctuation;
+%					apalike ignores the month
+FUNCTION {output.year.check}
+{ year empty$
+    {
+      "empty year in " cite$ ", using label: " extra.label * * * warning$
+      write$
+      " (" extra.label * ")" *
+      mid.sentence 'output.state :=
+    }
+    { write$
+      " (" year * extra.label * ")" *
+      mid.sentence 'output.state :=
+    }
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem[" write$
+  label write$
+  "]{" write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+	'skip$
+	{ after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "{\em " swap$ * "}" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=   % last name first
+      nameptr #1 >
+	{ namesleft #1 >
+	    { ", " * t * }
+	    { numnames #2 >
+		{ "," * }
+		'skip$
+	      if$
+	      t "others" =
+		{ " {\em et~al.}" * }
+		{ " \& " * t * }
+	      if$
+	    }
+	  if$
+	}
+	't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.names }
+  if$
+}
+
+FUNCTION {format.key}			% this function is just for apalike
+{ empty$
+    { key field.or.null }
+    { "" }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+	{ ", eds" * } % TDS
+	{ ", ed" * } % TDS
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { % decide whether to give the title or not
+       givetitles #1 =
+       { title "t" change.case$ } % produce the title
+       { title pop$ "" }          % don't produce the title
+       if$
+    }
+  if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+	{ t #1 #2 substring$ "--" = not
+	    { "--" *
+	      t #2 global.max$ substring$ 't :=
+	    }
+	    {   { t #1 #1 substring$ "-" = }
+		{ "-" *
+		  t #2 global.max$ substring$ 't :=
+		}
+	      while$
+	    }
+	  if$
+	}
+	{ t #1 #1 substring$ *
+	  t #2 global.max$ substring$ 't :=
+	}
+      if$
+    }
+  while$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { "volume" volume tie.or.space.connect
+      series empty$
+	'skip$
+	{ " of " * series emphasize * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+	{ series field.or.null }
+	{ output.state mid.sentence =
+	    { "number" }
+	    { "Number" }
+	  if$
+	  number tie.or.space.connect
+	  series empty$
+	    { "there's a number but no series in " cite$ * warning$ }
+	    { " in " * series * }
+	  if$
+	}
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { output.state mid.sentence =
+	{ edition "l" change.case$ " edition" * }
+	{ edition "t" change.case$ " edition" * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+	{ #1 'multiresult := }
+	{ t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+	{ "pp." pages n.dashify tie.or.space.connect } % TDS
+	{ "p." pages tie.or.space.connect } % TDS
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ "{\bf " volume field.or.null * "}" *  % make volume bold face
+  number empty$
+    'skip$
+    { " (" number * ")" * *
+       volume empty$
+	{ "there's a number but no volume in " cite$ * warning$ }
+	'skip$
+      if$
+    }
+  if$
+  pages empty$
+    'skip$
+    { duplicate$ empty$
+	{ pop$ format.pages }
+%	{ ":" * pages n.dashify * } % no more colons after the volume
+	{ ", " * pages n.dashify * } % comma's instead
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+	{ "chapter" }
+	{ type "l" change.case$ }
+      if$
+      chapter tie.or.space.connect
+      pages empty$
+	'skip$
+	{ ", " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+	{ "In: " booktitle emphasize * } % TDS
+	{ "In: " booktitle emphasize * ", " *
+          "(" format.editors ")" * * * } % TDS
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { "Technical Report" }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{ "In:"				% this is for apalike % TDS
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      "In: " % TDS
+    }
+    { "Volume" volume tie.or.space.connect
+      " of " *
+    }
+  if$
+  "\cite{" * crossref * "}" *				% this is for apalike
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ "In:"				% this is for apalike % TDS
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{
+  cite$ "TitlesOn" =
+  'skip$ % Don't write out an article of this kind, it's a toggle switch!
+  {
+  output.bibitem
+  format.authors "author" output.check
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { % figure out the last character of the journal name.
+      % "<<" journal #-1 #1 substring$ ">>" * *  % for testing
+      % "<" journal ">" * *  % this works ok     % for testing
+
+      journal #-1 #1 substring$ "." =
+      { journal }  % journal ended in period so don't do anything
+      { journal ", " *}  % journal ended without period, so add comma
+      if$
+      emphasize "journal" output.check
+
+%      journal * emphasize "journal" output.check % the original method
+
+      format.vol.num.pages output
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+  }
+  if$
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+	{ "author and editor" editor either.or.check }
+	'skip$
+      if$
+    }
+  if$
+  output.year.check				% special for apalike
+  new.block
+  format.btitle "title" output.check
+  #1 'docomma :=    % TURN COMMAS ON FOR JMB
+  crossref missing$
+    {
+      format.bvolume output
+      new.block
+      format.number.series output
+      new.sentence
+         #0 'docomma := % no comma after address
+      address ":" * output % TDS
+      publisher "publisher" output.check % TDS
+         #1 'docomma := % comma back on
+%      publisher "publisher" output.check
+%      address output
+    }
+    { new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  new.block
+  note output
+  fin.entry
+  #0 'docomma :=    % TURN COMMAS OFF
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.title "title" output.check
+  new.block
+  howpublished output
+  address output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+	{ "author and editor" editor either.or.check }
+	'skip$
+      if$
+    }
+  if$
+  output.year.check				% special for apalike
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.number.series output
+      new.sentence
+         #0 'docomma := % no comma after address
+      address ":" * output % TDS
+      publisher "publisher" output.check % TDS
+         #1 'docomma := % comma back on
+%      publisher "publisher" output.check
+%      address output
+    }
+    { format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.chapter.pages output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+      format.edition output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    {
+%      #1 'docomma :=    % TURN COMMAS ON FOR JMB, BUT NOT FOR JTB: inconsistent
+      format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.pages "," * output % TDS toss in comma instead of period
+%      address output % TDS address is below for JTB
+%      new.sentence % TDS remove period
+      organization output
+         #0 'docomma := % NO COMMA AFTER ADDRESS
+      address ":" * output % TDS
+      publisher "publisher" output.check % TDS
+         #1 'docomma := % comma back on
+
+%      publisher output					% are simpler
+      #0 'docomma :=    % TURN COMMAS OFF
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  format.authors output
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.btitle "title" output.check
+  organization address new.block.checkb
+  organization output
+  address output
+  format.edition output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.title "title" output.check
+  new.block
+  "Master's thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.title output
+  new.block
+  howpublished output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.btitle "title" output.check
+  new.block
+  "PhD thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  format.editors output
+  editor format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  address output				% for apalike
+  new.sentence					% we always output
+  organization output				% a nonempty organization
+  publisher output				% here
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+  format.title "title" output.check
+  new.block
+  format.tr.number output.nonnull
+  institution "institution" output.check
+  address output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output				% special for
+  output.year.check					% apalike
+  new.block
+
+% Since format.title is out of commission, the original method won't work:
+%  format.title "title" output.check
+% so do the equivalent of the format.title procedure: (TDS)
+  title empty$
+    { "" }
+    { title "t" change.case$ } % produce the title
+  if$
+  "title" output.check
+
+  new.block
+  note "note" output.check
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+% ***********************************************************
+
+FUNCTION {check.for.titlecommand}
+% go through each entry and see if one of them has the key
+% 'TitlesOn'.  If this is found, then do titles!
+% 1989 November 18 TDS
+{
+%  "|" label "|" * * write$ newline$  % |Arrhenius {\em et~al.}, 1986|
+%  "|" cite$ "|" * * write$ newline$  % |Arrhenius1986|
+% so cite$ is the thing I want to detect...
+
+  cite$ "TitlesOn" =
+  { % got it!
+%    "FOUND TitlesOn" write$ newline$
+     "Titles Will Be Printed" warning$
+    #1 'givetitles := % give titles!
+  }
+  'skip$
+  if$
+}
+EXECUTE {init.toggle.switches}
+ITERATE {check.for.titlecommand}
+% ***********************************************************
+
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+
+%			There are three apalike cases: one person (Jones),
+%			two (Jones and de~Bruijn), and more (Jones et~al.).
+%			This function is much like format.crossref.editors.
+%
+FUNCTION {format.lab.names}
+{ 's :=
+  s #1 "{vv~}{ll}" format.name$
+  s num.names$ duplicate$
+  #2 >
+    { pop$ " {\em et~al.}" * }
+    { #2 <
+	'skip$
+	{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+	    { " {\em et~al.}" * }
+	    { " \& " * s #2 "{vv~}{ll}" format.name$ * }
+            % note new use of & rather than `and'.  TDS
+	  if$
+	}
+      if$
+    }
+  if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+    { key empty$
+	{ cite$ #1 #3 substring$ }
+	'key					% apalike uses the whole key
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+    { editor empty$
+	{ key empty$
+	    { cite$ #1 #3 substring$ }
+	    'key				% apalike uses the whole key
+	  if$
+	}
+	{ editor format.lab.names }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+    { key empty$
+	{ cite$ #1 #3 substring$ }
+	'key			% apalike uses the whole key, no organization
+      if$
+    }
+    { editor format.lab.names }
+  if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.label
+    { type$ "proceedings" =
+	'editor.key.label			% apalike ignores organization
+	'author.key.label			% for labeling and sorting
+      if$
+    }
+  if$
+  ", "							% these three lines are
+  *							% for apalike, which
+  year field.or.null purify$ #-1 #4 substring$		% uses all four digits
+  *
+  'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { nameptr #1 >
+	{ "   " * }
+	'skip$
+      if$						% apalike uses initials
+      s nameptr "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}" format.name$ 't := % <= here
+      nameptr numnames = t "others" = and
+	{ "{\em et al}" * }
+	{ t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+	{ "to sort, need author or key in " cite$ * warning$
+	  ""
+	}
+	{ key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+	{ key empty$
+	    { "to sort, need author, editor, or key in " cite$ * warning$
+	      ""
+	    }
+	    { key sortify }
+	  if$
+	}
+	{ editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {editor.sort}
+{ editor empty$
+    { key empty$
+	{ "to sort, need editor or key in " cite$ * warning$
+	  ""
+	}
+	{ key sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+
+%			apalike uses two sorting passes; the first one sets the
+%			labels so that the `a's, `b's, etc. can be computed;
+%			the second pass puts the references in "correct" order.
+%			The presort function is for the first pass. It computes
+%			label, sort.label, and title, and then concatenates.
+FUNCTION {presort}
+{ calc.label
+  label sortify
+  "    "
+  *
+  type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+	'editor.sort
+	'author.sort
+      if$
+    }
+  if$
+  #1 entry.max$ substring$	% for
+  'sort.label :=		% apalike
+  sort.label			% style
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT		% by label, sort.label, title---for final label calculation
+
+STRINGS { last.label next.extra }	% apalike labels are only for the text;
+
+INTEGERS { last.extra.num }		% there are none in the bibliography
+
+FUNCTION {initialize.extra.label.stuff}	% and hence there is no `longest.label'
+{ #0 int.to.chr$ 'last.label :=
+  "" 'next.extra :=
+  #0 'last.extra.num :=
+}
+
+FUNCTION {forward.pass}
+% pass through the references forward
+{
+%"\\     label=" label "//" * * write$ newline$ % display the label
+%"\\last.label=" last.label "//" * * write$ newline$ % display the label
+
+ last.label label =   % if the label repeats the previous label...
+    { % then increment the extra number
+      last.extra.num #1 + 'last.extra.num :=
+      % and convert it to a label
+      last.extra.num int.to.chr$ 'extra.label :=
+    }
+    { % else set things up for the next entry
+      "a" chr.to.int$ 'last.extra.num :=
+
+      % However, if the year was missing, tack on an extra "a". TDS
+      year empty$
+      {"a" 'extra.label :=}
+      {"" 'extra.label :=}
+      if$
+
+%      "" 'extra.label :=  % the original method was not to do anything TDS
+
+      label 'last.label :=   % capture this label for next time
+    }
+  if$
+%"\\extra.label = " extra.label "//" * * write$ newline$ % display the label
+}
+
+FUNCTION {reverse.pass}
+% pass through the references backwards
+% add extra characters to the end of the label string
+{
+%"{{" label "}}" * * write$ newline$ % display the label
+ next.extra "b" =
+% original logic:
+    { "a" 'extra.label := }
+    'skip$
+    if$
+
+% next.extra "b" = { "next.extra was = b" write$ newline$} 'skip$ if$
+
+% new as of 1989 Oct 18
+%    { "a" 'extra.label := }
+%    { % Put on an "a" at the end of the label if the year is missing. TDS
+%      year empty$
+%       { "a" 'extra.label := }
+%       %{ label "a" * 'label := }
+%       'skip$ % otherwise leave it alone (orignial method)
+%     if$ }
+%  if$
+
+  label extra.label * 'label :=
+  extra.label 'next.extra :=
+%"{{" label "}}" * * write$ newline$ % display the label
+}
+
+FUNCTION {bib.sort.order}
+% Generate the sort.key$ variables for sorting.
+% The sorting is first on the sort.label (ie, author's name), followed
+% by the year then the title.  If there is no year, the cite$ is used.
+{
+  sort.label  % this is based on the author name
+  "    " * % tack on some space
+% original apa command was to use the year or an empty string:
+%  year field.or.null sortify
+%
+% Replace that with the use of the cite$, when there is no year:
+  year duplicate$ empty$
+     {pop$ cite$}
+     'skip$
+  if$
+
+  * "    " *  % tack on some space
+
+% I CAN'T STAND SORTING ON TITLE!!! TDS 1989 Dec 5
+%  title field.or.null
+%  sort.format.title
+%  * % attach them together
+  cite$
+  * % use cite$ instead!!
+
+  % note: if there is no year, then the cite$ will override the sorting
+  % on the title.  Oh well.  Title sorting is sorta (ha ha) awful.
+
+  #1 entry.max$ substring$
+  'sort.key$ :=
+
+  % The following line helps debug the program.  It shows what the sort.key$ is.
+  % "%" sort.key$ * write$ newline$
+}
+
+% Here is the place that the actual executions of the labeling and sorting
+% functions are done.
+
+
+EXECUTE {initialize.extra.label.stuff} % initialize variables
+ITERATE {bib.sort.order}               % set up the sorting keys
+SORT		% by sort.label, year, title---giving final bibliography order
+% Having sorted NOW we apply the extra letters at the end!
+ITERATE {forward.pass}
+REVERSE {reverse.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$				% no \etalchar in apalike
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{}" write$ newline$		% no labels in apalike
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}


Property changes on: trunk/Master/texmf-dist/bibtex/bst/jmb/jmb.bst
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/jmb/jmb.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/jmb/jmb.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/jmb/jmb.sty	2019-11-10 19:27:04 UTC (rev 52718)
@@ -0,0 +1,92 @@
+%%% ====================================================================
+%%%  @LaTeX-style-file{
+%%%     author          = "Tom Schneider",
+%%%     version         = "1.01",
+%%%     date            = "10 September 1991",
+%%%     filename        = "jmb.sty",
+%%%     address         = "National Cancer Institute
+%%%                        Laboratory of Mathematical Biology
+%%%                        Frederick, Maryland 21701-1013
+%%%                        USA",
+%%%     checksum        = "38329 92 392 4436",
+%%%     email           = "toms at ncifcrf.gov (Internet)",
+%%%     codetable       = "ISO/ASCII",
+%%%     keywords        = "molecular biology",
+%%%     supported       = "yes",
+%%%     docstring       = "This LaTeX style file is for the Journal of
+%%%                        Molecular Biology, and is identical to
+%%%                        apalike.sty [19 June 1989].  apalike.sty
+%%%                        style, used in conjunction with
+%%%                        apalike.bst, will produce an apa-like
+%%%                        bibliography style:
+%%%                        1) Bibliography entries formatted
+%%%                        alphabetically, last name first, each entry
+%%%                        having a hanging indentation and no label.
+%%%                        2) References in the following formats:
+%%%                                     (Author, 1986)
+%%%                                     (Author and Author, 1986)
+%%%                                     (Author et al., 1986).
+%%%                        3) Multiple references in the form
+%%%                        (Author1, 1986; Author2, 1987)
+%%%
+%%%                        It should be used as an optional argument
+%%%                        to the \documentstyle command; for example,
+%%%                        \documentstyle[11pt,apalike]{book}
+%%%                        16-Sep-1986: original version by Susan King
+%%%                        and Oren Patashnik.
+%%%                        13-Oct-1987 changes:
+%%%                            Fixed bug in last line by adding the {}
+%%%                            that disappeard when the \hbox{} was
+%%%                            removed from the pre-APALIKE definition;
+%%%                            added club and widow penalties;
+%%%                            patched the \newblock LaTeX bug from
+%%%                            `-.07em' to simply `.07em';
+%%%                            and made this work for document styles that
+%%%                            don't define `chapter'.
+%%%
+%%%                        The checksum field above contains a CRC-16
+%%%                        checksum as the first value, followed by the
+%%%                        equivalent of the standard UNIX wc (word
+%%%                        count) utility output of lines, words, and
+%%%                        characters.  This is produced by Robert
+%%%                        Solovay's checksum utility."
+%%%  }
+%%% ====================================================================
+%
+% Use parens instead of brackets for \cite, and no label in the bibliography
+%
+\def\@cite#1#2{(#1\if at tempswa , #2\fi)}
+\def\@biblabel#1{}
+
+% Set length of hanging indentation for bibliography entries
+%
+\newlength{\bibhang}
+\setlength{\bibhang}{2em}
+
+% \thebibliography environment depends on whether or not `chapter's can exist
+%
+\@ifundefined{chapter}{\def\thebibliography#1{\section*{References\@mkboth
+  {REFERENCES}{REFERENCES}}\list
+  {\relax}{\setlength{\labelsep}{0em}
+        \setlength{\itemindent}{-\bibhang}
+        \setlength{\leftmargin}{\bibhang}}
+    \def\newblock{\hskip .11em plus .33em minus .07em}
+    \sloppy\clubpenalty4000\widowpenalty4000
+    \sfcode`\.=1000\relax}}%
+{\def\thebibliography#1{\chapter*{Bibliography\@mkboth
+  {BIBLIOGRAPHY}{BIBLIOGRAPHY}}\list
+  {\relax}{\setlength{\labelsep}{0em}
+        \setlength{\itemindent}{-\bibhang}
+        \setlength{\leftmargin}{\bibhang}}
+    \def\newblock{\hskip .11em plus .33em minus .07em}
+    \sloppy\clubpenalty4000\widowpenalty4000
+    \sfcode`\.=1000\relax}}
+
+% `; ' goes between cites, and there's no \hbox around individual cites
+%
+\def\@citex[#1]#2{\if at filesw\immediate\write\@auxout{\string\citation{#2}}\fi
+  \def\@citea{}\@cite{\@for\@citeb:=#2\do
+    {\@citea\def\@citea{; }\@ifundefined
+       {b@\@citeb}{{\bf ?}\@warning
+       {Citation `\@citeb' on page \thepage \space undefined}}%
+{\csname b@\@citeb\endcsname}}}{#1}}


Property changes on: trunk/Master/texmf-dist/tex/latex/jmb/jmb.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2019-11-10 19:25:59 UTC (rev 52717)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2019-11-10 19:27:04 UTC (rev 52718)
@@ -372,7 +372,7 @@
     iwhdp iwona
   jablantile jacow jamtimes japanese-otf japanese-otf-uptex
     jbact jfmutil jigsaw
-    jknapltx jkmath jlabels jlreq jmlr jneurosci jnuexam jpsj jsclasses
+    jknapltx jkmath jlabels jlreq jmb jmlr jneurosci jnuexam jpsj jsclasses
     jslectureplanner jumplines junicode
     jura juraabbrev jurabib juramisc jurarsp js-misc jvlisting
   kalendarium kanaparser kantlipsum karnaugh karnaugh-map karnaughmap kastrup

Modified: trunk/Master/tlpkg/tlpsrc/collection-bibtexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-bibtexextra.tlpsrc	2019-11-10 19:25:59 UTC (rev 52717)
+++ trunk/Master/tlpkg/tlpsrc/collection-bibtexextra.tlpsrc	2019-11-10 19:27:04 UTC (rev 52718)
@@ -114,6 +114,7 @@
 depend iopart-num
 depend is-bst
 depend jbact
+depend jmb
 depend jneurosci
 depend jurabib
 depend ksfh_nat

Added: trunk/Master/tlpkg/tlpsrc/jmb.tlpsrc
===================================================================
Deleted: trunk/Master/tlpkg/tlpsrc/jtb.tlpsrc
===================================================================


More information about the tex-live-commits mailing list