summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-05-24 20:15:17 +0000
committerKarl Berry <karl@freefriends.org>2021-05-24 20:15:17 +0000
commit03deeefc2e47912c06c5df308b73274878480619 (patch)
treee68c14634a1679968d0624176c81b4d8df96fac5 /Master/texmf-dist/bibtex
parent7f782e9ba4b0c6d8415f31fc337ac43283809e43 (diff)
econ-bst (24may21)
git-svn-id: svn://tug.org/texlive/trunk@59327 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex')
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-a.bst200
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst200
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst214
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst202
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst208
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst202
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst202
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst210
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst200
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst1
-rw-r--r--Master/texmf-dist/bibtex/bst/econ-bst/econ.bst200
11 files changed, 1350 insertions, 689 deletions
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-a.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-a.bst
index 6a047e97d07..2d5330e22a1 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-a.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-a.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -317,10 +317,18 @@ FUNCTION {bst.cite.and.nameorder}
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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -828,7 +836,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1188,6 +1196,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1196,11 +1209,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1216,7 +1238,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1233,27 +1255,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1262,12 +1306,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1392,10 +1441,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2635,7 +2680,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2693,58 +2738,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2938,13 +2999,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3594,4 +3659,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst
index 7beacd5cf64..6b012acc1b4 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -315,10 +315,18 @@ FUNCTION {bst.cite.and.nameorder}
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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -810,7 +818,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -2318,6 +2326,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -2326,11 +2339,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -2346,7 +2368,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -2363,27 +2385,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -2392,12 +2436,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -2522,10 +2571,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -3765,7 +3810,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -3823,58 +3868,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -4068,13 +4129,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -4724,4 +4789,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst
index 21f2fb48035..cb6c44f4ea6 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -36,7 +36,7 @@
% https://github.com/ShiroTakeda/econ-bst
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "aer.bst" }
@@ -52,7 +52,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -316,10 +316,18 @@ FUNCTION {bst.cite.and.nameorder}
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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -584,8 +592,8 @@ FUNCTION {bst.address.post}
% 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)
@@ -828,7 +836,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1188,6 +1196,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1196,11 +1209,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1216,7 +1238,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1233,27 +1255,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1262,12 +1306,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1313,7 +1362,7 @@ FUNCTION {compare.names.aer}
s i.aer "{ff }{vv }{ll}{ jj}" format.name$
=
{ #1 i.aer <
- { " and " * } % \bysame ŏȗ钘҂̑Oɂ‚ and
+ { " and " * } % \bysame で省略する著者の前につく and
{ }
if$
"\bysame{}" *
@@ -1392,10 +1441,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -1407,8 +1452,8 @@ FUNCTION {format.editors.x}
{ bst.editor.btitle.order #0 =
{ "" }
{ editor num.names$ #1 >
- { " edited by " }
- { " edited by " }
+ { " edited by " } % For econ-aea.bst
+ { " edited by " } % For econ-aea.bst
% { bst.editors " by " * }
% { bst.editor " by " * }
if$
@@ -1550,7 +1595,7 @@ FUNCTION {format.bvolume}
{ volume empty$
{ "" }
% { bst.volume.pre volume * bst.volume.post *
- { " Volume " volume * "." *
+ { " Volume " volume * "." * % For econ-aea.bst
series empty$
'skip$
%% If there is series field
@@ -1880,7 +1925,7 @@ FUNCTION {format.address}
FUNCTION {format.publisher}
{ publisher empty$
{ "" }
- { address empty$
+ { address empty$ % For econ-aea.bst
{ ", " publisher * bst.publisher.post * }
{ bst.publisher.pre publisher * bst.publisher.post * }
if$
@@ -2642,7 +2687,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2700,58 +2745,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2945,13 +3006,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3601,4 +3666,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst
index 2e668eb9e04..1388401e63b 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -322,12 +322,20 @@ 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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -832,7 +840,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1192,6 +1200,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1200,11 +1213,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1220,7 +1242,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1237,27 +1259,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1266,12 +1310,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1396,10 +1445,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2639,7 +2684,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2697,58 +2742,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2942,13 +3003,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3598,4 +3663,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst
index 81bc4063ff9..9a20f53de79 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -29,7 +29,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ-econometrica.bst" }
@@ -45,7 +45,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -308,10 +308,18 @@ FUNCTION {bst.cite.and.nameorder}
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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -810,7 +818,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1170,6 +1178,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1178,11 +1191,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1198,7 +1220,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1215,27 +1237,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1244,15 +1288,20 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
-% For Econometrica, we define `format.name.ed` in addition to `format.name`.
+% For econ-econometrica.bst, we define `format.name.ed` in addition to `format.name`.
FUNCTION {format.names.ed}
{ 's :=
% insert 1 to nameptr.
@@ -1430,10 +1479,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -1450,7 +1495,7 @@ FUNCTION {format.editors.x}
if$
}
if$
- editor format.names.ed *
+ editor format.names.ed * % For econ-econometrica.bst
% editor format.names *
bst.editor.btitle.order #0 =
{ editor num.names$ #1 >
@@ -1586,7 +1631,7 @@ FUNCTION {either.or.check}
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
- { " Volume " volume * bst.volume.post *
+ { " Volume " volume * bst.volume.post * % For econ-econometrica.bst
% { bst.volume.pre volume * bst.volume.post *
series empty$
'skip$
@@ -2257,7 +2302,7 @@ FUNCTION {incollection}
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- % For Econometrica, publisher and its address are placed before edition,
+ % For econ-econometrica.bst, publisher and its address are placed before edition,
% chapter and page number.
output.address.organization.publisher
format.edition output.nocomma
@@ -2678,7 +2723,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2736,58 +2781,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2981,13 +3042,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3637,4 +3702,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst
index 67a00ed0833..ed0329ab397 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst
@@ -1,10 +1,10 @@
-%% econ-jet.bst: BibTeX style file for "Journal of Economic Theory".
+nn%% 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>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -29,7 +29,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ-jet.bst" }
@@ -45,7 +45,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -309,10 +309,18 @@ FUNCTION {bst.cite.and.nameorder}
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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -819,7 +827,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -2327,6 +2335,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -2335,11 +2348,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -2355,7 +2377,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -2372,27 +2394,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -2401,12 +2445,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -2531,10 +2580,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -3774,7 +3819,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -3832,58 +3877,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -4077,13 +4138,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -4733,4 +4798,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst
index 06a2cfbe50b..f151baaed03 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -31,7 +31,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ-jie.bst" }
@@ -47,7 +47,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -311,10 +311,18 @@ FUNCTION {bst.cite.and.nameorder}
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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -728,7 +736,7 @@ 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 } % (default) --> Only DOI field is displayed
@@ -825,7 +833,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1185,6 +1193,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1193,11 +1206,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1213,7 +1235,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1230,27 +1252,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1259,12 +1303,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1389,10 +1438,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2632,7 +2677,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2690,58 +2735,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2935,13 +2996,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3591,4 +3656,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst
index ee6d4364ab5..2fac0d1b56a 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ-jpe.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -316,10 +316,18 @@ FUNCTION {bst.cite.and.nameorder}
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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -824,7 +832,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -2332,6 +2340,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -2340,11 +2353,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -2360,7 +2382,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -2377,27 +2399,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -2406,15 +2450,20 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
-% For JPE, we define `format.name.ed` in addition to `format.name`.
+% For econ-jpe.bst, we define `format.name.ed` in addition to `format.name`.
FUNCTION {format.names.ed}
{ 's :=
% insert 1 to nameptr.
@@ -2592,10 +2641,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2607,14 +2652,14 @@ FUNCTION {format.editors.x}
{ bst.editor.btitle.order #0 =
{ "" }
{ editor num.names$ #1 >
- { " edited by " }
- { " edited by " }
+ { " edited by " } % For econ-jpe.bst
+ { " edited by " } % For econ-jpe.bst
% { bst.editors " by " * }
% { bst.editor " by " * }
if$
}
if$
- editor format.names.ed *
+ editor format.names.ed * % For econ-jpe.bst
bst.editor.btitle.order #0 =
{ editor num.names$ #1 >
{ bst.editors * }
@@ -3419,7 +3464,7 @@ FUNCTION {incollection}
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- % For JPE, publisher and its address are placed before edition,
+ % For econ-jpe.bst, publisher and its address are placed before edition,
% chapter and page number.
output.address.organization.publisher
format.edition output.nocomma
@@ -3840,7 +3885,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -3898,58 +3943,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -4143,13 +4204,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -4799,4 +4864,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst
index b2cbcd057ee..6a9e8f51ebf 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -315,10 +315,18 @@ FUNCTION {bst.cite.and.nameorder}
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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -810,7 +818,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1170,6 +1178,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1178,11 +1191,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1198,7 +1220,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1215,27 +1237,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1244,12 +1288,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1374,10 +1423,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2617,7 +2662,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2675,58 +2720,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2920,13 +2981,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3576,4 +3641,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst
index e16c585fff1..3211980e1be 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst
@@ -3576,4 +3576,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst b/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst
index f74137a79d0..070b7299f98 100644
--- a/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst
+++ b/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -315,10 +315,18 @@ FUNCTION {bst.cite.and.nameorder}
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.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -810,7 +818,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1170,6 +1178,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1178,11 +1191,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1198,7 +1220,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1215,27 +1237,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
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$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1244,12 +1288,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1374,10 +1423,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2617,7 +2662,7 @@ FUNCTION {format.lab.names.abb}
% 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 * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2675,58 +2720,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
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$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2920,13 +2981,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3575,5 +3640,6 @@ EXECUTE {end.bib}
% --------------------
% Local Variables:
% fill-column: 78
+% coding: utf-8-unix
% mode: bst
% End: