diff options
author | Karl Berry <karl@freefriends.org> | 2021-05-24 20:15:17 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-05-24 20:15:17 +0000 |
commit | 03deeefc2e47912c06c5df308b73274878480619 (patch) | |
tree | e68c14634a1679968d0624176c81b4d8df96fac5 /Master/texmf-dist/bibtex | |
parent | 7f782e9ba4b0c6d8415f31fc337ac43283809e43 (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.bst | 200 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst | 200 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst | 214 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst | 202 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst | 208 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst | 202 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst | 202 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst | 210 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst | 200 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst | 1 | ||||
-rw-r--r-- | Master/texmf-dist/bibtex/bst/econ-bst/econ.bst | 200 |
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: |