summaryrefslogtreecommitdiff
path: root/biblio
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-05-25 03:01:10 +0000
committerNorbert Preining <norbert@preining.info>2021-05-25 03:01:10 +0000
commit07dc96bc3bbd691fc52aca15a172eaf41a89d873 (patch)
treeeb7c276d652209d0d5eb4448b07aaadd440aa4c7 /biblio
parent5f0d648973cab5784f4bdb361bbe261b60493432 (diff)
CTAN sync 202105250301
Diffstat (limited to 'biblio')
-rw-r--r--biblio/bibtex/contrib/econ-bst/CHANGES.md33
-rw-r--r--biblio/bibtex/contrib/econ-bst/README.md14
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/README.md3
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/cited-part.tex13
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-a.pdfbin76080 -> 143958 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-a.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-abbr.pdfbin112011 -> 199485 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-abbr.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-aea.pdfbin121138 -> 226736 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-aea.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-b.pdfbin121534 -> 213457 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-b.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-default.pdfbin112695 -> 200352 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-default.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.pdfbin116350 -> 207437 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-jet.pdfbin103734 -> 189836 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-jet.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-jie.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-jpe.pdfbin110347 -> 199002 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-jpe.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.pdfbin111927 -> 199606 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-numbers.pdfbin111368 -> 198716 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-numbers.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-old.pdfbin113122 -> 201072 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/customization/econ-old.tex1
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-a.bst200
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-abbr.bst200
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-aea.bst214
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-b.bst202
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-econometrica.bst208
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-example.bib142
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-example.pdfbin190003 -> 305652 bytes
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-example.tex96
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-jet.bst202
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-jie.bst202
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-jpe.bst210
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-no-sort.bst200
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ-old.bst1
-rw-r--r--biblio/bibtex/contrib/econ-bst/econ.bst200
41 files changed, 1634 insertions, 718 deletions
diff --git a/biblio/bibtex/contrib/econ-bst/CHANGES.md b/biblio/bibtex/contrib/econ-bst/CHANGES.md
index b441437e0d..076367319b 100644
--- a/biblio/bibtex/contrib/econ-bst/CHANGES.md
+++ b/biblio/bibtex/contrib/econ-bst/CHANGES.md
@@ -8,6 +8,37 @@ Changelogs for econ.bst
## 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 @@ Changelogs for econ.bst
Local Variables:
mode: markdown
fill-column: 80
-coding: utf-8-dos
+coding: utf-8-unix
End:
-->
diff --git a/biblio/bibtex/contrib/econ-bst/README.md b/biblio/bibtex/contrib/econ-bst/README.md
index 938baee618..1468375d06 100644
--- a/biblio/bibtex/contrib/econ-bst/README.md
+++ b/biblio/bibtex/contrib/econ-bst/README.md
@@ -29,18 +29,6 @@ features:
| [`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 @@ features:
Local Variables:
mode: markdown
fill-column: 80
-coding: utf-8-dos
+coding: utf-8-unix
End:
-->
diff --git a/biblio/bibtex/contrib/econ-bst/customization/README.md b/biblio/bibtex/contrib/econ-bst/customization/README.md
index b8fafc3153..c267a0f6ce 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/README.md
+++ b/biblio/bibtex/contrib/econ-bst/customization/README.md
@@ -2,7 +2,7 @@
Author: Shiro Takeda
e-mail <shiro.takeda@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 @@ Contents of this folder
| `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 |
diff --git a/biblio/bibtex/contrib/econ-bst/customization/cited-part.tex b/biblio/bibtex/contrib/econ-bst/customization/cited-part.tex
index ace7e41136..eae5945317 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/cited-part.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/cited-part.tex
@@ -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:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-a.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-a.pdf
index c9fcf77fc2..202a7009f5 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-a.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-a.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-a.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-a.tex
index c1f366e76f..a218313cd6 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-a.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-a.tex
@@ -52,4 +52,5 @@ This document uses ``\verb|econ-a.bst|''.
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-abbr.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-abbr.pdf
index 76230bae9f..edd5d8b607 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-abbr.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-abbr.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-abbr.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-abbr.tex
index 5d10761c4b..2e96a446d1 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-abbr.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-abbr.tex
@@ -53,4 +53,5 @@ names such as ``\textit{Am. Econ. Rev.}'' for ``\textit{American Economic Review
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-aea.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-aea.pdf
index 476a1d473b..20bf7a332a 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-aea.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-aea.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-aea.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-aea.tex
index adf2074476..b78abb60a7 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-aea.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-aea.tex
@@ -55,4 +55,5 @@ Journals}.
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-b.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-b.pdf
index fab03cb781..422dd8d5d0 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-b.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-b.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-b.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-b.tex
index 549aa78783..9f49104c7e 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-b.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-b.tex
@@ -52,4 +52,5 @@ This document uses ``\verb|econ-b.bst|''.
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-default.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-default.pdf
index 0977859dbd..4bbc355ff3 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-default.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-default.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-default.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-default.tex
index e6a2b5ed13..366196c498 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-default.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-default.tex
@@ -55,4 +55,5 @@ This document uses ``\verb|econ.bst|''.
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.pdf
index 8646918e29..c7a43683e2 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.tex
index 9c43e4d35b..2b8d5a3c1b 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-econometrica.tex
@@ -52,4 +52,5 @@ This document uses ``\verb|econ-econometrica.bst|''. The style like {\itshape Ec
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-jet.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-jet.pdf
index 438938c75a..4587051df1 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-jet.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-jet.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-jet.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-jet.tex
index d446886609..2e9c332f2e 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-jet.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-jet.tex
@@ -53,4 +53,5 @@ Economic Theory (JET)''}.
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-jie.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-jie.tex
index 9743a21a9b..3a280c7237 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-jie.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-jie.tex
@@ -53,4 +53,5 @@ International Economics}).
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-jpe.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-jpe.pdf
index 0f5e899d60..e5c59392f5 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-jpe.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-jpe.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-jpe.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-jpe.tex
index 373181586b..eb3e3cf8e7 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-jpe.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-jpe.tex
@@ -53,4 +53,5 @@ Polictical Economy}.
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.pdf
index 85f101163d..bbe956b94d 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.tex
index 65581ff0b9..a0dba812bf 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-no-sort.tex
@@ -55,4 +55,5 @@ alphabetical order).
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-numbers.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-numbers.pdf
index ce42db86b9..b19d6651d3 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-numbers.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-numbers.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-numbers.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-numbers.tex
index db2f9821c4..97f74ee749 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-numbers.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-numbers.tex
@@ -69,4 +69,5 @@ To use numerical mode of \texttt{natbib.sty}, we use the following setting.
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-old.pdf b/biblio/bibtex/contrib/econ-bst/customization/econ-old.pdf
index 28790193ee..823c74a8bc 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-old.pdf
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-old.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/customization/econ-old.tex b/biblio/bibtex/contrib/econ-bst/customization/econ-old.tex
index 108f4cb46c..4bb7d6d325 100644
--- a/biblio/bibtex/contrib/econ-bst/customization/econ-old.tex
+++ b/biblio/bibtex/contrib/econ-bst/customization/econ-old.tex
@@ -55,4 +55,5 @@ This document uses ``\verb|econ-old.bst|''.
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-a.bst b/biblio/bibtex/contrib/econ-bst/econ-a.bst
index 6a047e97d0..2d5330e22a 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-a.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-a.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -317,10 +317,18 @@ FUNCTION {bst.cite.and.nameorder}
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -828,7 +836,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1188,6 +1196,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1196,11 +1209,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1216,7 +1238,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1233,27 +1255,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1262,12 +1306,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1392,10 +1441,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2635,7 +2680,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2693,58 +2738,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2938,13 +2999,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3594,4 +3659,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-abbr.bst b/biblio/bibtex/contrib/econ-bst/econ-abbr.bst
index 7beacd5cf6..6b012acc1b 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-abbr.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-abbr.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -315,10 +315,18 @@ FUNCTION {bst.cite.and.nameorder}
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -810,7 +818,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -2318,6 +2326,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -2326,11 +2339,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -2346,7 +2368,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -2363,27 +2385,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -2392,12 +2436,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -2522,10 +2571,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -3765,7 +3810,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -3823,58 +3868,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -4068,13 +4129,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -4724,4 +4789,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-aea.bst b/biblio/bibtex/contrib/econ-bst/econ-aea.bst
index 21f2fb4803..cb6c44f4ea 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-aea.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-aea.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -36,7 +36,7 @@
% https://github.com/ShiroTakeda/econ-bst
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "aer.bst" }
@@ -52,7 +52,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -316,10 +316,18 @@ FUNCTION {bst.cite.and.nameorder}
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -584,8 +592,8 @@ FUNCTION {bst.address.post}
% You can choose the order of address and publisher by this function.
%
-% If #0, address -> publisher order (the default value).
-% If non-zero, publisher -> address order.
+% If #0, address -> publisher order (the default value).
+% If non-zero, publisher -> address order.
FUNCTION {bst.address.position}
{ #0 } % Address is placed before publisher (default)
@@ -828,7 +836,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1188,6 +1196,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1196,11 +1209,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1216,7 +1238,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1233,27 +1255,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1262,12 +1306,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1313,7 +1362,7 @@ FUNCTION {compare.names.aer}
s i.aer "{ff }{vv }{ll}{ jj}" format.name$
=
{ #1 i.aer <
- { " and " * } % \bysame ŏȗ钘҂̑Oɂ‚ and
+ { " and " * } % \bysame で省略する著者の前につく and
{ }
if$
"\bysame{}" *
@@ -1392,10 +1441,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -1407,8 +1452,8 @@ FUNCTION {format.editors.x}
{ bst.editor.btitle.order #0 =
{ "" }
{ editor num.names$ #1 >
- { " edited by " }
- { " edited by " }
+ { " edited by " } % For econ-aea.bst
+ { " edited by " } % For econ-aea.bst
% { bst.editors " by " * }
% { bst.editor " by " * }
if$
@@ -1550,7 +1595,7 @@ FUNCTION {format.bvolume}
{ volume empty$
{ "" }
% { bst.volume.pre volume * bst.volume.post *
- { " Volume " volume * "." *
+ { " Volume " volume * "." * % For econ-aea.bst
series empty$
'skip$
%% If there is series field
@@ -1880,7 +1925,7 @@ FUNCTION {format.address}
FUNCTION {format.publisher}
{ publisher empty$
{ "" }
- { address empty$
+ { address empty$ % For econ-aea.bst
{ ", " publisher * bst.publisher.post * }
{ bst.publisher.pre publisher * bst.publisher.post * }
if$
@@ -2642,7 +2687,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2700,58 +2745,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2945,13 +3006,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3601,4 +3666,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-b.bst b/biblio/bibtex/contrib/econ-bst/econ-b.bst
index 2e668eb9e0..1388401e63 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-b.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-b.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -322,12 +322,20 @@ FUNCTION {bst.and.others.num}
% { #3 } % If the number of authors is greater or equal to three (default).
{ #4 }
- If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -832,7 +840,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1192,6 +1200,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1200,11 +1213,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1220,7 +1242,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1237,27 +1259,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1266,12 +1310,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1396,10 +1445,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2639,7 +2684,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2697,58 +2742,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2942,13 +3003,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3598,4 +3663,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-econometrica.bst b/biblio/bibtex/contrib/econ-bst/econ-econometrica.bst
index 81bc4063ff..9a20f53de7 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-econometrica.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-econometrica.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -29,7 +29,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ-econometrica.bst" }
@@ -45,7 +45,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -308,10 +308,18 @@ FUNCTION {bst.cite.and.nameorder}
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -810,7 +818,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1170,6 +1178,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1178,11 +1191,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1198,7 +1220,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1215,27 +1237,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1244,15 +1288,20 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
-% For Econometrica, we define `format.name.ed` in addition to `format.name`.
+% For econ-econometrica.bst, we define `format.name.ed` in addition to `format.name`.
FUNCTION {format.names.ed}
{ 's :=
% insert 1 to nameptr.
@@ -1430,10 +1479,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -1450,7 +1495,7 @@ FUNCTION {format.editors.x}
if$
}
if$
- editor format.names.ed *
+ editor format.names.ed * % For econ-econometrica.bst
% editor format.names *
bst.editor.btitle.order #0 =
{ editor num.names$ #1 >
@@ -1586,7 +1631,7 @@ FUNCTION {either.or.check}
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
- { " Volume " volume * bst.volume.post *
+ { " Volume " volume * bst.volume.post * % For econ-econometrica.bst
% { bst.volume.pre volume * bst.volume.post *
series empty$
'skip$
@@ -2257,7 +2302,7 @@ FUNCTION {incollection}
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- % For Econometrica, publisher and its address are placed before edition,
+ % For econ-econometrica.bst, publisher and its address are placed before edition,
% chapter and page number.
output.address.organization.publisher
format.edition output.nocomma
@@ -2678,7 +2723,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2736,58 +2781,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2981,13 +3042,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3637,4 +3702,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-example.bib b/biblio/bibtex/contrib/econ-bst/econ-example.bib
index 720ec7a504..b489e70c3b 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-example.bib
+++ b/biblio/bibtex/contrib/econ-bst/econ-example.bib
@@ -468,6 +468,104 @@
pages = {264-278}
}
+@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
+}
+
+@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
+}
+
+@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}},
+}
+
+@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}},
+}
+
+@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}
}
+@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}
+}
+
+@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}
+}
+
+@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}
+}
+
+@book{Attwood09:Mainstreaming,
+ title = {Mainstreaming Sex: the Sexualization of Western Culture},
+ editor = {Feona Attwood},
+ publisher = {I.~B. Tauris},
+ year = 2009,
+}
+
+@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:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-example.pdf b/biblio/bibtex/contrib/econ-bst/econ-example.pdf
index 248c366936..65f8fb0ae7 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-example.pdf
+++ b/biblio/bibtex/contrib/econ-bst/econ-example.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/econ-bst/econ-example.tex b/biblio/bibtex/contrib/econ-bst/econ-example.tex
index a12cc33087..1a5bc65dc4 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-example.tex
+++ b/biblio/bibtex/contrib/econ-bst/econ-example.tex
@@ -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@gmail.com}.}}
-\date{2020/03/03}
+\date{2021-05-23}
%#####################################################################
%######################### Document Starts ###########################
@@ -552,6 +552,28 @@ Krugman, Paul~R. (1991) ``Is Bilateralism Bad?'' in Elhanan Helpman and Assaf
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 @@ change the style of citation part by changing commands and options provided by
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 @@ order of priority:
\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 @@ By default,
\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 @@ FUNCTION {bst.sort.year}
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 @@ with the key \citet{takeda10:_cge_analy_welfar_effec_trade} has 999 for
``\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 @@ FUNCTION {bst.notuse.absorder.field}
\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}
+@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 @@ FUNCTION {bst.notuse.absorder.field}
\citet{BabikerRutherford-2005-EconomicEffectsof},
\citet{goldin:katz:2011}, \citet{goldin:katz:2008}, \citet{goldin:katz:2000}.
\citet{stakeda2019web},
-\citet{essd-10-405-2018},
-\citet{luthi08:_high},
-\citet{doi:10.1175/2009BAMS2778.1},
\citet{Rivers-2005-CombiningTop-Downand},
\citet{WilsonMannOtsuki-2005-AssessingBenefitsof},
\citet{zhang2016Deep},
-\citet{imbens2019Optimized}.
+\citet{imbens2019Optimized},
+\citet{essd-10-405-2018},
+\citet{luthi08:_high},
+\citet{doi:10.1175/2009BAMS2778.1},
+\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 @@ FUNCTION {bst.notuse.absorder.field}
% --------------------
% Local Variables:
% fill-column: 80
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-jet.bst b/biblio/bibtex/contrib/econ-bst/econ-jet.bst
index 67a00ed083..ed0329ab39 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-jet.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-jet.bst
@@ -1,10 +1,10 @@
-%% econ-jet.bst: BibTeX style file for "Journal of Economic Theory".
+nn%% econ-jet.bst: BibTeX style file for "Journal of Economic Theory".
%
% Author: Shiro Takeda
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -29,7 +29,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ-jet.bst" }
@@ -45,7 +45,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -309,10 +309,18 @@ FUNCTION {bst.cite.and.nameorder}
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -819,7 +827,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -2327,6 +2335,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -2335,11 +2348,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -2355,7 +2377,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -2372,27 +2394,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -2401,12 +2445,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -2531,10 +2580,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -3774,7 +3819,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -3832,58 +3877,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -4077,13 +4138,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -4733,4 +4798,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-jie.bst b/biblio/bibtex/contrib/econ-bst/econ-jie.bst
index 06a2cfbe50..f151baaed0 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-jie.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-jie.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -31,7 +31,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ-jie.bst" }
@@ -47,7 +47,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -311,10 +311,18 @@ FUNCTION {bst.cite.and.nameorder}
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -728,7 +736,7 @@ FUNCTION {bst.doi.post}
% #2 -> Only DOI field is displayed
%
FUNCTION {bst.url.doi}
-% { #0 } % (default) -> Both fields are displayed
+% { #0 } % -> Both fields are displayed
% { #1 } % -> Only URL field is displayed
{ #2 } % (default) --> Only DOI field is displayed
@@ -825,7 +833,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1185,6 +1193,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1193,11 +1206,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1213,7 +1235,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1230,27 +1252,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1259,12 +1303,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1389,10 +1438,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2632,7 +2677,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2690,58 +2735,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2935,13 +2996,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3591,4 +3656,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-jpe.bst b/biblio/bibtex/contrib/econ-bst/econ-jpe.bst
index ee6d4364ab..2fac0d1b56 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-jpe.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-jpe.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ-jpe.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -316,10 +316,18 @@ FUNCTION {bst.cite.and.nameorder}
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -824,7 +832,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -2332,6 +2340,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -2340,11 +2353,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -2360,7 +2382,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -2377,27 +2399,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -2406,15 +2450,20 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
-% For JPE, we define `format.name.ed` in addition to `format.name`.
+% For econ-jpe.bst, we define `format.name.ed` in addition to `format.name`.
FUNCTION {format.names.ed}
{ 's :=
% insert 1 to nameptr.
@@ -2592,10 +2641,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2607,14 +2652,14 @@ FUNCTION {format.editors.x}
{ bst.editor.btitle.order #0 =
{ "" }
{ editor num.names$ #1 >
- { " edited by " }
- { " edited by " }
+ { " edited by " } % For econ-jpe.bst
+ { " edited by " } % For econ-jpe.bst
% { bst.editors " by " * }
% { bst.editor " by " * }
if$
}
if$
- editor format.names.ed *
+ editor format.names.ed * % For econ-jpe.bst
bst.editor.btitle.order #0 =
{ editor num.names$ #1 >
{ bst.editors * }
@@ -3419,7 +3464,7 @@ FUNCTION {incollection}
format.in.ed.booktitle "booktitle" output.check.nocomma
format.bvolume output.nocomma
- % For JPE, publisher and its address are placed before edition,
+ % For econ-jpe.bst, publisher and its address are placed before edition,
% chapter and page number.
output.address.organization.publisher
format.edition output.nocomma
@@ -3840,7 +3885,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -3898,58 +3943,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -4143,13 +4204,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -4799,4 +4864,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-no-sort.bst b/biblio/bibtex/contrib/econ-bst/econ-no-sort.bst
index b2cbcd057e..6a9e8f51eb 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-no-sort.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-no-sort.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -315,10 +315,18 @@ FUNCTION {bst.cite.and.nameorder}
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -810,7 +818,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1170,6 +1178,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1178,11 +1191,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1198,7 +1220,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1215,27 +1237,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1244,12 +1288,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1374,10 +1423,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2617,7 +2662,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2675,58 +2720,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2920,13 +2981,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3576,4 +3641,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ-old.bst b/biblio/bibtex/contrib/econ-bst/econ-old.bst
index e16c585fff..3211980e1b 100644
--- a/biblio/bibtex/contrib/econ-bst/econ-old.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ-old.bst
@@ -3576,4 +3576,5 @@ EXECUTE {end.bib}
% Local Variables:
% fill-column: 78
% mode: bst
+% coding: utf-8-unix
% End:
diff --git a/biblio/bibtex/contrib/econ-bst/econ.bst b/biblio/bibtex/contrib/econ-bst/econ.bst
index f74137a79d..070b7299f9 100644
--- a/biblio/bibtex/contrib/econ-bst/econ.bst
+++ b/biblio/bibtex/contrib/econ-bst/econ.bst
@@ -4,7 +4,7 @@
% Maintainer: Shiro Takeda
% Copyright (C) 2001-2018 Shiro Takeda
% First-written: <2007/07/28>
-% Version: 2.7
+% Version: 3.1
% Keywords: TeX, BibTeX, bst
% URL: https://github.com/ShiroTakeda/econ-bst
@@ -37,7 +37,7 @@
% For changelogs, see CHANGES.txt file.
% version number
-FUNCTION {econ.version} { "2.7" }
+FUNCTION {econ.version} { "3.1" }
% File name
FUNCTION {econ.file} { "econ.bst" }
@@ -53,7 +53,7 @@ ENTRY
institution journal key month note number organization pages publisher
school series title type url volume year
% Fields specific to econ.bst
- order absorder nameorder
+ order absorder nameorder sortname
}
% Definition of entry variable. The entry variable is a variable which has
@@ -315,10 +315,18 @@ FUNCTION {bst.cite.and.nameorder}
FUNCTION {bst.and.others.num}
{ #3 } % If the number of authors is greater or equal to three (default).
-% If the number of authors is greater or equal to bst.max.author.num, only
-% first author is listed and other authors' names are abbreviated as "et al.".
+% If the number of authors is greater than N1, only the first N2 authors are
+% displayed in the reference part (and other authors' names are omitted by "et
+% al".
+%
+% The following function determines the value of N1.
FUNCTION {bst.max.author.num}
-{ #12 } % If the number of authors is greater or equal to 12 (default).
+{ #8 } % (default).
+
+% The following function determines the value of N2.
+FUNCTION {bst.max.author.num.display}
+{ #3 } % (default).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -810,7 +818,7 @@ STRINGS { item.type }
STRINGS { tempa tempb }
%% Integer global variables:
-INTEGERS { nameptr namesleft numnames name.num }
+INTEGERS { nameptr namesleft numnames name.num numtrunc }
INTEGERS { multiresult }
INTEGERS { index }
INTEGERS { len }
@@ -1170,6 +1178,11 @@ FUNCTION {bst.and.others.output}
%%% author and editor
+% nameptr: author number
+% numnames: the total number of authors
+% namesleft: the number of authors which have not been processed.
+% numtrunc: bst.max.author.num.display
+
%%% name
FUNCTION {format.names}
{ 's :=
@@ -1178,11 +1191,20 @@ FUNCTION {format.names}
% Set the number of authors to numnames.
s num.names$ 'numnames :=
numnames 'namesleft :=
- % Repeat if namesleft > 0
+
+ numnames bst.max.author.num >
+ % If numnames > bst.max.author.num
+ { bst.max.author.num.display 'numtrunc := }
+ { #0 'numtrunc := }
+ if$
+
+ % Repeat if namesleft > 0 ---- Repeat from here
{ namesleft #0 > }
- { nameptr #1 =
- % First author
+ {
+ % Block A starts
+ nameptr #1 =
+ % A-1: If the author is the 1st author
{ bst.author.name #0 =
bst.author.name #1 =
or
@@ -1198,7 +1220,7 @@ FUNCTION {format.names}
}
if$
}
- % The second or later authors
+ % A-2: If the author is the second or later authors (not the 1st author).
{ bst.author.name #0 =
bst.author.name #2 =
or
@@ -1215,27 +1237,49 @@ FUNCTION {format.names}
if$
}
if$
+ % Block A ends
+ % Block B starts
nameptr #1 >
- % The second or later authors
- { numnames bst.max.author.num >
- { bst.and.others *
- #1 'namesleft := }
- { nameorder.temp "random" =
- bst.use.nameorder #0 = not and
- { bst.and.nameorder * t * }
- { namesleft #1 >
- % More than one authors left
- { ", " * t * }
- % Only one author left
- { t "others" =
- { bst.and.others.output * }
- { numnames #2 =
- % Entry with two authors
- { bst.and * t * }
- { bst.ands * t * }
- if$
- }
+
+ % B-1: If the author is the second or later authors
+ {
+
+ nameptr #1 - numtrunc =
+ % If nameptr - 1 = numtrunc
+ { #1 'namesleft :=
+ "others" 't := }
+ 'skip$
+ if$
+
+ % If numnames <= bst.max.author.num
+ nameorder.temp "random" =
+ bst.use.nameorder #0 = not and
+
+ % If random ordering is used
+ { bst.and.nameorder * t * }
+
+ % If random ordering is not used
+ { namesleft #1 >
+
+ % If more than one authors are left
+ { ", " * t * }
+
+ % If the author is the last author.
+ { t "others" =
+
+ % If the name is "others"
+ { bst.and.others.output * }
+
+ % If the name is not "others"
+ { numnames #2 =
+
+ % If the entry have two authors
+ { bst.and * t * }
+
+ % If the entry have more than two authors
+ { bst.ands * t * }
+
if$
}
if$
@@ -1244,12 +1288,17 @@ FUNCTION {format.names}
}
if$
}
+
+ % When the author is the first author.
't
if$
+ % Block B ends
+
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
+
}
- while$
+ while$ % ---- Repeat until here
}
% remove successive periods (commas) from author
@@ -1374,10 +1423,6 @@ FUNCTION {format.editors.alt}
{ "\bysame " }
{ bst.author.pre editor remove.ss.period.auth * }
if$
- editor num.names$ #1 >
- { bst.editors * }
- { bst.editor * }
- if$
}
if$
}
@@ -2617,7 +2662,7 @@ FUNCTION {format.lab.names.abb}
% if the number of authors is less than bst.and.others.num, full name.
{ s format.lab.names.full }
% if the number of authors is equal or more than bst.and.others.num, abbreviated name.
- { s #1 "{ll}" format.name$ bst.and.others.output * }
+ { s #1 "{vv~}{ll}" format.name$ bst.and.others.output * }
if$
}
@@ -2675,58 +2720,74 @@ FUNCTION {format.names.full.wo.and}
}
FUNCTION {author.key.full.wo.and}
-{ author empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {author.editor.key.full.wo.and}
-{ author empty$
- { editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- { key #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
if$
}
- { editor format.names.full.wo.and }
if$
}
- { author format.names.full.wo.and }
if$
}
FUNCTION {editor.key.organization.key.full.wo.and}
-{ editor empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { editor empty$ not
+ { editor format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { editor format.names.full.wo.and }
if$
}
FUNCTION {author.key.organization.key.full.wo.and}
-{ author empty$
- { key empty$
- { organization empty$
- { cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+{ sortname empty$ not
+ { sortname format.names.full.wo.and }
+ { author empty$ not
+ { author format.names.full.wo.and }
+ { key empty$ not
+ { key #3 text.prefix$ }
+ { organization empty$ not
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ { cite$ #1 #3 substring$ }
+ if$
+ }
if$
}
- { key #3 text.prefix$ }
if$
}
- { author format.names.full.wo.and }
if$
}
@@ -2920,13 +2981,17 @@ FUNCTION {calc.cyear}
}
FUNCTION {calc.sort.label.abb}
-{ author empty$
- { editor empty$
- { "" }
- { editor 's := }
+{ sortname empty$ not
+ { sortname 's := }
+ { author empty$ not
+ { author 's := }
+ { editor empty$ not
+ { editor 's := }
+ { "" }
+ if$
+ }
if$
}
- { author 's := }
if$
s sort.format.names.abb 't :=
year empty$
@@ -3575,5 +3640,6 @@ EXECUTE {end.bib}
% --------------------
% Local Variables:
% fill-column: 78
+% coding: utf-8-unix
% mode: bst
% End: