texlive[71799] Master/texmf-dist: cjs-rcs-article (14jul24)

commits+karl at tug.org commits+karl at tug.org
Sun Jul 14 22:14:08 CEST 2024


Revision: 71799
          https://tug.org/svn/texlive?view=revision&revision=71799
Author:   karl
Date:     2024-07-14 22:14:08 +0200 (Sun, 14 Jul 2024)
Log Message:
-----------
cjs-rcs-article (14jul24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/bibtex/bst/cjs-rcs-article/cjs-rcs-en.bst
    trunk/Master/texmf-dist/bibtex/bst/cjs-rcs-article/cjs-rcs-fr.bst
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/README.md
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-article-fr.pdf
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-article.pdf
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-merlin.pdf
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-template.tex
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/rcs-gabarit.tex
    trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-article.dtx
    trunk/Master/texmf-dist/tex/latex/cjs-rcs-article/cjs-rcs-article.cls

Added Paths:
-----------
    trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-en.dbj
    trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-fr.dbj
    trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-class.dbj
    trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-english.mbs
    trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-french.mbs
    trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-merlin.mbs

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-article-fr.tex
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-bst-en.dbj
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-bst-fr.dbj
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-class.dbj
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-english.mbs
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-french.mbs
    trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-merlin.mbs

Modified: trunk/Master/texmf-dist/bibtex/bst/cjs-rcs-article/cjs-rcs-en.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/cjs-rcs-article/cjs-rcs-en.bst	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/bibtex/bst/cjs-rcs-article/cjs-rcs-en.bst	2024-07-14 20:14:08 UTC (rev 71799)
@@ -8,7 +8,7 @@
 %% cjs-rcs-english.mbs  (with options: `exlang,ay,nat,lang,nm-rev,jnrlst,keyxyr,blkyear,dt-beg,yr-par,yrp-per,note-yr,trtit-b,num-xser,numser,ser-ed,pre-edn,isbn,url-doi,english,abr,ednx,ord,etal-xc,url,url-blk,nfss,,{}')
 %% cjs-rcs-merlin.mbs  (with options: `tail,exlang,ay,nat,lang,nm-rev,jnrlst,keyxyr,blkyear,dt-beg,yr-par,yrp-per,note-yr,trtit-b,num-xser,numser,ser-ed,pre-edn,isbn,url-doi,english,abr,ednx,ord,etal-xc,url,url-blk,nfss,,{}')
 %% 
-%% Copyright (C) 2023 Statistical Society of Canada | Société
+%% Copyright (C) 2023-2024 Statistical Society of Canada | Société
 %% canadienne de statistique
 %% 
 %% This file may be distributed and/or modified under the conditions
@@ -216,7 +216,7 @@
  % Each function has a name bbl.xxx where xxx is the English word.
  %-------------------------------------------------------------------
  % Begin module:
- % \ProvidesFile{cjs-rcs-english.mbs}[2023/11/29 v1.0 (VG, PWD)]
+ % \ProvidesFile{cjs-rcs-english.mbs}[2024/07/14 v1.1 (VG, PWD)]
 
  % The language selected here is ENGLISH
 FUNCTION {bbl.and}

Modified: trunk/Master/texmf-dist/bibtex/bst/cjs-rcs-article/cjs-rcs-fr.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/cjs-rcs-article/cjs-rcs-fr.bst	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/bibtex/bst/cjs-rcs-article/cjs-rcs-fr.bst	2024-07-14 20:14:08 UTC (rev 71799)
@@ -8,7 +8,7 @@
 %% cjs-rcs-french.mbs  (with options: `exlang,ay,nat,lang,vonx,nm-rev1,jnrlst,keyxyr,blkyear,dt-beg,yr-per,note-yr,tit-qq,qt-g,qx,trtit-b,vnum-nr,volp-com,pgsep-s,jwdpg,jwdvol,num-xser,numser,ser-vol,ser-ed,pg-bk,pre-pub,pre-edn,isbn,url-doi,edparxc,edby,blk-com,blknt,french,pp,ed,abr,ord,and-xcom,etal-xc,url,url-blk,nfss,,{}')
 %% cjs-rcs-merlin.mbs  (with options: `tail,exlang,ay,nat,lang,vonx,nm-rev1,jnrlst,keyxyr,blkyear,dt-beg,yr-per,note-yr,tit-qq,qt-g,qx,trtit-b,vnum-nr,volp-com,pgsep-s,jwdpg,jwdvol,num-xser,numser,ser-vol,ser-ed,pg-bk,pre-pub,pre-edn,isbn,url-doi,edparxc,edby,blk-com,blknt,french,pp,ed,abr,ord,and-xcom,etal-xc,url,url-blk,nfss,,{}')
 %% 
-%% Copyright (C) 2023 Statistical Society of Canada | Société
+%% Copyright (C) 2023-2024 Statistical Society of Canada | Société
 %% canadienne de statistique
 %% 
 %% This file may be distributed and/or modified under the conditions
@@ -222,7 +222,7 @@
  % Each function has a name bbl.xxx where xxx is the English word.
  %-------------------------------------------------------------------
  % Begin module:
- % \ProvidesFile{cjs-rcs-french.mbs}[2023/11/29 v1.0 (VG, PWD)]
+ % \ProvidesFile{cjs-rcs-french.mbs}[2024/07/14 v1.1 (VG, PWD)]
 
  % The language selected here is FRENCH
 FUNCTION {bbl.and}

Modified: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/README.md	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/README.md	2024-07-14 20:14:08 UTC (rev 71799)
@@ -16,12 +16,13 @@
 ## Licence
 
 LaTeX Project Public License, version 1.3c or (at your option) any
-later version.
+later version. The documentation is also licensed under CC BY-SA 4.0
+International.
 
 ## Version
 
-1.0 (2023-11-29)
 
+
 ## Author
 
 Vincent Goulet <vincent.goulet at act.ulaval.ca> for the Statistical
@@ -103,7 +104,7 @@
 
 ## Comments or suggestions
 
-The Gitlab [project repository](https://gitlab.com/cjs-rcs/cjs-rcs-article)
+The GitLab [project repository](https://gitlab.com/cjs-rcs/cjs-rcs-article)
 is the best place to report bugs or to propose improvements to the 
 project.
 
@@ -127,12 +128,13 @@
 ## Licence
 
 LaTeX Project Public License, version 1.3c ou (à votre choix) toute
-version ultérieure.
+version ultérieure. La documentation est également publiée sous 
+licence CC BY-SA 4.0 International.
 
 ## Version
 
-1.0 (2023-11-29)
 
+
 ## Auteur
 
 Vincent Goulet <vincent.goulet at act.ulaval.ca> pour la Société

Modified: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-article-fr.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-article-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-article-fr.tex	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-article-fr.tex	2024-07-14 20:14:08 UTC (rev 71799)
@@ -1,5 +0,0 @@
-%% Wrapper to set language to French
-%% (https://tex.stackexchange.com/a/28646).
-\expandafter\newif\csname ifenglish\endcsname
-\englishfalse
-\input{cjs-rcs-article.dtx}

Modified: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-article.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-bst-en.dbj
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-bst-en.dbj	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-bst-en.dbj	2024-07-14 20:14:08 UTC (rev 71799)
@@ -1,611 +0,0 @@
-%% Driver file to produce cjs-rcs-en.bst from cjs-rcs-merlin.mbs
-%% Originally generated with makebst, version 4.1 (2003/09/08),
-%% on 2023/10/05 at 15:25, then hand edited by Vincent Goulet.
-%% 
-\input docstrip
-
-\preamble
-
-Copyright (C) 2023 Statistical Society of Canada | Société
-canadienne de statistique
-
-This file may be distributed and/or modified under the conditions
-of the LaTeX Project Public License, either version 1.3c of this
-license or (at your option) any later version. The latest version
-of this license is in:
-
-  https://www.latex-project.org/lppl.txt
-
-This work has the LPPL maintenance status `maintained'.
-
-The Current Maintainer of this work is Vincent Goulet
-<vincent.goulet at act.ulaval.ca>.
-
-This work consists of the master bibliographic style file
-cjs-rcs-merlin.mbs, the language definition file cjs-rcs-english.mbs,
-the driver file cjs-rcs-en.dbj, and the derived file cjs-rcs-en.bst.
-
-\endpreamble
-
-\postamble
-End of customized bst file
-\endpostamble
-
-\keepsilent
-
-\askforoverwritefalse
-\def\MBopts{\from{cjs-rcs-merlin.mbs}{%
-%EXTERNAL FILES:
-%Name of language file: \cfile=cjs-rcs-english.mbs.
-%No included files.
-  head,\MBopta}
-\from{cjs-rcs-english.mbs}{\MBopta}
-\from{cjs-rcs-merlin.mbs}{tail,\MBopta}}
-\def\MBopta{%
-%INTERNAL LANGUAGE SUPPORT (if no external language file)
-%   %: (def) English
-% babel,%: Babel
-%--------------------
-    exlang,%: External language file
-%STYLE OF CITATIONS:
-%   %: (def) Numerical
-  ay,%: Author-year
-% alph,%: Alpha style, Jon90 or JWB90
-% alph,alf-1,%: Alpha style, Jon90
-% alph,alf-f,%: Alpha style, Jones90
-% cite,%: Cite key
-%--------------------
-%HTML OUTPUT (if non author-year citations)
-%   %: (def) Normal LaTeX
-% html,%: Hypertext
-% html,htlist,%: Hypertext list
-% html,htdes,%: Hypertext with keys
-%--------------------
-%AUTHOR--YEAR SUPPORT SYSTEM (if author-year citations)
-  nat,%: Natbib
-%   %: (def) Older Natbib
-% alk,%: Apalike
-% har,%: Harvard
-% ast,%: Astronomy
-% cay,%: Chicago
-% nmd,%: Named
-% cn,%: Author-date
-%--------------------
-%HARVARD EXTENSIONS INCLUDED (if Harvard support selected)
-% harnm,%: With Harvard extensions
-%   %: (def) Older Harvard
-%--------------------
-%LANGUAGE FIELD
-%   %: (def) No language field
-  lang,%: Add language field
-%--------------------
-%ANNOTATIONS:
-    %: (def) No annotations
-% annote,%: Annotations
-%--------------------
-%PRESENTATIONS:
-    %: (def) Do not add presentation type
-% pres,%: Add presentation, speaker not highlighted
-% pres,pres-bf,%: Presentation, speaker bold face
-% pres,pres-it,%: Presentaion, speaker italic
-% pres,pres-sc,%: Presentaion, speaker in small caps
-%--------------------
-%ORDERING OF REFERENCES (if non-author/year and non-alph)
-%   %: (def) Alphabetical
-% seq-no,%: Citation order
-% seq-yr,%: Year ordered
-% seq-yrr,%: Reverse year ordered
-%--------------------
-%ORDERING OF REFERENCES (if author-year citations)
-    %: (def) Alphabetical
-% seq-lab,%: By label
-% seq-labc,%: By label and cite order
-% seq-key,%: By label and cite key
-% seq-yr,%: Year ordered
-% seq-yrr,%: Reverse year ordered
-% seq-no,%: Citation order
-%--------------------
-%ORDER ON VON PART (if not citation order)
-    %: (def) Sort on von part
-% vonx,%: Sort without von part
-%--------------------
-%IGNORE FIRST NAMES (if author-year citations)
-    %: (def) Respect first names
-% xintls,%: Sort on surname only
-%--------------------
-%AUTHOR NAMES:
-% ed-au,%: Full, surname last
-% nm-revf,%: Full, surname first
-% nm-init,ed-au,%: Initials + surname
-  nm-rev,%: Surname + initials
-% nm-rv,%: Surname + dotless initials
-% nm-rvvc,%: Surname + comma + spaceless initials
-% nm-rvx,%: Surname + pure initials
-% nm-rvcx,%: Surname + comma + pure initials
-% nm-rvv,%: Surname + spaceless initials
-% nm-rev1,%: Only first name reversed, initials
-% nm-revv1,%: First name reversed, with full names
-%--------------------
-%EDITOR NAMES IN COLLECTIONS (if author names reversed)
-    %: (def) Editor names NOT reversed
-% ed-rev,%: Editor names reversed
-%--------------------
-%POSITION OF JUNIOR (if author names reversed)
-  jnrlst,%: Junior comes last
-%   %: (def) Junior between
-%--------------------
-%JUNIOR PART IN THE CITATION (if author-year citations)
-    %: (def) No `junior' part in the citations
-% jnrlab,%: `Junior' in citations
-%--------------------
-%PUNCTUATION BETWEEN AUTHOR NAMES:
-    %: (def) Author names separated by commas
-% aunm-semi,%: Names separated by semi-colon
-% aunm-sl,%: Names separated by slash
-%--------------------
-%ADJACENT REFERENCES WITH REPEATED NAMES:
-    %: (def) Author/editor names always present
-% nmdash,%: Repeated author/editor names replaced by dash
-% nmdash,nmd-2,%: Repeated author/editor names replaced by 2 dashes
-% nmdash,nmd-3,%: Repeated author/editor names replaced by 3 dashes
-%--------------------
-%NUMBER OF AUTHORS IN BIBLIOGRAPHY:
-    %: (def) All authors
-% nmlm,%: Limited authors
-%--------------------
-%AUTHORS IN CITATIONS:
-    %: (def) One author et al
-% mcite,%: Some other truncation scheme
-%--------------------
-%MAX AUTHORS BEFORE ET AL: (if regular cite not selected)
-% mct-1,%: One et al
-% mct-2,%: One, Two et al
-% mct-3,%: One, Two, Three et al
-% mct-4,%: One, Two, Three, Four et al
-% mct-5,%: One, Two, Three, Four, Five et al
-% mct-6,%: One, Two, Three, Four, Five, Six et al
-%--------------------
-%MAX AUTHORS WITHOUT ET AL: (if regular cite not selected)
-% mct-x2,%: Two authors without truncating
-% mct-x3,%: Three authors
-% mct-x4,%: Four authors
-% mct-x5,%: Five authors
-% mct-x6,%: Six authors
-%--------------------
-%TYPEFACE FOR AUTHORS IN LIST OF REFERENCES:
-    %: (def) Normal font for author names
-% nmft,nmft-sc,%: Small caps authors
-% nmft,nmft-it,%: Italic authors
-% nmft,nmft-bf,%: Bold authors
-% nmft,nmft-def,%: User defined author font
-%--------------------
-%FONT FOR FIRST NAMES (if non-default font for authors)
-%   %: (def) First names same font as surnames
-% fnm-rm,%: First names in normal font
-% fnm-def,%: First names in user defined font
-%--------------------
-%EDITOR NAMES IN INCOLLECTION ETC:
-%   %: (def) Editors incollection normal font
-% nmfted,%: Editors incollection like authors
-%--------------------
-%FONT FOR `AND' IN LIST:
-%   %: (def) `And' in author font
-% nmand-rm,%: `And' in normal font
-%--------------------
-%FONT OF CITATION LABELS IN TEXT (if author-year citations)
-    %: (def) Cited authors plain
-% lab,lab-it,%: Cited authors italic
-% lab,lab-sc,%: Cited authors small caps
-% lab,lab-bf,%: Cited authors bold
-% lab,lab-def,%: User defined citation font
-%--------------------
-%FONT FOR `AND' IN CITATIONS (if non-default font for citation lables)
-%   %: (def) Cited `and' in author font
-% and-rm,%: Cited `and' in normal font
-%--------------------
-%FONT OF EXTRA LABEL (The extra letter on the year)
-    %: (def) Extra label plain
-% xlab-it,%: Extra label italic
-%--------------------
-%LABEL WHEN AUTHORS MISSING (if author-year citations)
-  keyxyr,%: Year blank when KEY replaces missing author
-%   %: (def) Year included when KEY replaces missing author
-%--------------------
-%MISSING DATE (if author-year citations)
-%   %: (def) Missing date set to ????
-  blkyear,%: Missing date left blank
-%--------------------
-%DATE POSITION:
-%   %: (def) Date at end
-  dt-beg,%: Date after authors
-% dt-jnl,%: Date part of journal spec.
-% dt-end,%: Date at very end
-%--------------------
-%DATE FORMAT (if non author-year citations)
-%   %: (def) Plain month and year
-% yr-par,%: Date in parentheses
-% yr-brk,%: Date in brackets
-% yr-col,%: Date preceded by colon
-% yr-per,%: Date preceded by period
-% yr-com,%: Date preceded by comma
-% yr-blk,%: Date preceded by space
-%--------------------
-%SUPPRESS MONTH:
-%   %: (def) Date is month and year
-% xmth,%: Date is year only
-%--------------------
-%REVERSED DATE (if including month)
-%   %: (def) Date as month year
-% dtrev,%: Date as year month
-%--------------------
-%DATE FORMAT (if author-year citations)
-%   %: (def) Year plain
-  yr-par,%: Year in parentheses
-% yr-brk,%: Year in brackets
-% yr-col,%: Year preceded by colon
-% yr-per,%: Year preceded by period
-% yr-com,%: Date preceded by comma
-% yr-blk,%: Year preceded by space
-%--------------------
-%INCLUDE MONTHS:
-    %: (def) Date is year only
-% aymth,%: Include month in date
-%--------------------
-%REVERSED DATE (if including month)
-%   %: (def) Date as month year
-% dtrev,%: Date as year month
-%--------------------
-%DATE PUNCTUATION (if date not at end)
-%   %: (def) Date with standard block punctuation
-% yrp-col,%: Colon after date
-% yrp-semi,%: Semi-colon after date
-  yrp-per,%: Period after date
-% yrp-x,%: No punct. after date
-%--------------------
-%BLANK AFTER DATE:
-    %: (def) Space after date
-% yrpp-xsp,%: No space after date
-%--------------------
-%DATE FONT:
-    %: (def) Date in normal font
-% dtbf,%: Date in bold face
-%--------------------
-%TRUNCATE YEAR (if author-year citations)
-  note-yr,%: Year text full
-%   %: (def) Year truncated
-%--------------------
-%TITLE OF ARTICLE:
-    %: (def) Title plain
-% tit-it,%: Title italic
-% tit-qq,qt-s,%: Title and punctuation in single quotes
-% tit-qq,%: Title and punctuation in double quotes
-% tit-qq,qt-g,%: Title and punctuation in guillemets
-% tit-qq,qt-s,qx,%: Title in single quotes
-% tit-qq,qx,%: Title in double quotes
-% tit-qq,qt-g,qx,%: Title in guillemets
-%--------------------
-%COLLECTION/PROCEEDINGS TITLES (if quoted title)
-% bt-qq,%: Quote collection and proceedings titles
-%   %: (def) Collection and proceedings titles not in quotes
-%--------------------
-%CAPITALIZATION OF ARTICLE TITLE:
-    %: (def) Sentence style
-% atit-u,%: Title style
-%--------------------
-%ARTICLE TITLE PRESENT:
-    %: (def) Article title present
-% jtit-x,%: No article title
-%--------------------
-%JOURNAL NAMES:
-    %: (def) Periods in journal names
-% jxper,%: Dotless journal names
-%--------------------
-%JOURNAL NAME FONT:
-    %: (def) Journal name italics
-% jttl-rm,%: Journal name normal
-%--------------------
-%THESIS TITLE:
-    %: (def) Thesis titles like books
-% thtit-a,%: Thesis title like article
-% thtit-x,%: No thesis title
-%--------------------
-%TECHNICAL REPORT TITLE:
-%   %: (def) Tech. report title like articles
-  trtit-b,%: Tech. report title like books
-%--------------------
-%TECHNICAL REPORT NUMBER:
-    %: (def) Tech. report and number plain
-% trnum-it,%: Tech. report and number italic
-%--------------------
-%JOURNAL VOLUME:
-    %: (def) Volume plain
-% vol-it,%: Volume italic
-% vol-bf,%: Volume bold
-% vol-2bf,%: Volume and number bold
-%--------------------
-%JOURNAL VOL AND NUMBER:
-    %: (def) Journal vol(num)
-% vnum-sp,%: Journal vol (num)
-% vnum-cm,%: Journal vol, num
-% vnum-nr,%: Journal vol, no. num
-% vnum-h,%: Journal vol, \# number
-% vnum-b,%: Journal vol number
-% vnum-x,%: Journal vol, without number
-%--------------------
-%VOLUME PUNCTUATION:
-    %: (def) Volume with colon
-% volp-sp,%: Volume with colon and space
-% volp-semi,%: Volume with semi-colon
-% volp-com,%: Volume with comma
-% volp-blk,%: Volume with blank
-%--------------------
-%YEAR IN JOURNAL SPECIFICATION:
-    %: (def) Journal year like others
-% jdt-v,%: Journal vol(year)
-% jdt-vs,%: Journal vol (year)
-% jdt-p,%: Year with pages
-% jdt-pc,%: Year, comma, pages
-%--------------------
-%PAGE NUMBERS:
-    %: (def) Start and stop page numbers
-% jpg-1,%: Only start page number
-%--------------------
-%LARGE PAGE NUMBERS:
-    %: (def) No separators for large page numbers
-% pgsep-c,%: Comma inserted over 9999
-% pgsep-s,%: Thin space inserted over 9999
-% pgsep-p,%: Period inserted over 9999
-%--------------------
-%WORD `PAGE' IN ARTICLES:
-    %: (def) Article pages numbers only
-% jwdpg,%: Include `page' in articles
-%--------------------
-%POSITION OF PAGES:
-    %: (def) Pages given mid text
-% pp-last,%: Pages at end
-%--------------------
-%WORD `VOLUME' IN ARTICLES:
-    %: (def) Article volume as number only
-% jwdvol,%: Include `volume' in articles
-%--------------------
-%NUMBER AND SERIES FOR COLLECTIONS:
-  num-xser,%: Allows number without series
-%   %: (def) Standard BibTeX
-%--------------------
-%POSITION OF NUMBER AND SERIES:
-%   %: (def) After chapter and pages
-  numser,%: Just before publisher
-%--------------------
-%VOLUME AND SERIES FOR BOOKS/COLLECTIONS:
-    %: (def) Vol. 23 of Series
-% ser-vol,%: Series, vol. 23
-%--------------------
-%POSITION OF VOLUME AND SERIES FOR INCOLLECTIONS:
-%   %: (def) Series and volume after the editors
-  ser-ed,%: Series and volume after booktitle
-%--------------------
-%JOURNAL NAME PUNCTUATION:
-    %: (def) Comma after journal
-% jnm-x,%: Space after journal
-%--------------------
-%BOOK TITLE:
-    %: (def) Book title italic
-% btit-rm,bt-rm,%: Book title plain
-%--------------------
-%PAGES IN BOOKS:
-    %: (def) Pages in book plain
-% bkpg-par,%: Pages in book in parentheses
-% bkpg-x,%: Pages in book bare
-%--------------------
-%TOTAL PAGES OF A BOOK:
-    %: (def) Total book pages not printed
-% pg-bk,%: For book: 345 pages
-% pg-bk,pg-pre,%: Total book pages before publisher
-%--------------------
-%PUBLISHER ADDRESS:
-    %: (def) Publisher, address
-% add-pub,%: Address: Publisher
-%--------------------
-%PUBLISHER IN PARENTHESES:
-    %: (def) Publisher as normal block
-% pub-par,%: Publisher in parentheses
-% pub-date,%: Publisher and date in parentheses
-% pub-date,pub-xc,%: Publisher and date in parentheses, no comma
-% pub-date,pub-xpar,%: Publisher and date without parentheses
-% pub-date,pub-xpar,pub-xc,%: Publisher and date, no parentheses, no comma
-%--------------------
-%PUBLISHER POSITION:
-%    %: (def) Publisher after chapter, pages
-% pre-pub,%: Publisher before chapter, pages
-  pre-edn,%: Publisher after edition
-%--------------------
-%ISBN NUMBER:
-  isbn,%: Include ISBN
-%   %: (def) No ISBN
-%--------------------
-%ISSN NUMBER:
-% issn,%: Include ISSN
-    %: (def) No ISSN
-%--------------------
-%DOI NUMBER:
-% doi,%: Include DOI
-  url-doi,%: Format DOI as URL //dx.doi.org/doi
-% agu-doi,doi,%: Insert DOI AGU style
-%   %: (def) No DOI
-%--------------------
-%`EDITOR' AFTER NAMES (EDITED BOOKS WITHOUT AUTHORS):
-    %: (def) Word `editor' after name
-% edpar,%: `Name (editor),'
-% edpar,bkedcap,%: `Name (Editor),'
-% edparc,%: `Name, (editor)'
-% edparc,bkedcap,%: `Name, (Editor)'
-% edparxc,%: `Name (editor)'
-% edparxc,bkedcap,%: `Name (Editor)'
-%--------------------
-%EDITOR IN COLLECTIONS:
-    %: (def) Same as for edited book
-% edby,%: In booktitle, edited by .. 
-% edby-par,%: In booktitle (edited by ..)
-% edby-parc,%: In booktitle, (edited by ..)
-% edby,edbyx,%: In booktitle, editor ..
-% edby,edbyw,%: In booktitle, (editor) ..
-% edby-par,edbyx,%: In booktitle (editor..)
-% edby-parc,edbyx,%: In booktitle, (editor..)
-% edby,edbyy,%: In booktitle, .., editor
-% edby-par,edbyy,%: In booktitle (.., editor)
-%--------------------
-%CAPITALIZE `EDITOR' OR `EDITED BY' (if editor capitalizable)
-%   %: (def) `(editor,..)' or `(edited by..)'
-% edcap,%: `(Editor,..)' or `(Edited by..)'
-%--------------------
-%PUNCTUATION BETWEEN SECTIONS (BLOCKS):
-    %: (def) \newblock after blocks
-% blk-com,%: Comma between blocks
-% blk-com,com-semi,%: Semi-colon between blocks
-% blk-com,com-blank,%: Blanks between blocks
-% blk-tit,%: Period after titles of articles, books, etc
-% blk-tit,tit-col,%: Colon after titles of articles, books, etc
-% blk-tita,%: Period after titles of articles
-% blk-tita,tit-col,%: Colon after titles of articles
-%--------------------
-%PUNCTUATION BEFORE NOTES (if not using \newblock)
-%   %: (def) Notes have regular punctuation
-% blknt,%: Notes preceded by period
-%--------------------
-%PUNCTUATION AFTER AUTHORS:
-    %: (def) Author block normal
-% au-col,%: Author block with colon
-%--------------------
-%PUNCTUATION AFTER `IN':
-    %: (def) Space after `in'
-% in-col,%: Colon after `in'
-% in-it,%: Italic `in'
-% in-col,in-it,%: Italic `in' and colon
-% in-x,%: No word `in'
-%--------------------
-%`IN' WITH JOURNAL NAMES (if using 'in' with collections)
-    %: (def) No `in' before journal name
-% injnl,%: Add `in' before journal name
-%--------------------
-%FINAL PUNCTUATION:
-    %: (def) Period at very end
-% fin-bare,%: No period at end
-%--------------------
-%ABBREVIATE WORD `PAGES' (if not using external language file)
-%   %: (def) `Page(s)'
-% pp,%: `Page' abbreviated
-% ppx,%: `Page' omitted
-%--------------------
-%ABBREVIATE WORD `EDITORS':
-%   %: (def) `Editor(s)'
-% ed,%: `Editor' abbreviated
-%--------------------
-%OTHER ABBREVIATIONS:
-%   %: (def) No abbreviations
-% abr,%: Abbreviations
-%--------------------
-%ABBREVIATION FOR `EDITION' (if abbreviating words)
-%   %: (def) `Edition' abbreviated as `edn'
-% ednx,%: `Edition' abbreviated as `ed'
-%--------------------
-%MONTHS WITH DOTS:
-%   %: (def) Months with dots
-% mth-bare,%: Months without dots
-%--------------------
-%EDITION NUMBERS:
-% xedn,%: Editions as in database
-%   %: (def) Write out editions
-% ord,%: Numerical editions
-%--------------------
-%Reading external language file \cfile=cjs-rcs-english.mbs
-    english,%: English language
-%ABBREVIATE WORD `PAGES'
-    %: (def) `Page(s)'
-% pp,%: `Page' abbreviated
-% ppx,%: `Page' omitted
-%--------------------
-%ABBREVIATE WORD `EDITORS':
-    %: (def) `Editor(s)'
-% ed,%: `Editor' abbreviated
-%--------------------
-%OTHER ABBREVIATIONS:
-%   %: (def) No abbreviations
-  abr,%: Abbreviations
-%--------------------
-%ABBREVIATION FOR `EDITION' (if abbreviating words)
-%   %: (def) `Edition' abbreviated as `edn'
-  ednx,%: `Edition' abbreviated as `ed'
-%--------------------
-%MONTHS WITH DOTS:
-    %: (def) Months with dots
-% mth-bare,%: Months without dots
-%--------------------
-%EDITION NUMBERS:
-% xedn,%: Editions as in database
-%   %: (def) Write out editions
-  ord,%: Numerical editions
-%--------------------
-%STORED JOURNAL NAMES:
-    %: (def) Full journal names
-% jabr,%: Abbreviated journal names
-% jabr,jaa,%: Abbreviated with astronomy shorthands
-%--------------------
-%AMPERSAND:
-    %: (def) Use word `and'
-% amper,%: Use ampersand
-% varand,%: Use \BIBand
-%--------------------
-%COMMA BEFORE `AND':
-    %: (def) Comma before `and'
-% and-xcom,%: No comma before `and'
-% and-com,%: Comma even with 2 authors
-%--------------------
-%COMMA BEFORE `AND' EVEN FOR COLLECTION EDITORS (if using comma before `and' with authors)
-% and-com-ed,%: Comma with 2 editors
-%   %: (def) Two editors without comma
-%--------------------
-%NO `AND' IN REFERENCE LIST:
-    %: (def) With `and'
-% xand,%: No `and'
-%--------------------
-%COMMA BEFORE `ET AL':
-%   %: (def) Comma before `et al'
-  etal-xc,%: No comma before `et al'
-%--------------------
-%FONT OF `ET AL':
-    %: (def) Plain et al
-% etal-it,%: Italic et al
-% etal-rm,%: Roman et al
-%--------------------
-%ADDITIONAL REVTeX DATA FIELDS:
-    %: (def) No additional fields
-% revdata,eprint,url,url-blk,%: Include REVTeX data fields
-%--------------------
-%E-PRINT DATA FIELD: (without REVTeX fields)
-    %: (def) Do not include eprint field
-% eprint,%: Include eprint and archive fields
-%--------------------
-%URL ADDRESS: (without REVTeX fields)
-%   %: (def) No URL
-  url,url-blk,%: Include URL
-% url,url-nt,%: URL as note
-% url,url-nl,%: URL on new line
-%--------------------
-%REFERENCE COMPONENT TAGS:
-    %: (def) No reference component tags
-% bibinfo,%: Reference component tags
-%--------------------
-%EMPHASIS: (affects all so-called italics)
-    %: (def) Use emphasis
-% em-it,%: Use true italics
-% em-x,%: No italics
-% em-ul,%: Underlining
-%--------------------
-%COMPATIBILITY WITH PLAIN TEX:
-  nfss,%: Use LaTeX commands
-% plntx,%: Use only Plain TeX
-%--------------------
-,{%
-  }}
-\generate{\file{cjs-rcs-en.bst}{\MBopts}}
-\endbatchfile

Deleted: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-bst-fr.dbj
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-bst-fr.dbj	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-bst-fr.dbj	2024-07-14 20:14:08 UTC (rev 71799)
@@ -1,603 +0,0 @@
-%% Driver file to produce cjs-rcs-fr.bst from cjs-rcs-merlin.mbs
-%% Originally generated with makebst, version 4.1 (2003/09/08),
-%% on 2023/10/11 at 12:01, then hand edited by Vincent Goulet.
-%% 
-\input docstrip
-
-\preamble
-
-Copyright (C) 2023 Statistical Society of Canada | Société
-canadienne de statistique
-
-This file may be distributed and/or modified under the conditions
-of the LaTeX Project Public License, either version 1.3c of this
-license or (at your option) any later version. The latest version
-of this license is in:
-
-  https://www.latex-project.org/lppl.txt
-
-This work has the LPPL maintenance status `maintained'.
-
-The Current Maintainer of this work is Vincent Goulet
-<vincent.goulet at act.ulaval.ca>.
-
-This work consists of the master bibliographic style file
-cjs-rcs-merlin.mbs, the language definition file cjs-rcs-french.mbs,
-the driver file cjs-rcs-fr.dbj, and the derived file cjs-rcs-fr.bst.
-
-\endpreamble
-
-\postamble
-End of customized bst file
-\endpostamble
-
-\keepsilent
-
-\askforoverwritefalse
-\def\MBopts{\from{cjs-rcs-merlin.mbs}{%
-%EXTERNAL FILES:
-%Name of language file: \cfile=cjs-rcs-french.mbs.
-%No included files.
-  head,\MBopta}
-\from{cjs-rcs-french.mbs}{\MBopta}
-\from{cjs-rcs-merlin.mbs}{tail,\MBopta}}
-\def\MBopta{%
-%INTERNAL LANGUAGE SUPPORT (if no external language file)
-%   %: (def) English
-% babel,%: Babel
-%--------------------
-    exlang,%: External language file
-%STYLE OF CITATIONS:
-%   %: (def) Numerical
-  ay,%: Author-year
-% alph,%: Alpha style, Jon90 or JWB90
-% alph,alf-1,%: Alpha style, Jon90
-% alph,alf-f,%: Alpha style, Jones90
-% cite,%: Cite key
-%--------------------
-%HTML OUTPUT (if non author-year citations)
-%   %: (def) Normal LaTeX
-% html,%: Hypertext
-% html,htlist,%: Hypertext list
-% html,htdes,%: Hypertext with keys
-%--------------------
-%AUTHOR--YEAR SUPPORT SYSTEM (if author-year citations)
-  nat,%: Natbib
-%   %: (def) Older Natbib
-% alk,%: Apalike
-% har,%: Harvard
-% ast,%: Astronomy
-% cay,%: Chicago
-% nmd,%: Named
-% cn,%: Author-date
-%--------------------
-%HARVARD EXTENSIONS INCLUDED (if Harvard support selected)
-% harnm,%: With Harvard extensions
-%   %: (def) Older Harvard
-%--------------------
-%LANGUAGE FIELD
-%   %: (def) No language field
-  lang,%: Add language field
-%--------------------
-%ANNOTATIONS:
-    %: (def) No annotations
-% annote,%: Annotations
-%--------------------
-%PRESENTATIONS:
-    %: (def) Do not add presentation type
-% pres,%: Add presentation, speaker not highlighted
-% pres,pres-bf,%: Presentation, speaker bold face
-% pres,pres-it,%: Presentaion, speaker italic
-% pres,pres-sc,%: Presentaion, speaker in small caps
-%--------------------
-%ORDERING OF REFERENCES (if non-author/year and non-alph)
-%   %: (def) Alphabetical
-% seq-no,%: Citation order
-% seq-yr,%: Year ordered
-% seq-yrr,%: Reverse year ordered
-%--------------------
-%ORDERING OF REFERENCES (if author-year citations)
-    %: (def) Alphabetical
-% seq-lab,%: By label
-% seq-labc,%: By label and cite order
-% seq-key,%: By label and cite key
-% seq-yr,%: Year ordered
-% seq-yrr,%: Reverse year ordered
-% seq-no,%: Citation order
-%--------------------
-%ORDER ON VON PART (if not citation order)
-%   %: (def) Sort on von part
-  vonx,%: Sort without von part
-%--------------------
-%IGNORE FIRST NAMES (if author-year citations)
-    %: (def) Respect first names
-% xintls,%: Sort on surname only
-%--------------------
-%AUTHOR NAMES:
-% ed-au,%: Full, surname last
-% nm-revf,%: Full, surname first
-% nm-init,ed-au,%: Initials + surname
-% nm-rev,%: Surname + initials
-% nm-rv,%: Surname + dotless initials
-% nm-rvvc,%: Surname + comma + spaceless initials
-% nm-rvx,%: Surname + pure initials
-% nm-rvcx,%: Surname + comma + pure initials
-% nm-rvv,%: Surname + spaceless initials
-  nm-rev1,%: Only first name reversed, initials
-% nm-revv1,%: First name reversed, with full names
-%--------------------
-%EDITOR NAMES IN COLLECTIONS (if author names reversed)
-    %: (def) Editor names NOT reversed
-% ed-rev,%: Editor names reversed
-%--------------------
-%POSITION OF JUNIOR (if author names reversed)
-  jnrlst,%: Junior comes last
-%   %: (def) Junior between
-%--------------------
-%JUNIOR PART IN THE CITATION (if author-year citations)
-    %: (def) No `junior' part in the citations
-% jnrlab,%: `Junior' in citations
-%--------------------
-%PUNCTUATION BETWEEN AUTHOR NAMES:
-    %: (def) Author names separated by commas
-% aunm-semi,%: Names separated by semi-colon
-% aunm-sl,%: Names separated by slash
-%--------------------
-%ADJACENT REFERENCES WITH REPEATED NAMES:
-    %: (def) Author/editor names always present
-% nmdash,%: Repeated author/editor names replaced by dash
-% nmdash,nmd-2,%: Repeated author/editor names replaced by 2 dashes
-% nmdash,nmd-3,%: Repeated author/editor names replaced by 3 dashes
-%--------------------
-%NUMBER OF AUTHORS IN BIBLIOGRAPHY:
-    %: (def) All authors
-% nmlm,%: Limited authors
-%--------------------
-%AUTHORS IN CITATIONS:
-    %: (def) One author et al
-% mcite,%: Some other truncation scheme
-%--------------------
-%MAX AUTHORS BEFORE ET AL: (if regular cite not selected)
-% mct-1,%: One et al
-% mct-2,%: One, Two et al
-% mct-3,%: One, Two, Three et al
-% mct-4,%: One, Two, Three, Four et al
-% mct-5,%: One, Two, Three, Four, Five et al
-% mct-6,%: One, Two, Three, Four, Five, Six et al
-%--------------------
-%MAX AUTHORS WITHOUT ET AL: (if regular cite not selected)
-% mct-x2,%: Two authors without truncating
-% mct-x3,%: Three authors
-% mct-x4,%: Four authors
-% mct-x5,%: Five authors
-% mct-x6,%: Six authors
-%--------------------
-%TYPEFACE FOR AUTHORS IN LIST OF REFERENCES:
-    %: (def) Normal font for author names
-% nmft,nmft-sc,%: Small caps authors
-% nmft,nmft-it,%: Italic authors
-% nmft,nmft-bf,%: Bold authors
-% nmft,nmft-def,%: User defined author font
-%--------------------
-%FONT FOR FIRST NAMES (if non-default font for authors)
-%   %: (def) First names same font as surnames
-% fnm-rm,%: First names in normal font
-% fnm-def,%: First names in user defined font
-%--------------------
-%EDITOR NAMES IN INCOLLECTION ETC:
-%   %: (def) Editors incollection normal font
-% nmfted,%: Editors incollection like authors
-%--------------------
-%FONT FOR `AND' IN LIST:
-%   %: (def) `And' in author font
-% nmand-rm,%: `And' in normal font
-%--------------------
-%FONT OF CITATION LABELS IN TEXT (if author-year citations)
-    %: (def) Cited authors plain
-% lab,lab-it,%: Cited authors italic
-% lab,lab-sc,%: Cited authors small caps
-% lab,lab-bf,%: Cited authors bold
-% lab,lab-def,%: User defined citation font
-%--------------------
-%FONT FOR `AND' IN CITATIONS (if non-default font for citation lables)
-%   %: (def) Cited `and' in author font
-% and-rm,%: Cited `and' in normal font
-%--------------------
-%FONT OF EXTRA LABEL (The extra letter on the year)
-    %: (def) Extra label plain
-% xlab-it,%: Extra label italic
-%--------------------
-%LABEL WHEN AUTHORS MISSING (if author-year citations)
-  keyxyr,%: Year blank when KEY replaces missing author
-%   %: (def) Year included when KEY replaces missing author
-%--------------------
-%MISSING DATE (if author-year citations)
-%   %: (def) Missing date set to ????
-  blkyear,%: Missing date left blank
-%--------------------
-%DATE POSITION:
-%   %: (def) Date at end
-  dt-beg,%: Date after authors
-% dt-jnl,%: Date part of journal spec.
-% dt-end,%: Date at very end
-%--------------------
-%DATE FORMAT (if non author-year citations)
-%   %: (def) Plain month and year
-% yr-par,%: Date in parentheses
-% yr-brk,%: Date in brackets
-% yr-col,%: Date preceded by colon
-% yr-per,%: Date preceded by period
-% yr-com,%: Date preceded by comma
-% yr-blk,%: Date preceded by space
-%--------------------
-%SUPPRESS MONTH:
-%   %: (def) Date is month and year
-% xmth,%: Date is year only
-%--------------------
-%REVERSED DATE (if including month)
-%   %: (def) Date as month year
-% dtrev,%: Date as year month
-%--------------------
-%DATE FORMAT (if author-year citations)
-%   %: (def) Year plain
-% yr-par,%: Year in parentheses
-% yr-brk,%: Year in brackets
-% yr-col,%: Year preceded by colon
-  yr-per,%: Year preceded by period
-% yr-com,%: Date preceded by comma
-% yr-blk,%: Year preceded by space
-%--------------------
-%INCLUDE MONTHS:
-    %: (def) Date is year only
-% aymth,%: Include month in date
-%--------------------
-%REVERSED DATE (if including month)
-%   %: (def) Date as month year
-% dtrev,%: Date as year month
-%--------------------
-%DATE PUNCTUATION (if date not at end)
-    %: (def) Date with standard block punctuation
-% yrp-col,%: Colon after date
-% yrp-semi,%: Semi-colon after date
-% yrp-per,%: Period after date
-% yrp-x,%: No punct. after date
-%--------------------
-%BLANK AFTER DATE:
-    %: (def) Space after date
-% yrpp-xsp,%: No space after date
-%--------------------
-%DATE FONT:
-    %: (def) Date in normal font
-% dtbf,%: Date in bold face
-%--------------------
-%TRUNCATE YEAR (if author-year citations)
-  note-yr,%: Year text full
-%   %: (def) Year truncated
-%--------------------
-%TITLE OF ARTICLE:
-%   %: (def) Title plain
-% tit-it,%: Title italic
-% tit-qq,qt-s,%: Title and punctuation in single quotes
-% tit-qq,%: Title and punctuation in double quotes
-% tit-qq,qt-g,%: Title and punctuation in guillemets
-% tit-qq,qt-s,qx,%: Title in single quotes
-% tit-qq,qx,%: Title in double quotes
-  tit-qq,qt-g,qx,%: Title in guillemets
-%--------------------
-%COLLECTION/PROCEEDINGS TITLES (if quoted title)
-% bt-qq,%: Quote collection and proceedings titles
-    %: (def) Collection and proceedings titles not in quotes
-%--------------------
-%CAPITALIZATION OF ARTICLE TITLE:
-    %: (def) Sentence style
-% atit-u,%: Title style
-%--------------------
-%ARTICLE TITLE PRESENT:
-    %: (def) Article title present
-% jtit-x,%: No article title
-%--------------------
-%JOURNAL NAMES:
-    %: (def) Periods in journal names
-% jxper,%: Dotless journal names
-%--------------------
-%JOURNAL NAME FONT:
-    %: (def) Journal name italics
-% jttl-rm,%: Journal name normal
-%--------------------
-%THESIS TITLE:
-    %: (def) Thesis titles like books
-% thtit-a,%: Thesis title like article
-% thtit-x,%: No thesis title
-%--------------------
-%TECHNICAL REPORT TITLE:
-%   %: (def) Tech. report title like articles
-  trtit-b,%: Tech. report title like books
-%--------------------
-%TECHNICAL REPORT NUMBER:
-    %: (def) Tech. report and number plain
-% trnum-it,%: Tech. report and number italic
-%--------------------
-%JOURNAL VOLUME:
-    %: (def) Volume plain
-% vol-it,%: Volume italic
-% vol-bf,%: Volume bold
-% vol-2bf,%: Volume and number bold
-%--------------------
-%JOURNAL VOL AND NUMBER:
-%   %: (def) Journal vol(num)
-% vnum-sp,%: Journal vol (num)
-% vnum-cm,%: Journal vol, num
-  vnum-nr,%: Journal vol, no. num
-% vnum-h,%: Journal vol, \# number
-% vnum-b,%: Journal vol number
-% vnum-x,%: Journal vol, without number
-%--------------------
-%VOLUME PUNCTUATION:
-%   %: (def) Volume with colon
-% volp-sp,%: Volume with colon and space
-% volp-semi,%: Volume with semi-colon
-  volp-com,%: Volume with comma
-% volp-blk,%: Volume with blank
-%--------------------
-%YEAR IN JOURNAL SPECIFICATION:
-    %: (def) Journal year like others
-% jdt-v,%: Journal vol(year)
-% jdt-vs,%: Journal vol (year)
-% jdt-p,%: Year with pages
-% jdt-pc,%: Year, comma, pages
-%--------------------
-%PAGE NUMBERS:
-    %: (def) Start and stop page numbers
-% jpg-1,%: Only start page number
-%--------------------
-%LARGE PAGE NUMBERS:
-%   %: (def) No separators for large page numbers
-% pgsep-c,%: Comma inserted over 9999
-  pgsep-s,%: Thin space inserted over 9999
-% pgsep-p,%: Period inserted over 9999
-%--------------------
-%WORD `PAGE' IN ARTICLES:
-%   %: (def) Article pages numbers only
-  jwdpg,%: Include `page' in articles
-%--------------------
-%POSITION OF PAGES:
-    %: (def) Pages given mid text
-% pp-last,%: Pages at end
-%--------------------
-%WORD `VOLUME' IN ARTICLES:
-%   %: (def) Article volume as number only
-  jwdvol,%: Include `volume' in articles
-%--------------------
-%NUMBER AND SERIES FOR COLLECTIONS:
-  num-xser,%: Allows number without series
-%   %: (def) Standard BibTeX
-%--------------------
-%POSITION OF NUMBER AND SERIES:
-%   %: (def) After chapter and pages
-  numser,%: Just before publisher
-%--------------------
-%VOLUME AND SERIES FOR BOOKS/COLLECTIONS:
-%   %: (def) Vol. 23 of Series
-  ser-vol,%: Series, vol. 23
-%--------------------
-%POSITION OF VOLUME AND SERIES FOR INCOLLECTIONS:
-%   %: (def) Series and volume after the editors
-  ser-ed,%: Series and volume after booktitle
-%--------------------
-%JOURNAL NAME PUNCTUATION:
-    %: (def) Comma after journal
-% jnm-x,%: Space after journal
-%--------------------
-%BOOK TITLE:
-    %: (def) Book title italic
-% btit-rm,bt-rm,%: Book title plain
-%--------------------
-%PAGES IN BOOKS:
-    %: (def) Pages in book plain
-% bkpg-par,%: Pages in book in parentheses
-% bkpg-x,%: Pages in book bare
-%--------------------
-%TOTAL PAGES OF A BOOK:
-%   %: (def) Total book pages not printed
-  pg-bk,%: For book: 345 pages
-% pg-bk,pg-pre,%: Total book pages before publisher
-%--------------------
-%PUBLISHER ADDRESS:
-    %: (def) Publisher, address
-% add-pub,%: Address: Publisher
-%--------------------
-%PUBLISHER IN PARENTHESES:
-    %: (def) Publisher as normal block
-% pub-par,%: Publisher in parentheses
-% pub-date,%: Publisher and date in parentheses
-% pub-date,pub-xc,%: Publisher and date in parentheses, no comma
-% pub-date,pub-xpar,%: Publisher and date without parentheses
-% pub-date,pub-xpar,pub-xc,%: Publisher and date, no parentheses, no comma
-%--------------------
-%PUBLISHER POSITION:
-%   %: (def) Publisher after chapter, pages
-  pre-pub,%: Publisher before chapter, pages
-  pre-edn,%: Publisher after edition
-%--------------------
-%ISBN NUMBER:
-  isbn,%: Include ISBN
-%   %: (def) No ISBN
-%--------------------
-%ISSN NUMBER:
-% issn,%: Include ISSN
-    %: (def) No ISSN
-%--------------------
-%DOI NUMBER:
-% doi,%: Include DOI
-  url-doi,%: Format DOI as URL //doi.org/doi
-% agu-doi,doi,%: Insert DOI AGU style
-%   %: (def) No DOI
-%--------------------
-%`EDITOR' AFTER NAMES (EDITED BOOKS WITHOUT AUTHORS):
-%   %: (def) Word `editor' after name
-% edpar,%: `Name (editor),'
-% edpar,bkedcap,%: `Name (Editor),'
-% edparc,%: `Name, (editor)'
-% edparc,bkedcap,%: `Name, (Editor)'
-  edparxc,%: `Name (editor)'
-% edparxc,bkedcap,%: `Name (Editor)'
-%--------------------
-%EDITOR IN COLLECTIONS:
-%   %: (def) Same as for edited book
-  edby,%: In booktitle, edited by .. 
-% edby-par,%: In booktitle (edited by ..)
-% edby-parc,%: In booktitle, (edited by ..)
-% edby,edbyx,%: In booktitle, editor ..
-% edby,edbyw,%: In booktitle, (editor) ..
-% edby-par,edbyx,%: In booktitle (editor..)
-% edby-parc,edbyx,%: In booktitle, (editor..)
-% edby,edbyy,%: In booktitle, .., editor
-% edby-par,edbyy,%: In booktitle (.., editor)
-%--------------------
-%CAPITALIZE `EDITOR' OR `EDITED BY' (if editor capitalizable)
-%   %: (def) `(editor,..)' or `(edited by..)'
-% edcap,%: `(Editor,..)' or `(Edited by..)'
-%--------------------
-%PUNCTUATION BETWEEN SECTIONS (BLOCKS):
-%   %: (def) \newblock after blocks
-  blk-com,%: Comma between blocks
-% blk-com,com-semi,%: Semi-colon between blocks
-% blk-com,com-blank,%: Blanks between blocks
-% blk-tit,%: Period after titles of articles, books, etc
-% blk-tit,tit-col,%: Colon after titles of articles, books, etc
-% blk-tita,%: Period after titles of articles
-% blk-tita,tit-col,%: Colon after titles of articles
-%--------------------
-%PUNCTUATION BEFORE NOTES (if not using \newblock)
-%   %: (def) Notes have regular punctuation
-  blknt,%: Notes preceded by period
-%--------------------
-%PUNCTUATION AFTER AUTHORS:
-    %: (def) Author block normal
-% au-col,%: Author block with colon
-%--------------------
-%PUNCTUATION AFTER `IN':
-    %: (def) Space after `in'
-% in-col,%: Colon after `in'
-% in-it,%: Italic `in'
-% in-col,in-it,%: Italic `in' and colon
-% in-x,%: No word `in'
-%--------------------
-%`IN' WITH JOURNAL NAMES (if using 'in' with collections)
-    %: (def) No `in' before journal name
-% injnl,%: Add `in' before journal name
-%--------------------
-%FINAL PUNCTUATION:
-    %: (def) Period at very end
-% fin-bare,%: No period at end
-%--------------------
-%ABBREVIATE WORD `PAGES' (if not using external language file)
-%   %: (def) `Page(s)'
-% pp,%: `Page' abbreviated
-% ppx,%: `Page' omitted
-%--------------------
-%ABBREVIATE WORD `EDITORS':
-%   %: (def) `Editor(s)'
-% ed,%: `Editor' abbreviated
-%--------------------
-%OTHER ABBREVIATIONS:
-%   %: (def) No abbreviations
-% abr,%: Abbreviations
-%--------------------
-%ABBREVIATION FOR `EDITION' (if abbreviating words)
-%   %: (def) `Edition' abbreviated as `edn'
-% ednx,%: `Edition' abbreviated as `ed'
-%--------------------
-%MONTHS WITH DOTS:
-%   %: (def) Months with dots
-% mth-bare,%: Months without dots
-%--------------------
-%EDITION NUMBERS:
-% xedn,%: Editions as in database
-%   %: (def) Write out editions
-% ord,%: Numerical editions
-%--------------------
-%Reading external language file \cfile=cjs-rcs-french.mbs
-    french,%: French language
-%ABBREVIATE WORD `PAGES':
-%   %: (def) `Page(s)'
-  pp,%: `Page' abbreviated
-% ppx,%: `Page' omitted
-%--------------------
-%ABBREVIATE WORD `EDITEUR:
-%   %: (def) `\'Editeur(s)'
-  ed,%: `\'Editeur' abbreviated
-%--------------------
-%OTHER ABBREVIATIONS:
-%   %: (def) No abbreviations
-  abr,%: Abbreviations
-%--------------------
-%EDITION NUMBERS:
-% xedn,%: Editions as in database
-%   %: (def) Write out editions
-  ord,%: Numerical editions
-%--------------------
-%STORED JOURNAL NAMES:
-    %: (def) Full journal names
-% jabr,%: Abbreviated journal names
-% jabr,jaa,%: Abbreviated with astronomy shorthands
-%--------------------
-%AMPERSAND:
-    %: (def) Use word `and'
-% amper,%: Use ampersand
-% varand,%: Use \BIBand
-%--------------------
-%COMMA BEFORE `AND':
-%   %: (def) Comma before `and'
-  and-xcom,%: No comma before `and'
-% and-com,%: Comma even with 2 authors
-%--------------------
-%COMMA BEFORE `AND' EVEN FOR COLLECTION EDITORS (if using comma before `and' with authors)
-% and-com-ed,%: Comma with 2 editors
-%   %: (def) Two editors without comma
-%--------------------
-%NO `AND' IN REFERENCE LIST:
-    %: (def) With `and'
-% xand,%: No `and'
-%--------------------
-%COMMA BEFORE `ET AL':
-%   %: (def) Comma before `et al'
-  etal-xc,%: No comma before `et al'
-%--------------------
-%FONT OF `ET AL':
-    %: (def) Plain et al
-% etal-it,%: Italic et al
-% etal-rm,%: Roman et al
-%--------------------
-%ADDITIONAL REVTeX DATA FIELDS:
-    %: (def) No additional fields
-% revdata,eprint,url,url-blk,%: Include REVTeX data fields
-%--------------------
-%E-PRINT DATA FIELD: (without REVTeX fields)
-    %: (def) Do not include eprint field
-% eprint,%: Include eprint and archive fields
-%--------------------
-%URL ADDRESS: (without REVTeX fields)
-%   %: (def) No URL
-  url,url-blk,%: Include URL
-% url,url-nt,%: URL as note
-% url,url-nl,%: URL on new line
-%--------------------
-%REFERENCE COMPONENT TAGS:
-    %: (def) No reference component tags
-% bibinfo,%: Reference component tags
-%--------------------
-%EMPHASIS: (affects all so-called italics)
-    %: (def) Use emphasis
-% em-it,%: Use true italics
-% em-x,%: No italics
-% em-ul,%: Underlining
-%--------------------
-%COMPATIBILITY WITH PLAIN TEX:
-  nfss,%: Use LaTeX commands
-% plntx,%: Use only Plain TeX
-%--------------------
-,{%
-  }}
-\generate{\file{cjs-rcs-fr.bst}{\MBopts}}
-\endbatchfile

Deleted: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-class.dbj
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-class.dbj	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-class.dbj	2024-07-14 20:14:08 UTC (rev 71799)
@@ -1,39 +0,0 @@
-\input docstrip.tex
-\keepsilent
-\askforoverwritefalse
-\nopostamble
-\preamble
-
-This is a generated file.
-
-Copyright (C) 2023 Statistical Society of Canada | Société
-canadienne de statistique
-
-This file may be distributed and/or modified under the conditions
-of the LaTeX Project Public License, either version 1.3c of this
-license or (at your option) any later version. The latest version
-of this license is in:
-
-  https://www.latex-project.org/lppl.txt
-
-and version 1.3c or later is part of all distributions of LaTeX
-version 2006/05/20 or later.
-
-This work has the LPPL maintenance status `maintained'.
-
-The Current Maintainer of this work is Vincent Goulet
-<vincent.goulet at act.ulaval.ca>.
-
-This work consists of the file cjs-rcs-article.dtx and the derived
-files cjs-rcs-article.cls, cjs-rcs-article-fr.tex, cjs-template.tex
-and rcs-gabarit.tex.
-
-\endpreamble
-
-\generate{
-  \file{cjs-rcs-article.cls}{\from{cjs-rcs-article.dtx}{class}}
-  \file{cjs-rcs-article-fr.tex}{\nopreamble\from{cjs-rcs-article.dtx}{fr-doc}}
-  \file{cjs-template.tex}{\nopreamble\from{cjs-rcs-article.dtx}{template,en}}
-  \file{rcs-gabarit.tex}{\nopreamble\from{cjs-rcs-article.dtx}{template,fr}}
-}
-\endbatchfile

Deleted: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-english.mbs
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-english.mbs	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-english.mbs	2024-07-14 20:14:08 UTC (rev 71799)
@@ -1,420 +0,0 @@
-% \iffalse meta-comment -*- mode: doctex -*-
-%
-% English language definition file of the master bibliography style
-% for The Canadian Journal of Statistics | La revue canadienne de
-% statistique
-%
-% Copyright (C) 2023 Statistical Society of Canada | Société
-% canadienne de statistique
-%
-% This file may be distributed and/or modified under the conditions
-% of the LaTeX Project Public License, either version 1.3c of this
-% license or (at your option) any later version. The latest version
-% of this license is in:
-%
-%   https://www.latex-project.org/lppl.txt
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Vincent Goulet
-% <vincent.goulet at act.ulaval.ca>.
-%
-% This work derives from english.mbs, part of the custom-bib
-% collection, a contribution to the LaTeX2e system.
-% Copyright 1994-2002 Patrick W Daly
-% Max-Planck-Institut f\"ur Sonnensystemforschung
-% Max-Planck-Str. 2
-% D-37191 Katlenburg-Lindau
-% Germany
-% E-mail: daly at mps.mpg.de
-%
- %-------------------------------------------------------------------
- % Begin module:
-%\fi
- % \ProvidesFile{cjs-rcs-english.mbs}[2023/11/29 v1.0 (VG, PWD)]
-%\iffalse
-%<*a&!a>
-% The following ensures that the driver part is not seen by makebst
-% The driver part must not contain any \end other than \end{document} !
-\ifx\endoptions\undefined\let\tempx=\relax\else
-  \long\def\tempx#1\end#2{}\fi\tempx
-%</a&!a>
-%<*driver>
-\NeedsTeXFormat{LaTeX2e}%
-\documentclass[nocjs,x11names,french,english]{cjs-rcs-article}
-
-  %% Loading doc.sty creates some conflicts with the class and memoir. We
-  %% need to:
-  %%
-  %% - keep a copy of the class' \maketitle command;
-  %% - undefine the 'glossary' environment created by memoir;
-  %% - restore the standard LaTeX commands for the glossary that
-  %%   doc.sty relies upon.
-  \let\makeCJStitle\maketitle   % keep class definition
-  \let\theglossary\relax        % avoid conflict with doc.sty
-  \let\endtheglossary\relax     % avoid conflict with doc.sty
-  \makeatletter
-  \def\makeglossary{%
-    \newwrite\@glossaryfile
-    \immediate\openout\@glossaryfile=\jobname.glo
-    \def\glossary{\@bsphack\begingroup
-                  \@sanitize
-                  \@wrglossary}\typeout
-      {Writing glossary file \jobname.glo }%
-    \let\makeglossary\@empty
-  }
-  \@onlypreamble\makeglossary
-  \def\@wrglossary#1{%
-     \protected at write\@glossaryfile{}%
-        {\string\glossaryentry{#1}{\thepage}}%
-   \endgroup
-   \@esphack}
-  \def\glossary{\@bsphack\begingroup\@sanitize\@index}
-  \@twosidefalse\@mparswitchfalse % turn off twoside option
-  \makeatother
-  \usepackage{doc}
-  \def\changes#1#2#3{\glossary{#1>#3}} % simplified
-  \DisableCrossrefs
-  \CodelineNumbered
-  \RecordChanges
-  \OnlyDescription
-  \DontCheckModules
-
-  \AtEndPreamble{%
-    \hypersetup{%
-      pdfauthor = {Statistical Society of Canada},
-      pdftitle = {French language definition file cjs-rcs-french.mbs}}}
-
-  %% Configuration of the glossary
-  \addto\extrasenglish{%
-    \def\glossaryname{Version history}}
-  \GlossaryPrologue{\section*{\glossaryname}%
-    \addcontentsline{toc}{section}{\glossaryname}}
-  \setlength{\GlossaryMin}{5cm}
-
-  %% Additional semantic typesetting
-  \newcommand*\class[1]{\textsf{#1}}
-  \newcommand*\dtx{\textsf{docstrip}}
-
-  %% Name of the journal
-  \makeatletter
-  \newcommand*\TheCJS{\@ifstar{\emph{The Journal}}{\emph{\CJS at journalname@en}}}
-  \newcommand*\LaRevue{\@ifstar{\emph{La revue}}{\emph{\CJS at journalname@fr}}}
-  \newcommand*\CJSclass{\class{cjs-rcs-article}}
-  \newcommand*\CJSbsten{\texttt{cjs-rcs-en.bst}}
-  \newcommand*\CJSbstfr{\texttt{cjs-rcs-fr.bst}}
-  \makeatother
-
-  %% Redefine \year using information from \filedate instead of using
-  %% compilation time
-  \def\parsedate#1/#2/#3\relax{\def\year{#1}}
-
-  \MakeShortVerb{\|}
-
-\begin{document}
-  \DocInput{cjs-rcs-english.mbs}
-\end{document}
-%</driver>
-% end of meta-comment \fi
-% \GetFileInfo{cjs-rcs-english.mbs}
-% \expandafter\parsedate\filedate\relax
-%
-% \changes{0.9}{2023-10-14}{Initial version based on version 4.2 of
-% \texttt{english.mbs} from \textbf{custom-bib}.}
-% \changes{0.93}{2023-11-06}{Add a prefix v in the version number like
-% the main file.}
-% \changes{1.0}{2023-11-29}{First official release distributed through
-% CTAN.}
-%
-% \title[English language definition file \filename]{%
-%   English language definition file \\
-%   of the master bibliographic style file \\
-%   for \TheCJS}
-% \author{Statistical Society of Canada}
-% \affil{Developed by Vincent Goulet, Université Laval}
-%
-% \begin{englishabstract}
-%   The list of references in {\TheCJS} is typeset using the
-%   bibliographic styles {\CJSbsten} for articles in English and
-%   {\CJSbstfr} for articles in French. These styles are created using
-%   the program \texttt{makebst} from the master bibliographic file
-%   \texttt{cjs-rcs-merlin.mbs}, and the language definition files
-%   \texttt{cjs-rcs-english.mbs} and \texttt{cjs-rcs-french.mbs}.
-% \end{englishabstract}
-% \begin{frenchabstract}
-%   La liste des références dans {\LaRevue} est composée avec les
-%   style de bibliographie {\CJSbstfr} pour les articles en français
-%   et {\CJSbsten} pour les articles en anglais. Ceux-ci sont générés
-%   par le programme \texttt{makebst} à partir du fichier maitre
-%   \texttt{cjs-rcs-merlin.mbs} et des fichiers de localisation
-%   \texttt{cjs-rcs-english.mbs} et \texttt{cjs-rcs-french.mbs}.
-% \end{frenchabstract}
-%
-% ^^A abusing the 'classification' environment. The final period is
-% ^^A added by the environment.
-% \begin{classification}[Version]
-% \item[] This is the documentation for the file \code{\filename}
-%   {\fileversion}, dated {\filedate}
-% \end{classification}
-%
-% \licence{{\year}, Statistical Society of Canada~{\textbar}~Société
-% canadienne de statistique}
-%
-% \makeCJStitle
-%
-% \section{Introduction}
-%
-% This file is to be used as a language definition file with the
-% master bibliographic file for {\TheCJS}. The language it defines is
-% English.
-%
-% This is not a self-sufficient \texttt{.mbs} file, but rather may
-% be used together with one that contains language support via
-% external definition files.
-%
-% See the documentation for \texttt{makebst} for formatting details.
-%
-% \section{The Menu Information}
-%
-% All the menu information is nested between \dtx{} guard options
-% |%<*options>| \dots\ |%</options>|, and the last command is
-% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>|
-% \dots\ |%</!options&!driver>| in order to exclude it if \dtx{} is used to
-% extract only the menu information or the documentation driver.
-%
-%    \begin{macrocode}
-%<*options>
-\mes{^^JOptions for ENGLISH}
-\wr{\spsp\spsp english,\pc: English language}
-
-\beginoptiongroup{ABBREVIATE WORD `PAGES'}{}
-\optdef{*}{}{`Page(s)'}{(no abbreviation)}
-\optdef{a}{pp}{`Page' abbreviated}{as p. or pp.}
-\optdef{x}{ppx}{`Page' omitted}{}
-\getans
-\endoptiongroup
-\beginoptiongroup{ABBREVIATE WORD `EDITORS':}{}
-\optdef{*}{}{`Editor(s)'}{(no abbreviation)}
-\optdef{a}{ed}{`Editor' abbreviated}{as ed. or eds.}
-\getans
-\endoptiongroup
-\beginoptiongroup{OTHER ABBREVIATIONS:}{}
-\optdef{*}{}{No abbreviations}{of volume, edition, chapter, etc}
-\optdef{a}{abr}{Abbreviations}{of such words}
-\getans
-\endoptiongroup
-\beginoptiongroup{ABBREVIATION FOR `EDITION'
- (if abbreviating words)}
- {\if\ans a*\fi}%
-\optdef{*}{}{`Edition' abbreviated as `edn'}{}
-\optdef{a}{ednx}{`Edition' abbreviated as `ed'}{}
-\getans
-\beginoptiongroup{MONTHS WITH DOTS:}{}
-\optdef{*}{}{Months with dots}{as Jan.}
-\optdef{x}{mth-bare}{Months without dots}{as Feb Mar}
-\getans
-\endoptiongroup
-\endoptiongroup
-\beginoptiongroup{EDITION NUMBERS:}{}
-\optdef{*}{xedn}{Editions as in database}{saving much processing memory}
-\optdef{w}{}{Write out editions}{as first, second, third, etc}
-\optdef{n}{ord}{Numerical editions}{as 1st, 2nd, 3rd, etc}
-\getans
-\endoptiongroup
-\endoptions
-%</options>
-%    \end{macrocode}
-%
-% \StopEventually{\PrintChanges}
-%
-% \section{The Coding}
-%    \begin{macrocode}
-%<*!options&!driver>
-
- % The language selected here is ENGLISH
-FUNCTION {bbl.and}
-{ "and"}
-
-FUNCTION {bbl.etal}
-{ "et~al." }
-
-FUNCTION {bbl.editors}
-%<!ed>{ "editors" }
-%<ed>{ "eds." }
-
-FUNCTION {bbl.editor}
-%<!ed>{ "editor" }
-%<ed>{ "ed." }
-
-FUNCTION {bbl.edby}
-{ "edited by" }
-
-FUNCTION {bbl.edition}
-%<!abr>{ "edition" }
-%<abr&!ednx>{ "edn." }
-%<abr&ednx>{ "ed." }
-
-FUNCTION {bbl.volume}
-%<!abr>{ "volume" }
-%<abr>{ "vol." }
-
-FUNCTION {bbl.of}
-{ "of" }
-
-FUNCTION {bbl.number}
-%<!abr>{ "number" }
-%<abr>{ "no." }
-
-FUNCTION {bbl.nr}
-{ "no." }
-
-FUNCTION {bbl.in}
-{ "in" }
-
-FUNCTION {bbl.pages}
-%<!pp&!ppx>{ "pages" }
-%<pp>{ "pp." }
-%<!pp&ppx>{ "" }
-
-FUNCTION {bbl.page}
-%<!pp&!ppx>{ "page" }
-%<pp>{ "p." }
-%<!pp&ppx>{ "" }
-
-%<*revdata>
-FUNCTION {bbl.eidpp}
-{ "pages" }
-
-%</revdata>
-FUNCTION {bbl.chapter}
-%<!abr>{ "chapter" }
-%<abr>{ "chap." }
-
-FUNCTION {bbl.techrep}
-%<!abr>{ "Technical Report" }
-%<abr>{ "Tech. Rep." }
-
-FUNCTION {bbl.mthesis}
-{ "Master's thesis" }
-
-FUNCTION {bbl.phdthesis}
-{ "Ph.D. thesis" }
-
-%<*!xedn>
-FUNCTION {bbl.first}
-%<!ord>{ "First" }
-%<ord>{ "1st" }
-
-FUNCTION {bbl.second}
-%<!ord>{ "Second" }
-%<ord>{ "2nd" }
-
-FUNCTION {bbl.third}
-%<!ord>{ "Third" }
-%<ord>{ "3rd" }
-
-FUNCTION {bbl.fourth}
-%<!ord>{ "Fourth" }
-%<ord>{ "4th" }
-
-FUNCTION {bbl.fifth}
-%<!ord>{ "Fifth" }
-%<ord>{ "5th" }
-
-FUNCTION {bbl.st}
-{ "st" }
-
-FUNCTION {bbl.nd}
-{ "nd" }
-
-FUNCTION {bbl.rd}
-{ "rd" }
-
-FUNCTION {bbl.th}
-{ "th" }
-%    \end{macrocode}
-% This function adds English endings for ordinals 1, 2, 3. However, if
-% the second last digit is 1, then the ending is `th' for all last digits.
-% So far, all other languages included do not have this problem, and it is
-% sufficient to add the \textsl{th} equivalent. This might change with further
-% languages.
-%
-%    \begin{macrocode}
-FUNCTION {eng.ord}
-{ duplicate$ "1" swap$ *
-  #-2 #1 substring$ "1" =
-     { bbl.th * }
-     { duplicate$ #-1 #1 substring$
-       duplicate$ "1" =
-         { pop$ bbl.st * }
-         { duplicate$ "2" =
-             { pop$ bbl.nd * }
-             { "3" =
-                 { bbl.rd * }
-                 { bbl.th * }
-               if$
-             }
-           if$
-          }
-       if$
-     }
-   if$
-}
-
-%</!xedn>
-%<*!abr>
-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"}
-
-%</!abr>
-%<*abr>
-MACRO {jan} {"Jan."}
-
-MACRO {feb} {"Feb."}
-
-MACRO {mar} {"Mar."}
-
-MACRO {apr} {"Apr."}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"Jun."}
-
-MACRO {jul} {"Jul."}
-
-MACRO {aug} {"Aug."}
-
-MACRO {sep} {"Sep."}
-
-MACRO {oct} {"Oct."}
-
-MACRO {nov} {"Nov."}
-
-MACRO {dec} {"Dec."}
-
-%</abr>
-%</!options&!driver>
- % End module: cjs-rcs-english.mbs
-%    \end{macrocode}
-% \Finale

Deleted: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-french.mbs
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-french.mbs	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-french.mbs	2024-07-14 20:14:08 UTC (rev 71799)
@@ -1,370 +0,0 @@
-% \iffalse meta-comment -*- mode: doctex -*-
-%
-% French language definition file of the master bibliography style for
-% The Canadian Journal of Statistics | La revue canadienne de
-% statistique
-%
-% Copyright (C) 2023 Statistical Society of Canada | Société
-% canadienne de statistique
-%
-% This file may be distributed and/or modified under the conditions
-% of the LaTeX Project Public License, either version 1.3c of this
-% license or (at your option) any later version. The latest version
-% of this license is in:
-%
-%   https://www.latex-project.org/lppl.txt
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Vincent Goulet
-% <vincent.goulet at act.ulaval.ca>.
-%
-% This work derives from french.mbs, part of the custom-bib
-% collection, a contribution to the LaTeX2e system.
-% Copyright 1994-2002 Patrick W Daly
-% Max-Planck-Institut f\"ur Sonnensystemforschung
-% Max-Planck-Str. 2
-% D-37191 Katlenburg-Lindau
-% Germany
-% E-mail: daly at mps.mpg.de
-%
- %-------------------------------------------------------------------
- % Begin module:
-%\fi
- % \ProvidesFile{cjs-rcs-french.mbs}[2023/11/29 v1.0 (VG, PWD)]
-%\iffalse
-%<*a&!a>
-% The following ensures that the driver part is not seen by makebst
-% The driver part must not contain any \end other than \end{document} !
-\ifx\endoptions\undefined\let\tempx=\relax\else
-  \long\def\tempx#1\end#2{}\fi\tempx
-%</a&!a>
-%<*driver>
-\NeedsTeXFormat{LaTeX2e}%
-\documentclass[nocjs,x11names,french,english]{cjs-rcs-article}
-
-  %% Loading doc.sty creates some conflicts with the class and memoir. We
-  %% need to:
-  %%
-  %% - keep a copy of the class' \maketitle command;
-  %% - undefine the 'glossary' environment created by memoir;
-  %% - restore the standard LaTeX commands for the glossary that
-  %%   doc.sty relies upon.
-  \let\makeCJStitle\maketitle   % keep class definition
-  \let\theglossary\relax        % avoid conflict with doc.sty
-  \let\endtheglossary\relax     % avoid conflict with doc.sty
-  \makeatletter
-  \def\makeglossary{%
-    \newwrite\@glossaryfile
-    \immediate\openout\@glossaryfile=\jobname.glo
-    \def\glossary{\@bsphack\begingroup
-                  \@sanitize
-                  \@wrglossary}\typeout
-      {Writing glossary file \jobname.glo }%
-    \let\makeglossary\@empty
-  }
-  \@onlypreamble\makeglossary
-  \def\@wrglossary#1{%
-     \protected at write\@glossaryfile{}%
-        {\string\glossaryentry{#1}{\thepage}}%
-   \endgroup
-   \@esphack}
-  \def\glossary{\@bsphack\begingroup\@sanitize\@index}
-  \@twosidefalse\@mparswitchfalse % turn off twoside option
-  \makeatother
-  \usepackage{doc}
-  \def\changes#1#2#3{\glossary{#1>#3}} % simplified
-  \DisableCrossrefs
-  \CodelineNumbered
-  \RecordChanges
-  \OnlyDescription
-  \DontCheckModules
-
-  \AtEndPreamble{%
-    \hypersetup{%
-      pdfauthor = {Statistical Society of Canada},
-      pdftitle = {French language definition file cjs-rcs-french.mbs}}}
-
-  %% Configuration of the glossary
-  \addto\extrasenglish{%
-    \def\glossaryname{Version history}}
-  \GlossaryPrologue{\section*{\glossaryname}%
-    \addcontentsline{toc}{section}{\glossaryname}}
-  \setlength{\GlossaryMin}{5cm}
-
-  %% Additional semantic typesetting
-  \newcommand*\class[1]{\textsf{#1}}
-  \newcommand*\dtx{\textsf{docstrip}}
-
-  %% Name of the journal
-  \makeatletter
-  \newcommand*\TheCJS{\@ifstar{\emph{The Journal}}{\emph{\CJS at journalname@en}}}
-  \newcommand*\LaRevue{\@ifstar{\emph{La revue}}{\emph{\CJS at journalname@fr}}}
-  \newcommand*\CJSclass{\class{cjs-rcs-article}}
-  \newcommand*\CJSbsten{\texttt{cjs-rcs-en.bst}}
-  \newcommand*\CJSbstfr{\texttt{cjs-rcs-fr.bst}}
-  \makeatother
-
-  %% Redefine \year using information from \filedate instead of using
-  %% compilation time
-  \def\parsedate#1/#2/#3\relax{\def\year{#1}}
-
-  \MakeShortVerb{\|}
-
-\begin{document}
-  \DocInput{cjs-rcs-french.mbs}
-\end{document}
-%</driver>
-% end of meta-comment \fi
-% \GetFileInfo{cjs-rcs-french.mbs}
-% \expandafter\parsedate\filedate\relax
-%
-% \changes{0.9}{2023-10-14}{Initial version based on version 4.2 of
-% \texttt{french.mbs} from \textbf{custom-bib}.}
-% \changes{0.93}{2023-11-06}{Add a prefix v in the version number like
-% the main file.}
-% \changes{1.0}{2023-11-29}{First official release distributed through
-% CTAN.}
-%
-% \title[French language definition file \filename]{%
-%   French language definition file \\
-%   of the master bibliographic style file \\
-%   for \TheCJS}
-% \author{Statistical Society of Canada}
-% \affil{Developed by Vincent Goulet, Université Laval}
-%
-% \begin{englishabstract}
-%   The list of references in {\TheCJS} is typeset using the
-%   bibliographic styles {\CJSbsten} for articles in English and
-%   {\CJSbstfr} for articles in French. These styles are created using
-%   the program \texttt{makebst} from the master bibliographic file
-%   \texttt{cjs-rcs-merlin.mbs}, and the language definition files
-%   \texttt{cjs-rcs-english.mbs} and \texttt{cjs-rcs-french.mbs}.
-% \end{englishabstract}
-% \begin{frenchabstract}
-%   La liste des références dans {\LaRevue} est composée avec les
-%   style de bibliographie {\CJSbstfr} pour les articles en français
-%   et {\CJSbsten} pour les articles en anglais. Ceux-ci sont générés
-%   par le programme \texttt{makebst} à partir du fichier maitre
-%   \texttt{cjs-rcs-merlin.mbs} et des fichiers de localisation
-%   \texttt{cjs-rcs-english.mbs} et \texttt{cjs-rcs-french.mbs}.
-% \end{frenchabstract}
-%
-% ^^A abusing the 'classification' environment. The final period is
-% ^^A added by the environment.
-% \begin{classification}[Version]
-% \item[] This is the documentation for the file \code{\filename}
-%   {\fileversion}, dated {\filedate}
-% \end{classification}
-%
-% \licence{{\year}, Statistical Society of Canada~{\textbar}~Société
-% canadienne de statistique}
-%
-% \makeCJStitle
-%
-% \section{Introduction}
-%
-% This file is to be used as a language definition file with the
-% master bibliographic file for {\TheCJS}. The language it defines is
-% French.
-%
-% This is not a self-sufficient \texttt{.mbs} file, but rather may
-% be used together with one that contains language support via
-% external definition files.
-%
-% See the documentation for \texttt{makebst} for formatting details.
-%
-% \section{The Menu Information}
-%
-% All the menu information is nested between \dtx{} guard options
-% |%<*options>| \dots\ |%</options>|, and the last command is
-% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>|
-% \dots\ |%</!options&!driver>| in order to exclude it if \dtx{} is used to
-% extract only the menu information or the documentation driver.
-%
-%    \begin{macrocode}
-%<*options>
-\mes{^^JOptions for FRENCH}
-\wr{\spsp\spsp french,\pc: French language}
-
-\beginoptiongroup{ABBREVIATE WORD `PAGES':}{}
-\optdef{*}{}{`Page(s)'}{(no abbreviation)}
-\optdef{a}{pp}{`Page' abbreviated}{as p. or pp.}
-\optdef{x}{ppx}{`Page' omitted}{}
-\getans
-\endoptiongroup
-\beginoptiongroup{ABBREVIATE WORD `EDITEUR:}{}
-\optdef{*}{}{`\string\'Editeur(s)'}{(no abbreviation)}
-\optdef{a}{ed}{`\string\'Editeur' abbreviated}{as \string\'Ed.}
-\getans
-\endoptiongroup
-\beginoptiongroup{OTHER ABBREVIATIONS:}{}
-\optdef{*}{}{No abbreviations}{of Tome, \string\'edition, chapitre}
-\optdef{a}{abr}{Abbreviations}{of such words}
-\getans
-\endoptiongroup
-\beginoptiongroup{EDITION NUMBERS:}{}
-\optdef{*}{xedn}{Editions as in database}{saving much processing memory}
-\optdef{w}{}{Write out editions}{as premi\string\`ere, deuxi\string\`eme,...}
-\optdef{n}{ord}{Numerical editions}{as 1re, 2e, 3e, etc}
-\getans
-\endoptiongroup
-\endoptions
-%</options>
-%    \end{macrocode}
-%
-% \StopEventually{\PrintChanges}
-%
-% \section{The Coding}
-%    \begin{macrocode}
-%<*!options&!driver>
-
- % The language selected here is FRENCH
-FUNCTION {bbl.and}
-{ "et"}
-
-FUNCTION {bbl.etal}
-{ "et~collab." }
-
-FUNCTION {bbl.editors}
-%<!ed>{ "directeurs" }
-%<ed>{ "dir." }
-
-FUNCTION {bbl.editor}
-%<!ed>{ "directeur" }
-%<ed>{ "dir." }
-
-FUNCTION {bbl.edby}
-{ "sous la direction de" }
-
-FUNCTION {bbl.edition}
-%<!abr>{ "\'edition" }
-%<abr>{ "\'ed." }
-
-FUNCTION {bbl.volume}
-%<!abr>{ "volume" }
-%<abr>{ "vol." }
-
-FUNCTION {bbl.of}
-{ "de" }
-
-FUNCTION {bbl.number}
-%<!abr>{ "num\'ero" }
-%<abr>{ "{\no}" }
-
-FUNCTION {bbl.nr}
-{ "{\no}" }
-
-FUNCTION {bbl.in}
-{ "dans" }
-
-FUNCTION {bbl.pages}
-%<!pp&!ppx>{ "pages" }
-%<pp>{ "p." }
-%<!pp&ppx>{ "" }
-
-FUNCTION {bbl.page}
-%<!pp&!ppx>{ "page" }
-%<pp>{ "p." }
-%<!pp&ppx>{ "" }
-
-%<*revdata>
-FUNCTION {bbl.eidpp}
-{ "pages" }
-
-%</revdata>
-FUNCTION {bbl.chapter}
-%<!abr>{ "chapitre" }
-%<abr>{ "chap." }
-
-FUNCTION {bbl.techrep}
-%<!abr>{ "rapport technique" }
-%<abr>{ "rapport technique" }
-
-FUNCTION {bbl.mthesis}
-{ "m\'emoire de ma\^itrise" }
-
-FUNCTION {bbl.phdthesis}
-{ "th\`ese de doctorat" }
-
-%<*!xedn>
-FUNCTION {bbl.first}
-%<!ord>{ "Premi\`ere" }
-%<ord>{ "1{\iere}" }
-
-FUNCTION {bbl.second}
-%<!ord>{ "Deuxi\`eme" }
-%<ord>{ "2{\ieme}" }
-
-FUNCTION {bbl.third}
-%<!ord>{ "Troisi\`eme" }
-%<ord>{ "3{\ieme}" }
-
-FUNCTION {bbl.fourth}
-%<!ord>{ "Quatri\`eme" }
-%<ord>{ "4{\ieme}" }
-
-FUNCTION {bbl.fifth}
-%<!ord>{ "Cinqui\`eme" }
-%<ord>{ "5{\ieme}" }
-
-FUNCTION {bbl.th}
-{ "{\ieme}" }
-
-%</!xedn>
-%<*!abr>
-MACRO {jan} {"janvier"}
-
-MACRO {feb} {"f\'evrier"}
-
-MACRO {mar} {"mars"}
-
-MACRO {apr} {"avril"}
-
-MACRO {may} {"mai"}
-
-MACRO {jun} {"juin"}
-
-MACRO {jul} {"juillet"}
-
-MACRO {aug} {"ao\^ut"}
-
-MACRO {sep} {"septembre"}
-
-MACRO {oct} {"octobre"}
-
-MACRO {nov} {"novembre"}
-
-MACRO {dec} {"d\'ecembre"}
-
-%</!abr>
-%<*abr>
-MACRO {jan} {"jan."}
-
-MACRO {feb} {"f\'ev."}
-
-MACRO {mar} {"mars"}
-
-MACRO {apr} {"avr."}
-
-MACRO {may} {"mai"}
-
-MACRO {jun} {"juin"}
-
-MACRO {jul} {"juil."}
-
-MACRO {aug} {"ao\^ut"}
-
-MACRO {sep} {"sept."}
-
-MACRO {oct} {"oct."}
-
-MACRO {nov} {"nov."}
-
-MACRO {dec} {"d\'ec."}
-
-%</abr>
-%</!options&!driver>
- % End module: cjs-rcs-french.mbs
-%    \end{macrocode}
-% \Finale

Deleted: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-merlin.mbs
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-merlin.mbs	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-merlin.mbs	2024-07-14 20:14:08 UTC (rev 71799)
@@ -1,8009 +0,0 @@
-% \iffalse meta-comment -*- mode: doctex -*-
-%
-% Master bibliography style for The Canadian Journal of Statistics |
-% La revue canadienne de statistique
-%
-% Copyright (C) 2023 Statistical Society of Canada | Société
-% canadienne de statistique
-%
-% This file may be distributed and/or modified under the conditions
-% of the LaTeX Project Public License, either version 1.3c of this
-% license or (at your option) any later version. The latest version
-% of this license is in:
-%
-%   https://www.latex-project.org/lppl.txt
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Vincent Goulet
-% <vincent.goulet at act.ulaval.ca>.
-%
-% This work derives from merlin.mbs, part of the custom-bib
-% collection, a contribution to the LaTeX2e system.
-% Copyright 1994-2011 Patrick W Daly
-% Max-Planck-Institut f\"ur Sonnensystemforschung
-% Max-Planck-Str. 2
-% D-37191 Katlenburg-Lindau
-% Germany
-% E-mail: daly at mps.mpg.de
-%
-%<*!tail>
-% (The following notice appears in bst files generated from this file)
- % -------------------------------------------------------------------
- % Name and version information of the main mbs file:
-%\fi
- % \ProvidesFile{cjs-rcs-merlin.mbs}[2023/11/29 v1.0 (VG, PWD, AO, DPC)]
-%\iffalse
-%</!tail>
-%<*a&!a>
-% The following ensures that the driver part is not seen by makebst
-% The driver part must not contain any \end other than \end{document} !
-\ifx\endoptions\undefined\let\tempx=\relax\else
-  \long\def\tempx#1\end#2{}\fi\tempx
-%</a&!a>
-%<*driver>
-\NeedsTeXFormat{LaTeX2e}%
-\documentclass[nocjs,x11names,french,english]{cjs-rcs-article}
-  \usepackage{metalogo}
-  \setlrmarginsandblock{40mm}{30mm}{*} % increase left margin
-  \checkandfixthelayout
-
-  %% Loading doc.sty creates some conflicts with the class and memoir. We
-  %% need to:
-  %%
-  %% - keep a copy of the class' \maketitle command;
-  %% - undefine the 'glossary' environment created by memoir;
-  %% - restore the standard LaTeX commands for the glossary that
-  %%   doc.sty relies upon.
-  \let\makeCJStitle\maketitle   % keep class definition
-  \let\theglossary\relax        % avoid conflict with doc.sty
-  \let\endtheglossary\relax     % avoid conflict with doc.sty
-  \makeatletter
-  \def\makeglossary{%
-    \newwrite\@glossaryfile
-    \immediate\openout\@glossaryfile=\jobname.glo
-    \def\glossary{\@bsphack\begingroup
-                  \@sanitize
-                  \@wrglossary}\typeout
-      {Writing glossary file \jobname.glo }%
-    \let\makeglossary\@empty
-  }
-  \@onlypreamble\makeglossary
-  \def\@wrglossary#1{%
-     \protected at write\@glossaryfile{}%
-        {\string\glossaryentry{#1}{\thepage}}%
-   \endgroup
-   \@esphack}
-  \def\glossary{\@bsphack\begingroup\@sanitize\@index}
-  \@twosidefalse\@mparswitchfalse % turn off twoside option
-  \makeatother
-  \usepackage{doc}
-  \def\changes#1#2#3{\glossary{#1>#3}} % simplified
-  \DisableCrossrefs
-  \CodelineNumbered
-  \RecordChanges
-  \OnlyDescription
-  \DontCheckModules
-
-  \AtEndPreamble{%
-    \hypersetup{%
-      pdfauthor = {Statistical Society of Canada},
-      pdftitle = {Master bibliographic style cjs-rcs-merlin.mbs}}}
-
-  %% Configuration of the glossary
-  \addto\extrasenglish{%
-    \def\glossaryname{Version history}}
-  \GlossaryPrologue{\section*{\glossaryname}%
-    \addcontentsline{toc}{section}{\glossaryname}}
-  \setlength{\GlossaryMin}{5cm}
-
-  %% Additional semantic typesetting
-  \newcommand*\class[1]{\textsf{#1}}
-  \newcommand*\btx{\textsc{Bib}\TeX}
-  \newcommand*\dtx{\textsf{docstrip}}
-
-  %% Name of the journal
-  \makeatletter
-  \newcommand*\TheCJS{\@ifstar{\emph{The Journal}}{\emph{\CJS at journalname@en}}}
-  \newcommand*\LaRevue{\@ifstar{\emph{La revue}}{\emph{\CJS at journalname@fr}}}
-  \newcommand*\CJSclass{\class{cjs-rcs-article}}
-  \newcommand*\CJSbsten{\texttt{cjs-rcs-en.bst}}
-  \newcommand*\CJSbstfr{\texttt{cjs-rcs-fr.bst}}
-  \makeatother
-
-  %% Redefine \year using information from \filedate instead of using
-  %% compilation time
-  \def\parsedate#1/#2/#3\relax{\def\year{#1}}
-
-  \MakeShortVerb{\|}
-
-\begin{document}
-  \DocInput{cjs-rcs-merlin.mbs}
-\end{document}
-%</driver>
-% end of meta-comment \fi
-% \GetFileInfo{cjs-rcs-merlin.mbs}
-% \expandafter\parsedate\filedate\relax
-%
-% \changes{0.9}{2023-10-14}{Initial version based on version 4.33 of
-% \texttt{merlin.mbs}.}
-% \changes{0.92}{2023-10-27}{Relegate the \texttt{makebst} menu
-% information to the complete documentation.}
-% \changes{0.93}{2023-11-06}{Add a prefix v in the version number like
-% the main file.}
-% \changes{1.0}{2023-11-29}{First official release distributed through
-% CTAN.}
-%
-% \title[Master bibliographic style file \filename]{%
-%   Master bibliographic style file \\
-%   of \TheCJS}
-% \author{Statistical Society of Canada}
-% \affil{Developed by Vincent Goulet, Université Laval}
-%
-% \begin{englishabstract}
-%   The list of references in {\TheCJS} is typeset using the
-%   bibliographic styles {\CJSbsten} for articles in English and
-%   {\CJSbstfr} for articles in French. These styles are created using
-%   the program \texttt{makebst} from the master bibliographic file
-%   \texttt{cjs-rcs-merlin.mbs}, and the language definition files
-%   \texttt{cjs-rcs-english.mbs} and \texttt{cjs-rcs-french.mbs}.
-% \end{englishabstract}
-% \begin{frenchabstract}
-%   La liste des références dans {\LaRevue} est composée avec les
-%   style de bibliographie {\CJSbstfr} pour les articles en français
-%   et {\CJSbsten} pour les articles en anglais. Ceux-ci sont générés
-%   par le programme \texttt{makebst} à partir du fichier maitre
-%   \texttt{cjs-rcs-merlin.mbs} et des fichiers de localisation
-%   \texttt{cjs-rcs-english.mbs} et \texttt{cjs-rcs-french.mbs}.
-% \end{frenchabstract}
-%
-% ^^A abusing the 'classification' environment. The final period is
-% ^^A added by the environment.
-% \begin{classification}[Version]
-% \item[] This is the documentation for the file \code{\filename}
-%   {\fileversion}, dated {\filedate}
-% \end{classification}
-%
-% \licence{{\year}, Statistical Society of Canada~{\textbar}~Société
-% canadienne de statistique}
-%
-% \makeCJStitle
-%
-% \section{Introduction}
-%
-% The class {\CJSclass} typesets manuscripts immediately in accordance
-% with the presentation rules of {\TheCJS}. The class uses its own
-% bibliographic styles: {\CJSbsten} for articles in English, and
-% {\CJSbstfr} for articles in French. The style {\CJSbsten} could best
-% be described as ``not unlike \code{apalike}'', whereas {\CJSbstfr}
-% is closely derived from the style \code{francais} provided by the
-% package %
-% \href{https://ctan.org/pkg/francais-bst}{\pkg{francais-bst}}.
-%
-% The styles were originally generated using the program
-% \code{makebst} by Patrick W.~Daly. The master bibliographic style
-% and the language definition files are heavily based on their
-% counterparts of the package %
-% \href{https://ctan.org/pkg/custom-bib}{\pkg{custom-bib}}, %
-% namely \code{merlin.mbs}, \code{english.mbs}, and \code{french.mbs}.
-%
-% \section{Generation of the bibliographic styles}
-% \label{sec:generation}
-%
-% The English style {\CJSbsten} is produced from this master
-% bibliographic style file and the language definition file
-% \code{cjs-rcs-english.mbs} by running the driver
-% \code{cjs-rcs-bst-en.dbj} through {\LaTeX}:
-% \begin{quote}
-%   \code{latex cjs-rcs-bst-en.dbj}
-% \end{quote}
-% The French style {\CJSbstfr} is produced similarly using the driver
-% \code{cjs-rcs-bst-fr.dbj}:
-% \begin{quote}
-%   \code{latex cjs-rcs-bst-fr.dbj}
-% \end{quote}
-%
-% \section{Changes compared to \texorpdfstring{\code{merlin.mbs}}{merlin.mbs}}
-% \label{sec:changes}
-%
-% The master bibliographic style \code{\filename} introduces the following
-% changes compared to \code{merlin.mbs}.
-%
-% \begin{enumerate}
-% \item The function \code{format.url} is reworked to provide a
-%   cleaner URL for digital object identifiers (DOIs). The
-%   \code{merlin.mbs} definition would generate a DOI of the form
-%   \begin{quote}
-%     URL \texttt{http://dx.doi.org/\meta{doi}}
-%   \end{quote}
-%   The revised definition instead generates the simpler string
-%   \begin{quote}
-%     doi: \meta{doi}
-%   \end{quote}
-%   When the package \pkg{hyperref} is loaded, \meta{doi} is a
-%   hyperlink to the now recommended URL
-%   \code{https://doi.org/\meta{doi}}. This behaviour relies on a
-%   command \cmd{\urldoi} provided in the \texttt{.bbl} file. If
-%   needed, this command may be redefined by the user.
-% \item The command \cmd{\urlprefix} is empty. Again, this may be
-%   redefined by the user.
-% \item The quotes «~» are typeset by the macro \cmd{\frquote} of
-%   \pkg{babel-french} (version $\geq$ 3.1), rather than by the custom
-%   commands \cmd{\guillemotleft} and \cmd{\guillemotright}.
-% \item The \code{makebst} menu information is only included in the
-%   complete documentation. The latter is obtained by commenting out
-%   the command \cmd{\OnlyDescription} in \code{\filename} and
-%   compiling the file with {pdf\LaTeX} or {\XeLaTeX}.
-% \end{enumerate}
-%
-% \StopEventually{\PrintChanges}
-%
-% \begin{quote}
-%   \itshape From this point on, the documentation is taken without
-%   modification from \code{merlin.mbs} by Patrick W.~Daly, but for
-%   minute details such as filenames.
-% \end{quote}
-%
-% \section{The Menu Information}\label{sec:menu}
-%
-% Here I describe the options and menu information for this particular
-% master file \texttt{\filename}. To construct a \dtx{} driver file
-% to generate a desired \texttt{.bst} file, simply process \texttt{makebst.tex}
-% with \TeX\ or \LaTeX, and give
-% \begin{quote}\code{\filename}\end{quote}
-% when prompted for the name of the master file. Then answer the questions
-% in the menus that follow. The menu information is extracted from here.
-%
-% All the menu information is nested between \dtx{} guard options
-% |%<*options>| \dots\ |%</options>|, and the last command is
-% |\endoptions|. The rest of the file is nested between
-% \begin{quote}
-%   |%<*!options&!driver&!bblbst>| \dots\ |</!options&!driver&!bblbst>|
-% \end{quote}
-% in order to exclude it if \dtx{} is used to
-% extract the menu information, the documentation driver, or the
-% \texttt{babelbst.tex} file.
-%
-% The main coding is divided into two sections, the \emph{head} and
-% \emph{tail}; in between come any external language or journal name
-% support files. The head part is marked with the \dtx{} guard option
-% |<!tail>| and the tail with |<!head>|. This roundabout means of
-% doing things makes it possible to process \texttt{\filename} with
-% \texttt{.dbj} files that were generated for the older
-% \texttt{genbst.mbs} file by simply changing the name of the source
-% file. If both \texttt{head} and \texttt{tail} (and \texttt{exlang})
-% options are omitted, as they are in the older \texttt{.dbj} files,
-% \texttt{\filename} is processed completely in one pass. To include
-% external files, two passes are needed, one for each part, with the
-% external file(s) coming in between.
-%
-% Note too that if the internal language commands are taken (i.e., if
-% \texttt{exlang} option is not given) then the default language is
-% English, which is tested for as |<!babel>|. This too permits the simple
-% update of older \texttt{.dbj}, at least for English.
-%
-% \subsection*{Selecting Language}
-% Explicit words in the bibliography style, such as \textsl{and},
-%      \textsl{editor}, etc.,
-% are represented by functions \texttt{bbl.and}, \texttt{bbl.editor}, and so on.
-% By default these functions translate to the normal English text, but
-% other languages are also possible.
-%
-% The definitions of these functions for other languages are contained in
-% external files. At this point, we can make use of features in
-% \texttt{makebst} (version~3.0 or later) to ask for the name of such a
-% definition file, and store it in |\cfile|. If no external file is
-% specified, then the internal definitions are taken, for which there are
-% two possibilities: English or \LaTeX{} commands (Babel).
-%
-% The commands |\MBswitch|, |\mes|, |\MBaskfile|, |\wr|, |\pc|, |\spsp| are
-% defined in \texttt{makebst.tex}.
-%
-% If |\MBswitch| does not exist, then the version of \texttt{makebst}
-% cannot support external files.
-%
-%    \begin{macrocode}
-%<*options>
-\expandafter\ifx\csname beginoptiongroup\endcsname\relax
- \mes{^^J******************^^J%
-        !!!!!! VERSION CLASH !!!!!!!!!^^J%
-        This mbs file requires makebst version 4.0 or more^^J%
-        You must update makebst to run it with this mbs file^^J%
-        No docstrip batch file can be produced on this run^^J%
-         ******************}
- \let\temp\endinput\else\let\temp\relax\fi\temp
-
-\newif\ifnumerical
-\newif\ifmytemp
-\mes{<<< For more information about the meanings of^^J%
-     <<< the various options, see the section on ^^J%
-     <<< Menu Information in the .mbs file documentation.}
-
-\umes{EXTERNAL FILES:}
-\expandafter\ifx\csname MBswitch\endcsname\relax
- \mes{^^J**************^^J%
-        Makebst version is less than 3.0^^J%
-        Cannot add external file for language definition^^J%
-        **************}
- \umes{No included files.}%
- \def\cfile{}\def\jfile{}%
-\else
- \MBaskfile{^^JName of language definition file}(\mroot.\mext)i\cfile
- \edef\ctemp{\mroot.\mext}
- \ifx\ctemp\cfile\def\cfile{}\fi
- \umes{Name of language file: \string\cfile=\cfile.}%
-%    \end{macrocode}
-%
-% A second type of external file that can be added is one containing names
-% of journals that are to be prestored into the \texttt{.bst} file.
-% Several file names are allowed here, with the root names separated by
-% commas, and with the common extension added at the end. To assist later
-% parsing of the names, an additional comma is added before the extension.
-%
-% Note that in this case |\MBaskfile| treats the file(s) as output, i.e.,
-% it does not check if the file(s) actually exist.
-%
-% The macro |\Mgetnext| allows the root names to be extracted from the
-% list of file names.
-%    \begin{macrocode}
- \def\jfile{}
- \ask{\yn}{^^JInclude file(s) for extra journal names? (NO)}
- \mytempfalse
- \if!\yn!\else\if\yn n\else\if\yn N\else\mytemptrue\fi\fi\fi
- \ifmytemp
-  \MBaskfile{^^JFile to include}(physjour,geojour,photjour.mbs)o\jfile
-  \edef\jfile{\froot,.\fext}
-  \umes{Name of included files: \string\jfile=\jfile.}%
- \else
-  \umes{No included files.}%
- \fi
-\fi%MBswitch
-\def\Mgetnext#1,#2.#3??{\def\froot{#1}\def\Mrest{#2}\def\fext{#3}}
-%    \end{macrocode}
-%
-% If no external files are specified, then both |\cfile| and |\jfile| are
-% empty. In this case, do \emph{not} set the options \texttt{head} and
-% \texttt{tail}, which control the \dtx{} passes through
-% \texttt{filename}. Now only one pass is made.
-%
-% If there is an external definition file, or an external list of
-% journal names, then some extra text must be
-% written to fit in with that already written by \texttt{makebst}. This is
-% explained in that documentation. The |\MBswitch| command turns the curly
-% braces |{..}| into normal characters, and the parentheses |(..)| take on
-% their grouping functionality. This permits unbalanced braces to be
-% written to the output file.
-%
-%    \begin{macrocode}
-\if!\cfile\jfile!\else
- \begingroup\MBswitch
-  \wr(\spsp head,\string\MBopta})
-  \if!\cfile!\else
-   \wr(\string\from{\cfile}{\string\MBopta})
-  \fi
-  \if!\jfile!\else
-   \let\jxfile\jfile
-   \loop
-%    \end{macrocode}
-%
-% Parse the list of journal name files, adding a new |\from| for each one.
-%
-%    \begin{macrocode}
-    \expandafter\Mgetnext\jxfile??
-    \wr(\string\from{\froot.\fext}{\string\MBopta})
-    \edef\jxfile(\Mrest.\fext)
-    \if!\Mrest!\def\Mtst(1)\else\def\Mtst()\fi
-   \if!\Mtst!
-   \repeat
-  \fi
-  \wr(\string\from{\mroot.\mext}{tail,\string\MBopta}})
-  \wr(\string\def\string\MBopta{\pc)
- \endgroup
-\fi
-%    \end{macrocode}
-%
-% Ask whether there is a need for
-% explicit English words or \LaTeX{} commands whose definitions are
-% to be found in the file \texttt{babelbst.tex}.
-%
-%    \begin{macrocode}
-\beginoptiongroup{INTERNAL LANGUAGE SUPPORT
- (if no external language file)}%
- {\if!\cfile!\relax*\fi}%
-\optdef{*}{}{English}{words used explicitly}
-\optdef{b}{babel}{Babel}
-    {(words replaced by commands defined in babelbst.tex)}
-\getans
-\endoptiongroup
-\if!\cfile!\relax\else
-\wr{\spsp\spsp exlang,\pc: External language file}
-\fi
-%    \end{macrocode}
-%
-% \subsection*{Author--year or numerical}
-% The first question is whether a numerical or author--year citation
-% style is to be used. If the latter, the supporting system is my
-% \code{natbib.sty}, which expects |\bibitem| to have an optional
-% argument containing the short form of the authors, plus year in
-% parentheses. E.g.,
-% \begin{quote}
-% |\bibitem[Daly et al.(1990)]{key}...|
-% \end{quote}
-% There is now a newer version of \texttt{natbib.sty} (v5.3) that
-% supports an optional full author list too, as
-% \begin{quote}
-% |\bibitem[Daly et al.(1990)Daly, Keppler, and Williams]{key}...|
-% \end{quote}
-% Other systems are also supported, such as the Harvard family of
-% bibliography styles (with \texttt{harvard.sty}), which have entries in the
-% form
-% \begin{quote}
-% |\harvarditem[Daly et al.]{Daly, Keppler,|\\
-% |       and Williams}{1990}{key}...|
-% \end{quote}
-% or the astronomy family (with \texttt{astron.sty}) with entries like
-% \begin{quote}
-% |\bibitem[\protect\astroncite{Daly et al.}{1990}]{key}...|
-% \end{quote}
-% or the Chicago family (with \texttt{chicago.sty}) with entries like
-% \begin{quote}
-% |\bibitem[\protect\citeautheryear{Daly, Keppler, and|\\
-% |      Williams}{Daly et al.}{1990}]{key}...|
-% \end{quote}
-% or the `named' variant of Chicago (with \texttt{named.sty}) with entries like
-% \begin{quote}
-% |\bibitem[\protect\citeauthoryear{Daly et al.}{1990}]{key}...|
-% \end{quote}
-% or the so-called ``author--date'' group (with \texttt{authordate1-4.sty})
-% with entries of the form
-% \begin{quote}
-% |\bibitem[\protect\citename{Daly et al.}1990]{key}...|
-% \end{quote}
-% Finally, there is the \texttt{apalike} format of Oren Patashnik, for use
-% with \texttt{apalike.sty} that has entries of the form
-% \begin{quote}
-% |\bibitem[Daly et al., 1990]{key}...|
-% \end{quote}
-%
-% In addition to numerical or author--year citation styles, there is also a
-% \texttt{cite} style available in which the label is the same as the cite
-% key. This is for listing entire contents of databases with the cite key
-% visible.
-%
-% A flag |\ifnumerical| is established because some of the following menu
-% features depend on which system is to be used.
-%
-% The \texttt{alph} option produces labels as in \texttt{alpha.bst}; options
-% \texttt{alf-1} and \texttt{alf-f} modify these. Standard is: first three
-% letters of the single author (Dal90 for Daly, 1990) and first letters of
-% first three authors (DK90 for Daly and Kopka, 1990). Alternatives are first
-% three letters of the first author, no matter how many authors there are, and
-% full name of first author.
-%    \begin{macrocode}
-\beginoptiongroup{STYLE OF CITATIONS:}{}
-\optdef{*}{}{Numerical}{as in standard LaTeX}
-\optdef{a}{ay}{Author-year}{with some non-standard interface}
-\optdef{b}{alph}{Alpha style, Jon90 or JWB90}{for single or multiple authors}
-\optdef{o}{alph,alf-1}{Alpha style, Jon90}{even for multiple authors}
-\optdef{f}{alph,alf-f}{Alpha style, Jones90}{(full name of first author)}
-\optdef{c}{cite}{Cite key}{(special for listing contents of bib file)}
-\getans
-\endoptiongroup
-\if\ans a\numericalfalse\else\numericaltrue\fi
-\if\ans b\mytempfalse   \else\mytemptrue   \fi
-\beginoptiongroup{HTML OUTPUT
- (if non author-year citations)}
- {\ifnumerical*\fi}
-\optdef{*}{}{Normal LaTeX}{output}
-\optdef{h}{html}{Hypertext}{output, in HTML code, in paragraphs}
-\optdef{n}{html,htlist}{Hypertext list}{with sequence numbers}
-\optdef{k}{html,htdes}{Hypertext with keys}{for viewing databases}
-\getans
-\endoptiongroup
-\beginoptiongroup{AUTHOR--YEAR SUPPORT SYSTEM
- (if author-year citations)}
- {\ifnumerical\else*\fi}
-\optdef{*}{nat}{Natbib}{for use with natbib v5.3 or later}
-\optdef{o}{}{Older Natbib}{without full authors citations}
-\optdef{l}{alk}{Apalike}{for use with apalike.sty}
-\optdef{h}{har}{Harvard}{system with harvard.sty}
-\optdef{a}{ast}{Astronomy}{system with astron.sty}
-\optdef{c}{cay}{Chicago}{system with chicago.sty}
-\optdef{n}{nmd}{Named}{system with named.sty}
-\optdef{d}{cn}{Author-date}{system with authordate1-4.sty}
-\getans
-%    \end{macrocode}
-% The \texttt{harvard} family has been extended for \LaTeXe, and the new
-% \texttt{.bst} files allow the word \textsl{and} and the brackets around years
-% to be variable with commands. These features may be added too.
-% The URL field used to be exclusively part of Harvard, but now exists
-% independently of it too.
-%
-%    \begin{macrocode}
-\beginoptiongroup{HARVARD EXTENSIONS INCLUDED
- (if Harvard support selected)}
- {\if\ans h*\fi}%
-\optdef{*}{harnm}{With Harvard extensions}{for LaTeX2e version of harvard.sty}
-\optdef{n}{}{Older Harvard}{style, for LaTeX 2.09}
-\getans
-\endoptiongroup
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Language switching}
-% A \texttt{language} field can be present to specify the original language of
-% the reference; with \verb!\setlanguage!, the hyphenation patterns are set for
-% setting the title in that language.
-%    \begin{macrocode}
-\beginoptiongroup{LANGUAGE FIELD}{}
-\optdef{*}{}{No language field}{}
-\optdef{l}{lang}{Add language field}{to switch hyphenation patterns temporarily}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Annotations}
-% Annotations to a reference are additional information not normally printed
-% out in the list of references. They are used for listing databases.
-% The coding here was offered by Soren Dayton.
-%    \begin{macrocode}
-\beginoptiongroup{ANNOTATIONS:}{}
-\optdef{*}{}{No annotations}{will be recognized}
-\optdef{a}{annote}{Annotations}{in annote field or in .tex file of citekey name}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Presentations}
-% Presentations are talks at meetings, oral or poster, that are not otherwise
-% published. The author making the presentation is indicated with the \texttt{key}
-% entry, which is the speaker's number within the author list. The font used
-% to highlight the speaker is either bold or italics, depending on the secondary
-% option, otherwise not highlighted.
-%    \begin{macrocode}
-\beginoptiongroup{PRESENTATIONS:}{}
-\optdef{*}{}{Do not add presentation type}{for conference talks}
-\optdef{p}{pres}{Add presentation, speaker not highlighted}{}
-\optdef{b}{pres,pres-bf}{Presentation, speaker bold face}{}
-\optdef{i}{pres,pres-it}{Presentaion, speaker italic}{}
-\optdef{c}{pres,pres-sc}{Presentaion, speaker in small caps}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Ordering of the listed references}
-%   Choices here depend on citation style. The default in both cases is
-% alphabetical order of all authors. For numerical style, one may also
-% choose an unsorted order, which means the order is the same as the original
-% citations. This corresponds to \texttt{unsrt.bst}. Order of citation is
-% also offered for author--year for \texttt{natbib}-type styles that can
-% also be used for numerical listings.
-%
-% Another possibility is to order first by year, then authors. This too only
-% makes sense for numerical citations. However, it is offered for author--year
-% in the event that a \texttt{natbib}-type style is used for numerical
-% listings.
-%
-% For the alpha style, the ordering is by label only, so no option is
-% offered here (|\ifnumerical| is \meta{true} and |\ifmytemp| is \meta{false}).
-%
-% For author--year, the second choice is by label. (The label is the
-% optional |\bibitem| argument, and is what is printed in place of the
-% |\cite| command.) With this option, all the papers with the same first
-% author are ordered so that the one-author papers come first, followed by
-% the two-author papers, followed by the multiple-author papers. This is a
-% more sensible system for author--year citations, and is demanded by some
-% journals (like JGR).
-%
-% One problem that can arise here is when two or more references have the
-% same set of authors and year; normally they are then ordered by the
-% title, ignoring initial words like \textsl{the} and \textsl{a}, with the
-% letters a, b,
-% c, \dots, added to the year. This can mean that a set of references with
-% a natural sequence will be put into a different order. An alternative is
-% to order them by the citation keyword instead of by title. This of course
-% assumes that the keywords in this case reflect that natural sequence.
-%    \begin{macrocode}
-\let\ans\relax
-\beginoptiongroup{ORDERING OF REFERENCES
- (if non-author/year and non-alph)}
- {\ifnumerical\ifmytemp*\fi\fi}%
-\optdef{*}{}{Alphabetical}{by all authors}
-\optdef{c}{seq-no}{Citation order}{(unsorted, like unsrt.bst)}
-\optdef{d}{seq-yr}{Year ordered}{and then by authors}
-\optdef{r}{seq-yrr}{Reverse year ordered}{and then by authors}
-\getans
-\endoptiongroup
-%
-\beginoptiongroup{ORDERING OF REFERENCES
- (if author-year citations)}
- {\ifnumerical\else*\fi}%
-\optdef{*}{}{Alphabetical}{by all authors}
-\optdef{l}{seq-lab}{By label}%
-   {(Jones before Jones and James before Jones et al)}
-\optdef{m}{seq-labc}{By label and cite order}%
-   {(like above but all Jones et al ordered as cited)}
-\optdef{k}{seq-key}{By label and cite key}{instead of label and title, as above}
-\optdef{d}{seq-yr}{Year ordered}{and then by authors (for publication lists)}
-\optdef{r}{seq-yrr}{Reverse year ordered}{and then by authors (most recent first)}
-\optdef{c}{seq-no}{Citation order}{(unsorted, only meaningful for numericals)}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-% The standard \btx\ styles consider the \emph{von} part of the name to be a
-% fixed part of the surname. European usage tends to alphabetize ignoring these
-% honorifics.
-%    \begin{macrocode}
-\beginoptiongroup{ORDER ON VON PART
- (if not citation order)}
- {\if\ans c\else*\fi}%
-\optdef{*}{}{Sort on von part}{(de la Maire before Defoe)}
-\optdef{x}{vonx}{Sort without von part}{(de la Maire after Mahone)}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% Sorting normally treats authors with the same surname but different initials
-% or first name separately; but a strict ordering by cite label would lump all
-% Smiths together.
-%    \begin{macrocode}
-\beginoptiongroup{IGNORE FIRST NAMES (if author-year citations)}
-  {\ifnumerical\else*\fi}%
-\optdef{*}{}{Respect first names}{or initials, treat as different authors}
-\optdef{x}{xintls}{Sort on surname only}{and treat all Smiths as one}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Formatting author names}
-% The default is that the full names of the authors are listed, given names
-% first, unabbreviated. Of course, if only the initials have been given in
-% the \texttt{.bib} file, then that is all that can appear in the list. Other
-% possibilities are to use initials (even if full names in the \texttt{.bib}
-% file) either before or after the surnames. A specialty of the journals of
-% the American Geophysical Union is to have only the first name with
-% reversed initials.
-%
-% If the reference is part of a larger work with editors, then the editor
-% names appear later in the reference text, usually as ``edited by \dots''
-% or as ``\emph{names} (editors)''. In these cases, the editor names are
-% not usually reversed (surname first) even if the authors' names are.
-% An option is provided to format such editor names exactly as the authors'.
-%    \begin{macrocode}
-\beginoptiongroup{AUTHOR NAMES:}{}
-\optdef{*}{ed-au}{Full, surname last}{(John Frederick Smith)}
-\optdef{f}{nm-revf}{Full, surname first}{(Smith, John Frederick)}
-\optdef{i}{nm-init,ed-au}{Initials + surname}{(J. F. Smith)}
-\optdef{r}{nm-rev}{Surname + initials}{(Smith, J. F.)}
-\optdef{s}{nm-rv}{Surname + dotless initials}{(Smith J F)}
-\optdef{w}{nm-rvvc}{Surname + comma + spaceless initials}{(Smith, J.F.)}
-\optdef{x}{nm-rvx}{Surname + pure initials}{(Smith JF)}
-\optdef{y}{nm-rvcx}{Surname + comma + pure initials}{(Smith, JF)}
-\optdef{z}{nm-rvv}{Surname + spaceless initials}{(Smith J.F.)}
-\optdef{a}{nm-rev1}{Only first name reversed, initials}%
-   {(AGU style: Smith, J. F., H. K. Jones)}
-\optdef{b}{nm-revv1}{First name reversed, with full names}%
-   {(Smith, John Fred, Harry Kab Jones)}
-\getans
-\endoptiongroup
-\mytempfalse
-\if\ans f\mytemptrue\fi
-\if\ans r\mytemptrue\fi
-\if\ans s\mytemptrue\fi
-\if\ans x\mytemptrue\fi
-\if\ans y\mytemptrue\fi
-\if\ans a\mytemptrue\fi
-\if\ans b\mytemptrue\fi
-\beginoptiongroup{EDITOR NAMES IN COLLECTIONS
- (if author names reversed)}
- {\ifmytemp*\fi}
-\if\ans r
-\optdef{*}{}{Editor names NOT reversed}{as edited by J. J. Smith}
-\fi
-\if\ans s
-\optdef{*}{}{Editor names NOT reversed}{as edited by J J Smith}
-\fi
-\if\ans a
-\optdef{*}{}{Editor names NOT reversed}{as edited by J. J. Smith}
-\fi
-\if\ans x
-\optdef{*}{}{Editor names NOT reversed}{as edited by JJ Smith}
-\fi
-\if\ans f
-\optdef{*}{}{Editor names NOT reversed}{as edited by John James Smith}
-\fi
-\if\ans y
-\optdef{*}{}{Editor names NOT reversed}{as edited by J.J. Smith}
-\fi
-\if\ans b
-\optdef{*}{}{Editor names NOT reversed}{as edited by John James Smith}
-\fi
-\optdef{r}{ed-rev}{Editor names reversed}{just like authors'}
-\getans
-\beginoptiongroup{POSITION OF JUNIOR
-  (if author names reversed)}
-  {}
-\optdef{*}{jnrlst}{Junior comes last}{as Smith, John, Jr.}
-\optdef{m}{}{Junior between}{as Smith, Jr., John}
-\getans
-\endoptiongroup
-\endoptiongroup
-
-\beginoptiongroup{JUNIOR PART IN THE CITATION
- (if author-year citations)}
- {\ifnumerical\else*\fi}%
-\optdef{*}{}{No `junior' part in the citations}{but in the ref listing}
-\optdef{j}{jnrlab}{`Junior' in citations}{as well as in ref listing}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{PUNCTUATION BETWEEN AUTHOR NAMES:}{}
-\optdef{*}{}{Author names separated by commas}{}
-\optdef{s}{aunm-semi}{Names separated by semi-colon}{}
-\optdef{h}{aunm-sl}{Names separated by slash}{/}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{ADJACENT REFERENCES WITH REPEATED NAMES:}{}
-\optdef{*}{}{Author/editor names always present}{}
-\optdef{d}{nmdash}{Repeated author/editor names replaced by dash}{}
-\optdef{2}{nmdash,nmd-2}{Repeated author/editor names replaced by 2 dashes}{}
-\optdef{3}{nmdash,nmd-3}{Repeated author/editor names replaced by 3 dashes}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Number of authors}
-% Normally the complete list of authors as given in the \texttt{.bib} file is
-% presented in the reference list. However, some journals prefer to limit
-% them to a maximum. If there are more than this maximum number of author
-% names, then a minimum number plus \textsl{et al.} are listed.
-%
-% Because no test for consistency of the numbers is carried out in the
-% \texttt{.bst} file itself (it might be possible, but I found it too complex),
-% this is done here.
-%    \begin{macrocode}
-\beginoptiongroup{NUMBER OF AUTHORS IN BIBLIOGRAPHY:}{}
-\optdef{*}{}{All authors}{included in listing}
-\optdef{l}{nmlm}{Limited authors}{(et al replaces missing names)}
-\getans
-\endoptiongroup
-\if\ans l
-\loop
-  \ask{\num}{Maximum number of authors (1-99)}
-  \ifnum\num>99\relax
-  \mes{*** Must be between 1 and 99}
-\repeat
-\def\parsenum#1#2{\if#2\relax\wr{\spsp\spsp x#1,\pc: Maximum of #1\space authors}
-  \else\wr{\spsp\spsp x#10,x#2,\pc: Maximum of #1#2\space authors}\fi}
-\expandafter\parsenum\num\relax
-\mes{\spsp You have selected maximum \num\space authors}
-\edef\numx{\num}
-\loop
-  \ask{\num}{Minimum number (before et al given) (1-\numx)}
-  \ifnum\num>\numx
-  \mes{*** Must be between 1 and \numx}
-\repeat
-\def\parsenum#1#2{\if#2\relax\wr{\spsp\spsp m#1,\pc: Minimum of #1\space authors}
-  \else\wr{\spsp\spsp m#10,m#2,\pc: Minimum of #1#2\space authors}\fi}
-\expandafter\parsenum\num\relax
-\mes{\spsp You have selected minimum \num\space authors}
-\fi
-
-%    \end{macrocode}
-%
-% Something that I finally added after being asked many times, is to allow for
-% more than one name in the citation before inserting \textsl{et~al.}
-% to allow more than 2 authors before truncating
-%    \begin{macrocode}
-\beginoptiongroup{AUTHORS IN CITATIONS:}{}
-\optdef{*}{}{One author et al}{for three or more authors}
-\optdef{m}{mcite}{Some other truncation scheme}{}
-\getans
-\endoptiongroup
-\mytempfalse
-\if\ans m\mytemptrue\fi
-\beginoptiongroup{MAX AUTHORS BEFORE ET AL:
- (if regular cite not selected)}
- {\ifmytemp*\fi}%
-\optdef{*}{mct-1}{One et al}{}
-\optdef{2}{mct-2}{One, Two et al}{}
-\optdef{3}{mct-3}{One, Two, Three et al}{}
-\optdef{4}{mct-4}{One, Two, Three, Four et al}{}
-\optdef{5}{mct-5}{One, Two, Three, Four, Five et al}{}
-\optdef{6}{mct-6}{One, Two, Three, Four, Five, Six et al}{}
-\getans
-\endoptiongroup
-\beginoptiongroup{MAX AUTHORS WITHOUT ET AL:
- (if regular cite not selected)}
- {\ifmytemp*\fi}%
-\optdef{*}{mct-x2}{Two authors without truncating}{}
-\optdef{3}{mct-x3}{Three authors}{without truncating}
-\optdef{4}{mct-x4}{Four authors}{without truncating}
-\optdef{5}{mct-x5}{Five authors}{without truncating}
-\optdef{6}{mct-x6}{Six authors}{without truncating}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Typeface of names}
-% The author names in the list of references normally appear in the current
-% typeface. This may be changed to small caps, bold, or italics.
-%
-% Alternatively, the surnames only can be formatted, with the first names in the
-% regular font. One can also specify that the words `and' and `et~al.'\ should be
-% in the regular font, or that `et~al.'\ be italic.
-%
-% Another possibility is that the names be put into a command |\bibnamefont{..}|,
-% which must be defined in the \LaTeX\ document. By default, this command does
-% not format its argument. There is also a |\bibfnamefont| command for the first
-% names, to be user-defined.
-%
-% Editor names in a collection or in a book will not normally have these
-% fonts applied to them; this may be additionally selected.
-%
-%    \begin{macrocode}
-\beginoptiongroup{TYPEFACE FOR AUTHORS IN LIST OF REFERENCES:}{}
-\optdef{*}{}{Normal font for author names}{}
-\optdef{s}{nmft,nmft-sc}{Small caps authors}{(\string\sc)}
-\optdef{i}{nmft,nmft-it}{Italic authors}{(\string\it\space or \string\em)}
-\optdef{b}{nmft,nmft-bf}{Bold authors}{(\string\bf)}
-\optdef{u}{nmft,nmft-def}{User defined author font}{(\string\bibnamefont)}
-\getans
-\endoptiongroup
-\mytempfalse
-\if\ans i\mytemptrue\fi
-\if\ans s\mytemptrue\fi
-\if\ans b\mytemptrue\fi
-\if\ans u\mytemptrue\fi
-\beginoptiongroup{FONT FOR FIRST NAMES
- (if non-default font for authors)}
- {\ifmytemp*\fi}%
-\optdef{*}{}{First names same font as surnames}{}
-\optdef{r}{fnm-rm}{First names in normal font}{}
-\optdef{u}{fnm-def}{First names in user defined font}{(\string\bibfnamefont)}
-\getans
-\beginoptiongroup{EDITOR NAMES IN INCOLLECTION ETC:}{}
-\optdef{*}{}{Editors incollection normal font}{}
-\optdef{a}{nmfted}{Editors incollection like authors}{font}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{FONT FOR `AND' IN LIST:}{}
-\optdef{*}{}{`And' in author font}{(JONES AND JAMES)}
-\optdef{r}{nmand-rm}{`And' in normal font}{(JONES and JAMES)}
-\getans
-\endoptiongroup
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Names in Citation label}
-% This applies to author--year style only. The label is the text written
-% by the |\cite| command, and for author--year style, this is something like
-% `Daly et al.\ (1990b)'. One may select italics for the authors and for the
-% extra label attached to the year. The year always remains plain.
-%
-% This parallels the font selection for the names in the list of references
-% except that there no choice for the first names, since only surnames
-% are used in the labels. A user-defined |\citefontname| may also
-% be selected, but this \emph{must} be defined by the user since there
-% will be no default definition for it.
-%
-% If a font is selected for the cited authors, then the word `and' may be
-% optionally put in the normal font.
-%
-% It is not possible to select the type of brackets for the year, since
-% this is determined by the \LaTeX{} style option that manages the
-% author--year citations. This is not standard \LaTeX, so that there are a
-% number of private style files for achieving this.
-%    \begin{macrocode}
-\beginoptiongroup{FONT OF CITATION LABELS IN TEXT
- (if author-year citations)}
- {\ifnumerical\else*\fi}%
-\optdef{*}{}{Cited authors plain}{as result of \string\cite\space command}
-\optdef{i}{lab,lab-it}{Cited authors italic}{}
-\optdef{s}{lab,lab-sc}{Cited authors small caps}{}
-\optdef{b}{lab,lab-bf}{Cited authors bold}{}
-\optdef{u}{lab,lab-def}{User defined citation font}{(\string\citenamefont)}
-\getans
-
-\mytempfalse
-\if\ans i\mytemptrue\fi
-\if\ans s\mytemptrue\fi
-\if\ans b\mytemptrue\fi
-\if\ans u\mytemptrue\fi
-\beginoptiongroup{FONT FOR `AND' IN CITATIONS
- (if non-default font for citation lables)}
- {\ifmytemp*\fi}%
-\optdef{*}{}{Cited `and' in author font}{}
-\optdef{r}{and-rm}{Cited `and' in normal font}{}
-\getans
-\endoptiongroup
-\beginoptiongroup{FONT OF EXTRA LABEL
- (The extra letter on the year)}{}
-\optdef{*}{}{Extra label plain}{}
-\optdef{i}{xlab-it}{Extra label italic}{}
-\getans
-\endoptiongroup
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Label for missing author names}
-%
-% If the author and/or editor is missing, the standard \texttt{.bst} files
-% use the \texttt{key} field in place of the names for purposes of ordering the
-% entries.
-%
-% For author--year styles, the \texttt{key} field is even inserted in the
-% reference list and in the label in place of the authors. Optionally, one can
-% suppress the year in this case, which causes \texttt{natbib} (version~7)
-% to print only that key text as a code designation for the work. Thus if
-% \texttt{KEY = "CS1-345"} and there are no authors, then |\citep| produces
-% (CS1-345) and |\citet| simply CS1-345. That is, they behave like
-% |\citeauthor|. If \texttt{natbib} did not recognize the blank year, one would
-% get (CS1-345, ) and CS1-345 (). (Earlier versions of \texttt{natbib} crash on
-% a blank year.)
-%    \begin{macrocode}
-\beginoptiongroup{LABEL WHEN AUTHORS MISSING
- (if author-year citations)}
- {\ifnumerical\else*\fi}%
-\optdef{*}{keyxyr}{Year blank when KEY replaces missing author}{(for natbib 7.0)}
-\optdef{y}{}{Year included when KEY replaces missing author}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Missing date}
-% A missing date can be set to ???? or simply left blank. In the latter case,
-% \texttt{natbib} version~7 will print only the authors without any year
-% punctuation or brackets.
-%
-%    \begin{macrocode}
-\beginoptiongroup{MISSING DATE
- (if author-year citations)}
- {\ifnumerical\else*\fi}%
-\optdef{*}{}{Missing date set to ????}{in label and text}
-\optdef{b}{blkyear}{Missing date left blank}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Position of date}
-% This applies to author--year style only. It makes sense to put the date
-% immediately after the author list, since the two items (author and year)
-% are the identifiers of the reference. Default position is at the
-% end of the references, before any notes. It is also possible to place
-% it even after the notes.
-%
-% Medical journals have a system where the date is part of the journal
-% specification, as Lancet 1994;45(2):34--40. Otherwise the date appears at
-% the end.
-%    \begin{macrocode}
-\beginoptiongroup{DATE POSITION:}{}
-\optdef{*}{}{Date at end}{}
-\optdef{b}{dt-beg}{Date after authors}{}
-\optdef{j}{dt-jnl}{Date part of journal spec.}{(as 1994;45:34-40) else at end}
-\optdef{e}{dt-end}{Date at very end}{after any notes}
-\getans
-\endoptiongroup
-\if\ans b\mytemptrue\else\if\ans j\mytemptrue\else\mytempfalse\fi\fi
-%    \end{macrocode}
-%
-% \subsection*{Format of date}
-% The year may be enclosed in parentheses, brackets, or preceded by a
-% colon. If none of these are selected, the date (month plus year) appears.
-% For author--year, the date normally consists only of the year, no month,
-% but this may be overridden.
-%
-% If the date comes just after the authors, then one might want special
-% punctuation following it, like a colon, or space only. The latter is
-% probably desirable if the date is brackets or parentheses.
-%
-% The date can even be put into bold face.
-%    \begin{macrocode}
-\beginoptiongroup{DATE FORMAT
- (if non author-year citations)}
- {\ifnumerical*\fi}%
-\optdef{*}{}{Plain month and year}{without any brackets}
-\optdef{p}{yr-par}{Date in parentheses}{as (May 1993)}
-\optdef{b}{yr-brk}{Date in brackets}{as [May 1993]}
-\optdef{c}{yr-col}{Date preceded by colon}{as `: May 1993'}
-\optdef{d}{yr-per}{Date preceded by period}{as `. May 1993'}
-\optdef{m}{yr-com}{Date preceded by comma}{as `, May 1993'}
-\optdef{s}{yr-blk}{Date preceded by space}{only, as ` May 1993'}
-\getans
-\beginoptiongroup{SUPPRESS MONTH:}{}
-\optdef{*}{}{Date is month and year}{}
-\optdef{x}{xmth}{Date is year only}{}
-\getans
-\endoptiongroup
-\beginoptiongroup{REVERSED DATE
- (if including month)}
- {\if\ans x\else*\fi}%
-\optdef{*}{}{Date as month year}{}
-\optdef{r}{dtrev}{Date as year month}{}
-\getans
-\endoptiongroup
-\endoptiongroup
-
-\beginoptiongroup{DATE FORMAT
- (if author-year citations)}
- {\ifnumerical\else*\fi}%
-\optdef{*}{}{Year plain}{without any brackets}
-\optdef{p}{yr-par}{Year in parentheses}{as (1993)}
-\optdef{b}{yr-brk}{Year in brackets}{as [1993]}
-\optdef{c}{yr-col}{Year preceded by colon}{as `: 1993'}
-\optdef{d}{yr-per}{Year preceded by period}{as `. 1993'}
-\optdef{m}{yr-com}{Date preceded by comma}{as `, 1993'}
-\optdef{s}{yr-blk}{Year preceded by space}{only, as ` 1993'}
-\getans
-\beginoptiongroup{INCLUDE MONTHS:}{}
-\optdef{*}{}{Date is year only}{without the month}
-\optdef{m}{aymth}{Include month in date}{}
-\getans
-\endoptiongroup
-\beginoptiongroup{REVERSED DATE
- (if including month)}
- {\if\ans m*\fi}%
-\optdef{*}{}{Date as month year}{}
-\optdef{r}{dtrev}{Date as year month}{}
-\getans
-\endoptiongroup
-\endoptiongroup
-
-\beginoptiongroup{DATE PUNCTUATION
- (if date not at end)}
- {\ifmytemp*\fi}%
-\optdef{*}{}{Date with standard block punctuation}{(comma or period)}
-\optdef{c}{yrp-col}{Colon after date}{as 1994:}
-\optdef{s}{yrp-semi}{Semi-colon after date}{as 1994;}
-\optdef{p}{yrp-per}{Period after date}{even when blocks use commas}
-\optdef{x}{yrp-x}{No punct. after date}{}
-\getans
-\beginoptiongroup{BLANK AFTER DATE:}{}
-\optdef{*}{}{Space after date}{and punctuation}
-\optdef{x}{yrpp-xsp}{No space after date}{as 1994:45}
-\getans
-\endoptiongroup
-\endoptiongroup
-\beginoptiongroup{DATE FONT:}{}
-\optdef{*}{}{Date in normal font}{}
-\optdef{b}{dtbf}{Date in bold face}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% Normally in author--year citations, the \texttt{year} entry is truncated
-% to the last 4 characters, which should be the 4 digits of the year. Some
-% users have requested the possibility of suppressing this truncation so
-% that they may put text in the \texttt{year} field, such as ``in press.''
-% Another use for it is when years are given as ``1968--72''. Actually,
-% I have no idea why the year should be truncated at all.
-%    \begin{macrocode}
-\beginoptiongroup{TRUNCATE YEAR
- (if author-year citations)}
- {\ifnumerical\else*\fi}%
-\optdef{*}{note-yr}{Year text full}{as 1990--1993 or `in press'}
-\optdef{t}{}{Year truncated}{to last 4 digits}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Article title in journal}
-% The title of an article in a journal or in a collection (a book, or
-% conference proceedings) may appear plain, in italics, within single
-% or double quotes or even in guillemets. The last is best with T1 coding; a
-% poor man's version for OT1 is provided; \LaTeXe\ is required in both cases.
-%
-% Furthermore, it may have sentence capitalization (first
-% word and word following colon) or be capitalized as in the \texttt{.bib} file
-% entry. That is why it is recommended to capitalize the entry text as it
-% should appear when fully capitalized, putting words that are always
-% capitalized in braces. Example:
-% \begin{quote}
-% |TITLE="The Results of the {Giotto} Mission"|
-% \end{quote}
-% which produces either ``The results of the Giotto mission'' or ``The
-% Results of the Giotto Mission'', depending on option.
-%
-% Additionally, the article titles may be fully suppressed.
-%    \begin{macrocode}
-\beginoptiongroup{TITLE OF ARTICLE:}{}
-\optdef{*}{}{Title plain}{with no special font}
-\optdef{i}{tit-it}{Title italic}{(\string\em)}
-\optdef{q}{tit-qq,qt-s}{Title and punctuation in single quotes}{(`Title,' ..)}
-\optdef{d}{tit-qq}{Title and punctuation in double quotes}{(``Title,'' ..)}
-\optdef{g}{tit-qq,qt-g}{Title and punctuation in guillemets}{(<<Title,>> ..)}
-\optdef{x}{tit-qq,qt-s,qx}{Title in single quotes}{(`Title', ..)}
-\optdef{y}{tit-qq,qx}{Title in double quotes}{(``Title'', ..)}
-\optdef{z}{tit-qq,qt-g,qx}{Title in guillemets}{(<<Title>>, ..)}
-\getans
-\endoptiongroup
-\mytempfalse
-\if\ans q\mytemptrue\fi
-\if\ans d\mytemptrue\fi
-\if\ans g\mytemptrue\fi
-\if\ans x\mytemptrue\fi
-\if\ans y\mytemptrue\fi
-\if\ans z\mytemptrue\fi
-\beginoptiongroup{COLLECTION/PROCEEDINGS TITLES
- (if quoted title)}
- {\ifmytemp*\fi}%
-\optdef{*}{bt-qq}{Quote collection and proceedings titles}{too}
-\optdef{x}{}{Collection and proceedings titles not in quotes}{}
-\getans
-\endoptiongroup
-\beginoptiongroup{CAPITALIZATION OF ARTICLE TITLE:}{}
-\optdef{*}{}{Sentence style}{(capitalize first word and those in braces)}
-\optdef{t}{atit-u}{Title style}{(just as in bib entry)}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{ARTICLE TITLE PRESENT:}{}
-\optdef{*}{}{Article title present}{in journals and proceedings}
-\optdef{x}{jtit-x}{No article title}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Journal names}
-% Abbreviated journal names normally contain periods; the periods may be
-% removed with this option. In fact, only letters, numbers, and spacing are
-% retained.
-%    \begin{macrocode}
-\beginoptiongroup{JOURNAL NAMES:}{}
-\optdef{*}{}{Periods in journal names}{are retained, as `Phys. Rev.'}
-\optdef{x}{jxper}{Dotless journal names}{as `Phys Rev'}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-% Journal name is normally printed in italics; can be left in normal font.
-%    \begin{macrocode}
-\beginoptiongroup{JOURNAL NAME FONT:}{}
-\optdef{*}{}{Journal name italics}{}
-\optdef{r}{jttl-rm}{Journal name normal}{font}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Title of Theses and Technical Reports}
-% The title of a these (PhD or Master's) is normally treated the same
-% as that of a book. Optionally, it may be formatted like that of
-% an article.
-%
-% The title of a technical report is normally treated the same as that
-% of an article. Optionally, it may be formatted like that of a book.
-%
-%    \begin{macrocode}
-\beginoptiongroup{THESIS TITLE:}{}
-\optdef{*}{}{Thesis titles like books}{}
-\optdef{a}{thtit-a}{Thesis title like article}{}
-\optdef{x}{thtit-x}{No thesis title}{}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{TECHNICAL REPORT TITLE:}{}
-\optdef{*}{}{Tech. report title like articles}{}
-\optdef{b}{trtit-b}{Tech. report title like books}{}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{TECHNICAL REPORT NUMBER:}{}
-\optdef{*}{}{Tech. report and number plain}{as `Tech. Rep. 123'}
-\optdef{i}{trnum-it}{Tech. report and number italic}%
-      {as `{\string\it\space Tech. Rep. 123'}}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Journal reference}
-% Great diversity of opinion exists as to how a journal reference is to be
-% formatted. It consists of a volume, possibly a number, and page limits.
-% The number is really only necessary if the page numbers within one volume
-% start at 1 for each physical `number'. Since journals are often bound
-% together in one volume later, it makes more sense to number the pages
-% continuously through the whole volume.
-%
-% I am only aware of one journal that used to reset the pagination for each
-% `number', in which case the number was part of the page designation.
-% I had erroneously provided an option \texttt{vnum-pg} to achieve this, but I
-% now realize that instead, for this one journal, the database entries must
-% contain \texttt{pages="(2)33--2(55)"}. This option has been removed at
-% version 3.84.
-%
-% A number of styles for journal specifications are
-% \begin{quote}
-%   \begin{tabular}{l@{\qquad}l}
-% 21(2):33--55             & 21, no.\ 2: 33--55\\
-% \textbf{21}(2):33--55    & \textbf{21}, \#2, 33--55\\
-% \textit{21}(2), 33--55   & \textit{21} (2); 33--55 \\
-% 21(2) (1995) 33--55      & 21(1995), 33-55\\
-% 21(2) 33--55             & vol.~21 (2), pp.~33--55
-%   \end{tabular}
-% \end{quote}
-%
-% Here both start and stop page numbers have been given; often only the
-% start page is wanted.
-%
-% It is also possible to include the year as part of the journal specification,
-% in which case the year is always in parentheses, attached snugly or with space
-% to the volume, or preceding the pages.
-%
-%    \begin{macrocode}
-\beginoptiongroup{JOURNAL VOLUME:}{}
-\optdef{*}{}{Volume plain}{as vol(num)}
-\optdef{i}{vol-it}{Volume italic}{as {\string\em\space vol}(num)}
-\optdef{b}{vol-bf}{Volume bold}{as {\string\bf\space vol}(num)}
-\optdef{d}{vol-2bf}{Volume and number bold}{as {\string\bf\space vol(num)}}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% The form of the `number' is also given: in parentheses, with `no.',
-% with \#, or omitted. The \texttt{vnum-b} option is meant to be used
-% with \texttt{jdt-v} and \texttt{jdt-vs} but could be used alone.
-%    \begin{macrocode}
-\beginoptiongroup{JOURNAL VOL AND NUMBER:}{}
-\optdef{*}{}{Journal vol(num)}{as 34(2)}
-\optdef{s}{vnum-sp}{Journal vol (num)}{as 34 (2)}
-\optdef{c}{vnum-cm}{Journal vol, num}{as 34, 2}
-\optdef{n}{vnum-nr}{Journal vol, no. num}{as 34, no. 2}
-\optdef{h}{vnum-h}{Journal vol, \string\# number}{as 34, \string\#2}
-\optdef{b}{vnum-b}{Journal vol number}{as 34 2}
-\optdef{x}{vnum-x}{Journal vol, without number}{as 34}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{VOLUME PUNCTUATION:}{}
-\optdef{*}{}{Volume with colon}{as vol(num):ppp}
-\optdef{s}{volp-sp}{Volume with colon and space}{as vol(num): ppp}
-\optdef{h}{volp-semi}{Volume with semi-colon}{as vol(num); ppp}
-\optdef{c}{volp-com}{Volume with comma}{as vol(num), ppp}
-\optdef{b}{volp-blk}{Volume with blank}{as vol(num) ppp}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{YEAR IN JOURNAL SPECIFICATION:}{}
-\optdef{*}{}{Journal year like others}{as given by date position}
-\optdef{v}{jdt-v}{Journal vol(year)}{as 34(1995)}
-\optdef{s}{jdt-vs}{Journal vol (year)}{as 34 (1995)}
-\optdef{p}{jdt-p}{Year with pages}{as 34(2), (1995) 1345--1387}
-\optdef{c}{jdt-pc}{Year, comma, pages}{as 34(2), (1995), 1345--1387}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{PAGE NUMBERS:}{}
-\optdef{*}{}{Start and stop page numbers}{given}
-\optdef{f}{jpg-1}{Only start page number}{}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{LARGE PAGE NUMBERS:}{}
-\optdef{*}{}{No separators for large page numbers}{}
-\optdef{c}{pgsep-c}{Comma inserted over 9999}{as 11,234}
-\optdef{s}{pgsep-s}{Thin space inserted over 9999}{as 11 234}
-\optdef{p}{pgsep-p}{Period inserted over 9999}{as 11.234}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{WORD `PAGE' IN ARTICLES:}{}
-\optdef{*}{}{Article pages numbers only}{as 234-256}
-\optdef{p}{jwdpg}{Include `page' in articles}{as pp. 234--256}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% Some journals want page numbers at the end, even for books, proceedings, as
-% well as for journals.
-%    \begin{macrocode}
-\beginoptiongroup{POSITION OF PAGES:}{}
-\optdef{*}{}{Pages given mid text}{as is normal}
-\optdef{e}{pp-last}{Pages at end}{but before any notes}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{WORD `VOLUME' IN ARTICLES:}{}
-\optdef{*}{}{Article volume as number only}{as 21}
-\optdef{p}{jwdvol}{Include `volume' in articles}{as vol. 21}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% Fiddle with the format and location of the number/series for collections and
-% inproceedings.
-%    \begin{macrocode}
-\beginoptiongroup{NUMBER AND SERIES FOR COLLECTIONS:}{}
-\optdef{*}{num-xser}{Allows number without series}{and suppresses word "number"}
-\optdef{s}{}{Standard BibTeX}{as: "number 123 in Total Works"; error if number and no series}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{POSITION OF NUMBER AND SERIES:}{}
-\optdef{*}{}{After chapter and pages}{as in standard BibTeX}
-\optdef{t}{numser}{Just before publisher}{or organization}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% Fiddle with the format and location of series and volume with books and collections.
-%    \begin{macrocode}
-\beginoptiongroup{VOLUME AND SERIES FOR BOOKS/COLLECTIONS:}{}
-\optdef{*}{}{Vol. 23 of Series}{as in standard BibTeX}
-\optdef{s}{ser-vol}{Series, vol. 23}{}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{POSITION OF VOLUME AND SERIES FOR INCOLLECTIONS:}{}
-\optdef{*}{}{Series and volume after the editors}{}
-\optdef{e}{ser-ed}{Series and volume after booktitle}{and before editors}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% It is possible to decide whether the journal name should be
-% separated from the following specifications with a blank or comma.
-%    \begin{macrocode}
-\beginoptiongroup{JOURNAL NAME PUNCTUATION:}{}
-\optdef{*}{}{Comma after journal}{name}
-\optdef{x}{jnm-x}{Space after journal}{name}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Books}
-% The title of a book (as opposed to an article in a book or journal) is
-% normally italicized. This may be set to the regular font.
-%
-% The page numbers in books may be set in parentheses, as (pp.\ 345--350).
-%    \begin{macrocode}
-\beginoptiongroup{BOOK TITLE:}{}
-\optdef{*}{}{Book title italic}{(\string\em)}
-\optdef{p}{btit-rm,bt-rm}{Book title plain}{(no font command)}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{PAGES IN BOOKS:}{}
-\optdef{*}{}{Pages in book plain}{as pp. 50-55}
-\optdef{p}{bkpg-par}{Pages in book in parentheses}{as (pp. 50-55)}
-\optdef{x}{bkpg-x}{Pages in book bare}{as 50-55}
-\getans
-\endoptiongroup
-\beginoptiongroup{TOTAL PAGES OF A BOOK:}{}
-\optdef{*}{}{Total book pages not printed}{}
-\optdef{p}{pg-bk}{For book: 345 pages}{or pp.}
-\optdef{a}{pg-bk,pg-pre}{Total book pages before publisher}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-% Some psychology journals wish to have the publisher's address preceding
-% the name, separated by colon, as
-% \begin{quote}New York: Wiley and Sons\end{quote}
-%
-% Some journals (e.g.\ Nature) put publisher in parentheses with date,
-% as (Wiley and Sons, New York, 1983). These normally put the date in
-% parentheses at the end anyway, so this is a merging of the two sets of
-% parentheses.
-%    \begin{macrocode}
-\beginoptiongroup{PUBLISHER ADDRESS:}{}
-\optdef{*}{}{Publisher, address}{as Harcourt, New York}
-\optdef{a}{add-pub}{Address: Publisher}{as New York: Harcourt}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{PUBLISHER IN PARENTHESES:}{}
-\optdef{*}{}{Publisher as normal block}{without parentheses}
-\optdef{p}{pub-par}{Publisher in parentheses}{}
-\optdef{d}{pub-date}{Publisher and date in parentheses}{(Oxford, 1994)}
-\optdef{c}{pub-date,pub-xc}{Publisher and date in parentheses, no comma}{(Oxford 1994)}
-\optdef{f}{pub-date,pub-xpar}{Publisher and date without parentheses}{Oxford, 1994}
-\optdef{k}{pub-date,pub-xpar,pub-xc}{Publisher and date, no parentheses, no comma}{Oxford 1994}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{PUBLISHER POSITION:}{}
-\optdef{*}{}{Publisher after chapter, pages}{}
-\optdef{p}{pre-pub}{Publisher before chapter, pages}{}
-\optdef{e}{pre-edn}{Publisher after edition}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{ISBN, ISSN, DOI numbers}
-% Books normally possess an ISBN number. This may be included as an
-% optional entry for \texttt{book}, \texttt{inbook}, \texttt{booklet},
-% \texttt{incollection}, \texttt{proceedings}, \texttt{inproceedings}.
-% However, it should be suppressed for \texttt{inbook} etc.\ when
-% there is a crossref to another book with the ISBN number.
-%
-% Periodicals contain an ISSN number. Add this to \texttt{article}, or
-% course, but also to \texttt{inproceedings} and \texttt{proceedings}, since
-% they are sometimes printed in a periodical.
-%
-% Journal articles that appear online are given a DOI number, something more
-% robust than a URL that can change as machines are upgraded.
-% The American Geophysical Union (AGU) uses the DOI as part of the
-% page number substitution for electronic journals, placing the number
-% where the pages would normally appear.
-%    \begin{macrocode}
-\beginoptiongroup{ISBN NUMBER:}{}
-\optdef{*}{isbn}{Include ISBN}{for books, booklets, etc.}
-\optdef{x}{}{No ISBN}{}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{ISSN NUMBER:}{}
-\optdef{*}{issn}{Include ISSN}{for periodicals}
-\optdef{x}{}{No ISSN}{}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{DOI NUMBER:}{}
-\optdef{*}{doi}{Include DOI}{as "doi: number"}
-\optdef{u}{url-doi}{Format DOI as URL //doi.org/doi}{(must give url options!)}
-\optdef{a}{agu-doi,doi}{Insert DOI AGU style}{as part of page number}
-\optdef{x}{}{No DOI}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Editor of book without author}
-%
-% This is normally
-% \begin{quote}
-%  J. K. James, editor
-% \end{quote}
-% but may also be
-% \begin{quote}
-%  J. K. James, (editor)\\
-%  J. K. James (editor),
-% \end{quote}
-% Alternatively, the word \textsl{editor} may be capitalized and/or
-% abbreviated.
-%
-%    \begin{macrocode}
-\beginoptiongroup{`EDITOR' AFTER NAMES (EDITED BOOKS WITHOUT AUTHORS):}{}
-\optdef{*}{}{Word `editor' after name}{}
-\optdef{a}{edpar}{`Name (editor),'}{in parentheses, after name, comma after}
-\optdef{b}{edpar,bkedcap}{`Name (Editor),'}{as above, editor upper case}
-\optdef{c}{edparc}{`Name, (editor)'}{in parentheses, after name, comma between}
-\optdef{d}{edparc,bkedcap}{`Name, (Editor)'}{as above, editor upper case}
-\optdef{e}{edparxc}{`Name (editor)'}{in parentheses, after name, no commas}
-\optdef{f}{edparxc,bkedcap}{`Name (Editor)'}{as above, editor upper case}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Edited by}
-% For an article within an edited collection, the normal form is
-% \begin{quote}
-% In J. K. James, editor, \emph{Title of Collection} \dots
-% \end{quote}
-% Alternative forms are
-% \begin{quote}
-% In J. K. James (editor), \emph{Title} \dots\\
-% In \emph{Title}, edited by J. K. James \dots\\
-% In \emph{Title} (Edited by J. K. James) \dots
-% \end{quote}
-% If none of the \texttt{edby} variations is used, then the same system is
-% used as for edited books, i.e. \texttt{edpar} applies.
-%    \begin{macrocode}
-\beginoptiongroup{EDITOR IN COLLECTIONS:}{}
-\optdef{*}{}{Same as for edited book}{(names before booktitle)}
-\optdef{b}{edby}{In booktitle, edited by .. }{(where .. is names)}
-\optdef{p}{edby-par}{In booktitle (edited by ..)}{}
-\optdef{c}{edby-parc}{In booktitle, (edited by ..)}{}
-\optdef{e}{edby,edbyx}{In booktitle, editor ..}{}
-\optdef{f}{edby,edbyw}{In booktitle, (editor) ..}{}
-\optdef{k}{edby-par,edbyx}{In booktitle (editor..)}{}
-\optdef{g}{edby-parc,edbyx}{In booktitle, (editor..)}{}
-\optdef{j}{edby,edbyy}{In booktitle, .., editor}{}
-\optdef{m}{edby-par,edbyy}{In booktitle (.., editor)}{}
-\getans
-\endoptiongroup
-\mytempfalse
-\if\ans p\mytemptrue\fi
-\if\ans k\mytemptrue\fi
-\if\ans c\mytemptrue\fi
-\if\ans f\mytemptrue\fi
-\beginoptiongroup{CAPITALIZE `EDITOR' OR `EDITED BY'
- (if editor capitalizable)}
- {\ifmytemp*\fi}%
-\optdef{*}{}{`(editor,..)' or `(edited by..)'}{in lower case}
-\optdef{c}{edcap}{`(Editor,..)' or `(Edited by..)'}{in upper case}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Block punctuation}
-% Blocks are logical sections of the reference specification, such as the
-% author block, the journal block, editor block, etc. These are normally
-% separated by periods, but alternatively a comma may be used. Another
-% choice is to use commas except after titles where a period is given.
-%
-% \LaTeX\ offers an \texttt{openbib} option, which means that the blocks
-% are not only new sentences, but new lines as well. This can only
-% function when the default option here is taken, for then the command
-% |\newblock| is placed between the blocks. This command is normally
-% defined to do nothing, but \LaTeX\ redefines it to issue a new line
-% when open bibliographies are wanted.
-%    \begin{macrocode}
-\beginoptiongroup{PUNCTUATION BETWEEN SECTIONS (BLOCKS):}{}
-\optdef{*}{}{\string\newblock\space after blocks}
-   {(periods or new lines with openbib option)}
-\optdef{c}{blk-com}{Comma between blocks}{}
-\optdef{s}{blk-com,com-semi}{Semi-colon between blocks}{}
-\optdef{b}{blk-com,com-blank}{Blanks between blocks}{}
-\optdef{t}{blk-tit}{Period after titles of articles, books, etc}{else commas}
-\optdef{u}{blk-tit,tit-col}{Colon after titles of articles, books, etc}{else commas}
-\optdef{a}{blk-tita}{Period after titles of articles}{else commas}
-\optdef{d}{blk-tita,tit-col}{Colon after titles of articles}{else commas}
-\getans
-\endoptiongroup
-\mytempfalse
-\if\ans c\mytemptrue\fi
-\if\ans s\mytemptrue\fi
-\if\ans b\mytemptrue\fi
-\if\ans t\mytemptrue\fi
-\if\ans a\mytemptrue\fi
-\beginoptiongroup{PUNCTUATION BEFORE NOTES
- (if not using \string\newblock)}
- {\ifmytemp*\fi}%
-\optdef{*}{}{Notes have regular punctuation}{like all other blocks}
-\optdef{p}{blknt}{Notes preceded by period}{}
-\getans
-\endoptiongroup
-\beginoptiongroup{PUNCTUATION AFTER AUTHORS:}{}
-\optdef{*}{}{Author block normal}{with regular block punctuation}
-\optdef{c}{au-col}{Author block with colon}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{\textsl{In} with colon}
-% When referring to works in a collection, one begins the block describing
-% that collection with \textsl{In}. Optionally, one may add a colon.
-%    \begin{macrocode}
-\beginoptiongroup{PUNCTUATION AFTER `IN':}{}
-\optdef{*}{}{Space after `in'}{for incollection or inproceedings}
-\optdef{c}{in-col}{Colon after `in'}{(as `In: ...')}
-\optdef{i}{in-it}{Italic `in'}{and space}
-\optdef{d}{in-col,in-it}{Italic `in' and colon}{}
-\optdef{x}{in-x}{No word `in'}{for edited works}
-\getans
-\endoptiongroup
-\beginoptiongroup{`IN' WITH JOURNAL NAMES
- (if using 'in' with collections)}
- {\if\ans x\else*\fi}
-\optdef{*}{}{No `in' before journal name}{}
-\optdef{i}{injnl}{Add `in' before journal name}{in style for incollection}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Final punctuation}
-% The punctuation at the end of the reference is normally a period. This
-% may be suppressed.
-%    \begin{macrocode}
-\beginoptiongroup{FINAL PUNCTUATION:}{}
-\optdef{*}{}{Period at very end}{of the listed reference}
-\optdef{x}{fin-bare}{No period at end}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Abbreviations}
-% A number of words may be abbreviated: pages, editors, volume, chapter,
-% and so on. The first two may be independently set to abbreviation, the
-% rest with a single option.
-%
-% Additionally, the edition numbers may be
-% output as words (first, second, etc.) or as numbers (1st, 2nd, etc.).
-% (Recall that the input in the \texttt{.bib} file is always as English
-% words.)
-%    \begin{macrocode}
-\beginoptiongroup{ABBREVIATE WORD `PAGES'
- (if not using external language file)}
- {\if!\cfile!\relax*\fi}%
-\optdef{*}{}{`Page(s)'}{(no abbreviation)}
-\optdef{a}{pp}{`Page' abbreviated}{as p. or pp.}
-\optdef{x}{ppx}{`Page' omitted}{}
-\getans
-\beginoptiongroup{ABBREVIATE WORD `EDITORS':}{}
-\optdef{*}{}{`Editor(s)'}{(no abbreviation)}
-\optdef{a}{ed}{`Editor' abbreviated}{as ed. or eds.}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{OTHER ABBREVIATIONS:}{}
-\optdef{*}{}{No abbreviations}{of volume, edition, chapter, etc}
-\optdef{a}{abr}{Abbreviations}{of such words}
-\getans
-\endoptiongroup
-\beginoptiongroup{ABBREVIATION FOR `EDITION'
- (if abbreviating words)}
- {\if\ans a*\fi}%
-\optdef{*}{}{`Edition' abbreviated as `edn'}{}
-\optdef{a}{ednx}{`Edition' abbreviated as `ed'}{}
-\getans
-\beginoptiongroup{MONTHS WITH DOTS:}{}
-\optdef{*}{}{Months with dots}{as Jan.}
-\optdef{x}{mth-bare}{Months without dots}{as Feb Mar}
-\getans
-\endoptiongroup
-\endoptiongroup
-\beginoptiongroup{EDITION NUMBERS:}{}
-\optdef{*}{xedn}{Editions as in database}{saving much processing memory}
-\optdef{w}{}{Write out editions}{as first, second, third, etc}
-\optdef{n}{ord}{Numerical editions}{as 1st, 2nd, 3rd, etc}
-\getans
-\endoptiongroup
-\endoptiongroup
-%    \end{macrocode}
-%
-% The above choices about abbreviations are made only if the internal
-% languages are taken (English or \texttt{babel}). For an external language
-% definition file, these choices, along with possible other ones, are made
-% in the external file, which is read in at this point.
-%    \begin{macrocode}
-\umes{Reading external language file \string\cfile=\cfile}%
-\if!\cfile!\relax\else
- \input\cfile
-\fi
-%    \end{macrocode}
-%
-% This file contains the standard set of stored journal names present in
-% the basic bibliography style files. If other files containing journal
-% names are to be included, they may only contain the options \texttt{jabr}
-% or \texttt{jaa} since these options are selected here. No option
-% menus from the journal-name files will be read in.
-%    \begin{macrocode}
-\beginoptiongroup{STORED JOURNAL NAMES:}{}
-\optdef{*}{}{Full journal names}{for prestored journals}
-\optdef{a}{jabr}{Abbreviated journal names}{}
-\optdef{s}{jabr,jaa}{Abbreviated with astronomy shorthands}{like ApJ and AJ}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Variations on \textsl{and}}
-% It is possible to replace the word \textsl{and} with an ampersand \&, and to
-% specify whether a comma is to precede \textsl{and} in a list of more than two
-% names.
-%
-% A variable \textsl{and} may be provided for with the command |\BIBand|
-% in place of the word. In this case, the command must be defined in the
-% document file or some other package called. (This is intended for situations
-% where an ampersand is wanted in parenthetical citations, but the word in
-% textual ones.)
-%
-%    \begin{macrocode}
-\beginoptiongroup{AMPERSAND:}{}
-\optdef{*}{}{Use word `and'}{in author lists}
-\optdef{a}{amper}{Use ampersand}{in place of `and'}
-\optdef{v}{varand}{Use \string\BIBand}{in place of `and'}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{COMMA BEFORE `AND':}{}
-\optdef{*}{}{Comma before `and'}{as `Tom, Dick, and Harry'}
-\optdef{n}{and-xcom}{No comma before `and'}{as `Tom, Dick and Harry'}
-\optdef{c}{and-com}{Comma even with 2 authors}{as `Tom, and Harry'}
-\getans
-\endoptiongroup
-\beginoptiongroup{COMMA BEFORE `AND' EVEN FOR COLLECTION EDITORS
- (if using comma before `and' with authors)}
- {\if\ans c*\fi}%
-\optdef{*}{and-com-ed}{Comma with 2 editors}{in collections}
-\optdef{x}{}{Two editors without comma}{as `Tom and Harry'}
-\getans
-\endoptiongroup
-\beginoptiongroup{NO `AND' IN REFERENCE LIST:}{}
-\optdef{*}{}{With `and'}{before last author in reference list}
-\optdef{x}{xand}{No `and'}{as `Tom, Dick, Harry'}
-\getans
-\endoptiongroup
-
-\beginoptiongroup{COMMA BEFORE `ET AL':}{}
-\optdef{*}{}{Comma before `et al'}{in reference list}
-\optdef{x}{etal-xc}{No comma before `et al'}{}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Font of \textsl{et al}}
-% One can chose that \textsl{et~al.}\ be put into italics.
-% Or, if the authors are in a different font from the regular one, the
-% \textsl{et~al.}\ can still be Roman.
-%    \begin{macrocode}
-\beginoptiongroup{FONT OF `ET AL':}{}
-\optdef{*}{}{Plain et al}{}
-\optdef{i}{etal-it}{Italic et al}{}
-\optdef{r}{etal-rm}{Roman et al}{even when authors something else}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Additional Data Fields}\label{sec:revtex}
-% The American Physical Society's REV\TeX\ package contains \btx\ support
-% with a \texttt{bst} file generated from a variant of
-% \texttt{\filename}. The extra fields are also available here.
-% \begin{itemize}
-% \item \textbf{collaboration}: A collaboration name associated with a
-% reference.
-% \item \textbf{eprint}: The e-print citation for the reference (Los Alamos
-% or otherwise). E-print numbers can be turned into hyperlinks to the
-% online article. The output is\\
-%    \hspace*{2em}|\eprint{|\textit{eprint-spec}|}|
-% \item \textbf{archive}: is an optional argument for |\eprint|, as\\
-%    \hspace*{2em}|\eprint[|\textit{archive-des}|]{|\textit{eprint-spec}|}|\\
-% The \textit{archive-des} is some code such as \texttt{arXiv} that is
-% translated to a base URL by a class or package file. The default definition
-% of |\eprint| ignores \textit{archive-des} and prints \textit{eprint-spec}
-% as a URL.
-% \item \textbf{url}: A URL associated with the reference. Can be turned
-% into a hyperlink.
-% \end{itemize}
-%
-% A collaboration appears as part of the author list and the other two
-% appear at the end of the citaton. The URL field can be selected
-% independently of this option.
-%
-% In addition there are new fields for journals like Phys.\ Rev.~D that
-% no longer use page numbers.
-% \begin{itemize}
-% \item \textbf{eid}: Electronic article identifier.
-% \item \textbf{numpages}: Number of pages in an article. For use in
-% conjunction with the \textbf{eid} field when page counts are
-% desired. Deprecated when submitting to Phys.\ Rev.
-%
-% The \texttt{eprint} (with \texttt{archive}) and \texttt{url} fields may be
-% included independently of the other REV\TeX\ fields.
-%
-% The \texttt{eid} field is now always included, although it is optional for
-% the bibliography entries. This electronic identifier is a replacement for the
-% page number in electronic journals: it is the sequence number in the printed
-% volume. If present, it will be used in place of the page number.
-%
-% \end{itemize}
-%
-%    \begin{macrocode}
-\beginoptiongroup{ADDITIONAL REVTeX DATA FIELDS:}{}
-\optdef{*}{}{No additional fields}{for REVTeX}
-\optdef{r}{revdata,eprint,url,url-blk}{Include REVTeX data fields}
- {collaboration, eid, eprint, archive, numpages, url}
-\getans
-\mytemptrue
-\if\ans r\mytempfalse\fi
-\beginoptiongroup{E-PRINT DATA FIELD:
-(without REVTeX fields)}
-{\ifmytemp*\fi}
-\optdef{*}{}{Do not include eprint field}{}
-\optdef{e}{eprint}{Include eprint and archive fields}{for electronic publications}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{URL address}
-% For electronic documents with an Internet address, add a URL entry.
-% Harvard already has this, but here it is done for all styles.
-% The URL text will be set with the \verb!\url! command in the \texttt{url}
-% package by Donald Arseneau. This package must be loaded for the command
-% to work right. It allows line breaks at punctuations. Otherwise,
-% \verb!\texttt! is used instead, with no line breaks. The URL text is preceded
-% by \verb!\urlprefix! which defaults to ``URL '' but may be redefined by the
-% user to be whatever s/he wants. The final space must be included.
-%
-% Note: selecting the REV\TeX\ fields automatically includes this, so the
-% offer only is made if REV\TeX\ has been rejected.
-%
-%    \begin{macrocode}
-\beginoptiongroup{URL ADDRESS:
-(without REVTeX fields)}{\ifmytemp*\fi}
-\optdef{*}{}{No URL}{for electronic (Internet) documents}
-\optdef{u}{url,url-blk}{Include URL}{as regular item block}
-\optdef{n}{url,url-nt}{URL as note}{}
-\optdef{l}{url,url-nl}{URL on new line}{after rest of reference}
-\getans
-\endoptiongroup
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Reference Component Tagging}
-% If reference component tagging is enabled, we
-% apply tags like |\bibinfo| and |\eprint| to the fields of data
-% in the content of the |\bibitem| statement. We also ensure that
-% these commands have a default meaning within the scope of the |thebibliography|
-% environment. The default definitions simply print the field and ignore the
-% tag. However, other programs or packages might make use of the tag
-% information to separate authors from title, for example.
-%
-%    \begin{macrocode}
-\beginoptiongroup{REFERENCE COMPONENT TAGS:}{}
-\optdef{*}{}{No reference component tags}
- {in the \string\bibitem\space entries}
-\optdef{b}{bibinfo}{Reference component tags}
- {like \string\bibinfo\space in the content of \string\bibitem}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Define emphasis}
-% In everything that been mentioned so far, italicization should be
-% understood to mean `emphasize' in the \LaTeX{} sense. This means that the
-% command |\em| is used. This is not the same as |\it|, which is always
-% italics. Rather, with |\em|, the font style switches between |\rm| and
-% |\it| depending on the context. Here one may choose to true italics, or
-% to switch off italics altogether.
-%    \begin{macrocode}
-\beginoptiongroup{EMPHASIS:
- (affects all so-called italics)}{}
-\optdef{*}{}{Use emphasis}{ie, \string\em, allows font switching}
-\optdef{i}{em-it}{Use true italics}{ie, \string\it, absolute italics}
-\optdef{x}{em-x}{No italics}{at all}
-\optdef{u}{em-ul}{Underlining}{in place of italics, best with ulem package}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% \subsection*{Plain \TeX\ compatibility}
-% Bold face, italics, and emphasis are made with the \LaTeXe\ commands,
-% which makes them incompatible with the obsolete \LaTeX2.09, and with
-% Plain \TeX. There are also some extra testing for existing commands
-% that best work with \LaTeXe\ syntax.
-%
-% If the bibliography style file is to be fully compatible with Plain \TeX,
-% do not select the option \texttt{nfss} but do take \texttt{plntx}.
-%    \begin{macrocode}
-\beginoptiongroup{COMPATIBILITY WITH PLAIN TEX:}{}
-\optdef{*}{nfss}{Use LaTeX commands}{which may not work with Plain TeX}
-\optdef{t}{plntx}{Use only Plain TeX}{commands for fonts and testing}
-\getans
-\endoptiongroup
-%    \end{macrocode}
-%
-% Terminate the options list. If a language definition file has been called,
-% then we have a closing brace too many, so add another dummy opening brace.
-%    \begin{macrocode}
-\if!\cfile\jfile!\else
-\begingroup\MBswitch
-\wr(,{\pc)
-\endgroup
-\fi
-
-\endoptions
-%</options>
-%    \end{macrocode}
-%
-% \section{The Bibliographic Coding}
-%
-%    \begin{macrocode}
-%<*!options&!driver&!bblbst>
-%<*!tail>
- %   For use with BibTeX version 0.99a or later
- % -------------------------------------------------------------------
-%<*(!nmft&(nmft-it|nmft-sc|nmft-bf|nmft-def))|(!lab&(lab-it|lab-bf|lab-sc|lab-def))>
- %  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
- %  The input dbj file contains one of the options
-%<nmft-it|nmft-sc|nmft-bf|nmft-def> %        nmft-it, nmft-bf, nmft-sc, or nmft-def
-%<lab-it|lab-sc|lab-bf|lab-def> %        lab-it, lab-bf, lab-sc, or lab-def
- %  without the corresponding general option(s):
-%<nmft-it|nmft-sc|nmft-bf|nmft-def> %              nmft
-%<lab-it|lab-sc|lab-bf|lab-def> %              lab
- %  (You may be using an older dbj with a newer version of merlin.mbs)
- %  Please edit your dbj file to add the general option(s) and reprocess.
- %
-%</(!nmft&(nmft-it|nmft-sc|nmft-bf|nmft-def))|(!lab&(lab-it|lab-bf|lab-sc|lab-def))>
-%<*!exlang>
-%<!babel> % This bibliography style file is intended for texts in ENGLISH
-%<*babel>
- % This bibliography style file requires a file named  babelbst.tex
- %   containing the definitions of word commands like \bbleditor, etc.
-%</babel>
-%</!exlang>
-%<*exlang>
- % This bibliography style file is intended for texts in
-%<bahasa> %   BAHASA
-%<brazilian> %   BRAZILIAN
-%<catalan> %   CATALAN
-%<croatian> %   CROATIAN
-%<czech> %   CZECH
-%<danish> %   DANISH
-%<dansk> %   DANSK
-%<dutch> %   DUTCH
-%<english> %   ENGLISH
-%<esperanto> %   ESPERANTO
-%<finnish> %   FINNISH
-%<french> %   FRENCH
-%<galacian> %   GALACIAN
-%<german> %   GERMAN
-%<hungarian> %   HUNGARIAN
-%<italian> %   ITALIAN
-%<norwegian> %   NORWEGIAN
-%<norsk> %   NORWEGIAN
-%<polski> %   POLISH
-%<polish> %   POLISH
-%<portuguese> %   PORTUGUESE
-%<romanian> %   ROMANIAN
-%<russian> %   RUSSIAN
-%<slovak> %   SLOVAK
-%<slovenian> %   SLOVENIAN
-%<slovene> %   SLOVENIAN
-%<spanish> %   SPANISH
-%<swedish> %   SWEDISH
-%<turkish> %   TURKISH
-%</exlang>
-%<*!html>
-%<*ay>
- % This is an author-year citation style bibliography. As such, it is
- % non-standard LaTeX, and requires a special package file to function properly.
- % Such a package is    natbib.sty   by Patrick W. Daly
-%<*alk>
- % or:                  apalike.sty  by Oren Patashnik
- % The form of the \bibitem entries is
- %   \bibitem[Jones et al., 1990]{key}...
-%</alk>
-%<*!(har|ast|alk|cay|nmd|cn)>
- % The form of the \bibitem entries is
- %   \bibitem[Jones et al.(1990)]{key}...
-%<nat> %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
- % The essential feature is that the label (the part in brackets) consists
- % of the author names, as they should appear in the citation, with the year
- % in parentheses following. There must be no space before the opening
- % parenthesis!
-%<nat> % With natbib v5.3, a full list of authors may also follow the year.
- % In natbib.sty, it is possible to define the type of enclosures that is
- % really wanted (brackets or parentheses), but in either case, there must
- % be parentheses in the label.
- % The \cite command functions as follows:
- %   \citet{key} ==>>                Jones et al. (1990)
-%<nat> %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
- %   \citep{key} ==>>                (Jones et al., 1990)
-%<nat> %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
- %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
- %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
- %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., 1990, p. 32)
- %   \citeauthor{key} ==>>           Jones et al.
-%<nat> %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
- %   \citeyear{key} ==>>             1990
-%</!(har|ast|alk|cay|nmd|cn)>
-%<*har>
- % or:                  harvard.sty  by Peter Williams and Thorsten Schnier
-%<harnm> % (needs natbib v5.3  or  harvard v2.0.3)
- % The form of the bibitem entries is
- %   \harvarditem[Jones et al.]{Jones, Baker, and Smith}{1990}{key}...
-%</har>
-%<*cay>
- % or:                  chicago.sty
- % The form of the bibitem entries is
- %   \bibitem[\protect\citeauthoryear{Jones, Baker, and Smith}
- %        {Jones et al.}{1990}{key}...
-%</cay>
-%<*nmd>
- % or:                  named.sty
- % The form of the bibitem entries is
- %   \bibitem[\protect\citeauthoryear{Jones et al.}{1990}]{key}...
-%</nmd>
-%<*ast>
- % or:                  astron.sty
- % The form of the bibitem entries is
- %   \bibitem[\protect\astroncite{Jones et al.}{1990}]{key}...
-%</ast>
-%<*cn>
- % or:                  authordate1-4.sty
- % The form of the bibitem entries is
- %   \bibitem[\protect\citename{Jones et al.}1990]{key}...
-%</cn>
-%</ay>
-%<*!ay>
-%<*!alph&!cite>
- % This is a numerical citation style, and as such is standard LaTeX.
-%</!alph&!cite>
-%<*alph>
- % This is a labelled citation style similar to the standard alpha.bst,
- %   where labels are of the form Dal90 or DBK89.
-%</alph>
-%<*cite&!alph>
- % This is a special pseudo-numerical bibliography style, intended to be
- %   used to list all the entries in a bib database
-%</cite&!alph>
- % It requires no extra package to interface to the main text.
- % The form of the \bibitem entries is
-%<!alph&!cite> %   \bibitem{key}...
-%<alph> %   \bibitem[label]{key}...
-%<!alph&cite> %   \bibitem[key]{key}...
-%<*!cite|alph>
- % Usage of \cite is as follows:
-%<*!alph&!cite>
- %   \cite{key} ==>>          [#]
- %   \cite[chap. 2]{key} ==>> [#, chap. 2]
- % where # is a number determined by the ordering in the reference list.
-%</!alph&!cite>
-%<*alph>
- %   \cite{key} ==>>          [label]
- %   \cite[chap. 2]{key} ==>> [label, chap. 2]
- % The order in the reference list is by label.
-%</alph>
-%<*seq-no&!alph>
- % The order in the reference list is that by which the works were originally
- %   cited in the text, or that in the database.
-%</seq-no&!alph>
-%<*!seq-no&!alph>
- % The order in the reference list is alphabetical by authors.
-%</!seq-no&!alph>
-%</!cite|alph>
-%</!ay>
-%</!html>
-%<*html>
- % This bibliographic style file produces HTML output instead of LaTeX.
- % The LaTeX special characters are not translated, so that the output
- % (which has the .bbl ending still) will have to be further massaged,
- % and renamed with .html or .htm. The title and heading may also need
- % to be revised.
- %
-%<htlist&!htdes> % The output is a numbered list.
-%<htdes> % The output is an unnumbered list with the keys printed
-%<htdes> % before each entry.
-%<!htlist&!htdes> % The output is lists each entry as one paragraph.
-%</html>
- % -------------------------------------------------------------------
-
-%    \end{macrocode}
-%
-% \begin{macro}{`ENTRY'}
-%  The new \texttt{harvard.sty} of \LaTeXe{} includes an entry URL, or
-%  rather it is included in the new \texttt{.bst} files for it. Add it
-%  here too, but only for option \texttt{harnm}.
-%
-% Books normally have an ISBN number.
-% This entry is (optionally) included, modelled after that in
-% \texttt{xbtxbst.doc}.
-%    \begin{macrocode}
-ENTRY
-  { address
-%<annote>    annote
-%<eprint>    archive
-    author
-    booktitle
-    chapter
-%<revdata>    collaboration
-%<doi|url-doi>    doi
-    edition
-    editor
-    eid
-%<eprint>    eprint
-    howpublished
-    institution
-%<isbn>    isbn
-%<issn>    issn
-    journal
-    key
-%<lang>    language
-    month
-    note
-    number
-%<revdata>    numpages
-    organization
-    pages
-    publisher
-    school
-    series
-    title
-    type
-%<url|harnm|revdata>    url
-    volume
-    year
-  }
-  {}
-%<!ay&!alph>  { label }
-%<!ay&alph>  { label extra.label sort.label }
-%<ay>  { label extra.label sort.label short.list }
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-INTEGERS { output.state before.all mid.sentence after.sentence after.block }
-%    \end{macrocode}
-%
-% \begin{macro}{`init.state.consts'}
-%    \begin{macrocode}
-FUNCTION {init.state.consts}
-{ #0 'before.all :=
-  #1 'mid.sentence :=
-  #2 'after.sentence :=
-  #3 'after.block :=
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% |s| and |t| are general-purpose scratch registers whose value does not persist
-% past the end of a function. They also do not appear to be used to communicate
-% between functions or to be clobbered within a sub-function call. Hopefully.
-%    \begin{macrocode}
-STRINGS { s t}
-%    \end{macrocode}
-%
-% \begin{macro}{`output.nonnull'}
-%    \begin{macrocode}
-FUNCTION {output.nonnull}
-{ 's :=
-  output.state mid.sentence =
-%<!blk-com|(!com-semi&!com-blank)>    { ", " * write$ }
-%<blk-com&com-semi>    { "; " * write$ }
-%<blk-com&!com-semi&com-blank>    { " " * write$ }
-    { output.state after.block =
-        { add.period$ write$
-          newline$
-%<!html>          "\newblock " write$
-        }
-        { output.state before.all =
-            'write$
-            { add.period$ " " * write$ }
-          if$
-        }
-      if$
-      mid.sentence 'output.state :=
-    }
-  if$
-  s
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`output'}
-%    \begin{macrocode}
-FUNCTION {output}
-{ duplicate$ empty$
-    'pop$
-    'output.nonnull
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`output.check'}
-%    \begin{macrocode}
-FUNCTION {output.check}
-{ 't :=
-  duplicate$ empty$
-    { pop$ "empty " t * " in " * cite$ * warning$ }
-    'output.nonnull
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`fin.entry'}
-% I have often been asked to add an annotation function. This suggestion is
-% from Soren Dayton; it inputs a file with the same name as the cite key, or
-% uses the text in the \texttt{annote} field. It will only work with \LaTeXe.
-%    \begin{macrocode}
-FUNCTION {fin.entry}
-%<*!fin-bare>
-{ add.period$
-  write$
-%</!fin-bare>
-%<*fin-bare>
-{ duplicate$ empty$
-    'pop$
-    'write$
-  if$
-%</fin-bare>
-%<html&htdes>  "</dd>" write$
-%<html&!htdes&htlist>  "</li>" write$
-%<html&!htdes&!htlist>  "</p>" write$
-  newline$
-%<*annote>
-%<*!html>
-  annote missing$
-    { "\bibAnnoteFile{" cite$ * "}" * write$ newline$ }
-    { "\bibAnnote{" cite$ * "}{" * annote * "}" * write$ newline$
-    }
-  if$
-%</!html>
-%<*html>
-  "<blockquote><strong>Key:</strong> "
-  cite$ * write$
-  annote missing$
-    { newline$ }
-    { "<br><strong>Annotation:</strong>" write$ newline$
-      annote write$ newline$
-    }
-  if$
-  "</blockquote>" write$ newline$
-%</html>
-%</annote>
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`new.block'}
-%    \begin{macrocode}
-FUNCTION {new.block}
-{ output.state before.all =
-    'skip$
-    { after.block 'output.state := }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`new.sentence'}
-%    \begin{macrocode}
-FUNCTION {new.sentence}
-{ output.state after.block =
-    'skip$
-    { output.state before.all =
-        'skip$
-        { after.sentence 'output.state := }
-      if$
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`add.blank'}
-% When text is printed with \texttt{output} or
-% \texttt{output.check}, the \texttt{output.state} is set such that
-% a comma will precede the next output text. For special effects, we want to
-% suppress this comma, inserting a blank instead. Hence the
-% \texttt{output.state} is changed to \texttt{before.all}, meaning no
-% punctuation is to be inserted.
-%    \begin{macrocode}
-FUNCTION {add.blank}
-{  " " * before.all 'output.state :=
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`add.colon'}
-%    \begin{macrocode}
-%<*au-col|tit-col>
-FUNCTION {add.colon}
-{ duplicate$ empty$
-    'skip$
-    { ":" * add.blank }
-  if$
-}
-
-%</au-col|tit-col>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`no.blank.or.punct'}
-% Another frill is to suppresss both blanks and punctuation. The |\hspace|
-% permits a line break at this point.
-%    \begin{macrocode}
-%<*yrpp-xsp>
-FUNCTION {no.blank.or.punct}
-%<*!html>
-{  "\hspace{0pt}" * before.all 'output.state :=
-}
-%</!html>
-%<html>{  before.all 'output.state := }
-
-%</yrpp-xsp>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`date.block'}
-% The \texttt{date.block} function is used for special punctuating effects
-% after the date.
-%    \begin{macrocode}
-FUNCTION {date.block}
-{
-%<*!yrp-x>
-%<yrp-col>  ":" *
-%<*!yrp-col>
-%<yrp-semi>  ";" *
-%<*!yrp-semi>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&!yrp-per>  skip$
-%<(blk-com|blk-tit|blk-tita)&yrp-per>  new.sentence
-%</!yrp-semi>
-%</!yrp-col>
-%</!yrp-x>
-%<*yrp-x|yrp-col|yrp-semi>
-%<!yrpp-xsp>  add.blank
-%<yrpp-xsp>  no.blank.or.punct
-%</yrp-x|yrp-col|yrp-semi>
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`not'}
-%    \begin{macrocode}
-FUNCTION {not}
-{   { #0 }
-    { #1 }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`and'}
-%    \begin{macrocode}
-FUNCTION {and}
-{   'skip$
-    { pop$ #0 }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`or'}
-%    \begin{macrocode}
-FUNCTION {or}
-{   { pop$ #1 }
-    'skip$
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`non.stop'}
-% This function (my invention) tests if the last character in the string
-% on the stack is \texttt{. ! ?} by using \texttt{add.period\$}. It is to
-% be used for conditional italic correction or adding commas.
-%    \begin{macrocode}
-%<*!tit-it&tit-qq>
-FUNCTION {non.stop}
-{ duplicate$
-   "}" * add.period$
-   #-1 #1 substring$ "." =
-}
-
-%</!tit-it&tit-qq>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`remove.dots'}
-% This macro removes any periods from the string on the stack. To be used
-% for undotting journal names, months, and juniors. Previously
-% \texttt{purify\$} was used for this, but that removes more than just
-% dots.
-%
-% May 2007, Joseph A. Wright (Morning Star, UK) contributed a revision to allow
-% the dot accent |\.| to be retained.
-%    \begin{macrocode}
-%<*nm-rv|nm-rvx|nm-rvcx|mth-bare|jxper>
-STRINGS {z}
-
-FUNCTION {remove.dots}
-{ 'z :=
-   ""
-   { z empty$ not }
-   { z #1 #2 substring$
-     duplicate$ "\." =
-       { z #3 global.max$ substring$ 'z :=  * }
-       { pop$
-         z #1 #1 substring$
-         z #2 global.max$ substring$ 'z :=
-         duplicate$ "." = 'pop$
-           { * }
-         if$
-       }
-     if$
-   }
-   while$
-}
-%</nm-rv|nm-rvx|nm-rvcx|mth-bare|jxper>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`new.block.checka'}
-%    \begin{macrocode}
-%<*!ay>
-FUNCTION {new.block.checka}
-{ empty$
-    'skip$
-    'new.block
-  if$
-}
-%</!ay>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`new.block.checkb'}
-%    \begin{macrocode}
-FUNCTION {new.block.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.block
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`new.sentence.checka'}
-%    \begin{macrocode}
-%<*!ay>
-FUNCTION {new.sentence.checka}
-{ empty$
-    'skip$
-    'new.sentence
-  if$
-}
-%</!ay>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`new.sentence.checkb'}
-%    \begin{macrocode}
-%<*!ay>
-FUNCTION {new.sentence.checkb}
-{ empty$
-  swap$ empty$
-  and
-    'skip$
-    'new.sentence
-  if$
-}
-%</!ay>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`field.or.null'}
-%    \begin{macrocode}
-FUNCTION {field.or.null}
-{ duplicate$ empty$
-    { pop$ "" }
-    'skip$
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`emphasize'}
-% Emphasis can be either italic or the alternating font. The font command
-% may be NFSS or regular \LaTeX~2.09 declarations.
-%    \begin{macrocode}
-FUNCTION {emphasize}
-%<*!em-x>
-{ duplicate$ empty$
-    { pop$ "" }
-%<html>    { "<i>" swap$ * "</i>" * }
-%<*!html>
-%<em-ul>    { "\uline{" swap$ * "}" * }
-%<*!em-ul>
-%<*!nfss>
-%<!em-it>    { "{\em " swap$ * "\/}" * }
-%<em-it>    { "{\it " swap$ * "\/}" * }
-%</!nfss>
-%<*nfss>
-%<!em-it>    { "\emph{" swap$ * "}" * }
-%<em-it>    { "\textit{" swap$ * "}" * }
-%</nfss>
-%</!em-ul>
-%</!html>
-  if$
-}
-%</!em-x>
-%<em-x>{ skip$ }
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`bolden'}
-% The bold font command may be NFSS or the regular \LaTeX~2.09 declaration.
-%    \begin{macrocode}
-%<*nmft-bf|vol-bf|vol-2bf|lab-bf|dtbf|pres-bf>
-FUNCTION {bolden}
-{ duplicate$ empty$
-    { pop$ "" }
-%<html>    { "<b>" swap$ * "</b>" * }
-%<*!html>
-%<!nfss>    { "{\bf " swap$ * "}" * }
-%<nfss>    { "\textbf{" swap$ * "}" * }
-%</!html>
-  if$
-}
-%</nmft-bf|vol-bf|vol-2bf|lab-bf|dtbf|pres-bf>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`scaps'}
-% To put text into small caps.
-%    \begin{macrocode}
-%<*lab-sc|nmft-sc|pres-sc>
-FUNCTION {scaps}
-{ duplicate$ empty$
-    { pop$ "" }
-%<html>    { skip$ }
-%<*!html>
-%<!nfss>    { "{\sc " swap$ * "}" * }
-%<nfss>    { "\textsc{" swap$ * "}" * }
-%</!html>
-  if$
-}
-%</lab-sc|nmft-sc|pres-sc>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`bib.name.font'}
-% \begin{macro}{`bib.fname.font'}
-% \begin{macro}{`cite.name.font'}
-% Define functions for formatting the author/editor names, one for the
-% surnames (\texttt{bib.name.font}) and one for the first names
-% (\texttt{bib.fname.font}). These could be identical, or the latter is
-% deactivated if first names are not to be formatted, only the last names.
-%
-% For citations, we have \texttt{cite.name.font}. Here only surnames appear.
-%
-% It is also possible to have a user-defined font command for each, which the
-% user must define in his work. These are |\bibnamefont{}| and |\bibfnamefont{}|,
-% and some defaults are provided that simply repeat the arguments. Two commands
-% are needed if \texttt{nmft-def} and \texttt{fnm-def} are both given.
-%
-% If neither \texttt{fnm-def} nor \texttt{fnm-rm} are given, then the first names
-% are formatted the same as the surnames.
-%    \begin{macrocode}
-%<*nmft>
-FUNCTION {bib.name.font}
-%<nmft-it>{ emphasize }
-%<!nmft-it&nmft-bf>{ bolden }
-%<!nmft-it&!nmft-bf&nmft-sc>{ scaps }
-%<*!nmft-it&!nmft-bf&!nmft-sc&nmft-def>
-{ duplicate$ empty$
-  { pop$ "" }
-%<!html>  { "\bibnamefont{" swap$ * "}" * }
-%<html>  { skip$ }
-  if$
-}
-%</!nmft-it&!nmft-bf&!nmft-sc&nmft-def>
-FUNCTION {bib.fname.font}
-%<!fnm-rm&!fnm-def>{ bib.name.font }
-%<fnm-rm>{ skip$ }
-%<*!fnm-rm&fnm-def>
-{ duplicate$ empty$
-  { pop$ "" }
-%<!html>  { "\bibfnamefont{" swap$ * "}" * }
-%<html>  { skip$ }
-  if$
-}
-%</!fnm-rm&fnm-def>
-%</nmft>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*lab>
-FUNCTION {cite.name.font}
-%<lab-it>{ emphasize }
-%<!lab-it&lab-bf>{ bolden }
-%<!lab-it&!lab-bf&lab-sc>{ scaps }
-%<*!lab-it&!lab-bf&!lab-sc&lab-def>
-{ duplicate$ empty$
-  { pop$ "" }
-%<!html>  { "\citenamefont{" swap$ * "}" * }
-%<html>  { skip$ }
-  if$
-}
-%</!lab-it&!lab-bf&!lab-sc&lab-def>
-%</lab>
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{`tie.or.space.prefix'}
-% The function \texttt{tie.or.space.prefix} determines whether
-% the top item on the stack requires a tie character and
-% slips that (or a space character if not) ahead of it.
-% At this point a font switch or other function can be applied to
-% the top item on the stack, and the appropriate space found
-% just ahead of it on the stack.
-%
-% The sequence \texttt{tie.or.space.prefix} \texttt{*} \texttt{*} is a common idiom
-% for joining the top two stack objects with a tie or space
-% depending on the length of the top object.
-%
-% Another idiom is to apply \texttt{tie.or.space.prefix}, apply a font switch,
-% and then swap and join. In this case the tie or space follows the object.
-%    \begin{macrocode}
-FUNCTION {tie.or.space.prefix}
-{ duplicate$ text.length$ #3 <
-    { "~" }
-    { " " }
-  if$
-  swap$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`capitalize'}
-% Capitalizing is easy for regular languages, but for \texttt{babel},
-% some trickery stuff is needed; definitions of |\capitalize| and
-% |\Capitalize| are written to the \texttt{.bbl} file.
-%    \begin{macrocode}
-
-FUNCTION {capitalize}
-%<!babel>{ "u" change.case$ "t" change.case$ }
-%<babel>{ "\capitalize" swap$ * }
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`space.word'}
-% The function \texttt{space.word} adds a space before and after the word or
-% words currently on the stack. This was added for the \texttt{bbl.}$nnn$
-% functions, that contain only a word without spacing, but replace explicit
-% text in the originals that were spaced out. Its seems more flexible to
-% define the word functions to be without spacing.
-%    \begin{macrocode}
-FUNCTION {space.word}
-{ " " swap$ * " " * }
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
- % Here are the language-specific definitions for explicit words.
- % Each function has a name bbl.xxx where xxx is the English word.
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*!exlang>
-%    \end{macrocode}
-%
-% \begin{macro}{`bbl.xxx'}
-% These are the default English words. There is no default language
-% option: one of \texttt{english} or \texttt{babel} must be given.
-%    \begin{macrocode}
-%<*!babel>
- % The language selected here is ENGLISH
-FUNCTION {bbl.and}
-%<!varand|html>{ "and"}
-%<varand&!html>{ "\protect\BIBand{}"}
-
-FUNCTION {bbl.etal}
-{ "et~al." }
-
-FUNCTION {bbl.editors}
-%<!ed>{ "editors" }
-%<ed>{ "eds." }
-
-FUNCTION {bbl.editor}
-%<!ed>{ "editor" }
-%<ed>{ "ed." }
-
-FUNCTION {bbl.edby}
-{ "edited by" }
-
-FUNCTION {bbl.edition}
-%<!abr>{ "edition" }
-%<abr&!ednx>{ "edn." }
-%<abr&ednx>{ "ed." }
-
-FUNCTION {bbl.volume}
-%<!abr>{ "volume" }
-%<abr>{ "vol." }
-
-FUNCTION {bbl.of}
-{ "of" }
-
-FUNCTION {bbl.number}
-%<!abr>{ "number" }
-%<abr>{ "no." }
-
-FUNCTION {bbl.nr}
-{ "no." }
-
-FUNCTION {bbl.in}
-{ "in" }
-
-FUNCTION {bbl.pages}
-%<!pp&!ppx>{ "pages" }
-%<pp>{ "pp." }
-%<!pp&ppx>{ "" }
-
-FUNCTION {bbl.page}
-%<!pp&!ppx>{ "page" }
-%<pp>{ "p." }
-%<!pp&ppx>{ "" }
-
-%<*revdata>
-FUNCTION {bbl.eidpp}
-{ "pages" }
-
-%</revdata>
-FUNCTION {bbl.chapter}
-%<!abr>{ "chapter" }
-%<abr>{ "chap." }
-
-FUNCTION {bbl.techrep}
-%<!abr>{ "Technical Report" }
-%<abr>{ "Tech. Rep." }
-
-FUNCTION {bbl.mthesis}
-{ "Master's thesis" }
-
-FUNCTION {bbl.phdthesis}
-{ "Ph.D. thesis" }
-
-%<*!xedn>
-FUNCTION {bbl.first}
-%<!ord>{ "First" }
-%<ord>{ "1st" }
-
-FUNCTION {bbl.second}
-%<!ord>{ "Second" }
-%<ord>{ "2nd" }
-
-FUNCTION {bbl.third}
-%<!ord>{ "Third" }
-%<ord>{ "3rd" }
-
-FUNCTION {bbl.fourth}
-%<!ord>{ "Fourth" }
-%<ord>{ "4th" }
-
-FUNCTION {bbl.fifth}
-%<!ord>{ "Fifth" }
-%<ord>{ "5th" }
-
-FUNCTION {bbl.st}
-{ "st" }
-
-FUNCTION {bbl.nd}
-{ "nd" }
-
-FUNCTION {bbl.rd}
-{ "rd" }
-
-FUNCTION {bbl.th}
-{ "th" }
-
-%</!xedn>
-%<*!abr>
-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"}
-
-%</!abr>
-%<*abr>
-MACRO {jan} {"Jan."}
-
-MACRO {feb} {"Feb."}
-
-MACRO {mar} {"Mar."}
-
-MACRO {apr} {"Apr."}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"Jun."}
-
-MACRO {jul} {"Jul."}
-
-MACRO {aug} {"Aug."}
-
-MACRO {sep} {"Sep."}
-
-MACRO {oct} {"Oct."}
-
-MACRO {nov} {"Nov."}
-
-MACRO {dec} {"Dec."}
-
-%</abr>
-%</!babel>
-%    \end{macrocode}
-%
-% Here are the definitions for \texttt{babel} option, i.e., explicit
-% translations are not used, but rather only \LaTeX{} macros that must be
-% defined in the file \texttt{babelbst.tex}. This could allow automatic
-% language selection.
-%    \begin{macrocode}
-%<*babel>
- % The BABEL language selection is made here; definitions in babelbst.tex.
-FUNCTION {bbl.and}
-{ "\bbland{}"}
-
-FUNCTION {bbl.etal}
-{ "\bbletal{}"}
-
-FUNCTION {bbl.editors}
-%<!ed>{ "\bbleditors{}" }
-%<ed>{ "\bbleds{}" }
-
-FUNCTION {bbl.editor}
-%<!ed>{ "\bbleditor{}" }
-%<ed>{ "\bbled{}" }
-
-FUNCTION {bbl.edby}
-{ "\bbledby{}" }
-
-FUNCTION {bbl.edition}
-%<!abr>{ "\bbledition{}" }
-%<abr>{ "\bbledn{}" }
-
-FUNCTION {bbl.volume}
-%<!abr>{ "\bblvolume{}" }
-%<abr>{ "\bblvol{}" }
-
-FUNCTION {bbl.of}
-{ "\bblof{}" }
-
-FUNCTION {bbl.number}
-%<!abr>{ "\bblnumber{}" }
-%<abr>{ "\bblno{}" }
-
-FUNCTION {bbl.nr}
-{ "\bblno{}" }
-
-FUNCTION {bbl.in}
-{ "\bblin{}" }
-
-FUNCTION {bbl.pages}
-%<!pp&!ppx>{ "\bblpages{}" }
-%<pp>{ "\bblpp{}" }
-%<!pp&ppx>{ "" }
-
-FUNCTION {bbl.page}
-%<!pp&!ppx>{ "\bblpage{}" }
-%<pp>{ "\bblp{}" }
-%<!pp&ppx>{ "" }
-
-FUNCTION {bbl.chapter}
-%<!abr>{ "\bblchapter{}" }
-%<abr>{ "\bblchap{}" }
-
-FUNCTION {bbl.techrep}
-%<!abr>{ "\bbltechreport{}" }
-%<abr>{ "\bbltechrep{}" }
-
-FUNCTION {bbl.mthesis}
-{ "\bblmthesis{}" }
-
-FUNCTION {bbl.phdthesis}
-{ "\bblphdthesis{}" }
-
-%<*revdata>
-FUNCTION {bbl.eidpp}
-{ "\bbleidpp{}" }
-
-%</revdata>
-%<*!xedn>
-FUNCTION {bbl.first}
-%<!ord>{ "\bblfirst{}" }
-%<ord>{ "\bblfirsto{}" }
-
-FUNCTION {bbl.second}
-%<!ord>{ "\bblsecond{}" }
-%<ord>{ "\bblsecondo{}" }
-
-FUNCTION {bbl.third}
-%<!ord>{ "\bblthird{}" }
-%<ord>{ "\bblthirdo{}" }
-
-FUNCTION {bbl.fourth}
-%<!ord>{ "\bblfourth{}" }
-%<ord>{ "\bblfourtho{}" }
-
-FUNCTION {bbl.fifth}
-%<!ord>{ "\bblfifth{}" }
-%<ord>{ "\bblfiftho{}" }
-
-FUNCTION {bbl.st}
-{ "\bblst{}" }
-
-FUNCTION {bbl.nd}
-{ "\bblnd{}" }
-
-FUNCTION {bbl.rd}
-{ "\bblrd{}" }
-
-FUNCTION {bbl.th}
-{ "\bblth{}" }
-
-%</!xedn>
-MACRO {jan} {"\bbljan{}"}
-
-MACRO {feb} {"\bblfeb{}"}
-
-MACRO {mar} {"\bblmar{}"}
-
-MACRO {apr} {"\bblapr{}"}
-
-MACRO {may} {"\bblmay{}"}
-
-MACRO {jun} {"\bbljun{}"}
-
-MACRO {jul} {"\bbljul{}"}
-
-MACRO {aug} {"\bblaug{}"}
-
-MACRO {sep} {"\bblsep{}"}
-
-MACRO {oct} {"\bbloct{}"}
-
-MACRO {nov} {"\bblnov{}"}
-
-MACRO {dec} {"\bbldec{}"}
-
-%</babel>
-%    \end{macrocode}
-%
-% \begin{macro}{`eng.ord'}
-% This function adds English endings for ordinals 1, 2, 3. However, if
-% the second last digit is 1, then the ending is `th' for all last digits.
-% So far, all other languages included do not have this problem, and it is
-% sufficient to add the \textsl{th} equivalent. This might change with further
-% languages.
-%
-% This function must be included with \texttt{babel} too, since that includes
-% English. This means that the language definition files must also provide
-% for |\bblst|, |\bblnd|, and |\bblrd|, setting them all equal to |\bblth|.
-%
-%    \begin{macrocode}
-%<*(english|!exlang)&!xedn>
-FUNCTION {eng.ord}
-{ duplicate$ "1" swap$ *
-  #-2 #1 substring$ "1" =
-     { bbl.th * }
-     { duplicate$ #-1 #1 substring$
-       duplicate$ "1" =
-         { pop$ bbl.st * }
-         { duplicate$ "2" =
-             { pop$ bbl.nd * }
-             { "3" =
-                 { bbl.rd * }
-                 { bbl.th * }
-               if$
-             }
-           if$
-          }
-       if$
-     }
-   if$
-}
-
-%</(english|!exlang)&!xedn>
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</!exlang>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</!tail>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*!head>
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%<*!jabr>
-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"}
-%</!jabr>
-%    \end{macrocode}
-%
-% Journal abbreviations have been revised from the original Patashnik
-% ones with help of Conrado Badenas and the IUA recommendations.
-%    \begin{macrocode}
-%<*jabr>
-MACRO {acmcs} {"ACM Comput. Surv."}
-
-MACRO {acta} {"Acta Inf."}
-
-MACRO {cacm} {"Commun. ACM"}
-
-MACRO {ibmjrd} {"IBM J. Res. Dev."}
-
-MACRO {ibmsj} {"IBM Syst.~J."}
-
-MACRO {ieeese} {"IEEE Trans. Software Eng."}
-
-MACRO {ieeetc} {"IEEE Trans. Comput."}
-
-MACRO {ieeetcad}
- {"IEEE Trans. Comput. Aid. Des."}
-
-MACRO {ipl} {"Inf. Process. Lett."}
-
-MACRO {jacm} {"J.~ACM"}
-
-MACRO {jcss} {"J.~Comput. Syst. Sci."}
-
-MACRO {scp} {"Sci. Comput. Program."}
-
-MACRO {sicomp} {"SIAM J. Comput."}
-
-MACRO {tocs} {"ACM Trans. Comput. Syst."}
-
-MACRO {tods} {"ACM Trans. Database Syst."}
-
-MACRO {tog} {"ACM Trans. Graphic."}
-
-MACRO {toms} {"ACM Trans. Math. Software"}
-
-MACRO {toois} {"ACM Trans. Office Inf. Syst."}
-
-MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
-
-MACRO {tcs} {"Theor. Comput. Sci."}
-
-%</jabr>
-%    \end{macrocode}
-%
-% \begin{macro}{`bibinfo.check'}
-%   Define functions that encapsulate the argument
-% in a \TeX\ macro that allows for further processing when the
-% bibliography is processed, or allows for a separate computer
-% program to parse the |\bibitem| contents.
-%
-% The following table summarizes how each of the \btx{} entries
-% is accessed for output; these are the points where
-% the \texttt{format.bibinfo} or \texttt{bibinfo.check} functions
-% are called.
-% \subsubsection*{Trapped via \texttt{format.bibinfo}}
-% \begin{description}
-% \item[  \texttt{author}        ]\texttt{format.names}
-% \item[  \texttt{collaboration} ]\texttt{format.authors}
-% \item[  \texttt{editor}        ]\texttt{format.editors} (\texttt{book}, \texttt{inbook}, \texttt{proceedings}), \texttt{format.names.ed} (\texttt{format.in.ed.booktitle})
-% \item[  \texttt{eid}           ]\texttt{format.journal.eid} (\texttt{format.vol.num.pages}, article) checks the output from \texttt{format.journal.pages}
-% \item[  \texttt{isbn}          ]\texttt{format.isbn}
-% \item[  \texttt{issn}          ]\texttt{format.issn}
-% \item[  \texttt{journal}       ]\texttt{format.article.crossref}, article
-% \item[  \texttt{numpages}      ]\texttt{format.journal.eid}
-% \item[  \texttt{organization}  ]\texttt{format.organization.address} (\texttt{inproceedings}, \texttt{proceedings}), \texttt{manual}
-% \item[  \texttt{pages}         ]\texttt{format.book}.pages (\texttt{book}, \texttt{booklet}), \texttt{format.pages} (\texttt{format.journal.pages}, \texttt{format.chapter.pages}, \texttt{article}, \texttt{inbook}, \texttt{incollection}, \texttt{inproceedings})
-% \item[  \texttt{publisher}     ]\texttt{format.publisher.address} (like \texttt{output.check}, \texttt{inproceedings}, \texttt{proceedings})
-% \item[  \texttt{title}         ]\texttt{format.title}, \texttt{format.btitle}, \texttt{misc}, \texttt{presort}, \texttt{bib.sort.order}
-% \item[  \texttt{volume}        ]\texttt{format.bvolume}, \texttt{format.vol.num.pages}, \texttt{format.book.crossref}
-% \item[  \texttt{year}          ]in optional argument of \texttt{\char`\\bibitem}, \texttt{format.date} (as part of date), \texttt{format.year}, \texttt{format.org.or.pub}
-% \item[  \texttt{booktitle}     ]\texttt{format.in.ed.booktitle} (\texttt{incollection}, \texttt{inproceedings}), \texttt{format.incoll.inproc.crossref}
-% \item[  \texttt{howpublished}  ]\texttt{booklet}, \texttt{misc}
-% \item[  \texttt{edition}       ]\texttt{convert.edition.format.edition}
-% \item[  \texttt{institution}   ]\texttt{techreport}
-% \item[  \texttt{school}        ]\texttt{mastersthesis}, \texttt{phdthesis}
-% \item[  \texttt{address}       ]\texttt{format.org.or.pub}, \texttt{booklet}, \texttt{manual}, \texttt{mastersthesis}, \texttt{phdthesis}, \texttt{techreport}
-% \item[  \texttt{chapter}       ]\texttt{format.chapter.pages}
-% \item[  \texttt{number}        ]\texttt{format.number.series}, \texttt{format.vol.num.pages}, \texttt{format.tr.number}
-% \item[  \texttt{series}        ]\texttt{format.bvolume}, \texttt{format.number.series}, \texttt{format.book.crossref}
-% \item[  \texttt{type}          ]\texttt{format.chapter.pages}, \texttt{format.thesis.type}, \texttt{format.tr.number}
-% \item[  \texttt{month}         ]\texttt{format.date}
-% \item[  \texttt{note}          ]\texttt{format.note}
-% \item[  \texttt{annote}        ]\texttt{fin.entry}
-% \end{description}
-%
-% \subsubsection*{Encapsulated via \texttt{\char`\\url}}
-% \begin{description}
-% \item[  \texttt{url}           ]\texttt{format.url} (\texttt{\char`\\harvardurl}, \texttt{\char`\\url}), \texttt{format.url} (\texttt{\char`\\url}), \texttt{format.note} (\texttt{\char`\\url})
-% \end{description}
-%
-% \subsubsection*{Encapsulated via \texttt{\char`\\doi}}
-% \begin{description}
-% \item[  \texttt{doi}           ]\texttt{format.doi} (\texttt{\char`\\doi})
-% \end{description}
-%
-% \subsubsection*{Encapsulated via \texttt{\char`\\eprint}}
-% \begin{description}
-% \item[  \texttt{eprint}        ]\texttt{format.eprint}
-% \item[  \texttt{archive}       ]\texttt{format.eprint}
-% \end{description}
-%
-% \subsubsection*{Not encapsulated:}
-% \begin{description}
-% \item[  \texttt{key}           ]cite key
-% \item[  \texttt{language}      ]operand of \texttt{\char`\\selectlanguage}
-% \end{description}
-%
-% \subsubsection*{\texttt{bibinfo} tag, but not a \btx{} field}
-% \begin{description}
-% \item[  \texttt{date}          ]\texttt{format.date}
-% \end{description}
-%
-% Provides robust access to fields, checking against \texttt{missing\$}
-% and \texttt{empty\$}. A \dtx{} option allows giving
-% a warning if either is the case.
-%
-% If not, it encapsulates the argument in a \TeX\ macro |\bibinfo|.
-% The encapsulation is enabled by the \texttt{bibinfo} \dtx{} option:
-% if turned off, it simply pops the unneeded object.
-%
-% \texttt{field} \texttt{string} \texttt{->} \texttt{encapsulated-field}
-%
-% \texttt{empty} \texttt{string} \texttt{->} \texttt{empty}
-% Side effect: warning.
-%    \begin{macrocode}
-FUNCTION {bibinfo.check}
-{ swap$
-  duplicate$ missing$
-    {
-%<bibinfo.warning>      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
-%<!bibinfo.warning>      pop$ pop$
-      ""
-    }
-    { duplicate$ empty$
-        {
-%<bibinfo.warning>          swap$ "empty " swap$ * " in " * cite$ * warning$
-%<!bibinfo.warning>          swap$ pop$
-        }
-        { swap$
-%<bibinfo>          "\bibinfo{" swap$ * "}{" * swap$ * "}" *
-%<!bibinfo>          pop$
-        }
-      if$
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`bibinfo.warn'}
-% Replaces \texttt{output.check}
-% with \texttt{bibinfo.warn} followed by \texttt{output}.
-%
-% \texttt{field} \texttt{string} \texttt{->} \texttt{encapsulated-field}
-%
-% \texttt{empty} \texttt{string} \texttt{->} \texttt{empty}
-%
-% Side effect: warning if the field is empty.
-% Note: if the \dtx{} option \texttt{bibinfo} is not in effect,
-% then no encapsulation is done.
-%    \begin{macrocode}
-FUNCTION {bibinfo.warn}
-{ swap$
-  duplicate$ missing$
-    {
-      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
-      ""
-    }
-    { duplicate$ empty$
-        {
-          swap$ "empty " swap$ * " in " * cite$ * warning$
-        }
-        { swap$
-%<bibinfo>          "\bibinfo{" swap$ * "}{" * swap$ * "}" *
-%<!bibinfo>          pop$
-        }
-      if$
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.eprint'}
-% The access function for the \texttt{eprint} field.
-%
-% If the \texttt{bibinfo} \dtx{} option is selected, then this function
-% encapsulates the argument in a \TeX\ macro |\eprint|.
-%
-% \texttt{->} \texttt{encapsulated-URL}
-%    \begin{macrocode}
-%<*eprint>
-FUNCTION {format.eprint}
-{ eprint duplicate$ empty$
-    'skip$
-    { "\eprint"
-      archive empty$
-        'skip$
-        { "[" * archive * "]" * }
-      if$
-      "{" * swap$ * "}" *
-    }
-  if$
-}
-%</eprint>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`write.url'}
-% This function taken over from \texttt{agsm.sty}, the main \texttt{harvard}
-% bib style. For non-Harvard styles that want to add the URL on a new line
-% after the reference, use this function too, but defined slightly
-% differently.
-%    \begin{macrocode}
-%<*(harnm|url-nl)&!revdata>
-FUNCTION {write.url}
-%<*!html>
-{
-%<*url-doi&url>
-  doi empty$
-    { url }
-    { "http://dx.doi.org/" doi * }
-  if$
-%</url-doi&url>
-%<!url-doi|!url>  url
-  duplicate$ empty$
-    { pop$ }
-%<harnm>    { "\newline\harvardurl{" swap$ * "}" * write$ newline$ }
-%<!harnm&url-nl>    { "\newline\urlprefix\url{" swap$ * "}" * write$ newline$ }
-  if$
-}
-%</!html>
-%<*html>
-{
-%<*url-doi&url>
-  doi empty$
-    { url }
-    { "http://dx.doi.org/" doi * }
-  if$
-%</url-doi&url>
-%<!url-doi|!url>  url
-  duplicate$ empty$
-    { pop$ }
-    {  duplicate$ "<br><a href=" quote$ * swap$ * quote$
-      * ">" * swap$ * "</a>" *  write$ newline$ }
-  if$
-}
-%</html>
-
-%</(harnm|url-nl)&!revdata>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.url'}
-% This function is reworked for \texttt{\filename} to provide a
-% cleaner URL for DOIs. The definition of \cmd{\urldoi} is written in
-% the \texttt{.bbl} file by the function \texttt{begin.bib}. When the
-% package \pkg{hyperref} is loaded, the \meta{doi} is a hyperlink to
-% \texttt{https://doi.org/\meta{doi}}.
-%    \begin{macrocode}
-%<*(url-blk&!harnm)|revdata>
-FUNCTION {format.url}
-{
-%<url-doi&url>  doi empty$
-%<url-doi&url>    {
-      url
-      duplicate$ empty$
-        { pop$ "" }
-%<!html>        { "\urlprefix\url{" swap$ * "}" * }
-%<html>        {
-%<html>          duplicate$ "<a href=" quote$ * swap$ * quote$ *
-%<html>            ">" * swap$ * "</a>" *
-%<html>        }
-      if$
-%<*url-doi&url>
-    }
-    {
-      doi
-%<!html>      "\doiprefix\urldoi{" swap$ * "}" *
-%<html>      duplicate$ "doi:<a href=" quote$ * "https://doi.org/" *
-%<html>        swap$ * quote$ * ">" * swap$ * "</a>" *
-    }
-  if$
-%</url-doi&url>
-}
-
-%</(url-blk&!harnm)|revdata>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`check.speaker'}
-% The \texttt{presentation} type uses the \texttt{key} entry to indicate which
-% author is the speaker, as the sequence number in the author list. The speaker's
-% name is put into a different font, depending on the extra option. If no font
-% is specified, all names are the same.
-%    \begin{macrocode}
-INTEGERS { nameptr namesleft numnames }
-
-%<*pres-bf|pres-it|pres-sc>
-FUNCTION {check.speaker}
-{ key empty$ 'skip$
-  { key nameptr int.to.str$ =
-    {
-%<pres-bf>      bolden
-%<pres-it&!pres-bf>      emphasize
-%<pres-sc&!pres-it&!pres-bf>      scaps
-    }
-      'skip$
-    if$
-  }
-  if$
-}
-
-%</pres-bf|pres-it|pres-sc>
-%    \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{`format.names'}
-% The \texttt{harvard} package now (version 2.0.3, for \LaTeXe) uses
-% |\harvardand| in place of the word \textsl{and} so that it can be changed
-% at run time. This is allowed for with the option \texttt{harnm}, which
-% need not be used only with the \texttt{har} option.
-% This seems like a useless feature for \texttt{.bst} files made from
-% this multilanguage source. However, it is included anyway, which means
-% if \texttt{harnm} option selected, one must redefine |\harvardand|
-% in the document for the language being used.
-%
-% The location of the junior part for reversed name is not obvious. Prior
-% to version 4.0, I always had it attached to the last name, as
-% Smith, Jr, John, put it probably is better as Smith, John, Jr. For the
-% AGU \texttt{nm-rev1} I always did it this way, probably because I had a
-% good AGU example to follow. Dilemma: do I just change them all or add an
-% option to do it? The option will maintain consistency with older
-% versions, but this could also be considered a bug fix rather than a new
-% feature. Solution: use the option, since I have found other \texttt{.bst}
-% files from Beebe and Harvard that put junior between surname and first
-% name.
-%
-% |bibinfo| is a variable used to store a string telling it whether the
-% names being formatted are authors or editors, since this function is called
-% for both purposes. Every call to this function must push the string onto the stack
-% just before the call.
-%    \begin{macrocode}
-STRINGS  { bibinfo}
-
-%    \end{macrocode}
-%
-% Stack note: if the names argument is a non-nil list, this function returns
-% one object on the stack, the formatted list of names.
-%
-% \texttt{names`string} \texttt{bibinfo`string} \texttt{->} \texttt{author-list`string}
-%    \begin{macrocode}
-FUNCTION {format.names}
-{ 'bibinfo :=
-  duplicate$ empty$ 'skip$ {
-  's :=
-  "" 't :=
-  #1 'nameptr :=
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr
-%    \end{macrocode}
-% Here is the author formatting when the names are not set in any special
-% font, or when the entire name set in a single special font.
-%    \begin{macrocode}
-%<*!(nmft&(fnm-rm|fnm-def))>
-%<*!nm-rev1&!nm-revv1>
-%<nm-init>      "{f.~}{vv~}{ll}{, jj}"
-%<*!nm-init>
-%<nm-rev&!jnrlst>      "{vv~}{ll}{, jj}{, f.}"
-%<nm-rev&jnrlst>      "{vv~}{ll}{, f.}{, jj}"
-%<*!nm-rev>
-%<nm-rv&!jnrlst>      "{vv~}{ll}{ jj}{ f{~}}"
-%<nm-rv&jnrlst>      "{vv~}{ll}{ f{~}}{ jj}"
-%<*!nm-rv>
-%<nm-rvx&!jnrlst>      "{vv~}{ll}{ jj}{ f{}}"
-%<nm-rvx&jnrlst>      "{vv~}{ll}{ f{}}{ jj}"
-%<*!nm-rvx>
-%<nm-rvcx&!jnrlst>      "{vv~}{ll}{, jj}{, f{}}"
-%<nm-rvcx&jnrlst>      "{vv~}{ll}{, f{}}{, jj}"
-%<*!nm-rvcx>
-%<nm-rvv&!jnrlst>      "{vv~}{ll}{ jj}{ f{.}.}"
-%<nm-rvv&jnrlst>      "{vv~}{ll}{ f{.}.}{ jj}"
-%<*!nm-rvv>
-%<nm-rvvc&!jnrlst>      "{vv~}{ll}{, jj}{, f{.}.}"
-%<nm-rvvc&jnrlst>      "{vv~}{ll}{, f{.}.}{, jj}"
-%<*!nm-rvvc>
-%<nm-revf&!jnrlst>      "{vv~}{ll}{, jj}{, ff}"
-%<nm-revf&jnrlst>      "{vv~}{ll}{, ff}{, jj}"
-%<*!nm-revf>
-      "{ff~}{vv~}{ll}{, jj}"
-%</!nm-revf>
-%</!nm-rvvc>
-%</!nm-rvv>
-%</!nm-rvcx>
-%</!nm-rvx>
-%</!nm-rv>
-%</!nm-rev>
-%</!nm-init>
-%</!nm-rev1&!nm-revv1>
-%<*nm-rev1>
-      duplicate$ #1 >
-        { "{f.~}{vv~}{ll}{, jj}" }
-%<!jnrlst>        { "{vv~}{ll}{, jj}{, f.}" }
-%<jnrlst>        { "{vv~}{ll}{, f.}{, jj}" }
-      if$
-%</nm-rev1>
-%<*!nm-rev1&nm-revv1>
-      duplicate$ #1 >
-        { "{ff~}{vv~}{ll}{, jj}" }
-%<!jnrlst>        { "{vv~}{ll}{, jj}{, ff}" }
-%<jnrlst>        { "{vv~}{ll}{, ff}{, jj}" }
-      if$
-%</!nm-rev1&nm-revv1>
-      format.name$
-%<nm-rv|nm-rvx>      remove.dots
-%<nmft&nmand-rm>      bib.name.font
-%</!(nmft&(fnm-rm|fnm-def))>
-%    \end{macrocode}
-% Here is the author formatting when the first and last names are
-% set in (possibly different) special fonts.
-%
-% The junior part is optionally between the reversed names, or after them.
-%    \begin{macrocode}
-%<*nmft&(fnm-rm|fnm-def)>
-%<*!nm-rev1&!nm-revv1>
-%<*nm-init>
-      "{f.}" format.name$ duplicate$ empty$ 'skip$
-        { tie.or.space.prefix bib.fname.font swap$ * }
-      if$
-      s nameptr
-      "{vv~}{ll}" format.name$ bib.name.font *
-      s nameptr
-      "{jj}" format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font ", " swap$ * }
-      if$
-%</nm-init>
-%<*!nm-init>
-%<*nm-rev>
-      "{vv~}{ll}" format.name$ bib.name.font
-      s nameptr
-%<!jnrlst>      "{jj, }{f.}"
-%<jnrlst>      "{f.}{, jj}"
-      format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font ", " swap$ * }
-      if$
-%</nm-rev>
-%<*!nm-rev>
-%<*nm-rv>
-      "{vv~}{ll}" format.name$ bib.name.font
-      s nameptr
-%<!jnrlst>      "{jj }{f{~}}"
-%<jnrlst>      "{f{~}}{ jj}"
-      format.name$ duplicate$ empty$ 'skip$
-        { remove.dots bib.fname.font " " swap$ * }
-      if$
-%</nm-rv>
-%<*!nm-rv>
-%<*nm-rvx>
-      "{vv~}{ll}" format.name$ bib.name.font
-      s nameptr
-%<!jnrlst>      "{jj }{f{}}"
-%<jnrlst>      "{f{}}{ jj}"
-      format.name$ duplicate$ empty$ 'skip$
-        { remove.dots bib.fname.font " " swap$ * }
-      if$
-%</nm-rvx>
-%<*!nm-rvx>
-%<*nm-rvcx>
-      "{vv~}{ll}" format.name$ bib.name.font
-      s nameptr
-%<!jnrlst>      "{jj, }{f{}}"
-%<jnrlst>      "{f{}}{, jj}"
-      format.name$ duplicate$ empty$ 'skip$
-        { remove.dots bib.fname.font ", " swap$ * }
-      if$
-%</nm-rvcx>
-%<*!nm-rvcx>
-%<*nm-rvv>
-      "{vv~}{ll}" format.name$ bib.name.font
-      s nameptr
-%<!jnrlst>      "{jj }{f{.}.}"
-%<jnrlst>      "{f{.}.}{ jj}"
-      format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font " " swap$ * }
-      if$
-%</nm-rvv>
-%<*!nm-rvv>
-%<*nm-rvvc>
-      "{vv~}{ll}" format.name$ bib.name.font
-      s nameptr
-%<!jnrlst>      "{jj, }{f{.}.}"
-%<jnrlst>      "{f{.}.}{, jj}"
-      format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font ", " swap$ * }
-      if$
-%</nm-rvvc>
-%<*!nm-rvvc>
-%<*nm-revf>
-      "{vv~}{ll}" format.name$ bib.name.font
-      s nameptr
-%<!jnrlst>      "{jj, }{ff}"
-%<jnrlst>      "{ff}{, jj}"
-      format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font ", " swap$ * }
-      if$
-%</nm-revf>
-%<*!nm-revf>
-      "{ff}" format.name$ duplicate$ empty$ 'skip$
-        { tie.or.space.prefix bib.fname.font swap$ * }
-      if$
-      s nameptr
-      "{vv~}{ll}" format.name$ bib.name.font *
-      s nameptr
-      "{jj}" format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font ", " swap$ * }
-      if$
-%</!nm-revf>
-%</!nm-rvvc>
-%</!nm-rvv>
-%</!nm-rvcx>
-%</!nm-rvx>
-%</!nm-rv>
-%</!nm-rev>
-%</!nm-init>
-%</!nm-rev1&!nm-revv1>
-%<*nm-rev1>
-      nameptr #1 >
-        { "{f.}" format.name$ duplicate$ empty$ 'skip$
-            { tie.or.space.prefix bib.fname.font swap$ * }
-          if$
-          s nameptr
-          "{vv~}{ll}" format.name$ bib.name.font *
-          s nameptr
-          "{jj}" format.name$ duplicate$ empty$ 'skip$
-            { bib.fname.font ", " swap$ * }
-          if$
-        }
-        { "{vv~}{ll}" format.name$ bib.name.font
-          s nameptr
-%<!jnrlst>          "{jj, }{f.}"
-%<jnrlst>          "{f.}{, jj}"
-          format.name$ duplicate$ empty$ 'skip$
-            { bib.fname.font ", " swap$ * }
-          if$
-        }
-      if$
-%</nm-rev1>
-%<*!nm-rev1&nm-revv1>
-      nameptr #1 >
-        { "{ff}" format.name$ duplicate$ empty$ 'skip$
-            { tie.or.space.prefix bib.fname.font swap$ * }
-          if$
-          s nameptr
-          "{vv~}{ll}" format.name$ bib.name.font *
-          s nameptr
-          "{jj}" format.name$ duplicate$ empty$ 'skip$
-            { bib.fname.font ", " swap$ * }
-          if$
-        }
-        { "{vv~}{ll}" format.name$ bib.name.font
-          s nameptr
-%<!jnrlst>          "{jj, }{ff}"
-%<jnrlst>          "{ff}{, jj}"
-          format.name$ duplicate$ empty$ 'skip$
-            { bib.fname.font ", " swap$ * }
-          if$
-        }
-      if$
-%</!nm-rev1&nm-revv1>
-      *
-%</nmft&(fnm-rm|fnm-def)>
-      bibinfo bibinfo.check
-%<*pres-bf|pres-it|pres-sc>
-      type$ "presentation" =
-        { check.speaker }
-        'skip$
-      if$
-%</pres-bf|pres-it|pres-sc>
-      't :=
-      nameptr #1 >
-        {
-%<*nmlm>
-%<m1>          nameptr #1
-%<m2>          nameptr #2
-%<m3>          nameptr #3
-%<m4>          nameptr #4
-%<m5>          nameptr #5
-%<m6>          nameptr #6
-%<m7>          nameptr #7
-%<m8>          nameptr #8
-%<m9>          nameptr #9
-%<m0>          nameptr #0
-%<m10>          #10 +
-%<m20>          #20 +
-%<m30>          #30 +
-%<m40>          #40 +
-%<m50>          #50 +
-%<m60>          #60 +
-%<m70>          #70 +
-%<m80>          #80 +
-%<m90>          #90 +
-          #1 + =
-%<x1>          numnames #1
-%<x2>          numnames #2
-%<x3>          numnames #3
-%<x4>          numnames #4
-%<x5>          numnames #5
-%<x6>          numnames #6
-%<x7>          numnames #7
-%<x8>          numnames #8
-%<x9>          numnames #9
-%<x0>          numnames #0
-%<x10>          #10 +
-%<x20>          #20 +
-%<x30>          #30 +
-%<x40>          #40 +
-%<x50>          #50 +
-%<x60>          #60 +
-%<x70>          #70 +
-%<x80>          #80 +
-%<x90>          #90 +
-          > and
-            { "others" 't :=
-              #1 'namesleft := }
-            'skip$
-          if$
-%</nmlm>
-          namesleft #1 >
-%<!aunm-semi&!aunm-sl>            { ", " * t * }
-%<aunm-semi>            { "; " * t * }
-%<aunm-sl&!aunm-semi>            { "/ " * t * }
-            {
-              s nameptr "{ll}" format.name$ duplicate$ "others" =
-                { 't := }
-                { pop$ }
-              if$
-%<(and-com|xand)&!aunm-semi&!aunm-sl>              "," *
-%<(and-com|xand)&aunm-semi>              ";" *
-%<(and-com|xand)&aunm-sl&!aunm-semi>              "/" *
-%<*!and-xcom&!and-com&!xand>
-              numnames #2 >
-%<etal-xc>              t "others" = not and
-%<!aunm-semi&!aunm-sl>                { "," * }
-%<aunm-semi>                { ";" * }
-%<aunm-sl&!aunm-semi>                { "/" * }
-                'skip$
-              if$
-%</!and-xcom&!and-com&!xand>
-              t "others" =
-                {
-%<nmft&!nmand-rm&!(fnm-rm|fnm-def)&(etal-it|etal-rm)>                  bib.name.font
-%<*!etal-it>
-%<nmft&(nmand-rm|(fnm-rm|fnm-def))&!etal-rm>                  " " * bbl.etal bib.name.font *
-%<!(nmft&(nmand-rm|(fnm-rm|fnm-def)))|etal-rm>                  " " * bbl.etal *
-%</!etal-it>
-%<etal-it>                  " " * bbl.etal emphasize *
-%<nmft&!nmand-rm&!(fnm-rm|fnm-def)&!(etal-it|etal-rm)>                  bib.name.font
-                }
-%<*!xand>
-                {
-%<*!harnm>
-%<!amper>                  bbl.and
-%<amper>                  "\&"
-%</!harnm>
-%<harnm>                  "\harvardand{}"
-%<nmft&!nmand-rm&(fnm-rm|fnm-def)>                  bib.name.font
-                  space.word * t *
-                }
-%</!xand>
-%<xand>                { " " * t * }
-              if$
-            }
-          if$
-        }
-        't
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-%<*nmft&!nmand-rm&!(fnm-rm|fnm-def)>
-  t "others" =
-    'skip$
-    { bib.name.font }
-  if$
-%</nmft&!nmand-rm&!(fnm-rm|fnm-def)>
-  } if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.names.ed'}
-% When editors are used in place of authors to identify the work, the
-% names are always formatted just like authors'. However, in collections,
-% where ``edited by'' or ``\emph{names} (editors)'' are given, it is
-% normal not to reverse the names, even if the authors' are. The option
-% \texttt{ed-rev} sees to it that editor names are always formatted exactly
-% like those of authors, being reversed if necessary.
-%
-% The option \texttt{ed-au} is identical to \texttt{ed-rev}, but is more
-% logical. It means editors (in incollections) are formatted exactly like
-% authors, with all the font, reversing, and number limitations. This is
-% selected automatically with \texttt{nm-init} and \texttt{nm-} default to save
-% programming memory.
-%
-% The option \texttt{nm-revf} in this case acts the same as the default
-% when no \texttt{nm-} option given: full names with surname last. Therefore
-% it is not necessary to test for it at all, since it, like the default,
-% has the lowest priority: any other \texttt{nm-} option clobbers it.
-%
-% The options \texttt{aunm-semi} and \texttt{aunm-sl} will put a semi-colon or
-% slash between editor names, just as for authors, when \texttt{ed-rev} not
-% selected, in keeping with the idea that in this case both authors and editors
-% are to be formatted the same.
-%
-% This function either dispatches to \texttt{format.names} or executes code
-% which is similar. In the latter case, names are always presented first
-% followed by surname (``last name''); name limit processing (\texttt{nmlm}) is not executed;
-% and endgame processing differs in being qualified by \texttt{nmfted}.
-%
-% Stack note: if the names (second) argument is a non-nil list, this function returns
-% with one object on the stack, the formatted list of names.
-%
-% \texttt{names`string} \texttt{bibinfo`string} \texttt{->} \texttt{author-list`string}
-%    \begin{macrocode}
-FUNCTION {format.names.ed}
-{
-%<ed-rev|ed-au>  format.names
-%<*!ed-rev&!ed-au>
-  'bibinfo :=
-  duplicate$ empty$ 'skip$ {
-  's :=
-  "" 't :=
-  #1 'nameptr :=
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr
-%    \end{macrocode}
-% Editor name is handled as a single object, with no separation of first and last name.
-%    \begin{macrocode}
-%<*!(nmft&nmfted&(fnm-rm|fnm-def))>
-%<nm-init|nm-rev|nm-rev1>      "{f.~}{vv~}{ll}{, jj}"
-%<*!nm-init&!nm-rev&!nm-rev1>
-%<nm-revv1>      "{ff~}{vv~}{ll}{, jj}"
-%<*!nm-revv1>
-%<nm-rv>      "{f{~}~}{vv~}{ll}{ jj}"
-%<*!nm-rv>
-%<nm-rvx>      "{f{}~}{vv~}{ll}{ jj}"
-%<*!nm-rvx>
-%<nm-rvcx>      "{f{}~}{vv~}{ll}{ jj}"
-%<*!nm-rvcx>
-%<nm-rvv|nm-rvvc>      "{f{.}.~}{vv~}{ll}{ jj}"
-%<*!nm-rvv&!nm-rvvc>
-      "{ff~}{vv~}{ll}{, jj}"
-%</!nm-rvv&!nm-rvvc>
-%</!nm-rvcx>
-%</!nm-rvx>
-%</!nm-rv>
-%</!nm-revv1>
-%</!nm-init&!nm-rev&!nm-rev1>
-      format.name$
-%<nm-rv|nm-rvx|nm-rvcx>      remove.dots
-%<nmft&nmfted&nmand-rm>    bib.name.font
-%</!(nmft&nmfted&(fnm-rm|fnm-def))>
-%    \end{macrocode}
-% Editor first and last name handled separately.
-%    \begin{macrocode}
-%<*(nmft&nmfted&(fnm-rm|fnm-def))>
-%<*nm-init|nm-rev|nm-rev1>
-      "{f.}" format.name$ duplicate$ empty$ 'skip$
-        { tie.or.space.prefix bib.fname.font swap$ * }
-      if$
-      s nameptr
-      "{vv~}{ll}" format.name$ bib.name.font *
-      s nameptr
-      "{jj}" format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font ", " swap$ * }
-      if$
-%</nm-init|nm-rev|nm-rev1>
-%<*!nm-init&!nm-rev&!nm-rev1>
-%<*nm-revv1>
-      "{ff}" format.name$ duplicate$ empty$ 'skip$
-        { tie.or.space.prefix bib.fname.font swap$ * }
-      if$
-      s nameptr
-      "{vv~}{ll}" format.name$ bib.name.font *
-      s nameptr
-      "{jj}" format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font ", " swap$ * }
-      if$
-%</nm-revv1>
-%<*!nm-revv1>
-%<*nm-rv>
-      "{f{~}}" format.name$ duplicate$ empty$ 'skip$
-        { tie.or.space.prefix bib.fname.font swap$ * }
-      if$
-      s nameptr
-      "{vv~}{ll}" format.name$ bib.name.font *
-      s nameptr
-      "{jj}" format.name$ duplicate$ empty$ 'skip$
-        { remove.dots bib.fname.font " " swap$ * }
-      if$
-%</nm-rv>
-%<*!nm-rv>
-%<*nm-rvx|nm-rvcx>
-      "{f{}}" format.name$ duplicate$ empty$ 'skip$
-        { tie.or.space.prefix bib.fname.font swap$ * }
-      if$
-      s nameptr
-      "{vv~}{ll}" format.name$ bib.name.font *
-      s nameptr
-      "{jj}" format.name$ duplicate$ empty$ 'skip$
-        { remove.dots bib.fname.font " " swap$ * }
-      if$
-%</nm-rvx|nm-rvcx>
-%<*!nm-rvx&!nm-rvcx>
-%<*nm-rvv|nm-rvvc>
-      "{f{.}.}" format.name$ duplicate$ empty$ 'skip$
-        { tie.or.space.prefix bib.fname.font swap$ * }
-      if$
-      s nameptr
-      "{vv~}{ll}" format.name$ bib.name.font *
-      s nameptr
-      "{jj}" format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font " " swap$ * }
-      if$
-%</nm-rvv|nm-rvvc>
-%<*!nm-rvv&!nm-rvvc>
-      "{ff}" format.name$ duplicate$ empty$ 'skip$
-        { tie.or.space.prefix bib.fname.font swap$ * }
-      if$
-      s nameptr
-      "{vv~}{ll}" format.name$ bib.name.font *
-      s nameptr
-      "{jj}" format.name$ duplicate$ empty$ 'skip$
-        { bib.fname.font ", " swap$ * }
-      if$
-%</!nm-rvv&!nm-rvvc>
-%</!nm-rvx&!nm-rvcx>
-%</!nm-rv>
-%</!nm-revv1>
-%</!nm-init&!nm-rev&!nm-rev1>
-      *
-%</(nmft&nmfted&(fnm-rm|fnm-def))>
-      bibinfo bibinfo.check
-      't :=
-      nameptr #1 >
-        {
-          namesleft #1 >
-%<!aunm-semi&!aunm-sl>            { ", " * t * }
-%<aunm-semi>            { "; " * t * }
-%<aunm-sl&!aunm-semi>            { "/ " * t * }
-            {
-              s nameptr "{ll}" format.name$ duplicate$ "others" =
-                { 't := }
-                { pop$ }
-              if$
-%<(and-com-ed|xand)&!aunm-semi&!aunm-sl>              "," *
-%<(and-com-ed|xand)&aunm-semi>              ";" *
-%<(and-com-ed|xand)&aunm-sl&!aunm-semi>              "/" *
-%<*!and-xcom&!and-com-ed&!xand>
-              numnames #2 >
-%<etal-xc>              t "others" = not and
-%<!aunm-semi&!aunm-sl>                { "," * }
-%<aunm-semi>                { ";" * }
-%<aunm-sl&!aunm-semi>                { "/" * }
-                'skip$
-              if$
-%</!and-xcom&!and-com-ed&!xand>
-              t "others" =
-                {
-
-%<nmft&nmfted&!nmand-rm&!(fnm-rm|fnm-def)&(etal-it|etal-rm)>                  bib.name.font
-%<*!etal-it>
-%<nmft&nmfted&(nmand-rm|(fnm-rm|fnm-def))&!etal-rm>                  " " * bbl.etal bib.name.font *
-%<!(nmft&nmfted&(nmand-rm|(fnm-rm|fnm-def)))|etal-rm>                  " " * bbl.etal *
-%</!etal-it>
-%<etal-it>                  " " * bbl.etal emphasize *
-%<nmft&nmfted&!nmand-rm&!(fnm-rm|fnm-def)&!(etal-it|etal-rm)>                  bib.name.font
-                }
-%<*!xand>
-                {
-%<*!harnm>
-%<!amper>                  bbl.and
-%<amper>                  "\&"
-%</!harnm>
-%<harnm>                  "\harvardand{}"
-%<nmft&nmfted&!nmand-rm&(fnm-rm|fnm-def)>                  bib.name.font
-                  space.word * t *
-                }
-%</!xand>
-%<xand>                { " " * t * }
-              if$
-            }
-          if$
-        }
-        't
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-%<*nmft&nmfted&!nmand-rm&!(fnm-rm|fnm-def)>
-  t "others" =
-    'skip$
-    { bib.name.font }
-  if$
-%</nmft&nmfted&!nmand-rm&!(fnm-rm|fnm-def)>
-  } if$
-%</!ed-rev&!ed-au>
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.key'}
-%    \begin{macrocode}
-%<*ay>
-FUNCTION {format.key}
-{ empty$
-    { key field.or.null }
-    { "" }
-  if$
-}
-
-%</ay>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.authors'}
-%
-%    \begin{macrocode}
-FUNCTION {format.authors}
-{ author "author" format.names
-%<*revdata>
-    duplicate$ empty$ 'skip$
-    { collaboration "collaboration" bibinfo.check
-      duplicate$ empty$ 'skip$
-        { " (" swap$ * ")" * }
-      if$
-      *
-    }
-  if$
-%</revdata>
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`get.bbl.editor'}
-% Use this function universally when accessing the ``editor'' text entity.
-%    \begin{macrocode}
-FUNCTION {get.bbl.editor}
-{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.editors'}
-% The option \texttt{edpar} puts the word `editor' in parentheses.
-% In \texttt{genbst.mbs}, this occurred automatically with the option
-% \texttt{ed}, to abbreviate `editor' to `ed'. In \texttt{babel.mbs},
-% this was not the case, because of complications with the word functions.
-% Now this possibility is added as a special option, which means there is
-% some inconsistency with older \texttt{.dbj} files that called \texttt{ed}:
-% the abbreviated `ed' is not put in parentheses unless \texttt{edpar} is
-% also called.
-%
-% Note that the code here is very similar to code in \texttt{format.in.ed.booktitle};
-% the two should be kept coordinated.
-%    \begin{macrocode}
-FUNCTION {format.editors}
-{ editor "editor" format.names duplicate$ empty$ 'skip$
-    {
-%<!edpar&!edparxc>      "," *
-      " " *
-      get.bbl.editor
-%<bkedcap>      capitalize
-%<edpar|edparc|edparxc>   "(" swap$ * ")" *
-      *
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.in.editors'}
-% See the note about the option \texttt{edpar} above.
-%
-% \end{macro}
-%
-% \begin{macro}{`format.book.pages'}
-%    \begin{macrocode}
-%<*pg-bk>
-FUNCTION {format.book.pages}
-{ pages "pages" bibinfo.check
-  duplicate$ empty$ 'skip$
-    { " " * bbl.pages * }
-  if$
-}
-%</pg-bk>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.isbn'}
-%    \begin{macrocode}
-%<*isbn>
-FUNCTION {format.isbn}
-{ isbn "isbn" bibinfo.check
-  duplicate$ empty$ 'skip$
-    {
-%<!blk-com&!blk-tit&!blk-tita>      new.block
-      "ISBN " swap$ *
-    }
-  if$
-}
-
-%</isbn>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.issn'}
-%    \begin{macrocode}
-%<*issn>
-FUNCTION {format.issn}
-{ issn "issn" bibinfo.check
-  duplicate$ empty$ 'skip$
-    {
-%<!blk-com&!blk-tit&!blk-tita>      new.block
-      "ISSN " swap$ *
-    }
-  if$
-}
-
-%</issn>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.doi'}
-% DOIs like URLs are encapsulated by their own commands, so need no \texttt{bibinfo.check}.
-%    \begin{macrocode}
-%<*doi|(url-doi&!url)>
-FUNCTION {format.doi}
-{ doi empty$
-    { "" }
-    {
-%<!blk-com&!blk-tit&!blk-tita>      new.block
-%<!html>      "\doi{" doi * "}" *
-%<html>      "doi:" doi *
-    }
-  if$
-}
-%</doi|(url-doi&!url)>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`select.language'}
-% The \texttt{language} field code has been provided by Bernd Feige, of the
-% University of Freiburg.
-%    \begin{macrocode}
-%<*lang>
-FUNCTION {select.language}
-{ duplicate$ empty$
-    'pop$
-    { language empty$
-        'skip$
-        { "{\selectlanguage{" language * "}" * swap$ * "}" * }
-      if$
-    }
-    if$
-}
-
-%</lang>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.note'}
-% Notes should be entered as though they were a sentence on their own.
-% However, if they appear mid-sentence rather than after a block or sentence,
-% the first letter must be lowercase. Thus if a note begins with a proper
-% noun, it must be in braces. To avoid a warning about unmatched braces
-% with the \texttt{change.case\$} function, check first if the leading
-% character is an opening brace.
-%
-% With options \texttt{url,url-nt}, the URL text is treated as a note, and
-% added here. It is output directly, not prepended to the note text. This
-% means, if the note is to be a new sentence, the URL text starts that
-% sentence, and the regular note is added to that sentence, comma between.
-%
-%    \begin{macrocode}
-FUNCTION {format.note}
-{
-%<*url-nt&!revdata>
-  url empty$
-    'skip$
-%<!html>    { "\urlprefix\url{" url * "}" * output }
-%<html>    { "<a href=" quote$ * url * quote$
-%<html>      * ">" * url * "</a>" * output }
-  if$
-%</url-nt&!revdata>
- note empty$
-    { "" }
-    { note #1 #1 substring$
-      duplicate$ "{" =
-        'skip$
-        { output.state mid.sentence =
-          { "l" }
-          { "u" }
-        if$
-        change.case$
-        }
-      if$
-      note #2 global.max$ substring$ * "note" bibinfo.check
-    }
-  if$
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.title'}
-% For a quoted title, any punctuation in the title goes inside the quote.
-% Otherwise, the comma or period following the title also goes inside.
-% Exception is with \texttt{qx} option, in which case the comma goes
-% outside, even when punctuation present; for period (\texttt{!blk-com})
-% is added outside only when punctuation is absent.
-%    \begin{macrocode}
-FUNCTION {format.title}
-{ title
-%<*!atit-u>
-  duplicate$ empty$ 'skip$
-    { "t" change.case$ }
-  if$
-%</!atit-u>
-  "title" bibinfo.check
-%<*tit-it|tit-qq|lang>
-  duplicate$ empty$ 'skip$
-    {
-%<tit-it>      emphasize
-%<*!tit-it&tit-qq>
-      "\enquote{" swap$ *
-%<*!qx>
-%<*blk-com>
-      non.stop
-%<!com-semi&!com-blank>        { ",} " * }
-%<com-semi>        { ";} " * }
-%<!com-semi&com-blank>        { "} " * }
-        { "} " * }
-      if$
-%</blk-com>
-%<!blk-com>      add.period$ "}" *
-%</!qx>
-%<*qx>
-%<*blk-com>
-%<!com-semi&!com-blank>      "}, " *
-%<com-semi>      "}; " *
-%<!com-semi&com-blank>      "} " *
-%</blk-com>
-%<!blk-com>      "}" *
-%</qx>
-%</!tit-it&tit-qq>
-%<lang>      select.language
-    }
-  if$
-%</tit-it|tit-qq|lang>
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`end.quote.title'}
-% For a quoted title, the punctuation appears in the quotes. For commas
-% between block, this means the inter-block punctuation is already present,
-% so it must be suppressed after every \texttt{format.title output}. This
-% is done by setting the \texttt{output.state} to \texttt{before.all}, but
-% only if there really was a title. Call this macro every time after
-% titles are output.
-%    \begin{macrocode}
-%<*blk-com&tit-qq>
-FUNCTION {end.quote.title}
-{ title empty$
-    'skip$
-    { before.all 'output.state := }
-  if$
-}
-%</blk-com&tit-qq>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`end.quote.btitle'}
-% Similar to |end.quote.title| except that it is only applied if titles of
-% proceedings and collections are quoted, and if
-% neither \texttt{edby}, \texttt{edby-par}, nor \texttt{edby-par} are selected
-% (this is the default case in the relevant menu of the \texttt{makebst.tex} run).
-% These options add text after the booktitle,
-% so additional punctuation need not be suppressed. Unless there is no editor!
-%
-% Note: this function is called after the result of \texttt{format.in.ed.booktitle}
-% has been output, and attempts to predict what that output had been.
-% Would it not be better to call this function while that result is still
-% on the stack?
-%    \begin{macrocode}
-%<*bt-qq>
-FUNCTION {end.quote.btitle}
-{ booktitle empty$
-    'skip$
-%<!edby&!edby-par&!edby-parc>    { before.all 'output.state := }
-%<*edby|edby-par|edby-parc>
-    { editor empty$
-        { before.all 'output.state := }
-        'skip$
-      if$
-    }
-%</edby|edby-par|edby-parc>
-  if$
-}
-%</bt-qq>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`make.full.names'}
-% In versions before 2.2, there were two functions \texttt{calc.long.label}
-% and \texttt{format.long.lab.names} that made up the string
-% \texttt{long.label} for each entry. This contains the full author list.
-% However, there was a bug in the one routine, entered by mistake when an
-% earlier bug was removed, and more seriously, the string
-% \texttt{long.label} was limited to \texttt{entry.max\$} characters, 100 on
-% my system. Author lists were truncated.  Thus, \texttt{make.full.names}
-% is used instead to enter the full list of names directly in the
-% \texttt{output.bibitem} function, without an intermediate string. This
-% involves changing the order of some function definitions, especially
-% \texttt{output.bibitem} must come later.
-%    \begin{macrocode}
-%<*har|cay|nat>
-FUNCTION {format.full.names}
-{'s :=
- "" 't :=
-  #1 'nameptr :=
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr
-%<!jnrlab>      "{vv~}{ll}" format.name$
-%<*jnrlab>
-%<!nm-rv&!nm-rvv&!nm-rvx&!nm-rvcx>      "{vv~}{ll}{, jj}" format.name$
-%<nm-rv|nm-rvv|nm-rvx|nm-rvcx>      "{vv~}{ll}{ jj}" format.name$
-%</jnrlab>
-%<lab&and-rm>      cite.name.font
-      't :=
-      nameptr #1 >
-        {
-%<*nmlm>
-%<m1>          nameptr #1
-%<m2>          nameptr #2
-%<m3>          nameptr #3
-%<m4>          nameptr #4
-%<m5>          nameptr #5
-%<m6>          nameptr #6
-%<m7>          nameptr #7
-%<m8>          nameptr #8
-%<m9>          nameptr #9
-%<m0>          nameptr #0
-%<m10>          #10 +
-%<m20>          #20 +
-%<m30>          #30 +
-%<m40>          #40 +
-%<m50>          #50 +
-%<m60>          #60 +
-%<m70>          #70 +
-%<m80>          #80 +
-%<m90>          #90 +
-          #1 + =
-%<x1>          numnames #1
-%<x2>          numnames #2
-%<x3>          numnames #3
-%<x4>          numnames #4
-%<x5>          numnames #5
-%<x6>          numnames #6
-%<x7>          numnames #7
-%<x8>          numnames #8
-%<x9>          numnames #9
-%<x0>          numnames #0
-%<x10>          #10 +
-%<x20>          #20 +
-%<x30>          #30 +
-%<x40>          #40 +
-%<x50>          #50 +
-%<x60>          #60 +
-%<x70>          #70 +
-%<x80>          #80 +
-%<x90>          #90 +
-          > and
-            { "others" 't :=
-              #1 'namesleft := }
-            'skip$
-          if$
-%</nmlm>
-          namesleft #1 >
-            { ", " * t * }
-            {
-              s nameptr "{ll}" format.name$ duplicate$ "others" =
-                { 't := }
-                { pop$ }
-              if$
-              t "others" =
-                {
-%<lab&!and-rm&(etal-it|etal-rm)>                  cite.name.font
-%<*!etal-it>
-%<lab&and-rm&!etal-rm>                  " " * bbl.etal cite.name.font *
-%<!lab|!and-rm|etal-rm>                  " " * bbl.etal *
-%</!etal-it>
-%<etal-it>                  " " * bbl.etal emphasize *
-%<lab&!and-rm&!(etal-it|etal-rm)>                  cite.name.font
-                }
-                {
-%<*!harnm>
-%<*!and-xcom>
-                  numnames #2 >
-                    { "," * }
-                    'skip$
-                  if$
-%</!and-xcom>
-%<!amper>                  bbl.and
-%<amper>                  "\&"
-%</!harnm>
-%<harnm>                  "\harvardand{}"
-                  space.word * t *
-                }
-              if$
-            }
-          if$
-        }
-        't
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-%<*lab&!and-rm>
-  t "others" =
-    'skip$
-    { cite.name.font }
-  if$
-%</lab&!and-rm>
-}
-
-FUNCTION {author.editor.key.full}
-{ author empty$
-    { editor empty$
-        { key empty$
-            { cite$ #1 #3 substring$ }
-            'key
-          if$
-        }
-        { editor format.full.names }
-      if$
-    }
-    { author format.full.names }
-  if$
-}
-
-FUNCTION {author.key.full}
-{ author empty$
-    { key empty$
-         { cite$ #1 #3 substring$ }
-          'key
-      if$
-    }
-    { author format.full.names }
-  if$
-}
-
-FUNCTION {editor.key.full}
-{ editor empty$
-    { key empty$
-         { cite$ #1 #3 substring$ }
-          'key
-      if$
-    }
-    { editor format.full.names }
-  if$
-}
-
-FUNCTION {make.full.names}
-{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.key.full
-    { type$ "proceedings" =
-        'editor.key.full
-        'author.key.full
-      if$
-    }
-  if$
-}
-
-%</har|cay|nat>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`output.bibitem'}
-% A user has pointed out to me that if the label argument in square brackets
-% are put into braces (within the squares) it is then resistent to any
-% problems if square braces should appear within the label. Do this, but
-% only for the \texttt{nat} option.
-%    \begin{macrocode}
-FUNCTION {output.bibitem}
-{ newline$
-%<*!html>
-%<*ay>
-%<!har&!nat>  "\bibitem[" write$
-%<!har&nat>  "\bibitem[{" write$
-%<har>  "\harvarditem" write$
-%<nmd>  "\protect\citeauthoryear{" write$
-%<ast>  "\protect\astroncite{" write$
-%<cay>  "\protect\citeauthoryear{" make.full.names * "}{" * write$
-%<cn>  "\protect\citename{" write$
-%<!har>  label write$
-%<har>  make.full.names duplicate$ label =
-%<har>    'skip$
-%<har>    { "[" label * "]" * write$ }
-%<har>  if$
-%<har>  "{" swap$ * "}{" * write$
-%<har>  year duplicate$ empty$
-%<cn>  ", }" year duplicate$ empty$
-%<cay|nmd|ast>  "}{" year duplicate$ empty$
-%<(har|cn|cay|nmd|ast)&blkyear>    { pop$ "" }
-%<(har|cn|cay|nmd|ast)&!blkyear>    { pop$ "????" }
-%<har|cn|cay|nmd|ast>    'skip$
-%<har|cn|cay|nmd|ast>  if$
-%<har>  extra.label * "}{" * write$
-%<cn>  * extra.label * "]{" * write$
-%<cay|nmd|ast>  * extra.label * "}]{" * write$
-%<alk>  "]{" write$
-%<!(har|cay|nmd|ast|alk|cn|nat)>  ")]{" write$
-%<nat>  ")" make.full.names duplicate$ short.list =
-%<nat>     { pop$ }
-%<nat>     { * }
-%<nat>   if$
-%<nat>  "}]{" * write$
-%</ay>
-%<!ay&!(cite|alph)>  "\bibitem{" write$
-%<!ay&(cite|alph)>  "\bibitem[" label * "]{" * write$
-  cite$ write$
-  "}" write$
-  newline$
-  ""
-%</!html>
-%<*html>
-%<*htdes>
-  "<dt><strong><tt>" write$
-  cite$ write$
-  "</tt></strong></dt>" write$ newline$
-  "<dd>"
-%</htdes>
-%<htlist&!htdes>  "<li>"
-%<!htlist&!htdes>  "<p>"
-%</html>
-  before.all 'output.state :=
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`if.digit'}
-% Add \texttt{if.digit} and \texttt{n.separate} to convert large page numbers
-% to a separated number.
-%    \begin{macrocode}
-%<*pgsep-c|pgsep-s|pgsep-p>
-FUNCTION {if.digit}
-{ duplicate$ "0" =
-  swap$ duplicate$ "1" =
-  swap$ duplicate$ "2" =
-  swap$ duplicate$ "3" =
-  swap$ duplicate$ "4" =
-  swap$ duplicate$ "5" =
-  swap$ duplicate$ "6" =
-  swap$ duplicate$ "7" =
-  swap$ duplicate$ "8" =
-  swap$ "9" = or or or or or or or or or
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`n.separate'}
-%  \texttt{pgsep-s}, \texttt{pgsep-p}
-% Large page numbers are to be separated in threes, with thin space, comma
-% or period. The number must be 5 digits before the separation occurs.
-% No provision is made for numbers of 7 or more digits.
-%    \begin{macrocode}
-FUNCTION {n.separate}
-{ 't :=
-  ""
-  #0 'numnames :=
-  { t empty$ not }
-  { t #-1 #1 substring$ if.digit
-      { numnames #1 + 'numnames := }
-      { #0 'numnames := }
-    if$
-    t #-1 #1 substring$ swap$ *
-    t #-2 global.max$ substring$ 't :=
-    numnames #5 =
-      { duplicate$ #1 #2 substring$ swap$
-        #3 global.max$ substring$
-%<pgsep-c>        "," swap$ * *
-%<pgsep-p>        "." swap$ * *
-%<pgsep-s&!html>        "\," swap$ * *
-%<pgsep-s&html>        " " swap$ * *
-      }
-      'skip$
-    if$
-  }
-  while$
-}
-%</pgsep-c|pgsep-s|pgsep-p>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`n.dashify'}
-%    \begin{macrocode}
-FUNCTION {n.dashify}
-{
-%<pgsep-c|pgsep-s|pgsep-p>  n.separate
-  '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$
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`word.in'}
-% The function \texttt{word.in} prints the word \textsl{in} for references
-% that are
-% contained in a larger work, or in conference proceedings. One may have a
-% colon after the word with the option \texttt{in-col}. If blocks of text are
-% to be separated with commas (option \texttt{blk-com}) then the word remains
-% in lower case, as it is defined in \texttt{bbl.in}; but if blocks act as
-% sentences, then it must be capitalized.
-%    \begin{macrocode}
-FUNCTION {word.in}
-%<in-x>{ "" }
-%<*!in-x>
-%<blk-com|blk-tita>{ bbl.in
-%<!blk-com&!blk-tita>{ bbl.in capitalize
-%<in-col>  ":" *
-%<in-it>  emphasize
-  " " * }
-%</!in-x>
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.date'}
-% The new \texttt{harvard.sty} allows variable brackets around the date
-% in the reference list. It uses |\harvardyearleft| and |\harvardyearright|
-% in the \texttt{.bst} files. Allow this with the option \texttt{harnm},
-% which could actually be used without the \texttt{har} option. Note that
-% this overrides the other year formatting options, except for the preceding punctuation.
-%    \begin{macrocode}
-%<*ay>
-FUNCTION {format.date}
-{ year "year" bibinfo.check duplicate$ empty$
-    {
-%<*!blkyear>
-      "empty year in " cite$ * "; set to ????" * warning$
-       pop$ "????"
-%</!blkyear>
-    }
-    'skip$
-  if$
-%<*aymth>
-  month "month" bibinfo.check duplicate$ empty$
-    'skip$
-    {
-%<dtrev>      swap$
-      " " * swap$
-    }
-  if$
-  *
-%<mth-bare>  remove.dots
-%</aymth>
-%<dtbf>  bolden
-  extra.label *
-%<*!harnm>
-%<*yr-par|yr-brk|yr-col|yr-blk|yr-com|yr-per>
-  before.all 'output.state :=
-%<yr-par>  " (" swap$ * ")" *
-%<!yr-par&yr-brk>  " [" swap$ * "]" *
-%<!yr-par&!yr-brk&yr-col>  ": " swap$ *
-%<!yr-par&!yr-brk&!yr-col&yr-com>  ", " swap$ *
-%<!yr-par&!yr-brk&!yr-col&!yr-com&yr-per>  after.sentence 'output.state :=
-%<!yr-par&!yr-brk&!yr-col&!yr-com&!yr-per&yr-blk>  " " swap$ *
-%</yr-par|yr-brk|yr-col|yr-blk|yr-com|yr-per>
-%</!harnm>
-%<*harnm>
-  before.all 'output.state :=
-  " \harvardyearleft " swap$ * "\harvardyearright{}" *
-%<yr-col>  ":" swap$ *
-%<!yr-col&yr-com>  "," swap$ *
-%<!yr-col&!yr-com&yr-per>  after.sentence 'output.state :=
-%<!yr-col&!yr-com&!yr-per&yr-blk>  " " swap$ *
-%</harnm>
-}
-%</ay>
-%<*!ay>
-FUNCTION {format.date}
-{
-%<!xmth>  month "month" bibinfo.check
-%<xmth>  ""
-  duplicate$ empty$
-  year  "year"  bibinfo.check duplicate$ empty$
-    { swap$ 'skip$
-        { "there's a month but no year in " cite$ * warning$ }
-      if$
-      *
-    }
-    { swap$ 'skip$
-        {
-%<showstack> month year
-%<!dtrev>          swap$
-          " " * swap$
-        }
-      if$
-      *
-%<mth-bare>      remove.dots
-    }
-  if$
-%<dtbf>  bolden
-%<*yr-par|yr-brk|yr-col|yr-com|yr-per|yr-blk>
-  duplicate$ empty$
-    'skip$
-    {
-      before.all 'output.state :=
-%<yr-par>    " (" swap$ * ")" *
-%<!yr-par&yr-brk>    " [" swap$ * "]" *
-%<!yr-par&!yr-brk&yr-col>    ": " swap$ *
-%<!yr-par&!yr-brk&!yr-col&yr-com>    ", " swap$ *
-%<!yr-par&!yr-brk&!yr-col&!yr-com&yr-per>    after.sentence 'output.state :=
-%<!yr-par&!yr-brk&!yr-col&!yr-com&!yr-per&yr-blk>    " " swap$ *
-    }
-  if$
-%</yr-par|yr-brk|yr-col|yr-com|yr-per|yr-blk>
-}
-%</!ay>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.year'}
-% For the options that put the year into the journal specifications, use a
-% special formatter separate from the regular date formatter.
-% The year is always in parentheses (except for appended to journal name).
-%    \begin{macrocode}
-%<*jdt-p|jdt-pc|jdt-v|jdt-vs>
-FUNCTION{format.year}
-{ year "year" bibinfo.check duplicate$ empty$
-    {  "empty year in " cite$ *
-%<ay&!blkyear>       "; set to ????" *
-       warning$
-%<ay&!blkyear>       pop$ "????"
-    }
-    {
-%<!ay&jdt-vs>  " (" swap$ * ")" *
-%<!ay&!jdt-vs>  "(" swap$ * ")" *
-    }
-  if$
-%<*ay>
-  extra.label *
-%<jdt-vs>  " (" swap$ * ")" *
-%<!jdt-vs>  "(" swap$ * ")" *
-%</ay>
-}
-%</jdt-p|jdt-pc|jdt-v|jdt-vs>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.btitle'}
-%    \begin{macrocode}
-FUNCTION {format.btitle}
-{ title "title" bibinfo.check
-  duplicate$ empty$ 'skip$
-    {
-%<!btit-rm>      emphasize
-%<lang>      select.language
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`either.or.check'}
-%    \begin{macrocode}
-FUNCTION {either.or.check}
-{ empty$
-    'pop$
-    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.bvolume'}
-%    \begin{macrocode}
-FUNCTION {format.bvolume}
-{ volume empty$
-    { "" }
-    { bbl.volume volume tie.or.space.prefix
-      "volume" bibinfo.check * *
-      series "series" bibinfo.check
-      duplicate$ empty$ 'pop$
-%<*!ser-vol>
-        { swap$ bbl.of space.word * swap$
-          emphasize * }
-%</!ser-vol>
-%<ser-vol>        { emphasize ", " * swap$ * }
-      if$
-      "volume and number" number either.or.check
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.number.series'}
-%    \begin{macrocode}
-FUNCTION {format.number.series}
-{ volume empty$
-    { number empty$
-        { series field.or.null }
-%<*num-xser>
-        { series empty$
-            { number "number" bibinfo.check }
-            { output.state mid.sentence =
-                { bbl.number }
-                { bbl.number capitalize }
-              if$
-              number tie.or.space.prefix "number" bibinfo.check * *
-              bbl.in space.word *
-              series "series" bibinfo.check *
-            }
-          if$
-        }
-%</num-xser>
-%<*!num-xser>
-        { output.state mid.sentence =
-            { bbl.number }
-            { bbl.number capitalize }
-          if$
-          number tie.or.space.prefix "number" bibinfo.check * *
-          series empty$
-            { "there's a number but no series in " cite$ * warning$ }
-            { bbl.in space.word *
-              series "series" bibinfo.check *
-            }
-          if$
-        }
-%</!num-xser>
-      if$
-    }
-    { "" }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`is.num'}
-% This function takes the single-character string on the stack and returns
-% 1 if it is a digit, else 0.
-%    \begin{macrocode}
-%<*!xedn>
-FUNCTION {is.num}
-{ chr.to.int$
-  duplicate$ "0" chr.to.int$ < not
-  swap$ "9" chr.to.int$ > not and
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`extract.num'}
-% This function tests the string on the stack to see if it begins with a
-% number. If so, that number is left on the stack; if the string contains
-% no numbers at the start, it is left unchanged. The idea is to convert
-% \textsl{1st} to \textsl{1} and leave \textsl{first} as is.
-% This is used by \code{convert.edition}.
-%    \begin{macrocode}
-FUNCTION {extract.num}
-{ duplicate$ 't :=
-  "" 's :=
-  { t empty$ not }
-  { t #1 #1 substring$
-    t #2 global.max$ substring$ 't :=
-    duplicate$ is.num
-      { s swap$ * 's := }
-      { pop$ "" 't := }
-    if$
-  }
-  while$
-  s empty$
-    'skip$
-    { pop$ s }
-  if$
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`convert.edition'}
-% The function \texttt{convert.edition} takes the text in the field
-% \texttt{edition} and changes it to the language-specific equivalent. As
-% originally planned for \btx, this field should contain the words
-% \textsl{First}, \textsl{Second}, etc. Being so explicit,
-% it is not so easy to translate, nor to
-% convert to \textsl{1st}, \textsl{2nd}, etc., if one wanted.
-% This function carries out the translation, by changing
-% \textsl{first} or \textsl{1} to \texttt{bbl.first}, and so
-% on. The field is reduced to lower case to make it case insensitive. If no
-% translation is found, then the original text in \texttt{edition} is used
-% instead, as it stands. However, if the original is a number greater than
-% the maximum for which text is provided, then \texttt{bbl.th} is added to
-% it.
-%    \begin{macrocode}
-FUNCTION {convert.edition}
-{ extract.num "l" change.case$ 's :=
-  s "first" = s "1" = or
-    { bbl.first 't := }
-    { s "second" = s "2" = or
-        { bbl.second 't := }
-        { s "third" = s "3" = or
-            { bbl.third 't := }
-            { s "fourth" = s "4" = or
-                { bbl.fourth 't := }
-                { s "fifth" = s "5" = or
-                    { bbl.fifth 't := }
-                    { s #1 #1 substring$ is.num
-%<!english&exlang>                        { s bbl.th * 't := }
-%<english|!exlang>                        { s eng.ord 't := }
-                        { edition 't := }
-                      if$
-                    }
-                  if$
-                }
-              if$
-            }
-          if$
-        }
-      if$
-    }
-  if$
-  t
-}
-%</!xedn>
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.edition'}
-% This function formats the text for the edition specification, such as
-% ``Second edition''. It combines the edition number with the word
-% \textsl{edition}.
-%    \begin{macrocode}
-FUNCTION {format.edition}
-{ edition duplicate$ empty$ 'skip$
-    {
-%<!xedn>      convert.edition
-      output.state mid.sentence =
-        { "l" }
-        { "t" }
-      if$ change.case$
-      "edition" bibinfo.check
-      " " * bbl.edition *
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-INTEGERS { multiresult }
-%    \end{macrocode}
-%
-% \begin{macro}{`multi.page.check'}
-%    \begin{macrocode}
-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
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.pages'}
-%    \begin{macrocode}
-FUNCTION {format.pages}
-{ pages duplicate$ empty$ 'skip$
-    { duplicate$ multi.page.check
-        {
-%<!bkpg-x&!ppx>          bbl.pages swap$
-          n.dashify
-        }
-        {
-%<!bkpg-x&!ppx>          bbl.page swap$
-        }
-      if$
-%<!bkpg-x&!ppx>      tie.or.space.prefix
-      "pages" bibinfo.check
-%<!bkpg-x&!ppx>      * *
-%<bkpg-par>     "(" swap$ * ")" *
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`first.page'}
-%    \begin{macrocode}
-%<*jpg-1>
-FUNCTION {first.page}
-{ 't :=
-  ""
-    {  t empty$ not t #1 #1 substring$ "-" = not and }
-    { t #1 #1 substring$ *
-      t #2 global.max$ substring$ 't :=
-    }
-  while$
-}
-
-%</jpg-1>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.journal.pages'}
-% Note: this function gets called with something on the stack.
-% It may be the volume and number.
-%    \begin{macrocode}
-FUNCTION {format.journal.pages}
-{ pages duplicate$ empty$ 'pop$
-    { swap$ duplicate$ empty$
-        { pop$ pop$ format.pages }
-        {
-%<volp-sp>          ": " *
-%<*!volp-sp>
-%<volp-blk>          " " *
-%<*!volp-blk>
-%<volp-com>          ", " *
-%<*!volp-com>
-%<volp-semi>          "; " *
-%<!volp-semi>          ":" *
-%</!volp-com>
-%</!volp-blk>
-%</!volp-sp>
-%<!jdt-v&!jdt-vs&jdt-p>          format.year * " " *
-%<!jdt-v&!jdt-vs&!jdt-p&jdt-pc>          format.year * ", " *
-          swap$
-%<jpg-1>          first.page
-%<!jpg-1>          n.dashify
-%<*jwdpg>
-          pages multi.page.check
-            'bbl.pages
-            'bbl.page
-          if$
-          swap$ tie.or.space.prefix
-%</jwdpg>
-          "pages" bibinfo.check
-%<jwdpg>          * *
-          *
-        }
-      if$
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.journal.eid'}
-%
-% This function is called with something on the stack (journal vol, number)
-% and appends \texttt{eid} and \texttt{numpages} if those field are non-empty.
-% Very similar to \texttt{format.journal.pages}.
-%
-% For the AGU style of including the DOI as part of the EID, the DOI number
-% is appended too.
-%    \begin{macrocode}
-FUNCTION {format.journal.eid}
-{ eid "eid" bibinfo.check
-  duplicate$ empty$ 'pop$
-    { swap$ duplicate$ empty$ 'skip$
-      {
-%<volp-sp>          ": " *
-%<*!volp-sp>
-%<volp-blk>          " " *
-%<*!volp-blk>
-%<volp-com>          ", " *
-%<*!volp-com>
-%<volp-semi>          "; " *
-%<!volp-semi>          ":" *
-%</!volp-com>
-%</!volp-blk>
-%</!volp-sp>
-      }
-      if$
-      swap$ *
-%<*revdata>
-      numpages empty$ 'skip$
-        { bbl.eidpp numpages tie.or.space.prefix
-          "numpages" bibinfo.check * *
-          " (" swap$ * ")" * *
-        }
-      if$
-%</revdata>
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.vol.num.pages'}
-% Version 3.84, I have rationalized several options that placed the date in the
-% journal specifications. It was rather chaotic before, but now it should be
-% more systematic. This means some options have been removed, something that I
-% do not like to do.
-%
-% The option \texttt{pp-last} suppresses the pages in the formatting macros, and
-% sees to it that the pages are added just before any notes in those entries
-% that take pages. This applies to more than just \texttt{article}, but to
-% \texttt{inbook}, \texttt{incollection} as well.
-%
-%    \begin{macrocode}
-FUNCTION {format.vol.num.pages}
-{ volume field.or.null
-  duplicate$ empty$ 'skip$
-    {
-%<jwdvol>      bbl.volume swap$ tie.or.space.prefix
-      "volume" bibinfo.check
-%<jwdvol>      * *
-    }
-  if$
-%<vol-bf&!vol-2bf>  bolden
-%<!vol-bf&!vol-2bf&vol-it>  emphasize
-%<jdt-v|jdt-vs>  format.year *
-%<*!vnum-x>
-  number "number" bibinfo.check duplicate$ empty$ 'skip$
-    {
-      swap$ duplicate$ empty$
-        { "there's a number but no volume in " cite$ * warning$ }
-        'skip$
-      if$
-      swap$
-%<vnum-sp>      "~(" swap$ * ")" *
-%<!vnum-sp&vnum-cm>      ", " swap$ *
-%<!vnum-sp&!vnum-cm&vnum-nr>      ", " bbl.nr * number tie.or.space.prefix pop$ * swap$ *
-%<!vnum-sp&!vnum-cm&!vnum-nr&vnum-h>      ", \#" swap$ *
-%<!vnum-sp&!vnum-cm&!vnum-nr&!vnum-h&vnum-b>      " " swap$ *
-%<!vnum-sp&!vnum-cm&!vnum-nr&!vnum-h&!vnum-b>      "(" swap$ * ")" *
-    }
-  if$ *
-%<!vol-bf&vol-2bf>  bolden
-%</!vnum-x>
-%<*!pp-last>
-  eid empty$
-    { format.journal.pages }
-    { format.journal.eid }
-  if$
-%</!pp-last>
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.chapter.pages'}
-%    \begin{macrocode}
-FUNCTION {format.chapter.pages}
-{ chapter empty$
-%<!pp-last>    'format.pages
-%<pp-last>    { "" }
-    { type empty$
-        { bbl.chapter }
-        { type "l" change.case$
-          "type" bibinfo.check
-        }
-      if$
-      chapter tie.or.space.prefix
-      "chapter" bibinfo.check
-      * *
-%<*!pp-last>
-      pages empty$
-        'skip$
-        { ", " * format.pages * }
-      if$
-%</!pp-last>
-    }
-  if$
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`bt.enquote'}
-% This is to place the booktitle for proceedings and collections into quotes.
-% If punctuation is to be included, then add a comma unless a stop already
-% exists, or add a period under the only circumstances that
-% |format.in.ed.booktitle| is followed by |new.sentence|.
-%    \begin{macrocode}
-%<*bt-qq>
-FUNCTION {bt.enquote}
-{ duplicate$ empty$ 'skip$
-  { "\enquote{" swap$ *
-%<*!qx>
-    non.stop
-      { ",} " * }
-      { "}, " * }
-    if$
-%</!qx>
-%<*qx>
-    "}, " *
-%</qx>
-  }
-  if$
-}
-%</bt-qq>
-%    \end{macrocode}
-%
-% \end{macro}
-%
-% \begin{macro}{`format.booktitle'}
-% The function \texttt{format.booktitle} pushes one object
-% (the book title, suitably encapsulated) onto the stack.
-% It is currently used in \texttt{format.incoll.inproc.crossref}
-% and in \texttt{format.in.ed.booktitle}, and should be used whenever accessing
-% the \texttt{booktitle} field for eventual output.
-%
-% If the book title is empty or missing, the function pushes an empty string.
-%    \begin{macrocode}
-FUNCTION {format.booktitle}
-{
-  booktitle "booktitle" bibinfo.check
-%<!bt-qq&!bt-rm>  emphasize
-%<bt-qq>  bt.enquote
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.in.ed.booktitle'}
-% Prior to version 3.81, the \textsl{Editor} or \textsl{Edited by} in
-% parentheses was meant to be capitalized, but this did not work properly.
-% Now the option \texttt{edcap} produces this, and default is not capitalized.
-%
-% Notes on \dtx{} options:
-% \begin{itemize}
-% \item
-% The following combinations are available through the \texttt{makebst.tex} interface:
-% \begin{quote}
-% \verb+(+ \\
-% \verb+ <default>+ \\
-% \verb+ |edby     (      |edbyx       |edbyy|edbyw[edcap])+ \\
-% \verb+ |edby-par (|edcap|edbyx[edcap]|edbyy             )+ \\
-% \verb+ |edby-parc(|edcap|edbyx                          )+ \\
-% \verb+)+
-% \end{quote}
-% \item
-% \texttt{edby}, \texttt{edby-par}, and \texttt{edby-parc} are mutually exclusive
-% and, except for the default, exhaustive.
-% \item
-% \texttt{edbyx}, \texttt{edbyw}, and \texttt{edbyy} are mutually exclusive
-% and, except for the default, exhaustive.
-% \item
-% \texttt{edcap} is independent of the above two groups of options.
-% \item
-% When parentheses need to be applied, we make sure that the respective
-% \dtx{} guard expressions are mutually exclusive.
-% It makes no sense for \texttt{edbyw} to be in effect if either of
-% \texttt{edby-par} or \texttt{edby-parc} is in effect.
-% \item
-% \texttt{makebst.tex} only activates \texttt{edcap} in certain cases,
-% but we do no checking here, applying it consistently to the
-% ``editor'' text entity.
-% \item
-% The code between \texttt{<!edpar>} and \verb+<edpar\|edparc>+
-% \emph{must} match the corresponding code in \texttt{format.editors}.
-% This means that in the default case, formatting is controlled by
-% a \dtx{} mechanism entirely different from the other cases.
-% \item \texttt{ser-ed} has been added to suit AGU. Result of series plus
-% volume to go between booktitle and editors; must remove \texttt{format.bvolume}
-% from \texttt{incollection} and \texttt{inproceedings}.
-% \end{itemize}
-%
-%    \begin{macrocode}
-FUNCTION {format.in.ed.booktitle}
-{ format.booktitle duplicate$ empty$ 'skip$
-    {
-%<showstack>% btitle
-%<*ser-ed>
-      format.bvolume duplicate$ empty$ 'pop$
-        { ", " swap$ * * }
-      if$
-%</ser-ed>
-      editor "editor" format.names.ed duplicate$ empty$ 'pop$
-        {
-%<*!(edby|edby-par|edby-parc)>
-%<showstack>% btitle ednms
-%<!edpar&!edparxc>          "," *
-          " " *
-          get.bbl.editor
-%<bkedcap>          capitalize
-%<edpar>          "(" swap$ * "), " *
-%<!edpar&(edparc|edparxc)>          "(" swap$ * ") " *
-%<!edpar&!(edparc|edparxc)>          ", " *
-          * swap$
-%<showstack>% eds btitle
-%</!(edby|edby-par|edby-parc)>
-%<*edby|edby-par|edby-parc>
-%<showstack>% btitle ednms
-%<edbyx|edbyy|edbyw>          get.bbl.editor
-%<!(edbyx|edbyy|edbyw)>          bbl.edby
-%<edcap>          capitalize
-%<!(edby-par|edby-parc)&edbyw>          "(" swap$ * ")" *
-%<showstack>% btitle ednms ed
-%<(edby-par|edby)&edbyy>          swap$ "," *
-          " " * swap$ *
-%<showstack>% btitle ednms-ed
-%<(edby-par|edby-parc)&!edbyw>          "(" swap$ * ")" *
-          swap$
-%<edby|edby-parc>          "," *
-          " " * swap$
-%</edby|edby-par|edby-parc>
-%<showstack>% btitle ednms-ed (or ednms-ed btitle)
-          * }
-      if$
-%<showstack>% btitle-ednms-ed (or ednms-ed-btitle) (or btitle)
-      word.in swap$ *
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`empty.misc.check'}
-%    \begin{macrocode}
-%<*!ay>
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
-  month empty$ year empty$ note empty$
-  and and and and and
-%<!seq-no|alph>  key empty$ not and
-    { "all relevant fields are empty in " cite$ * warning$ }
-    'skip$
-  if$
-}
-%</!ay>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.thesis.type'}
-%    \begin{macrocode}
-FUNCTION {format.thesis.type}
-{ type duplicate$ empty$
-    'pop$
-    { swap$ pop$
-      "t" change.case$ "type" bibinfo.check
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.tr.number'}
-%    \begin{macrocode}
-FUNCTION {format.tr.number}
-{ number "number" bibinfo.check
-  type duplicate$ empty$
-    { pop$ bbl.techrep }
-    'skip$
-  if$
-  "type" bibinfo.check
-  swap$ duplicate$ empty$
-    { pop$ "t" change.case$ }
-    { tie.or.space.prefix * * }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.article.crossref'}
-% The \texttt{journal} field was emphasized emplicitly, but it should be
-% done by command.
-%    \begin{macrocode}
-FUNCTION {format.article.crossref}
-{
-%<*!ay>
-  key duplicate$ empty$
-    { pop$
-      journal duplicate$ empty$
-        { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
-        { "journal" bibinfo.check emphasize word.in swap$ * }
-      if$
-    }
-    { word.in swap$ * " " *}
-  if$
-%</!ay>
-%<ay>  word.in
-%<!html>  " \cite{" * crossref * "}" *
-%<html>  " <tt>" * crossref * "</tt>" *
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.crossref.editor'}
-%    \begin{macrocode}
-%<*!ay>
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
-%<nmft&nmfted&nmand-rm>  bib.name.font
-  "editor" bibinfo.check
-  editor num.names$ duplicate$
-  #2 >
-    { pop$
-%<nmft&nmfted&!nmand-rm&(etal-it|etal-rm)>      bib.name.font
-      "editor" bibinfo.check
-      " " * bbl.etal
-%<etal-it>      emphasize
-      *
-%<nmft&nmfted&!nmand-rm&!(etal-it|etal-rm)>      bib.name.font
-%<nmft&nmfted&!nmand-rm&!(etal-it|etal-rm)>      "others" 't :=
-    }
-    { #2 <
-        'skip$
-        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
-            {
-%<nmft&nmfted&!nmand-rm&(etal-it|etal-rm)>              bib.name.font
-              "editor" bibinfo.check
-              " " * bbl.etal
-%<etal-it>              emphasize
-              *
-%<nmft&nmfted&!nmand-rm&!(etal-it|etal-rm)>              bib.name.font
-%<nmft&nmfted&!nmand-rm&!(etal-it|etal-rm)>              "others" 't :=
-            }
-            {
-%<*!harnm>
-%<!amper>             bbl.and space.word
-%<amper>              " \& "
-%</!harnm>
-%<harnm>              " \harvardand\ "
-              * editor #2 "{vv~}{ll}" format.name$
-%<nmft&nmfted&nmand-rm>              bib.name.font
-              "editor" bibinfo.check
-              *
-            }
-          if$
-        }
-      if$
-    }
-  if$
-%<*nmft&nmfted&!nmand-rm>
-  t "others" =
-    'skip$
-    { bib.name.font "editor" bibinfo.check }
-  if$
-%</nmft&nmfted&!nmand-rm>
-}
-%</!ay>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.book.crossref'}
-% The \texttt{series} field was emphasized emplicitly, but it should be
-% done by command.
-%    \begin{macrocode}
-FUNCTION {format.book.crossref}
-{ volume duplicate$ empty$
-    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
-      pop$ word.in
-    }
-    { bbl.volume
-%<!(blk-com|blk-tita)>      capitalize
-      swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
-    }
-  if$
-%<*!ay>
-  editor empty$
-  editor field.or.null author field.or.null =
-  or
-    { key empty$
-        { series empty$
-            { "need editor, key, or series for " cite$ * " to crossref " *
-              crossref * warning$
-              "" *
-            }
-            { series emphasize * }
-          if$
-        }
-        { key * }
-      if$
-    }
-    { format.crossref.editor * }
-  if$
-%</!ay>
-%<!html>  " \cite{" * crossref * "}" *
-%<html>  " <tt>" * crossref * "</tt>" *
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.incoll.inproc.crossref'}
-% The \texttt{booktitle} field was emphasized emplicitly, but it should be
-% done by command.
-%    \begin{macrocode}
-FUNCTION {format.incoll.inproc.crossref}
-{
-%<*!ay>
-  editor empty$
-  editor field.or.null author field.or.null =
-  or
-    { key empty$
-        { format.booktitle duplicate$ empty$
-            { "need editor, key, or booktitle for " cite$ * " to crossref " *
-              crossref * warning$
-            }
-            { word.in swap$ * }
-          if$
-        }
-        { word.in key * " " *}
-      if$
-    }
-    { word.in format.crossref.editor * " " *}
-  if$
-%</!ay>
-%<ay>  word.in
-%<!html>  " \cite{" * crossref * "}" *
-%<html>  " <tt>" * crossref * "</tt>" *
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.org.or.pub'}
-% Psychology journals often want \textit{address}: \textit{publisher}.
-%
-% \textsl{Nature} wants publisher and date in parentheses, and when both
-% are there, they are merged into one set.
-%
-% Call function \texttt{add.blank} before parentheses so suppress preceding
-% punctuation, which looks strange when publisher in parentheses.
-%
-% MPG Jahrbuch wants publisher and year, but without parentheses. Add
-% \texttt{pub-nopar} to be used with \texttt{pub-date}.
-%
-% Have now (3.87.h) extended this function to include the organization, if
-% present. This is for \texttt{inproceedings} and \texttt{proceedings} where
-% the publisher is optional, and organization too. If the publisher is missing,
-% but the organization present, it is formatted like the publisher. This
-% complication comes from styles that want the publisher/organization to have
-% the date included, all in parentheses.
-%
-% This function is called by \texttt{format.publisher.address} and
-% \texttt{format.organization.address}, each putting the appropriate text
-% into the stack first.
-%
-%    \begin{macrocode}
-FUNCTION {format.org.or.pub}
-{ 't :=
-  ""
-%<*pub-date&!ay>
-  year empty$
-    { "empty year in " cite$ * warning$ }
-    'skip$
-  if$
-%</pub-date&!ay>
-%<*!(pub-date&ay)>
-  address empty$ t empty$ and
-%<pub-date>  year empty$ and
-    'skip$
-    {
-%</!(pub-date&ay)>
-%<pub-par|(pub-date&!pub-xpar)>      add.blank "(" *
-%<*add-pub>
-      address "address" bibinfo.check *
-      t empty$
-        'skip$
-%</add-pub>
-%<*!add-pub>
-      t empty$
-        { address "address" bibinfo.check *
-        }
-        { t *
-          address empty$
-            'skip$
-            { ", " * address "address" bibinfo.check * }
-          if$
-        }
-%</!add-pub>
-%<*add-pub>
-        { address empty$
-            'skip$
-            { ": " * }
-          if$
-          t *
-        }
-%</add-pub>
-      if$
-%<*pub-date&!ay>
-      year empty$
-        'skip$
-        { t empty$ address empty$ and
-            'skip$
-%<!pub-xc>            { ", " swap$ * * }
-%<pub-xc>            { " " swap$ * * }
-          if$
-          year "year" bibinfo.check
-%<dtbf>          bolden
-          *
-        }
-      if$
-%</pub-date&!ay>
-%<*pub-date&ay>
-      year duplicate$ empty$
-%<*!blkyear>
-        { "empty year in " cite$ * "; set to ????" * warning$
-           pop$ "????" }
-%</!blkyear>
-%<*blkyear>
-        { "empty year in " cite$ * warning$
-           pop$ "" }
-%</blkyear>
-%<!dtbf>        { "year" bibinfo.check extra.label * }
-%<dtbf>        { "year" bibinfo.check bolden extra.label * }
-      if$
-      t empty$ address empty$ and
-        { * }
-%<!pub-xc>        { ", " swap$ * * }
-%<pub-xc>        { " " swap$ * * }
-      if$
-%</pub-date&ay>
-%<pub-par|(pub-date&!pub-xpar)>      ")" *
-%<*!(pub-date&ay)>
-    }
-  if$
-%</!(pub-date&ay)>
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.publisher.address'}
-%    \begin{macrocode}
-FUNCTION {format.publisher.address}
-{ publisher "publisher" bibinfo.warn format.org.or.pub
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`format.organization.address'}
-%    \begin{macrocode}
-FUNCTION {format.organization.address}
-{ organization "organization" bibinfo.check format.org.or.pub
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`name.or.dash'}
-% This function stores what is on the stack, compares it with previous value,
-% and replaces it with a long dash if they are equal. What is on the stack
-% should be author or editor names for the current entry.
-%    \begin{macrocode}
-%<*nmdash>
-STRINGS {oldname}
-
-FUNCTION {name.or.dash}
-{ 's :=
-   oldname empty$
-     { s 'oldname := s }
-     { s oldname =
-%<*!au-col>
-%<!nmd-2&!nmd-3>         { "---" }
-%<nmd-2&!nmd-3>         { "---{}---" }
-%<nmd-3>         { "---{}---{}---" }
-%</!au-col>
-%<*au-col>
-%<!nmd-2&!nmd-3>         { "---" add.blank }
-%<nmd-2&!nmd-3>         { "---{}---" add.blank }
-%<nmd-3>         { "---{}---{}---" add.blank }
-%</au-col>
-         { s 'oldname := s }
-       if$
-     }
-   if$
-}
-
-%</nmdash>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`article'}
-%    \begin{macrocode}
-FUNCTION {article}
-{ output.bibitem
-  format.authors "author" output.check
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<*dt-beg&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
-  format.date "year" output.check
-  date.block
-%</dt-beg&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-%<*!jtit-x>
-  format.title "title" output.check
-%<blk-com&tit-qq>  end.quote.title
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<*blk-tit|blk-tita>
-%<!tit-col>  new.sentence
-%<tit-col>  add.colon
-%</blk-tit|blk-tita>
-%</!jtit-x>
-  crossref missing$
-    {
-      journal
-%<jxper>      remove.dots
-      "journal" bibinfo.check
-%<!jttl-rm>      emphasize
-%<injnl>      word.in swap$ *
-      "journal" output.check
-%<jnm-x>      add.blank
-%<*!dt-beg&!dt-end&dt-jnl&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
-      format.date "year" output.check
-      date.block
-%</!dt-beg&!dt-end&dt-jnl&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
-      format.vol.num.pages output
-%<doi&agu-doi>  format.doi output
-%<*!dt-beg&!dt-end&!dt-jnl&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
-      format.date "year" output.check
-%</!dt-beg&!dt-end&!dt-jnl&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
-    }
-    { format.article.crossref output.nonnull
-%<!pp-last>      format.pages output
-    }
-  if$
-%<*pp-last>
-  eid empty$
-    { format.journal.pages }
-    { format.journal.eid }
-  if$
-%</pp-last>
-%<issn>  format.issn output
-%<(doi|(url-doi&!url))&!agu-doi>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
-%<eprint>  format.eprint output
-%<*revdata>
-  format.url output
-%</revdata>
-  fin.entry
-%<harnm|url-nl>  write.url
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`book'}
-%    \begin{macrocode}
-FUNCTION {book}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check
-%<ay>      editor format.key output
-%<!edpar&(edparc|edparxc)&!au-col>      add.blank
-%<au-col>      add.colon
-%<nmdash>      name.or.dash
-    }
-    { format.authors output.nonnull
-%<au-col>      add.colon
-%<nmdash>      name.or.dash
-      crossref missing$
-        { "author and editor" editor either.or.check }
-        'skip$
-      if$
-    }
-  if$
-%<dt-beg&!pub-date>  format.date "year" output.check
-%<dt-beg&!pub-date>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-  format.btitle "title" output.check
-  crossref missing$
-    { format.bvolume output
-%<!blk-com&!blk-tit&!blk-tita>      new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%<!numser>      format.number.series output
-%<pre-edn>      format.edition output
-%<!blk-com&!blk-tit&!blk-tita>      new.sentence
-%<numser>      format.number.series output
-%<pg-bk&pg-pre>      format.book.pages output
-      format.publisher.address output
-    }
-    {
-%<!blk-com&!blk-tit&!blk-tita>      new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-      format.book.crossref output.nonnull
-%<!dt-beg&!dt-end&pub-date>      format.date "year" output.check
-    }
-  if$
-%<!pre-edn>  format.edition output
-%<!dt-beg&!dt-end&!pub-date>  format.date "year" output.check
-%<isbn>  format.isbn output
-%<pg-bk&!pg-pre>  format.book.pages output
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end&!pub-date>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end&!pub-date>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`booklet'}
-%    \begin{macrocode}
-FUNCTION {booklet}
-{ output.bibitem
-  format.authors output
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<ay&dt-beg>  format.date "year" output.check
-%<!ay&dt-beg>  format.date output
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-  format.title "title" output.check
-%<blk-com&tit-qq>  end.quote.title
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-  howpublished "howpublished" bibinfo.check output
-  address "address" bibinfo.check output
-%<ay&!dt-beg&!dt-end>  format.date "year" output.check
-%<!ay&!dt-beg&!dt-end>  format.date output
-%<isbn>  format.isbn output
-%<pg-bk>  format.book.pages output
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*ay&!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</ay&!dt-beg&dt-end>
-%<*!ay&!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date output
-%</!ay&!dt-beg&dt-end>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`inbook'}
-% The medical journals, with option \texttt{dt-jnl}, have the date as part of
-% the journal specification. For chapters in books, they want date and pages
-% to appear at the end, with a space between them. (For journals, there is to be
-% no space.) Suppress the chapter specification (for now).
-%
-% The \texttt{dt-jnl} option usually behaves as the default, except for some
-% special entries, like this one.
-%
-% Restore the chapter specification (2004 Feb 9) after someone complained.
-% There are still some bugs here. If some date punctuation is specified, say
-%  with \texttt{yrp-semi} for a semi-colon after the year, this appears always,
-%  even if there is no text following. But then this to be an unlikely wish anyway,
-%  since such punctuation options are best suited for \texttt{dt-beg}.
-%    \begin{macrocode}
-FUNCTION {inbook}
-{ output.bibitem
-  author empty$
-    { format.editors "author and editor" output.check
-%<ay>      editor format.key output
-%<au-col>      add.colon
-%<nmdash>      name.or.dash
-    }
-    { format.authors output.nonnull
-%<au-col>      add.colon
-%<nmdash>      name.or.dash
-      crossref missing$
-        { "author and editor" editor either.or.check }
-        'skip$
-      if$
-    }
-  if$
-%<dt-beg&!pub-date>  format.date "year" output.check
-%<dt-beg&!pub-date>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-  format.btitle "title" output.check
-  crossref missing$
-    {
-%<pre-pub&numser>      format.number.series output
-%<pre-pub>      format.publisher.address output
-      format.bvolume output
-%<*dt-beg|dt-end|!dt-jnl|a|!a>
-      format.chapter.pages "chapter and pages" output.check
-%</dt-beg|dt-end|!dt-jnl|a|!a>
-%<!blk-com&!blk-tit&!blk-tita>      new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%<!numser>      format.number.series output
-%<pre-edn>      format.edition output
-%<!blk-com&!blk-tit&!blk-tita>      new.sentence
-%<!pre-pub&numser>      format.number.series output
-%<!pre-pub>      format.publisher.address output
-    }
-    {
-%<*dt-beg|dt-end|!dt-jnl|a|!a>
-      format.chapter.pages "chapter and pages" output.check
-%</dt-beg|dt-end|!dt-jnl|a|!a>
-%<!blk-com&!blk-tit&!blk-tita>      new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-      format.book.crossref output.nonnull
-%<!dt-beg&!dt-end&!dt-jnl&pub-date>      format.date "year" output.check
-    }
-  if$
-%<!pre-edn>  format.edition output
-%<!dt-beg&!dt-end&!dt-jnl&!pub-date>  format.date "year" output.check
-%<*isbn>
-  crossref missing$
-    { format.isbn output }
-    'skip$
-  if$
-%</isbn>
-%<*(!dt-beg&!dt-end&dt-jnl)&!pub-date>
-  format.date "year" output.check
-  date.block
-%</(!dt-beg&!dt-end&dt-jnl)&!pub-date>
-%<pp-last>  format.pages "pages" output.check
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end&!pub-date>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end&!pub-date>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`incollection'}
-%    \begin{macrocode}
-FUNCTION {incollection}
-{ output.bibitem
-  format.authors "author" output.check
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<dt-beg&!pub-date>  format.date "year" output.check
-%<dt-beg&!pub-date>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-%<*!jtit-x>
-  format.title "title" output.check
-%<blk-com&tit-qq>  end.quote.title
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%</!jtit-x>
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-%<bt-qq>      end.quote.btitle
-%<pre-pub&numser>      format.number.series output
-%<pre-pub>      format.publisher.address output
-%<!ser-ed>      format.bvolume output
-%<!numser>      format.number.series output
-%<pre-edn>      format.edition output
-      format.chapter.pages output
-%<!blk-com&!blk-tit&!blk-tita>      new.sentence
-%<!pre-pub&numser>      format.number.series output
-%<!pre-pub>      format.publisher.address output
-%<!pre-edn>      format.edition output
-%<!dt-beg&!dt-end&!dt-jnl&!pub-date>      format.date "year" output.check
-%<isbn>      format.isbn output
-    }
-    { format.incoll.inproc.crossref output.nonnull
-      format.chapter.pages output
-    }
-  if$
-%<*(!dt-beg&!dt-end&dt-jnl)&!pub-date>
-  format.date "year" output.check
-  date.block
-%</(!dt-beg&!dt-end&dt-jnl)&!pub-date>
-%<pp-last>  format.pages "pages" output.check
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end&!pub-date>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end&!pub-date>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`inproceedings'}
-%    \begin{macrocode}
-FUNCTION {inproceedings}
-{ output.bibitem
-  format.authors "author" output.check
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<dt-beg&!pub-date>  format.date "year" output.check
-%<dt-beg&!pub-date>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-%<*!jtit-x>
-  format.title "title" output.check
-%<blk-com&tit-qq>  end.quote.title
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%</!jtit-x>
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-%<bt-qq>      end.quote.btitle
-%<*!pre-pub>
-%<!ser-ed>      format.bvolume output
-%<!numser>      format.number.series output
-%<(dt-beg|dt-end|!dt-jnl)&!pp-last>      format.pages output
-%</!pre-pub>
-%<!blk-com&!blk-tit&!blk-tita>      new.sentence
-%<numser>      format.number.series output
-      publisher empty$
-        { format.organization.address output }
-        { organization "organization" bibinfo.check output
-          format.publisher.address output
-        }
-      if$
-%<!dt-beg&!dt-end&!dt-jnl&!pub-date>      format.date "year" output.check
-%<*pre-pub>
-      format.bvolume output
-%<!numser>      format.number.series output
-%<(dt-beg|dt-end|!dt-jnl)&!pp-last>      format.pages output
-%</pre-pub>
-%<isbn>      format.isbn output
-%<issn>      format.issn output
-    }
-    { format.incoll.inproc.crossref output.nonnull
-%<(dt-beg|dt-end|!dt-jnl)&!pp-last>      format.pages output
-    }
-  if$
-%<*!dt-beg&!dt-end&dt-jnl&!pp-last>
-%<!pub-date>  format.date "year" output.check
-%<!pub-date>  date.block
-%<jdt-v|jdt-vs|jdt-p|!jdt-pc>  add.blank
-  format.pages "pages" output.check
-%</!dt-beg&!dt-end&dt-jnl&!pp-last>
-%<pp-last>  format.pages "pages" output.check
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end&!pub-date>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end&!pub-date>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`conference'}
-%    \begin{macrocode}
-FUNCTION {conference} { inproceedings }
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`manual'}
-%    \begin{macrocode}
-%<*ay>
-FUNCTION {manual}
-{ output.bibitem
-  format.authors output
-  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<dt-beg>  format.date "year" output.check
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-  format.btitle "title" output.check
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%<!blk-com&!blk-tit&!blk-tita>  organization address new.block.checkb
-  organization "organization" bibinfo.check output
-  address "address" bibinfo.check output
-  format.edition output
-%<!dt-beg&!dt-end>  format.date "year" output.check
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%</ay>
-%<*!ay>
-FUNCTION {manual}
-{ output.bibitem
-  author empty$
-    { organization "organization" bibinfo.check
-      duplicate$ empty$ 'pop$
-        { output
-          address "address" bibinfo.check output
-        }
-      if$
-    }
-    { format.authors output.nonnull }
-  if$
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<ay&dt-beg>  format.date "year" output.check
-%<!ay&dt-beg>  format.date output
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-  format.btitle "title" output.check
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-  author empty$
-    { organization empty$
-        {
-%<!blk-com&!blk-tit&!blk-tita>          address new.block.checka
-          address "address" bibinfo.check output
-        }
-        'skip$
-      if$
-    }
-    {
-%<!blk-com&!blk-tit&!blk-tita>      organization address new.block.checkb
-      organization "organization" bibinfo.check output
-      address "address" bibinfo.check output
-    }
-  if$
-  format.edition output
-%<ay&!dt-beg&!dt-end>  format.date "year" output.check
-%<!ay&!dt-beg&!dt-end>  format.date output
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*ay&!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</ay&!dt-beg&dt-end>
-%<*!ay&!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date output
-%</!ay&!dt-beg&dt-end>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%</!ay>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`mastersthesis'}
-% To format a master's thesis.
-%    \begin{macrocode}
-FUNCTION {mastersthesis}
-{ output.bibitem
-  format.authors "author" output.check
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<dt-beg>  format.date "year" output.check
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-%<*!thtit-x>
-%<!thtit-a>  format.btitle
-%<thtit-a>  format.title
-  "title" output.check
-%<thtit-a&blk-com&tit-qq>  end.quote.title
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%</!thtit-x>
-  bbl.mthesis format.thesis.type output.nonnull
-  school "school" bibinfo.warn output
-  address "address" bibinfo.check output
-%<!dt-beg&!dt-end>  format.date "year" output.check
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`misc'}
-%    \begin{macrocode}
-FUNCTION {misc}
-{ output.bibitem
-  format.authors output
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<ay&dt-beg>  format.date "year" output.check
-%<!ay&dt-beg>  format.date output
-%<*ay>
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-  format.title output
-%<blk-com&tit-qq>  end.quote.title
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%</ay>
-%<*!ay>
-%<!blk-com&!blk-tit&!blk-tita>  title howpublished new.block.checkb
-  format.title output
-%<blk-com&tit-qq>  end.quote.title
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%<!blk-com&!blk-tit&!blk-tita>  howpublished new.block.checka
-%</!ay>
-  howpublished "howpublished" bibinfo.check output
-%<ay&!dt-beg&!dt-end>  format.date "year" output.check
-%<!ay&!dt-beg&!dt-end>  format.date output
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*ay&!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</ay&!dt-beg&dt-end>
-%<*!ay&!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date output
-%</!ay&!dt-beg&dt-end>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-%<!ay>  empty.misc.check
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`phdthesis'}
-% To format a doctoral thesis.
-%    \begin{macrocode}
-FUNCTION {phdthesis}
-{ output.bibitem
-  format.authors "author" output.check
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<dt-beg>  format.date "year" output.check
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-%<*!thtit-x>
-%<!thtit-a>  format.btitle
-%<thtit-a>  format.title
-  "title" output.check
-%<thtit-a&blk-com&tit-qq>  end.quote.title
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%</!thtit-x>
-  bbl.phdthesis format.thesis.type output.nonnull
-  school "school" bibinfo.warn output
-  address "address" bibinfo.check output
-%<!dt-beg&!dt-end>  format.date "year" output.check
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`presentation'}
-%    \begin{macrocode}
-%<*pres>
-FUNCTION {presentation}
-{ output.bibitem
-  format.authors output
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.title output
-%<blk-com&tit-qq>  end.quote.title
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-  format.organization.address "organization and address" output.check
-  month "month" output.check
-  year "year" output.check
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-  new.sentence
-  type missing$ 'skip$
-  {"(" type capitalize * ")" * output}
-    if$
-%<*url-blk&!harnm>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm>
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%</pres>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`proceedings'}
-%    \begin{macrocode}
-%<*ay>
-FUNCTION {proceedings}
-{ output.bibitem
-  format.editors output
-  editor format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<dt-beg>  format.date "year" output.check
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-  format.btitle "title" output.check
-  format.bvolume output
-%<!numser>  format.number.series output
-%<!blk-com&!blk-tit&!blk-tita>  new.sentence
-%<numser>  format.number.series output
-  publisher empty$
-    { format.organization.address output }
-    { organization "organization" bibinfo.check output
-      format.publisher.address output
-    }
-  if$
-%<!dt-beg&!dt-end&!pub-date>  format.date "year" output.check
-%<isbn>  format.isbn output
-%<issn>  format.issn output
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end&!pub-date>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end&!pub-date>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%</ay>
-%    \end{macrocode}
-%    \begin{macrocode}
-%<*!ay>
-FUNCTION {proceedings}
-{ output.bibitem
-  editor empty$
-    { organization "organization" bibinfo.check output
-    }
-    { format.editors output.nonnull }
-  if$
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<dt-beg>  format.date "year" output.check
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-  format.btitle "title" output.check
-  format.bvolume output
-%<!numser>  format.number.series output
-  editor empty$
-    { publisher empty$
-%<!numser>        'skip$
-%<numser>        {  format.number.series output }
-        {
-%<!blk-com&!blk-tit&!blk-tita>          new.sentence
-%<numser>          format.number.series output
-          format.publisher.address output
-        }
-      if$
-    }
-    { publisher empty$
-        {
-%<!blk-com&!blk-tit&!blk-tita>          new.sentence
-%<numser>          format.number.series output
-          format.organization.address output }
-        {
-%<!blk-com&!blk-tit&!blk-tita>          new.sentence
-%<numser>          format.number.series output
-          organization "organization" bibinfo.check output
-          format.publisher.address output
-        }
-      if$
-     }
-  if$
-%<!dt-beg&!dt-end&!pub-date>      format.date "year" output.check
-%<isbn>  format.isbn output
-%<issn>  format.issn output
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%</!ay>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`techreport'}
-%    \begin{macrocode}
-FUNCTION {techreport}
-{ output.bibitem
-  format.authors "author" output.check
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<dt-beg>  format.date "year" output.check
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-%<trtit-b>  format.btitle
-%<!trtit-b>  format.title
-  "title" output.check
-%<!trtit-b&blk-com&tit-qq>  end.quote.title
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<blk-tit&!tit-col>  new.sentence
-%<blk-tit&tit-col>  add.colon
-%<!trnum-it>  format.tr.number output.nonnull
-%<trnum-it>  format.tr.number emphasize output.nonnull
-  institution "institution" bibinfo.warn output
-  address "address" bibinfo.check output
-%<!dt-beg&!dt-end>  format.date "year" output.check
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note output
-%<*!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date "year" output.check
-%</!dt-beg&dt-end>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`unpublished'}
-%    \begin{macrocode}
-FUNCTION {unpublished}
-{ output.bibitem
-  format.authors "author" output.check
-%<ay>  author format.key output
-%<au-col>  add.colon
-%<nmdash>  name.or.dash
-%<ay&dt-beg>  format.date "year" output.check
-%<!ay&dt-beg>  format.date output
-%<dt-beg>  date.block
-%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
-  format.title "title" output.check
-%<blk-com&tit-qq>  end.quote.title
-%<ay&!dt-beg&!dt-end>  format.date "year" output.check
-%<!ay&!dt-beg&!dt-end>  format.date output
-%<doi|(url-doi&!url)>  format.doi output
-%<*url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.url output
-%</url-blk&!harnm&!revdata>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
-  format.note "note" output.check
-%<*ay&!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date output
-%</ay&!dt-beg&dt-end>
-%<*!ay&!dt-beg&dt-end>
-%<!blk-com&!blk-tit&!blk-tita>  new.block
-  format.date output
-%</!ay&!dt-beg&dt-end>
-%<eprint>  format.eprint output
-%<revdata>  format.url output
-  fin.entry
-%<(harnm|url-nl)&!revdata>  write.url
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`default.type'}
-%    \begin{macrocode}
-FUNCTION {default.type} { misc }
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-READ
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*ay|alph|!seq-no>
-%    \end{macrocode}
-%
-% \begin{macro}{`sortify'}
-% In \texttt{btxbst.doc}/\texttt{.mbs}, the \texttt{sortify} function is
-% left out for unsorted alpha-style citations. This leads to an error,
-% because it is still used. So leave it in here too. \emph{In fact, do away
-% with unsorted alpha style, since it is as useless as unsorted author--year
-% listings.}
-%    \begin{macrocode}
-FUNCTION {sortify}
-{ purify$
-  "l" change.case$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-INTEGERS { len }
-%    \end{macrocode}
-%
-% \begin{macro}{`chop.word'}
-%    \begin{macrocode}
-FUNCTION {chop.word}
-{ 's :=
-  'len :=
-  s #1 len substring$ =
-    { s len #1 + global.max$ substring$ }
-    's
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%<*!ay&alph>
-%    \end{macrocode}
-%
-% \begin{macro}{`format.lab.names'}
-% The function \texttt{format.lab.names} formats by author--year or the
-% \texttt{alpha} style as in the original \texttt{alpha.bst}.
-% Only major difference is that there should be no unsorted (\texttt{seq-no})
-% versions of this. Patashnik was clearly very unhappy about accommodating
-% such an animal, and in fact, his unsorted alpha style crashes \btx.
-% I also provide the \texttt{vonx} option here to ignore the \textsl{von}
-% part of the name.
-%
-%    \begin{macrocode}
-INTEGERS { et.al.char.used }
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-FUNCTION {initialize.et.al.char.used}
-{ #0 'et.al.char.used :=
-}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-EXECUTE {initialize.et.al.char.used}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-FUNCTION {format.lab.names}
-{ 's :=
-%<*alf-1>
-%<!vonx>  s #1 "{v{}}{l{}}" format.name$
-%<vonx>  s #1 "{l{}}" format.name$
-  duplicate$ text.length$ #2 <
-    { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
-      'skip$
-    if$
-%</alf-1>
-%<*!alf-1&alf-f>
-%<!vonx>  s #1 "{vv{}}{ll}" format.name$
-%<vonx>  s #1 "{ll}" format.name$
-%</!alf-1&alf-f>
-%<*!alf-1&!alf-f>
-  s num.names$ 'numnames :=
-  numnames #1 >
-    { numnames #4 >
-        { #3 'namesleft := }
-        { numnames 'namesleft := }
-      if$
-      #1 'nameptr :=
-      ""
-        { namesleft #0 > }
-        { nameptr numnames =
-            { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
-                { "{\etalchar{+}}" *
-                  #1 'et.al.char.used :=
-                }
-%<!vonx>                { s nameptr "{v{}}{l{}}" format.name$ * }
-%<vonx>                { s nameptr "{l{}}" format.name$ * }
-              if$
-            }
-%<!vonx>            { s nameptr "{v{}}{l{}}" format.name$ * }
-%<vonx>            { s nameptr "{l{}}" format.name$ * }
-          if$
-          nameptr #1 + 'nameptr :=
-          namesleft #1 - 'namesleft :=
-        }
-      while$
-      numnames #4 >
-        { "{\etalchar{+}}" *
-          #1 'et.al.char.used :=
-        }
-        'skip$
-      if$
-    }
-%<!vonx>    { s #1 "{v{}}{l{}}" format.name$
-%<vonx>    { s #1 "{l{}}" format.name$
-      duplicate$ text.length$ #2 <
-        { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
-        'skip$
-      if$
-    }
-  if$
-%</!alf-1&!alf-f>
-}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</!ay&alph>
-%    \end{macrocode}
-% The function for the standard citation: one or two authors cited full, but for
-%  more than two, only the first with \emph{et~al.} given.
-%    \begin{macrocode}
-%<*ay&!mcite>
-FUNCTION {format.lab.names}
-{ 's :=
-  "" 't :=
-%<!jnrlab>  s #1 "{vv~}{ll}" format.name$
-%<*jnrlab>
-%<!nm-rv&!nm-rvv&!nm-rvx&!nm-rvcx>  s #1 "{vv~}{ll}{, jj}" format.name$
-%<nm-rv|nm-rvv|nm-rvx|nm-rvcx>  s #1 "{vv~}{ll}{ jj}" format.name$
-%</jnrlab>
-%<lab&and-rm>  cite.name.font
-  s num.names$ duplicate$
-  #2 >
-    { pop$
-%<lab&!and-rm&(etal-it|etal-rm)>      cite.name.font
-%<*!etal-it>
-%<lab&and-rm&!etal-rm>      " " * bbl.etal cite.name.font *
-%<!lab|!and-rm|etal-rm>      " " * bbl.etal *
-%</!etal-it>
-%<etal-it>      " " * bbl.etal emphasize *
-%<lab&!and-rm&!(etal-it|etal-rm)>      cite.name.font
-%<lab&!and-rm>      "others" 't :=
-    }
-    { #2 <
-        'skip$
-        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
-            {
-% %<lab&!and-rm&(etal-it|etal-rm)>              cite.name.font
-%<*!etal-it>
-%<lab&and-rm&!etal-rm>              " " * bbl.etal cite.name.font *
-%<!lab|!and-rm|etal-rm>              " " * bbl.etal *
-%</!etal-it>
-%<etal-it>              " " * bbl.etal emphasize *
-%<lab&!and-rm&!(etal-it|etal-rm)>              cite.name.font
-%<lab&!and-rm>              "others" 't :=
-            }
-%<*!harnm>
-%<*!amper>
-            { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
-%<lab&and-rm>              cite.name.font
-              * }
-%</!amper>
-%<*amper>
-            { " \& " * s #2 "{vv~}{ll}" format.name$
-%<lab&and-rm>              cite.name.font
-              * }
-%</amper>
-%</!harnm>
-%<*harnm>
-            { " \harvardand{} " * s #2 "{vv~}{ll}" format.name$
-%<lab&and-rm>              cite.name.font
-              * }
-%</harnm>
-          if$
-        }
-      if$
-    }
-  if$
-%<*lab&!and-rm>
-  t "others" =
-    'skip$
-    { cite.name.font }
-  if$
-%</lab&!and-rm>
-}
-
-%</ay&!mcite>
-%    \end{macrocode}
-%
-% The code for formating author--year citations with more than one author
-% before \emph{et al.} or selecting a number other than two for truncating,
-% is much the same as the \texttt{format.full.names} function.
-%    \begin{macrocode}
-%<*ay&mcite>
-FUNCTION {format.lab.names}
-{'s :=
- "" 't :=
-  #1 'nameptr :=
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr
-%<!jnrlab>      "{vv~}{ll}" format.name$
-%<*jnrlab>
-%<!nm-rv&!nm-rvv&!nm-rvx&!nm-rvcx>      "{vv~}{ll}{, jj}" format.name$
-%<nm-rv|nm-rvv|nm-rvx|nm-rvcx>      "{vv~}{ll}{ jj}" format.name$
-%</jnrlab>
-%<lab&and-rm>      cite.name.font
-      't :=
-      nameptr #1 >
-        {
-%<mct-1>          nameptr #2 =
-%<mct-2>          nameptr #3 =
-%<mct-3>          nameptr #4 =
-%<mct-4>          nameptr #5 =
-%<mct-5>          nameptr #6 =
-%<mct-6>          nameptr #7 =
-%<mct-x2>          numnames #2 > and
-%<mct-x3>          numnames #3 > and
-%<mct-x4>          numnames #4 > and
-%<mct-x5>          numnames #5 > and
-%<mct-x6>          numnames #6 > and
-            { "others" 't :=
-              #1 'namesleft := }
-            'skip$
-          if$
-          namesleft #1 >
-            { ", " * t * }
-            {
-              s nameptr "{ll}" format.name$ duplicate$ "others" =
-                { 't := }
-                { pop$ }
-              if$
-              t "others" =
-                {
-%<lab&!and-rm&(etal-it|etal-rm)>                  cite.name.font
-%<*!etal-it>
-%<lab&and-rm&!etal-rm>                  " " * bbl.etal cite.name.font *
-%<!lab|!and-rm|etal-rm>                  " " * bbl.etal *
-%</!etal-it>
-%<etal-it>                  " " * bbl.etal emphasize *
-%<lab&!and-rm&!(etal-it|etal-rm)>                  cite.name.font
-                }
-                {
-%<*!harnm>
-%<*!and-xcom>
-                  numnames #2 >
-                    { "," * }
-                    'skip$
-                  if$
-%</!and-xcom>
-%<!amper>                  bbl.and
-%<amper>                  "\&"
-%</!harnm>
-%<harnm>                  "\harvardand{}"
-                  space.word * t *
-                }
-              if$
-            }
-          if$
-        }
-        't
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-%<*lab&!and-rm>
-  t "others" =
-    'skip$
-    { cite.name.font }
-  if$
-%</lab&!and-rm>
-}
-
-%</ay&mcite>
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`author.key.label'}
-% \begin{macro}{`author.editor.key.label'}
-% \begin{macro}{`author.key.organization.label'}
-% \begin{macro}{`editor.key.organization.label'}
-% \begin{macro}{`editor.key.label'}
-% Have to be very careful with the options \texttt{ay}, \texttt{alph}, and
-% \texttt{seq-no} here. The first two are actually mutually exclusive, and
-% \texttt{ay} should dominate. The \texttt{seq-no} option only applies for
-% numerical (\texttt{!ay}) but not alphabetic (\texttt{alph}) selections.
-% This whole block of coding dealing with labels is only included for
-% author--year or alphabetic or ordered numerical.
-% That is, \texttt{ay} or \texttt{alph} or \texttt{!seq-no} is true.
-%    \begin{macrocode}
-%<*ay|alph>
-FUNCTION {author.key.label}
-{ author empty$
-    { key empty$
-        { cite$ #1 #3 substring$ }
-%<ay>        'key
-%<!ay>        { key #3 text.prefix$ }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {author.editor.key.label}
-{ author empty$
-    { editor empty$
-        { key empty$
-            { cite$ #1 #3 substring$ }
-%<ay>            'key
-%<!ay>            { key #3 text.prefix$ }
-          if$
-        }
-        { editor format.lab.names }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-%</ay|alph>
-%<*!ay&alph>
-FUNCTION {author.key.organization.label}
-{ author empty$
-    { key empty$
-        { organization empty$
-            { cite$ #1 #3 substring$ }
-            { "The " #4 organization chop.word #3 text.prefix$ }
-          if$
-        }
-        { key #3 text.prefix$ }
-      if$
-    }
-    { author format.lab.names }
-  if$
-}
-
-FUNCTION {editor.key.organization.label}
-{ editor empty$
-    { key empty$
-        { organization empty$
-            { cite$ #1 #3 substring$ }
-            { "The " #4 organization chop.word #3 text.prefix$ }
-          if$
-        }
-        { key #3 text.prefix$ }
-      if$
-    }
-    { editor format.lab.names }
-  if$
-}
-
-%</!ay&alph>
-%<*ay>
-FUNCTION {editor.key.label}
-{ editor empty$
-    { key empty$
-        { cite$ #1 #3 substring$ }
-        'key
-      if$
-    }
-    { editor format.lab.names }
-  if$
-}
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{`calc.short.authors'}
-%    \begin{macrocode}
-FUNCTION {calc.short.authors}
-{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.key.label
-    { type$ "proceedings" =
-        'editor.key.label
-        'author.key.label
-      if$
-    }
-  if$
-  'short.list :=
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`calc.label'}
-%    \begin{macrocode}
-FUNCTION {calc.label}
-{ calc.short.authors
-  short.list
-%<!(har|ast|cay|nmd|alk|cn)>  "("
-%<har|ast|cay|nmd|alk|cn>  ", "
-  *
-  year duplicate$ empty$
-%<keyxyr>  short.list key field.or.null = or
-%<(blkyear|keyxyr)>     { pop$ "" }
-%<!(blkyear|keyxyr)>     { pop$ "????" }
-%<!note-yr>     { purify$ #-1 #4 substring$ }
-%<note-yr>     'skip$
-  if$
-  *
-  'label :=
-}
-
-%</ay>
-%<*!ay&alph>
-FUNCTION {calc.label}
-{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.key.label
-    { type$ "proceedings" =
-        'editor.key.organization.label
-        { type$ "manual" =
-            'author.key.organization.label
-            'author.key.label
-          if$
-        }
-      if$
-    }
-  if$
-  duplicate$
-  year field.or.null purify$ #-1 #2 substring$
-  *
-  'label :=
-  year field.or.null purify$ #-1 #4 substring$
-  *
-  sortify 'sort.label :=
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</!ay&alph>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*ay>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*har|cay|nmd|ast|cn>
-%    \end{macrocode}
-%
-% \begin{macro}{`calc.short.label'}
-%    \begin{macrocode}
-FUNCTION {calc.short.label}
-{ calc.short.authors short.list
-  'label :=
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</har|cay|nmd|ast|cn>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</ay>
-%    \end{macrocode}
-%
-% \begin{macro}{`sort.format.names'}
-%    \begin{macrocode}
-FUNCTION {sort.format.names}
-{ 's :=
-  #1 'nameptr :=
-  ""
-  s num.names$ 'numnames :=
-  numnames 'namesleft :=
-    { namesleft #0 > }
-    { s nameptr
-%<*xintls>
-%<!vonx>      "{vv{ } }{ll{ }}"
-%<vonx>      "{ll{ }}"
-%</xintls>
-%<*!xintls>
-%<*!nm-init&!nm-rev&!nm-rev1&!nm-rv&!nm-rvx&!nm-rvcx&!nm-rvv&!nm-rvvc>
-%<!vonx>      "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}"
-%<vonx>      "{ll{ }}{  ff{ }}{  jj{ }}"
-%</!nm-init&!nm-rev&!nm-rev1&!nm-rv&!nm-rvx&!nm-rvcx&!nm-rvv&!nm-rvvc>
-%<*nm-init|nm-rev|nm-rev1|nm-rv|nm-rvx|nm-rvcx|nm-rvv|nm-rvvc>
-%<!vonx>      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
-%<vonx>      "{ll{ }}{  f{ }}{  jj{ }}"
-%</nm-init|nm-rev|nm-rev1|nm-rv|nm-rvx|nm-rvcx|nm-rvv|nm-rvvc>
-%</!xintls>
-      format.name$ 't :=
-      nameptr #1 >
-        {
-%<*nmlm>
-%<m1>          nameptr #1
-%<m2>          nameptr #2
-%<m3>          nameptr #3
-%<m4>          nameptr #4
-%<m5>          nameptr #5
-%<m6>          nameptr #6
-%<m7>          nameptr #7
-%<m8>          nameptr #8
-%<m9>          nameptr #9
-%<m0>          nameptr #0
-%<m10>          #10 +
-%<m20>          #20 +
-%<m30>          #30 +
-%<m40>          #40 +
-%<m50>          #50 +
-%<m60>          #60 +
-%<m70>          #70 +
-%<m80>          #80 +
-%<m90>          #90 +
-          #1 + =
-%<x1>          numnames #1
-%<x2>          numnames #2
-%<x3>          numnames #3
-%<x4>          numnames #4
-%<x5>          numnames #5
-%<x6>          numnames #6
-%<x7>          numnames #7
-%<x8>          numnames #8
-%<x9>          numnames #9
-%<x0>          numnames #0
-%<x10>          #10 +
-%<x20>          #20 +
-%<x30>          #30 +
-%<x40>          #40 +
-%<x50>          #50 +
-%<x60>          #60 +
-%<x70>          #70 +
-%<x80>          #80 +
-%<x90>          #90 +
-          > and
-            { "others" 't :=
-              #1 'namesleft := }
-            'skip$
-          if$
-%</nmlm>
-          "   "  *
-          namesleft #1 = t "others" = and
-            { "zzzzz" 't := }
-            'skip$
-          if$
-%<*seq-lab|seq-key|seq-labc>
-          numnames #2 > nameptr #2 = and
-            { "zz" * year field.or.null * "   " *
-%<seq-labc>              #1 'namesleft :=
-            }
-%<seq-labc>            { t sortify * }
-%<!seq-labc>            'skip$
-          if$
-%</seq-lab|seq-key|seq-labc>
-%<!seq-labc>          t sortify *
-        }
-        { t sortify * }
-      if$
-      nameptr #1 + 'nameptr :=
-      namesleft #1 - 'namesleft :=
-    }
-  while$
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`sort.format.title'}
-%    \begin{macrocode}
-FUNCTION {sort.format.title}
-{ 't :=
-  "A " #2
-    "An " #3
-      "The " #4 t chop.word
-    chop.word
-  chop.word
-  sortify
-  #1 global.max$ substring$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`author.sort'}
-%    \begin{macrocode}
-FUNCTION {author.sort}
-{ author empty$
-    { key empty$
-        { "to sort, need author or key in " cite$ * warning$
-          ""
-        }
-        { key sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`author.editor.sort'}
-%    \begin{macrocode}
-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$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`negate.year'}
-% This function negates the year by substituting each digit by its
-% complement. That is, 0 $\rightarrow$ 9, 1 $\rightarrow$ 8, etc. This is used
-% to provide ordering by descending year (latest year first).
-%    \begin{macrocode}
-%<*seq-yrr&!seq-yr>
-FUNCTION {negate.year}
-{ year empty$
-    { "99999" }
-    { year #1 #1 substring$ chr.to.int$ #105 swap$ - int.to.chr$
-      year #2 #1 substring$ chr.to.int$ #105 swap$ - int.to.chr$ *
-      year #3 #1 substring$ chr.to.int$ #105 swap$ - int.to.chr$ *
-      year #4 #1 substring$ chr.to.int$ #105 swap$ - int.to.chr$ *
-    }
-    if$
-}
-%</seq-yrr&!seq-yr>
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%<*ay>
-%    \end{macrocode}
-%
-% \begin{macro}{`editor.sort'}
-%    \begin{macrocode}
-FUNCTION {editor.sort}
-{ editor empty$
-    { key empty$
-        { "to sort, need editor or key in " cite$ * warning$
-          ""
-        }
-        { key sortify }
-      if$
-    }
-    { editor sort.format.names }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%<*seq-no>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-INTEGERS { seq.num }
-%    \end{macrocode}
-%
-% \begin{macro}{`init.seq'}
-%    \begin{macrocode}
-FUNCTION {init.seq}
-{ #0 'seq.num :=}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-EXECUTE {init.seq}
-%    \end{macrocode}
-%
-% \begin{macro}{`int.to.fix'}
-%    \begin{macrocode}
-FUNCTION {int.to.fix}
-{ "000000000" swap$ int.to.str$ *
-  #-1 #10 substring$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</seq-no>
-%    \end{macrocode}
-%
-% \begin{macro}{`presort'}
-% For unsorted author--year, make up the final sorting order in
-% \texttt{sort.label} with the original sequence number, for unsorting later.
-%    \begin{macrocode}
-FUNCTION {presort}
-{ calc.label
-  label sortify
-  "    "
-  *
-%<*!seq-no>
-  type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.sort
-    { type$ "proceedings" =
-        'editor.sort
-        'author.sort
-      if$
-    }
-  if$
-  #1 entry.max$ substring$
-%</!seq-no>
-%<*seq-no>
-  seq.num #1 + 'seq.num :=
-  seq.num  int.to.fix
-%</seq-no>
-  'sort.label :=
-  sort.label
-  *
-%<seq-yr>  "    " * year field.or.null *
-%<seq-yrr&!seq-yr>  "    " * negate.year field.or.null *
-%<*!seq-key&!seq-labc&!seq-yr&!seq-yrr>
-  "    "
-  *
-  title field.or.null
-  sort.format.title
-  *
-%</!seq-key&!seq-labc&!seq-yr&!seq-yrr>
-%<seq-key|seq-yr|seq-yrr>  "    " * cite$ *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-%  "For " cite$ * ", sort.key=" * sort.key$ * warning$
-}
-
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</ay>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*!ay>
-%    \end{macrocode}
-%
-% \begin{macro}{`author.organization.sort'}
-%    \begin{macrocode}
-FUNCTION {author.organization.sort}
-{ author empty$
-    { organization empty$
-        { key empty$
-            { "to sort, need author, organization, or key in " cite$ * warning$
-              ""
-            }
-            { key sortify }
-          if$
-        }
-        { "The " #4 organization chop.word sortify }
-      if$
-    }
-    { author sort.format.names }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`editor.organization.sort'}
-%    \begin{macrocode}
-FUNCTION {editor.organization.sort}
-{ editor empty$
-    { organization empty$
-        { key empty$
-            { "to sort, need editor, organization, or key in " cite$ * warning$
-              ""
-            }
-            { key sortify }
-          if$
-        }
-        { "The " #4 organization chop.word sortify }
-      if$
-    }
-    { editor sort.format.names }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`presort'}
-%    \begin{macrocode}
-FUNCTION {presort}
-%<*alph>
-{ calc.label
-  sort.label
-  "    "
-  *
-  type$ "book" =
-%</alph>
-%<!alph>{ type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.sort
-    { type$ "proceedings" =
-        'editor.organization.sort
-        { type$ "manual" =
-            'author.organization.sort
-            'author.sort
-          if$
-        }
-      if$
-    }
-  if$
-%<alph>  *
-  "    "
-  *
-%<seq-yrr>  negate.year field.or.null sortify
-%<!seq-yrr>  year field.or.null sortify
-%<!(seq-yr|seq-yrr)|alph>  *
-  "    "
-  *
-%<(seq-yr|seq-yrr)&!alph>  swap$ *
-  title field.or.null
-  sort.format.title
-  *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</!ay>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-ITERATE {presort}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-SORT
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</ay|alph|!seq-no>
-%    \end{macrocode}
-%
-% With version~6.0 of \texttt{natbib}, the author-year styles can also be
-% used for numerical citations; then the \texttt{thebibliography} environment
-% must have an argument indicating the length of the longest label.
-% Simply count the references and add this number as the argument.
-%    \begin{macrocode}
-%<*ay>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-STRINGS { last.label next.extra }
-%    \end{macrocode}
-%
-% With computer-generated articles, it is possible to have more than 26 articles
-% in one year. It has finally occurred that the extra labels go beyond `z'.
-% The current code now allows for `aa', \dots `az', 'ba', \dots `zz'. This
-% code was provided by Joseph Wright (2007 Oct 10).
-%    \begin{macrocode}
-INTEGERS { last.extra.num last.extra.num.extended last.extra.num.blank number.label }
-%    \end{macrocode}
-%
-% \begin{macro}{`initialize.extra.label.stuff'}
-%    \begin{macrocode}
-FUNCTION {initialize.extra.label.stuff}
-{ #0 int.to.chr$ 'last.label :=
-  "" 'next.extra :=
-  #0 'last.extra.num :=
-  "a" chr.to.int$ #1 - 'last.extra.num.blank :=
-  last.extra.num.blank 'last.extra.num.extended :=
-  #0 'number.label :=
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`forward.pass'}
-%    \begin{macrocode}
-FUNCTION {forward.pass}
-{ last.label label =
-    { last.extra.num #1 + 'last.extra.num :=
-      last.extra.num "z" chr.to.int$ >
-       { "a" chr.to.int$ 'last.extra.num :=
-         last.extra.num.extended #1 + 'last.extra.num.extended :=
-       }
-       'skip$
-      if$
-      last.extra.num.extended last.extra.num.blank >
-        { last.extra.num.extended int.to.chr$
-          last.extra.num int.to.chr$
-          * 'extra.label := }
-        { last.extra.num int.to.chr$ 'extra.label := }
-      if$
-    }
-    { "a" chr.to.int$ 'last.extra.num :=
-      "" 'extra.label :=
-      label 'last.label :=
-    }
-  if$
-  number.label #1 + 'number.label :=
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</ay>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*!ay&alph>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-STRINGS { longest.label last.sort.label next.extra }
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-INTEGERS { longest.label.width last.extra.num }
-%    \end{macrocode}
-%
-% \begin{macro}{`initialize.longest.label'}
-%    \begin{macrocode}
-FUNCTION {initialize.longest.label}
-{ "" 'longest.label :=
-  #0 int.to.chr$ 'last.sort.label :=
-  "" 'next.extra :=
-  #0 'longest.label.width :=
-  #0 'last.extra.num :=
-}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{`forward.pass'}
-%    \begin{macrocode}
-FUNCTION {forward.pass}
-{ last.sort.label sort.label =
-    { last.extra.num #1 + 'last.extra.num :=
-      last.extra.num int.to.chr$ 'extra.label :=
-    }
-    { "a" chr.to.int$ 'last.extra.num :=
-      "" 'extra.label :=
-      sort.label 'last.sort.label :=
-    }
-  if$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</!ay&alph>
-%    \end{macrocode}
-%
-% \begin{macro}{`reverse.pass'}
-% The extra label is added in braces so that natbib can treat it as one unit.
-% This allows extra labels to be more than one letter long. For non-NFSS
-% emphasizing, this is no problem, since labels go in |{\em a}|, but for
-% non-emphasizing and for NFSS, it caused troubles without the braces.
-% The trouble arises with multiple citations in one |\cite| in which
-% authors and years are the same, and only the extra label is given for
-% the next one. Note: |\emph{a}| is more than one letter long in this sense,
-% so it is not just a problem for more than 26 papers with same authors and
-% year.
-%
-% The command |\natexlab| now encloses the extra label for \texttt{natbib}
-% styles. This command normally just prints its argument, but for numerical
-% citation mode, it swallows its argument. This allows the extra labels to
-% be suppressed for numerical citations where they are superfluous.
-% The enclosing braces mentioned above must be included here to make the
-% entire extra label text a single token for \texttt{natbib}.
-%    \begin{macrocode}
-%<*ay>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-FUNCTION {reverse.pass}
-{ next.extra "b" =
-    { "a" 'extra.label := }
-    'skip$
-  if$
-  extra.label 'next.extra :=
-  extra.label
-%<xlab-it>  emphasize
-%<*!html>
-  duplicate$ empty$
-    'skip$
-    { "{\natexlab{" swap$ * "}}" * }
-  if$
-%</!html>
-  'extra.label :=
-%<!(har|ast|cay|nmd|cn)>  label extra.label * 'label :=
-}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</ay>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*!ay&alph>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-FUNCTION {reverse.pass}
-{ next.extra "b" =
-    { "a" 'extra.label := }
-    'skip$
-  if$
-  label extra.label * 'label :=
-  label width$ longest.label.width >
-    { label 'longest.label :=
-      label width$ 'longest.label.width :=
-    }
-    'skip$
-  if$
-  extra.label 'next.extra :=
-}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</!ay&alph>
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-%<ay>EXECUTE {initialize.extra.label.stuff}
-%<!ay&alph>EXECUTE {initialize.longest.label}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*ay|alph>
-ITERATE {forward.pass}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-REVERSE {reverse.pass}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</ay|alph>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*ay>
-FUNCTION {bib.sort.order}
-{ sort.label
-  "    "
-  *
-%<seq-yrr>  negate.year field.or.null sortify
-%<!seq-yrr>  year field.or.null sortify
-%<(seq-yr|seq-yrr)&!(seq-lab|seq-key|seq-labc)>  swap$
-  *
-%<*!seq-key&!seq-labc&!seq-yr&!seq-yrr>
-  "    "
-  *
-  title field.or.null
-  sort.format.title
-  *
-%</!seq-key&!seq-labc&!seq-yr&!seq-yrr>
-%<seq-key|seq-yr|seq-yrr>  "    " * cite$ *
-  #1 entry.max$ substring$
-  'sort.key$ :=
-%  "For " cite$ * ", bib.sort.key=" * sort.key$ * warning$
-%<har|cay|nmd|cn|ast>  calc.short.label
-}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-ITERATE {bib.sort.order}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-SORT
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</ay>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%<*!ay&!alph>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-STRINGS { longest.label }
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-INTEGERS { number.label longest.label.width }
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-FUNCTION {initialize.longest.label}
-{ "" 'longest.label :=
-  #1 'number.label :=
-  #0 'longest.label.width :=
-}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-FUNCTION {longest.label.pass}
-%<*!cite>
-{ number.label int.to.str$ 'label :=
-  number.label #1 + 'number.label :=
-%</!cite>
-%<cite>{ cite$ 'label :=
-  label width$ longest.label.width >
-    { label 'longest.label :=
-      label width$ 'longest.label.width :=
-    }
-    'skip$
-  if$
-}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-EXECUTE {initialize.longest.label}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-ITERATE {longest.label.pass}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</!ay&!alph>
-%    \end{macrocode}
-%
-% \begin{macro}{`begin.bib'}
-% The function \texttt{begin.bib} writes  the initial text to the \texttt{.bbl}
-% file. The most important matter here is that the \texttt{thebibliography}
-% environment is invoked.
-%
-% Note: the French quotation marks are called `guillimets'; Adobe erroneously
-% named the symbols `guillimot', which is an arctic bird. The error has so
-% propagated, that it can no longer be corrected. \LaTeX\ took it over.
-%    \begin{macrocode}
-FUNCTION {begin.bib}
-%<*!html>
-%<*!ay&alph>
-{ et.al.char.used
-    { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
-    'skip$
-  if$
-  preamble$ empty$
-%</!ay&alph>
-%<ay|!alph>{ preamble$ empty$
-    'skip$
-    { preamble$ write$ newline$ }
-  if$
-%<ay>  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
-%<!ay>  "\begin{thebibliography}{"  longest.label  * "}" *
-  write$ newline$
-%<*(!nmft&(nmft-it|nmft-sc|nmft-bf|nmft-def))|(!lab&(lab-it|lab-bf|lab-sc|lab-def))>
- "\typeout{**********************************}" write$ newline$
- "\typeout{WARNING WARNING WARNING WARNING WARNING}" write$ newline$
- "\typeout{The bst file has been generated with inconsistent options}"
-   write$ newline$
- "\typeout{Read the warning message at the start of the bst file}"
-   write$ newline$
- "\typeout{**********************************}" write$ newline$
-%</(!nmft&(nmft-it|nmft-sc|nmft-bf|nmft-def))|(!lab&(lab-it|lab-bf|lab-sc|lab-def))>
-%<*!plntx>
-%<!tit-it&tit-qq&qt-s>  "\newcommand{\enquote}[1]{`#1'}"
-%<!tit-it&tit-qq&!qt-s&!qt-g>  "\newcommand{\enquote}[1]{``#1''}"
-%</!plntx>
-%<*plntx>
-%<!tit-it&tit-qq&qt-s>  "\def\enquote#1{`#1'}"
-%<!tit-it&tit-qq&!qt-s&!qt-g>  "\def\enquote#1{``#1''}"
-%</plntx>
-%<*!tit-it&tit-qq&!qt-s&qt-g>
-%<!plntx>  "\let\enquote\frquote"
-%<*plntx>
-  "\def\guillemotleft{%"
-  write$ newline$
-  "  \leavevmode\raise .27ex\hbox{$\scriptscriptstyle\ll$}}"
-  write$ newline$
-  "\def\guillemotright{%"
-  write$ newline$
-  "  \leavevmode\raise .27ex\hbox{$\scriptscriptstyle\gg$}}"
-  write$ newline$
-  "\def\enquote#1{\guillemotleft#1\guillemotright}"
-%</plntx>
-%</!tit-it&tit-qq&!qt-s&qt-g>
-%<!tit-it&tit-qq>  write$ newline$
-%<umlaut>  "\let\qq=\" quote$ * write$ newline$
-%<em-ul>  "\expandafter\ifx\csname uline\endcsname\relax\let\uline\underline\fi"
-%<em-ul>   write$ newline$
-%<*ay>
-%<!plntx>  "\providecommand{\natexlab}[1]{#1}"
-%<plntx>  "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
-  write$ newline$
-%<*har>
-  "{\catcode`\|=0\catcode`\#=12\catcode`\@=11\catcode`\\=12" write$ newline$
-  "|immediate|write|@auxout{\expandafter\ifx\csname natexlab\endcsname\relax\gdef\natexlab#1{#1}\fi}}"
-  write$ newline$
-%</har>
-%</ay>
-%<*nmft&nmft-def>
-%<!plntx>  "\providecommand{\bibnamefont}[1]{#1}"
-%<plntx>  "\expandafter\ifx\csname bibnamefont\endcsname\relax"
-%<plntx>  write$ newline$
-%<plntx>  "  \def\bibnamefont#1{#1}\fi"
-  write$ newline$
-%</nmft&nmft-def>
-%<*nmft&fnm-def>
-%<!plntx>  "\providecommand{\bibfnamefont}[1]{#1}"
-%<plntx>  "\expandafter\ifx\csname bibfnamefont\endcsname\relax"
-%<plntx>  write$ newline$
-%<plntx>  "  \def\bibfnamefont#1{#1}\fi"
-  write$ newline$
-%</nmft&fnm-def>
-%<*lab&lab-def>
-%<!plntx>  "\providecommand{\citenamefont}[1]{#1}"
-%<plntx>  "\expandafter\ifx\csname citenamefont\endcsname\relax"
-%<plntx>  write$ newline$
-%<plntx>  "  \def\citenamefont#1{#1}\fi"
-  write$ newline$
-%</lab&lab-def>
-%<*(url&!harnm)|eprint>
-%<*!plntx>
-%<nfss>  "\providecommand{\url}[1]{\texttt{#1}}"
-%<!nfss>  "\providecommand{\url}[1]{{\tt #1}}"
-  write$ newline$
-  "\providecommand{\urlprefix}{}"
-  write$ newline$
-%</!plntx>
-%<*plntx>
-  "\expandafter\ifx\csname url\endcsname\relax"
-  write$ newline$
-%<nfss>  "  \def\url#1{\texttt{#1}}\fi"
-%<!nfss>  "  \def\url#1{{\tt #1}}\fi"
-  write$ newline$
-  "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{}\fi"
-  write$ newline$
-%</plntx>
-%</(url&!harnm)|eprint>
-%<*doi>
-  "\expandafter\ifx\csname urlstyle\endcsname\relax"
-  write$ newline$
-%<*!plntx>
-  "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
-  write$ newline$
-  "  \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
-  write$ newline$
-%</!plntx>
-%<*plntx>
-  "  \expandafter\ifx\csname doi\endcsname\relax"
-  write$ newline$
-  "  \def\doi#1{doi:\discretionary{}{}{}#1}\fi \else"
-  write$ newline$
-  "  \expandafter\ifx\csname doi\endcsname\relax"
-  write$ newline$
-  "  \def\doi{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi \fi"
-  write$ newline$
-%</plntx>
-%</doi>
-%<*url-doi&url>
-  "\providecommand{\doiprefix}{doi: }"
-  write$ newline$
-  "\expandafter\ifx\csname href\endcsname\relax"
-  write$ newline$
-  "  \providecommand{\urldoi}[1]{#1}\else"
-  write$ newline$
-  "  \providecommand{\urldoi}[1]{\href{https://doi.org/#1}{#1}}\fi"
-  write$ newline$
-%</url-doi&url>
-%<*lang>
-%<!plntx>  "\providecommand{\selectlanguage}[1]{\relax}"
-%<*plntx>
-  "\expandafter\ifx\csname selectlanguage\endcsname\relax"
-  write$ newline$
-  "  \def\selectlanguage#1{}\fi"
-%</plntx>
-  write$ newline$
-%</lang>
-%<*!plntx>
-%<*babel>
-  "\input{babelbst.tex}" write$ newline$
-  "\newcommand{\Capitalize}[1]{\uppercase{#1}}" write$ newline$
-  "\newcommand{\capitalize}[1]{\expandafter\Capitalize#1}" write$ newline$
-%</babel>
-%<*annote>
-  "\providecommand{\bibAnnoteFile}[1]{%"
-  write$ newline$
-  "  \IfFileExists{#1}{\begin{quotation}\noindent\textsc{Key:} #1\\"
-  write$ newline$
-  "  \textsc{Annotation:}\ \input{#1}\end{quotation}}{}}"
-  write$ newline$
-  "\providecommand{\bibAnnote}[2]{%"
-  write$ newline$
-  "  \begin{quotation}\noindent\textsc{Key:} #1\\"
-  write$ newline$
-  "  \textsc{Annotation:}\ #2\end{quotation}}"
-  write$ newline$
-%</annote>
-%</!plntx>
-%<*bibinfo>
-%<!plntx>  "\providecommand{\bibinfo}[2]{#2}"
-%<plntx>  "\expandafter\ifx\csname bibinfo\endcsname\relax\def\bibinfo#1#2{#2}\fi"
-  write$ newline$
-%</bibinfo>
-%<*eprint>
-%<!plntx>  "\providecommand{\eprint}[2][]{\url{#2}}"
-%<plntx>  "\expandafter\ifx\csname eprint\endcsname\relax\def\eprint#1{\url{#1}}\fi"
-  write$ newline$
-%</eprint>
-}
-%</!html>
-%<*html>
-{
-"<html><head><title>Bibliography Listing</title></head>" write$ newline$
-"<body>" write$ newline$
-"<h2>Bibliography</h2>" write$ newline$
-%<htdes>"<dl>" write$ newline$
-%<!htdes&htlist>"<ol>" write$ newline$
-}
-%</html>
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-EXECUTE {begin.bib}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-EXECUTE {init.state.consts}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-ITERATE {call.type$}
-%    \end{macrocode}
-%
-% \begin{macro}{`end.bib'}
-%    \begin{macrocode}
-FUNCTION {end.bib}
-{ newline$
-%<!html>  "\end{thebibliography}" write$ newline$
-%<html>  "</dl></body></html>" write$ newline$
-}
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
-EXECUTE {end.bib}
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</!head>
-%    \end{macrocode}
-%
-%    \begin{macrocode}
-%</!options&!driver&!bblbst>
-%    \end{macrocode}
-%
-% \section{The File \texttt{babelbst.tex} for English}
-% The following contains the definitions for the \texttt{babel} language
-% selection as they apply to English. This file may be extracted with
-% \dtx{} and the option \texttt{bblbst}.
-%    \begin{macrocode}
-%<*bblbst>
- % This is babelbst.tex for English.
- % It should serve as a model for other languages.
- % Alternatively, store it under a different name (e.g. englbst.tex)
- % and then \input it with a command in babelbst.tex.
-\def\bbland{and}                \def\bbletal{et~al.}
-\def\bbleditors{editors}        \def\bbleds{eds.}
-\def\bbleditor{editor}          \def\bbled{ed.}
-\def\bbledby{edited by}
-\def\bbledition{edition}        \def\bbledn{edn.}
-\def\bblvolume{volume}          \def\bblvol{vol.}
-\def\bblof{of}
-\def\bblnumber{number}          \def\bblno{no.}
-\def\bblin{in}
-\def\bblpages{pages}            \def\bblpp{pp.}
-\def\bblpage{page}              \def\bblp{p.}
-\def\bbleidpp{pages}
-\def\bblchapter{chapter}        \def\bblchap{chap.}
-\def\bbltechreport{Technical Report}
-\def\bbltechrep{Tech. Rep.}
-\def\bblmthesis{Master's thesis}
-\def\bblphdthesis{Ph.D. thesis}
-\def\bblfirst{First}            \def\bblfirsto{1st}
-\def\bblsecond{Second}          \def\bblsecondo{2nd}
-\def\bblthird{Third}            \def\bblthirdo{3rd}
-\def\bblfourth{Fourth}          \def\bblfourtho{4th}
-\def\bblfifth{Fifth}            \def\bblfiftho{5th}
-\def\bblst{st}  \def\bblnd{nd}  \def\bblrd{rd}
-\def\bblth{th}
-\def\bbljan{January}  \def\bblfeb{February}  \def\bblmar{March}
-\def\bblapr{April}    \def\bblmay{May}       \def\bbljun{June}
-\def\bbljul{July}     \def\bblaug{August}    \def\bblsep{September}
-\def\bbloct{October}  \def\bblnov{November}  \def\bbldec{December}
-%</bblbst>
-%    \end{macrocode}
-%
-% \Finale

Modified: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-rcs-merlin.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-template.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-template.tex	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/cjs-template.tex	2024-07-14 20:14:08 UTC (rev 71799)
@@ -59,16 +59,16 @@
   %% page automatically.
   \begin{englishabstract}
     <Insert your English abstract here. The abstract should be concise
-    --- up to 10 lines long --- and descriptive. Avoid symbols as much
-    as possible. Formulas are strongly discouraged, and citations
-    should be avoided.>
+    (up to 10 lines long) and descriptive. Avoid symbols as much as
+    possible. Formulas are strongly discouraged, and citations should
+    be avoided.>
   \end{englishabstract}
 
   \begin{frenchabstract}
     <Insérer le texte du résumé en français ici. Le résumé doit être
-    concis --- une dizaine de lignes --- et descriptif. Éviter autant
-    que possible les symboles. Les équations mathématiques sont
-    fortement découragées et les citations sont à éviter.>
+    concis (une dizaine de lignes) et descriptif. Éviter autant que
+    possible les symboles. Les équations mathématiques sont fortement
+    déconseillées et les citations sont à éviter.>
     [We will supply a French abstract for those authors who
     can't prepare it themselves.]
   \end{frenchabstract}
@@ -102,9 +102,10 @@
     <Free form text>
   \end{supplement}
 
-  %% DATA SHARING (optional - comment out if unused). Describe how to
-  %% access data that you wish to share. Provide a permanent link such
-  %% as a Document Object Identifier (DOI) or an URL.
+  %% DATA SHARING (mandatory). In accordance with the Expect Data
+  %% Sharing editorial policy of Wiley, make a statement about the
+  %% availability or absence of shared data. Provide a permanent link
+  %% such as a Document Object Identifier (DOI) or an URL.
   \begin{sharing}
     <Free form text>
   \end{sharing}

Modified: trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/rcs-gabarit.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/rcs-gabarit.tex	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/doc/latex/cjs-rcs-article/rcs-gabarit.tex	2024-07-14 20:14:08 UTC (rev 71799)
@@ -61,9 +61,9 @@
   %% la  page de titre automatiquement.
   \begin{englishabstract}
     <Insert your English abstract here. The abstract should be concise
-    --- up to 10 lines long --- and descriptive. Avoid symbols as much
-    as possible. Formulas are strongly discouraged, and citations
-    should be avoided.>
+    (up to 10 lines long) and descriptive. Avoid symbols as much as
+    possible. Formulas are strongly discouraged, and citations should
+    be avoided.>
     [Un résumé en anglais sera fourni pour les auteurs qui ne peuvent
     le préparer eux-mêmes.]
   \end{englishabstract}
@@ -70,9 +70,9 @@
 
   \begin{frenchabstract}
     <Insérer le texte du résumé en français ici. Le résumé doit être
-    concis --- une dizaine de lignes --- et descriptif. Éviter autant
-    que possible les symboles. Les équations mathématiques sont
-    fortement découragées et les citations sont à éviter.>
+    concis (une dizaine de lignes) et descriptif. Éviter autant que
+    possible les symboles. Les équations mathématiques sont fortement
+    déconseillées et les citations sont à éviter.>
   \end{frenchabstract}
 
   %% MOTS-CLÉS. Fournir une liste de mots-clés en ordre alphabétique.
@@ -106,10 +106,11 @@
     <Texte libre>
   \end{supplement}
 
-  %% PARTAGE DES DONNÉES (optionnel - commenter si inutilisé).
-  %% Expliquer comment accéder à des données de l'article mises à
-  %% disposition. Fournir un lien permanent, comme un identificateur
-  %% d'objets numériques (DOI) ou une adresse URL.
+  %% PARTAGE DES DONNÉES (obligatoire). Conformément à la politique
+  %% éditoriale «Expect Data Sharing» de Wiley, vous devez indiquer
+  %% les conditions de partage des données de recherche, ou l'absence
+  %% de celles-ci, le cas échéant. Fournir un lien permanent, comme un
+  %% identificateur d'objets numériques (DOI) ou une adresse URL.
   \begin{sharing}
     <Texte libre>
   \end{sharing}

Modified: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-article.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-article.dtx	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-article.dtx	2024-07-14 20:14:08 UTC (rev 71799)
@@ -3,7 +3,7 @@
 % Article class for The Canadian Journal of Statistics | La revue
 % canadienne de statistique
 %
-% Copyright (C) Statistical Society of Canada | Société
+% Copyright (C) 2023-2024 Statistical Society of Canada | Société
 % canadienne de statistique
 %
 % The class file and templates derived from this file are licenced
@@ -25,10 +25,10 @@
 %<*driver>
 \ProvidesFile{cjs-rcs-article.dtx}
 %</driver>
-%<class>\NeedsTeXFormat{LaTeX2e}[2009/09/24]
+%<class>\NeedsTeXFormat{LaTeX2e}[2021/06/01]
 %<class>\ProvidesClass{cjs-rcs-article}%
 %<*class>
-  [2023/11/29 v1.0 Article class for The Canadian Journal of
+[2024/07/14 v1.1 Article class for The Canadian Journal of
   Statistics | La revue canadienne de statistique]
 %</class>
 %<*driver>
@@ -122,6 +122,10 @@
     \OnlyDescription
   \fi
 
+  %% Additional colors
+  \colorlet{codebg}{LightYellow1} % code background
+  \colorlet{prompt}{Orchid4}      % command prompt
+
   %% New \DescribeMacro type environments for class options and lengths
   \NewDocElement[envlike,notoplevel,printtype=\emph{option}]{Option}{option}
   \NewDocElement[macrolike,notoplevel,printtype=$\ell$]{Length}{length}
@@ -139,9 +143,12 @@
   \newcommand*\CJSbstfr{\code{cjs-rcs-fr}}
   \makeatother
 
+  %% URL of the project repository
+  \newcommand*\reposurl{https://gitlab.com/cjs-rcs/cjs-rcs-article}
+
   %% Redefine \year using information from \filedate instead of using
   %% compilation time
-  \def\parsedate#1/#2/#3\relax{\def\year{#1}}
+  \def\parsedate#1/#2/#3\relax{\def\year{#1}\def\isodate{#1-#2-#3}}
 
   %% Definition of a shorthand to either hyphenate a word or insert a
   %% regular dash. Use in the long names of Creative Commons licences.
@@ -149,6 +156,26 @@
   \useshorthands*{"}
   \defineshorthand{"-}{\discretionary{-}{}{-}}
 
+  %% Source code
+  \usepackage{listings}
+  \lstset{%
+    basicstyle=\ttfamily\NoAutoSpacing,
+    moredelim=[is][\color{prompt}]{---}{-},
+    escapeinside=`',
+    showstringspaces=false,
+    backgroundcolor=\color{codebg},
+    frame=leftline,
+    framerule=2pt,
+    framesep=5pt,
+    xleftmargin=7.4pt
+  }
+
+  %% The \meta command from memoir needs an additionnel \normalfont to
+  %% use the document font in listings.
+  \makeatletter
+  \def\meta at font@select{\normalfont\itshape}
+  \makeatother
+
 \begin{document}
 \DocInput{cjs-rcs-article.dtx}
 \end{document}
@@ -257,6 +284,18 @@
 % CTAN.}
 % \changes{1.0}{2023-11-29}{Fix various typos and cosmetic issues in
 % the documentation.}
+% \changes{1.1}{2024-06-26}{Provide support to acknowledge usage of
+% data from the Alzheimer’s Disease Neuroimaging Initiative (ADNI) and
+% the Alzheimer’s Disease Neuroimaging Metabolomics Consortium
+% (ADMC).}
+% \changes{1.1}{2024-06-26}{Introduce new commands \cs{specialack} and
+% \cs{specialackmark} for the editors.}
+% \changes{1.1}{2024-06-23}{Improve the documentation, in particular
+% the installation instructions and access to the templates.}
+% \changes{1.1}{2024-07-02}{Add the References section to the table of
+% contents of the PDF.}
+% \changes{1.1}{2024-07-13}{Add the command \cs{matit} to typeset bold
+% italic in math in a portable way.}
 %
 % \ifenglish%
 % \title[Guide to the class {\CJSclass}]{%
@@ -353,11 +392,9 @@
 % {\CJSclass} requiert une distribution {\TeX} récente et
 % à jour. Nous recommandons les distributions %
 % \fi
-% \href{https://tug.org/texlive}{{\TeX}~Live} %
-% --- %
+% \href{https://tug.org/texlive}{{\TeX}~Live}\ifenglish---\else~--- \fi%
 % \ifenglish or its variant for macOS \else ou sa variante pour macOS \fi%
-% \href{https://tug.org/mactex}{Mac{\TeX}} %
-% --- %
+% \href{https://tug.org/mactex}{Mac{\TeX}}\ifenglish---\else~--- \fi%
 % \ifenglish and \else et \fi%
 % \href{https://miktex.org}{MiK{\TeX}}. %
 % \ifenglish%
@@ -425,17 +462,28 @@
 % \section{Démarrage rapide}
 % \fi
 % \label{sec:quick-start}
+% \changes{1.1}{2024-06-05}{Documentation: add a link to obtain the
+% templates in the \emph{Quick start} section.}
 %
 % \ifenglish%
 % The class ships with templates for articles in English and in
 % French. In {\TeX}~Live, these are located with the
-% documentation of the class. To quickly start writing your article,
-% copy the appropriate template to your working directory and follow
-% the brief instructions therein. %
+% documentation of the class. You may also obtain the templates from
+% the %
 % \else%
 % La classe est livrée avec des gabarits pour des articles en français
 % et en anglais. Dans la distribution {\TeX}~Live, ceux-ci sont
-% classés avec la documentation. Pour débuter rapidement la rédaction
+% classés avec la documentation. Vous pouvez aussi les récupérer
+% depuis le %
+% \fi%
+% \href{\reposurl/-/releases/\fileversion}{%
+% \ifenglish project repository\else dépôt du projet\fi}. %
+% \ifenglish%
+% To quickly start writing your article, copy the appropriate template
+% to your working directory and follow the brief instructions
+% therein. %
+% \else%
+% Pour débuter rapidement la rédaction
 % de votre article, copiez le gabarit approprié dans votre dossier de
 % travail et suivez les directives succinctes qui s'y trouvent. %
 % \fi
@@ -490,6 +538,9 @@
 % \changes{0.91}{2023-10-16}{Change the name of the archive containing
 % a ``local'' installation of the class from
 % \texttt{-no-local-tex.zip} to \texttt{-project-install.zip}.}
+% \changes{1.1}{2024-06-05}{Documentation: provide a direct link to
+% the release corresponding to the version of the documentation in the
+% \emph{Installation} section.}
 %
 % \ifenglish%
 % The class {\CJSclass} is distributed as the package %
@@ -507,21 +558,33 @@
 % the command line: %
 % \else%
 % via le réseau de sites \emph{Comprehensive {\TeX} Archive Network}
-% (CTAN). Elle fait partie des distributions {\TeX} standards telles
-% que {TeX}~Live, Mac{\TeX} et MiK{\TeX}. Nous recommandons fortement
-% d'installer ou de mettre à jour le paquetage à l'aide du
+% (CTAN). Celui-ci fait partie des distributions {\TeX} standards
+% telles que {TeX}~Live, Mac{\TeX} et MiK{\TeX}. Nous recommandons
+% fortement d'installer ou de mettre à jour le paquetage à l'aide du
 % gestionnaire de paquetages de votre distribution {\TeX}. Par
-% exemple, avec {\TeX}~Live, vous pouvez effectuer ces opérations dans
-% l'assistant graphique, ou encore avec l'une ou l'autre des commandes
-% ci-dessous: %
+% exemple, avec {\TeX}~Live, vous pouvez effectuer ces opérations
+% dans l'assistant graphique, ou encore avec l'une ou l'autre des
+% commandes ci-dessous: %
 % \fi
-% \begin{quote}
-%   \code{tlmgr install cjs-rcs-article}
-% \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+---$- tlmgr install cjs-rcs-article
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 % \ifenglish or\else ou\fi
-% \begin{quote}
-% \code{tlmgr update cjs-rcs-article}
-% \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+---$- tlmgr update cjs-rcs-article
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %
 % \ifenglish%
 % If you are not in position to install packages or update the {\TeX}
@@ -530,23 +593,23 @@
 % limited in scope to your project. Download the archive %
 % \else%
 % S'il vous est impossible d'installer des paquetages ou de mettre à
-% jour la distribution {\TeX} --- notamment si vous utilisez une
-% plateforme de rédaction en ligne --- vous pouvez procéder à une
+% jour la distribution {\TeX}~--- notamment si vous utilisez une
+% plateforme de rédaction en ligne~--- vous pouvez procéder à une
 % installation simplifiée de la classe, mais dont la portée sera
 % limitée à votre projet. Pour ce faire, téléchargez l'archive %
 % \fi%
 % \code{cjs-rcs-article-project-install.zip} %
 % \ifenglish from the \else depuis le \fi%
-% \href{https://gitlab.com/cjs-rcs/cjs-rcs-article/-/releases}{%
-% \ifenglish project repository\else dépôt du projet\fi} %
+% \href{\reposurl/-/releases/\fileversion}{%
+% \ifenglish project repository\else dépôt du projet\fi}, %
 % \ifenglish%
-% and uncompress it in the directory of your project. You will then
-% have access to all the essential files of the class within this
-% project. %
+% uncompress it and place its contents in the directory of your
+% project. You will then have access to all the essential files of the
+% class within this project. %
 % \else%
-% et décompressez celle-ci dans le répertoire de votre projet. Vous
-% disposerez alors de tous les fichiers essentiels de la classe à
-% l'intérieur de ce projet. %
+% décompressez celle-ci et placez son contenu dans le répertoire de
+% votre projet. Vous disposerez alorsà l'intérieur de ce projet de
+% tous les fichiers essentiels de la classe. %
 % \fi
 %
 % \ifenglish%
@@ -631,7 +694,7 @@
 %   {pdf\LaTeX} utilise les versions Type~1 des polices STIX~Two et
 %   Fira. Or, la technologie Type~1 PostScript étant aujourd'hui
 %   obsolète, ces polices ne sont plus mises à jour. Le moteur
-%   {\XeLaTeX} utilise les plus modernes --- et complètes --- versions
+%   {\XeLaTeX} utilise les plus modernes~--- et complètes~--- versions
 %   OpenType des polices.}, %
 % nous recommandons de compiler votre manuscript avec le plus moderne
 % moteur {\XeLaTeX}. %
@@ -643,24 +706,34 @@
 % \subsection{Gabarits}
 % \fi
 % \label{sec:usage:templates}
+% \changes{1.1}{2024-06-05}{Documentation: add a link to the templates
+% in the \emph{Templates} sub-section.}
 %
 % \ifenglish%
 % The class is distributed with templates for articles in English
 % and in French. If you are using the version of the class included
 % with your {\TeX} distribution, the templates may be located with the
-% documentation (this is the case in {\TeX}~Live). If you installed
-% the class manually by following the instructions in
-% \autoref{sec:installation}, the templates reside in your working
-% directory. %
+% documentation (this is the case in {\TeX}~Live). You may also obtain
+% them from the %
 % \else
 % La classe est distribuée avec des gabarits pour des articles en français
 % et en anglais. Si vous utilisez la version de la classe fournie avec
 % votre distribution {\TeX}, les gabarits peuvent être classés  avec
-% la documentation (c'est le cas dans {\TeX}~Live). Si vous avez
+% la documentation (c'est le cas dans {\TeX}~Live). Vous pouvez aussi
+% les récupérer depuis le %
+% \fi
+% \href{\reposurl/-/releases/\fileversion}{%
+% \ifenglish project repository\else dépôt du projet\fi}. %%
+% \ifenglish
+% If you installed the class manually by following the instructions in
+% \autoref{sec:installation}, the templates reside in your working
+% directory. %
+% \else%
+% Si vous avez
 % plutôt installé la classe manuellement en suivant les instructions
 % de la \autoref{sec:installation}, les gabarits se trouvent dans
 % votre dossier de travail. %
-% \fi
+% \fi%
 %
 % \ifenglish%
 % We strongly encourage to start from a template to write your
@@ -705,13 +778,19 @@
 % \label{sec:usage:options}
 %
 % \ifenglish%
-% The class is loaded with the command %
+% The class is loaded with the command: %
 % \else%
-% On charge la classe avec la commande %
+% On charge la classe avec la commande: %
 % \fi
-% \begin{quote}
-%   \cmdprint{\documentclass}\oarg{options}\code{\{cjs-rcs-article\}}
-% \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\documentclass`\oarg{options}\marg{cjs-rcs-article}'
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 % \ifenglish%
 % Some \meta{options} of the class are intended for the authors,
 % whereas others are instead intended for the editors of {\TheCJS*}.
@@ -931,22 +1010,28 @@
 %   du titre qui sera utilisée dans les entêtes. La syntaxe de la
 %   commande est donc: %
 %   \fi
-%   \begin{quote}
-%     \def\OPT{\ifenglish Short title\else Titre court\fi}
-%     \def\ARG{\ifenglish Full title\else Titre complet\fi}
-%     \cmdprint{\title}\oarg{\OPT}\marg{\ARG}
-%   \end{quote}
-%   \ifenglish%
-%   Write the title in sentence style, that is, with only an initial
-%   capital. In English, also capitalize the first word after a colon.
-%   Break a long title needing more than one line using \code{\bs\bs}
-%   or \cmdprint{\newline}. %
-%   \else%
-%   Entrez le titre en minuscules (sauf pour la majuscule initiale).
-%   En anglais, utilisez toutefois une majuscule initiale après un
-%   deux-points. Vous devez couper manuellement avec \code{\bs\bs} ou
-%   \cmdprint{\newline} un titre qui nécessite plus d'une ligne.
-%   \fi
+% \iffalse
+%<*example>
+% \fi
+\def\OPT{\ifenglish Short title\else Titre court\fi}
+\def\ARG{\ifenglish Full title\else Titre complet\fi}
+\begin{lstlisting}
+\title`\oarg{\OPT}\marg{\ARG}'
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+% \ifenglish%
+% Write the title in sentence style, that is, with only an initial
+% capital. In English, also capitalize the first word after a colon.
+% Break a long title needing more than one line using \code{\bs\bs}
+% or \cmdprint{\newline}. %
+% \else%
+% Entrez le titre en minuscules (sauf pour la majuscule initiale).
+% En anglais, utilisez toutefois une majuscule initiale après un
+% deux-points. Vous devez couper manuellement avec \code{\bs\bs} ou
+% \cmdprint{\newline} un titre qui nécessite plus d'une ligne.
+% \fi
 % \end{DescribeMacro}
 %
 % \ifenglish%
@@ -994,11 +1079,17 @@
 %   informations relatives à un auteur de l'article. Sa syntaxe
 %   générale est la suivante: %
 %   \fi
-%   \begin{quote}
-%     \def\FORENAME{\ifenglish Forename\else Prénom\fi}
-%     \def\SURNAME{\ifenglish Surname\else Nom\fi}
-%     \cmdprint{\author}\oarg{options}\code{\{}\meta{\FORENAME}\code{ }\cmdprint{\surname}\marg{\SURNAME}\code{\}}
-%   \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\def\FORENAME{\ifenglish Forename\else Prénom\fi}
+\def\SURNAME{\ifenglish Surname\else Nom\fi}
+\begin{lstlisting}
+\author`\oarg{options}'{`\meta{\FORENAME}' \surname`\marg{\SURNAME}'}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %   \ifenglish%
 %   The \meta{Surname} must be entered using the command
 %   \cmd{\surname}. Write the \meta{Forename} and \meta{Surname} in
@@ -1113,15 +1204,27 @@
 %     \def\FORENAME{\ifenglish Forename\else Prénom\fi}
 %     \def\SURNAME{\ifenglish Surname\else Nom\fi}
 %   \item \ifenglish For the corresponding author\else Pour l'auteur correspondant\fi:
-%     \begin{quote}
-%       \cmdprint{\author}\code{[orcid=}\meta{id}\code{, email=}\meta{\EMAIL}\code{, corresponding]} \\
-%       \verb+       +\code{\{}\meta{\FORENAME}\code{ }\cmdprint{\surname}\marg{\SURNAME}\code{\}}
-%     \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\author[orcid=`\meta{id}', email=`\meta{\EMAIL}', corresponding]
+       {`\meta{\FORENAME}' \surname`\marg{\SURNAME}'}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %   \item \ifenglish For all other authors\else Pour tous les autres auteurs\fi:
-%     \begin{quote}
-%       \cmdprint{\author}\code{[orcid=}\meta{id}\code{, email=}\meta{\EMAIL}\code{]} \\
-%       \verb+       +\code{\{}\meta{\FORENAME}\code{ }\cmdprint{\surname}\marg{\SURNAME}\code{\}}
-%     \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\author[orcid=`\meta{id}', email=`\meta{\EMAIL}']
+       {`\meta{\FORENAME}' \surname`\marg{\SURNAME}'}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %   \end{itemize}
 % \end{DescribeMacro}
 % \end{DescribeMacro}
@@ -1136,11 +1239,17 @@
 %   mentionné dans la commande \cmd{\author} qui la précède. La forme
 %   générale de l'affiliation est: %
 %   \fi
-%   \begin{quote}
-%     \def\AFFIL{\ifenglish Department, University, City, Country\else%
-%       Département, Université, Ville, Pays\fi}
-%     \cmd{\affil}\marg{\AFFIL}
-%   \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\def\AFFIL{\ifenglish Department, University, City, Country\else%
+  Département, Université, Ville, Pays\fi}
+\begin{lstlisting}
+\affil`\marg{\AFFIL}'
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %   \ifenglish%
 %   Give the country name in the main language of the article. %
 %   \else%
@@ -1164,13 +1273,19 @@
 %   premier auteur suivi de la locution «et collab.» (en français) ou
 %   «et al.» (en anglais): %
 %   \fi
-%   \begin{quote}
-%     \def\SURNAME{\ifenglish Surname\else Nom\fi}
-%     \def\ETAL{\ifenglish et al.\else et collab.\fi}
-%     \def\ETCOLLAB{\ifenglish et collab.\else et al.\fi}
-%     \cmdprint{\runningauthor}\code{\{}\meta{\SURNAME}\code{ \ETAL\}} \\
-%     \cmdprint{\runningauthor}\code{\{}\meta{\SURNAME}\code{ \ETCOLLAB\}}
-%   \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\def\SURNAME{\ifenglish Surname\else Nom\fi}
+\def\ETAL{\ifenglish et al.\else et collab.\fi}
+\def\ETCOLLAB{\ifenglish et collab.\else et al.\fi}
+\begin{lstlisting}
+\runningauthor{`\meta{\SURNAME} \ETAL'}
+\runningauthor{`\meta{\SURNAME} \ETCOLLAB'}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 % \end{DescribeMacro}
 %
 % \ifenglish%
@@ -1224,16 +1339,22 @@
 %   mots-clés de l'article. Il s'utilise comme une liste
 %   \code{itemize} ou \code{enumerate}: %
 %   \fi
-%   \begin{quote}
-%     \def\KEYWORDC{\ifenglish Key word\else Mot-clé\fi}
-%     \def\KEYWORD{\ifenglish key word\else mot-clé\fi}
-%     \cmdprint{\begin}\code{\{keywords\}} \\
-%     \cmdprint{\item} \emph{{\KEYWORDC} 1} \\
-%     \cmdprint{\item} \emph{{\KEYWORD} 2} \\
-%     \cmdprint{\item} \emph{{\KEYWORD} 3} \\
-%     \code{...} \\
-%     \cmdprint{\end}\code{\{keywords\}}
-%   \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\def\KEYWORDC{\ifenglish Key word\else Mot-clé\fi}
+\def\KEYWORD{\ifenglish key word\else mot-clé\fi}
+\begin{lstlisting}
+\begin{keywords}
+\item `\normalfont\itshape{\KEYWORDC} 1'
+\item `\normalfont\itshape{\KEYWORD} 2'
+\item `\normalfont\itshape{\KEYWORD} 3'
+...
+\end{keywords}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %   \ifenglish%
 %   As shown above, use an initial capital for the first key word
 %   only. Punctuation will be added automatically. %
@@ -1261,15 +1382,21 @@
 %   classification mathématique par matières de l'article. Son
 %   interface est la suivante: %
 %   \fi
-%   \begin{quote}
-%     \def\LEVEL{\ifenglish level\else niveau\fi}
-%     \def\CODE{\ifenglish code\else rubrique\fi}
-%     \cmdprint{\begin}\code{\{classification\}}\oarg{type} \\
-%     \cmdprint{\item}\oarg{\LEVEL} \emph{{\CODE} 1}, \emph{{\CODE} 2}, \dots \\
-%     \cmdprint{\item}\oarg{\LEVEL} \emph{{\CODE} 1}, \emph{{\CODE} 2}, \dots \\
-%     \code{...} \\
-%     \cmdprint{\end}\code{\{classification\}}
-%   \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\def\LEVEL{\ifenglish level\else niveau\fi}
+\def\CODE{\ifenglish code\else rubrique\fi}
+\begin{lstlisting}
+\begin{classification}`\oarg{type}'
+\item`\oarg{\LEVEL} \normalfont\itshape{\CODE} 1, {\CODE} 2, \dots'
+\item`\oarg{\LEVEL} \normalfont\itshape{\CODE} 1, {\CODE} 2, \dots'
+...
+\end{classification}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %   \ifenglish%
 %   The classification system used is %
 %   \else%
@@ -1331,9 +1458,55 @@
 % les options \code{review}, \code{supplement} et \code{nocjs},
 % l'espace est remplacé par un pied de page contenant le numéro de
 % page. %
-% \fi%
+% \fi
 %
 % \ifenglish%
+% \subsubsection{ADNI data use agreement}
+% \else%
+% \subsubsection{Contrat d'utilisation des données de l'ADNI}
+% \fi
+% \label{sec:usage:titling:adni}
+%
+% \ifenglish%
+% The Alzheimer’s Disease Neuroimaging Initiative (ADNI) %
+% \else%
+% Le %
+% \fi
+% \href{https://adni.loni.usc.edu/wp-content/uploads/how_to_apply/ADNI_DSP_Policy.pdf}{\ifenglish Data Sharing and Publication Policy\else contrat d'utilisation des données\fi} %
+% \ifenglish%
+% requires authors using their data to acknowledge ADNI in the list of
+% authors and give a specific statement on the title page. %
+% \else%
+% de l'Alzheimer’s Disease Neuroimaging Initiative (ADNI) stipule que
+% les auteurs qui ont recours à leurs données doivent reconnaitre la
+% contribution de l'ADNI parmi les auteurs et inclure une déclaration
+% spécifique sur la page de titre de l'article. %
+% \fi
+%
+% \begin{DescribeMacro}{\ADNIacknowledgement}
+%   \ifenglish%
+%   The command \cmd{\ADNIacknowledgement} adds these two
+%   requirements. The command has no arguments; simply insert it after
+%   the declarations of the authors. %
+% \else%
+%   La commande \cmd{\ADNIacknowledgement} ajoute ces deux exigences.
+%   La commande n'a aucun argument; insérez simplement celle-ci après
+%   toutes les autres définitions des auteurs. %
+% \fi
+% \end{DescribeMacro}
+%
+% \begin{DescribeMacro}{\ADMCacknowledgement}
+%   \ifenglish%
+%   Similarly, the command \cmd{\ADMCacknowledgement} acknowledges the
+%   Alzheimer’s Disease Meta\-bo\-lomics Consortium (ADMC). %
+% \else%
+%   De manière analogue, la commande \cmd{\ADMCacknowledgement}
+%   reconnait la contribution du
+%   Alzheimer’s Disease Metabolomics Consortium (ADMC). %
+% \fi
+% \end{DescribeMacro}
+%
+% \ifenglish%
 % \subsection{Back matter information}
 % \else%
 % \subsection{Informations des parties annexes}
@@ -1342,17 +1515,19 @@
 %
 % \ifenglish%
 % Articles in {\TheCJS} end with elements forming the so-called back
-% matter: supplementary material available online, acknowledgements,
-% etc. The class {\CJSclass} provides specialized environments to
-% enter this information. See \autoref{tab:titling} for a summary; the
-% detailed descriptions follow. %
+% matter: supplementary material available online, data sharing
+% statement, acknowledgements, etc. The class {\CJSclass} provides
+% specialized environments to enter this information. See
+% \autoref{tab:titling} for a summary; the detailed descriptions
+% follow. %
 % \else%
 % Un article de {\LaRevue} se termine par la présentation d'un
 % ensemble d'informations dans des parties annexes: matériel
-% additionnel disponible en ligne, remerciements, etc. La classe
-% {\CJSclass} définit des environnements pour entrer ce type
-% d'information de manière uniforme. Le \autoref{tab:backmatter} en
-% présente un sommaire; les descriptions détaillées suivent. \fi
+% additionnel disponible en ligne, conditions de partage des données,
+% remerciements, etc. La classe {\CJSclass} définit des environnements
+% pour entrer ce type d'information de manière uniforme. Le
+% \autoref{tab:backmatter} en présente un sommaire; les descriptions
+% détaillées suivent. \fi
 %
 % \begin{table}[t]
 %   \centering
@@ -1428,18 +1603,34 @@
 %   \fi
 % \end{DescribeEnv}
 %
+% \changes{1.1}{2024-01-23}{Documentation: revise the description of
+% the \texttt{sharing} environment now that the CJS adhered to the
+% Expects Data Sharing editorial policy of Wiley.}
 % \begin{DescribeEnv}{sharing}
+%   \def\POLICYNAME{\ifenglish Expects Data Sharing\else \emph{Expects Data Sharing}\fi}
 %   \ifenglish%
-%   If you wish to share data or the code, use the environment
-%   \code{sharing} to describe how to access this material, providing
-%   a persistent identifier, such as a digital object identifier (DOI)
-%   or a URL. %
+%   {\TheCJS} adheres to the %
 %   \else%
-%   Si vous mettez les données ou le code de votre article à
-%   disposition, utilisez l'environnement \code{sharing} pour
-%   expliquer comment accéder à ce matériel et pour indiquer un lien
-%   permanent, comme un identificateur d'objets numériques (DOI) ou
-%   une adresse URL. %
+%   {\LaRevue} respecte la politique éditoriale %
+%   \fi%
+%   \href{https://authorservices.wiley.com/author-resources/Journal-Authors/open-access/data-sharing-citation/data-sharing-policy.html}{\POLICYNAME} %
+%   \ifenglish%
+%   editorial policy of Wiley. Therefore, you must use the environment
+%   \code{sharing} to make a statement about the availability or
+%   absence of shared data. In case of ethical or legal concerns, we
+%   encourage you to provide synthetic data instead if possible.
+%   Provide a persistent identifier to access the data, such as a
+%   digital object identifier (DOI) or a URL. You may also use the
+%   environment to describe how to access shared computer code. %
+%   \else%
+%   de Wiley. Par conséquent, vous devez utiliser l'environnement
+%   \code{sharing} pour préciser les conditions de partage des données
+%   de recherche, ou encore leur absence, le cas échéant. En cas
+%   d'enjeux éthiques ou légaux, veuillez utiliser si possible des
+%   données de synthèse. Indiquez un lien permanent pour accéder aux
+%   données, comme un identificateur d'objets numériques (DOI) ou une
+%   adresse URL. Vous pouvez aussi utiliser l'environnement pour
+%   indiquer comment accéder à du code informatique partagé. %
 %   \fi
 % \end{DescribeEnv}
 %
@@ -1644,10 +1835,16 @@
 % la page de titre du présent document a été composée avec la commande
 % suivante: %
 % \fi
-% \begin{quote}
-%   \cmd{\licence}\code{\{\{}\cmdprint{\ccbysa*}\code{\} {\year}, Statistical Society of Canada \{}\cmdprint{\textbar}\code{\}} \\
-%   \verb+  +\code{Société canadienne de statistique\}}
-% \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\licence{{\ccbysa*} `\year', Statistical Society of Canada {\textbar}
+  Société canadienne de statistique}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %
 % \ifenglish%
 % \subsection{Mathematics}
@@ -1655,6 +1852,8 @@
 % \subsection{Mathématiques}
 % \fi
 % \label{sec:usage:mathematics}
+% \changes{1.1}{2024-01-23}{Documentation: specify that the class is
+% not compatible with the package \textbf{amssymb}.}
 %
 % \ifenglish%
 % The class automatically loads the packages %
@@ -1666,16 +1865,18 @@
 % \ifenglish%
 % and, when the document is compiled with {\XeLaTeX}, %
 % \else%
-% et, lorsque le document est compilé avec {\XeLaTeX},
+% et, lorsque le document est compilé avec {\XeLaTeX}, %
 % \fi%
 % \href{https://ctan.org/pkg/unicode-math}{\pkg{unicode-math}}. %
 % \ifenglish%
-% The class also defines a number of commands and environments to
-% standardize the typesetting of mathematical content in {\TheCJS}.
+% Note that it is not compatible with the package \pkg{amssymb}. The
+% class also defines a number of commands and environments to
+% standardize the typesetting of mathematical content in {\TheCJS}. %
 % \else%
-% Elle définit également des commandes et des environnements pour
-% assurer une mise en forme standardisée des mathématiques dans
-% {\LaRevue}.
+% En revanche, elle n'est pas compatible avec le paquetage
+% \pkg{amssymb}. La classe définit également des commandes et des
+% environnements pour assurer une mise en forme standardisée des
+% mathématiques dans {\LaRevue}. %
 % \fi
 %
 % \ifenglish%
@@ -1724,6 +1925,9 @@
 %       \cmd{\mat} &
 %       \ifenglish matrix or vector \else matrice ou vecteur \fi &
 %       \cmdprint{\mat}\code{\{A\}} & $\mat{A}$ \\
+%       \cmd{\matit} &
+%       \ifenglish matrix or vector (italic) \else matrice ou vecteur (italique) \fi &
+%       \cmdprint{\matit}\code{\{x\}} & $\matit{x}$ \\
 %       \cmd{\trsp} &
 %       \ifenglish transposition \else transposée \fi &
 %       \cmdprint{\mat}\code{\{A\}}\cmdprint{\trsp} & $\mat{A}\trsp$ \\
@@ -1800,7 +2004,7 @@
 %   \begin{tabbing}
 %     \hspace*{2.5em}\=\cmd{\prdist}\code{\{E\}(\cmd{\lambda})}%
 %     \quad\=$\rightarrow$ \quad\=$\prdist{N}(0, 1)$ \quad\=\kill
-%     \>\cmd{\prdist}\code{\{N\}(0, 1)}%
+%     \>\cmd{\prdist}\code{\{N\}(0, 1)} %
 %     \>$\rightarrow$ %
 %     \>$\prdist{N}(0, 1)$ %
 %     \>(\ifenglish Normal\else normale\fi) \\
@@ -1816,28 +2020,38 @@
 % \end{DescribeMacro}
 %
 % \begin{DescribeMacro}{\mat}
-% \begin{DescribeMacro}{\trsp}
-% \begin{DescribeMacro}{\tr}
-% \begin{DescribeMacro}{\diag}
+% \begin{DescribeMacro}{\matit}
 %   \ifenglish%
 %   The command \cmd{\mat} typesets a variable in roman bold, a style
 %   often used for matrices and vectors (hence the name of the
-%   command). To indicate matrix transposition, use only the command
-%   \cmd{\trsp}. The commands \cmd{\tr} and \cmd{\diag} define two
-%   other common linear algebra operators, the trace and the
-%   diagonal. %
+%   command). The command \cmd{\matit} is similar, but for a variable
+%   in bold italic.
 %   \else%
 %   La commande \cmd{\mat} compose une variable en romain gras, ce qui
 %   est souvent utilisé pour les matrices et les vecteurs (d'où le nom
-%   de la commande). Pour indiquer la transposée d'une matrice,
-%   utilisez uniquement la commande \cmd{\trsp}. Les commandes
-%   \cmd{\tr} et \cmd{\diag} définissent deux autres opérateurs
-%   courants en algèbre linéaire, la trace et la diagonale. %
+%   de la commande). La commande \cmd{\matit} produit plutôt une
+%   variable en gras italique.
 %   \fi
 % \end{DescribeMacro}
 % \end{DescribeMacro}
+%
+% \begin{DescribeMacro}{\trsp}
+% \begin{DescribeMacro}{\tr}
+% \begin{DescribeMacro}{\diag}
+%   \ifenglish%
+%   To indicate matrix transposition, use only the command
+%   \cmd{\trsp}. The commands \cmd{\tr} and \cmd{\diag} define
+%   two other common linear algebra operators, the trace and the
+%   diagonal. %
+%   \else%
+%   Pour indiquer la transposée d'une matrice, utilisez uniquement la
+%   commande \cmd{\trsp}. Les commandes \cmd{\tr} et \cmd{\diag}
+%   définissent deux autres opérateurs courants en algèbre linéaire,
+%   la trace et la diagonale. %
+%   \fi
 % \end{DescribeMacro}
 % \end{DescribeMacro}
+% \end{DescribeMacro}
 %
 % \begin{DescribeMacro}{\Nset}
 % \begin{DescribeMacro}{\Zset}
@@ -1999,8 +2213,25 @@
 %   Évitez si possible les indices doubles et n'utilisez jamais
 %   d'indices triples. %
 %   \fi
+% \changes{1.1}{2024-03-06}{Documentation: add an advice on the
+% typesetting of bold symbols in mathematics.}
 % \item %
 %   \ifenglish%
+%   Bold in mathematics is a tricky issue. Use the aforementioned
+%   class commands \cmdprint{\mat} and \cmdprint{\matit} to generate
+%   bold symbols reliably across {\TeX} engines. With {\XeLaTeX},
+%   \cmdprint{\mat} also works with Greek letters (that will be
+%   typeset in italic). %
+%   \else%
+%   La composition en gras en mathématiques est une opération
+%   délicate. Utilisez les commandes de la classe \cmdprint{\mat} et
+%   \cmdprint{\matit} mentionnées précédemment pour composer
+%   automatiquement des symboles en gras quelque soit le moteur
+%   {\TeX}. Avec {\XeLaTeX}, \cmdprint{\mat} fonctionne aussi avec les
+%   lettres grecques (qui sont alors composées en italique). %
+%   \fi
+% \item %
+%   \ifenglish%
 %   Always use the command \cmdprint{\ell} to obtain the symbol
 %   $\ell$. Avoid using the letter ``l'' as a symbol, as it may be
 %   difficult to distinguish from the numeral $1$. %
@@ -2094,13 +2325,19 @@
 %   («équation», «inégalité», «relation», etc.), ainsi que par une
 %   espace insécable: %
 %   \fi
-%   \begin{quote}
-%     \def\LABEL{\ifenglish label\else étiquette\fi}
-%     \def\EQN{\ifenglish equation\else équation\fi}
-%     \def\INEQ{\ifenglish inequalities\else inégalités\fi}
-%     \code{\EQN~}\cmdprint{\eqref}\marg{\LABEL} \\
-%     \code{\INEQ~}\cmdprint{\eqref}\marg{\LABEL}\code{{-}{-}}\cmdprint{\eqref}\marg{\LABEL}
-%   \end{quote}
+% \iffalse
+%<*example>
+% \fi
+  \def\LABEL{\ifenglish label\else étiquette\fi}
+  \def\EQN{\ifenglish equation\else équation\fi}
+  \def\INEQ{\ifenglish inequalities\else inégalités\fi}
+\begin{lstlisting}
+`\EQN'~\eqref`\marg{\LABEL}'
+`\INEQ'~\eqref`\marg{\LABEL}'--\eqref`\marg{\LABEL}'
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 % \end{itemize}
 %
 % \ifenglish%
@@ -2533,72 +2770,137 @@
 % description pour un nouvel environnement \meta{env}, insérez la
 % commande suivante dans le préambule de votre document: %
 % \fi
-% \begin{quote}
-%   \cmdprint{\addto}\cmdprint{\extras}\code{\languagename}\code{\{}\cmdprint{\def}\code{\bs}\meta{env}\code{autorefname}\marg{description}\code{\}}
-% \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\addto\extras`\languagename'{\def\`\meta{env}'autorefname`\marg{description}'}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 % \ifenglish%
 % (If the main language of the article is French, replace
 % \cmdprint{\extras}\code{\languagename} by
-% \cmdprint{\extrasfrench}.)\footnote{%
+% \cmdprint{\extrasfrench}.\footnote{%
 %   For further details, see Section~6 of the documentation of
-%   \pkg{hyperref}.} %
+%   \pkg{hyperref}.}) %
 % \else%
 % (Si la langue principale de l'article est l'anglais, remplacez
 % \cmdprint{\extras}\code{\languagename} par
-% \cmdprint{\extrasenglish}.)\footnote{%
+% \cmdprint{\extrasenglish}.\footnote{%
 %   Consultez au besoin la section~6 de la documentation de
-%   \pkg{hyperref}.} %
+%   \pkg{hyperref}.}) %
 % \fi
 %
 % \begin{DescribeMacro}{\texorpdfstring}
 %   \changes{0.93}{2023-11-07}{Fix the name of a command from
 %   \cs{textorpdfstring} to the correct \cs{texorpdfstring} in the
-%   documentation.}
+%   documentation.}%
+%   \changes{1.1}{2024-03-12}{Documentation: mention to also use
+%   \cs{texorpdfstring} to fix \texttt{Token not allowed in a PDF
+%   string} warnings.}
 %   \ifenglish%
-%   The compilation of your manuscript may halt with the error message
+%   The package \pkg{hyperref} builds the table of contents of the
+%   PDF. If you use mathematical notation or symbols in a section
+%   title, compilation of your manuscript may either result in
+%   warnings of the form %
+%   \else%
+%   Le paquetage \pkg{hyperref} se charge de produire la table des
+%   matières du fichier PDF. Si vous utilisez de la notation ou des
+%   symboles mathématiques dans un titre de section, la compilation de
+%   votre article pourrait soit résulter en des avertissements de la
+%   forme %
+%   \fi%
 %   \begin{quote}
-%     \code{Improper alphabetic constant}
+%     Token not allowed in a PDF string
 %   \end{quote}
-%   The reason is most likely that you use a mathematical symbol in a
-%   section title that \pkg{hyperref} is not able to properly
-%   translate for the table of contents of the PDF. If you need
-%   the symbol, try wrapping it in \cmd{\texorpdfstring}. This
-%   command takes two arguments: the symbol that should appear in the
-%   document, and the replacement text for the table of contents. For
-%   example, you would replace %
+%   \ifenglish%
+%   or halt with the error message %
 %   \else%
-%   Il se pourrait que la compilation de votre article échoue avec le
-%   message d'erreur
+%   ou échouer avec le message d'erreur %
+%   \fi%
 %   \begin{quote}
 %     \code{Improper alphabetic constant}
 %   \end{quote}
-%   La cause en est probablement un symbole mathématique placé dans un
-%   titre de section que \pkg{hyperref} n'arrive pas à traduire pour
-%   la table des matières du fichier PDF. Si vous ne pouvez vous
-%   passer du symbole dans le titre, essayez d'utiliser la commande
-%   \cmd{\texorpdfstring} dans celui-ci. Cette commande requiert deux
-%   arguments: le texte qui doit apparaitre dans le document et celui
-%   qui peut figurer dans la table des matières. Par exemple, vous
-%   devriez remplacer %
+%   \ifenglish%
+%   If you need the notation or symbol in the title, wrap it in
+%   \cmd{\texorpdfstring}. This command takes two arguments: the
+%   notation or symbol that should appear in the document, and the
+%   replacement text for the table of contents. For example, you would
+%   replace %
+%   \else%
+%   Si vous ne pouvez vous passer de la notation ou du symbole dans le
+%   titre, utilisez la commande \cmd{\texorpdfstring} dans celui-ci.
+%   Cette commande requiert deux arguments: le texte qui doit
+%   apparaitre dans le document et celui qui peut figurer dans la
+%   table des matières. Par exemple, vous devriez remplacer %
 %   \fi%
-%   \def\TEXT{Contribution \ifenglish of \else de \fi}
-%   \begin{quote}
-%     \cmdprint{\subsection}\code{\{\TEXT $}\cmdprint{\beta}\code{$\}}
-%   \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\def\TEXT{\ifenglish Algorithm for\else Algorithme pour\fi}
+\begin{lstlisting}
+\section{`\TEXT' $U_n$}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+%   \ifenglish%
+%   by something along the lines of %
+%   \else%
+%   par quelque chose comme %
+%   \fi%
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\section{`\TEXT' \texorpdfstring{$U_n$}{U[n]}}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+%   \ifenglish%
+%   You would also replace %
+%   \else
+%   De même, vous devriez remplacer %
+%   \fi%
+% \iffalse
+%<*example>
+% \fi
+\def\TEXT{Contribution \ifenglish of\else de\fi}
+\begin{lstlisting}
+\subsection{`\TEXT' $\beta$}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %   \ifenglish by\else par\fi
-%   \begin{quote}
-%     \cmdprint{\subsection}\code{\{\TEXT}\cmdprint{\texorpdfstring}\code{\{$}\cmdprint{\beta}\code{$\}\{beta\}\}}
-%   \end{quote}
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\subsection{`\TEXT' \texorpdfstring{$\beta$}{beta}}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+%   \ifenglish or even\else ou encore\fi
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\subsection{`\TEXT' \texorpdfstring{$\beta$}{`β'}}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
 %   \ifenglish%
-%   or, even better if you can enter Unicode characters on the
-%   keyboard, by %
+%   if you can enter Unicode characters on the keyboard. %
 %   \else%
-%   ou même, si vous pouvez entrer des caractères Unicode au clavier,
-%   par %
+%   si vous êtes en mesure d'entrer des caractères Unicode au
+%   clavier. %
 %   \fi
-%   \begin{quote}
-%     \cmdprint{\subsection}\code{\{\TEXT}\cmdprint{\texorpdfstring}\code{\{$}\cmdprint{\beta}\code{$\}\{β\}\}}
-%   \end{quote}
 % \end{DescribeMacro}
 %
 % \warningbox{%
@@ -2782,12 +3084,12 @@
 %   \fi
 % \item %
 %   \ifenglish%
-%   (Optional) Appendices --- sections numbered A, B, \dots\ after the
-%   command \cmd{\appendix} --- for proofs and longer mathematical
+%   (Optional) Appendices---sections numbered A, B, \dots\ after the
+%   command \cmd{\appendix}---for proofs and longer mathematical
 %   arguments. Each appendix must be cited in the main article. %
 %   \else%
-%   (Optionnel) Les annexes --- des sections numérotées A, B, \dots\
-%   suite à la commande \cmd{\appendix} ---- pour les démontrations de
+%   (Optionnel) Les annexes~--- des sections numérotées A, B, \dots\
+%   suite à la commande \cmd{\appendix}~--- pour les démontrations de
 %   théorèmes ou autres longs développements mathématiques. Chaque
 %   annexe doit être citée dans l'article. %
 %   \fi
@@ -2871,10 +3173,11 @@
 % \end{itemize}
 % Les informations de la page de titre et des parties annexes peuvent
 % toujours figurer dans le code source. Autrement dit, vous pouvez
-% créer le matérial additionnel directement à partir du même préambule
-% --- ou gabarit --- que votre article principal; il suffit d'ajouter
+% créer le matérial additionnel directement à partir du même
+% préambule que votre article principal; il suffit d'ajouter
 % \code{supplement} aux options de la classe. %
-% \fi \endgroup
+% \fi
+% \endgroup
 %
 % \ifenglish%
 % The option \code{supplement} is compatible with the option
@@ -2955,7 +3258,7 @@
 %   at the bottom of the first page. The option has no other effect on
 %   the rendering of the article. %
 %   \else%
-%   L'option \code{final} --- qui a préséance sur \code{review} ---
+%   L'option \code{final}~--- qui a préséance sur \code{review}~---
 %   active la vérification que les informations de publication et que
 %   l'historique de révision sont fournis. De plus, si les
 %   informations d'octroi de licence sont fournies à l'aide des
@@ -3006,10 +3309,79 @@
 %   \else%
 %   AAAA-MM-JJ. Par exemple: %
 %   \fi
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}
+\received{`\isodate'}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+% \end{DescribeMacro}
+% \end{DescribeMacro}
+%
+% \begin{DescribeMacro}{\specialack}
+%   \ifenglish%
+%   The command \cmd{\specialack} provides a generic interface to
+%   give special acknowledgement on the title page, such as the one
+%   required by ADNI (\autoref{sec:usage:titling:adni}). The
+%   command takes two arguments: %
+%   \else%
+%   La commande \cmd{\specialack} permet de reconnaitre une
+%   contribution spéciale sur la page de titre, telle que celle exigée
+%   par l'ADNI (\autoref{sec:usage:titling:adni}). La commande requiert
+%   deux arguments: %
+%   \fi%
 %   \begin{quote}
-%     \cmdprint{\received}\code{\{2023-06-20\}}
+%     \cmdprint{\specialack}\marg{\ifenglish by-line\else signature\fi}\marg{\ifenglish statement\else déclaration\fi}
 %   \end{quote}
+%   \ifenglish%
+%   The \meta{by-line} is inserted in the list of authors, whereas the
+%   \meta{statement} is typeset at the bottom of the title page, with
+%   the licensing information. Each argument may be empty, in which
+%   case the corresponding information is not printed. For example,
+%   the command \cmd{\ADNIacknowledgement} is effectively defined
+%   as: %
+%   \else%
+%   La \meta{signature} est ajoutée à la liste des auteurs, alors que
+%   la \meta{déclaration} est affichée au bas de la page de titre,
+%   avec la déclaration de licence. Chaque argument peut être vide,
+%   auquel cas l'information correspondante n'est pas affichée. À
+%   titre d'exemple, la commande \cmd{\ADNIacknowledgement} est
+%   définie ainsi: %
+%   \fi%
+%   \begin{quote}
+%     \cmdprint{\specialack}\code{\{}\cmdprint{\CJS at adnibyline}\code{\}\{}\cmdprint{\CJS at adnistatement}\code{\}}
+%   \end{quote}
+%   \ifenglish%
+%   (The internal commands \cmd{\CJS at adnibyline} and
+%   \cmd{\CJS at adnistatement} typeset the official ADNI by-line and
+%   statement. The analogous commands \cmd{\CJS at admcbyline} and
+%   \cmd{\CJS at admcstatement} serve the same purpose for the
+%   Alzheimer’s Disease Metabolomics Consortium.) %
+%   \else%
+%   (Les commandes internes \cmd{\CJS at adnibyline} et
+%   \cmd{\CJS at adnistatement} contiennent le texte officiel de la
+%   signature et de la déclaration de l'ADNI. Les commandes analogues
+%   \cmd{\CJS at admcbyline} et \cmd{\CJS at admcstatement} pour
+%   l'Alzheimer’s Disease Metabolomics Consortium sont également
+%   définies dans la classe.) %
+%   \fi%
 % \end{DescribeMacro}
+%
+% \begin{DescribeMacro}{\specialackmark}
+%   \ifenglish%
+%   The command \cmd{\specialackmark} sets the footnote marker used by
+%   \cmd{\specialack}. The default definition of the marker is: %
+%   \else%
+%   La commande \cmd{\specialackmark} permet de modifier l'appel de
+%   note de bas de page utilisé par \cmd{\specialack}. La définition
+%   par défaut de l'appel de note est: %
+%   \fi%
+%   \begin{quote}
+%     \cmdprint{\textsuperscript}\code{\{}\cmdprint{\ensuremath}\code{\{*\}\}}
+%   \end{quote}
 % \end{DescribeMacro}
 %
 % \ifenglish%
@@ -3118,6 +3490,7 @@
 \newif\ifCJS at final         \CJS at finalfalse         % final version?
 \newif\ifCJS at titlingfooter \CJS at titlingfooterfalse % footer on title page?
 \newif\ifCJS at journalinfo   \CJS at journalinfotrue    % display journal info?
+\newif\ifCJS at specialack    \CJS at specialackfalse    % special acknowledgement?
 \newif\ifCJS at fancybreak    \CJS at fancybreaktrue     % display fancy break?
 \newif\ifCJS at history       \CJS at historyfalse       % history present?
 \newif\ifCJS at corrauth      \CJS at corrauthfalse      % corresponding author?
@@ -3198,13 +3571,6 @@
 % Useful packages like \pkg{iftex} and \pkg{etoolbox} are already
 % loaded by \class{memoir}.
 %
-% The package \pkg{iflang} provides expandable checks for the current
-% language based on the macro \cmdprint{\languagename} or hyphenation
-% patterns.
-%    \begin{macrocode}
-\RequirePackage{iflang}
-%    \end{macrocode}
-%
 % We rely on \pkg{natbib} for author-year citations. This package must
 % be loaded before \pkg{babel}. The option \code{sectionbib} ensures
 % that the bibliography (or list of references) is typeset as a
@@ -3369,6 +3735,9 @@
 % {\LuaTeX}, commands from \pkg{fontspec} and \pkg{unicode-math} load
 % the OpenType variants of the fonts. The encoding is UTF-8 by default
 % for these engines.
+% \changes{1.1}{2024-03-06}{Implementation: explicitly set the option
+% \texttt{bold-style!=TeX} when loading the math font with the modern
+% engines.}
 %    \begin{macrocode}
 \iftutex
   \RequirePackage[babel=true]{microtype}
@@ -3388,7 +3757,7 @@
   [
     Extension = .otf,
     Scale = 1,
-    Ligatures = TeX
+    bold-style = TeX
   ]
   \setmathfont{FiraMath-Regular}
   [
@@ -3436,7 +3805,8 @@
 % \label{sec:implementation:layout:colours}
 %
 % We define some colours used by the class. First, the three main
-% colours of {\TheCJS} logo: %
+% colours of {\TheCJS} logo, hand-picked from the SVG code of the
+% latter: %
 % \textcolor{CJSpink}{\rule{1.5em}{1.2ex}} %
 % \textcolor{CJSred}{\rule{1.5em}{1.2ex}} %
 % \textcolor{CJSyellow}{\rule{1.5em}{1.2ex}}\,.
@@ -3455,8 +3825,8 @@
 \definecolor{CJSurl}{rgb}{0.6,0,0}      % external links
 \definecolor{CJScitation}{rgb}{0,0.5,0} % citations
 %    \end{macrocode}
-% Finally, the colour of the ORCID icon\footnote{%
-% See \url{https://info.orcid.org/brand-guidelines}.}: %
+% Finally, the colour of the %
+% \href{https://info.orcid.org/brand-guidelines}{ORCID icon}: %
 % \textcolor{CJSorcid}{\rule{1.5em}{1.2ex}}\,.
 %    \begin{macrocode}
 \definecolor{CJSorcid}{HTML}{A6CE39}
@@ -3535,7 +3905,7 @@
 %
 % First, a command to set the font.
 %    \begin{macrocode}
-\newcommand*\CJS at setheadfootfont{%
+\def\CJS at setheadfootfont{%
   \firalining\fontsize{9}{13}\selectfont}
 %    \end{macrocode}
 %
@@ -3545,7 +3915,7 @@
 \newlength\CJS at headdivheight
 \settoheight\CJS at headdivheight{\CJS at setheadfootfont 1}
 \setlength\CJS at headdivheight{0.9\CJS at headdivheight}
-\newcommand*\CJS at headdivrule{%
+\def\CJS at headdivrule{%
   \rule[0.05\CJS at headdivheight]{0.75\normalrulethickness}{\CJS at headdivheight}}
 %    \end{macrocode}
 %
@@ -3614,7 +3984,7 @@
 % \label{sec:implementation:layout:titles}
 %
 % The \class{memoir} class assumes that sectioning starts at the
-% chapter level --- even with the \code{article} option. To get around
+% chapter level---even with the \code{article} option. To get around
 % this requirement, we disable the effect of \cmdprint{\chapter}. A
 % desirable side effect is to make \cmd{\autoref} work correctly for
 % appendices.
@@ -4160,6 +4530,11 @@
     \fancybreak{\pfbreakdisplay}
   \fi
 %    \end{macrocode}
+% \changes{1.1}{2024-06-19}{Implementation: fix the positioning of the
+% licensing information at the bottom of the title page.}
+% \changes{1.1}{2024-06-26}{Implementation: include the special
+% acknowledgement statement in the licensing information, if
+% required.}
 %   Finally, unless overridden by a class option, allocate space
 %   for the licence statement at the bottom of the title page. By
 %   default, a notice indicates that the licence will appear
@@ -4173,11 +4548,12 @@
       \iflanguage{french}{Futur emplacement de la déclaration de licence.}%
                          {Licence statement to appear here.}}
     \begin{figure}[!b]
-      \raisebox{0pt}[0pt][\footskip]{%
+      \raisebox{0pt}[0pt][\dimexpr\CJS at licenceht-\footskip\relax]{%
         \vbox{%
           \CJS at setlicencefont
           \rule{\textwidth}{\normalrulethickness}
           \parbox[t][\CJS at licenceht][t]{\textwidth}{%
+            \ifCJS at specialack\CJS at specialackstatement\fi
             \ifCJS at final\CJS at licence \else\textit\CJS at notice \fi}}}
     \end{figure}
   \fi
@@ -4185,6 +4561,45 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \subsubsection{ADNI data use agreement}
+% \label{sec:implementation:titling:adni}
+%
+% \changes{1.1}{2024-06-26}{Implementation: define the new commands
+% \cs{ADNIacknowledgement} and \cs{ADMCacknowledgement}.}
+% \begin{macro}{\ADNIacknowledgement}
+% \begin{macro}{\ADMCacknowledgement}
+%   The commands \cmd{\ADNIacknowledgement} and
+%   \cmd{\ADMCacknowledgement} automatically create special
+%   acknowledgements for the Alzheimer’s Disease Neuroimaging
+%   Initiative (ADNI) and the Alzheimer’s Disease Metabolomics
+%   Consortium (ADMC), respectively.
+%    \begin{macrocode}
+\newcommand*\CJS at adnibyline{for the Alzheimer’s Disease Neuroimaging Initiative}
+\newcommand*\CJS at adnistatement{%
+  Data used in preparation of this article were obtained
+  from the \href{https://adni.loni.usc.edu}{Alzheimer’s Disease Neuroimaging Initiative}
+  (ADNI) database. As such, the investigators within the ADNI
+  contributed to the design and implementation of ADNI and/or provided
+  data but did not participate in the analysis or writing of this
+  report. A complete listing of ADNI investigators can be found at:
+  \url{https://adni.loni.usc.edu/wp-content/uploads/how_to_apply/ADNI_Acknowledgement_List.pdf}.}
+\newcommand*\CJS at admcbyline{for the Alzheimer’s Disease Metabolomics Consortium}
+\newcommand*\CJS at admcstatement{%
+  Data used in preparation of this article were generated by the
+  Alzheimer’s Disease Metabolomics Consortium (ADMC). As such, the
+  investigators within the ADMC provided data but did not participate
+  in analysis or writing of this report. A complete listing of ADMC
+  investigators can be found at:
+  \url{https://sites.duke.edu/adnimetab/team/}.}
+\newcommand*\ADNIacknowledgement{%
+  \specialack{\CJS at adnibyline}{\CJS at adnistatement}}
+\newcommand*\ADMCacknowledgement{%
+  \renewcommand*\CJS at specialackmark{\textsuperscript{\ensuremath{**}}}
+  \specialack{\CJS at admcbyline}{\CJS at admcstatement}}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \subsection{Back matter}
 % \label{sec:implementation:backmatter}
 %
@@ -4292,20 +4707,20 @@
 %
 % First, set the font for the licence statement.
 %    \begin{macrocode}
-\newcommand*\CJS at setlicencefont{%
+\def\CJS at setlicencefont{%
   \firalining\fontsize{8pt}{9pt}\selectfont}
 %    \end{macrocode}
 %
 % \begin{macro}{\CJS at measurelicence}
-%   We need to compute the required space for a licence statement. The
-%   internal command \cmd{\CJS at measurelicence} measures the total
-%   height of either the licence statement provided with
-%   \cmd{\licence}, or the seemingly longest version of the license
-%   statement used by the publisher. The command is used inside
-%   \cmd{\maketitle}.
+%   We need to compute the required space for a licence statement and,
+%   possibly, the ADNI statement. The internal command
+%   \cmd{\CJS at measurelicence} measures the total height required using
+%   either the licence statement provided with \cmd{\licence}, or the
+%   seemingly longest version of the license statement used by the
+%   publisher. The command is used inside \cmd{\maketitle}.
 %    \begin{macrocode}
 \newlength\CJS at licenceht
-\newcommand\CJS at licencesample{%
+\def\CJS at licencesample{%
   {\ccbyncnd*} 2023 The Authors. The Canadian Journal of
   Statistics~{\textbar}~La revue canadienne de statistique published
   by Wiley Periodicals LLC on behalf of Statistical Society of
@@ -4319,6 +4734,7 @@
 \newcommand\CJS at measurelicence{%
   \setbox\CJS at licencebox=\vbox{%
     \CJS at setlicencefont
+    \ifCJS at specialack\CJS at specialackstatement\fi
     \ifdefempty{\CJS at licence}{\CJS at licencesample}{\CJS at licence}}
   \setlength\CJS at licenceht{\dimexpr\ht\CJS at licencebox+\dp\CJS at licencebox}}
 %    \end{macrocode}
@@ -4348,7 +4764,7 @@
 %   licence: {\ccby}.
 %    \begin{macrocode}
 \newcommand*\ccby{\ccby@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccby@{\mbox{%
+\def\ccby@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em}}
 %    \end{macrocode}
@@ -4359,7 +4775,7 @@
 %   Attribution"-ShareAlike licence: {\ccbysa}.
 %    \begin{macrocode}
 \newcommand*\ccbysa{\ccbysa@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbysa@{\mbox{%
+\def\ccbysa@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsSa}}
@@ -4371,7 +4787,7 @@
 %   Attribution"-NonCommercial licence: {\ccbync}.
 %    \begin{macrocode}
 \newcommand*\ccbync{\ccbync@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbync@{\mbox{%
+\def\ccbync@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsNc}}
@@ -4384,7 +4800,7 @@
 %   {\ccbyncsa}.
 %    \begin{macrocode}
 \newcommand*\ccbyncsa{\ccbyncsa@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbyncsa@{\mbox{%
+\def\ccbyncsa@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsNc\kern0.1em%
@@ -4397,7 +4813,7 @@
 %   Attribution"-NoDerivatives licence: {\ccbynd}.
 %    \begin{macrocode}
 \newcommand*\ccbynd{\ccbynd@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbynd@{\mbox{%
+\def\ccbynd@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsNd}}
@@ -4409,7 +4825,7 @@
 %   Attribution"-NonCommercial"-NoDerivatives licence: {\ccbyncnd}.
 %    \begin{macrocode}
 \newcommand*\ccbyncnd{\ccbyncnd@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbyncnd@{\mbox{%
+\def\ccbyncnd@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsNc\kern0.1em%
@@ -4447,16 +4863,20 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\mat,\trsp,\tr,\diag}
+% \changes{1.1}{2024-07-13}{Implementation: simpler definition of
+% \cs{mat} and \cs{matit} using \cs{let} instead of \cs{newcommand*}.}
+% \begin{macro}{\mat,\matit,\trsp,\tr,\diag}
 %   The class provides special commands to typeset matrix and vector
 %   names, a carefully designed transpose symbol, and the most common
 %   linear algebra operators.
 %    \begin{macrocode}
 \iftutex
-  \newcommand*\mat[1]{\symbf{#1}}
+  \let\mat\symbf
+  \let\matit\symbfit
   \newcommand*\trsp{^{\mkern-1.5mu\symsfup{T}}}
 \else
-  \newcommand*\mat[1]{\mathbf{#1}}
+  \let\mat\mathbf
+  \let\matit\mathbfit
   \newcommand*\trsp{^{\mkern-1.5mu\mathsf{T}}}
 \fi
 \DeclareMathOperator{\tr}{tr}
@@ -4545,13 +4965,13 @@
 \newcommand*\Pylang{\proglang{Python}}
 \newcommand*\Julialang{\proglang{Julia}}
 \newcommand*\Clang{\proglang{C}}
-\newcommand*\CJS at plus{%
+\newcommand*\Cpplang{\proglang{C\CJS at plus\CJS at plus}}
+\def\CJS at plus{%
   \ifx\f at family\sfdefault%
     \protect\hspace{-.04em}\protect\raisebox{-.125ex}{\larger+}%
   \else%
     \protect\hspace{-.03em}\protect\raisebox{.25ex}{\smaller+}%
   \fi}
-\newcommand*\Cpplang{\proglang{C\CJS at plus\CJS at plus}}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -4595,10 +5015,18 @@
 % is handled by \pkg{natbib}. We loaded the package with the option
 % \code{sectionbib} to obtain the list of references as a section, but
 % \class{memoir} will use \cmd{\section} in such instances. We want an
-% unnumbered section. To achieve this efficiently, we redefine
-% the internal command of \class{memoir}.
+% unnumbered section (yet showing in the virtual table of contents of
+% the PDF). To achieve this efficiently, we redefine the internal
+% command of \class{memoir}.
+% \changes{1.1}{2024-07-02}{Implementation: add a
+% \cs{addtocontentsline} command to the redefinition of
+% \cs{@memb at bsec} to include the References section in the virtual
+% table of contents of the PDF.}
 %    \begin{macrocode}
-\renewcommand{\@memb at bsec}{\section*{\bibname}\prebibhook}
+\renewcommand{\@memb at bsec}{%
+  \section*{\bibname}%
+  \addcontentsline{toc}{section}{\bibname}%
+  \prebibhook}
 %    \end{macrocode}
 %
 % Furthermore, we need to redefine the title of the section, because
@@ -4706,14 +5134,14 @@
 % \end{macro}
 %
 % \begin{macro}{\received,\accepted}
-%   The article history --- dates when the article was received and
-%   accepted --- is printed at the very end of the article when present.
+%   The article history---dates when the article was received and
+%   accepted---is printed at the very end of the article when present.
 %   Its treatment involves a number of steps.
 %
 %   First, the dates themselves are input in ISO format YYYY-MM-DD and
 %   converted in language dependent strings using the package
 %   \pkg{datetime2}. In English, we want to use the British format
-%   without the ordinal for the day: ``1 January 1970''. In French, we
+%   without the ordinal for the day: 1 January 1970. In French, we
 %   can simply rely on the default format.
 %    \begin{macrocode}
 \DTMlangsetup[en-GB]{ord=omit}
@@ -4767,7 +5195,7 @@
 % Finally, the history information, when present, is printed at the
 % end of the article.
 %    \begin{macrocode}
-\newcommand*\CJS at historybox{
+\def\CJS at historybox{
   \par\addvspace{2\baselineskip}\noindent%
   \smash{\box\CJS at historyornament \CJS at history}\par%
   \vspace*{40pt}}
@@ -4774,6 +5202,39 @@
 \AtEndDocument{\ifCJS at journalinfo\ifCJS at history\CJS at historybox\fi\fi}
 %    \end{macrocode}
 % \end{macro}
+%
+% \changes{1.1}{2024-06-26}{Implementation: define the new command
+% \cs{specialack}.}
+% \begin{macro}{\specialack}
+%   The command \cmd{\specialack} is the generic interface to give
+%   special acknowledgement on the title page. The command inserts its
+%   first argument in the list of authors, and its second argument at
+%   the bottom of the title page, with the licensing information. Each
+%   argument may be empty, in which case the corresponding information
+%   is not displayed.
+%    \begin{macrocode}
+\def\CJS at specialackstatement{}
+\newcommand*\specialack[2]{%
+  \ifstrempty{#1}{}{%
+      \author{#1\CJS at specialackmark}}
+  \ifstrempty{#2}{}{%
+      \CJS at specialacktrue
+      \renewcommand*\CJS at specialackstatement{\CJS at specialackmark\,#2\medskip\newline}}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \changes{1.1}{2024-06-26}{Implementation: define the new command
+% \cs{specialackmark}.}
+% \begin{macro}{\specialackmark}
+%   The command \cmd{\specialackmark} changes the footnote marker used
+%   by \cmd{\specialack} from its default definition.
+%    \begin{macrocode}
+\def\CJS at specialackmark{\textsuperscript{\ensuremath{*}}}
+\newcommand*\specialackmark[1]{%
+  \renewcommand*\CJS at specialackmark{#1}}
+%    \end{macrocode}
+% \end{macro}
+%
 %</class>
 % ^^A <<<<< End of the code of the class
 %
@@ -4780,6 +5241,8 @@
 % ^^A Change notes for the templates must appear before \Finale
 % \changes{0.93}{2023-11-07}{Templates: fix a missing closing brace in
 % \cs{author} commands.}
+% \changes{1.1}{2024-01-23}{Templates: revise the description of the
+% \texttt{sharing} environment.}
 % \Finale
 %
 % \iffalse
@@ -4893,9 +5356,9 @@
 %<fr>  %% la  page de titre automatiquement.
   \begin{englishabstract}
     <Insert your English abstract here. The abstract should be concise
-    --- up to 10 lines long --- and descriptive. Avoid symbols as much
-    as possible. Formulas are strongly discouraged, and citations
-    should be avoided.>
+    (up to 10 lines long) and descriptive. Avoid symbols as much as
+    possible. Formulas are strongly discouraged, and citations should
+    be avoided.>
 %<fr>    [Un résumé en anglais sera fourni pour les auteurs qui ne peuvent
 %<fr>    le préparer eux-mêmes.]
   \end{englishabstract}
@@ -4902,9 +5365,9 @@
 
   \begin{frenchabstract}
     <Insérer le texte du résumé en français ici. Le résumé doit être
-    concis --- une dizaine de lignes --- et descriptif. Éviter autant
-    que possible les symboles. Les équations mathématiques sont
-    fortement découragées et les citations sont à éviter.>
+    concis (une dizaine de lignes) et descriptif. Éviter autant que
+    possible les symboles. Les équations mathématiques sont fortement
+    déconseillées et les citations sont à éviter.>
 %<en>    [We will supply a French abstract for those authors who
 %<en>    can't prepare it themselves.]
   \end{frenchabstract}
@@ -4958,13 +5421,15 @@
 %<fr>    <Texte libre>
   \end{supplement}
 
-%<en>  %% DATA SHARING (optional - comment out if unused). Describe how to
-%<en>  %% access data that you wish to share. Provide a permanent link such
-%<en>  %% as a Document Object Identifier (DOI) or an URL.
-%<fr>  %% PARTAGE DES DONNÉES (optionnel - commenter si inutilisé).
-%<fr>  %% Expliquer comment accéder à des données de l'article mises à
-%<fr>  %% disposition. Fournir un lien permanent, comme un identificateur
-%<fr>  %% d'objets numériques (DOI) ou une adresse URL.
+%<en>  %% DATA SHARING (mandatory). In accordance with the Expect Data
+%<en>  %% Sharing editorial policy of Wiley, make a statement about the
+%<en>  %% availability or absence of shared data. Provide a permanent link
+%<en>  %% such as a Document Object Identifier (DOI) or an URL.
+%<fr>  %% PARTAGE DES DONNÉES (obligatoire). Conformément à la politique
+%<fr>  %% éditoriale «Expect Data Sharing» de Wiley, vous devez indiquer
+%<fr>  %% les conditions de partage des données de recherche, ou l'absence
+%<fr>  %% de celles-ci, le cas échéant. Fournir un lien permanent, comme un
+%<fr>  %% identificateur d'objets numériques (DOI) ou une adresse URL.
   \begin{sharing}
 %<en>    <Free form text>
 %<fr>    <Texte libre>

Added: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-en.dbj
===================================================================
--- trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-en.dbj	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-en.dbj	2024-07-14 20:14:08 UTC (rev 71799)
@@ -0,0 +1,611 @@
+%% Driver file to produce cjs-rcs-en.bst from cjs-rcs-merlin.mbs
+%% Originally generated with makebst, version 4.1 (2003/09/08),
+%% on 2023/10/05 at 15:25, then hand edited by Vincent Goulet.
+%% 
+\input docstrip
+
+\preamble
+
+Copyright (C) 2023-2024 Statistical Society of Canada | Société
+canadienne de statistique
+
+This file may be distributed and/or modified under the conditions
+of the LaTeX Project Public License, either version 1.3c of this
+license or (at your option) any later version. The latest version
+of this license is in:
+
+  https://www.latex-project.org/lppl.txt
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Vincent Goulet
+<vincent.goulet at act.ulaval.ca>.
+
+This work consists of the master bibliographic style file
+cjs-rcs-merlin.mbs, the language definition file cjs-rcs-english.mbs,
+the driver file cjs-rcs-en.dbj, and the derived file cjs-rcs-en.bst.
+
+\endpreamble
+
+\postamble
+End of customized bst file
+\endpostamble
+
+\keepsilent
+
+\askforoverwritefalse
+\def\MBopts{\from{cjs-rcs-merlin.mbs}{%
+%EXTERNAL FILES:
+%Name of language file: \cfile=cjs-rcs-english.mbs.
+%No included files.
+  head,\MBopta}
+\from{cjs-rcs-english.mbs}{\MBopta}
+\from{cjs-rcs-merlin.mbs}{tail,\MBopta}}
+\def\MBopta{%
+%INTERNAL LANGUAGE SUPPORT (if no external language file)
+%   %: (def) English
+% babel,%: Babel
+%--------------------
+    exlang,%: External language file
+%STYLE OF CITATIONS:
+%   %: (def) Numerical
+  ay,%: Author-year
+% alph,%: Alpha style, Jon90 or JWB90
+% alph,alf-1,%: Alpha style, Jon90
+% alph,alf-f,%: Alpha style, Jones90
+% cite,%: Cite key
+%--------------------
+%HTML OUTPUT (if non author-year citations)
+%   %: (def) Normal LaTeX
+% html,%: Hypertext
+% html,htlist,%: Hypertext list
+% html,htdes,%: Hypertext with keys
+%--------------------
+%AUTHOR--YEAR SUPPORT SYSTEM (if author-year citations)
+  nat,%: Natbib
+%   %: (def) Older Natbib
+% alk,%: Apalike
+% har,%: Harvard
+% ast,%: Astronomy
+% cay,%: Chicago
+% nmd,%: Named
+% cn,%: Author-date
+%--------------------
+%HARVARD EXTENSIONS INCLUDED (if Harvard support selected)
+% harnm,%: With Harvard extensions
+%   %: (def) Older Harvard
+%--------------------
+%LANGUAGE FIELD
+%   %: (def) No language field
+  lang,%: Add language field
+%--------------------
+%ANNOTATIONS:
+    %: (def) No annotations
+% annote,%: Annotations
+%--------------------
+%PRESENTATIONS:
+    %: (def) Do not add presentation type
+% pres,%: Add presentation, speaker not highlighted
+% pres,pres-bf,%: Presentation, speaker bold face
+% pres,pres-it,%: Presentaion, speaker italic
+% pres,pres-sc,%: Presentaion, speaker in small caps
+%--------------------
+%ORDERING OF REFERENCES (if non-author/year and non-alph)
+%   %: (def) Alphabetical
+% seq-no,%: Citation order
+% seq-yr,%: Year ordered
+% seq-yrr,%: Reverse year ordered
+%--------------------
+%ORDERING OF REFERENCES (if author-year citations)
+    %: (def) Alphabetical
+% seq-lab,%: By label
+% seq-labc,%: By label and cite order
+% seq-key,%: By label and cite key
+% seq-yr,%: Year ordered
+% seq-yrr,%: Reverse year ordered
+% seq-no,%: Citation order
+%--------------------
+%ORDER ON VON PART (if not citation order)
+    %: (def) Sort on von part
+% vonx,%: Sort without von part
+%--------------------
+%IGNORE FIRST NAMES (if author-year citations)
+    %: (def) Respect first names
+% xintls,%: Sort on surname only
+%--------------------
+%AUTHOR NAMES:
+% ed-au,%: Full, surname last
+% nm-revf,%: Full, surname first
+% nm-init,ed-au,%: Initials + surname
+  nm-rev,%: Surname + initials
+% nm-rv,%: Surname + dotless initials
+% nm-rvvc,%: Surname + comma + spaceless initials
+% nm-rvx,%: Surname + pure initials
+% nm-rvcx,%: Surname + comma + pure initials
+% nm-rvv,%: Surname + spaceless initials
+% nm-rev1,%: Only first name reversed, initials
+% nm-revv1,%: First name reversed, with full names
+%--------------------
+%EDITOR NAMES IN COLLECTIONS (if author names reversed)
+    %: (def) Editor names NOT reversed
+% ed-rev,%: Editor names reversed
+%--------------------
+%POSITION OF JUNIOR (if author names reversed)
+  jnrlst,%: Junior comes last
+%   %: (def) Junior between
+%--------------------
+%JUNIOR PART IN THE CITATION (if author-year citations)
+    %: (def) No `junior' part in the citations
+% jnrlab,%: `Junior' in citations
+%--------------------
+%PUNCTUATION BETWEEN AUTHOR NAMES:
+    %: (def) Author names separated by commas
+% aunm-semi,%: Names separated by semi-colon
+% aunm-sl,%: Names separated by slash
+%--------------------
+%ADJACENT REFERENCES WITH REPEATED NAMES:
+    %: (def) Author/editor names always present
+% nmdash,%: Repeated author/editor names replaced by dash
+% nmdash,nmd-2,%: Repeated author/editor names replaced by 2 dashes
+% nmdash,nmd-3,%: Repeated author/editor names replaced by 3 dashes
+%--------------------
+%NUMBER OF AUTHORS IN BIBLIOGRAPHY:
+    %: (def) All authors
+% nmlm,%: Limited authors
+%--------------------
+%AUTHORS IN CITATIONS:
+    %: (def) One author et al
+% mcite,%: Some other truncation scheme
+%--------------------
+%MAX AUTHORS BEFORE ET AL: (if regular cite not selected)
+% mct-1,%: One et al
+% mct-2,%: One, Two et al
+% mct-3,%: One, Two, Three et al
+% mct-4,%: One, Two, Three, Four et al
+% mct-5,%: One, Two, Three, Four, Five et al
+% mct-6,%: One, Two, Three, Four, Five, Six et al
+%--------------------
+%MAX AUTHORS WITHOUT ET AL: (if regular cite not selected)
+% mct-x2,%: Two authors without truncating
+% mct-x3,%: Three authors
+% mct-x4,%: Four authors
+% mct-x5,%: Five authors
+% mct-x6,%: Six authors
+%--------------------
+%TYPEFACE FOR AUTHORS IN LIST OF REFERENCES:
+    %: (def) Normal font for author names
+% nmft,nmft-sc,%: Small caps authors
+% nmft,nmft-it,%: Italic authors
+% nmft,nmft-bf,%: Bold authors
+% nmft,nmft-def,%: User defined author font
+%--------------------
+%FONT FOR FIRST NAMES (if non-default font for authors)
+%   %: (def) First names same font as surnames
+% fnm-rm,%: First names in normal font
+% fnm-def,%: First names in user defined font
+%--------------------
+%EDITOR NAMES IN INCOLLECTION ETC:
+%   %: (def) Editors incollection normal font
+% nmfted,%: Editors incollection like authors
+%--------------------
+%FONT FOR `AND' IN LIST:
+%   %: (def) `And' in author font
+% nmand-rm,%: `And' in normal font
+%--------------------
+%FONT OF CITATION LABELS IN TEXT (if author-year citations)
+    %: (def) Cited authors plain
+% lab,lab-it,%: Cited authors italic
+% lab,lab-sc,%: Cited authors small caps
+% lab,lab-bf,%: Cited authors bold
+% lab,lab-def,%: User defined citation font
+%--------------------
+%FONT FOR `AND' IN CITATIONS (if non-default font for citation lables)
+%   %: (def) Cited `and' in author font
+% and-rm,%: Cited `and' in normal font
+%--------------------
+%FONT OF EXTRA LABEL (The extra letter on the year)
+    %: (def) Extra label plain
+% xlab-it,%: Extra label italic
+%--------------------
+%LABEL WHEN AUTHORS MISSING (if author-year citations)
+  keyxyr,%: Year blank when KEY replaces missing author
+%   %: (def) Year included when KEY replaces missing author
+%--------------------
+%MISSING DATE (if author-year citations)
+%   %: (def) Missing date set to ????
+  blkyear,%: Missing date left blank
+%--------------------
+%DATE POSITION:
+%   %: (def) Date at end
+  dt-beg,%: Date after authors
+% dt-jnl,%: Date part of journal spec.
+% dt-end,%: Date at very end
+%--------------------
+%DATE FORMAT (if non author-year citations)
+%   %: (def) Plain month and year
+% yr-par,%: Date in parentheses
+% yr-brk,%: Date in brackets
+% yr-col,%: Date preceded by colon
+% yr-per,%: Date preceded by period
+% yr-com,%: Date preceded by comma
+% yr-blk,%: Date preceded by space
+%--------------------
+%SUPPRESS MONTH:
+%   %: (def) Date is month and year
+% xmth,%: Date is year only
+%--------------------
+%REVERSED DATE (if including month)
+%   %: (def) Date as month year
+% dtrev,%: Date as year month
+%--------------------
+%DATE FORMAT (if author-year citations)
+%   %: (def) Year plain
+  yr-par,%: Year in parentheses
+% yr-brk,%: Year in brackets
+% yr-col,%: Year preceded by colon
+% yr-per,%: Year preceded by period
+% yr-com,%: Date preceded by comma
+% yr-blk,%: Year preceded by space
+%--------------------
+%INCLUDE MONTHS:
+    %: (def) Date is year only
+% aymth,%: Include month in date
+%--------------------
+%REVERSED DATE (if including month)
+%   %: (def) Date as month year
+% dtrev,%: Date as year month
+%--------------------
+%DATE PUNCTUATION (if date not at end)
+%   %: (def) Date with standard block punctuation
+% yrp-col,%: Colon after date
+% yrp-semi,%: Semi-colon after date
+  yrp-per,%: Period after date
+% yrp-x,%: No punct. after date
+%--------------------
+%BLANK AFTER DATE:
+    %: (def) Space after date
+% yrpp-xsp,%: No space after date
+%--------------------
+%DATE FONT:
+    %: (def) Date in normal font
+% dtbf,%: Date in bold face
+%--------------------
+%TRUNCATE YEAR (if author-year citations)
+  note-yr,%: Year text full
+%   %: (def) Year truncated
+%--------------------
+%TITLE OF ARTICLE:
+    %: (def) Title plain
+% tit-it,%: Title italic
+% tit-qq,qt-s,%: Title and punctuation in single quotes
+% tit-qq,%: Title and punctuation in double quotes
+% tit-qq,qt-g,%: Title and punctuation in guillemets
+% tit-qq,qt-s,qx,%: Title in single quotes
+% tit-qq,qx,%: Title in double quotes
+% tit-qq,qt-g,qx,%: Title in guillemets
+%--------------------
+%COLLECTION/PROCEEDINGS TITLES (if quoted title)
+% bt-qq,%: Quote collection and proceedings titles
+%   %: (def) Collection and proceedings titles not in quotes
+%--------------------
+%CAPITALIZATION OF ARTICLE TITLE:
+    %: (def) Sentence style
+% atit-u,%: Title style
+%--------------------
+%ARTICLE TITLE PRESENT:
+    %: (def) Article title present
+% jtit-x,%: No article title
+%--------------------
+%JOURNAL NAMES:
+    %: (def) Periods in journal names
+% jxper,%: Dotless journal names
+%--------------------
+%JOURNAL NAME FONT:
+    %: (def) Journal name italics
+% jttl-rm,%: Journal name normal
+%--------------------
+%THESIS TITLE:
+    %: (def) Thesis titles like books
+% thtit-a,%: Thesis title like article
+% thtit-x,%: No thesis title
+%--------------------
+%TECHNICAL REPORT TITLE:
+%   %: (def) Tech. report title like articles
+  trtit-b,%: Tech. report title like books
+%--------------------
+%TECHNICAL REPORT NUMBER:
+    %: (def) Tech. report and number plain
+% trnum-it,%: Tech. report and number italic
+%--------------------
+%JOURNAL VOLUME:
+    %: (def) Volume plain
+% vol-it,%: Volume italic
+% vol-bf,%: Volume bold
+% vol-2bf,%: Volume and number bold
+%--------------------
+%JOURNAL VOL AND NUMBER:
+    %: (def) Journal vol(num)
+% vnum-sp,%: Journal vol (num)
+% vnum-cm,%: Journal vol, num
+% vnum-nr,%: Journal vol, no. num
+% vnum-h,%: Journal vol, \# number
+% vnum-b,%: Journal vol number
+% vnum-x,%: Journal vol, without number
+%--------------------
+%VOLUME PUNCTUATION:
+    %: (def) Volume with colon
+% volp-sp,%: Volume with colon and space
+% volp-semi,%: Volume with semi-colon
+% volp-com,%: Volume with comma
+% volp-blk,%: Volume with blank
+%--------------------
+%YEAR IN JOURNAL SPECIFICATION:
+    %: (def) Journal year like others
+% jdt-v,%: Journal vol(year)
+% jdt-vs,%: Journal vol (year)
+% jdt-p,%: Year with pages
+% jdt-pc,%: Year, comma, pages
+%--------------------
+%PAGE NUMBERS:
+    %: (def) Start and stop page numbers
+% jpg-1,%: Only start page number
+%--------------------
+%LARGE PAGE NUMBERS:
+    %: (def) No separators for large page numbers
+% pgsep-c,%: Comma inserted over 9999
+% pgsep-s,%: Thin space inserted over 9999
+% pgsep-p,%: Period inserted over 9999
+%--------------------
+%WORD `PAGE' IN ARTICLES:
+    %: (def) Article pages numbers only
+% jwdpg,%: Include `page' in articles
+%--------------------
+%POSITION OF PAGES:
+    %: (def) Pages given mid text
+% pp-last,%: Pages at end
+%--------------------
+%WORD `VOLUME' IN ARTICLES:
+    %: (def) Article volume as number only
+% jwdvol,%: Include `volume' in articles
+%--------------------
+%NUMBER AND SERIES FOR COLLECTIONS:
+  num-xser,%: Allows number without series
+%   %: (def) Standard BibTeX
+%--------------------
+%POSITION OF NUMBER AND SERIES:
+%   %: (def) After chapter and pages
+  numser,%: Just before publisher
+%--------------------
+%VOLUME AND SERIES FOR BOOKS/COLLECTIONS:
+    %: (def) Vol. 23 of Series
+% ser-vol,%: Series, vol. 23
+%--------------------
+%POSITION OF VOLUME AND SERIES FOR INCOLLECTIONS:
+%   %: (def) Series and volume after the editors
+  ser-ed,%: Series and volume after booktitle
+%--------------------
+%JOURNAL NAME PUNCTUATION:
+    %: (def) Comma after journal
+% jnm-x,%: Space after journal
+%--------------------
+%BOOK TITLE:
+    %: (def) Book title italic
+% btit-rm,bt-rm,%: Book title plain
+%--------------------
+%PAGES IN BOOKS:
+    %: (def) Pages in book plain
+% bkpg-par,%: Pages in book in parentheses
+% bkpg-x,%: Pages in book bare
+%--------------------
+%TOTAL PAGES OF A BOOK:
+    %: (def) Total book pages not printed
+% pg-bk,%: For book: 345 pages
+% pg-bk,pg-pre,%: Total book pages before publisher
+%--------------------
+%PUBLISHER ADDRESS:
+    %: (def) Publisher, address
+% add-pub,%: Address: Publisher
+%--------------------
+%PUBLISHER IN PARENTHESES:
+    %: (def) Publisher as normal block
+% pub-par,%: Publisher in parentheses
+% pub-date,%: Publisher and date in parentheses
+% pub-date,pub-xc,%: Publisher and date in parentheses, no comma
+% pub-date,pub-xpar,%: Publisher and date without parentheses
+% pub-date,pub-xpar,pub-xc,%: Publisher and date, no parentheses, no comma
+%--------------------
+%PUBLISHER POSITION:
+%    %: (def) Publisher after chapter, pages
+% pre-pub,%: Publisher before chapter, pages
+  pre-edn,%: Publisher after edition
+%--------------------
+%ISBN NUMBER:
+  isbn,%: Include ISBN
+%   %: (def) No ISBN
+%--------------------
+%ISSN NUMBER:
+% issn,%: Include ISSN
+    %: (def) No ISSN
+%--------------------
+%DOI NUMBER:
+% doi,%: Include DOI
+  url-doi,%: Format DOI as URL //dx.doi.org/doi
+% agu-doi,doi,%: Insert DOI AGU style
+%   %: (def) No DOI
+%--------------------
+%`EDITOR' AFTER NAMES (EDITED BOOKS WITHOUT AUTHORS):
+    %: (def) Word `editor' after name
+% edpar,%: `Name (editor),'
+% edpar,bkedcap,%: `Name (Editor),'
+% edparc,%: `Name, (editor)'
+% edparc,bkedcap,%: `Name, (Editor)'
+% edparxc,%: `Name (editor)'
+% edparxc,bkedcap,%: `Name (Editor)'
+%--------------------
+%EDITOR IN COLLECTIONS:
+    %: (def) Same as for edited book
+% edby,%: In booktitle, edited by .. 
+% edby-par,%: In booktitle (edited by ..)
+% edby-parc,%: In booktitle, (edited by ..)
+% edby,edbyx,%: In booktitle, editor ..
+% edby,edbyw,%: In booktitle, (editor) ..
+% edby-par,edbyx,%: In booktitle (editor..)
+% edby-parc,edbyx,%: In booktitle, (editor..)
+% edby,edbyy,%: In booktitle, .., editor
+% edby-par,edbyy,%: In booktitle (.., editor)
+%--------------------
+%CAPITALIZE `EDITOR' OR `EDITED BY' (if editor capitalizable)
+%   %: (def) `(editor,..)' or `(edited by..)'
+% edcap,%: `(Editor,..)' or `(Edited by..)'
+%--------------------
+%PUNCTUATION BETWEEN SECTIONS (BLOCKS):
+    %: (def) \newblock after blocks
+% blk-com,%: Comma between blocks
+% blk-com,com-semi,%: Semi-colon between blocks
+% blk-com,com-blank,%: Blanks between blocks
+% blk-tit,%: Period after titles of articles, books, etc
+% blk-tit,tit-col,%: Colon after titles of articles, books, etc
+% blk-tita,%: Period after titles of articles
+% blk-tita,tit-col,%: Colon after titles of articles
+%--------------------
+%PUNCTUATION BEFORE NOTES (if not using \newblock)
+%   %: (def) Notes have regular punctuation
+% blknt,%: Notes preceded by period
+%--------------------
+%PUNCTUATION AFTER AUTHORS:
+    %: (def) Author block normal
+% au-col,%: Author block with colon
+%--------------------
+%PUNCTUATION AFTER `IN':
+    %: (def) Space after `in'
+% in-col,%: Colon after `in'
+% in-it,%: Italic `in'
+% in-col,in-it,%: Italic `in' and colon
+% in-x,%: No word `in'
+%--------------------
+%`IN' WITH JOURNAL NAMES (if using 'in' with collections)
+    %: (def) No `in' before journal name
+% injnl,%: Add `in' before journal name
+%--------------------
+%FINAL PUNCTUATION:
+    %: (def) Period at very end
+% fin-bare,%: No period at end
+%--------------------
+%ABBREVIATE WORD `PAGES' (if not using external language file)
+%   %: (def) `Page(s)'
+% pp,%: `Page' abbreviated
+% ppx,%: `Page' omitted
+%--------------------
+%ABBREVIATE WORD `EDITORS':
+%   %: (def) `Editor(s)'
+% ed,%: `Editor' abbreviated
+%--------------------
+%OTHER ABBREVIATIONS:
+%   %: (def) No abbreviations
+% abr,%: Abbreviations
+%--------------------
+%ABBREVIATION FOR `EDITION' (if abbreviating words)
+%   %: (def) `Edition' abbreviated as `edn'
+% ednx,%: `Edition' abbreviated as `ed'
+%--------------------
+%MONTHS WITH DOTS:
+%   %: (def) Months with dots
+% mth-bare,%: Months without dots
+%--------------------
+%EDITION NUMBERS:
+% xedn,%: Editions as in database
+%   %: (def) Write out editions
+% ord,%: Numerical editions
+%--------------------
+%Reading external language file \cfile=cjs-rcs-english.mbs
+    english,%: English language
+%ABBREVIATE WORD `PAGES'
+    %: (def) `Page(s)'
+% pp,%: `Page' abbreviated
+% ppx,%: `Page' omitted
+%--------------------
+%ABBREVIATE WORD `EDITORS':
+    %: (def) `Editor(s)'
+% ed,%: `Editor' abbreviated
+%--------------------
+%OTHER ABBREVIATIONS:
+%   %: (def) No abbreviations
+  abr,%: Abbreviations
+%--------------------
+%ABBREVIATION FOR `EDITION' (if abbreviating words)
+%   %: (def) `Edition' abbreviated as `edn'
+  ednx,%: `Edition' abbreviated as `ed'
+%--------------------
+%MONTHS WITH DOTS:
+    %: (def) Months with dots
+% mth-bare,%: Months without dots
+%--------------------
+%EDITION NUMBERS:
+% xedn,%: Editions as in database
+%   %: (def) Write out editions
+  ord,%: Numerical editions
+%--------------------
+%STORED JOURNAL NAMES:
+    %: (def) Full journal names
+% jabr,%: Abbreviated journal names
+% jabr,jaa,%: Abbreviated with astronomy shorthands
+%--------------------
+%AMPERSAND:
+    %: (def) Use word `and'
+% amper,%: Use ampersand
+% varand,%: Use \BIBand
+%--------------------
+%COMMA BEFORE `AND':
+    %: (def) Comma before `and'
+% and-xcom,%: No comma before `and'
+% and-com,%: Comma even with 2 authors
+%--------------------
+%COMMA BEFORE `AND' EVEN FOR COLLECTION EDITORS (if using comma before `and' with authors)
+% and-com-ed,%: Comma with 2 editors
+%   %: (def) Two editors without comma
+%--------------------
+%NO `AND' IN REFERENCE LIST:
+    %: (def) With `and'
+% xand,%: No `and'
+%--------------------
+%COMMA BEFORE `ET AL':
+%   %: (def) Comma before `et al'
+  etal-xc,%: No comma before `et al'
+%--------------------
+%FONT OF `ET AL':
+    %: (def) Plain et al
+% etal-it,%: Italic et al
+% etal-rm,%: Roman et al
+%--------------------
+%ADDITIONAL REVTeX DATA FIELDS:
+    %: (def) No additional fields
+% revdata,eprint,url,url-blk,%: Include REVTeX data fields
+%--------------------
+%E-PRINT DATA FIELD: (without REVTeX fields)
+    %: (def) Do not include eprint field
+% eprint,%: Include eprint and archive fields
+%--------------------
+%URL ADDRESS: (without REVTeX fields)
+%   %: (def) No URL
+  url,url-blk,%: Include URL
+% url,url-nt,%: URL as note
+% url,url-nl,%: URL on new line
+%--------------------
+%REFERENCE COMPONENT TAGS:
+    %: (def) No reference component tags
+% bibinfo,%: Reference component tags
+%--------------------
+%EMPHASIS: (affects all so-called italics)
+    %: (def) Use emphasis
+% em-it,%: Use true italics
+% em-x,%: No italics
+% em-ul,%: Underlining
+%--------------------
+%COMPATIBILITY WITH PLAIN TEX:
+  nfss,%: Use LaTeX commands
+% plntx,%: Use only Plain TeX
+%--------------------
+,{%
+  }}
+\generate{\file{cjs-rcs-en.bst}{\MBopts}}
+\endbatchfile


Property changes on: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-en.dbj
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-fr.dbj
===================================================================
--- trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-fr.dbj	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-fr.dbj	2024-07-14 20:14:08 UTC (rev 71799)
@@ -0,0 +1,603 @@
+%% Driver file to produce cjs-rcs-fr.bst from cjs-rcs-merlin.mbs
+%% Originally generated with makebst, version 4.1 (2003/09/08),
+%% on 2023/10/11 at 12:01, then hand edited by Vincent Goulet.
+%% 
+\input docstrip
+
+\preamble
+
+Copyright (C) 2023-2024 Statistical Society of Canada | Société
+canadienne de statistique
+
+This file may be distributed and/or modified under the conditions
+of the LaTeX Project Public License, either version 1.3c of this
+license or (at your option) any later version. The latest version
+of this license is in:
+
+  https://www.latex-project.org/lppl.txt
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Vincent Goulet
+<vincent.goulet at act.ulaval.ca>.
+
+This work consists of the master bibliographic style file
+cjs-rcs-merlin.mbs, the language definition file cjs-rcs-french.mbs,
+the driver file cjs-rcs-fr.dbj, and the derived file cjs-rcs-fr.bst.
+
+\endpreamble
+
+\postamble
+End of customized bst file
+\endpostamble
+
+\keepsilent
+
+\askforoverwritefalse
+\def\MBopts{\from{cjs-rcs-merlin.mbs}{%
+%EXTERNAL FILES:
+%Name of language file: \cfile=cjs-rcs-french.mbs.
+%No included files.
+  head,\MBopta}
+\from{cjs-rcs-french.mbs}{\MBopta}
+\from{cjs-rcs-merlin.mbs}{tail,\MBopta}}
+\def\MBopta{%
+%INTERNAL LANGUAGE SUPPORT (if no external language file)
+%   %: (def) English
+% babel,%: Babel
+%--------------------
+    exlang,%: External language file
+%STYLE OF CITATIONS:
+%   %: (def) Numerical
+  ay,%: Author-year
+% alph,%: Alpha style, Jon90 or JWB90
+% alph,alf-1,%: Alpha style, Jon90
+% alph,alf-f,%: Alpha style, Jones90
+% cite,%: Cite key
+%--------------------
+%HTML OUTPUT (if non author-year citations)
+%   %: (def) Normal LaTeX
+% html,%: Hypertext
+% html,htlist,%: Hypertext list
+% html,htdes,%: Hypertext with keys
+%--------------------
+%AUTHOR--YEAR SUPPORT SYSTEM (if author-year citations)
+  nat,%: Natbib
+%   %: (def) Older Natbib
+% alk,%: Apalike
+% har,%: Harvard
+% ast,%: Astronomy
+% cay,%: Chicago
+% nmd,%: Named
+% cn,%: Author-date
+%--------------------
+%HARVARD EXTENSIONS INCLUDED (if Harvard support selected)
+% harnm,%: With Harvard extensions
+%   %: (def) Older Harvard
+%--------------------
+%LANGUAGE FIELD
+%   %: (def) No language field
+  lang,%: Add language field
+%--------------------
+%ANNOTATIONS:
+    %: (def) No annotations
+% annote,%: Annotations
+%--------------------
+%PRESENTATIONS:
+    %: (def) Do not add presentation type
+% pres,%: Add presentation, speaker not highlighted
+% pres,pres-bf,%: Presentation, speaker bold face
+% pres,pres-it,%: Presentaion, speaker italic
+% pres,pres-sc,%: Presentaion, speaker in small caps
+%--------------------
+%ORDERING OF REFERENCES (if non-author/year and non-alph)
+%   %: (def) Alphabetical
+% seq-no,%: Citation order
+% seq-yr,%: Year ordered
+% seq-yrr,%: Reverse year ordered
+%--------------------
+%ORDERING OF REFERENCES (if author-year citations)
+    %: (def) Alphabetical
+% seq-lab,%: By label
+% seq-labc,%: By label and cite order
+% seq-key,%: By label and cite key
+% seq-yr,%: Year ordered
+% seq-yrr,%: Reverse year ordered
+% seq-no,%: Citation order
+%--------------------
+%ORDER ON VON PART (if not citation order)
+%   %: (def) Sort on von part
+  vonx,%: Sort without von part
+%--------------------
+%IGNORE FIRST NAMES (if author-year citations)
+    %: (def) Respect first names
+% xintls,%: Sort on surname only
+%--------------------
+%AUTHOR NAMES:
+% ed-au,%: Full, surname last
+% nm-revf,%: Full, surname first
+% nm-init,ed-au,%: Initials + surname
+% nm-rev,%: Surname + initials
+% nm-rv,%: Surname + dotless initials
+% nm-rvvc,%: Surname + comma + spaceless initials
+% nm-rvx,%: Surname + pure initials
+% nm-rvcx,%: Surname + comma + pure initials
+% nm-rvv,%: Surname + spaceless initials
+  nm-rev1,%: Only first name reversed, initials
+% nm-revv1,%: First name reversed, with full names
+%--------------------
+%EDITOR NAMES IN COLLECTIONS (if author names reversed)
+    %: (def) Editor names NOT reversed
+% ed-rev,%: Editor names reversed
+%--------------------
+%POSITION OF JUNIOR (if author names reversed)
+  jnrlst,%: Junior comes last
+%   %: (def) Junior between
+%--------------------
+%JUNIOR PART IN THE CITATION (if author-year citations)
+    %: (def) No `junior' part in the citations
+% jnrlab,%: `Junior' in citations
+%--------------------
+%PUNCTUATION BETWEEN AUTHOR NAMES:
+    %: (def) Author names separated by commas
+% aunm-semi,%: Names separated by semi-colon
+% aunm-sl,%: Names separated by slash
+%--------------------
+%ADJACENT REFERENCES WITH REPEATED NAMES:
+    %: (def) Author/editor names always present
+% nmdash,%: Repeated author/editor names replaced by dash
+% nmdash,nmd-2,%: Repeated author/editor names replaced by 2 dashes
+% nmdash,nmd-3,%: Repeated author/editor names replaced by 3 dashes
+%--------------------
+%NUMBER OF AUTHORS IN BIBLIOGRAPHY:
+    %: (def) All authors
+% nmlm,%: Limited authors
+%--------------------
+%AUTHORS IN CITATIONS:
+    %: (def) One author et al
+% mcite,%: Some other truncation scheme
+%--------------------
+%MAX AUTHORS BEFORE ET AL: (if regular cite not selected)
+% mct-1,%: One et al
+% mct-2,%: One, Two et al
+% mct-3,%: One, Two, Three et al
+% mct-4,%: One, Two, Three, Four et al
+% mct-5,%: One, Two, Three, Four, Five et al
+% mct-6,%: One, Two, Three, Four, Five, Six et al
+%--------------------
+%MAX AUTHORS WITHOUT ET AL: (if regular cite not selected)
+% mct-x2,%: Two authors without truncating
+% mct-x3,%: Three authors
+% mct-x4,%: Four authors
+% mct-x5,%: Five authors
+% mct-x6,%: Six authors
+%--------------------
+%TYPEFACE FOR AUTHORS IN LIST OF REFERENCES:
+    %: (def) Normal font for author names
+% nmft,nmft-sc,%: Small caps authors
+% nmft,nmft-it,%: Italic authors
+% nmft,nmft-bf,%: Bold authors
+% nmft,nmft-def,%: User defined author font
+%--------------------
+%FONT FOR FIRST NAMES (if non-default font for authors)
+%   %: (def) First names same font as surnames
+% fnm-rm,%: First names in normal font
+% fnm-def,%: First names in user defined font
+%--------------------
+%EDITOR NAMES IN INCOLLECTION ETC:
+%   %: (def) Editors incollection normal font
+% nmfted,%: Editors incollection like authors
+%--------------------
+%FONT FOR `AND' IN LIST:
+%   %: (def) `And' in author font
+% nmand-rm,%: `And' in normal font
+%--------------------
+%FONT OF CITATION LABELS IN TEXT (if author-year citations)
+    %: (def) Cited authors plain
+% lab,lab-it,%: Cited authors italic
+% lab,lab-sc,%: Cited authors small caps
+% lab,lab-bf,%: Cited authors bold
+% lab,lab-def,%: User defined citation font
+%--------------------
+%FONT FOR `AND' IN CITATIONS (if non-default font for citation lables)
+%   %: (def) Cited `and' in author font
+% and-rm,%: Cited `and' in normal font
+%--------------------
+%FONT OF EXTRA LABEL (The extra letter on the year)
+    %: (def) Extra label plain
+% xlab-it,%: Extra label italic
+%--------------------
+%LABEL WHEN AUTHORS MISSING (if author-year citations)
+  keyxyr,%: Year blank when KEY replaces missing author
+%   %: (def) Year included when KEY replaces missing author
+%--------------------
+%MISSING DATE (if author-year citations)
+%   %: (def) Missing date set to ????
+  blkyear,%: Missing date left blank
+%--------------------
+%DATE POSITION:
+%   %: (def) Date at end
+  dt-beg,%: Date after authors
+% dt-jnl,%: Date part of journal spec.
+% dt-end,%: Date at very end
+%--------------------
+%DATE FORMAT (if non author-year citations)
+%   %: (def) Plain month and year
+% yr-par,%: Date in parentheses
+% yr-brk,%: Date in brackets
+% yr-col,%: Date preceded by colon
+% yr-per,%: Date preceded by period
+% yr-com,%: Date preceded by comma
+% yr-blk,%: Date preceded by space
+%--------------------
+%SUPPRESS MONTH:
+%   %: (def) Date is month and year
+% xmth,%: Date is year only
+%--------------------
+%REVERSED DATE (if including month)
+%   %: (def) Date as month year
+% dtrev,%: Date as year month
+%--------------------
+%DATE FORMAT (if author-year citations)
+%   %: (def) Year plain
+% yr-par,%: Year in parentheses
+% yr-brk,%: Year in brackets
+% yr-col,%: Year preceded by colon
+  yr-per,%: Year preceded by period
+% yr-com,%: Date preceded by comma
+% yr-blk,%: Year preceded by space
+%--------------------
+%INCLUDE MONTHS:
+    %: (def) Date is year only
+% aymth,%: Include month in date
+%--------------------
+%REVERSED DATE (if including month)
+%   %: (def) Date as month year
+% dtrev,%: Date as year month
+%--------------------
+%DATE PUNCTUATION (if date not at end)
+    %: (def) Date with standard block punctuation
+% yrp-col,%: Colon after date
+% yrp-semi,%: Semi-colon after date
+% yrp-per,%: Period after date
+% yrp-x,%: No punct. after date
+%--------------------
+%BLANK AFTER DATE:
+    %: (def) Space after date
+% yrpp-xsp,%: No space after date
+%--------------------
+%DATE FONT:
+    %: (def) Date in normal font
+% dtbf,%: Date in bold face
+%--------------------
+%TRUNCATE YEAR (if author-year citations)
+  note-yr,%: Year text full
+%   %: (def) Year truncated
+%--------------------
+%TITLE OF ARTICLE:
+%   %: (def) Title plain
+% tit-it,%: Title italic
+% tit-qq,qt-s,%: Title and punctuation in single quotes
+% tit-qq,%: Title and punctuation in double quotes
+% tit-qq,qt-g,%: Title and punctuation in guillemets
+% tit-qq,qt-s,qx,%: Title in single quotes
+% tit-qq,qx,%: Title in double quotes
+  tit-qq,qt-g,qx,%: Title in guillemets
+%--------------------
+%COLLECTION/PROCEEDINGS TITLES (if quoted title)
+% bt-qq,%: Quote collection and proceedings titles
+    %: (def) Collection and proceedings titles not in quotes
+%--------------------
+%CAPITALIZATION OF ARTICLE TITLE:
+    %: (def) Sentence style
+% atit-u,%: Title style
+%--------------------
+%ARTICLE TITLE PRESENT:
+    %: (def) Article title present
+% jtit-x,%: No article title
+%--------------------
+%JOURNAL NAMES:
+    %: (def) Periods in journal names
+% jxper,%: Dotless journal names
+%--------------------
+%JOURNAL NAME FONT:
+    %: (def) Journal name italics
+% jttl-rm,%: Journal name normal
+%--------------------
+%THESIS TITLE:
+    %: (def) Thesis titles like books
+% thtit-a,%: Thesis title like article
+% thtit-x,%: No thesis title
+%--------------------
+%TECHNICAL REPORT TITLE:
+%   %: (def) Tech. report title like articles
+  trtit-b,%: Tech. report title like books
+%--------------------
+%TECHNICAL REPORT NUMBER:
+    %: (def) Tech. report and number plain
+% trnum-it,%: Tech. report and number italic
+%--------------------
+%JOURNAL VOLUME:
+    %: (def) Volume plain
+% vol-it,%: Volume italic
+% vol-bf,%: Volume bold
+% vol-2bf,%: Volume and number bold
+%--------------------
+%JOURNAL VOL AND NUMBER:
+%   %: (def) Journal vol(num)
+% vnum-sp,%: Journal vol (num)
+% vnum-cm,%: Journal vol, num
+  vnum-nr,%: Journal vol, no. num
+% vnum-h,%: Journal vol, \# number
+% vnum-b,%: Journal vol number
+% vnum-x,%: Journal vol, without number
+%--------------------
+%VOLUME PUNCTUATION:
+%   %: (def) Volume with colon
+% volp-sp,%: Volume with colon and space
+% volp-semi,%: Volume with semi-colon
+  volp-com,%: Volume with comma
+% volp-blk,%: Volume with blank
+%--------------------
+%YEAR IN JOURNAL SPECIFICATION:
+    %: (def) Journal year like others
+% jdt-v,%: Journal vol(year)
+% jdt-vs,%: Journal vol (year)
+% jdt-p,%: Year with pages
+% jdt-pc,%: Year, comma, pages
+%--------------------
+%PAGE NUMBERS:
+    %: (def) Start and stop page numbers
+% jpg-1,%: Only start page number
+%--------------------
+%LARGE PAGE NUMBERS:
+%   %: (def) No separators for large page numbers
+% pgsep-c,%: Comma inserted over 9999
+  pgsep-s,%: Thin space inserted over 9999
+% pgsep-p,%: Period inserted over 9999
+%--------------------
+%WORD `PAGE' IN ARTICLES:
+%   %: (def) Article pages numbers only
+  jwdpg,%: Include `page' in articles
+%--------------------
+%POSITION OF PAGES:
+    %: (def) Pages given mid text
+% pp-last,%: Pages at end
+%--------------------
+%WORD `VOLUME' IN ARTICLES:
+%   %: (def) Article volume as number only
+  jwdvol,%: Include `volume' in articles
+%--------------------
+%NUMBER AND SERIES FOR COLLECTIONS:
+  num-xser,%: Allows number without series
+%   %: (def) Standard BibTeX
+%--------------------
+%POSITION OF NUMBER AND SERIES:
+%   %: (def) After chapter and pages
+  numser,%: Just before publisher
+%--------------------
+%VOLUME AND SERIES FOR BOOKS/COLLECTIONS:
+%   %: (def) Vol. 23 of Series
+  ser-vol,%: Series, vol. 23
+%--------------------
+%POSITION OF VOLUME AND SERIES FOR INCOLLECTIONS:
+%   %: (def) Series and volume after the editors
+  ser-ed,%: Series and volume after booktitle
+%--------------------
+%JOURNAL NAME PUNCTUATION:
+    %: (def) Comma after journal
+% jnm-x,%: Space after journal
+%--------------------
+%BOOK TITLE:
+    %: (def) Book title italic
+% btit-rm,bt-rm,%: Book title plain
+%--------------------
+%PAGES IN BOOKS:
+    %: (def) Pages in book plain
+% bkpg-par,%: Pages in book in parentheses
+% bkpg-x,%: Pages in book bare
+%--------------------
+%TOTAL PAGES OF A BOOK:
+%   %: (def) Total book pages not printed
+  pg-bk,%: For book: 345 pages
+% pg-bk,pg-pre,%: Total book pages before publisher
+%--------------------
+%PUBLISHER ADDRESS:
+    %: (def) Publisher, address
+% add-pub,%: Address: Publisher
+%--------------------
+%PUBLISHER IN PARENTHESES:
+    %: (def) Publisher as normal block
+% pub-par,%: Publisher in parentheses
+% pub-date,%: Publisher and date in parentheses
+% pub-date,pub-xc,%: Publisher and date in parentheses, no comma
+% pub-date,pub-xpar,%: Publisher and date without parentheses
+% pub-date,pub-xpar,pub-xc,%: Publisher and date, no parentheses, no comma
+%--------------------
+%PUBLISHER POSITION:
+%   %: (def) Publisher after chapter, pages
+  pre-pub,%: Publisher before chapter, pages
+  pre-edn,%: Publisher after edition
+%--------------------
+%ISBN NUMBER:
+  isbn,%: Include ISBN
+%   %: (def) No ISBN
+%--------------------
+%ISSN NUMBER:
+% issn,%: Include ISSN
+    %: (def) No ISSN
+%--------------------
+%DOI NUMBER:
+% doi,%: Include DOI
+  url-doi,%: Format DOI as URL //doi.org/doi
+% agu-doi,doi,%: Insert DOI AGU style
+%   %: (def) No DOI
+%--------------------
+%`EDITOR' AFTER NAMES (EDITED BOOKS WITHOUT AUTHORS):
+%   %: (def) Word `editor' after name
+% edpar,%: `Name (editor),'
+% edpar,bkedcap,%: `Name (Editor),'
+% edparc,%: `Name, (editor)'
+% edparc,bkedcap,%: `Name, (Editor)'
+  edparxc,%: `Name (editor)'
+% edparxc,bkedcap,%: `Name (Editor)'
+%--------------------
+%EDITOR IN COLLECTIONS:
+%   %: (def) Same as for edited book
+  edby,%: In booktitle, edited by .. 
+% edby-par,%: In booktitle (edited by ..)
+% edby-parc,%: In booktitle, (edited by ..)
+% edby,edbyx,%: In booktitle, editor ..
+% edby,edbyw,%: In booktitle, (editor) ..
+% edby-par,edbyx,%: In booktitle (editor..)
+% edby-parc,edbyx,%: In booktitle, (editor..)
+% edby,edbyy,%: In booktitle, .., editor
+% edby-par,edbyy,%: In booktitle (.., editor)
+%--------------------
+%CAPITALIZE `EDITOR' OR `EDITED BY' (if editor capitalizable)
+%   %: (def) `(editor,..)' or `(edited by..)'
+% edcap,%: `(Editor,..)' or `(Edited by..)'
+%--------------------
+%PUNCTUATION BETWEEN SECTIONS (BLOCKS):
+%   %: (def) \newblock after blocks
+  blk-com,%: Comma between blocks
+% blk-com,com-semi,%: Semi-colon between blocks
+% blk-com,com-blank,%: Blanks between blocks
+% blk-tit,%: Period after titles of articles, books, etc
+% blk-tit,tit-col,%: Colon after titles of articles, books, etc
+% blk-tita,%: Period after titles of articles
+% blk-tita,tit-col,%: Colon after titles of articles
+%--------------------
+%PUNCTUATION BEFORE NOTES (if not using \newblock)
+%   %: (def) Notes have regular punctuation
+  blknt,%: Notes preceded by period
+%--------------------
+%PUNCTUATION AFTER AUTHORS:
+    %: (def) Author block normal
+% au-col,%: Author block with colon
+%--------------------
+%PUNCTUATION AFTER `IN':
+    %: (def) Space after `in'
+% in-col,%: Colon after `in'
+% in-it,%: Italic `in'
+% in-col,in-it,%: Italic `in' and colon
+% in-x,%: No word `in'
+%--------------------
+%`IN' WITH JOURNAL NAMES (if using 'in' with collections)
+    %: (def) No `in' before journal name
+% injnl,%: Add `in' before journal name
+%--------------------
+%FINAL PUNCTUATION:
+    %: (def) Period at very end
+% fin-bare,%: No period at end
+%--------------------
+%ABBREVIATE WORD `PAGES' (if not using external language file)
+%   %: (def) `Page(s)'
+% pp,%: `Page' abbreviated
+% ppx,%: `Page' omitted
+%--------------------
+%ABBREVIATE WORD `EDITORS':
+%   %: (def) `Editor(s)'
+% ed,%: `Editor' abbreviated
+%--------------------
+%OTHER ABBREVIATIONS:
+%   %: (def) No abbreviations
+% abr,%: Abbreviations
+%--------------------
+%ABBREVIATION FOR `EDITION' (if abbreviating words)
+%   %: (def) `Edition' abbreviated as `edn'
+% ednx,%: `Edition' abbreviated as `ed'
+%--------------------
+%MONTHS WITH DOTS:
+%   %: (def) Months with dots
+% mth-bare,%: Months without dots
+%--------------------
+%EDITION NUMBERS:
+% xedn,%: Editions as in database
+%   %: (def) Write out editions
+% ord,%: Numerical editions
+%--------------------
+%Reading external language file \cfile=cjs-rcs-french.mbs
+    french,%: French language
+%ABBREVIATE WORD `PAGES':
+%   %: (def) `Page(s)'
+  pp,%: `Page' abbreviated
+% ppx,%: `Page' omitted
+%--------------------
+%ABBREVIATE WORD `EDITEUR:
+%   %: (def) `\'Editeur(s)'
+  ed,%: `\'Editeur' abbreviated
+%--------------------
+%OTHER ABBREVIATIONS:
+%   %: (def) No abbreviations
+  abr,%: Abbreviations
+%--------------------
+%EDITION NUMBERS:
+% xedn,%: Editions as in database
+%   %: (def) Write out editions
+  ord,%: Numerical editions
+%--------------------
+%STORED JOURNAL NAMES:
+    %: (def) Full journal names
+% jabr,%: Abbreviated journal names
+% jabr,jaa,%: Abbreviated with astronomy shorthands
+%--------------------
+%AMPERSAND:
+    %: (def) Use word `and'
+% amper,%: Use ampersand
+% varand,%: Use \BIBand
+%--------------------
+%COMMA BEFORE `AND':
+%   %: (def) Comma before `and'
+  and-xcom,%: No comma before `and'
+% and-com,%: Comma even with 2 authors
+%--------------------
+%COMMA BEFORE `AND' EVEN FOR COLLECTION EDITORS (if using comma before `and' with authors)
+% and-com-ed,%: Comma with 2 editors
+%   %: (def) Two editors without comma
+%--------------------
+%NO `AND' IN REFERENCE LIST:
+    %: (def) With `and'
+% xand,%: No `and'
+%--------------------
+%COMMA BEFORE `ET AL':
+%   %: (def) Comma before `et al'
+  etal-xc,%: No comma before `et al'
+%--------------------
+%FONT OF `ET AL':
+    %: (def) Plain et al
+% etal-it,%: Italic et al
+% etal-rm,%: Roman et al
+%--------------------
+%ADDITIONAL REVTeX DATA FIELDS:
+    %: (def) No additional fields
+% revdata,eprint,url,url-blk,%: Include REVTeX data fields
+%--------------------
+%E-PRINT DATA FIELD: (without REVTeX fields)
+    %: (def) Do not include eprint field
+% eprint,%: Include eprint and archive fields
+%--------------------
+%URL ADDRESS: (without REVTeX fields)
+%   %: (def) No URL
+  url,url-blk,%: Include URL
+% url,url-nt,%: URL as note
+% url,url-nl,%: URL on new line
+%--------------------
+%REFERENCE COMPONENT TAGS:
+    %: (def) No reference component tags
+% bibinfo,%: Reference component tags
+%--------------------
+%EMPHASIS: (affects all so-called italics)
+    %: (def) Use emphasis
+% em-it,%: Use true italics
+% em-x,%: No italics
+% em-ul,%: Underlining
+%--------------------
+%COMPATIBILITY WITH PLAIN TEX:
+  nfss,%: Use LaTeX commands
+% plntx,%: Use only Plain TeX
+%--------------------
+,{%
+  }}
+\generate{\file{cjs-rcs-fr.bst}{\MBopts}}
+\endbatchfile


Property changes on: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-bst-fr.dbj
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-class.dbj
===================================================================
--- trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-class.dbj	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-class.dbj	2024-07-14 20:14:08 UTC (rev 71799)
@@ -0,0 +1,39 @@
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\nopostamble
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2023-2024 Statistical Society of Canada | Société
+canadienne de statistique
+
+This file may be distributed and/or modified under the conditions
+of the LaTeX Project Public License, either version 1.3c of this
+license or (at your option) any later version. The latest version
+of this license is in:
+
+  https://www.latex-project.org/lppl.txt
+
+and version 1.3c or later is part of all distributions of LaTeX
+version 2006/05/20 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Vincent Goulet
+<vincent.goulet at act.ulaval.ca>.
+
+This work consists of the file cjs-rcs-article.dtx and the derived
+files cjs-rcs-article.cls, cjs-rcs-article-fr.tex, cjs-template.tex
+and rcs-gabarit.tex.
+
+\endpreamble
+
+\generate{
+  \file{cjs-rcs-article.cls}{\from{cjs-rcs-article.dtx}{class}}
+  \file{cjs-rcs-article-fr.tex}{\nopreamble\from{cjs-rcs-article.dtx}{fr-doc}}
+  \file{cjs-template.tex}{\nopreamble\from{cjs-rcs-article.dtx}{template,en}}
+  \file{rcs-gabarit.tex}{\nopreamble\from{cjs-rcs-article.dtx}{template,fr}}
+}
+\endbatchfile


Property changes on: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-class.dbj
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-english.mbs
===================================================================
--- trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-english.mbs	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-english.mbs	2024-07-14 20:14:08 UTC (rev 71799)
@@ -0,0 +1,422 @@
+% \iffalse meta-comment -*- mode: doctex -*-
+%
+% English language definition file of the master bibliography style
+% for The Canadian Journal of Statistics | La revue canadienne de
+% statistique
+%
+% Copyright (C) 2023-2024 Statistical Society of Canada | Société
+% canadienne de statistique
+%
+% This file may be distributed and/or modified under the conditions
+% of the LaTeX Project Public License, either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in:
+%
+%   https://www.latex-project.org/lppl.txt
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Vincent Goulet
+% <vincent.goulet at act.ulaval.ca>.
+%
+% This work derives from english.mbs, part of the custom-bib
+% collection, a contribution to the LaTeX2e system.
+% Copyright 1994-2002 Patrick W Daly
+% Max-Planck-Institut f\"ur Sonnensystemforschung
+% Max-Planck-Str. 2
+% D-37191 Katlenburg-Lindau
+% Germany
+% E-mail: daly at mps.mpg.de
+%
+ %-------------------------------------------------------------------
+ % Begin module:
+%\fi
+ % \ProvidesFile{cjs-rcs-english.mbs}[2024/07/14 v1.1 (VG, PWD)]
+%\iffalse
+%<*a&!a>
+% The following ensures that the driver part is not seen by makebst
+% The driver part must not contain any \end other than \end{document} !
+\ifx\endoptions\undefined\let\tempx=\relax\else
+  \long\def\tempx#1\end#2{}\fi\tempx
+%</a&!a>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}%
+\documentclass[nocjs,x11names,french,english]{cjs-rcs-article}
+
+  %% Loading doc.sty creates some conflicts with the class and memoir. We
+  %% need to:
+  %%
+  %% - keep a copy of the class' \maketitle command;
+  %% - undefine the 'glossary' environment created by memoir;
+  %% - restore the standard LaTeX commands for the glossary that
+  %%   doc.sty relies upon.
+  \let\makeCJStitle\maketitle   % keep class definition
+  \let\theglossary\relax        % avoid conflict with doc.sty
+  \let\endtheglossary\relax     % avoid conflict with doc.sty
+  \makeatletter
+  \def\makeglossary{%
+    \newwrite\@glossaryfile
+    \immediate\openout\@glossaryfile=\jobname.glo
+    \def\glossary{\@bsphack\begingroup
+                  \@sanitize
+                  \@wrglossary}\typeout
+      {Writing glossary file \jobname.glo }%
+    \let\makeglossary\@empty
+  }
+  \@onlypreamble\makeglossary
+  \def\@wrglossary#1{%
+     \protected at write\@glossaryfile{}%
+        {\string\glossaryentry{#1}{\thepage}}%
+   \endgroup
+   \@esphack}
+  \def\glossary{\@bsphack\begingroup\@sanitize\@index}
+  \@twosidefalse\@mparswitchfalse % turn off twoside option
+  \makeatother
+  \usepackage{doc}
+  \def\changes#1#2#3{\glossary{#1>#3}} % simplified
+  \DisableCrossrefs
+  \CodelineNumbered
+  \RecordChanges
+  \OnlyDescription
+  \DontCheckModules
+
+  \AtEndPreamble{%
+    \hypersetup{%
+      pdfauthor = {Statistical Society of Canada},
+      pdftitle = {French language definition file cjs-rcs-french.mbs}}}
+
+  %% Configuration of the glossary
+  \addto\extrasenglish{%
+    \def\glossaryname{Version history}}
+  \GlossaryPrologue{\section*{\glossaryname}%
+    \addcontentsline{toc}{section}{\glossaryname}}
+  \setlength{\GlossaryMin}{5cm}
+
+  %% Additional semantic typesetting
+  \newcommand*\class[1]{\textsf{#1}}
+  \newcommand*\dtx{\textsf{docstrip}}
+
+  %% Name of the journal
+  \makeatletter
+  \newcommand*\TheCJS{\@ifstar{\emph{The Journal}}{\emph{\CJS at journalname@en}}}
+  \newcommand*\LaRevue{\@ifstar{\emph{La revue}}{\emph{\CJS at journalname@fr}}}
+  \newcommand*\CJSclass{\class{cjs-rcs-article}}
+  \newcommand*\CJSbsten{\texttt{cjs-rcs-en.bst}}
+  \newcommand*\CJSbstfr{\texttt{cjs-rcs-fr.bst}}
+  \makeatother
+
+  %% Redefine \year using information from \filedate instead of using
+  %% compilation time
+  \def\parsedate#1/#2/#3\relax{\def\year{#1}}
+
+  \MakeShortVerb{\|}
+
+\begin{document}
+  \DocInput{cjs-rcs-english.mbs}
+\end{document}
+%</driver>
+% end of meta-comment \fi
+% \GetFileInfo{cjs-rcs-english.mbs}
+% \expandafter\parsedate\filedate\relax
+%
+% \changes{0.9}{2023-10-14}{Initial version based on version 4.2 of
+% \texttt{english.mbs} from \textbf{custom-bib}.}
+% \changes{0.93}{2023-11-06}{Add a prefix v in the version number like
+% the main file.}
+% \changes{1.0}{2023-11-29}{First official release distributed through
+% CTAN.}
+% \changes{1.1}{2024-07-14}{No changes to the English language
+% definition file.}
+%
+% \title[English language definition file \filename]{%
+%   English language definition file \\
+%   of the master bibliographic style file \\
+%   for \TheCJS}
+% \author{Statistical Society of Canada}
+% \affil{Developed by Vincent Goulet, Université Laval}
+%
+% \begin{englishabstract}
+%   The list of references in {\TheCJS} is typeset using the
+%   bibliographic styles {\CJSbsten} for articles in English and
+%   {\CJSbstfr} for articles in French. These styles are created using
+%   the program \texttt{makebst} from the master bibliographic file
+%   \texttt{cjs-rcs-merlin.mbs}, and the language definition files
+%   \texttt{cjs-rcs-english.mbs} and \texttt{cjs-rcs-french.mbs}.
+% \end{englishabstract}
+% \begin{frenchabstract}
+%   La liste des références dans {\LaRevue} est composée avec les
+%   style de bibliographie {\CJSbstfr} pour les articles en français
+%   et {\CJSbsten} pour les articles en anglais. Ceux-ci sont générés
+%   par le programme \texttt{makebst} à partir du fichier maitre
+%   \texttt{cjs-rcs-merlin.mbs} et des fichiers de localisation
+%   \texttt{cjs-rcs-english.mbs} et \texttt{cjs-rcs-french.mbs}.
+% \end{frenchabstract}
+%
+% ^^A abusing the 'classification' environment. The final period is
+% ^^A added by the environment.
+% \begin{classification}[Version]
+% \item[] This is the documentation for the file \code{\filename}
+%   {\fileversion}, dated {\filedate}
+% \end{classification}
+%
+% \licence{{\year}, Statistical Society of Canada~{\textbar}~Société
+% canadienne de statistique}
+%
+% \makeCJStitle
+%
+% \section{Introduction}
+%
+% This file is to be used as a language definition file with the
+% master bibliographic file for {\TheCJS}. The language it defines is
+% English.
+%
+% This is not a self-sufficient \texttt{.mbs} file, but rather may
+% be used together with one that contains language support via
+% external definition files.
+%
+% See the documentation for \texttt{makebst} for formatting details.
+%
+% \section{The Menu Information}
+%
+% All the menu information is nested between \dtx{} guard options
+% |%<*options>| \dots\ |%</options>|, and the last command is
+% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>|
+% \dots\ |%</!options&!driver>| in order to exclude it if \dtx{} is used to
+% extract only the menu information or the documentation driver.
+%
+%    \begin{macrocode}
+%<*options>
+\mes{^^JOptions for ENGLISH}
+\wr{\spsp\spsp english,\pc: English language}
+
+\beginoptiongroup{ABBREVIATE WORD `PAGES'}{}
+\optdef{*}{}{`Page(s)'}{(no abbreviation)}
+\optdef{a}{pp}{`Page' abbreviated}{as p. or pp.}
+\optdef{x}{ppx}{`Page' omitted}{}
+\getans
+\endoptiongroup
+\beginoptiongroup{ABBREVIATE WORD `EDITORS':}{}
+\optdef{*}{}{`Editor(s)'}{(no abbreviation)}
+\optdef{a}{ed}{`Editor' abbreviated}{as ed. or eds.}
+\getans
+\endoptiongroup
+\beginoptiongroup{OTHER ABBREVIATIONS:}{}
+\optdef{*}{}{No abbreviations}{of volume, edition, chapter, etc}
+\optdef{a}{abr}{Abbreviations}{of such words}
+\getans
+\endoptiongroup
+\beginoptiongroup{ABBREVIATION FOR `EDITION'
+ (if abbreviating words)}
+ {\if\ans a*\fi}%
+\optdef{*}{}{`Edition' abbreviated as `edn'}{}
+\optdef{a}{ednx}{`Edition' abbreviated as `ed'}{}
+\getans
+\beginoptiongroup{MONTHS WITH DOTS:}{}
+\optdef{*}{}{Months with dots}{as Jan.}
+\optdef{x}{mth-bare}{Months without dots}{as Feb Mar}
+\getans
+\endoptiongroup
+\endoptiongroup
+\beginoptiongroup{EDITION NUMBERS:}{}
+\optdef{*}{xedn}{Editions as in database}{saving much processing memory}
+\optdef{w}{}{Write out editions}{as first, second, third, etc}
+\optdef{n}{ord}{Numerical editions}{as 1st, 2nd, 3rd, etc}
+\getans
+\endoptiongroup
+\endoptions
+%</options>
+%    \end{macrocode}
+%
+% \StopEventually{\PrintChanges}
+%
+% \section{The Coding}
+%    \begin{macrocode}
+%<*!options&!driver>
+
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+%<!ed>{ "editors" }
+%<ed>{ "eds." }
+
+FUNCTION {bbl.editor}
+%<!ed>{ "editor" }
+%<ed>{ "ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+%<!abr>{ "edition" }
+%<abr&!ednx>{ "edn." }
+%<abr&ednx>{ "ed." }
+
+FUNCTION {bbl.volume}
+%<!abr>{ "volume" }
+%<abr>{ "vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+%<!abr>{ "number" }
+%<abr>{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+%<!pp&!ppx>{ "pages" }
+%<pp>{ "pp." }
+%<!pp&ppx>{ "" }
+
+FUNCTION {bbl.page}
+%<!pp&!ppx>{ "page" }
+%<pp>{ "p." }
+%<!pp&ppx>{ "" }
+
+%<*revdata>
+FUNCTION {bbl.eidpp}
+{ "pages" }
+
+%</revdata>
+FUNCTION {bbl.chapter}
+%<!abr>{ "chapter" }
+%<abr>{ "chap." }
+
+FUNCTION {bbl.techrep}
+%<!abr>{ "Technical Report" }
+%<abr>{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+%<*!xedn>
+FUNCTION {bbl.first}
+%<!ord>{ "First" }
+%<ord>{ "1st" }
+
+FUNCTION {bbl.second}
+%<!ord>{ "Second" }
+%<ord>{ "2nd" }
+
+FUNCTION {bbl.third}
+%<!ord>{ "Third" }
+%<ord>{ "3rd" }
+
+FUNCTION {bbl.fourth}
+%<!ord>{ "Fourth" }
+%<ord>{ "4th" }
+
+FUNCTION {bbl.fifth}
+%<!ord>{ "Fifth" }
+%<ord>{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+%    \end{macrocode}
+% This function adds English endings for ordinals 1, 2, 3. However, if
+% the second last digit is 1, then the ending is `th' for all last digits.
+% So far, all other languages included do not have this problem, and it is
+% sufficient to add the \textsl{th} equivalent. This might change with further
+% languages.
+%
+%    \begin{macrocode}
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+  #-2 #1 substring$ "1" =
+     { bbl.th * }
+     { duplicate$ #-1 #1 substring$
+       duplicate$ "1" =
+         { pop$ bbl.st * }
+         { duplicate$ "2" =
+             { pop$ bbl.nd * }
+             { "3" =
+                 { bbl.rd * }
+                 { bbl.th * }
+               if$
+             }
+           if$
+          }
+       if$
+     }
+   if$
+}
+
+%</!xedn>
+%<*!abr>
+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"}
+
+%</!abr>
+%<*abr>
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+%</abr>
+%</!options&!driver>
+ % End module: cjs-rcs-english.mbs
+%    \end{macrocode}
+% \Finale


Property changes on: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-english.mbs
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-french.mbs
===================================================================
--- trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-french.mbs	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-french.mbs	2024-07-14 20:14:08 UTC (rev 71799)
@@ -0,0 +1,372 @@
+% \iffalse meta-comment -*- mode: doctex -*-
+%
+% French language definition file of the master bibliography style for
+% The Canadian Journal of Statistics | La revue canadienne de
+% statistique
+%
+% Copyright (C) 2023-2024 Statistical Society of Canada | Société
+% canadienne de statistique
+%
+% This file may be distributed and/or modified under the conditions
+% of the LaTeX Project Public License, either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in:
+%
+%   https://www.latex-project.org/lppl.txt
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Vincent Goulet
+% <vincent.goulet at act.ulaval.ca>.
+%
+% This work derives from french.mbs, part of the custom-bib
+% collection, a contribution to the LaTeX2e system.
+% Copyright 1994-2002 Patrick W Daly
+% Max-Planck-Institut f\"ur Sonnensystemforschung
+% Max-Planck-Str. 2
+% D-37191 Katlenburg-Lindau
+% Germany
+% E-mail: daly at mps.mpg.de
+%
+ %-------------------------------------------------------------------
+ % Begin module:
+%\fi
+ % \ProvidesFile{cjs-rcs-french.mbs}[2024/07/14 v1.1 (VG, PWD)]
+%\iffalse
+%<*a&!a>
+% The following ensures that the driver part is not seen by makebst
+% The driver part must not contain any \end other than \end{document} !
+\ifx\endoptions\undefined\let\tempx=\relax\else
+  \long\def\tempx#1\end#2{}\fi\tempx
+%</a&!a>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}%
+\documentclass[nocjs,x11names,french,english]{cjs-rcs-article}
+
+  %% Loading doc.sty creates some conflicts with the class and memoir. We
+  %% need to:
+  %%
+  %% - keep a copy of the class' \maketitle command;
+  %% - undefine the 'glossary' environment created by memoir;
+  %% - restore the standard LaTeX commands for the glossary that
+  %%   doc.sty relies upon.
+  \let\makeCJStitle\maketitle   % keep class definition
+  \let\theglossary\relax        % avoid conflict with doc.sty
+  \let\endtheglossary\relax     % avoid conflict with doc.sty
+  \makeatletter
+  \def\makeglossary{%
+    \newwrite\@glossaryfile
+    \immediate\openout\@glossaryfile=\jobname.glo
+    \def\glossary{\@bsphack\begingroup
+                  \@sanitize
+                  \@wrglossary}\typeout
+      {Writing glossary file \jobname.glo }%
+    \let\makeglossary\@empty
+  }
+  \@onlypreamble\makeglossary
+  \def\@wrglossary#1{%
+     \protected at write\@glossaryfile{}%
+        {\string\glossaryentry{#1}{\thepage}}%
+   \endgroup
+   \@esphack}
+  \def\glossary{\@bsphack\begingroup\@sanitize\@index}
+  \@twosidefalse\@mparswitchfalse % turn off twoside option
+  \makeatother
+  \usepackage{doc}
+  \def\changes#1#2#3{\glossary{#1>#3}} % simplified
+  \DisableCrossrefs
+  \CodelineNumbered
+  \RecordChanges
+  \OnlyDescription
+  \DontCheckModules
+
+  \AtEndPreamble{%
+    \hypersetup{%
+      pdfauthor = {Statistical Society of Canada},
+      pdftitle = {French language definition file cjs-rcs-french.mbs}}}
+
+  %% Configuration of the glossary
+  \addto\extrasenglish{%
+    \def\glossaryname{Version history}}
+  \GlossaryPrologue{\section*{\glossaryname}%
+    \addcontentsline{toc}{section}{\glossaryname}}
+  \setlength{\GlossaryMin}{5cm}
+
+  %% Additional semantic typesetting
+  \newcommand*\class[1]{\textsf{#1}}
+  \newcommand*\dtx{\textsf{docstrip}}
+
+  %% Name of the journal
+  \makeatletter
+  \newcommand*\TheCJS{\@ifstar{\emph{The Journal}}{\emph{\CJS at journalname@en}}}
+  \newcommand*\LaRevue{\@ifstar{\emph{La revue}}{\emph{\CJS at journalname@fr}}}
+  \newcommand*\CJSclass{\class{cjs-rcs-article}}
+  \newcommand*\CJSbsten{\texttt{cjs-rcs-en.bst}}
+  \newcommand*\CJSbstfr{\texttt{cjs-rcs-fr.bst}}
+  \makeatother
+
+  %% Redefine \year using information from \filedate instead of using
+  %% compilation time
+  \def\parsedate#1/#2/#3\relax{\def\year{#1}}
+
+  \MakeShortVerb{\|}
+
+\begin{document}
+  \DocInput{cjs-rcs-french.mbs}
+\end{document}
+%</driver>
+% end of meta-comment \fi
+% \GetFileInfo{cjs-rcs-french.mbs}
+% \expandafter\parsedate\filedate\relax
+%
+% \changes{0.9}{2023-10-14}{Initial version based on version 4.2 of
+% \texttt{french.mbs} from \textbf{custom-bib}.}
+% \changes{0.93}{2023-11-06}{Add a prefix v in the version number like
+% the main file.}
+% \changes{1.0}{2023-11-29}{First official release distributed through
+% CTAN.}
+% \changes{1.1}{2024-07-14}{No changes to the French language
+% definition file.}
+%
+% \title[French language definition file \filename]{%
+%   French language definition file \\
+%   of the master bibliographic style file \\
+%   for \TheCJS}
+% \author{Statistical Society of Canada}
+% \affil{Developed by Vincent Goulet, Université Laval}
+%
+% \begin{englishabstract}
+%   The list of references in {\TheCJS} is typeset using the
+%   bibliographic styles {\CJSbsten} for articles in English and
+%   {\CJSbstfr} for articles in French. These styles are created using
+%   the program \texttt{makebst} from the master bibliographic file
+%   \texttt{cjs-rcs-merlin.mbs}, and the language definition files
+%   \texttt{cjs-rcs-english.mbs} and \texttt{cjs-rcs-french.mbs}.
+% \end{englishabstract}
+% \begin{frenchabstract}
+%   La liste des références dans {\LaRevue} est composée avec les
+%   style de bibliographie {\CJSbstfr} pour les articles en français
+%   et {\CJSbsten} pour les articles en anglais. Ceux-ci sont générés
+%   par le programme \texttt{makebst} à partir du fichier maitre
+%   \texttt{cjs-rcs-merlin.mbs} et des fichiers de localisation
+%   \texttt{cjs-rcs-english.mbs} et \texttt{cjs-rcs-french.mbs}.
+% \end{frenchabstract}
+%
+% ^^A abusing the 'classification' environment. The final period is
+% ^^A added by the environment.
+% \begin{classification}[Version]
+% \item[] This is the documentation for the file \code{\filename}
+%   {\fileversion}, dated {\filedate}
+% \end{classification}
+%
+% \licence{{\year}, Statistical Society of Canada~{\textbar}~Société
+% canadienne de statistique}
+%
+% \makeCJStitle
+%
+% \section{Introduction}
+%
+% This file is to be used as a language definition file with the
+% master bibliographic file for {\TheCJS}. The language it defines is
+% French.
+%
+% This is not a self-sufficient \texttt{.mbs} file, but rather may
+% be used together with one that contains language support via
+% external definition files.
+%
+% See the documentation for \texttt{makebst} for formatting details.
+%
+% \section{The Menu Information}
+%
+% All the menu information is nested between \dtx{} guard options
+% |%<*options>| \dots\ |%</options>|, and the last command is
+% |\endoptions|. The rest of the file is nested between |%<*!options&!driver>|
+% \dots\ |%</!options&!driver>| in order to exclude it if \dtx{} is used to
+% extract only the menu information or the documentation driver.
+%
+%    \begin{macrocode}
+%<*options>
+\mes{^^JOptions for FRENCH}
+\wr{\spsp\spsp french,\pc: French language}
+
+\beginoptiongroup{ABBREVIATE WORD `PAGES':}{}
+\optdef{*}{}{`Page(s)'}{(no abbreviation)}
+\optdef{a}{pp}{`Page' abbreviated}{as p. or pp.}
+\optdef{x}{ppx}{`Page' omitted}{}
+\getans
+\endoptiongroup
+\beginoptiongroup{ABBREVIATE WORD `EDITEUR:}{}
+\optdef{*}{}{`\string\'Editeur(s)'}{(no abbreviation)}
+\optdef{a}{ed}{`\string\'Editeur' abbreviated}{as \string\'Ed.}
+\getans
+\endoptiongroup
+\beginoptiongroup{OTHER ABBREVIATIONS:}{}
+\optdef{*}{}{No abbreviations}{of Tome, \string\'edition, chapitre}
+\optdef{a}{abr}{Abbreviations}{of such words}
+\getans
+\endoptiongroup
+\beginoptiongroup{EDITION NUMBERS:}{}
+\optdef{*}{xedn}{Editions as in database}{saving much processing memory}
+\optdef{w}{}{Write out editions}{as premi\string\`ere, deuxi\string\`eme,...}
+\optdef{n}{ord}{Numerical editions}{as 1re, 2e, 3e, etc}
+\getans
+\endoptiongroup
+\endoptions
+%</options>
+%    \end{macrocode}
+%
+% \StopEventually{\PrintChanges}
+%
+% \section{The Coding}
+%    \begin{macrocode}
+%<*!options&!driver>
+
+ % The language selected here is FRENCH
+FUNCTION {bbl.and}
+{ "et"}
+
+FUNCTION {bbl.etal}
+{ "et~collab." }
+
+FUNCTION {bbl.editors}
+%<!ed>{ "directeurs" }
+%<ed>{ "dir." }
+
+FUNCTION {bbl.editor}
+%<!ed>{ "directeur" }
+%<ed>{ "dir." }
+
+FUNCTION {bbl.edby}
+{ "sous la direction de" }
+
+FUNCTION {bbl.edition}
+%<!abr>{ "\'edition" }
+%<abr>{ "\'ed." }
+
+FUNCTION {bbl.volume}
+%<!abr>{ "volume" }
+%<abr>{ "vol." }
+
+FUNCTION {bbl.of}
+{ "de" }
+
+FUNCTION {bbl.number}
+%<!abr>{ "num\'ero" }
+%<abr>{ "{\no}" }
+
+FUNCTION {bbl.nr}
+{ "{\no}" }
+
+FUNCTION {bbl.in}
+{ "dans" }
+
+FUNCTION {bbl.pages}
+%<!pp&!ppx>{ "pages" }
+%<pp>{ "p." }
+%<!pp&ppx>{ "" }
+
+FUNCTION {bbl.page}
+%<!pp&!ppx>{ "page" }
+%<pp>{ "p." }
+%<!pp&ppx>{ "" }
+
+%<*revdata>
+FUNCTION {bbl.eidpp}
+{ "pages" }
+
+%</revdata>
+FUNCTION {bbl.chapter}
+%<!abr>{ "chapitre" }
+%<abr>{ "chap." }
+
+FUNCTION {bbl.techrep}
+%<!abr>{ "rapport technique" }
+%<abr>{ "rapport technique" }
+
+FUNCTION {bbl.mthesis}
+{ "m\'emoire de ma\^itrise" }
+
+FUNCTION {bbl.phdthesis}
+{ "th\`ese de doctorat" }
+
+%<*!xedn>
+FUNCTION {bbl.first}
+%<!ord>{ "Premi\`ere" }
+%<ord>{ "1{\iere}" }
+
+FUNCTION {bbl.second}
+%<!ord>{ "Deuxi\`eme" }
+%<ord>{ "2{\ieme}" }
+
+FUNCTION {bbl.third}
+%<!ord>{ "Troisi\`eme" }
+%<ord>{ "3{\ieme}" }
+
+FUNCTION {bbl.fourth}
+%<!ord>{ "Quatri\`eme" }
+%<ord>{ "4{\ieme}" }
+
+FUNCTION {bbl.fifth}
+%<!ord>{ "Cinqui\`eme" }
+%<ord>{ "5{\ieme}" }
+
+FUNCTION {bbl.th}
+{ "{\ieme}" }
+
+%</!xedn>
+%<*!abr>
+MACRO {jan} {"janvier"}
+
+MACRO {feb} {"f\'evrier"}
+
+MACRO {mar} {"mars"}
+
+MACRO {apr} {"avril"}
+
+MACRO {may} {"mai"}
+
+MACRO {jun} {"juin"}
+
+MACRO {jul} {"juillet"}
+
+MACRO {aug} {"ao\^ut"}
+
+MACRO {sep} {"septembre"}
+
+MACRO {oct} {"octobre"}
+
+MACRO {nov} {"novembre"}
+
+MACRO {dec} {"d\'ecembre"}
+
+%</!abr>
+%<*abr>
+MACRO {jan} {"jan."}
+
+MACRO {feb} {"f\'ev."}
+
+MACRO {mar} {"mars"}
+
+MACRO {apr} {"avr."}
+
+MACRO {may} {"mai"}
+
+MACRO {jun} {"juin"}
+
+MACRO {jul} {"juil."}
+
+MACRO {aug} {"ao\^ut"}
+
+MACRO {sep} {"sept."}
+
+MACRO {oct} {"oct."}
+
+MACRO {nov} {"nov."}
+
+MACRO {dec} {"d\'ec."}
+
+%</abr>
+%</!options&!driver>
+ % End module: cjs-rcs-french.mbs
+%    \end{macrocode}
+% \Finale


Property changes on: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-french.mbs
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-merlin.mbs
===================================================================
--- trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-merlin.mbs	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-merlin.mbs	2024-07-14 20:14:08 UTC (rev 71799)
@@ -0,0 +1,8010 @@
+% \iffalse meta-comment -*- mode: doctex -*-
+%
+% Master bibliography style for The Canadian Journal of Statistics |
+% La revue canadienne de statistique
+%
+% Copyright (C) 2023-2024 Statistical Society of Canada | Société
+% canadienne de statistique
+%
+% This file may be distributed and/or modified under the conditions
+% of the LaTeX Project Public License, either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in:
+%
+%   https://www.latex-project.org/lppl.txt
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Vincent Goulet
+% <vincent.goulet at act.ulaval.ca>.
+%
+% This work derives from merlin.mbs, part of the custom-bib
+% collection, a contribution to the LaTeX2e system.
+% Copyright 1994-2011 Patrick W Daly
+% Max-Planck-Institut f\"ur Sonnensystemforschung
+% Max-Planck-Str. 2
+% D-37191 Katlenburg-Lindau
+% Germany
+% E-mail: daly at mps.mpg.de
+%
+%<*!tail>
+% (The following notice appears in bst files generated from this file)
+ % -------------------------------------------------------------------
+ % Name and version information of the main mbs file:
+%\fi
+ % \ProvidesFile{cjs-rcs-merlin.mbs}[2023/11/29 v1.0 (VG, PWD, AO, DPC)]
+%\iffalse
+%</!tail>
+%<*a&!a>
+% The following ensures that the driver part is not seen by makebst
+% The driver part must not contain any \end other than \end{document} !
+\ifx\endoptions\undefined\let\tempx=\relax\else
+  \long\def\tempx#1\end#2{}\fi\tempx
+%</a&!a>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}%
+\documentclass[nocjs,x11names,french,english]{cjs-rcs-article}
+  \usepackage{metalogo}
+  \setlrmarginsandblock{40mm}{30mm}{*} % increase left margin
+  \checkandfixthelayout
+
+  %% Loading doc.sty creates some conflicts with the class and memoir. We
+  %% need to:
+  %%
+  %% - keep a copy of the class' \maketitle command;
+  %% - undefine the 'glossary' environment created by memoir;
+  %% - restore the standard LaTeX commands for the glossary that
+  %%   doc.sty relies upon.
+  \let\makeCJStitle\maketitle   % keep class definition
+  \let\theglossary\relax        % avoid conflict with doc.sty
+  \let\endtheglossary\relax     % avoid conflict with doc.sty
+  \makeatletter
+  \def\makeglossary{%
+    \newwrite\@glossaryfile
+    \immediate\openout\@glossaryfile=\jobname.glo
+    \def\glossary{\@bsphack\begingroup
+                  \@sanitize
+                  \@wrglossary}\typeout
+      {Writing glossary file \jobname.glo }%
+    \let\makeglossary\@empty
+  }
+  \@onlypreamble\makeglossary
+  \def\@wrglossary#1{%
+     \protected at write\@glossaryfile{}%
+        {\string\glossaryentry{#1}{\thepage}}%
+   \endgroup
+   \@esphack}
+  \def\glossary{\@bsphack\begingroup\@sanitize\@index}
+  \@twosidefalse\@mparswitchfalse % turn off twoside option
+  \makeatother
+  \usepackage{doc}
+  \def\changes#1#2#3{\glossary{#1>#3}} % simplified
+  \DisableCrossrefs
+  \CodelineNumbered
+  \RecordChanges
+  \OnlyDescription
+  \DontCheckModules
+
+  \AtEndPreamble{%
+    \hypersetup{%
+      pdfauthor = {Statistical Society of Canada},
+      pdftitle = {Master bibliographic style cjs-rcs-merlin.mbs}}}
+
+  %% Configuration of the glossary
+  \addto\extrasenglish{%
+    \def\glossaryname{Version history}}
+  \GlossaryPrologue{\section*{\glossaryname}%
+    \addcontentsline{toc}{section}{\glossaryname}}
+  \setlength{\GlossaryMin}{5cm}
+
+  %% Additional semantic typesetting
+  \newcommand*\class[1]{\textsf{#1}}
+  \newcommand*\btx{\textsc{Bib}\TeX}
+  \newcommand*\dtx{\textsf{docstrip}}
+
+  %% Name of the journal
+  \makeatletter
+  \newcommand*\TheCJS{\@ifstar{\emph{The Journal}}{\emph{\CJS at journalname@en}}}
+  \newcommand*\LaRevue{\@ifstar{\emph{La revue}}{\emph{\CJS at journalname@fr}}}
+  \newcommand*\CJSclass{\class{cjs-rcs-article}}
+  \newcommand*\CJSbsten{\texttt{cjs-rcs-en.bst}}
+  \newcommand*\CJSbstfr{\texttt{cjs-rcs-fr.bst}}
+  \makeatother
+
+  %% Redefine \year using information from \filedate instead of using
+  %% compilation time
+  \def\parsedate#1/#2/#3\relax{\def\year{#1}}
+
+  \MakeShortVerb{\|}
+
+\begin{document}
+  \DocInput{cjs-rcs-merlin.mbs}
+\end{document}
+%</driver>
+% end of meta-comment \fi
+% \GetFileInfo{cjs-rcs-merlin.mbs}
+% \expandafter\parsedate\filedate\relax
+%
+% \changes{0.9}{2023-10-14}{Initial version based on version 4.33 of
+% \texttt{merlin.mbs}.}
+% \changes{0.92}{2023-10-27}{Relegate the \texttt{makebst} menu
+% information to the complete documentation.}
+% \changes{0.93}{2023-11-06}{Add a prefix v in the version number like
+% the main file.}
+% \changes{1.0}{2023-11-29}{First official release distributed through
+% CTAN.}
+% \changes{1.1}{2024-07-14}{No changes to the master bibliographic style.}
+%
+% \title[Master bibliographic style file \filename]{%
+%   Master bibliographic style file \\
+%   of \TheCJS}
+% \author{Statistical Society of Canada}
+% \affil{Developed by Vincent Goulet, Université Laval}
+%
+% \begin{englishabstract}
+%   The list of references in {\TheCJS} is typeset using the
+%   bibliographic styles {\CJSbsten} for articles in English and
+%   {\CJSbstfr} for articles in French. These styles are created using
+%   the program \texttt{makebst} from the master bibliographic file
+%   \texttt{cjs-rcs-merlin.mbs}, and the language definition files
+%   \texttt{cjs-rcs-english.mbs} and \texttt{cjs-rcs-french.mbs}.
+% \end{englishabstract}
+% \begin{frenchabstract}
+%   La liste des références dans {\LaRevue} est composée avec les
+%   style de bibliographie {\CJSbstfr} pour les articles en français
+%   et {\CJSbsten} pour les articles en anglais. Ceux-ci sont générés
+%   par le programme \texttt{makebst} à partir du fichier maitre
+%   \texttt{cjs-rcs-merlin.mbs} et des fichiers de localisation
+%   \texttt{cjs-rcs-english.mbs} et \texttt{cjs-rcs-french.mbs}.
+% \end{frenchabstract}
+%
+% ^^A abusing the 'classification' environment. The final period is
+% ^^A added by the environment.
+% \begin{classification}[Version]
+% \item[] This is the documentation for the file \code{\filename}
+%   {\fileversion}, dated {\filedate}
+% \end{classification}
+%
+% \licence{{\year}, Statistical Society of Canada~{\textbar}~Société
+% canadienne de statistique}
+%
+% \makeCJStitle
+%
+% \section{Introduction}
+%
+% The class {\CJSclass} typesets manuscripts immediately in accordance
+% with the presentation rules of {\TheCJS}. The class uses its own
+% bibliographic styles: {\CJSbsten} for articles in English, and
+% {\CJSbstfr} for articles in French. The style {\CJSbsten} could best
+% be described as ``not unlike \code{apalike}'', whereas {\CJSbstfr}
+% is closely derived from the style \code{francais} provided by the
+% package %
+% \href{https://ctan.org/pkg/francais-bst}{\pkg{francais-bst}}.
+%
+% The styles were originally generated using the program
+% \code{makebst} by Patrick W.~Daly. The master bibliographic style
+% and the language definition files are heavily based on their
+% counterparts of the package %
+% \href{https://ctan.org/pkg/custom-bib}{\pkg{custom-bib}}, %
+% namely \code{merlin.mbs}, \code{english.mbs}, and \code{french.mbs}.
+%
+% \section{Generation of the bibliographic styles}
+% \label{sec:generation}
+%
+% The English style {\CJSbsten} is produced from this master
+% bibliographic style file and the language definition file
+% \code{cjs-rcs-english.mbs} by running the driver
+% \code{cjs-rcs-bst-en.dbj} through {\LaTeX}:
+% \begin{quote}
+%   \code{latex cjs-rcs-bst-en.dbj}
+% \end{quote}
+% The French style {\CJSbstfr} is produced similarly using the driver
+% \code{cjs-rcs-bst-fr.dbj}:
+% \begin{quote}
+%   \code{latex cjs-rcs-bst-fr.dbj}
+% \end{quote}
+%
+% \section{Changes compared to \texorpdfstring{\code{merlin.mbs}}{merlin.mbs}}
+% \label{sec:changes}
+%
+% The master bibliographic style \code{\filename} introduces the following
+% changes compared to \code{merlin.mbs}.
+%
+% \begin{enumerate}
+% \item The function \code{format.url} is reworked to provide a
+%   cleaner URL for digital object identifiers (DOIs). The
+%   \code{merlin.mbs} definition would generate a DOI of the form
+%   \begin{quote}
+%     URL \texttt{http://dx.doi.org/\meta{doi}}
+%   \end{quote}
+%   The revised definition instead generates the simpler string
+%   \begin{quote}
+%     doi: \meta{doi}
+%   \end{quote}
+%   When the package \pkg{hyperref} is loaded, \meta{doi} is a
+%   hyperlink to the now recommended URL
+%   \code{https://doi.org/\meta{doi}}. This behaviour relies on a
+%   command \cmd{\urldoi} provided in the \texttt{.bbl} file. If
+%   needed, this command may be redefined by the user.
+% \item The command \cmd{\urlprefix} is empty. Again, this may be
+%   redefined by the user.
+% \item The quotes «~» are typeset by the macro \cmd{\frquote} of
+%   \pkg{babel-french} (version $\geq$ 3.1), rather than by the custom
+%   commands \cmd{\guillemotleft} and \cmd{\guillemotright}.
+% \item The \code{makebst} menu information is only included in the
+%   complete documentation. The latter is obtained by commenting out
+%   the command \cmd{\OnlyDescription} in \code{\filename} and
+%   compiling the file with {pdf\LaTeX} or {\XeLaTeX}.
+% \end{enumerate}
+%
+% \StopEventually{\PrintChanges}
+%
+% \begin{quote}
+%   \itshape From this point on, the documentation is taken without
+%   modification from \code{merlin.mbs} by Patrick W.~Daly, but for
+%   minute details such as filenames.
+% \end{quote}
+%
+% \section{The Menu Information}\label{sec:menu}
+%
+% Here I describe the options and menu information for this particular
+% master file \texttt{\filename}. To construct a \dtx{} driver file
+% to generate a desired \texttt{.bst} file, simply process \texttt{makebst.tex}
+% with \TeX\ or \LaTeX, and give
+% \begin{quote}\code{\filename}\end{quote}
+% when prompted for the name of the master file. Then answer the questions
+% in the menus that follow. The menu information is extracted from here.
+%
+% All the menu information is nested between \dtx{} guard options
+% |%<*options>| \dots\ |%</options>|, and the last command is
+% |\endoptions|. The rest of the file is nested between
+% \begin{quote}
+%   |%<*!options&!driver&!bblbst>| \dots\ |</!options&!driver&!bblbst>|
+% \end{quote}
+% in order to exclude it if \dtx{} is used to
+% extract the menu information, the documentation driver, or the
+% \texttt{babelbst.tex} file.
+%
+% The main coding is divided into two sections, the \emph{head} and
+% \emph{tail}; in between come any external language or journal name
+% support files. The head part is marked with the \dtx{} guard option
+% |<!tail>| and the tail with |<!head>|. This roundabout means of
+% doing things makes it possible to process \texttt{\filename} with
+% \texttt{.dbj} files that were generated for the older
+% \texttt{genbst.mbs} file by simply changing the name of the source
+% file. If both \texttt{head} and \texttt{tail} (and \texttt{exlang})
+% options are omitted, as they are in the older \texttt{.dbj} files,
+% \texttt{\filename} is processed completely in one pass. To include
+% external files, two passes are needed, one for each part, with the
+% external file(s) coming in between.
+%
+% Note too that if the internal language commands are taken (i.e., if
+% \texttt{exlang} option is not given) then the default language is
+% English, which is tested for as |<!babel>|. This too permits the simple
+% update of older \texttt{.dbj}, at least for English.
+%
+% \subsection*{Selecting Language}
+% Explicit words in the bibliography style, such as \textsl{and},
+%      \textsl{editor}, etc.,
+% are represented by functions \texttt{bbl.and}, \texttt{bbl.editor}, and so on.
+% By default these functions translate to the normal English text, but
+% other languages are also possible.
+%
+% The definitions of these functions for other languages are contained in
+% external files. At this point, we can make use of features in
+% \texttt{makebst} (version~3.0 or later) to ask for the name of such a
+% definition file, and store it in |\cfile|. If no external file is
+% specified, then the internal definitions are taken, for which there are
+% two possibilities: English or \LaTeX{} commands (Babel).
+%
+% The commands |\MBswitch|, |\mes|, |\MBaskfile|, |\wr|, |\pc|, |\spsp| are
+% defined in \texttt{makebst.tex}.
+%
+% If |\MBswitch| does not exist, then the version of \texttt{makebst}
+% cannot support external files.
+%
+%    \begin{macrocode}
+%<*options>
+\expandafter\ifx\csname beginoptiongroup\endcsname\relax
+ \mes{^^J******************^^J%
+        !!!!!! VERSION CLASH !!!!!!!!!^^J%
+        This mbs file requires makebst version 4.0 or more^^J%
+        You must update makebst to run it with this mbs file^^J%
+        No docstrip batch file can be produced on this run^^J%
+         ******************}
+ \let\temp\endinput\else\let\temp\relax\fi\temp
+
+\newif\ifnumerical
+\newif\ifmytemp
+\mes{<<< For more information about the meanings of^^J%
+     <<< the various options, see the section on ^^J%
+     <<< Menu Information in the .mbs file documentation.}
+
+\umes{EXTERNAL FILES:}
+\expandafter\ifx\csname MBswitch\endcsname\relax
+ \mes{^^J**************^^J%
+        Makebst version is less than 3.0^^J%
+        Cannot add external file for language definition^^J%
+        **************}
+ \umes{No included files.}%
+ \def\cfile{}\def\jfile{}%
+\else
+ \MBaskfile{^^JName of language definition file}(\mroot.\mext)i\cfile
+ \edef\ctemp{\mroot.\mext}
+ \ifx\ctemp\cfile\def\cfile{}\fi
+ \umes{Name of language file: \string\cfile=\cfile.}%
+%    \end{macrocode}
+%
+% A second type of external file that can be added is one containing names
+% of journals that are to be prestored into the \texttt{.bst} file.
+% Several file names are allowed here, with the root names separated by
+% commas, and with the common extension added at the end. To assist later
+% parsing of the names, an additional comma is added before the extension.
+%
+% Note that in this case |\MBaskfile| treats the file(s) as output, i.e.,
+% it does not check if the file(s) actually exist.
+%
+% The macro |\Mgetnext| allows the root names to be extracted from the
+% list of file names.
+%    \begin{macrocode}
+ \def\jfile{}
+ \ask{\yn}{^^JInclude file(s) for extra journal names? (NO)}
+ \mytempfalse
+ \if!\yn!\else\if\yn n\else\if\yn N\else\mytemptrue\fi\fi\fi
+ \ifmytemp
+  \MBaskfile{^^JFile to include}(physjour,geojour,photjour.mbs)o\jfile
+  \edef\jfile{\froot,.\fext}
+  \umes{Name of included files: \string\jfile=\jfile.}%
+ \else
+  \umes{No included files.}%
+ \fi
+\fi%MBswitch
+\def\Mgetnext#1,#2.#3??{\def\froot{#1}\def\Mrest{#2}\def\fext{#3}}
+%    \end{macrocode}
+%
+% If no external files are specified, then both |\cfile| and |\jfile| are
+% empty. In this case, do \emph{not} set the options \texttt{head} and
+% \texttt{tail}, which control the \dtx{} passes through
+% \texttt{filename}. Now only one pass is made.
+%
+% If there is an external definition file, or an external list of
+% journal names, then some extra text must be
+% written to fit in with that already written by \texttt{makebst}. This is
+% explained in that documentation. The |\MBswitch| command turns the curly
+% braces |{..}| into normal characters, and the parentheses |(..)| take on
+% their grouping functionality. This permits unbalanced braces to be
+% written to the output file.
+%
+%    \begin{macrocode}
+\if!\cfile\jfile!\else
+ \begingroup\MBswitch
+  \wr(\spsp head,\string\MBopta})
+  \if!\cfile!\else
+   \wr(\string\from{\cfile}{\string\MBopta})
+  \fi
+  \if!\jfile!\else
+   \let\jxfile\jfile
+   \loop
+%    \end{macrocode}
+%
+% Parse the list of journal name files, adding a new |\from| for each one.
+%
+%    \begin{macrocode}
+    \expandafter\Mgetnext\jxfile??
+    \wr(\string\from{\froot.\fext}{\string\MBopta})
+    \edef\jxfile(\Mrest.\fext)
+    \if!\Mrest!\def\Mtst(1)\else\def\Mtst()\fi
+   \if!\Mtst!
+   \repeat
+  \fi
+  \wr(\string\from{\mroot.\mext}{tail,\string\MBopta}})
+  \wr(\string\def\string\MBopta{\pc)
+ \endgroup
+\fi
+%    \end{macrocode}
+%
+% Ask whether there is a need for
+% explicit English words or \LaTeX{} commands whose definitions are
+% to be found in the file \texttt{babelbst.tex}.
+%
+%    \begin{macrocode}
+\beginoptiongroup{INTERNAL LANGUAGE SUPPORT
+ (if no external language file)}%
+ {\if!\cfile!\relax*\fi}%
+\optdef{*}{}{English}{words used explicitly}
+\optdef{b}{babel}{Babel}
+    {(words replaced by commands defined in babelbst.tex)}
+\getans
+\endoptiongroup
+\if!\cfile!\relax\else
+\wr{\spsp\spsp exlang,\pc: External language file}
+\fi
+%    \end{macrocode}
+%
+% \subsection*{Author--year or numerical}
+% The first question is whether a numerical or author--year citation
+% style is to be used. If the latter, the supporting system is my
+% \code{natbib.sty}, which expects |\bibitem| to have an optional
+% argument containing the short form of the authors, plus year in
+% parentheses. E.g.,
+% \begin{quote}
+% |\bibitem[Daly et al.(1990)]{key}...|
+% \end{quote}
+% There is now a newer version of \texttt{natbib.sty} (v5.3) that
+% supports an optional full author list too, as
+% \begin{quote}
+% |\bibitem[Daly et al.(1990)Daly, Keppler, and Williams]{key}...|
+% \end{quote}
+% Other systems are also supported, such as the Harvard family of
+% bibliography styles (with \texttt{harvard.sty}), which have entries in the
+% form
+% \begin{quote}
+% |\harvarditem[Daly et al.]{Daly, Keppler,|\\
+% |       and Williams}{1990}{key}...|
+% \end{quote}
+% or the astronomy family (with \texttt{astron.sty}) with entries like
+% \begin{quote}
+% |\bibitem[\protect\astroncite{Daly et al.}{1990}]{key}...|
+% \end{quote}
+% or the Chicago family (with \texttt{chicago.sty}) with entries like
+% \begin{quote}
+% |\bibitem[\protect\citeautheryear{Daly, Keppler, and|\\
+% |      Williams}{Daly et al.}{1990}]{key}...|
+% \end{quote}
+% or the `named' variant of Chicago (with \texttt{named.sty}) with entries like
+% \begin{quote}
+% |\bibitem[\protect\citeauthoryear{Daly et al.}{1990}]{key}...|
+% \end{quote}
+% or the so-called ``author--date'' group (with \texttt{authordate1-4.sty})
+% with entries of the form
+% \begin{quote}
+% |\bibitem[\protect\citename{Daly et al.}1990]{key}...|
+% \end{quote}
+% Finally, there is the \texttt{apalike} format of Oren Patashnik, for use
+% with \texttt{apalike.sty} that has entries of the form
+% \begin{quote}
+% |\bibitem[Daly et al., 1990]{key}...|
+% \end{quote}
+%
+% In addition to numerical or author--year citation styles, there is also a
+% \texttt{cite} style available in which the label is the same as the cite
+% key. This is for listing entire contents of databases with the cite key
+% visible.
+%
+% A flag |\ifnumerical| is established because some of the following menu
+% features depend on which system is to be used.
+%
+% The \texttt{alph} option produces labels as in \texttt{alpha.bst}; options
+% \texttt{alf-1} and \texttt{alf-f} modify these. Standard is: first three
+% letters of the single author (Dal90 for Daly, 1990) and first letters of
+% first three authors (DK90 for Daly and Kopka, 1990). Alternatives are first
+% three letters of the first author, no matter how many authors there are, and
+% full name of first author.
+%    \begin{macrocode}
+\beginoptiongroup{STYLE OF CITATIONS:}{}
+\optdef{*}{}{Numerical}{as in standard LaTeX}
+\optdef{a}{ay}{Author-year}{with some non-standard interface}
+\optdef{b}{alph}{Alpha style, Jon90 or JWB90}{for single or multiple authors}
+\optdef{o}{alph,alf-1}{Alpha style, Jon90}{even for multiple authors}
+\optdef{f}{alph,alf-f}{Alpha style, Jones90}{(full name of first author)}
+\optdef{c}{cite}{Cite key}{(special for listing contents of bib file)}
+\getans
+\endoptiongroup
+\if\ans a\numericalfalse\else\numericaltrue\fi
+\if\ans b\mytempfalse   \else\mytemptrue   \fi
+\beginoptiongroup{HTML OUTPUT
+ (if non author-year citations)}
+ {\ifnumerical*\fi}
+\optdef{*}{}{Normal LaTeX}{output}
+\optdef{h}{html}{Hypertext}{output, in HTML code, in paragraphs}
+\optdef{n}{html,htlist}{Hypertext list}{with sequence numbers}
+\optdef{k}{html,htdes}{Hypertext with keys}{for viewing databases}
+\getans
+\endoptiongroup
+\beginoptiongroup{AUTHOR--YEAR SUPPORT SYSTEM
+ (if author-year citations)}
+ {\ifnumerical\else*\fi}
+\optdef{*}{nat}{Natbib}{for use with natbib v5.3 or later}
+\optdef{o}{}{Older Natbib}{without full authors citations}
+\optdef{l}{alk}{Apalike}{for use with apalike.sty}
+\optdef{h}{har}{Harvard}{system with harvard.sty}
+\optdef{a}{ast}{Astronomy}{system with astron.sty}
+\optdef{c}{cay}{Chicago}{system with chicago.sty}
+\optdef{n}{nmd}{Named}{system with named.sty}
+\optdef{d}{cn}{Author-date}{system with authordate1-4.sty}
+\getans
+%    \end{macrocode}
+% The \texttt{harvard} family has been extended for \LaTeXe, and the new
+% \texttt{.bst} files allow the word \textsl{and} and the brackets around years
+% to be variable with commands. These features may be added too.
+% The URL field used to be exclusively part of Harvard, but now exists
+% independently of it too.
+%
+%    \begin{macrocode}
+\beginoptiongroup{HARVARD EXTENSIONS INCLUDED
+ (if Harvard support selected)}
+ {\if\ans h*\fi}%
+\optdef{*}{harnm}{With Harvard extensions}{for LaTeX2e version of harvard.sty}
+\optdef{n}{}{Older Harvard}{style, for LaTeX 2.09}
+\getans
+\endoptiongroup
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Language switching}
+% A \texttt{language} field can be present to specify the original language of
+% the reference; with \verb!\setlanguage!, the hyphenation patterns are set for
+% setting the title in that language.
+%    \begin{macrocode}
+\beginoptiongroup{LANGUAGE FIELD}{}
+\optdef{*}{}{No language field}{}
+\optdef{l}{lang}{Add language field}{to switch hyphenation patterns temporarily}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Annotations}
+% Annotations to a reference are additional information not normally printed
+% out in the list of references. They are used for listing databases.
+% The coding here was offered by Soren Dayton.
+%    \begin{macrocode}
+\beginoptiongroup{ANNOTATIONS:}{}
+\optdef{*}{}{No annotations}{will be recognized}
+\optdef{a}{annote}{Annotations}{in annote field or in .tex file of citekey name}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Presentations}
+% Presentations are talks at meetings, oral or poster, that are not otherwise
+% published. The author making the presentation is indicated with the \texttt{key}
+% entry, which is the speaker's number within the author list. The font used
+% to highlight the speaker is either bold or italics, depending on the secondary
+% option, otherwise not highlighted.
+%    \begin{macrocode}
+\beginoptiongroup{PRESENTATIONS:}{}
+\optdef{*}{}{Do not add presentation type}{for conference talks}
+\optdef{p}{pres}{Add presentation, speaker not highlighted}{}
+\optdef{b}{pres,pres-bf}{Presentation, speaker bold face}{}
+\optdef{i}{pres,pres-it}{Presentaion, speaker italic}{}
+\optdef{c}{pres,pres-sc}{Presentaion, speaker in small caps}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Ordering of the listed references}
+%   Choices here depend on citation style. The default in both cases is
+% alphabetical order of all authors. For numerical style, one may also
+% choose an unsorted order, which means the order is the same as the original
+% citations. This corresponds to \texttt{unsrt.bst}. Order of citation is
+% also offered for author--year for \texttt{natbib}-type styles that can
+% also be used for numerical listings.
+%
+% Another possibility is to order first by year, then authors. This too only
+% makes sense for numerical citations. However, it is offered for author--year
+% in the event that a \texttt{natbib}-type style is used for numerical
+% listings.
+%
+% For the alpha style, the ordering is by label only, so no option is
+% offered here (|\ifnumerical| is \meta{true} and |\ifmytemp| is \meta{false}).
+%
+% For author--year, the second choice is by label. (The label is the
+% optional |\bibitem| argument, and is what is printed in place of the
+% |\cite| command.) With this option, all the papers with the same first
+% author are ordered so that the one-author papers come first, followed by
+% the two-author papers, followed by the multiple-author papers. This is a
+% more sensible system for author--year citations, and is demanded by some
+% journals (like JGR).
+%
+% One problem that can arise here is when two or more references have the
+% same set of authors and year; normally they are then ordered by the
+% title, ignoring initial words like \textsl{the} and \textsl{a}, with the
+% letters a, b,
+% c, \dots, added to the year. This can mean that a set of references with
+% a natural sequence will be put into a different order. An alternative is
+% to order them by the citation keyword instead of by title. This of course
+% assumes that the keywords in this case reflect that natural sequence.
+%    \begin{macrocode}
+\let\ans\relax
+\beginoptiongroup{ORDERING OF REFERENCES
+ (if non-author/year and non-alph)}
+ {\ifnumerical\ifmytemp*\fi\fi}%
+\optdef{*}{}{Alphabetical}{by all authors}
+\optdef{c}{seq-no}{Citation order}{(unsorted, like unsrt.bst)}
+\optdef{d}{seq-yr}{Year ordered}{and then by authors}
+\optdef{r}{seq-yrr}{Reverse year ordered}{and then by authors}
+\getans
+\endoptiongroup
+%
+\beginoptiongroup{ORDERING OF REFERENCES
+ (if author-year citations)}
+ {\ifnumerical\else*\fi}%
+\optdef{*}{}{Alphabetical}{by all authors}
+\optdef{l}{seq-lab}{By label}%
+   {(Jones before Jones and James before Jones et al)}
+\optdef{m}{seq-labc}{By label and cite order}%
+   {(like above but all Jones et al ordered as cited)}
+\optdef{k}{seq-key}{By label and cite key}{instead of label and title, as above}
+\optdef{d}{seq-yr}{Year ordered}{and then by authors (for publication lists)}
+\optdef{r}{seq-yrr}{Reverse year ordered}{and then by authors (most recent first)}
+\optdef{c}{seq-no}{Citation order}{(unsorted, only meaningful for numericals)}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+% The standard \btx\ styles consider the \emph{von} part of the name to be a
+% fixed part of the surname. European usage tends to alphabetize ignoring these
+% honorifics.
+%    \begin{macrocode}
+\beginoptiongroup{ORDER ON VON PART
+ (if not citation order)}
+ {\if\ans c\else*\fi}%
+\optdef{*}{}{Sort on von part}{(de la Maire before Defoe)}
+\optdef{x}{vonx}{Sort without von part}{(de la Maire after Mahone)}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% Sorting normally treats authors with the same surname but different initials
+% or first name separately; but a strict ordering by cite label would lump all
+% Smiths together.
+%    \begin{macrocode}
+\beginoptiongroup{IGNORE FIRST NAMES (if author-year citations)}
+  {\ifnumerical\else*\fi}%
+\optdef{*}{}{Respect first names}{or initials, treat as different authors}
+\optdef{x}{xintls}{Sort on surname only}{and treat all Smiths as one}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Formatting author names}
+% The default is that the full names of the authors are listed, given names
+% first, unabbreviated. Of course, if only the initials have been given in
+% the \texttt{.bib} file, then that is all that can appear in the list. Other
+% possibilities are to use initials (even if full names in the \texttt{.bib}
+% file) either before or after the surnames. A specialty of the journals of
+% the American Geophysical Union is to have only the first name with
+% reversed initials.
+%
+% If the reference is part of a larger work with editors, then the editor
+% names appear later in the reference text, usually as ``edited by \dots''
+% or as ``\emph{names} (editors)''. In these cases, the editor names are
+% not usually reversed (surname first) even if the authors' names are.
+% An option is provided to format such editor names exactly as the authors'.
+%    \begin{macrocode}
+\beginoptiongroup{AUTHOR NAMES:}{}
+\optdef{*}{ed-au}{Full, surname last}{(John Frederick Smith)}
+\optdef{f}{nm-revf}{Full, surname first}{(Smith, John Frederick)}
+\optdef{i}{nm-init,ed-au}{Initials + surname}{(J. F. Smith)}
+\optdef{r}{nm-rev}{Surname + initials}{(Smith, J. F.)}
+\optdef{s}{nm-rv}{Surname + dotless initials}{(Smith J F)}
+\optdef{w}{nm-rvvc}{Surname + comma + spaceless initials}{(Smith, J.F.)}
+\optdef{x}{nm-rvx}{Surname + pure initials}{(Smith JF)}
+\optdef{y}{nm-rvcx}{Surname + comma + pure initials}{(Smith, JF)}
+\optdef{z}{nm-rvv}{Surname + spaceless initials}{(Smith J.F.)}
+\optdef{a}{nm-rev1}{Only first name reversed, initials}%
+   {(AGU style: Smith, J. F., H. K. Jones)}
+\optdef{b}{nm-revv1}{First name reversed, with full names}%
+   {(Smith, John Fred, Harry Kab Jones)}
+\getans
+\endoptiongroup
+\mytempfalse
+\if\ans f\mytemptrue\fi
+\if\ans r\mytemptrue\fi
+\if\ans s\mytemptrue\fi
+\if\ans x\mytemptrue\fi
+\if\ans y\mytemptrue\fi
+\if\ans a\mytemptrue\fi
+\if\ans b\mytemptrue\fi
+\beginoptiongroup{EDITOR NAMES IN COLLECTIONS
+ (if author names reversed)}
+ {\ifmytemp*\fi}
+\if\ans r
+\optdef{*}{}{Editor names NOT reversed}{as edited by J. J. Smith}
+\fi
+\if\ans s
+\optdef{*}{}{Editor names NOT reversed}{as edited by J J Smith}
+\fi
+\if\ans a
+\optdef{*}{}{Editor names NOT reversed}{as edited by J. J. Smith}
+\fi
+\if\ans x
+\optdef{*}{}{Editor names NOT reversed}{as edited by JJ Smith}
+\fi
+\if\ans f
+\optdef{*}{}{Editor names NOT reversed}{as edited by John James Smith}
+\fi
+\if\ans y
+\optdef{*}{}{Editor names NOT reversed}{as edited by J.J. Smith}
+\fi
+\if\ans b
+\optdef{*}{}{Editor names NOT reversed}{as edited by John James Smith}
+\fi
+\optdef{r}{ed-rev}{Editor names reversed}{just like authors'}
+\getans
+\beginoptiongroup{POSITION OF JUNIOR
+  (if author names reversed)}
+  {}
+\optdef{*}{jnrlst}{Junior comes last}{as Smith, John, Jr.}
+\optdef{m}{}{Junior between}{as Smith, Jr., John}
+\getans
+\endoptiongroup
+\endoptiongroup
+
+\beginoptiongroup{JUNIOR PART IN THE CITATION
+ (if author-year citations)}
+ {\ifnumerical\else*\fi}%
+\optdef{*}{}{No `junior' part in the citations}{but in the ref listing}
+\optdef{j}{jnrlab}{`Junior' in citations}{as well as in ref listing}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{PUNCTUATION BETWEEN AUTHOR NAMES:}{}
+\optdef{*}{}{Author names separated by commas}{}
+\optdef{s}{aunm-semi}{Names separated by semi-colon}{}
+\optdef{h}{aunm-sl}{Names separated by slash}{/}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{ADJACENT REFERENCES WITH REPEATED NAMES:}{}
+\optdef{*}{}{Author/editor names always present}{}
+\optdef{d}{nmdash}{Repeated author/editor names replaced by dash}{}
+\optdef{2}{nmdash,nmd-2}{Repeated author/editor names replaced by 2 dashes}{}
+\optdef{3}{nmdash,nmd-3}{Repeated author/editor names replaced by 3 dashes}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Number of authors}
+% Normally the complete list of authors as given in the \texttt{.bib} file is
+% presented in the reference list. However, some journals prefer to limit
+% them to a maximum. If there are more than this maximum number of author
+% names, then a minimum number plus \textsl{et al.} are listed.
+%
+% Because no test for consistency of the numbers is carried out in the
+% \texttt{.bst} file itself (it might be possible, but I found it too complex),
+% this is done here.
+%    \begin{macrocode}
+\beginoptiongroup{NUMBER OF AUTHORS IN BIBLIOGRAPHY:}{}
+\optdef{*}{}{All authors}{included in listing}
+\optdef{l}{nmlm}{Limited authors}{(et al replaces missing names)}
+\getans
+\endoptiongroup
+\if\ans l
+\loop
+  \ask{\num}{Maximum number of authors (1-99)}
+  \ifnum\num>99\relax
+  \mes{*** Must be between 1 and 99}
+\repeat
+\def\parsenum#1#2{\if#2\relax\wr{\spsp\spsp x#1,\pc: Maximum of #1\space authors}
+  \else\wr{\spsp\spsp x#10,x#2,\pc: Maximum of #1#2\space authors}\fi}
+\expandafter\parsenum\num\relax
+\mes{\spsp You have selected maximum \num\space authors}
+\edef\numx{\num}
+\loop
+  \ask{\num}{Minimum number (before et al given) (1-\numx)}
+  \ifnum\num>\numx
+  \mes{*** Must be between 1 and \numx}
+\repeat
+\def\parsenum#1#2{\if#2\relax\wr{\spsp\spsp m#1,\pc: Minimum of #1\space authors}
+  \else\wr{\spsp\spsp m#10,m#2,\pc: Minimum of #1#2\space authors}\fi}
+\expandafter\parsenum\num\relax
+\mes{\spsp You have selected minimum \num\space authors}
+\fi
+
+%    \end{macrocode}
+%
+% Something that I finally added after being asked many times, is to allow for
+% more than one name in the citation before inserting \textsl{et~al.}
+% to allow more than 2 authors before truncating
+%    \begin{macrocode}
+\beginoptiongroup{AUTHORS IN CITATIONS:}{}
+\optdef{*}{}{One author et al}{for three or more authors}
+\optdef{m}{mcite}{Some other truncation scheme}{}
+\getans
+\endoptiongroup
+\mytempfalse
+\if\ans m\mytemptrue\fi
+\beginoptiongroup{MAX AUTHORS BEFORE ET AL:
+ (if regular cite not selected)}
+ {\ifmytemp*\fi}%
+\optdef{*}{mct-1}{One et al}{}
+\optdef{2}{mct-2}{One, Two et al}{}
+\optdef{3}{mct-3}{One, Two, Three et al}{}
+\optdef{4}{mct-4}{One, Two, Three, Four et al}{}
+\optdef{5}{mct-5}{One, Two, Three, Four, Five et al}{}
+\optdef{6}{mct-6}{One, Two, Three, Four, Five, Six et al}{}
+\getans
+\endoptiongroup
+\beginoptiongroup{MAX AUTHORS WITHOUT ET AL:
+ (if regular cite not selected)}
+ {\ifmytemp*\fi}%
+\optdef{*}{mct-x2}{Two authors without truncating}{}
+\optdef{3}{mct-x3}{Three authors}{without truncating}
+\optdef{4}{mct-x4}{Four authors}{without truncating}
+\optdef{5}{mct-x5}{Five authors}{without truncating}
+\optdef{6}{mct-x6}{Six authors}{without truncating}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Typeface of names}
+% The author names in the list of references normally appear in the current
+% typeface. This may be changed to small caps, bold, or italics.
+%
+% Alternatively, the surnames only can be formatted, with the first names in the
+% regular font. One can also specify that the words `and' and `et~al.'\ should be
+% in the regular font, or that `et~al.'\ be italic.
+%
+% Another possibility is that the names be put into a command |\bibnamefont{..}|,
+% which must be defined in the \LaTeX\ document. By default, this command does
+% not format its argument. There is also a |\bibfnamefont| command for the first
+% names, to be user-defined.
+%
+% Editor names in a collection or in a book will not normally have these
+% fonts applied to them; this may be additionally selected.
+%
+%    \begin{macrocode}
+\beginoptiongroup{TYPEFACE FOR AUTHORS IN LIST OF REFERENCES:}{}
+\optdef{*}{}{Normal font for author names}{}
+\optdef{s}{nmft,nmft-sc}{Small caps authors}{(\string\sc)}
+\optdef{i}{nmft,nmft-it}{Italic authors}{(\string\it\space or \string\em)}
+\optdef{b}{nmft,nmft-bf}{Bold authors}{(\string\bf)}
+\optdef{u}{nmft,nmft-def}{User defined author font}{(\string\bibnamefont)}
+\getans
+\endoptiongroup
+\mytempfalse
+\if\ans i\mytemptrue\fi
+\if\ans s\mytemptrue\fi
+\if\ans b\mytemptrue\fi
+\if\ans u\mytemptrue\fi
+\beginoptiongroup{FONT FOR FIRST NAMES
+ (if non-default font for authors)}
+ {\ifmytemp*\fi}%
+\optdef{*}{}{First names same font as surnames}{}
+\optdef{r}{fnm-rm}{First names in normal font}{}
+\optdef{u}{fnm-def}{First names in user defined font}{(\string\bibfnamefont)}
+\getans
+\beginoptiongroup{EDITOR NAMES IN INCOLLECTION ETC:}{}
+\optdef{*}{}{Editors incollection normal font}{}
+\optdef{a}{nmfted}{Editors incollection like authors}{font}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{FONT FOR `AND' IN LIST:}{}
+\optdef{*}{}{`And' in author font}{(JONES AND JAMES)}
+\optdef{r}{nmand-rm}{`And' in normal font}{(JONES and JAMES)}
+\getans
+\endoptiongroup
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Names in Citation label}
+% This applies to author--year style only. The label is the text written
+% by the |\cite| command, and for author--year style, this is something like
+% `Daly et al.\ (1990b)'. One may select italics for the authors and for the
+% extra label attached to the year. The year always remains plain.
+%
+% This parallels the font selection for the names in the list of references
+% except that there no choice for the first names, since only surnames
+% are used in the labels. A user-defined |\citefontname| may also
+% be selected, but this \emph{must} be defined by the user since there
+% will be no default definition for it.
+%
+% If a font is selected for the cited authors, then the word `and' may be
+% optionally put in the normal font.
+%
+% It is not possible to select the type of brackets for the year, since
+% this is determined by the \LaTeX{} style option that manages the
+% author--year citations. This is not standard \LaTeX, so that there are a
+% number of private style files for achieving this.
+%    \begin{macrocode}
+\beginoptiongroup{FONT OF CITATION LABELS IN TEXT
+ (if author-year citations)}
+ {\ifnumerical\else*\fi}%
+\optdef{*}{}{Cited authors plain}{as result of \string\cite\space command}
+\optdef{i}{lab,lab-it}{Cited authors italic}{}
+\optdef{s}{lab,lab-sc}{Cited authors small caps}{}
+\optdef{b}{lab,lab-bf}{Cited authors bold}{}
+\optdef{u}{lab,lab-def}{User defined citation font}{(\string\citenamefont)}
+\getans
+
+\mytempfalse
+\if\ans i\mytemptrue\fi
+\if\ans s\mytemptrue\fi
+\if\ans b\mytemptrue\fi
+\if\ans u\mytemptrue\fi
+\beginoptiongroup{FONT FOR `AND' IN CITATIONS
+ (if non-default font for citation lables)}
+ {\ifmytemp*\fi}%
+\optdef{*}{}{Cited `and' in author font}{}
+\optdef{r}{and-rm}{Cited `and' in normal font}{}
+\getans
+\endoptiongroup
+\beginoptiongroup{FONT OF EXTRA LABEL
+ (The extra letter on the year)}{}
+\optdef{*}{}{Extra label plain}{}
+\optdef{i}{xlab-it}{Extra label italic}{}
+\getans
+\endoptiongroup
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Label for missing author names}
+%
+% If the author and/or editor is missing, the standard \texttt{.bst} files
+% use the \texttt{key} field in place of the names for purposes of ordering the
+% entries.
+%
+% For author--year styles, the \texttt{key} field is even inserted in the
+% reference list and in the label in place of the authors. Optionally, one can
+% suppress the year in this case, which causes \texttt{natbib} (version~7)
+% to print only that key text as a code designation for the work. Thus if
+% \texttt{KEY = "CS1-345"} and there are no authors, then |\citep| produces
+% (CS1-345) and |\citet| simply CS1-345. That is, they behave like
+% |\citeauthor|. If \texttt{natbib} did not recognize the blank year, one would
+% get (CS1-345, ) and CS1-345 (). (Earlier versions of \texttt{natbib} crash on
+% a blank year.)
+%    \begin{macrocode}
+\beginoptiongroup{LABEL WHEN AUTHORS MISSING
+ (if author-year citations)}
+ {\ifnumerical\else*\fi}%
+\optdef{*}{keyxyr}{Year blank when KEY replaces missing author}{(for natbib 7.0)}
+\optdef{y}{}{Year included when KEY replaces missing author}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Missing date}
+% A missing date can be set to ???? or simply left blank. In the latter case,
+% \texttt{natbib} version~7 will print only the authors without any year
+% punctuation or brackets.
+%
+%    \begin{macrocode}
+\beginoptiongroup{MISSING DATE
+ (if author-year citations)}
+ {\ifnumerical\else*\fi}%
+\optdef{*}{}{Missing date set to ????}{in label and text}
+\optdef{b}{blkyear}{Missing date left blank}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Position of date}
+% This applies to author--year style only. It makes sense to put the date
+% immediately after the author list, since the two items (author and year)
+% are the identifiers of the reference. Default position is at the
+% end of the references, before any notes. It is also possible to place
+% it even after the notes.
+%
+% Medical journals have a system where the date is part of the journal
+% specification, as Lancet 1994;45(2):34--40. Otherwise the date appears at
+% the end.
+%    \begin{macrocode}
+\beginoptiongroup{DATE POSITION:}{}
+\optdef{*}{}{Date at end}{}
+\optdef{b}{dt-beg}{Date after authors}{}
+\optdef{j}{dt-jnl}{Date part of journal spec.}{(as 1994;45:34-40) else at end}
+\optdef{e}{dt-end}{Date at very end}{after any notes}
+\getans
+\endoptiongroup
+\if\ans b\mytemptrue\else\if\ans j\mytemptrue\else\mytempfalse\fi\fi
+%    \end{macrocode}
+%
+% \subsection*{Format of date}
+% The year may be enclosed in parentheses, brackets, or preceded by a
+% colon. If none of these are selected, the date (month plus year) appears.
+% For author--year, the date normally consists only of the year, no month,
+% but this may be overridden.
+%
+% If the date comes just after the authors, then one might want special
+% punctuation following it, like a colon, or space only. The latter is
+% probably desirable if the date is brackets or parentheses.
+%
+% The date can even be put into bold face.
+%    \begin{macrocode}
+\beginoptiongroup{DATE FORMAT
+ (if non author-year citations)}
+ {\ifnumerical*\fi}%
+\optdef{*}{}{Plain month and year}{without any brackets}
+\optdef{p}{yr-par}{Date in parentheses}{as (May 1993)}
+\optdef{b}{yr-brk}{Date in brackets}{as [May 1993]}
+\optdef{c}{yr-col}{Date preceded by colon}{as `: May 1993'}
+\optdef{d}{yr-per}{Date preceded by period}{as `. May 1993'}
+\optdef{m}{yr-com}{Date preceded by comma}{as `, May 1993'}
+\optdef{s}{yr-blk}{Date preceded by space}{only, as ` May 1993'}
+\getans
+\beginoptiongroup{SUPPRESS MONTH:}{}
+\optdef{*}{}{Date is month and year}{}
+\optdef{x}{xmth}{Date is year only}{}
+\getans
+\endoptiongroup
+\beginoptiongroup{REVERSED DATE
+ (if including month)}
+ {\if\ans x\else*\fi}%
+\optdef{*}{}{Date as month year}{}
+\optdef{r}{dtrev}{Date as year month}{}
+\getans
+\endoptiongroup
+\endoptiongroup
+
+\beginoptiongroup{DATE FORMAT
+ (if author-year citations)}
+ {\ifnumerical\else*\fi}%
+\optdef{*}{}{Year plain}{without any brackets}
+\optdef{p}{yr-par}{Year in parentheses}{as (1993)}
+\optdef{b}{yr-brk}{Year in brackets}{as [1993]}
+\optdef{c}{yr-col}{Year preceded by colon}{as `: 1993'}
+\optdef{d}{yr-per}{Year preceded by period}{as `. 1993'}
+\optdef{m}{yr-com}{Date preceded by comma}{as `, 1993'}
+\optdef{s}{yr-blk}{Year preceded by space}{only, as ` 1993'}
+\getans
+\beginoptiongroup{INCLUDE MONTHS:}{}
+\optdef{*}{}{Date is year only}{without the month}
+\optdef{m}{aymth}{Include month in date}{}
+\getans
+\endoptiongroup
+\beginoptiongroup{REVERSED DATE
+ (if including month)}
+ {\if\ans m*\fi}%
+\optdef{*}{}{Date as month year}{}
+\optdef{r}{dtrev}{Date as year month}{}
+\getans
+\endoptiongroup
+\endoptiongroup
+
+\beginoptiongroup{DATE PUNCTUATION
+ (if date not at end)}
+ {\ifmytemp*\fi}%
+\optdef{*}{}{Date with standard block punctuation}{(comma or period)}
+\optdef{c}{yrp-col}{Colon after date}{as 1994:}
+\optdef{s}{yrp-semi}{Semi-colon after date}{as 1994;}
+\optdef{p}{yrp-per}{Period after date}{even when blocks use commas}
+\optdef{x}{yrp-x}{No punct. after date}{}
+\getans
+\beginoptiongroup{BLANK AFTER DATE:}{}
+\optdef{*}{}{Space after date}{and punctuation}
+\optdef{x}{yrpp-xsp}{No space after date}{as 1994:45}
+\getans
+\endoptiongroup
+\endoptiongroup
+\beginoptiongroup{DATE FONT:}{}
+\optdef{*}{}{Date in normal font}{}
+\optdef{b}{dtbf}{Date in bold face}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% Normally in author--year citations, the \texttt{year} entry is truncated
+% to the last 4 characters, which should be the 4 digits of the year. Some
+% users have requested the possibility of suppressing this truncation so
+% that they may put text in the \texttt{year} field, such as ``in press.''
+% Another use for it is when years are given as ``1968--72''. Actually,
+% I have no idea why the year should be truncated at all.
+%    \begin{macrocode}
+\beginoptiongroup{TRUNCATE YEAR
+ (if author-year citations)}
+ {\ifnumerical\else*\fi}%
+\optdef{*}{note-yr}{Year text full}{as 1990--1993 or `in press'}
+\optdef{t}{}{Year truncated}{to last 4 digits}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Article title in journal}
+% The title of an article in a journal or in a collection (a book, or
+% conference proceedings) may appear plain, in italics, within single
+% or double quotes or even in guillemets. The last is best with T1 coding; a
+% poor man's version for OT1 is provided; \LaTeXe\ is required in both cases.
+%
+% Furthermore, it may have sentence capitalization (first
+% word and word following colon) or be capitalized as in the \texttt{.bib} file
+% entry. That is why it is recommended to capitalize the entry text as it
+% should appear when fully capitalized, putting words that are always
+% capitalized in braces. Example:
+% \begin{quote}
+% |TITLE="The Results of the {Giotto} Mission"|
+% \end{quote}
+% which produces either ``The results of the Giotto mission'' or ``The
+% Results of the Giotto Mission'', depending on option.
+%
+% Additionally, the article titles may be fully suppressed.
+%    \begin{macrocode}
+\beginoptiongroup{TITLE OF ARTICLE:}{}
+\optdef{*}{}{Title plain}{with no special font}
+\optdef{i}{tit-it}{Title italic}{(\string\em)}
+\optdef{q}{tit-qq,qt-s}{Title and punctuation in single quotes}{(`Title,' ..)}
+\optdef{d}{tit-qq}{Title and punctuation in double quotes}{(``Title,'' ..)}
+\optdef{g}{tit-qq,qt-g}{Title and punctuation in guillemets}{(<<Title,>> ..)}
+\optdef{x}{tit-qq,qt-s,qx}{Title in single quotes}{(`Title', ..)}
+\optdef{y}{tit-qq,qx}{Title in double quotes}{(``Title'', ..)}
+\optdef{z}{tit-qq,qt-g,qx}{Title in guillemets}{(<<Title>>, ..)}
+\getans
+\endoptiongroup
+\mytempfalse
+\if\ans q\mytemptrue\fi
+\if\ans d\mytemptrue\fi
+\if\ans g\mytemptrue\fi
+\if\ans x\mytemptrue\fi
+\if\ans y\mytemptrue\fi
+\if\ans z\mytemptrue\fi
+\beginoptiongroup{COLLECTION/PROCEEDINGS TITLES
+ (if quoted title)}
+ {\ifmytemp*\fi}%
+\optdef{*}{bt-qq}{Quote collection and proceedings titles}{too}
+\optdef{x}{}{Collection and proceedings titles not in quotes}{}
+\getans
+\endoptiongroup
+\beginoptiongroup{CAPITALIZATION OF ARTICLE TITLE:}{}
+\optdef{*}{}{Sentence style}{(capitalize first word and those in braces)}
+\optdef{t}{atit-u}{Title style}{(just as in bib entry)}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{ARTICLE TITLE PRESENT:}{}
+\optdef{*}{}{Article title present}{in journals and proceedings}
+\optdef{x}{jtit-x}{No article title}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Journal names}
+% Abbreviated journal names normally contain periods; the periods may be
+% removed with this option. In fact, only letters, numbers, and spacing are
+% retained.
+%    \begin{macrocode}
+\beginoptiongroup{JOURNAL NAMES:}{}
+\optdef{*}{}{Periods in journal names}{are retained, as `Phys. Rev.'}
+\optdef{x}{jxper}{Dotless journal names}{as `Phys Rev'}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+% Journal name is normally printed in italics; can be left in normal font.
+%    \begin{macrocode}
+\beginoptiongroup{JOURNAL NAME FONT:}{}
+\optdef{*}{}{Journal name italics}{}
+\optdef{r}{jttl-rm}{Journal name normal}{font}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Title of Theses and Technical Reports}
+% The title of a these (PhD or Master's) is normally treated the same
+% as that of a book. Optionally, it may be formatted like that of
+% an article.
+%
+% The title of a technical report is normally treated the same as that
+% of an article. Optionally, it may be formatted like that of a book.
+%
+%    \begin{macrocode}
+\beginoptiongroup{THESIS TITLE:}{}
+\optdef{*}{}{Thesis titles like books}{}
+\optdef{a}{thtit-a}{Thesis title like article}{}
+\optdef{x}{thtit-x}{No thesis title}{}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{TECHNICAL REPORT TITLE:}{}
+\optdef{*}{}{Tech. report title like articles}{}
+\optdef{b}{trtit-b}{Tech. report title like books}{}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{TECHNICAL REPORT NUMBER:}{}
+\optdef{*}{}{Tech. report and number plain}{as `Tech. Rep. 123'}
+\optdef{i}{trnum-it}{Tech. report and number italic}%
+      {as `{\string\it\space Tech. Rep. 123'}}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Journal reference}
+% Great diversity of opinion exists as to how a journal reference is to be
+% formatted. It consists of a volume, possibly a number, and page limits.
+% The number is really only necessary if the page numbers within one volume
+% start at 1 for each physical `number'. Since journals are often bound
+% together in one volume later, it makes more sense to number the pages
+% continuously through the whole volume.
+%
+% I am only aware of one journal that used to reset the pagination for each
+% `number', in which case the number was part of the page designation.
+% I had erroneously provided an option \texttt{vnum-pg} to achieve this, but I
+% now realize that instead, for this one journal, the database entries must
+% contain \texttt{pages="(2)33--2(55)"}. This option has been removed at
+% version 3.84.
+%
+% A number of styles for journal specifications are
+% \begin{quote}
+%   \begin{tabular}{l@{\qquad}l}
+% 21(2):33--55             & 21, no.\ 2: 33--55\\
+% \textbf{21}(2):33--55    & \textbf{21}, \#2, 33--55\\
+% \textit{21}(2), 33--55   & \textit{21} (2); 33--55 \\
+% 21(2) (1995) 33--55      & 21(1995), 33-55\\
+% 21(2) 33--55             & vol.~21 (2), pp.~33--55
+%   \end{tabular}
+% \end{quote}
+%
+% Here both start and stop page numbers have been given; often only the
+% start page is wanted.
+%
+% It is also possible to include the year as part of the journal specification,
+% in which case the year is always in parentheses, attached snugly or with space
+% to the volume, or preceding the pages.
+%
+%    \begin{macrocode}
+\beginoptiongroup{JOURNAL VOLUME:}{}
+\optdef{*}{}{Volume plain}{as vol(num)}
+\optdef{i}{vol-it}{Volume italic}{as {\string\em\space vol}(num)}
+\optdef{b}{vol-bf}{Volume bold}{as {\string\bf\space vol}(num)}
+\optdef{d}{vol-2bf}{Volume and number bold}{as {\string\bf\space vol(num)}}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% The form of the `number' is also given: in parentheses, with `no.',
+% with \#, or omitted. The \texttt{vnum-b} option is meant to be used
+% with \texttt{jdt-v} and \texttt{jdt-vs} but could be used alone.
+%    \begin{macrocode}
+\beginoptiongroup{JOURNAL VOL AND NUMBER:}{}
+\optdef{*}{}{Journal vol(num)}{as 34(2)}
+\optdef{s}{vnum-sp}{Journal vol (num)}{as 34 (2)}
+\optdef{c}{vnum-cm}{Journal vol, num}{as 34, 2}
+\optdef{n}{vnum-nr}{Journal vol, no. num}{as 34, no. 2}
+\optdef{h}{vnum-h}{Journal vol, \string\# number}{as 34, \string\#2}
+\optdef{b}{vnum-b}{Journal vol number}{as 34 2}
+\optdef{x}{vnum-x}{Journal vol, without number}{as 34}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{VOLUME PUNCTUATION:}{}
+\optdef{*}{}{Volume with colon}{as vol(num):ppp}
+\optdef{s}{volp-sp}{Volume with colon and space}{as vol(num): ppp}
+\optdef{h}{volp-semi}{Volume with semi-colon}{as vol(num); ppp}
+\optdef{c}{volp-com}{Volume with comma}{as vol(num), ppp}
+\optdef{b}{volp-blk}{Volume with blank}{as vol(num) ppp}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{YEAR IN JOURNAL SPECIFICATION:}{}
+\optdef{*}{}{Journal year like others}{as given by date position}
+\optdef{v}{jdt-v}{Journal vol(year)}{as 34(1995)}
+\optdef{s}{jdt-vs}{Journal vol (year)}{as 34 (1995)}
+\optdef{p}{jdt-p}{Year with pages}{as 34(2), (1995) 1345--1387}
+\optdef{c}{jdt-pc}{Year, comma, pages}{as 34(2), (1995), 1345--1387}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{PAGE NUMBERS:}{}
+\optdef{*}{}{Start and stop page numbers}{given}
+\optdef{f}{jpg-1}{Only start page number}{}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{LARGE PAGE NUMBERS:}{}
+\optdef{*}{}{No separators for large page numbers}{}
+\optdef{c}{pgsep-c}{Comma inserted over 9999}{as 11,234}
+\optdef{s}{pgsep-s}{Thin space inserted over 9999}{as 11 234}
+\optdef{p}{pgsep-p}{Period inserted over 9999}{as 11.234}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{WORD `PAGE' IN ARTICLES:}{}
+\optdef{*}{}{Article pages numbers only}{as 234-256}
+\optdef{p}{jwdpg}{Include `page' in articles}{as pp. 234--256}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% Some journals want page numbers at the end, even for books, proceedings, as
+% well as for journals.
+%    \begin{macrocode}
+\beginoptiongroup{POSITION OF PAGES:}{}
+\optdef{*}{}{Pages given mid text}{as is normal}
+\optdef{e}{pp-last}{Pages at end}{but before any notes}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{WORD `VOLUME' IN ARTICLES:}{}
+\optdef{*}{}{Article volume as number only}{as 21}
+\optdef{p}{jwdvol}{Include `volume' in articles}{as vol. 21}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% Fiddle with the format and location of the number/series for collections and
+% inproceedings.
+%    \begin{macrocode}
+\beginoptiongroup{NUMBER AND SERIES FOR COLLECTIONS:}{}
+\optdef{*}{num-xser}{Allows number without series}{and suppresses word "number"}
+\optdef{s}{}{Standard BibTeX}{as: "number 123 in Total Works"; error if number and no series}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{POSITION OF NUMBER AND SERIES:}{}
+\optdef{*}{}{After chapter and pages}{as in standard BibTeX}
+\optdef{t}{numser}{Just before publisher}{or organization}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% Fiddle with the format and location of series and volume with books and collections.
+%    \begin{macrocode}
+\beginoptiongroup{VOLUME AND SERIES FOR BOOKS/COLLECTIONS:}{}
+\optdef{*}{}{Vol. 23 of Series}{as in standard BibTeX}
+\optdef{s}{ser-vol}{Series, vol. 23}{}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{POSITION OF VOLUME AND SERIES FOR INCOLLECTIONS:}{}
+\optdef{*}{}{Series and volume after the editors}{}
+\optdef{e}{ser-ed}{Series and volume after booktitle}{and before editors}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% It is possible to decide whether the journal name should be
+% separated from the following specifications with a blank or comma.
+%    \begin{macrocode}
+\beginoptiongroup{JOURNAL NAME PUNCTUATION:}{}
+\optdef{*}{}{Comma after journal}{name}
+\optdef{x}{jnm-x}{Space after journal}{name}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Books}
+% The title of a book (as opposed to an article in a book or journal) is
+% normally italicized. This may be set to the regular font.
+%
+% The page numbers in books may be set in parentheses, as (pp.\ 345--350).
+%    \begin{macrocode}
+\beginoptiongroup{BOOK TITLE:}{}
+\optdef{*}{}{Book title italic}{(\string\em)}
+\optdef{p}{btit-rm,bt-rm}{Book title plain}{(no font command)}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{PAGES IN BOOKS:}{}
+\optdef{*}{}{Pages in book plain}{as pp. 50-55}
+\optdef{p}{bkpg-par}{Pages in book in parentheses}{as (pp. 50-55)}
+\optdef{x}{bkpg-x}{Pages in book bare}{as 50-55}
+\getans
+\endoptiongroup
+\beginoptiongroup{TOTAL PAGES OF A BOOK:}{}
+\optdef{*}{}{Total book pages not printed}{}
+\optdef{p}{pg-bk}{For book: 345 pages}{or pp.}
+\optdef{a}{pg-bk,pg-pre}{Total book pages before publisher}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+% Some psychology journals wish to have the publisher's address preceding
+% the name, separated by colon, as
+% \begin{quote}New York: Wiley and Sons\end{quote}
+%
+% Some journals (e.g.\ Nature) put publisher in parentheses with date,
+% as (Wiley and Sons, New York, 1983). These normally put the date in
+% parentheses at the end anyway, so this is a merging of the two sets of
+% parentheses.
+%    \begin{macrocode}
+\beginoptiongroup{PUBLISHER ADDRESS:}{}
+\optdef{*}{}{Publisher, address}{as Harcourt, New York}
+\optdef{a}{add-pub}{Address: Publisher}{as New York: Harcourt}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{PUBLISHER IN PARENTHESES:}{}
+\optdef{*}{}{Publisher as normal block}{without parentheses}
+\optdef{p}{pub-par}{Publisher in parentheses}{}
+\optdef{d}{pub-date}{Publisher and date in parentheses}{(Oxford, 1994)}
+\optdef{c}{pub-date,pub-xc}{Publisher and date in parentheses, no comma}{(Oxford 1994)}
+\optdef{f}{pub-date,pub-xpar}{Publisher and date without parentheses}{Oxford, 1994}
+\optdef{k}{pub-date,pub-xpar,pub-xc}{Publisher and date, no parentheses, no comma}{Oxford 1994}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{PUBLISHER POSITION:}{}
+\optdef{*}{}{Publisher after chapter, pages}{}
+\optdef{p}{pre-pub}{Publisher before chapter, pages}{}
+\optdef{e}{pre-edn}{Publisher after edition}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{ISBN, ISSN, DOI numbers}
+% Books normally possess an ISBN number. This may be included as an
+% optional entry for \texttt{book}, \texttt{inbook}, \texttt{booklet},
+% \texttt{incollection}, \texttt{proceedings}, \texttt{inproceedings}.
+% However, it should be suppressed for \texttt{inbook} etc.\ when
+% there is a crossref to another book with the ISBN number.
+%
+% Periodicals contain an ISSN number. Add this to \texttt{article}, or
+% course, but also to \texttt{inproceedings} and \texttt{proceedings}, since
+% they are sometimes printed in a periodical.
+%
+% Journal articles that appear online are given a DOI number, something more
+% robust than a URL that can change as machines are upgraded.
+% The American Geophysical Union (AGU) uses the DOI as part of the
+% page number substitution for electronic journals, placing the number
+% where the pages would normally appear.
+%    \begin{macrocode}
+\beginoptiongroup{ISBN NUMBER:}{}
+\optdef{*}{isbn}{Include ISBN}{for books, booklets, etc.}
+\optdef{x}{}{No ISBN}{}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{ISSN NUMBER:}{}
+\optdef{*}{issn}{Include ISSN}{for periodicals}
+\optdef{x}{}{No ISSN}{}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{DOI NUMBER:}{}
+\optdef{*}{doi}{Include DOI}{as "doi: number"}
+\optdef{u}{url-doi}{Format DOI as URL //doi.org/doi}{(must give url options!)}
+\optdef{a}{agu-doi,doi}{Insert DOI AGU style}{as part of page number}
+\optdef{x}{}{No DOI}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Editor of book without author}
+%
+% This is normally
+% \begin{quote}
+%  J. K. James, editor
+% \end{quote}
+% but may also be
+% \begin{quote}
+%  J. K. James, (editor)\\
+%  J. K. James (editor),
+% \end{quote}
+% Alternatively, the word \textsl{editor} may be capitalized and/or
+% abbreviated.
+%
+%    \begin{macrocode}
+\beginoptiongroup{`EDITOR' AFTER NAMES (EDITED BOOKS WITHOUT AUTHORS):}{}
+\optdef{*}{}{Word `editor' after name}{}
+\optdef{a}{edpar}{`Name (editor),'}{in parentheses, after name, comma after}
+\optdef{b}{edpar,bkedcap}{`Name (Editor),'}{as above, editor upper case}
+\optdef{c}{edparc}{`Name, (editor)'}{in parentheses, after name, comma between}
+\optdef{d}{edparc,bkedcap}{`Name, (Editor)'}{as above, editor upper case}
+\optdef{e}{edparxc}{`Name (editor)'}{in parentheses, after name, no commas}
+\optdef{f}{edparxc,bkedcap}{`Name (Editor)'}{as above, editor upper case}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Edited by}
+% For an article within an edited collection, the normal form is
+% \begin{quote}
+% In J. K. James, editor, \emph{Title of Collection} \dots
+% \end{quote}
+% Alternative forms are
+% \begin{quote}
+% In J. K. James (editor), \emph{Title} \dots\\
+% In \emph{Title}, edited by J. K. James \dots\\
+% In \emph{Title} (Edited by J. K. James) \dots
+% \end{quote}
+% If none of the \texttt{edby} variations is used, then the same system is
+% used as for edited books, i.e. \texttt{edpar} applies.
+%    \begin{macrocode}
+\beginoptiongroup{EDITOR IN COLLECTIONS:}{}
+\optdef{*}{}{Same as for edited book}{(names before booktitle)}
+\optdef{b}{edby}{In booktitle, edited by .. }{(where .. is names)}
+\optdef{p}{edby-par}{In booktitle (edited by ..)}{}
+\optdef{c}{edby-parc}{In booktitle, (edited by ..)}{}
+\optdef{e}{edby,edbyx}{In booktitle, editor ..}{}
+\optdef{f}{edby,edbyw}{In booktitle, (editor) ..}{}
+\optdef{k}{edby-par,edbyx}{In booktitle (editor..)}{}
+\optdef{g}{edby-parc,edbyx}{In booktitle, (editor..)}{}
+\optdef{j}{edby,edbyy}{In booktitle, .., editor}{}
+\optdef{m}{edby-par,edbyy}{In booktitle (.., editor)}{}
+\getans
+\endoptiongroup
+\mytempfalse
+\if\ans p\mytemptrue\fi
+\if\ans k\mytemptrue\fi
+\if\ans c\mytemptrue\fi
+\if\ans f\mytemptrue\fi
+\beginoptiongroup{CAPITALIZE `EDITOR' OR `EDITED BY'
+ (if editor capitalizable)}
+ {\ifmytemp*\fi}%
+\optdef{*}{}{`(editor,..)' or `(edited by..)'}{in lower case}
+\optdef{c}{edcap}{`(Editor,..)' or `(Edited by..)'}{in upper case}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Block punctuation}
+% Blocks are logical sections of the reference specification, such as the
+% author block, the journal block, editor block, etc. These are normally
+% separated by periods, but alternatively a comma may be used. Another
+% choice is to use commas except after titles where a period is given.
+%
+% \LaTeX\ offers an \texttt{openbib} option, which means that the blocks
+% are not only new sentences, but new lines as well. This can only
+% function when the default option here is taken, for then the command
+% |\newblock| is placed between the blocks. This command is normally
+% defined to do nothing, but \LaTeX\ redefines it to issue a new line
+% when open bibliographies are wanted.
+%    \begin{macrocode}
+\beginoptiongroup{PUNCTUATION BETWEEN SECTIONS (BLOCKS):}{}
+\optdef{*}{}{\string\newblock\space after blocks}
+   {(periods or new lines with openbib option)}
+\optdef{c}{blk-com}{Comma between blocks}{}
+\optdef{s}{blk-com,com-semi}{Semi-colon between blocks}{}
+\optdef{b}{blk-com,com-blank}{Blanks between blocks}{}
+\optdef{t}{blk-tit}{Period after titles of articles, books, etc}{else commas}
+\optdef{u}{blk-tit,tit-col}{Colon after titles of articles, books, etc}{else commas}
+\optdef{a}{blk-tita}{Period after titles of articles}{else commas}
+\optdef{d}{blk-tita,tit-col}{Colon after titles of articles}{else commas}
+\getans
+\endoptiongroup
+\mytempfalse
+\if\ans c\mytemptrue\fi
+\if\ans s\mytemptrue\fi
+\if\ans b\mytemptrue\fi
+\if\ans t\mytemptrue\fi
+\if\ans a\mytemptrue\fi
+\beginoptiongroup{PUNCTUATION BEFORE NOTES
+ (if not using \string\newblock)}
+ {\ifmytemp*\fi}%
+\optdef{*}{}{Notes have regular punctuation}{like all other blocks}
+\optdef{p}{blknt}{Notes preceded by period}{}
+\getans
+\endoptiongroup
+\beginoptiongroup{PUNCTUATION AFTER AUTHORS:}{}
+\optdef{*}{}{Author block normal}{with regular block punctuation}
+\optdef{c}{au-col}{Author block with colon}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{\textsl{In} with colon}
+% When referring to works in a collection, one begins the block describing
+% that collection with \textsl{In}. Optionally, one may add a colon.
+%    \begin{macrocode}
+\beginoptiongroup{PUNCTUATION AFTER `IN':}{}
+\optdef{*}{}{Space after `in'}{for incollection or inproceedings}
+\optdef{c}{in-col}{Colon after `in'}{(as `In: ...')}
+\optdef{i}{in-it}{Italic `in'}{and space}
+\optdef{d}{in-col,in-it}{Italic `in' and colon}{}
+\optdef{x}{in-x}{No word `in'}{for edited works}
+\getans
+\endoptiongroup
+\beginoptiongroup{`IN' WITH JOURNAL NAMES
+ (if using 'in' with collections)}
+ {\if\ans x\else*\fi}
+\optdef{*}{}{No `in' before journal name}{}
+\optdef{i}{injnl}{Add `in' before journal name}{in style for incollection}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Final punctuation}
+% The punctuation at the end of the reference is normally a period. This
+% may be suppressed.
+%    \begin{macrocode}
+\beginoptiongroup{FINAL PUNCTUATION:}{}
+\optdef{*}{}{Period at very end}{of the listed reference}
+\optdef{x}{fin-bare}{No period at end}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Abbreviations}
+% A number of words may be abbreviated: pages, editors, volume, chapter,
+% and so on. The first two may be independently set to abbreviation, the
+% rest with a single option.
+%
+% Additionally, the edition numbers may be
+% output as words (first, second, etc.) or as numbers (1st, 2nd, etc.).
+% (Recall that the input in the \texttt{.bib} file is always as English
+% words.)
+%    \begin{macrocode}
+\beginoptiongroup{ABBREVIATE WORD `PAGES'
+ (if not using external language file)}
+ {\if!\cfile!\relax*\fi}%
+\optdef{*}{}{`Page(s)'}{(no abbreviation)}
+\optdef{a}{pp}{`Page' abbreviated}{as p. or pp.}
+\optdef{x}{ppx}{`Page' omitted}{}
+\getans
+\beginoptiongroup{ABBREVIATE WORD `EDITORS':}{}
+\optdef{*}{}{`Editor(s)'}{(no abbreviation)}
+\optdef{a}{ed}{`Editor' abbreviated}{as ed. or eds.}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{OTHER ABBREVIATIONS:}{}
+\optdef{*}{}{No abbreviations}{of volume, edition, chapter, etc}
+\optdef{a}{abr}{Abbreviations}{of such words}
+\getans
+\endoptiongroup
+\beginoptiongroup{ABBREVIATION FOR `EDITION'
+ (if abbreviating words)}
+ {\if\ans a*\fi}%
+\optdef{*}{}{`Edition' abbreviated as `edn'}{}
+\optdef{a}{ednx}{`Edition' abbreviated as `ed'}{}
+\getans
+\beginoptiongroup{MONTHS WITH DOTS:}{}
+\optdef{*}{}{Months with dots}{as Jan.}
+\optdef{x}{mth-bare}{Months without dots}{as Feb Mar}
+\getans
+\endoptiongroup
+\endoptiongroup
+\beginoptiongroup{EDITION NUMBERS:}{}
+\optdef{*}{xedn}{Editions as in database}{saving much processing memory}
+\optdef{w}{}{Write out editions}{as first, second, third, etc}
+\optdef{n}{ord}{Numerical editions}{as 1st, 2nd, 3rd, etc}
+\getans
+\endoptiongroup
+\endoptiongroup
+%    \end{macrocode}
+%
+% The above choices about abbreviations are made only if the internal
+% languages are taken (English or \texttt{babel}). For an external language
+% definition file, these choices, along with possible other ones, are made
+% in the external file, which is read in at this point.
+%    \begin{macrocode}
+\umes{Reading external language file \string\cfile=\cfile}%
+\if!\cfile!\relax\else
+ \input\cfile
+\fi
+%    \end{macrocode}
+%
+% This file contains the standard set of stored journal names present in
+% the basic bibliography style files. If other files containing journal
+% names are to be included, they may only contain the options \texttt{jabr}
+% or \texttt{jaa} since these options are selected here. No option
+% menus from the journal-name files will be read in.
+%    \begin{macrocode}
+\beginoptiongroup{STORED JOURNAL NAMES:}{}
+\optdef{*}{}{Full journal names}{for prestored journals}
+\optdef{a}{jabr}{Abbreviated journal names}{}
+\optdef{s}{jabr,jaa}{Abbreviated with astronomy shorthands}{like ApJ and AJ}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Variations on \textsl{and}}
+% It is possible to replace the word \textsl{and} with an ampersand \&, and to
+% specify whether a comma is to precede \textsl{and} in a list of more than two
+% names.
+%
+% A variable \textsl{and} may be provided for with the command |\BIBand|
+% in place of the word. In this case, the command must be defined in the
+% document file or some other package called. (This is intended for situations
+% where an ampersand is wanted in parenthetical citations, but the word in
+% textual ones.)
+%
+%    \begin{macrocode}
+\beginoptiongroup{AMPERSAND:}{}
+\optdef{*}{}{Use word `and'}{in author lists}
+\optdef{a}{amper}{Use ampersand}{in place of `and'}
+\optdef{v}{varand}{Use \string\BIBand}{in place of `and'}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{COMMA BEFORE `AND':}{}
+\optdef{*}{}{Comma before `and'}{as `Tom, Dick, and Harry'}
+\optdef{n}{and-xcom}{No comma before `and'}{as `Tom, Dick and Harry'}
+\optdef{c}{and-com}{Comma even with 2 authors}{as `Tom, and Harry'}
+\getans
+\endoptiongroup
+\beginoptiongroup{COMMA BEFORE `AND' EVEN FOR COLLECTION EDITORS
+ (if using comma before `and' with authors)}
+ {\if\ans c*\fi}%
+\optdef{*}{and-com-ed}{Comma with 2 editors}{in collections}
+\optdef{x}{}{Two editors without comma}{as `Tom and Harry'}
+\getans
+\endoptiongroup
+\beginoptiongroup{NO `AND' IN REFERENCE LIST:}{}
+\optdef{*}{}{With `and'}{before last author in reference list}
+\optdef{x}{xand}{No `and'}{as `Tom, Dick, Harry'}
+\getans
+\endoptiongroup
+
+\beginoptiongroup{COMMA BEFORE `ET AL':}{}
+\optdef{*}{}{Comma before `et al'}{in reference list}
+\optdef{x}{etal-xc}{No comma before `et al'}{}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Font of \textsl{et al}}
+% One can chose that \textsl{et~al.}\ be put into italics.
+% Or, if the authors are in a different font from the regular one, the
+% \textsl{et~al.}\ can still be Roman.
+%    \begin{macrocode}
+\beginoptiongroup{FONT OF `ET AL':}{}
+\optdef{*}{}{Plain et al}{}
+\optdef{i}{etal-it}{Italic et al}{}
+\optdef{r}{etal-rm}{Roman et al}{even when authors something else}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Additional Data Fields}\label{sec:revtex}
+% The American Physical Society's REV\TeX\ package contains \btx\ support
+% with a \texttt{bst} file generated from a variant of
+% \texttt{\filename}. The extra fields are also available here.
+% \begin{itemize}
+% \item \textbf{collaboration}: A collaboration name associated with a
+% reference.
+% \item \textbf{eprint}: The e-print citation for the reference (Los Alamos
+% or otherwise). E-print numbers can be turned into hyperlinks to the
+% online article. The output is\\
+%    \hspace*{2em}|\eprint{|\textit{eprint-spec}|}|
+% \item \textbf{archive}: is an optional argument for |\eprint|, as\\
+%    \hspace*{2em}|\eprint[|\textit{archive-des}|]{|\textit{eprint-spec}|}|\\
+% The \textit{archive-des} is some code such as \texttt{arXiv} that is
+% translated to a base URL by a class or package file. The default definition
+% of |\eprint| ignores \textit{archive-des} and prints \textit{eprint-spec}
+% as a URL.
+% \item \textbf{url}: A URL associated with the reference. Can be turned
+% into a hyperlink.
+% \end{itemize}
+%
+% A collaboration appears as part of the author list and the other two
+% appear at the end of the citaton. The URL field can be selected
+% independently of this option.
+%
+% In addition there are new fields for journals like Phys.\ Rev.~D that
+% no longer use page numbers.
+% \begin{itemize}
+% \item \textbf{eid}: Electronic article identifier.
+% \item \textbf{numpages}: Number of pages in an article. For use in
+% conjunction with the \textbf{eid} field when page counts are
+% desired. Deprecated when submitting to Phys.\ Rev.
+%
+% The \texttt{eprint} (with \texttt{archive}) and \texttt{url} fields may be
+% included independently of the other REV\TeX\ fields.
+%
+% The \texttt{eid} field is now always included, although it is optional for
+% the bibliography entries. This electronic identifier is a replacement for the
+% page number in electronic journals: it is the sequence number in the printed
+% volume. If present, it will be used in place of the page number.
+%
+% \end{itemize}
+%
+%    \begin{macrocode}
+\beginoptiongroup{ADDITIONAL REVTeX DATA FIELDS:}{}
+\optdef{*}{}{No additional fields}{for REVTeX}
+\optdef{r}{revdata,eprint,url,url-blk}{Include REVTeX data fields}
+ {collaboration, eid, eprint, archive, numpages, url}
+\getans
+\mytemptrue
+\if\ans r\mytempfalse\fi
+\beginoptiongroup{E-PRINT DATA FIELD:
+(without REVTeX fields)}
+{\ifmytemp*\fi}
+\optdef{*}{}{Do not include eprint field}{}
+\optdef{e}{eprint}{Include eprint and archive fields}{for electronic publications}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{URL address}
+% For electronic documents with an Internet address, add a URL entry.
+% Harvard already has this, but here it is done for all styles.
+% The URL text will be set with the \verb!\url! command in the \texttt{url}
+% package by Donald Arseneau. This package must be loaded for the command
+% to work right. It allows line breaks at punctuations. Otherwise,
+% \verb!\texttt! is used instead, with no line breaks. The URL text is preceded
+% by \verb!\urlprefix! which defaults to ``URL '' but may be redefined by the
+% user to be whatever s/he wants. The final space must be included.
+%
+% Note: selecting the REV\TeX\ fields automatically includes this, so the
+% offer only is made if REV\TeX\ has been rejected.
+%
+%    \begin{macrocode}
+\beginoptiongroup{URL ADDRESS:
+(without REVTeX fields)}{\ifmytemp*\fi}
+\optdef{*}{}{No URL}{for electronic (Internet) documents}
+\optdef{u}{url,url-blk}{Include URL}{as regular item block}
+\optdef{n}{url,url-nt}{URL as note}{}
+\optdef{l}{url,url-nl}{URL on new line}{after rest of reference}
+\getans
+\endoptiongroup
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Reference Component Tagging}
+% If reference component tagging is enabled, we
+% apply tags like |\bibinfo| and |\eprint| to the fields of data
+% in the content of the |\bibitem| statement. We also ensure that
+% these commands have a default meaning within the scope of the |thebibliography|
+% environment. The default definitions simply print the field and ignore the
+% tag. However, other programs or packages might make use of the tag
+% information to separate authors from title, for example.
+%
+%    \begin{macrocode}
+\beginoptiongroup{REFERENCE COMPONENT TAGS:}{}
+\optdef{*}{}{No reference component tags}
+ {in the \string\bibitem\space entries}
+\optdef{b}{bibinfo}{Reference component tags}
+ {like \string\bibinfo\space in the content of \string\bibitem}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Define emphasis}
+% In everything that been mentioned so far, italicization should be
+% understood to mean `emphasize' in the \LaTeX{} sense. This means that the
+% command |\em| is used. This is not the same as |\it|, which is always
+% italics. Rather, with |\em|, the font style switches between |\rm| and
+% |\it| depending on the context. Here one may choose to true italics, or
+% to switch off italics altogether.
+%    \begin{macrocode}
+\beginoptiongroup{EMPHASIS:
+ (affects all so-called italics)}{}
+\optdef{*}{}{Use emphasis}{ie, \string\em, allows font switching}
+\optdef{i}{em-it}{Use true italics}{ie, \string\it, absolute italics}
+\optdef{x}{em-x}{No italics}{at all}
+\optdef{u}{em-ul}{Underlining}{in place of italics, best with ulem package}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% \subsection*{Plain \TeX\ compatibility}
+% Bold face, italics, and emphasis are made with the \LaTeXe\ commands,
+% which makes them incompatible with the obsolete \LaTeX2.09, and with
+% Plain \TeX. There are also some extra testing for existing commands
+% that best work with \LaTeXe\ syntax.
+%
+% If the bibliography style file is to be fully compatible with Plain \TeX,
+% do not select the option \texttt{nfss} but do take \texttt{plntx}.
+%    \begin{macrocode}
+\beginoptiongroup{COMPATIBILITY WITH PLAIN TEX:}{}
+\optdef{*}{nfss}{Use LaTeX commands}{which may not work with Plain TeX}
+\optdef{t}{plntx}{Use only Plain TeX}{commands for fonts and testing}
+\getans
+\endoptiongroup
+%    \end{macrocode}
+%
+% Terminate the options list. If a language definition file has been called,
+% then we have a closing brace too many, so add another dummy opening brace.
+%    \begin{macrocode}
+\if!\cfile\jfile!\else
+\begingroup\MBswitch
+\wr(,{\pc)
+\endgroup
+\fi
+
+\endoptions
+%</options>
+%    \end{macrocode}
+%
+% \section{The Bibliographic Coding}
+%
+%    \begin{macrocode}
+%<*!options&!driver&!bblbst>
+%<*!tail>
+ %   For use with BibTeX version 0.99a or later
+ % -------------------------------------------------------------------
+%<*(!nmft&(nmft-it|nmft-sc|nmft-bf|nmft-def))|(!lab&(lab-it|lab-bf|lab-sc|lab-def))>
+ %  WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
+ %  The input dbj file contains one of the options
+%<nmft-it|nmft-sc|nmft-bf|nmft-def> %        nmft-it, nmft-bf, nmft-sc, or nmft-def
+%<lab-it|lab-sc|lab-bf|lab-def> %        lab-it, lab-bf, lab-sc, or lab-def
+ %  without the corresponding general option(s):
+%<nmft-it|nmft-sc|nmft-bf|nmft-def> %              nmft
+%<lab-it|lab-sc|lab-bf|lab-def> %              lab
+ %  (You may be using an older dbj with a newer version of merlin.mbs)
+ %  Please edit your dbj file to add the general option(s) and reprocess.
+ %
+%</(!nmft&(nmft-it|nmft-sc|nmft-bf|nmft-def))|(!lab&(lab-it|lab-bf|lab-sc|lab-def))>
+%<*!exlang>
+%<!babel> % This bibliography style file is intended for texts in ENGLISH
+%<*babel>
+ % This bibliography style file requires a file named  babelbst.tex
+ %   containing the definitions of word commands like \bbleditor, etc.
+%</babel>
+%</!exlang>
+%<*exlang>
+ % This bibliography style file is intended for texts in
+%<bahasa> %   BAHASA
+%<brazilian> %   BRAZILIAN
+%<catalan> %   CATALAN
+%<croatian> %   CROATIAN
+%<czech> %   CZECH
+%<danish> %   DANISH
+%<dansk> %   DANSK
+%<dutch> %   DUTCH
+%<english> %   ENGLISH
+%<esperanto> %   ESPERANTO
+%<finnish> %   FINNISH
+%<french> %   FRENCH
+%<galacian> %   GALACIAN
+%<german> %   GERMAN
+%<hungarian> %   HUNGARIAN
+%<italian> %   ITALIAN
+%<norwegian> %   NORWEGIAN
+%<norsk> %   NORWEGIAN
+%<polski> %   POLISH
+%<polish> %   POLISH
+%<portuguese> %   PORTUGUESE
+%<romanian> %   ROMANIAN
+%<russian> %   RUSSIAN
+%<slovak> %   SLOVAK
+%<slovenian> %   SLOVENIAN
+%<slovene> %   SLOVENIAN
+%<spanish> %   SPANISH
+%<swedish> %   SWEDISH
+%<turkish> %   TURKISH
+%</exlang>
+%<*!html>
+%<*ay>
+ % This is an author-year citation style bibliography. As such, it is
+ % non-standard LaTeX, and requires a special package file to function properly.
+ % Such a package is    natbib.sty   by Patrick W. Daly
+%<*alk>
+ % or:                  apalike.sty  by Oren Patashnik
+ % The form of the \bibitem entries is
+ %   \bibitem[Jones et al., 1990]{key}...
+%</alk>
+%<*!(har|ast|alk|cay|nmd|cn)>
+ % The form of the \bibitem entries is
+ %   \bibitem[Jones et al.(1990)]{key}...
+%<nat> %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
+ % The essential feature is that the label (the part in brackets) consists
+ % of the author names, as they should appear in the citation, with the year
+ % in parentheses following. There must be no space before the opening
+ % parenthesis!
+%<nat> % With natbib v5.3, a full list of authors may also follow the year.
+ % In natbib.sty, it is possible to define the type of enclosures that is
+ % really wanted (brackets or parentheses), but in either case, there must
+ % be parentheses in the label.
+ % The \cite command functions as follows:
+ %   \citet{key} ==>>                Jones et al. (1990)
+%<nat> %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
+ %   \citep{key} ==>>                (Jones et al., 1990)
+%<nat> %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
+ %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
+ %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
+ %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., 1990, p. 32)
+ %   \citeauthor{key} ==>>           Jones et al.
+%<nat> %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
+ %   \citeyear{key} ==>>             1990
+%</!(har|ast|alk|cay|nmd|cn)>
+%<*har>
+ % or:                  harvard.sty  by Peter Williams and Thorsten Schnier
+%<harnm> % (needs natbib v5.3  or  harvard v2.0.3)
+ % The form of the bibitem entries is
+ %   \harvarditem[Jones et al.]{Jones, Baker, and Smith}{1990}{key}...
+%</har>
+%<*cay>
+ % or:                  chicago.sty
+ % The form of the bibitem entries is
+ %   \bibitem[\protect\citeauthoryear{Jones, Baker, and Smith}
+ %        {Jones et al.}{1990}{key}...
+%</cay>
+%<*nmd>
+ % or:                  named.sty
+ % The form of the bibitem entries is
+ %   \bibitem[\protect\citeauthoryear{Jones et al.}{1990}]{key}...
+%</nmd>
+%<*ast>
+ % or:                  astron.sty
+ % The form of the bibitem entries is
+ %   \bibitem[\protect\astroncite{Jones et al.}{1990}]{key}...
+%</ast>
+%<*cn>
+ % or:                  authordate1-4.sty
+ % The form of the bibitem entries is
+ %   \bibitem[\protect\citename{Jones et al.}1990]{key}...
+%</cn>
+%</ay>
+%<*!ay>
+%<*!alph&!cite>
+ % This is a numerical citation style, and as such is standard LaTeX.
+%</!alph&!cite>
+%<*alph>
+ % This is a labelled citation style similar to the standard alpha.bst,
+ %   where labels are of the form Dal90 or DBK89.
+%</alph>
+%<*cite&!alph>
+ % This is a special pseudo-numerical bibliography style, intended to be
+ %   used to list all the entries in a bib database
+%</cite&!alph>
+ % It requires no extra package to interface to the main text.
+ % The form of the \bibitem entries is
+%<!alph&!cite> %   \bibitem{key}...
+%<alph> %   \bibitem[label]{key}...
+%<!alph&cite> %   \bibitem[key]{key}...
+%<*!cite|alph>
+ % Usage of \cite is as follows:
+%<*!alph&!cite>
+ %   \cite{key} ==>>          [#]
+ %   \cite[chap. 2]{key} ==>> [#, chap. 2]
+ % where # is a number determined by the ordering in the reference list.
+%</!alph&!cite>
+%<*alph>
+ %   \cite{key} ==>>          [label]
+ %   \cite[chap. 2]{key} ==>> [label, chap. 2]
+ % The order in the reference list is by label.
+%</alph>
+%<*seq-no&!alph>
+ % The order in the reference list is that by which the works were originally
+ %   cited in the text, or that in the database.
+%</seq-no&!alph>
+%<*!seq-no&!alph>
+ % The order in the reference list is alphabetical by authors.
+%</!seq-no&!alph>
+%</!cite|alph>
+%</!ay>
+%</!html>
+%<*html>
+ % This bibliographic style file produces HTML output instead of LaTeX.
+ % The LaTeX special characters are not translated, so that the output
+ % (which has the .bbl ending still) will have to be further massaged,
+ % and renamed with .html or .htm. The title and heading may also need
+ % to be revised.
+ %
+%<htlist&!htdes> % The output is a numbered list.
+%<htdes> % The output is an unnumbered list with the keys printed
+%<htdes> % before each entry.
+%<!htlist&!htdes> % The output is lists each entry as one paragraph.
+%</html>
+ % -------------------------------------------------------------------
+
+%    \end{macrocode}
+%
+% \begin{macro}{`ENTRY'}
+%  The new \texttt{harvard.sty} of \LaTeXe{} includes an entry URL, or
+%  rather it is included in the new \texttt{.bst} files for it. Add it
+%  here too, but only for option \texttt{harnm}.
+%
+% Books normally have an ISBN number.
+% This entry is (optionally) included, modelled after that in
+% \texttt{xbtxbst.doc}.
+%    \begin{macrocode}
+ENTRY
+  { address
+%<annote>    annote
+%<eprint>    archive
+    author
+    booktitle
+    chapter
+%<revdata>    collaboration
+%<doi|url-doi>    doi
+    edition
+    editor
+    eid
+%<eprint>    eprint
+    howpublished
+    institution
+%<isbn>    isbn
+%<issn>    issn
+    journal
+    key
+%<lang>    language
+    month
+    note
+    number
+%<revdata>    numpages
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+%<url|harnm|revdata>    url
+    volume
+    year
+  }
+  {}
+%<!ay&!alph>  { label }
+%<!ay&alph>  { label extra.label sort.label }
+%<ay>  { label extra.label sort.label short.list }
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+%    \end{macrocode}
+%
+% \begin{macro}{`init.state.consts'}
+%    \begin{macrocode}
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% |s| and |t| are general-purpose scratch registers whose value does not persist
+% past the end of a function. They also do not appear to be used to communicate
+% between functions or to be clobbered within a sub-function call. Hopefully.
+%    \begin{macrocode}
+STRINGS { s t}
+%    \end{macrocode}
+%
+% \begin{macro}{`output.nonnull'}
+%    \begin{macrocode}
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+%<!blk-com|(!com-semi&!com-blank)>    { ", " * write$ }
+%<blk-com&com-semi>    { "; " * write$ }
+%<blk-com&!com-semi&com-blank>    { " " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+%<!html>          "\newblock " write$
+        }
+        { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`output'}
+%    \begin{macrocode}
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`output.check'}
+%    \begin{macrocode}
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`fin.entry'}
+% I have often been asked to add an annotation function. This suggestion is
+% from Soren Dayton; it inputs a file with the same name as the cite key, or
+% uses the text in the \texttt{annote} field. It will only work with \LaTeXe.
+%    \begin{macrocode}
+FUNCTION {fin.entry}
+%<*!fin-bare>
+{ add.period$
+  write$
+%</!fin-bare>
+%<*fin-bare>
+{ duplicate$ empty$
+    'pop$
+    'write$
+  if$
+%</fin-bare>
+%<html&htdes>  "</dd>" write$
+%<html&!htdes&htlist>  "</li>" write$
+%<html&!htdes&!htlist>  "</p>" write$
+  newline$
+%<*annote>
+%<*!html>
+  annote missing$
+    { "\bibAnnoteFile{" cite$ * "}" * write$ newline$ }
+    { "\bibAnnote{" cite$ * "}{" * annote * "}" * write$ newline$
+    }
+  if$
+%</!html>
+%<*html>
+  "<blockquote><strong>Key:</strong> "
+  cite$ * write$
+  annote missing$
+    { newline$ }
+    { "<br><strong>Annotation:</strong>" write$ newline$
+      annote write$ newline$
+    }
+  if$
+  "</blockquote>" write$ newline$
+%</html>
+%</annote>
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`new.block'}
+%    \begin{macrocode}
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`new.sentence'}
+%    \begin{macrocode}
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`add.blank'}
+% When text is printed with \texttt{output} or
+% \texttt{output.check}, the \texttt{output.state} is set such that
+% a comma will precede the next output text. For special effects, we want to
+% suppress this comma, inserting a blank instead. Hence the
+% \texttt{output.state} is changed to \texttt{before.all}, meaning no
+% punctuation is to be inserted.
+%    \begin{macrocode}
+FUNCTION {add.blank}
+{  " " * before.all 'output.state :=
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`add.colon'}
+%    \begin{macrocode}
+%<*au-col|tit-col>
+FUNCTION {add.colon}
+{ duplicate$ empty$
+    'skip$
+    { ":" * add.blank }
+  if$
+}
+
+%</au-col|tit-col>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`no.blank.or.punct'}
+% Another frill is to suppresss both blanks and punctuation. The |\hspace|
+% permits a line break at this point.
+%    \begin{macrocode}
+%<*yrpp-xsp>
+FUNCTION {no.blank.or.punct}
+%<*!html>
+{  "\hspace{0pt}" * before.all 'output.state :=
+}
+%</!html>
+%<html>{  before.all 'output.state := }
+
+%</yrpp-xsp>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`date.block'}
+% The \texttt{date.block} function is used for special punctuating effects
+% after the date.
+%    \begin{macrocode}
+FUNCTION {date.block}
+{
+%<*!yrp-x>
+%<yrp-col>  ":" *
+%<*!yrp-col>
+%<yrp-semi>  ";" *
+%<*!yrp-semi>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&!yrp-per>  skip$
+%<(blk-com|blk-tit|blk-tita)&yrp-per>  new.sentence
+%</!yrp-semi>
+%</!yrp-col>
+%</!yrp-x>
+%<*yrp-x|yrp-col|yrp-semi>
+%<!yrpp-xsp>  add.blank
+%<yrpp-xsp>  no.blank.or.punct
+%</yrp-x|yrp-col|yrp-semi>
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`not'}
+%    \begin{macrocode}
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`and'}
+%    \begin{macrocode}
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`or'}
+%    \begin{macrocode}
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`non.stop'}
+% This function (my invention) tests if the last character in the string
+% on the stack is \texttt{. ! ?} by using \texttt{add.period\$}. It is to
+% be used for conditional italic correction or adding commas.
+%    \begin{macrocode}
+%<*!tit-it&tit-qq>
+FUNCTION {non.stop}
+{ duplicate$
+   "}" * add.period$
+   #-1 #1 substring$ "." =
+}
+
+%</!tit-it&tit-qq>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`remove.dots'}
+% This macro removes any periods from the string on the stack. To be used
+% for undotting journal names, months, and juniors. Previously
+% \texttt{purify\$} was used for this, but that removes more than just
+% dots.
+%
+% May 2007, Joseph A. Wright (Morning Star, UK) contributed a revision to allow
+% the dot accent |\.| to be retained.
+%    \begin{macrocode}
+%<*nm-rv|nm-rvx|nm-rvcx|mth-bare|jxper>
+STRINGS {z}
+
+FUNCTION {remove.dots}
+{ 'z :=
+   ""
+   { z empty$ not }
+   { z #1 #2 substring$
+     duplicate$ "\." =
+       { z #3 global.max$ substring$ 'z :=  * }
+       { pop$
+         z #1 #1 substring$
+         z #2 global.max$ substring$ 'z :=
+         duplicate$ "." = 'pop$
+           { * }
+         if$
+       }
+     if$
+   }
+   while$
+}
+%</nm-rv|nm-rvx|nm-rvcx|mth-bare|jxper>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`new.block.checka'}
+%    \begin{macrocode}
+%<*!ay>
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+%</!ay>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`new.block.checkb'}
+%    \begin{macrocode}
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`new.sentence.checka'}
+%    \begin{macrocode}
+%<*!ay>
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+%</!ay>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`new.sentence.checkb'}
+%    \begin{macrocode}
+%<*!ay>
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+%</!ay>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`field.or.null'}
+%    \begin{macrocode}
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`emphasize'}
+% Emphasis can be either italic or the alternating font. The font command
+% may be NFSS or regular \LaTeX~2.09 declarations.
+%    \begin{macrocode}
+FUNCTION {emphasize}
+%<*!em-x>
+{ duplicate$ empty$
+    { pop$ "" }
+%<html>    { "<i>" swap$ * "</i>" * }
+%<*!html>
+%<em-ul>    { "\uline{" swap$ * "}" * }
+%<*!em-ul>
+%<*!nfss>
+%<!em-it>    { "{\em " swap$ * "\/}" * }
+%<em-it>    { "{\it " swap$ * "\/}" * }
+%</!nfss>
+%<*nfss>
+%<!em-it>    { "\emph{" swap$ * "}" * }
+%<em-it>    { "\textit{" swap$ * "}" * }
+%</nfss>
+%</!em-ul>
+%</!html>
+  if$
+}
+%</!em-x>
+%<em-x>{ skip$ }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`bolden'}
+% The bold font command may be NFSS or the regular \LaTeX~2.09 declaration.
+%    \begin{macrocode}
+%<*nmft-bf|vol-bf|vol-2bf|lab-bf|dtbf|pres-bf>
+FUNCTION {bolden}
+{ duplicate$ empty$
+    { pop$ "" }
+%<html>    { "<b>" swap$ * "</b>" * }
+%<*!html>
+%<!nfss>    { "{\bf " swap$ * "}" * }
+%<nfss>    { "\textbf{" swap$ * "}" * }
+%</!html>
+  if$
+}
+%</nmft-bf|vol-bf|vol-2bf|lab-bf|dtbf|pres-bf>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`scaps'}
+% To put text into small caps.
+%    \begin{macrocode}
+%<*lab-sc|nmft-sc|pres-sc>
+FUNCTION {scaps}
+{ duplicate$ empty$
+    { pop$ "" }
+%<html>    { skip$ }
+%<*!html>
+%<!nfss>    { "{\sc " swap$ * "}" * }
+%<nfss>    { "\textsc{" swap$ * "}" * }
+%</!html>
+  if$
+}
+%</lab-sc|nmft-sc|pres-sc>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`bib.name.font'}
+% \begin{macro}{`bib.fname.font'}
+% \begin{macro}{`cite.name.font'}
+% Define functions for formatting the author/editor names, one for the
+% surnames (\texttt{bib.name.font}) and one for the first names
+% (\texttt{bib.fname.font}). These could be identical, or the latter is
+% deactivated if first names are not to be formatted, only the last names.
+%
+% For citations, we have \texttt{cite.name.font}. Here only surnames appear.
+%
+% It is also possible to have a user-defined font command for each, which the
+% user must define in his work. These are |\bibnamefont{}| and |\bibfnamefont{}|,
+% and some defaults are provided that simply repeat the arguments. Two commands
+% are needed if \texttt{nmft-def} and \texttt{fnm-def} are both given.
+%
+% If neither \texttt{fnm-def} nor \texttt{fnm-rm} are given, then the first names
+% are formatted the same as the surnames.
+%    \begin{macrocode}
+%<*nmft>
+FUNCTION {bib.name.font}
+%<nmft-it>{ emphasize }
+%<!nmft-it&nmft-bf>{ bolden }
+%<!nmft-it&!nmft-bf&nmft-sc>{ scaps }
+%<*!nmft-it&!nmft-bf&!nmft-sc&nmft-def>
+{ duplicate$ empty$
+  { pop$ "" }
+%<!html>  { "\bibnamefont{" swap$ * "}" * }
+%<html>  { skip$ }
+  if$
+}
+%</!nmft-it&!nmft-bf&!nmft-sc&nmft-def>
+FUNCTION {bib.fname.font}
+%<!fnm-rm&!fnm-def>{ bib.name.font }
+%<fnm-rm>{ skip$ }
+%<*!fnm-rm&fnm-def>
+{ duplicate$ empty$
+  { pop$ "" }
+%<!html>  { "\bibfnamefont{" swap$ * "}" * }
+%<html>  { skip$ }
+  if$
+}
+%</!fnm-rm&fnm-def>
+%</nmft>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*lab>
+FUNCTION {cite.name.font}
+%<lab-it>{ emphasize }
+%<!lab-it&lab-bf>{ bolden }
+%<!lab-it&!lab-bf&lab-sc>{ scaps }
+%<*!lab-it&!lab-bf&!lab-sc&lab-def>
+{ duplicate$ empty$
+  { pop$ "" }
+%<!html>  { "\citenamefont{" swap$ * "}" * }
+%<html>  { skip$ }
+  if$
+}
+%</!lab-it&!lab-bf&!lab-sc&lab-def>
+%</lab>
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{`tie.or.space.prefix'}
+% The function \texttt{tie.or.space.prefix} determines whether
+% the top item on the stack requires a tie character and
+% slips that (or a space character if not) ahead of it.
+% At this point a font switch or other function can be applied to
+% the top item on the stack, and the appropriate space found
+% just ahead of it on the stack.
+%
+% The sequence \texttt{tie.or.space.prefix} \texttt{*} \texttt{*} is a common idiom
+% for joining the top two stack objects with a tie or space
+% depending on the length of the top object.
+%
+% Another idiom is to apply \texttt{tie.or.space.prefix}, apply a font switch,
+% and then swap and join. In this case the tie or space follows the object.
+%    \begin{macrocode}
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`capitalize'}
+% Capitalizing is easy for regular languages, but for \texttt{babel},
+% some trickery stuff is needed; definitions of |\capitalize| and
+% |\Capitalize| are written to the \texttt{.bbl} file.
+%    \begin{macrocode}
+
+FUNCTION {capitalize}
+%<!babel>{ "u" change.case$ "t" change.case$ }
+%<babel>{ "\capitalize" swap$ * }
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`space.word'}
+% The function \texttt{space.word} adds a space before and after the word or
+% words currently on the stack. This was added for the \texttt{bbl.}$nnn$
+% functions, that contain only a word without spacing, but replace explicit
+% text in the originals that were spaced out. Its seems more flexible to
+% define the word functions to be without spacing.
+%    \begin{macrocode}
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*!exlang>
+%    \end{macrocode}
+%
+% \begin{macro}{`bbl.xxx'}
+% These are the default English words. There is no default language
+% option: one of \texttt{english} or \texttt{babel} must be given.
+%    \begin{macrocode}
+%<*!babel>
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+%<!varand|html>{ "and"}
+%<varand&!html>{ "\protect\BIBand{}"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+%<!ed>{ "editors" }
+%<ed>{ "eds." }
+
+FUNCTION {bbl.editor}
+%<!ed>{ "editor" }
+%<ed>{ "ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+%<!abr>{ "edition" }
+%<abr&!ednx>{ "edn." }
+%<abr&ednx>{ "ed." }
+
+FUNCTION {bbl.volume}
+%<!abr>{ "volume" }
+%<abr>{ "vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+%<!abr>{ "number" }
+%<abr>{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+%<!pp&!ppx>{ "pages" }
+%<pp>{ "pp." }
+%<!pp&ppx>{ "" }
+
+FUNCTION {bbl.page}
+%<!pp&!ppx>{ "page" }
+%<pp>{ "p." }
+%<!pp&ppx>{ "" }
+
+%<*revdata>
+FUNCTION {bbl.eidpp}
+{ "pages" }
+
+%</revdata>
+FUNCTION {bbl.chapter}
+%<!abr>{ "chapter" }
+%<abr>{ "chap." }
+
+FUNCTION {bbl.techrep}
+%<!abr>{ "Technical Report" }
+%<abr>{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+%<*!xedn>
+FUNCTION {bbl.first}
+%<!ord>{ "First" }
+%<ord>{ "1st" }
+
+FUNCTION {bbl.second}
+%<!ord>{ "Second" }
+%<ord>{ "2nd" }
+
+FUNCTION {bbl.third}
+%<!ord>{ "Third" }
+%<ord>{ "3rd" }
+
+FUNCTION {bbl.fourth}
+%<!ord>{ "Fourth" }
+%<ord>{ "4th" }
+
+FUNCTION {bbl.fifth}
+%<!ord>{ "Fifth" }
+%<ord>{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+%</!xedn>
+%<*!abr>
+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"}
+
+%</!abr>
+%<*abr>
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+%</abr>
+%</!babel>
+%    \end{macrocode}
+%
+% Here are the definitions for \texttt{babel} option, i.e., explicit
+% translations are not used, but rather only \LaTeX{} macros that must be
+% defined in the file \texttt{babelbst.tex}. This could allow automatic
+% language selection.
+%    \begin{macrocode}
+%<*babel>
+ % The BABEL language selection is made here; definitions in babelbst.tex.
+FUNCTION {bbl.and}
+{ "\bbland{}"}
+
+FUNCTION {bbl.etal}
+{ "\bbletal{}"}
+
+FUNCTION {bbl.editors}
+%<!ed>{ "\bbleditors{}" }
+%<ed>{ "\bbleds{}" }
+
+FUNCTION {bbl.editor}
+%<!ed>{ "\bbleditor{}" }
+%<ed>{ "\bbled{}" }
+
+FUNCTION {bbl.edby}
+{ "\bbledby{}" }
+
+FUNCTION {bbl.edition}
+%<!abr>{ "\bbledition{}" }
+%<abr>{ "\bbledn{}" }
+
+FUNCTION {bbl.volume}
+%<!abr>{ "\bblvolume{}" }
+%<abr>{ "\bblvol{}" }
+
+FUNCTION {bbl.of}
+{ "\bblof{}" }
+
+FUNCTION {bbl.number}
+%<!abr>{ "\bblnumber{}" }
+%<abr>{ "\bblno{}" }
+
+FUNCTION {bbl.nr}
+{ "\bblno{}" }
+
+FUNCTION {bbl.in}
+{ "\bblin{}" }
+
+FUNCTION {bbl.pages}
+%<!pp&!ppx>{ "\bblpages{}" }
+%<pp>{ "\bblpp{}" }
+%<!pp&ppx>{ "" }
+
+FUNCTION {bbl.page}
+%<!pp&!ppx>{ "\bblpage{}" }
+%<pp>{ "\bblp{}" }
+%<!pp&ppx>{ "" }
+
+FUNCTION {bbl.chapter}
+%<!abr>{ "\bblchapter{}" }
+%<abr>{ "\bblchap{}" }
+
+FUNCTION {bbl.techrep}
+%<!abr>{ "\bbltechreport{}" }
+%<abr>{ "\bbltechrep{}" }
+
+FUNCTION {bbl.mthesis}
+{ "\bblmthesis{}" }
+
+FUNCTION {bbl.phdthesis}
+{ "\bblphdthesis{}" }
+
+%<*revdata>
+FUNCTION {bbl.eidpp}
+{ "\bbleidpp{}" }
+
+%</revdata>
+%<*!xedn>
+FUNCTION {bbl.first}
+%<!ord>{ "\bblfirst{}" }
+%<ord>{ "\bblfirsto{}" }
+
+FUNCTION {bbl.second}
+%<!ord>{ "\bblsecond{}" }
+%<ord>{ "\bblsecondo{}" }
+
+FUNCTION {bbl.third}
+%<!ord>{ "\bblthird{}" }
+%<ord>{ "\bblthirdo{}" }
+
+FUNCTION {bbl.fourth}
+%<!ord>{ "\bblfourth{}" }
+%<ord>{ "\bblfourtho{}" }
+
+FUNCTION {bbl.fifth}
+%<!ord>{ "\bblfifth{}" }
+%<ord>{ "\bblfiftho{}" }
+
+FUNCTION {bbl.st}
+{ "\bblst{}" }
+
+FUNCTION {bbl.nd}
+{ "\bblnd{}" }
+
+FUNCTION {bbl.rd}
+{ "\bblrd{}" }
+
+FUNCTION {bbl.th}
+{ "\bblth{}" }
+
+%</!xedn>
+MACRO {jan} {"\bbljan{}"}
+
+MACRO {feb} {"\bblfeb{}"}
+
+MACRO {mar} {"\bblmar{}"}
+
+MACRO {apr} {"\bblapr{}"}
+
+MACRO {may} {"\bblmay{}"}
+
+MACRO {jun} {"\bbljun{}"}
+
+MACRO {jul} {"\bbljul{}"}
+
+MACRO {aug} {"\bblaug{}"}
+
+MACRO {sep} {"\bblsep{}"}
+
+MACRO {oct} {"\bbloct{}"}
+
+MACRO {nov} {"\bblnov{}"}
+
+MACRO {dec} {"\bbldec{}"}
+
+%</babel>
+%    \end{macrocode}
+%
+% \begin{macro}{`eng.ord'}
+% This function adds English endings for ordinals 1, 2, 3. However, if
+% the second last digit is 1, then the ending is `th' for all last digits.
+% So far, all other languages included do not have this problem, and it is
+% sufficient to add the \textsl{th} equivalent. This might change with further
+% languages.
+%
+% This function must be included with \texttt{babel} too, since that includes
+% English. This means that the language definition files must also provide
+% for |\bblst|, |\bblnd|, and |\bblrd|, setting them all equal to |\bblth|.
+%
+%    \begin{macrocode}
+%<*(english|!exlang)&!xedn>
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+  #-2 #1 substring$ "1" =
+     { bbl.th * }
+     { duplicate$ #-1 #1 substring$
+       duplicate$ "1" =
+         { pop$ bbl.st * }
+         { duplicate$ "2" =
+             { pop$ bbl.nd * }
+             { "3" =
+                 { bbl.rd * }
+                 { bbl.th * }
+               if$
+             }
+           if$
+          }
+       if$
+     }
+   if$
+}
+
+%</(english|!exlang)&!xedn>
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</!exlang>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</!tail>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*!head>
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%<*!jabr>
+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"}
+%</!jabr>
+%    \end{macrocode}
+%
+% Journal abbreviations have been revised from the original Patashnik
+% ones with help of Conrado Badenas and the IUA recommendations.
+%    \begin{macrocode}
+%<*jabr>
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Software Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput. Aid. Des."}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Program."}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Graphic."}
+
+MACRO {toms} {"ACM Trans. Math. Software"}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
+
+MACRO {tcs} {"Theor. Comput. Sci."}
+
+%</jabr>
+%    \end{macrocode}
+%
+% \begin{macro}{`bibinfo.check'}
+%   Define functions that encapsulate the argument
+% in a \TeX\ macro that allows for further processing when the
+% bibliography is processed, or allows for a separate computer
+% program to parse the |\bibitem| contents.
+%
+% The following table summarizes how each of the \btx{} entries
+% is accessed for output; these are the points where
+% the \texttt{format.bibinfo} or \texttt{bibinfo.check} functions
+% are called.
+% \subsubsection*{Trapped via \texttt{format.bibinfo}}
+% \begin{description}
+% \item[  \texttt{author}        ]\texttt{format.names}
+% \item[  \texttt{collaboration} ]\texttt{format.authors}
+% \item[  \texttt{editor}        ]\texttt{format.editors} (\texttt{book}, \texttt{inbook}, \texttt{proceedings}), \texttt{format.names.ed} (\texttt{format.in.ed.booktitle})
+% \item[  \texttt{eid}           ]\texttt{format.journal.eid} (\texttt{format.vol.num.pages}, article) checks the output from \texttt{format.journal.pages}
+% \item[  \texttt{isbn}          ]\texttt{format.isbn}
+% \item[  \texttt{issn}          ]\texttt{format.issn}
+% \item[  \texttt{journal}       ]\texttt{format.article.crossref}, article
+% \item[  \texttt{numpages}      ]\texttt{format.journal.eid}
+% \item[  \texttt{organization}  ]\texttt{format.organization.address} (\texttt{inproceedings}, \texttt{proceedings}), \texttt{manual}
+% \item[  \texttt{pages}         ]\texttt{format.book}.pages (\texttt{book}, \texttt{booklet}), \texttt{format.pages} (\texttt{format.journal.pages}, \texttt{format.chapter.pages}, \texttt{article}, \texttt{inbook}, \texttt{incollection}, \texttt{inproceedings})
+% \item[  \texttt{publisher}     ]\texttt{format.publisher.address} (like \texttt{output.check}, \texttt{inproceedings}, \texttt{proceedings})
+% \item[  \texttt{title}         ]\texttt{format.title}, \texttt{format.btitle}, \texttt{misc}, \texttt{presort}, \texttt{bib.sort.order}
+% \item[  \texttt{volume}        ]\texttt{format.bvolume}, \texttt{format.vol.num.pages}, \texttt{format.book.crossref}
+% \item[  \texttt{year}          ]in optional argument of \texttt{\char`\\bibitem}, \texttt{format.date} (as part of date), \texttt{format.year}, \texttt{format.org.or.pub}
+% \item[  \texttt{booktitle}     ]\texttt{format.in.ed.booktitle} (\texttt{incollection}, \texttt{inproceedings}), \texttt{format.incoll.inproc.crossref}
+% \item[  \texttt{howpublished}  ]\texttt{booklet}, \texttt{misc}
+% \item[  \texttt{edition}       ]\texttt{convert.edition.format.edition}
+% \item[  \texttt{institution}   ]\texttt{techreport}
+% \item[  \texttt{school}        ]\texttt{mastersthesis}, \texttt{phdthesis}
+% \item[  \texttt{address}       ]\texttt{format.org.or.pub}, \texttt{booklet}, \texttt{manual}, \texttt{mastersthesis}, \texttt{phdthesis}, \texttt{techreport}
+% \item[  \texttt{chapter}       ]\texttt{format.chapter.pages}
+% \item[  \texttt{number}        ]\texttt{format.number.series}, \texttt{format.vol.num.pages}, \texttt{format.tr.number}
+% \item[  \texttt{series}        ]\texttt{format.bvolume}, \texttt{format.number.series}, \texttt{format.book.crossref}
+% \item[  \texttt{type}          ]\texttt{format.chapter.pages}, \texttt{format.thesis.type}, \texttt{format.tr.number}
+% \item[  \texttt{month}         ]\texttt{format.date}
+% \item[  \texttt{note}          ]\texttt{format.note}
+% \item[  \texttt{annote}        ]\texttt{fin.entry}
+% \end{description}
+%
+% \subsubsection*{Encapsulated via \texttt{\char`\\url}}
+% \begin{description}
+% \item[  \texttt{url}           ]\texttt{format.url} (\texttt{\char`\\harvardurl}, \texttt{\char`\\url}), \texttt{format.url} (\texttt{\char`\\url}), \texttt{format.note} (\texttt{\char`\\url})
+% \end{description}
+%
+% \subsubsection*{Encapsulated via \texttt{\char`\\doi}}
+% \begin{description}
+% \item[  \texttt{doi}           ]\texttt{format.doi} (\texttt{\char`\\doi})
+% \end{description}
+%
+% \subsubsection*{Encapsulated via \texttt{\char`\\eprint}}
+% \begin{description}
+% \item[  \texttt{eprint}        ]\texttt{format.eprint}
+% \item[  \texttt{archive}       ]\texttt{format.eprint}
+% \end{description}
+%
+% \subsubsection*{Not encapsulated:}
+% \begin{description}
+% \item[  \texttt{key}           ]cite key
+% \item[  \texttt{language}      ]operand of \texttt{\char`\\selectlanguage}
+% \end{description}
+%
+% \subsubsection*{\texttt{bibinfo} tag, but not a \btx{} field}
+% \begin{description}
+% \item[  \texttt{date}          ]\texttt{format.date}
+% \end{description}
+%
+% Provides robust access to fields, checking against \texttt{missing\$}
+% and \texttt{empty\$}. A \dtx{} option allows giving
+% a warning if either is the case.
+%
+% If not, it encapsulates the argument in a \TeX\ macro |\bibinfo|.
+% The encapsulation is enabled by the \texttt{bibinfo} \dtx{} option:
+% if turned off, it simply pops the unneeded object.
+%
+% \texttt{field} \texttt{string} \texttt{->} \texttt{encapsulated-field}
+%
+% \texttt{empty} \texttt{string} \texttt{->} \texttt{empty}
+% Side effect: warning.
+%    \begin{macrocode}
+FUNCTION {bibinfo.check}
+{ swap$
+  duplicate$ missing$
+    {
+%<bibinfo.warning>      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+%<!bibinfo.warning>      pop$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+%<bibinfo.warning>          swap$ "empty " swap$ * " in " * cite$ * warning$
+%<!bibinfo.warning>          swap$ pop$
+        }
+        { swap$
+%<bibinfo>          "\bibinfo{" swap$ * "}{" * swap$ * "}" *
+%<!bibinfo>          pop$
+        }
+      if$
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`bibinfo.warn'}
+% Replaces \texttt{output.check}
+% with \texttt{bibinfo.warn} followed by \texttt{output}.
+%
+% \texttt{field} \texttt{string} \texttt{->} \texttt{encapsulated-field}
+%
+% \texttt{empty} \texttt{string} \texttt{->} \texttt{empty}
+%
+% Side effect: warning if the field is empty.
+% Note: if the \dtx{} option \texttt{bibinfo} is not in effect,
+% then no encapsulation is done.
+%    \begin{macrocode}
+FUNCTION {bibinfo.warn}
+{ swap$
+  duplicate$ missing$
+    {
+      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+          swap$ "empty " swap$ * " in " * cite$ * warning$
+        }
+        { swap$
+%<bibinfo>          "\bibinfo{" swap$ * "}{" * swap$ * "}" *
+%<!bibinfo>          pop$
+        }
+      if$
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.eprint'}
+% The access function for the \texttt{eprint} field.
+%
+% If the \texttt{bibinfo} \dtx{} option is selected, then this function
+% encapsulates the argument in a \TeX\ macro |\eprint|.
+%
+% \texttt{->} \texttt{encapsulated-URL}
+%    \begin{macrocode}
+%<*eprint>
+FUNCTION {format.eprint}
+{ eprint duplicate$ empty$
+    'skip$
+    { "\eprint"
+      archive empty$
+        'skip$
+        { "[" * archive * "]" * }
+      if$
+      "{" * swap$ * "}" *
+    }
+  if$
+}
+%</eprint>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`write.url'}
+% This function taken over from \texttt{agsm.sty}, the main \texttt{harvard}
+% bib style. For non-Harvard styles that want to add the URL on a new line
+% after the reference, use this function too, but defined slightly
+% differently.
+%    \begin{macrocode}
+%<*(harnm|url-nl)&!revdata>
+FUNCTION {write.url}
+%<*!html>
+{
+%<*url-doi&url>
+  doi empty$
+    { url }
+    { "http://dx.doi.org/" doi * }
+  if$
+%</url-doi&url>
+%<!url-doi|!url>  url
+  duplicate$ empty$
+    { pop$ }
+%<harnm>    { "\newline\harvardurl{" swap$ * "}" * write$ newline$ }
+%<!harnm&url-nl>    { "\newline\urlprefix\url{" swap$ * "}" * write$ newline$ }
+  if$
+}
+%</!html>
+%<*html>
+{
+%<*url-doi&url>
+  doi empty$
+    { url }
+    { "http://dx.doi.org/" doi * }
+  if$
+%</url-doi&url>
+%<!url-doi|!url>  url
+  duplicate$ empty$
+    { pop$ }
+    {  duplicate$ "<br><a href=" quote$ * swap$ * quote$
+      * ">" * swap$ * "</a>" *  write$ newline$ }
+  if$
+}
+%</html>
+
+%</(harnm|url-nl)&!revdata>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.url'}
+% This function is reworked for \texttt{\filename} to provide a
+% cleaner URL for DOIs. The definition of \cmd{\urldoi} is written in
+% the \texttt{.bbl} file by the function \texttt{begin.bib}. When the
+% package \pkg{hyperref} is loaded, the \meta{doi} is a hyperlink to
+% \texttt{https://doi.org/\meta{doi}}.
+%    \begin{macrocode}
+%<*(url-blk&!harnm)|revdata>
+FUNCTION {format.url}
+{
+%<url-doi&url>  doi empty$
+%<url-doi&url>    {
+      url
+      duplicate$ empty$
+        { pop$ "" }
+%<!html>        { "\urlprefix\url{" swap$ * "}" * }
+%<html>        {
+%<html>          duplicate$ "<a href=" quote$ * swap$ * quote$ *
+%<html>            ">" * swap$ * "</a>" *
+%<html>        }
+      if$
+%<*url-doi&url>
+    }
+    {
+      doi
+%<!html>      "\doiprefix\urldoi{" swap$ * "}" *
+%<html>      duplicate$ "doi:<a href=" quote$ * "https://doi.org/" *
+%<html>        swap$ * quote$ * ">" * swap$ * "</a>" *
+    }
+  if$
+%</url-doi&url>
+}
+
+%</(url-blk&!harnm)|revdata>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`check.speaker'}
+% The \texttt{presentation} type uses the \texttt{key} entry to indicate which
+% author is the speaker, as the sequence number in the author list. The speaker's
+% name is put into a different font, depending on the extra option. If no font
+% is specified, all names are the same.
+%    \begin{macrocode}
+INTEGERS { nameptr namesleft numnames }
+
+%<*pres-bf|pres-it|pres-sc>
+FUNCTION {check.speaker}
+{ key empty$ 'skip$
+  { key nameptr int.to.str$ =
+    {
+%<pres-bf>      bolden
+%<pres-it&!pres-bf>      emphasize
+%<pres-sc&!pres-it&!pres-bf>      scaps
+    }
+      'skip$
+    if$
+  }
+  if$
+}
+
+%</pres-bf|pres-it|pres-sc>
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{`format.names'}
+% The \texttt{harvard} package now (version 2.0.3, for \LaTeXe) uses
+% |\harvardand| in place of the word \textsl{and} so that it can be changed
+% at run time. This is allowed for with the option \texttt{harnm}, which
+% need not be used only with the \texttt{har} option.
+% This seems like a useless feature for \texttt{.bst} files made from
+% this multilanguage source. However, it is included anyway, which means
+% if \texttt{harnm} option selected, one must redefine |\harvardand|
+% in the document for the language being used.
+%
+% The location of the junior part for reversed name is not obvious. Prior
+% to version 4.0, I always had it attached to the last name, as
+% Smith, Jr, John, put it probably is better as Smith, John, Jr. For the
+% AGU \texttt{nm-rev1} I always did it this way, probably because I had a
+% good AGU example to follow. Dilemma: do I just change them all or add an
+% option to do it? The option will maintain consistency with older
+% versions, but this could also be considered a bug fix rather than a new
+% feature. Solution: use the option, since I have found other \texttt{.bst}
+% files from Beebe and Harvard that put junior between surname and first
+% name.
+%
+% |bibinfo| is a variable used to store a string telling it whether the
+% names being formatted are authors or editors, since this function is called
+% for both purposes. Every call to this function must push the string onto the stack
+% just before the call.
+%    \begin{macrocode}
+STRINGS  { bibinfo}
+
+%    \end{macrocode}
+%
+% Stack note: if the names argument is a non-nil list, this function returns
+% one object on the stack, the formatted list of names.
+%
+% \texttt{names`string} \texttt{bibinfo`string} \texttt{->} \texttt{author-list`string}
+%    \begin{macrocode}
+FUNCTION {format.names}
+{ 'bibinfo :=
+  duplicate$ empty$ 'skip$ {
+  's :=
+  "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+%    \end{macrocode}
+% Here is the author formatting when the names are not set in any special
+% font, or when the entire name set in a single special font.
+%    \begin{macrocode}
+%<*!(nmft&(fnm-rm|fnm-def))>
+%<*!nm-rev1&!nm-revv1>
+%<nm-init>      "{f.~}{vv~}{ll}{, jj}"
+%<*!nm-init>
+%<nm-rev&!jnrlst>      "{vv~}{ll}{, jj}{, f.}"
+%<nm-rev&jnrlst>      "{vv~}{ll}{, f.}{, jj}"
+%<*!nm-rev>
+%<nm-rv&!jnrlst>      "{vv~}{ll}{ jj}{ f{~}}"
+%<nm-rv&jnrlst>      "{vv~}{ll}{ f{~}}{ jj}"
+%<*!nm-rv>
+%<nm-rvx&!jnrlst>      "{vv~}{ll}{ jj}{ f{}}"
+%<nm-rvx&jnrlst>      "{vv~}{ll}{ f{}}{ jj}"
+%<*!nm-rvx>
+%<nm-rvcx&!jnrlst>      "{vv~}{ll}{, jj}{, f{}}"
+%<nm-rvcx&jnrlst>      "{vv~}{ll}{, f{}}{, jj}"
+%<*!nm-rvcx>
+%<nm-rvv&!jnrlst>      "{vv~}{ll}{ jj}{ f{.}.}"
+%<nm-rvv&jnrlst>      "{vv~}{ll}{ f{.}.}{ jj}"
+%<*!nm-rvv>
+%<nm-rvvc&!jnrlst>      "{vv~}{ll}{, jj}{, f{.}.}"
+%<nm-rvvc&jnrlst>      "{vv~}{ll}{, f{.}.}{, jj}"
+%<*!nm-rvvc>
+%<nm-revf&!jnrlst>      "{vv~}{ll}{, jj}{, ff}"
+%<nm-revf&jnrlst>      "{vv~}{ll}{, ff}{, jj}"
+%<*!nm-revf>
+      "{ff~}{vv~}{ll}{, jj}"
+%</!nm-revf>
+%</!nm-rvvc>
+%</!nm-rvv>
+%</!nm-rvcx>
+%</!nm-rvx>
+%</!nm-rv>
+%</!nm-rev>
+%</!nm-init>
+%</!nm-rev1&!nm-revv1>
+%<*nm-rev1>
+      duplicate$ #1 >
+        { "{f.~}{vv~}{ll}{, jj}" }
+%<!jnrlst>        { "{vv~}{ll}{, jj}{, f.}" }
+%<jnrlst>        { "{vv~}{ll}{, f.}{, jj}" }
+      if$
+%</nm-rev1>
+%<*!nm-rev1&nm-revv1>
+      duplicate$ #1 >
+        { "{ff~}{vv~}{ll}{, jj}" }
+%<!jnrlst>        { "{vv~}{ll}{, jj}{, ff}" }
+%<jnrlst>        { "{vv~}{ll}{, ff}{, jj}" }
+      if$
+%</!nm-rev1&nm-revv1>
+      format.name$
+%<nm-rv|nm-rvx>      remove.dots
+%<nmft&nmand-rm>      bib.name.font
+%</!(nmft&(fnm-rm|fnm-def))>
+%    \end{macrocode}
+% Here is the author formatting when the first and last names are
+% set in (possibly different) special fonts.
+%
+% The junior part is optionally between the reversed names, or after them.
+%    \begin{macrocode}
+%<*nmft&(fnm-rm|fnm-def)>
+%<*!nm-rev1&!nm-revv1>
+%<*nm-init>
+      "{f.}" format.name$ duplicate$ empty$ 'skip$
+        { tie.or.space.prefix bib.fname.font swap$ * }
+      if$
+      s nameptr
+      "{vv~}{ll}" format.name$ bib.name.font *
+      s nameptr
+      "{jj}" format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font ", " swap$ * }
+      if$
+%</nm-init>
+%<*!nm-init>
+%<*nm-rev>
+      "{vv~}{ll}" format.name$ bib.name.font
+      s nameptr
+%<!jnrlst>      "{jj, }{f.}"
+%<jnrlst>      "{f.}{, jj}"
+      format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font ", " swap$ * }
+      if$
+%</nm-rev>
+%<*!nm-rev>
+%<*nm-rv>
+      "{vv~}{ll}" format.name$ bib.name.font
+      s nameptr
+%<!jnrlst>      "{jj }{f{~}}"
+%<jnrlst>      "{f{~}}{ jj}"
+      format.name$ duplicate$ empty$ 'skip$
+        { remove.dots bib.fname.font " " swap$ * }
+      if$
+%</nm-rv>
+%<*!nm-rv>
+%<*nm-rvx>
+      "{vv~}{ll}" format.name$ bib.name.font
+      s nameptr
+%<!jnrlst>      "{jj }{f{}}"
+%<jnrlst>      "{f{}}{ jj}"
+      format.name$ duplicate$ empty$ 'skip$
+        { remove.dots bib.fname.font " " swap$ * }
+      if$
+%</nm-rvx>
+%<*!nm-rvx>
+%<*nm-rvcx>
+      "{vv~}{ll}" format.name$ bib.name.font
+      s nameptr
+%<!jnrlst>      "{jj, }{f{}}"
+%<jnrlst>      "{f{}}{, jj}"
+      format.name$ duplicate$ empty$ 'skip$
+        { remove.dots bib.fname.font ", " swap$ * }
+      if$
+%</nm-rvcx>
+%<*!nm-rvcx>
+%<*nm-rvv>
+      "{vv~}{ll}" format.name$ bib.name.font
+      s nameptr
+%<!jnrlst>      "{jj }{f{.}.}"
+%<jnrlst>      "{f{.}.}{ jj}"
+      format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font " " swap$ * }
+      if$
+%</nm-rvv>
+%<*!nm-rvv>
+%<*nm-rvvc>
+      "{vv~}{ll}" format.name$ bib.name.font
+      s nameptr
+%<!jnrlst>      "{jj, }{f{.}.}"
+%<jnrlst>      "{f{.}.}{, jj}"
+      format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font ", " swap$ * }
+      if$
+%</nm-rvvc>
+%<*!nm-rvvc>
+%<*nm-revf>
+      "{vv~}{ll}" format.name$ bib.name.font
+      s nameptr
+%<!jnrlst>      "{jj, }{ff}"
+%<jnrlst>      "{ff}{, jj}"
+      format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font ", " swap$ * }
+      if$
+%</nm-revf>
+%<*!nm-revf>
+      "{ff}" format.name$ duplicate$ empty$ 'skip$
+        { tie.or.space.prefix bib.fname.font swap$ * }
+      if$
+      s nameptr
+      "{vv~}{ll}" format.name$ bib.name.font *
+      s nameptr
+      "{jj}" format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font ", " swap$ * }
+      if$
+%</!nm-revf>
+%</!nm-rvvc>
+%</!nm-rvv>
+%</!nm-rvcx>
+%</!nm-rvx>
+%</!nm-rv>
+%</!nm-rev>
+%</!nm-init>
+%</!nm-rev1&!nm-revv1>
+%<*nm-rev1>
+      nameptr #1 >
+        { "{f.}" format.name$ duplicate$ empty$ 'skip$
+            { tie.or.space.prefix bib.fname.font swap$ * }
+          if$
+          s nameptr
+          "{vv~}{ll}" format.name$ bib.name.font *
+          s nameptr
+          "{jj}" format.name$ duplicate$ empty$ 'skip$
+            { bib.fname.font ", " swap$ * }
+          if$
+        }
+        { "{vv~}{ll}" format.name$ bib.name.font
+          s nameptr
+%<!jnrlst>          "{jj, }{f.}"
+%<jnrlst>          "{f.}{, jj}"
+          format.name$ duplicate$ empty$ 'skip$
+            { bib.fname.font ", " swap$ * }
+          if$
+        }
+      if$
+%</nm-rev1>
+%<*!nm-rev1&nm-revv1>
+      nameptr #1 >
+        { "{ff}" format.name$ duplicate$ empty$ 'skip$
+            { tie.or.space.prefix bib.fname.font swap$ * }
+          if$
+          s nameptr
+          "{vv~}{ll}" format.name$ bib.name.font *
+          s nameptr
+          "{jj}" format.name$ duplicate$ empty$ 'skip$
+            { bib.fname.font ", " swap$ * }
+          if$
+        }
+        { "{vv~}{ll}" format.name$ bib.name.font
+          s nameptr
+%<!jnrlst>          "{jj, }{ff}"
+%<jnrlst>          "{ff}{, jj}"
+          format.name$ duplicate$ empty$ 'skip$
+            { bib.fname.font ", " swap$ * }
+          if$
+        }
+      if$
+%</!nm-rev1&nm-revv1>
+      *
+%</nmft&(fnm-rm|fnm-def)>
+      bibinfo bibinfo.check
+%<*pres-bf|pres-it|pres-sc>
+      type$ "presentation" =
+        { check.speaker }
+        'skip$
+      if$
+%</pres-bf|pres-it|pres-sc>
+      't :=
+      nameptr #1 >
+        {
+%<*nmlm>
+%<m1>          nameptr #1
+%<m2>          nameptr #2
+%<m3>          nameptr #3
+%<m4>          nameptr #4
+%<m5>          nameptr #5
+%<m6>          nameptr #6
+%<m7>          nameptr #7
+%<m8>          nameptr #8
+%<m9>          nameptr #9
+%<m0>          nameptr #0
+%<m10>          #10 +
+%<m20>          #20 +
+%<m30>          #30 +
+%<m40>          #40 +
+%<m50>          #50 +
+%<m60>          #60 +
+%<m70>          #70 +
+%<m80>          #80 +
+%<m90>          #90 +
+          #1 + =
+%<x1>          numnames #1
+%<x2>          numnames #2
+%<x3>          numnames #3
+%<x4>          numnames #4
+%<x5>          numnames #5
+%<x6>          numnames #6
+%<x7>          numnames #7
+%<x8>          numnames #8
+%<x9>          numnames #9
+%<x0>          numnames #0
+%<x10>          #10 +
+%<x20>          #20 +
+%<x30>          #30 +
+%<x40>          #40 +
+%<x50>          #50 +
+%<x60>          #60 +
+%<x70>          #70 +
+%<x80>          #80 +
+%<x90>          #90 +
+          > and
+            { "others" 't :=
+              #1 'namesleft := }
+            'skip$
+          if$
+%</nmlm>
+          namesleft #1 >
+%<!aunm-semi&!aunm-sl>            { ", " * t * }
+%<aunm-semi>            { "; " * t * }
+%<aunm-sl&!aunm-semi>            { "/ " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+%<(and-com|xand)&!aunm-semi&!aunm-sl>              "," *
+%<(and-com|xand)&aunm-semi>              ";" *
+%<(and-com|xand)&aunm-sl&!aunm-semi>              "/" *
+%<*!and-xcom&!and-com&!xand>
+              numnames #2 >
+%<etal-xc>              t "others" = not and
+%<!aunm-semi&!aunm-sl>                { "," * }
+%<aunm-semi>                { ";" * }
+%<aunm-sl&!aunm-semi>                { "/" * }
+                'skip$
+              if$
+%</!and-xcom&!and-com&!xand>
+              t "others" =
+                {
+%<nmft&!nmand-rm&!(fnm-rm|fnm-def)&(etal-it|etal-rm)>                  bib.name.font
+%<*!etal-it>
+%<nmft&(nmand-rm|(fnm-rm|fnm-def))&!etal-rm>                  " " * bbl.etal bib.name.font *
+%<!(nmft&(nmand-rm|(fnm-rm|fnm-def)))|etal-rm>                  " " * bbl.etal *
+%</!etal-it>
+%<etal-it>                  " " * bbl.etal emphasize *
+%<nmft&!nmand-rm&!(fnm-rm|fnm-def)&!(etal-it|etal-rm)>                  bib.name.font
+                }
+%<*!xand>
+                {
+%<*!harnm>
+%<!amper>                  bbl.and
+%<amper>                  "\&"
+%</!harnm>
+%<harnm>                  "\harvardand{}"
+%<nmft&!nmand-rm&(fnm-rm|fnm-def)>                  bib.name.font
+                  space.word * t *
+                }
+%</!xand>
+%<xand>                { " " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+%<*nmft&!nmand-rm&!(fnm-rm|fnm-def)>
+  t "others" =
+    'skip$
+    { bib.name.font }
+  if$
+%</nmft&!nmand-rm&!(fnm-rm|fnm-def)>
+  } if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.names.ed'}
+% When editors are used in place of authors to identify the work, the
+% names are always formatted just like authors'. However, in collections,
+% where ``edited by'' or ``\emph{names} (editors)'' are given, it is
+% normal not to reverse the names, even if the authors' are. The option
+% \texttt{ed-rev} sees to it that editor names are always formatted exactly
+% like those of authors, being reversed if necessary.
+%
+% The option \texttt{ed-au} is identical to \texttt{ed-rev}, but is more
+% logical. It means editors (in incollections) are formatted exactly like
+% authors, with all the font, reversing, and number limitations. This is
+% selected automatically with \texttt{nm-init} and \texttt{nm-} default to save
+% programming memory.
+%
+% The option \texttt{nm-revf} in this case acts the same as the default
+% when no \texttt{nm-} option given: full names with surname last. Therefore
+% it is not necessary to test for it at all, since it, like the default,
+% has the lowest priority: any other \texttt{nm-} option clobbers it.
+%
+% The options \texttt{aunm-semi} and \texttt{aunm-sl} will put a semi-colon or
+% slash between editor names, just as for authors, when \texttt{ed-rev} not
+% selected, in keeping with the idea that in this case both authors and editors
+% are to be formatted the same.
+%
+% This function either dispatches to \texttt{format.names} or executes code
+% which is similar. In the latter case, names are always presented first
+% followed by surname (``last name''); name limit processing (\texttt{nmlm}) is not executed;
+% and endgame processing differs in being qualified by \texttt{nmfted}.
+%
+% Stack note: if the names (second) argument is a non-nil list, this function returns
+% with one object on the stack, the formatted list of names.
+%
+% \texttt{names`string} \texttt{bibinfo`string} \texttt{->} \texttt{author-list`string}
+%    \begin{macrocode}
+FUNCTION {format.names.ed}
+{
+%<ed-rev|ed-au>  format.names
+%<*!ed-rev&!ed-au>
+  'bibinfo :=
+  duplicate$ empty$ 'skip$ {
+  's :=
+  "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+%    \end{macrocode}
+% Editor name is handled as a single object, with no separation of first and last name.
+%    \begin{macrocode}
+%<*!(nmft&nmfted&(fnm-rm|fnm-def))>
+%<nm-init|nm-rev|nm-rev1>      "{f.~}{vv~}{ll}{, jj}"
+%<*!nm-init&!nm-rev&!nm-rev1>
+%<nm-revv1>      "{ff~}{vv~}{ll}{, jj}"
+%<*!nm-revv1>
+%<nm-rv>      "{f{~}~}{vv~}{ll}{ jj}"
+%<*!nm-rv>
+%<nm-rvx>      "{f{}~}{vv~}{ll}{ jj}"
+%<*!nm-rvx>
+%<nm-rvcx>      "{f{}~}{vv~}{ll}{ jj}"
+%<*!nm-rvcx>
+%<nm-rvv|nm-rvvc>      "{f{.}.~}{vv~}{ll}{ jj}"
+%<*!nm-rvv&!nm-rvvc>
+      "{ff~}{vv~}{ll}{, jj}"
+%</!nm-rvv&!nm-rvvc>
+%</!nm-rvcx>
+%</!nm-rvx>
+%</!nm-rv>
+%</!nm-revv1>
+%</!nm-init&!nm-rev&!nm-rev1>
+      format.name$
+%<nm-rv|nm-rvx|nm-rvcx>      remove.dots
+%<nmft&nmfted&nmand-rm>    bib.name.font
+%</!(nmft&nmfted&(fnm-rm|fnm-def))>
+%    \end{macrocode}
+% Editor first and last name handled separately.
+%    \begin{macrocode}
+%<*(nmft&nmfted&(fnm-rm|fnm-def))>
+%<*nm-init|nm-rev|nm-rev1>
+      "{f.}" format.name$ duplicate$ empty$ 'skip$
+        { tie.or.space.prefix bib.fname.font swap$ * }
+      if$
+      s nameptr
+      "{vv~}{ll}" format.name$ bib.name.font *
+      s nameptr
+      "{jj}" format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font ", " swap$ * }
+      if$
+%</nm-init|nm-rev|nm-rev1>
+%<*!nm-init&!nm-rev&!nm-rev1>
+%<*nm-revv1>
+      "{ff}" format.name$ duplicate$ empty$ 'skip$
+        { tie.or.space.prefix bib.fname.font swap$ * }
+      if$
+      s nameptr
+      "{vv~}{ll}" format.name$ bib.name.font *
+      s nameptr
+      "{jj}" format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font ", " swap$ * }
+      if$
+%</nm-revv1>
+%<*!nm-revv1>
+%<*nm-rv>
+      "{f{~}}" format.name$ duplicate$ empty$ 'skip$
+        { tie.or.space.prefix bib.fname.font swap$ * }
+      if$
+      s nameptr
+      "{vv~}{ll}" format.name$ bib.name.font *
+      s nameptr
+      "{jj}" format.name$ duplicate$ empty$ 'skip$
+        { remove.dots bib.fname.font " " swap$ * }
+      if$
+%</nm-rv>
+%<*!nm-rv>
+%<*nm-rvx|nm-rvcx>
+      "{f{}}" format.name$ duplicate$ empty$ 'skip$
+        { tie.or.space.prefix bib.fname.font swap$ * }
+      if$
+      s nameptr
+      "{vv~}{ll}" format.name$ bib.name.font *
+      s nameptr
+      "{jj}" format.name$ duplicate$ empty$ 'skip$
+        { remove.dots bib.fname.font " " swap$ * }
+      if$
+%</nm-rvx|nm-rvcx>
+%<*!nm-rvx&!nm-rvcx>
+%<*nm-rvv|nm-rvvc>
+      "{f{.}.}" format.name$ duplicate$ empty$ 'skip$
+        { tie.or.space.prefix bib.fname.font swap$ * }
+      if$
+      s nameptr
+      "{vv~}{ll}" format.name$ bib.name.font *
+      s nameptr
+      "{jj}" format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font " " swap$ * }
+      if$
+%</nm-rvv|nm-rvvc>
+%<*!nm-rvv&!nm-rvvc>
+      "{ff}" format.name$ duplicate$ empty$ 'skip$
+        { tie.or.space.prefix bib.fname.font swap$ * }
+      if$
+      s nameptr
+      "{vv~}{ll}" format.name$ bib.name.font *
+      s nameptr
+      "{jj}" format.name$ duplicate$ empty$ 'skip$
+        { bib.fname.font ", " swap$ * }
+      if$
+%</!nm-rvv&!nm-rvvc>
+%</!nm-rvx&!nm-rvcx>
+%</!nm-rv>
+%</!nm-revv1>
+%</!nm-init&!nm-rev&!nm-rev1>
+      *
+%</(nmft&nmfted&(fnm-rm|fnm-def))>
+      bibinfo bibinfo.check
+      't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+%<!aunm-semi&!aunm-sl>            { ", " * t * }
+%<aunm-semi>            { "; " * t * }
+%<aunm-sl&!aunm-semi>            { "/ " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+%<(and-com-ed|xand)&!aunm-semi&!aunm-sl>              "," *
+%<(and-com-ed|xand)&aunm-semi>              ";" *
+%<(and-com-ed|xand)&aunm-sl&!aunm-semi>              "/" *
+%<*!and-xcom&!and-com-ed&!xand>
+              numnames #2 >
+%<etal-xc>              t "others" = not and
+%<!aunm-semi&!aunm-sl>                { "," * }
+%<aunm-semi>                { ";" * }
+%<aunm-sl&!aunm-semi>                { "/" * }
+                'skip$
+              if$
+%</!and-xcom&!and-com-ed&!xand>
+              t "others" =
+                {
+
+%<nmft&nmfted&!nmand-rm&!(fnm-rm|fnm-def)&(etal-it|etal-rm)>                  bib.name.font
+%<*!etal-it>
+%<nmft&nmfted&(nmand-rm|(fnm-rm|fnm-def))&!etal-rm>                  " " * bbl.etal bib.name.font *
+%<!(nmft&nmfted&(nmand-rm|(fnm-rm|fnm-def)))|etal-rm>                  " " * bbl.etal *
+%</!etal-it>
+%<etal-it>                  " " * bbl.etal emphasize *
+%<nmft&nmfted&!nmand-rm&!(fnm-rm|fnm-def)&!(etal-it|etal-rm)>                  bib.name.font
+                }
+%<*!xand>
+                {
+%<*!harnm>
+%<!amper>                  bbl.and
+%<amper>                  "\&"
+%</!harnm>
+%<harnm>                  "\harvardand{}"
+%<nmft&nmfted&!nmand-rm&(fnm-rm|fnm-def)>                  bib.name.font
+                  space.word * t *
+                }
+%</!xand>
+%<xand>                { " " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+%<*nmft&nmfted&!nmand-rm&!(fnm-rm|fnm-def)>
+  t "others" =
+    'skip$
+    { bib.name.font }
+  if$
+%</nmft&nmfted&!nmand-rm&!(fnm-rm|fnm-def)>
+  } if$
+%</!ed-rev&!ed-au>
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.key'}
+%    \begin{macrocode}
+%<*ay>
+FUNCTION {format.key}
+{ empty$
+    { key field.or.null }
+    { "" }
+  if$
+}
+
+%</ay>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.authors'}
+%
+%    \begin{macrocode}
+FUNCTION {format.authors}
+{ author "author" format.names
+%<*revdata>
+    duplicate$ empty$ 'skip$
+    { collaboration "collaboration" bibinfo.check
+      duplicate$ empty$ 'skip$
+        { " (" swap$ * ")" * }
+      if$
+      *
+    }
+  if$
+%</revdata>
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`get.bbl.editor'}
+% Use this function universally when accessing the ``editor'' text entity.
+%    \begin{macrocode}
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.editors'}
+% The option \texttt{edpar} puts the word `editor' in parentheses.
+% In \texttt{genbst.mbs}, this occurred automatically with the option
+% \texttt{ed}, to abbreviate `editor' to `ed'. In \texttt{babel.mbs},
+% this was not the case, because of complications with the word functions.
+% Now this possibility is added as a special option, which means there is
+% some inconsistency with older \texttt{.dbj} files that called \texttt{ed}:
+% the abbreviated `ed' is not put in parentheses unless \texttt{edpar} is
+% also called.
+%
+% Note that the code here is very similar to code in \texttt{format.in.ed.booktitle};
+% the two should be kept coordinated.
+%    \begin{macrocode}
+FUNCTION {format.editors}
+{ editor "editor" format.names duplicate$ empty$ 'skip$
+    {
+%<!edpar&!edparxc>      "," *
+      " " *
+      get.bbl.editor
+%<bkedcap>      capitalize
+%<edpar|edparc|edparxc>   "(" swap$ * ")" *
+      *
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.in.editors'}
+% See the note about the option \texttt{edpar} above.
+%
+% \end{macro}
+%
+% \begin{macro}{`format.book.pages'}
+%    \begin{macrocode}
+%<*pg-bk>
+FUNCTION {format.book.pages}
+{ pages "pages" bibinfo.check
+  duplicate$ empty$ 'skip$
+    { " " * bbl.pages * }
+  if$
+}
+%</pg-bk>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.isbn'}
+%    \begin{macrocode}
+%<*isbn>
+FUNCTION {format.isbn}
+{ isbn "isbn" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+%<!blk-com&!blk-tit&!blk-tita>      new.block
+      "ISBN " swap$ *
+    }
+  if$
+}
+
+%</isbn>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.issn'}
+%    \begin{macrocode}
+%<*issn>
+FUNCTION {format.issn}
+{ issn "issn" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+%<!blk-com&!blk-tit&!blk-tita>      new.block
+      "ISSN " swap$ *
+    }
+  if$
+}
+
+%</issn>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.doi'}
+% DOIs like URLs are encapsulated by their own commands, so need no \texttt{bibinfo.check}.
+%    \begin{macrocode}
+%<*doi|(url-doi&!url)>
+FUNCTION {format.doi}
+{ doi empty$
+    { "" }
+    {
+%<!blk-com&!blk-tit&!blk-tita>      new.block
+%<!html>      "\doi{" doi * "}" *
+%<html>      "doi:" doi *
+    }
+  if$
+}
+%</doi|(url-doi&!url)>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`select.language'}
+% The \texttt{language} field code has been provided by Bernd Feige, of the
+% University of Freiburg.
+%    \begin{macrocode}
+%<*lang>
+FUNCTION {select.language}
+{ duplicate$ empty$
+    'pop$
+    { language empty$
+        'skip$
+        { "{\selectlanguage{" language * "}" * swap$ * "}" * }
+      if$
+    }
+    if$
+}
+
+%</lang>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.note'}
+% Notes should be entered as though they were a sentence on their own.
+% However, if they appear mid-sentence rather than after a block or sentence,
+% the first letter must be lowercase. Thus if a note begins with a proper
+% noun, it must be in braces. To avoid a warning about unmatched braces
+% with the \texttt{change.case\$} function, check first if the leading
+% character is an opening brace.
+%
+% With options \texttt{url,url-nt}, the URL text is treated as a note, and
+% added here. It is output directly, not prepended to the note text. This
+% means, if the note is to be a new sentence, the URL text starts that
+% sentence, and the regular note is added to that sentence, comma between.
+%
+%    \begin{macrocode}
+FUNCTION {format.note}
+{
+%<*url-nt&!revdata>
+  url empty$
+    'skip$
+%<!html>    { "\urlprefix\url{" url * "}" * output }
+%<html>    { "<a href=" quote$ * url * quote$
+%<html>      * ">" * url * "</a>" * output }
+  if$
+%</url-nt&!revdata>
+ note empty$
+    { "" }
+    { note #1 #1 substring$
+      duplicate$ "{" =
+        'skip$
+        { output.state mid.sentence =
+          { "l" }
+          { "u" }
+        if$
+        change.case$
+        }
+      if$
+      note #2 global.max$ substring$ * "note" bibinfo.check
+    }
+  if$
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.title'}
+% For a quoted title, any punctuation in the title goes inside the quote.
+% Otherwise, the comma or period following the title also goes inside.
+% Exception is with \texttt{qx} option, in which case the comma goes
+% outside, even when punctuation present; for period (\texttt{!blk-com})
+% is added outside only when punctuation is absent.
+%    \begin{macrocode}
+FUNCTION {format.title}
+{ title
+%<*!atit-u>
+  duplicate$ empty$ 'skip$
+    { "t" change.case$ }
+  if$
+%</!atit-u>
+  "title" bibinfo.check
+%<*tit-it|tit-qq|lang>
+  duplicate$ empty$ 'skip$
+    {
+%<tit-it>      emphasize
+%<*!tit-it&tit-qq>
+      "\enquote{" swap$ *
+%<*!qx>
+%<*blk-com>
+      non.stop
+%<!com-semi&!com-blank>        { ",} " * }
+%<com-semi>        { ";} " * }
+%<!com-semi&com-blank>        { "} " * }
+        { "} " * }
+      if$
+%</blk-com>
+%<!blk-com>      add.period$ "}" *
+%</!qx>
+%<*qx>
+%<*blk-com>
+%<!com-semi&!com-blank>      "}, " *
+%<com-semi>      "}; " *
+%<!com-semi&com-blank>      "} " *
+%</blk-com>
+%<!blk-com>      "}" *
+%</qx>
+%</!tit-it&tit-qq>
+%<lang>      select.language
+    }
+  if$
+%</tit-it|tit-qq|lang>
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`end.quote.title'}
+% For a quoted title, the punctuation appears in the quotes. For commas
+% between block, this means the inter-block punctuation is already present,
+% so it must be suppressed after every \texttt{format.title output}. This
+% is done by setting the \texttt{output.state} to \texttt{before.all}, but
+% only if there really was a title. Call this macro every time after
+% titles are output.
+%    \begin{macrocode}
+%<*blk-com&tit-qq>
+FUNCTION {end.quote.title}
+{ title empty$
+    'skip$
+    { before.all 'output.state := }
+  if$
+}
+%</blk-com&tit-qq>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`end.quote.btitle'}
+% Similar to |end.quote.title| except that it is only applied if titles of
+% proceedings and collections are quoted, and if
+% neither \texttt{edby}, \texttt{edby-par}, nor \texttt{edby-par} are selected
+% (this is the default case in the relevant menu of the \texttt{makebst.tex} run).
+% These options add text after the booktitle,
+% so additional punctuation need not be suppressed. Unless there is no editor!
+%
+% Note: this function is called after the result of \texttt{format.in.ed.booktitle}
+% has been output, and attempts to predict what that output had been.
+% Would it not be better to call this function while that result is still
+% on the stack?
+%    \begin{macrocode}
+%<*bt-qq>
+FUNCTION {end.quote.btitle}
+{ booktitle empty$
+    'skip$
+%<!edby&!edby-par&!edby-parc>    { before.all 'output.state := }
+%<*edby|edby-par|edby-parc>
+    { editor empty$
+        { before.all 'output.state := }
+        'skip$
+      if$
+    }
+%</edby|edby-par|edby-parc>
+  if$
+}
+%</bt-qq>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`make.full.names'}
+% In versions before 2.2, there were two functions \texttt{calc.long.label}
+% and \texttt{format.long.lab.names} that made up the string
+% \texttt{long.label} for each entry. This contains the full author list.
+% However, there was a bug in the one routine, entered by mistake when an
+% earlier bug was removed, and more seriously, the string
+% \texttt{long.label} was limited to \texttt{entry.max\$} characters, 100 on
+% my system. Author lists were truncated.  Thus, \texttt{make.full.names}
+% is used instead to enter the full list of names directly in the
+% \texttt{output.bibitem} function, without an intermediate string. This
+% involves changing the order of some function definitions, especially
+% \texttt{output.bibitem} must come later.
+%    \begin{macrocode}
+%<*har|cay|nat>
+FUNCTION {format.full.names}
+{'s :=
+ "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+%<!jnrlab>      "{vv~}{ll}" format.name$
+%<*jnrlab>
+%<!nm-rv&!nm-rvv&!nm-rvx&!nm-rvcx>      "{vv~}{ll}{, jj}" format.name$
+%<nm-rv|nm-rvv|nm-rvx|nm-rvcx>      "{vv~}{ll}{ jj}" format.name$
+%</jnrlab>
+%<lab&and-rm>      cite.name.font
+      't :=
+      nameptr #1 >
+        {
+%<*nmlm>
+%<m1>          nameptr #1
+%<m2>          nameptr #2
+%<m3>          nameptr #3
+%<m4>          nameptr #4
+%<m5>          nameptr #5
+%<m6>          nameptr #6
+%<m7>          nameptr #7
+%<m8>          nameptr #8
+%<m9>          nameptr #9
+%<m0>          nameptr #0
+%<m10>          #10 +
+%<m20>          #20 +
+%<m30>          #30 +
+%<m40>          #40 +
+%<m50>          #50 +
+%<m60>          #60 +
+%<m70>          #70 +
+%<m80>          #80 +
+%<m90>          #90 +
+          #1 + =
+%<x1>          numnames #1
+%<x2>          numnames #2
+%<x3>          numnames #3
+%<x4>          numnames #4
+%<x5>          numnames #5
+%<x6>          numnames #6
+%<x7>          numnames #7
+%<x8>          numnames #8
+%<x9>          numnames #9
+%<x0>          numnames #0
+%<x10>          #10 +
+%<x20>          #20 +
+%<x30>          #30 +
+%<x40>          #40 +
+%<x50>          #50 +
+%<x60>          #60 +
+%<x70>          #70 +
+%<x80>          #80 +
+%<x90>          #90 +
+          > and
+            { "others" 't :=
+              #1 'namesleft := }
+            'skip$
+          if$
+%</nmlm>
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+%<lab&!and-rm&(etal-it|etal-rm)>                  cite.name.font
+%<*!etal-it>
+%<lab&and-rm&!etal-rm>                  " " * bbl.etal cite.name.font *
+%<!lab|!and-rm|etal-rm>                  " " * bbl.etal *
+%</!etal-it>
+%<etal-it>                  " " * bbl.etal emphasize *
+%<lab&!and-rm&!(etal-it|etal-rm)>                  cite.name.font
+                }
+                {
+%<*!harnm>
+%<*!and-xcom>
+                  numnames #2 >
+                    { "," * }
+                    'skip$
+                  if$
+%</!and-xcom>
+%<!amper>                  bbl.and
+%<amper>                  "\&"
+%</!harnm>
+%<harnm>                  "\harvardand{}"
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+%<*lab&!and-rm>
+  t "others" =
+    'skip$
+    { cite.name.font }
+  if$
+%</lab&!and-rm>
+}
+
+FUNCTION {author.editor.key.full}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.full.names }
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {author.key.full}
+{ author empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {editor.key.full}
+{ editor empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { editor format.full.names }
+  if$
+}
+
+FUNCTION {make.full.names}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.full
+    { type$ "proceedings" =
+        'editor.key.full
+        'author.key.full
+      if$
+    }
+  if$
+}
+
+%</har|cay|nat>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`output.bibitem'}
+% A user has pointed out to me that if the label argument in square brackets
+% are put into braces (within the squares) it is then resistent to any
+% problems if square braces should appear within the label. Do this, but
+% only for the \texttt{nat} option.
+%    \begin{macrocode}
+FUNCTION {output.bibitem}
+{ newline$
+%<*!html>
+%<*ay>
+%<!har&!nat>  "\bibitem[" write$
+%<!har&nat>  "\bibitem[{" write$
+%<har>  "\harvarditem" write$
+%<nmd>  "\protect\citeauthoryear{" write$
+%<ast>  "\protect\astroncite{" write$
+%<cay>  "\protect\citeauthoryear{" make.full.names * "}{" * write$
+%<cn>  "\protect\citename{" write$
+%<!har>  label write$
+%<har>  make.full.names duplicate$ label =
+%<har>    'skip$
+%<har>    { "[" label * "]" * write$ }
+%<har>  if$
+%<har>  "{" swap$ * "}{" * write$
+%<har>  year duplicate$ empty$
+%<cn>  ", }" year duplicate$ empty$
+%<cay|nmd|ast>  "}{" year duplicate$ empty$
+%<(har|cn|cay|nmd|ast)&blkyear>    { pop$ "" }
+%<(har|cn|cay|nmd|ast)&!blkyear>    { pop$ "????" }
+%<har|cn|cay|nmd|ast>    'skip$
+%<har|cn|cay|nmd|ast>  if$
+%<har>  extra.label * "}{" * write$
+%<cn>  * extra.label * "]{" * write$
+%<cay|nmd|ast>  * extra.label * "}]{" * write$
+%<alk>  "]{" write$
+%<!(har|cay|nmd|ast|alk|cn|nat)>  ")]{" write$
+%<nat>  ")" make.full.names duplicate$ short.list =
+%<nat>     { pop$ }
+%<nat>     { * }
+%<nat>   if$
+%<nat>  "}]{" * write$
+%</ay>
+%<!ay&!(cite|alph)>  "\bibitem{" write$
+%<!ay&(cite|alph)>  "\bibitem[" label * "]{" * write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+%</!html>
+%<*html>
+%<*htdes>
+  "<dt><strong><tt>" write$
+  cite$ write$
+  "</tt></strong></dt>" write$ newline$
+  "<dd>"
+%</htdes>
+%<htlist&!htdes>  "<li>"
+%<!htlist&!htdes>  "<p>"
+%</html>
+  before.all 'output.state :=
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`if.digit'}
+% Add \texttt{if.digit} and \texttt{n.separate} to convert large page numbers
+% to a separated number.
+%    \begin{macrocode}
+%<*pgsep-c|pgsep-s|pgsep-p>
+FUNCTION {if.digit}
+{ duplicate$ "0" =
+  swap$ duplicate$ "1" =
+  swap$ duplicate$ "2" =
+  swap$ duplicate$ "3" =
+  swap$ duplicate$ "4" =
+  swap$ duplicate$ "5" =
+  swap$ duplicate$ "6" =
+  swap$ duplicate$ "7" =
+  swap$ duplicate$ "8" =
+  swap$ "9" = or or or or or or or or or
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`n.separate'}
+%  \texttt{pgsep-s}, \texttt{pgsep-p}
+% Large page numbers are to be separated in threes, with thin space, comma
+% or period. The number must be 5 digits before the separation occurs.
+% No provision is made for numbers of 7 or more digits.
+%    \begin{macrocode}
+FUNCTION {n.separate}
+{ 't :=
+  ""
+  #0 'numnames :=
+  { t empty$ not }
+  { t #-1 #1 substring$ if.digit
+      { numnames #1 + 'numnames := }
+      { #0 'numnames := }
+    if$
+    t #-1 #1 substring$ swap$ *
+    t #-2 global.max$ substring$ 't :=
+    numnames #5 =
+      { duplicate$ #1 #2 substring$ swap$
+        #3 global.max$ substring$
+%<pgsep-c>        "," swap$ * *
+%<pgsep-p>        "." swap$ * *
+%<pgsep-s&!html>        "\," swap$ * *
+%<pgsep-s&html>        " " swap$ * *
+      }
+      'skip$
+    if$
+  }
+  while$
+}
+%</pgsep-c|pgsep-s|pgsep-p>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`n.dashify'}
+%    \begin{macrocode}
+FUNCTION {n.dashify}
+{
+%<pgsep-c|pgsep-s|pgsep-p>  n.separate
+  '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$
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`word.in'}
+% The function \texttt{word.in} prints the word \textsl{in} for references
+% that are
+% contained in a larger work, or in conference proceedings. One may have a
+% colon after the word with the option \texttt{in-col}. If blocks of text are
+% to be separated with commas (option \texttt{blk-com}) then the word remains
+% in lower case, as it is defined in \texttt{bbl.in}; but if blocks act as
+% sentences, then it must be capitalized.
+%    \begin{macrocode}
+FUNCTION {word.in}
+%<in-x>{ "" }
+%<*!in-x>
+%<blk-com|blk-tita>{ bbl.in
+%<!blk-com&!blk-tita>{ bbl.in capitalize
+%<in-col>  ":" *
+%<in-it>  emphasize
+  " " * }
+%</!in-x>
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.date'}
+% The new \texttt{harvard.sty} allows variable brackets around the date
+% in the reference list. It uses |\harvardyearleft| and |\harvardyearright|
+% in the \texttt{.bst} files. Allow this with the option \texttt{harnm},
+% which could actually be used without the \texttt{har} option. Note that
+% this overrides the other year formatting options, except for the preceding punctuation.
+%    \begin{macrocode}
+%<*ay>
+FUNCTION {format.date}
+{ year "year" bibinfo.check duplicate$ empty$
+    {
+%<*!blkyear>
+      "empty year in " cite$ * "; set to ????" * warning$
+       pop$ "????"
+%</!blkyear>
+    }
+    'skip$
+  if$
+%<*aymth>
+  month "month" bibinfo.check duplicate$ empty$
+    'skip$
+    {
+%<dtrev>      swap$
+      " " * swap$
+    }
+  if$
+  *
+%<mth-bare>  remove.dots
+%</aymth>
+%<dtbf>  bolden
+  extra.label *
+%<*!harnm>
+%<*yr-par|yr-brk|yr-col|yr-blk|yr-com|yr-per>
+  before.all 'output.state :=
+%<yr-par>  " (" swap$ * ")" *
+%<!yr-par&yr-brk>  " [" swap$ * "]" *
+%<!yr-par&!yr-brk&yr-col>  ": " swap$ *
+%<!yr-par&!yr-brk&!yr-col&yr-com>  ", " swap$ *
+%<!yr-par&!yr-brk&!yr-col&!yr-com&yr-per>  after.sentence 'output.state :=
+%<!yr-par&!yr-brk&!yr-col&!yr-com&!yr-per&yr-blk>  " " swap$ *
+%</yr-par|yr-brk|yr-col|yr-blk|yr-com|yr-per>
+%</!harnm>
+%<*harnm>
+  before.all 'output.state :=
+  " \harvardyearleft " swap$ * "\harvardyearright{}" *
+%<yr-col>  ":" swap$ *
+%<!yr-col&yr-com>  "," swap$ *
+%<!yr-col&!yr-com&yr-per>  after.sentence 'output.state :=
+%<!yr-col&!yr-com&!yr-per&yr-blk>  " " swap$ *
+%</harnm>
+}
+%</ay>
+%<*!ay>
+FUNCTION {format.date}
+{
+%<!xmth>  month "month" bibinfo.check
+%<xmth>  ""
+  duplicate$ empty$
+  year  "year"  bibinfo.check duplicate$ empty$
+    { swap$ 'skip$
+        { "there's a month but no year in " cite$ * warning$ }
+      if$
+      *
+    }
+    { swap$ 'skip$
+        {
+%<showstack> month year
+%<!dtrev>          swap$
+          " " * swap$
+        }
+      if$
+      *
+%<mth-bare>      remove.dots
+    }
+  if$
+%<dtbf>  bolden
+%<*yr-par|yr-brk|yr-col|yr-com|yr-per|yr-blk>
+  duplicate$ empty$
+    'skip$
+    {
+      before.all 'output.state :=
+%<yr-par>    " (" swap$ * ")" *
+%<!yr-par&yr-brk>    " [" swap$ * "]" *
+%<!yr-par&!yr-brk&yr-col>    ": " swap$ *
+%<!yr-par&!yr-brk&!yr-col&yr-com>    ", " swap$ *
+%<!yr-par&!yr-brk&!yr-col&!yr-com&yr-per>    after.sentence 'output.state :=
+%<!yr-par&!yr-brk&!yr-col&!yr-com&!yr-per&yr-blk>    " " swap$ *
+    }
+  if$
+%</yr-par|yr-brk|yr-col|yr-com|yr-per|yr-blk>
+}
+%</!ay>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.year'}
+% For the options that put the year into the journal specifications, use a
+% special formatter separate from the regular date formatter.
+% The year is always in parentheses (except for appended to journal name).
+%    \begin{macrocode}
+%<*jdt-p|jdt-pc|jdt-v|jdt-vs>
+FUNCTION{format.year}
+{ year "year" bibinfo.check duplicate$ empty$
+    {  "empty year in " cite$ *
+%<ay&!blkyear>       "; set to ????" *
+       warning$
+%<ay&!blkyear>       pop$ "????"
+    }
+    {
+%<!ay&jdt-vs>  " (" swap$ * ")" *
+%<!ay&!jdt-vs>  "(" swap$ * ")" *
+    }
+  if$
+%<*ay>
+  extra.label *
+%<jdt-vs>  " (" swap$ * ")" *
+%<!jdt-vs>  "(" swap$ * ")" *
+%</ay>
+}
+%</jdt-p|jdt-pc|jdt-v|jdt-vs>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.btitle'}
+%    \begin{macrocode}
+FUNCTION {format.btitle}
+{ title "title" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+%<!btit-rm>      emphasize
+%<lang>      select.language
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`either.or.check'}
+%    \begin{macrocode}
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.bvolume'}
+%    \begin{macrocode}
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { bbl.volume volume tie.or.space.prefix
+      "volume" bibinfo.check * *
+      series "series" bibinfo.check
+      duplicate$ empty$ 'pop$
+%<*!ser-vol>
+        { swap$ bbl.of space.word * swap$
+          emphasize * }
+%</!ser-vol>
+%<ser-vol>        { emphasize ", " * swap$ * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.number.series'}
+%    \begin{macrocode}
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+%<*num-xser>
+        { series empty$
+            { number "number" bibinfo.check }
+            { output.state mid.sentence =
+                { bbl.number }
+                { bbl.number capitalize }
+              if$
+              number tie.or.space.prefix "number" bibinfo.check * *
+              bbl.in space.word *
+              series "series" bibinfo.check *
+            }
+          if$
+        }
+%</num-xser>
+%<*!num-xser>
+        { output.state mid.sentence =
+            { bbl.number }
+            { bbl.number capitalize }
+          if$
+          number tie.or.space.prefix "number" bibinfo.check * *
+          series empty$
+            { "there's a number but no series in " cite$ * warning$ }
+            { bbl.in space.word *
+              series "series" bibinfo.check *
+            }
+          if$
+        }
+%</!num-xser>
+      if$
+    }
+    { "" }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`is.num'}
+% This function takes the single-character string on the stack and returns
+% 1 if it is a digit, else 0.
+%    \begin{macrocode}
+%<*!xedn>
+FUNCTION {is.num}
+{ chr.to.int$
+  duplicate$ "0" chr.to.int$ < not
+  swap$ "9" chr.to.int$ > not and
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`extract.num'}
+% This function tests the string on the stack to see if it begins with a
+% number. If so, that number is left on the stack; if the string contains
+% no numbers at the start, it is left unchanged. The idea is to convert
+% \textsl{1st} to \textsl{1} and leave \textsl{first} as is.
+% This is used by \code{convert.edition}.
+%    \begin{macrocode}
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+  "" 's :=
+  { t empty$ not }
+  { t #1 #1 substring$
+    t #2 global.max$ substring$ 't :=
+    duplicate$ is.num
+      { s swap$ * 's := }
+      { pop$ "" 't := }
+    if$
+  }
+  while$
+  s empty$
+    'skip$
+    { pop$ s }
+  if$
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`convert.edition'}
+% The function \texttt{convert.edition} takes the text in the field
+% \texttt{edition} and changes it to the language-specific equivalent. As
+% originally planned for \btx, this field should contain the words
+% \textsl{First}, \textsl{Second}, etc. Being so explicit,
+% it is not so easy to translate, nor to
+% convert to \textsl{1st}, \textsl{2nd}, etc., if one wanted.
+% This function carries out the translation, by changing
+% \textsl{first} or \textsl{1} to \texttt{bbl.first}, and so
+% on. The field is reduced to lower case to make it case insensitive. If no
+% translation is found, then the original text in \texttt{edition} is used
+% instead, as it stands. However, if the original is a number greater than
+% the maximum for which text is provided, then \texttt{bbl.th} is added to
+% it.
+%    \begin{macrocode}
+FUNCTION {convert.edition}
+{ extract.num "l" change.case$ 's :=
+  s "first" = s "1" = or
+    { bbl.first 't := }
+    { s "second" = s "2" = or
+        { bbl.second 't := }
+        { s "third" = s "3" = or
+            { bbl.third 't := }
+            { s "fourth" = s "4" = or
+                { bbl.fourth 't := }
+                { s "fifth" = s "5" = or
+                    { bbl.fifth 't := }
+                    { s #1 #1 substring$ is.num
+%<!english&exlang>                        { s bbl.th * 't := }
+%<english|!exlang>                        { s eng.ord 't := }
+                        { edition 't := }
+                      if$
+                    }
+                  if$
+                }
+              if$
+            }
+          if$
+        }
+      if$
+    }
+  if$
+  t
+}
+%</!xedn>
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.edition'}
+% This function formats the text for the edition specification, such as
+% ``Second edition''. It combines the edition number with the word
+% \textsl{edition}.
+%    \begin{macrocode}
+FUNCTION {format.edition}
+{ edition duplicate$ empty$ 'skip$
+    {
+%<!xedn>      convert.edition
+      output.state mid.sentence =
+        { "l" }
+        { "t" }
+      if$ change.case$
+      "edition" bibinfo.check
+      " " * bbl.edition *
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+INTEGERS { multiresult }
+%    \end{macrocode}
+%
+% \begin{macro}{`multi.page.check'}
+%    \begin{macrocode}
+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
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.pages'}
+%    \begin{macrocode}
+FUNCTION {format.pages}
+{ pages duplicate$ empty$ 'skip$
+    { duplicate$ multi.page.check
+        {
+%<!bkpg-x&!ppx>          bbl.pages swap$
+          n.dashify
+        }
+        {
+%<!bkpg-x&!ppx>          bbl.page swap$
+        }
+      if$
+%<!bkpg-x&!ppx>      tie.or.space.prefix
+      "pages" bibinfo.check
+%<!bkpg-x&!ppx>      * *
+%<bkpg-par>     "(" swap$ * ")" *
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`first.page'}
+%    \begin{macrocode}
+%<*jpg-1>
+FUNCTION {first.page}
+{ 't :=
+  ""
+    {  t empty$ not t #1 #1 substring$ "-" = not and }
+    { t #1 #1 substring$ *
+      t #2 global.max$ substring$ 't :=
+    }
+  while$
+}
+
+%</jpg-1>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.journal.pages'}
+% Note: this function gets called with something on the stack.
+% It may be the volume and number.
+%    \begin{macrocode}
+FUNCTION {format.journal.pages}
+{ pages duplicate$ empty$ 'pop$
+    { swap$ duplicate$ empty$
+        { pop$ pop$ format.pages }
+        {
+%<volp-sp>          ": " *
+%<*!volp-sp>
+%<volp-blk>          " " *
+%<*!volp-blk>
+%<volp-com>          ", " *
+%<*!volp-com>
+%<volp-semi>          "; " *
+%<!volp-semi>          ":" *
+%</!volp-com>
+%</!volp-blk>
+%</!volp-sp>
+%<!jdt-v&!jdt-vs&jdt-p>          format.year * " " *
+%<!jdt-v&!jdt-vs&!jdt-p&jdt-pc>          format.year * ", " *
+          swap$
+%<jpg-1>          first.page
+%<!jpg-1>          n.dashify
+%<*jwdpg>
+          pages multi.page.check
+            'bbl.pages
+            'bbl.page
+          if$
+          swap$ tie.or.space.prefix
+%</jwdpg>
+          "pages" bibinfo.check
+%<jwdpg>          * *
+          *
+        }
+      if$
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.journal.eid'}
+%
+% This function is called with something on the stack (journal vol, number)
+% and appends \texttt{eid} and \texttt{numpages} if those field are non-empty.
+% Very similar to \texttt{format.journal.pages}.
+%
+% For the AGU style of including the DOI as part of the EID, the DOI number
+% is appended too.
+%    \begin{macrocode}
+FUNCTION {format.journal.eid}
+{ eid "eid" bibinfo.check
+  duplicate$ empty$ 'pop$
+    { swap$ duplicate$ empty$ 'skip$
+      {
+%<volp-sp>          ": " *
+%<*!volp-sp>
+%<volp-blk>          " " *
+%<*!volp-blk>
+%<volp-com>          ", " *
+%<*!volp-com>
+%<volp-semi>          "; " *
+%<!volp-semi>          ":" *
+%</!volp-com>
+%</!volp-blk>
+%</!volp-sp>
+      }
+      if$
+      swap$ *
+%<*revdata>
+      numpages empty$ 'skip$
+        { bbl.eidpp numpages tie.or.space.prefix
+          "numpages" bibinfo.check * *
+          " (" swap$ * ")" * *
+        }
+      if$
+%</revdata>
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.vol.num.pages'}
+% Version 3.84, I have rationalized several options that placed the date in the
+% journal specifications. It was rather chaotic before, but now it should be
+% more systematic. This means some options have been removed, something that I
+% do not like to do.
+%
+% The option \texttt{pp-last} suppresses the pages in the formatting macros, and
+% sees to it that the pages are added just before any notes in those entries
+% that take pages. This applies to more than just \texttt{article}, but to
+% \texttt{inbook}, \texttt{incollection} as well.
+%
+%    \begin{macrocode}
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+  duplicate$ empty$ 'skip$
+    {
+%<jwdvol>      bbl.volume swap$ tie.or.space.prefix
+      "volume" bibinfo.check
+%<jwdvol>      * *
+    }
+  if$
+%<vol-bf&!vol-2bf>  bolden
+%<!vol-bf&!vol-2bf&vol-it>  emphasize
+%<jdt-v|jdt-vs>  format.year *
+%<*!vnum-x>
+  number "number" bibinfo.check duplicate$ empty$ 'skip$
+    {
+      swap$ duplicate$ empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+      swap$
+%<vnum-sp>      "~(" swap$ * ")" *
+%<!vnum-sp&vnum-cm>      ", " swap$ *
+%<!vnum-sp&!vnum-cm&vnum-nr>      ", " bbl.nr * number tie.or.space.prefix pop$ * swap$ *
+%<!vnum-sp&!vnum-cm&!vnum-nr&vnum-h>      ", \#" swap$ *
+%<!vnum-sp&!vnum-cm&!vnum-nr&!vnum-h&vnum-b>      " " swap$ *
+%<!vnum-sp&!vnum-cm&!vnum-nr&!vnum-h&!vnum-b>      "(" swap$ * ")" *
+    }
+  if$ *
+%<!vol-bf&vol-2bf>  bolden
+%</!vnum-x>
+%<*!pp-last>
+  eid empty$
+    { format.journal.pages }
+    { format.journal.eid }
+  if$
+%</!pp-last>
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.chapter.pages'}
+%    \begin{macrocode}
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+%<!pp-last>    'format.pages
+%<pp-last>    { "" }
+    { type empty$
+        { bbl.chapter }
+        { type "l" change.case$
+          "type" bibinfo.check
+        }
+      if$
+      chapter tie.or.space.prefix
+      "chapter" bibinfo.check
+      * *
+%<*!pp-last>
+      pages empty$
+        'skip$
+        { ", " * format.pages * }
+      if$
+%</!pp-last>
+    }
+  if$
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`bt.enquote'}
+% This is to place the booktitle for proceedings and collections into quotes.
+% If punctuation is to be included, then add a comma unless a stop already
+% exists, or add a period under the only circumstances that
+% |format.in.ed.booktitle| is followed by |new.sentence|.
+%    \begin{macrocode}
+%<*bt-qq>
+FUNCTION {bt.enquote}
+{ duplicate$ empty$ 'skip$
+  { "\enquote{" swap$ *
+%<*!qx>
+    non.stop
+      { ",} " * }
+      { "}, " * }
+    if$
+%</!qx>
+%<*qx>
+    "}, " *
+%</qx>
+  }
+  if$
+}
+%</bt-qq>
+%    \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{`format.booktitle'}
+% The function \texttt{format.booktitle} pushes one object
+% (the book title, suitably encapsulated) onto the stack.
+% It is currently used in \texttt{format.incoll.inproc.crossref}
+% and in \texttt{format.in.ed.booktitle}, and should be used whenever accessing
+% the \texttt{booktitle} field for eventual output.
+%
+% If the book title is empty or missing, the function pushes an empty string.
+%    \begin{macrocode}
+FUNCTION {format.booktitle}
+{
+  booktitle "booktitle" bibinfo.check
+%<!bt-qq&!bt-rm>  emphasize
+%<bt-qq>  bt.enquote
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.in.ed.booktitle'}
+% Prior to version 3.81, the \textsl{Editor} or \textsl{Edited by} in
+% parentheses was meant to be capitalized, but this did not work properly.
+% Now the option \texttt{edcap} produces this, and default is not capitalized.
+%
+% Notes on \dtx{} options:
+% \begin{itemize}
+% \item
+% The following combinations are available through the \texttt{makebst.tex} interface:
+% \begin{quote}
+% \verb+(+ \\
+% \verb+ <default>+ \\
+% \verb+ |edby     (      |edbyx       |edbyy|edbyw[edcap])+ \\
+% \verb+ |edby-par (|edcap|edbyx[edcap]|edbyy             )+ \\
+% \verb+ |edby-parc(|edcap|edbyx                          )+ \\
+% \verb+)+
+% \end{quote}
+% \item
+% \texttt{edby}, \texttt{edby-par}, and \texttt{edby-parc} are mutually exclusive
+% and, except for the default, exhaustive.
+% \item
+% \texttt{edbyx}, \texttt{edbyw}, and \texttt{edbyy} are mutually exclusive
+% and, except for the default, exhaustive.
+% \item
+% \texttt{edcap} is independent of the above two groups of options.
+% \item
+% When parentheses need to be applied, we make sure that the respective
+% \dtx{} guard expressions are mutually exclusive.
+% It makes no sense for \texttt{edbyw} to be in effect if either of
+% \texttt{edby-par} or \texttt{edby-parc} is in effect.
+% \item
+% \texttt{makebst.tex} only activates \texttt{edcap} in certain cases,
+% but we do no checking here, applying it consistently to the
+% ``editor'' text entity.
+% \item
+% The code between \texttt{<!edpar>} and \verb+<edpar\|edparc>+
+% \emph{must} match the corresponding code in \texttt{format.editors}.
+% This means that in the default case, formatting is controlled by
+% a \dtx{} mechanism entirely different from the other cases.
+% \item \texttt{ser-ed} has been added to suit AGU. Result of series plus
+% volume to go between booktitle and editors; must remove \texttt{format.bvolume}
+% from \texttt{incollection} and \texttt{inproceedings}.
+% \end{itemize}
+%
+%    \begin{macrocode}
+FUNCTION {format.in.ed.booktitle}
+{ format.booktitle duplicate$ empty$ 'skip$
+    {
+%<showstack>% btitle
+%<*ser-ed>
+      format.bvolume duplicate$ empty$ 'pop$
+        { ", " swap$ * * }
+      if$
+%</ser-ed>
+      editor "editor" format.names.ed duplicate$ empty$ 'pop$
+        {
+%<*!(edby|edby-par|edby-parc)>
+%<showstack>% btitle ednms
+%<!edpar&!edparxc>          "," *
+          " " *
+          get.bbl.editor
+%<bkedcap>          capitalize
+%<edpar>          "(" swap$ * "), " *
+%<!edpar&(edparc|edparxc)>          "(" swap$ * ") " *
+%<!edpar&!(edparc|edparxc)>          ", " *
+          * swap$
+%<showstack>% eds btitle
+%</!(edby|edby-par|edby-parc)>
+%<*edby|edby-par|edby-parc>
+%<showstack>% btitle ednms
+%<edbyx|edbyy|edbyw>          get.bbl.editor
+%<!(edbyx|edbyy|edbyw)>          bbl.edby
+%<edcap>          capitalize
+%<!(edby-par|edby-parc)&edbyw>          "(" swap$ * ")" *
+%<showstack>% btitle ednms ed
+%<(edby-par|edby)&edbyy>          swap$ "," *
+          " " * swap$ *
+%<showstack>% btitle ednms-ed
+%<(edby-par|edby-parc)&!edbyw>          "(" swap$ * ")" *
+          swap$
+%<edby|edby-parc>          "," *
+          " " * swap$
+%</edby|edby-par|edby-parc>
+%<showstack>% btitle ednms-ed (or ednms-ed btitle)
+          * }
+      if$
+%<showstack>% btitle-ednms-ed (or ednms-ed-btitle) (or btitle)
+      word.in swap$ *
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`empty.misc.check'}
+%    \begin{macrocode}
+%<*!ay>
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+%<!seq-no|alph>  key empty$ not and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+%</!ay>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.thesis.type'}
+%    \begin{macrocode}
+FUNCTION {format.thesis.type}
+{ type duplicate$ empty$
+    'pop$
+    { swap$ pop$
+      "t" change.case$ "type" bibinfo.check
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.tr.number'}
+%    \begin{macrocode}
+FUNCTION {format.tr.number}
+{ number "number" bibinfo.check
+  type duplicate$ empty$
+    { pop$ bbl.techrep }
+    'skip$
+  if$
+  "type" bibinfo.check
+  swap$ duplicate$ empty$
+    { pop$ "t" change.case$ }
+    { tie.or.space.prefix * * }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.article.crossref'}
+% The \texttt{journal} field was emphasized emplicitly, but it should be
+% done by command.
+%    \begin{macrocode}
+FUNCTION {format.article.crossref}
+{
+%<*!ay>
+  key duplicate$ empty$
+    { pop$
+      journal duplicate$ empty$
+        { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
+        { "journal" bibinfo.check emphasize word.in swap$ * }
+      if$
+    }
+    { word.in swap$ * " " *}
+  if$
+%</!ay>
+%<ay>  word.in
+%<!html>  " \cite{" * crossref * "}" *
+%<html>  " <tt>" * crossref * "</tt>" *
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.crossref.editor'}
+%    \begin{macrocode}
+%<*!ay>
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+%<nmft&nmfted&nmand-rm>  bib.name.font
+  "editor" bibinfo.check
+  editor num.names$ duplicate$
+  #2 >
+    { pop$
+%<nmft&nmfted&!nmand-rm&(etal-it|etal-rm)>      bib.name.font
+      "editor" bibinfo.check
+      " " * bbl.etal
+%<etal-it>      emphasize
+      *
+%<nmft&nmfted&!nmand-rm&!(etal-it|etal-rm)>      bib.name.font
+%<nmft&nmfted&!nmand-rm&!(etal-it|etal-rm)>      "others" 't :=
+    }
+    { #2 <
+        'skip$
+        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            {
+%<nmft&nmfted&!nmand-rm&(etal-it|etal-rm)>              bib.name.font
+              "editor" bibinfo.check
+              " " * bbl.etal
+%<etal-it>              emphasize
+              *
+%<nmft&nmfted&!nmand-rm&!(etal-it|etal-rm)>              bib.name.font
+%<nmft&nmfted&!nmand-rm&!(etal-it|etal-rm)>              "others" 't :=
+            }
+            {
+%<*!harnm>
+%<!amper>             bbl.and space.word
+%<amper>              " \& "
+%</!harnm>
+%<harnm>              " \harvardand\ "
+              * editor #2 "{vv~}{ll}" format.name$
+%<nmft&nmfted&nmand-rm>              bib.name.font
+              "editor" bibinfo.check
+              *
+            }
+          if$
+        }
+      if$
+    }
+  if$
+%<*nmft&nmfted&!nmand-rm>
+  t "others" =
+    'skip$
+    { bib.name.font "editor" bibinfo.check }
+  if$
+%</nmft&nmfted&!nmand-rm>
+}
+%</!ay>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.book.crossref'}
+% The \texttt{series} field was emphasized emplicitly, but it should be
+% done by command.
+%    \begin{macrocode}
+FUNCTION {format.book.crossref}
+{ volume duplicate$ empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      pop$ word.in
+    }
+    { bbl.volume
+%<!(blk-com|blk-tita)>      capitalize
+      swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
+    }
+  if$
+%<*!ay>
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { series empty$
+            { "need editor, key, or series for " cite$ * " to crossref " *
+              crossref * warning$
+              "" *
+            }
+            { series emphasize * }
+          if$
+        }
+        { key * }
+      if$
+    }
+    { format.crossref.editor * }
+  if$
+%</!ay>
+%<!html>  " \cite{" * crossref * "}" *
+%<html>  " <tt>" * crossref * "</tt>" *
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.incoll.inproc.crossref'}
+% The \texttt{booktitle} field was emphasized emplicitly, but it should be
+% done by command.
+%    \begin{macrocode}
+FUNCTION {format.incoll.inproc.crossref}
+{
+%<*!ay>
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { format.booktitle duplicate$ empty$
+            { "need editor, key, or booktitle for " cite$ * " to crossref " *
+              crossref * warning$
+            }
+            { word.in swap$ * }
+          if$
+        }
+        { word.in key * " " *}
+      if$
+    }
+    { word.in format.crossref.editor * " " *}
+  if$
+%</!ay>
+%<ay>  word.in
+%<!html>  " \cite{" * crossref * "}" *
+%<html>  " <tt>" * crossref * "</tt>" *
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.org.or.pub'}
+% Psychology journals often want \textit{address}: \textit{publisher}.
+%
+% \textsl{Nature} wants publisher and date in parentheses, and when both
+% are there, they are merged into one set.
+%
+% Call function \texttt{add.blank} before parentheses so suppress preceding
+% punctuation, which looks strange when publisher in parentheses.
+%
+% MPG Jahrbuch wants publisher and year, but without parentheses. Add
+% \texttt{pub-nopar} to be used with \texttt{pub-date}.
+%
+% Have now (3.87.h) extended this function to include the organization, if
+% present. This is for \texttt{inproceedings} and \texttt{proceedings} where
+% the publisher is optional, and organization too. If the publisher is missing,
+% but the organization present, it is formatted like the publisher. This
+% complication comes from styles that want the publisher/organization to have
+% the date included, all in parentheses.
+%
+% This function is called by \texttt{format.publisher.address} and
+% \texttt{format.organization.address}, each putting the appropriate text
+% into the stack first.
+%
+%    \begin{macrocode}
+FUNCTION {format.org.or.pub}
+{ 't :=
+  ""
+%<*pub-date&!ay>
+  year empty$
+    { "empty year in " cite$ * warning$ }
+    'skip$
+  if$
+%</pub-date&!ay>
+%<*!(pub-date&ay)>
+  address empty$ t empty$ and
+%<pub-date>  year empty$ and
+    'skip$
+    {
+%</!(pub-date&ay)>
+%<pub-par|(pub-date&!pub-xpar)>      add.blank "(" *
+%<*add-pub>
+      address "address" bibinfo.check *
+      t empty$
+        'skip$
+%</add-pub>
+%<*!add-pub>
+      t empty$
+        { address "address" bibinfo.check *
+        }
+        { t *
+          address empty$
+            'skip$
+            { ", " * address "address" bibinfo.check * }
+          if$
+        }
+%</!add-pub>
+%<*add-pub>
+        { address empty$
+            'skip$
+            { ": " * }
+          if$
+          t *
+        }
+%</add-pub>
+      if$
+%<*pub-date&!ay>
+      year empty$
+        'skip$
+        { t empty$ address empty$ and
+            'skip$
+%<!pub-xc>            { ", " swap$ * * }
+%<pub-xc>            { " " swap$ * * }
+          if$
+          year "year" bibinfo.check
+%<dtbf>          bolden
+          *
+        }
+      if$
+%</pub-date&!ay>
+%<*pub-date&ay>
+      year duplicate$ empty$
+%<*!blkyear>
+        { "empty year in " cite$ * "; set to ????" * warning$
+           pop$ "????" }
+%</!blkyear>
+%<*blkyear>
+        { "empty year in " cite$ * warning$
+           pop$ "" }
+%</blkyear>
+%<!dtbf>        { "year" bibinfo.check extra.label * }
+%<dtbf>        { "year" bibinfo.check bolden extra.label * }
+      if$
+      t empty$ address empty$ and
+        { * }
+%<!pub-xc>        { ", " swap$ * * }
+%<pub-xc>        { " " swap$ * * }
+      if$
+%</pub-date&ay>
+%<pub-par|(pub-date&!pub-xpar)>      ")" *
+%<*!(pub-date&ay)>
+    }
+  if$
+%</!(pub-date&ay)>
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.publisher.address'}
+%    \begin{macrocode}
+FUNCTION {format.publisher.address}
+{ publisher "publisher" bibinfo.warn format.org.or.pub
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`format.organization.address'}
+%    \begin{macrocode}
+FUNCTION {format.organization.address}
+{ organization "organization" bibinfo.check format.org.or.pub
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`name.or.dash'}
+% This function stores what is on the stack, compares it with previous value,
+% and replaces it with a long dash if they are equal. What is on the stack
+% should be author or editor names for the current entry.
+%    \begin{macrocode}
+%<*nmdash>
+STRINGS {oldname}
+
+FUNCTION {name.or.dash}
+{ 's :=
+   oldname empty$
+     { s 'oldname := s }
+     { s oldname =
+%<*!au-col>
+%<!nmd-2&!nmd-3>         { "---" }
+%<nmd-2&!nmd-3>         { "---{}---" }
+%<nmd-3>         { "---{}---{}---" }
+%</!au-col>
+%<*au-col>
+%<!nmd-2&!nmd-3>         { "---" add.blank }
+%<nmd-2&!nmd-3>         { "---{}---" add.blank }
+%<nmd-3>         { "---{}---{}---" add.blank }
+%</au-col>
+         { s 'oldname := s }
+       if$
+     }
+   if$
+}
+
+%</nmdash>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`article'}
+%    \begin{macrocode}
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<*dt-beg&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
+  format.date "year" output.check
+  date.block
+%</dt-beg&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+%<*!jtit-x>
+  format.title "title" output.check
+%<blk-com&tit-qq>  end.quote.title
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<*blk-tit|blk-tita>
+%<!tit-col>  new.sentence
+%<tit-col>  add.colon
+%</blk-tit|blk-tita>
+%</!jtit-x>
+  crossref missing$
+    {
+      journal
+%<jxper>      remove.dots
+      "journal" bibinfo.check
+%<!jttl-rm>      emphasize
+%<injnl>      word.in swap$ *
+      "journal" output.check
+%<jnm-x>      add.blank
+%<*!dt-beg&!dt-end&dt-jnl&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
+      format.date "year" output.check
+      date.block
+%</!dt-beg&!dt-end&dt-jnl&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
+      format.vol.num.pages output
+%<doi&agu-doi>  format.doi output
+%<*!dt-beg&!dt-end&!dt-jnl&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
+      format.date "year" output.check
+%</!dt-beg&!dt-end&!dt-jnl&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
+    }
+    { format.article.crossref output.nonnull
+%<!pp-last>      format.pages output
+    }
+  if$
+%<*pp-last>
+  eid empty$
+    { format.journal.pages }
+    { format.journal.eid }
+  if$
+%</pp-last>
+%<issn>  format.issn output
+%<(doi|(url-doi&!url))&!agu-doi>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end&!jdt-p&!jdt-pc&!jdt-vs&!jdt-v>
+%<eprint>  format.eprint output
+%<*revdata>
+  format.url output
+%</revdata>
+  fin.entry
+%<harnm|url-nl>  write.url
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`book'}
+%    \begin{macrocode}
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+%<ay>      editor format.key output
+%<!edpar&(edparc|edparxc)&!au-col>      add.blank
+%<au-col>      add.colon
+%<nmdash>      name.or.dash
+    }
+    { format.authors output.nonnull
+%<au-col>      add.colon
+%<nmdash>      name.or.dash
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+%<dt-beg&!pub-date>  format.date "year" output.check
+%<dt-beg&!pub-date>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+%<!blk-com&!blk-tit&!blk-tita>      new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%<!numser>      format.number.series output
+%<pre-edn>      format.edition output
+%<!blk-com&!blk-tit&!blk-tita>      new.sentence
+%<numser>      format.number.series output
+%<pg-bk&pg-pre>      format.book.pages output
+      format.publisher.address output
+    }
+    {
+%<!blk-com&!blk-tit&!blk-tita>      new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+      format.book.crossref output.nonnull
+%<!dt-beg&!dt-end&pub-date>      format.date "year" output.check
+    }
+  if$
+%<!pre-edn>  format.edition output
+%<!dt-beg&!dt-end&!pub-date>  format.date "year" output.check
+%<isbn>  format.isbn output
+%<pg-bk&!pg-pre>  format.book.pages output
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end&!pub-date>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end&!pub-date>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`booklet'}
+%    \begin{macrocode}
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<ay&dt-beg>  format.date "year" output.check
+%<!ay&dt-beg>  format.date output
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+  format.title "title" output.check
+%<blk-com&tit-qq>  end.quote.title
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+  howpublished "howpublished" bibinfo.check output
+  address "address" bibinfo.check output
+%<ay&!dt-beg&!dt-end>  format.date "year" output.check
+%<!ay&!dt-beg&!dt-end>  format.date output
+%<isbn>  format.isbn output
+%<pg-bk>  format.book.pages output
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*ay&!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</ay&!dt-beg&dt-end>
+%<*!ay&!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date output
+%</!ay&!dt-beg&dt-end>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`inbook'}
+% The medical journals, with option \texttt{dt-jnl}, have the date as part of
+% the journal specification. For chapters in books, they want date and pages
+% to appear at the end, with a space between them. (For journals, there is to be
+% no space.) Suppress the chapter specification (for now).
+%
+% The \texttt{dt-jnl} option usually behaves as the default, except for some
+% special entries, like this one.
+%
+% Restore the chapter specification (2004 Feb 9) after someone complained.
+% There are still some bugs here. If some date punctuation is specified, say
+%  with \texttt{yrp-semi} for a semi-colon after the year, this appears always,
+%  even if there is no text following. But then this to be an unlikely wish anyway,
+%  since such punctuation options are best suited for \texttt{dt-beg}.
+%    \begin{macrocode}
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+%<ay>      editor format.key output
+%<au-col>      add.colon
+%<nmdash>      name.or.dash
+    }
+    { format.authors output.nonnull
+%<au-col>      add.colon
+%<nmdash>      name.or.dash
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+%<dt-beg&!pub-date>  format.date "year" output.check
+%<dt-beg&!pub-date>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    {
+%<pre-pub&numser>      format.number.series output
+%<pre-pub>      format.publisher.address output
+      format.bvolume output
+%<*dt-beg|dt-end|!dt-jnl|a|!a>
+      format.chapter.pages "chapter and pages" output.check
+%</dt-beg|dt-end|!dt-jnl|a|!a>
+%<!blk-com&!blk-tit&!blk-tita>      new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%<!numser>      format.number.series output
+%<pre-edn>      format.edition output
+%<!blk-com&!blk-tit&!blk-tita>      new.sentence
+%<!pre-pub&numser>      format.number.series output
+%<!pre-pub>      format.publisher.address output
+    }
+    {
+%<*dt-beg|dt-end|!dt-jnl|a|!a>
+      format.chapter.pages "chapter and pages" output.check
+%</dt-beg|dt-end|!dt-jnl|a|!a>
+%<!blk-com&!blk-tit&!blk-tita>      new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+      format.book.crossref output.nonnull
+%<!dt-beg&!dt-end&!dt-jnl&pub-date>      format.date "year" output.check
+    }
+  if$
+%<!pre-edn>  format.edition output
+%<!dt-beg&!dt-end&!dt-jnl&!pub-date>  format.date "year" output.check
+%<*isbn>
+  crossref missing$
+    { format.isbn output }
+    'skip$
+  if$
+%</isbn>
+%<*(!dt-beg&!dt-end&dt-jnl)&!pub-date>
+  format.date "year" output.check
+  date.block
+%</(!dt-beg&!dt-end&dt-jnl)&!pub-date>
+%<pp-last>  format.pages "pages" output.check
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end&!pub-date>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end&!pub-date>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`incollection'}
+%    \begin{macrocode}
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<dt-beg&!pub-date>  format.date "year" output.check
+%<dt-beg&!pub-date>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+%<*!jtit-x>
+  format.title "title" output.check
+%<blk-com&tit-qq>  end.quote.title
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%</!jtit-x>
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+%<bt-qq>      end.quote.btitle
+%<pre-pub&numser>      format.number.series output
+%<pre-pub>      format.publisher.address output
+%<!ser-ed>      format.bvolume output
+%<!numser>      format.number.series output
+%<pre-edn>      format.edition output
+      format.chapter.pages output
+%<!blk-com&!blk-tit&!blk-tita>      new.sentence
+%<!pre-pub&numser>      format.number.series output
+%<!pre-pub>      format.publisher.address output
+%<!pre-edn>      format.edition output
+%<!dt-beg&!dt-end&!dt-jnl&!pub-date>      format.date "year" output.check
+%<isbn>      format.isbn output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+%<*(!dt-beg&!dt-end&dt-jnl)&!pub-date>
+  format.date "year" output.check
+  date.block
+%</(!dt-beg&!dt-end&dt-jnl)&!pub-date>
+%<pp-last>  format.pages "pages" output.check
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end&!pub-date>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end&!pub-date>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`inproceedings'}
+%    \begin{macrocode}
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<dt-beg&!pub-date>  format.date "year" output.check
+%<dt-beg&!pub-date>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+%<*!jtit-x>
+  format.title "title" output.check
+%<blk-com&tit-qq>  end.quote.title
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%</!jtit-x>
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+%<bt-qq>      end.quote.btitle
+%<*!pre-pub>
+%<!ser-ed>      format.bvolume output
+%<!numser>      format.number.series output
+%<(dt-beg|dt-end|!dt-jnl)&!pp-last>      format.pages output
+%</!pre-pub>
+%<!blk-com&!blk-tit&!blk-tita>      new.sentence
+%<numser>      format.number.series output
+      publisher empty$
+        { format.organization.address output }
+        { organization "organization" bibinfo.check output
+          format.publisher.address output
+        }
+      if$
+%<!dt-beg&!dt-end&!dt-jnl&!pub-date>      format.date "year" output.check
+%<*pre-pub>
+      format.bvolume output
+%<!numser>      format.number.series output
+%<(dt-beg|dt-end|!dt-jnl)&!pp-last>      format.pages output
+%</pre-pub>
+%<isbn>      format.isbn output
+%<issn>      format.issn output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+%<(dt-beg|dt-end|!dt-jnl)&!pp-last>      format.pages output
+    }
+  if$
+%<*!dt-beg&!dt-end&dt-jnl&!pp-last>
+%<!pub-date>  format.date "year" output.check
+%<!pub-date>  date.block
+%<jdt-v|jdt-vs|jdt-p|!jdt-pc>  add.blank
+  format.pages "pages" output.check
+%</!dt-beg&!dt-end&dt-jnl&!pp-last>
+%<pp-last>  format.pages "pages" output.check
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end&!pub-date>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end&!pub-date>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`conference'}
+%    \begin{macrocode}
+FUNCTION {conference} { inproceedings }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`manual'}
+%    \begin{macrocode}
+%<*ay>
+FUNCTION {manual}
+{ output.bibitem
+  format.authors output
+  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<dt-beg>  format.date "year" output.check
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+  format.btitle "title" output.check
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%<!blk-com&!blk-tit&!blk-tita>  organization address new.block.checkb
+  organization "organization" bibinfo.check output
+  address "address" bibinfo.check output
+  format.edition output
+%<!dt-beg&!dt-end>  format.date "year" output.check
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%</ay>
+%<*!ay>
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization "organization" bibinfo.check
+      duplicate$ empty$ 'pop$
+        { output
+          address "address" bibinfo.check output
+        }
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<ay&dt-beg>  format.date "year" output.check
+%<!ay&dt-beg>  format.date output
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+  format.btitle "title" output.check
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+  author empty$
+    { organization empty$
+        {
+%<!blk-com&!blk-tit&!blk-tita>          address new.block.checka
+          address "address" bibinfo.check output
+        }
+        'skip$
+      if$
+    }
+    {
+%<!blk-com&!blk-tit&!blk-tita>      organization address new.block.checkb
+      organization "organization" bibinfo.check output
+      address "address" bibinfo.check output
+    }
+  if$
+  format.edition output
+%<ay&!dt-beg&!dt-end>  format.date "year" output.check
+%<!ay&!dt-beg&!dt-end>  format.date output
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*ay&!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</ay&!dt-beg&dt-end>
+%<*!ay&!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date output
+%</!ay&!dt-beg&dt-end>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%</!ay>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`mastersthesis'}
+% To format a master's thesis.
+%    \begin{macrocode}
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<dt-beg>  format.date "year" output.check
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+%<*!thtit-x>
+%<!thtit-a>  format.btitle
+%<thtit-a>  format.title
+  "title" output.check
+%<thtit-a&blk-com&tit-qq>  end.quote.title
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%</!thtit-x>
+  bbl.mthesis format.thesis.type output.nonnull
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+%<!dt-beg&!dt-end>  format.date "year" output.check
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`misc'}
+%    \begin{macrocode}
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<ay&dt-beg>  format.date "year" output.check
+%<!ay&dt-beg>  format.date output
+%<*ay>
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+  format.title output
+%<blk-com&tit-qq>  end.quote.title
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%</ay>
+%<*!ay>
+%<!blk-com&!blk-tit&!blk-tita>  title howpublished new.block.checkb
+  format.title output
+%<blk-com&tit-qq>  end.quote.title
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%<!blk-com&!blk-tit&!blk-tita>  howpublished new.block.checka
+%</!ay>
+  howpublished "howpublished" bibinfo.check output
+%<ay&!dt-beg&!dt-end>  format.date "year" output.check
+%<!ay&!dt-beg&!dt-end>  format.date output
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*ay&!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</ay&!dt-beg&dt-end>
+%<*!ay&!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date output
+%</!ay&!dt-beg&dt-end>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+%<!ay>  empty.misc.check
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`phdthesis'}
+% To format a doctoral thesis.
+%    \begin{macrocode}
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<dt-beg>  format.date "year" output.check
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+%<*!thtit-x>
+%<!thtit-a>  format.btitle
+%<thtit-a>  format.title
+  "title" output.check
+%<thtit-a&blk-com&tit-qq>  end.quote.title
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%</!thtit-x>
+  bbl.phdthesis format.thesis.type output.nonnull
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+%<!dt-beg&!dt-end>  format.date "year" output.check
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`presentation'}
+%    \begin{macrocode}
+%<*pres>
+FUNCTION {presentation}
+{ output.bibitem
+  format.authors output
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.title output
+%<blk-com&tit-qq>  end.quote.title
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+  format.organization.address "organization and address" output.check
+  month "month" output.check
+  year "year" output.check
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+  new.sentence
+  type missing$ 'skip$
+  {"(" type capitalize * ")" * output}
+    if$
+%<*url-blk&!harnm>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm>
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%</pres>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`proceedings'}
+%    \begin{macrocode}
+%<*ay>
+FUNCTION {proceedings}
+{ output.bibitem
+  format.editors output
+  editor format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<dt-beg>  format.date "year" output.check
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+  format.btitle "title" output.check
+  format.bvolume output
+%<!numser>  format.number.series output
+%<!blk-com&!blk-tit&!blk-tita>  new.sentence
+%<numser>  format.number.series output
+  publisher empty$
+    { format.organization.address output }
+    { organization "organization" bibinfo.check output
+      format.publisher.address output
+    }
+  if$
+%<!dt-beg&!dt-end&!pub-date>  format.date "year" output.check
+%<isbn>  format.isbn output
+%<issn>  format.issn output
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end&!pub-date>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end&!pub-date>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%</ay>
+%    \end{macrocode}
+%    \begin{macrocode}
+%<*!ay>
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization "organization" bibinfo.check output
+    }
+    { format.editors output.nonnull }
+  if$
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<dt-beg>  format.date "year" output.check
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+  format.btitle "title" output.check
+  format.bvolume output
+%<!numser>  format.number.series output
+  editor empty$
+    { publisher empty$
+%<!numser>        'skip$
+%<numser>        {  format.number.series output }
+        {
+%<!blk-com&!blk-tit&!blk-tita>          new.sentence
+%<numser>          format.number.series output
+          format.publisher.address output
+        }
+      if$
+    }
+    { publisher empty$
+        {
+%<!blk-com&!blk-tit&!blk-tita>          new.sentence
+%<numser>          format.number.series output
+          format.organization.address output }
+        {
+%<!blk-com&!blk-tit&!blk-tita>          new.sentence
+%<numser>          format.number.series output
+          organization "organization" bibinfo.check output
+          format.publisher.address output
+        }
+      if$
+     }
+  if$
+%<!dt-beg&!dt-end&!pub-date>      format.date "year" output.check
+%<isbn>  format.isbn output
+%<issn>  format.issn output
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%</!ay>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`techreport'}
+%    \begin{macrocode}
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<dt-beg>  format.date "year" output.check
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+%<trtit-b>  format.btitle
+%<!trtit-b>  format.title
+  "title" output.check
+%<!trtit-b&blk-com&tit-qq>  end.quote.title
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<blk-tit&!tit-col>  new.sentence
+%<blk-tit&tit-col>  add.colon
+%<!trnum-it>  format.tr.number output.nonnull
+%<trnum-it>  format.tr.number emphasize output.nonnull
+  institution "institution" bibinfo.warn output
+  address "address" bibinfo.check output
+%<!dt-beg&!dt-end>  format.date "year" output.check
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note output
+%<*!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date "year" output.check
+%</!dt-beg&dt-end>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`unpublished'}
+%    \begin{macrocode}
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+%<ay>  author format.key output
+%<au-col>  add.colon
+%<nmdash>  name.or.dash
+%<ay&dt-beg>  format.date "year" output.check
+%<!ay&dt-beg>  format.date output
+%<dt-beg>  date.block
+%<!dt-beg&!blk-com&!blk-tit&!blk-tita>  new.block
+  format.title "title" output.check
+%<blk-com&tit-qq>  end.quote.title
+%<ay&!dt-beg&!dt-end>  format.date "year" output.check
+%<!ay&!dt-beg&!dt-end>  format.date output
+%<doi|(url-doi&!url)>  format.doi output
+%<*url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.url output
+%</url-blk&!harnm&!revdata>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+%<(blk-com|blk-tit|blk-tita)&blknt>  new.sentence
+  format.note "note" output.check
+%<*ay&!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date output
+%</ay&!dt-beg&dt-end>
+%<*!ay&!dt-beg&dt-end>
+%<!blk-com&!blk-tit&!blk-tita>  new.block
+  format.date output
+%</!ay&!dt-beg&dt-end>
+%<eprint>  format.eprint output
+%<revdata>  format.url output
+  fin.entry
+%<(harnm|url-nl)&!revdata>  write.url
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`default.type'}
+%    \begin{macrocode}
+FUNCTION {default.type} { misc }
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+READ
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*ay|alph|!seq-no>
+%    \end{macrocode}
+%
+% \begin{macro}{`sortify'}
+% In \texttt{btxbst.doc}/\texttt{.mbs}, the \texttt{sortify} function is
+% left out for unsorted alpha-style citations. This leads to an error,
+% because it is still used. So leave it in here too. \emph{In fact, do away
+% with unsorted alpha style, since it is as useless as unsorted author--year
+% listings.}
+%    \begin{macrocode}
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+INTEGERS { len }
+%    \end{macrocode}
+%
+% \begin{macro}{`chop.word'}
+%    \begin{macrocode}
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%<*!ay&alph>
+%    \end{macrocode}
+%
+% \begin{macro}{`format.lab.names'}
+% The function \texttt{format.lab.names} formats by author--year or the
+% \texttt{alpha} style as in the original \texttt{alpha.bst}.
+% Only major difference is that there should be no unsorted (\texttt{seq-no})
+% versions of this. Patashnik was clearly very unhappy about accommodating
+% such an animal, and in fact, his unsorted alpha style crashes \btx.
+% I also provide the \texttt{vonx} option here to ignore the \textsl{von}
+% part of the name.
+%
+%    \begin{macrocode}
+INTEGERS { et.al.char.used }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+FUNCTION {initialize.et.al.char.used}
+{ #0 'et.al.char.used :=
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+EXECUTE {initialize.et.al.char.used}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+FUNCTION {format.lab.names}
+{ 's :=
+%<*alf-1>
+%<!vonx>  s #1 "{v{}}{l{}}" format.name$
+%<vonx>  s #1 "{l{}}" format.name$
+  duplicate$ text.length$ #2 <
+    { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
+      'skip$
+    if$
+%</alf-1>
+%<*!alf-1&alf-f>
+%<!vonx>  s #1 "{vv{}}{ll}" format.name$
+%<vonx>  s #1 "{ll}" format.name$
+%</!alf-1&alf-f>
+%<*!alf-1&!alf-f>
+  s num.names$ 'numnames :=
+  numnames #1 >
+    { numnames #4 >
+        { #3 'namesleft := }
+        { numnames 'namesleft := }
+      if$
+      #1 'nameptr :=
+      ""
+        { namesleft #0 > }
+        { nameptr numnames =
+            { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+                { "{\etalchar{+}}" *
+                  #1 'et.al.char.used :=
+                }
+%<!vonx>                { s nameptr "{v{}}{l{}}" format.name$ * }
+%<vonx>                { s nameptr "{l{}}" format.name$ * }
+              if$
+            }
+%<!vonx>            { s nameptr "{v{}}{l{}}" format.name$ * }
+%<vonx>            { s nameptr "{l{}}" format.name$ * }
+          if$
+          nameptr #1 + 'nameptr :=
+          namesleft #1 - 'namesleft :=
+        }
+      while$
+      numnames #4 >
+        { "{\etalchar{+}}" *
+          #1 'et.al.char.used :=
+        }
+        'skip$
+      if$
+    }
+%<!vonx>    { s #1 "{v{}}{l{}}" format.name$
+%<vonx>    { s #1 "{l{}}" format.name$
+      duplicate$ text.length$ #2 <
+        { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
+        'skip$
+      if$
+    }
+  if$
+%</!alf-1&!alf-f>
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</!ay&alph>
+%    \end{macrocode}
+% The function for the standard citation: one or two authors cited full, but for
+%  more than two, only the first with \emph{et~al.} given.
+%    \begin{macrocode}
+%<*ay&!mcite>
+FUNCTION {format.lab.names}
+{ 's :=
+  "" 't :=
+%<!jnrlab>  s #1 "{vv~}{ll}" format.name$
+%<*jnrlab>
+%<!nm-rv&!nm-rvv&!nm-rvx&!nm-rvcx>  s #1 "{vv~}{ll}{, jj}" format.name$
+%<nm-rv|nm-rvv|nm-rvx|nm-rvcx>  s #1 "{vv~}{ll}{ jj}" format.name$
+%</jnrlab>
+%<lab&and-rm>  cite.name.font
+  s num.names$ duplicate$
+  #2 >
+    { pop$
+%<lab&!and-rm&(etal-it|etal-rm)>      cite.name.font
+%<*!etal-it>
+%<lab&and-rm&!etal-rm>      " " * bbl.etal cite.name.font *
+%<!lab|!and-rm|etal-rm>      " " * bbl.etal *
+%</!etal-it>
+%<etal-it>      " " * bbl.etal emphasize *
+%<lab&!and-rm&!(etal-it|etal-rm)>      cite.name.font
+%<lab&!and-rm>      "others" 't :=
+    }
+    { #2 <
+        'skip$
+        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            {
+% %<lab&!and-rm&(etal-it|etal-rm)>              cite.name.font
+%<*!etal-it>
+%<lab&and-rm&!etal-rm>              " " * bbl.etal cite.name.font *
+%<!lab|!and-rm|etal-rm>              " " * bbl.etal *
+%</!etal-it>
+%<etal-it>              " " * bbl.etal emphasize *
+%<lab&!and-rm&!(etal-it|etal-rm)>              cite.name.font
+%<lab&!and-rm>              "others" 't :=
+            }
+%<*!harnm>
+%<*!amper>
+            { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
+%<lab&and-rm>              cite.name.font
+              * }
+%</!amper>
+%<*amper>
+            { " \& " * s #2 "{vv~}{ll}" format.name$
+%<lab&and-rm>              cite.name.font
+              * }
+%</amper>
+%</!harnm>
+%<*harnm>
+            { " \harvardand{} " * s #2 "{vv~}{ll}" format.name$
+%<lab&and-rm>              cite.name.font
+              * }
+%</harnm>
+          if$
+        }
+      if$
+    }
+  if$
+%<*lab&!and-rm>
+  t "others" =
+    'skip$
+    { cite.name.font }
+  if$
+%</lab&!and-rm>
+}
+
+%</ay&!mcite>
+%    \end{macrocode}
+%
+% The code for formating author--year citations with more than one author
+% before \emph{et al.} or selecting a number other than two for truncating,
+% is much the same as the \texttt{format.full.names} function.
+%    \begin{macrocode}
+%<*ay&mcite>
+FUNCTION {format.lab.names}
+{'s :=
+ "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+%<!jnrlab>      "{vv~}{ll}" format.name$
+%<*jnrlab>
+%<!nm-rv&!nm-rvv&!nm-rvx&!nm-rvcx>      "{vv~}{ll}{, jj}" format.name$
+%<nm-rv|nm-rvv|nm-rvx|nm-rvcx>      "{vv~}{ll}{ jj}" format.name$
+%</jnrlab>
+%<lab&and-rm>      cite.name.font
+      't :=
+      nameptr #1 >
+        {
+%<mct-1>          nameptr #2 =
+%<mct-2>          nameptr #3 =
+%<mct-3>          nameptr #4 =
+%<mct-4>          nameptr #5 =
+%<mct-5>          nameptr #6 =
+%<mct-6>          nameptr #7 =
+%<mct-x2>          numnames #2 > and
+%<mct-x3>          numnames #3 > and
+%<mct-x4>          numnames #4 > and
+%<mct-x5>          numnames #5 > and
+%<mct-x6>          numnames #6 > and
+            { "others" 't :=
+              #1 'namesleft := }
+            'skip$
+          if$
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+%<lab&!and-rm&(etal-it|etal-rm)>                  cite.name.font
+%<*!etal-it>
+%<lab&and-rm&!etal-rm>                  " " * bbl.etal cite.name.font *
+%<!lab|!and-rm|etal-rm>                  " " * bbl.etal *
+%</!etal-it>
+%<etal-it>                  " " * bbl.etal emphasize *
+%<lab&!and-rm&!(etal-it|etal-rm)>                  cite.name.font
+                }
+                {
+%<*!harnm>
+%<*!and-xcom>
+                  numnames #2 >
+                    { "," * }
+                    'skip$
+                  if$
+%</!and-xcom>
+%<!amper>                  bbl.and
+%<amper>                  "\&"
+%</!harnm>
+%<harnm>                  "\harvardand{}"
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+%<*lab&!and-rm>
+  t "others" =
+    'skip$
+    { cite.name.font }
+  if$
+%</lab&!and-rm>
+}
+
+%</ay&mcite>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`author.key.label'}
+% \begin{macro}{`author.editor.key.label'}
+% \begin{macro}{`author.key.organization.label'}
+% \begin{macro}{`editor.key.organization.label'}
+% \begin{macro}{`editor.key.label'}
+% Have to be very careful with the options \texttt{ay}, \texttt{alph}, and
+% \texttt{seq-no} here. The first two are actually mutually exclusive, and
+% \texttt{ay} should dominate. The \texttt{seq-no} option only applies for
+% numerical (\texttt{!ay}) but not alphabetic (\texttt{alph}) selections.
+% This whole block of coding dealing with labels is only included for
+% author--year or alphabetic or ordered numerical.
+% That is, \texttt{ay} or \texttt{alph} or \texttt{!seq-no} is true.
+%    \begin{macrocode}
+%<*ay|alph>
+FUNCTION {author.key.label}
+{ author empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+%<ay>        'key
+%<!ay>        { key #3 text.prefix$ }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+%<ay>            'key
+%<!ay>            { key #3 text.prefix$ }
+          if$
+        }
+        { editor format.lab.names }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+%</ay|alph>
+%<*!ay&alph>
+FUNCTION {author.key.organization.label}
+{ author empty$
+    { key empty$
+        { organization empty$
+            { cite$ #1 #3 substring$ }
+            { "The " #4 organization chop.word #3 text.prefix$ }
+          if$
+        }
+        { key #3 text.prefix$ }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {editor.key.organization.label}
+{ editor empty$
+    { key empty$
+        { organization empty$
+            { cite$ #1 #3 substring$ }
+            { "The " #4 organization chop.word #3 text.prefix$ }
+          if$
+        }
+        { key #3 text.prefix$ }
+      if$
+    }
+    { editor format.lab.names }
+  if$
+}
+
+%</!ay&alph>
+%<*ay>
+FUNCTION {editor.key.label}
+{ editor empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    { editor format.lab.names }
+  if$
+}
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{`calc.short.authors'}
+%    \begin{macrocode}
+FUNCTION {calc.short.authors}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.label
+    { type$ "proceedings" =
+        'editor.key.label
+        'author.key.label
+      if$
+    }
+  if$
+  'short.list :=
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`calc.label'}
+%    \begin{macrocode}
+FUNCTION {calc.label}
+{ calc.short.authors
+  short.list
+%<!(har|ast|cay|nmd|alk|cn)>  "("
+%<har|ast|cay|nmd|alk|cn>  ", "
+  *
+  year duplicate$ empty$
+%<keyxyr>  short.list key field.or.null = or
+%<(blkyear|keyxyr)>     { pop$ "" }
+%<!(blkyear|keyxyr)>     { pop$ "????" }
+%<!note-yr>     { purify$ #-1 #4 substring$ }
+%<note-yr>     'skip$
+  if$
+  *
+  'label :=
+}
+
+%</ay>
+%<*!ay&alph>
+FUNCTION {calc.label}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.label
+    { type$ "proceedings" =
+        'editor.key.organization.label
+        { type$ "manual" =
+            'author.key.organization.label
+            'author.key.label
+          if$
+        }
+      if$
+    }
+  if$
+  duplicate$
+  year field.or.null purify$ #-1 #2 substring$
+  *
+  'label :=
+  year field.or.null purify$ #-1 #4 substring$
+  *
+  sortify 'sort.label :=
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</!ay&alph>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*ay>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*har|cay|nmd|ast|cn>
+%    \end{macrocode}
+%
+% \begin{macro}{`calc.short.label'}
+%    \begin{macrocode}
+FUNCTION {calc.short.label}
+{ calc.short.authors short.list
+  'label :=
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</har|cay|nmd|ast|cn>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</ay>
+%    \end{macrocode}
+%
+% \begin{macro}{`sort.format.names'}
+%    \begin{macrocode}
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+%<*xintls>
+%<!vonx>      "{vv{ } }{ll{ }}"
+%<vonx>      "{ll{ }}"
+%</xintls>
+%<*!xintls>
+%<*!nm-init&!nm-rev&!nm-rev1&!nm-rv&!nm-rvx&!nm-rvcx&!nm-rvv&!nm-rvvc>
+%<!vonx>      "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}"
+%<vonx>      "{ll{ }}{  ff{ }}{  jj{ }}"
+%</!nm-init&!nm-rev&!nm-rev1&!nm-rv&!nm-rvx&!nm-rvcx&!nm-rvv&!nm-rvvc>
+%<*nm-init|nm-rev|nm-rev1|nm-rv|nm-rvx|nm-rvcx|nm-rvv|nm-rvvc>
+%<!vonx>      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
+%<vonx>      "{ll{ }}{  f{ }}{  jj{ }}"
+%</nm-init|nm-rev|nm-rev1|nm-rv|nm-rvx|nm-rvcx|nm-rvv|nm-rvvc>
+%</!xintls>
+      format.name$ 't :=
+      nameptr #1 >
+        {
+%<*nmlm>
+%<m1>          nameptr #1
+%<m2>          nameptr #2
+%<m3>          nameptr #3
+%<m4>          nameptr #4
+%<m5>          nameptr #5
+%<m6>          nameptr #6
+%<m7>          nameptr #7
+%<m8>          nameptr #8
+%<m9>          nameptr #9
+%<m0>          nameptr #0
+%<m10>          #10 +
+%<m20>          #20 +
+%<m30>          #30 +
+%<m40>          #40 +
+%<m50>          #50 +
+%<m60>          #60 +
+%<m70>          #70 +
+%<m80>          #80 +
+%<m90>          #90 +
+          #1 + =
+%<x1>          numnames #1
+%<x2>          numnames #2
+%<x3>          numnames #3
+%<x4>          numnames #4
+%<x5>          numnames #5
+%<x6>          numnames #6
+%<x7>          numnames #7
+%<x8>          numnames #8
+%<x9>          numnames #9
+%<x0>          numnames #0
+%<x10>          #10 +
+%<x20>          #20 +
+%<x30>          #30 +
+%<x40>          #40 +
+%<x50>          #50 +
+%<x60>          #60 +
+%<x70>          #70 +
+%<x80>          #80 +
+%<x90>          #90 +
+          > and
+            { "others" 't :=
+              #1 'namesleft := }
+            'skip$
+          if$
+%</nmlm>
+          "   "  *
+          namesleft #1 = t "others" = and
+            { "zzzzz" 't := }
+            'skip$
+          if$
+%<*seq-lab|seq-key|seq-labc>
+          numnames #2 > nameptr #2 = and
+            { "zz" * year field.or.null * "   " *
+%<seq-labc>              #1 'namesleft :=
+            }
+%<seq-labc>            { t sortify * }
+%<!seq-labc>            'skip$
+          if$
+%</seq-lab|seq-key|seq-labc>
+%<!seq-labc>          t sortify *
+        }
+        { t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`sort.format.title'}
+%    \begin{macrocode}
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`author.sort'}
+%    \begin{macrocode}
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+        { "to sort, need author or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`author.editor.sort'}
+%    \begin{macrocode}
+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$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`negate.year'}
+% This function negates the year by substituting each digit by its
+% complement. That is, 0 $\rightarrow$ 9, 1 $\rightarrow$ 8, etc. This is used
+% to provide ordering by descending year (latest year first).
+%    \begin{macrocode}
+%<*seq-yrr&!seq-yr>
+FUNCTION {negate.year}
+{ year empty$
+    { "99999" }
+    { year #1 #1 substring$ chr.to.int$ #105 swap$ - int.to.chr$
+      year #2 #1 substring$ chr.to.int$ #105 swap$ - int.to.chr$ *
+      year #3 #1 substring$ chr.to.int$ #105 swap$ - int.to.chr$ *
+      year #4 #1 substring$ chr.to.int$ #105 swap$ - int.to.chr$ *
+    }
+    if$
+}
+%</seq-yrr&!seq-yr>
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%<*ay>
+%    \end{macrocode}
+%
+% \begin{macro}{`editor.sort'}
+%    \begin{macrocode}
+FUNCTION {editor.sort}
+{ editor empty$
+    { key empty$
+        { "to sort, need editor or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%<*seq-no>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+INTEGERS { seq.num }
+%    \end{macrocode}
+%
+% \begin{macro}{`init.seq'}
+%    \begin{macrocode}
+FUNCTION {init.seq}
+{ #0 'seq.num :=}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+EXECUTE {init.seq}
+%    \end{macrocode}
+%
+% \begin{macro}{`int.to.fix'}
+%    \begin{macrocode}
+FUNCTION {int.to.fix}
+{ "000000000" swap$ int.to.str$ *
+  #-1 #10 substring$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</seq-no>
+%    \end{macrocode}
+%
+% \begin{macro}{`presort'}
+% For unsorted author--year, make up the final sorting order in
+% \texttt{sort.label} with the original sequence number, for unsorting later.
+%    \begin{macrocode}
+FUNCTION {presort}
+{ calc.label
+  label sortify
+  "    "
+  *
+%<*!seq-no>
+  type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+        'editor.sort
+        'author.sort
+      if$
+    }
+  if$
+  #1 entry.max$ substring$
+%</!seq-no>
+%<*seq-no>
+  seq.num #1 + 'seq.num :=
+  seq.num  int.to.fix
+%</seq-no>
+  'sort.label :=
+  sort.label
+  *
+%<seq-yr>  "    " * year field.or.null *
+%<seq-yrr&!seq-yr>  "    " * negate.year field.or.null *
+%<*!seq-key&!seq-labc&!seq-yr&!seq-yrr>
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+%</!seq-key&!seq-labc&!seq-yr&!seq-yrr>
+%<seq-key|seq-yr|seq-yrr>  "    " * cite$ *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+%  "For " cite$ * ", sort.key=" * sort.key$ * warning$
+}
+
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</ay>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*!ay>
+%    \end{macrocode}
+%
+% \begin{macro}{`author.organization.sort'}
+%    \begin{macrocode}
+FUNCTION {author.organization.sort}
+{ author empty$
+    { organization empty$
+        { key empty$
+            { "to sort, need author, organization, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { "The " #4 organization chop.word sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`editor.organization.sort'}
+%    \begin{macrocode}
+FUNCTION {editor.organization.sort}
+{ editor empty$
+    { organization empty$
+        { key empty$
+            { "to sort, need editor, organization, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { "The " #4 organization chop.word sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`presort'}
+%    \begin{macrocode}
+FUNCTION {presort}
+%<*alph>
+{ calc.label
+  sort.label
+  "    "
+  *
+  type$ "book" =
+%</alph>
+%<!alph>{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+        'editor.organization.sort
+        { type$ "manual" =
+            'author.organization.sort
+            'author.sort
+          if$
+        }
+      if$
+    }
+  if$
+%<alph>  *
+  "    "
+  *
+%<seq-yrr>  negate.year field.or.null sortify
+%<!seq-yrr>  year field.or.null sortify
+%<!(seq-yr|seq-yrr)|alph>  *
+  "    "
+  *
+%<(seq-yr|seq-yrr)&!alph>  swap$ *
+  title field.or.null
+  sort.format.title
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</!ay>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+ITERATE {presort}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+SORT
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</ay|alph|!seq-no>
+%    \end{macrocode}
+%
+% With version~6.0 of \texttt{natbib}, the author-year styles can also be
+% used for numerical citations; then the \texttt{thebibliography} environment
+% must have an argument indicating the length of the longest label.
+% Simply count the references and add this number as the argument.
+%    \begin{macrocode}
+%<*ay>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+STRINGS { last.label next.extra }
+%    \end{macrocode}
+%
+% With computer-generated articles, it is possible to have more than 26 articles
+% in one year. It has finally occurred that the extra labels go beyond `z'.
+% The current code now allows for `aa', \dots `az', 'ba', \dots `zz'. This
+% code was provided by Joseph Wright (2007 Oct 10).
+%    \begin{macrocode}
+INTEGERS { last.extra.num last.extra.num.extended last.extra.num.blank number.label }
+%    \end{macrocode}
+%
+% \begin{macro}{`initialize.extra.label.stuff'}
+%    \begin{macrocode}
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+  "" 'next.extra :=
+  #0 'last.extra.num :=
+  "a" chr.to.int$ #1 - 'last.extra.num.blank :=
+  last.extra.num.blank 'last.extra.num.extended :=
+  #0 'number.label :=
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`forward.pass'}
+%    \begin{macrocode}
+FUNCTION {forward.pass}
+{ last.label label =
+    { last.extra.num #1 + 'last.extra.num :=
+      last.extra.num "z" chr.to.int$ >
+       { "a" chr.to.int$ 'last.extra.num :=
+         last.extra.num.extended #1 + 'last.extra.num.extended :=
+       }
+       'skip$
+      if$
+      last.extra.num.extended last.extra.num.blank >
+        { last.extra.num.extended int.to.chr$
+          last.extra.num int.to.chr$
+          * 'extra.label := }
+        { last.extra.num int.to.chr$ 'extra.label := }
+      if$
+    }
+    { "a" chr.to.int$ 'last.extra.num :=
+      "" 'extra.label :=
+      label 'last.label :=
+    }
+  if$
+  number.label #1 + 'number.label :=
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</ay>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*!ay&alph>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+STRINGS { longest.label last.sort.label next.extra }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+INTEGERS { longest.label.width last.extra.num }
+%    \end{macrocode}
+%
+% \begin{macro}{`initialize.longest.label'}
+%    \begin{macrocode}
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #0 int.to.chr$ 'last.sort.label :=
+  "" 'next.extra :=
+  #0 'longest.label.width :=
+  #0 'last.extra.num :=
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{`forward.pass'}
+%    \begin{macrocode}
+FUNCTION {forward.pass}
+{ last.sort.label sort.label =
+    { last.extra.num #1 + 'last.extra.num :=
+      last.extra.num int.to.chr$ 'extra.label :=
+    }
+    { "a" chr.to.int$ 'last.extra.num :=
+      "" 'extra.label :=
+      sort.label 'last.sort.label :=
+    }
+  if$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</!ay&alph>
+%    \end{macrocode}
+%
+% \begin{macro}{`reverse.pass'}
+% The extra label is added in braces so that natbib can treat it as one unit.
+% This allows extra labels to be more than one letter long. For non-NFSS
+% emphasizing, this is no problem, since labels go in |{\em a}|, but for
+% non-emphasizing and for NFSS, it caused troubles without the braces.
+% The trouble arises with multiple citations in one |\cite| in which
+% authors and years are the same, and only the extra label is given for
+% the next one. Note: |\emph{a}| is more than one letter long in this sense,
+% so it is not just a problem for more than 26 papers with same authors and
+% year.
+%
+% The command |\natexlab| now encloses the extra label for \texttt{natbib}
+% styles. This command normally just prints its argument, but for numerical
+% citation mode, it swallows its argument. This allows the extra labels to
+% be suppressed for numerical citations where they are superfluous.
+% The enclosing braces mentioned above must be included here to make the
+% entire extra label text a single token for \texttt{natbib}.
+%    \begin{macrocode}
+%<*ay>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+    { "a" 'extra.label := }
+    'skip$
+  if$
+  extra.label 'next.extra :=
+  extra.label
+%<xlab-it>  emphasize
+%<*!html>
+  duplicate$ empty$
+    'skip$
+    { "{\natexlab{" swap$ * "}}" * }
+  if$
+%</!html>
+  'extra.label :=
+%<!(har|ast|cay|nmd|cn)>  label extra.label * 'label :=
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</ay>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*!ay&alph>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+    { "a" 'extra.label := }
+    'skip$
+  if$
+  label extra.label * 'label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+  extra.label 'next.extra :=
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</!ay&alph>
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%<ay>EXECUTE {initialize.extra.label.stuff}
+%<!ay&alph>EXECUTE {initialize.longest.label}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*ay|alph>
+ITERATE {forward.pass}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+REVERSE {reverse.pass}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</ay|alph>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*ay>
+FUNCTION {bib.sort.order}
+{ sort.label
+  "    "
+  *
+%<seq-yrr>  negate.year field.or.null sortify
+%<!seq-yrr>  year field.or.null sortify
+%<(seq-yr|seq-yrr)&!(seq-lab|seq-key|seq-labc)>  swap$
+  *
+%<*!seq-key&!seq-labc&!seq-yr&!seq-yrr>
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+%</!seq-key&!seq-labc&!seq-yr&!seq-yrr>
+%<seq-key|seq-yr|seq-yrr>  "    " * cite$ *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+%  "For " cite$ * ", bib.sort.key=" * sort.key$ * warning$
+%<har|cay|nmd|cn|ast>  calc.short.label
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+ITERATE {bib.sort.order}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+SORT
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</ay>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*!ay&!alph>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+STRINGS { longest.label }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+INTEGERS { number.label longest.label.width }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+FUNCTION {longest.label.pass}
+%<*!cite>
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+%</!cite>
+%<cite>{ cite$ 'label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+EXECUTE {initialize.longest.label}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+ITERATE {longest.label.pass}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</!ay&!alph>
+%    \end{macrocode}
+%
+% \begin{macro}{`begin.bib'}
+% The function \texttt{begin.bib} writes  the initial text to the \texttt{.bbl}
+% file. The most important matter here is that the \texttt{thebibliography}
+% environment is invoked.
+%
+% Note: the French quotation marks are called `guillimets'; Adobe erroneously
+% named the symbols `guillimot', which is an arctic bird. The error has so
+% propagated, that it can no longer be corrected. \LaTeX\ took it over.
+%    \begin{macrocode}
+FUNCTION {begin.bib}
+%<*!html>
+%<*!ay&alph>
+{ et.al.char.used
+    { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
+    'skip$
+  if$
+  preamble$ empty$
+%</!ay&alph>
+%<ay|!alph>{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+%<ay>  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
+%<!ay>  "\begin{thebibliography}{"  longest.label  * "}" *
+  write$ newline$
+%<*(!nmft&(nmft-it|nmft-sc|nmft-bf|nmft-def))|(!lab&(lab-it|lab-bf|lab-sc|lab-def))>
+ "\typeout{**********************************}" write$ newline$
+ "\typeout{WARNING WARNING WARNING WARNING WARNING}" write$ newline$
+ "\typeout{The bst file has been generated with inconsistent options}"
+   write$ newline$
+ "\typeout{Read the warning message at the start of the bst file}"
+   write$ newline$
+ "\typeout{**********************************}" write$ newline$
+%</(!nmft&(nmft-it|nmft-sc|nmft-bf|nmft-def))|(!lab&(lab-it|lab-bf|lab-sc|lab-def))>
+%<*!plntx>
+%<!tit-it&tit-qq&qt-s>  "\newcommand{\enquote}[1]{`#1'}"
+%<!tit-it&tit-qq&!qt-s&!qt-g>  "\newcommand{\enquote}[1]{``#1''}"
+%</!plntx>
+%<*plntx>
+%<!tit-it&tit-qq&qt-s>  "\def\enquote#1{`#1'}"
+%<!tit-it&tit-qq&!qt-s&!qt-g>  "\def\enquote#1{``#1''}"
+%</plntx>
+%<*!tit-it&tit-qq&!qt-s&qt-g>
+%<!plntx>  "\let\enquote\frquote"
+%<*plntx>
+  "\def\guillemotleft{%"
+  write$ newline$
+  "  \leavevmode\raise .27ex\hbox{$\scriptscriptstyle\ll$}}"
+  write$ newline$
+  "\def\guillemotright{%"
+  write$ newline$
+  "  \leavevmode\raise .27ex\hbox{$\scriptscriptstyle\gg$}}"
+  write$ newline$
+  "\def\enquote#1{\guillemotleft#1\guillemotright}"
+%</plntx>
+%</!tit-it&tit-qq&!qt-s&qt-g>
+%<!tit-it&tit-qq>  write$ newline$
+%<umlaut>  "\let\qq=\" quote$ * write$ newline$
+%<em-ul>  "\expandafter\ifx\csname uline\endcsname\relax\let\uline\underline\fi"
+%<em-ul>   write$ newline$
+%<*ay>
+%<!plntx>  "\providecommand{\natexlab}[1]{#1}"
+%<plntx>  "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
+  write$ newline$
+%<*har>
+  "{\catcode`\|=0\catcode`\#=12\catcode`\@=11\catcode`\\=12" write$ newline$
+  "|immediate|write|@auxout{\expandafter\ifx\csname natexlab\endcsname\relax\gdef\natexlab#1{#1}\fi}}"
+  write$ newline$
+%</har>
+%</ay>
+%<*nmft&nmft-def>
+%<!plntx>  "\providecommand{\bibnamefont}[1]{#1}"
+%<plntx>  "\expandafter\ifx\csname bibnamefont\endcsname\relax"
+%<plntx>  write$ newline$
+%<plntx>  "  \def\bibnamefont#1{#1}\fi"
+  write$ newline$
+%</nmft&nmft-def>
+%<*nmft&fnm-def>
+%<!plntx>  "\providecommand{\bibfnamefont}[1]{#1}"
+%<plntx>  "\expandafter\ifx\csname bibfnamefont\endcsname\relax"
+%<plntx>  write$ newline$
+%<plntx>  "  \def\bibfnamefont#1{#1}\fi"
+  write$ newline$
+%</nmft&fnm-def>
+%<*lab&lab-def>
+%<!plntx>  "\providecommand{\citenamefont}[1]{#1}"
+%<plntx>  "\expandafter\ifx\csname citenamefont\endcsname\relax"
+%<plntx>  write$ newline$
+%<plntx>  "  \def\citenamefont#1{#1}\fi"
+  write$ newline$
+%</lab&lab-def>
+%<*(url&!harnm)|eprint>
+%<*!plntx>
+%<nfss>  "\providecommand{\url}[1]{\texttt{#1}}"
+%<!nfss>  "\providecommand{\url}[1]{{\tt #1}}"
+  write$ newline$
+  "\providecommand{\urlprefix}{}"
+  write$ newline$
+%</!plntx>
+%<*plntx>
+  "\expandafter\ifx\csname url\endcsname\relax"
+  write$ newline$
+%<nfss>  "  \def\url#1{\texttt{#1}}\fi"
+%<!nfss>  "  \def\url#1{{\tt #1}}\fi"
+  write$ newline$
+  "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{}\fi"
+  write$ newline$
+%</plntx>
+%</(url&!harnm)|eprint>
+%<*doi>
+  "\expandafter\ifx\csname urlstyle\endcsname\relax"
+  write$ newline$
+%<*!plntx>
+  "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
+  write$ newline$
+  "  \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
+  write$ newline$
+%</!plntx>
+%<*plntx>
+  "  \expandafter\ifx\csname doi\endcsname\relax"
+  write$ newline$
+  "  \def\doi#1{doi:\discretionary{}{}{}#1}\fi \else"
+  write$ newline$
+  "  \expandafter\ifx\csname doi\endcsname\relax"
+  write$ newline$
+  "  \def\doi{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi \fi"
+  write$ newline$
+%</plntx>
+%</doi>
+%<*url-doi&url>
+  "\providecommand{\doiprefix}{doi: }"
+  write$ newline$
+  "\expandafter\ifx\csname href\endcsname\relax"
+  write$ newline$
+  "  \providecommand{\urldoi}[1]{#1}\else"
+  write$ newline$
+  "  \providecommand{\urldoi}[1]{\href{https://doi.org/#1}{#1}}\fi"
+  write$ newline$
+%</url-doi&url>
+%<*lang>
+%<!plntx>  "\providecommand{\selectlanguage}[1]{\relax}"
+%<*plntx>
+  "\expandafter\ifx\csname selectlanguage\endcsname\relax"
+  write$ newline$
+  "  \def\selectlanguage#1{}\fi"
+%</plntx>
+  write$ newline$
+%</lang>
+%<*!plntx>
+%<*babel>
+  "\input{babelbst.tex}" write$ newline$
+  "\newcommand{\Capitalize}[1]{\uppercase{#1}}" write$ newline$
+  "\newcommand{\capitalize}[1]{\expandafter\Capitalize#1}" write$ newline$
+%</babel>
+%<*annote>
+  "\providecommand{\bibAnnoteFile}[1]{%"
+  write$ newline$
+  "  \IfFileExists{#1}{\begin{quotation}\noindent\textsc{Key:} #1\\"
+  write$ newline$
+  "  \textsc{Annotation:}\ \input{#1}\end{quotation}}{}}"
+  write$ newline$
+  "\providecommand{\bibAnnote}[2]{%"
+  write$ newline$
+  "  \begin{quotation}\noindent\textsc{Key:} #1\\"
+  write$ newline$
+  "  \textsc{Annotation:}\ #2\end{quotation}}"
+  write$ newline$
+%</annote>
+%</!plntx>
+%<*bibinfo>
+%<!plntx>  "\providecommand{\bibinfo}[2]{#2}"
+%<plntx>  "\expandafter\ifx\csname bibinfo\endcsname\relax\def\bibinfo#1#2{#2}\fi"
+  write$ newline$
+%</bibinfo>
+%<*eprint>
+%<!plntx>  "\providecommand{\eprint}[2][]{\url{#2}}"
+%<plntx>  "\expandafter\ifx\csname eprint\endcsname\relax\def\eprint#1{\url{#1}}\fi"
+  write$ newline$
+%</eprint>
+}
+%</!html>
+%<*html>
+{
+"<html><head><title>Bibliography Listing</title></head>" write$ newline$
+"<body>" write$ newline$
+"<h2>Bibliography</h2>" write$ newline$
+%<htdes>"<dl>" write$ newline$
+%<!htdes&htlist>"<ol>" write$ newline$
+}
+%</html>
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+EXECUTE {begin.bib}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+EXECUTE {init.state.consts}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+ITERATE {call.type$}
+%    \end{macrocode}
+%
+% \begin{macro}{`end.bib'}
+%    \begin{macrocode}
+FUNCTION {end.bib}
+{ newline$
+%<!html>  "\end{thebibliography}" write$ newline$
+%<html>  "</dl></body></html>" write$ newline$
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+EXECUTE {end.bib}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</!head>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</!options&!driver&!bblbst>
+%    \end{macrocode}
+%
+% \section{The File \texttt{babelbst.tex} for English}
+% The following contains the definitions for the \texttt{babel} language
+% selection as they apply to English. This file may be extracted with
+% \dtx{} and the option \texttt{bblbst}.
+%    \begin{macrocode}
+%<*bblbst>
+ % This is babelbst.tex for English.
+ % It should serve as a model for other languages.
+ % Alternatively, store it under a different name (e.g. englbst.tex)
+ % and then \input it with a command in babelbst.tex.
+\def\bbland{and}                \def\bbletal{et~al.}
+\def\bbleditors{editors}        \def\bbleds{eds.}
+\def\bbleditor{editor}          \def\bbled{ed.}
+\def\bbledby{edited by}
+\def\bbledition{edition}        \def\bbledn{edn.}
+\def\bblvolume{volume}          \def\bblvol{vol.}
+\def\bblof{of}
+\def\bblnumber{number}          \def\bblno{no.}
+\def\bblin{in}
+\def\bblpages{pages}            \def\bblpp{pp.}
+\def\bblpage{page}              \def\bblp{p.}
+\def\bbleidpp{pages}
+\def\bblchapter{chapter}        \def\bblchap{chap.}
+\def\bbltechreport{Technical Report}
+\def\bbltechrep{Tech. Rep.}
+\def\bblmthesis{Master's thesis}
+\def\bblphdthesis{Ph.D. thesis}
+\def\bblfirst{First}            \def\bblfirsto{1st}
+\def\bblsecond{Second}          \def\bblsecondo{2nd}
+\def\bblthird{Third}            \def\bblthirdo{3rd}
+\def\bblfourth{Fourth}          \def\bblfourtho{4th}
+\def\bblfifth{Fifth}            \def\bblfiftho{5th}
+\def\bblst{st}  \def\bblnd{nd}  \def\bblrd{rd}
+\def\bblth{th}
+\def\bbljan{January}  \def\bblfeb{February}  \def\bblmar{March}
+\def\bblapr{April}    \def\bblmay{May}       \def\bbljun{June}
+\def\bbljul{July}     \def\bblaug{August}    \def\bblsep{September}
+\def\bbloct{October}  \def\bblnov{November}  \def\bbldec{December}
+%</bblbst>
+%    \end{macrocode}
+%
+% \Finale


Property changes on: trunk/Master/texmf-dist/source/latex/cjs-rcs-article/cjs-rcs-merlin.mbs
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/cjs-rcs-article/cjs-rcs-article.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/cjs-rcs-article/cjs-rcs-article.cls	2024-07-14 20:13:31 UTC (rev 71798)
+++ trunk/Master/texmf-dist/tex/latex/cjs-rcs-article/cjs-rcs-article.cls	2024-07-14 20:14:08 UTC (rev 71799)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 2023 Statistical Society of Canada | Société
+%% Copyright (C) 2023-2024 Statistical Society of Canada | Société
 %% canadienne de statistique
 %% 
 %% This file may be distributed and/or modified under the conditions
@@ -30,9 +30,9 @@
 %% files cjs-rcs-article.cls, cjs-rcs-article-fr.tex, cjs-template.tex
 %% and rcs-gabarit.tex.
 %% 
-\NeedsTeXFormat{LaTeX2e}[2009/09/24]
+\NeedsTeXFormat{LaTeX2e}[2021/06/01]
 \ProvidesClass{cjs-rcs-article}%
-  [2023/11/29 v1.0 Article class for The Canadian Journal of
+[2024/07/14 v1.1 Article class for The Canadian Journal of
   Statistics | La revue canadienne de statistique]
 \newif\ifCJS at review        \CJS at reviewfalse        % review version?
 \newif\ifCJS at supplement    \CJS at supplementfalse    % supplementary material?
@@ -40,6 +40,7 @@
 \newif\ifCJS at final         \CJS at finalfalse         % final version?
 \newif\ifCJS at titlingfooter \CJS at titlingfooterfalse % footer on title page?
 \newif\ifCJS at journalinfo   \CJS at journalinfotrue    % display journal info?
+\newif\ifCJS at specialack    \CJS at specialackfalse    % special acknowledgement?
 \newif\ifCJS at fancybreak    \CJS at fancybreaktrue     % display fancy break?
 \newif\ifCJS at history       \CJS at historyfalse       % history present?
 \newif\ifCJS at corrauth      \CJS at corrauthfalse      % corresponding author?
@@ -60,7 +61,6 @@
 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{memoir}}
 \ProcessOptions\relax
 \LoadClass[letterpaper,10pt,article,twoside]{memoir}
-\RequirePackage{iflang}
 \RequirePackage[round,semicolon,authoryear,sectionbib]{natbib}
 \RequirePackage{babel}
 \RequirePackage[autolanguage]{numprint}
@@ -142,7 +142,7 @@
   [
     Extension = .otf,
     Scale = 1,
-    Ligatures = TeX
+    bold-style = TeX
   ]
   \setmathfont{FiraMath-Regular}
   [
@@ -193,12 +193,12 @@
                       No.~\CJS at issue, %
                       \CJS at year, %
                       \CJS at firstpage--\thelastpage}}}}
-\newcommand*\CJS at setheadfootfont{%
+\def\CJS at setheadfootfont{%
   \firalining\fontsize{9}{13}\selectfont}
 \newlength\CJS at headdivheight
 \settoheight\CJS at headdivheight{\CJS at setheadfootfont 1}
 \setlength\CJS at headdivheight{0.9\CJS at headdivheight}
-\newcommand*\CJS at headdivrule{%
+\def\CJS at headdivrule{%
   \rule[0.05\CJS at headdivheight]{0.75\normalrulethickness}{\CJS at headdivheight}}
 \newlength\CJS at pagenumwidth
 \settowidth\CJS at pagenumwidth{9\qquad}
@@ -480,15 +480,38 @@
       \iflanguage{french}{Futur emplacement de la déclaration de licence.}%
                          {Licence statement to appear here.}}
     \begin{figure}[!b]
-      \raisebox{0pt}[0pt][\footskip]{%
+      \raisebox{0pt}[0pt][\dimexpr\CJS at licenceht-\footskip\relax]{%
         \vbox{%
           \CJS at setlicencefont
           \rule{\textwidth}{\normalrulethickness}
           \parbox[t][\CJS at licenceht][t]{\textwidth}{%
+            \ifCJS at specialack\CJS at specialackstatement\fi
             \ifCJS at final\CJS at licence \else\textit\CJS at notice \fi}}}
     \end{figure}
   \fi
 }}
+\newcommand*\CJS at adnibyline{for the Alzheimer’s Disease Neuroimaging Initiative}
+\newcommand*\CJS at adnistatement{%
+  Data used in preparation of this article were obtained
+  from the \href{https://adni.loni.usc.edu}{Alzheimer’s Disease Neuroimaging Initiative}
+  (ADNI) database. As such, the investigators within the ADNI
+  contributed to the design and implementation of ADNI and/or provided
+  data but did not participate in the analysis or writing of this
+  report. A complete listing of ADNI investigators can be found at:
+  \url{https://adni.loni.usc.edu/wp-content/uploads/how_to_apply/ADNI_Acknowledgement_List.pdf}.}
+\newcommand*\CJS at admcbyline{for the Alzheimer’s Disease Metabolomics Consortium}
+\newcommand*\CJS at admcstatement{%
+  Data used in preparation of this article were generated by the
+  Alzheimer’s Disease Metabolomics Consortium (ADMC). As such, the
+  investigators within the ADMC provided data but did not participate
+  in analysis or writing of this report. A complete listing of ADMC
+  investigators can be found at:
+  \url{https://sites.duke.edu/adnimetab/team/}.}
+\newcommand*\ADNIacknowledgement{%
+  \specialack{\CJS at adnibyline}{\CJS at adnistatement}}
+\newcommand*\ADMCacknowledgement{%
+  \renewcommand*\CJS at specialackmark{\textsuperscript{\ensuremath{**}}}
+  \specialack{\CJS at admcbyline}{\CJS at admcstatement}}
 \def\CJS at supplement{}
 \def\CJS at supplementname@en{Supplementary material}
 \def\CJS at supplementname@fr{Matériel additionnel}
@@ -535,10 +558,10 @@
         \endgroup}
     \fi
   \fi}
-\newcommand*\CJS at setlicencefont{%
+\def\CJS at setlicencefont{%
   \firalining\fontsize{8pt}{9pt}\selectfont}
 \newlength\CJS at licenceht
-\newcommand\CJS at licencesample{%
+\def\CJS at licencesample{%
   {\ccbyncnd*} 2023 The Authors. The Canadian Journal of
   Statistics~{\textbar}~La revue canadienne de statistique published
   by Wiley Periodicals LLC on behalf of Statistical Society of
@@ -552,6 +575,7 @@
 \newcommand\CJS at measurelicence{%
   \setbox\CJS at licencebox=\vbox{%
     \CJS at setlicencefont
+    \ifCJS at specialack\CJS at specialackstatement\fi
     \ifdefempty{\CJS at licence}{\CJS at licencesample}{\CJS at licence}}
   \setlength\CJS at licenceht{\dimexpr\ht\CJS at licencebox+\dp\CJS at licencebox}}
 \def\CJS at licence{}
@@ -558,32 +582,32 @@
 \newcommand\licence[1]{\renewcommand*\CJS at licence{#1}}
 \let\license\licence
 \newcommand*\ccby{\ccby@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccby@{\mbox{%
+\def\ccby@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em}}
 \newcommand*\ccbysa{\ccbysa@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbysa@{\mbox{%
+\def\ccbysa@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsSa}}
 \newcommand*\ccbync{\ccbync@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbync@{\mbox{%
+\def\ccbync@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsNc}}
 \newcommand*\ccbyncsa{\ccbyncsa@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbyncsa@{\mbox{%
+\def\ccbyncsa@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsNc\kern0.1em%
     \faCreativeCommonsSa}}
 \newcommand*\ccbynd{\ccbynd@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbynd@{\mbox{%
+\def\ccbynd@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsNd}}
 \newcommand*\ccbyncnd{\ccbyncnd@\@ifstar{~\faCopyright[regular]}\relax}
-\newcommand*\ccbyncnd@{\mbox{%
+\def\ccbyncnd@{\mbox{%
     \faCreativeCommons\kern0.1em%
     \faCreativeCommonsBy\kern0.1em%
     \faCreativeCommonsNc\kern0.1em%
@@ -600,10 +624,12 @@
   \let\prdist\mathcal
 \fi
 \iftutex
-  \newcommand*\mat[1]{\symbf{#1}}
+  \let\mat\symbf
+  \let\matit\symbfit
   \newcommand*\trsp{^{\mkern-1.5mu\symsfup{T}}}
 \else
-  \newcommand*\mat[1]{\mathbf{#1}}
+  \let\mat\mathbf
+  \let\matit\mathbfit
   \newcommand*\trsp{^{\mkern-1.5mu\mathsf{T}}}
 \fi
 \DeclareMathOperator{\tr}{tr}
@@ -654,13 +680,13 @@
 \newcommand*\Pylang{\proglang{Python}}
 \newcommand*\Julialang{\proglang{Julia}}
 \newcommand*\Clang{\proglang{C}}
-\newcommand*\CJS at plus{%
+\newcommand*\Cpplang{\proglang{C\CJS at plus\CJS at plus}}
+\def\CJS at plus{%
   \ifx\f at family\sfdefault%
     \protect\hspace{-.04em}\protect\raisebox{-.125ex}{\larger+}%
   \else%
     \protect\hspace{-.03em}\protect\raisebox{.25ex}{\smaller+}%
   \fi}
-\newcommand*\Cpplang{\proglang{C\CJS at plus\CJS at plus}}
 \let\pkg\textbf
 \newcommand\code{\bgroup\@makeother\_\@makeother\~\@makeother\$\code@}
 \def\code@#1{{\normalfont\ttfamily\hyphenchar\font=-1 #1}\egroup}
@@ -667,7 +693,10 @@
 \renewcommand*\appendix{\par
   \setcounter{section}{0}
   \gdef\thesection{\@Alph\c at section}}
-\renewcommand{\@memb at bsec}{\section*{\bibname}\prebibhook}
+\renewcommand{\@memb at bsec}{%
+  \section*{\bibname}%
+  \addcontentsline{toc}{section}{\bibname}%
+  \prebibhook}
 \setlocalecaption{english}{bib}{References}
 \setlocalecaption{french}{bib}{Références}
 \bibliographystyle{\iflanguage{french}{cjs-rcs-fr}{cjs-rcs-en}}
@@ -748,8 +777,18 @@
   \hbox{\textcolor{CJSpink}{\copy\thr@@}\kern.75pt%
         \textcolor{CJSred}{\copy\thr@@}\kern.75pt%
         \textcolor{CJSyellow}{\copy\thr@@}\kern3pt}}
-\newcommand*\CJS at historybox{
+\def\CJS at historybox{
   \par\addvspace{2\baselineskip}\noindent%
   \smash{\box\CJS at historyornament \CJS at history}\par%
   \vspace*{40pt}}
 \AtEndDocument{\ifCJS at journalinfo\ifCJS at history\CJS at historybox\fi\fi}
+\def\CJS at specialackstatement{}
+\newcommand*\specialack[2]{%
+  \ifstrempty{#1}{}{%
+      \author{#1\CJS at specialackmark}}
+  \ifstrempty{#2}{}{%
+      \CJS at specialacktrue
+      \renewcommand*\CJS at specialackstatement{\CJS at specialackmark\,#2\medskip\newline}}}
+\def\CJS at specialackmark{\textsuperscript{\ensuremath{*}}}
+\newcommand*\specialackmark[1]{%
+  \renewcommand*\CJS at specialackmark{#1}}



More information about the tex-live-commits mailing list.