texlive[53937] Master/texmf-dist: econ-bst (27feb20)
commits+karl at tug.org
commits+karl at tug.org
Thu Feb 27 23:03:41 CET 2020
Revision: 53937
http://tug.org/svn/texlive?view=revision&revision=53937
Author: karl
Date: 2020-02-27 23:03:41 +0100 (Thu, 27 Feb 2020)
Log Message:
-----------
econ-bst (27feb20)
Modified Paths:
--------------
trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md
trunk/Master/texmf-dist/doc/bibtex/econ-bst/README.md
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/README.md
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/cited-part.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.bib
trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex
Added Paths:
-----------
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.tex
Removed Paths:
-------------
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.bst
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.pdf
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.tex
trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.pdf
Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -4,8 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Time-stamp: <2018-12-07 18:49:14 st>
-% Version: 2.5
+% Version: 2.7
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -38,8 +37,11 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.5" }
+FUNCTION {econ.version} { "2.7" }
+% File name
+FUNCTION {econ.file} { "econ.bst" }
+
% Debug mode. Non-zero makes debug mode on.
FUNCTION {econ.debug}
{ #0 } % Debug mode off (default).
@@ -61,7 +63,7 @@
%% String entry variable
{ label cyear flabel alabel extra.label sort.label sort.label.abb
- extra.label.bysame nameorder.temp }
+ extra.label.bysame nameorder.temp jname }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -312,8 +314,12 @@
% authors is greater or equal to bst.and.others.num.
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% { #4 }
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -415,6 +421,15 @@
FUNCTION {bst.journal.post}
{ "}" } % (default)
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+{ #0 } % (default)
+% { #1 }
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% editor notation:
@@ -455,7 +470,7 @@
% The string before volume:
%
FUNCTION {bst.volume.pre}
-{ ", Vol. " } % (default)
+{ ", " } % (default)
% The string after volume:
%
@@ -475,12 +490,12 @@
% The string before number:
%
FUNCTION {bst.number.pre}
-{ ", No. " } % (default)
+{ " (" } % (default)
% The string after number:
%
FUNCTION {bst.number.post}
-{ "" } % (default)
+{ ")" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% in
@@ -496,12 +511,12 @@
% The string before page (multiple pages):
%
FUNCTION {bst.pages.pre}
-{ ", pp." } % (default)
+{ ", " } % (default)
% The string before page:
%
FUNCTION {bst.page.pre}
-{ ", p." } % (default)
+{ ", " } % (default)
% The string after page (multiple pages):
%
@@ -649,7 +664,7 @@
% The string before url:
%
FUNCTION {bst.url.pre}
-{ ", URL: \url{" } % (default)
+{ ", \url{" } % (default)
% The string after url:
%
@@ -684,12 +699,12 @@
% The string before DOI:
%
FUNCTION {bst.doi.pre}
-{ ", DOI: \href{http://dx.doi.org/" doi * "}{" * } % (default)
+{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
% The string after DOI:
%
FUNCTION {bst.doi.post}
-{ "}" } % (default)
+{ "}}" } % (default)
% How to show URL and DOI fields when both fields exist.
%
@@ -698,9 +713,9 @@
% #2 -> Only DOI field is displayed
%
FUNCTION {bst.url.doi}
-{ #0 } % (default) -> Both fields are displayed
+% { #0 } % -> Both fields are displayed
% { #1 } % -> Only URL field is displayed
-% { #2 } % -> Only DOI field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Other functions:
@@ -716,7 +731,7 @@
% The string that represents Technical report:
%
FUNCTION {bst.techrep}
-{ " Tech. Rep." } % (default)
+{ "Technical Report" } % (default)
% The string that represents master thesis:
%
@@ -1059,11 +1074,37 @@
if$
}
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
%%% journal
FUNCTION {format.journal}
{ journal empty$
{ "" }
- { bst.journal.pre journal * bst.journal.post * }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
if$
}
@@ -1139,56 +1180,62 @@
numnames 'namesleft :=
% Repeat if namesleft > 0
{ namesleft #0 > }
- { nameptr #1 =
- % First author
- { bst.author.name #0 =
- bst.author.name #1 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
- % The second or later authors
- { bst.author.name #0 =
- bst.author.name #2 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
if$
-
+
nameptr #1 >
% The second or later authors
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
if$
}
if$
@@ -1915,7 +1962,7 @@
FUNCTION {format.tr.number}
{ type empty$
- { "Technical Report" }
+ { bst.techrep }
{ " " type * }
if$
number empty$
@@ -2152,9 +2199,9 @@
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- output.address.organization.publisher
format.edition output.nocomma
format.chapter.pages output.nocomma
+ output.address.organization.publisher
bst.year.position #0 = not
{ format.year "year" output.check.nocomma }
@@ -2399,6 +2446,8 @@
'skip$
if$
+ format.url.doi output.nocomma
+
format.note output.nocomma
fin.entry
}
@@ -2911,6 +2960,15 @@
}
if$
'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
% For debug
econ.debug #0 = not
{ "flabel = ``\texttt{" write$
@@ -3449,10 +3507,10 @@
FUNCTION{punctuation}
{
- "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
- "% This bbl file is created by econ.bst ver." econ.version * write$ newline$
- "% The latest econ.bst is available at" write$ newline$
- "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
}
EXECUTE {punctuation}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md 2020-02-27 22:03:41 UTC (rev 53937)
@@ -1,12 +1,69 @@
<!--
Author: Shiro Takeda
First-written: <2008/11/18>
-Time-stamp: <2018-12-07 18:50:38 st>
-->
Changelogs for econ.bst
==============================
+## Changelogs
+
+## Ver 2.7
+
+* 2020-02-27: Modified the document files.
+
+* 2019-10-16: Modified the default style of econ.bst. The new default style is
+ simpler than the old one.
+
+* 2019-10-16: Set the roman font to font for URL (the default font for URL is
+ type writer font). This is the change made to TeX file (not to bst file).
+
+* 2019-10-15: Removed "Time-Stamp" lines from all bst files.
+
+* 2019-10-14: In the previous version of econ.bst, econ.bst cannot handle DOI
+ field with TeX control sequences such as underscore. The new econ.bst can
+ handle DOI field with TeX control sequences.
+
+* 2019-10-01: Modified `customization/README.md`.
+
+* 2019-09-26: Supported the abbreviated journal names for `econ-jpe.bst` because
+ JPE (Journal of Political Economy) uses abbreviated journal names.
+
+* 2019-09-21: Changed the default value for `bst.techrep`.
+
+
+## Ver 2.6.1
+
+* Changed `format.tr.number`.
+
+* Added the new style `econ-abbr.bst`. In this style, we use abbreviated names
+ for journal name such as "Am. Econ. Rev." for "American Economics Review".
+ The list of abbreviated names is provided in "journal_name.xlsx".
+
+ To use abbreviated journal name, we have to hardcode the list of all
+ abbreviated journal names in the bst file. It makes the bst file quite
+ long. So this feature is not provided in the standard `econ.bst` and provided
+ only in `econ-abbr.bst` (and `econ-jet.bst`).
+
+
+## Ver 2.6
+
+* Added the new style `econ-aea.bst` and removed `econ-aer.bst`. `econ-aea.bst`
+ is the style for journals of AEA (American Economic Association) such as AER,
+ JEL, and AEJ.
+
+* Added the new function `bst.max.author.num`. If the number of authors exceeds
+ 12, the authors after the 2nd author are abbriviated by "et al.".
+
+
+## Ver 2.5.1
+
+* Added URL and DOI to techreport.
+
+* Changed the default setting of `bst.url.doi` to `#2` (this means that only DOI
+ is displayed if both DOI and URL fields have the values).
+
+
## Ver. 2.5
* Changed the license of `econ.bst` to the LaTeX Project Public License.
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/README.md 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/README.md 2020-02-27 22:03:41 UTC (rev 53937)
@@ -3,7 +3,6 @@
Author: Shiro Takeda
e-mail <shiro.takeda at gmail.com>
First-written: <2017-07-30>
-Time-stamp: <2018-12-07 17:12:31 st>
-->
econ.bst
@@ -20,17 +19,20 @@
## Explanation of files
-| File | Explanation |
-|:-----------------------------------------|:-------------------------------------------------------------|
-| `econ.bst` | This is the main bst file. |
-| `econ-example.tex` | This file explains how to use econ.bst. |
-| [`econ-example.pdf`](econ-example.pdf) | A PDF file created fom `econ-example.tex`. |
-| `econ-example.bib` | This is a bibliography database file. |
-| `customization` | This folder contains customized bst files. |
-| [`CHANGES.md`](CHANGES.md) | Changelog file. |
-| `README.md` | This file. |
+| File | Explanation |
+|:---------------------------------------|:-------------------------------------------|
+| `econ.bst` | This is the main bst file. |
+| `econ-example.tex` | This file explains how to use econ.bst. |
+| [`econ-example.pdf`](econ-example.pdf) | A PDF file created fom `econ-example.tex`. |
+| `econ-example.bib` | This is a bibliography database file. |
+| [`customization`](customization) | This folder contains customized bst files. |
+| [`CHANGES.md`](CHANGES.md) | Changelog file. |
+| `README.md` | This file. |
+<!-- リンクの作成方法 -->
+<!-- [リンクテキスト](URLを記入) -->
+
<!--
--------------------
Local Variables:
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/README.md 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/README.md 2020-02-27 22:03:41 UTC (rev 53937)
@@ -2,7 +2,7 @@
Author: Shiro Takeda
e-mail <shiro.takeda at gmail.com>
First-written: <2016-03-16>
-Time-stamp: <2018-11-09 11:54:42 st>
+Time-stamp: <2020-02-26 13:55:53 st>
-->
Contents of this folder
@@ -9,27 +9,34 @@
==============================
+ This folders includes bst files created by customizing econ.bst.
+ + These bst files are basically the same as econ.bst except that function named like
+ bst.xxx have different values.
+ If you want to customize econ.bst, see these files.
-| bst file | Explanation |
-|:---------------------|:--------------------------------------------------------|
-| `econ.bst` | The default econ.bst file. |
-| `econ-a.bst` | A simple style. |
-| `econ-b.bst` | A style with much decoration. |
-| `econ-aer.bst` | A style like AER (American Economic Review). |
-| `econ-jet.bst` | A style like JET (Journal of Economic Theoriy). |
-| `econ-no-sort.bst` | This style lists entries in citation order. |
-| `econ-econometrica.bst` | A style like Econometrica. |
-| `econ-jie.bst` | A style like JIE (Journal of International Economics). |
+| bst file | PDF file | Explanation |
+|:------------------------|:-------------------------------------------------|:----------------------------------------------------------|
+| `econ.bst` | [`econ-default.pdf`](econ-default.pdf) | The default econ.bst file. |
+| `econ-a.bst` | [`econ-a.pdf`](econ-a.pdf) | A simple style. |
+| `econ-b.bst` | [`econ-b.pdf`](econ-b.pdf) | A style with much decoration. |
+| `econ-no-sort.bst` | [`econ-no-sort.pdf`](econ-no-sort.pdf) | This style lists entries in citation order. |
+| `econ-abbr.bst` | [`econ-abbr.pdf`](econ-abbr.pdf) | This style uses abbreviated journal name. |
+| `econ-aea.bst` | [`econ-aea.pdf`](econ-aea.pdf) | The style for AEA journals such as AER, JEL, AEJ and JEP. |
+| `econ-econometrica.bst` | [`econ-econometrica.pdf`](econ-econometrica.pdf) | The style for Econometrica. |
+| `econ-jpe.bst` | [`econ-jpe.pdf`](econ-jpe.pdf) | The style for JPE (Journal of Poilitical Economy). |
+| `econ-jet.bst` | [`econ-jet.pdf`](econ-jet.pdf) | The style for JET (Journal of Economic Theoriy). |
+| `econ-jie.bst` | [`econ-jie.pdf`](econ-jie.pdf) | The style for JIE (Journal of International Economics). |
+| `econ-old.bst` | [`econ-old.pdf`](econ-old.pdf) | The style of the old econ.bst. |
+| | [`econ-numbers.pdf`](econ-numbers.pdf) | An example with numerical citation mode. |
-| PDF file | Explanation |
-|:---------------------|:--------------------------------------------------------|
-| `econ-default.pdf` | PDF file created from econ.bst file. |
-| `econ-numbers.pdf` | PDF file which use numerical citation mode. |
-Other PDF files are created from the corresponding bst files above.
+| File | Explanation |
+|:------------------|:--------------------------------------------------------------------------|
+| journal_name.xlsx | This file stores correspondence between journal name and its abbreviation. |
+<!-- リンクの作成方法 -->
+<!-- [リンクテキスト](URLを記入) -->
+
<!--
--------------------
Local Variables:
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/cited-part.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/cited-part.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/cited-part.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -1,44 +1,63 @@
\noindent Cited entries: \vspace{1em} \\
-\noindent
-\citet{Ryza15:_advan_analy_spark_patter_learn_data_scale},
-\citet{yamazaki13:_japan},
-\citet{stakeda2013web},
-\citet{Takeda2012a},
-\citet{bergemann11:_ration},
-\citet{goldin:katz:2011},
-\citet{Takeda2011b},
-\citet{takeda2011c},
-\citet{takeda10:_cge_analy_welfar_effec_trade},
-\citet{2009yamasue502165},
-\citet{goldin:katz:2008},
-\citet{Biker-2007-unemployment},
-\citet{takeda06:_cge_analy_welfar_effec_trade},
-\citet{2007yamasue482353},
-\citet{Peri2007},
-\citet{BabikerRutherford-2005-EconomicEffectsof},
-\citet{ishikawa03:_green_gas_emiss_contr_open_econom},
-\citet{brooke03:_gams},
-\citet{DeGorter2002},
-\citet{Babiker2000525},
-\citet{goldin:katz:2000},
-\citet{rutherford00:_gtapin_gtap_eg},
-\citet{fujita99jp:_spatial_econom},
-\citet{Babiker-1999-KyotoProtocoland},
-\citet{Babiker-1999-JapaneseNuclearPower},
-\citet{Parry1997},
-\citet{borgers95:_note_implem_stron_domin},
-\citet{wong95:_inter_trade_goods_factor_mobil_},
-\citet{ishikawa94:_revis_stolp_samuel_rybcz_theor_produc_exter},
-\citet{brezis93:_leapf_inter_compet},
-\citet{krugman91:_geogr_trade},
-\citet{helpman91:_inter_trade_trade_polic},
-\citet{krugman91:_is_bilat_bad},
-\citet{wang89:_model_therm_hydrod_aspec_molten},
-\citet{lucas76:_econom_polic_evaluat},
-\citet{milne-thomson68:_theor_hydrod}. \\
+\noindent
+\citet{10.1257/aer.20170619},
+\citet{Takeda2019a},
+\citet{stakeda2019web},
+\citet{saito17:_effec_immig_japan},
+\citet{Ryza15:_advan_analy_spark_patter_learn_data_scale},
+\citet{takeda2015a},
+\citet{Takeda2014a},
+\citet{yamazaki13:_japan},
+\citet{Takeda2012a},
+\citet{bergemann11:_ration},
+\citet{goldin:katz:2011},
+\citet{takeda10:_cge_analy_welfar_effec_trade},
+\citet{10.1257/pol.2.1.155},
+\citet{10.1257/aer.100.3.763},
+\citet{takeda10:_region_effec_trade_liber_japan},
+\citet{2009yamasue502165},
+\citet{goldin:katz:2008},
+\citet{Biker-2007-unemployment},
+\citet{takeda06:_cge_analy_welfar_effec_trade},
+\citet{2007yamasue482353},
+\citet{Peri2007},
+\citet{kusuoka06:_advan_mathem_econom},
+\citet{BabikerRutherford-2005-EconomicEffectsof},
+\citet{takeda05:_econom_analy_envir_regul},
+\citet{ishikawa03:_green_gas_emiss_contr_open_econom},
+\citet{brooke03:_gams},
+\citet{DeGorter2002},
+\citet{Babiker2000525},
+\citet{goldin:katz:2000},
+\citet{rutherford00:_gtapin_gtap_eg},
+\citet{fujita99jp:_spatial_econom},
+\citet{Babiker-1999-KyotoProtocoland},
+\citet{Babiker-1999-JapaneseNuclearPower},
+\citet{Parry1997},
+\citet{borgers95:_note_implem_stron_domin},
+\citet{wong95:_inter_trade_goods_factor_mobil_},
+\citet{ishikawa94:_revis_stolp_samuel_rybcz_theor_produc_exter},
+\citet{brezis93:_leapf_inter_compet},
+\citet{RePEc:nbr:nberwo:4269},
+\citet{krugman91:_geogr_trade},
+\citet{helpman91:_inter_trade_trade_polic},
+\citet{krugman91:_is_bilat_bad},
+\citet{wang89:_model_therm_hydrod_aspec_molten},
+\citet{lucas76:_econom_polic_evaluat},
+\citet{milne-thomson68:_theor_hydrod},
+\citet{essd-10-405-2018},
+\citet{luthi08:_high},
+\citet{doi:10.1175/2009BAMS2778.1},
+\citet{Rivers-2005-CombiningTop-Downand},
+\citet{WilsonMannOtsuki-2005-AssessingBenefitsof},
+\citet{zhang2016Deep},
+\citet{imbens2019Optimized}.
+\\
+
\vspace*{1em}
+\noindent Articles with certified random order:\\
\noindent
\citet{10.1257/aer.20161492},
\citet{RePEc:hka:wpaper:2018-037},
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.bst 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -4,8 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Time-stamp: <2018-12-07 18:49:52 st>
-% Version: 2.5
+% Version: 2.7
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -38,8 +37,11 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.5" }
+FUNCTION {econ.version} { "2.7" }
+% File name
+FUNCTION {econ.file} { "econ.bst" }
+
% Debug mode. Non-zero makes debug mode on.
FUNCTION {econ.debug}
{ #0 } % Debug mode off (default).
@@ -61,7 +63,7 @@
%% String entry variable
{ label cyear flabel alabel extra.label sort.label sort.label.abb
- extra.label.bysame nameorder.temp }
+ extra.label.bysame nameorder.temp jname }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -314,8 +316,12 @@
% authors is greater or equal to bst.and.others.num.
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% { #4 }
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -340,7 +346,8 @@
% The string after author:
%
FUNCTION {bst.author.post}
-{ "." } % (default)
+{ "." }
+% { "" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% year
@@ -426,9 +433,18 @@
% The string after journal name:
%
FUNCTION {bst.journal.post}
-{ "" }
+{ "." }
% { "}" } % (default)
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+{ #0 } % (default)
+% { #1 }
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% editor notation:
@@ -469,8 +485,8 @@
% The string before volume:
%
FUNCTION {bst.volume.pre}
-{ ", " }
-% { ", Vol. " } % (default)
+{ ". " }
+% { ", " } % (default)
% The string after volume:
%
@@ -490,14 +506,12 @@
% The string before number:
%
FUNCTION {bst.number.pre}
-{ " (" }
-% { ", No. " } % (default)
+{ " (" } % (default)
% The string after number:
%
FUNCTION {bst.number.post}
-{ ")" }
-% { "" } % (default)
+{ ")" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% in
@@ -514,13 +528,12 @@
% The string before page (multiple pages):
%
FUNCTION {bst.pages.pre}
-{ ", " }
-% { ", pp." } % (default)
+{ ", " } % (default)
% The string before page:
%
FUNCTION {bst.page.pre}
-{ ", p." } % (default)
+{ ", " } % (default)
% The string after page (multiple pages):
%
@@ -669,7 +682,7 @@
% The string before url:
%
FUNCTION {bst.url.pre}
-{ ", URL: \url{" } % (default)
+{ ", \url{" } % (default)
% The string after url:
%
@@ -704,12 +717,12 @@
% The string before DOI:
%
FUNCTION {bst.doi.pre}
-{ ", DOI: \href{http://dx.doi.org/" doi * "}{" * } % (default)
+{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
% The string after DOI:
%
FUNCTION {bst.doi.post}
-{ "}" } % (default)
+{ "}}" } % (default)
% How to show URL and DOI fields when both fields exist.
%
@@ -718,9 +731,9 @@
% #2 -> Only DOI field is displayed
%
FUNCTION {bst.url.doi}
-% { #0 } % (default) -> Both fields are displayed
+% { #0 } % -> Both fields are displayed
{ #1 } % -> Only URL field is displayed
-% { #2 } % -> Only DOI field is displayed
+% { #2 } % (default) --> Only DOI field is displayed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Other functions:
@@ -736,7 +749,7 @@
% The string that represents Technical report:
%
FUNCTION {bst.techrep}
-{ " Tech. Rep." } % (default)
+{ "Technical Report" } % (default)
% The string that represents master thesis:
%
@@ -746,7 +759,7 @@
% The string that represents phd thesis:
%
FUNCTION {bst.phdthesis}
-{ " Ph.D. thesis" } % (default)
+{ " Ph.D. dissertation" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -1079,11 +1092,37 @@
if$
}
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
%%% journal
FUNCTION {format.journal}
{ journal empty$
{ "" }
- { bst.journal.pre journal * bst.journal.post * }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
if$
}
@@ -1159,56 +1198,62 @@
numnames 'namesleft :=
% Repeat if namesleft > 0
{ namesleft #0 > }
- { nameptr #1 =
- % First author
- { bst.author.name #0 =
- bst.author.name #1 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
- % The second or later authors
- { bst.author.name #0 =
- bst.author.name #2 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
if$
-
+
nameptr #1 >
% The second or later authors
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
if$
}
if$
@@ -1935,7 +1980,7 @@
FUNCTION {format.tr.number}
{ type empty$
- { "Technical Report" }
+ { bst.techrep }
{ " " type * }
if$
number empty$
@@ -2172,9 +2217,9 @@
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- output.address.organization.publisher
format.edition output.nocomma
format.chapter.pages output.nocomma
+ output.address.organization.publisher
bst.year.position #0 = not
{ format.year "year" output.check.nocomma }
@@ -2419,6 +2464,8 @@
'skip$
if$
+ format.url.doi output.nocomma
+
format.note output.nocomma
fin.entry
}
@@ -2931,6 +2978,15 @@
}
if$
'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
% For debug
econ.debug #0 = not
{ "flabel = ``\texttt{" write$
@@ -3469,10 +3525,10 @@
FUNCTION{punctuation}
{
- "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
- "% This bbl file is created by econ.bst ver." econ.version * write$ newline$
- "% The latest econ.bst is available at" write$ newline$
- "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
}
EXECUTE {punctuation}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -6,7 +6,7 @@
%% Use natbib.sty
\usepackage{natbib}
-\usepackage{mathpazo}
+\usepackage{newtxtext,newtxmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{color}
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.bst (rev 0)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -0,0 +1,4727 @@
+%% econ.bst: BibTeX style file for papers in economics.
+%
+% Author: Shiro Takeda
+% Maintainer: Shiro Takeda
+% Copyright (C) 2001-2018 Shiro Takeda
+% First-written: <2007/07/28>
+% Version: 2.7
+% Keywords: TeX, BibTeX, bst
+% URL: https://github.com/ShiroTakeda/econ-bst
+
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Shiro Takeda.
+
+%% Main features of econ.bst.
+
+% "econ.bst" is a BibTeX style file for economics. It provids the following
+% features:
+
+% 1) The author-year type citation (you need "natbib.sty" as well).
+% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style
+% for a specific journal).
+% 3) Highly customizable. You can easily customize reference style as you wish.
+% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018)
+% (http://dx.doi.org/10.1257/aer.20161492).
+
+% Bug reports, requests and suggestions are welcome.
+
+% For changelogs, see CHANGES.txt file.
+
+% version number
+FUNCTION {econ.version} { "2.7" }
+
+% File name
+FUNCTION {econ.file} { "econ.bst" }
+
+% Debug mode. Non-zero makes debug mode on.
+FUNCTION {econ.debug}
+{ #0 } % Debug mode off (default).
+% { #1 } % Debug mode on.
+
+ENTRY
+ %%% Declaration of field
+ { access address author booktitle chapter doi edition editor howpublished
+ institution journal key month note number organization pages publisher
+ school series title type url volume year
+ % Fields specific to econ.bst
+ order absorder nameorder
+ }
+
+ % Definition of entry variable. The entry variable is a variable which has
+ % different values according to different entries.
+ %% Integer entry variable:
+ { order.cited }
+
+ %% String entry variable
+ { label cyear flabel alabel extra.label sort.label sort.label.abb
+ extra.label.bysame nameorder.temp jname }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Functions for customization:
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Use \bysame or not.
+%
+% If set to #0, \bysame is not used.
+% If set to #1, \bysame is used
+% If set to #2, \bysame is used (alternative abbreviation style).
+%
+% Note that integer number is expressed as # + integer in bst file.
+% \bysame is the function that abbreviates succession of the same authors' name by ---.
+%
+% See econ-sample.pdf for details.
+%
+FUNCTION {bst.use.bysame}
+% { #0 } % Not use \bysame
+{ #1 } % -> Use \bysame (default)
+% { #2 } % -> Use \bysame of alternative style.
+
+% The definition of \bysame command.
+%
+FUNCTION {bst.bysame.definition}
+{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default)
+% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The order of fist and last name.
+%
+FUNCTION {bst.author.name}
+{ #0 } % (default)
+% { #1 }
+% { #2 }
+
+% Case of #0: First author -> last-first, other authors -> first-last.
+% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables.
+
+% Case of #1: All authors -> last-first
+% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J.
+
+% Case of #2: All authors -> first-last
+% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Abbreviate first name of authors (editors):
+%
+FUNCTION {bst.first.name.initial}
+{ #0 } % #0 -> full letters (default).
+% { #1 } % Non-zero -> initial letter only.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Decapitalize of strings in title field.
+%
+FUNCTION {bst.title.lower.case}
+{ #0 } % If #0, not decapitalize title (default).
+% { #1 } % If non-#0, decapitalize title
+
+% Hide title filed.
+%
+FUNCTION {bst.hide.title}
+{ #0 } % #0 -> Title field is displayed (default)
+% { #1 } % Non-zer -> Title field is hidden
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hide month.
+%
+FUNCTION {bst.hide.month}
+{ #0 } % #0 -> show month field (default).
+% { #1 } % non-#0 -> hide month field.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Attach number index like plain.bst.
+%
+FUNCTION {bst.use.number.index}
+{ #0 } % Not use number index (default).
+% { #1 } % Non-#0 -> Use number index
+
+% The string before number index:
+%
+FUNCTION {bst.number.index.pre}
+{ "[" } % (default)
+
+% The string after number index. Adjustment is recommended.
+%
+FUNCTION {bst.number.index.post}
+{ "]\hskip1.0em " } % (default)
+
+% Maximum digit of number index:
+% If the number of reference items >= 100, set 3 to this function.
+% If the number of reference items < 100, set 2 to this function.
+% If the number of reference items < 10, set 1 to this function.
+%
+FUNCTION {bst.number.index.digit}
+{ "2" } % (default)
+% { "3" }
+
+% The functions below are used to adjust space and postion. If you use fonts
+% other than computer modern fonts, you had better make adjustments.
+%
+% Setting for bst.number.index.digit = 1:
+FUNCTION {bst.number.index.bibhang.one}
+{ "2.05em" } % (default)
+% Setting for bst.number.index.digit = 2:
+FUNCTION {bst.number.index.bibhang.ten}
+{ "2.55em" } % (default)
+% Setting for bst.number.index.digit = 3:
+FUNCTION {bst.number.index.bibhang.hund}
+{ "3.05em" } % (default).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Position of "year":
+%
+% You can choose the position of year by this function.
+%
+% If set to #0, year is placed right after "author".
+% If set to non-zero, year is placed at the end (before note field) except for
+% aritcle type entry.
+%
+% In article type entry, the position of year changes according to the
+% following rule:
+%
+% #1 -> year is placed at the end.
+% #2 -> year is placed after journal name in aritcle type entry.
+% #3 -> year is placed after volume in aritcle type entry.
+%
+FUNCTION {bst.year.position}
+{ #0 } % (default).
+% { #1 } % Last place before note.
+% { #2 } % After journal name for aticle type entry.
+% { #3 } % After volume for aticle type entry.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If 0, references are sorted by old documents -> recent documents. If
+% non-zero, reverse order.
+FUNCTION {bst.reverse.year}
+{ #0 } % Normal order (old -> recent) (default).
+% { #1 } % inverse order (recent -> old)
+
+% If non-zero, sort references by using year field as the primary key
+% (chronological sorting).
+FUNCTION {bst.sort.year}
+{ #0 } % Normal case: year is used as the sorting key next to author (default).
+% { #1 } % year is used as the primary sorting key.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If non-zero, references are listed in citation order.
+%
+FUNCTION {bst.no.sort}
+{ #0 } % (default)
+% { #1 } % listed in citation order.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Non-zero -> sort references by entry type (article, book, incollection etc.)
+%
+FUNCTION {bst.sort.entry.type}
+{ #0 } % #0 -> Normal (not sort references by entry type) (default).
+% { #1 } % Non-zero -> sort references by entry type.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% 0 -> use absorder field to sort items. Otherwise, ignore absorder field.
+%
+FUNCTION {bst.notuse.absorder.field}
+{ #0 } % #0 -> Use absorder (default).
+% { #1 } % Non-#0 -> Not use absorder.
+%
+% Order of priority to sort items
+%
+% absorder -> author -> year -> order -> month -> title
+%
+% wehre absorder and order fields are specific to econ.bst.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% 0 -> use order field to sort items. Otherwise, ignore order field.
+% Note: order field is specific to econ.bst.
+FUNCTION {bst.notuse.order.field}
+{ #0 } % #0 -> Use order field (default).
+% { #1 } % Non-#0 -> not use order field.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% and
+
+%%% String used to separate author names in references.
+%
+% String replaced with _ in "Mr. A _ Mr. B "
+%
+FUNCTION {bst.and}
+{ " and " } % (default)
+
+%%% String used to separate author names in references (more than two authors).
+%
+% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
+%
+FUNCTION {bst.ands}
+{ ", and " } % (default)
+
+%%% String used to separate author names in citation part.
+%
+% String replaced with _ in "Mr. A _ Mr. B "
+%
+FUNCTION {bst.cite.and}
+{ " and " } % (default)
+
+%%% String used to separate author names in citation part (more than two authors).
+%
+% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
+%
+FUNCTION {bst.cite.ands}
+{ " and " } % (default)
+
+%%% If you want to use random author order for some bibliography entries, set
+% non-zero to this function.
+%
+FUNCTION {bst.use.nameorder}
+{ #1 } % Use random order (default)
+% { #0 } % Not use random order
+
+%%% String used to separate author names in references for the entry of random
+% author order.
+%
+FUNCTION {bst.and.nameorder}
+{ " \textcircled{r} " } % (default)
+
+%%% String used to separate author names in citation part for the entry of
+% random author order
+%
+FUNCTION {bst.cite.and.nameorder}
+{ " \textcircled{r} " } % (default)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Author names in the citation part are abbreviated by et al. if the number of
+% authors is greater or equal to bst.and.others.num.
+FUNCTION {bst.and.others.num}
+{ #3 } % If the number of authors is greater or equal to three (default).
+
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Strings used when abbreviating multiple-authors in citation part.
+FUNCTION {bst.and.others}
+{ " et~al." } % (default)
+
+% Strings used when abbreviating multiple-authors in citation part for entries
+% with random author order.
+FUNCTION {bst.and.others.nameorder}
+{ " \textcircled{r}~al." } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% author
+
+% The string before author:
+%
+FUNCTION {bst.author.pre}
+{ "" } % (default)
+
+% The string after author:
+%
+FUNCTION {bst.author.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% year
+
+% The string before year only for aritcle type entry.
+%
+FUNCTION {bst.year.pre}
+{ " (" } % (default)
+
+% The string after year only for aritcle type entry.
+%
+FUNCTION {bst.year.post}
+{ ") " } % (default)
+
+% The string after year for non-article type entry (book, incollection etc)
+%
+FUNCTION {bst.year.na.pre}
+{ " (" } % (default)
+
+% The string after year for non-article type entry (book, incollection etc)
+%
+FUNCTION {bst.year.na.post}
+{ ") " } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% title (except for title in book)
+
+% The string before title:
+%
+FUNCTION {bst.title.pre}
+{ "``" } % (default)
+
+% The string after title:
+%
+FUNCTION {bst.title.post}
+{ ",''" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% tile for book:
+
+% The string before book title:
+%
+FUNCTION {bst.book.pre}
+{ " \textit{" } % (default)
+
+% The string after book title:
+%
+FUNCTION {bst.book.post}
+{ "}" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% booktitle
+
+% The string before booktitle:
+%
+FUNCTION {bst.btitle.pre}
+{ " \textit{" } % (default)
+
+% The string after booktitle:
+%
+FUNCTION {bst.btitle.post}
+{ "}" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% journal name
+
+% The string before journal name:
+%
+FUNCTION {bst.journal.pre}
+{ " \textit{" } % (default)
+
+% The string after journal name:
+%
+FUNCTION {bst.journal.post}
+{ "}" } % (default)
+
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+% { #0 } % (default)
+{ #1 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% editor notation:
+
+% The string that indicates multiple editors:
+%
+FUNCTION {bst.editors}
+{ " eds. " } % (default)
+
+% The string that indicates single editor:
+%
+FUNCTION {bst.editor}
+{ " ed. " } % (default)
+
+% Order of editor and booktitle in incollection and inproceedings entries.
+%
+% If set to #0: editors -> booktitle order
+% If set to non-zero: booktitle -> editors order
+%
+FUNCTION {bst.editor.btitle.order}
+{ #0 } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% edition
+
+% The string before edition:
+%
+FUNCTION {bst.edition.pre}
+{ ", " } % (default)
+
+% The string after edition:
+%
+FUNCTION {bst.edition.post}
+{ " edition" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% volume
+
+% The string before volume:
+%
+FUNCTION {bst.volume.pre}
+{ ", " } % (default)
+
+% The string after volume:
+%
+FUNCTION {bst.volume.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% number
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hide number. If non-zero, number is suppressed.
+FUNCTION {bst.hide.number}
+{ #0 } % #0 -> show number field (default)
+% { #1 } % non-#0 -> Hide number field.
+
+% The string before number:
+%
+FUNCTION {bst.number.pre}
+{ " (" } % (default)
+
+% The string after number:
+%
+FUNCTION {bst.number.post}
+{ ")" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% in
+
+% In
+%
+FUNCTION {bst.in}
+{ " in " } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% page
+
+% The string before page (multiple pages):
+%
+FUNCTION {bst.pages.pre}
+{ ", " } % (default)
+
+% The string before page:
+%
+FUNCTION {bst.page.pre}
+{ ", " } % (default)
+
+% The string after page (multiple pages):
+%
+FUNCTION {bst.pages.post}
+{ "" } % (default)
+
+% The string after page:
+%
+FUNCTION {bst.page.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% chapter
+
+% The string before chapter:
+%
+FUNCTION {bst.chapter.pre}
+{ ", Chap." } % (default)
+
+% The string after chapter:
+%
+FUNCTION {bst.chapter.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% month
+
+% The string before month:
+%
+FUNCTION {bst.month.pre}
+{ ", " } % (default)
+
+% The string after month:
+%
+FUNCTION {bst.month.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% address
+% The string before address:
+%
+FUNCTION {bst.address.pre}
+{ ", " } % (default)
+
+% The string after address:
+%
+FUNCTION {bst.address.post}
+{ "" } % (default)
+
+% You can choose the order of address and publisher by this function.
+%
+% If #0, address -> publisher order (the default value).
+% If non-zero, publisher -> address order.
+
+FUNCTION {bst.address.position}
+{ #0 } % Address is placed before publisher (default)
+% { #1 } % Address is placed after publisher
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% publisher
+
+% The string before publisher:
+%
+FUNCTION {bst.publisher.pre}
+{ ": " } % (default)
+
+% The string after publisher:
+%
+FUNCTION {bst.publisher.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% series
+
+% The string before series:
+%
+FUNCTION {bst.series.pre}
+{ ", " } % (default)
+
+% The string after series:
+%
+FUNCTION {bst.series.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% organization
+
+% The string before organization:
+%
+FUNCTION {bst.organization.pre}
+{ ", " } % (default)
+
+% The string after organization:
+%
+FUNCTION {bst.organization.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% school
+
+% The string before school:
+%
+FUNCTION {bst.school.pre}
+{ ", " } % (default)
+
+% The string after school:
+%
+FUNCTION {bst.school.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% institution
+
+% The string before institution:
+%
+FUNCTION {bst.institution.pre}
+{ ", " } % (default)
+
+% The string after institution:
+%
+FUNCTION {bst.institution.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% howpublished
+
+% The string before howpublished:
+%
+FUNCTION {bst.howpublished.pre}
+{ " " } % (default)
+
+% The string after howpublished:
+%
+FUNCTION {bst.howpublished.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% url
+
+% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed.
+FUNCTION {bst.show.url}
+{ #1 } % non-#0 -> Show url field (default)
+% { #0 } % #0 -> Not show url field.
+
+% The string before url:
+%
+FUNCTION {bst.url.pre}
+{ ", \url{" } % (default)
+
+% The string after url:
+%
+FUNCTION {bst.url.post}
+{ "}" } % (default)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Access
+
+% This setting is valid only if there are "access" field in bib
+% files. The value of access field indicates accessed date for URL.
+
+% The string before access.
+FUNCTION {bst.access.pre}
+{ ", accessed on " } % (default)
+
+% The string after access.
+FUNCTION {bst.access.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DOI (digital object identifier)
+
+% This setting is valid only if there are "doi" field in bib files.
+
+% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed.
+FUNCTION {bst.show.doi}
+{ #1 } % non-#0 -> Show DOI field (default)
+% { #0 } % #0 -> Not show DOI field.
+
+% The string before DOI:
+%
+FUNCTION {bst.doi.pre}
+{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
+
+% The string after DOI:
+%
+FUNCTION {bst.doi.post}
+{ "}}" } % (default)
+
+% How to show URL and DOI fields when both fields exist.
+%
+% #0 -> Both fields are displayed
+% #1 -> Only URL field is displayed
+% #2 -> Only DOI field is displayed
+%
+FUNCTION {bst.url.doi}
+% { #0 } % -> Both fields are displayed
+% { #1 } % -> Only URL field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Other functions:
+
+% The string before note.
+FUNCTION {bst.note.pre}
+{ ", " } % (default)
+
+% The string after note.
+FUNCTION {bst.note.post}
+{ "" } % (default)
+
+% The string that represents Technical report:
+%
+FUNCTION {bst.techrep}
+{ "Technical Report" } % (default)
+
+% The string that represents master thesis:
+%
+FUNCTION {bst.mthesis}
+{ " Master's thesis" } % (default)
+
+% The string that represents phd thesis:
+%
+FUNCTION {bst.phdthesis}
+{ " Ph.D. dissertation" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Functions for customization end here:
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {bst.first}
+{ "1st" }
+
+FUNCTION {bst.second}
+{ "2nd" }
+
+FUNCTION {bst.third}
+{ "3rd" }
+
+FUNCTION {bst.fourth}
+{ "4th" }
+
+FUNCTION {bst.fifth}
+{ "5th" }
+
+FUNCTION {bst.st}
+{ "st" }
+
+FUNCTION {bst.nd}
+{ "nd" }
+
+FUNCTION {bst.rd}
+{ "rd" }
+
+FUNCTION {bst.th}
+{ "th" }
+
+%%%%% memo by Takeda
+
+% "a" 'b := indicates substituting string "a" for variable b.
+
+% Integer number #0, #1,...
+
+%%% Function definition:
+%
+% FUNCTION {name}
+% { 's :=
+%
+% }
+%
+% This is the definition of a function named "name". The function "name" is
+% used in the following way
+%
+% "foo" name
+% "foo" is an argument for the function "name".
+%
+% About the definition of a function with more than two arguments, see the
+% definition of "chop.word".
+
+%%% Declaration of variables:
+
+%% String global variables:
+STRINGS { s t tt }
+STRINGS { year.num }
+STRINGS { preone preten }
+STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author }
+STRINGS { hang }
+STRINGS { item.type }
+STRINGS { tempa tempb }
+
+%% Integer global variables:
+INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { multiresult }
+INTEGERS { index }
+INTEGERS { len }
+INTEGERS { last.extra.num }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+INTEGERS { last.period.comma }
+INTEGERS { len1.aer len2.aer i.aer }
+
+%%% Definition of functions:
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+%%% Initialize variables:
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+%%% Remove comma and add period:
+%
+%%%
+FUNCTION {add.period.x}
+{ duplicate$
+ #-1 #1 substring$ "," =
+ { #-2 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ". " =
+ { #-3 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ", " =
+ { #-3 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ",'" =
+ { #-3 global.max$ substring$ ".'" * }
+ { duplicate$
+ #-1 #2 substring$ ".'" =
+ { #-3 global.max$ substring$ ".'" * }
+ { duplicate$
+ #-1 #2 substring$ ".~" =
+ { #-3 global.max$ substring$ ".~" * }
+ { duplicate$
+ #-1 #2 substring$ ",~" =
+ { #-3 global.max$ substring$ ".~" * }
+ { duplicate$
+ #-1 #3 substring$ ",''" =
+ { #-4 global.max$ substring$ ".''" * }
+ { duplicate$
+ #-1 #3 substring$ ".''" =
+ { #-4 global.max$ substring$ ".''" * }
+ { add.period$ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {output.nonnull}
+{ 's :=
+ % mid.sentence
+ output.state mid.sentence =
+ { ", " * write$ }
+ % not mid.sentence
+ { output.state after.block =
+ % after.block
+ { add.period.x " " * write$ }
+ % before.all
+ { output.state before.all =
+ 'write$
+ { add.period.x " " * write$ }
+ if$
+ }
+ if$
+ % not mid.sentence, set to mid.sentence
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+%%% If the last character is period or comma, set non-zero to
+%%% last.period.comma.
+FUNCTION {period.comma.p}
+{ duplicate$ 't :=
+ t #-1 #1 substring$ "." =
+ t #-1 #1 substring$ "," = or
+ t #-1 #1 substring$ ":" = or
+ t #-1 #2 substring$ ".'" = or
+ t #-1 #2 substring$ ",'" = or
+ t #-1 #3 substring$ ".''" = or
+ t #-1 #3 substring$ ",''" = or
+ t #-1 #2 substring$ ".~" = or
+ t #-1 #2 substring$ ",~" = or
+ { #1 'last.period.comma := }
+ { #0 'last.period.comma := }
+ if$
+}
+
+%%% remove unnecessary comma.
+FUNCTION {remove.pre.comma}
+{ 's :=
+ s empty$
+ { "" }
+ { s #1 #1 substring$ "," =
+ { s #2 global.max$ substring$ }
+ { s #1 #1 substring$ "." =
+ { s #2 global.max$ substring$ }
+ 's
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% output.nonnull.nocomma is the same as output.nonnull except that it does
+%%% not add commas even in mid.sentence.
+FUNCTION {output.nonnull.nocomma}
+{ 's :=
+ output.state mid.sentence =
+ % mid.sentence
+ { period.comma.p "" * write$ }
+
+ % not mid.sentence
+ { output.state after.block =
+ % after.block
+ { add.period.x " " * write$ }
+ % before.all
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ last.period.comma #0 =
+ { s }
+ { s remove.pre.comma }
+ if$
+}
+
+% Not used in the current econ.bst.
+% FUNCTION {output}
+% { duplicate$ empty$
+% 'pop$
+% 'output.nonnull
+% if$
+% }
+
+FUNCTION {output.nocomma}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull.nocomma
+ if$
+}
+
+% Not used in the current econ.bst.
+% FUNCTION {output.check}
+% { 't :=
+% duplicate$ empty$
+% { pop$ "empty " t * " in " * cite$ * warning$ }
+% 'output.nonnull
+% if$
+% }
+
+FUNCTION {output.check.nocomma}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull.nocomma
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Format in bbl file:
+
+% \harvarditem[Brezis et~al.]{Brezis, Krugman and
+% Tsiddon}{1993}{brezis93:_leapf_inter_compet}
+% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in
+% International Competition: A Theory of Cycles in National Technological
+% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp.
+% 1211--1219.
+
+% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ...
+
+%%% Add period and newline.
+FUNCTION {fin.entry}
+{ add.period.x
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {new.block.check}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+%%% booktitle
+FUNCTION {format.btitle}
+{ booktitle empty$
+ { "" }
+ { bst.btitle.pre booktitle * bst.btitle.post * }
+ if$
+}
+
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ s "Academy of Management Journal" =
+ { "Acad. Manage. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Accounting Review" =
+ { "Account. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Accounting, Organizations and Society" =
+ { "Account. Org. Soc." 'jname := }
+ 'skip$
+ if$
+ s "Accounting, Organizations and Society" =
+ { "Admin. Sci. Quart." 'jname := }
+ 'skip$
+ if$
+ s "Administrative Science Quarterly" =
+ { "Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Applied Economics" =
+ { "Am. Econ. J. Appl. Econ." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Economic Policy" =
+ { "Am. Econ. J. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Macroeconomics" =
+ { "Am. Econ. J. Macro." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Microeconomics" =
+ { "Am. Econ. J. Micro." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Review" =
+ { "Am. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "American Journal of Agricultural Economics" =
+ { "Am. J. Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "American Journal of Economics and Sociology" =
+ { "Am. J. Econ. Sociol." 'jname := }
+ 'skip$
+ if$
+ s "Applied Economics" =
+ { "Appl. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Applied Economics Letters" =
+ { "Appl. Econ. Lett." 'jname := }
+ 'skip$
+ if$
+ s "Applied Energy" =
+ { "Appl. Energ." 'jname := }
+ 'skip$
+ if$
+ s "Applied Stochastic Models in Business and Industry" =
+ { "Appl. Stoch. Model Bus." 'jname := }
+ 'skip$
+ if$
+ s "Auditing: A Journal of Practise and Theory" =
+ { "Auditing.-J. Pract. Th." 'jname := }
+ 'skip$
+ if$
+ s "Australian Journal of Agricultural and Resource Economics" =
+ { "Aust. J. Agr. Resour. Ec." 'jname := }
+ 'skip$
+ if$
+ s "B.E. Journal of Economic Analysis \& Policy" =
+ { "B.E. J. Econ. Anal. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Betriebswirtschaftliche Forschung Und Praxis" =
+ { "Betrieb. Forsch. Prax." 'jname := }
+ 'skip$
+ if$
+ s "British Journal of Industrial Relations" =
+ { "Brit. J. Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "British Journal of Management" =
+ { "Brit. J. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Bulletin of Indonesian Economic Studies" =
+ { "B. Indones. Econ. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Business Ethics Quarterly" =
+ { "Bus. Ethics Q." 'jname := }
+ 'skip$
+ if$
+ s "Business History" =
+ { "Bus. Hist." 'jname := }
+ 'skip$
+ if$
+ s "Business History Review" =
+ { "Bus. Hist. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Business Lawyer" =
+ { "Bus. Lawyer" 'jname := }
+ 'skip$
+ if$
+ s "California Management Review" =
+ { "Calif. Manage. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Cambridge Journal of Economics" =
+ { "Cambridge J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Canadian Journal of Administrative Sciences" =
+ { "Can. J. Adm. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Canadian Journal of Economics" =
+ { "Can. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "China Economic Review" =
+ { "China. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Climate Change Economics" =
+ { "Clim. Change Econ." 'jname := }
+ 'skip$
+ if$
+ s "Climate Policy" =
+ { "Clim. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Communications in Statistics – Part A: Theory and Methods" =
+ { "Commun. Stat.-Theor. M." 'jname := }
+ 'skip$
+ if$
+ s "Computational Economics" =
+ { "Computation. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Computational Statistics" =
+ { "Computation. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Computational Statistics and Data Analysis" =
+ { "Comput. Stat. Data An." 'jname := }
+ 'skip$
+ if$
+ s "Contemporary Accounting Research" =
+ { "Contemp. Account. Res." 'jname := }
+ 'skip$
+ if$
+ s "Contemporary Economic Policy" =
+ { "Contemp. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Defence and Peace Economics" =
+ { "Defence Peace Econ." 'jname := }
+ 'skip$
+ if$
+ s "Development Economics" =
+ { "Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Eastern European Economics" =
+ { "Eastern Eur. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Ecological Economics" =
+ { "Ecol. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Econometric Theory" =
+ { "Economet. Theor." 'jname := }
+ 'skip$
+ if$
+ s "Econometrica" =
+ { "Econometrica" 'jname := }
+ 'skip$
+ if$
+ s "Economic and Industrial Democracy" =
+ { "Econ. Ind. Democr." 'jname := }
+ 'skip$
+ if$
+ s "Economic Development and Cultural Change" =
+ { "Econ. Dev. Cult. Change" 'jname := }
+ 'skip$
+ if$
+ s "Economic Development and Cultural Change" =
+ { "Economist.-Netherland" 'jname := }
+ 'skip$
+ if$
+ s "Economic Development Quarterly" =
+ { "Econ. Dev. Q." 'jname := }
+ 'skip$
+ if$
+ s "Economic Geography" =
+ { "Econ. Geogr." 'jname := }
+ 'skip$
+ if$
+ s "Economic History Review" =
+ { "Econ. Hist. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Economic Inquiry" =
+ { "Econ. Inq." 'jname := }
+ 'skip$
+ if$
+ s "Economic Journal" =
+ { "Econ. J." 'jname := }
+ 'skip$
+ if$
+ s "Economic Modelling" =
+ { "Econ. Model." 'jname := }
+ 'skip$
+ if$
+ s "Economic Policy" =
+ { "Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Economic Record" =
+ { "Econ. Rec." 'jname := }
+ 'skip$
+ if$
+ s "Economic Theory" =
+ { "Econ. Theor." 'jname := }
+ 'skip$
+ if$
+ s "Economica" =
+ { "Economica" 'jname := }
+ 'skip$
+ if$
+ s "Economics and Philosophy" =
+ { "Econ. Philos." 'jname := }
+ 'skip$
+ if$
+ s "Economics Letters" =
+ { "Econ. Lett." 'jname := }
+ 'skip$
+ if$
+ s "Economics of Education Review" =
+ { "Econ. Educ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Economics of Energy \& Environmental Policy" =
+ { "Econ. Energ. Environ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Economics of Transition" =
+ { "Econ. Transit." 'jname := }
+ 'skip$
+ if$
+ s "Economy and Society" =
+ { "Econ. Soc." 'jname := }
+ 'skip$
+ if$
+ s "Ekonomicky Casopis" =
+ { "Ekon. Cas." 'jname := }
+ 'skip$
+ if$
+ s "Ekonomiska Samfundets Tidskrift" =
+ { "Ekon. Samf. Tidskr." 'jname := }
+ 'skip$
+ if$
+ s "Emerging Markets Finance and Trade" =
+ { "Emerg. Mark. Financ. Tr." 'jname := }
+ 'skip$
+ if$
+ s "Energy Economics" =
+ { "Energ. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Energy Journal" =
+ { "Energ. J." 'jname := }
+ 'skip$
+ if$
+ s "Energy Policy" =
+ { "Energ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Entrepreneurship \& Regional Development" =
+ { "Entrep. Region. Dev." 'jname := }
+ 'skip$
+ if$
+ s "Entrepreneurship Theory and Practice" =
+ { "Entrep. Theory Pract." 'jname := }
+ 'skip$
+ if$
+ s "Environment and Development Economics" =
+ { "Environ. Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Environmental and Resource Economics" =
+ { "Environ. Resour. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Environmental Economics and Policy Studies" =
+ { "Environ. Econ. Policy Stud." 'jname := }
+ 'skip$
+ if$
+ s "Environmental Science and Policy" =
+ { "Environ. Sci. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Environmental Science \& Technology" =
+ { "Environ. Sci. Technol." 'jname := }
+ 'skip$
+ if$
+ s "Eurasian Geography and Economics " =
+ { "Eurasian Geogr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "European Economic Review" =
+ { "Eur. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "European Journal of Industrial Relations" =
+ { "Eur. J. Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "European Review of Agricultural Economics" =
+ { "Eur. Rev. Agric. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Europe-Asia Studies" =
+ { "Europe-Asia Stud." 'jname := }
+ 'skip$
+ if$
+ s "Explorations in Economic History" =
+ { "Explor. Econ. Hist." 'jname := }
+ 'skip$
+ if$
+ s "Feminist Economics" =
+ { "Fem. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Finance a Uver" =
+ { "Financ. Uver." 'jname := }
+ 'skip$
+ if$
+ s "Finance and Stochastics" =
+ { "Financ. Stoch." 'jname := }
+ 'skip$
+ if$
+ s "Financial Analysts Journal" =
+ { "Financ. Anal. J." 'jname := }
+ 'skip$
+ if$
+ s "Financial Management" =
+ { "Financ. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Fiscal Studies" =
+ { "Fisc. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Food Policy" =
+ { "Food. Policy." 'jname := }
+ 'skip$
+ if$
+ s "Futures" =
+ { "Futures" 'jname := }
+ 'skip$
+ if$
+ s "Games and Economic Behavior" =
+ { "Game Econ. Behav." 'jname := }
+ 'skip$
+ if$
+ s "Health Economics" =
+ { "Health Econ." 'jname := }
+ 'skip$
+ if$
+ s "Hitotsubashi Journal of Economics" =
+ { "Hitotsub. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "IMF Staff Papers" =
+ { "Imf. Staff. Papers" 'jname := }
+ 'skip$
+ if$
+ s "Industrial and Corporate Change" =
+ { "Ind. Corp. Change" 'jname := }
+ 'skip$
+ if$
+ s "Industrial and Labor Relations Review" =
+ { "Ind. Labor. Relat. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Industrial Marketing Management" =
+ { "Ind. Market Manag." 'jname := }
+ 'skip$
+ if$
+ s "Industrial Relations" =
+ { "Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "Information Economics and Policy" =
+ { "Info. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Insurance: Mathematics and Economics" =
+ { "Insur. Math. Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Economic Review" =
+ { "Int. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Electronics and Telecommunications" =
+ { "Int. J. Electron. Comm." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Economic Theory" =
+ { "Int. J. Econ. Theory" 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Finance \& Economics" =
+ { "Int. J. Financ. Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Forecasting" =
+ { "Int. J. Forecast." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Game Theory" =
+ { "Int. J. Game. Theory" 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Industrial Organization" =
+ { "Int. J. Ind. Organ." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Manpower" =
+ { "Int. J. Manpow." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Market Research" =
+ { "Int. J. Market Res." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Research in Marketing" =
+ { "Int. J. Res. Mark." 'jname := }
+ 'skip$
+ if$
+ s "International Labour Review" =
+ { "Int. Labour Rev." 'jname := }
+ 'skip$
+ if$
+ s "International Marketing Review" =
+ { "Int. Market. Rev." 'jname := }
+ 'skip$
+ if$
+ s "International Review of Applied Economics" =
+ { "Int. Rev. Appl. Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Review of Law and Economics" =
+ { "Int. Rev. Law Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Small Business Journal" =
+ { "Int. Small. Bus. J." 'jname := }
+ 'skip$
+ if$
+ s "International Tax and Public Finance" =
+ { "Int. Tax Public Finan." 'jname := }
+ 'skip$
+ if$
+ s "Jahrbücher für Nationalökonomie und Statistik" =
+ { "Jahrb. Natl. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Japan and the World Economy" =
+ { "Jpn. World Econ." 'jname := }
+ 'skip$
+ if$
+ s "Japanese Economic Review" =
+ { "Jpn. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "JCMS-journal of Common Market Studies" =
+ { "Jcms.-J. Common. Mark. S." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Accounting and Economics" =
+ { "J. Account. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Accounting Research" =
+ { "J. Account. Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Advertising" =
+ { "J. Advertising" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Advertising Research" =
+ { "J. Advertising Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of African Economies" =
+ { "J. Afr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Agricultural and Resource Economics" =
+ { "J. Agr. Resour. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Agricultural Economics" =
+ { "J. Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Applied Econometrics" =
+ { "J. Appl. Econom." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Banking and Finance" =
+ { "J. Bank Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business" =
+ { "J. Bus." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business and Economic Statistics" =
+ { "J. Bus. Econ. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business and Psychology" =
+ { "J. Bus. Psychol." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business and Technical Communication" =
+ { "J. Bus. Tech. Commun." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business Ethics" =
+ { "J. Bus. Ethics" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business Research" =
+ { "J. Bus. Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business Venturing" =
+ { "J. Bus. Venturing." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Cleaner Productiond" =
+ { "J. Clean. Prod." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Comparative Economics" =
+ { "J. Comp. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Consumer Affairs" =
+ { "J. Consum. Aff." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Consumer Research" =
+ { "J. Consum. Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Corporate Finance" =
+ { "J. Corp. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Development Economics" =
+ { "J. Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Econometrics" =
+ { "J. Econometrics" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Behavior and Organization" =
+ { "J. Econ. Behav. Organ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Dynamics and Control" =
+ { "J. Econ. Dyn. Control" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Education" =
+ { "J. Econ. Educ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Geography" =
+ { "J. Econ. Geogr." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Growth" =
+ { "J. Econ. Growth" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic History" =
+ { "J. Econ. Hist." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Integration" =
+ { "J. Econ. Integr." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Issues" =
+ { "J. Econ. Issues." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Perspectives" =
+ { "J. Econ. Perspect." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Psychology" =
+ { "J. Econ. Psychol." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Literature" =
+ { "J. Econ. Lit." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Surveys" =
+ { "J. Econ. Surv." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Theory" =
+ { "J. Econ. Theory" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economics" =
+ { "J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economics and Management Strategy" =
+ { "J. Econ. Manage. Strat." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Environmental Economics and Management" =
+ { "J. Environ. Econ. Manag." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Evolutionary Economics" =
+ { "J. Evol. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Finance" =
+ { "J. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial and Quantitative Analysis" =
+ { "J. Financ. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial Economics" =
+ { "J. Financ. Intermed." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial Intermediation" =
+ { "J. Financ. Mark." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial Markets" =
+ { "J. Financ. Quant. Anal." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Forecasting" =
+ { "J. Forecasting." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Futures Markets" =
+ { "J. Futures Market" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Health Economics" =
+ { "J. Health Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Housing Economics" =
+ { "J. Hous. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Human Resources" =
+ { "J. Hum. Resour." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Industrial Economics" =
+ { "J. Ind. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Institutional and Theoretical Economics" =
+ { "J. Inst. Theor. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Integrated Disaster Risk Management" =
+ { "J. Integr. Disaster Risk Manag." 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Business Studies" =
+ { "J. Int. Bus. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Economics" =
+ { "J. Int. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Marketing" =
+ { "J. Int. Marketing" 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Money and Finance" =
+ { "J. Int. Money Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Labor Economics" =
+ { "J. Labor Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Labor Research" =
+ { "J. Labor Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Law and Economics" =
+ { "J. Law. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Law, Economics, and Organization" =
+ { "J. Law. Econ. Organ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Macroeconomics" =
+ { "J. Macroecon." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Management" =
+ { "J. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Management Studies" =
+ { "J. Manage. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Marketing" =
+ { "J. Marketing" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Marketing Research" =
+ { "J. Marketing Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Mathematical Economics" =
+ { "J. Math. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Media Economics" =
+ { "J. Media Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Monetary Economics" =
+ { "J. Monetary. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Money, Credit and Banking" =
+ { "J. Money Credit Bank." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Policy Modeling" =
+ { "J. Policy Model." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Political Economy" =
+ { "J. Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Population Economics" =
+ { "J. Popul. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Portfolio Management" =
+ { "J. Portfolio Manage." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Post Keynesian Economics" =
+ { "J. Post Keynesian Ec." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Product Innovation Management" =
+ { "J. Prod. Innovat. Manag." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Productivity Analysis" =
+ { "J. Prod. Anal." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Public Economics" =
+ { "J. Public Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Public Policy and Marketing" =
+ { "J. Public Policy Mark." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Real Estate Finance and Economics" =
+ { "J. Real Estate Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Regulatory Economics" =
+ { "J. Regul. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Retailing" =
+ { "J. Retailing" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Risk and Insurance" =
+ { "J. Risk. Insur" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Risk and Uncertainty" =
+ { "J. Risk Uncertainty" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Statistical Computation and Simulation" =
+ { "J. Stat. Comput. Sim." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Statistical Planning and Inference" =
+ { "J. Stat. Plan. Infer." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the Academy of Marketing Science" =
+ { "J. Acad. Market. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the American Statistical Association" =
+ { "J. Am. Stat. Assoc." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the European Economic Association" =
+ { "J. Eur. Econ. Assoc." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the Japanese and International Economies" =
+ { "J. Jpn. Int. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Time Series Analysis" =
+ { "J. Time Ser. Anal." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Transport Economics and Policy" =
+ { "J. Transp. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Urban Economics" =
+ { "J. Urban Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of World Business" =
+ { "J. World. Bus." 'jname := }
+ 'skip$
+ if$
+ s "Kyklos" =
+ { "Kyklos" 'jname := }
+ 'skip$
+ if$
+ s "Labor History" =
+ { "Labor Hist." 'jname := }
+ 'skip$
+ if$
+ s "Labour Economics" =
+ { "Labour Econ." 'jname := }
+ 'skip$
+ if$
+ s "Land Economics" =
+ { "Land Econ." 'jname := }
+ 'skip$
+ if$
+ s "Long Range Planning" =
+ { "Long Range Plann." 'jname := }
+ 'skip$
+ if$
+ s "Macroeconomic Dynamics" =
+ { "Macroecon. Dyn." 'jname := }
+ 'skip$
+ if$
+ s "Management Science" =
+ { "Manage. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Manchester School" =
+ { "Manch. Sch." 'jname := }
+ 'skip$
+ if$
+ s "Marketing Letters" =
+ { "Market. Lett." 'jname := }
+ 'skip$
+ if$
+ s "Marketing Science" =
+ { "Market. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Materials Transactions" =
+ { "Mater. Trans." 'jname := }
+ 'skip$
+ if$
+ s "Mathematical Finance" =
+ { "Math. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Monthly Labor Review" =
+ { "Mon. Labor Rev." 'jname := }
+ 'skip$
+ if$
+ s "National Tax Journal" =
+ { "Natl. Tax. J." 'jname := }
+ 'skip$
+ if$
+ s "New England Economic Review" =
+ { "New Engl. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "New Political Economy" =
+ { "New Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Open Economies Review" =
+ { "Open. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Organizational Dynamics" =
+ { "Organ. Dyn." 'jname := }
+ 'skip$
+ if$
+ s "Oxford Bulletin of Economics and Statistics" =
+ { "Oxford. B. Econ. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Oxford Economic Papers" =
+ { "Oxford Econ. Pap." 'jname := }
+ 'skip$
+ if$
+ s "Oxford Review of Economic Policy" =
+ { "Oxford. Rev. Econ. Pol." 'jname := }
+ 'skip$
+ if$
+ s "Politicka Ekonomie" =
+ { "Polit. Ekon." 'jname := }
+ 'skip$
+ if$
+ s "Population and Development Review" =
+ { "Popul. Dev. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Post-Communist Economies" =
+ { "Post.-Communist. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Post-Soviet Affairs" =
+ { "Post.-Sov. Aff." 'jname := }
+ 'skip$
+ if$
+ s "Psychology \& Marketing" =
+ { "Psychol. Market." 'jname := }
+ 'skip$
+ if$
+ s "Public Choice" =
+ { "Public. Choice." 'jname := }
+ 'skip$
+ if$
+ s "Quantitative Finance" =
+ { "Quant. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Quarterly Journal of Economics" =
+ { "Q. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "R\&D Management" =
+ { "R.\&D. Manage." 'jname := }
+ 'skip$
+ if$
+ s "RAND Journal of Economics" =
+ { "Rand. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Real Estate Economics" =
+ { "Real Estate Econ." 'jname := }
+ 'skip$
+ if$
+ s "Regional Science and Urban Economics" =
+ { "Reg. Sci. Urban. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Regional Studies" =
+ { "Reg. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Relations Industrielles-Industrial Relations" =
+ { "Relat. Ind.-Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "Research-Technology Management" =
+ { "Res. Technol. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Resource and Energy Economics" =
+ { "Resour. Energy. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of Accounting Studies" =
+ { "Rev. Acc. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Review of Agricultural Economics" =
+ { "Rev. Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of Development Economics" =
+ { "Rev. Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of Economic Dynamics" =
+ { "Rev. Econ. Dynam." 'jname := }
+ 'skip$
+ if$
+ s "Review of Economic Studies" =
+ { "Rev. Econ. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Review of Economics and Statistics" =
+ { "Rev. Econ. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Review of Financial Studies" =
+ { "Rev. Financ. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Review of Income and Wealth" =
+ { "Rev. Income Wealth" 'jname := }
+ 'skip$
+ if$
+ s "Review of Industrial Organization" =
+ { "Rev. Ind. Organ." 'jname := }
+ 'skip$
+ if$
+ s "Review of International Economics" =
+ { "Rev. Int. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of International Political Economy" =
+ { "Rev. Int. Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of World Economics" =
+ { "Rev. World Econ." 'jname := }
+ 'skip$
+ if$
+ s "Scandinavian Journal of Economics" =
+ { "Scand. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Scottish Journal of Political Economy" =
+ { "Scot. J. Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Small Business Economics" =
+ { "Small. Bus. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Social Choice and Welfare" =
+ { "Soc. Choice Welfare" 'jname := }
+ 'skip$
+ if$
+ s "South African Journal of Economics" =
+ { "S. Afr. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Southern Economic Journal" =
+ { "South. Econ. J." 'jname := }
+ 'skip$
+ if$
+ s "Strategic Management Journal" =
+ { "Statistics." 'jname := }
+ 'skip$
+ if$
+ s "Strategic Management Journal" =
+ { "Strategic Manage. J." 'jname := }
+ 'skip$
+ if$
+ s "Studies in Nonlinear Dynamics and Econometrics" =
+ { "Stoch. Anal. Appl." 'jname := }
+ 'skip$
+ if$
+ s "Studies in Nonlinear Dynamics and Econometrics" =
+ { "Stud. Nonlinear. Dyn. E." 'jname := }
+ 'skip$
+ if$
+ s "Supply Chain Management" =
+ { "Supply. Chain. Manag." 'jname := }
+ 'skip$
+ if$
+ s "Sustainability" =
+ { "Sustainability" 'jname := }
+ 'skip$
+ if$
+ s "Technological Forecasting and Social Change" =
+ { "Technol. Forecast. Soc." 'jname := }
+ 'skip$
+ if$
+ s "Theory and Decision" =
+ { "Theor. Decis." 'jname := }
+ 'skip$
+ if$
+ s "Tijdschrift voor Economische en Sociale Geografie" =
+ { "Tijdschr. Econ. Soc. Ge." 'jname := }
+ 'skip$
+ if$
+ s "Trimestre Economico" =
+ { "Trimest. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Work and Occupations" =
+ { "Work Occupation." 'jname := }
+ 'skip$
+ if$
+ s "Work, Employment and Society" =
+ { "Work Employ. Soc." 'jname := }
+ 'skip$
+ if$
+ s "World Bank Economic Review" =
+ { "World Bank Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "World Bank Research Observer" =
+ { "World Bank Res. Obser." 'jname := }
+ 'skip$
+ if$
+ s "World Development" =
+ { "World Dev." 'jname := }
+ 'skip$
+ if$
+ s "World Economy" =
+ { "World Econ." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
+%%% journal
+FUNCTION {format.journal}
+{ journal empty$
+ { "" }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
+ if$
+}
+
+%%% title for book
+FUNCTION {format.book}
+{ title empty$
+ { "" }
+ { bst.book.pre title * bst.book.post * }
+ if$
+}
+
+FUNCTION {format.url}
+{ url empty$
+ { "" }
+ { type$ "online" = bst.show.url or
+ { bst.url.pre url * bst.url.post *
+ access empty$
+ { "" * }
+ { bst.access.pre * access * bst.access.post * }
+ if$
+ }
+ { "" }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$ bst.show.doi not or
+ { "" }
+ { bst.doi.pre doi * bst.doi.post * }
+ if$
+}
+
+FUNCTION {format.url.doi}
+{ url empty$
+ { format.doi }
+ { doi empty$
+ { format.url }
+ { bst.url.doi #0 =
+ { format.url output.nocomma
+ format.doi }
+ { bst.url.doi #1 =
+ { format.url }
+ { format.doi }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% and others
+FUNCTION {bst.and.others.output}
+{ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.others.nameorder }
+ { bst.and.others }
+ if$
+}
+
+%%% author and editor
+
+%%% name
+FUNCTION {format.names}
+{ 's :=
+ % insert 1 to nameptr.
+ #1 'nameptr :=
+ % Set the number of authors to numnames.
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ % Repeat if namesleft > 0
+ { namesleft #0 > }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ if$
+
+ nameptr #1 >
+ % The second or later authors
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+% remove successive periods (commas) from author
+FUNCTION {remove.ss.period.auth}
+{ 's :=
+ s format.names 'tempa :=
+ bst.author.post 'tempb :=
+ tempb #1 #1 substring$ "}" =
+ { tempa tempb * }
+ { tempa #-1 #1 substring$ tempb #1 #1 substring$ =
+ { tempa tempb #2 global.max$ substring$ * }
+ { tempa tempb * }
+ if$
+ }
+ if$
+}
+
+% <prev name list> <new name list> compare.names <modified name list>
+FUNCTION {compare.names.aer}
+{ 's :=
+ 'tempa :=
+
+% "current.author = " s * "\\" * write$ newline$
+% "prev.author = " tempa * "\\" * write$ newline$
+
+ tempa num.names$ 'len1.aer := % len1 = the number of previous authors
+ s num.names$ 'len2.aer := % len2 = the number of current authors
+
+% len1.aer := min(len1.aer,len2.aer)
+% len1 -> min{ the number of previous authors, the number of current authors }
+ len1.aer len2.aer >
+ { len2.aer 'len1.aer := }
+ { }
+ if$
+
+% start with an empty string, then while the components are the same
+% add "\bysame"
+ ""
+ #1 'i.aer :=
+
+ { i.aer len1.aer > not }
+ { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$
+ s i.aer "{ff }{vv }{ll}{ jj}" format.name$
+ =
+ { #1 i.aer <
+ { " and " * } % \bysame で省略する著者の前につく and
+ { }
+ if$
+ "\bysame{}" *
+ i.aer #1 + 'i.aer := }
+ { #-1 'len1.aer := }
+ if$
+ }
+ while$
+
+% add the rest of the second string
+ { i.aer len2.aer > not }
+ { #1 i.aer <
+ { " and " * }
+ { }
+ if$
+ s i.aer "{ff }{vv }{ll}{ jj}" format.name$ *
+ i.aer #1 + 'i.aer :=
+ }
+ while$
+}
+
+%%% author
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { bst.use.bysame #2 =
+ { prev.author.aer author compare.names.aer 's :=
+ author 'prev.author.aer := }
+ { author 's := }
+ if$
+ extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre s remove.ss.period.auth * }
+ if$
+ }
+ if$
+}
+
+%%% editor
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { bst.use.bysame #2 =
+ { prev.author.aer editor compare.names.aer 's :=
+ editor 'prev.author.aer := }
+ { editor 's := }
+ if$
+ extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre s remove.ss.period.auth * }
+ if$
+ s num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.authors.alt}
+{ author empty$
+ { "" }
+ { extra.label.bysame "bysame" =
+ {"\bysame "}
+ { bst.author.pre author remove.ss.period.auth * }
+ if$
+ }
+ if$
+}
+
+%%% editor
+FUNCTION {format.editors.alt}
+{ editor empty$
+ { "" }
+ { extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre editor remove.ss.period.auth * }
+ if$
+ editor num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ if$
+}
+
+%%% format.in.ed.booktitle
+FUNCTION {format.editors.x}
+{ editor empty$
+ { "" }
+ { bst.editor.btitle.order #0 =
+ { "" }
+ { editor num.names$ #1 >
+ { bst.editors " by " * }
+ { bst.editor " by " * }
+ if$
+ }
+ if$
+ editor format.names *
+ bst.editor.btitle.order #0 =
+ { editor num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ { "" * }
+ if$
+ }
+ if$
+}
+
+%%% Remove commas in the cases like "?." and "?,".
+FUNCTION {remove.irrelevant.period.comma}
+{ 's :=
+ s empty$
+ { "" }
+ { s #-1 #3 substring$ "?,'" =
+ s #-1 #3 substring$ "?.'" = or
+ { s #-3 global.max$ substring$ "'" * }
+ { s #-1 #4 substring$ "?,''" =
+ s #-1 #4 substring$ "?.''" = or
+ { s #-4 global.max$ substring$ "''" * }
+ { s #-1 #2 substring$ "?," =
+ s #-1 #2 substring$ "?." = or
+ { s #-2 global.max$ substring$ "" * }
+ { s #-1 #3 substring$ "?,~" =
+ s #-1 #3 substring$ "?.~" = or
+ { s #-4 global.max$ substring$ "?~" * }
+ 's
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% title
+FUNCTION {format.title.sub}
+{ bst.title.lower.case #0 =
+ { bst.title.pre title * bst.title.post * }
+ { bst.title.pre title "t" change.case$ * bst.title.post * }
+ if$
+}
+
+%%% title
+FUNCTION {format.title}
+{ title empty$
+ bst.hide.title #0 = not or
+ { "" }
+ { format.title.sub remove.irrelevant.period.comma }
+ if$
+}
+
+%%% title for misc.
+FUNCTION {format.misc.title}
+{ title empty$
+ { "" }
+ { bst.title.pre title * bst.title.post * }
+ if$
+}
+
+% Convert "-" to "--" (for pages field)
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ %% while$
+ { 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$
+}
+
+%%% year
+FUNCTION {format.year}
+{ year empty$
+ { "there's no year in " cite$ * warning$
+ ", " }
+ { type$ "article" =
+ { bst.year.pre year * extra.label * bst.year.post * }
+ { bst.year.na.pre year * extra.label * bst.year.na.post * }
+ if$
+ }
+ if$
+}
+
+%%% page for book
+FUNCTION {format.book.pages}
+{ pages empty$
+ { "" }
+ { bst.pages.pre pages * bst.pages.post * }
+ if$
+}
+
+%%% Attach tie for the string with two or less characters.
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+%%% volume for book
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bst.volume.pre volume * bst.volume.post *
+ series empty$
+ 'skip$
+ %% If there is series field
+ { " of " * series * bst.series.post * }
+ if$
+% "volume and number" number either.or.check
+ }
+ if$
+}
+
+%%% series
+FUNCTION {output.series}
+{ series empty$
+ { "" }
+ { bst.series.pre series * bst.series.post * }
+ if$
+}
+
+%%% number and series
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ bst.hide.month #0 = not or
+ % number is empty
+ { series empty$
+ { "" }
+ % series is not empty.
+ { output.series }
+ if$
+ }
+ % number is not empty$
+ { series empty$
+ { bst.number.pre number * bst.number.post * }
+ % series is not empty.
+ { bst.in bst.series.pre * series * bst.series.post *
+ bst.number.pre * number * bst.number.post * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+%%% Number or not.
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+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$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% edition
+
+% Convert edition to 1st, 2nd, 3rd, 4th etc
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bst.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bst.st * }
+ { duplicate$ "2" =
+ { pop$ bst.nd * }
+ { "3" =
+ { bst.rd * }
+ { bst.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst)
+FUNCTION {convert.edition}
+{ edition extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bst.first }
+ { s "second" = s "2" = or
+ { bst.second }
+ { s "third" = s "3" = or
+ { bst.third }
+ { s "fourth" = s "4" = or
+ { bst.fourth }
+ { s "fifth" = s "5" = or
+ { bst.fifth }
+ { s #1 #1 substring$ is.num
+ { s eng.ord }
+ { edition }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% edition
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * }
+ { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * }
+ if$
+ }
+ if$
+}
+
+%%% month
+FUNCTION {format.month}
+{ month empty$
+ bst.hide.month #0 = not or
+ { "" }
+ { bst.month.pre month * bst.month.post * }
+ if$
+}
+
+%%% year and month
+FUNCTION {format.date}
+{ format.month format.year *
+}
+
+%%% Is multiple pages like 1-100?
+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
+}
+
+%%% pages
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post }
+ { bst.page.pre pages tie.or.space.connect * bst.page.post }
+ if$
+ }
+ if$
+}
+
+%%% number
+FUNCTION {format.number}
+{ number empty$
+ bst.hide.number #0 = not or
+ { "" }
+ { bst.number.pre number * bst.number.post * }
+ if$
+}
+
+%%% volume
+FUNCTION {format.volume}
+{ volume empty$
+ 'skip$
+ { bst.volume.pre volume * bst.volume.post *
+ bst.year.position #3 =
+ { format.year * }
+ 'skip$
+ if$
+ }
+ if$
+}
+
+%%% number, page
+FUNCTION {format.number.pages}
+{ number empty$
+ { format.pages }
+ { format.number format.pages * }
+ if$
+}
+
+%%% volume, page
+FUNCTION {format.volume.pages}
+{ volume empty$
+ { format.pages }
+ { format.volume format.pages * }
+ if$
+}
+
+%%% volume, number, page
+FUNCTION {format.volume.number.pages}
+{ volume empty$
+ { number empty$
+ { format.pages }
+ { format.number format.pages * }
+ if$
+ }
+ { number empty$
+ { format.volume format.pages * }
+ { format.volume format.number * format.pages * }
+ if$
+ }
+ if$
+}
+
+% volume, number, page
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ %% volume is empty.
+ { number empty$
+ %% number is empty.
+ { pages empty$
+ % warning
+ { "there is no volume, number, and pages in " cite$ * warning$ "" }
+ { "" format.pages * }
+ if$
+ }
+ %% number is not empty.
+ % warning
+ { "there's a number but no volume in " cite$ * warning$
+ format.number.pages }
+ if$
+ }
+ %% volume is not empty.
+ { number empty$
+ %% number is empty.
+ { format.volume.pages }
+ %% number is not empty.
+ { format.volume.number.pages }
+ if$
+ }
+ if$
+}
+
+%%% chapter
+FUNCTION {format.chapter}
+{ chapter empty$
+ { "" }
+ { type empty$
+ { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post }
+ { ", " * type " " * chapter * }
+ if$
+ }
+ if$
+}
+
+%%% chapter, pages
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ { pages empty$
+ { "" }
+ { "" format.pages * }
+ if$
+ }
+ { pages empty$
+ { "" format.chapter * }
+ { "" format.chapter * format.pages * }
+ if$
+ }
+ if$
+}
+
+%%% editor and booktitle
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { bst.in format.btitle * }
+ { bst.editor.btitle.order #0 =
+ { bst.in format.editors.x * " " * format.btitle * }
+ { bst.in format.btitle * " " * format.editors.x * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% howpublished
+FUNCTION {format.howpublished}
+{ howpublished empty$
+ { "" }
+ { bst.howpublished.pre howpublished * bst.howpublished.post * }
+ if$
+}
+
+%%% address
+FUNCTION {format.address}
+{ address empty$
+ { "" }
+ { bst.address.pre address * bst.address.post * }
+ if$
+}
+
+%%% publisher
+FUNCTION {format.publisher}
+{ publisher empty$
+ { "" }
+ { bst.publisher.pre publisher * bst.publisher.post * }
+ if$
+}
+
+%%% organization
+FUNCTION {format.organization}
+{ organization empty$
+ { "" }
+ { bst.organization.pre organization * bst.organization.post * }
+ if$
+}
+
+%% publisher and address
+FUNCTION {output.publisher.address}
+{ address empty$
+ { format.publisher "publisher" output.check.nocomma }
+ { bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+}
+
+%% address, organization, publisher
+FUNCTION {output.address.organization.publisher}
+{ address empty$
+ %% address is empty
+ { organization empty$
+ %% organization is empty
+ { publisher empty$
+ 'skip$
+ { format.publisher "publisher" output.check.nocomma }
+ if$
+ }
+ %% organization is not empty
+ { publisher empty$
+ { format.organization "organization" output.check.nocomma }
+ { format.organization "organization" output.check.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ if$
+ }
+ if$
+ }
+ %% address is not empty
+ { organization empty$
+ %% organization is empty
+ { publisher empty$
+ %% publisher is empty
+ { format.address output.nocomma }
+ %% publisher is not empty
+ { bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+ }
+ %% organization is not empty
+ { publisher empty$
+ %% publisher is empty
+ { format.organization "organization" output.check.nocomma
+ format.address output.nocomma }
+ %% publisher is not empty
+ { format.organization "organization" output.check.nocomma
+ bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% misc
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$ " " type * }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bst.techrep }
+ { " " type * }
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+%%% phdthesis
+FUNCTION {format.phd}
+{ bst.phdthesis }
+
+%%% mastersthesis
+FUNCTION {format.mthesis}
+{ bst.mthesis }
+
+%%% school
+FUNCTION {format.school}
+{ school empty$
+ { "" }
+ { bst.school.pre school * bst.school.post * }
+ if$
+}
+
+%%% institution
+FUNCTION {format.institution}
+{ institution empty$
+ { "" }
+ { bst.institution.pre institution * bst.institution.post * }
+ if$
+}
+
+%%% remove first ? characters.
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {format.note}
+{ note empty$
+ { "" }
+ { bst.note.pre note * bst.note.post * }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \havarditem
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\harvarditem[" write$
+ alabel write$ % alabel <- abbreviated citation
+ "]{" write$
+ flabel write$ % flabel <- full citation
+ "}{" write$
+ cyear write$
+ % cyear = year
+ "}{" write$
+ cite$ write$ % cite$ -> pusch keyword
+ "}" write$
+ % If number index is on
+ bst.use.number.index #0 =
+ 'skip$
+ { index #1 + 'index :=
+ "" 'preone :=
+ "" 'preten :=
+ bst.number.index.digit "1" =
+ 'skip$
+ { bst.number.index.digit "2" =
+ { "\hskip0.5em" 'preone := }
+ { bst.number.index.digit "3" =
+ { "\hskip1em" 'preone :=
+ "\hskip0.5em" 'preten := }
+ 'skip$
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ newline$
+ before.all 'output.state :=
+ ""
+ % number index
+ bst.use.number.index #0 =
+ 'skip$
+ { index #10 <
+ % Insert spaces according to digit of number index.
+ { preone }
+ { index #100 <
+ { preten }
+ { "" }
+ if$
+ }
+ if$
+ bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$
+ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% article
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.journal "journal" output.check.nocomma
+ bst.year.position #2 =
+ { format.date output.nocomma }
+ 'skip$
+ if$
+ format.vol.num.pages output.nocomma
+
+ bst.year.position #1 =
+ { format.date output.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% book
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check.nocomma }
+ { format.authors output.nonnull.nocomma
+ "author and editor" editor either.or.check
+ }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ output.publisher.address
+
+ format.edition output.nocomma
+ format.book.pages output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% booklet
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output.nocomma
+ format.year output.nocomma
+ format.misc.title "title" output.check.nocomma
+ format.howpublished output.nocomma
+ format.address output.nocomma
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% inbook
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check.nocomma }
+ { format.authors output.nonnull.nocomma
+ "author and editor" editor either.or.check
+ }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+% format.book remove.pre.comma "title" output.check.nocomma
+ format.book "title" output.check.nocomma
+ format.edition output.nocomma
+
+ format.bvolume output.nocomma
+ format.chapter.pages "chapter and pages" output.check.nocomma
+ format.number.series output.nocomma
+ output.publisher.address
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% incollection
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.in.ed.booktitle "booktitle" output.check.nocomma
+ format.bvolume output.nocomma
+ format.edition output.nocomma
+ format.chapter.pages output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% inproceedings
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.in.ed.booktitle "booktitle" output.check.nocomma
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ format.pages output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% conference
+
+FUNCTION {conference}
+{ inproceedings }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% manual
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull.nocomma
+ address output.nocomma
+ }
+ if$
+ }
+ { format.authors output.nonnull.nocomma }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+ author empty$
+ { organization empty$
+ { format.address new.block.check
+ format.address output.nocomma
+ }
+ 'skip$
+ if$
+ }
+ { output.address.organization.publisher }
+ if$
+ format.edition output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% mastersthesis
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+ format.mthesis format.thesis.type output.nonnull.nocomma
+ format.school "school" output.check.nocomma
+ format.address output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% misc
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.misc.title output.nocomma
+ format.howpublished output.nocomma
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+ empty.misc.check
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Online
+
+FUNCTION {online}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.misc.title output.nocomma
+ format.howpublished output.nocomma
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+ empty.misc.check
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% phdthesis
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+ format.phd
+ format.thesis.type output.nonnull.nocomma
+ format.school "school" output.check.nocomma
+ address empty$
+ 'skip$
+ { format.address output.nocomma }
+ if$
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% proceedings
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output.nocomma }
+ { format.editors output.nonnull.nocomma }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.btitle remove.pre.comma "title" output.check.nocomma
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% techreport
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+ format.tr.number output.nonnull.nocomma
+ format.institution "institution" output.check.nocomma
+ format.address output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% unpublished
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ bst.year.position #0 = not
+ { format.date remove.pre.comma output.nocomma }
+ { month empty$
+ 'skip$
+ { format.month remove.pre.comma output.nocomma }
+ if$
+ }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note "note" output.check.nocomma
+ fin.entry
+}
+
+FUNCTION {default.type}
+{ misc }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Alias for month names:
+
+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"}
+
+%%% Read entries:
+READ
+
+%%% Variable for remembering the order of citation.
+INTEGERS { order.num }
+FUNCTION {initialize.order.num}
+{
+ #1 'order.num :=
+}
+%%% Initialize a variables
+EXECUTE {initialize.order.num}
+
+%%% Variable for remembering the order of citation.
+FUNCTION {set.order.cited}
+{
+ order.num 'order.cited :=
+ #1 order.num + 'order.num :=
+}
+%%% Iterate for all entries:
+ITERATE {set.order.cited}
+
+%%% check the value of nameorder field.
+FUNCTION {set.nameorder}
+{ nameorder empty$
+ { "" 'nameorder.temp := }
+ { nameorder 'nameorder.temp := }
+ if$
+}
+%%% Iterate for all entries:
+ITERATE {set.nameorder}
+
+%%% Remove symbols and convert to lowercase.
+FUNCTION {sortify}
+{ purify$ "l" change.case$ }
+
+%%% names for sorting
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+ s nameptr "{ll}{ f}{ j}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { bst.and.others.output *}
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.names.abb}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames bst.and.others.num <
+ { s sort.format.names }
+ { s #1 "{ll}{ f}{ j}" format.name$ " zz " * }
+ if$
+}
+
+%%% Label for full author name.
+FUNCTION {format.lab.names.full}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{vv~}{ll}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { ", " * t * }
+ if$
+ }
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 >
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.cite.and.nameorder * t * }
+ { bst.cite.ands * t * }
+ if$
+ }
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.cite.and.nameorder * t * }
+ { bst.cite.and * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ numnames #1 > #1 #2 = and {", eds" *} {} if$
+ numnames #1 = #1 #2 = and {", ed" *} {} if$
+}
+
+%%% laberl for abbreviated author name.
+FUNCTION {format.lab.names.abb}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames bst.and.others.num <
+ % if the number of authors is less than bst.and.others.num, full name.
+ { s format.lab.names.full }
+ % if the number of authors is equal or more than bst.and.others.num, abbreviated name.
+ { s #1 "{ll}" format.name$ bst.and.others.output * }
+ if$
+}
+
+%%% abbreviated author
+FUNCTION {author.key.label.abb}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names.abb }
+ if$
+}
+
+%%% full author
+FUNCTION {author.key.label.full}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names.full }
+ if$
+}
+
+FUNCTION {format.names.full.wo.and}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ll}{, ff}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { " " * t * }
+ { t "others" =
+ { " " * }
+ { numnames #2 >
+ { " " * t * }
+ { " " * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {author.key.full.wo.and}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.names.full.wo.and }
+ if$
+}
+
+FUNCTION {author.editor.key.full.wo.and}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.names.full.wo.and }
+ if$
+ }
+ { author format.names.full.wo.and }
+ if$
+}
+
+FUNCTION {editor.key.organization.key.full.wo.and}
+{ 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.names.full.wo.and }
+ if$
+}
+
+FUNCTION {author.key.organization.key.full.wo.and}
+{ 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.names.full.wo.and }
+ if$
+}
+
+%%% abbreviated author
+FUNCTION {author.editor.key.label.abb}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names.abb }
+ if$
+ }
+ { author format.lab.names.abb }
+ if$
+}
+
+%%% full author
+FUNCTION {author.editor.key.label.full}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names.full }
+ if$
+ }
+ { author format.lab.names.full }
+ if$
+}
+
+FUNCTION {author.key.organization.label.full}
+{ 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.full }
+ if$
+}
+
+FUNCTION {author.key.organization.label.abb}
+{ 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.abb }
+ if$
+}
+
+FUNCTION {editor.key.organization.label.full}
+{ 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.full }
+ if$
+}
+
+FUNCTION {editor.key.organization.label.abb}
+{ 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.abb }
+ if$
+}
+
+%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0
+FUNCTION {reverse.num}
+{ 's :=
+ s "1" =
+ { "8" 'year.num := }
+ { s "2" =
+ { "7" 'year.num := }
+ { s "3" =
+ { "6" 'year.num := }
+ { s "4" =
+ { "5" 'year.num := }
+ { s "5" =
+ { "4" 'year.num := }
+ { s "6" =
+ { "3" 'year.num := }
+ { s "7" =
+ { "2" 'year.num := }
+ { s "8" =
+ { "1" 'year.num := }
+ { s "9" =
+ { "0" 'year.num := }
+ { s "0" =
+ { "9" 'year.num := }
+ { "9" 'year.num := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ year.num
+}
+
+%%% Convert year (large number -> small number)
+FUNCTION {convert.year}
+{ 't :=
+ bst.reverse.year #0 =
+ { t 'tt := }
+ { t #1 #1 substring$ reverse.num
+ t #2 #1 substring$ reverse.num *
+ t #3 #1 substring$ reverse.num *
+ t #4 #1 substring$ reverse.num * 'tt := }
+ if$
+ tt
+}
+
+%%% cyear
+FUNCTION {calc.cyear}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.full.wo.and
+ { type$ "proceedings" =
+ 'editor.key.organization.key.full.wo.and
+ { type$ "manual" =
+ 'author.key.organization.key.full.wo.and
+ 'author.key.full.wo.and
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year empty$
+ { "2199" 'cyear := }
+ { year 'cyear := }
+ if$
+ year empty$
+ { " " "2199" convert.year * field.or.null * }
+ { " " year convert.year * field.or.null * }
+ if$
+ sortify 'sort.label :=
+ % For debug
+ econ.debug #0 = not
+ { "sort.label = ``\texttt{" write$
+ sort.label write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+ pop$
+}
+
+FUNCTION {calc.sort.label.abb}
+{ author empty$
+ { editor empty$
+ { "" }
+ { editor 's := }
+ if$
+ }
+ { author 's := }
+ if$
+ s sort.format.names.abb 't :=
+ year empty$
+ { t sortify " " * "2199" convert.year * 'sort.label.abb := }
+ { t sortify " " * year convert.year * 'sort.label.abb := }
+ if$
+ econ.debug #0 = not
+ { "sort.label.abb = ``\texttt{" write$
+ sort.label.abb write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% flabel
+FUNCTION {calc.flabel}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label.full
+ { type$ "proceedings" =
+ 'editor.key.organization.label.full
+ { type$ "manual" =
+ 'author.key.organization.label.full
+ 'author.key.label.full
+ if$
+ }
+ if$
+ }
+ if$
+ 'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
+ % For debug
+ econ.debug #0 = not
+ { "flabel = ``\texttt{" write$
+ flabel write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% alabel
+FUNCTION {calc.alabel}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label.abb
+ { type$ "proceedings" =
+ 'editor.key.organization.label.abb
+ { type$ "manual" =
+ 'author.key.organization.label.abb
+ 'author.key.label.abb
+ if$
+ }
+ if$
+ }
+ if$
+ 'alabel :=
+ % For debug
+ econ.debug #0 = not
+ { "alabel = ``\texttt{" write$
+ alabel write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% title for sorting
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+%%% author for sorting
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+%%% editor for sorting
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {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$
+}
+
+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$
+}
+
+%%% 1,...,9 -> 001,...,009
+%%% 10,...,99 -> 010,...,099
+FUNCTION {add.zero.to.number}
+{ 's :=
+ s text.length$ #1 =
+ { "00" s * }
+ { s text.length$ #2 =
+ { "0" s * }
+ { s }
+ if$
+ }
+ if$
+}
+
+%% entry type
+FUNCTION {bst.sort.entry.type.order}
+{ 'item.type :=
+ item.type "article" =
+ { "01" }
+ { item.type "book" =
+ { "02" }
+ { item.type "booklet" =
+ { "03" }
+ { item.type "comment" =
+ { "04" }
+ { item.type "conference" =
+ { "05" }
+ { item.type "inbook" =
+ { "06" }
+ { item.type "incollection" =
+ { "07" }
+ { item.type "inproceedings" =
+ { "08" }
+ { item.type "manual" =
+ { "09" }
+ { item.type "masterthesis" =
+ { "10" }
+ { item.type "misc" =
+ { "11" }
+ { item.type "phdthesis" =
+ { "12" }
+ { item.type "proceedings" =
+ { "13" }
+ { item.type "techreport" =
+ { "14" }
+ { item.type "unpublished" =
+ { "15" }
+ { "16" }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% Create sort.key$: absorder -> author -> year -> order -> month -> title.
+FUNCTION {presort.one}
+{
+ bst.no.sort #0 = not
+ { order.cited int.to.str$ add.zero.to.number " " * }
+ { "" }
+ if$
+ bst.sort.year #0 = not
+ %% Use year field as the primary sorting key.
+ { year convert.year * }
+ 'skip$
+ if$
+ bst.sort.entry.type #0 = not
+ { type$ bst.sort.entry.type.order * " " * }
+ 'skip$
+ if$
+ absorder empty$
+ { "/// " * }
+ { bst.notuse.absorder.field #0 =
+ { absorder "999" =
+ { "zzz " * }
+ { absorder add.zero.to.number "000" =
+ { "/// " * }
+ { absorder add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ " " *
+ sort.label.abb *
+ " " *
+ type$ "book" = type$ "inbook" = or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ * " " *
+ " "
+ order empty$
+ { "/// " * }
+ { bst.notuse.order.field #0 =
+ { order "999" =
+ { "zzz " * }
+ { order add.zero.to.number "000" =
+ { "/// " * }
+ { order add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ month empty$
+ { * "/// " * }
+ { month "999" =
+ { * month add.zero.to.number * "zzz " * }
+ { month add.zero.to.number "000" =
+ { * month add.zero.to.number * "/// " * }
+ { * month add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ if$
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+ % For debug
+ econ.debug #0 = not
+ { "``\texttt{" write$
+ sort.key$ write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+FUNCTION {presort.two}
+{
+ bst.no.sort #0 = not
+ { order.cited int.to.str$ add.zero.to.number " " * }
+ { "" }
+ if$
+ bst.sort.year #0 = not
+ %% Use year field as the primary sorting key.
+ { year convert.year * }
+ 'skip$
+ if$
+ bst.sort.entry.type #0 = not
+ { type$ bst.sort.entry.type.order * " " * }
+ 'skip$
+ if$
+ absorder empty$
+ { "/// " * }
+ { bst.notuse.absorder.field #0 =
+ { absorder "999" =
+ { "zzz " * }
+ { absorder add.zero.to.number "000" =
+ { "/// " * }
+ { absorder add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ " " * sort.label * " "
+ order empty$
+ { "/// " * }
+ { bst.notuse.order.field #0 =
+ { order "999" =
+ { "zzz " * }
+ { order add.zero.to.number "000" =
+ { "/// " * }
+ { order add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ month empty$
+ { * "/// " * }
+ { month "999" =
+ { * month add.zero.to.number * "zzz " * }
+ { month add.zero.to.number "000" =
+ { * month add.zero.to.number * "/// " * }
+ { * month add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ if$
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+ % For debug
+ econ.debug #0 = not
+ { "``\texttt{" write$
+ sort.key$ write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% Codes for debugging
+FUNCTION {calc.alabel.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.alabel: alabel = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+FUNCTION {calc.flabel.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.flabel: flabel = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+FUNCTION {presort.one.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {presort.two.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {calc.cyear.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {calc.sort.label.abb.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+%%% alabel
+EXECUTE {calc.alabel.mess}
+ITERATE {calc.alabel}
+
+%%% flabel
+EXECUTE {calc.flabel.mess}
+ITERATE {calc.flabel}
+
+%%% cyear and sort.label
+EXECUTE {calc.cyear.mess}
+ITERATE {calc.cyear}
+
+%%%
+EXECUTE {calc.sort.label.abb.mess}
+ITERATE {calc.sort.label.abb}
+
+%%% Sorting by $sort.key (first time)
+%
+% Sorting is done in two times. This is the first time.
+%
+EXECUTE {presort.one.mess}
+ITERATE {presort.one}
+SORT
+
+FUNCTION {forward.pass}
+{ bst.use.bysame #0 = bst.use.bysame #2 = or
+ % Not use \bysame
+ { last.sort.label sort.label.abb =
+ { 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.abb 'last.sort.label :=
+ }
+ if$
+ }
+ % Use \bysame
+ { last.sort.label sort.label.abb =
+ { 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.abb 'last.sort.label :=
+ }
+ if$
+ author empty$
+ { editor empty$
+ { "" }
+ 'format.editors.alt
+ if$
+ }
+ 'format.authors.alt
+ if$
+ 'this.author :=
+ % format.names 'this.author :=
+ this.author prev.author =
+ { "bysame" 'extra.label.bysame := }
+ { this.author "" =
+ { "abcxyz" }
+ 'this.author
+ if$
+ 'prev.author :=
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ extra.label empty$ not
+ { cyear extra.label * }
+ { cyear "" * }
+ if$
+ "" field.or.null *
+ 'cyear :=
+ extra.label 'next.extra :=
+}
+
+%%% \bysame
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+%%% Sorting by sort.key$ (second time)
+EXECUTE {presort.two.mess}
+ITERATE {presort.two}
+SORT
+
+FUNCTION {reset.prev.author}
+{ "xxyyzz" 'prev.author := }
+
+EXECUTE {reset.prev.author}
+
+FUNCTION {forward.pass.two}
+{ bst.use.bysame #1 =
+ { author empty$
+ { editor empty$
+ { "" }
+ 'format.editors.alt
+ if$
+ }
+ 'format.authors.alt
+ if$
+ 'this.author :=
+ this.author prev.author =
+ { "bysame" 'extra.label.bysame := }
+ { this.author "" =
+ { "abcxyz" }
+ 'this.author
+ if$
+ 'prev.author :=
+ }
+ if$
+ }
+ 'skip$
+ if$
+}
+
+ITERATE {forward.pass.two}
+
+FUNCTION{punctuation}
+{
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+}
+
+EXECUTE {punctuation}
+
+FUNCTION {begin.bib}
+{
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ bst.use.bysame #0 =
+ % Not use \bysame.
+ 'skip$
+ % Use \bysame.
+ { "%%% Definition of \bysame" write$ newline$
+ "\ifx\undefined\bysame" write$ newline$
+ "\newcommand{\bysame}{" bst.bysame.definition * "}" *
+ write$ newline$
+ "\fi" write$ newline$ newline$ }
+ if$
+ %% When number index is attached to the beginning of each item.
+ bst.use.number.index #0 =
+ 'skip$
+ { bst.number.index.digit "1" =
+ % one digit.
+ { bst.number.index.bibhang.one }
+ { bst.number.index.digit "2" =
+ % two digits.
+ { bst.number.index.bibhang.ten }
+ % three or more digits.
+ { bst.number.index.bibhang.hund }
+ if$
+ }
+ if$
+ 'hang :=
+ "%%% Redefinition of \bibhang" write$ newline$
+ "\ifx\undefined\bibhang" write$ newline$
+ "\relax" write$ newline$
+ "\else" write$ newline$
+ "\setlength{\bibhang}{"
+ hang * "}" * write$ newline$
+ "\fi" write$ newline$ newline$
+ }
+ if$
+ "\begin{thebibliography}{xxx}" write$ newline$
+
+ %% Initialize the variable `index'.
+ #0 'index :=
+}
+
+FUNCTION {end.bib}
+{ newline$ "\end{thebibliography}" write$ newline$ }
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+EXECUTE {end.bib}
+
+% --------------------
+% Local Variables:
+% fill-column: 78
+% mode: bst
+% End:
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.bst
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf 2020-02-27 22:03:41 UTC (rev 53937)
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -0,0 +1,56 @@
+%#!pdflatex
+%#BIBTEX bibtex econ-abbr
+
+%############################## Main #################################
+\documentclass[10pt]{article}
+
+%% Use natbib.sty
+\usepackage{natbib}
+\usepackage{newtxtext,newtxmath}
+\usepackage{url}
+\usepackage{graphicx}
+\usepackage{color}
+\definecolor{MyBrown}{rgb}{0.3,0,0}
+\definecolor{MyBlue}{rgb}{0,0,0.3}
+\definecolor{MyRed}{rgb}{0.4,0,0.1}
+\definecolor{MyGreen}{rgb}{0,0.4,0}
+\usepackage[bookmarks=true,%
+bookmarksnumbered=true,%
+colorlinks=true,%
+linkcolor=MyBlue,%
+citecolor=MyRed,%
+filecolor=MyBlue,%
+urlcolor=MyGreen%
+]{hyperref}
+
+\setlength{\topmargin}{-20pt}
+\setlength{\textheight}{648pt}
+\setlength{\oddsidemargin}{15pt}
+\setlength{\textwidth}{440pt}
+
+%#####################################################################
+%######################### Document Starts ###########################
+%#####################################################################
+\begin{document}
+
+This document uses ``\verb|econ-abbr.bst|'', which uses abbreviated journal
+names such as ``\textit{Am. Econ. Rev.}'' for ``\textit{American Economic Review}''.
+
+\vspace{1em}
+
+\input{cited-part}
+\nocite{*}
+
+%% bst file:
+\bibliographystyle{econ-abbr}
+\bibliography{../econ-example}
+
+\end{document}
+
+%#####################################################################
+%######################### Document Ends #############################
+%#####################################################################
+% --------------------
+% Local Variables:
+% fill-column: 80
+% End:
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.bst (rev 0)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -0,0 +1,3604 @@
+%% aea.bst: BibTeX style file for journals of American Economic Association (AEA).
+%
+% Author: Shiro Takeda
+% Maintainer: Shiro Takeda
+% Copyright (C) 2001-2018 Shiro Takeda
+% First-written: <2007/07/28>
+% Version: 2.7
+% Keywords: TeX, BibTeX, bst
+% URL: https://github.com/ShiroTakeda/econ-bst
+
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Shiro Takeda.
+
+%% Main features of aea.bst
+
+% "aea.bst" is a BibTeX style file for journals of American Economic
+% Association such as
+% - The American Economic Review
+% - Papers and Proceedins
+% - Journal of Economic Literature
+% - American Economics Journals
+%
+% AEA Style Guide is found at the following site:
+% https://www.aeaweb.org/journals/aer/submissions/accepted-articles/styleguide
+
+% "aea.bst" is created from "econ.bst" which is distributed from
+% https://github.com/ShiroTakeda/econ-bst
+
+% version number
+FUNCTION {econ.version} { "2.7" }
+
+% File name
+FUNCTION {econ.file} { "aer.bst" }
+
+% Debug mode. Non-zero makes debug mode on.
+FUNCTION {econ.debug}
+{ #0 } % Debug mode off (default).
+% { #1 } % Debug mode on.
+
+ENTRY
+ %%% Declaration of field
+ { access address author booktitle chapter doi edition editor howpublished
+ institution journal key month note number organization pages publisher
+ school series title type url volume year
+ % Fields specific to econ.bst
+ order absorder nameorder
+ }
+
+ % Definition of entry variable. The entry variable is a variable which has
+ % different values according to different entries.
+ %% Integer entry variable:
+ { order.cited }
+
+ %% String entry variable
+ { label cyear flabel alabel extra.label sort.label sort.label.abb
+ extra.label.bysame nameorder.temp jname }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Functions for customization:
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Use \bysame or not.
+%
+% If set to #0, \bysame is not used.
+% If set to #1, \bysame is used
+% If set to #2, \bysame is used (alternative abbreviation style).
+%
+% Note that integer number is expressed as # + integer in bst file.
+% \bysame is the function that abbreviates succession of the same authors' name by ---.
+%
+% See econ-sample.pdf for details.
+%
+FUNCTION {bst.use.bysame}
+{ #0 } % Not use \bysame
+% { #1 } % -> Use \bysame (default)
+% { #2 } % -> Use \bysame of alternative style.
+
+% The definition of \bysame command.
+%
+FUNCTION {bst.bysame.definition}
+{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default)
+% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The order of fist and last name.
+%
+FUNCTION {bst.author.name}
+{ #0 } % (default)
+% { #1 }
+% { #2 }
+
+% Case of #0: First author -> last-first, other authors -> first-last.
+% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables.
+
+% Case of #1: All authors -> last-first
+% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J.
+
+% Case of #2: All authors -> first-last
+% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Abbreviate first name of authors (editors):
+%
+FUNCTION {bst.first.name.initial}
+{ #0 } % #0 -> full letters (default).
+% { #1 } % Non-zero -> initial letter only.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Decapitalize of strings in title field.
+%
+FUNCTION {bst.title.lower.case}
+{ #0 } % If #0, not decapitalize title (default).
+% { #1 } % If non-#0, decapitalize title
+
+% Hide title filed.
+%
+FUNCTION {bst.hide.title}
+{ #0 } % #0 -> Title field is displayed (default)
+% { #1 } % Non-zer -> Title field is hidden
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hide month.
+%
+FUNCTION {bst.hide.month}
+{ #0 } % #0 -> show month field (default).
+% { #1 } % non-#0 -> hide month field.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Attach number index like plain.bst.
+%
+FUNCTION {bst.use.number.index}
+{ #0 } % Not use number index (default).
+% { #1 } % Non-#0 -> Use number index
+
+% The string before number index:
+%
+FUNCTION {bst.number.index.pre}
+{ "[" } % (default)
+
+% The string after number index. Adjustment is recommended.
+%
+FUNCTION {bst.number.index.post}
+{ "]\hskip1.0em " } % (default)
+
+% Maximum digit of number index:
+% If the number of reference items >= 100, set 3 to this function.
+% If the number of reference items < 100, set 2 to this function.
+% If the number of reference items < 10, set 1 to this function.
+%
+FUNCTION {bst.number.index.digit}
+{ "2" } % (default)
+% { "3" }
+
+% The functions below are used to adjust space and postion. If you use fonts
+% other than computer modern fonts, you had better make adjustments.
+%
+% Setting for bst.number.index.digit = 1:
+FUNCTION {bst.number.index.bibhang.one}
+{ "2.05em" } % (default)
+% Setting for bst.number.index.digit = 2:
+FUNCTION {bst.number.index.bibhang.ten}
+{ "2.55em" } % (default)
+% Setting for bst.number.index.digit = 3:
+FUNCTION {bst.number.index.bibhang.hund}
+{ "3.05em" } % (default).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Position of "year":
+%
+% You can choose the position of year by this function.
+%
+% If set to #0, year is placed right after "author".
+% If set to non-zero, year is placed at the end (before note field) except for
+% aritcle type entry.
+%
+% In article type entry, the position of year changes according to the
+% following rule:
+%
+% #1 -> year is placed at the end.
+% #2 -> year is placed after journal name in aritcle type entry.
+% #3 -> year is placed after volume in aritcle type entry.
+%
+FUNCTION {bst.year.position}
+{ #0 } % (default).
+% { #1 } % Last place before note.
+% { #2 } % After journal name for aticle type entry.
+% { #3 } % After volume for aticle type entry.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If 0, references are sorted by old documents -> recent documents. If
+% non-zero, reverse order.
+FUNCTION {bst.reverse.year}
+{ #0 } % Normal order (old -> recent) (default).
+% { #1 } % inverse order (recent -> old)
+
+% If non-zero, sort references by using year field as the primary key
+% (chronological sorting).
+FUNCTION {bst.sort.year}
+{ #0 } % Normal case: year is used as the sorting key next to author (default).
+% { #1 } % year is used as the primary sorting key.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If non-zero, references are listed in citation order.
+%
+FUNCTION {bst.no.sort}
+{ #0 } % (default)
+% { #1 } % listed in citation order.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Non-zero -> sort references by entry type (article, book, incollection etc.)
+%
+FUNCTION {bst.sort.entry.type}
+{ #0 } % #0 -> Normal (not sort references by entry type) (default).
+% { #1 } % Non-zero -> sort references by entry type.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% 0 -> use absorder field to sort items. Otherwise, ignore absorder field.
+%
+FUNCTION {bst.notuse.absorder.field}
+{ #0 } % #0 -> Use absorder (default).
+% { #1 } % Non-#0 -> Not use absorder.
+%
+% Order of priority to sort items
+%
+% absorder -> author -> year -> order -> month -> title
+%
+% wehre absorder and order fields are specific to econ.bst.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% 0 -> use order field to sort items. Otherwise, ignore order field.
+% Note: order field is specific to econ.bst.
+FUNCTION {bst.notuse.order.field}
+{ #0 } % #0 -> Use order field (default).
+% { #1 } % Non-#0 -> not use order field.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% and
+
+%%% String used to separate author names in references.
+%
+% String replaced with _ in "Mr. A _ Mr. B "
+%
+FUNCTION {bst.and}
+{ ", and " }
+% { " and " } % (default)
+
+%%% String used to separate author names in references (more than two authors).
+%
+% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
+%
+FUNCTION {bst.ands}
+{ ", and " } % (default)
+
+%%% String used to separate author names in citation part.
+%
+% String replaced with _ in "Mr. A _ Mr. B "
+%
+FUNCTION {bst.cite.and}
+{ " and " } % (default)
+
+%%% String used to separate author names in citation part (more than two authors).
+%
+% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
+%
+FUNCTION {bst.cite.ands}
+{ ", and " }
+% { " and " } % (default)
+
+%%% If you want to use random author order for some bibliography entries, set
+% non-zero to this function.
+%
+FUNCTION {bst.use.nameorder}
+{ #1 } % Use random order (default)
+% { #0 } % Not use random order
+
+%%% String used to separate author names in references for the entry of random
+% author order.
+%
+FUNCTION {bst.and.nameorder}
+{ " \textcircled{r} " } % (default)
+
+%%% String used to separate author names in citation part for the entry of
+% random author order
+%
+FUNCTION {bst.cite.and.nameorder}
+{ " \textcircled{r} " } % (default)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Author names in the citation part are abbreviated by et al. if the number of
+% authors is greater or equal to bst.and.others.num.
+FUNCTION {bst.and.others.num}
+{ #3 } % If the number of authors is greater or equal to three (default).
+
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Strings used when abbreviating multiple-authors in citation part.
+FUNCTION {bst.and.others}
+{ " et~al." } % (default)
+
+% Strings used when abbreviating multiple-authors in citation part for entries
+% with random author order.
+FUNCTION {bst.and.others.nameorder}
+{ " \textcircled{r}~al." } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% author
+
+% The string before author:
+%
+FUNCTION {bst.author.pre}
+{ "\textbf{" }
+% { "" } % (default)
+
+% The string after author:
+%
+FUNCTION {bst.author.post}
+{ ".}" }
+% { "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% year
+
+% The string before year only for aritcle type entry.
+%
+FUNCTION {bst.year.pre}
+{ " " }
+% { " (" } % (default)
+
+% The string after year only for aritcle type entry.
+%
+FUNCTION {bst.year.post}
+{ ". " }
+% { ") " } % (default)
+
+% The string after year for non-article type entry (book, incollection etc)
+%
+FUNCTION {bst.year.na.pre}
+{ " " }
+% { " (" } % (default)
+
+% The string after year for non-article type entry (book, incollection etc)
+%
+FUNCTION {bst.year.na.post}
+{ ". " }
+% { ") " } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% title (except for title in book)
+
+% The string before title:
+%
+FUNCTION {bst.title.pre}
+{ "``" } % (default)
+
+% The string after title:
+%
+FUNCTION {bst.title.post}
+{ ".''" }
+% { ",''" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% tile for book:
+
+% The string before book title:
+%
+FUNCTION {bst.book.pre}
+{ " \textit{" } % (default)
+
+% The string after book title:
+%
+FUNCTION {bst.book.post}
+{ "}." }
+% { "}" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% booktitle
+
+% The string before booktitle:
+%
+FUNCTION {bst.btitle.pre}
+{ " \textit{" } % (default)
+
+% The string after booktitle:
+%
+FUNCTION {bst.btitle.post}
+{ "}," }
+% { "}" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% journal name
+
+% The string before journal name:
+%
+FUNCTION {bst.journal.pre}
+{ " \textit{" } % (default)
+
+% The string after journal name:
+%
+FUNCTION {bst.journal.post}
+{ "}" } % (default)
+
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+{ #0 } % (default)
+% { #1 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% editor notation:
+
+% The string that indicates multiple editors:
+%
+FUNCTION {bst.editors}
+{ " eds. " } % (default)
+
+% The string that indicates single editor:
+%
+FUNCTION {bst.editor}
+{ " ed. " } % (default)
+
+% Order of editor and booktitle in incollection and inproceedings entries.
+%
+% If set to #0: editors -> booktitle order
+% If set to non-zero: booktitle -> editors order
+%
+FUNCTION {bst.editor.btitle.order}
+{ #1 }
+% { #0 } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% edition
+
+% The string before edition:
+%
+FUNCTION {bst.edition.pre}
+{ ", " } % (default)
+
+% The string after edition:
+%
+FUNCTION {bst.edition.post}
+{ " edition" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% volume
+
+% The string before volume:
+%
+FUNCTION {bst.volume.pre}
+{ " " }
+% { ", " } % (default)
+
+% The string after volume:
+%
+FUNCTION {bst.volume.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% number
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hide number. If non-zero, number is suppressed.
+FUNCTION {bst.hide.number}
+{ #0 } % #0 -> show number field (default)
+% { #1 } % non-#0 -> Hide number field.
+
+% The string before number:
+%
+FUNCTION {bst.number.pre}
+{ " (" } % (default)
+
+% The string after number:
+%
+FUNCTION {bst.number.post}
+{ "): " }
+% { ")" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% in
+
+% In
+%
+FUNCTION {bst.in}
+{ " In " }
+% { " in " } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% page
+
+% The string before page (multiple pages):
+%
+FUNCTION {bst.pages.pre}
+{ " " }
+% { ", pp." } % (default)
+
+% The string before page:
+%
+FUNCTION {bst.page.pre}
+{ "" }
+% { ", " } % (default)
+
+% The string after page (multiple pages):
+%
+FUNCTION {bst.pages.post}
+{ "" } % (default)
+
+% The string after page:
+%
+FUNCTION {bst.page.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% chapter
+
+% The string before chapter:
+%
+FUNCTION {bst.chapter.pre}
+{ ", Chap." } % (default)
+
+% The string after chapter:
+%
+FUNCTION {bst.chapter.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% month
+
+% The string before month:
+%
+FUNCTION {bst.month.pre}
+{ ", " } % (default)
+
+% The string after month:
+%
+FUNCTION {bst.month.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% address
+% The string before address:
+%
+FUNCTION {bst.address.pre}
+{ ", " } % (default)
+
+% The string after address:
+%
+FUNCTION {bst.address.post}
+{ "" } % (default)
+
+% You can choose the order of address and publisher by this function.
+%
+% If #0, address -> publisher order (the default value).
+% If non-zero, publisher -> address order.
+
+FUNCTION {bst.address.position}
+{ #0 } % Address is placed before publisher (default)
+% { #1 } % Address is placed after publisher
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% publisher
+
+% The string before publisher:
+%
+FUNCTION {bst.publisher.pre}
+{ ": " } % (default)
+
+% The string after publisher:
+%
+FUNCTION {bst.publisher.post}
+{ ", " }
+% { "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% series
+
+% The string before series:
+%
+FUNCTION {bst.series.pre}
+{ ", " } % (default)
+
+% The string after series:
+%
+FUNCTION {bst.series.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% organization
+
+% The string before organization:
+%
+FUNCTION {bst.organization.pre}
+{ ", " } % (default)
+
+% The string after organization:
+%
+FUNCTION {bst.organization.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% school
+
+% The string before school:
+%
+FUNCTION {bst.school.pre}
+{ ", " } % (default)
+
+% The string after school:
+%
+FUNCTION {bst.school.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% institution
+
+% The string before institution:
+%
+FUNCTION {bst.institution.pre}
+{ ", " } % (default)
+
+% The string after institution:
+%
+FUNCTION {bst.institution.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% howpublished
+
+% The string before howpublished:
+%
+FUNCTION {bst.howpublished.pre}
+{ " " } % (default)
+
+% The string after howpublished:
+%
+FUNCTION {bst.howpublished.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% url
+
+% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed.
+FUNCTION {bst.show.url}
+{ #1 } % non-#0 -> Show url field (default)
+% { #0 } % #0 -> Not show url field.
+
+% The string before url:
+%
+FUNCTION {bst.url.pre}
+{ ", \url{" } % (default)
+
+% The string after url:
+%
+FUNCTION {bst.url.post}
+{ "}" } % (default)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Access
+
+% This setting is valid only if there are "access" field in bib
+% files. The value of access field indicates accessed date for URL.
+
+% The string before access.
+FUNCTION {bst.access.pre}
+{ ", accessed on " } % (default)
+
+% The string after access.
+FUNCTION {bst.access.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DOI (digital object identifier)
+
+% This setting is valid only if there are "doi" field in bib files.
+
+% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed.
+FUNCTION {bst.show.doi}
+{ #1 } % non-#0 -> Show DOI field (default)
+% { #0 } % #0 -> Not show DOI field.
+
+% The string before DOI:
+%
+FUNCTION {bst.doi.pre}
+{ ". \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * }
+% { ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
+
+% The string after DOI:
+%
+FUNCTION {bst.doi.post}
+{ "}}" } % (default)
+
+% How to show URL and DOI fields when both fields exist.
+%
+% #0 -> Both fields are displayed
+% #1 -> Only URL field is displayed
+% #2 -> Only DOI field is displayed
+%
+FUNCTION {bst.url.doi}
+% { #0 } % -> Both fields are displayed
+% { #1 } % -> Only URL field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Other functions:
+
+% The string before note.
+FUNCTION {bst.note.pre}
+{ ", " } % (default)
+
+% The string after note.
+FUNCTION {bst.note.post}
+{ "" } % (default)
+
+% The string that represents Technical report:
+%
+FUNCTION {bst.techrep}
+{ "Technical Report" } % (default)
+
+% The string that represents master thesis:
+%
+FUNCTION {bst.mthesis}
+{ " Master's thesis" } % (default)
+
+% The string that represents phd thesis:
+%
+FUNCTION {bst.phdthesis}
+{ " Ph.D. dissertation" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Functions for customization end here:
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {bst.first}
+{ "1st" }
+
+FUNCTION {bst.second}
+{ "2nd" }
+
+FUNCTION {bst.third}
+{ "3rd" }
+
+FUNCTION {bst.fourth}
+{ "4th" }
+
+FUNCTION {bst.fifth}
+{ "5th" }
+
+FUNCTION {bst.st}
+{ "st" }
+
+FUNCTION {bst.nd}
+{ "nd" }
+
+FUNCTION {bst.rd}
+{ "rd" }
+
+FUNCTION {bst.th}
+{ "th" }
+
+%%%%% memo by Takeda
+
+% "a" 'b := indicates substituting string "a" for variable b.
+
+% Integer number #0, #1,...
+
+%%% Function definition:
+%
+% FUNCTION {name}
+% { 's :=
+%
+% }
+%
+% This is the definition of a function named "name". The function "name" is
+% used in the following way
+%
+% "foo" name
+% "foo" is an argument for the function "name".
+%
+% About the definition of a function with more than two arguments, see the
+% definition of "chop.word".
+
+%%% Declaration of variables:
+
+%% String global variables:
+STRINGS { s t tt }
+STRINGS { year.num }
+STRINGS { preone preten }
+STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author }
+STRINGS { hang }
+STRINGS { item.type }
+STRINGS { tempa tempb }
+
+%% Integer global variables:
+INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { multiresult }
+INTEGERS { index }
+INTEGERS { len }
+INTEGERS { last.extra.num }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+INTEGERS { last.period.comma }
+INTEGERS { len1.aer len2.aer i.aer }
+
+%%% Definition of functions:
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+%%% Initialize variables:
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+%%% Remove comma and add period:
+%
+%%%
+FUNCTION {add.period.x}
+{ duplicate$
+ #-1 #1 substring$ "," =
+ { #-2 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ". " =
+ { #-3 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ", " =
+ { #-3 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ",'" =
+ { #-3 global.max$ substring$ ".'" * }
+ { duplicate$
+ #-1 #2 substring$ ".'" =
+ { #-3 global.max$ substring$ ".'" * }
+ { duplicate$
+ #-1 #2 substring$ ".~" =
+ { #-3 global.max$ substring$ ".~" * }
+ { duplicate$
+ #-1 #2 substring$ ",~" =
+ { #-3 global.max$ substring$ ".~" * }
+ { duplicate$
+ #-1 #3 substring$ ",''" =
+ { #-4 global.max$ substring$ ".''" * }
+ { duplicate$
+ #-1 #3 substring$ ".''" =
+ { #-4 global.max$ substring$ ".''" * }
+ { add.period$ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {output.nonnull}
+{ 's :=
+ % mid.sentence
+ output.state mid.sentence =
+ { ", " * write$ }
+ % not mid.sentence
+ { output.state after.block =
+ % after.block
+ { add.period.x " " * write$ }
+ % before.all
+ { output.state before.all =
+ 'write$
+ { add.period.x " " * write$ }
+ if$
+ }
+ if$
+ % not mid.sentence, set to mid.sentence
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+%%% If the last character is period or comma, set non-zero to
+%%% last.period.comma.
+FUNCTION {period.comma.p}
+{ duplicate$ 't :=
+ t #-1 #1 substring$ "." =
+ t #-1 #1 substring$ "," = or
+ t #-1 #1 substring$ ":" = or
+ t #-1 #2 substring$ ".'" = or
+ t #-1 #2 substring$ ",'" = or
+ t #-1 #3 substring$ ".''" = or
+ t #-1 #3 substring$ ",''" = or
+ t #-1 #2 substring$ ".~" = or
+ t #-1 #2 substring$ ",~" = or
+ { #1 'last.period.comma := }
+ { #0 'last.period.comma := }
+ if$
+}
+
+%%% remove unnecessary comma.
+FUNCTION {remove.pre.comma}
+{ 's :=
+ s empty$
+ { "" }
+ { s #1 #1 substring$ "," =
+ { s #2 global.max$ substring$ }
+ { s #1 #1 substring$ "." =
+ { s #2 global.max$ substring$ }
+ 's
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% output.nonnull.nocomma is the same as output.nonnull except that it does
+%%% not add commas even in mid.sentence.
+FUNCTION {output.nonnull.nocomma}
+{ 's :=
+ output.state mid.sentence =
+ % mid.sentence
+ { period.comma.p "" * write$ }
+
+ % not mid.sentence
+ { output.state after.block =
+ % after.block
+ { add.period.x " " * write$ }
+ % before.all
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ last.period.comma #0 =
+ { s }
+ { s remove.pre.comma }
+ if$
+}
+
+% Not used in the current econ.bst.
+% FUNCTION {output}
+% { duplicate$ empty$
+% 'pop$
+% 'output.nonnull
+% if$
+% }
+
+FUNCTION {output.nocomma}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull.nocomma
+ if$
+}
+
+% Not used in the current econ.bst.
+% FUNCTION {output.check}
+% { 't :=
+% duplicate$ empty$
+% { pop$ "empty " t * " in " * cite$ * warning$ }
+% 'output.nonnull
+% if$
+% }
+
+FUNCTION {output.check.nocomma}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull.nocomma
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Format in bbl file:
+
+% \harvarditem[Brezis et~al.]{Brezis, Krugman and
+% Tsiddon}{1993}{brezis93:_leapf_inter_compet}
+% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in
+% International Competition: A Theory of Cycles in National Technological
+% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp.
+% 1211--1219.
+
+% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ...
+
+%%% Add period and newline.
+FUNCTION {fin.entry}
+{ add.period.x
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {new.block.check}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+%%% booktitle
+FUNCTION {format.btitle}
+{ booktitle empty$
+ { "" }
+ { bst.btitle.pre booktitle * bst.btitle.post * }
+ if$
+}
+
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
+%%% journal
+FUNCTION {format.journal}
+{ journal empty$
+ { "" }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
+ if$
+}
+
+%%% title for book
+FUNCTION {format.book}
+{ title empty$
+ { "" }
+ { bst.book.pre title * bst.book.post * }
+ if$
+}
+
+FUNCTION {format.url}
+{ url empty$
+ { "" }
+ { type$ "online" = bst.show.url or
+ { bst.url.pre url * bst.url.post *
+ access empty$
+ { "" * }
+ { bst.access.pre * access * bst.access.post * }
+ if$
+ }
+ { "" }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$ bst.show.doi not or
+ { "" }
+ { bst.doi.pre doi * bst.doi.post * }
+ if$
+}
+
+FUNCTION {format.url.doi}
+{ url empty$
+ { format.doi }
+ { doi empty$
+ { format.url }
+ { bst.url.doi #0 =
+ { format.url output.nocomma
+ format.doi }
+ { bst.url.doi #1 =
+ { format.url }
+ { format.doi }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% and others
+FUNCTION {bst.and.others.output}
+{ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.others.nameorder }
+ { bst.and.others }
+ if$
+}
+
+%%% author and editor
+
+%%% name
+FUNCTION {format.names}
+{ 's :=
+ % insert 1 to nameptr.
+ #1 'nameptr :=
+ % Set the number of authors to numnames.
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ % Repeat if namesleft > 0
+ { namesleft #0 > }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ if$
+
+ nameptr #1 >
+ % The second or later authors
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+% remove successive periods (commas) from author
+FUNCTION {remove.ss.period.auth}
+{ 's :=
+ s format.names 'tempa :=
+ bst.author.post 'tempb :=
+ tempb #1 #1 substring$ "}" =
+ { tempa tempb * }
+ { tempa #-1 #1 substring$ tempb #1 #1 substring$ =
+ { tempa tempb #2 global.max$ substring$ * }
+ { tempa tempb * }
+ if$
+ }
+ if$
+}
+
+% <prev name list> <new name list> compare.names <modified name list>
+FUNCTION {compare.names.aer}
+{ 's :=
+ 'tempa :=
+
+% "current.author = " s * "\\" * write$ newline$
+% "prev.author = " tempa * "\\" * write$ newline$
+
+ tempa num.names$ 'len1.aer := % len1 = the number of previous authors
+ s num.names$ 'len2.aer := % len2 = the number of current authors
+
+% len1.aer := min(len1.aer,len2.aer)
+% len1 -> min{ the number of previous authors, the number of current authors }
+ len1.aer len2.aer >
+ { len2.aer 'len1.aer := }
+ { }
+ if$
+
+% start with an empty string, then while the components are the same
+% add "\bysame"
+ ""
+ #1 'i.aer :=
+
+ { i.aer len1.aer > not }
+ { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$
+ s i.aer "{ff }{vv }{ll}{ jj}" format.name$
+ =
+ { #1 i.aer <
+ { " and " * } % \bysame \x82ŏȗ\xAA\x82\xB7\x82钘\x8E҂̑O\x82ɂ\xAD and
+ { }
+ if$
+ "\bysame{}" *
+ i.aer #1 + 'i.aer := }
+ { #-1 'len1.aer := }
+ if$
+ }
+ while$
+
+% add the rest of the second string
+ { i.aer len2.aer > not }
+ { #1 i.aer <
+ { " and " * }
+ { }
+ if$
+ s i.aer "{ff }{vv }{ll}{ jj}" format.name$ *
+ i.aer #1 + 'i.aer :=
+ }
+ while$
+}
+
+%%% author
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { bst.use.bysame #2 =
+ { prev.author.aer author compare.names.aer 's :=
+ author 'prev.author.aer := }
+ { author 's := }
+ if$
+ extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre s remove.ss.period.auth * }
+ if$
+ }
+ if$
+}
+
+%%% editor
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { bst.use.bysame #2 =
+ { prev.author.aer editor compare.names.aer 's :=
+ editor 'prev.author.aer := }
+ { editor 's := }
+ if$
+ extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre s remove.ss.period.auth * }
+ if$
+ s num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.authors.alt}
+{ author empty$
+ { "" }
+ { extra.label.bysame "bysame" =
+ {"\bysame "}
+ { bst.author.pre author remove.ss.period.auth * }
+ if$
+ }
+ if$
+}
+
+%%% editor
+FUNCTION {format.editors.alt}
+{ editor empty$
+ { "" }
+ { extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre editor remove.ss.period.auth * }
+ if$
+ editor num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ if$
+}
+
+%%% format.in.ed.booktitle
+FUNCTION {format.editors.x}
+{ editor empty$
+ { "" }
+ { bst.editor.btitle.order #0 =
+ { "" }
+ { editor num.names$ #1 >
+ { " edited by " }
+ { " edited by " }
+% { bst.editors " by " * }
+% { bst.editor " by " * }
+ if$
+ }
+ if$
+ editor format.names *
+ bst.editor.btitle.order #0 =
+ { editor num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ { "" * }
+ if$
+ }
+ if$
+}
+
+%%% Remove commas in the cases like "?." and "?,".
+FUNCTION {remove.irrelevant.period.comma}
+{ 's :=
+ s empty$
+ { "" }
+ { s #-1 #3 substring$ "?,'" =
+ s #-1 #3 substring$ "?.'" = or
+ { s #-3 global.max$ substring$ "'" * }
+ { s #-1 #4 substring$ "?,''" =
+ s #-1 #4 substring$ "?.''" = or
+ { s #-4 global.max$ substring$ "''" * }
+ { s #-1 #2 substring$ "?," =
+ s #-1 #2 substring$ "?." = or
+ { s #-2 global.max$ substring$ "" * }
+ { s #-1 #3 substring$ "?,~" =
+ s #-1 #3 substring$ "?.~" = or
+ { s #-4 global.max$ substring$ "?~" * }
+ 's
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% title
+FUNCTION {format.title.sub}
+{ bst.title.lower.case #0 =
+ { bst.title.pre title * bst.title.post * }
+ { bst.title.pre title "t" change.case$ * bst.title.post * }
+ if$
+}
+
+%%% title
+FUNCTION {format.title}
+{ title empty$
+ bst.hide.title #0 = not or
+ { "" }
+ { format.title.sub remove.irrelevant.period.comma }
+ if$
+}
+
+%%% title for misc.
+FUNCTION {format.misc.title}
+{ title empty$
+ { "" }
+ { bst.title.pre title * bst.title.post * }
+ if$
+}
+
+% Convert "-" to "--" (for pages field)
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ %% while$
+ { 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$
+}
+
+%%% year
+FUNCTION {format.year}
+{ year empty$
+ { "there's no year in " cite$ * warning$
+ ", " }
+ { type$ "article" =
+ { bst.year.pre year * extra.label * bst.year.post * }
+ { bst.year.na.pre year * extra.label * bst.year.na.post * }
+ if$
+ }
+ if$
+}
+
+%%% page for book
+FUNCTION {format.book.pages}
+{ pages empty$
+ { "" }
+ { bst.pages.pre pages * bst.pages.post * }
+ if$
+}
+
+%%% Attach tie for the string with two or less characters.
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+%%% volume for book
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+% { bst.volume.pre volume * bst.volume.post *
+ { " Volume " volume * "." *
+ series empty$
+ 'skip$
+ %% If there is series field
+ { " of " * series * bst.series.post * }
+ if$
+% "volume and number" number either.or.check
+ }
+ if$
+}
+
+%%% series
+FUNCTION {output.series}
+{ series empty$
+ { "" }
+ { bst.series.pre series * bst.series.post * }
+ if$
+}
+
+%%% number and series
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ bst.hide.month #0 = not or
+ % number is empty
+ { series empty$
+ { "" }
+ % series is not empty.
+ { output.series }
+ if$
+ }
+ % number is not empty$
+ { series empty$
+ { bst.number.pre number * bst.number.post * }
+ % series is not empty.
+ { bst.in bst.series.pre * series * bst.series.post *
+ bst.number.pre * number * bst.number.post * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+%%% Number or not.
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+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$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% edition
+
+% Convert edition to 1st, 2nd, 3rd, 4th etc
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bst.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bst.st * }
+ { duplicate$ "2" =
+ { pop$ bst.nd * }
+ { "3" =
+ { bst.rd * }
+ { bst.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst)
+FUNCTION {convert.edition}
+{ edition extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bst.first }
+ { s "second" = s "2" = or
+ { bst.second }
+ { s "third" = s "3" = or
+ { bst.third }
+ { s "fourth" = s "4" = or
+ { bst.fourth }
+ { s "fifth" = s "5" = or
+ { bst.fifth }
+ { s #1 #1 substring$ is.num
+ { s eng.ord }
+ { edition }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% edition
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * }
+ { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * }
+ if$
+ }
+ if$
+}
+
+%%% month
+FUNCTION {format.month}
+{ month empty$
+ bst.hide.month #0 = not or
+ { "" }
+ { bst.month.pre month * bst.month.post * }
+ if$
+}
+
+%%% year and month
+FUNCTION {format.date}
+{ format.month format.year *
+}
+
+%%% Is multiple pages like 1-100?
+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
+}
+
+%%% pages
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post }
+ { bst.page.pre pages tie.or.space.connect * bst.page.post }
+ if$
+ }
+ if$
+}
+
+%%% number
+FUNCTION {format.number}
+{ number empty$
+ bst.hide.number #0 = not or
+ { "" }
+ { bst.number.pre number * bst.number.post * }
+ if$
+}
+
+%%% volume
+FUNCTION {format.volume}
+{ volume empty$
+ 'skip$
+ { bst.volume.pre volume * bst.volume.post *
+ bst.year.position #3 =
+ { format.year * }
+ 'skip$
+ if$
+ }
+ if$
+}
+
+%%% number, page
+FUNCTION {format.number.pages}
+{ number empty$
+ { format.pages }
+ { format.number format.pages * }
+ if$
+}
+
+%%% volume, page
+FUNCTION {format.volume.pages}
+{ volume empty$
+ { format.pages }
+ { format.volume format.pages * }
+ if$
+}
+
+%%% volume, number, page
+FUNCTION {format.volume.number.pages}
+{ volume empty$
+ { number empty$
+ { format.pages }
+ { format.number format.pages * }
+ if$
+ }
+ { number empty$
+ { format.volume format.pages * }
+ { format.volume format.number * format.pages * }
+ if$
+ }
+ if$
+}
+
+% volume, number, page
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ %% volume is empty.
+ { number empty$
+ %% number is empty.
+ { pages empty$
+ % warning
+ { "there is no volume, number, and pages in " cite$ * warning$ "" }
+ { "" format.pages * }
+ if$
+ }
+ %% number is not empty.
+ % warning
+ { "there's a number but no volume in " cite$ * warning$
+ format.number.pages }
+ if$
+ }
+ %% volume is not empty.
+ { number empty$
+ %% number is empty.
+ { format.volume.pages }
+ %% number is not empty.
+ { format.volume.number.pages }
+ if$
+ }
+ if$
+}
+
+%%% chapter
+FUNCTION {format.chapter}
+{ chapter empty$
+ { "" }
+ { type empty$
+ { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post }
+ { ", " * type " " * chapter * }
+ if$
+ }
+ if$
+}
+
+%%% chapter, pages
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ { pages empty$
+ { "" }
+ { "" format.pages * }
+ if$
+ }
+ { pages empty$
+ { "" format.chapter * }
+ { "" format.chapter * format.pages * }
+ if$
+ }
+ if$
+}
+
+%%% editor and booktitle
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { bst.in format.btitle * }
+ { bst.editor.btitle.order #0 =
+ { bst.in format.editors.x * " " * format.btitle * }
+ { bst.in format.btitle * " " * format.editors.x * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% howpublished
+FUNCTION {format.howpublished}
+{ howpublished empty$
+ { "" }
+ { bst.howpublished.pre howpublished * bst.howpublished.post * }
+ if$
+}
+
+%%% address
+FUNCTION {format.address}
+{ address empty$
+ { "" }
+ { bst.address.pre address * bst.address.post * }
+ if$
+}
+
+%%% publisher
+FUNCTION {format.publisher}
+{ publisher empty$
+ { "" }
+ { address empty$
+ { ", " publisher * bst.publisher.post * }
+ { bst.publisher.pre publisher * bst.publisher.post * }
+ if$
+ }
+ if$
+}
+
+%%% organization
+FUNCTION {format.organization}
+{ organization empty$
+ { "" }
+ { bst.organization.pre organization * bst.organization.post * }
+ if$
+}
+
+%% publisher and address
+FUNCTION {output.publisher.address}
+{ address empty$
+ { format.publisher "publisher" output.check.nocomma }
+ { bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+}
+
+%% address, organization, publisher
+FUNCTION {output.address.organization.publisher}
+{ address empty$
+ %% address is empty
+ { organization empty$
+ %% organization is empty
+ { publisher empty$
+ 'skip$
+ { format.publisher "publisher" output.check.nocomma }
+ if$
+ }
+ %% organization is not empty
+ { publisher empty$
+ { format.organization "organization" output.check.nocomma }
+ { format.organization "organization" output.check.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ if$
+ }
+ if$
+ }
+ %% address is not empty
+ { organization empty$
+ %% organization is empty
+ { publisher empty$
+ %% publisher is empty
+ { format.address output.nocomma }
+ %% publisher is not empty
+ { bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+ }
+ %% organization is not empty
+ { publisher empty$
+ %% publisher is empty
+ { format.organization "organization" output.check.nocomma
+ format.address output.nocomma }
+ %% publisher is not empty
+ { format.organization "organization" output.check.nocomma
+ bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% misc
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$ " " type * }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bst.techrep }
+ { " " type * }
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+%%% phdthesis
+FUNCTION {format.phd}
+{ bst.phdthesis }
+
+%%% mastersthesis
+FUNCTION {format.mthesis}
+{ bst.mthesis }
+
+%%% school
+FUNCTION {format.school}
+{ school empty$
+ { "" }
+ { bst.school.pre school * bst.school.post * }
+ if$
+}
+
+%%% institution
+FUNCTION {format.institution}
+{ institution empty$
+ { "" }
+ { bst.institution.pre institution * bst.institution.post * }
+ if$
+}
+
+%%% remove first ? characters.
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {format.note}
+{ note empty$
+ { "" }
+ { bst.note.pre note * bst.note.post * }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \havarditem
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\harvarditem[" write$
+ alabel write$ % alabel <- abbreviated citation
+ "]{" write$
+ flabel write$ % flabel <- full citation
+ "}{" write$
+ cyear write$
+ % cyear = year
+ "}{" write$
+ cite$ write$ % cite$ -> pusch keyword
+ "}" write$
+ % If number index is on
+ bst.use.number.index #0 =
+ 'skip$
+ { index #1 + 'index :=
+ "" 'preone :=
+ "" 'preten :=
+ bst.number.index.digit "1" =
+ 'skip$
+ { bst.number.index.digit "2" =
+ { "\hskip0.5em" 'preone := }
+ { bst.number.index.digit "3" =
+ { "\hskip1em" 'preone :=
+ "\hskip0.5em" 'preten := }
+ 'skip$
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ newline$
+ before.all 'output.state :=
+ ""
+ % number index
+ bst.use.number.index #0 =
+ 'skip$
+ { index #10 <
+ % Insert spaces according to digit of number index.
+ { preone }
+ { index #100 <
+ { preten }
+ { "" }
+ if$
+ }
+ if$
+ bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$
+ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% article
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.journal "journal" output.check.nocomma
+ bst.year.position #2 =
+ { format.date output.nocomma }
+ 'skip$
+ if$
+ format.vol.num.pages output.nocomma
+
+ bst.year.position #1 =
+ { format.date output.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% book
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check.nocomma }
+ { format.authors output.nonnull.nocomma
+ "author and editor" editor either.or.check
+ }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ output.publisher.address
+
+ format.edition output.nocomma
+ format.book.pages output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% booklet
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output.nocomma
+ format.year output.nocomma
+ format.misc.title "title" output.check.nocomma
+ format.howpublished output.nocomma
+ format.address output.nocomma
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% inbook
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check.nocomma }
+ { format.authors output.nonnull.nocomma
+ "author and editor" editor either.or.check
+ }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+% format.book remove.pre.comma "title" output.check.nocomma
+ format.book "title" output.check.nocomma
+ format.edition output.nocomma
+
+ format.bvolume output.nocomma
+ format.chapter.pages "chapter and pages" output.check.nocomma
+ format.number.series output.nocomma
+ output.publisher.address
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% incollection
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.in.ed.booktitle "booktitle" output.check.nocomma
+ format.bvolume output.nocomma
+ format.edition output.nocomma
+ format.chapter.pages output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% inproceedings
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.in.ed.booktitle "booktitle" output.check.nocomma
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ format.pages output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% conference
+
+FUNCTION {conference}
+{ inproceedings }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% manual
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull.nocomma
+ address output.nocomma
+ }
+ if$
+ }
+ { format.authors output.nonnull.nocomma }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+ author empty$
+ { organization empty$
+ { format.address new.block.check
+ format.address output.nocomma
+ }
+ 'skip$
+ if$
+ }
+ { output.address.organization.publisher }
+ if$
+ format.edition output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% mastersthesis
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+ format.mthesis format.thesis.type output.nonnull.nocomma
+ format.school "school" output.check.nocomma
+ format.address output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% misc
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.misc.title output.nocomma
+ format.howpublished output.nocomma
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+ empty.misc.check
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Online
+
+FUNCTION {online}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.misc.title output.nocomma
+ format.howpublished output.nocomma
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+ empty.misc.check
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% phdthesis
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+ format.phd
+ format.thesis.type output.nonnull.nocomma
+ format.school "school" output.check.nocomma
+ address empty$
+ 'skip$
+ { format.address output.nocomma }
+ if$
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% proceedings
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output.nocomma }
+ { format.editors output.nonnull.nocomma }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.btitle remove.pre.comma "title" output.check.nocomma
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% techreport
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+ format.tr.number output.nonnull.nocomma
+ format.institution "institution" output.check.nocomma
+ format.address output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% unpublished
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ bst.year.position #0 = not
+ { format.date remove.pre.comma output.nocomma }
+ { month empty$
+ 'skip$
+ { format.month remove.pre.comma output.nocomma }
+ if$
+ }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note "note" output.check.nocomma
+ fin.entry
+}
+
+FUNCTION {default.type}
+{ misc }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Alias for month names:
+
+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"}
+
+%%% Read entries:
+READ
+
+%%% Variable for remembering the order of citation.
+INTEGERS { order.num }
+FUNCTION {initialize.order.num}
+{
+ #1 'order.num :=
+}
+%%% Initialize a variables
+EXECUTE {initialize.order.num}
+
+%%% Variable for remembering the order of citation.
+FUNCTION {set.order.cited}
+{
+ order.num 'order.cited :=
+ #1 order.num + 'order.num :=
+}
+%%% Iterate for all entries:
+ITERATE {set.order.cited}
+
+%%% check the value of nameorder field.
+FUNCTION {set.nameorder}
+{ nameorder empty$
+ { "" 'nameorder.temp := }
+ { nameorder 'nameorder.temp := }
+ if$
+}
+%%% Iterate for all entries:
+ITERATE {set.nameorder}
+
+%%% Remove symbols and convert to lowercase.
+FUNCTION {sortify}
+{ purify$ "l" change.case$ }
+
+%%% names for sorting
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+ s nameptr "{ll}{ f}{ j}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { bst.and.others.output *}
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.names.abb}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames bst.and.others.num <
+ { s sort.format.names }
+ { s #1 "{ll}{ f}{ j}" format.name$ " zz " * }
+ if$
+}
+
+%%% Label for full author name.
+FUNCTION {format.lab.names.full}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{vv~}{ll}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { ", " * t * }
+ if$
+ }
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 >
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.cite.and.nameorder * t * }
+ { bst.cite.ands * t * }
+ if$
+ }
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.cite.and.nameorder * t * }
+ { bst.cite.and * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ numnames #1 > #1 #2 = and {", eds" *} {} if$
+ numnames #1 = #1 #2 = and {", ed" *} {} if$
+}
+
+%%% laberl for abbreviated author name.
+FUNCTION {format.lab.names.abb}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames bst.and.others.num <
+ % if the number of authors is less than bst.and.others.num, full name.
+ { s format.lab.names.full }
+ % if the number of authors is equal or more than bst.and.others.num, abbreviated name.
+ { s #1 "{ll}" format.name$ bst.and.others.output * }
+ if$
+}
+
+%%% abbreviated author
+FUNCTION {author.key.label.abb}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names.abb }
+ if$
+}
+
+%%% full author
+FUNCTION {author.key.label.full}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names.full }
+ if$
+}
+
+FUNCTION {format.names.full.wo.and}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ll}{, ff}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { " " * t * }
+ { t "others" =
+ { " " * }
+ { numnames #2 >
+ { " " * t * }
+ { " " * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {author.key.full.wo.and}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.names.full.wo.and }
+ if$
+}
+
+FUNCTION {author.editor.key.full.wo.and}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.names.full.wo.and }
+ if$
+ }
+ { author format.names.full.wo.and }
+ if$
+}
+
+FUNCTION {editor.key.organization.key.full.wo.and}
+{ 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.names.full.wo.and }
+ if$
+}
+
+FUNCTION {author.key.organization.key.full.wo.and}
+{ 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.names.full.wo.and }
+ if$
+}
+
+%%% abbreviated author
+FUNCTION {author.editor.key.label.abb}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names.abb }
+ if$
+ }
+ { author format.lab.names.abb }
+ if$
+}
+
+%%% full author
+FUNCTION {author.editor.key.label.full}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names.full }
+ if$
+ }
+ { author format.lab.names.full }
+ if$
+}
+
+FUNCTION {author.key.organization.label.full}
+{ 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.full }
+ if$
+}
+
+FUNCTION {author.key.organization.label.abb}
+{ 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.abb }
+ if$
+}
+
+FUNCTION {editor.key.organization.label.full}
+{ 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.full }
+ if$
+}
+
+FUNCTION {editor.key.organization.label.abb}
+{ 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.abb }
+ if$
+}
+
+%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0
+FUNCTION {reverse.num}
+{ 's :=
+ s "1" =
+ { "8" 'year.num := }
+ { s "2" =
+ { "7" 'year.num := }
+ { s "3" =
+ { "6" 'year.num := }
+ { s "4" =
+ { "5" 'year.num := }
+ { s "5" =
+ { "4" 'year.num := }
+ { s "6" =
+ { "3" 'year.num := }
+ { s "7" =
+ { "2" 'year.num := }
+ { s "8" =
+ { "1" 'year.num := }
+ { s "9" =
+ { "0" 'year.num := }
+ { s "0" =
+ { "9" 'year.num := }
+ { "9" 'year.num := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ year.num
+}
+
+%%% Convert year (large number -> small number)
+FUNCTION {convert.year}
+{ 't :=
+ bst.reverse.year #0 =
+ { t 'tt := }
+ { t #1 #1 substring$ reverse.num
+ t #2 #1 substring$ reverse.num *
+ t #3 #1 substring$ reverse.num *
+ t #4 #1 substring$ reverse.num * 'tt := }
+ if$
+ tt
+}
+
+%%% cyear
+FUNCTION {calc.cyear}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.full.wo.and
+ { type$ "proceedings" =
+ 'editor.key.organization.key.full.wo.and
+ { type$ "manual" =
+ 'author.key.organization.key.full.wo.and
+ 'author.key.full.wo.and
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year empty$
+ { "2199" 'cyear := }
+ { year 'cyear := }
+ if$
+ year empty$
+ { " " "2199" convert.year * field.or.null * }
+ { " " year convert.year * field.or.null * }
+ if$
+ sortify 'sort.label :=
+ % For debug
+ econ.debug #0 = not
+ { "sort.label = ``\texttt{" write$
+ sort.label write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+ pop$
+}
+
+FUNCTION {calc.sort.label.abb}
+{ author empty$
+ { editor empty$
+ { "" }
+ { editor 's := }
+ if$
+ }
+ { author 's := }
+ if$
+ s sort.format.names.abb 't :=
+ year empty$
+ { t sortify " " * "2199" convert.year * 'sort.label.abb := }
+ { t sortify " " * year convert.year * 'sort.label.abb := }
+ if$
+ econ.debug #0 = not
+ { "sort.label.abb = ``\texttt{" write$
+ sort.label.abb write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% flabel
+FUNCTION {calc.flabel}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label.full
+ { type$ "proceedings" =
+ 'editor.key.organization.label.full
+ { type$ "manual" =
+ 'author.key.organization.label.full
+ 'author.key.label.full
+ if$
+ }
+ if$
+ }
+ if$
+ 'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
+ % For debug
+ econ.debug #0 = not
+ { "flabel = ``\texttt{" write$
+ flabel write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% alabel
+FUNCTION {calc.alabel}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label.abb
+ { type$ "proceedings" =
+ 'editor.key.organization.label.abb
+ { type$ "manual" =
+ 'author.key.organization.label.abb
+ 'author.key.label.abb
+ if$
+ }
+ if$
+ }
+ if$
+ 'alabel :=
+ % For debug
+ econ.debug #0 = not
+ { "alabel = ``\texttt{" write$
+ alabel write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% title for sorting
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+%%% author for sorting
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+%%% editor for sorting
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {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$
+}
+
+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$
+}
+
+%%% 1,...,9 -> 001,...,009
+%%% 10,...,99 -> 010,...,099
+FUNCTION {add.zero.to.number}
+{ 's :=
+ s text.length$ #1 =
+ { "00" s * }
+ { s text.length$ #2 =
+ { "0" s * }
+ { s }
+ if$
+ }
+ if$
+}
+
+%% entry type
+FUNCTION {bst.sort.entry.type.order}
+{ 'item.type :=
+ item.type "article" =
+ { "01" }
+ { item.type "book" =
+ { "02" }
+ { item.type "booklet" =
+ { "03" }
+ { item.type "comment" =
+ { "04" }
+ { item.type "conference" =
+ { "05" }
+ { item.type "inbook" =
+ { "06" }
+ { item.type "incollection" =
+ { "07" }
+ { item.type "inproceedings" =
+ { "08" }
+ { item.type "manual" =
+ { "09" }
+ { item.type "masterthesis" =
+ { "10" }
+ { item.type "misc" =
+ { "11" }
+ { item.type "phdthesis" =
+ { "12" }
+ { item.type "proceedings" =
+ { "13" }
+ { item.type "techreport" =
+ { "14" }
+ { item.type "unpublished" =
+ { "15" }
+ { "16" }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% Create sort.key$: absorder -> author -> year -> order -> month -> title.
+FUNCTION {presort.one}
+{
+ bst.no.sort #0 = not
+ { order.cited int.to.str$ add.zero.to.number " " * }
+ { "" }
+ if$
+ bst.sort.year #0 = not
+ %% Use year field as the primary sorting key.
+ { year convert.year * }
+ 'skip$
+ if$
+ bst.sort.entry.type #0 = not
+ { type$ bst.sort.entry.type.order * " " * }
+ 'skip$
+ if$
+ absorder empty$
+ { "/// " * }
+ { bst.notuse.absorder.field #0 =
+ { absorder "999" =
+ { "zzz " * }
+ { absorder add.zero.to.number "000" =
+ { "/// " * }
+ { absorder add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ " " *
+ sort.label.abb *
+ " " *
+ type$ "book" = type$ "inbook" = or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ * " " *
+ " "
+ order empty$
+ { "/// " * }
+ { bst.notuse.order.field #0 =
+ { order "999" =
+ { "zzz " * }
+ { order add.zero.to.number "000" =
+ { "/// " * }
+ { order add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ month empty$
+ { * "/// " * }
+ { month "999" =
+ { * month add.zero.to.number * "zzz " * }
+ { month add.zero.to.number "000" =
+ { * month add.zero.to.number * "/// " * }
+ { * month add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ if$
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+ % For debug
+ econ.debug #0 = not
+ { "``\texttt{" write$
+ sort.key$ write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+FUNCTION {presort.two}
+{
+ bst.no.sort #0 = not
+ { order.cited int.to.str$ add.zero.to.number " " * }
+ { "" }
+ if$
+ bst.sort.year #0 = not
+ %% Use year field as the primary sorting key.
+ { year convert.year * }
+ 'skip$
+ if$
+ bst.sort.entry.type #0 = not
+ { type$ bst.sort.entry.type.order * " " * }
+ 'skip$
+ if$
+ absorder empty$
+ { "/// " * }
+ { bst.notuse.absorder.field #0 =
+ { absorder "999" =
+ { "zzz " * }
+ { absorder add.zero.to.number "000" =
+ { "/// " * }
+ { absorder add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ " " * sort.label * " "
+ order empty$
+ { "/// " * }
+ { bst.notuse.order.field #0 =
+ { order "999" =
+ { "zzz " * }
+ { order add.zero.to.number "000" =
+ { "/// " * }
+ { order add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ month empty$
+ { * "/// " * }
+ { month "999" =
+ { * month add.zero.to.number * "zzz " * }
+ { month add.zero.to.number "000" =
+ { * month add.zero.to.number * "/// " * }
+ { * month add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ if$
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+ % For debug
+ econ.debug #0 = not
+ { "``\texttt{" write$
+ sort.key$ write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% Codes for debugging
+FUNCTION {calc.alabel.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.alabel: alabel = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+FUNCTION {calc.flabel.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.flabel: flabel = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+FUNCTION {presort.one.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {presort.two.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {calc.cyear.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {calc.sort.label.abb.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+%%% alabel
+EXECUTE {calc.alabel.mess}
+ITERATE {calc.alabel}
+
+%%% flabel
+EXECUTE {calc.flabel.mess}
+ITERATE {calc.flabel}
+
+%%% cyear and sort.label
+EXECUTE {calc.cyear.mess}
+ITERATE {calc.cyear}
+
+%%%
+EXECUTE {calc.sort.label.abb.mess}
+ITERATE {calc.sort.label.abb}
+
+%%% Sorting by $sort.key (first time)
+%
+% Sorting is done in two times. This is the first time.
+%
+EXECUTE {presort.one.mess}
+ITERATE {presort.one}
+SORT
+
+FUNCTION {forward.pass}
+{ bst.use.bysame #0 = bst.use.bysame #2 = or
+ % Not use \bysame
+ { last.sort.label sort.label.abb =
+ { 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.abb 'last.sort.label :=
+ }
+ if$
+ }
+ % Use \bysame
+ { last.sort.label sort.label.abb =
+ { 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.abb 'last.sort.label :=
+ }
+ if$
+ author empty$
+ { editor empty$
+ { "" }
+ 'format.editors.alt
+ if$
+ }
+ 'format.authors.alt
+ if$
+ 'this.author :=
+ % format.names 'this.author :=
+ this.author prev.author =
+ { "bysame" 'extra.label.bysame := }
+ { this.author "" =
+ { "abcxyz" }
+ 'this.author
+ if$
+ 'prev.author :=
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ extra.label empty$ not
+ { cyear extra.label * }
+ { cyear "" * }
+ if$
+ "" field.or.null *
+ 'cyear :=
+ extra.label 'next.extra :=
+}
+
+%%% \bysame
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+%%% Sorting by sort.key$ (second time)
+EXECUTE {presort.two.mess}
+ITERATE {presort.two}
+SORT
+
+FUNCTION {reset.prev.author}
+{ "xxyyzz" 'prev.author := }
+
+EXECUTE {reset.prev.author}
+
+FUNCTION {forward.pass.two}
+{ bst.use.bysame #1 =
+ { author empty$
+ { editor empty$
+ { "" }
+ 'format.editors.alt
+ if$
+ }
+ 'format.authors.alt
+ if$
+ 'this.author :=
+ this.author prev.author =
+ { "bysame" 'extra.label.bysame := }
+ { this.author "" =
+ { "abcxyz" }
+ 'this.author
+ if$
+ 'prev.author :=
+ }
+ if$
+ }
+ 'skip$
+ if$
+}
+
+ITERATE {forward.pass.two}
+
+FUNCTION{punctuation}
+{
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by aea.bst ver." econ.version * write$ newline$
+ "% The latest aea.bst is available at" write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+}
+
+EXECUTE {punctuation}
+
+FUNCTION {begin.bib}
+{
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ bst.use.bysame #0 =
+ % Not use \bysame.
+ 'skip$
+ % Use \bysame.
+ { "%%% Definition of \bysame" write$ newline$
+ "\ifx\undefined\bysame" write$ newline$
+ "\newcommand{\bysame}{" bst.bysame.definition * "}" *
+ write$ newline$
+ "\fi" write$ newline$ newline$ }
+ if$
+ %% When number index is attached to the beginning of each item.
+ bst.use.number.index #0 =
+ 'skip$
+ { bst.number.index.digit "1" =
+ % one digit.
+ { bst.number.index.bibhang.one }
+ { bst.number.index.digit "2" =
+ % two digits.
+ { bst.number.index.bibhang.ten }
+ % three or more digits.
+ { bst.number.index.bibhang.hund }
+ if$
+ }
+ if$
+ 'hang :=
+ "%%% Redefinition of \bibhang" write$ newline$
+ "\ifx\undefined\bibhang" write$ newline$
+ "\relax" write$ newline$
+ "\else" write$ newline$
+ "\setlength{\bibhang}{"
+ hang * "}" * write$ newline$
+ "\fi" write$ newline$ newline$
+ }
+ if$
+ "\begin{thebibliography}{xxx}" write$ newline$
+
+ %% Initialize the variable `index'.
+ #0 'index :=
+}
+
+FUNCTION {end.bib}
+{ newline$ "\end{thebibliography}" write$ newline$ }
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+EXECUTE {end.bib}
+
+% --------------------
+% Local Variables:
+% fill-column: 78
+% mode: bst
+% End:
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.bst
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf 2020-02-27 22:03:41 UTC (rev 53937)
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -0,0 +1,58 @@
+%#!pdflatex
+%#BIBTEX bibtex econ-aea
+
+%############################## Main #################################
+\documentclass[10pt]{article}
+
+%% Use natbib.sty
+\usepackage{natbib}
+\usepackage{newtxtext,newtxmath}
+\usepackage{url}
+\usepackage{graphicx}
+\usepackage{color}
+\definecolor{MyBrown}{rgb}{0.3,0,0}
+\definecolor{MyBlue}{rgb}{0,0,0.3}
+\definecolor{MyRed}{rgb}{0.4,0,0.1}
+\definecolor{MyGreen}{rgb}{0,0.4,0}
+\usepackage[bookmarks=true,%
+bookmarksnumbered=true,%
+colorlinks=true,%
+linkcolor=MyBlue,%
+citecolor=MyRed,%
+filecolor=MyBlue,%
+urlcolor=MyGreen%
+]{hyperref}
+
+\setlength{\topmargin}{-20pt}
+\setlength{\textheight}{648pt}
+\setlength{\oddsidemargin}{15pt}
+\setlength{\textwidth}{440pt}
+
+%#####################################################################
+%######################### Document Starts ###########################
+%#####################################################################
+\begin{document}
+
+This document uses ``\verb|econ-aea.bst|'', which is the style for journals of
+American Economic Association (AEA) such as {\itshape American Economic Review},
+{\itshape Journal of Economic Literature} and {\itshape American Economic
+Journals}.
+
+\vspace{1em}
+
+\input{cited-part}
+\nocite{*}
+
+%% bst file:
+\bibliographystyle{econ-aea}
+\bibliography{../econ-example}
+
+\end{document}
+
+%#####################################################################
+%######################### Document Ends #############################
+%#####################################################################
+% --------------------
+% Local Variables:
+% fill-column: 80
+% End:
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.bst 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -1,3538 +0,0 @@
-%% econ.bst: BibTeX style file for papers in economics.
-%
-% Author: Shiro Takeda
-% Maintainer: Shiro Takeda
-% Copyright (C) 2001-2018 Shiro Takeda
-% First-written: <2007/07/28>
-% Time-stamp: <2018-12-07 18:49:31 st>
-% Version: 2.5
-% Keywords: TeX, BibTeX, bst
-% URL: https://github.com/ShiroTakeda/econ-bst
-
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status "maintained".
-%
-% The Current Maintainer of this work is Shiro Takeda.
-
-%% Main features of econ.bst.
-
-% "econ.bst" is a BibTeX style file for economics. It provids the following
-% features:
-
-% 1) The author-year type citation (you need "natbib.sty" as well).
-% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style
-% for a specific journal).
-% 3) Highly customizable. You can easily customize reference style as you wish.
-% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018)
-% (http://dx.doi.org/10.1257/aer.20161492).
-
-% Bug reports, requests and suggestions are welcome.
-
-% For changelogs, see CHANGES.txt file.
-
-% version number
-FUNCTION {econ.version} { "2.5" }
-
-% Debug mode. Non-zero makes debug mode on.
-FUNCTION {econ.debug}
-{ #0 } % Debug mode off (default).
-% { #1 } % Debug mode on.
-
-ENTRY
- %%% Declaration of field
- { access address author booktitle chapter doi edition editor howpublished
- institution journal key month note number organization pages publisher
- school series title type url volume year
- % Fields specific to econ.bst
- order absorder nameorder
- }
-
- % Definition of entry variable. The entry variable is a variable which has
- % different values according to different entries.
- %% Integer entry variable:
- { order.cited }
-
- %% String entry variable
- { label cyear flabel alabel extra.label sort.label sort.label.abb
- extra.label.bysame nameorder.temp }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%% Functions for customization:
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Use \bysame or not.
-%
-% If set to #0, \bysame is not used.
-% If set to #1, \bysame is used
-% If set to #2, \bysame is used (alternative abbreviation style).
-%
-% Note that integer number is expressed as # + integer in bst file.
-% \bysame is the function that abbreviates succession of the same authors' name by ---.
-%
-% See econ-sample.pdf for details.
-%
-FUNCTION {bst.use.bysame}
-{ #0 } % Not use \bysame
-% { #1 } % -> Use \bysame (default)
-% { #2 } % -> Use \bysame of alternative style.
-
-% The definition of \bysame command.
-%
-FUNCTION {bst.bysame.definition}
-{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default)
-% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% The order of fist and last name.
-%
-FUNCTION {bst.author.name}
-{ #0 } % (default)
-% { #1 }
-% { #2 }
-
-% Case of #0: First author -> last-first, other authors -> first-last.
-% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables.
-
-% Case of #1: All authors -> last-first
-% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J.
-
-% Case of #2: All authors -> first-last
-% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Abbreviate first name of authors (editors):
-%
-FUNCTION {bst.first.name.initial}
-{ #0 } % #0 -> full letters (default).
-% { #1 } % Non-zero -> initial letter only.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Decapitalize of strings in title field.
-%
-FUNCTION {bst.title.lower.case}
-{ #0 } % If #0, not decapitalize title (default).
-% { #1 } % If non-#0, decapitalize title
-
-% Hide title filed.
-%
-FUNCTION {bst.hide.title}
-{ #0 } % #0 -> Title field is displayed (default)
-% { #1 } % Non-zer -> Title field is hidden
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Hide month.
-%
-FUNCTION {bst.hide.month}
-{ #0 } % #0 -> show month field (default).
-% { #1 } % non-#0 -> hide month field.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Attach number index like plain.bst.
-%
-FUNCTION {bst.use.number.index}
-{ #0 } % Not use number index (default).
-% { #1 } % Non-#0 -> Use number index
-
-% The string before number index:
-%
-FUNCTION {bst.number.index.pre}
-{ "[" } % (default)
-
-% The string after number index. Adjustment is recommended.
-%
-FUNCTION {bst.number.index.post}
-{ "]\hskip1.0em " } % (default)
-
-% Maximum digit of number index:
-% If the number of reference items >= 100, set 3 to this function.
-% If the number of reference items < 100, set 2 to this function.
-% If the number of reference items < 10, set 1 to this function.
-%
-FUNCTION {bst.number.index.digit}
-{ "2" } % (default)
-% { "3" }
-
-% The functions below are used to adjust space and postion. If you use fonts
-% other than computer modern fonts, you had better make adjustments.
-%
-% Setting for bst.number.index.digit = 1:
-FUNCTION {bst.number.index.bibhang.one}
-{ "2.05em" } % (default)
-% Setting for bst.number.index.digit = 2:
-FUNCTION {bst.number.index.bibhang.ten}
-{ "2.55em" } % (default)
-% Setting for bst.number.index.digit = 3:
-FUNCTION {bst.number.index.bibhang.hund}
-{ "3.05em" } % (default).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Position of "year":
-%
-% You can choose the position of year by this function.
-%
-% If set to #0, year is placed right after "author".
-% If set to non-zero, year is placed at the end (before note field) except for
-% aritcle type entry.
-%
-% In article type entry, the position of year changes according to the
-% following rule:
-%
-% #1 -> year is placed at the end.
-% #2 -> year is placed after journal name in aritcle type entry.
-% #3 -> year is placed after volume in aritcle type entry.
-%
-FUNCTION {bst.year.position}
-{ #0 } % (default).
-% { #1 } % Last place before note.
-% { #2 } % After journal name for aticle type entry.
-% { #3 } % After volume for aticle type entry.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% If 0, references are sorted by old documents -> recent documents. If
-% non-zero, reverse order.
-FUNCTION {bst.reverse.year}
-{ #0 } % Normal order (old -> recent) (default).
-% { #1 } % inverse order (recent -> old)
-
-% If non-zero, sort references by using year field as the primary key
-% (chronological sorting).
-FUNCTION {bst.sort.year}
-{ #0 } % Normal case: year is used as the sorting key next to author (default).
-% { #1 } % year is used as the primary sorting key.
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% If non-zero, references are listed in citation order.
-%
-FUNCTION {bst.no.sort}
-{ #0 } % (default)
-% { #1 } % listed in citation order.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Non-zero -> sort references by entry type (article, book, incollection etc.)
-%
-FUNCTION {bst.sort.entry.type}
-{ #0 } % #0 -> Normal (not sort references by entry type) (default).
-% { #1 } % Non-zero -> sort references by entry type.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% 0 -> use absorder field to sort items. Otherwise, ignore absorder field.
-%
-FUNCTION {bst.notuse.absorder.field}
-{ #0 } % #0 -> Use absorder (default).
-% { #1 } % Non-#0 -> Not use absorder.
-%
-% Order of priority to sort items
-%
-% absorder -> author -> year -> order -> month -> title
-%
-% wehre absorder and order fields are specific to econ.bst.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% 0 -> use order field to sort items. Otherwise, ignore order field.
-% Note: order field is specific to econ.bst.
-FUNCTION {bst.notuse.order.field}
-{ #0 } % #0 -> Use order field (default).
-% { #1 } % Non-#0 -> not use order field.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% and
-
-%%% String used to separate author names in references.
-%
-% String replaced with _ in "Mr. A _ Mr. B "
-%
-FUNCTION {bst.and}
-{ ", and " }
-% { " and " } % (default)
-
-%%% String used to separate author names in references (more than two authors).
-%
-% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
-%
-FUNCTION {bst.ands}
-{ ", and " } % (default)
-
-%%% String used to separate author names in citation part.
-%
-% String replaced with _ in "Mr. A _ Mr. B "
-%
-FUNCTION {bst.cite.and}
-{ " and " } % (default)
-
-%%% String used to separate author names in citation part (more than two authors).
-%
-% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
-%
-FUNCTION {bst.cite.ands}
-{ " and " } % (default)
-
-%%% If you want to use random author order for some bibliography entries, set
-% non-zero to this function.
-%
-FUNCTION {bst.use.nameorder}
-{ #1 } % Use random order (default)
-% { #0 } % Not use random order
-
-%%% String used to separate author names in references for the entry of random
-% author order.
-%
-FUNCTION {bst.and.nameorder}
-{ " \textcircled{r} " } % (default)
-
-%%% String used to separate author names in citation part for the entry of
-% random author order
-%
-FUNCTION {bst.cite.and.nameorder}
-{ " \textcircled{r} " } % (default)
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Author names in the citation part are abbreviated by et al. if the number of
-% authors is greater or equal to bst.and.others.num.
-FUNCTION {bst.and.others.num}
-{ #3 } % If the number of authors is greater or equal to three (default).
-% { #4 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Strings used when abbreviating multiple-authors in citation part.
-FUNCTION {bst.and.others}
-{ " et~al." } % (default)
-
-% Strings used when abbreviating multiple-authors in citation part for entries
-% with random author order.
-FUNCTION {bst.and.others.nameorder}
-{ " \textcircled{r}~al." } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% author
-
-% The string before author:
-%
-FUNCTION {bst.author.pre}
-{ "\textbf{" }
-% { "" } % (default)
-
-% The string after author:
-%
-FUNCTION {bst.author.post}
-{ ".}" }
-% { "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% year
-
-% The string before year only for aritcle type entry.
-%
-FUNCTION {bst.year.pre}
-{ " " }
-% { " (" } % (default)
-
-% The string after year only for aritcle type entry.
-%
-FUNCTION {bst.year.post}
-{ ". " }
-% { ") " } % (default)
-
-% The string after year for non-article type entry (book, incollection etc)
-%
-FUNCTION {bst.year.na.pre}
-{ " " }
-% { " (" } % (default)
-
-% The string after year for non-article type entry (book, incollection etc)
-%
-FUNCTION {bst.year.na.post}
-{ ". " }
-% { ") " } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% title (except for title in book)
-
-% The string before title:
-%
-FUNCTION {bst.title.pre}
-{ "``" } % (default)
-
-% The string after title:
-%
-FUNCTION {bst.title.post}
-{ ".''" }
-% { ",''" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% tile for book:
-
-% The string before book title:
-%
-FUNCTION {bst.book.pre}
-{ " \textit{" } % (default)
-
-% The string after book title:
-%
-FUNCTION {bst.book.post}
-{ "}." }
-% { "}" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% booktitle
-
-% The string before booktitle:
-%
-FUNCTION {bst.btitle.pre}
-{ " \textit{" } % (default)
-
-% The string after booktitle:
-%
-FUNCTION {bst.btitle.post}
-{ "}." }
-% { "}" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% journal name
-
-% The string before journal name:
-%
-FUNCTION {bst.journal.pre}
-{ " \textit{" } % (default)
-
-% The string after journal name:
-%
-FUNCTION {bst.journal.post}
-{ "}" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% editor notation:
-
-% The string that indicates multiple editors:
-%
-FUNCTION {bst.editors}
-{ " eds. " } % (default)
-
-% The string that indicates single editor:
-%
-FUNCTION {bst.editor}
-{ " ed. " } % (default)
-
-% Order of editor and booktitle in incollection and inproceedings entries.
-%
-% If set to #0: editors -> booktitle order
-% If set to non-zero: booktitle -> editors order
-%
-FUNCTION {bst.editor.btitle.order}
-{ #1 }
-% { #0 } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% edition
-
-% The string before edition:
-%
-FUNCTION {bst.edition.pre}
-{ ", " } % (default)
-
-% The string after edition:
-%
-FUNCTION {bst.edition.post}
-{ " edition" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% volume
-
-% The string before volume:
-%
-FUNCTION {bst.volume.pre}
-{ ", " }
-% { ", Vol. " } % (default)
-
-% The string after volume:
-%
-FUNCTION {bst.volume.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% number
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Hide number. If non-zero, number is suppressed.
-FUNCTION {bst.hide.number}
-{ #0 } % #0 -> show number field (default)
-% { #1 } % non-#0 -> Hide number field.
-
-% The string before number:
-%
-FUNCTION {bst.number.pre}
-{ "(" }
-% { ", No. " } % (default)
-
-% The string after number:
-%
-FUNCTION {bst.number.post}
-{ "): " }
-% { "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% in
-
-% In
-%
-FUNCTION {bst.in}
-{ " In " }
-% { " in " } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% page
-
-% The string before page (multiple pages):
-%
-FUNCTION {bst.pages.pre}
-{ " " }
-% { ", pp." } % (default)
-
-% The string before page:
-%
-FUNCTION {bst.page.pre}
-{ ", p." } % (default)
-
-% The string after page (multiple pages):
-%
-FUNCTION {bst.pages.post}
-{ "" } % (default)
-
-% The string after page:
-%
-FUNCTION {bst.page.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% chapter
-
-% The string before chapter:
-%
-FUNCTION {bst.chapter.pre}
-{ ", Chap." } % (default)
-
-% The string after chapter:
-%
-FUNCTION {bst.chapter.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% month
-
-% The string before month:
-%
-FUNCTION {bst.month.pre}
-{ ", " } % (default)
-
-% The string after month:
-%
-FUNCTION {bst.month.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% address
-% The string before address:
-%
-FUNCTION {bst.address.pre}
-{ ", " } % (default)
-
-% The string after address:
-%
-FUNCTION {bst.address.post}
-{ "" } % (default)
-
-% You can choose the order of address and publisher by this function.
-%
-% If #0, address -> publisher order (the default value).
-% If non-zero, publisher -> address order.
-
-FUNCTION {bst.address.position}
-{ #0 } % Address is placed before publisher (default)
-% { #1 } % Address is placed after publisher
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% publisher
-
-% The string before publisher:
-%
-FUNCTION {bst.publisher.pre}
-{ ": " } % (default)
-
-% The string after publisher:
-%
-FUNCTION {bst.publisher.post}
-{ ", " }
-% { "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% series
-
-% The string before series:
-%
-FUNCTION {bst.series.pre}
-{ ", " } % (default)
-
-% The string after series:
-%
-FUNCTION {bst.series.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% organization
-
-% The string before organization:
-%
-FUNCTION {bst.organization.pre}
-{ ", " } % (default)
-
-% The string after organization:
-%
-FUNCTION {bst.organization.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% school
-
-% The string before school:
-%
-FUNCTION {bst.school.pre}
-{ ", " } % (default)
-
-% The string after school:
-%
-FUNCTION {bst.school.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% institution
-
-% The string before institution:
-%
-FUNCTION {bst.institution.pre}
-{ ", " } % (default)
-
-% The string after institution:
-%
-FUNCTION {bst.institution.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% howpublished
-
-% The string before howpublished:
-%
-FUNCTION {bst.howpublished.pre}
-{ " " } % (default)
-
-% The string after howpublished:
-%
-FUNCTION {bst.howpublished.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% url
-
-% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed.
-FUNCTION {bst.show.url}
-{ #1 } % non-#0 -> Show url field (default)
-% { #0 } % #0 -> Not show url field.
-
-% The string before url:
-%
-FUNCTION {bst.url.pre}
-{ ", URL: \url{" } % (default)
-
-% The string after url:
-%
-FUNCTION {bst.url.post}
-{ "}" } % (default)
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Access
-
-% This setting is valid only if there are "access" field in bib
-% files. The value of access field indicates accessed date for URL.
-
-% The string before access.
-FUNCTION {bst.access.pre}
-{ ", accessed on " } % (default)
-
-% The string after access.
-FUNCTION {bst.access.post}
-{ "" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% DOI (digital object identifier)
-
-% This setting is valid only if there are "doi" field in bib files.
-
-% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed.
-FUNCTION {bst.show.doi}
-{ #1 } % non-#0 -> Show DOI field (default)
-% { #0 } % #0 -> Not show DOI field.
-
-% The string before DOI:
-%
-FUNCTION {bst.doi.pre}
-{ ", DOI: \href{http://dx.doi.org/" doi * "}{" * } % (default)
-
-% The string after DOI:
-%
-FUNCTION {bst.doi.post}
-{ "}" } % (default)
-
-% How to show URL and DOI fields when both fields exist.
-%
-% #0 -> Both fields are displayed
-% #1 -> Only URL field is displayed
-% #2 -> Only DOI field is displayed
-%
-FUNCTION {bst.url.doi}
-% { #0 } % (default) -> Both fields are displayed
-% { #1 } % -> Only URL field is displayed
-{ #2 } % -> Only DOI field is displayed
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Other functions:
-
-% The string before note.
-FUNCTION {bst.note.pre}
-{ ", " } % (default)
-
-% The string after note.
-FUNCTION {bst.note.post}
-{ "" } % (default)
-
-% The string that represents Technical report:
-%
-FUNCTION {bst.techrep}
-{ " Tech. Rep." } % (default)
-
-% The string that represents master thesis:
-%
-FUNCTION {bst.mthesis}
-{ " Master's thesis" } % (default)
-
-% The string that represents phd thesis:
-%
-FUNCTION {bst.phdthesis}
-{ " Ph.D. dissertation" } % (default)
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%% Functions for customization end here:
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-FUNCTION {bst.first}
-{ "1st" }
-
-FUNCTION {bst.second}
-{ "2nd" }
-
-FUNCTION {bst.third}
-{ "3rd" }
-
-FUNCTION {bst.fourth}
-{ "4th" }
-
-FUNCTION {bst.fifth}
-{ "5th" }
-
-FUNCTION {bst.st}
-{ "st" }
-
-FUNCTION {bst.nd}
-{ "nd" }
-
-FUNCTION {bst.rd}
-{ "rd" }
-
-FUNCTION {bst.th}
-{ "th" }
-
-%%%%% memo by Takeda
-
-% "a" 'b := indicates substituting string "a" for variable b.
-
-% Integer number #0, #1,...
-
-%%% Function definition:
-%
-% FUNCTION {name}
-% { 's :=
-%
-% }
-%
-% This is the definition of a function named "name". The function "name" is
-% used in the following way
-%
-% "foo" name
-% "foo" is an argument for the function "name".
-%
-% About the definition of a function with more than two arguments, see the
-% definition of "chop.word".
-
-%%% Declaration of variables:
-
-%% String global variables:
-STRINGS { s t tt }
-STRINGS { year.num }
-STRINGS { preone preten }
-STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author }
-STRINGS { hang }
-STRINGS { item.type }
-STRINGS { tempa tempb }
-
-%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
-INTEGERS { multiresult }
-INTEGERS { index }
-INTEGERS { len }
-INTEGERS { last.extra.num }
-INTEGERS { output.state before.all mid.sentence after.sentence after.block }
-INTEGERS { last.period.comma }
-INTEGERS { len1.aer len2.aer i.aer }
-
-%%% Definition of functions:
-FUNCTION {not}
-{ { #0 }
- { #1 }
- if$
-}
-
-FUNCTION {and}
-{ 'skip$
- { pop$ #0 }
- if$
-}
-
-FUNCTION {or}
-{ { pop$ #1 }
- 'skip$
- if$
-}
-
-%%% Initialize variables:
-FUNCTION {init.state.consts}
-{ #0 'before.all :=
- #1 'mid.sentence :=
- #2 'after.sentence :=
- #3 'after.block :=
-}
-
-%%% Remove comma and add period:
-%
-%%%
-FUNCTION {add.period.x}
-{ duplicate$
- #-1 #1 substring$ "," =
- { #-2 global.max$ substring$ "." * }
- { duplicate$
- #-1 #2 substring$ ". " =
- { #-3 global.max$ substring$ "." * }
- { duplicate$
- #-1 #2 substring$ ", " =
- { #-3 global.max$ substring$ "." * }
- { duplicate$
- #-1 #2 substring$ ",'" =
- { #-3 global.max$ substring$ ".'" * }
- { duplicate$
- #-1 #2 substring$ ".'" =
- { #-3 global.max$ substring$ ".'" * }
- { duplicate$
- #-1 #2 substring$ ".~" =
- { #-3 global.max$ substring$ ".~" * }
- { duplicate$
- #-1 #2 substring$ ",~" =
- { #-3 global.max$ substring$ ".~" * }
- { duplicate$
- #-1 #3 substring$ ",''" =
- { #-4 global.max$ substring$ ".''" * }
- { duplicate$
- #-1 #3 substring$ ".''" =
- { #-4 global.max$ substring$ ".''" * }
- { add.period$ }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
-}
-
-FUNCTION {output.nonnull}
-{ 's :=
- % mid.sentence
- output.state mid.sentence =
- { ", " * write$ }
- % not mid.sentence
- { output.state after.block =
- % after.block
- { add.period.x " " * write$ }
- % before.all
- { output.state before.all =
- 'write$
- { add.period.x " " * write$ }
- if$
- }
- if$
- % not mid.sentence, set to mid.sentence
- mid.sentence 'output.state :=
- }
- if$
- s
-}
-
-%%% If the last character is period or comma, set non-zero to
-%%% last.period.comma.
-FUNCTION {period.comma.p}
-{ duplicate$ 't :=
- t #-1 #1 substring$ "." =
- t #-1 #1 substring$ "," = or
- t #-1 #1 substring$ ":" = or
- t #-1 #2 substring$ ".'" = or
- t #-1 #2 substring$ ",'" = or
- t #-1 #3 substring$ ".''" = or
- t #-1 #3 substring$ ",''" = or
- t #-1 #2 substring$ ".~" = or
- t #-1 #2 substring$ ",~" = or
- { #1 'last.period.comma := }
- { #0 'last.period.comma := }
- if$
-}
-
-%%% remove unnecessary comma.
-FUNCTION {remove.pre.comma}
-{ 's :=
- s empty$
- { "" }
- { s #1 #1 substring$ "," =
- { s #2 global.max$ substring$ }
- { s #1 #1 substring$ "." =
- { s #2 global.max$ substring$ }
- 's
- if$
- }
- if$
- }
- if$
-}
-
-%%% output.nonnull.nocomma is the same as output.nonnull except that it does
-%%% not add commas even in mid.sentence.
-FUNCTION {output.nonnull.nocomma}
-{ 's :=
- output.state mid.sentence =
- % mid.sentence
- { period.comma.p "" * write$ }
-
- % not mid.sentence
- { output.state after.block =
- % after.block
- { add.period.x " " * write$ }
- % before.all
- { output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
- }
- if$
- mid.sentence 'output.state :=
- }
- if$
- last.period.comma #0 =
- { s }
- { s remove.pre.comma }
- if$
-}
-
-% Not used in the current econ.bst.
-% FUNCTION {output}
-% { duplicate$ empty$
-% 'pop$
-% 'output.nonnull
-% if$
-% }
-
-FUNCTION {output.nocomma}
-{ duplicate$ empty$
- 'pop$
- 'output.nonnull.nocomma
- if$
-}
-
-% Not used in the current econ.bst.
-% FUNCTION {output.check}
-% { 't :=
-% duplicate$ empty$
-% { pop$ "empty " t * " in " * cite$ * warning$ }
-% 'output.nonnull
-% if$
-% }
-
-FUNCTION {output.check.nocomma}
-{ 't :=
- duplicate$ empty$
- { pop$ "empty " t * " in " * cite$ * warning$ }
- 'output.nonnull.nocomma
- if$
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% Format in bbl file:
-
-% \harvarditem[Brezis et~al.]{Brezis, Krugman and
-% Tsiddon}{1993}{brezis93:_leapf_inter_compet}
-% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in
-% International Competition: A Theory of Cycles in National Technological
-% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp.
-% 1211--1219.
-
-% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ...
-
-%%% Add period and newline.
-FUNCTION {fin.entry}
-{ add.period.x
- write$
- newline$
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block =
- 'skip$
- { output.state before.all =
- 'skip$
- { after.sentence 'output.state := }
- if$
- }
- if$
-}
-
-FUNCTION {new.block.check}
-{ empty$
- 'skip$
- 'new.block
- if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
- { pop$ "" }
- 'skip$
- if$
-}
-
-%%% booktitle
-FUNCTION {format.btitle}
-{ booktitle empty$
- { "" }
- { bst.btitle.pre booktitle * bst.btitle.post * }
- if$
-}
-
-%%% journal
-FUNCTION {format.journal}
-{ journal empty$
- { "" }
- { bst.journal.pre journal * bst.journal.post * }
- if$
-}
-
-%%% title for book
-FUNCTION {format.book}
-{ title empty$
- { "" }
- { bst.book.pre title * bst.book.post * }
- if$
-}
-
-FUNCTION {format.url}
-{ url empty$
- { "" }
- { type$ "online" = bst.show.url or
- { bst.url.pre url * bst.url.post *
- access empty$
- { "" * }
- { bst.access.pre * access * bst.access.post * }
- if$
- }
- { "" }
- if$
- }
- if$
-}
-
-FUNCTION {format.doi}
-{ doi empty$ bst.show.doi not or
- { "" }
- { bst.doi.pre doi * bst.doi.post * }
- if$
-}
-
-FUNCTION {format.url.doi}
-{ url empty$
- { format.doi }
- { doi empty$
- { format.url }
- { bst.url.doi #0 =
- { format.url output.nocomma
- format.doi }
- { bst.url.doi #1 =
- { format.url }
- { format.doi }
- if$
- }
- if$
- }
- if$
- }
- if$
-}
-
-%%% and others
-FUNCTION {bst.and.others.output}
-{ nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.others.nameorder }
- { bst.and.others }
- if$
-}
-
-%%% author and editor
-
-%%% name
-FUNCTION {format.names}
-{ 's :=
- % insert 1 to nameptr.
- #1 'nameptr :=
- % Set the number of authors to numnames.
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- % Repeat if namesleft > 0
- { namesleft #0 > }
- { nameptr #1 =
- % First author
- { bst.author.name #0 =
- bst.author.name #1 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
- % The second or later authors
- { bst.author.name #0 =
- bst.author.name #2 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
- if$
-
- nameptr #1 >
- % The second or later authors
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
-% remove successive periods (commas) from author
-FUNCTION {remove.ss.period.auth}
-{ 's :=
- s format.names 'tempa :=
- bst.author.post 'tempb :=
- tempb #1 #1 substring$ "}" =
- { tempa tempb * }
- { tempa #-1 #1 substring$ tempb #1 #1 substring$ =
- { tempa tempb #2 global.max$ substring$ * }
- { tempa tempb * }
- if$
- }
- if$
-}
-
-% <prev name list> <new name list> compare.names <modified name list>
-FUNCTION {compare.names.aer}
-{ 's :=
- 'tempa :=
-
-% "current.author = " s * "\\" * write$ newline$
-% "prev.author = " tempa * "\\" * write$ newline$
-
- tempa num.names$ 'len1.aer := % len1 = the number of previous authors
- s num.names$ 'len2.aer := % len2 = the number of current authors
-
-% len1.aer := min(len1.aer,len2.aer)
-% len1 -> min{ the number of previous authors, the number of current authors }
- len1.aer len2.aer >
- { len2.aer 'len1.aer := }
- { }
- if$
-
-% start with an empty string, then while the components are the same
-% add "\bysame"
- ""
- #1 'i.aer :=
-
- { i.aer len1.aer > not }
- { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$
- s i.aer "{ff }{vv }{ll}{ jj}" format.name$
- =
- { #1 i.aer <
- { " and " * } % \bysame で省略する著者の前につく and
- { }
- if$
- "\bysame{}" *
- i.aer #1 + 'i.aer := }
- { #-1 'len1.aer := }
- if$
- }
- while$
-
-% add the rest of the second string
- { i.aer len2.aer > not }
- { #1 i.aer <
- { " and " * }
- { }
- if$
- s i.aer "{ff }{vv }{ll}{ jj}" format.name$ *
- i.aer #1 + 'i.aer :=
- }
- while$
-}
-
-%%% author
-FUNCTION {format.authors}
-{ author empty$
- { "" }
- { bst.use.bysame #2 =
- { prev.author.aer author compare.names.aer 's :=
- author 'prev.author.aer := }
- { author 's := }
- if$
- extra.label.bysame "bysame" =
- { "\bysame " }
- { bst.author.pre s remove.ss.period.auth * }
- if$
- }
- if$
-}
-
-%%% editor
-FUNCTION {format.editors}
-{ editor empty$
- { "" }
- { bst.use.bysame #2 =
- { prev.author.aer editor compare.names.aer 's :=
- editor 'prev.author.aer := }
- { editor 's := }
- if$
- extra.label.bysame "bysame" =
- { "\bysame " }
- { bst.author.pre s remove.ss.period.auth * }
- if$
- s num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
- }
- if$
-}
-
-FUNCTION {format.authors.alt}
-{ author empty$
- { "" }
- { extra.label.bysame "bysame" =
- {"\bysame "}
- { bst.author.pre author remove.ss.period.auth * }
- if$
- }
- if$
-}
-
-%%% editor
-FUNCTION {format.editors.alt}
-{ editor empty$
- { "" }
- { extra.label.bysame "bysame" =
- { "\bysame " }
- { bst.author.pre editor remove.ss.period.auth * }
- if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
- }
- if$
-}
-
-%%% format.in.ed.booktitle
-FUNCTION {format.editors.x}
-{ editor empty$
- { "" }
- { bst.editor.btitle.order #0 =
- { "" }
- { editor num.names$ #1 >
- { bst.editors " by " * }
- { bst.editor " by " * }
- if$
- }
- if$
- editor format.names *
- bst.editor.btitle.order #0 =
- { editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
- }
- { "" * }
- if$
- }
- if$
-}
-
-%%% Remove commas in the cases like "?." and "?,".
-FUNCTION {remove.irrelevant.period.comma}
-{ 's :=
- s empty$
- { "" }
- { s #-1 #3 substring$ "?,'" =
- s #-1 #3 substring$ "?.'" = or
- { s #-3 global.max$ substring$ "'" * }
- { s #-1 #4 substring$ "?,''" =
- s #-1 #4 substring$ "?.''" = or
- { s #-4 global.max$ substring$ "''" * }
- { s #-1 #2 substring$ "?," =
- s #-1 #2 substring$ "?." = or
- { s #-2 global.max$ substring$ "" * }
- { s #-1 #3 substring$ "?,~" =
- s #-1 #3 substring$ "?.~" = or
- { s #-4 global.max$ substring$ "?~" * }
- 's
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
-}
-
-%%% title
-FUNCTION {format.title.sub}
-{ bst.title.lower.case #0 =
- { bst.title.pre title * bst.title.post * }
- { bst.title.pre title "t" change.case$ * bst.title.post * }
- if$
-}
-
-%%% title
-FUNCTION {format.title}
-{ title empty$
- bst.hide.title #0 = not or
- { "" }
- { format.title.sub remove.irrelevant.period.comma }
- if$
-}
-
-%%% title for misc.
-FUNCTION {format.misc.title}
-{ title empty$
- { "" }
- { bst.title.pre title * bst.title.post * }
- if$
-}
-
-% Convert "-" to "--" (for pages field)
-FUNCTION {n.dashify}
-{ 't :=
- ""
- %% while$
- { 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$
-}
-
-%%% year
-FUNCTION {format.year}
-{ year empty$
- { "there's no year in " cite$ * warning$
- ", " }
- { type$ "article" =
- { bst.year.pre year * extra.label * bst.year.post * }
- { bst.year.na.pre year * extra.label * bst.year.na.post * }
- if$
- }
- if$
-}
-
-%%% page for book
-FUNCTION {format.book.pages}
-{ pages empty$
- { "" }
- { bst.pages.pre pages * bst.pages.post * }
- if$
-}
-
-%%% Attach tie for the string with two or less characters.
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
- if$
- swap$ * *
-}
-
-FUNCTION {either.or.check}
-{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
-}
-
-%%% volume for book
-FUNCTION {format.bvolume}
-{ volume empty$
- { "" }
- { bst.volume.pre volume * bst.volume.post *
- series empty$
- 'skip$
- %% If there is series field
- { " of " * series * bst.series.post * }
- if$
-% "volume and number" number either.or.check
- }
- if$
-}
-
-%%% series
-FUNCTION {output.series}
-{ series empty$
- { "" }
- { bst.series.pre series * bst.series.post * }
- if$
-}
-
-%%% number and series
-FUNCTION {format.number.series}
-{ volume empty$
- { number empty$
- bst.hide.month #0 = not or
- % number is empty
- { series empty$
- { "" }
- % series is not empty.
- { output.series }
- if$
- }
- % number is not empty$
- { series empty$
- { bst.number.pre number * bst.number.post * }
- % series is not empty.
- { bst.in bst.series.pre * series * bst.series.post *
- bst.number.pre * number * bst.number.post * }
- if$
- }
- if$
- }
- { "" }
- if$
-}
-
-%%% Number or not.
-FUNCTION {is.num}
-{ chr.to.int$
- duplicate$ "0" chr.to.int$ < not
- swap$ "9" chr.to.int$ > not and
-}
-
-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$
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% edition
-
-% Convert edition to 1st, 2nd, 3rd, 4th etc
-FUNCTION {eng.ord}
-{ duplicate$ "1" swap$ *
- #-2 #1 substring$ "1" =
- { bst.th * }
- { duplicate$ #-1 #1 substring$
- duplicate$ "1" =
- { pop$ bst.st * }
- { duplicate$ "2" =
- { pop$ bst.nd * }
- { "3" =
- { bst.rd * }
- { bst.th * }
- if$
- }
- if$
- }
- if$
- }
- if$
-}
-
-% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst)
-FUNCTION {convert.edition}
-{ edition extract.num "l" change.case$ 's :=
- s "first" = s "1" = or
- { bst.first }
- { s "second" = s "2" = or
- { bst.second }
- { s "third" = s "3" = or
- { bst.third }
- { s "fourth" = s "4" = or
- { bst.fourth }
- { s "fifth" = s "5" = or
- { bst.fifth }
- { s #1 #1 substring$ is.num
- { s eng.ord }
- { edition }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
-}
-
-%%% edition
-FUNCTION {format.edition}
-{ edition empty$
- { "" }
- { output.state mid.sentence =
- { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * }
- { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * }
- if$
- }
- if$
-}
-
-%%% month
-FUNCTION {format.month}
-{ month empty$
- bst.hide.month #0 = not or
- { "" }
- { bst.month.pre month * bst.month.post * }
- if$
-}
-
-%%% year and month
-FUNCTION {format.date}
-{ format.month format.year *
-}
-
-%%% Is multiple pages like 1-100?
-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
-}
-
-%%% pages
-FUNCTION {format.pages}
-{ pages empty$
- { "" }
- { pages multi.page.check
- { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post }
- { bst.page.pre pages tie.or.space.connect * bst.page.post }
- if$
- }
- if$
-}
-
-%%% number
-FUNCTION {format.number}
-{ number empty$
- bst.hide.number #0 = not or
- { "" }
- { bst.number.pre number * bst.number.post * }
- if$
-}
-
-%%% volume
-FUNCTION {format.volume}
-{ volume empty$
- 'skip$
- { bst.volume.pre volume * bst.volume.post *
- bst.year.position #3 =
- { format.year * }
- 'skip$
- if$
- }
- if$
-}
-
-%%% number, page
-FUNCTION {format.number.pages}
-{ number empty$
- { format.pages }
- { format.number format.pages * }
- if$
-}
-
-%%% volume, page
-FUNCTION {format.volume.pages}
-{ volume empty$
- { format.pages }
- { format.volume format.pages * }
- if$
-}
-
-%%% volume, number, page
-FUNCTION {format.volume.number.pages}
-{ volume empty$
- { number empty$
- { format.pages }
- { format.number format.pages * }
- if$
- }
- { number empty$
- { format.volume format.pages * }
- { format.volume format.number * format.pages * }
- if$
- }
- if$
-}
-
-% volume, number, page
-FUNCTION {format.vol.num.pages}
-{ volume empty$
- %% volume is empty.
- { number empty$
- %% number is empty.
- { pages empty$
- % warning
- { "there is no volume, number, and pages in " cite$ * warning$ "" }
- { "" format.pages * }
- if$
- }
- %% number is not empty.
- % warning
- { "there's a number but no volume in " cite$ * warning$
- format.number.pages }
- if$
- }
- %% volume is not empty.
- { number empty$
- %% number is empty.
- { format.volume.pages }
- %% number is not empty.
- { format.volume.number.pages }
- if$
- }
- if$
-}
-
-%%% chapter
-FUNCTION {format.chapter}
-{ chapter empty$
- { "" }
- { type empty$
- { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post }
- { ", " * type " " * chapter * }
- if$
- }
- if$
-}
-
-%%% chapter, pages
-FUNCTION {format.chapter.pages}
-{ chapter empty$
- { pages empty$
- { "" }
- { "" format.pages * }
- if$
- }
- { pages empty$
- { "" format.chapter * }
- { "" format.chapter * format.pages * }
- if$
- }
- if$
-}
-
-%%% editor and booktitle
-FUNCTION {format.in.ed.booktitle}
-{ booktitle empty$
- { "" }
- { editor empty$
- { bst.in format.btitle * }
- { bst.editor.btitle.order #0 =
- { bst.in format.editors.x * " " * format.btitle * }
- { bst.in format.btitle * " " * format.editors.x * }
- if$
- }
- if$
- }
- if$
-}
-
-%%% howpublished
-FUNCTION {format.howpublished}
-{ howpublished empty$
- { "" }
- { bst.howpublished.pre howpublished * bst.howpublished.post * }
- if$
-}
-
-%%% address
-FUNCTION {format.address}
-{ address empty$
- { "" }
- { bst.address.pre address * bst.address.post * }
- if$
-}
-
-%%% publisher
-FUNCTION {format.publisher}
-{ publisher empty$
- { "" }
- { bst.publisher.pre publisher * bst.publisher.post * }
- if$
-}
-
-%%% organization
-FUNCTION {format.organization}
-{ organization empty$
- { "" }
- { bst.organization.pre organization * bst.organization.post * }
- if$
-}
-
-%% publisher and address
-FUNCTION {output.publisher.address}
-{ address empty$
- { format.publisher "publisher" output.check.nocomma }
- { bst.address.position #0 =
- { format.address output.nocomma
- format.publisher "publisher" output.check.nocomma }
- { format.publisher "publisher" output.check.nocomma
- format.address output.nocomma }
- if$
- }
- if$
-}
-
-%% address, organization, publisher
-FUNCTION {output.address.organization.publisher}
-{ address empty$
- %% address is empty
- { organization empty$
- %% organization is empty
- { publisher empty$
- 'skip$
- { format.publisher "publisher" output.check.nocomma }
- if$
- }
- %% organization is not empty
- { publisher empty$
- { format.organization "organization" output.check.nocomma }
- { format.organization "organization" output.check.nocomma
- format.publisher "publisher" output.check.nocomma }
- if$
- }
- if$
- }
- %% address is not empty
- { organization empty$
- %% organization is empty
- { publisher empty$
- %% publisher is empty
- { format.address output.nocomma }
- %% publisher is not empty
- { bst.address.position #0 =
- { format.address output.nocomma
- format.publisher "publisher" output.check.nocomma }
- { format.publisher "publisher" output.check.nocomma
- format.address output.nocomma }
- if$
- }
- if$
- }
- %% organization is not empty
- { publisher empty$
- %% publisher is empty
- { format.organization "organization" output.check.nocomma
- format.address output.nocomma }
- %% publisher is not empty
- { format.organization "organization" output.check.nocomma
- bst.address.position #0 =
- { format.address output.nocomma
- format.publisher "publisher" output.check.nocomma }
- { format.publisher "publisher" output.check.nocomma
- format.address output.nocomma }
- if$
- }
- if$
- }
- if$
- }
- if$
-}
-
-%%% misc
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- key empty$ not and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
-FUNCTION {format.thesis.type}
-{ type empty$
- 'skip$
- { pop$ " " type * }
- if$
-}
-
-FUNCTION {format.tr.number}
-{ type empty$
- { "Technical Report" }
- { " " type * }
- if$
- number empty$
- { "t" change.case$ }
- { number tie.or.space.connect }
- if$
-}
-
-%%% phdthesis
-FUNCTION {format.phd}
-{ bst.phdthesis }
-
-%%% mastersthesis
-FUNCTION {format.mthesis}
-{ bst.mthesis }
-
-%%% school
-FUNCTION {format.school}
-{ school empty$
- { "" }
- { bst.school.pre school * bst.school.post * }
- if$
-}
-
-%%% institution
-FUNCTION {format.institution}
-{ institution empty$
- { "" }
- { bst.institution.pre institution * bst.institution.post * }
- if$
-}
-
-%%% remove first ? characters.
-FUNCTION {chop.word}
-{ 's :=
- 'len :=
- s #1 len substring$ =
- { s len #1 + global.max$ substring$ }
- 's
- if$
-}
-
-FUNCTION {format.note}
-{ note empty$
- { "" }
- { bst.note.pre note * bst.note.post * }
- if$
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \havarditem
-
-FUNCTION {output.bibitem}
-{ newline$
- "\harvarditem[" write$
- alabel write$ % alabel <- abbreviated citation
- "]{" write$
- flabel write$ % flabel <- full citation
- "}{" write$
- cyear write$
- % cyear = year
- "}{" write$
- cite$ write$ % cite$ -> pusch keyword
- "}" write$
- % If number index is on
- bst.use.number.index #0 =
- 'skip$
- { index #1 + 'index :=
- "" 'preone :=
- "" 'preten :=
- bst.number.index.digit "1" =
- 'skip$
- { bst.number.index.digit "2" =
- { "\hskip0.5em" 'preone := }
- { bst.number.index.digit "3" =
- { "\hskip1em" 'preone :=
- "\hskip0.5em" 'preten := }
- 'skip$
- if$
- }
- if$
- }
- if$
- }
- if$
- newline$
- before.all 'output.state :=
- ""
- % number index
- bst.use.number.index #0 =
- 'skip$
- { index #10 <
- % Insert spaces according to digit of number index.
- { preone }
- { index #100 <
- { preten }
- { "" }
- if$
- }
- if$
- bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$
- }
- if$
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% article
-
-FUNCTION {article}
-{ output.bibitem
- format.authors "author" output.check.nocomma
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.title "title" output.check.nocomma
-
- format.journal "journal" output.check.nocomma
- bst.year.position #2 =
- { format.date output.nocomma }
- 'skip$
- if$
- format.vol.num.pages output.nocomma
-
- bst.year.position #1 =
- { format.date output.nocomma }
- 'skip$
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% book
-
-FUNCTION {book}
-{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check.nocomma }
- { format.authors output.nonnull.nocomma
- "author and editor" editor either.or.check
- }
- if$
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.book "title" output.check.nocomma
-
- format.bvolume output.nocomma
- format.number.series output.nocomma
- output.publisher.address
-
- format.edition output.nocomma
- format.book.pages output.nocomma
-
- bst.year.position #0 = not
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% booklet
-
-FUNCTION {booklet}
-{ output.bibitem
- format.authors output.nocomma
- format.year output.nocomma
- format.misc.title "title" output.check.nocomma
- format.howpublished output.nocomma
- format.address output.nocomma
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% inbook
-
-FUNCTION {inbook}
-{ output.bibitem
- author empty$
- { format.editors "author and editor" output.check.nocomma }
- { format.authors output.nonnull.nocomma
- "author and editor" editor either.or.check
- }
- if$
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
-% format.book remove.pre.comma "title" output.check.nocomma
- format.book "title" output.check.nocomma
- format.edition output.nocomma
-
- format.bvolume output.nocomma
- format.chapter.pages "chapter and pages" output.check.nocomma
- format.number.series output.nocomma
- output.publisher.address
-
- bst.year.position #0 = not
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% incollection
-
-FUNCTION {incollection}
-{ output.bibitem
- format.authors "author" output.check.nocomma
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.title "title" output.check.nocomma
-
- format.in.ed.booktitle "booktitle" output.check.nocomma
- format.bvolume output.nocomma
- output.address.organization.publisher
- format.edition output.nocomma
- format.chapter.pages output.nocomma
-
- bst.year.position #0 = not
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% inproceedings
-
-FUNCTION {inproceedings}
-{ output.bibitem
- format.authors "author" output.check.nocomma
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.title "title" output.check.nocomma
-
- format.in.ed.booktitle "booktitle" output.check.nocomma
- format.bvolume output.nocomma
- format.number.series output.nocomma
- format.pages output.nocomma
- output.address.organization.publisher
-
- bst.year.position #0 = not
- { format.date output.nocomma }
- { format.month output.nocomma }
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% conference
-
-FUNCTION {conference}
-{ inproceedings }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% manual
-FUNCTION {manual}
-{ output.bibitem
- author empty$
- { organization empty$
- 'skip$
- { organization output.nonnull.nocomma
- address output.nocomma
- }
- if$
- }
- { format.authors output.nonnull.nocomma }
- if$
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.book "title" output.check.nocomma
- author empty$
- { organization empty$
- { format.address new.block.check
- format.address output.nocomma
- }
- 'skip$
- if$
- }
- { output.address.organization.publisher }
- if$
- format.edition output.nocomma
-
- bst.year.position #0 = not
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mastersthesis
-
-FUNCTION {mastersthesis}
-{ output.bibitem
- format.authors "author" output.check.nocomma
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.title "title" output.check.nocomma
- format.mthesis format.thesis.type output.nonnull.nocomma
- format.school "school" output.check.nocomma
- format.address output.nocomma
-
- bst.year.position #0 = not
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% misc
-
-FUNCTION {misc}
-{ output.bibitem
- format.authors "author" output.check.nocomma
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.misc.title output.nocomma
- format.howpublished output.nocomma
-
- bst.year.position #0 = not
- { format.date output.nocomma }
- { format.month output.nocomma }
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
- empty.misc.check
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Online
-
-FUNCTION {online}
-{ output.bibitem
- format.authors "author" output.check.nocomma
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.misc.title output.nocomma
- format.howpublished output.nocomma
-
- bst.year.position #0 = not
- { format.date output.nocomma }
- { format.month output.nocomma }
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
- empty.misc.check
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% phdthesis
-
-FUNCTION {phdthesis}
-{ output.bibitem
- format.authors "author" output.check.nocomma
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.book "title" output.check.nocomma
- format.phd
- format.thesis.type output.nonnull.nocomma
- format.school "school" output.check.nocomma
- address empty$
- 'skip$
- { format.address output.nocomma }
- if$
-
- bst.year.position #0 = not
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% proceedings
-
-FUNCTION {proceedings}
-{ output.bibitem
- editor empty$
- { organization output.nocomma }
- { format.editors output.nonnull.nocomma }
- if$
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.btitle remove.pre.comma "title" output.check.nocomma
- format.bvolume output.nocomma
- format.number.series output.nocomma
- output.address.organization.publisher
-
- bst.year.position #0 = not
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
-
- format.url.doi output.nocomma
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% techreport
-
-FUNCTION {techreport}
-{ output.bibitem
- format.authors "author" output.check.nocomma
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.title "title" output.check.nocomma
- format.tr.number output.nonnull.nocomma
- format.institution "institution" output.check.nocomma
- format.address output.nocomma
-
- bst.year.position #0 = not
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
-
- format.note output.nocomma
- fin.entry
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% unpublished
-
-FUNCTION {unpublished}
-{ output.bibitem
- format.authors "author" output.check.nocomma
- bst.year.position #0 =
- { format.year "year" output.check.nocomma }
- 'skip$
- if$
- format.title "title" output.check.nocomma
-
- bst.year.position #0 = not
- { format.date remove.pre.comma output.nocomma }
- { month empty$
- 'skip$
- { format.month remove.pre.comma output.nocomma }
- if$
- }
- if$
-
- format.url.doi output.nocomma
-
- format.note "note" output.check.nocomma
- fin.entry
-}
-
-FUNCTION {default.type}
-{ misc }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Alias for month names:
-
-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"}
-
-%%% Read entries:
-READ
-
-%%% Variable for remembering the order of citation.
-INTEGERS { order.num }
-FUNCTION {initialize.order.num}
-{
- #1 'order.num :=
-}
-%%% Initialize a variables
-EXECUTE {initialize.order.num}
-
-%%% Variable for remembering the order of citation.
-FUNCTION {set.order.cited}
-{
- order.num 'order.cited :=
- #1 order.num + 'order.num :=
-}
-%%% Iterate for all entries:
-ITERATE {set.order.cited}
-
-%%% check the value of nameorder field.
-FUNCTION {set.nameorder}
-{ nameorder empty$
- { "" 'nameorder.temp := }
- { nameorder 'nameorder.temp := }
- if$
-}
-%%% Iterate for all entries:
-ITERATE {set.nameorder}
-
-%%% Remove symbols and convert to lowercase.
-FUNCTION {sortify}
-{ purify$ "l" change.case$ }
-
-%%% names for sorting
-FUNCTION {sort.format.names}
-{ 's :=
- #1 'nameptr :=
- ""
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { nameptr #1 >
- { ", " * }
- 'skip$
- if$
- s nameptr "{ll}{ f}{ j}" format.name$ 't :=
- nameptr numnames = t "others" = and
- { bst.and.others.output *}
- { t sortify * }
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
-FUNCTION {sort.format.names.abb}
-{ 's :=
- s num.names$ 'numnames :=
- numnames bst.and.others.num <
- { s sort.format.names }
- { s #1 "{ll}{ f}{ j}" format.name$ " zz " * }
- if$
-}
-
-%%% Label for full author name.
-FUNCTION {format.lab.names.full}
-{ 's :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr "{vv~}{ll}" format.name$ 't :=
- nameptr #1 >
- { namesleft #1 >
- { nameorder.temp "random" = bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { ", " * t * }
- if$
- }
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 >
- { nameorder.temp "random" = bst.use.nameorder #0 = not and
- { bst.cite.and.nameorder * t * }
- { bst.cite.ands * t * }
- if$
- }
- { nameorder.temp "random" = bst.use.nameorder #0 = not and
- { bst.cite.and.nameorder * t * }
- { bst.cite.and * t * }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
- numnames #1 > #1 #2 = and {", eds" *} {} if$
- numnames #1 = #1 #2 = and {", ed" *} {} if$
-}
-
-%%% laberl for abbreviated author name.
-FUNCTION {format.lab.names.abb}
-{ 's :=
- s num.names$ 'numnames :=
- numnames bst.and.others.num <
- % if the number of authors is less than bst.and.others.num, full name.
- { s format.lab.names.full }
- % if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
- if$
-}
-
-%%% abbreviated author
-FUNCTION {author.key.label.abb}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { author format.lab.names.abb }
- if$
-}
-
-%%% full author
-FUNCTION {author.key.label.full}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { author format.lab.names.full }
- if$
-}
-
-FUNCTION {format.names.full.wo.and}
-{ 's :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr "{ll}{, ff}{, jj}" format.name$ 't :=
- nameptr #1 >
- { namesleft #1 >
- { " " * t * }
- { t "others" =
- { " " * }
- { numnames #2 >
- { " " * t * }
- { " " * t * }
- if$
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
-FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { author format.names.full.wo.and }
- if$
-}
-
-FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { editor format.names.full.wo.and }
- if$
- }
- { author format.names.full.wo.and }
- if$
-}
-
-FUNCTION {editor.key.organization.key.full.wo.and}
-{ 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.names.full.wo.and }
- if$
-}
-
-FUNCTION {author.key.organization.key.full.wo.and}
-{ 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.names.full.wo.and }
- if$
-}
-
-%%% abbreviated author
-FUNCTION {author.editor.key.label.abb}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { editor format.lab.names.abb }
- if$
- }
- { author format.lab.names.abb }
- if$
-}
-
-%%% full author
-FUNCTION {author.editor.key.label.full}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
- if$
- }
- { editor format.lab.names.full }
- if$
- }
- { author format.lab.names.full }
- if$
-}
-
-FUNCTION {author.key.organization.label.full}
-{ 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.full }
- if$
-}
-
-FUNCTION {author.key.organization.label.abb}
-{ 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.abb }
- if$
-}
-
-FUNCTION {editor.key.organization.label.full}
-{ 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.full }
- if$
-}
-
-FUNCTION {editor.key.organization.label.abb}
-{ 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.abb }
- if$
-}
-
-%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0
-FUNCTION {reverse.num}
-{ 's :=
- s "1" =
- { "8" 'year.num := }
- { s "2" =
- { "7" 'year.num := }
- { s "3" =
- { "6" 'year.num := }
- { s "4" =
- { "5" 'year.num := }
- { s "5" =
- { "4" 'year.num := }
- { s "6" =
- { "3" 'year.num := }
- { s "7" =
- { "2" 'year.num := }
- { s "8" =
- { "1" 'year.num := }
- { s "9" =
- { "0" 'year.num := }
- { s "0" =
- { "9" 'year.num := }
- { "9" 'year.num := }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- year.num
-}
-
-%%% Convert year (large number -> small number)
-FUNCTION {convert.year}
-{ 't :=
- bst.reverse.year #0 =
- { t 'tt := }
- { t #1 #1 substring$ reverse.num
- t #2 #1 substring$ reverse.num *
- t #3 #1 substring$ reverse.num *
- t #4 #1 substring$ reverse.num * 'tt := }
- if$
- tt
-}
-
-%%% cyear
-FUNCTION {calc.cyear}
-{ type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.key.full.wo.and
- { type$ "proceedings" =
- 'editor.key.organization.key.full.wo.and
- { type$ "manual" =
- 'author.key.organization.key.full.wo.and
- 'author.key.full.wo.and
- if$
- }
- if$
- }
- if$
- duplicate$
- year empty$
- { "2199" 'cyear := }
- { year 'cyear := }
- if$
- year empty$
- { " " "2199" convert.year * field.or.null * }
- { " " year convert.year * field.or.null * }
- if$
- sortify 'sort.label :=
- % For debug
- econ.debug #0 = not
- { "sort.label = ``\texttt{" write$
- sort.label write$
- "}''\\" write$
- newline$
- }
- 'skip$
- if$
- pop$
-}
-
-FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
- if$
- }
- { author 's := }
- if$
- s sort.format.names.abb 't :=
- year empty$
- { t sortify " " * "2199" convert.year * 'sort.label.abb := }
- { t sortify " " * year convert.year * 'sort.label.abb := }
- if$
- econ.debug #0 = not
- { "sort.label.abb = ``\texttt{" write$
- sort.label.abb write$
- "}''\\" write$
- newline$
- }
- 'skip$
- if$
-}
-
-%%% flabel
-FUNCTION {calc.flabel}
-{ type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.key.label.full
- { type$ "proceedings" =
- 'editor.key.organization.label.full
- { type$ "manual" =
- 'author.key.organization.label.full
- 'author.key.label.full
- if$
- }
- if$
- }
- if$
- 'flabel :=
- % For debug
- econ.debug #0 = not
- { "flabel = ``\texttt{" write$
- flabel write$
- "}''\\" write$
- newline$
- }
- 'skip$
- if$
-}
-
-%%% alabel
-FUNCTION {calc.alabel}
-{ type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.key.label.abb
- { type$ "proceedings" =
- 'editor.key.organization.label.abb
- { type$ "manual" =
- 'author.key.organization.label.abb
- 'author.key.label.abb
- if$
- }
- if$
- }
- if$
- 'alabel :=
- % For debug
- econ.debug #0 = not
- { "alabel = ``\texttt{" write$
- alabel write$
- "}''\\" write$
- newline$
- }
- 'skip$
- if$
-}
-
-%%% title for sorting
-FUNCTION {sort.format.title}
-{ 't :=
- "A " #2
- "An " #3
- "The " #4 t chop.word
- chop.word
- chop.word
- sortify
- #1 global.max$ substring$
-}
-
-%%% author for sorting
-FUNCTION {author.sort}
-{ author empty$
- { key empty$
- { "to sort, need author or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { author sort.format.names }
- if$
-}
-
-%%% editor for sorting
-FUNCTION {author.editor.sort}
-{ author empty$
- { editor empty$
- { key empty$
- { "to sort, need author, editor, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { editor sort.format.names }
- if$
- }
- { author sort.format.names }
- if$
-}
-
-FUNCTION {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$
-}
-
-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$
-}
-
-%%% 1,...,9 -> 001,...,009
-%%% 10,...,99 -> 010,...,099
-FUNCTION {add.zero.to.number}
-{ 's :=
- s text.length$ #1 =
- { "00" s * }
- { s text.length$ #2 =
- { "0" s * }
- { s }
- if$
- }
- if$
-}
-
-%% entry type
-FUNCTION {bst.sort.entry.type.order}
-{ 'item.type :=
- item.type "article" =
- { "01" }
- { item.type "book" =
- { "02" }
- { item.type "booklet" =
- { "03" }
- { item.type "comment" =
- { "04" }
- { item.type "conference" =
- { "05" }
- { item.type "inbook" =
- { "06" }
- { item.type "incollection" =
- { "07" }
- { item.type "inproceedings" =
- { "08" }
- { item.type "manual" =
- { "09" }
- { item.type "masterthesis" =
- { "10" }
- { item.type "misc" =
- { "11" }
- { item.type "phdthesis" =
- { "12" }
- { item.type "proceedings" =
- { "13" }
- { item.type "techreport" =
- { "14" }
- { item.type "unpublished" =
- { "15" }
- { "16" }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
-}
-
-%%% Create sort.key$: absorder -> author -> year -> order -> month -> title.
-FUNCTION {presort.one}
-{
- bst.no.sort #0 = not
- { order.cited int.to.str$ add.zero.to.number " " * }
- { "" }
- if$
- bst.sort.year #0 = not
- %% Use year field as the primary sorting key.
- { year convert.year * }
- 'skip$
- if$
- bst.sort.entry.type #0 = not
- { type$ bst.sort.entry.type.order * " " * }
- 'skip$
- if$
- absorder empty$
- { "/// " * }
- { bst.notuse.absorder.field #0 =
- { absorder "999" =
- { "zzz " * }
- { absorder add.zero.to.number "000" =
- { "/// " * }
- { absorder add.zero.to.number * " " * }
- if$
- }
- if$
- }
- { "/// " * }
- if$
- }
- if$
- " " *
- sort.label.abb *
- " " *
- type$ "book" = type$ "inbook" = or
- 'author.editor.sort
- { type$ "proceedings" =
- 'editor.organization.sort
- { type$ "manual" =
- 'author.organization.sort
- 'author.sort
- if$
- }
- if$
- }
- if$
- * " " *
- " "
- order empty$
- { "/// " * }
- { bst.notuse.order.field #0 =
- { order "999" =
- { "zzz " * }
- { order add.zero.to.number "000" =
- { "/// " * }
- { order add.zero.to.number * " " * }
- if$
- }
- if$
- }
- { "/// " * }
- if$
- }
- if$
- month empty$
- { * "/// " * }
- { month "999" =
- { * month add.zero.to.number * "zzz " * }
- { month add.zero.to.number "000" =
- { * month add.zero.to.number * "/// " * }
- { * month add.zero.to.number * " " * }
- if$
- }
- if$
- }
- if$
- title field.or.null sort.format.title
- *
- #1 entry.max$ substring$
- 'sort.key$ :=
- % For debug
- econ.debug #0 = not
- { "``\texttt{" write$
- sort.key$ write$
- "}''\\" write$
- newline$
- }
- 'skip$
- if$
-}
-
-FUNCTION {presort.two}
-{
- bst.no.sort #0 = not
- { order.cited int.to.str$ add.zero.to.number " " * }
- { "" }
- if$
- bst.sort.year #0 = not
- %% Use year field as the primary sorting key.
- { year convert.year * }
- 'skip$
- if$
- bst.sort.entry.type #0 = not
- { type$ bst.sort.entry.type.order * " " * }
- 'skip$
- if$
- absorder empty$
- { "/// " * }
- { bst.notuse.absorder.field #0 =
- { absorder "999" =
- { "zzz " * }
- { absorder add.zero.to.number "000" =
- { "/// " * }
- { absorder add.zero.to.number * " " * }
- if$
- }
- if$
- }
- { "/// " * }
- if$
- }
- if$
- " " * sort.label * " "
- order empty$
- { "/// " * }
- { bst.notuse.order.field #0 =
- { order "999" =
- { "zzz " * }
- { order add.zero.to.number "000" =
- { "/// " * }
- { order add.zero.to.number * " " * }
- if$
- }
- if$
- }
- { "/// " * }
- if$
- }
- if$
- month empty$
- { * "/// " * }
- { month "999" =
- { * month add.zero.to.number * "zzz " * }
- { month add.zero.to.number "000" =
- { * month add.zero.to.number * "/// " * }
- { * month add.zero.to.number * " " * }
- if$
- }
- if$
- }
- if$
- title field.or.null sort.format.title
- *
- #1 entry.max$ substring$
- 'sort.key$ :=
- % For debug
- econ.debug #0 = not
- { "``\texttt{" write$
- sort.key$ write$
- "}''\\" write$
- newline$
- }
- 'skip$
- if$
-}
-
-%%% Codes for debugging
-FUNCTION {calc.alabel.mess}
-{ econ.debug #0 = not
- { "\textbf{Iteration of calc.alabel: alabel = }\\" write$
- newline$ }
- 'skip$
- if$
-}
-FUNCTION {calc.flabel.mess}
-{ econ.debug #0 = not
- { "\textbf{Iteration of calc.flabel: flabel = }\\" write$
- newline$ }
- 'skip$
- if$
-}
-FUNCTION {presort.one.mess}
-{ econ.debug #0 = not
- { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$
- newline$ }
- 'skip$
- if$
-}
-
-FUNCTION {presort.two.mess}
-{ econ.debug #0 = not
- { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$
- newline$ }
- 'skip$
- if$
-}
-
-FUNCTION {calc.cyear.mess}
-{ econ.debug #0 = not
- { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$
- newline$ }
- 'skip$
- if$
-}
-
-FUNCTION {calc.sort.label.abb.mess}
-{ econ.debug #0 = not
- { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$
- newline$ }
- 'skip$
- if$
-}
-
-%%% alabel
-EXECUTE {calc.alabel.mess}
-ITERATE {calc.alabel}
-
-%%% flabel
-EXECUTE {calc.flabel.mess}
-ITERATE {calc.flabel}
-
-%%% cyear and sort.label
-EXECUTE {calc.cyear.mess}
-ITERATE {calc.cyear}
-
-%%%
-EXECUTE {calc.sort.label.abb.mess}
-ITERATE {calc.sort.label.abb}
-
-%%% Sorting by $sort.key (first time)
-%
-% Sorting is done in two times. This is the first time.
-%
-EXECUTE {presort.one.mess}
-ITERATE {presort.one}
-SORT
-
-FUNCTION {forward.pass}
-{ bst.use.bysame #0 = bst.use.bysame #2 = or
- % Not use \bysame
- { last.sort.label sort.label.abb =
- { 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.abb 'last.sort.label :=
- }
- if$
- }
- % Use \bysame
- { last.sort.label sort.label.abb =
- { 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.abb 'last.sort.label :=
- }
- if$
- author empty$
- { editor empty$
- { "" }
- 'format.editors.alt
- if$
- }
- 'format.authors.alt
- if$
- 'this.author :=
- % format.names 'this.author :=
- this.author prev.author =
- { "bysame" 'extra.label.bysame := }
- { this.author "" =
- { "abcxyz" }
- 'this.author
- if$
- 'prev.author :=
- }
- if$
- }
- if$
-}
-
-FUNCTION {reverse.pass}
-{ next.extra "b" =
- { "a" 'extra.label := }
- 'skip$
- if$
- extra.label empty$ not
- { cyear extra.label * }
- { cyear "" * }
- if$
- "" field.or.null *
- 'cyear :=
- extra.label 'next.extra :=
-}
-
-%%% \bysame
-ITERATE {forward.pass}
-
-REVERSE {reverse.pass}
-
-%%% Sorting by sort.key$ (second time)
-EXECUTE {presort.two.mess}
-ITERATE {presort.two}
-SORT
-
-FUNCTION {reset.prev.author}
-{ "xxyyzz" 'prev.author := }
-
-EXECUTE {reset.prev.author}
-
-FUNCTION {forward.pass.two}
-{ bst.use.bysame #1 =
- { author empty$
- { editor empty$
- { "" }
- 'format.editors.alt
- if$
- }
- 'format.authors.alt
- if$
- 'this.author :=
- this.author prev.author =
- { "bysame" 'extra.label.bysame := }
- { this.author "" =
- { "abcxyz" }
- 'this.author
- if$
- 'prev.author :=
- }
- if$
- }
- 'skip$
- if$
-}
-
-ITERATE {forward.pass.two}
-
-FUNCTION{punctuation}
-{
- "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
- "% This bbl file is created by econ.bst ver." econ.version * write$ newline$
- "% The latest econ.bst is available at" write$ newline$
- "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
-}
-
-EXECUTE {punctuation}
-
-FUNCTION {begin.bib}
-{
- preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- bst.use.bysame #0 =
- % Not use \bysame.
- 'skip$
- % Use \bysame.
- { "%%% Definition of \bysame" write$ newline$
- "\ifx\undefined\bysame" write$ newline$
- "\newcommand{\bysame}{" bst.bysame.definition * "}" *
- write$ newline$
- "\fi" write$ newline$ newline$ }
- if$
- %% When number index is attached to the beginning of each item.
- bst.use.number.index #0 =
- 'skip$
- { bst.number.index.digit "1" =
- % one digit.
- { bst.number.index.bibhang.one }
- { bst.number.index.digit "2" =
- % two digits.
- { bst.number.index.bibhang.ten }
- % three or more digits.
- { bst.number.index.bibhang.hund }
- if$
- }
- if$
- 'hang :=
- "%%% Redefinition of \bibhang" write$ newline$
- "\ifx\undefined\bibhang" write$ newline$
- "\relax" write$ newline$
- "\else" write$ newline$
- "\setlength{\bibhang}{"
- hang * "}" * write$ newline$
- "\fi" write$ newline$ newline$
- }
- if$
- "\begin{thebibliography}{xxx}" write$ newline$
-
- %% Initialize the variable `index'.
- #0 'index :=
-}
-
-FUNCTION {end.bib}
-{ newline$ "\end{thebibliography}" write$ newline$ }
-
-EXECUTE {begin.bib}
-
-EXECUTE {init.state.consts}
-
-ITERATE {call.type$}
-
-EXECUTE {end.bib}
-
-% --------------------
-% Local Variables:
-% fill-column: 78
-% mode: bst
-% End:
Deleted: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.pdf
===================================================================
(Binary files differ)
Deleted: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aer.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -1,55 +0,0 @@
-%#!pdflatex
-%#BIBTEX bibtex econ-aer
-
-%############################## Main #################################
-\documentclass[10pt]{article}
-
-%% Use natbib.sty
-\usepackage{natbib}
-\usepackage{mathpazo}
-\usepackage{url}
-\usepackage{graphicx}
-\usepackage{color}
-\definecolor{MyBrown}{rgb}{0.3,0,0}
-\definecolor{MyBlue}{rgb}{0,0,0.3}
-\definecolor{MyRed}{rgb}{0.4,0,0.1}
-\definecolor{MyGreen}{rgb}{0,0.4,0}
-\usepackage[bookmarks=true,%
-bookmarksnumbered=true,%
-colorlinks=true,%
-linkcolor=MyBlue,%
-citecolor=MyRed,%
-filecolor=MyBlue,%
-urlcolor=MyGreen%
-]{hyperref}
-
-\setlength{\topmargin}{-20pt}
-\setlength{\textheight}{648pt}
-\setlength{\oddsidemargin}{15pt}
-\setlength{\textwidth}{440pt}
-
-%#####################################################################
-%######################### Document Starts ###########################
-%#####################################################################
-\begin{document}
-
-This document uses ``\verb|econ-aer.bst|''. The style like AER ({\itshape American Economic Review}).
-
-\vspace{1em}
-
-\input{cited-part}
-\nocite{*}
-
-%% bst file:
-\bibliographystyle{econ-aer}
-\bibliography{../econ-example}
-
-\end{document}
-
-%#####################################################################
-%######################### Document Ends #############################
-%#####################################################################
-% --------------------
-% Local Variables:
-% fill-column: 80
-% End:
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.bst 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -4,8 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Time-stamp: <2018-12-07 18:49:15 st>
-% Version: 2.5
+% Version: 2.7
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -38,8 +37,11 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.5" }
+FUNCTION {econ.version} { "2.7" }
+% File name
+FUNCTION {econ.file} { "econ.bst" }
+
% Debug mode. Non-zero makes debug mode on.
FUNCTION {econ.debug}
{ #0 } % Debug mode off (default).
@@ -61,7 +63,7 @@
%% String entry variable
{ label cyear flabel alabel extra.label sort.label sort.label.abb
- extra.label.bysame nameorder.temp }
+ extra.label.bysame nameorder.temp jname }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -320,8 +322,13 @@
% { #3 } % If the number of authors is greater or equal to three (default).
{ #4 }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Strings used when abbreviating multiple-authors in citation part.
@@ -429,6 +436,15 @@
FUNCTION {bst.journal.post}
{ "}" } % (default)
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+{ #0 } % (default)
+% { #1 }
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% editor notation:
@@ -471,7 +487,7 @@
%
FUNCTION {bst.volume.pre}
{ ", \textbf{" }
-% { ", Vol. " } % (default)
+% { ", " } % (default)
% The string after volume:
%
@@ -492,14 +508,12 @@
% The string before number:
%
FUNCTION {bst.number.pre}
-{ " (" }
-% { ", No. " } % (default)
+{ " (" } % (default)
% The string after number:
%
FUNCTION {bst.number.post}
-{ ")" }
-% { "" } % (default)
+{ ")" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% in
@@ -516,12 +530,12 @@
% The string before page (multiple pages):
%
FUNCTION {bst.pages.pre}
-{ ", pp." } % (default)
+{ ", " } % (default)
% The string before page:
%
FUNCTION {bst.page.pre}
-{ ", p." } % (default)
+{ ", " } % (default)
% The string after page (multiple pages):
%
@@ -574,8 +588,8 @@
% You can choose the order of address and publisher by this function.
%
-% If #0, address -> publisher order (the default value).
-% If non-zero, publisher -> address order.
+% If #0, address -> publisher order (the default value).
+% If non-zero, publisher -> address order.
FUNCTION {bst.address.position}
{ #0 } % Address is placed before publisher (default)
@@ -670,7 +684,7 @@
% The string before url:
%
FUNCTION {bst.url.pre}
-{ ", URL: \url{" } % (default)
+{ ", \url{" } % (default)
% The string after url:
%
@@ -707,12 +721,12 @@
% The string before DOI:
%
FUNCTION {bst.doi.pre}
-{ ", DOI: \href{http://dx.doi.org/" doi * "}{" * } % (default)
+{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
% The string after DOI:
%
FUNCTION {bst.doi.post}
-{ "}" } % (default)
+{ "}}" } % (default)
% How to show URL and DOI fields when both fields exist.
%
@@ -721,9 +735,9 @@
% #2 -> Only DOI field is displayed
%
FUNCTION {bst.url.doi}
-% { #0 } % (default) -> Both fields are displayed
+% { #0 } % -> Both fields are displayed
% { #1 } % -> Only URL field is displayed
-{ #2 } % -> Only DOI field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Other functions:
@@ -739,7 +753,7 @@
% The string that represents Technical report:
%
FUNCTION {bst.techrep}
-{ " Tech. Rep." } % (default)
+{ "Technical Report" } % (default)
% The string that represents master thesis:
%
@@ -1082,11 +1096,37 @@
if$
}
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
%%% journal
FUNCTION {format.journal}
{ journal empty$
{ "" }
- { bst.journal.pre journal * bst.journal.post * }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
if$
}
@@ -1162,56 +1202,62 @@
numnames 'namesleft :=
% Repeat if namesleft > 0
{ namesleft #0 > }
- { nameptr #1 =
- % First author
- { bst.author.name #0 =
- bst.author.name #1 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
- % The second or later authors
- { bst.author.name #0 =
- bst.author.name #2 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
if$
-
+
nameptr #1 >
% The second or later authors
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
if$
}
if$
@@ -1938,7 +1984,7 @@
FUNCTION {format.tr.number}
{ type empty$
- { "Technical Report" }
+ { bst.techrep }
{ " " type * }
if$
number empty$
@@ -2175,9 +2221,9 @@
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- output.address.organization.publisher
format.edition output.nocomma
format.chapter.pages output.nocomma
+ output.address.organization.publisher
bst.year.position #0 = not
{ format.year "year" output.check.nocomma }
@@ -2422,6 +2468,8 @@
'skip$
if$
+ format.url.doi output.nocomma
+
format.note output.nocomma
fin.entry
}
@@ -2934,6 +2982,15 @@
}
if$
'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
% For debug
econ.debug #0 = not
{ "flabel = ``\texttt{" write$
@@ -3472,10 +3529,10 @@
FUNCTION{punctuation}
{
- "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
- "% This bbl file is created by econ.bst ver." econ.version * write$ newline$
- "% The latest econ.bst is available at" write$ newline$
- "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
}
EXECUTE {punctuation}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -6,7 +6,7 @@
%% Use natbib.sty
\usepackage{natbib}
-\usepackage{mathpazo}
+\usepackage{newtxtext,newtxmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{color}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -6,7 +6,7 @@
%% Use natbib.sty
\usepackage[longnamesfirst]{natbib}
-\usepackage{mathpazo}
+\usepackage{newtxtext,newtxmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{color}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -4,8 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Time-stamp: <2018-12-07 18:48:59 st>
-% Version: 2.4
+% Version: 2.7
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -21,25 +20,20 @@
%
% The Current Maintainer of this work is Shiro Takeda.
-%% Main features of econ.bst.
+% "econ-econometrica.bst" is a BibTeX style file for Econometrica.
+% "econ-econometrica.bst" is created from "econ.bst" which is distributed from
+% https://github.com/ShiroTakeda/econ-bst
-% "econ.bst" is a BibTeX style file for economics. It provids the following
-% features:
-
-% 1) The author-year type citation (you need "natbib.sty" as well).
-% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style
-% for a specific journal).
-% 3) Highly customizable. You can easily customize reference style as you wish.
-% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018)
-% (http://dx.doi.org/10.1257/aer.20161492).
-
% Bug reports, requests and suggestions are welcome.
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.5" }
+FUNCTION {econ.version} { "2.7" }
+% File name
+FUNCTION {econ.file} { "econ-econometrica.bst" }
+
% Debug mode. Non-zero makes debug mode on.
FUNCTION {econ.debug}
{ #0 } % Debug mode off (default).
@@ -61,7 +55,7 @@
%% String entry variable
{ label cyear flabel alabel extra.label sort.label sort.label.abb
- extra.label.bysame nameorder.temp }
+ extra.label.bysame nameorder.temp jname }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -263,7 +257,8 @@
% String replaced with _ in "Mr. A _ Mr. B "
%
FUNCTION {bst.and}
-{ " and " } % (default)
+{ ", and " }
+% { " and " } % (default)
%%% String used to separate author names in references (more than two authors).
%
@@ -312,8 +307,12 @@
% authors is greater or equal to bst.and.others.num.
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% { #4 }
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -339,7 +338,7 @@
% The string after author:
%
FUNCTION {bst.author.post}
-{ "}" }
+{ "} " }
% { "" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -419,6 +418,15 @@
FUNCTION {bst.journal.post}
{ "}" } % (default)
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+{ #0 } % (default)
+% { #1 }
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% editor notation:
@@ -425,7 +433,8 @@
% The string that indicates multiple editors:
%
FUNCTION {bst.editors}
-{ " eds. " } % (default)
+{ " ed. " }
+% { " eds. " } % (default)
% The string that indicates single editor:
%
@@ -438,7 +447,8 @@
% If set to non-zero: booktitle -> editors order
%
FUNCTION {bst.editor.btitle.order}
-{ #0 } % (default)
+% { #0 } % (default)
+{ #1 }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% edition
@@ -459,8 +469,7 @@
% The string before volume:
%
FUNCTION {bst.volume.pre}
-{ ", " }
-% { ", Vol. " } % (default)
+{ ", " } % (default)
% The string after volume:
%
@@ -474,20 +483,18 @@
% Hide number. If non-zero, number is suppressed.
FUNCTION {bst.hide.number}
-{ #0 } % #0 -> show number field (default)
-% { #1 } % non-#0 -> Hide number field.
+% { #0 } % #0 -> show number field (default)
+{ #1 } % non-#0 -> Hide number field.
% The string before number:
%
FUNCTION {bst.number.pre}
-{ " (" }
-% { ", No. " } % (default)
+{ " (" } % (default)
% The string after number:
%
FUNCTION {bst.number.post}
-{ ")" }
-% { "" } % (default)
+{ ")" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% in
@@ -503,14 +510,12 @@
% The string before page (multiple pages):
%
FUNCTION {bst.pages.pre}
-{ ", " }
-% { ", pp." } % (default)
+{ ", " } % (default)
% The string before page:
%
FUNCTION {bst.page.pre}
-{ ", " }
-% { ", p." } % (default)
+{ ", " } % (default)
% The string after page (multiple pages):
%
@@ -658,7 +663,7 @@
% The string before url:
%
FUNCTION {bst.url.pre}
-{ ", URL: \url{" } % (default)
+{ ", \url{" } % (default)
% The string after url:
%
@@ -693,12 +698,12 @@
% The string before DOI:
%
FUNCTION {bst.doi.pre}
-{ ", DOI: \href{http://dx.doi.org/" doi * "}{" * } % (default)
+{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
% The string after DOI:
%
FUNCTION {bst.doi.post}
-{ "}" } % (default)
+{ "}}" } % (default)
% How to show URL and DOI fields when both fields exist.
%
@@ -707,9 +712,9 @@
% #2 -> Only DOI field is displayed
%
FUNCTION {bst.url.doi}
-% { #0 } % (default) -> Both fields are displayed
+% { #0 } % -> Both fields are displayed
% { #1 } % -> Only URL field is displayed
-{ #2 } % -> Only DOI field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Other functions:
@@ -725,7 +730,7 @@
% The string that represents Technical report:
%
FUNCTION {bst.techrep}
-{ " Tech. Rep." } % (default)
+{ "Technical Report" } % (default)
% The string that represents master thesis:
%
@@ -735,7 +740,8 @@
% The string that represents phd thesis:
%
FUNCTION {bst.phdthesis}
-{ " Ph.D. dissertation" } % (default)
+{ ", Ph.D. dissertation" }
+% { " Ph.D. dissertation" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -1068,11 +1074,37 @@
if$
}
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
%%% journal
FUNCTION {format.journal}
{ journal empty$
{ "" }
- { bst.journal.pre journal * bst.journal.post * }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
if$
}
@@ -1148,37 +1180,99 @@
numnames 'namesleft :=
% Repeat if namesleft > 0
{ namesleft #0 > }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ if$
+
+ nameptr #1 >
+ % The second or later authors
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+% For Econometrica, we define `format.name.ed` in addition to `format.name`.
+FUNCTION {format.names.ed}
+{ 's :=
+ % insert 1 to nameptr.
+ #1 'nameptr :=
+ % Set the number of authors to numnames.
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ % Repeat if namesleft > 0
+ { namesleft #0 > }
{ nameptr #1 =
% First author
- { bst.author.name #0 =
- bst.author.name #1 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
if$
}
% The second or later authors
- { bst.author.name #0 =
- bst.author.name #2 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
if$
}
if$
@@ -1356,7 +1450,8 @@
if$
}
if$
- editor format.names *
+ editor format.names.ed *
+% editor format.names *
bst.editor.btitle.order #0 =
{ editor num.names$ #1 >
{ bst.editors * }
@@ -1491,7 +1586,8 @@
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
- { bst.volume.pre volume * bst.volume.post *
+ { " Volume " volume * bst.volume.post *
+% { bst.volume.pre volume * bst.volume.post *
series empty$
'skip$
%% If there is series field
@@ -1924,7 +2020,7 @@
FUNCTION {format.tr.number}
{ type empty$
- { "Technical Report" }
+ { bst.techrep }
{ " " type * }
if$
number empty$
@@ -2161,9 +2257,12 @@
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
+ % For Econometrica, publisher and its address are placed before edition,
+ % chapter and page number.
output.address.organization.publisher
format.edition output.nocomma
format.chapter.pages output.nocomma
+% output.address.organization.publisher
bst.year.position #0 = not
{ format.year "year" output.check.nocomma }
@@ -2408,6 +2507,8 @@
'skip$
if$
+ format.url.doi output.nocomma
+
format.note output.nocomma
fin.entry
}
@@ -2920,6 +3021,15 @@
}
if$
'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
% For debug
econ.debug #0 = not
{ "flabel = ``\texttt{" write$
@@ -3458,10 +3568,10 @@
FUNCTION{punctuation}
{
- "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
- "% This bbl file is created by econ.bst ver." econ.version * write$ newline$
- "% The latest econ.bst is available at" write$ newline$
- "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
}
EXECUTE {punctuation}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -6,7 +6,7 @@
%% Use natbib.sty
\usepackage{natbib}
-\usepackage{mathpazo}
+\usepackage{newtxtext,newtxmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{color}
@@ -33,7 +33,7 @@
%#####################################################################
\begin{document}
-This document uses ``\verb|econ-econometrica.bst|''. The style like ({\itshape Econometrica}).
+This document uses ``\verb|econ-econometrica.bst|''. The style like {\itshape Econometrica}.
\vspace{1em}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.bst 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -1,11 +1,10 @@
-n%% econ.bst: BibTeX style file for papers in economics.
+%% econ-jet.bst: BibTeX style file for "Journal of Economic Theory".
%
% Author: Shiro Takeda
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Time-stamp: <2018-12-07 18:48:36 st>
-% Version: 2.5
+% Version: 2.7
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -21,25 +20,20 @@
%
% The Current Maintainer of this work is Shiro Takeda.
-%% Main features of econ.bst.
+% "econ-jet.bst" is a BibTeX style file for Journal fo Economic Theory.
+% "econ-jet.bst" is created from "econ.bst" which is distributed from
+% https://github.com/ShiroTakeda/econ-bst
-% "econ.bst" is a BibTeX style file for economics. It provids the following
-% features:
-
-% 1) The author-year type citation (you need "natbib.sty" as well).
-% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style
-% for a specific journal).
-% 3) Highly customizable. You can easily customize reference style as you wish.
-% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018)
-% (http://dx.doi.org/10.1257/aer.20161492).
-
% Bug reports, requests and suggestions are welcome.
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.5" }
+FUNCTION {econ.version} { "2.7" }
+% File name
+FUNCTION {econ.file} { "econ-jet.bst" }
+
% Debug mode. Non-zero makes debug mode on.
FUNCTION {econ.debug}
{ #0 } % Debug mode off (default).
@@ -61,7 +55,7 @@
%% String entry variable
{ label cyear flabel alabel extra.label sort.label sort.label.abb
- extra.label.bysame nameorder.temp }
+ extra.label.bysame nameorder.temp jname }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -97,8 +91,8 @@
%
FUNCTION {bst.author.name}
% { #0 } % (default)
-% { #1 }
-{ #2 }
+{ #1 }
+% { #2 }
% Case of #0: First author -> last-first, other authors -> first-last.
% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables.
@@ -122,8 +116,8 @@
% Decapitalize of strings in title field.
%
FUNCTION {bst.title.lower.case}
-% { #0 } % If #0, not decapitalize title (default).
-{ #1 } % If non-#0, decapitalize title
+{ #0 } % If #0, not decapitalize title (default).
+% { #1 } % If non-#0, decapitalize title
% Hide title filed.
%
@@ -197,10 +191,10 @@
% #3 -> year is placed after volume in aritcle type entry.
%
FUNCTION {bst.year.position}
-% { #0 } % (default).
+{ #0 } % (default).
% { #1 } % Last place before note.
% { #2 } % After journal name for aticle type entry.
-{ #3 } % After volume for aticle type entry.
+% { #3 } % After volume for aticle type entry.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -263,7 +257,8 @@
% String replaced with _ in "Mr. A _ Mr. B "
%
FUNCTION {bst.and}
-{ " and " } % (default)
+{ ", " }
+% { " and " } % (default)
%%% String used to separate author names in references (more than two authors).
%
@@ -270,7 +265,8 @@
% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
%
FUNCTION {bst.ands}
-{ ", and " } % (default)
+{ ", " }
+% { ", and " } % (default)
%%% String used to separate author names in citation part.
%
@@ -312,8 +308,12 @@
% authors is greater or equal to bst.and.others.num.
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% { #4 }
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -338,7 +338,7 @@
% The string after author:
%
FUNCTION {bst.author.post}
-{ ", " }
+{ "," }
% { "" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -347,13 +347,13 @@
% The string before year only for aritcle type entry.
%
FUNCTION {bst.year.pre}
-{ " (" }
+{ ", " }
% { " (" } % (default)
% The string after year only for aritcle type entry.
%
FUNCTION {bst.year.post}
-{ ")" }
+{ ". " }
% { ") " } % (default)
% The string after year for non-article type entry (book, incollection etc)
@@ -365,7 +365,7 @@
% The string after year for non-article type entry (book, incollection etc)
%
FUNCTION {bst.year.na.post}
-{ "" }
+{ ". " }
% { ") " } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -380,7 +380,7 @@
% The string after title:
%
FUNCTION {bst.title.post}
-{ "," }
+{ "." }
% { ",''" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -389,13 +389,13 @@
% The string before book title:
%
FUNCTION {bst.book.pre}
-{ "" }
+{ " " }
% { " \textit{" } % (default)
% The string after book title:
%
FUNCTION {bst.book.post}
-{ "" }
+{ "." }
% { "}" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -425,9 +425,18 @@
% The string after journal name:
%
FUNCTION {bst.journal.post}
-{ ", " }
% { "}" } % (default)
+{ "" }
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+% { #0 } % (default)
+{ #1 }
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% editor notation:
@@ -434,8 +443,7 @@
% The string that indicates multiple editors:
%
FUNCTION {bst.editors}
-{ " (Eds.), " }
-% { " eds. " } % (default)
+{ " eds. " } % (default)
% The string that indicates single editor:
%
@@ -469,8 +477,8 @@
% The string before volume:
%
FUNCTION {bst.volume.pre}
-{ " " }
-% { ", Vol. " } % (default)
+{ ". " }
+% { ", " } % (default)
% The string after volume:
%
@@ -484,18 +492,18 @@
% Hide number. If non-zero, number is suppressed.
FUNCTION {bst.hide.number}
-% { #0 } % #0 -> show number field (default)
-{ #1 } % non-#0 -> Hide number field.
+{ #0 } % #0 -> show number field (default)
+% { #1 } % non-#0 -> Hide number field.
% The string before number:
%
FUNCTION {bst.number.pre}
-{ ", No. " } % (default)
+{ " (" } % (default)
% The string after number:
%
FUNCTION {bst.number.post}
-{ "" } % (default)
+{ ")" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% in
@@ -503,8 +511,7 @@
% In
%
FUNCTION {bst.in}
-{ " in: " }
-% { " in " } % (default)
+{ " in " } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% page
@@ -512,13 +519,12 @@
% The string before page (multiple pages):
%
FUNCTION {bst.pages.pre}
-{ " " }
-% { ", pp." } % (default)
+{ ", " } % (default)
% The string before page:
%
FUNCTION {bst.page.pre}
-{ ", p." } % (default)
+{ ", " } % (default)
% The string after page (multiple pages):
%
@@ -541,8 +547,7 @@
% The string after chapter:
%
FUNCTION {bst.chapter.post}
-{ ", " }
-% { "" } % (default)
+{ "" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% month
@@ -567,8 +572,7 @@
% The string after address:
%
FUNCTION {bst.address.post}
-{ "," }
-% { "" } % (default)
+{ "" } % (default)
% You can choose the order of address and publisher by this function.
%
@@ -576,8 +580,8 @@
% If non-zero, publisher -> address order.
FUNCTION {bst.address.position}
-% { #0 } % Address is placed before publisher (default)
-{ #1 } % Address is placed after publisher
+{ #0 } % Address is placed before publisher (default)
+% { #1 } % Address is placed after publisher
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% publisher
@@ -585,14 +589,12 @@
% The string before publisher:
%
FUNCTION {bst.publisher.pre}
-{ ", " }
-% { ": " } % (default)
+{ ": " } % (default)
% The string after publisher:
%
FUNCTION {bst.publisher.post}
-{ "," }
-% { "" } % (default)
+{ "" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% series
@@ -670,7 +672,8 @@
% The string before url:
%
FUNCTION {bst.url.pre}
-{ ", URL: \url{" } % (default)
+{ ", \url{" }
+% { ", URL: \url{" } % (default)
% The string after url:
%
@@ -705,16 +708,13 @@
% The string before DOI:
%
FUNCTION {bst.doi.pre}
-{ ", DOI: \href{http://dx.doi.org/" doi * "}{" * } % (default)
+{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
% The string after DOI:
%
FUNCTION {bst.doi.post}
-{ "}" } % (default)
+{ "}}" } % (default)
-FUNCTION {bst.doi.post.jp}
-{ "}" } % (default)
-
% How to show URL and DOI fields when both fields exist.
%
% #0 -> Both fields are displayed
@@ -722,9 +722,9 @@
% #2 -> Only DOI field is displayed
%
FUNCTION {bst.url.doi}
-% { #0 } % (default) -> Both fields are displayed
+% { #0 } % -> Both fields are displayed
% { #1 } % -> Only URL field is displayed
-{ #2 } % -> Only DOI field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Other functions:
@@ -740,7 +740,7 @@
% The string that represents Technical report:
%
FUNCTION {bst.techrep}
-{ " Tech. Rep." } % (default)
+{ "Technical Report" } % (default)
% The string that represents master thesis:
%
@@ -1083,11 +1083,1185 @@
if$
}
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ s "Academy of Management Journal" =
+ { "Acad. Manage. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Accounting Review" =
+ { "Account. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Accounting, Organizations and Society" =
+ { "Account. Org. Soc." 'jname := }
+ 'skip$
+ if$
+ s "Accounting, Organizations and Society" =
+ { "Admin. Sci. Quart." 'jname := }
+ 'skip$
+ if$
+ s "Administrative Science Quarterly" =
+ { "Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Applied Economics" =
+ { "Am. Econ. J. Appl. Econ." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Economic Policy" =
+ { "Am. Econ. J. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Macroeconomics" =
+ { "Am. Econ. J. Macro." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Microeconomics" =
+ { "Am. Econ. J. Micro." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Review" =
+ { "Am. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "American Journal of Agricultural Economics" =
+ { "Am. J. Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "American Journal of Economics and Sociology" =
+ { "Am. J. Econ. Sociol." 'jname := }
+ 'skip$
+ if$
+ s "Applied Economics" =
+ { "Appl. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Applied Economics Letters" =
+ { "Appl. Econ. Lett." 'jname := }
+ 'skip$
+ if$
+ s "Applied Energy" =
+ { "Appl. Energ." 'jname := }
+ 'skip$
+ if$
+ s "Applied Stochastic Models in Business and Industry" =
+ { "Appl. Stoch. Model Bus." 'jname := }
+ 'skip$
+ if$
+ s "Auditing: A Journal of Practise and Theory" =
+ { "Auditing.-J. Pract. Th." 'jname := }
+ 'skip$
+ if$
+ s "Australian Journal of Agricultural and Resource Economics" =
+ { "Aust. J. Agr. Resour. Ec." 'jname := }
+ 'skip$
+ if$
+ s "B.E. Journal of Economic Analysis \& Policy" =
+ { "B.E. J. Econ. Anal. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Betriebswirtschaftliche Forschung Und Praxis" =
+ { "Betrieb. Forsch. Prax." 'jname := }
+ 'skip$
+ if$
+ s "British Journal of Industrial Relations" =
+ { "Brit. J. Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "British Journal of Management" =
+ { "Brit. J. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Bulletin of Indonesian Economic Studies" =
+ { "B. Indones. Econ. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Business Ethics Quarterly" =
+ { "Bus. Ethics Q." 'jname := }
+ 'skip$
+ if$
+ s "Business History" =
+ { "Bus. Hist." 'jname := }
+ 'skip$
+ if$
+ s "Business History Review" =
+ { "Bus. Hist. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Business Lawyer" =
+ { "Bus. Lawyer" 'jname := }
+ 'skip$
+ if$
+ s "California Management Review" =
+ { "Calif. Manage. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Cambridge Journal of Economics" =
+ { "Cambridge J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Canadian Journal of Administrative Sciences" =
+ { "Can. J. Adm. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Canadian Journal of Economics" =
+ { "Can. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "China Economic Review" =
+ { "China. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Climate Change Economics" =
+ { "Clim. Change Econ." 'jname := }
+ 'skip$
+ if$
+ s "Climate Policy" =
+ { "Clim. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Communications in Statistics – Part A: Theory and Methods" =
+ { "Commun. Stat.-Theor. M." 'jname := }
+ 'skip$
+ if$
+ s "Computational Economics" =
+ { "Computation. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Computational Statistics" =
+ { "Computation. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Computational Statistics and Data Analysis" =
+ { "Comput. Stat. Data An." 'jname := }
+ 'skip$
+ if$
+ s "Contemporary Accounting Research" =
+ { "Contemp. Account. Res." 'jname := }
+ 'skip$
+ if$
+ s "Contemporary Economic Policy" =
+ { "Contemp. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Defence and Peace Economics" =
+ { "Defence Peace Econ." 'jname := }
+ 'skip$
+ if$
+ s "Development Economics" =
+ { "Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Eastern European Economics" =
+ { "Eastern Eur. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Ecological Economics" =
+ { "Ecol. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Econometric Theory" =
+ { "Economet. Theor." 'jname := }
+ 'skip$
+ if$
+ s "Econometrica" =
+ { "Econometrica" 'jname := }
+ 'skip$
+ if$
+ s "Economic and Industrial Democracy" =
+ { "Econ. Ind. Democr." 'jname := }
+ 'skip$
+ if$
+ s "Economic Development and Cultural Change" =
+ { "Econ. Dev. Cult. Change" 'jname := }
+ 'skip$
+ if$
+ s "Economic Development and Cultural Change" =
+ { "Economist.-Netherland" 'jname := }
+ 'skip$
+ if$
+ s "Economic Development Quarterly" =
+ { "Econ. Dev. Q." 'jname := }
+ 'skip$
+ if$
+ s "Economic Geography" =
+ { "Econ. Geogr." 'jname := }
+ 'skip$
+ if$
+ s "Economic History Review" =
+ { "Econ. Hist. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Economic Inquiry" =
+ { "Econ. Inq." 'jname := }
+ 'skip$
+ if$
+ s "Economic Journal" =
+ { "Econ. J." 'jname := }
+ 'skip$
+ if$
+ s "Economic Modelling" =
+ { "Econ. Model." 'jname := }
+ 'skip$
+ if$
+ s "Economic Policy" =
+ { "Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Economic Record" =
+ { "Econ. Rec." 'jname := }
+ 'skip$
+ if$
+ s "Economic Theory" =
+ { "Econ. Theor." 'jname := }
+ 'skip$
+ if$
+ s "Economica" =
+ { "Economica" 'jname := }
+ 'skip$
+ if$
+ s "Economics and Philosophy" =
+ { "Econ. Philos." 'jname := }
+ 'skip$
+ if$
+ s "Economics Letters" =
+ { "Econ. Lett." 'jname := }
+ 'skip$
+ if$
+ s "Economics of Education Review" =
+ { "Econ. Educ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Economics of Energy \& Environmental Policy" =
+ { "Econ. Energ. Environ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Economics of Transition" =
+ { "Econ. Transit." 'jname := }
+ 'skip$
+ if$
+ s "Economy and Society" =
+ { "Econ. Soc." 'jname := }
+ 'skip$
+ if$
+ s "Ekonomicky Casopis" =
+ { "Ekon. Cas." 'jname := }
+ 'skip$
+ if$
+ s "Ekonomiska Samfundets Tidskrift" =
+ { "Ekon. Samf. Tidskr." 'jname := }
+ 'skip$
+ if$
+ s "Emerging Markets Finance and Trade" =
+ { "Emerg. Mark. Financ. Tr." 'jname := }
+ 'skip$
+ if$
+ s "Energy Economics" =
+ { "Energ. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Energy Journal" =
+ { "Energ. J." 'jname := }
+ 'skip$
+ if$
+ s "Energy Policy" =
+ { "Energ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Entrepreneurship \& Regional Development" =
+ { "Entrep. Region. Dev." 'jname := }
+ 'skip$
+ if$
+ s "Entrepreneurship Theory and Practice" =
+ { "Entrep. Theory Pract." 'jname := }
+ 'skip$
+ if$
+ s "Environment and Development Economics" =
+ { "Environ. Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Environmental and Resource Economics" =
+ { "Environ. Resour. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Environmental Economics and Policy Studies" =
+ { "Environ. Econ. Policy Stud." 'jname := }
+ 'skip$
+ if$
+ s "Environmental Science and Policy" =
+ { "Environ. Sci. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Environmental Science \& Technology" =
+ { "Environ. Sci. Technol." 'jname := }
+ 'skip$
+ if$
+ s "Eurasian Geography and Economics " =
+ { "Eurasian Geogr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "European Economic Review" =
+ { "Eur. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "European Journal of Industrial Relations" =
+ { "Eur. J. Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "European Review of Agricultural Economics" =
+ { "Eur. Rev. Agric. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Europe-Asia Studies" =
+ { "Europe-Asia Stud." 'jname := }
+ 'skip$
+ if$
+ s "Explorations in Economic History" =
+ { "Explor. Econ. Hist." 'jname := }
+ 'skip$
+ if$
+ s "Feminist Economics" =
+ { "Fem. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Finance a Uver" =
+ { "Financ. Uver." 'jname := }
+ 'skip$
+ if$
+ s "Finance and Stochastics" =
+ { "Financ. Stoch." 'jname := }
+ 'skip$
+ if$
+ s "Financial Analysts Journal" =
+ { "Financ. Anal. J." 'jname := }
+ 'skip$
+ if$
+ s "Financial Management" =
+ { "Financ. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Fiscal Studies" =
+ { "Fisc. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Food Policy" =
+ { "Food. Policy." 'jname := }
+ 'skip$
+ if$
+ s "Futures" =
+ { "Futures" 'jname := }
+ 'skip$
+ if$
+ s "Games and Economic Behavior" =
+ { "Game Econ. Behav." 'jname := }
+ 'skip$
+ if$
+ s "Health Economics" =
+ { "Health Econ." 'jname := }
+ 'skip$
+ if$
+ s "Hitotsubashi Journal of Economics" =
+ { "Hitotsub. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "IMF Staff Papers" =
+ { "Imf. Staff. Papers" 'jname := }
+ 'skip$
+ if$
+ s "Industrial and Corporate Change" =
+ { "Ind. Corp. Change" 'jname := }
+ 'skip$
+ if$
+ s "Industrial and Labor Relations Review" =
+ { "Ind. Labor. Relat. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Industrial Marketing Management" =
+ { "Ind. Market Manag." 'jname := }
+ 'skip$
+ if$
+ s "Industrial Relations" =
+ { "Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "Information Economics and Policy" =
+ { "Info. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Insurance: Mathematics and Economics" =
+ { "Insur. Math. Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Economic Review" =
+ { "Int. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Electronics and Telecommunications" =
+ { "Int. J. Electron. Comm." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Economic Theory" =
+ { "Int. J. Econ. Theory" 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Finance \& Economics" =
+ { "Int. J. Financ. Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Forecasting" =
+ { "Int. J. Forecast." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Game Theory" =
+ { "Int. J. Game. Theory" 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Industrial Organization" =
+ { "Int. J. Ind. Organ." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Manpower" =
+ { "Int. J. Manpow." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Market Research" =
+ { "Int. J. Market Res." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Research in Marketing" =
+ { "Int. J. Res. Mark." 'jname := }
+ 'skip$
+ if$
+ s "International Labour Review" =
+ { "Int. Labour Rev." 'jname := }
+ 'skip$
+ if$
+ s "International Marketing Review" =
+ { "Int. Market. Rev." 'jname := }
+ 'skip$
+ if$
+ s "International Review of Applied Economics" =
+ { "Int. Rev. Appl. Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Review of Law and Economics" =
+ { "Int. Rev. Law Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Small Business Journal" =
+ { "Int. Small. Bus. J." 'jname := }
+ 'skip$
+ if$
+ s "International Tax and Public Finance" =
+ { "Int. Tax Public Finan." 'jname := }
+ 'skip$
+ if$
+ s "Jahrbücher für Nationalökonomie und Statistik" =
+ { "Jahrb. Natl. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Japan and the World Economy" =
+ { "Jpn. World Econ." 'jname := }
+ 'skip$
+ if$
+ s "Japanese Economic Review" =
+ { "Jpn. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "JCMS-journal of Common Market Studies" =
+ { "Jcms.-J. Common. Mark. S." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Accounting and Economics" =
+ { "J. Account. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Accounting Research" =
+ { "J. Account. Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Advertising" =
+ { "J. Advertising" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Advertising Research" =
+ { "J. Advertising Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of African Economies" =
+ { "J. Afr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Agricultural and Resource Economics" =
+ { "J. Agr. Resour. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Agricultural Economics" =
+ { "J. Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Applied Econometrics" =
+ { "J. Appl. Econom." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Banking and Finance" =
+ { "J. Bank Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business" =
+ { "J. Bus." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business and Economic Statistics" =
+ { "J. Bus. Econ. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business and Psychology" =
+ { "J. Bus. Psychol." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business and Technical Communication" =
+ { "J. Bus. Tech. Commun." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business Ethics" =
+ { "J. Bus. Ethics" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business Research" =
+ { "J. Bus. Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business Venturing" =
+ { "J. Bus. Venturing." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Cleaner Productiond" =
+ { "J. Clean. Prod." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Comparative Economics" =
+ { "J. Comp. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Consumer Affairs" =
+ { "J. Consum. Aff." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Consumer Research" =
+ { "J. Consum. Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Corporate Finance" =
+ { "J. Corp. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Development Economics" =
+ { "J. Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Econometrics" =
+ { "J. Econometrics" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Behavior and Organization" =
+ { "J. Econ. Behav. Organ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Dynamics and Control" =
+ { "J. Econ. Dyn. Control" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Education" =
+ { "J. Econ. Educ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Geography" =
+ { "J. Econ. Geogr." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Growth" =
+ { "J. Econ. Growth" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic History" =
+ { "J. Econ. Hist." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Integration" =
+ { "J. Econ. Integr." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Issues" =
+ { "J. Econ. Issues." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Perspectives" =
+ { "J. Econ. Perspect." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Psychology" =
+ { "J. Econ. Psychol." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Literature" =
+ { "J. Econ. Lit." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Surveys" =
+ { "J. Econ. Surv." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Theory" =
+ { "J. Econ. Theory" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economics" =
+ { "J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economics and Management Strategy" =
+ { "J. Econ. Manage. Strat." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Environmental Economics and Management" =
+ { "J. Environ. Econ. Manag." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Evolutionary Economics" =
+ { "J. Evol. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Finance" =
+ { "J. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial and Quantitative Analysis" =
+ { "J. Financ. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial Economics" =
+ { "J. Financ. Intermed." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial Intermediation" =
+ { "J. Financ. Mark." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial Markets" =
+ { "J. Financ. Quant. Anal." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Forecasting" =
+ { "J. Forecasting." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Futures Markets" =
+ { "J. Futures Market" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Health Economics" =
+ { "J. Health Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Housing Economics" =
+ { "J. Hous. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Human Resources" =
+ { "J. Hum. Resour." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Industrial Economics" =
+ { "J. Ind. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Institutional and Theoretical Economics" =
+ { "J. Inst. Theor. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Integrated Disaster Risk Management" =
+ { "J. Integr. Disaster Risk Manag." 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Business Studies" =
+ { "J. Int. Bus. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Economics" =
+ { "J. Int. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Marketing" =
+ { "J. Int. Marketing" 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Money and Finance" =
+ { "J. Int. Money Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Labor Economics" =
+ { "J. Labor Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Labor Research" =
+ { "J. Labor Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Law and Economics" =
+ { "J. Law. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Law, Economics, and Organization" =
+ { "J. Law. Econ. Organ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Macroeconomics" =
+ { "J. Macroecon." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Management" =
+ { "J. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Management Studies" =
+ { "J. Manage. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Marketing" =
+ { "J. Marketing" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Marketing Research" =
+ { "J. Marketing Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Mathematical Economics" =
+ { "J. Math. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Media Economics" =
+ { "J. Media Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Monetary Economics" =
+ { "J. Monetary. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Money, Credit and Banking" =
+ { "J. Money Credit Bank." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Policy Modeling" =
+ { "J. Policy Model." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Political Economy" =
+ { "J. Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Population Economics" =
+ { "J. Popul. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Portfolio Management" =
+ { "J. Portfolio Manage." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Post Keynesian Economics" =
+ { "J. Post Keynesian Ec." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Product Innovation Management" =
+ { "J. Prod. Innovat. Manag." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Productivity Analysis" =
+ { "J. Prod. Anal." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Public Economics" =
+ { "J. Public Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Public Policy and Marketing" =
+ { "J. Public Policy Mark." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Real Estate Finance and Economics" =
+ { "J. Real Estate Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Regulatory Economics" =
+ { "J. Regul. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Retailing" =
+ { "J. Retailing" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Risk and Insurance" =
+ { "J. Risk. Insur" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Risk and Uncertainty" =
+ { "J. Risk Uncertainty" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Statistical Computation and Simulation" =
+ { "J. Stat. Comput. Sim." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Statistical Planning and Inference" =
+ { "J. Stat. Plan. Infer." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the Academy of Marketing Science" =
+ { "J. Acad. Market. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the American Statistical Association" =
+ { "J. Am. Stat. Assoc." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the European Economic Association" =
+ { "J. Eur. Econ. Assoc." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the Japanese and International Economies" =
+ { "J. Jpn. Int. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Time Series Analysis" =
+ { "J. Time Ser. Anal." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Transport Economics and Policy" =
+ { "J. Transp. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Urban Economics" =
+ { "J. Urban Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of World Business" =
+ { "J. World. Bus." 'jname := }
+ 'skip$
+ if$
+ s "Kyklos" =
+ { "Kyklos" 'jname := }
+ 'skip$
+ if$
+ s "Labor History" =
+ { "Labor Hist." 'jname := }
+ 'skip$
+ if$
+ s "Labour Economics" =
+ { "Labour Econ." 'jname := }
+ 'skip$
+ if$
+ s "Land Economics" =
+ { "Land Econ." 'jname := }
+ 'skip$
+ if$
+ s "Long Range Planning" =
+ { "Long Range Plann." 'jname := }
+ 'skip$
+ if$
+ s "Macroeconomic Dynamics" =
+ { "Macroecon. Dyn." 'jname := }
+ 'skip$
+ if$
+ s "Management Science" =
+ { "Manage. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Manchester School" =
+ { "Manch. Sch." 'jname := }
+ 'skip$
+ if$
+ s "Marketing Letters" =
+ { "Market. Lett." 'jname := }
+ 'skip$
+ if$
+ s "Marketing Science" =
+ { "Market. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Materials Transactions" =
+ { "Mater. Trans." 'jname := }
+ 'skip$
+ if$
+ s "Mathematical Finance" =
+ { "Math. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Monthly Labor Review" =
+ { "Mon. Labor Rev." 'jname := }
+ 'skip$
+ if$
+ s "National Tax Journal" =
+ { "Natl. Tax. J." 'jname := }
+ 'skip$
+ if$
+ s "New England Economic Review" =
+ { "New Engl. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "New Political Economy" =
+ { "New Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Open Economies Review" =
+ { "Open. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Organizational Dynamics" =
+ { "Organ. Dyn." 'jname := }
+ 'skip$
+ if$
+ s "Oxford Bulletin of Economics and Statistics" =
+ { "Oxford. B. Econ. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Oxford Economic Papers" =
+ { "Oxford Econ. Pap." 'jname := }
+ 'skip$
+ if$
+ s "Oxford Review of Economic Policy" =
+ { "Oxford. Rev. Econ. Pol." 'jname := }
+ 'skip$
+ if$
+ s "Politicka Ekonomie" =
+ { "Polit. Ekon." 'jname := }
+ 'skip$
+ if$
+ s "Population and Development Review" =
+ { "Popul. Dev. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Post-Communist Economies" =
+ { "Post.-Communist. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Post-Soviet Affairs" =
+ { "Post.-Sov. Aff." 'jname := }
+ 'skip$
+ if$
+ s "Psychology \& Marketing" =
+ { "Psychol. Market." 'jname := }
+ 'skip$
+ if$
+ s "Public Choice" =
+ { "Public. Choice." 'jname := }
+ 'skip$
+ if$
+ s "Quantitative Finance" =
+ { "Quant. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Quarterly Journal of Economics" =
+ { "Q. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "R\&D Management" =
+ { "R.\&D. Manage." 'jname := }
+ 'skip$
+ if$
+ s "RAND Journal of Economics" =
+ { "Rand. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Real Estate Economics" =
+ { "Real Estate Econ." 'jname := }
+ 'skip$
+ if$
+ s "Regional Science and Urban Economics" =
+ { "Reg. Sci. Urban. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Regional Studies" =
+ { "Reg. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Relations Industrielles-Industrial Relations" =
+ { "Relat. Ind.-Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "Research-Technology Management" =
+ { "Res. Technol. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Resource and Energy Economics" =
+ { "Resour. Energy. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of Accounting Studies" =
+ { "Rev. Acc. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Review of Agricultural Economics" =
+ { "Rev. Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of Development Economics" =
+ { "Rev. Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of Economic Dynamics" =
+ { "Rev. Econ. Dynam." 'jname := }
+ 'skip$
+ if$
+ s "Review of Economic Studies" =
+ { "Rev. Econ. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Review of Economics and Statistics" =
+ { "Rev. Econ. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Review of Financial Studies" =
+ { "Rev. Financ. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Review of Income and Wealth" =
+ { "Rev. Income Wealth" 'jname := }
+ 'skip$
+ if$
+ s "Review of Industrial Organization" =
+ { "Rev. Ind. Organ." 'jname := }
+ 'skip$
+ if$
+ s "Review of International Economics" =
+ { "Rev. Int. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of International Political Economy" =
+ { "Rev. Int. Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of World Economics" =
+ { "Rev. World Econ." 'jname := }
+ 'skip$
+ if$
+ s "Scandinavian Journal of Economics" =
+ { "Scand. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Scottish Journal of Political Economy" =
+ { "Scot. J. Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Small Business Economics" =
+ { "Small. Bus. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Social Choice and Welfare" =
+ { "Soc. Choice Welfare" 'jname := }
+ 'skip$
+ if$
+ s "South African Journal of Economics" =
+ { "S. Afr. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Southern Economic Journal" =
+ { "South. Econ. J." 'jname := }
+ 'skip$
+ if$
+ s "Strategic Management Journal" =
+ { "Statistics." 'jname := }
+ 'skip$
+ if$
+ s "Strategic Management Journal" =
+ { "Strategic Manage. J." 'jname := }
+ 'skip$
+ if$
+ s "Studies in Nonlinear Dynamics and Econometrics" =
+ { "Stoch. Anal. Appl." 'jname := }
+ 'skip$
+ if$
+ s "Studies in Nonlinear Dynamics and Econometrics" =
+ { "Stud. Nonlinear. Dyn. E." 'jname := }
+ 'skip$
+ if$
+ s "Supply Chain Management" =
+ { "Supply. Chain. Manag." 'jname := }
+ 'skip$
+ if$
+ s "Sustainability" =
+ { "Sustainability" 'jname := }
+ 'skip$
+ if$
+ s "Technological Forecasting and Social Change" =
+ { "Technol. Forecast. Soc." 'jname := }
+ 'skip$
+ if$
+ s "Theory and Decision" =
+ { "Theor. Decis." 'jname := }
+ 'skip$
+ if$
+ s "Tijdschrift voor Economische en Sociale Geografie" =
+ { "Tijdschr. Econ. Soc. Ge." 'jname := }
+ 'skip$
+ if$
+ s "Trimestre Economico" =
+ { "Trimest. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Work and Occupations" =
+ { "Work Occupation." 'jname := }
+ 'skip$
+ if$
+ s "Work, Employment and Society" =
+ { "Work Employ. Soc." 'jname := }
+ 'skip$
+ if$
+ s "World Bank Economic Review" =
+ { "World Bank Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "World Bank Research Observer" =
+ { "World Bank Res. Obser." 'jname := }
+ 'skip$
+ if$
+ s "World Development" =
+ { "World Dev." 'jname := }
+ 'skip$
+ if$
+ s "World Economy" =
+ { "World Econ." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
%%% journal
FUNCTION {format.journal}
{ journal empty$
{ "" }
- { bst.journal.pre journal * bst.journal.post * }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
if$
}
@@ -1163,56 +2337,62 @@
numnames 'namesleft :=
% Repeat if namesleft > 0
{ namesleft #0 > }
- { nameptr #1 =
- % First author
- { bst.author.name #0 =
- bst.author.name #1 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
- % The second or later authors
- { bst.author.name #0 =
- bst.author.name #2 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
if$
-
+
nameptr #1 >
% The second or later authors
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
if$
}
if$
@@ -1939,7 +3119,7 @@
FUNCTION {format.tr.number}
{ type empty$
- { "Technical Report" }
+ { bst.techrep }
{ " " type * }
if$
number empty$
@@ -2176,9 +3356,9 @@
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- output.address.organization.publisher
format.edition output.nocomma
format.chapter.pages output.nocomma
+ output.address.organization.publisher
bst.year.position #0 = not
{ format.year "year" output.check.nocomma }
@@ -2423,6 +3603,8 @@
'skip$
if$
+ format.url.doi output.nocomma
+
format.note output.nocomma
fin.entry
}
@@ -2935,6 +4117,15 @@
}
if$
'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
% For debug
econ.debug #0 = not
{ "flabel = ``\texttt{" write$
@@ -3473,10 +4664,10 @@
FUNCTION{punctuation}
{
- "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
- "% This bbl file is created by econ.bst ver." econ.version * write$ newline$
- "% The latest econ.bst is available at" write$ newline$
- "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
}
EXECUTE {punctuation}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -5,8 +5,8 @@
\documentclass[10pt]{article}
%% Use natbib.sty
-\usepackage[numbers]{natbib}
-\usepackage{mathpazo}
+\usepackage{natbib}
+\usepackage{newtxtext,newtxmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{color}
@@ -33,22 +33,12 @@
%#####################################################################
\begin{document}
-This document uses ``\verb|econ-jet.bst|''. The style like JET ({\itshape Journal of
-Economic Theory}).
+This document uses ``\verb|econ-jet.bst|'', which is the style for \textit{``Journal of
+Economic Theory (JET)''}.
\vspace{1em}
\input{cited-part}
-\vspace*{1em}
-
-In the citation part above, we use
-\verb|\citet| command which creates the style like ``author name + number''. If we use \verb|\cite|
-command, we have the style only with number like the followings: \\
-\cite{Ryza15:_advan_analy_spark_patter_learn_data_scale},
-\cite{yamazaki13:_japan}, \cite{stakeda2013web}, \cite{Takeda2012a},
-\cite{bergemann11:_ration}, \cite{goldin:katz:2011}, \cite{Takeda2011b},
-\cite{takeda2011c}.
-
\nocite{*}
%% bst file:
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.bst 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -4,8 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Time-stamp: <2018-12-07 18:48:19 st>
-% Version: 2.5
+% Version: 2.7
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -21,25 +20,22 @@
%
% The Current Maintainer of this work is Shiro Takeda.
-%% Main features of econ.bst.
+%% econ-jie.bst
-% "econ.bst" is a BibTeX style file for economics. It provids the following
-% features:
+% "econ-jie.bst" is a BibTeX style file for Journal of International Economics
+% "econ-jie.bst" is created from "econ.bst" which is distributed from
+% https://github.com/ShiroTakeda/econ-bst
-% 1) The author-year type citation (you need "natbib.sty" as well).
-% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style
-% for a specific journal).
-% 3) Highly customizable. You can easily customize reference style as you wish.
-% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018)
-% (http://dx.doi.org/10.1257/aer.20161492).
-
% Bug reports, requests and suggestions are welcome.
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.5" }
+FUNCTION {econ.version} { "2.7" }
+% File name
+FUNCTION {econ.file} { "econ-jie.bst" }
+
% Debug mode. Non-zero makes debug mode on.
FUNCTION {econ.debug}
{ #0 } % Debug mode off (default).
@@ -61,7 +57,7 @@
%% String entry variable
{ label cyear flabel alabel extra.label sort.label sort.label.abb
- extra.label.bysame nameorder.temp }
+ extra.label.bysame nameorder.temp jname }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -263,7 +259,7 @@
% String replaced with _ in "Mr. A _ Mr. B "
%
FUNCTION {bst.and}
-{ " " }
+{ ", " }
% { " and " } % (default)
%%% String used to separate author names in references (more than two authors).
@@ -271,7 +267,7 @@
% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
%
FUNCTION {bst.ands}
-{ " " }
+{ ", " }
% { ", and " } % (default)
%%% String used to separate author names in citation part.
@@ -314,8 +310,12 @@
% authors is greater or equal to bst.and.others.num.
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% { #4 }
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -427,9 +427,18 @@
% The string after journal name:
%
FUNCTION {bst.journal.post}
-{ "" }
+{ "." }
% { "}" } % (default)
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+{ #0 } % (default)
+% { #1 }
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% editor notation:
@@ -472,7 +481,7 @@
%
FUNCTION {bst.volume.pre}
{ " " }
-% { ", Vol. " } % (default)
+% { ", " } % (default)
% The string after volume:
%
@@ -492,14 +501,13 @@
% The string before number:
%
FUNCTION {bst.number.pre}
-{ " (" }
-% { ", No. " } % (default)
+{ " (" } % (default)
% The string after number:
%
FUNCTION {bst.number.post}
{ ")," }
-% { "" } % (default)
+% { ")" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% in
@@ -517,12 +525,12 @@
%
FUNCTION {bst.pages.pre}
{ " " }
-% { ", pp." } % (default)
+% { ", " } % (default)
% The string before page:
%
FUNCTION {bst.page.pre}
-{ ", p." } % (default)
+{ ", " } % (default)
% The string after page (multiple pages):
%
@@ -671,7 +679,7 @@
% The string before url:
%
FUNCTION {bst.url.pre}
-{ ", URL: \url{" } % (default)
+{ ", \url{" } % (default)
% The string after url:
%
@@ -706,12 +714,12 @@
% The string before DOI:
%
FUNCTION {bst.doi.pre}
-{ ", DOI: \href{http://dx.doi.org/" doi * "}{" * } % (default)
+{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
% The string after DOI:
%
FUNCTION {bst.doi.post}
-{ "}" } % (default)
+{ "}}" } % (default)
% How to show URL and DOI fields when both fields exist.
%
@@ -722,7 +730,7 @@
FUNCTION {bst.url.doi}
% { #0 } % (default) -> Both fields are displayed
% { #1 } % -> Only URL field is displayed
-{ #2 } % -> Only DOI field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Other functions:
@@ -738,7 +746,7 @@
% The string that represents Technical report:
%
FUNCTION {bst.techrep}
-{ " Tech. Rep." } % (default)
+{ "Technical Report" } % (default)
% The string that represents master thesis:
%
@@ -1081,11 +1089,37 @@
if$
}
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
%%% journal
FUNCTION {format.journal}
{ journal empty$
{ "" }
- { bst.journal.pre journal * bst.journal.post * }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
if$
}
@@ -1161,56 +1195,62 @@
numnames 'namesleft :=
% Repeat if namesleft > 0
{ namesleft #0 > }
- { nameptr #1 =
- % First author
- { bst.author.name #0 =
- bst.author.name #1 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
- % The second or later authors
- { bst.author.name #0 =
- bst.author.name #2 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
if$
-
+
nameptr #1 >
% The second or later authors
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
if$
}
if$
@@ -1937,7 +1977,7 @@
FUNCTION {format.tr.number}
{ type empty$
- { "Technical Report" }
+ { bst.techrep }
{ " " type * }
if$
number empty$
@@ -2174,9 +2214,9 @@
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- output.address.organization.publisher
format.edition output.nocomma
format.chapter.pages output.nocomma
+ output.address.organization.publisher
bst.year.position #0 = not
{ format.year "year" output.check.nocomma }
@@ -2421,6 +2461,8 @@
'skip$
if$
+ format.url.doi output.nocomma
+
format.note output.nocomma
fin.entry
}
@@ -2933,6 +2975,15 @@
}
if$
'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
% For debug
econ.debug #0 = not
{ "flabel = ``\texttt{" write$
@@ -3471,10 +3522,10 @@
FUNCTION{punctuation}
{
- "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
- "% This bbl file is created by econ.bst ver." econ.version * write$ newline$
- "% The latest econ.bst is available at" write$ newline$
- "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
}
EXECUTE {punctuation}
Deleted: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -6,7 +6,7 @@
%% Use natbib.sty
\usepackage{natbib}
-\usepackage{mathpazo}
+\usepackage{newtxtext,newtxmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{color}
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.bst (rev 0)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -0,0 +1,4802 @@
+%% econ.bst: BibTeX style file for papers in economics.
+%
+% Author: Shiro Takeda
+% Maintainer: Shiro Takeda
+% Copyright (C) 2001-2018 Shiro Takeda
+% First-written: <2007/07/28>
+% Version: 2.7
+% Keywords: TeX, BibTeX, bst
+% URL: https://github.com/ShiroTakeda/econ-bst
+
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Shiro Takeda.
+
+%% Main features of econ.bst.
+
+% "econ.bst" is a BibTeX style file for economics. It provids the following
+% features:
+
+% 1) The author-year type citation (you need "natbib.sty" as well).
+% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style
+% for a specific journal).
+% 3) Highly customizable. You can easily customize reference style as you wish.
+% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018)
+% (http://dx.doi.org/10.1257/aer.20161492).
+
+% Bug reports, requests and suggestions are welcome.
+
+% For changelogs, see CHANGES.txt file.
+
+% version number
+FUNCTION {econ.version} { "2.7" }
+
+% File name
+FUNCTION {econ.file} { "econ-jpe.bst" }
+
+% Debug mode. Non-zero makes debug mode on.
+FUNCTION {econ.debug}
+{ #0 } % Debug mode off (default).
+% { #1 } % Debug mode on.
+
+ENTRY
+ %%% Declaration of field
+ { access address author booktitle chapter doi edition editor howpublished
+ institution journal key month note number organization pages publisher
+ school series title type url volume year
+ % Fields specific to econ.bst
+ order absorder nameorder
+ }
+
+ % Definition of entry variable. The entry variable is a variable which has
+ % different values according to different entries.
+ %% Integer entry variable:
+ { order.cited }
+
+ %% String entry variable
+ { label cyear flabel alabel extra.label sort.label sort.label.abb
+ extra.label.bysame nameorder.temp jname }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Functions for customization:
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Use \bysame or not.
+%
+% If set to #0, \bysame is not used.
+% If set to #1, \bysame is used
+% If set to #2, \bysame is used (alternative abbreviation style).
+%
+% Note that integer number is expressed as # + integer in bst file.
+% \bysame is the function that abbreviates succession of the same authors' name by ---.
+%
+% See econ-sample.pdf for details.
+%
+FUNCTION {bst.use.bysame}
+% { #0 } % Not use \bysame
+{ #1 } % -> Use \bysame (default)
+% { #2 } % -> Use \bysame of alternative style.
+
+% The definition of \bysame command.
+%
+FUNCTION {bst.bysame.definition}
+{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default)
+% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The order of fist and last name.
+%
+FUNCTION {bst.author.name}
+{ #0 } % (default)
+% { #1 }
+% { #2 }
+
+% Case of #0: First author -> last-first, other authors -> first-last.
+% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables.
+
+% Case of #1: All authors -> last-first
+% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J.
+
+% Case of #2: All authors -> first-last
+% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Abbreviate first name of authors (editors):
+%
+FUNCTION {bst.first.name.initial}
+{ #0 } % #0 -> full letters (default).
+% { #1 } % Non-zero -> initial letter only.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Decapitalize of strings in title field.
+%
+FUNCTION {bst.title.lower.case}
+{ #0 } % If #0, not decapitalize title (default).
+% { #1 } % If non-#0, decapitalize title
+
+% Hide title filed.
+%
+FUNCTION {bst.hide.title}
+{ #0 } % #0 -> Title field is displayed (default)
+% { #1 } % Non-zer -> Title field is hidden
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hide month.
+%
+FUNCTION {bst.hide.month}
+{ #0 } % #0 -> show month field (default).
+% { #1 } % non-#0 -> hide month field.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Attach number index like plain.bst.
+%
+FUNCTION {bst.use.number.index}
+{ #0 } % Not use number index (default).
+% { #1 } % Non-#0 -> Use number index
+
+% The string before number index:
+%
+FUNCTION {bst.number.index.pre}
+{ "[" } % (default)
+
+% The string after number index. Adjustment is recommended.
+%
+FUNCTION {bst.number.index.post}
+{ "]\hskip1.0em " } % (default)
+
+% Maximum digit of number index:
+% If the number of reference items >= 100, set 3 to this function.
+% If the number of reference items < 100, set 2 to this function.
+% If the number of reference items < 10, set 1 to this function.
+%
+FUNCTION {bst.number.index.digit}
+{ "2" } % (default)
+% { "3" }
+
+% The functions below are used to adjust space and postion. If you use fonts
+% other than computer modern fonts, you had better make adjustments.
+%
+% Setting for bst.number.index.digit = 1:
+FUNCTION {bst.number.index.bibhang.one}
+{ "2.05em" } % (default)
+% Setting for bst.number.index.digit = 2:
+FUNCTION {bst.number.index.bibhang.ten}
+{ "2.55em" } % (default)
+% Setting for bst.number.index.digit = 3:
+FUNCTION {bst.number.index.bibhang.hund}
+{ "3.05em" } % (default).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Position of "year":
+%
+% You can choose the position of year by this function.
+%
+% If set to #0, year is placed right after "author".
+% If set to non-zero, year is placed at the end (before note field) except for
+% aritcle type entry.
+%
+% In article type entry, the position of year changes according to the
+% following rule:
+%
+% #1 -> year is placed at the end.
+% #2 -> year is placed after journal name in aritcle type entry.
+% #3 -> year is placed after volume in aritcle type entry.
+%
+FUNCTION {bst.year.position}
+{ #0 } % (default).
+% { #1 } % Last place before note.
+% { #2 } % After journal name for aticle type entry.
+% { #3 } % After volume for aticle type entry.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If 0, references are sorted by old documents -> recent documents. If
+% non-zero, reverse order.
+FUNCTION {bst.reverse.year}
+{ #0 } % Normal order (old -> recent) (default).
+% { #1 } % inverse order (recent -> old)
+
+% If non-zero, sort references by using year field as the primary key
+% (chronological sorting).
+FUNCTION {bst.sort.year}
+{ #0 } % Normal case: year is used as the sorting key next to author (default).
+% { #1 } % year is used as the primary sorting key.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If non-zero, references are listed in citation order.
+%
+FUNCTION {bst.no.sort}
+{ #0 } % (default)
+% { #1 } % listed in citation order.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Non-zero -> sort references by entry type (article, book, incollection etc.)
+%
+FUNCTION {bst.sort.entry.type}
+{ #0 } % #0 -> Normal (not sort references by entry type) (default).
+% { #1 } % Non-zero -> sort references by entry type.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% 0 -> use absorder field to sort items. Otherwise, ignore absorder field.
+%
+FUNCTION {bst.notuse.absorder.field}
+{ #0 } % #0 -> Use absorder (default).
+% { #1 } % Non-#0 -> Not use absorder.
+%
+% Order of priority to sort items
+%
+% absorder -> author -> year -> order -> month -> title
+%
+% wehre absorder and order fields are specific to econ.bst.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% 0 -> use order field to sort items. Otherwise, ignore order field.
+% Note: order field is specific to econ.bst.
+FUNCTION {bst.notuse.order.field}
+{ #0 } % #0 -> Use order field (default).
+% { #1 } % Non-#0 -> not use order field.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% and
+
+%%% String used to separate author names in references.
+%
+% String replaced with _ in "Mr. A _ Mr. B "
+%
+FUNCTION {bst.and}
+{ ", and " }
+% { " and " } % (default)
+
+%%% String used to separate author names in references (more than two authors).
+%
+% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
+%
+FUNCTION {bst.ands}
+{ ", and " } % (default)
+
+%%% String used to separate author names in citation part.
+%
+% String replaced with _ in "Mr. A _ Mr. B "
+%
+FUNCTION {bst.cite.and}
+{ " and " } % (default)
+
+%%% String used to separate author names in citation part (more than two authors).
+%
+% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
+%
+FUNCTION {bst.cite.ands}
+{ " and " } % (default)
+
+%%% If you want to use random author order for some bibliography entries, set
+% non-zero to this function.
+%
+FUNCTION {bst.use.nameorder}
+{ #1 } % Use random order (default)
+% { #0 } % Not use random order
+
+%%% String used to separate author names in references for the entry of random
+% author order.
+%
+FUNCTION {bst.and.nameorder}
+{ " \textcircled{r} " } % (default)
+
+%%% String used to separate author names in citation part for the entry of
+% random author order
+%
+FUNCTION {bst.cite.and.nameorder}
+{ " \textcircled{r} " } % (default)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Author names in the citation part are abbreviated by et al. if the number of
+% authors is greater or equal to bst.and.others.num.
+FUNCTION {bst.and.others.num}
+{ #3 } % If the number of authors is greater or equal to three (default).
+
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Strings used when abbreviating multiple-authors in citation part.
+FUNCTION {bst.and.others}
+{ " et~al." } % (default)
+
+% Strings used when abbreviating multiple-authors in citation part for entries
+% with random author order.
+FUNCTION {bst.and.others.nameorder}
+{ " \textcircled{r}~al." } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% author
+
+% The string before author:
+%
+FUNCTION {bst.author.pre}
+{ "" } % (default)
+
+% The string after author:
+%
+FUNCTION {bst.author.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% year
+
+% The string before year only for aritcle type entry.
+%
+FUNCTION {bst.year.pre}
+{ " " }
+% { " (" } % (default)
+
+% The string after year only for aritcle type entry.
+%
+FUNCTION {bst.year.post}
+{ "." }
+% { ") " } % (default)
+
+% The string after year for non-article type entry (book, incollection etc)
+%
+FUNCTION {bst.year.na.pre}
+{ " " }
+% { " (" } % (default)
+
+% The string after year for non-article type entry (book, incollection etc)
+%
+FUNCTION {bst.year.na.post}
+{ "." }
+% { ") " } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% title (except for title in book)
+
+% The string before title:
+%
+FUNCTION {bst.title.pre}
+{ "``" } % (default)
+
+% The string after title:
+%
+FUNCTION {bst.title.post}
+{ ".''" }
+% { ",''" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% tile for book:
+
+% The string before book title:
+%
+FUNCTION {bst.book.pre}
+{ " \textit{" } % (default)
+
+% The string after book title:
+%
+FUNCTION {bst.book.post}
+{ "}. " }
+% { "}" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% booktitle
+
+% The string before booktitle:
+%
+FUNCTION {bst.btitle.pre}
+{ " \textit{" } % (default)
+
+% The string after booktitle:
+%
+FUNCTION {bst.btitle.post}
+{ "}" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% journal name
+
+% The string before journal name:
+%
+FUNCTION {bst.journal.pre}
+{ " \textit{" } % (default)
+
+% The string after journal name:
+%
+FUNCTION {bst.journal.post}
+{ "}." }
+% { "}" } % (default)
+
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+% { #0 } % (default)
+{ #1 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% editor notation:
+
+% The string that indicates multiple editors:
+%
+FUNCTION {bst.editors}
+{ " eds. " } % (default)
+
+% The string that indicates single editor:
+%
+FUNCTION {bst.editor}
+{ " ed. " } % (default)
+
+% Order of editor and booktitle in incollection and inproceedings entries.
+%
+% If set to #0: editors -> booktitle order
+% If set to non-zero: booktitle -> editors order
+%
+FUNCTION {bst.editor.btitle.order}
+{ #1 }
+% { #0 } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% edition
+
+% The string before edition:
+%
+FUNCTION {bst.edition.pre}
+{ ", " } % (default)
+
+% The string after edition:
+%
+FUNCTION {bst.edition.post}
+{ " edition" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% volume
+
+% The string before volume:
+%
+FUNCTION {bst.volume.pre}
+{ " " }
+% { ", " } % (default)
+
+% The string after volume:
+%
+FUNCTION {bst.volume.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% number
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hide number. If non-zero, number is suppressed.
+FUNCTION {bst.hide.number}
+{ #0 } % #0 -> show number field (default)
+% { #1 } % non-#0 -> Hide number field.
+
+% The string before number:
+%
+FUNCTION {bst.number.pre}
+{ " (" } % (default)
+
+% The string after number:
+%
+FUNCTION {bst.number.post}
+{ "): " }
+% { ")" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% in
+
+% In
+%
+FUNCTION {bst.in}
+{ " In " }
+% { " in " } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% page
+
+% The string before page (multiple pages):
+%
+FUNCTION {bst.pages.pre}
+{ " " }
+% { ", " } % (default)
+
+% The string before page:
+%
+FUNCTION {bst.page.pre}
+{ ", " } % (default)
+
+% The string after page (multiple pages):
+%
+FUNCTION {bst.pages.post}
+{ "" } % (default)
+
+% The string after page:
+%
+FUNCTION {bst.page.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% chapter
+
+% The string before chapter:
+%
+FUNCTION {bst.chapter.pre}
+{ ", Chap." } % (default)
+
+% The string after chapter:
+%
+FUNCTION {bst.chapter.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% month
+
+% The string before month:
+%
+FUNCTION {bst.month.pre}
+{ ", " } % (default)
+
+% The string after month:
+%
+FUNCTION {bst.month.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% address
+% The string before address:
+%
+FUNCTION {bst.address.pre}
+{ ", " } % (default)
+
+% The string after address:
+%
+FUNCTION {bst.address.post}
+{ "" } % (default)
+
+% You can choose the order of address and publisher by this function.
+%
+% If #0, address -> publisher order (the default value).
+% If non-zero, publisher -> address order.
+
+FUNCTION {bst.address.position}
+{ #0 } % Address is placed before publisher (default)
+% { #1 } % Address is placed after publisher
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% publisher
+
+% The string before publisher:
+%
+FUNCTION {bst.publisher.pre}
+{ ": " } % (default)
+
+% The string after publisher:
+%
+FUNCTION {bst.publisher.post}
+{ "," }
+% { "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% series
+
+% The string before series:
+%
+FUNCTION {bst.series.pre}
+{ ", " } % (default)
+
+% The string after series:
+%
+FUNCTION {bst.series.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% organization
+
+% The string before organization:
+%
+FUNCTION {bst.organization.pre}
+{ ", " } % (default)
+
+% The string after organization:
+%
+FUNCTION {bst.organization.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% school
+
+% The string before school:
+%
+FUNCTION {bst.school.pre}
+{ ", " } % (default)
+
+% The string after school:
+%
+FUNCTION {bst.school.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% institution
+
+% The string before institution:
+%
+FUNCTION {bst.institution.pre}
+{ ", " } % (default)
+
+% The string after institution:
+%
+FUNCTION {bst.institution.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% howpublished
+
+% The string before howpublished:
+%
+FUNCTION {bst.howpublished.pre}
+{ " " } % (default)
+
+% The string after howpublished:
+%
+FUNCTION {bst.howpublished.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% url
+
+% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed.
+FUNCTION {bst.show.url}
+{ #1 } % non-#0 -> Show url field (default)
+% { #0 } % #0 -> Not show url field.
+
+% The string before url:
+%
+FUNCTION {bst.url.pre}
+{ ", \url{" } % (default)
+
+% The string after url:
+%
+FUNCTION {bst.url.post}
+{ "}" } % (default)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Access
+
+% This setting is valid only if there are "access" field in bib
+% files. The value of access field indicates accessed date for URL.
+
+% The string before access.
+FUNCTION {bst.access.pre}
+{ ", accessed on " } % (default)
+
+% The string after access.
+FUNCTION {bst.access.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DOI (digital object identifier)
+
+% This setting is valid only if there are "doi" field in bib files.
+
+% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed.
+FUNCTION {bst.show.doi}
+{ #1 } % non-#0 -> Show DOI field (default)
+% { #0 } % #0 -> Not show DOI field.
+
+% The string before DOI:
+%
+FUNCTION {bst.doi.pre}
+{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
+
+% The string after DOI:
+%
+FUNCTION {bst.doi.post}
+{ "}}" } % (default)
+
+% How to show URL and DOI fields when both fields exist.
+%
+% #0 -> Both fields are displayed
+% #1 -> Only URL field is displayed
+% #2 -> Only DOI field is displayed
+%
+FUNCTION {bst.url.doi}
+% { #0 } % -> Both fields are displayed
+% { #1 } % -> Only URL field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Other functions:
+
+% The string before note.
+FUNCTION {bst.note.pre}
+{ ", " } % (default)
+
+% The string after note.
+FUNCTION {bst.note.post}
+{ "" } % (default)
+
+% The string that represents Technical report:
+%
+FUNCTION {bst.techrep}
+{ "Technical Report" } % (default)
+
+% The string that represents master thesis:
+%
+FUNCTION {bst.mthesis}
+{ " Master's thesis" } % (default)
+
+% The string that represents phd thesis:
+%
+FUNCTION {bst.phdthesis}
+{ " Ph.D. dissertation" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Functions for customization end here:
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {bst.first}
+{ "1st" }
+
+FUNCTION {bst.second}
+{ "2nd" }
+
+FUNCTION {bst.third}
+{ "3rd" }
+
+FUNCTION {bst.fourth}
+{ "4th" }
+
+FUNCTION {bst.fifth}
+{ "5th" }
+
+FUNCTION {bst.st}
+{ "st" }
+
+FUNCTION {bst.nd}
+{ "nd" }
+
+FUNCTION {bst.rd}
+{ "rd" }
+
+FUNCTION {bst.th}
+{ "th" }
+
+%%%%% memo by Takeda
+
+% "a" 'b := indicates substituting string "a" for variable b.
+
+% Integer number #0, #1,...
+
+%%% Function definition:
+%
+% FUNCTION {name}
+% { 's :=
+%
+% }
+%
+% This is the definition of a function named "name". The function "name" is
+% used in the following way
+%
+% "foo" name
+% "foo" is an argument for the function "name".
+%
+% About the definition of a function with more than two arguments, see the
+% definition of "chop.word".
+
+%%% Declaration of variables:
+
+%% String global variables:
+STRINGS { s t tt }
+STRINGS { year.num }
+STRINGS { preone preten }
+STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author }
+STRINGS { hang }
+STRINGS { item.type }
+STRINGS { tempa tempb }
+
+%% Integer global variables:
+INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { multiresult }
+INTEGERS { index }
+INTEGERS { len }
+INTEGERS { last.extra.num }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+INTEGERS { last.period.comma }
+INTEGERS { len1.aer len2.aer i.aer }
+
+%%% Definition of functions:
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+%%% Initialize variables:
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+%%% Remove comma and add period:
+%
+%%%
+FUNCTION {add.period.x}
+{ duplicate$
+ #-1 #1 substring$ "," =
+ { #-2 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ". " =
+ { #-3 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ", " =
+ { #-3 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ",'" =
+ { #-3 global.max$ substring$ ".'" * }
+ { duplicate$
+ #-1 #2 substring$ ".'" =
+ { #-3 global.max$ substring$ ".'" * }
+ { duplicate$
+ #-1 #2 substring$ ".~" =
+ { #-3 global.max$ substring$ ".~" * }
+ { duplicate$
+ #-1 #2 substring$ ",~" =
+ { #-3 global.max$ substring$ ".~" * }
+ { duplicate$
+ #-1 #3 substring$ ",''" =
+ { #-4 global.max$ substring$ ".''" * }
+ { duplicate$
+ #-1 #3 substring$ ".''" =
+ { #-4 global.max$ substring$ ".''" * }
+ { add.period$ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {output.nonnull}
+{ 's :=
+ % mid.sentence
+ output.state mid.sentence =
+ { ", " * write$ }
+ % not mid.sentence
+ { output.state after.block =
+ % after.block
+ { add.period.x " " * write$ }
+ % before.all
+ { output.state before.all =
+ 'write$
+ { add.period.x " " * write$ }
+ if$
+ }
+ if$
+ % not mid.sentence, set to mid.sentence
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+%%% If the last character is period or comma, set non-zero to
+%%% last.period.comma.
+FUNCTION {period.comma.p}
+{ duplicate$ 't :=
+ t #-1 #1 substring$ "." =
+ t #-1 #1 substring$ "," = or
+ t #-1 #1 substring$ ":" = or
+ t #-1 #2 substring$ ".'" = or
+ t #-1 #2 substring$ ",'" = or
+ t #-1 #3 substring$ ".''" = or
+ t #-1 #3 substring$ ",''" = or
+ t #-1 #2 substring$ ".~" = or
+ t #-1 #2 substring$ ",~" = or
+ { #1 'last.period.comma := }
+ { #0 'last.period.comma := }
+ if$
+}
+
+%%% remove unnecessary comma.
+FUNCTION {remove.pre.comma}
+{ 's :=
+ s empty$
+ { "" }
+ { s #1 #1 substring$ "," =
+ { s #2 global.max$ substring$ }
+ { s #1 #1 substring$ "." =
+ { s #2 global.max$ substring$ }
+ 's
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% output.nonnull.nocomma is the same as output.nonnull except that it does
+%%% not add commas even in mid.sentence.
+FUNCTION {output.nonnull.nocomma}
+{ 's :=
+ output.state mid.sentence =
+ % mid.sentence
+ { period.comma.p "" * write$ }
+
+ % not mid.sentence
+ { output.state after.block =
+ % after.block
+ { add.period.x " " * write$ }
+ % before.all
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ last.period.comma #0 =
+ { s }
+ { s remove.pre.comma }
+ if$
+}
+
+% Not used in the current econ.bst.
+% FUNCTION {output}
+% { duplicate$ empty$
+% 'pop$
+% 'output.nonnull
+% if$
+% }
+
+FUNCTION {output.nocomma}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull.nocomma
+ if$
+}
+
+% Not used in the current econ.bst.
+% FUNCTION {output.check}
+% { 't :=
+% duplicate$ empty$
+% { pop$ "empty " t * " in " * cite$ * warning$ }
+% 'output.nonnull
+% if$
+% }
+
+FUNCTION {output.check.nocomma}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull.nocomma
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Format in bbl file:
+
+% \harvarditem[Brezis et~al.]{Brezis, Krugman and
+% Tsiddon}{1993}{brezis93:_leapf_inter_compet}
+% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in
+% International Competition: A Theory of Cycles in National Technological
+% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp.
+% 1211--1219.
+
+% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ...
+
+%%% Add period and newline.
+FUNCTION {fin.entry}
+{ add.period.x
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {new.block.check}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+%%% booktitle
+FUNCTION {format.btitle}
+{ booktitle empty$
+ { "" }
+ { bst.btitle.pre booktitle * bst.btitle.post * }
+ if$
+}
+
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ s "Academy of Management Journal" =
+ { "Acad. Manage. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Accounting Review" =
+ { "Account. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Accounting, Organizations and Society" =
+ { "Account. Org. Soc." 'jname := }
+ 'skip$
+ if$
+ s "Accounting, Organizations and Society" =
+ { "Admin. Sci. Quart." 'jname := }
+ 'skip$
+ if$
+ s "Administrative Science Quarterly" =
+ { "Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Applied Economics" =
+ { "Am. Econ. J. Appl. Econ." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Economic Policy" =
+ { "Am. Econ. J. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Macroeconomics" =
+ { "Am. Econ. J. Macro." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Journal: Microeconomics" =
+ { "Am. Econ. J. Micro." 'jname := }
+ 'skip$
+ if$
+ s "American Economic Review" =
+ { "Am. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "American Journal of Agricultural Economics" =
+ { "Am. J. Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "American Journal of Economics and Sociology" =
+ { "Am. J. Econ. Sociol." 'jname := }
+ 'skip$
+ if$
+ s "Applied Economics" =
+ { "Appl. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Applied Economics Letters" =
+ { "Appl. Econ. Lett." 'jname := }
+ 'skip$
+ if$
+ s "Applied Energy" =
+ { "Appl. Energ." 'jname := }
+ 'skip$
+ if$
+ s "Applied Stochastic Models in Business and Industry" =
+ { "Appl. Stoch. Model Bus." 'jname := }
+ 'skip$
+ if$
+ s "Auditing: A Journal of Practise and Theory" =
+ { "Auditing.-J. Pract. Th." 'jname := }
+ 'skip$
+ if$
+ s "Australian Journal of Agricultural and Resource Economics" =
+ { "Aust. J. Agr. Resour. Ec." 'jname := }
+ 'skip$
+ if$
+ s "B.E. Journal of Economic Analysis \& Policy" =
+ { "B.E. J. Econ. Anal. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Betriebswirtschaftliche Forschung Und Praxis" =
+ { "Betrieb. Forsch. Prax." 'jname := }
+ 'skip$
+ if$
+ s "British Journal of Industrial Relations" =
+ { "Brit. J. Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "British Journal of Management" =
+ { "Brit. J. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Bulletin of Indonesian Economic Studies" =
+ { "B. Indones. Econ. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Business Ethics Quarterly" =
+ { "Bus. Ethics Q." 'jname := }
+ 'skip$
+ if$
+ s "Business History" =
+ { "Bus. Hist." 'jname := }
+ 'skip$
+ if$
+ s "Business History Review" =
+ { "Bus. Hist. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Business Lawyer" =
+ { "Bus. Lawyer" 'jname := }
+ 'skip$
+ if$
+ s "California Management Review" =
+ { "Calif. Manage. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Cambridge Journal of Economics" =
+ { "Cambridge J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Canadian Journal of Administrative Sciences" =
+ { "Can. J. Adm. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Canadian Journal of Economics" =
+ { "Can. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "China Economic Review" =
+ { "China. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Climate Change Economics" =
+ { "Clim. Change Econ." 'jname := }
+ 'skip$
+ if$
+ s "Climate Policy" =
+ { "Clim. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Communications in Statistics – Part A: Theory and Methods" =
+ { "Commun. Stat.-Theor. M." 'jname := }
+ 'skip$
+ if$
+ s "Computational Economics" =
+ { "Computation. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Computational Statistics" =
+ { "Computation. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Computational Statistics and Data Analysis" =
+ { "Comput. Stat. Data An." 'jname := }
+ 'skip$
+ if$
+ s "Contemporary Accounting Research" =
+ { "Contemp. Account. Res." 'jname := }
+ 'skip$
+ if$
+ s "Contemporary Economic Policy" =
+ { "Contemp. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Defence and Peace Economics" =
+ { "Defence Peace Econ." 'jname := }
+ 'skip$
+ if$
+ s "Development Economics" =
+ { "Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Eastern European Economics" =
+ { "Eastern Eur. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Ecological Economics" =
+ { "Ecol. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Econometric Theory" =
+ { "Economet. Theor." 'jname := }
+ 'skip$
+ if$
+ s "Econometrica" =
+ { "Econometrica" 'jname := }
+ 'skip$
+ if$
+ s "Economic and Industrial Democracy" =
+ { "Econ. Ind. Democr." 'jname := }
+ 'skip$
+ if$
+ s "Economic Development and Cultural Change" =
+ { "Econ. Dev. Cult. Change" 'jname := }
+ 'skip$
+ if$
+ s "Economic Development and Cultural Change" =
+ { "Economist.-Netherland" 'jname := }
+ 'skip$
+ if$
+ s "Economic Development Quarterly" =
+ { "Econ. Dev. Q." 'jname := }
+ 'skip$
+ if$
+ s "Economic Geography" =
+ { "Econ. Geogr." 'jname := }
+ 'skip$
+ if$
+ s "Economic History Review" =
+ { "Econ. Hist. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Economic Inquiry" =
+ { "Econ. Inq." 'jname := }
+ 'skip$
+ if$
+ s "Economic Journal" =
+ { "Econ. J." 'jname := }
+ 'skip$
+ if$
+ s "Economic Modelling" =
+ { "Econ. Model." 'jname := }
+ 'skip$
+ if$
+ s "Economic Policy" =
+ { "Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Economic Record" =
+ { "Econ. Rec." 'jname := }
+ 'skip$
+ if$
+ s "Economic Theory" =
+ { "Econ. Theor." 'jname := }
+ 'skip$
+ if$
+ s "Economica" =
+ { "Economica" 'jname := }
+ 'skip$
+ if$
+ s "Economics and Philosophy" =
+ { "Econ. Philos." 'jname := }
+ 'skip$
+ if$
+ s "Economics Letters" =
+ { "Econ. Lett." 'jname := }
+ 'skip$
+ if$
+ s "Economics of Education Review" =
+ { "Econ. Educ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Economics of Energy \& Environmental Policy" =
+ { "Econ. Energ. Environ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Economics of Transition" =
+ { "Econ. Transit." 'jname := }
+ 'skip$
+ if$
+ s "Economy and Society" =
+ { "Econ. Soc." 'jname := }
+ 'skip$
+ if$
+ s "Ekonomicky Casopis" =
+ { "Ekon. Cas." 'jname := }
+ 'skip$
+ if$
+ s "Ekonomiska Samfundets Tidskrift" =
+ { "Ekon. Samf. Tidskr." 'jname := }
+ 'skip$
+ if$
+ s "Emerging Markets Finance and Trade" =
+ { "Emerg. Mark. Financ. Tr." 'jname := }
+ 'skip$
+ if$
+ s "Energy Economics" =
+ { "Energ. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Energy Journal" =
+ { "Energ. J." 'jname := }
+ 'skip$
+ if$
+ s "Energy Policy" =
+ { "Energ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Entrepreneurship \& Regional Development" =
+ { "Entrep. Region. Dev." 'jname := }
+ 'skip$
+ if$
+ s "Entrepreneurship Theory and Practice" =
+ { "Entrep. Theory Pract." 'jname := }
+ 'skip$
+ if$
+ s "Environment and Development Economics" =
+ { "Environ. Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Environmental and Resource Economics" =
+ { "Environ. Resour. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Environmental Economics and Policy Studies" =
+ { "Environ. Econ. Policy Stud." 'jname := }
+ 'skip$
+ if$
+ s "Environmental Science and Policy" =
+ { "Environ. Sci. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Environmental Science \& Technology" =
+ { "Environ. Sci. Technol." 'jname := }
+ 'skip$
+ if$
+ s "Eurasian Geography and Economics " =
+ { "Eurasian Geogr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "European Economic Review" =
+ { "Eur. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "European Journal of Industrial Relations" =
+ { "Eur. J. Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "European Review of Agricultural Economics" =
+ { "Eur. Rev. Agric. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Europe-Asia Studies" =
+ { "Europe-Asia Stud." 'jname := }
+ 'skip$
+ if$
+ s "Explorations in Economic History" =
+ { "Explor. Econ. Hist." 'jname := }
+ 'skip$
+ if$
+ s "Feminist Economics" =
+ { "Fem. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Finance a Uver" =
+ { "Financ. Uver." 'jname := }
+ 'skip$
+ if$
+ s "Finance and Stochastics" =
+ { "Financ. Stoch." 'jname := }
+ 'skip$
+ if$
+ s "Financial Analysts Journal" =
+ { "Financ. Anal. J." 'jname := }
+ 'skip$
+ if$
+ s "Financial Management" =
+ { "Financ. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Fiscal Studies" =
+ { "Fisc. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Food Policy" =
+ { "Food. Policy." 'jname := }
+ 'skip$
+ if$
+ s "Futures" =
+ { "Futures" 'jname := }
+ 'skip$
+ if$
+ s "Games and Economic Behavior" =
+ { "Game Econ. Behav." 'jname := }
+ 'skip$
+ if$
+ s "Health Economics" =
+ { "Health Econ." 'jname := }
+ 'skip$
+ if$
+ s "Hitotsubashi Journal of Economics" =
+ { "Hitotsub. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "IMF Staff Papers" =
+ { "Imf. Staff. Papers" 'jname := }
+ 'skip$
+ if$
+ s "Industrial and Corporate Change" =
+ { "Ind. Corp. Change" 'jname := }
+ 'skip$
+ if$
+ s "Industrial and Labor Relations Review" =
+ { "Ind. Labor. Relat. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Industrial Marketing Management" =
+ { "Ind. Market Manag." 'jname := }
+ 'skip$
+ if$
+ s "Industrial Relations" =
+ { "Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "Information Economics and Policy" =
+ { "Info. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Insurance: Mathematics and Economics" =
+ { "Insur. Math. Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Economic Review" =
+ { "Int. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Electronics and Telecommunications" =
+ { "Int. J. Electron. Comm." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Economic Theory" =
+ { "Int. J. Econ. Theory" 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Finance \& Economics" =
+ { "Int. J. Financ. Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Forecasting" =
+ { "Int. J. Forecast." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Game Theory" =
+ { "Int. J. Game. Theory" 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Industrial Organization" =
+ { "Int. J. Ind. Organ." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Manpower" =
+ { "Int. J. Manpow." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Market Research" =
+ { "Int. J. Market Res." 'jname := }
+ 'skip$
+ if$
+ s "International Journal of Research in Marketing" =
+ { "Int. J. Res. Mark." 'jname := }
+ 'skip$
+ if$
+ s "International Labour Review" =
+ { "Int. Labour Rev." 'jname := }
+ 'skip$
+ if$
+ s "International Marketing Review" =
+ { "Int. Market. Rev." 'jname := }
+ 'skip$
+ if$
+ s "International Review of Applied Economics" =
+ { "Int. Rev. Appl. Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Review of Law and Economics" =
+ { "Int. Rev. Law Econ." 'jname := }
+ 'skip$
+ if$
+ s "International Small Business Journal" =
+ { "Int. Small. Bus. J." 'jname := }
+ 'skip$
+ if$
+ s "International Tax and Public Finance" =
+ { "Int. Tax Public Finan." 'jname := }
+ 'skip$
+ if$
+ s "Jahrbücher für Nationalökonomie und Statistik" =
+ { "Jahrb. Natl. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Japan and the World Economy" =
+ { "Jpn. World Econ." 'jname := }
+ 'skip$
+ if$
+ s "Japanese Economic Review" =
+ { "Jpn. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "JCMS-journal of Common Market Studies" =
+ { "Jcms.-J. Common. Mark. S." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Accounting and Economics" =
+ { "J. Account. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Accounting Research" =
+ { "J. Account. Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Advertising" =
+ { "J. Advertising" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Advertising Research" =
+ { "J. Advertising Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of African Economies" =
+ { "J. Afr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Agricultural and Resource Economics" =
+ { "J. Agr. Resour. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Agricultural Economics" =
+ { "J. Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Applied Econometrics" =
+ { "J. Appl. Econom." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Banking and Finance" =
+ { "J. Bank Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business" =
+ { "J. Bus." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business and Economic Statistics" =
+ { "J. Bus. Econ. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business and Psychology" =
+ { "J. Bus. Psychol." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business and Technical Communication" =
+ { "J. Bus. Tech. Commun." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business Ethics" =
+ { "J. Bus. Ethics" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business Research" =
+ { "J. Bus. Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Business Venturing" =
+ { "J. Bus. Venturing." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Cleaner Productiond" =
+ { "J. Clean. Prod." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Comparative Economics" =
+ { "J. Comp. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Consumer Affairs" =
+ { "J. Consum. Aff." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Consumer Research" =
+ { "J. Consum. Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Corporate Finance" =
+ { "J. Corp. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Development Economics" =
+ { "J. Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Econometrics" =
+ { "J. Econometrics" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Behavior and Organization" =
+ { "J. Econ. Behav. Organ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Dynamics and Control" =
+ { "J. Econ. Dyn. Control" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Education" =
+ { "J. Econ. Educ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Geography" =
+ { "J. Econ. Geogr." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Growth" =
+ { "J. Econ. Growth" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic History" =
+ { "J. Econ. Hist." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Integration" =
+ { "J. Econ. Integr." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Issues" =
+ { "J. Econ. Issues." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Perspectives" =
+ { "J. Econ. Perspect." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Psychology" =
+ { "J. Econ. Psychol." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Literature" =
+ { "J. Econ. Lit." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Surveys" =
+ { "J. Econ. Surv." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economic Theory" =
+ { "J. Econ. Theory" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economics" =
+ { "J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Economics and Management Strategy" =
+ { "J. Econ. Manage. Strat." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Environmental Economics and Management" =
+ { "J. Environ. Econ. Manag." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Evolutionary Economics" =
+ { "J. Evol. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Finance" =
+ { "J. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial and Quantitative Analysis" =
+ { "J. Financ. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial Economics" =
+ { "J. Financ. Intermed." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial Intermediation" =
+ { "J. Financ. Mark." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Financial Markets" =
+ { "J. Financ. Quant. Anal." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Forecasting" =
+ { "J. Forecasting." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Futures Markets" =
+ { "J. Futures Market" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Health Economics" =
+ { "J. Health Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Housing Economics" =
+ { "J. Hous. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Human Resources" =
+ { "J. Hum. Resour." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Industrial Economics" =
+ { "J. Ind. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Institutional and Theoretical Economics" =
+ { "J. Inst. Theor. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Integrated Disaster Risk Management" =
+ { "J. Integr. Disaster Risk Manag." 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Business Studies" =
+ { "J. Int. Bus. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Economics" =
+ { "J. Int. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Marketing" =
+ { "J. Int. Marketing" 'jname := }
+ 'skip$
+ if$
+ s "Journal of International Money and Finance" =
+ { "J. Int. Money Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Labor Economics" =
+ { "J. Labor Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Labor Research" =
+ { "J. Labor Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Law and Economics" =
+ { "J. Law. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Law, Economics, and Organization" =
+ { "J. Law. Econ. Organ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Macroeconomics" =
+ { "J. Macroecon." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Management" =
+ { "J. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Management Studies" =
+ { "J. Manage. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Marketing" =
+ { "J. Marketing" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Marketing Research" =
+ { "J. Marketing Res." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Mathematical Economics" =
+ { "J. Math. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Media Economics" =
+ { "J. Media Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Monetary Economics" =
+ { "J. Monetary. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Money, Credit and Banking" =
+ { "J. Money Credit Bank." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Policy Modeling" =
+ { "J. Policy Model." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Political Economy" =
+ { "J. Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Population Economics" =
+ { "J. Popul. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Portfolio Management" =
+ { "J. Portfolio Manage." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Post Keynesian Economics" =
+ { "J. Post Keynesian Ec." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Product Innovation Management" =
+ { "J. Prod. Innovat. Manag." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Productivity Analysis" =
+ { "J. Prod. Anal." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Public Economics" =
+ { "J. Public Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Public Policy and Marketing" =
+ { "J. Public Policy Mark." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Real Estate Finance and Economics" =
+ { "J. Real Estate Financ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Regulatory Economics" =
+ { "J. Regul. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Retailing" =
+ { "J. Retailing" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Risk and Insurance" =
+ { "J. Risk. Insur" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Risk and Uncertainty" =
+ { "J. Risk Uncertainty" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Statistical Computation and Simulation" =
+ { "J. Stat. Comput. Sim." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Statistical Planning and Inference" =
+ { "J. Stat. Plan. Infer." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the Academy of Marketing Science" =
+ { "J. Acad. Market. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the American Statistical Association" =
+ { "J. Am. Stat. Assoc." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the European Economic Association" =
+ { "J. Eur. Econ. Assoc." 'jname := }
+ 'skip$
+ if$
+ s "Journal of the Japanese and International Economies" =
+ { "J. Jpn. Int. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Time Series Analysis" =
+ { "J. Time Ser. Anal." 'jname := }
+ 'skip$
+ if$
+ s "Journal of Transport Economics and Policy" =
+ { "J. Transp. Econ. Policy" 'jname := }
+ 'skip$
+ if$
+ s "Journal of Urban Economics" =
+ { "J. Urban Econ." 'jname := }
+ 'skip$
+ if$
+ s "Journal of World Business" =
+ { "J. World. Bus." 'jname := }
+ 'skip$
+ if$
+ s "Kyklos" =
+ { "Kyklos" 'jname := }
+ 'skip$
+ if$
+ s "Labor History" =
+ { "Labor Hist." 'jname := }
+ 'skip$
+ if$
+ s "Labour Economics" =
+ { "Labour Econ." 'jname := }
+ 'skip$
+ if$
+ s "Land Economics" =
+ { "Land Econ." 'jname := }
+ 'skip$
+ if$
+ s "Long Range Planning" =
+ { "Long Range Plann." 'jname := }
+ 'skip$
+ if$
+ s "Macroeconomic Dynamics" =
+ { "Macroecon. Dyn." 'jname := }
+ 'skip$
+ if$
+ s "Management Science" =
+ { "Manage. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Manchester School" =
+ { "Manch. Sch." 'jname := }
+ 'skip$
+ if$
+ s "Marketing Letters" =
+ { "Market. Lett." 'jname := }
+ 'skip$
+ if$
+ s "Marketing Science" =
+ { "Market. Sci." 'jname := }
+ 'skip$
+ if$
+ s "Materials Transactions" =
+ { "Mater. Trans." 'jname := }
+ 'skip$
+ if$
+ s "Mathematical Finance" =
+ { "Math. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Monthly Labor Review" =
+ { "Mon. Labor Rev." 'jname := }
+ 'skip$
+ if$
+ s "National Tax Journal" =
+ { "Natl. Tax. J." 'jname := }
+ 'skip$
+ if$
+ s "New England Economic Review" =
+ { "New Engl. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "New Political Economy" =
+ { "New Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Open Economies Review" =
+ { "Open. Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Organizational Dynamics" =
+ { "Organ. Dyn." 'jname := }
+ 'skip$
+ if$
+ s "Oxford Bulletin of Economics and Statistics" =
+ { "Oxford. B. Econ. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Oxford Economic Papers" =
+ { "Oxford Econ. Pap." 'jname := }
+ 'skip$
+ if$
+ s "Oxford Review of Economic Policy" =
+ { "Oxford. Rev. Econ. Pol." 'jname := }
+ 'skip$
+ if$
+ s "Politicka Ekonomie" =
+ { "Polit. Ekon." 'jname := }
+ 'skip$
+ if$
+ s "Population and Development Review" =
+ { "Popul. Dev. Rev." 'jname := }
+ 'skip$
+ if$
+ s "Post-Communist Economies" =
+ { "Post.-Communist. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Post-Soviet Affairs" =
+ { "Post.-Sov. Aff." 'jname := }
+ 'skip$
+ if$
+ s "Psychology \& Marketing" =
+ { "Psychol. Market." 'jname := }
+ 'skip$
+ if$
+ s "Public Choice" =
+ { "Public. Choice." 'jname := }
+ 'skip$
+ if$
+ s "Quantitative Finance" =
+ { "Quant. Financ." 'jname := }
+ 'skip$
+ if$
+ s "Quarterly Journal of Economics" =
+ { "Q. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "R\&D Management" =
+ { "R.\&D. Manage." 'jname := }
+ 'skip$
+ if$
+ s "RAND Journal of Economics" =
+ { "Rand. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Real Estate Economics" =
+ { "Real Estate Econ." 'jname := }
+ 'skip$
+ if$
+ s "Regional Science and Urban Economics" =
+ { "Reg. Sci. Urban. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Regional Studies" =
+ { "Reg. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Relations Industrielles-Industrial Relations" =
+ { "Relat. Ind.-Ind. Relat." 'jname := }
+ 'skip$
+ if$
+ s "Research-Technology Management" =
+ { "Res. Technol. Manage." 'jname := }
+ 'skip$
+ if$
+ s "Resource and Energy Economics" =
+ { "Resour. Energy. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of Accounting Studies" =
+ { "Rev. Acc. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Review of Agricultural Economics" =
+ { "Rev. Agr. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of Development Economics" =
+ { "Rev. Dev. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of Economic Dynamics" =
+ { "Rev. Econ. Dynam." 'jname := }
+ 'skip$
+ if$
+ s "Review of Economic Studies" =
+ { "Rev. Econ. Stat." 'jname := }
+ 'skip$
+ if$
+ s "Review of Economics and Statistics" =
+ { "Rev. Econ. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Review of Financial Studies" =
+ { "Rev. Financ. Stud." 'jname := }
+ 'skip$
+ if$
+ s "Review of Income and Wealth" =
+ { "Rev. Income Wealth" 'jname := }
+ 'skip$
+ if$
+ s "Review of Industrial Organization" =
+ { "Rev. Ind. Organ." 'jname := }
+ 'skip$
+ if$
+ s "Review of International Economics" =
+ { "Rev. Int. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of International Political Economy" =
+ { "Rev. Int. Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Review of World Economics" =
+ { "Rev. World Econ." 'jname := }
+ 'skip$
+ if$
+ s "Scandinavian Journal of Economics" =
+ { "Scand. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Scottish Journal of Political Economy" =
+ { "Scot. J. Polit. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Small Business Economics" =
+ { "Small. Bus. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Social Choice and Welfare" =
+ { "Soc. Choice Welfare" 'jname := }
+ 'skip$
+ if$
+ s "South African Journal of Economics" =
+ { "S. Afr. J. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Southern Economic Journal" =
+ { "South. Econ. J." 'jname := }
+ 'skip$
+ if$
+ s "Strategic Management Journal" =
+ { "Statistics." 'jname := }
+ 'skip$
+ if$
+ s "Strategic Management Journal" =
+ { "Strategic Manage. J." 'jname := }
+ 'skip$
+ if$
+ s "Studies in Nonlinear Dynamics and Econometrics" =
+ { "Stoch. Anal. Appl." 'jname := }
+ 'skip$
+ if$
+ s "Studies in Nonlinear Dynamics and Econometrics" =
+ { "Stud. Nonlinear. Dyn. E." 'jname := }
+ 'skip$
+ if$
+ s "Supply Chain Management" =
+ { "Supply. Chain. Manag." 'jname := }
+ 'skip$
+ if$
+ s "Sustainability" =
+ { "Sustainability" 'jname := }
+ 'skip$
+ if$
+ s "Technological Forecasting and Social Change" =
+ { "Technol. Forecast. Soc." 'jname := }
+ 'skip$
+ if$
+ s "Theory and Decision" =
+ { "Theor. Decis." 'jname := }
+ 'skip$
+ if$
+ s "Tijdschrift voor Economische en Sociale Geografie" =
+ { "Tijdschr. Econ. Soc. Ge." 'jname := }
+ 'skip$
+ if$
+ s "Trimestre Economico" =
+ { "Trimest. Econ." 'jname := }
+ 'skip$
+ if$
+ s "Work and Occupations" =
+ { "Work Occupation." 'jname := }
+ 'skip$
+ if$
+ s "Work, Employment and Society" =
+ { "Work Employ. Soc." 'jname := }
+ 'skip$
+ if$
+ s "World Bank Economic Review" =
+ { "World Bank Econ. Rev." 'jname := }
+ 'skip$
+ if$
+ s "World Bank Research Observer" =
+ { "World Bank Res. Obser." 'jname := }
+ 'skip$
+ if$
+ s "World Development" =
+ { "World Dev." 'jname := }
+ 'skip$
+ if$
+ s "World Economy" =
+ { "World Econ." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
+%%% journal
+FUNCTION {format.journal}
+{ journal empty$
+ { "" }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
+ if$
+}
+
+%%% title for book
+FUNCTION {format.book}
+{ title empty$
+ { "" }
+ { bst.book.pre title * bst.book.post * }
+ if$
+}
+
+FUNCTION {format.url}
+{ url empty$
+ { "" }
+ { type$ "online" = bst.show.url or
+ { bst.url.pre url * bst.url.post *
+ access empty$
+ { "" * }
+ { bst.access.pre * access * bst.access.post * }
+ if$
+ }
+ { "" }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$ bst.show.doi not or
+ { "" }
+ { bst.doi.pre doi * bst.doi.post * }
+ if$
+}
+
+FUNCTION {format.url.doi}
+{ url empty$
+ { format.doi }
+ { doi empty$
+ { format.url }
+ { bst.url.doi #0 =
+ { format.url output.nocomma
+ format.doi }
+ { bst.url.doi #1 =
+ { format.url }
+ { format.doi }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% and others
+FUNCTION {bst.and.others.output}
+{ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.others.nameorder }
+ { bst.and.others }
+ if$
+}
+
+%%% author and editor
+
+%%% name
+FUNCTION {format.names}
+{ 's :=
+ % insert 1 to nameptr.
+ #1 'nameptr :=
+ % Set the number of authors to numnames.
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ % Repeat if namesleft > 0
+ { namesleft #0 > }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ if$
+
+ nameptr #1 >
+ % The second or later authors
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+% For JPE, we define `format.name.ed` in addition to `format.name`.
+FUNCTION {format.names.ed}
+{ 's :=
+ % insert 1 to nameptr.
+ #1 'nameptr :=
+ % Set the number of authors to numnames.
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ % Repeat if namesleft > 0
+ { namesleft #0 > }
+ { nameptr #1 =
+ % First author
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ % The second or later authors
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+
+ nameptr #1 >
+ % The second or later authors
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+% remove successive periods (commas) from author
+FUNCTION {remove.ss.period.auth}
+{ 's :=
+ s format.names 'tempa :=
+ bst.author.post 'tempb :=
+ tempb #1 #1 substring$ "}" =
+ { tempa tempb * }
+ { tempa #-1 #1 substring$ tempb #1 #1 substring$ =
+ { tempa tempb #2 global.max$ substring$ * }
+ { tempa tempb * }
+ if$
+ }
+ if$
+}
+
+% <prev name list> <new name list> compare.names <modified name list>
+FUNCTION {compare.names.aer}
+{ 's :=
+ 'tempa :=
+
+% "current.author = " s * "\\" * write$ newline$
+% "prev.author = " tempa * "\\" * write$ newline$
+
+ tempa num.names$ 'len1.aer := % len1 = the number of previous authors
+ s num.names$ 'len2.aer := % len2 = the number of current authors
+
+% len1.aer := min(len1.aer,len2.aer)
+% len1 -> min{ the number of previous authors, the number of current authors }
+ len1.aer len2.aer >
+ { len2.aer 'len1.aer := }
+ { }
+ if$
+
+% start with an empty string, then while the components are the same
+% add "\bysame"
+ ""
+ #1 'i.aer :=
+
+ { i.aer len1.aer > not }
+ { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$
+ s i.aer "{ff }{vv }{ll}{ jj}" format.name$
+ =
+ { #1 i.aer <
+ { " and " * } % \bysame で省略する著者の前につく and
+ { }
+ if$
+ "\bysame{}" *
+ i.aer #1 + 'i.aer := }
+ { #-1 'len1.aer := }
+ if$
+ }
+ while$
+
+% add the rest of the second string
+ { i.aer len2.aer > not }
+ { #1 i.aer <
+ { " and " * }
+ { }
+ if$
+ s i.aer "{ff }{vv }{ll}{ jj}" format.name$ *
+ i.aer #1 + 'i.aer :=
+ }
+ while$
+}
+
+%%% author
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { bst.use.bysame #2 =
+ { prev.author.aer author compare.names.aer 's :=
+ author 'prev.author.aer := }
+ { author 's := }
+ if$
+ extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre s remove.ss.period.auth * }
+ if$
+ }
+ if$
+}
+
+%%% editor
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { bst.use.bysame #2 =
+ { prev.author.aer editor compare.names.aer 's :=
+ editor 'prev.author.aer := }
+ { editor 's := }
+ if$
+ extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre s remove.ss.period.auth * }
+ if$
+ s num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.authors.alt}
+{ author empty$
+ { "" }
+ { extra.label.bysame "bysame" =
+ {"\bysame "}
+ { bst.author.pre author remove.ss.period.auth * }
+ if$
+ }
+ if$
+}
+
+%%% editor
+FUNCTION {format.editors.alt}
+{ editor empty$
+ { "" }
+ { extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre editor remove.ss.period.auth * }
+ if$
+ editor num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ if$
+}
+
+%%% format.in.ed.booktitle
+FUNCTION {format.editors.x}
+{ editor empty$
+ { "" }
+ { bst.editor.btitle.order #0 =
+ { "" }
+ { editor num.names$ #1 >
+ { " edited by " }
+ { " edited by " }
+% { bst.editors " by " * }
+% { bst.editor " by " * }
+ if$
+ }
+ if$
+ editor format.names.ed *
+ bst.editor.btitle.order #0 =
+ { editor num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ { "" * }
+ if$
+ }
+ if$
+}
+
+%%% Remove commas in the cases like "?." and "?,".
+FUNCTION {remove.irrelevant.period.comma}
+{ 's :=
+ s empty$
+ { "" }
+ { s #-1 #3 substring$ "?,'" =
+ s #-1 #3 substring$ "?.'" = or
+ { s #-3 global.max$ substring$ "'" * }
+ { s #-1 #4 substring$ "?,''" =
+ s #-1 #4 substring$ "?.''" = or
+ { s #-4 global.max$ substring$ "''" * }
+ { s #-1 #2 substring$ "?," =
+ s #-1 #2 substring$ "?." = or
+ { s #-2 global.max$ substring$ "" * }
+ { s #-1 #3 substring$ "?,~" =
+ s #-1 #3 substring$ "?.~" = or
+ { s #-4 global.max$ substring$ "?~" * }
+ 's
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% title
+FUNCTION {format.title.sub}
+{ bst.title.lower.case #0 =
+ { bst.title.pre title * bst.title.post * }
+ { bst.title.pre title "t" change.case$ * bst.title.post * }
+ if$
+}
+
+%%% title
+FUNCTION {format.title}
+{ title empty$
+ bst.hide.title #0 = not or
+ { "" }
+ { format.title.sub remove.irrelevant.period.comma }
+ if$
+}
+
+%%% title for misc.
+FUNCTION {format.misc.title}
+{ title empty$
+ { "" }
+ { bst.title.pre title * bst.title.post * }
+ if$
+}
+
+% Convert "-" to "--" (for pages field)
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ %% while$
+ { 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$
+}
+
+%%% year
+FUNCTION {format.year}
+{ year empty$
+ { "there's no year in " cite$ * warning$
+ ", " }
+ { type$ "article" =
+ { bst.year.pre year * extra.label * bst.year.post * }
+ { bst.year.na.pre year * extra.label * bst.year.na.post * }
+ if$
+ }
+ if$
+}
+
+%%% page for book
+FUNCTION {format.book.pages}
+{ pages empty$
+ { "" }
+ { bst.pages.pre pages * bst.pages.post * }
+ if$
+}
+
+%%% Attach tie for the string with two or less characters.
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+%%% volume for book
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bst.volume.pre volume * bst.volume.post *
+ series empty$
+ 'skip$
+ %% If there is series field
+ { " of " * series * bst.series.post * }
+ if$
+% "volume and number" number either.or.check
+ }
+ if$
+}
+
+%%% series
+FUNCTION {output.series}
+{ series empty$
+ { "" }
+ { bst.series.pre series * bst.series.post * }
+ if$
+}
+
+%%% number and series
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ bst.hide.month #0 = not or
+ % number is empty
+ { series empty$
+ { "" }
+ % series is not empty.
+ { output.series }
+ if$
+ }
+ % number is not empty$
+ { series empty$
+ { bst.number.pre number * bst.number.post * }
+ % series is not empty.
+ { bst.in bst.series.pre * series * bst.series.post *
+ bst.number.pre * number * bst.number.post * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+%%% Number or not.
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+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$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% edition
+
+% Convert edition to 1st, 2nd, 3rd, 4th etc
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bst.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bst.st * }
+ { duplicate$ "2" =
+ { pop$ bst.nd * }
+ { "3" =
+ { bst.rd * }
+ { bst.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst)
+FUNCTION {convert.edition}
+{ edition extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bst.first }
+ { s "second" = s "2" = or
+ { bst.second }
+ { s "third" = s "3" = or
+ { bst.third }
+ { s "fourth" = s "4" = or
+ { bst.fourth }
+ { s "fifth" = s "5" = or
+ { bst.fifth }
+ { s #1 #1 substring$ is.num
+ { s eng.ord }
+ { edition }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% edition
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * }
+ { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * }
+ if$
+ }
+ if$
+}
+
+%%% month
+FUNCTION {format.month}
+{ month empty$
+ bst.hide.month #0 = not or
+ { "" }
+ { bst.month.pre month * bst.month.post * }
+ if$
+}
+
+%%% year and month
+FUNCTION {format.date}
+{ format.month format.year *
+}
+
+%%% Is multiple pages like 1-100?
+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
+}
+
+%%% pages
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post }
+ { bst.page.pre pages tie.or.space.connect * bst.page.post }
+ if$
+ }
+ if$
+}
+
+%%% number
+FUNCTION {format.number}
+{ number empty$
+ bst.hide.number #0 = not or
+ { "" }
+ { bst.number.pre number * bst.number.post * }
+ if$
+}
+
+%%% volume
+FUNCTION {format.volume}
+{ volume empty$
+ 'skip$
+ { bst.volume.pre volume * bst.volume.post *
+ bst.year.position #3 =
+ { format.year * }
+ 'skip$
+ if$
+ }
+ if$
+}
+
+%%% number, page
+FUNCTION {format.number.pages}
+{ number empty$
+ { format.pages }
+ { format.number format.pages * }
+ if$
+}
+
+%%% volume, page
+FUNCTION {format.volume.pages}
+{ volume empty$
+ { format.pages }
+ { format.volume format.pages * }
+ if$
+}
+
+%%% volume, number, page
+FUNCTION {format.volume.number.pages}
+{ volume empty$
+ { number empty$
+ { format.pages }
+ { format.number format.pages * }
+ if$
+ }
+ { number empty$
+ { format.volume format.pages * }
+ { format.volume format.number * format.pages * }
+ if$
+ }
+ if$
+}
+
+% volume, number, page
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ %% volume is empty.
+ { number empty$
+ %% number is empty.
+ { pages empty$
+ % warning
+ { "there is no volume, number, and pages in " cite$ * warning$ "" }
+ { "" format.pages * }
+ if$
+ }
+ %% number is not empty.
+ % warning
+ { "there's a number but no volume in " cite$ * warning$
+ format.number.pages }
+ if$
+ }
+ %% volume is not empty.
+ { number empty$
+ %% number is empty.
+ { format.volume.pages }
+ %% number is not empty.
+ { format.volume.number.pages }
+ if$
+ }
+ if$
+}
+
+%%% chapter
+FUNCTION {format.chapter}
+{ chapter empty$
+ { "" }
+ { type empty$
+ { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post }
+ { ", " * type " " * chapter * }
+ if$
+ }
+ if$
+}
+
+%%% chapter, pages
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ { pages empty$
+ { "" }
+ { "" format.pages * }
+ if$
+ }
+ { pages empty$
+ { "" format.chapter * }
+ { "" format.chapter * format.pages * }
+ if$
+ }
+ if$
+}
+
+%%% editor and booktitle
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { bst.in format.btitle * }
+ { bst.editor.btitle.order #0 =
+ { bst.in format.editors.x * " " * format.btitle * }
+ { bst.in format.btitle * " " * format.editors.x * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% howpublished
+FUNCTION {format.howpublished}
+{ howpublished empty$
+ { "" }
+ { bst.howpublished.pre howpublished * bst.howpublished.post * }
+ if$
+}
+
+%%% address
+FUNCTION {format.address}
+{ address empty$
+ { "" }
+ { bst.address.pre address * bst.address.post * }
+ if$
+}
+
+%%% publisher
+FUNCTION {format.publisher}
+{ publisher empty$
+ { "" }
+ { bst.publisher.pre publisher * bst.publisher.post * }
+ if$
+}
+
+%%% organization
+FUNCTION {format.organization}
+{ organization empty$
+ { "" }
+ { bst.organization.pre organization * bst.organization.post * }
+ if$
+}
+
+%% publisher and address
+FUNCTION {output.publisher.address}
+{ address empty$
+ { format.publisher "publisher" output.check.nocomma }
+ { bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+}
+
+%% address, organization, publisher
+FUNCTION {output.address.organization.publisher}
+{ address empty$
+ %% address is empty
+ { organization empty$
+ %% organization is empty
+ { publisher empty$
+ 'skip$
+ { format.publisher "publisher" output.check.nocomma }
+ if$
+ }
+ %% organization is not empty
+ { publisher empty$
+ { format.organization "organization" output.check.nocomma }
+ { format.organization "organization" output.check.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ if$
+ }
+ if$
+ }
+ %% address is not empty
+ { organization empty$
+ %% organization is empty
+ { publisher empty$
+ %% publisher is empty
+ { format.address output.nocomma }
+ %% publisher is not empty
+ { bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+ }
+ %% organization is not empty
+ { publisher empty$
+ %% publisher is empty
+ { format.organization "organization" output.check.nocomma
+ format.address output.nocomma }
+ %% publisher is not empty
+ { format.organization "organization" output.check.nocomma
+ bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% misc
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$ " " type * }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bst.techrep }
+ { " " type * }
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+%%% phdthesis
+FUNCTION {format.phd}
+{ bst.phdthesis }
+
+%%% mastersthesis
+FUNCTION {format.mthesis}
+{ bst.mthesis }
+
+%%% school
+FUNCTION {format.school}
+{ school empty$
+ { "" }
+ { bst.school.pre school * bst.school.post * }
+ if$
+}
+
+%%% institution
+FUNCTION {format.institution}
+{ institution empty$
+ { "" }
+ { bst.institution.pre institution * bst.institution.post * }
+ if$
+}
+
+%%% remove first ? characters.
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {format.note}
+{ note empty$
+ { "" }
+ { bst.note.pre note * bst.note.post * }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \havarditem
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\harvarditem[" write$
+ alabel write$ % alabel <- abbreviated citation
+ "]{" write$
+ flabel write$ % flabel <- full citation
+ "}{" write$
+ cyear write$
+ % cyear = year
+ "}{" write$
+ cite$ write$ % cite$ -> pusch keyword
+ "}" write$
+ % If number index is on
+ bst.use.number.index #0 =
+ 'skip$
+ { index #1 + 'index :=
+ "" 'preone :=
+ "" 'preten :=
+ bst.number.index.digit "1" =
+ 'skip$
+ { bst.number.index.digit "2" =
+ { "\hskip0.5em" 'preone := }
+ { bst.number.index.digit "3" =
+ { "\hskip1em" 'preone :=
+ "\hskip0.5em" 'preten := }
+ 'skip$
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ newline$
+ before.all 'output.state :=
+ ""
+ % number index
+ bst.use.number.index #0 =
+ 'skip$
+ { index #10 <
+ % Insert spaces according to digit of number index.
+ { preone }
+ { index #100 <
+ { preten }
+ { "" }
+ if$
+ }
+ if$
+ bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$
+ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% article
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.journal "journal" output.check.nocomma
+ bst.year.position #2 =
+ { format.date output.nocomma }
+ 'skip$
+ if$
+ format.vol.num.pages output.nocomma
+
+ bst.year.position #1 =
+ { format.date output.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% book
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check.nocomma }
+ { format.authors output.nonnull.nocomma
+ "author and editor" editor either.or.check
+ }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ output.publisher.address
+
+ format.edition output.nocomma
+ format.book.pages output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% booklet
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output.nocomma
+ format.year output.nocomma
+ format.misc.title "title" output.check.nocomma
+ format.howpublished output.nocomma
+ format.address output.nocomma
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% inbook
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check.nocomma }
+ { format.authors output.nonnull.nocomma
+ "author and editor" editor either.or.check
+ }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+% format.book remove.pre.comma "title" output.check.nocomma
+ format.book "title" output.check.nocomma
+ format.edition output.nocomma
+
+ format.bvolume output.nocomma
+ format.chapter.pages "chapter and pages" output.check.nocomma
+ format.number.series output.nocomma
+ output.publisher.address
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% incollection
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.in.ed.booktitle "booktitle" output.check.nocomma
+ format.bvolume output.nocomma
+ % For JPE, publisher and its address are placed before edition,
+ % chapter and page number.
+ output.address.organization.publisher
+ format.edition output.nocomma
+ format.chapter.pages output.nocomma
+% output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% inproceedings
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.in.ed.booktitle "booktitle" output.check.nocomma
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ format.pages output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% conference
+
+FUNCTION {conference}
+{ inproceedings }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% manual
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull.nocomma
+ address output.nocomma
+ }
+ if$
+ }
+ { format.authors output.nonnull.nocomma }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+ author empty$
+ { organization empty$
+ { format.address new.block.check
+ format.address output.nocomma
+ }
+ 'skip$
+ if$
+ }
+ { output.address.organization.publisher }
+ if$
+ format.edition output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% mastersthesis
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+ format.mthesis format.thesis.type output.nonnull.nocomma
+ format.school "school" output.check.nocomma
+ format.address output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% misc
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.misc.title output.nocomma
+ format.howpublished output.nocomma
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+ empty.misc.check
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Online
+
+FUNCTION {online}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.misc.title output.nocomma
+ format.howpublished output.nocomma
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+ empty.misc.check
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% phdthesis
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+ format.phd
+ format.thesis.type output.nonnull.nocomma
+ format.school "school" output.check.nocomma
+ address empty$
+ 'skip$
+ { format.address output.nocomma }
+ if$
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% proceedings
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output.nocomma }
+ { format.editors output.nonnull.nocomma }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.btitle remove.pre.comma "title" output.check.nocomma
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% techreport
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+ format.tr.number output.nonnull.nocomma
+ format.institution "institution" output.check.nocomma
+ format.address output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% unpublished
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ bst.year.position #0 = not
+ { format.date remove.pre.comma output.nocomma }
+ { month empty$
+ 'skip$
+ { format.month remove.pre.comma output.nocomma }
+ if$
+ }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note "note" output.check.nocomma
+ fin.entry
+}
+
+FUNCTION {default.type}
+{ misc }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Alias for month names:
+
+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"}
+
+%%% Read entries:
+READ
+
+%%% Variable for remembering the order of citation.
+INTEGERS { order.num }
+FUNCTION {initialize.order.num}
+{
+ #1 'order.num :=
+}
+%%% Initialize a variables
+EXECUTE {initialize.order.num}
+
+%%% Variable for remembering the order of citation.
+FUNCTION {set.order.cited}
+{
+ order.num 'order.cited :=
+ #1 order.num + 'order.num :=
+}
+%%% Iterate for all entries:
+ITERATE {set.order.cited}
+
+%%% check the value of nameorder field.
+FUNCTION {set.nameorder}
+{ nameorder empty$
+ { "" 'nameorder.temp := }
+ { nameorder 'nameorder.temp := }
+ if$
+}
+%%% Iterate for all entries:
+ITERATE {set.nameorder}
+
+%%% Remove symbols and convert to lowercase.
+FUNCTION {sortify}
+{ purify$ "l" change.case$ }
+
+%%% names for sorting
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+ s nameptr "{ll}{ f}{ j}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { bst.and.others.output *}
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.names.abb}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames bst.and.others.num <
+ { s sort.format.names }
+ { s #1 "{ll}{ f}{ j}" format.name$ " zz " * }
+ if$
+}
+
+%%% Label for full author name.
+FUNCTION {format.lab.names.full}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{vv~}{ll}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { ", " * t * }
+ if$
+ }
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 >
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.cite.and.nameorder * t * }
+ { bst.cite.ands * t * }
+ if$
+ }
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.cite.and.nameorder * t * }
+ { bst.cite.and * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ numnames #1 > #1 #2 = and {", eds" *} {} if$
+ numnames #1 = #1 #2 = and {", ed" *} {} if$
+}
+
+%%% laberl for abbreviated author name.
+FUNCTION {format.lab.names.abb}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames bst.and.others.num <
+ % if the number of authors is less than bst.and.others.num, full name.
+ { s format.lab.names.full }
+ % if the number of authors is equal or more than bst.and.others.num, abbreviated name.
+ { s #1 "{ll}" format.name$ bst.and.others.output * }
+ if$
+}
+
+%%% abbreviated author
+FUNCTION {author.key.label.abb}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names.abb }
+ if$
+}
+
+%%% full author
+FUNCTION {author.key.label.full}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names.full }
+ if$
+}
+
+FUNCTION {format.names.full.wo.and}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ll}{, ff}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { " " * t * }
+ { t "others" =
+ { " " * }
+ { numnames #2 >
+ { " " * t * }
+ { " " * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {author.key.full.wo.and}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.names.full.wo.and }
+ if$
+}
+
+FUNCTION {author.editor.key.full.wo.and}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.names.full.wo.and }
+ if$
+ }
+ { author format.names.full.wo.and }
+ if$
+}
+
+FUNCTION {editor.key.organization.key.full.wo.and}
+{ 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.names.full.wo.and }
+ if$
+}
+
+FUNCTION {author.key.organization.key.full.wo.and}
+{ 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.names.full.wo.and }
+ if$
+}
+
+%%% abbreviated author
+FUNCTION {author.editor.key.label.abb}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names.abb }
+ if$
+ }
+ { author format.lab.names.abb }
+ if$
+}
+
+%%% full author
+FUNCTION {author.editor.key.label.full}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names.full }
+ if$
+ }
+ { author format.lab.names.full }
+ if$
+}
+
+FUNCTION {author.key.organization.label.full}
+{ 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.full }
+ if$
+}
+
+FUNCTION {author.key.organization.label.abb}
+{ 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.abb }
+ if$
+}
+
+FUNCTION {editor.key.organization.label.full}
+{ 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.full }
+ if$
+}
+
+FUNCTION {editor.key.organization.label.abb}
+{ 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.abb }
+ if$
+}
+
+%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0
+FUNCTION {reverse.num}
+{ 's :=
+ s "1" =
+ { "8" 'year.num := }
+ { s "2" =
+ { "7" 'year.num := }
+ { s "3" =
+ { "6" 'year.num := }
+ { s "4" =
+ { "5" 'year.num := }
+ { s "5" =
+ { "4" 'year.num := }
+ { s "6" =
+ { "3" 'year.num := }
+ { s "7" =
+ { "2" 'year.num := }
+ { s "8" =
+ { "1" 'year.num := }
+ { s "9" =
+ { "0" 'year.num := }
+ { s "0" =
+ { "9" 'year.num := }
+ { "9" 'year.num := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ year.num
+}
+
+%%% Convert year (large number -> small number)
+FUNCTION {convert.year}
+{ 't :=
+ bst.reverse.year #0 =
+ { t 'tt := }
+ { t #1 #1 substring$ reverse.num
+ t #2 #1 substring$ reverse.num *
+ t #3 #1 substring$ reverse.num *
+ t #4 #1 substring$ reverse.num * 'tt := }
+ if$
+ tt
+}
+
+%%% cyear
+FUNCTION {calc.cyear}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.full.wo.and
+ { type$ "proceedings" =
+ 'editor.key.organization.key.full.wo.and
+ { type$ "manual" =
+ 'author.key.organization.key.full.wo.and
+ 'author.key.full.wo.and
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year empty$
+ { "2199" 'cyear := }
+ { year 'cyear := }
+ if$
+ year empty$
+ { " " "2199" convert.year * field.or.null * }
+ { " " year convert.year * field.or.null * }
+ if$
+ sortify 'sort.label :=
+ % For debug
+ econ.debug #0 = not
+ { "sort.label = ``\texttt{" write$
+ sort.label write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+ pop$
+}
+
+FUNCTION {calc.sort.label.abb}
+{ author empty$
+ { editor empty$
+ { "" }
+ { editor 's := }
+ if$
+ }
+ { author 's := }
+ if$
+ s sort.format.names.abb 't :=
+ year empty$
+ { t sortify " " * "2199" convert.year * 'sort.label.abb := }
+ { t sortify " " * year convert.year * 'sort.label.abb := }
+ if$
+ econ.debug #0 = not
+ { "sort.label.abb = ``\texttt{" write$
+ sort.label.abb write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% flabel
+FUNCTION {calc.flabel}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label.full
+ { type$ "proceedings" =
+ 'editor.key.organization.label.full
+ { type$ "manual" =
+ 'author.key.organization.label.full
+ 'author.key.label.full
+ if$
+ }
+ if$
+ }
+ if$
+ 'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
+ % For debug
+ econ.debug #0 = not
+ { "flabel = ``\texttt{" write$
+ flabel write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% alabel
+FUNCTION {calc.alabel}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label.abb
+ { type$ "proceedings" =
+ 'editor.key.organization.label.abb
+ { type$ "manual" =
+ 'author.key.organization.label.abb
+ 'author.key.label.abb
+ if$
+ }
+ if$
+ }
+ if$
+ 'alabel :=
+ % For debug
+ econ.debug #0 = not
+ { "alabel = ``\texttt{" write$
+ alabel write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% title for sorting
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+%%% author for sorting
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+%%% editor for sorting
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {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$
+}
+
+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$
+}
+
+%%% 1,...,9 -> 001,...,009
+%%% 10,...,99 -> 010,...,099
+FUNCTION {add.zero.to.number}
+{ 's :=
+ s text.length$ #1 =
+ { "00" s * }
+ { s text.length$ #2 =
+ { "0" s * }
+ { s }
+ if$
+ }
+ if$
+}
+
+%% entry type
+FUNCTION {bst.sort.entry.type.order}
+{ 'item.type :=
+ item.type "article" =
+ { "01" }
+ { item.type "book" =
+ { "02" }
+ { item.type "booklet" =
+ { "03" }
+ { item.type "comment" =
+ { "04" }
+ { item.type "conference" =
+ { "05" }
+ { item.type "inbook" =
+ { "06" }
+ { item.type "incollection" =
+ { "07" }
+ { item.type "inproceedings" =
+ { "08" }
+ { item.type "manual" =
+ { "09" }
+ { item.type "masterthesis" =
+ { "10" }
+ { item.type "misc" =
+ { "11" }
+ { item.type "phdthesis" =
+ { "12" }
+ { item.type "proceedings" =
+ { "13" }
+ { item.type "techreport" =
+ { "14" }
+ { item.type "unpublished" =
+ { "15" }
+ { "16" }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% Create sort.key$: absorder -> author -> year -> order -> month -> title.
+FUNCTION {presort.one}
+{
+ bst.no.sort #0 = not
+ { order.cited int.to.str$ add.zero.to.number " " * }
+ { "" }
+ if$
+ bst.sort.year #0 = not
+ %% Use year field as the primary sorting key.
+ { year convert.year * }
+ 'skip$
+ if$
+ bst.sort.entry.type #0 = not
+ { type$ bst.sort.entry.type.order * " " * }
+ 'skip$
+ if$
+ absorder empty$
+ { "/// " * }
+ { bst.notuse.absorder.field #0 =
+ { absorder "999" =
+ { "zzz " * }
+ { absorder add.zero.to.number "000" =
+ { "/// " * }
+ { absorder add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ " " *
+ sort.label.abb *
+ " " *
+ type$ "book" = type$ "inbook" = or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ * " " *
+ " "
+ order empty$
+ { "/// " * }
+ { bst.notuse.order.field #0 =
+ { order "999" =
+ { "zzz " * }
+ { order add.zero.to.number "000" =
+ { "/// " * }
+ { order add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ month empty$
+ { * "/// " * }
+ { month "999" =
+ { * month add.zero.to.number * "zzz " * }
+ { month add.zero.to.number "000" =
+ { * month add.zero.to.number * "/// " * }
+ { * month add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ if$
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+ % For debug
+ econ.debug #0 = not
+ { "``\texttt{" write$
+ sort.key$ write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+FUNCTION {presort.two}
+{
+ bst.no.sort #0 = not
+ { order.cited int.to.str$ add.zero.to.number " " * }
+ { "" }
+ if$
+ bst.sort.year #0 = not
+ %% Use year field as the primary sorting key.
+ { year convert.year * }
+ 'skip$
+ if$
+ bst.sort.entry.type #0 = not
+ { type$ bst.sort.entry.type.order * " " * }
+ 'skip$
+ if$
+ absorder empty$
+ { "/// " * }
+ { bst.notuse.absorder.field #0 =
+ { absorder "999" =
+ { "zzz " * }
+ { absorder add.zero.to.number "000" =
+ { "/// " * }
+ { absorder add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ " " * sort.label * " "
+ order empty$
+ { "/// " * }
+ { bst.notuse.order.field #0 =
+ { order "999" =
+ { "zzz " * }
+ { order add.zero.to.number "000" =
+ { "/// " * }
+ { order add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ month empty$
+ { * "/// " * }
+ { month "999" =
+ { * month add.zero.to.number * "zzz " * }
+ { month add.zero.to.number "000" =
+ { * month add.zero.to.number * "/// " * }
+ { * month add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ if$
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+ % For debug
+ econ.debug #0 = not
+ { "``\texttt{" write$
+ sort.key$ write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% Codes for debugging
+FUNCTION {calc.alabel.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.alabel: alabel = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+FUNCTION {calc.flabel.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.flabel: flabel = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+FUNCTION {presort.one.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {presort.two.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {calc.cyear.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {calc.sort.label.abb.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+%%% alabel
+EXECUTE {calc.alabel.mess}
+ITERATE {calc.alabel}
+
+%%% flabel
+EXECUTE {calc.flabel.mess}
+ITERATE {calc.flabel}
+
+%%% cyear and sort.label
+EXECUTE {calc.cyear.mess}
+ITERATE {calc.cyear}
+
+%%%
+EXECUTE {calc.sort.label.abb.mess}
+ITERATE {calc.sort.label.abb}
+
+%%% Sorting by $sort.key (first time)
+%
+% Sorting is done in two times. This is the first time.
+%
+EXECUTE {presort.one.mess}
+ITERATE {presort.one}
+SORT
+
+FUNCTION {forward.pass}
+{ bst.use.bysame #0 = bst.use.bysame #2 = or
+ % Not use \bysame
+ { last.sort.label sort.label.abb =
+ { 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.abb 'last.sort.label :=
+ }
+ if$
+ }
+ % Use \bysame
+ { last.sort.label sort.label.abb =
+ { 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.abb 'last.sort.label :=
+ }
+ if$
+ author empty$
+ { editor empty$
+ { "" }
+ 'format.editors.alt
+ if$
+ }
+ 'format.authors.alt
+ if$
+ 'this.author :=
+ % format.names 'this.author :=
+ this.author prev.author =
+ { "bysame" 'extra.label.bysame := }
+ { this.author "" =
+ { "abcxyz" }
+ 'this.author
+ if$
+ 'prev.author :=
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ extra.label empty$ not
+ { cyear extra.label * }
+ { cyear "" * }
+ if$
+ "" field.or.null *
+ 'cyear :=
+ extra.label 'next.extra :=
+}
+
+%%% \bysame
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+%%% Sorting by sort.key$ (second time)
+EXECUTE {presort.two.mess}
+ITERATE {presort.two}
+SORT
+
+FUNCTION {reset.prev.author}
+{ "xxyyzz" 'prev.author := }
+
+EXECUTE {reset.prev.author}
+
+FUNCTION {forward.pass.two}
+{ bst.use.bysame #1 =
+ { author empty$
+ { editor empty$
+ { "" }
+ 'format.editors.alt
+ if$
+ }
+ 'format.authors.alt
+ if$
+ 'this.author :=
+ this.author prev.author =
+ { "bysame" 'extra.label.bysame := }
+ { this.author "" =
+ { "abcxyz" }
+ 'this.author
+ if$
+ 'prev.author :=
+ }
+ if$
+ }
+ 'skip$
+ if$
+}
+
+ITERATE {forward.pass.two}
+
+FUNCTION{punctuation}
+{
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+}
+
+EXECUTE {punctuation}
+
+FUNCTION {begin.bib}
+{
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ bst.use.bysame #0 =
+ % Not use \bysame.
+ 'skip$
+ % Use \bysame.
+ { "%%% Definition of \bysame" write$ newline$
+ "\ifx\undefined\bysame" write$ newline$
+ "\newcommand{\bysame}{" bst.bysame.definition * "}" *
+ write$ newline$
+ "\fi" write$ newline$ newline$ }
+ if$
+ %% When number index is attached to the beginning of each item.
+ bst.use.number.index #0 =
+ 'skip$
+ { bst.number.index.digit "1" =
+ % one digit.
+ { bst.number.index.bibhang.one }
+ { bst.number.index.digit "2" =
+ % two digits.
+ { bst.number.index.bibhang.ten }
+ % three or more digits.
+ { bst.number.index.bibhang.hund }
+ if$
+ }
+ if$
+ 'hang :=
+ "%%% Redefinition of \bibhang" write$ newline$
+ "\ifx\undefined\bibhang" write$ newline$
+ "\relax" write$ newline$
+ "\else" write$ newline$
+ "\setlength{\bibhang}{"
+ hang * "}" * write$ newline$
+ "\fi" write$ newline$ newline$
+ }
+ if$
+ "\begin{thebibliography}{xxx}" write$ newline$
+
+ %% Initialize the variable `index'.
+ #0 'index :=
+}
+
+FUNCTION {end.bib}
+{ newline$ "\end{thebibliography}" write$ newline$ }
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+EXECUTE {end.bib}
+
+% --------------------
+% Local Variables:
+% fill-column: 78
+% mode: bst
+% End:
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.bst
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.pdf 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.pdf 2020-02-27 22:03:41 UTC (rev 53937)
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -0,0 +1,56 @@
+%#!pdflatex
+%#BIBTEX bibtex econ-jpe
+
+%############################## Main #################################
+\documentclass[10pt]{article}
+
+%% Use natbib.sty
+\usepackage{natbib}
+\usepackage{newtxtext,newtxmath}
+\usepackage{url}
+\usepackage{graphicx}
+\usepackage{color}
+\definecolor{MyBrown}{rgb}{0.3,0,0}
+\definecolor{MyBlue}{rgb}{0,0,0.3}
+\definecolor{MyRed}{rgb}{0.4,0,0.1}
+\definecolor{MyGreen}{rgb}{0,0.4,0}
+\usepackage[bookmarks=true,%
+bookmarksnumbered=true,%
+colorlinks=true,%
+linkcolor=MyBlue,%
+citecolor=MyRed,%
+filecolor=MyBlue,%
+urlcolor=MyGreen%
+]{hyperref}
+
+\setlength{\topmargin}{-20pt}
+\setlength{\textheight}{648pt}
+\setlength{\oddsidemargin}{15pt}
+\setlength{\textwidth}{440pt}
+
+%#####################################################################
+%######################### Document Starts ###########################
+%#####################################################################
+\begin{document}
+
+This document uses ``\verb|econ-jpe.bst|''. The style like {\itshape Journal of
+Polictical Economy}.
+
+\vspace{1em}
+
+\input{cited-part}
+\nocite{*}
+
+%% bst file:
+\bibliographystyle{econ-jpe}
+\bibliography{../econ-example}
+
+\end{document}
+
+%#####################################################################
+%######################### Document Ends #############################
+%#####################################################################
+% --------------------
+% Local Variables:
+% fill-column: 80
+% End:
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.bst 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -4,8 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Time-stamp: <2018-12-07 18:48:07 st>
-% Version: 2.5
+% Version: 2.7
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -38,8 +37,11 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.5" }
+FUNCTION {econ.version} { "2.7" }
+% File name
+FUNCTION {econ.file} { "econ.bst" }
+
% Debug mode. Non-zero makes debug mode on.
FUNCTION {econ.debug}
{ #0 } % Debug mode off (default).
@@ -61,7 +63,7 @@
%% String entry variable
{ label cyear flabel alabel extra.label sort.label sort.label.abb
- extra.label.bysame nameorder.temp }
+ extra.label.bysame nameorder.temp jname }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -312,8 +314,12 @@
% authors is greater or equal to bst.and.others.num.
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% { #4 }
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -415,6 +421,15 @@
FUNCTION {bst.journal.post}
{ "}" } % (default)
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+{ #0 } % (default)
+% { #1 }
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% editor notation:
@@ -455,7 +470,7 @@
% The string before volume:
%
FUNCTION {bst.volume.pre}
-{ ", Vol. " } % (default)
+{ ", " } % (default)
% The string after volume:
%
@@ -469,18 +484,18 @@
% Hide number. If non-zero, number is suppressed.
FUNCTION {bst.hide.number}
-% { #0 } % #0 -> show number field (default)
-{ #1 } % non-#0 -> Hide number field.
+{ #0 } % #0 -> show number field (default)
+% { #1 } % non-#0 -> Hide number field.
% The string before number:
%
FUNCTION {bst.number.pre}
-{ ", No. " } % (default)
+{ " (" } % (default)
% The string after number:
%
FUNCTION {bst.number.post}
-{ "" } % (default)
+{ ")" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% in
@@ -496,12 +511,12 @@
% The string before page (multiple pages):
%
FUNCTION {bst.pages.pre}
-{ ", pp." } % (default)
+{ ", " } % (default)
% The string before page:
%
FUNCTION {bst.page.pre}
-{ ", p." } % (default)
+{ ", " } % (default)
% The string after page (multiple pages):
%
@@ -649,7 +664,7 @@
% The string before url:
%
FUNCTION {bst.url.pre}
-{ ", URL: \url{" } % (default)
+{ ", \url{" } % (default)
% The string after url:
%
@@ -684,12 +699,12 @@
% The string before DOI:
%
FUNCTION {bst.doi.pre}
-{ ", DOI: \href{http://dx.doi.org/" doi * "}{" * } % (default)
+{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default)
% The string after DOI:
%
FUNCTION {bst.doi.post}
-{ "}" } % (default)
+{ "}}" } % (default)
% How to show URL and DOI fields when both fields exist.
%
@@ -698,9 +713,9 @@
% #2 -> Only DOI field is displayed
%
FUNCTION {bst.url.doi}
-{ #0 } % (default) -> Both fields are displayed
+% { #0 } % -> Both fields are displayed
% { #1 } % -> Only URL field is displayed
-% { #2 } % -> Only DOI field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Other functions:
@@ -716,7 +731,7 @@
% The string that represents Technical report:
%
FUNCTION {bst.techrep}
-{ " Tech. Rep." } % (default)
+{ "Technical Report" } % (default)
% The string that represents master thesis:
%
@@ -1059,11 +1074,37 @@
if$
}
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
%%% journal
FUNCTION {format.journal}
{ journal empty$
{ "" }
- { bst.journal.pre journal * bst.journal.post * }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
if$
}
@@ -1139,56 +1180,62 @@
numnames 'namesleft :=
% Repeat if namesleft > 0
{ namesleft #0 > }
- { nameptr #1 =
- % First author
- { bst.author.name #0 =
- bst.author.name #1 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
- % The second or later authors
- { bst.author.name #0 =
- bst.author.name #2 =
- or
- { bst.first.name.initial #0 =
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
- if$
- }
- { bst.first.name.initial #0 =
- { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
- { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
- if$
- }
- if$
- }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
if$
-
+
nameptr #1 >
% The second or later authors
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
if$
}
if$
@@ -1915,7 +1962,7 @@
FUNCTION {format.tr.number}
{ type empty$
- { "Technical Report" }
+ { bst.techrep }
{ " " type * }
if$
number empty$
@@ -2152,9 +2199,9 @@
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- output.address.organization.publisher
format.edition output.nocomma
format.chapter.pages output.nocomma
+ output.address.organization.publisher
bst.year.position #0 = not
{ format.year "year" output.check.nocomma }
@@ -2399,6 +2446,8 @@
'skip$
if$
+ format.url.doi output.nocomma
+
format.note output.nocomma
fin.entry
}
@@ -2911,6 +2960,15 @@
}
if$
'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
% For debug
econ.debug #0 = not
{ "flabel = ``\texttt{" write$
@@ -3449,10 +3507,10 @@
FUNCTION{punctuation}
{
- "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
- "% This bbl file is created by econ.bst ver." econ.version * write$ newline$
- "% The latest econ.bst is available at" write$ newline$
- "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
}
EXECUTE {punctuation}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -6,7 +6,7 @@
%% Use natbib.sty
\usepackage{natbib}
-\usepackage{mathpazo}
+\usepackage{newtxtext,newtxmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{color}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -6,7 +6,7 @@
%% Use natbib.sty
\usepackage[numbers]{natbib}
-\usepackage{mathpazo}
+\usepackage{newtxtext,newtxmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{color}
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.bst
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.bst (rev 0)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.bst 2020-02-27 22:03:41 UTC (rev 53937)
@@ -0,0 +1,3579 @@
+%% econ.bst: BibTeX style file for papers in economics.
+%
+% Author: Shiro Takeda
+% Maintainer: Shiro Takeda
+% Copyright (C) 2001-2018 Shiro Takeda
+% First-written: <2007/07/28>
+% Version: 2.7
+% Keywords: TeX, BibTeX, bst
+% URL: https://github.com/ShiroTakeda/econ-bst
+
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is Shiro Takeda.
+
+%% Main features of econ.bst.
+
+% "econ.bst" is a BibTeX style file for economics. It provids the following
+% features:
+
+% 1) The author-year type citation (you need "natbib.sty" as well).
+% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style
+% for a specific journal).
+% 3) Highly customizable. You can easily customize reference style as you wish.
+% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018)
+% (http://dx.doi.org/10.1257/aer.20161492).
+
+% Bug reports, requests and suggestions are welcome.
+
+% For changelogs, see CHANGES.txt file.
+
+% version number
+FUNCTION {econ.version} { "2.7" }
+
+% File name
+FUNCTION {econ.file} { "econ.bst" }
+
+% Debug mode. Non-zero makes debug mode on.
+FUNCTION {econ.debug}
+{ #0 } % Debug mode off (default).
+% { #1 } % Debug mode on.
+
+ENTRY
+ %%% Declaration of field
+ { access address author booktitle chapter doi edition editor howpublished
+ institution journal key month note number organization pages publisher
+ school series title type url volume year
+ % Fields specific to econ.bst
+ order absorder nameorder
+ }
+
+ % Definition of entry variable. The entry variable is a variable which has
+ % different values according to different entries.
+ %% Integer entry variable:
+ { order.cited }
+
+ %% String entry variable
+ { label cyear flabel alabel extra.label sort.label sort.label.abb
+ extra.label.bysame nameorder.temp jname }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Functions for customization:
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Use \bysame or not.
+%
+% If set to #0, \bysame is not used.
+% If set to #1, \bysame is used
+% If set to #2, \bysame is used (alternative abbreviation style).
+%
+% Note that integer number is expressed as # + integer in bst file.
+% \bysame is the function that abbreviates succession of the same authors' name by ---.
+%
+% See econ-sample.pdf for details.
+%
+FUNCTION {bst.use.bysame}
+% { #0 } % Not use \bysame
+{ #1 } % -> Use \bysame (default)
+% { #2 } % -> Use \bysame of alternative style.
+
+% The definition of \bysame command.
+%
+FUNCTION {bst.bysame.definition}
+{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default)
+% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The order of fist and last name.
+%
+FUNCTION {bst.author.name}
+{ #0 } % (default)
+% { #1 }
+% { #2 }
+
+% Case of #0: First author -> last-first, other authors -> first-last.
+% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables.
+
+% Case of #1: All authors -> last-first
+% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J.
+
+% Case of #2: All authors -> first-last
+% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Abbreviate first name of authors (editors):
+%
+FUNCTION {bst.first.name.initial}
+{ #0 } % #0 -> full letters (default).
+% { #1 } % Non-zero -> initial letter only.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Decapitalize of strings in title field.
+%
+FUNCTION {bst.title.lower.case}
+{ #0 } % If #0, not decapitalize title (default).
+% { #1 } % If non-#0, decapitalize title
+
+% Hide title filed.
+%
+FUNCTION {bst.hide.title}
+{ #0 } % #0 -> Title field is displayed (default)
+% { #1 } % Non-zer -> Title field is hidden
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hide month.
+%
+FUNCTION {bst.hide.month}
+{ #0 } % #0 -> show month field (default).
+% { #1 } % non-#0 -> hide month field.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Attach number index like plain.bst.
+%
+FUNCTION {bst.use.number.index}
+{ #0 } % Not use number index (default).
+% { #1 } % Non-#0 -> Use number index
+
+% The string before number index:
+%
+FUNCTION {bst.number.index.pre}
+{ "[" } % (default)
+
+% The string after number index. Adjustment is recommended.
+%
+FUNCTION {bst.number.index.post}
+{ "]\hskip1.0em " } % (default)
+
+% Maximum digit of number index:
+% If the number of reference items >= 100, set 3 to this function.
+% If the number of reference items < 100, set 2 to this function.
+% If the number of reference items < 10, set 1 to this function.
+%
+FUNCTION {bst.number.index.digit}
+{ "2" } % (default)
+% { "3" }
+
+% The functions below are used to adjust space and postion. If you use fonts
+% other than computer modern fonts, you had better make adjustments.
+%
+% Setting for bst.number.index.digit = 1:
+FUNCTION {bst.number.index.bibhang.one}
+{ "2.05em" } % (default)
+% Setting for bst.number.index.digit = 2:
+FUNCTION {bst.number.index.bibhang.ten}
+{ "2.55em" } % (default)
+% Setting for bst.number.index.digit = 3:
+FUNCTION {bst.number.index.bibhang.hund}
+{ "3.05em" } % (default).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Position of "year":
+%
+% You can choose the position of year by this function.
+%
+% If set to #0, year is placed right after "author".
+% If set to non-zero, year is placed at the end (before note field) except for
+% aritcle type entry.
+%
+% In article type entry, the position of year changes according to the
+% following rule:
+%
+% #1 -> year is placed at the end.
+% #2 -> year is placed after journal name in aritcle type entry.
+% #3 -> year is placed after volume in aritcle type entry.
+%
+FUNCTION {bst.year.position}
+{ #0 } % (default).
+% { #1 } % Last place before note.
+% { #2 } % After journal name for aticle type entry.
+% { #3 } % After volume for aticle type entry.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If 0, references are sorted by old documents -> recent documents. If
+% non-zero, reverse order.
+FUNCTION {bst.reverse.year}
+{ #0 } % Normal order (old -> recent) (default).
+% { #1 } % inverse order (recent -> old)
+
+% If non-zero, sort references by using year field as the primary key
+% (chronological sorting).
+FUNCTION {bst.sort.year}
+{ #0 } % Normal case: year is used as the sorting key next to author (default).
+% { #1 } % year is used as the primary sorting key.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If non-zero, references are listed in citation order.
+%
+FUNCTION {bst.no.sort}
+{ #0 } % (default)
+% { #1 } % listed in citation order.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Non-zero -> sort references by entry type (article, book, incollection etc.)
+%
+FUNCTION {bst.sort.entry.type}
+{ #0 } % #0 -> Normal (not sort references by entry type) (default).
+% { #1 } % Non-zero -> sort references by entry type.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% 0 -> use absorder field to sort items. Otherwise, ignore absorder field.
+%
+FUNCTION {bst.notuse.absorder.field}
+{ #0 } % #0 -> Use absorder (default).
+% { #1 } % Non-#0 -> Not use absorder.
+%
+% Order of priority to sort items
+%
+% absorder -> author -> year -> order -> month -> title
+%
+% wehre absorder and order fields are specific to econ.bst.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% 0 -> use order field to sort items. Otherwise, ignore order field.
+% Note: order field is specific to econ.bst.
+FUNCTION {bst.notuse.order.field}
+{ #0 } % #0 -> Use order field (default).
+% { #1 } % Non-#0 -> not use order field.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% and
+
+%%% String used to separate author names in references.
+%
+% String replaced with _ in "Mr. A _ Mr. B "
+%
+FUNCTION {bst.and}
+{ " and " } % (default)
+
+%%% String used to separate author names in references (more than two authors).
+%
+% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
+%
+FUNCTION {bst.ands}
+{ ", and " } % (default)
+
+%%% String used to separate author names in citation part.
+%
+% String replaced with _ in "Mr. A _ Mr. B "
+%
+FUNCTION {bst.cite.and}
+{ " and " } % (default)
+
+%%% String used to separate author names in citation part (more than two authors).
+%
+% String replaced with _ in "Mr. A, Mr. B _ Mr. C"
+%
+FUNCTION {bst.cite.ands}
+{ " and " } % (default)
+
+%%% If you want to use random author order for some bibliography entries, set
+% non-zero to this function.
+%
+FUNCTION {bst.use.nameorder}
+{ #1 } % Use random order (default)
+% { #0 } % Not use random order
+
+%%% String used to separate author names in references for the entry of random
+% author order.
+%
+FUNCTION {bst.and.nameorder}
+{ " \textcircled{r} " } % (default)
+
+%%% String used to separate author names in citation part for the entry of
+% random author order
+%
+FUNCTION {bst.cite.and.nameorder}
+{ " \textcircled{r} " } % (default)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Author names in the citation part are abbreviated by et al. if the number of
+% authors is greater or equal to bst.and.others.num.
+FUNCTION {bst.and.others.num}
+{ #3 } % If the number of authors is greater or equal to three (default).
+
+% If the number of authors is greater or equal to bst.max.author.num, only
+% first author is listed and other authors' names are abbreviated as "et al.".
+FUNCTION {bst.max.author.num}
+{ #12 } % If the number of authors is greater or equal to 12 (default).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Strings used when abbreviating multiple-authors in citation part.
+FUNCTION {bst.and.others}
+{ " et~al." } % (default)
+
+% Strings used when abbreviating multiple-authors in citation part for entries
+% with random author order.
+FUNCTION {bst.and.others.nameorder}
+{ " \textcircled{r}~al." } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% author
+
+% The string before author:
+%
+FUNCTION {bst.author.pre}
+{ "" } % (default)
+
+% The string after author:
+%
+FUNCTION {bst.author.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% year
+
+% The string before year only for aritcle type entry.
+%
+FUNCTION {bst.year.pre}
+{ " (" } % (default)
+
+% The string after year only for aritcle type entry.
+%
+FUNCTION {bst.year.post}
+{ ") " } % (default)
+
+% The string after year for non-article type entry (book, incollection etc)
+%
+FUNCTION {bst.year.na.pre}
+{ " (" } % (default)
+
+% The string after year for non-article type entry (book, incollection etc)
+%
+FUNCTION {bst.year.na.post}
+{ ") " } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% title (except for title in book)
+
+% The string before title:
+%
+FUNCTION {bst.title.pre}
+{ "``" } % (default)
+
+% The string after title:
+%
+FUNCTION {bst.title.post}
+{ ",''" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% tile for book:
+
+% The string before book title:
+%
+FUNCTION {bst.book.pre}
+{ " \textit{" } % (default)
+
+% The string after book title:
+%
+FUNCTION {bst.book.post}
+{ "}" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% booktitle
+
+% The string before booktitle:
+%
+FUNCTION {bst.btitle.pre}
+{ " \textit{" } % (default)
+
+% The string after booktitle:
+%
+FUNCTION {bst.btitle.post}
+{ "}" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% journal name
+
+% The string before journal name:
+%
+FUNCTION {bst.journal.pre}
+{ " \textit{" } % (default)
+
+% The string after journal name:
+%
+FUNCTION {bst.journal.post}
+{ "}" } % (default)
+
+% Use the abbreviated journal name
+%
+% If set to #0, do not use abbreviated journal name.
+% If set to non-#0, use abbreviated journal name.
+%
+FUNCTION {bst.journal.name.abb}
+{ #0 } % (default)
+% { #1 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% editor notation:
+
+% The string that indicates multiple editors:
+%
+FUNCTION {bst.editors}
+{ " eds. " } % (default)
+
+% The string that indicates single editor:
+%
+FUNCTION {bst.editor}
+{ " ed. " } % (default)
+
+% Order of editor and booktitle in incollection and inproceedings entries.
+%
+% If set to #0: editors -> booktitle order
+% If set to non-zero: booktitle -> editors order
+%
+FUNCTION {bst.editor.btitle.order}
+{ #0 } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% edition
+
+% The string before edition:
+%
+FUNCTION {bst.edition.pre}
+{ ", " } % (default)
+
+% The string after edition:
+%
+FUNCTION {bst.edition.post}
+{ " edition" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% volume
+
+% The string before volume:
+%
+FUNCTION {bst.volume.pre}
+{ ", Vol. " }
+
+% The string after volume:
+%
+FUNCTION {bst.volume.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% number
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hide number. If non-zero, number is suppressed.
+FUNCTION {bst.hide.number}
+{ #0 } % #0 -> show number field (default)
+% { #1 } % non-#0 -> Hide number field.
+
+% The string before number:
+%
+FUNCTION {bst.number.pre}
+{ ", No. " }
+
+% The string after number:
+%
+FUNCTION {bst.number.post}
+{ "" }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% in
+
+% In
+%
+FUNCTION {bst.in}
+{ " in " } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% page
+
+% The string before page (multiple pages):
+%
+FUNCTION {bst.pages.pre}
+{ ", pp." }
+
+% The string before page:
+%
+FUNCTION {bst.page.pre}
+{ ", p." }
+
+% The string after page (multiple pages):
+%
+FUNCTION {bst.pages.post}
+{ "" } % (default)
+
+% The string after page:
+%
+FUNCTION {bst.page.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% chapter
+
+% The string before chapter:
+%
+FUNCTION {bst.chapter.pre}
+{ ", Chap." } % (default)
+
+% The string after chapter:
+%
+FUNCTION {bst.chapter.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% month
+
+% The string before month:
+%
+FUNCTION {bst.month.pre}
+{ ", " } % (default)
+
+% The string after month:
+%
+FUNCTION {bst.month.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% address
+% The string before address:
+%
+FUNCTION {bst.address.pre}
+{ ", " } % (default)
+
+% The string after address:
+%
+FUNCTION {bst.address.post}
+{ "" } % (default)
+
+% You can choose the order of address and publisher by this function.
+%
+% If #0, address -> publisher order (the default value).
+% If non-zero, publisher -> address order.
+
+FUNCTION {bst.address.position}
+{ #0 } % Address is placed before publisher (default)
+% { #1 } % Address is placed after publisher
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% publisher
+
+% The string before publisher:
+%
+FUNCTION {bst.publisher.pre}
+{ ": " } % (default)
+
+% The string after publisher:
+%
+FUNCTION {bst.publisher.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% series
+
+% The string before series:
+%
+FUNCTION {bst.series.pre}
+{ ", " } % (default)
+
+% The string after series:
+%
+FUNCTION {bst.series.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% organization
+
+% The string before organization:
+%
+FUNCTION {bst.organization.pre}
+{ ", " } % (default)
+
+% The string after organization:
+%
+FUNCTION {bst.organization.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% school
+
+% The string before school:
+%
+FUNCTION {bst.school.pre}
+{ ", " } % (default)
+
+% The string after school:
+%
+FUNCTION {bst.school.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% institution
+
+% The string before institution:
+%
+FUNCTION {bst.institution.pre}
+{ ", " } % (default)
+
+% The string after institution:
+%
+FUNCTION {bst.institution.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% howpublished
+
+% The string before howpublished:
+%
+FUNCTION {bst.howpublished.pre}
+{ " " } % (default)
+
+% The string after howpublished:
+%
+FUNCTION {bst.howpublished.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% url
+
+% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed.
+FUNCTION {bst.show.url}
+{ #1 } % non-#0 -> Show url field (default)
+% { #0 } % #0 -> Not show url field.
+
+% The string before url:
+%
+FUNCTION {bst.url.pre}
+{ ", URL: \url{" }
+
+% The string after url:
+%
+FUNCTION {bst.url.post}
+{ "}" } % (default)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Access
+
+% This setting is valid only if there are "access" field in bib
+% files. The value of access field indicates accessed date for URL.
+
+% The string before access.
+FUNCTION {bst.access.pre}
+{ ", accessed on " } % (default)
+
+% The string after access.
+FUNCTION {bst.access.post}
+{ "" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DOI (digital object identifier)
+
+% This setting is valid only if there are "doi" field in bib files.
+
+% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed.
+FUNCTION {bst.show.doi}
+{ #1 } % non-#0 -> Show DOI field (default)
+% { #0 } % #0 -> Not show DOI field.
+
+% The string before DOI:
+%
+FUNCTION {bst.doi.pre}
+{ ", DOI: \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * }
+
+% The string after DOI:
+%
+FUNCTION {bst.doi.post}
+{ "}}" } % (default)
+
+% How to show URL and DOI fields when both fields exist.
+%
+% #0 -> Both fields are displayed
+% #1 -> Only URL field is displayed
+% #2 -> Only DOI field is displayed
+%
+FUNCTION {bst.url.doi}
+% { #0 } % -> Both fields are displayed
+% { #1 } % -> Only URL field is displayed
+{ #2 } % (default) --> Only DOI field is displayed
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Other functions:
+
+% The string before note.
+FUNCTION {bst.note.pre}
+{ ", " } % (default)
+
+% The string after note.
+FUNCTION {bst.note.post}
+{ "" } % (default)
+
+% The string that represents Technical report:
+%
+FUNCTION {bst.techrep}
+{ "Technical Report" } % (default)
+
+% The string that represents master thesis:
+%
+FUNCTION {bst.mthesis}
+{ " Master's thesis" } % (default)
+
+% The string that represents phd thesis:
+%
+FUNCTION {bst.phdthesis}
+{ " Ph.D. dissertation" } % (default)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Functions for customization end here:
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+FUNCTION {bst.first}
+{ "1st" }
+
+FUNCTION {bst.second}
+{ "2nd" }
+
+FUNCTION {bst.third}
+{ "3rd" }
+
+FUNCTION {bst.fourth}
+{ "4th" }
+
+FUNCTION {bst.fifth}
+{ "5th" }
+
+FUNCTION {bst.st}
+{ "st" }
+
+FUNCTION {bst.nd}
+{ "nd" }
+
+FUNCTION {bst.rd}
+{ "rd" }
+
+FUNCTION {bst.th}
+{ "th" }
+
+%%%%% memo by Takeda
+
+% "a" 'b := indicates substituting string "a" for variable b.
+
+% Integer number #0, #1,...
+
+%%% Function definition:
+%
+% FUNCTION {name}
+% { 's :=
+%
+% }
+%
+% This is the definition of a function named "name". The function "name" is
+% used in the following way
+%
+% "foo" name
+% "foo" is an argument for the function "name".
+%
+% About the definition of a function with more than two arguments, see the
+% definition of "chop.word".
+
+%%% Declaration of variables:
+
+%% String global variables:
+STRINGS { s t tt }
+STRINGS { year.num }
+STRINGS { preone preten }
+STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author }
+STRINGS { hang }
+STRINGS { item.type }
+STRINGS { tempa tempb }
+
+%% Integer global variables:
+INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { multiresult }
+INTEGERS { index }
+INTEGERS { len }
+INTEGERS { last.extra.num }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+INTEGERS { last.period.comma }
+INTEGERS { len1.aer len2.aer i.aer }
+
+%%% Definition of functions:
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+%%% Initialize variables:
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+%%% Remove comma and add period:
+%
+%%%
+FUNCTION {add.period.x}
+{ duplicate$
+ #-1 #1 substring$ "," =
+ { #-2 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ". " =
+ { #-3 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ", " =
+ { #-3 global.max$ substring$ "." * }
+ { duplicate$
+ #-1 #2 substring$ ",'" =
+ { #-3 global.max$ substring$ ".'" * }
+ { duplicate$
+ #-1 #2 substring$ ".'" =
+ { #-3 global.max$ substring$ ".'" * }
+ { duplicate$
+ #-1 #2 substring$ ".~" =
+ { #-3 global.max$ substring$ ".~" * }
+ { duplicate$
+ #-1 #2 substring$ ",~" =
+ { #-3 global.max$ substring$ ".~" * }
+ { duplicate$
+ #-1 #3 substring$ ",''" =
+ { #-4 global.max$ substring$ ".''" * }
+ { duplicate$
+ #-1 #3 substring$ ".''" =
+ { #-4 global.max$ substring$ ".''" * }
+ { add.period$ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {output.nonnull}
+{ 's :=
+ % mid.sentence
+ output.state mid.sentence =
+ { ", " * write$ }
+ % not mid.sentence
+ { output.state after.block =
+ % after.block
+ { add.period.x " " * write$ }
+ % before.all
+ { output.state before.all =
+ 'write$
+ { add.period.x " " * write$ }
+ if$
+ }
+ if$
+ % not mid.sentence, set to mid.sentence
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+%%% If the last character is period or comma, set non-zero to
+%%% last.period.comma.
+FUNCTION {period.comma.p}
+{ duplicate$ 't :=
+ t #-1 #1 substring$ "." =
+ t #-1 #1 substring$ "," = or
+ t #-1 #1 substring$ ":" = or
+ t #-1 #2 substring$ ".'" = or
+ t #-1 #2 substring$ ",'" = or
+ t #-1 #3 substring$ ".''" = or
+ t #-1 #3 substring$ ",''" = or
+ t #-1 #2 substring$ ".~" = or
+ t #-1 #2 substring$ ",~" = or
+ { #1 'last.period.comma := }
+ { #0 'last.period.comma := }
+ if$
+}
+
+%%% remove unnecessary comma.
+FUNCTION {remove.pre.comma}
+{ 's :=
+ s empty$
+ { "" }
+ { s #1 #1 substring$ "," =
+ { s #2 global.max$ substring$ }
+ { s #1 #1 substring$ "." =
+ { s #2 global.max$ substring$ }
+ 's
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% output.nonnull.nocomma is the same as output.nonnull except that it does
+%%% not add commas even in mid.sentence.
+FUNCTION {output.nonnull.nocomma}
+{ 's :=
+ output.state mid.sentence =
+ % mid.sentence
+ { period.comma.p "" * write$ }
+
+ % not mid.sentence
+ { output.state after.block =
+ % after.block
+ { add.period.x " " * write$ }
+ % before.all
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ last.period.comma #0 =
+ { s }
+ { s remove.pre.comma }
+ if$
+}
+
+% Not used in the current econ.bst.
+% FUNCTION {output}
+% { duplicate$ empty$
+% 'pop$
+% 'output.nonnull
+% if$
+% }
+
+FUNCTION {output.nocomma}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull.nocomma
+ if$
+}
+
+% Not used in the current econ.bst.
+% FUNCTION {output.check}
+% { 't :=
+% duplicate$ empty$
+% { pop$ "empty " t * " in " * cite$ * warning$ }
+% 'output.nonnull
+% if$
+% }
+
+FUNCTION {output.check.nocomma}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull.nocomma
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Format in bbl file:
+
+% \harvarditem[Brezis et~al.]{Brezis, Krugman and
+% Tsiddon}{1993}{brezis93:_leapf_inter_compet}
+% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in
+% International Competition: A Theory of Cycles in National Technological
+% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp.
+% 1211--1219.
+
+% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ...
+
+%%% Add period and newline.
+FUNCTION {fin.entry}
+{ add.period.x
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION {new.block.check}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+%%% booktitle
+FUNCTION {format.btitle}
+{ booktitle empty$
+ { "" }
+ { bst.btitle.pre booktitle * bst.btitle.post * }
+ if$
+}
+
+FUNCTION {journal.name.sub}
+{ 't :=
+ t #1 #4 substring$ "The " =
+ % Use #30 to handle with the long journal name.
+ { t #5 #30 substring$ 't := }
+ 'skip$
+ if$
+ t
+}
+
+FUNCTION {format.journal.name.abb}
+{ journal 's :=
+ journal 'jname :=
+ s journal.name.sub 's :=
+ bst.journal.name.abb #0 =
+ 'skip$
+ {
+ s "Academic Management Review" =
+ { "Acad. Manage. J." 'jname := }
+ 'skip$
+ if$
+ }
+ if$
+ jname
+}
+
+%%% journal
+FUNCTION {format.journal}
+{ journal empty$
+ { "" }
+ { bst.journal.pre format.journal.name.abb * bst.journal.post * }
+ if$
+}
+
+%%% title for book
+FUNCTION {format.book}
+{ title empty$
+ { "" }
+ { bst.book.pre title * bst.book.post * }
+ if$
+}
+
+FUNCTION {format.url}
+{ url empty$
+ { "" }
+ { type$ "online" = bst.show.url or
+ { bst.url.pre url * bst.url.post *
+ access empty$
+ { "" * }
+ { bst.access.pre * access * bst.access.post * }
+ if$
+ }
+ { "" }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$ bst.show.doi not or
+ { "" }
+ { bst.doi.pre doi * bst.doi.post * }
+ if$
+}
+
+FUNCTION {format.url.doi}
+{ url empty$
+ { format.doi }
+ { doi empty$
+ { format.url }
+ { bst.url.doi #0 =
+ { format.url output.nocomma
+ format.doi }
+ { bst.url.doi #1 =
+ { format.url }
+ { format.doi }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% and others
+FUNCTION {bst.and.others.output}
+{ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.others.nameorder }
+ { bst.and.others }
+ if$
+}
+
+%%% author and editor
+
+%%% name
+FUNCTION {format.names}
+{ 's :=
+ % insert 1 to nameptr.
+ #1 'nameptr :=
+ % Set the number of authors to numnames.
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ % Repeat if namesleft > 0
+ { namesleft #0 > }
+
+ { nameptr #1 =
+ % First author
+ { bst.author.name #0 =
+ bst.author.name #1 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ % The second or later authors
+ { bst.author.name #0 =
+ bst.author.name #2 =
+ or
+ { bst.first.name.initial #0 =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ if$
+ }
+ { bst.first.name.initial #0 =
+ { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := }
+ { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := }
+ if$
+ }
+ if$
+ }
+ if$
+
+ nameptr #1 >
+ % The second or later authors
+ { numnames bst.max.author.num >
+ { bst.and.others *
+ #1 'namesleft := }
+ { nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { namesleft #1 >
+ % More than one authors left
+ { ", " * t * }
+ % Only one author left
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 =
+ % Entry with two authors
+ { bst.and * t * }
+ { bst.ands * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+% remove successive periods (commas) from author
+FUNCTION {remove.ss.period.auth}
+{ 's :=
+ s format.names 'tempa :=
+ bst.author.post 'tempb :=
+ tempb #1 #1 substring$ "}" =
+ { tempa tempb * }
+ { tempa #-1 #1 substring$ tempb #1 #1 substring$ =
+ { tempa tempb #2 global.max$ substring$ * }
+ { tempa tempb * }
+ if$
+ }
+ if$
+}
+
+% <prev name list> <new name list> compare.names <modified name list>
+FUNCTION {compare.names.aer}
+{ 's :=
+ 'tempa :=
+
+% "current.author = " s * "\\" * write$ newline$
+% "prev.author = " tempa * "\\" * write$ newline$
+
+ tempa num.names$ 'len1.aer := % len1 = the number of previous authors
+ s num.names$ 'len2.aer := % len2 = the number of current authors
+
+% len1.aer := min(len1.aer,len2.aer)
+% len1 -> min{ the number of previous authors, the number of current authors }
+ len1.aer len2.aer >
+ { len2.aer 'len1.aer := }
+ { }
+ if$
+
+% start with an empty string, then while the components are the same
+% add "\bysame"
+ ""
+ #1 'i.aer :=
+
+ { i.aer len1.aer > not }
+ { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$
+ s i.aer "{ff }{vv }{ll}{ jj}" format.name$
+ =
+ { #1 i.aer <
+ { " and " * } % \bysame で省略する著者の前につく and
+ { }
+ if$
+ "\bysame{}" *
+ i.aer #1 + 'i.aer := }
+ { #-1 'len1.aer := }
+ if$
+ }
+ while$
+
+% add the rest of the second string
+ { i.aer len2.aer > not }
+ { #1 i.aer <
+ { " and " * }
+ { }
+ if$
+ s i.aer "{ff }{vv }{ll}{ jj}" format.name$ *
+ i.aer #1 + 'i.aer :=
+ }
+ while$
+}
+
+%%% author
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { bst.use.bysame #2 =
+ { prev.author.aer author compare.names.aer 's :=
+ author 'prev.author.aer := }
+ { author 's := }
+ if$
+ extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre s remove.ss.period.auth * }
+ if$
+ }
+ if$
+}
+
+%%% editor
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { bst.use.bysame #2 =
+ { prev.author.aer editor compare.names.aer 's :=
+ editor 'prev.author.aer := }
+ { editor 's := }
+ if$
+ extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre s remove.ss.period.auth * }
+ if$
+ s num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.authors.alt}
+{ author empty$
+ { "" }
+ { extra.label.bysame "bysame" =
+ {"\bysame "}
+ { bst.author.pre author remove.ss.period.auth * }
+ if$
+ }
+ if$
+}
+
+%%% editor
+FUNCTION {format.editors.alt}
+{ editor empty$
+ { "" }
+ { extra.label.bysame "bysame" =
+ { "\bysame " }
+ { bst.author.pre editor remove.ss.period.auth * }
+ if$
+ editor num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ if$
+}
+
+%%% format.in.ed.booktitle
+FUNCTION {format.editors.x}
+{ editor empty$
+ { "" }
+ { bst.editor.btitle.order #0 =
+ { "" }
+ { editor num.names$ #1 >
+ { bst.editors " by " * }
+ { bst.editor " by " * }
+ if$
+ }
+ if$
+ editor format.names *
+ bst.editor.btitle.order #0 =
+ { editor num.names$ #1 >
+ { bst.editors * }
+ { bst.editor * }
+ if$
+ }
+ { "" * }
+ if$
+ }
+ if$
+}
+
+%%% Remove commas in the cases like "?." and "?,".
+FUNCTION {remove.irrelevant.period.comma}
+{ 's :=
+ s empty$
+ { "" }
+ { s #-1 #3 substring$ "?,'" =
+ s #-1 #3 substring$ "?.'" = or
+ { s #-3 global.max$ substring$ "'" * }
+ { s #-1 #4 substring$ "?,''" =
+ s #-1 #4 substring$ "?.''" = or
+ { s #-4 global.max$ substring$ "''" * }
+ { s #-1 #2 substring$ "?," =
+ s #-1 #2 substring$ "?." = or
+ { s #-2 global.max$ substring$ "" * }
+ { s #-1 #3 substring$ "?,~" =
+ s #-1 #3 substring$ "?.~" = or
+ { s #-4 global.max$ substring$ "?~" * }
+ 's
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% title
+FUNCTION {format.title.sub}
+{ bst.title.lower.case #0 =
+ { bst.title.pre title * bst.title.post * }
+ { bst.title.pre title "t" change.case$ * bst.title.post * }
+ if$
+}
+
+%%% title
+FUNCTION {format.title}
+{ title empty$
+ bst.hide.title #0 = not or
+ { "" }
+ { format.title.sub remove.irrelevant.period.comma }
+ if$
+}
+
+%%% title for misc.
+FUNCTION {format.misc.title}
+{ title empty$
+ { "" }
+ { bst.title.pre title * bst.title.post * }
+ if$
+}
+
+% Convert "-" to "--" (for pages field)
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ %% while$
+ { 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$
+}
+
+%%% year
+FUNCTION {format.year}
+{ year empty$
+ { "there's no year in " cite$ * warning$
+ ", " }
+ { type$ "article" =
+ { bst.year.pre year * extra.label * bst.year.post * }
+ { bst.year.na.pre year * extra.label * bst.year.na.post * }
+ if$
+ }
+ if$
+}
+
+%%% page for book
+FUNCTION {format.book.pages}
+{ pages empty$
+ { "" }
+ { bst.pages.pre pages * bst.pages.post * }
+ if$
+}
+
+%%% Attach tie for the string with two or less characters.
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+%%% volume for book
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bst.volume.pre volume * bst.volume.post *
+ series empty$
+ 'skip$
+ %% If there is series field
+ { " of " * series * bst.series.post * }
+ if$
+% "volume and number" number either.or.check
+ }
+ if$
+}
+
+%%% series
+FUNCTION {output.series}
+{ series empty$
+ { "" }
+ { bst.series.pre series * bst.series.post * }
+ if$
+}
+
+%%% number and series
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ bst.hide.month #0 = not or
+ % number is empty
+ { series empty$
+ { "" }
+ % series is not empty.
+ { output.series }
+ if$
+ }
+ % number is not empty$
+ { series empty$
+ { bst.number.pre number * bst.number.post * }
+ % series is not empty.
+ { bst.in bst.series.pre * series * bst.series.post *
+ bst.number.pre * number * bst.number.post * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+%%% Number or not.
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+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$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% edition
+
+% Convert edition to 1st, 2nd, 3rd, 4th etc
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bst.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bst.st * }
+ { duplicate$ "2" =
+ { pop$ bst.nd * }
+ { "3" =
+ { bst.rd * }
+ { bst.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst)
+FUNCTION {convert.edition}
+{ edition extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bst.first }
+ { s "second" = s "2" = or
+ { bst.second }
+ { s "third" = s "3" = or
+ { bst.third }
+ { s "fourth" = s "4" = or
+ { bst.fourth }
+ { s "fifth" = s "5" = or
+ { bst.fifth }
+ { s #1 #1 substring$ is.num
+ { s eng.ord }
+ { edition }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% edition
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * }
+ { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * }
+ if$
+ }
+ if$
+}
+
+%%% month
+FUNCTION {format.month}
+{ month empty$
+ bst.hide.month #0 = not or
+ { "" }
+ { bst.month.pre month * bst.month.post * }
+ if$
+}
+
+%%% year and month
+FUNCTION {format.date}
+{ format.month format.year *
+}
+
+%%% Is multiple pages like 1-100?
+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
+}
+
+%%% pages
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post }
+ { bst.page.pre pages tie.or.space.connect * bst.page.post }
+ if$
+ }
+ if$
+}
+
+%%% number
+FUNCTION {format.number}
+{ number empty$
+ bst.hide.number #0 = not or
+ { "" }
+ { bst.number.pre number * bst.number.post * }
+ if$
+}
+
+%%% volume
+FUNCTION {format.volume}
+{ volume empty$
+ 'skip$
+ { bst.volume.pre volume * bst.volume.post *
+ bst.year.position #3 =
+ { format.year * }
+ 'skip$
+ if$
+ }
+ if$
+}
+
+%%% number, page
+FUNCTION {format.number.pages}
+{ number empty$
+ { format.pages }
+ { format.number format.pages * }
+ if$
+}
+
+%%% volume, page
+FUNCTION {format.volume.pages}
+{ volume empty$
+ { format.pages }
+ { format.volume format.pages * }
+ if$
+}
+
+%%% volume, number, page
+FUNCTION {format.volume.number.pages}
+{ volume empty$
+ { number empty$
+ { format.pages }
+ { format.number format.pages * }
+ if$
+ }
+ { number empty$
+ { format.volume format.pages * }
+ { format.volume format.number * format.pages * }
+ if$
+ }
+ if$
+}
+
+% volume, number, page
+FUNCTION {format.vol.num.pages}
+{ volume empty$
+ %% volume is empty.
+ { number empty$
+ %% number is empty.
+ { pages empty$
+ % warning
+ { "there is no volume, number, and pages in " cite$ * warning$ "" }
+ { "" format.pages * }
+ if$
+ }
+ %% number is not empty.
+ % warning
+ { "there's a number but no volume in " cite$ * warning$
+ format.number.pages }
+ if$
+ }
+ %% volume is not empty.
+ { number empty$
+ %% number is empty.
+ { format.volume.pages }
+ %% number is not empty.
+ { format.volume.number.pages }
+ if$
+ }
+ if$
+}
+
+%%% chapter
+FUNCTION {format.chapter}
+{ chapter empty$
+ { "" }
+ { type empty$
+ { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post }
+ { ", " * type " " * chapter * }
+ if$
+ }
+ if$
+}
+
+%%% chapter, pages
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ { pages empty$
+ { "" }
+ { "" format.pages * }
+ if$
+ }
+ { pages empty$
+ { "" format.chapter * }
+ { "" format.chapter * format.pages * }
+ if$
+ }
+ if$
+}
+
+%%% editor and booktitle
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { bst.in format.btitle * }
+ { bst.editor.btitle.order #0 =
+ { bst.in format.editors.x * " " * format.btitle * }
+ { bst.in format.btitle * " " * format.editors.x * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% howpublished
+FUNCTION {format.howpublished}
+{ howpublished empty$
+ { "" }
+ { bst.howpublished.pre howpublished * bst.howpublished.post * }
+ if$
+}
+
+%%% address
+FUNCTION {format.address}
+{ address empty$
+ { "" }
+ { bst.address.pre address * bst.address.post * }
+ if$
+}
+
+%%% publisher
+FUNCTION {format.publisher}
+{ publisher empty$
+ { "" }
+ { bst.publisher.pre publisher * bst.publisher.post * }
+ if$
+}
+
+%%% organization
+FUNCTION {format.organization}
+{ organization empty$
+ { "" }
+ { bst.organization.pre organization * bst.organization.post * }
+ if$
+}
+
+%% publisher and address
+FUNCTION {output.publisher.address}
+{ address empty$
+ { format.publisher "publisher" output.check.nocomma }
+ { bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+}
+
+%% address, organization, publisher
+FUNCTION {output.address.organization.publisher}
+{ address empty$
+ %% address is empty
+ { organization empty$
+ %% organization is empty
+ { publisher empty$
+ 'skip$
+ { format.publisher "publisher" output.check.nocomma }
+ if$
+ }
+ %% organization is not empty
+ { publisher empty$
+ { format.organization "organization" output.check.nocomma }
+ { format.organization "organization" output.check.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ if$
+ }
+ if$
+ }
+ %% address is not empty
+ { organization empty$
+ %% organization is empty
+ { publisher empty$
+ %% publisher is empty
+ { format.address output.nocomma }
+ %% publisher is not empty
+ { bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+ }
+ %% organization is not empty
+ { publisher empty$
+ %% publisher is empty
+ { format.organization "organization" output.check.nocomma
+ format.address output.nocomma }
+ %% publisher is not empty
+ { format.organization "organization" output.check.nocomma
+ bst.address.position #0 =
+ { format.address output.nocomma
+ format.publisher "publisher" output.check.nocomma }
+ { format.publisher "publisher" output.check.nocomma
+ format.address output.nocomma }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% misc
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+ key empty$ not and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$ " " type * }
+ if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { bst.techrep }
+ { " " type * }
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+%%% phdthesis
+FUNCTION {format.phd}
+{ bst.phdthesis }
+
+%%% mastersthesis
+FUNCTION {format.mthesis}
+{ bst.mthesis }
+
+%%% school
+FUNCTION {format.school}
+{ school empty$
+ { "" }
+ { bst.school.pre school * bst.school.post * }
+ if$
+}
+
+%%% institution
+FUNCTION {format.institution}
+{ institution empty$
+ { "" }
+ { bst.institution.pre institution * bst.institution.post * }
+ if$
+}
+
+%%% remove first ? characters.
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {format.note}
+{ note empty$
+ { "" }
+ { bst.note.pre note * bst.note.post * }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \havarditem
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\harvarditem[" write$
+ alabel write$ % alabel <- abbreviated citation
+ "]{" write$
+ flabel write$ % flabel <- full citation
+ "}{" write$
+ cyear write$
+ % cyear = year
+ "}{" write$
+ cite$ write$ % cite$ -> pusch keyword
+ "}" write$
+ % If number index is on
+ bst.use.number.index #0 =
+ 'skip$
+ { index #1 + 'index :=
+ "" 'preone :=
+ "" 'preten :=
+ bst.number.index.digit "1" =
+ 'skip$
+ { bst.number.index.digit "2" =
+ { "\hskip0.5em" 'preone := }
+ { bst.number.index.digit "3" =
+ { "\hskip1em" 'preone :=
+ "\hskip0.5em" 'preten := }
+ 'skip$
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ newline$
+ before.all 'output.state :=
+ ""
+ % number index
+ bst.use.number.index #0 =
+ 'skip$
+ { index #10 <
+ % Insert spaces according to digit of number index.
+ { preone }
+ { index #100 <
+ { preten }
+ { "" }
+ if$
+ }
+ if$
+ bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$
+ }
+ if$
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% article
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.journal "journal" output.check.nocomma
+ bst.year.position #2 =
+ { format.date output.nocomma }
+ 'skip$
+ if$
+ format.vol.num.pages output.nocomma
+
+ bst.year.position #1 =
+ { format.date output.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% book
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check.nocomma }
+ { format.authors output.nonnull.nocomma
+ "author and editor" editor either.or.check
+ }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ output.publisher.address
+
+ format.edition output.nocomma
+ format.book.pages output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% booklet
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output.nocomma
+ format.year output.nocomma
+ format.misc.title "title" output.check.nocomma
+ format.howpublished output.nocomma
+ format.address output.nocomma
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% inbook
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check.nocomma }
+ { format.authors output.nonnull.nocomma
+ "author and editor" editor either.or.check
+ }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+% format.book remove.pre.comma "title" output.check.nocomma
+ format.book "title" output.check.nocomma
+ format.edition output.nocomma
+
+ format.bvolume output.nocomma
+ format.chapter.pages "chapter and pages" output.check.nocomma
+ format.number.series output.nocomma
+ output.publisher.address
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% incollection
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.in.ed.booktitle "booktitle" output.check.nocomma
+ format.bvolume output.nocomma
+ format.edition output.nocomma
+ format.chapter.pages output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% inproceedings
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ format.in.ed.booktitle "booktitle" output.check.nocomma
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ format.pages output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% conference
+
+FUNCTION {conference}
+{ inproceedings }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% manual
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull.nocomma
+ address output.nocomma
+ }
+ if$
+ }
+ { format.authors output.nonnull.nocomma }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+ author empty$
+ { organization empty$
+ { format.address new.block.check
+ format.address output.nocomma
+ }
+ 'skip$
+ if$
+ }
+ { output.address.organization.publisher }
+ if$
+ format.edition output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% mastersthesis
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+ format.mthesis format.thesis.type output.nonnull.nocomma
+ format.school "school" output.check.nocomma
+ format.address output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% misc
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.misc.title output.nocomma
+ format.howpublished output.nocomma
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+ empty.misc.check
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Online
+
+FUNCTION {online}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.misc.title output.nocomma
+ format.howpublished output.nocomma
+
+ bst.year.position #0 = not
+ { format.date output.nocomma }
+ { format.month output.nocomma }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+ empty.misc.check
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% phdthesis
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.book "title" output.check.nocomma
+ format.phd
+ format.thesis.type output.nonnull.nocomma
+ format.school "school" output.check.nocomma
+ address empty$
+ 'skip$
+ { format.address output.nocomma }
+ if$
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% proceedings
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output.nocomma }
+ { format.editors output.nonnull.nocomma }
+ if$
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.btitle remove.pre.comma "title" output.check.nocomma
+ format.bvolume output.nocomma
+ format.number.series output.nocomma
+ output.address.organization.publisher
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% techreport
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+ format.tr.number output.nonnull.nocomma
+ format.institution "institution" output.check.nocomma
+ format.address output.nocomma
+
+ bst.year.position #0 = not
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note output.nocomma
+ fin.entry
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% unpublished
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check.nocomma
+ bst.year.position #0 =
+ { format.year "year" output.check.nocomma }
+ 'skip$
+ if$
+ format.title "title" output.check.nocomma
+
+ bst.year.position #0 = not
+ { format.date remove.pre.comma output.nocomma }
+ { month empty$
+ 'skip$
+ { format.month remove.pre.comma output.nocomma }
+ if$
+ }
+ if$
+
+ format.url.doi output.nocomma
+
+ format.note "note" output.check.nocomma
+ fin.entry
+}
+
+FUNCTION {default.type}
+{ misc }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Alias for month names:
+
+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"}
+
+%%% Read entries:
+READ
+
+%%% Variable for remembering the order of citation.
+INTEGERS { order.num }
+FUNCTION {initialize.order.num}
+{
+ #1 'order.num :=
+}
+%%% Initialize a variables
+EXECUTE {initialize.order.num}
+
+%%% Variable for remembering the order of citation.
+FUNCTION {set.order.cited}
+{
+ order.num 'order.cited :=
+ #1 order.num + 'order.num :=
+}
+%%% Iterate for all entries:
+ITERATE {set.order.cited}
+
+%%% check the value of nameorder field.
+FUNCTION {set.nameorder}
+{ nameorder empty$
+ { "" 'nameorder.temp := }
+ { nameorder 'nameorder.temp := }
+ if$
+}
+%%% Iterate for all entries:
+ITERATE {set.nameorder}
+
+%%% Remove symbols and convert to lowercase.
+FUNCTION {sortify}
+{ purify$ "l" change.case$ }
+
+%%% names for sorting
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { ", " * }
+ 'skip$
+ if$
+ s nameptr "{ll}{ f}{ j}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { bst.and.others.output *}
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.names.abb}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames bst.and.others.num <
+ { s sort.format.names }
+ { s #1 "{ll}{ f}{ j}" format.name$ " zz " * }
+ if$
+}
+
+%%% Label for full author name.
+FUNCTION {format.lab.names.full}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{vv~}{ll}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.and.nameorder * t * }
+ { ", " * t * }
+ if$
+ }
+ { t "others" =
+ { bst.and.others.output * }
+ { numnames #2 >
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.cite.and.nameorder * t * }
+ { bst.cite.ands * t * }
+ if$
+ }
+ { nameorder.temp "random" = bst.use.nameorder #0 = not and
+ { bst.cite.and.nameorder * t * }
+ { bst.cite.and * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ numnames #1 > #1 #2 = and {", eds" *} {} if$
+ numnames #1 = #1 #2 = and {", ed" *} {} if$
+}
+
+%%% laberl for abbreviated author name.
+FUNCTION {format.lab.names.abb}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames bst.and.others.num <
+ % if the number of authors is less than bst.and.others.num, full name.
+ { s format.lab.names.full }
+ % if the number of authors is equal or more than bst.and.others.num, abbreviated name.
+ { s #1 "{ll}" format.name$ bst.and.others.output * }
+ if$
+}
+
+%%% abbreviated author
+FUNCTION {author.key.label.abb}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names.abb }
+ if$
+}
+
+%%% full author
+FUNCTION {author.key.label.full}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names.full }
+ if$
+}
+
+FUNCTION {format.names.full.wo.and}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ll}{, ff}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { " " * t * }
+ { t "others" =
+ { " " * }
+ { numnames #2 >
+ { " " * t * }
+ { " " * t * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {author.key.full.wo.and}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.names.full.wo.and }
+ if$
+}
+
+FUNCTION {author.editor.key.full.wo.and}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.names.full.wo.and }
+ if$
+ }
+ { author format.names.full.wo.and }
+ if$
+}
+
+FUNCTION {editor.key.organization.key.full.wo.and}
+{ 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.names.full.wo.and }
+ if$
+}
+
+FUNCTION {author.key.organization.key.full.wo.and}
+{ 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.names.full.wo.and }
+ if$
+}
+
+%%% abbreviated author
+FUNCTION {author.editor.key.label.abb}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names.abb }
+ if$
+ }
+ { author format.lab.names.abb }
+ if$
+}
+
+%%% full author
+FUNCTION {author.editor.key.label.full}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names.full }
+ if$
+ }
+ { author format.lab.names.full }
+ if$
+}
+
+FUNCTION {author.key.organization.label.full}
+{ 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.full }
+ if$
+}
+
+FUNCTION {author.key.organization.label.abb}
+{ 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.abb }
+ if$
+}
+
+FUNCTION {editor.key.organization.label.full}
+{ 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.full }
+ if$
+}
+
+FUNCTION {editor.key.organization.label.abb}
+{ 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.abb }
+ if$
+}
+
+%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0
+FUNCTION {reverse.num}
+{ 's :=
+ s "1" =
+ { "8" 'year.num := }
+ { s "2" =
+ { "7" 'year.num := }
+ { s "3" =
+ { "6" 'year.num := }
+ { s "4" =
+ { "5" 'year.num := }
+ { s "5" =
+ { "4" 'year.num := }
+ { s "6" =
+ { "3" 'year.num := }
+ { s "7" =
+ { "2" 'year.num := }
+ { s "8" =
+ { "1" 'year.num := }
+ { s "9" =
+ { "0" 'year.num := }
+ { s "0" =
+ { "9" 'year.num := }
+ { "9" 'year.num := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ year.num
+}
+
+%%% Convert year (large number -> small number)
+FUNCTION {convert.year}
+{ 't :=
+ bst.reverse.year #0 =
+ { t 'tt := }
+ { t #1 #1 substring$ reverse.num
+ t #2 #1 substring$ reverse.num *
+ t #3 #1 substring$ reverse.num *
+ t #4 #1 substring$ reverse.num * 'tt := }
+ if$
+ tt
+}
+
+%%% cyear
+FUNCTION {calc.cyear}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.full.wo.and
+ { type$ "proceedings" =
+ 'editor.key.organization.key.full.wo.and
+ { type$ "manual" =
+ 'author.key.organization.key.full.wo.and
+ 'author.key.full.wo.and
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year empty$
+ { "2199" 'cyear := }
+ { year 'cyear := }
+ if$
+ year empty$
+ { " " "2199" convert.year * field.or.null * }
+ { " " year convert.year * field.or.null * }
+ if$
+ sortify 'sort.label :=
+ % For debug
+ econ.debug #0 = not
+ { "sort.label = ``\texttt{" write$
+ sort.label write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+ pop$
+}
+
+FUNCTION {calc.sort.label.abb}
+{ author empty$
+ { editor empty$
+ { "" }
+ { editor 's := }
+ if$
+ }
+ { author 's := }
+ if$
+ s sort.format.names.abb 't :=
+ year empty$
+ { t sortify " " * "2199" convert.year * 'sort.label.abb := }
+ { t sortify " " * year convert.year * 'sort.label.abb := }
+ if$
+ econ.debug #0 = not
+ { "sort.label.abb = ``\texttt{" write$
+ sort.label.abb write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% flabel
+FUNCTION {calc.flabel}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label.full
+ { type$ "proceedings" =
+ 'editor.key.organization.label.full
+ { type$ "manual" =
+ 'author.key.organization.label.full
+ 'author.key.label.full
+ if$
+ }
+ if$
+ }
+ if$
+ 'flabel :=
+ author empty$
+ 'skip$
+ { author num.names$ 'numnames :=
+ numnames bst.max.author.num >
+ { alabel 'flabel := }
+ 'skip$
+ if$
+ }
+ if$
+ % For debug
+ econ.debug #0 = not
+ { "flabel = ``\texttt{" write$
+ flabel write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% alabel
+FUNCTION {calc.alabel}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label.abb
+ { type$ "proceedings" =
+ 'editor.key.organization.label.abb
+ { type$ "manual" =
+ 'author.key.organization.label.abb
+ 'author.key.label.abb
+ if$
+ }
+ if$
+ }
+ if$
+ 'alabel :=
+ % For debug
+ econ.debug #0 = not
+ { "alabel = ``\texttt{" write$
+ alabel write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% title for sorting
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+%%% author for sorting
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+%%% editor for sorting
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {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$
+}
+
+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$
+}
+
+%%% 1,...,9 -> 001,...,009
+%%% 10,...,99 -> 010,...,099
+FUNCTION {add.zero.to.number}
+{ 's :=
+ s text.length$ #1 =
+ { "00" s * }
+ { s text.length$ #2 =
+ { "0" s * }
+ { s }
+ if$
+ }
+ if$
+}
+
+%% entry type
+FUNCTION {bst.sort.entry.type.order}
+{ 'item.type :=
+ item.type "article" =
+ { "01" }
+ { item.type "book" =
+ { "02" }
+ { item.type "booklet" =
+ { "03" }
+ { item.type "comment" =
+ { "04" }
+ { item.type "conference" =
+ { "05" }
+ { item.type "inbook" =
+ { "06" }
+ { item.type "incollection" =
+ { "07" }
+ { item.type "inproceedings" =
+ { "08" }
+ { item.type "manual" =
+ { "09" }
+ { item.type "masterthesis" =
+ { "10" }
+ { item.type "misc" =
+ { "11" }
+ { item.type "phdthesis" =
+ { "12" }
+ { item.type "proceedings" =
+ { "13" }
+ { item.type "techreport" =
+ { "14" }
+ { item.type "unpublished" =
+ { "15" }
+ { "16" }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+%%% Create sort.key$: absorder -> author -> year -> order -> month -> title.
+FUNCTION {presort.one}
+{
+ bst.no.sort #0 = not
+ { order.cited int.to.str$ add.zero.to.number " " * }
+ { "" }
+ if$
+ bst.sort.year #0 = not
+ %% Use year field as the primary sorting key.
+ { year convert.year * }
+ 'skip$
+ if$
+ bst.sort.entry.type #0 = not
+ { type$ bst.sort.entry.type.order * " " * }
+ 'skip$
+ if$
+ absorder empty$
+ { "/// " * }
+ { bst.notuse.absorder.field #0 =
+ { absorder "999" =
+ { "zzz " * }
+ { absorder add.zero.to.number "000" =
+ { "/// " * }
+ { absorder add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ " " *
+ sort.label.abb *
+ " " *
+ type$ "book" = type$ "inbook" = or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ * " " *
+ " "
+ order empty$
+ { "/// " * }
+ { bst.notuse.order.field #0 =
+ { order "999" =
+ { "zzz " * }
+ { order add.zero.to.number "000" =
+ { "/// " * }
+ { order add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ month empty$
+ { * "/// " * }
+ { month "999" =
+ { * month add.zero.to.number * "zzz " * }
+ { month add.zero.to.number "000" =
+ { * month add.zero.to.number * "/// " * }
+ { * month add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ if$
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+ % For debug
+ econ.debug #0 = not
+ { "``\texttt{" write$
+ sort.key$ write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+FUNCTION {presort.two}
+{
+ bst.no.sort #0 = not
+ { order.cited int.to.str$ add.zero.to.number " " * }
+ { "" }
+ if$
+ bst.sort.year #0 = not
+ %% Use year field as the primary sorting key.
+ { year convert.year * }
+ 'skip$
+ if$
+ bst.sort.entry.type #0 = not
+ { type$ bst.sort.entry.type.order * " " * }
+ 'skip$
+ if$
+ absorder empty$
+ { "/// " * }
+ { bst.notuse.absorder.field #0 =
+ { absorder "999" =
+ { "zzz " * }
+ { absorder add.zero.to.number "000" =
+ { "/// " * }
+ { absorder add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ " " * sort.label * " "
+ order empty$
+ { "/// " * }
+ { bst.notuse.order.field #0 =
+ { order "999" =
+ { "zzz " * }
+ { order add.zero.to.number "000" =
+ { "/// " * }
+ { order add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ { "/// " * }
+ if$
+ }
+ if$
+ month empty$
+ { * "/// " * }
+ { month "999" =
+ { * month add.zero.to.number * "zzz " * }
+ { month add.zero.to.number "000" =
+ { * month add.zero.to.number * "/// " * }
+ { * month add.zero.to.number * " " * }
+ if$
+ }
+ if$
+ }
+ if$
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+ % For debug
+ econ.debug #0 = not
+ { "``\texttt{" write$
+ sort.key$ write$
+ "}''\\" write$
+ newline$
+ }
+ 'skip$
+ if$
+}
+
+%%% Codes for debugging
+FUNCTION {calc.alabel.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.alabel: alabel = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+FUNCTION {calc.flabel.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.flabel: flabel = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+FUNCTION {presort.one.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {presort.two.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {calc.cyear.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {calc.sort.label.abb.mess}
+{ econ.debug #0 = not
+ { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$
+ newline$ }
+ 'skip$
+ if$
+}
+
+%%% alabel
+EXECUTE {calc.alabel.mess}
+ITERATE {calc.alabel}
+
+%%% flabel
+EXECUTE {calc.flabel.mess}
+ITERATE {calc.flabel}
+
+%%% cyear and sort.label
+EXECUTE {calc.cyear.mess}
+ITERATE {calc.cyear}
+
+%%%
+EXECUTE {calc.sort.label.abb.mess}
+ITERATE {calc.sort.label.abb}
+
+%%% Sorting by $sort.key (first time)
+%
+% Sorting is done in two times. This is the first time.
+%
+EXECUTE {presort.one.mess}
+ITERATE {presort.one}
+SORT
+
+FUNCTION {forward.pass}
+{ bst.use.bysame #0 = bst.use.bysame #2 = or
+ % Not use \bysame
+ { last.sort.label sort.label.abb =
+ { 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.abb 'last.sort.label :=
+ }
+ if$
+ }
+ % Use \bysame
+ { last.sort.label sort.label.abb =
+ { 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.abb 'last.sort.label :=
+ }
+ if$
+ author empty$
+ { editor empty$
+ { "" }
+ 'format.editors.alt
+ if$
+ }
+ 'format.authors.alt
+ if$
+ 'this.author :=
+ % format.names 'this.author :=
+ this.author prev.author =
+ { "bysame" 'extra.label.bysame := }
+ { this.author "" =
+ { "abcxyz" }
+ 'this.author
+ if$
+ 'prev.author :=
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ extra.label empty$ not
+ { cyear extra.label * }
+ { cyear "" * }
+ if$
+ "" field.or.null *
+ 'cyear :=
+ extra.label 'next.extra :=
+}
+
+%%% \bysame
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+%%% Sorting by sort.key$ (second time)
+EXECUTE {presort.two.mess}
+ITERATE {presort.two}
+SORT
+
+FUNCTION {reset.prev.author}
+{ "xxyyzz" 'prev.author := }
+
+EXECUTE {reset.prev.author}
+
+FUNCTION {forward.pass.two}
+{ bst.use.bysame #1 =
+ { author empty$
+ { editor empty$
+ { "" }
+ 'format.editors.alt
+ if$
+ }
+ 'format.authors.alt
+ if$
+ 'this.author :=
+ this.author prev.author =
+ { "bysame" 'extra.label.bysame := }
+ { this.author "" =
+ { "abcxyz" }
+ 'this.author
+ if$
+ 'prev.author :=
+ }
+ if$
+ }
+ 'skip$
+ if$
+}
+
+ITERATE {forward.pass.two}
+
+FUNCTION{punctuation}
+{
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$
+ "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$
+ "% The latest " econ.file * " is available at " * write$ newline$
+ "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$
+}
+
+EXECUTE {punctuation}
+
+FUNCTION {begin.bib}
+{
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ bst.use.bysame #0 =
+ % Not use \bysame.
+ 'skip$
+ % Use \bysame.
+ { "%%% Definition of \bysame" write$ newline$
+ "\ifx\undefined\bysame" write$ newline$
+ "\newcommand{\bysame}{" bst.bysame.definition * "}" *
+ write$ newline$
+ "\fi" write$ newline$ newline$ }
+ if$
+ %% When number index is attached to the beginning of each item.
+ bst.use.number.index #0 =
+ 'skip$
+ { bst.number.index.digit "1" =
+ % one digit.
+ { bst.number.index.bibhang.one }
+ { bst.number.index.digit "2" =
+ % two digits.
+ { bst.number.index.bibhang.ten }
+ % three or more digits.
+ { bst.number.index.bibhang.hund }
+ if$
+ }
+ if$
+ 'hang :=
+ "%%% Redefinition of \bibhang" write$ newline$
+ "\ifx\undefined\bibhang" write$ newline$
+ "\relax" write$ newline$
+ "\else" write$ newline$
+ "\setlength{\bibhang}{"
+ hang * "}" * write$ newline$
+ "\fi" write$ newline$ newline$
+ }
+ if$
+ "\begin{thebibliography}{xxx}" write$ newline$
+
+ %% Initialize the variable `index'.
+ #0 'index :=
+}
+
+FUNCTION {end.bib}
+{ newline$ "\end{thebibliography}" write$ newline$ }
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+EXECUTE {end.bib}
+
+% --------------------
+% Local Variables:
+% fill-column: 78
+% mode: bst
+% End:
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.bst
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf
===================================================================
(Binary files differ)
Index: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf 2020-02-27 22:03:41 UTC (rev 53937)
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.tex (rev 0)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -0,0 +1,58 @@
+%#!pdflatex
+%#BIBTEX bibtex econ-old
+
+%############################## Main #################################
+\documentclass[10pt]{article}
+
+%% Use natbib.sty
+\usepackage[longnamesfirst]{natbib}
+\usepackage{newtxtext,newtxmath}
+\usepackage{url}
+\usepackage{graphicx}
+\usepackage{color}
+\definecolor{MyBrown}{rgb}{0.3,0,0}
+\definecolor{MyBlue}{rgb}{0,0,0.3}
+\definecolor{MyRed}{rgb}{0.4,0,0.1}
+\definecolor{MyGreen}{rgb}{0,0.4,0}
+\usepackage[bookmarks=true,%
+bookmarksnumbered=true,%
+colorlinks=true,%
+linkcolor=MyBlue,%
+citecolor=MyRed,%
+filecolor=MyBlue,%
+pagecolor=MyBlue,%
+urlcolor=MyGreen%
+]{hyperref}
+
+\setlength{\topmargin}{-20pt}
+\setlength{\textheight}{648pt}
+\setlength{\oddsidemargin}{15pt}
+\setlength{\textwidth}{440pt}
+
+%#####################################################################
+%######################### Document Starts ###########################
+%#####################################################################
+\begin{document}
+
+This document uses ``\verb|econ-old.bst|''.
+
+\vspace{1em}
+
+\input{cited-part}
+\nocite{*}
+
+%% bst file:
+\bibliographystyle{./econ-old}
+\bibliography{../econ-example}
+
+
+\end{document}
+
+
+%#####################################################################
+%######################### Document Ends #############################
+%#####################################################################
+% --------------------
+% Local Variables:
+% fill-column: 80
+% End:
Property changes on: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.bib
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.bib 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.bib 2020-02-27 22:03:41 UTC (rev 53937)
@@ -14,7 +14,6 @@
number = 5,
pages = {1211-1219},
month = {December},
- url = {http://www.jstor.org/stable/2117557},
}
@Article{ishikawa94:_revis_stolp_samuel_rybcz_theor_produc_exter,
@@ -27,6 +26,7 @@
pages = {101-111},
number = 1,
url = {http://www.jstor.org/stable/135804},
+ doi = {10.2307/135804}
}
@article{Biker-2007-unemployment,
@@ -93,12 +93,14 @@
@article{BabikerRutherford-2005-EconomicEffectsof,
author = {Mustafa H. Babiker and Thomas F. Rutherford},
- title = {The Economic Effects of Border Measures in Subglobal Climate Agreements},
- journal = {Energy Journal},
+ title = {The Economic Effects of Border Measures in Subglobal Climate
+ Agreements},
+ journal = {The Energy Journal},
year = 2005,
volume = 26,
pages = {99-126},
- number = 4
+ number = 4,
+ doi = {10.5547/ISSN0195-6574-EJ-Vol26-No4-6},
}
@article{2009yamasue502165,
@@ -116,7 +118,8 @@
order = 3,
pdf = {2009yamasue502165.pdf},
publisher = {Japan Institute of Metals},
- url = {http://ci.nii.ac.jp/naid/40016713752/}
+ url = {http://ci.nii.ac.jp/naid/40016713752/},
+ doi = {10.2320/matertrans.MAW200908}
}
@article{2007yamasue482353,
@@ -124,7 +127,7 @@
Hashimoto and Hideyuki Okumura and Keiichi N. Ishihara},
title = {Evaluation of the Potential Amounts of Dissipated Rare Metals
from WEEE in {Japan}},
- journal = {Materials transactions},
+ journal = {Materials Transactions},
year = 2007,
volume = 48,
pages = {2353--2357},
@@ -132,7 +135,8 @@
issn = 13459678,
pdf = {2007yamasue482353.pdf},
publisher = {Japan Institute of Metals},
- url = {http://ci.nii.ac.jp/naid/10019853407/}
+ url = {http://ci.nii.ac.jp/naid/10019853407/},
+ doi = {10.2320/matertrans.MAW200781}
}
@article{Babiker2000525,
@@ -149,33 +153,70 @@
}
@article{Parry1997,
+ title = {Environmental taxes and quotas in the presence of distorting
+ taxes in factor markets},
+ journal = {Resource and Energy Economics},
+ volume = {19},
+ number = {3},
+ pages = {203-220},
+ year = {1997},
+ issn = {0928-7655},
+ doi = {10.1016/S0928-7655(96)00012-7},
+ url =
+ {http://www.sciencedirect.com/science/article/pii/S0928765596000127},
author = {Parry, Ian W. H.},
- doi = {10.2139/ssrn.293599},
- journal = {Resource and Energy Economics},
- pages = {5--6},
- title = {{Environmental Taxes and Quotas in the Presence of Distorting
- Taxes in Factor Markets}},
- url = {http://linkinghub.elsevier.com/retrieve/pii/S0928765596000127},
- year = {1997}
+ keywords = {Environmental tax, Environmental quota, Pre-existing labor
+ tax, General equilibrium welfare effect},
+ abstract = {Environmental quotas tend to compound the welfare cost of
+ pre-existing tax distortions in the labor market. Under
+ plausible parameters, this source of welfare loss can easily
+ be large enough to outweigh the entire partial equilibrium
+ welfare gain from the quota. Environmental taxes induce the
+ same interaction effect, however they also raise government
+ revenues. If the revenues are used to reduce distortionary
+ taxes, then most of this interaction effect can be
+ offset. Therefore, revenue-raising can be a necessary
+ condition for environmental policies to increase welfare.}
}
@Article{bergemann11:_ration,
- author = {D. Bergemann and S. Morris and O. Tercieux},
- title = {Rationalizable Implementation},
+ title = {Rationalizable implementation},
journal = {Journal of Economic Theory},
- year = 2011,
- volume = 146,
- pages = {1253-1274}
+ volume = {146},
+ number = {3},
+ pages = {1253-1274},
+ year = {2011},
+ issn = {0022-0531},
+ doi = {10.1016/j.jet.2010.12.011},
+ url =
+ {http://www.sciencedirect.com/science/article/pii/S0022053111000044},
+ author = {Dirk Bergemann and Stephen Morris and Olivier Tercieux},
+ keywords = {Implementation, Complete information, Rationalizability,
+ Maskin monotonicity, Robust mechanism design, Robust
+ implementation},
+ abstract = {We consider the implementation of social choice functions
+ under complete information in rationalizable strategies. A
+ strict version of the monotonicity condition introduced by
+ Maskin is necessary under the solution concept of
+ rationalizability. Assuming the social choice function is
+ responsive, i.e. in distinct states it selects distinct
+ outcomes, we show that strict Maskin monotonicity is also
+ sufficient under a mild “no worst alternative” condition. In
+ particular, no economic condition is required. We discuss how
+ our results extend when the social choice function is not
+ responsive.}
}
@article{goldin:katz:2000,
author = {Claudia Goldin and Lawrence F. Katz},
- title = {Education and Income in the Early Twentieth Century: Evidence from the Prairies},
+ title = {Education and Income in the Early Twentieth Century: Evidence
+ from the Prairies},
journal = {Journal of Economic History},
year = {2000},
volume = {60},
number = {3},
- pages = {782-818}
+ pages = {782-818},
+ doi = {10.1017/S0022050700025766}
}
@article{10.1257/aer.20161492,
@@ -192,6 +233,241 @@
nameorder = {random}
}
+ at article{10.1257/aer.20170619,
+ Author = {Giorcelli, Michela},
+ Title = {The Long-Term Effects of Management and Technology Transfers},
+ Journal = {American Economic Review},
+ Volume = {109},
+ Number = {1},
+ Year = {2019},
+ Month = {January},
+ Pages = {121-52},
+ DOI = {10.1257/aer.20170619},
+ URL = {http://www.aeaweb.org/articles?id=10.1257/aer.20170619}
+}
+
+ at article{10.1257/pol.2.1.155,
+ Author = {Mankiw, N. Gregory and Weinzierl, Matthew},
+ Title = {The Optimal Taxation of Height: A Case Study of Utilitarian
+ Income Redistribution},
+ Journal = {American Economic Journal: Economic Policy},
+ Volume = {2},
+ Number = {1},
+ Year = {2010},
+ Month = {February},
+ Pages = {155-76},
+ DOI = {10.1257/pol.2.1.155},
+ URL = {http://www.aeaweb.org/articles?id=10.1257/pol.2.1.155}
+}
+
+ at article{10.1257/aer.100.3.763,
+ Author = {Romer, Christina D. and Romer, David H.},
+ Title = {The Macroeconomic Effects of Tax Changes: Estimates Based on a
+ New Measure of Fiscal Shocks},
+ Journal = {American Economic Review},
+ Volume = {100},
+ Number = {3},
+ Year = {2010},
+ Month = {June},
+ Pages = {763-801},
+ DOI = {10.1257/aer.100.3.763},
+ URL = {http://www.aeaweb.org/articles?id=10.1257/aer.100.3.763}
+}
+
+ at Article{Takeda2014a,
+ author = {Takeda, Shiro and Arimura, Toshi H. and Tamechika, Hanae and
+ Fischer, Carolyn and Fox, Alan K.},
+ title = {Output-based allocation of emissions permits for mitigating
+ the leakage and competitiveness issues for the Japanese
+ economy},
+ journal = {Environmental Economics and Policy Studies},
+ year = {2014},
+ month = {Jan},
+ day = {01},
+ volume = {16},
+ number = {1},
+ pages = {89--110},
+ issn = {1867-383X},
+ doi = {10.1007/s10018-013-0072-8},
+}
+
+ at Article{Takeda2019a,
+ author = {Takeda, Shiro and Arimura, Toshi H. and Sugino, Makoto},
+ title = {Labor Market Distortions and Welfare-Decreasing International
+ Emissions Trading},
+ journal = {Environmental and Resource Economics},
+ volume = {74},
+ number = {1},
+ pages = {271–293},
+ year = {2019},
+ month = Jan,
+ day = {17},
+ issn = {1573-1502},
+ doi = {10.1007/s10640-018-00317-4},
+}
+
+ at article{doi:10.1175/2009BAMS2778.1,
+ author = {Meehl, Gerald A. and Goddard, Lisa and Murphy, James and
+ Stouffer, Ronald J. and Boer, George and Danabasoglu, Gokhan
+ and Dixon, Keith and Giorgetta, Marco A. and Greene, Arthur
+ M. and Hawkins, Ed and Hegerl, Gabriele and Karoly, David and
+ Keenlyside, Noel and Kimoto, Masahide and Kirtman, Ben and
+ Navarra, Antonio and Pulwarty, Roger and Smith, Doug and
+ Stammer, Detlef and Stockdale, Timothy},
+ title = {Decadal Prediction},
+ journal = {Bulletin of the American Meteorological Society},
+ volume = {90},
+ number = {10},
+ pages = {1467-1486},
+ year = {2009},
+ doi = {10.1175/2009BAMS2778.1},
+ URL = {https://doi.org/10.1175/2009BAMS2778.1},
+ eprint = {https://doi.org/10.1175/2009BAMS2778.1},
+}
+
+ at Article{luthi08:_high,
+ author = {Luthi, Dieter and Le Floch, Martine and Bereiter, Bernhard and
+ Blunier, Thomas and Barnola, Jean-Marc and Siegenthaler, Urs
+ and Raynaud, Dominique and Jouzel, Jean and Fischer, Hubertus
+ and Kawamura, Kenji and Stocker, Thomas F.},
+ title = {High-resolution carbon dioxide concentration record
+ 650,000-800,000 years before present},
+ journal = {Nature},
+ year = 2008,
+ volume = 453,
+ number = 7193,
+ pages = {379-82},
+ month = {May},
+ DOI = {10.1038/nature06949}
+}
+
+ at Article{essd-10-405-2018,
+ author = {Le Qu\'er\'e, C.
+ and Andrew, R. M.
+ and Friedlingstein, P.
+ and Sitch, S.
+ and Pongratz, J.
+ and Manning, A. C.
+ and Korsbakken, J. I.
+ and Peters, G. P.
+ and Canadell, J. G.
+ and Jackson, R. B.
+ and Boden, T. A.
+ and Tans, P. P.
+ and Andrews, O. D.
+ and Arora, V. K.
+ and Bakker, D. C. E.
+ and Barbero, L.
+ and Becker, M.
+ and Betts, R. A.
+ and Bopp, L.
+ and Chevallier, F.
+ and Chini, L. P.
+ and Ciais, P.
+ and Cosca, C. E.
+ and Cross, J.
+ and Currie, K.
+ and Gasser, T.
+ and Harris, I.
+ and Hauck, J.
+ and Haverd, V.
+ and Houghton, R. A.
+ and Hunt, C. W.
+ and Hurtt, G.
+ and Ilyina, T.
+ and Jain, A. K.
+ and Kato, E.
+ and Kautz, M.
+ and Keeling, R. F.
+ and Klein Goldewijk, K.
+ and K\"ortzinger, A.
+ and Landsch\"utzer, P.
+ and Lef\`evre, N.
+ and Lenton, A.
+ and Lienert, S.
+ and Lima, I.
+ and Lombardozzi, D.
+ and Metzl, N.
+ and Millero, F.
+ and Monteiro, P. M. S.
+ and Munro, D. R.
+ and Nabel, J. E. M. S.
+ and Nakaoka, S.-I.
+ and Nojiri, Y.
+ and Padin, X. A.
+ and Peregon, A.
+ and Pfeil, B.
+ and Pierrot, D.
+ and Poulter, B.
+ and Rehder, G.
+ and Reimer, J.
+ and R\"odenbeck, C.
+ and Schwinger, J.
+ and S\'ef\'erian, R.
+ and Skjelvan, I.
+ and Stocker, B. D.
+ and Tian, H.
+ and Tilbrook, B.
+ and Tubiello, F. N.
+ and van der Laan-Luijkx, I. T.
+ and van der Werf, G. R.
+ and van Heuven, S.
+ and Viovy, N.
+ and Vuichard, N.
+ and Walker, A. P.
+ and Watson, A. J.
+ and Wiltshire, A. J.
+ and Zaehle, S.
+ and Zhu, D.},
+ title = {Global Carbon Budget 2017},
+ journal = {Earth System Science Data},
+ volume = {10},
+ year = {2018},
+ number = {1},
+ pages = {405--448},
+ url = {https://www.earth-syst-sci-data.net/10/405/2018/},
+ doi = {10.5194/essd-10-405-2018}
+}
+
+ at article{Rivers-2005-CombiningTop-Downand,
+ author = {Rivers, Nic and Jaccard, Mark},
+ journal = {The Energy Journal},
+ pages = {83--107},
+ title = {Combining Top-Down and Bottom-Up Approaches To Energy-Economy
+ Modeling Using Discrete Choice Methods},
+ volume = {26},
+ year = {2005}
+}
+
+ at article{WilsonMannOtsuki-2005-AssessingBenefitsof,
+ author = {Wilson, John S. and Mann, Catherine L. and Otsuki, Tsunehiro},
+ journal = {The World Economy},
+ number = {6},
+ pages = {841--871},
+ title = {{Assessing the Benefits of Trade Facilitation: A Global
+ Perspective}},
+ doi = {10.1111/j.1467-9701.2005.00709.x},
+ volume = {28},
+ year = {2005}
+}
+
+ at article{imbens2019Optimized,
+ title = {Optimized {{Regression Discontinuity Designs}}},
+ volume = {101},
+ issn = {0034-6535, 1530-9142},
+ language = {en},
+ number = {2},
+ urldate = {2019-07-27},
+ journal = {Review of Economics and Statistics},
+ doi = {10.1162/rest_a_00793},
+ url = {https://www.mitpressjournals.org/doi/abs/10.1162/rest_a_00793},
+ author = {Imbens, Guido and Wager, Stefan},
+ month = may,
+ year = {2019},
+ keywords = {unread},
+ pages = {264-278}
+}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%
% Book
@Book{krugman91:_geogr_trade,
@@ -215,11 +491,7 @@
title = {The Spatial Economy},
publisher = {MIT Press},
address = {Cambridge, MA},
- year = 1999,
- jauthor = {\x8F\xAC\x8Fo \x94\x8E\x94V},
- jtitle = {\x8B\xF3\x8AԌo\x8Dϊw},
- jpublisher = {\x93\x8C\x97m\x8Co\x8DϐV\x95\xF1\x8E\xD0},
- jyear = 2000
+ year = 1999
}
@Book{Ryza15:_advan_analy_spark_patter_learn_data_scale,
@@ -237,6 +509,15 @@
year = {2008}
}
+ at Book{kusuoka06:_advan_mathem_econom,
+ editor = {Kusuoka, Shigeo and Yamasue, Akira},
+ title = {Advances in Mathematical Economics},
+ publisher = {Springer},
+ year = 2006,
+ volume = 8,
+ address = {New York}
+}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%
% Incollection
@InCollection{krugman91:_is_bilat_bad,
@@ -260,11 +541,12 @@
volume = 1,
series = {Carnegie Rochester Conference Series on Public Policy},
publisher = {North-Holland},
- address = {Amsterdam}
+ address = {Amsterdam},
+ doi = {10.1016/S0167-2231(76)80003-6},
}
@incollection{DeGorter2002,
- author = {{De Gorter}, Harry and Swinnen, Johan},
+ author = {De Gorter, Harry and Swinnen, Johan},
booktitle = {Handbook of Agricuultural Economics},
chapter = {36},
doi = {10.1016/S1574-0072(02)10023-5},
@@ -281,17 +563,20 @@
url =
{http://www.sciencedirect.com/science/article/pii/S1574007202100235},
volume = {2},
+ address = {Amsterdam},
year = {2002}
}
@InCollection{borgers95:_note_implem_stron_domin,
- author = {T. Borgers},
+ author = {Tilman Borgers},
title = {A Note on Implementation and Strong Dominance},
- booktitle = {Social Choice, Welfare, and Ethics: Proceedings of the Eighth International
- Symposium in Economic Theory and Econometrics},
+ booktitle = {Social Choice, Welfare, and Ethics: Proceedings of the Eighth
+ International Symposium in Economic Theory and Econometrics},
publisher = {Cambridge University Press},
+ address = {Cambridge, UK.},
year = 1995,
- editor = {William A. Barnett and Herve Moulin and Maurice Salles and Norman J. Schofield},
+ editor = {William A. Barnett and Herve Moulin and Maurice Salles and
+ Norman J. Schofield},
pages = {277-287}
}
@@ -308,6 +593,57 @@
pages = {275-310},
}
+ at incollection{balistreri20131513,
+ title = {Computing General Equilibrium Theories of Monopolistic
+ Competition and Heterogeneous Firms},
+ editor = {Peter B. Dixon and Dale W. Jorgenson},
+ chapter = {23},
+ publisher = {Elsevier},
+ volume = {1},
+ pages = {1513 - 1570},
+ year = {2013},
+ booktitle = {Handbook of Computable General Equilibrium Modeling SET,
+ Vols. 1A and 1B},
+ issn = {2211-6885},
+ doi = {10.1016/B978-0-444-59568-3.00023-7},
+ url =
+ {http://www.sciencedirect.com/science/article/pii/B9780444595683000237},
+ author = {Edward J. Balistreri and Thomas F. Rutherford},
+ keywords = {New trade theory, computable general equilibrium,
+ intraindustry trade, trade policy, climate policy},
+ abstract = {This chapter considers alternatives to the Armington
+ formulation of international trade found in most computable
+ general equilibrium (CGE) models. International trade
+ structures consistent with the monopolistic competition models
+ suggested by Krugman (1980) and Melitz (2003) are presented in
+ a computational setting. The Melitz structure of heterogeneous
+ firms is particularly appealing given its consistency with
+ micro-level findings on firm sizes and export behavior. We
+ broaden the accessibility of these advanced trade theories for
+ CGE modelers, and strengthen the link between contemporary CGE
+ analysis and the broader trade community. Small-scale examples
+ of all three theories (Armington, Krugman and Melitz) are
+ introduced under a unified treatment. This is helpful in
+ translating the advanced theories into an environment that is
+ more familiar to CGE modelers. It is also helpful in showing
+ how the different approaches affect outcomes, in a relatively
+ transparent setting. Moving to an applied setting, we offer
+ our approach to calibration and computation of models that
+ include the Melitz heterogeneous firms structure. Our
+ applications include an analysis of economic integration and
+ subglobal climate policy in a model calibrated to the Global
+ Trade Analysis Project (GTAP) data. We do find that the
+ heterogeneous firms structure matters for conclusions drawn
+ from empirical CGE analysis. In our analysis of economic
+ integration we find endogenous entry leading to important
+ variety effects. We also find important productivity effects
+ related to the competitive selection of more productive
+ firms. In our examination of subglobal climate policy we see
+ substantial trade diversion in the Melitz structure. This
+ exacerbates the problem of carbon leakage and impacts the
+ emissions yields from carbon-based tariffs.}
+}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%
% Unpublished
@@ -332,25 +668,14 @@
note = {Working Paper, University of Colorad, Department of Economics}
}
- at unpublished{Takeda2011b,
- author = {Takeda, Shiro and Arimura, Toshi H. and Tamechika, Hanae and
- Fischer, Carolyn and Fox, Alan K.},
- title = {Output Based Allocation of Emissions Permits for Mitigating
- the Leakage and Competitiveness Issues for {Japanese} Economy},
- note = {RFF (Resources for the Future) Discussion Paper 11-40,
- September 2011},
- url =
- {http://rff.org/Publications/Pages/PublicationDetails.aspx?PublicationID=21652},
- year = 2011
-}
-
- at unpublished{takeda2011c,
+ at unpublished{takeda2015a,
author = {Takeda, Shiro and Arimura, Toshi H. and Sugino, Makoto},
title = {Labor Market Distortions and Welfare-Decreasing International
Emissions Trading},
- url = {http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1886200},
- year = {2011},
- access = {29/06/2013},
+ url =
+ {http://www.waseda.jp/fpse/winpec/assets/uploads/2015/06/No.E1422Takeda_Arimura_Sugino.pdf},
+ year = {2015},
+ note = {WINPEC Working Paper Series No.E1422, March 2015}
}
@unpublished{Babiker-1999-KyotoProtocoland,
@@ -413,6 +738,23 @@
note = {September, 2018},
}
+ at Unpublished{saito17:_effec_immig_japan,
+ author = {Saito, Muneyuki and Kato, Shinya and Takeda, Shiro},
+ title = {Effects of Immigration in Japan: A Computable General
+ Equilibrium Assessment},
+ url = {https://ssrn.com/abstract=2782708},
+ year = 2017
+}
+
+ at Unpublished{takeda10:_region_effec_trade_liber_japan,
+ author = {Takeda, Shiro and Kanemi, Ban},
+ title = {Regional Effects of Trade Liberalization in Japan: A CGE
+ Analysis Based on an Interregional Input-Output Table},
+ url =
+ {http://shirotakeda.org/assets/files/research/rio_2008/en/takeda-ban-iro-2010-04-15.pdf},
+ year = 2010
+}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%
% inbook
@InBook{wong95:_inter_trade_goods_factor_mobil_,
@@ -449,6 +791,27 @@
month = sep # "~6"
}
+ at inproceedings{zhang2016Deep,
+ address = {{Paduva, Italy}},
+ title = {Deep {{Learning}} over {{Multi}}-Field {{Categorical Data}}},
+ volume = {9626},
+ language = {en},
+ urldate = {2018-12-26},
+ booktitle = {Proceedings of 38th {{European Conference}} on {{IR
+ Research}}},
+ publisher = {{Springer International Publishing}},
+ doi = {10.1007/978-3-319-30671-1_4},
+ url = {http://link.springer.com/10.1007/978-3-319-30671-1_4},
+ author = {Zhang, Weinan and Du, Tianming and Wang, Jun},
+ editor = {Ferro, Nicola and Crestani, Fabio and Moens, Marie-Francine
+ and Mothe, Josiane and Silvestri, Fabrizio and Di Nunzio,
+ Giorgio Maria and Hauff, Claudia and Silvello, Gianmaria},
+ month = mar,
+ year = {2016},
+ keywords = {unread,FM-supported NN (FNN),Sample-based NN (SNN)},
+ pages = {45-57}
+}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%
% Manual
@Manual{brooke03:_gams,
@@ -490,28 +853,28 @@
}
@techreport{NBERw25205,
- title = "Electoral Systems and Inequalities in Government
- Interventions",
- author = "Garance Genicot and Laurent Bouton and Micael Castanheira",
- institution = "National Bureau of Economic Research",
- type = "Working Paper",
- series = "Working Paper Series",
- number = "25205",
- year = "2018",
- month = "October",
+ title = {Electoral Systems and Inequalities in Government
+ Interventions},
+ author = {Garance Genicot and Laurent Bouton and Micael Castanheira},
+ institution = {National Bureau of Economic Research},
+ type = {Working Paper},
+ series = {Working Paper Series},
+ number = 25205,
+ year = 2018,
+ month = {October},
doi = {10.3386/w25205},
- URL = "http://www.nber.org/papers/w25205",
+ URL = {http://www.nber.org/papers/w25205},
nameorder = {random}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%
% Online
- at online{stakeda2013web,
+ at online{stakeda2019web,
author = {Shiro Takeda},
- year = {2013},
+ year = {2019},
title = {econ.bst: {BibTeX} style file for economics},
- url = {http://shirotakeda.org/en/tex/econ-bst.html},
- access = {4th July, 2013}
+ url = {https://github.com/ShiroTakeda/econ-bst},
+ access = {28th Jan, 2019}
}
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex 2020-02-27 00:55:10 UTC (rev 53936)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex 2020-02-27 22:03:41 UTC (rev 53937)
@@ -3,7 +3,6 @@
% Filename: econ-example.tex
% Author: Shiro Takeda
% First-written: <2002/11/02>
-% Time-stamp: <2018-12-06 00:47:47 st>
%
% This document explains how to use econ.bst.
@@ -14,12 +13,12 @@
%% Use natbib.sty.
\usepackage{natbib}
\usepackage{fancybox}
-\usepackage{mathpazo}
+\usepackage{newtxtext,newtxmath}
\usepackage{url}
\usepackage{graphicx}
\usepackage{color}
\definecolor{MyBrown}{rgb}{0.3,0,0}
-\definecolor{MyBlue}{rgb}{0,0,0.3}
+\definecolor{MyBlue}{rgb}{0,0.2,0.6}
\definecolor{MyRed}{rgb}{0.4,0,0.1}
\definecolor{MyGreen}{rgb}{0,0.4,0}
\usepackage[bookmarks=true,bookmarksnumbered=true,colorlinks=true,linkcolor=MyBlue,citecolor=MyRed,filecolor=MyBlue,urlcolor=MyGreen]{hyperref}
@@ -31,6 +30,9 @@
\makeatletter
+% Set the roman font to font for URL (the default font for URL is type writer font).
+\renewcommand\UrlFont{\rmfamily}
+
\newenvironment{Frame}%
{\setlength{\fboxsep}{15pt}
\setlength{\mylength}{\linewidth}%
@@ -53,14 +55,12 @@
%%% title, author, acknowledgement, and date
\title{\texttt{econ.bst}:\\
-\BibTeX{} style for economics\\
-(for ver. 2.4)
-\thanks{\texttt{econ.bst} is available at
+\BibTeX{} style for economics\thanks{\texttt{econ.bst} is available at
\url{https://github.com/ShiroTakeda/econ-bst}}
}
\author{Shiro Takeda\thanks{email: {\ttfamily shiro.takeda at gmail.com}.}}
-\date{\today}
+\date{2020/02/26}
%#####################################################################
%######################### Document Starts ###########################
@@ -95,6 +95,10 @@
wish.
\item You can use ``\textit{certified random order}'' proposed by
\href{http://dx.doi.org/10.1257/aer.20161492}{\citet[][AER]{10.1257/aer.20161492}}.
+ \begin{itemize}
+ \item If you want to use certified random order, please see Section
+ \ref{sec:cro}.
+ \end{itemize}
\end{itemize}
\end{Frame}
@@ -103,15 +107,12 @@
\section{How to use ``\texttt{econ.bst}''}
\begin{itemize}
- \item ``\texttt{econ.bst}'' requires ``\texttt{natbib.sty}''.
- If ``\texttt{natbib.sty}'' is not installed in your \TeX{} system, you must
- install it first.
+ \item ``\texttt{econ.bst}'' requires ``\texttt{natbib.sty}'', which is
+ installed in the standard \TeX{} system.
\item Put ``\texttt{econ.bst}'' file somewhere under the directory (folder)
``\texttt{/texmf/bibtex/bst}''. Or you can place ``\texttt{econ.bst}'' at
the same directory as the \TeX{} file you are editting.
- \item You may need to change the character code of ``\texttt{econ.bst}''
- according to your \TeX system.
- \item See ``\texttt{econ-example.tex}'' for an example tex file.
+ \item See ``\texttt{econ-example.tex}'' for preparing an tex file.
\item For \BibTeX{} in general, see, for example,
\href{https://www.economics.utoronto.ca/osborne/latex/BIBTEX.HTM}{Using
BibTeX: a short guide} by Martin J. Osborne.
@@ -121,7 +122,7 @@
\subsection{Preparing a tex file}
In the tex file you are editting, you first need to load \texttt{natbib}
-package.
+package in the preample (i.e. before \verb|\begin{document}|)
\begin{Frame}
\begin{verbatim}
\usepackage{natbib}
@@ -131,9 +132,9 @@
In the main text, you can cite bibliographic entries by \verb|\citet|
command.
-For example, ``\verb|\citet{Takeda2011b}| is my paper'' generates the output like
+For example, ``\verb|\citet{Takeda2014a}| is my paper'' generates the output like
\begin{Frame}
-\citet{Takeda2011b} is my paper.
+\citet{Takeda2014a} is my paper.
\end{Frame}
At the place where you want to add ``the reference part'', you have to set the
@@ -144,8 +145,23 @@
\bibliography{econ-example}
\end{verbatim}
\end{Frame}
+Note that you should not attach the extension ``bst'' and ``bib'' to the bst and
+database file name.
+\subsection{Running pdf\TeX{}}
+\texttt{econ-example.tex} is created so that it is compiled with pdf\LaTeX
+(``\texttt{pdflatex.exe}''). So to compile \texttt{econ-example.tex}, you just
+execute the following commnads.
+\begin{Frame}
+\begin{verbatim}
+pdflatex econ-example.tex
+bibtex econ-example
+pdflatex econ-example.tex
+pdflatex econ-example.tex
+\end{verbatim}
+\end{Frame}
+
\section{Customization}
``\texttt{econ.bst}'' defines many functions which have names like
@@ -169,6 +185,33 @@
\item In a bst file, integer (e.g. 0, 1, 2) is represented as \verb|#0|, \verb|#1| , \verb|#2|.
\end{itemize}
+\subsection{Customized bst files}
+
+Many customized bst files listed in Table \ref{tab:c-files} are already
+provided. You can find these files under the ``customization'' folder. See
+\url{https://github.com/ShiroTakeda/econ-bst/tree/master/customization}.
+
+\begin{table}[htbp]
+\begin{flushleft}
+\caption{List of customized files.}
+\label{tab:c-files}
+\begin{tabular}{l|l} \hline \hline
+\multicolumn{1}{c}{bst files} & \multicolumn{1}{c}{Explanation} \\\hline
+\texttt{econ.bst} & The default econ.bst file. \\\hline
+\texttt{econ-a.bst} & A simple style. \\\hline
+\texttt{econ-b.bst} & A style with much decoration. \\\hline
+\texttt{econ-no-sort.bst} & This style lists entries in citation order. \\\hline
+\texttt{econ-abbr.bst} & This style uses abbreviated journal name. \\\hline
+\texttt{econ-aea.bst} & The style for AEA journals such as AER, JEL, AEJ and JEP. \\\hline
+\texttt{econ-econometrica.bst} & The style for Econometrica. \\\hline
+\texttt{econ-jpe.bst} & The style for JPE (\textit{Journal of Poilitical Economy}). \\\hline
+\texttt{econ-jet.bst} & The style for JET (\textit{Journal of Economic Theoriy}). \\\hline
+\texttt{econ-jie.bst} & The style for JIE (\textit{Journal of International Economics}). \\\hline
+\texttt{econ-old.bst} & The style of the old econ.bst. \\\hline
+\end{tabular}
+\end{flushleft}
+\end{table}
+
\subsection{Examples of customization}
\subsubsection{Change delimiter used to separate mutiple author names
@@ -246,13 +289,13 @@
\begin{Frame}
\begin{verbatim}
FUNCTION {bst.volume.pre}
-{ ", Vol. " }
+{ ", " }
FUNCTION {bst.volume.post}
{ "" }
FUNCTION {bst.number.pre}
-{ ", No. " }
+{ " (" }
FUNCTION {bst.number.post}
-{ "" }
+{ ")" }
\end{verbatim}
\end{Frame}
@@ -260,20 +303,19 @@
\begin{Frame}
\begin{verbatim}
FUNCTION {bst.volume.pre}
-{ ", \textbf{" }
+{ ", Vol. " }
FUNCTION {bst.volume.post}
-{ "}" }
+{ "" }
FUNCTION {bst.number.pre}
-{ " (" }
+{ ", No. " }
FUNCTION {bst.number.post}
-{ ")" }
+{ "" }
\end{verbatim}
\end{Frame}
-By this, the style of volume and number change from ``Vol. 5, No. 10''
-to ``\textbf{5} (10)''. See ``\texttt{econ-b.bst}'' for an example.
+By this, the style of volume and number change from ``5 (10)'' to ``Vol. 5,
+Non. 10''. See ``\texttt{econ-b.bst}'' for an example.
-
\subsubsection{Abbreviation of author name}
By default, when there are mutiple documents of the same author, author
@@ -456,10 +498,14 @@
For example, reference style changes as follows:
\begin{description}
- \item[\#0: ] Mazda, A. and B. Subaru, 2007, ``ABC,'' \textit{Journal of Automobiles}, Vol. 1, pp. 1-10.
- \item[\#1: ] Mazda, A. and B. Subaru, ``ABC,'' \textit{Journal of Automobiles}, Vol. 1, pp. 1-10, 2007.
- \item[\#2: ] Mazda, A. and B. Subaru, ``ABC,'' \textit{Journal of Automobiles}, 2007, Vol. 1, pp. 1-10.
- \item[\#3: ] Mazda, A. and B. Subaru, ``ABC,'' \textit{Journal of Automobiles}, Vol. 1, 2007, pp. 1-10.
+ \item[\#0: ] Mazda, A. and B. Subaru, 2007, ``ABC,'' \textit{Journal of
+ Automobiles}, 1 (2), pp. 1-10.
+ \item[\#1: ] Mazda, A. and B. Subaru, ``ABC,'' \textit{Journal of Automobiles},
+ 1 (2), pp. 1-10, 2007.
+ \item[\#2: ] Mazda, A. and B. Subaru, ``ABC,'' \textit{Journal of Automobiles},
+ 2007, 1 (2), pp. 1-10.
+ \item[\#3: ] Mazda, A. and B. Subaru, ``ABC,'' \textit{Journal of Automobiles},
+ 1 (2), 2007, pp. 1-10.
\end{description}
See ``\texttt{econ-a.bst}'' and ``\texttt{econ-b.bst}'' for exmpales.
@@ -518,9 +564,9 @@
`\verb|\citet*|', you can generate the following two styles.
\begin{itemize}
\item Citation by full names: \\
- \verb|\citet*{Takeda2011b}| $\longrightarrow$ \citet*{Takeda2011b}
+ \verb|\citet*{Takeda2014a}| $\longrightarrow$ \citet*{Takeda2014a}
\item Citation by abbreviated names: \\
- \verb|\citet{Takeda2011b}| $\longrightarrow$ \citet{Takeda2011b}
+ \verb|\citet{Takeda2014a}| $\longrightarrow$ \citet{Takeda2014a}
\end{itemize}
By the default, author names more than three are abbreviated. But you can change
@@ -542,9 +588,9 @@
See the manual of \texttt{natbib.sty} for the details.
\begin{itemize}
\item The manual of \texttt{natbib.sty}:
- \href{http://ctan.math.utah.edu/ctan/tex-archive/macros/latex/contrib/natbib/natbib.pdf}{natbib.pdf}
+ \href{http://mirror.ctan.org/macros/latex/contrib/natbib/natbib.pdf}{natbib.pdf}
\item The reference sheet of \texttt{natbib.sty}:
- \href{http://mirror.las.iastate.edu/tex-archive/macros/latex/contrib/natbib/natnotes.pdf}{natnotex.pdf}
+ \href{http://mirror.ctan.org/macros/latex/contrib/natbib/natnotes.pdf}{natnotex.pdf}
\end{itemize}
\subsubsection{Citation by number index}
@@ -564,7 +610,7 @@
In addition, you need to use \texttt{citep} command in the citation part like
\begin{Frame}
\begin{verbatim}
-\citep{Takeda2011b}
+\citep{Takeda2014a}
\end{verbatim}
\end{Frame}
@@ -640,10 +686,10 @@
references:
\begin{quote}
-Ray, Debraj \textcircled{r} Arthur Robson (2018) ``Certified Random: A New Order
-for Coauthorship,'' \textit{American Economic Review}, Vol. 108, No. 2,
-pp. 489--520, URL: \url{http://www.aeaweb.org/articles?id=10.1257/aer.20161492},
-DOI: \href{http://dx.doi.org/10.1257/aer.20161492}{10.1257/aer.20161492}.
+Ray, Debraj \textcircled{r} Arthur Robson (2018) ``Certified Random: A New
+Order for Coauthorship,'' \textit{American Economic Review}, 108 (2),
+489--520, \href{http://dx.doi.org/10.1257/aer.20161492}{\urlstyle{rm}
+\nolinkurl{10.1257/aer.20161492}}.
\end{quote}
Under the random order style, an entry with two authors is cited as already
@@ -677,9 +723,23 @@
\end{verbatim}
\end{Frame}
-Under the default setting, the symbol ``\textcircled{r}''
-(\verb|\textcircled{r}|) is used. But you can use another symbol. If you want
-to use an alternative symbol, you need to change settings for
+Under the default setting, we use ``\textcircled{r}'' (\verb|\textcircled{r}|)
+for the symbol for separating author names.
+They are defined with the following code in \texttt{econ.bst}.
+\begin{Frame}
+\begin{verbatim}
+FUNCTION {bst.and.nameorder}
+{ " \textcircled{r} " }
+
+FUNCTION {bst.cite.and.nameorder}
+{ " \textcircled{r} " }
+
+FUNCTION {bst.and.others.nameorder}
+{ " \textcircled{r}~al." }
+\end{verbatim}
+\end{Frame}
+
+You can use an alternative symbol by redefining these functions:
`\texttt{bst.and.nameorder}', `\texttt{bst.cite.and.nameorder}' and
`\texttt{bst.and.others.nameorder}'.
@@ -699,7 +759,8 @@
\begin{enumerate}
\item Type of entry (if ``\texttt{bst.sort.entry.type}'' has non-zero value)
\item Value of ``\texttt{year}'' field (if ``\texttt{bst.sort.year}'' has non-zero value)
- \item Value of ``\texttt{absorder}'' field.
+ \item Value of ``\texttt{absorder}'' field (if ``\texttt{absorder}'' field has
+ a value)
\item Value of ``\texttt{author}'' (or ``\texttt{editor}'') field.
\item Value of ``\texttt{year}'' field.
\item Value of ``\texttt{order}'' field.
@@ -819,8 +880,8 @@
\citet{borgers95:_note_implem_stron_domin},
\citet{bergemann11:_ration},
-\citet{takeda2011c},
-\citet{Takeda2011b},
+\citet{takeda2015a},
+\citet{Takeda2014a},
\citet{Biker-2007-unemployment},
\citet{Babiker-1999-JapaneseNuclearPower},
\citet{Babiker-1999-KyotoProtocoland},
@@ -827,7 +888,15 @@
\citet{Babiker2000525},
\citet{BabikerRutherford-2005-EconomicEffectsof},
\citet{goldin:katz:2011}, \citet{goldin:katz:2008}, \citet{goldin:katz:2000}.
-\citet{stakeda2013web}
+\citet{stakeda2019web},
+\citet{essd-10-405-2018},
+\citet{luthi08:_high},
+\citet{doi:10.1175/2009BAMS2778.1},
+\citet{Rivers-2005-CombiningTop-Downand},
+\citet{WilsonMannOtsuki-2005-AssessingBenefitsof},
+\citet{zhang2016Deep},
+\citet{imbens2019Optimized}.
+
\vspace*{1em}
\nocite{*}
More information about the tex-live-commits
mailing list.