texlive[59327] Master/texmf-dist: econ-bst (24may21)

commits+karl at tug.org commits+karl at tug.org
Mon May 24 22:15:17 CEST 2021


Revision: 59327
          http://tug.org/svn/texlive?view=revision&revision=59327
Author:   karl
Date:     2021-05-24 22:15:17 +0200 (Mon, 24 May 2021)
Log Message:
-----------
econ-bst (24may21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-a.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst
    trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/README.md
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/README.md
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/cited-part.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.tex
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.bib
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.pdf
    trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-a.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-a.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-a.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,11 +317,19 @@
 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 { 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -2635,7 +2680,7 @@
      % 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 {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.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 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-abbr.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,11 +315,19 @@
 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 { 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -3765,7 +3810,7 @@
      % 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 {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.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 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-aea.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,11 +316,19 @@
 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 @@
 
 % 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 { 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
       s i.aer "{ff }{vv }{ll}{ jj}" format.name$
       =
         { #1 i.aer <
-            { " and " * }       % \bysame \x82ŏȗ\xAA\x82\xB7\x82钘\x8E҂̑O\x82ɂ‚\xAD and 
+            { " and " * }       % \bysame で省略する著者の前につく and 
             { }
           if$
           "\bysame{}" *
@@ -1392,10 +1441,6 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -1407,8 +1452,8 @@
     { 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 @@
 { 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.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 @@
      % 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 {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.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 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-b.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,15 +322,23 @@
 % { #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).
 
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
 % Strings used when abbreviating multiple-authors in citation part.
 FUNCTION {bst.and.others}
 { " et~al." }    % (default)
@@ -832,7 +840,7 @@
 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -2639,7 +2684,7 @@
      % 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 {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.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 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-econometrica.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,11 +308,19 @@
 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 { 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -1450,7 +1495,7 @@
           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 {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 @@
 
   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 @@
      % 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 {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.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 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jet.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,11 +309,19 @@
 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 { 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -3774,7 +3819,7 @@
      % 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 {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.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 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jie.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,11 +311,19 @@
 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 @@
 % #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 { 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -2632,7 +2677,7 @@
      % 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 {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.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 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-jpe.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,11 +316,19 @@
 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 { 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -2607,14 +2652,14 @@
     { 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 @@
 
   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 @@
      % 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 {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.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 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-no-sort.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,11 +315,19 @@
 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 { 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -2617,7 +2662,7 @@
      % 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 {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.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 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ-old.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -3576,4 +3576,5 @@
 %  Local Variables:
 %  fill-column: 78
 %  mode: bst
+%  coding: utf-8-unix
 %  End:

Modified: trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/bibtex/bst/econ-bst/econ.bst	2021-05-24 20:15:17 UTC (rev 59327)
@@ -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 @@
     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,11 +315,19 @@
 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 { 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 @@
 
 %%% 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 @@
   % 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 @@
          }
         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 @@
         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 @@
           }
         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 @@
         { "\bysame " }
         { bst.author.pre editor remove.ss.period.auth * }
       if$
-      editor num.names$ #1 >
-       { bst.editors * }
-       { bst.editor * }
-      if$
     }
   if$
 }
@@ -2617,7 +2662,7 @@
      % 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 {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.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 @@
 %  --------------------
 %  Local Variables:
 %  fill-column: 78
+%  coding: utf-8-unix
 %  mode: bst
 %  End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md	2021-05-24 20:15:17 UTC (rev 59327)
@@ -8,6 +8,37 @@
 
 ## Changelogs
 
+## Ver. 3.1
+
+* 2021-05-23: Fixed a bug in label for sorting.
+
+* 2021-05-23: Added sample bibliography items with sortname field.
+
+* 2021-05-23: Suported sortname field. If you add sortname field to a
+  bibliography entry, the value of sortname field is used for sorting instead of
+  author or editor. For the details, see ``sorting'' section in
+  econ-example.pdf.
+
+
+## Ver. 3.0
+
+* 2020-12-29: bst files in the customization folder are updated.
+
+* 2020-06-23: In the new econ.bst, if the number of authors is greater than N1,
+  only the first N2 authors' names are displayed in the reference part (and
+  other authors' names are omitted by "et el.").
+  
+  N1 is determined by `bst.max.author.num` (the default value = 8).
+  N2 is determined by `bst.max.author.num.displayed` (the default value = 3).
+  
+  See econ-example.pdf or econ-many-authors.pdf in the customization folder.
+
+
+## Ver. 2.9
+
+* 2020-03-26: Fixed the bug related to book editors.
+
+
 ## Ver. 2.8
 
 * 2020-03-03: Changed the directory structure.
@@ -340,7 +371,7 @@
 Local Variables:
 mode: markdown
 fill-column: 80
-coding: utf-8-dos
+coding: utf-8-unix
 End:
 -->
 

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/README.md	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/README.md	2021-05-24 20:15:17 UTC (rev 59327)
@@ -29,18 +29,6 @@
 | [`CHANGES.md`](CHANGES.md)             | Changelog file.                            |
 | `README.md`                            | This file.                                 |
 
-| bst file                | Explanation                                               |
-|:------------------------|:----------------------------------------------------------|
-| `econ-a.bst`            | A simple style.                                           |
-| `econ-b.bst`            | A style with much decoration.                             |
-| `econ-no-sort.bst`      | This style lists entries in citation order.               |
-| `econ-abbr.bst`         | This style uses abbreviated journal name.                 |
-| `econ-aea.bst`          | The style for AEA journals such as AER, JEL, AEJ and JEP. |
-| `econ-econometrica.bst` | The style for Econometrica.                               |
-| `econ-jpe.bst`          | The style for JPE (Journal of Poilitical Economy).        |
-| `econ-jet.bst`          | The style for JET (Journal of Economic Theoriy).          |
-| `econ-jie.bst`          | The style for JIE (Journal of International Economics).   |
-| `econ-old.bst`          | The style of the old econ.bst.                            |
 
 <!-- リンクの作成方法 -->
 <!-- [リンクテキスト](URLを記入) -->
@@ -50,7 +38,7 @@
 Local Variables:
 mode: markdown
 fill-column: 80
-coding: utf-8-dos
+coding: utf-8-unix
 End:
 -->
 

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/README.md	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/README.md	2021-05-24 20:15:17 UTC (rev 59327)
@@ -2,7 +2,7 @@
 Author:         Shiro Takeda
 e-mail          <shiro.takeda at gmail.com>
 First-written:  <2016-03-16>
-Time-stamp:     <2020-02-26 13:55:53 st>
+Time-stamp:     <2020-06-24 23:43:29 st>
 -->
 
 Contents of this folder
@@ -27,6 +27,7 @@
 | `econ-jie.bst`          | [`econ-jie.pdf`](econ-jie.pdf)                   | The style for JIE (Journal of International Economics).   |
 | `econ-old.bst`          | [`econ-old.pdf`](econ-old.pdf)                   | The style of the old econ.bst.                            |
 |                         | [`econ-numbers.pdf`](econ-numbers.pdf)           | An example with numerical citation mode.                  |
+|                         | [`econ-many-authors.pdf`](econ-many-authors.pdf) | An example with a very large number of authros            |
 
 
 | File              | Explanation                                                               |

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/cited-part.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/cited-part.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/cited-part.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -53,7 +53,17 @@
 \citet{Rivers-2005-CombiningTop-Downand},
 \citet{WilsonMannOtsuki-2005-AssessingBenefitsof},
 \citet{zhang2016Deep},
-\citet{imbens2019Optimized}.
+\citet{imbens2019Optimized},
+\citet{Attwood06:SexedUp_art},
+\citet{Attwood09:Mainstreaming},
+\citet{attwood2010porn},
+\citet{jones84:_handb_inter_econom},
+\citet{jones85:_handb_inter_econom},
+\citet{jones97:_handb_inter_econom}.
+\citet{d'Aspremont-2004-BalancedBayesianMechanisms},
+\citet{d'Aspremont-2003-CorrelationIndependenceAndBayesian},
+\citet{Chung-1999-ANoteOnMatsushima's},
+\citet{d'Aspremont-1998-LinearInequalityMethodsTo},
 \\
 
 \vspace*{1em}
@@ -67,5 +77,6 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:
 

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -52,4 +52,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -53,4 +53,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -55,4 +55,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -52,4 +52,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -55,4 +55,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -52,4 +52,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -53,4 +53,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -53,4 +53,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -53,4 +53,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -55,4 +55,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -69,4 +69,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -55,4 +55,5 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.bib
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.bib	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.bib	2021-05-24 20:15:17 UTC (rev 59327)
@@ -468,6 +468,104 @@
   pages        = {264-278}
 }
 
+ at ARTICLE{Attwood06:SexedUp_art,
+  title        = {Sexed Up: Theorizing the Sexualization of Culture},
+  author       = {Attwood, Feona},
+  journal      = {Sexualities},
+  volume       = 9,
+  number       = 1,
+  pages        = {77--94},
+  month        = feb,
+  year         = 2006
+}
+
+ at article{Chung-1999-ANoteOnMatsushima's,
+  title        = {A Note on {Matsushima}'s Regularity Condition},
+  author       = {Chung, Kim-Sau},
+  year         = 1999,
+  volume       = 87,
+  pages        = {429--433},
+  issn         = {0022-0531},
+  doi          = {10.1006/jeth.1999.2545},
+  abstract     = {This note first uses a simple example to show that
+                  H. Matsushima's (1991, J. Econ. Theory54, 198\textendash 203)
+                  regularity condition, to the contrary of his claim, actually
+                  does not imply C. d'Aspremont and L.-A. G\'erard-Varet's
+                  (1979, J. Public Econ.11, 25\textendash 45) compatibility
+                  condition. It then proves a stronger version of Matsushima's
+                  proposition, namely that efficient public decision rules can
+                  be truthfully implemented with budget-balancing mechanisms
+                  under the weak regularity condition. Journal of Economic
+                  Literature Classification Numbers: C72, D82.},
+  journal      = {Journal of Economic Theory},
+  number       = 2
+}
+
+ at article{d'Aspremont-1998-LinearInequalityMethodsTo,
+  title        = {Linear Inequality Methods to Enforce Partnerships under
+                  Uncertainty: {{An}} Overview},
+  author       = {{d'Aspremont}, Claude and {G{\'e}rard-Varet}, Louis-Andr{\'e}},
+  year         = 1998,
+  volume       = 25,
+  pages        = {311--336},
+  issn         = {0899-8256},
+  doi          = {10.1006/game.1998.0675},
+  abstract     = {We review different (generic) conditions on stochastic outcome
+                  functions to enforce either efficient or nearly efficient
+                  partnerships. Their logical relationship is explored. Two
+                  kinds of conditions are considered. However, the property for
+                  an action profile to be ``compatible'' plays a crucial role in
+                  both kinds. Also, two kinds of enforcement mechanisms are
+                  considered: enforcement through utility transfers and
+                  enforcement through repetition.Journal of Economic
+                  LiteratureClassification Numbers: D2, D7.},
+  journal      = {Games and Economic Behavior},
+  keywords     = {folk theorem,mechanism design,partnership,team moral hazard},
+  number       = 2,
+  sortname     = {Aspremont, Claude and {G{\'e}rard-Varet}, Louis-Andr{\'e}},
+}
+
+ at article{d'Aspremont-2003-CorrelationIndependenceAndBayesian,
+  title        = {Correlation, Independence, and {{Bayesian}} Incentives},
+  author       = {{d'Aspremont}, Claude and Cr{\'e}mer, Jacques and
+                  {G{\'e}rard-Varet}, Louis-Andr{\'e}},
+  year         = 2003,
+  month        = oct,
+  volume       = 21,
+  pages        = {281--310},
+  issn         = {0176-1714, 1432-217X},
+  doi          = {10.1007/s00355-003-0260-8},
+  journal      = {Social Choice and Welfare},
+  number       = 2,
+  sortname     = {Aspremont, Claude and Cr{\'e}mer, Jacques and
+                  {G{\'e}rard-Varet}, Louis-Andr{\'e}},
+}
+
+ at article{d'Aspremont-2004-BalancedBayesianMechanisms,
+  title        = {Balanced Bayesian Mechanisms},
+  author       = {{d'Aspremont}, Claude and Cr{\'e}mer, Jacques and
+                  {G{\'e}rard-Varet}, Louis-Andr{\'e}},
+  year         = 2004,
+  volume       = 115,
+  pages        = {385--396},
+  issn         = {0022-0531},
+  doi          = {10.1016/j.jet.2003.07.001},
+  abstract     = {In the transferable utility case, a number of authors have
+                  identified conditions on beliefs that guarantee the existence
+                  of Bayesian incentive compatible mechanisms with balanced
+                  transfers. We present a new, easy to interpret, condition and
+                  we show that it is (strictly) more general than all the other
+                  conditions found in the literature. We also study conditions
+                  guaranteeing the Bayesian implementability of all social
+                  decision rules with balanced budget mechanisms.},
+  journal      = {Journal of Economic Theory},
+  keywords     = {Bayesian implementation,Bayesian incentive
+                  compatibility,Mechanism design},
+  number       = 2,
+  sortname     = {Aspremont, Claude and Cr{\'e}mer, Jacques and
+                  {G{\'e}rard-Varet}, Louis-Andr{\'e}},
+}
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%
 %       Book
 @Book{krugman91:_geogr_trade,
@@ -518,6 +616,48 @@
   address      = {New York}
 }
 
+ at book{jones84:_handb_inter_econom,
+  editor       = {Ronald W. Jones and Peter B. Kenen},
+  title        = {Handbook of International Economics},
+  publisher    = {Elsevier},
+  year         = 1984,
+  volume       = 1,
+  address      = {Amsterdam}
+}
+
+ at book{jones85:_handb_inter_econom,
+  editor       = {Ronald W. Jones and Peter B. Kenen},
+  title        = {Handbook of International Economics},
+  publisher    = {Elsevier},
+  year         = 1985,
+  volume       = 2,
+  address      = {Amsterdam}
+}
+
+ at book{jones97:_handb_inter_econom,
+  title        = {Handbook of International Economics},
+  editor       = {Jones, Ronald W. and Grossman, Gene M. and Kenen, Peter B.
+                  and Rogoff, Kenneth},
+  volume       = 3,
+  year         = 1997,
+  publisher    = {Elsevier},
+  address      = {Amsterdam}
+}
+
+ at book{Attwood09:Mainstreaming,
+  title        = {Mainstreaming Sex: the Sexualization of Western Culture},
+  editor       = {Feona Attwood},
+  publisher    = {I.~B. Tauris},
+  year         = 2009,
+}
+
+ at book{attwood2010porn,
+  title        = {Porn.com: Making Sense of Online Pornography},
+  editor       = {Feona Attwood},
+  year         = 2010,
+  publisher    = {Peter Lang}
+}
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%
 %       Incollection
 @InCollection{krugman91:_is_bilat_bad,
@@ -896,5 +1036,5 @@
 % Local Variables:
 % mode: bibtex
 % fill-column: 80
-% code: utf-8-dos
+% code: utf-8-unix
 % End:

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex	2021-05-23 23:48:51 UTC (rev 59326)
+++ trunk/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex	2021-05-24 20:15:17 UTC (rev 59327)
@@ -55,12 +55,12 @@
 
 %%% title, author, acknowledgement, and date
 \title{\texttt{econ.bst}:\\
-\BibTeX{} style for economics\thanks{\texttt{econ.bst} is available at
+\BibTeX{} style for economics\\(ver. 3.1)\thanks{\texttt{econ.bst} is available at
 \url{https://github.com/ShiroTakeda/econ-bst}}
 }
 
 \author{Shiro Takeda\thanks{email: {\ttfamily shiro.takeda at gmail.com}.}}
-\date{2020/03/03}
+\date{2021-05-23}
 
 %#####################################################################
 %######################### Document Starts ###########################
@@ -552,6 +552,28 @@
   Cambridge, MA, pp. 9--23.
 \end{Frame}
 
+\subsubsection{When the number of authors is very large}
+
+In some research areas, the number of authors of a paper is sometimes very large
+(more than 100 ). In such a bibliographic entry, it is not possible to list all
+authors names in the reference part.  To handle a bibliographic entry with many
+authors, ``\texttt{econ.bst}'' lists only a part of authors when the number of
+authors is large. In particular, econ.bst works as follows:
+\begin{itemize}
+ \item If the number of authors is greater than N1, only the first N2 authors'
+       names are displayed in the reference part (and other authors' names are
+       omitted by ``et el.'').
+ \item N1 is determined by `bst.max.author.num' (the default value = 8).
+ \item N2 is determined by `bst.max.author.num.displayed' (the default value =
+       3).
+\end{itemize}
+
+This function is applied to The following three entries:
+\citet{essd-10-405-2018}, \citet{luthi08:_high}, and
+\citet{doi:10.1175/2009BAMS2778.1}. In addition, \texttt{econ-many-authors.tex}
+in the customization folder includes other examples.
+
+
 \subsection{Customization of citation part}
 
 We have so far seen the customization of reference part. ``\texttt{econ.bst}''
@@ -588,9 +610,9 @@
 See the manual of \texttt{natbib.sty} for the details. 
 \begin{itemize}
  \item The manual of \texttt{natbib.sty}:
-       \href{http://mirror.ctan.org/macros/latex/contrib/natbib/natbib.pdf}{natbib.pdf}
+       \href{https://mirror.ctan.org/macros/latex/contrib/natbib/natbib.pdf}{natbib.pdf}
  \item The reference sheet of \texttt{natbib.sty}:
-       \href{http://mirror.ctan.org/macros/latex/contrib/natbib/natnotes.pdf}{natnotex.pdf}
+       \href{https://mirror.ctan.org/macros/latex/contrib/natbib/natnotes.pdf}{natnotex.pdf}
 \end{itemize}
 
 \subsubsection{Citation by number index}
@@ -762,6 +784,10 @@
  \item Value of ``\texttt{absorder}'' field (if ``\texttt{absorder}'' field has
        a value)
  \item Value of ``\texttt{author}'' (or ``\texttt{editor}'') field.
+       \begin{itemize}
+        \item If ``\texttt{sortname}'' field is assigned a value, it is used
+              instead of ``\texttt{author}'' and ``\texttt{editor}''.
+       \end{itemize}
  \item Value of ``\texttt{year}'' field.
  \item Value of ``\texttt{order}'' field.
  \item Value of ``\texttt{month}'' field.
@@ -772,7 +798,7 @@
 \begin{itemize}
  \item ``\texttt{bst.sort.entry.type}'' and ``\texttt{bst.sort.year}'' have
        zero,
- \item \textbf{''\texttt{absorder}''} and \textbf{''\texttt{order}''}
+ \item \textbf{``\texttt{absorder}''} and \textbf{``\texttt{order}''}
        fields are not assigned values because they are fields specific
        to ``\texttt{econ.bst}''.
 \end{itemize}
@@ -840,11 +866,11 @@
 By default, old references are listed first.  But if you set non-zero to
 ``\texttt{bst.reverse.year}'', new references are listed first.
 
-\subsection{Sorting by ''\texttt{absorder}'' field}
+\subsection{Sorting by ``\texttt{absorder}'' field}
 
 If ``\texttt{absorder}'' is defined in bib file,
 ``\texttt{econ.bst}'' uses its content as the primary sorting key.
-You can set number 0--999 to ''\texttt{absorder}'' field.
+You can set number 0--999 to ``\texttt{absorder}'' field.
 
 \begin{Frame}
 \begin{center}
@@ -858,7 +884,7 @@
 ``\texttt{absorder}'' field and thus listed in the last.
 
 
-\subsubsection{Ignore ''\texttt{absorder}'' field}
+\subsubsection{Ignore ``\texttt{absorder}'' field}
 
 If you set some values for ``\texttt{absorder}'' fields in bib file,
 but if you want to ignore them, set non-zero to
@@ -870,6 +896,47 @@
 \end{verbatim}
 \end{Frame}
 
+\subsection{Sorting by ``\texttt{sortname}'' field}
+
+If ``\texttt{sortname}'' field is assigned a value, it is used for sorting
+instead of ``\texttt{author}'' or ``\texttt{editor}''.
+
+For example, the first author name of the following bibliography
+entry starts with the letter "d", so it is listed after the
+documents with author names that start with the letter c.
+\begin{Frame}
+\begin{verbatim}
+ at article{d'Aspremont-2004-BalancedBayesianMechanisms,
+  title        = {Balanced Bayesian Mechanisms},
+  author       = {{d'Aspremont}, Claude and Cr{\'e}mer, Jacques and
+                  {G{\'e}rard-Varet}, Louis-Andr{\'e}},
+  year         = 2004,
+  volume       = 115,
+  pages        = {385--396},
+  issn         = {0022-0531},
+  doi          = {10.1016/j.jet.2003.07.001},
+  journal      = {Journal of Economic Theory},
+  number       = 2,
+}
+\end{verbatim}
+\end{Frame}
+
+However, for the name ``d'Aspremont'' we should think that it starts with the
+letter a.In this case, you had better to add the following ``\texttt{sortname}''
+field
+\begin{Frame}
+\begin{verbatim}
+  sortname     = {Aspremont, Claude and Cr{\'e}mer, Jacques and
+                  {G{\'e}rard-Varet}, Louis-Andr{\'e}},
+\end{verbatim}
+\end{Frame}
+
+Then, this entry is listed as author whose name begin with letter A. The
+following three entries have sortname fields:
+\citet{d'Aspremont-2004-BalancedBayesianMechanisms},
+\citet{d'Aspremont-2003-CorrelationIndependenceAndBayesian}, and
+\citet{d'Aspremont-1998-LinearInequalityMethodsTo}.
+
 \section{Misc.}
 
 \begin{itemize}
@@ -889,13 +956,17 @@
 \citet{BabikerRutherford-2005-EconomicEffectsof},
 \citet{goldin:katz:2011}, \citet{goldin:katz:2008}, \citet{goldin:katz:2000}.
 \citet{stakeda2019web},
+\citet{Rivers-2005-CombiningTop-Downand},
+\citet{WilsonMannOtsuki-2005-AssessingBenefitsof},
+\citet{zhang2016Deep},
+\citet{imbens2019Optimized},
 \citet{essd-10-405-2018},
 \citet{luthi08:_high},
 \citet{doi:10.1175/2009BAMS2778.1},
-\citet{Rivers-2005-CombiningTop-Downand},
-\citet{WilsonMannOtsuki-2005-AssessingBenefitsof},
-\citet{zhang2016Deep},
-\citet{imbens2019Optimized}.
+\citet{d'Aspremont-2004-BalancedBayesianMechanisms},
+\citet{d'Aspremont-2003-CorrelationIndependenceAndBayesian},
+\citet{Chung-1999-ANoteOnMatsushima's},
+\citet{d'Aspremont-1998-LinearInequalityMethodsTo},
 
 \vspace*{1em}
 
@@ -916,5 +987,6 @@
 % --------------------
 % Local Variables:
 % fill-column: 80
+% coding: utf-8-unix
 % End:
 



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