summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst')
-rw-r--r--Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst256
1 files changed, 183 insertions, 73 deletions
diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst
index 89e5c51528e..81bc4063ff9 100644
--- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst
+++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst
@@ -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,24 +20,19 @@
%
% 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).
+% "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
% 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}
@@ -61,7 +55,7 @@ ENTRY
%% 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 @@ FUNCTION {bst.notuse.order.field}
% 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,7 +307,11 @@ FUNCTION {bst.cite.and.nameorder}
% 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 @@ FUNCTION {bst.author.pre}
% The string after author:
%
FUNCTION {bst.author.post}
-{ "}" }
+{ "} " }
% { "" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -419,13 +418,23 @@ FUNCTION {bst.journal.pre}
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)
+{ " ed. " }
+% { " eds. " } % (default)
% The string that indicates single editor:
%
@@ -438,7 +447,8 @@ FUNCTION {bst.editor}
% If set to non-zero: booktitle -> editors order
%
FUNCTION {bst.editor.btitle.order}
-{ #0 } % (default)
+% { #0 } % (default)
+{ #1 }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% edition
@@ -459,8 +469,7 @@ FUNCTION {bst.edition.post}
% The string before volume:
%
FUNCTION {bst.volume.pre}
-{ ", " }
-% { ", Vol. " } % (default)
+{ ", " } % (default)
% The string after volume:
%
@@ -474,20 +483,18 @@ FUNCTION {bst.volume.post}
% 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 @@ FUNCTION {bst.in}
% 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 @@ FUNCTION {bst.show.url}
% The string before url:
%
FUNCTION {bst.url.pre}
-{ ", URL: \url{" } % (default)
+{ ", \url{" } % (default)
% The string after url:
%
@@ -693,12 +698,12 @@ FUNCTION {bst.show.doi}
% 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 @@ FUNCTION {bst.doi.post}
% #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 @@ FUNCTION {bst.note.post}
% 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 @@ FUNCTION {bst.mthesis}
% The string that represents phd thesis:
%
FUNCTION {bst.phdthesis}
-{ " Ph.D. dissertation" } % (default)
+{ ", Ph.D. dissertation" }
+% { " Ph.D. dissertation" } % (default)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
@@ -1068,11 +1074,37 @@ FUNCTION {format.btitle}
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 @@ FUNCTION {format.names}
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 @@ FUNCTION {format.editors.x}
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 {either.or.check}
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.thesis.type}
FUNCTION {format.tr.number}
{ type empty$
- { "Technical Report" }
+ { bst.techrep }
{ " " type * }
if$
number empty$
@@ -2161,9 +2257,12 @@ FUNCTION {incollection}
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 @@ FUNCTION {techreport}
'skip$
if$
+ format.url.doi output.nocomma
+
format.note output.nocomma
fin.entry
}
@@ -2920,6 +3021,15 @@ FUNCTION {calc.flabel}
}
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 @@ 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$
+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" 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}