diff options
Diffstat (limited to 'Master/texmf-dist/doc/bibtex')
24 files changed, 18 insertions, 39460 deletions
diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md b/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md index 70af69ab065..b441437e0d9 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md +++ b/Master/texmf-dist/doc/bibtex/econ-bst/CHANGES.md @@ -8,6 +8,11 @@ Changelogs for econ.bst ## Changelogs +## Ver. 2.8 + +* 2020-03-03: Changed the directory structure. + + ## Ver 2.7 * 2020-02-27: Modified the document files. diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/README.md b/Master/texmf-dist/doc/bibtex/econ-bst/README.md index 553f8e9ced7..938baee6188 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/README.md +++ b/Master/texmf-dist/doc/bibtex/econ-bst/README.md @@ -29,6 +29,18 @@ 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を記入) --> diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.bst deleted file mode 100644 index 6a047e97d07..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.bst +++ /dev/null @@ -1,3597 +0,0 @@ -%% econ.bst: BibTeX style file for papers in economics. -% -% Author: Shiro Takeda -% Maintainer: Shiro Takeda -% Copyright (C) 2001-2018 Shiro Takeda -% First-written: <2007/07/28> -% Version: 2.7 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -%% Main features of econ.bst. - -% "econ.bst" is a BibTeX style file for economics. It provids the following -% features: - -% 1) The author-year type citation (you need "natbib.sty" as well). -% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style -% for a specific journal). -% 3) Highly customizable. You can easily customize reference style as you wish. -% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018) -% (http://dx.doi.org/10.1257/aer.20161492). - -% Bug reports, requests and suggestions are welcome. - -% For changelogs, see CHANGES.txt file. - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "econ.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -{ #0 } % Not use \bysame -% { #1 } % -> Use \bysame (default) -% { #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -% { #0 } % (default) -{ #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -% { #0 } % #0 -> full letters (default). -{ #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -% { #0 } % If #0, not decapitalize title (default). -{ #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -% { #0 } % #0 -> show month field (default). -{ #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -{ #0 } % Not use number index (default). -% { #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -{ #0 } % (default). -% { #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -{ #0 } % (default) -% { #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ ", " } -% { " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", " } -% { ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -{ #3 } % If the number of authors is greater or equal to three (default). - -% If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ "." } -% { "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ " " } -% { " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ ". " } -% { ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ " " } -% { " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ ". " } -% { ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "" } -% { "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ "." } -% { ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " " } -% { " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "." } -% { "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " " } -% { " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "" } -% { "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " " } -% { " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -{ "." } -% { "}" } % (default) - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -{ #0 } % (default) -% { #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -{ #0 } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ ". " } -% { ", " } % (default) - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -{ #0 } % #0 -> show number field (default) -% { #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ " (" } % (default) - -% The string after number: -% -FUNCTION {bst.number.post} -{ ")" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " In " } -% { " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ ", " } % (default) - -% The string before page: -% -FUNCTION {bst.page.pre} -{ ", " } % (default) - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -{ #0 } % Address is placed before publisher (default) -% { #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ", " } -% { ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -% { #1 } % non-#0 -> Show url field (default) -{ #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", \url{" } % (default) - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -{ ", accessed on " } % (default) - -% The string after access. -FUNCTION {bst.access.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -% { #1 } % non-#0 -> Show DOI field (default) -{ #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default) - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % -> Both fields are displayed -{ #1 } % -> Only URL field is displayed -% { #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame で省略する著者の前につく and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { bst.editors " by " * } - { bst.editor " by " * } - if$ - } - if$ - editor format.names * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bst.volume.pre volume * bst.volume.post * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.edition output.nocomma - format.chapter.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$ - "% The latest " econ.file * " is available at " * write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.pdf Binary files differindex 7cfbd35d846..c9fcf77fc2d 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-a.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.bst deleted file mode 100644 index 7beacd5cf64..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.bst +++ /dev/null @@ -1,4727 +0,0 @@ -%% econ.bst: BibTeX style file for papers in economics. -% -% Author: Shiro Takeda -% Maintainer: Shiro Takeda -% Copyright (C) 2001-2018 Shiro Takeda -% First-written: <2007/07/28> -% Version: 2.7 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -%% Main features of econ.bst. - -% "econ.bst" is a BibTeX style file for economics. It provids the following -% features: - -% 1) The author-year type citation (you need "natbib.sty" as well). -% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style -% for a specific journal). -% 3) Highly customizable. You can easily customize reference style as you wish. -% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018) -% (http://dx.doi.org/10.1257/aer.20161492). - -% Bug reports, requests and suggestions are welcome. - -% For changelogs, see CHANGES.txt file. - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "econ.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -% { #0 } % Not use \bysame -{ #1 } % -> Use \bysame (default) -% { #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -{ #0 } % (default) -% { #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -{ #0 } % #0 -> full letters (default). -% { #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -{ #0 } % If #0, not decapitalize title (default). -% { #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -{ #0 } % #0 -> show month field (default). -% { #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -{ #0 } % Not use number index (default). -% { #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -{ #0 } % (default). -% { #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -{ #0 } % (default) -% { #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -{ #3 } % If the number of authors is greater or equal to three (default). - -% If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -{ "}" } % (default) - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -% { #0 } % (default) -{ #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -{ #0 } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ ", " } % (default) - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -{ #0 } % #0 -> show number field (default) -% { #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ " (" } % (default) - -% The string after number: -% -FUNCTION {bst.number.post} -{ ")" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ ", " } % (default) - -% The string before page: -% -FUNCTION {bst.page.pre} -{ ", " } % (default) - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -{ #0 } % Address is placed before publisher (default) -% { #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -{ #1 } % non-#0 -> Show url field (default) -% { #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", \url{" } % (default) - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -{ ", accessed on " } % (default) - -% The string after access. -FUNCTION {bst.access.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -{ #1 } % non-#0 -> Show DOI field (default) -% { #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default) - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % -> Both fields are displayed -% { #1 } % -> Only URL field is displayed -{ #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - s "Academy of Management Journal" = - { "Acad. Manage. Rev." 'jname := } - 'skip$ - if$ - s "Accounting Review" = - { "Account. Rev." 'jname := } - 'skip$ - if$ - s "Accounting, Organizations and Society" = - { "Account. Org. Soc." 'jname := } - 'skip$ - if$ - s "Accounting, Organizations and Society" = - { "Admin. Sci. Quart." 'jname := } - 'skip$ - if$ - s "Administrative Science Quarterly" = - { "Agr. Econ." 'jname := } - 'skip$ - if$ - s "American Economic Journal: Applied Economics" = - { "Am. Econ. J. Appl. Econ." 'jname := } - 'skip$ - if$ - s "American Economic Journal: Economic Policy" = - { "Am. Econ. J. Econ. Policy" 'jname := } - 'skip$ - if$ - s "American Economic Journal: Macroeconomics" = - { "Am. Econ. J. Macro." 'jname := } - 'skip$ - if$ - s "American Economic Journal: Microeconomics" = - { "Am. Econ. J. Micro." 'jname := } - 'skip$ - if$ - s "American Economic Review" = - { "Am. Econ. Rev." 'jname := } - 'skip$ - if$ - s "American Journal of Agricultural Economics" = - { "Am. J. Agr. Econ." 'jname := } - 'skip$ - if$ - s "American Journal of Economics and Sociology" = - { "Am. J. Econ. Sociol." 'jname := } - 'skip$ - if$ - s "Applied Economics" = - { "Appl. Econ." 'jname := } - 'skip$ - if$ - s "Applied Economics Letters" = - { "Appl. Econ. Lett." 'jname := } - 'skip$ - if$ - s "Applied Energy" = - { "Appl. Energ." 'jname := } - 'skip$ - if$ - s "Applied Stochastic Models in Business and Industry" = - { "Appl. Stoch. Model Bus." 'jname := } - 'skip$ - if$ - s "Auditing: A Journal of Practise and Theory" = - { "Auditing.-J. Pract. Th." 'jname := } - 'skip$ - if$ - s "Australian Journal of Agricultural and Resource Economics" = - { "Aust. J. Agr. Resour. Ec." 'jname := } - 'skip$ - if$ - s "B.E. Journal of Economic Analysis \& Policy" = - { "B.E. J. Econ. Anal. Policy" 'jname := } - 'skip$ - if$ - s "Betriebswirtschaftliche Forschung Und Praxis" = - { "Betrieb. Forsch. Prax." 'jname := } - 'skip$ - if$ - s "British Journal of Industrial Relations" = - { "Brit. J. Ind. Relat." 'jname := } - 'skip$ - if$ - s "British Journal of Management" = - { "Brit. J. Manage." 'jname := } - 'skip$ - if$ - s "Bulletin of Indonesian Economic Studies" = - { "B. Indones. Econ. Stud." 'jname := } - 'skip$ - if$ - s "Business Ethics Quarterly" = - { "Bus. Ethics Q." 'jname := } - 'skip$ - if$ - s "Business History" = - { "Bus. Hist." 'jname := } - 'skip$ - if$ - s "Business History Review" = - { "Bus. Hist. Rev." 'jname := } - 'skip$ - if$ - s "Business Lawyer" = - { "Bus. Lawyer" 'jname := } - 'skip$ - if$ - s "California Management Review" = - { "Calif. Manage. Rev." 'jname := } - 'skip$ - if$ - s "Cambridge Journal of Economics" = - { "Cambridge J. Econ." 'jname := } - 'skip$ - if$ - s "Canadian Journal of Administrative Sciences" = - { "Can. J. Adm. Sci." 'jname := } - 'skip$ - if$ - s "Canadian Journal of Economics" = - { "Can. J. Econ." 'jname := } - 'skip$ - if$ - s "China Economic Review" = - { "China. Econ. Rev." 'jname := } - 'skip$ - if$ - s "Climate Change Economics" = - { "Clim. Change Econ." 'jname := } - 'skip$ - if$ - s "Climate Policy" = - { "Clim. Policy" 'jname := } - 'skip$ - if$ - s "Communications in Statistics – Part A: Theory and Methods" = - { "Commun. Stat.-Theor. M." 'jname := } - 'skip$ - if$ - s "Computational Economics" = - { "Computation. Econ." 'jname := } - 'skip$ - if$ - s "Computational Statistics" = - { "Computation. Stat." 'jname := } - 'skip$ - if$ - s "Computational Statistics and Data Analysis" = - { "Comput. Stat. Data An." 'jname := } - 'skip$ - if$ - s "Contemporary Accounting Research" = - { "Contemp. Account. Res." 'jname := } - 'skip$ - if$ - s "Contemporary Economic Policy" = - { "Contemp. Econ. Policy" 'jname := } - 'skip$ - if$ - s "Defence and Peace Economics" = - { "Defence Peace Econ." 'jname := } - 'skip$ - if$ - s "Development Economics" = - { "Dev. Econ." 'jname := } - 'skip$ - if$ - s "Eastern European Economics" = - { "Eastern Eur. Econ." 'jname := } - 'skip$ - if$ - s "Ecological Economics" = - { "Ecol. Econ." 'jname := } - 'skip$ - if$ - s "Econometric Theory" = - { "Economet. Theor." 'jname := } - 'skip$ - if$ - s "Econometrica" = - { "Econometrica" 'jname := } - 'skip$ - if$ - s "Economic and Industrial Democracy" = - { "Econ. Ind. Democr." 'jname := } - 'skip$ - if$ - s "Economic Development and Cultural Change" = - { "Econ. Dev. Cult. Change" 'jname := } - 'skip$ - if$ - s "Economic Development and Cultural Change" = - { "Economist.-Netherland" 'jname := } - 'skip$ - if$ - s "Economic Development Quarterly" = - { "Econ. Dev. Q." 'jname := } - 'skip$ - if$ - s "Economic Geography" = - { "Econ. Geogr." 'jname := } - 'skip$ - if$ - s "Economic History Review" = - { "Econ. Hist. Rev." 'jname := } - 'skip$ - if$ - s "Economic Inquiry" = - { "Econ. Inq." 'jname := } - 'skip$ - if$ - s "Economic Journal" = - { "Econ. J." 'jname := } - 'skip$ - if$ - s "Economic Modelling" = - { "Econ. Model." 'jname := } - 'skip$ - if$ - s "Economic Policy" = - { "Econ. Policy" 'jname := } - 'skip$ - if$ - s "Economic Record" = - { "Econ. Rec." 'jname := } - 'skip$ - if$ - s "Economic Theory" = - { "Econ. Theor." 'jname := } - 'skip$ - if$ - s "Economica" = - { "Economica" 'jname := } - 'skip$ - if$ - s "Economics and Philosophy" = - { "Econ. Philos." 'jname := } - 'skip$ - if$ - s "Economics Letters" = - { "Econ. Lett." 'jname := } - 'skip$ - if$ - s "Economics of Education Review" = - { "Econ. Educ. Rev." 'jname := } - 'skip$ - if$ - s "Economics of Energy \& Environmental Policy" = - { "Econ. Energ. Environ. Policy" 'jname := } - 'skip$ - if$ - s "Economics of Transition" = - { "Econ. Transit." 'jname := } - 'skip$ - if$ - s "Economy and Society" = - { "Econ. Soc." 'jname := } - 'skip$ - if$ - s "Ekonomicky Casopis" = - { "Ekon. Cas." 'jname := } - 'skip$ - if$ - s "Ekonomiska Samfundets Tidskrift" = - { "Ekon. Samf. Tidskr." 'jname := } - 'skip$ - if$ - s "Emerging Markets Finance and Trade" = - { "Emerg. Mark. Financ. Tr." 'jname := } - 'skip$ - if$ - s "Energy Economics" = - { "Energ. Econ." 'jname := } - 'skip$ - if$ - s "Energy Journal" = - { "Energ. J." 'jname := } - 'skip$ - if$ - s "Energy Policy" = - { "Energ. Policy" 'jname := } - 'skip$ - if$ - s "Entrepreneurship \& Regional Development" = - { "Entrep. Region. Dev." 'jname := } - 'skip$ - if$ - s "Entrepreneurship Theory and Practice" = - { "Entrep. Theory Pract." 'jname := } - 'skip$ - if$ - s "Environment and Development Economics" = - { "Environ. Dev. Econ." 'jname := } - 'skip$ - if$ - s "Environmental and Resource Economics" = - { "Environ. Resour. Econ." 'jname := } - 'skip$ - if$ - s "Environmental Economics and Policy Studies" = - { "Environ. Econ. Policy Stud." 'jname := } - 'skip$ - if$ - s "Environmental Science and Policy" = - { "Environ. Sci. Policy" 'jname := } - 'skip$ - if$ - s "Environmental Science \& Technology" = - { "Environ. Sci. Technol." 'jname := } - 'skip$ - if$ - s "Eurasian Geography and Economics " = - { "Eurasian Geogr. Econ." 'jname := } - 'skip$ - if$ - s "European Economic Review" = - { "Eur. Econ. Rev." 'jname := } - 'skip$ - if$ - s "European Journal of Industrial Relations" = - { "Eur. J. Ind. Relat." 'jname := } - 'skip$ - if$ - s "European Review of Agricultural Economics" = - { "Eur. Rev. Agric. Econ." 'jname := } - 'skip$ - if$ - s "Europe-Asia Studies" = - { "Europe-Asia Stud." 'jname := } - 'skip$ - if$ - s "Explorations in Economic History" = - { "Explor. Econ. Hist." 'jname := } - 'skip$ - if$ - s "Feminist Economics" = - { "Fem. Econ." 'jname := } - 'skip$ - if$ - s "Finance a Uver" = - { "Financ. Uver." 'jname := } - 'skip$ - if$ - s "Finance and Stochastics" = - { "Financ. Stoch." 'jname := } - 'skip$ - if$ - s "Financial Analysts Journal" = - { "Financ. Anal. J." 'jname := } - 'skip$ - if$ - s "Financial Management" = - { "Financ. Manage." 'jname := } - 'skip$ - if$ - s "Fiscal Studies" = - { "Fisc. Stud." 'jname := } - 'skip$ - if$ - s "Food Policy" = - { "Food. Policy." 'jname := } - 'skip$ - if$ - s "Futures" = - { "Futures" 'jname := } - 'skip$ - if$ - s "Games and Economic Behavior" = - { "Game Econ. Behav." 'jname := } - 'skip$ - if$ - s "Health Economics" = - { "Health Econ." 'jname := } - 'skip$ - if$ - s "Hitotsubashi Journal of Economics" = - { "Hitotsub. J. Econ." 'jname := } - 'skip$ - if$ - s "IMF Staff Papers" = - { "Imf. Staff. Papers" 'jname := } - 'skip$ - if$ - s "Industrial and Corporate Change" = - { "Ind. Corp. Change" 'jname := } - 'skip$ - if$ - s "Industrial and Labor Relations Review" = - { "Ind. Labor. Relat. Rev." 'jname := } - 'skip$ - if$ - s "Industrial Marketing Management" = - { "Ind. Market Manag." 'jname := } - 'skip$ - if$ - s "Industrial Relations" = - { "Ind. Relat." 'jname := } - 'skip$ - if$ - s "Information Economics and Policy" = - { "Info. Econ. Policy" 'jname := } - 'skip$ - if$ - s "Insurance: Mathematics and Economics" = - { "Insur. Math. Econ." 'jname := } - 'skip$ - if$ - s "International Economic Review" = - { "Int. Econ. Rev." 'jname := } - 'skip$ - if$ - s "International Journal of Electronics and Telecommunications" = - { "Int. J. Electron. Comm." 'jname := } - 'skip$ - if$ - s "International Journal of Economic Theory" = - { "Int. J. Econ. Theory" 'jname := } - 'skip$ - if$ - s "International Journal of Finance \& Economics" = - { "Int. J. Financ. Econ." 'jname := } - 'skip$ - if$ - s "International Journal of Forecasting" = - { "Int. J. Forecast." 'jname := } - 'skip$ - if$ - s "International Journal of Game Theory" = - { "Int. J. Game. Theory" 'jname := } - 'skip$ - if$ - s "International Journal of Industrial Organization" = - { "Int. J. Ind. Organ." 'jname := } - 'skip$ - if$ - s "International Journal of Manpower" = - { "Int. J. Manpow." 'jname := } - 'skip$ - if$ - s "International Journal of Market Research" = - { "Int. J. Market Res." 'jname := } - 'skip$ - if$ - s "International Journal of Research in Marketing" = - { "Int. J. Res. Mark." 'jname := } - 'skip$ - if$ - s "International Labour Review" = - { "Int. Labour Rev." 'jname := } - 'skip$ - if$ - s "International Marketing Review" = - { "Int. Market. Rev." 'jname := } - 'skip$ - if$ - s "International Review of Applied Economics" = - { "Int. Rev. Appl. Econ." 'jname := } - 'skip$ - if$ - s "International Review of Law and Economics" = - { "Int. Rev. Law Econ." 'jname := } - 'skip$ - if$ - s "International Small Business Journal" = - { "Int. Small. Bus. J." 'jname := } - 'skip$ - if$ - s "International Tax and Public Finance" = - { "Int. Tax Public Finan." 'jname := } - 'skip$ - if$ - s "Jahrbücher für Nationalökonomie und Statistik" = - { "Jahrb. Natl. Stat." 'jname := } - 'skip$ - if$ - s "Japan and the World Economy" = - { "Jpn. World Econ." 'jname := } - 'skip$ - if$ - s "Japanese Economic Review" = - { "Jpn. Econ. Rev." 'jname := } - 'skip$ - if$ - s "JCMS-journal of Common Market Studies" = - { "Jcms.-J. Common. Mark. S." 'jname := } - 'skip$ - if$ - s "Journal of Accounting and Economics" = - { "J. Account. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Accounting Research" = - { "J. Account. Res." 'jname := } - 'skip$ - if$ - s "Journal of Advertising" = - { "J. Advertising" 'jname := } - 'skip$ - if$ - s "Journal of Advertising Research" = - { "J. Advertising Res." 'jname := } - 'skip$ - if$ - s "Journal of African Economies" = - { "J. Afr. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Agricultural and Resource Economics" = - { "J. Agr. Resour. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Agricultural Economics" = - { "J. Agr. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Applied Econometrics" = - { "J. Appl. Econom." 'jname := } - 'skip$ - if$ - s "Journal of Banking and Finance" = - { "J. Bank Financ." 'jname := } - 'skip$ - if$ - s "Journal of Business" = - { "J. Bus." 'jname := } - 'skip$ - if$ - s "Journal of Business and Economic Statistics" = - { "J. Bus. Econ. Stat." 'jname := } - 'skip$ - if$ - s "Journal of Business and Psychology" = - { "J. Bus. Psychol." 'jname := } - 'skip$ - if$ - s "Journal of Business and Technical Communication" = - { "J. Bus. Tech. Commun." 'jname := } - 'skip$ - if$ - s "Journal of Business Ethics" = - { "J. Bus. Ethics" 'jname := } - 'skip$ - if$ - s "Journal of Business Research" = - { "J. Bus. Res." 'jname := } - 'skip$ - if$ - s "Journal of Business Venturing" = - { "J. Bus. Venturing." 'jname := } - 'skip$ - if$ - s "Journal of Cleaner Productiond" = - { "J. Clean. Prod." 'jname := } - 'skip$ - if$ - s "Journal of Comparative Economics" = - { "J. Comp. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Consumer Affairs" = - { "J. Consum. Aff." 'jname := } - 'skip$ - if$ - s "Journal of Consumer Research" = - { "J. Consum. Res." 'jname := } - 'skip$ - if$ - s "Journal of Corporate Finance" = - { "J. Corp. Financ." 'jname := } - 'skip$ - if$ - s "Journal of Development Economics" = - { "J. Dev. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Econometrics" = - { "J. Econometrics" 'jname := } - 'skip$ - if$ - s "Journal of Economic Behavior and Organization" = - { "J. Econ. Behav. Organ." 'jname := } - 'skip$ - if$ - s "Journal of Economic Dynamics and Control" = - { "J. Econ. Dyn. Control" 'jname := } - 'skip$ - if$ - s "Journal of Economic Education" = - { "J. Econ. Educ." 'jname := } - 'skip$ - if$ - s "Journal of Economic Geography" = - { "J. Econ. Geogr." 'jname := } - 'skip$ - if$ - s "Journal of Economic Growth" = - { "J. Econ. Growth" 'jname := } - 'skip$ - if$ - s "Journal of Economic History" = - { "J. Econ. Hist." 'jname := } - 'skip$ - if$ - s "Journal of Economic Integration" = - { "J. Econ. Integr." 'jname := } - 'skip$ - if$ - s "Journal of Economic Issues" = - { "J. Econ. Issues." 'jname := } - 'skip$ - if$ - s "Journal of Economic Perspectives" = - { "J. Econ. Perspect." 'jname := } - 'skip$ - if$ - s "Journal of Economic Psychology" = - { "J. Econ. Psychol." 'jname := } - 'skip$ - if$ - s "Journal of Economic Literature" = - { "J. Econ. Lit." 'jname := } - 'skip$ - if$ - s "Journal of Economic Surveys" = - { "J. Econ. Surv." 'jname := } - 'skip$ - if$ - s "Journal of Economic Theory" = - { "J. Econ. Theory" 'jname := } - 'skip$ - if$ - s "Journal of Economics" = - { "J. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Economics and Management Strategy" = - { "J. Econ. Manage. Strat." 'jname := } - 'skip$ - if$ - s "Journal of Environmental Economics and Management" = - { "J. Environ. Econ. Manag." 'jname := } - 'skip$ - if$ - s "Journal of Evolutionary Economics" = - { "J. Evol. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Finance" = - { "J. Financ." 'jname := } - 'skip$ - if$ - s "Journal of Financial and Quantitative Analysis" = - { "J. Financ. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Financial Economics" = - { "J. Financ. Intermed." 'jname := } - 'skip$ - if$ - s "Journal of Financial Intermediation" = - { "J. Financ. Mark." 'jname := } - 'skip$ - if$ - s "Journal of Financial Markets" = - { "J. Financ. Quant. Anal." 'jname := } - 'skip$ - if$ - s "Journal of Forecasting" = - { "J. Forecasting." 'jname := } - 'skip$ - if$ - s "Journal of Futures Markets" = - { "J. Futures Market" 'jname := } - 'skip$ - if$ - s "Journal of Health Economics" = - { "J. Health Econ." 'jname := } - 'skip$ - if$ - s "Journal of Housing Economics" = - { "J. Hous. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Human Resources" = - { "J. Hum. Resour." 'jname := } - 'skip$ - if$ - s "Journal of Industrial Economics" = - { "J. Ind. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Institutional and Theoretical Economics" = - { "J. Inst. Theor. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Integrated Disaster Risk Management" = - { "J. Integr. Disaster Risk Manag." 'jname := } - 'skip$ - if$ - s "Journal of International Business Studies" = - { "J. Int. Bus. Stud." 'jname := } - 'skip$ - if$ - s "Journal of International Economics" = - { "J. Int. Econ." 'jname := } - 'skip$ - if$ - s "Journal of International Marketing" = - { "J. Int. Marketing" 'jname := } - 'skip$ - if$ - s "Journal of International Money and Finance" = - { "J. Int. Money Financ." 'jname := } - 'skip$ - if$ - s "Journal of Labor Economics" = - { "J. Labor Econ." 'jname := } - 'skip$ - if$ - s "Journal of Labor Research" = - { "J. Labor Res." 'jname := } - 'skip$ - if$ - s "Journal of Law and Economics" = - { "J. Law. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Law, Economics, and Organization" = - { "J. Law. Econ. Organ." 'jname := } - 'skip$ - if$ - s "Journal of Macroeconomics" = - { "J. Macroecon." 'jname := } - 'skip$ - if$ - s "Journal of Management" = - { "J. Manage." 'jname := } - 'skip$ - if$ - s "Journal of Management Studies" = - { "J. Manage. Stud." 'jname := } - 'skip$ - if$ - s "Journal of Marketing" = - { "J. Marketing" 'jname := } - 'skip$ - if$ - s "Journal of Marketing Research" = - { "J. Marketing Res." 'jname := } - 'skip$ - if$ - s "Journal of Mathematical Economics" = - { "J. Math. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Media Economics" = - { "J. Media Econ." 'jname := } - 'skip$ - if$ - s "Journal of Monetary Economics" = - { "J. Monetary. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Money, Credit and Banking" = - { "J. Money Credit Bank." 'jname := } - 'skip$ - if$ - s "Journal of Policy Modeling" = - { "J. Policy Model." 'jname := } - 'skip$ - if$ - s "Journal of Political Economy" = - { "J. Polit. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Population Economics" = - { "J. Popul. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Portfolio Management" = - { "J. Portfolio Manage." 'jname := } - 'skip$ - if$ - s "Journal of Post Keynesian Economics" = - { "J. Post Keynesian Ec." 'jname := } - 'skip$ - if$ - s "Journal of Product Innovation Management" = - { "J. Prod. Innovat. Manag." 'jname := } - 'skip$ - if$ - s "Journal of Productivity Analysis" = - { "J. Prod. Anal." 'jname := } - 'skip$ - if$ - s "Journal of Public Economics" = - { "J. Public Econ." 'jname := } - 'skip$ - if$ - s "Journal of Public Policy and Marketing" = - { "J. Public Policy Mark." 'jname := } - 'skip$ - if$ - s "Journal of Real Estate Finance and Economics" = - { "J. Real Estate Financ." 'jname := } - 'skip$ - if$ - s "Journal of Regulatory Economics" = - { "J. Regul. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Retailing" = - { "J. Retailing" 'jname := } - 'skip$ - if$ - s "Journal of Risk and Insurance" = - { "J. Risk. Insur" 'jname := } - 'skip$ - if$ - s "Journal of Risk and Uncertainty" = - { "J. Risk Uncertainty" 'jname := } - 'skip$ - if$ - s "Journal of Statistical Computation and Simulation" = - { "J. Stat. Comput. Sim." 'jname := } - 'skip$ - if$ - s "Journal of Statistical Planning and Inference" = - { "J. Stat. Plan. Infer." 'jname := } - 'skip$ - if$ - s "Journal of the Academy of Marketing Science" = - { "J. Acad. Market. Sci." 'jname := } - 'skip$ - if$ - s "Journal of the American Statistical Association" = - { "J. Am. Stat. Assoc." 'jname := } - 'skip$ - if$ - s "Journal of the European Economic Association" = - { "J. Eur. Econ. Assoc." 'jname := } - 'skip$ - if$ - s "Journal of the Japanese and International Economies" = - { "J. Jpn. Int. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Time Series Analysis" = - { "J. Time Ser. Anal." 'jname := } - 'skip$ - if$ - s "Journal of Transport Economics and Policy" = - { "J. Transp. Econ. Policy" 'jname := } - 'skip$ - if$ - s "Journal of Urban Economics" = - { "J. Urban Econ." 'jname := } - 'skip$ - if$ - s "Journal of World Business" = - { "J. World. Bus." 'jname := } - 'skip$ - if$ - s "Kyklos" = - { "Kyklos" 'jname := } - 'skip$ - if$ - s "Labor History" = - { "Labor Hist." 'jname := } - 'skip$ - if$ - s "Labour Economics" = - { "Labour Econ." 'jname := } - 'skip$ - if$ - s "Land Economics" = - { "Land Econ." 'jname := } - 'skip$ - if$ - s "Long Range Planning" = - { "Long Range Plann." 'jname := } - 'skip$ - if$ - s "Macroeconomic Dynamics" = - { "Macroecon. Dyn." 'jname := } - 'skip$ - if$ - s "Management Science" = - { "Manage. Sci." 'jname := } - 'skip$ - if$ - s "Manchester School" = - { "Manch. Sch." 'jname := } - 'skip$ - if$ - s "Marketing Letters" = - { "Market. Lett." 'jname := } - 'skip$ - if$ - s "Marketing Science" = - { "Market. Sci." 'jname := } - 'skip$ - if$ - s "Materials Transactions" = - { "Mater. Trans." 'jname := } - 'skip$ - if$ - s "Mathematical Finance" = - { "Math. Financ." 'jname := } - 'skip$ - if$ - s "Monthly Labor Review" = - { "Mon. Labor Rev." 'jname := } - 'skip$ - if$ - s "National Tax Journal" = - { "Natl. Tax. J." 'jname := } - 'skip$ - if$ - s "New England Economic Review" = - { "New Engl. Econ. Rev." 'jname := } - 'skip$ - if$ - s "New Political Economy" = - { "New Polit. Econ." 'jname := } - 'skip$ - if$ - s "Open Economies Review" = - { "Open. Econ. Rev." 'jname := } - 'skip$ - if$ - s "Organizational Dynamics" = - { "Organ. Dyn." 'jname := } - 'skip$ - if$ - s "Oxford Bulletin of Economics and Statistics" = - { "Oxford. B. Econ. Stat." 'jname := } - 'skip$ - if$ - s "Oxford Economic Papers" = - { "Oxford Econ. Pap." 'jname := } - 'skip$ - if$ - s "Oxford Review of Economic Policy" = - { "Oxford. Rev. Econ. Pol." 'jname := } - 'skip$ - if$ - s "Politicka Ekonomie" = - { "Polit. Ekon." 'jname := } - 'skip$ - if$ - s "Population and Development Review" = - { "Popul. Dev. Rev." 'jname := } - 'skip$ - if$ - s "Post-Communist Economies" = - { "Post.-Communist. Econ." 'jname := } - 'skip$ - if$ - s "Post-Soviet Affairs" = - { "Post.-Sov. Aff." 'jname := } - 'skip$ - if$ - s "Psychology \& Marketing" = - { "Psychol. Market." 'jname := } - 'skip$ - if$ - s "Public Choice" = - { "Public. Choice." 'jname := } - 'skip$ - if$ - s "Quantitative Finance" = - { "Quant. Financ." 'jname := } - 'skip$ - if$ - s "Quarterly Journal of Economics" = - { "Q. J. Econ." 'jname := } - 'skip$ - if$ - s "R\&D Management" = - { "R.\&D. Manage." 'jname := } - 'skip$ - if$ - s "RAND Journal of Economics" = - { "Rand. J. Econ." 'jname := } - 'skip$ - if$ - s "Real Estate Economics" = - { "Real Estate Econ." 'jname := } - 'skip$ - if$ - s "Regional Science and Urban Economics" = - { "Reg. Sci. Urban. Econ." 'jname := } - 'skip$ - if$ - s "Regional Studies" = - { "Reg. Stud." 'jname := } - 'skip$ - if$ - s "Relations Industrielles-Industrial Relations" = - { "Relat. Ind.-Ind. Relat." 'jname := } - 'skip$ - if$ - s "Research-Technology Management" = - { "Res. Technol. Manage." 'jname := } - 'skip$ - if$ - s "Resource and Energy Economics" = - { "Resour. Energy. Econ." 'jname := } - 'skip$ - if$ - s "Review of Accounting Studies" = - { "Rev. Acc. Stud." 'jname := } - 'skip$ - if$ - s "Review of Agricultural Economics" = - { "Rev. Agr. Econ." 'jname := } - 'skip$ - if$ - s "Review of Development Economics" = - { "Rev. Dev. Econ." 'jname := } - 'skip$ - if$ - s "Review of Economic Dynamics" = - { "Rev. Econ. Dynam." 'jname := } - 'skip$ - if$ - s "Review of Economic Studies" = - { "Rev. Econ. Stat." 'jname := } - 'skip$ - if$ - s "Review of Economics and Statistics" = - { "Rev. Econ. Stud." 'jname := } - 'skip$ - if$ - s "Review of Financial Studies" = - { "Rev. Financ. Stud." 'jname := } - 'skip$ - if$ - s "Review of Income and Wealth" = - { "Rev. Income Wealth" 'jname := } - 'skip$ - if$ - s "Review of Industrial Organization" = - { "Rev. Ind. Organ." 'jname := } - 'skip$ - if$ - s "Review of International Economics" = - { "Rev. Int. Econ." 'jname := } - 'skip$ - if$ - s "Review of International Political Economy" = - { "Rev. Int. Polit. Econ." 'jname := } - 'skip$ - if$ - s "Review of World Economics" = - { "Rev. World Econ." 'jname := } - 'skip$ - if$ - s "Scandinavian Journal of Economics" = - { "Scand. J. Econ." 'jname := } - 'skip$ - if$ - s "Scottish Journal of Political Economy" = - { "Scot. J. Polit. Econ." 'jname := } - 'skip$ - if$ - s "Small Business Economics" = - { "Small. Bus. Econ." 'jname := } - 'skip$ - if$ - s "Social Choice and Welfare" = - { "Soc. Choice Welfare" 'jname := } - 'skip$ - if$ - s "South African Journal of Economics" = - { "S. Afr. J. Econ." 'jname := } - 'skip$ - if$ - s "Southern Economic Journal" = - { "South. Econ. J." 'jname := } - 'skip$ - if$ - s "Strategic Management Journal" = - { "Statistics." 'jname := } - 'skip$ - if$ - s "Strategic Management Journal" = - { "Strategic Manage. J." 'jname := } - 'skip$ - if$ - s "Studies in Nonlinear Dynamics and Econometrics" = - { "Stoch. Anal. Appl." 'jname := } - 'skip$ - if$ - s "Studies in Nonlinear Dynamics and Econometrics" = - { "Stud. Nonlinear. Dyn. E." 'jname := } - 'skip$ - if$ - s "Supply Chain Management" = - { "Supply. Chain. Manag." 'jname := } - 'skip$ - if$ - s "Sustainability" = - { "Sustainability" 'jname := } - 'skip$ - if$ - s "Technological Forecasting and Social Change" = - { "Technol. Forecast. Soc." 'jname := } - 'skip$ - if$ - s "Theory and Decision" = - { "Theor. Decis." 'jname := } - 'skip$ - if$ - s "Tijdschrift voor Economische en Sociale Geografie" = - { "Tijdschr. Econ. Soc. Ge." 'jname := } - 'skip$ - if$ - s "Trimestre Economico" = - { "Trimest. Econ." 'jname := } - 'skip$ - if$ - s "Work and Occupations" = - { "Work Occupation." 'jname := } - 'skip$ - if$ - s "Work, Employment and Society" = - { "Work Employ. Soc." 'jname := } - 'skip$ - if$ - s "World Bank Economic Review" = - { "World Bank Econ. Rev." 'jname := } - 'skip$ - if$ - s "World Bank Research Observer" = - { "World Bank Res. Obser." 'jname := } - 'skip$ - if$ - s "World Development" = - { "World Dev." 'jname := } - 'skip$ - if$ - s "World Economy" = - { "World Econ." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame で省略する著者の前につく and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { bst.editors " by " * } - { bst.editor " by " * } - if$ - } - if$ - editor format.names * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bst.volume.pre volume * bst.volume.post * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.edition output.nocomma - format.chapter.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$ - "% The latest " econ.file * " is available at " * write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf Binary files differindex 309c142278f..76230bae9f7 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-abbr.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.bst deleted file mode 100644 index 21f2fb48035..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.bst +++ /dev/null @@ -1,3604 +0,0 @@ -%% aea.bst: BibTeX style file for journals of American Economic Association (AEA). -% -% Author: Shiro Takeda -% Maintainer: Shiro Takeda -% Copyright (C) 2001-2018 Shiro Takeda -% First-written: <2007/07/28> -% Version: 2.7 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -%% Main features of aea.bst - -% "aea.bst" is a BibTeX style file for journals of American Economic -% Association such as -% - The American Economic Review -% - Papers and Proceedins -% - Journal of Economic Literature -% - American Economics Journals -% -% AEA Style Guide is found at the following site: -% https://www.aeaweb.org/journals/aer/submissions/accepted-articles/styleguide - -% "aea.bst" is created from "econ.bst" which is distributed from -% https://github.com/ShiroTakeda/econ-bst - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "aer.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -{ #0 } % Not use \bysame -% { #1 } % -> Use \bysame (default) -% { #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -{ #0 } % (default) -% { #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -{ #0 } % #0 -> full letters (default). -% { #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -{ #0 } % If #0, not decapitalize title (default). -% { #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -{ #0 } % #0 -> show month field (default). -% { #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -{ #0 } % Not use number index (default). -% { #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -{ #0 } % (default). -% { #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -{ #0 } % (default) -% { #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ ", and " } -% { " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ ", and " } -% { " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -{ #3 } % If the number of authors is greater or equal to three (default). - -% If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "\textbf{" } -% { "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ ".}" } -% { "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ " " } -% { " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ ". " } -% { ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ " " } -% { " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ ". " } -% { ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ ".''" } -% { ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "}." } -% { "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "}," } -% { "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -{ "}" } % (default) - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -{ #0 } % (default) -% { #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -{ #1 } -% { #0 } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ " " } -% { ", " } % (default) - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -{ #0 } % #0 -> show number field (default) -% { #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ " (" } % (default) - -% The string after number: -% -FUNCTION {bst.number.post} -{ "): " } -% { ")" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " In " } -% { " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ " " } -% { ", pp." } % (default) - -% The string before page: -% -FUNCTION {bst.page.pre} -{ "" } -% { ", " } % (default) - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -{ #0 } % Address is placed before publisher (default) -% { #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ ", " } -% { "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -{ #1 } % non-#0 -> Show url field (default) -% { #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", \url{" } % (default) - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -{ ", accessed on " } % (default) - -% The string after access. -FUNCTION {bst.access.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -{ #1 } % non-#0 -> Show DOI field (default) -% { #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ". \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } -% { ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default) - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % -> Both fields are displayed -% { #1 } % -> Only URL field is displayed -{ #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame ŏȗ钘҂̑Oɂ and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { " edited by " } - { " edited by " } -% { bst.editors " by " * } -% { bst.editor " by " * } - if$ - } - if$ - editor format.names * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } -% { bst.volume.pre volume * bst.volume.post * - { " Volume " volume * "." * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { address empty$ - { ", " publisher * bst.publisher.post * } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ - } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.edition output.nocomma - format.chapter.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by aea.bst ver." econ.version * write$ newline$ - "% The latest aea.bst is available at" write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf Binary files differindex dd4682d6fdb..476a1d473b3 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-aea.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.bst deleted file mode 100644 index 2e668eb9e04..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.bst +++ /dev/null @@ -1,3601 +0,0 @@ -%% econ.bst: BibTeX style file for papers in economics. -% -% Author: Shiro Takeda -% Maintainer: Shiro Takeda -% Copyright (C) 2001-2018 Shiro Takeda -% First-written: <2007/07/28> -% Version: 2.7 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -%% Main features of econ.bst. - -% "econ.bst" is a BibTeX style file for economics. It provids the following -% features: - -% 1) The author-year type citation (you need "natbib.sty" as well). -% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style -% for a specific journal). -% 3) Highly customizable. You can easily customize reference style as you wish. -% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018) -% (http://dx.doi.org/10.1257/aer.20161492). - -% Bug reports, requests and suggestions are welcome. - -% For changelogs, see CHANGES.txt file. - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "econ.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -% { #0 } % Not use \bysame -% { #1 } % -> Use \bysame (default) -{ #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -% { "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -{ "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -{ #0 } % (default) -% { #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -{ #0 } % #0 -> full letters (default). -% { #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -{ #0 } % If #0, not decapitalize title (default). -% { #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -{ #0 } % #0 -> show month field (default). -% { #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -% { #0 } % Not use number index (default). -{ #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.19em" } -% { "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.69em" } -% { "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.19em" } -% { "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -% { #0 } % (default). -{ #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -{ #0 } % (default) -% { #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ " \& " } -% { " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", \& " } -% { ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " \& " } -% { " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -% { #3 } % If the number of authors is greater or equal to three (default). -{ #4 } - - If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "\textsc{" } -% { "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ "}, " } -% { "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ ", \textit{" } -% { " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ "}" } -% { ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ ", \textit{" } -% { " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ "}" } -% { ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "`" } -% { "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ ".'" } -% { ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -{ "}" } % (default) - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -{ #0 } % (default) -% { #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " (eds.) " } -% { " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -{ #0 } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ ", \textbf{" } -% { ", " } % (default) - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "}" } -% { "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -{ #0 } % #0 -> show number field (default) -% { #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ " (" } % (default) - -% The string after number: -% -FUNCTION {bst.number.post} -{ ")" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " In " } -% { " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ ", " } % (default) - -% The string before page: -% -FUNCTION {bst.page.pre} -{ ", " } % (default) - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chapter" } -% { ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -{ #0 } % Address is placed before publisher (default) -% { #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -{ #1 } % non-#0 -> Show url field (default) -% { #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", \url{" } % (default) - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -% { ", accessed on " } % (default) -{ " (accessed on " } - -% The string after access. -FUNCTION {bst.access.post} -% { "" } % (default) -{ ")" } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -{ #1 } % non-#0 -> Show DOI field (default) -% { #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default) - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % -> Both fields are displayed -% { #1 } % -> Only URL field is displayed -{ #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame で省略する著者の前につく and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { bst.editors " by " * } - { bst.editor " by " * } - if$ - } - if$ - editor format.names * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bst.volume.pre volume * bst.volume.post * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.edition output.nocomma - format.chapter.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$ - "% The latest " econ.file * " is available at " * write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.pdf Binary files differindex 0e5383e49d5..fab03cb781a 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-b.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.pdf Binary files differindex 63fd4201122..0977859dbd3 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-default.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst deleted file mode 100644 index 81bc4063ff9..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.bst +++ /dev/null @@ -1,3640 +0,0 @@ -%% econ.bst: BibTeX style file for papers in economics. -% -% Author: Shiro Takeda -% Maintainer: Shiro Takeda -% Copyright (C) 2001-2018 Shiro Takeda -% First-written: <2007/07/28> -% Version: 2.7 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -% "econ-econometrica.bst" is a BibTeX style file for Econometrica. -% "econ-econometrica.bst" is created from "econ.bst" which is distributed from -% https://github.com/ShiroTakeda/econ-bst - -% Bug reports, requests and suggestions are welcome. - -% For changelogs, see CHANGES.txt file. - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "econ-econometrica.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -% { #0 } % Not use \bysame -{ #1 } % -> Use \bysame (default) -% { #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -{ #0 } % (default) -% { #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -% { #0 } % #0 -> full letters (default). -{ #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -{ #0 } % If #0, not decapitalize title (default). -% { #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -{ #0 } % #0 -> show month field (default). -% { #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -{ #0 } % Not use number index (default). -% { #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -{ #0 } % (default). -% { #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -{ #0 } % (default) -% { #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ ", and " } -% { " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -{ #3 } % If the number of authors is greater or equal to three (default). - -% If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "\textsc{" } -% { "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ "} " } -% { "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ "): " } -% { ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ "): " } -% { ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -{ "}" } % (default) - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -{ #0 } % (default) -% { #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " ed. " } -% { " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -% { #0 } % (default) -{ #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ ", " } % (default) - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -% { #0 } % #0 -> show number field (default) -{ #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ " (" } % (default) - -% The string after number: -% -FUNCTION {bst.number.post} -{ ")" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ ", " } % (default) - -% The string before page: -% -FUNCTION {bst.page.pre} -{ ", " } % (default) - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -{ #0 } % Address is placed before publisher (default) -% { #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -{ #1 } % non-#0 -> Show url field (default) -% { #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", \url{" } % (default) - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -{ ", accessed on " } % (default) - -% The string after access. -FUNCTION {bst.access.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -{ #1 } % non-#0 -> Show DOI field (default) -% { #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default) - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % -> Both fields are displayed -% { #1 } % -> Only URL field is displayed -{ #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ ", Ph.D. dissertation" } -% { " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% For Econometrica, we define `format.name.ed` in addition to `format.name`. -FUNCTION {format.names.ed} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - { nameptr #1 = - % First author - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - % The second or later authors - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame で省略する著者の前につく and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { bst.editors " by " * } - { bst.editor " by " * } - if$ - } - if$ - editor format.names.ed * -% editor format.names * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { " Volume " volume * bst.volume.post * -% { bst.volume.pre volume * bst.volume.post * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - % For Econometrica, publisher and its address are placed before edition, - % chapter and page number. - output.address.organization.publisher - format.edition output.nocomma - format.chapter.pages output.nocomma -% output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$ - "% The latest " econ.file * " is available at " * write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.pdf Binary files differindex 7873e80dc49..8646918e297 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-econometrica.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.bst deleted file mode 100644 index 67a00ed0833..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.bst +++ /dev/null @@ -1,4736 +0,0 @@ -%% 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 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -% "econ-jet.bst" is a BibTeX style file for Journal fo Economic Theory. -% "econ-jet.bst" is created from "econ.bst" which is distributed from -% https://github.com/ShiroTakeda/econ-bst - -% Bug reports, requests and suggestions are welcome. - -% For changelogs, see CHANGES.txt file. - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "econ-jet.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -{ #0 } % Not use \bysame -% { #1 } % -> Use \bysame (default) -% { #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -% { #0 } % (default) -{ #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -% { #0 } % #0 -> full letters (default). -{ #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -{ #0 } % If #0, not decapitalize title (default). -% { #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -{ #0 } % #0 -> show month field (default). -% { #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -{ #0 } % Not use number index (default). -% { #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -{ #0 } % (default). -% { #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -{ #0 } % (default) -% { #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ ", " } -% { " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", " } -% { ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -{ #3 } % If the number of authors is greater or equal to three (default). - -% If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ "," } -% { "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ ", " } -% { " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ ". " } -% { ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ ", " } -% { " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ ". " } -% { ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "" } -% { "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ "." } -% { ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " " } -% { " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "." } -% { "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " " } -% { " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "" } -% { "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " " } -% { " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -% { "}" } % (default) -{ "" } - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -% { #0 } % (default) -{ #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -{ #0 } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ ". " } -% { ", " } % (default) - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -{ #0 } % #0 -> show number field (default) -% { #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ " (" } % (default) - -% The string after number: -% -FUNCTION {bst.number.post} -{ ")" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ ", " } % (default) - -% The string before page: -% -FUNCTION {bst.page.pre} -{ ", " } % (default) - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -{ #0 } % Address is placed before publisher (default) -% { #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -{ #1 } % non-#0 -> Show url field (default) -% { #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", \url{" } -% { ", URL: \url{" } % (default) - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -{ ", accessed on " } % (default) - -% The string after access. -FUNCTION {bst.access.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -{ #1 } % non-#0 -> Show DOI field (default) -% { #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default) - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % -> Both fields are displayed -% { #1 } % -> Only URL field is displayed -{ #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - s "Academy of Management Journal" = - { "Acad. Manage. Rev." 'jname := } - 'skip$ - if$ - s "Accounting Review" = - { "Account. Rev." 'jname := } - 'skip$ - if$ - s "Accounting, Organizations and Society" = - { "Account. Org. Soc." 'jname := } - 'skip$ - if$ - s "Accounting, Organizations and Society" = - { "Admin. Sci. Quart." 'jname := } - 'skip$ - if$ - s "Administrative Science Quarterly" = - { "Agr. Econ." 'jname := } - 'skip$ - if$ - s "American Economic Journal: Applied Economics" = - { "Am. Econ. J. Appl. Econ." 'jname := } - 'skip$ - if$ - s "American Economic Journal: Economic Policy" = - { "Am. Econ. J. Econ. Policy" 'jname := } - 'skip$ - if$ - s "American Economic Journal: Macroeconomics" = - { "Am. Econ. J. Macro." 'jname := } - 'skip$ - if$ - s "American Economic Journal: Microeconomics" = - { "Am. Econ. J. Micro." 'jname := } - 'skip$ - if$ - s "American Economic Review" = - { "Am. Econ. Rev." 'jname := } - 'skip$ - if$ - s "American Journal of Agricultural Economics" = - { "Am. J. Agr. Econ." 'jname := } - 'skip$ - if$ - s "American Journal of Economics and Sociology" = - { "Am. J. Econ. Sociol." 'jname := } - 'skip$ - if$ - s "Applied Economics" = - { "Appl. Econ." 'jname := } - 'skip$ - if$ - s "Applied Economics Letters" = - { "Appl. Econ. Lett." 'jname := } - 'skip$ - if$ - s "Applied Energy" = - { "Appl. Energ." 'jname := } - 'skip$ - if$ - s "Applied Stochastic Models in Business and Industry" = - { "Appl. Stoch. Model Bus." 'jname := } - 'skip$ - if$ - s "Auditing: A Journal of Practise and Theory" = - { "Auditing.-J. Pract. Th." 'jname := } - 'skip$ - if$ - s "Australian Journal of Agricultural and Resource Economics" = - { "Aust. J. Agr. Resour. Ec." 'jname := } - 'skip$ - if$ - s "B.E. Journal of Economic Analysis \& Policy" = - { "B.E. J. Econ. Anal. Policy" 'jname := } - 'skip$ - if$ - s "Betriebswirtschaftliche Forschung Und Praxis" = - { "Betrieb. Forsch. Prax." 'jname := } - 'skip$ - if$ - s "British Journal of Industrial Relations" = - { "Brit. J. Ind. Relat." 'jname := } - 'skip$ - if$ - s "British Journal of Management" = - { "Brit. J. Manage." 'jname := } - 'skip$ - if$ - s "Bulletin of Indonesian Economic Studies" = - { "B. Indones. Econ. Stud." 'jname := } - 'skip$ - if$ - s "Business Ethics Quarterly" = - { "Bus. Ethics Q." 'jname := } - 'skip$ - if$ - s "Business History" = - { "Bus. Hist." 'jname := } - 'skip$ - if$ - s "Business History Review" = - { "Bus. Hist. Rev." 'jname := } - 'skip$ - if$ - s "Business Lawyer" = - { "Bus. Lawyer" 'jname := } - 'skip$ - if$ - s "California Management Review" = - { "Calif. Manage. Rev." 'jname := } - 'skip$ - if$ - s "Cambridge Journal of Economics" = - { "Cambridge J. Econ." 'jname := } - 'skip$ - if$ - s "Canadian Journal of Administrative Sciences" = - { "Can. J. Adm. Sci." 'jname := } - 'skip$ - if$ - s "Canadian Journal of Economics" = - { "Can. J. Econ." 'jname := } - 'skip$ - if$ - s "China Economic Review" = - { "China. Econ. Rev." 'jname := } - 'skip$ - if$ - s "Climate Change Economics" = - { "Clim. Change Econ." 'jname := } - 'skip$ - if$ - s "Climate Policy" = - { "Clim. Policy" 'jname := } - 'skip$ - if$ - s "Communications in Statistics – Part A: Theory and Methods" = - { "Commun. Stat.-Theor. M." 'jname := } - 'skip$ - if$ - s "Computational Economics" = - { "Computation. Econ." 'jname := } - 'skip$ - if$ - s "Computational Statistics" = - { "Computation. Stat." 'jname := } - 'skip$ - if$ - s "Computational Statistics and Data Analysis" = - { "Comput. Stat. Data An." 'jname := } - 'skip$ - if$ - s "Contemporary Accounting Research" = - { "Contemp. Account. Res." 'jname := } - 'skip$ - if$ - s "Contemporary Economic Policy" = - { "Contemp. Econ. Policy" 'jname := } - 'skip$ - if$ - s "Defence and Peace Economics" = - { "Defence Peace Econ." 'jname := } - 'skip$ - if$ - s "Development Economics" = - { "Dev. Econ." 'jname := } - 'skip$ - if$ - s "Eastern European Economics" = - { "Eastern Eur. Econ." 'jname := } - 'skip$ - if$ - s "Ecological Economics" = - { "Ecol. Econ." 'jname := } - 'skip$ - if$ - s "Econometric Theory" = - { "Economet. Theor." 'jname := } - 'skip$ - if$ - s "Econometrica" = - { "Econometrica" 'jname := } - 'skip$ - if$ - s "Economic and Industrial Democracy" = - { "Econ. Ind. Democr." 'jname := } - 'skip$ - if$ - s "Economic Development and Cultural Change" = - { "Econ. Dev. Cult. Change" 'jname := } - 'skip$ - if$ - s "Economic Development and Cultural Change" = - { "Economist.-Netherland" 'jname := } - 'skip$ - if$ - s "Economic Development Quarterly" = - { "Econ. Dev. Q." 'jname := } - 'skip$ - if$ - s "Economic Geography" = - { "Econ. Geogr." 'jname := } - 'skip$ - if$ - s "Economic History Review" = - { "Econ. Hist. Rev." 'jname := } - 'skip$ - if$ - s "Economic Inquiry" = - { "Econ. Inq." 'jname := } - 'skip$ - if$ - s "Economic Journal" = - { "Econ. J." 'jname := } - 'skip$ - if$ - s "Economic Modelling" = - { "Econ. Model." 'jname := } - 'skip$ - if$ - s "Economic Policy" = - { "Econ. Policy" 'jname := } - 'skip$ - if$ - s "Economic Record" = - { "Econ. Rec." 'jname := } - 'skip$ - if$ - s "Economic Theory" = - { "Econ. Theor." 'jname := } - 'skip$ - if$ - s "Economica" = - { "Economica" 'jname := } - 'skip$ - if$ - s "Economics and Philosophy" = - { "Econ. Philos." 'jname := } - 'skip$ - if$ - s "Economics Letters" = - { "Econ. Lett." 'jname := } - 'skip$ - if$ - s "Economics of Education Review" = - { "Econ. Educ. Rev." 'jname := } - 'skip$ - if$ - s "Economics of Energy \& Environmental Policy" = - { "Econ. Energ. Environ. Policy" 'jname := } - 'skip$ - if$ - s "Economics of Transition" = - { "Econ. Transit." 'jname := } - 'skip$ - if$ - s "Economy and Society" = - { "Econ. Soc." 'jname := } - 'skip$ - if$ - s "Ekonomicky Casopis" = - { "Ekon. Cas." 'jname := } - 'skip$ - if$ - s "Ekonomiska Samfundets Tidskrift" = - { "Ekon. Samf. Tidskr." 'jname := } - 'skip$ - if$ - s "Emerging Markets Finance and Trade" = - { "Emerg. Mark. Financ. Tr." 'jname := } - 'skip$ - if$ - s "Energy Economics" = - { "Energ. Econ." 'jname := } - 'skip$ - if$ - s "Energy Journal" = - { "Energ. J." 'jname := } - 'skip$ - if$ - s "Energy Policy" = - { "Energ. Policy" 'jname := } - 'skip$ - if$ - s "Entrepreneurship \& Regional Development" = - { "Entrep. Region. Dev." 'jname := } - 'skip$ - if$ - s "Entrepreneurship Theory and Practice" = - { "Entrep. Theory Pract." 'jname := } - 'skip$ - if$ - s "Environment and Development Economics" = - { "Environ. Dev. Econ." 'jname := } - 'skip$ - if$ - s "Environmental and Resource Economics" = - { "Environ. Resour. Econ." 'jname := } - 'skip$ - if$ - s "Environmental Economics and Policy Studies" = - { "Environ. Econ. Policy Stud." 'jname := } - 'skip$ - if$ - s "Environmental Science and Policy" = - { "Environ. Sci. Policy" 'jname := } - 'skip$ - if$ - s "Environmental Science \& Technology" = - { "Environ. Sci. Technol." 'jname := } - 'skip$ - if$ - s "Eurasian Geography and Economics " = - { "Eurasian Geogr. Econ." 'jname := } - 'skip$ - if$ - s "European Economic Review" = - { "Eur. Econ. Rev." 'jname := } - 'skip$ - if$ - s "European Journal of Industrial Relations" = - { "Eur. J. Ind. Relat." 'jname := } - 'skip$ - if$ - s "European Review of Agricultural Economics" = - { "Eur. Rev. Agric. Econ." 'jname := } - 'skip$ - if$ - s "Europe-Asia Studies" = - { "Europe-Asia Stud." 'jname := } - 'skip$ - if$ - s "Explorations in Economic History" = - { "Explor. Econ. Hist." 'jname := } - 'skip$ - if$ - s "Feminist Economics" = - { "Fem. Econ." 'jname := } - 'skip$ - if$ - s "Finance a Uver" = - { "Financ. Uver." 'jname := } - 'skip$ - if$ - s "Finance and Stochastics" = - { "Financ. Stoch." 'jname := } - 'skip$ - if$ - s "Financial Analysts Journal" = - { "Financ. Anal. J." 'jname := } - 'skip$ - if$ - s "Financial Management" = - { "Financ. Manage." 'jname := } - 'skip$ - if$ - s "Fiscal Studies" = - { "Fisc. Stud." 'jname := } - 'skip$ - if$ - s "Food Policy" = - { "Food. Policy." 'jname := } - 'skip$ - if$ - s "Futures" = - { "Futures" 'jname := } - 'skip$ - if$ - s "Games and Economic Behavior" = - { "Game Econ. Behav." 'jname := } - 'skip$ - if$ - s "Health Economics" = - { "Health Econ." 'jname := } - 'skip$ - if$ - s "Hitotsubashi Journal of Economics" = - { "Hitotsub. J. Econ." 'jname := } - 'skip$ - if$ - s "IMF Staff Papers" = - { "Imf. Staff. Papers" 'jname := } - 'skip$ - if$ - s "Industrial and Corporate Change" = - { "Ind. Corp. Change" 'jname := } - 'skip$ - if$ - s "Industrial and Labor Relations Review" = - { "Ind. Labor. Relat. Rev." 'jname := } - 'skip$ - if$ - s "Industrial Marketing Management" = - { "Ind. Market Manag." 'jname := } - 'skip$ - if$ - s "Industrial Relations" = - { "Ind. Relat." 'jname := } - 'skip$ - if$ - s "Information Economics and Policy" = - { "Info. Econ. Policy" 'jname := } - 'skip$ - if$ - s "Insurance: Mathematics and Economics" = - { "Insur. Math. Econ." 'jname := } - 'skip$ - if$ - s "International Economic Review" = - { "Int. Econ. Rev." 'jname := } - 'skip$ - if$ - s "International Journal of Electronics and Telecommunications" = - { "Int. J. Electron. Comm." 'jname := } - 'skip$ - if$ - s "International Journal of Economic Theory" = - { "Int. J. Econ. Theory" 'jname := } - 'skip$ - if$ - s "International Journal of Finance \& Economics" = - { "Int. J. Financ. Econ." 'jname := } - 'skip$ - if$ - s "International Journal of Forecasting" = - { "Int. J. Forecast." 'jname := } - 'skip$ - if$ - s "International Journal of Game Theory" = - { "Int. J. Game. Theory" 'jname := } - 'skip$ - if$ - s "International Journal of Industrial Organization" = - { "Int. J. Ind. Organ." 'jname := } - 'skip$ - if$ - s "International Journal of Manpower" = - { "Int. J. Manpow." 'jname := } - 'skip$ - if$ - s "International Journal of Market Research" = - { "Int. J. Market Res." 'jname := } - 'skip$ - if$ - s "International Journal of Research in Marketing" = - { "Int. J. Res. Mark." 'jname := } - 'skip$ - if$ - s "International Labour Review" = - { "Int. Labour Rev." 'jname := } - 'skip$ - if$ - s "International Marketing Review" = - { "Int. Market. Rev." 'jname := } - 'skip$ - if$ - s "International Review of Applied Economics" = - { "Int. Rev. Appl. Econ." 'jname := } - 'skip$ - if$ - s "International Review of Law and Economics" = - { "Int. Rev. Law Econ." 'jname := } - 'skip$ - if$ - s "International Small Business Journal" = - { "Int. Small. Bus. J." 'jname := } - 'skip$ - if$ - s "International Tax and Public Finance" = - { "Int. Tax Public Finan." 'jname := } - 'skip$ - if$ - s "Jahrbücher für Nationalökonomie und Statistik" = - { "Jahrb. Natl. Stat." 'jname := } - 'skip$ - if$ - s "Japan and the World Economy" = - { "Jpn. World Econ." 'jname := } - 'skip$ - if$ - s "Japanese Economic Review" = - { "Jpn. Econ. Rev." 'jname := } - 'skip$ - if$ - s "JCMS-journal of Common Market Studies" = - { "Jcms.-J. Common. Mark. S." 'jname := } - 'skip$ - if$ - s "Journal of Accounting and Economics" = - { "J. Account. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Accounting Research" = - { "J. Account. Res." 'jname := } - 'skip$ - if$ - s "Journal of Advertising" = - { "J. Advertising" 'jname := } - 'skip$ - if$ - s "Journal of Advertising Research" = - { "J. Advertising Res." 'jname := } - 'skip$ - if$ - s "Journal of African Economies" = - { "J. Afr. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Agricultural and Resource Economics" = - { "J. Agr. Resour. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Agricultural Economics" = - { "J. Agr. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Applied Econometrics" = - { "J. Appl. Econom." 'jname := } - 'skip$ - if$ - s "Journal of Banking and Finance" = - { "J. Bank Financ." 'jname := } - 'skip$ - if$ - s "Journal of Business" = - { "J. Bus." 'jname := } - 'skip$ - if$ - s "Journal of Business and Economic Statistics" = - { "J. Bus. Econ. Stat." 'jname := } - 'skip$ - if$ - s "Journal of Business and Psychology" = - { "J. Bus. Psychol." 'jname := } - 'skip$ - if$ - s "Journal of Business and Technical Communication" = - { "J. Bus. Tech. Commun." 'jname := } - 'skip$ - if$ - s "Journal of Business Ethics" = - { "J. Bus. Ethics" 'jname := } - 'skip$ - if$ - s "Journal of Business Research" = - { "J. Bus. Res." 'jname := } - 'skip$ - if$ - s "Journal of Business Venturing" = - { "J. Bus. Venturing." 'jname := } - 'skip$ - if$ - s "Journal of Cleaner Productiond" = - { "J. Clean. Prod." 'jname := } - 'skip$ - if$ - s "Journal of Comparative Economics" = - { "J. Comp. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Consumer Affairs" = - { "J. Consum. Aff." 'jname := } - 'skip$ - if$ - s "Journal of Consumer Research" = - { "J. Consum. Res." 'jname := } - 'skip$ - if$ - s "Journal of Corporate Finance" = - { "J. Corp. Financ." 'jname := } - 'skip$ - if$ - s "Journal of Development Economics" = - { "J. Dev. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Econometrics" = - { "J. Econometrics" 'jname := } - 'skip$ - if$ - s "Journal of Economic Behavior and Organization" = - { "J. Econ. Behav. Organ." 'jname := } - 'skip$ - if$ - s "Journal of Economic Dynamics and Control" = - { "J. Econ. Dyn. Control" 'jname := } - 'skip$ - if$ - s "Journal of Economic Education" = - { "J. Econ. Educ." 'jname := } - 'skip$ - if$ - s "Journal of Economic Geography" = - { "J. Econ. Geogr." 'jname := } - 'skip$ - if$ - s "Journal of Economic Growth" = - { "J. Econ. Growth" 'jname := } - 'skip$ - if$ - s "Journal of Economic History" = - { "J. Econ. Hist." 'jname := } - 'skip$ - if$ - s "Journal of Economic Integration" = - { "J. Econ. Integr." 'jname := } - 'skip$ - if$ - s "Journal of Economic Issues" = - { "J. Econ. Issues." 'jname := } - 'skip$ - if$ - s "Journal of Economic Perspectives" = - { "J. Econ. Perspect." 'jname := } - 'skip$ - if$ - s "Journal of Economic Psychology" = - { "J. Econ. Psychol." 'jname := } - 'skip$ - if$ - s "Journal of Economic Literature" = - { "J. Econ. Lit." 'jname := } - 'skip$ - if$ - s "Journal of Economic Surveys" = - { "J. Econ. Surv." 'jname := } - 'skip$ - if$ - s "Journal of Economic Theory" = - { "J. Econ. Theory" 'jname := } - 'skip$ - if$ - s "Journal of Economics" = - { "J. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Economics and Management Strategy" = - { "J. Econ. Manage. Strat." 'jname := } - 'skip$ - if$ - s "Journal of Environmental Economics and Management" = - { "J. Environ. Econ. Manag." 'jname := } - 'skip$ - if$ - s "Journal of Evolutionary Economics" = - { "J. Evol. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Finance" = - { "J. Financ." 'jname := } - 'skip$ - if$ - s "Journal of Financial and Quantitative Analysis" = - { "J. Financ. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Financial Economics" = - { "J. Financ. Intermed." 'jname := } - 'skip$ - if$ - s "Journal of Financial Intermediation" = - { "J. Financ. Mark." 'jname := } - 'skip$ - if$ - s "Journal of Financial Markets" = - { "J. Financ. Quant. Anal." 'jname := } - 'skip$ - if$ - s "Journal of Forecasting" = - { "J. Forecasting." 'jname := } - 'skip$ - if$ - s "Journal of Futures Markets" = - { "J. Futures Market" 'jname := } - 'skip$ - if$ - s "Journal of Health Economics" = - { "J. Health Econ." 'jname := } - 'skip$ - if$ - s "Journal of Housing Economics" = - { "J. Hous. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Human Resources" = - { "J. Hum. Resour." 'jname := } - 'skip$ - if$ - s "Journal of Industrial Economics" = - { "J. Ind. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Institutional and Theoretical Economics" = - { "J. Inst. Theor. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Integrated Disaster Risk Management" = - { "J. Integr. Disaster Risk Manag." 'jname := } - 'skip$ - if$ - s "Journal of International Business Studies" = - { "J. Int. Bus. Stud." 'jname := } - 'skip$ - if$ - s "Journal of International Economics" = - { "J. Int. Econ." 'jname := } - 'skip$ - if$ - s "Journal of International Marketing" = - { "J. Int. Marketing" 'jname := } - 'skip$ - if$ - s "Journal of International Money and Finance" = - { "J. Int. Money Financ." 'jname := } - 'skip$ - if$ - s "Journal of Labor Economics" = - { "J. Labor Econ." 'jname := } - 'skip$ - if$ - s "Journal of Labor Research" = - { "J. Labor Res." 'jname := } - 'skip$ - if$ - s "Journal of Law and Economics" = - { "J. Law. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Law, Economics, and Organization" = - { "J. Law. Econ. Organ." 'jname := } - 'skip$ - if$ - s "Journal of Macroeconomics" = - { "J. Macroecon." 'jname := } - 'skip$ - if$ - s "Journal of Management" = - { "J. Manage." 'jname := } - 'skip$ - if$ - s "Journal of Management Studies" = - { "J. Manage. Stud." 'jname := } - 'skip$ - if$ - s "Journal of Marketing" = - { "J. Marketing" 'jname := } - 'skip$ - if$ - s "Journal of Marketing Research" = - { "J. Marketing Res." 'jname := } - 'skip$ - if$ - s "Journal of Mathematical Economics" = - { "J. Math. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Media Economics" = - { "J. Media Econ." 'jname := } - 'skip$ - if$ - s "Journal of Monetary Economics" = - { "J. Monetary. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Money, Credit and Banking" = - { "J. Money Credit Bank." 'jname := } - 'skip$ - if$ - s "Journal of Policy Modeling" = - { "J. Policy Model." 'jname := } - 'skip$ - if$ - s "Journal of Political Economy" = - { "J. Polit. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Population Economics" = - { "J. Popul. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Portfolio Management" = - { "J. Portfolio Manage." 'jname := } - 'skip$ - if$ - s "Journal of Post Keynesian Economics" = - { "J. Post Keynesian Ec." 'jname := } - 'skip$ - if$ - s "Journal of Product Innovation Management" = - { "J. Prod. Innovat. Manag." 'jname := } - 'skip$ - if$ - s "Journal of Productivity Analysis" = - { "J. Prod. Anal." 'jname := } - 'skip$ - if$ - s "Journal of Public Economics" = - { "J. Public Econ." 'jname := } - 'skip$ - if$ - s "Journal of Public Policy and Marketing" = - { "J. Public Policy Mark." 'jname := } - 'skip$ - if$ - s "Journal of Real Estate Finance and Economics" = - { "J. Real Estate Financ." 'jname := } - 'skip$ - if$ - s "Journal of Regulatory Economics" = - { "J. Regul. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Retailing" = - { "J. Retailing" 'jname := } - 'skip$ - if$ - s "Journal of Risk and Insurance" = - { "J. Risk. Insur" 'jname := } - 'skip$ - if$ - s "Journal of Risk and Uncertainty" = - { "J. Risk Uncertainty" 'jname := } - 'skip$ - if$ - s "Journal of Statistical Computation and Simulation" = - { "J. Stat. Comput. Sim." 'jname := } - 'skip$ - if$ - s "Journal of Statistical Planning and Inference" = - { "J. Stat. Plan. Infer." 'jname := } - 'skip$ - if$ - s "Journal of the Academy of Marketing Science" = - { "J. Acad. Market. Sci." 'jname := } - 'skip$ - if$ - s "Journal of the American Statistical Association" = - { "J. Am. Stat. Assoc." 'jname := } - 'skip$ - if$ - s "Journal of the European Economic Association" = - { "J. Eur. Econ. Assoc." 'jname := } - 'skip$ - if$ - s "Journal of the Japanese and International Economies" = - { "J. Jpn. Int. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Time Series Analysis" = - { "J. Time Ser. Anal." 'jname := } - 'skip$ - if$ - s "Journal of Transport Economics and Policy" = - { "J. Transp. Econ. Policy" 'jname := } - 'skip$ - if$ - s "Journal of Urban Economics" = - { "J. Urban Econ." 'jname := } - 'skip$ - if$ - s "Journal of World Business" = - { "J. World. Bus." 'jname := } - 'skip$ - if$ - s "Kyklos" = - { "Kyklos" 'jname := } - 'skip$ - if$ - s "Labor History" = - { "Labor Hist." 'jname := } - 'skip$ - if$ - s "Labour Economics" = - { "Labour Econ." 'jname := } - 'skip$ - if$ - s "Land Economics" = - { "Land Econ." 'jname := } - 'skip$ - if$ - s "Long Range Planning" = - { "Long Range Plann." 'jname := } - 'skip$ - if$ - s "Macroeconomic Dynamics" = - { "Macroecon. Dyn." 'jname := } - 'skip$ - if$ - s "Management Science" = - { "Manage. Sci." 'jname := } - 'skip$ - if$ - s "Manchester School" = - { "Manch. Sch." 'jname := } - 'skip$ - if$ - s "Marketing Letters" = - { "Market. Lett." 'jname := } - 'skip$ - if$ - s "Marketing Science" = - { "Market. Sci." 'jname := } - 'skip$ - if$ - s "Materials Transactions" = - { "Mater. Trans." 'jname := } - 'skip$ - if$ - s "Mathematical Finance" = - { "Math. Financ." 'jname := } - 'skip$ - if$ - s "Monthly Labor Review" = - { "Mon. Labor Rev." 'jname := } - 'skip$ - if$ - s "National Tax Journal" = - { "Natl. Tax. J." 'jname := } - 'skip$ - if$ - s "New England Economic Review" = - { "New Engl. Econ. Rev." 'jname := } - 'skip$ - if$ - s "New Political Economy" = - { "New Polit. Econ." 'jname := } - 'skip$ - if$ - s "Open Economies Review" = - { "Open. Econ. Rev." 'jname := } - 'skip$ - if$ - s "Organizational Dynamics" = - { "Organ. Dyn." 'jname := } - 'skip$ - if$ - s "Oxford Bulletin of Economics and Statistics" = - { "Oxford. B. Econ. Stat." 'jname := } - 'skip$ - if$ - s "Oxford Economic Papers" = - { "Oxford Econ. Pap." 'jname := } - 'skip$ - if$ - s "Oxford Review of Economic Policy" = - { "Oxford. Rev. Econ. Pol." 'jname := } - 'skip$ - if$ - s "Politicka Ekonomie" = - { "Polit. Ekon." 'jname := } - 'skip$ - if$ - s "Population and Development Review" = - { "Popul. Dev. Rev." 'jname := } - 'skip$ - if$ - s "Post-Communist Economies" = - { "Post.-Communist. Econ." 'jname := } - 'skip$ - if$ - s "Post-Soviet Affairs" = - { "Post.-Sov. Aff." 'jname := } - 'skip$ - if$ - s "Psychology \& Marketing" = - { "Psychol. Market." 'jname := } - 'skip$ - if$ - s "Public Choice" = - { "Public. Choice." 'jname := } - 'skip$ - if$ - s "Quantitative Finance" = - { "Quant. Financ." 'jname := } - 'skip$ - if$ - s "Quarterly Journal of Economics" = - { "Q. J. Econ." 'jname := } - 'skip$ - if$ - s "R\&D Management" = - { "R.\&D. Manage." 'jname := } - 'skip$ - if$ - s "RAND Journal of Economics" = - { "Rand. J. Econ." 'jname := } - 'skip$ - if$ - s "Real Estate Economics" = - { "Real Estate Econ." 'jname := } - 'skip$ - if$ - s "Regional Science and Urban Economics" = - { "Reg. Sci. Urban. Econ." 'jname := } - 'skip$ - if$ - s "Regional Studies" = - { "Reg. Stud." 'jname := } - 'skip$ - if$ - s "Relations Industrielles-Industrial Relations" = - { "Relat. Ind.-Ind. Relat." 'jname := } - 'skip$ - if$ - s "Research-Technology Management" = - { "Res. Technol. Manage." 'jname := } - 'skip$ - if$ - s "Resource and Energy Economics" = - { "Resour. Energy. Econ." 'jname := } - 'skip$ - if$ - s "Review of Accounting Studies" = - { "Rev. Acc. Stud." 'jname := } - 'skip$ - if$ - s "Review of Agricultural Economics" = - { "Rev. Agr. Econ." 'jname := } - 'skip$ - if$ - s "Review of Development Economics" = - { "Rev. Dev. Econ." 'jname := } - 'skip$ - if$ - s "Review of Economic Dynamics" = - { "Rev. Econ. Dynam." 'jname := } - 'skip$ - if$ - s "Review of Economic Studies" = - { "Rev. Econ. Stat." 'jname := } - 'skip$ - if$ - s "Review of Economics and Statistics" = - { "Rev. Econ. Stud." 'jname := } - 'skip$ - if$ - s "Review of Financial Studies" = - { "Rev. Financ. Stud." 'jname := } - 'skip$ - if$ - s "Review of Income and Wealth" = - { "Rev. Income Wealth" 'jname := } - 'skip$ - if$ - s "Review of Industrial Organization" = - { "Rev. Ind. Organ." 'jname := } - 'skip$ - if$ - s "Review of International Economics" = - { "Rev. Int. Econ." 'jname := } - 'skip$ - if$ - s "Review of International Political Economy" = - { "Rev. Int. Polit. Econ." 'jname := } - 'skip$ - if$ - s "Review of World Economics" = - { "Rev. World Econ." 'jname := } - 'skip$ - if$ - s "Scandinavian Journal of Economics" = - { "Scand. J. Econ." 'jname := } - 'skip$ - if$ - s "Scottish Journal of Political Economy" = - { "Scot. J. Polit. Econ." 'jname := } - 'skip$ - if$ - s "Small Business Economics" = - { "Small. Bus. Econ." 'jname := } - 'skip$ - if$ - s "Social Choice and Welfare" = - { "Soc. Choice Welfare" 'jname := } - 'skip$ - if$ - s "South African Journal of Economics" = - { "S. Afr. J. Econ." 'jname := } - 'skip$ - if$ - s "Southern Economic Journal" = - { "South. Econ. J." 'jname := } - 'skip$ - if$ - s "Strategic Management Journal" = - { "Statistics." 'jname := } - 'skip$ - if$ - s "Strategic Management Journal" = - { "Strategic Manage. J." 'jname := } - 'skip$ - if$ - s "Studies in Nonlinear Dynamics and Econometrics" = - { "Stoch. Anal. Appl." 'jname := } - 'skip$ - if$ - s "Studies in Nonlinear Dynamics and Econometrics" = - { "Stud. Nonlinear. Dyn. E." 'jname := } - 'skip$ - if$ - s "Supply Chain Management" = - { "Supply. Chain. Manag." 'jname := } - 'skip$ - if$ - s "Sustainability" = - { "Sustainability" 'jname := } - 'skip$ - if$ - s "Technological Forecasting and Social Change" = - { "Technol. Forecast. Soc." 'jname := } - 'skip$ - if$ - s "Theory and Decision" = - { "Theor. Decis." 'jname := } - 'skip$ - if$ - s "Tijdschrift voor Economische en Sociale Geografie" = - { "Tijdschr. Econ. Soc. Ge." 'jname := } - 'skip$ - if$ - s "Trimestre Economico" = - { "Trimest. Econ." 'jname := } - 'skip$ - if$ - s "Work and Occupations" = - { "Work Occupation." 'jname := } - 'skip$ - if$ - s "Work, Employment and Society" = - { "Work Employ. Soc." 'jname := } - 'skip$ - if$ - s "World Bank Economic Review" = - { "World Bank Econ. Rev." 'jname := } - 'skip$ - if$ - s "World Bank Research Observer" = - { "World Bank Res. Obser." 'jname := } - 'skip$ - if$ - s "World Development" = - { "World Dev." 'jname := } - 'skip$ - if$ - s "World Economy" = - { "World Econ." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame で省略する著者の前につく and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { bst.editors " by " * } - { bst.editor " by " * } - if$ - } - if$ - editor format.names * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bst.volume.pre volume * bst.volume.post * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.edition output.nocomma - format.chapter.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$ - "% The latest " econ.file * " is available at " * write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.pdf Binary files differindex ae4af816100..438938c75a7 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jet.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.bst deleted file mode 100644 index 06a2cfbe50b..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jie.bst +++ /dev/null @@ -1,3594 +0,0 @@ -%% econ.bst: BibTeX style file for papers in economics. -% -% Author: Shiro Takeda -% Maintainer: Shiro Takeda -% Copyright (C) 2001-2018 Shiro Takeda -% First-written: <2007/07/28> -% Version: 2.7 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -%% econ-jie.bst - -% "econ-jie.bst" is a BibTeX style file for Journal of International Economics -% "econ-jie.bst" is created from "econ.bst" which is distributed from -% https://github.com/ShiroTakeda/econ-bst - -% Bug reports, requests and suggestions are welcome. - -% For changelogs, see CHANGES.txt file. - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "econ-jie.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -% { #0 } % Not use \bysame -{ #1 } % -> Use \bysame (default) -% { #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -% { #0 } % (default) -{ #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -% { #0 } % #0 -> full letters (default). -{ #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -% { #0 } % If #0, not decapitalize title (default). -{ #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -{ #0 } % #0 -> show month field (default). -% { #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -{ #0 } % Not use number index (default). -% { #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -{ #0 } % (default). -% { #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -{ #0 } % (default) -% { #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ ", " } -% { " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", " } -% { ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -{ #3 } % If the number of authors is greater or equal to three (default). - -% If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ "," } -% { "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ " " } -% { " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ ". " } -% { ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ " " } -% { " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ ". " } -% { ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "" } -% { "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ "." } -% { ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " " } -% { " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "." } -% { "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " " } -% { " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "." } -% { "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " " } -% { " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -{ "." } -% { "}" } % (default) - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -{ #0 } % (default) -% { #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " (Eds.)," } -% { " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -{ #0 } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ " " } -% { ", " } % (default) - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -{ #0 } % #0 -> show number field (default) -% { #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ " (" } % (default) - -% The string after number: -% -FUNCTION {bst.number.post} -{ ")," } -% { ")" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " In: " } -% { " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ " " } -% { ", " } % (default) - -% The string before page: -% -FUNCTION {bst.page.pre} -{ ", " } % (default) - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -% { #0 } % Address is placed before publisher (default) -{ #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ", " } -% { ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -{ #1 } % non-#0 -> Show url field (default) -% { #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", \url{" } % (default) - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -{ ", accessed on " } % (default) - -% The string after access. -FUNCTION {bst.access.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -{ #1 } % non-#0 -> Show DOI field (default) -% { #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default) - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % (default) -> Both fields are displayed -% { #1 } % -> Only URL field is displayed -{ #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame で省略する著者の前につく and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { bst.editors " by " * } - { bst.editor " by " * } - if$ - } - if$ - editor format.names * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bst.volume.pre volume * bst.volume.post * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.edition output.nocomma - format.chapter.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$ - "% The latest " econ.file * " is available at " * write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.bst deleted file mode 100644 index ee6d4364ab5..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-jpe.bst +++ /dev/null @@ -1,4802 +0,0 @@ -%% econ.bst: BibTeX style file for papers in economics. -% -% Author: Shiro Takeda -% Maintainer: Shiro Takeda -% Copyright (C) 2001-2018 Shiro Takeda -% First-written: <2007/07/28> -% Version: 2.7 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -%% Main features of econ.bst. - -% "econ.bst" is a BibTeX style file for economics. It provids the following -% features: - -% 1) The author-year type citation (you need "natbib.sty" as well). -% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style -% for a specific journal). -% 3) Highly customizable. You can easily customize reference style as you wish. -% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018) -% (http://dx.doi.org/10.1257/aer.20161492). - -% Bug reports, requests and suggestions are welcome. - -% For changelogs, see CHANGES.txt file. - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "econ-jpe.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -% { #0 } % Not use \bysame -{ #1 } % -> Use \bysame (default) -% { #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -{ #0 } % (default) -% { #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -{ #0 } % #0 -> full letters (default). -% { #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -{ #0 } % If #0, not decapitalize title (default). -% { #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -{ #0 } % #0 -> show month field (default). -% { #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -{ #0 } % Not use number index (default). -% { #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -{ #0 } % (default). -% { #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -{ #0 } % (default) -% { #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ ", and " } -% { " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -{ #3 } % If the number of authors is greater or equal to three (default). - -% If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ " " } -% { " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ "." } -% { ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ " " } -% { " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ "." } -% { ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ ".''" } -% { ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "}. " } -% { "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -{ "}." } -% { "}" } % (default) - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -% { #0 } % (default) -{ #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -{ #1 } -% { #0 } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ " " } -% { ", " } % (default) - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -{ #0 } % #0 -> show number field (default) -% { #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ " (" } % (default) - -% The string after number: -% -FUNCTION {bst.number.post} -{ "): " } -% { ")" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " In " } -% { " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ " " } -% { ", " } % (default) - -% The string before page: -% -FUNCTION {bst.page.pre} -{ ", " } % (default) - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -{ #0 } % Address is placed before publisher (default) -% { #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ "," } -% { "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -{ #1 } % non-#0 -> Show url field (default) -% { #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", \url{" } % (default) - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -{ ", accessed on " } % (default) - -% The string after access. -FUNCTION {bst.access.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -{ #1 } % non-#0 -> Show DOI field (default) -% { #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default) - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % -> Both fields are displayed -% { #1 } % -> Only URL field is displayed -{ #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - s "Academy of Management Journal" = - { "Acad. Manage. Rev." 'jname := } - 'skip$ - if$ - s "Accounting Review" = - { "Account. Rev." 'jname := } - 'skip$ - if$ - s "Accounting, Organizations and Society" = - { "Account. Org. Soc." 'jname := } - 'skip$ - if$ - s "Accounting, Organizations and Society" = - { "Admin. Sci. Quart." 'jname := } - 'skip$ - if$ - s "Administrative Science Quarterly" = - { "Agr. Econ." 'jname := } - 'skip$ - if$ - s "American Economic Journal: Applied Economics" = - { "Am. Econ. J. Appl. Econ." 'jname := } - 'skip$ - if$ - s "American Economic Journal: Economic Policy" = - { "Am. Econ. J. Econ. Policy" 'jname := } - 'skip$ - if$ - s "American Economic Journal: Macroeconomics" = - { "Am. Econ. J. Macro." 'jname := } - 'skip$ - if$ - s "American Economic Journal: Microeconomics" = - { "Am. Econ. J. Micro." 'jname := } - 'skip$ - if$ - s "American Economic Review" = - { "Am. Econ. Rev." 'jname := } - 'skip$ - if$ - s "American Journal of Agricultural Economics" = - { "Am. J. Agr. Econ." 'jname := } - 'skip$ - if$ - s "American Journal of Economics and Sociology" = - { "Am. J. Econ. Sociol." 'jname := } - 'skip$ - if$ - s "Applied Economics" = - { "Appl. Econ." 'jname := } - 'skip$ - if$ - s "Applied Economics Letters" = - { "Appl. Econ. Lett." 'jname := } - 'skip$ - if$ - s "Applied Energy" = - { "Appl. Energ." 'jname := } - 'skip$ - if$ - s "Applied Stochastic Models in Business and Industry" = - { "Appl. Stoch. Model Bus." 'jname := } - 'skip$ - if$ - s "Auditing: A Journal of Practise and Theory" = - { "Auditing.-J. Pract. Th." 'jname := } - 'skip$ - if$ - s "Australian Journal of Agricultural and Resource Economics" = - { "Aust. J. Agr. Resour. Ec." 'jname := } - 'skip$ - if$ - s "B.E. Journal of Economic Analysis \& Policy" = - { "B.E. J. Econ. Anal. Policy" 'jname := } - 'skip$ - if$ - s "Betriebswirtschaftliche Forschung Und Praxis" = - { "Betrieb. Forsch. Prax." 'jname := } - 'skip$ - if$ - s "British Journal of Industrial Relations" = - { "Brit. J. Ind. Relat." 'jname := } - 'skip$ - if$ - s "British Journal of Management" = - { "Brit. J. Manage." 'jname := } - 'skip$ - if$ - s "Bulletin of Indonesian Economic Studies" = - { "B. Indones. Econ. Stud." 'jname := } - 'skip$ - if$ - s "Business Ethics Quarterly" = - { "Bus. Ethics Q." 'jname := } - 'skip$ - if$ - s "Business History" = - { "Bus. Hist." 'jname := } - 'skip$ - if$ - s "Business History Review" = - { "Bus. Hist. Rev." 'jname := } - 'skip$ - if$ - s "Business Lawyer" = - { "Bus. Lawyer" 'jname := } - 'skip$ - if$ - s "California Management Review" = - { "Calif. Manage. Rev." 'jname := } - 'skip$ - if$ - s "Cambridge Journal of Economics" = - { "Cambridge J. Econ." 'jname := } - 'skip$ - if$ - s "Canadian Journal of Administrative Sciences" = - { "Can. J. Adm. Sci." 'jname := } - 'skip$ - if$ - s "Canadian Journal of Economics" = - { "Can. J. Econ." 'jname := } - 'skip$ - if$ - s "China Economic Review" = - { "China. Econ. Rev." 'jname := } - 'skip$ - if$ - s "Climate Change Economics" = - { "Clim. Change Econ." 'jname := } - 'skip$ - if$ - s "Climate Policy" = - { "Clim. Policy" 'jname := } - 'skip$ - if$ - s "Communications in Statistics – Part A: Theory and Methods" = - { "Commun. Stat.-Theor. M." 'jname := } - 'skip$ - if$ - s "Computational Economics" = - { "Computation. Econ." 'jname := } - 'skip$ - if$ - s "Computational Statistics" = - { "Computation. Stat." 'jname := } - 'skip$ - if$ - s "Computational Statistics and Data Analysis" = - { "Comput. Stat. Data An." 'jname := } - 'skip$ - if$ - s "Contemporary Accounting Research" = - { "Contemp. Account. Res." 'jname := } - 'skip$ - if$ - s "Contemporary Economic Policy" = - { "Contemp. Econ. Policy" 'jname := } - 'skip$ - if$ - s "Defence and Peace Economics" = - { "Defence Peace Econ." 'jname := } - 'skip$ - if$ - s "Development Economics" = - { "Dev. Econ." 'jname := } - 'skip$ - if$ - s "Eastern European Economics" = - { "Eastern Eur. Econ." 'jname := } - 'skip$ - if$ - s "Ecological Economics" = - { "Ecol. Econ." 'jname := } - 'skip$ - if$ - s "Econometric Theory" = - { "Economet. Theor." 'jname := } - 'skip$ - if$ - s "Econometrica" = - { "Econometrica" 'jname := } - 'skip$ - if$ - s "Economic and Industrial Democracy" = - { "Econ. Ind. Democr." 'jname := } - 'skip$ - if$ - s "Economic Development and Cultural Change" = - { "Econ. Dev. Cult. Change" 'jname := } - 'skip$ - if$ - s "Economic Development and Cultural Change" = - { "Economist.-Netherland" 'jname := } - 'skip$ - if$ - s "Economic Development Quarterly" = - { "Econ. Dev. Q." 'jname := } - 'skip$ - if$ - s "Economic Geography" = - { "Econ. Geogr." 'jname := } - 'skip$ - if$ - s "Economic History Review" = - { "Econ. Hist. Rev." 'jname := } - 'skip$ - if$ - s "Economic Inquiry" = - { "Econ. Inq." 'jname := } - 'skip$ - if$ - s "Economic Journal" = - { "Econ. J." 'jname := } - 'skip$ - if$ - s "Economic Modelling" = - { "Econ. Model." 'jname := } - 'skip$ - if$ - s "Economic Policy" = - { "Econ. Policy" 'jname := } - 'skip$ - if$ - s "Economic Record" = - { "Econ. Rec." 'jname := } - 'skip$ - if$ - s "Economic Theory" = - { "Econ. Theor." 'jname := } - 'skip$ - if$ - s "Economica" = - { "Economica" 'jname := } - 'skip$ - if$ - s "Economics and Philosophy" = - { "Econ. Philos." 'jname := } - 'skip$ - if$ - s "Economics Letters" = - { "Econ. Lett." 'jname := } - 'skip$ - if$ - s "Economics of Education Review" = - { "Econ. Educ. Rev." 'jname := } - 'skip$ - if$ - s "Economics of Energy \& Environmental Policy" = - { "Econ. Energ. Environ. Policy" 'jname := } - 'skip$ - if$ - s "Economics of Transition" = - { "Econ. Transit." 'jname := } - 'skip$ - if$ - s "Economy and Society" = - { "Econ. Soc." 'jname := } - 'skip$ - if$ - s "Ekonomicky Casopis" = - { "Ekon. Cas." 'jname := } - 'skip$ - if$ - s "Ekonomiska Samfundets Tidskrift" = - { "Ekon. Samf. Tidskr." 'jname := } - 'skip$ - if$ - s "Emerging Markets Finance and Trade" = - { "Emerg. Mark. Financ. Tr." 'jname := } - 'skip$ - if$ - s "Energy Economics" = - { "Energ. Econ." 'jname := } - 'skip$ - if$ - s "Energy Journal" = - { "Energ. J." 'jname := } - 'skip$ - if$ - s "Energy Policy" = - { "Energ. Policy" 'jname := } - 'skip$ - if$ - s "Entrepreneurship \& Regional Development" = - { "Entrep. Region. Dev." 'jname := } - 'skip$ - if$ - s "Entrepreneurship Theory and Practice" = - { "Entrep. Theory Pract." 'jname := } - 'skip$ - if$ - s "Environment and Development Economics" = - { "Environ. Dev. Econ." 'jname := } - 'skip$ - if$ - s "Environmental and Resource Economics" = - { "Environ. Resour. Econ." 'jname := } - 'skip$ - if$ - s "Environmental Economics and Policy Studies" = - { "Environ. Econ. Policy Stud." 'jname := } - 'skip$ - if$ - s "Environmental Science and Policy" = - { "Environ. Sci. Policy" 'jname := } - 'skip$ - if$ - s "Environmental Science \& Technology" = - { "Environ. Sci. Technol." 'jname := } - 'skip$ - if$ - s "Eurasian Geography and Economics " = - { "Eurasian Geogr. Econ." 'jname := } - 'skip$ - if$ - s "European Economic Review" = - { "Eur. Econ. Rev." 'jname := } - 'skip$ - if$ - s "European Journal of Industrial Relations" = - { "Eur. J. Ind. Relat." 'jname := } - 'skip$ - if$ - s "European Review of Agricultural Economics" = - { "Eur. Rev. Agric. Econ." 'jname := } - 'skip$ - if$ - s "Europe-Asia Studies" = - { "Europe-Asia Stud." 'jname := } - 'skip$ - if$ - s "Explorations in Economic History" = - { "Explor. Econ. Hist." 'jname := } - 'skip$ - if$ - s "Feminist Economics" = - { "Fem. Econ." 'jname := } - 'skip$ - if$ - s "Finance a Uver" = - { "Financ. Uver." 'jname := } - 'skip$ - if$ - s "Finance and Stochastics" = - { "Financ. Stoch." 'jname := } - 'skip$ - if$ - s "Financial Analysts Journal" = - { "Financ. Anal. J." 'jname := } - 'skip$ - if$ - s "Financial Management" = - { "Financ. Manage." 'jname := } - 'skip$ - if$ - s "Fiscal Studies" = - { "Fisc. Stud." 'jname := } - 'skip$ - if$ - s "Food Policy" = - { "Food. Policy." 'jname := } - 'skip$ - if$ - s "Futures" = - { "Futures" 'jname := } - 'skip$ - if$ - s "Games and Economic Behavior" = - { "Game Econ. Behav." 'jname := } - 'skip$ - if$ - s "Health Economics" = - { "Health Econ." 'jname := } - 'skip$ - if$ - s "Hitotsubashi Journal of Economics" = - { "Hitotsub. J. Econ." 'jname := } - 'skip$ - if$ - s "IMF Staff Papers" = - { "Imf. Staff. Papers" 'jname := } - 'skip$ - if$ - s "Industrial and Corporate Change" = - { "Ind. Corp. Change" 'jname := } - 'skip$ - if$ - s "Industrial and Labor Relations Review" = - { "Ind. Labor. Relat. Rev." 'jname := } - 'skip$ - if$ - s "Industrial Marketing Management" = - { "Ind. Market Manag." 'jname := } - 'skip$ - if$ - s "Industrial Relations" = - { "Ind. Relat." 'jname := } - 'skip$ - if$ - s "Information Economics and Policy" = - { "Info. Econ. Policy" 'jname := } - 'skip$ - if$ - s "Insurance: Mathematics and Economics" = - { "Insur. Math. Econ." 'jname := } - 'skip$ - if$ - s "International Economic Review" = - { "Int. Econ. Rev." 'jname := } - 'skip$ - if$ - s "International Journal of Electronics and Telecommunications" = - { "Int. J. Electron. Comm." 'jname := } - 'skip$ - if$ - s "International Journal of Economic Theory" = - { "Int. J. Econ. Theory" 'jname := } - 'skip$ - if$ - s "International Journal of Finance \& Economics" = - { "Int. J. Financ. Econ." 'jname := } - 'skip$ - if$ - s "International Journal of Forecasting" = - { "Int. J. Forecast." 'jname := } - 'skip$ - if$ - s "International Journal of Game Theory" = - { "Int. J. Game. Theory" 'jname := } - 'skip$ - if$ - s "International Journal of Industrial Organization" = - { "Int. J. Ind. Organ." 'jname := } - 'skip$ - if$ - s "International Journal of Manpower" = - { "Int. J. Manpow." 'jname := } - 'skip$ - if$ - s "International Journal of Market Research" = - { "Int. J. Market Res." 'jname := } - 'skip$ - if$ - s "International Journal of Research in Marketing" = - { "Int. J. Res. Mark." 'jname := } - 'skip$ - if$ - s "International Labour Review" = - { "Int. Labour Rev." 'jname := } - 'skip$ - if$ - s "International Marketing Review" = - { "Int. Market. Rev." 'jname := } - 'skip$ - if$ - s "International Review of Applied Economics" = - { "Int. Rev. Appl. Econ." 'jname := } - 'skip$ - if$ - s "International Review of Law and Economics" = - { "Int. Rev. Law Econ." 'jname := } - 'skip$ - if$ - s "International Small Business Journal" = - { "Int. Small. Bus. J." 'jname := } - 'skip$ - if$ - s "International Tax and Public Finance" = - { "Int. Tax Public Finan." 'jname := } - 'skip$ - if$ - s "Jahrbücher für Nationalökonomie und Statistik" = - { "Jahrb. Natl. Stat." 'jname := } - 'skip$ - if$ - s "Japan and the World Economy" = - { "Jpn. World Econ." 'jname := } - 'skip$ - if$ - s "Japanese Economic Review" = - { "Jpn. Econ. Rev." 'jname := } - 'skip$ - if$ - s "JCMS-journal of Common Market Studies" = - { "Jcms.-J. Common. Mark. S." 'jname := } - 'skip$ - if$ - s "Journal of Accounting and Economics" = - { "J. Account. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Accounting Research" = - { "J. Account. Res." 'jname := } - 'skip$ - if$ - s "Journal of Advertising" = - { "J. Advertising" 'jname := } - 'skip$ - if$ - s "Journal of Advertising Research" = - { "J. Advertising Res." 'jname := } - 'skip$ - if$ - s "Journal of African Economies" = - { "J. Afr. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Agricultural and Resource Economics" = - { "J. Agr. Resour. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Agricultural Economics" = - { "J. Agr. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Applied Econometrics" = - { "J. Appl. Econom." 'jname := } - 'skip$ - if$ - s "Journal of Banking and Finance" = - { "J. Bank Financ." 'jname := } - 'skip$ - if$ - s "Journal of Business" = - { "J. Bus." 'jname := } - 'skip$ - if$ - s "Journal of Business and Economic Statistics" = - { "J. Bus. Econ. Stat." 'jname := } - 'skip$ - if$ - s "Journal of Business and Psychology" = - { "J. Bus. Psychol." 'jname := } - 'skip$ - if$ - s "Journal of Business and Technical Communication" = - { "J. Bus. Tech. Commun." 'jname := } - 'skip$ - if$ - s "Journal of Business Ethics" = - { "J. Bus. Ethics" 'jname := } - 'skip$ - if$ - s "Journal of Business Research" = - { "J. Bus. Res." 'jname := } - 'skip$ - if$ - s "Journal of Business Venturing" = - { "J. Bus. Venturing." 'jname := } - 'skip$ - if$ - s "Journal of Cleaner Productiond" = - { "J. Clean. Prod." 'jname := } - 'skip$ - if$ - s "Journal of Comparative Economics" = - { "J. Comp. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Consumer Affairs" = - { "J. Consum. Aff." 'jname := } - 'skip$ - if$ - s "Journal of Consumer Research" = - { "J. Consum. Res." 'jname := } - 'skip$ - if$ - s "Journal of Corporate Finance" = - { "J. Corp. Financ." 'jname := } - 'skip$ - if$ - s "Journal of Development Economics" = - { "J. Dev. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Econometrics" = - { "J. Econometrics" 'jname := } - 'skip$ - if$ - s "Journal of Economic Behavior and Organization" = - { "J. Econ. Behav. Organ." 'jname := } - 'skip$ - if$ - s "Journal of Economic Dynamics and Control" = - { "J. Econ. Dyn. Control" 'jname := } - 'skip$ - if$ - s "Journal of Economic Education" = - { "J. Econ. Educ." 'jname := } - 'skip$ - if$ - s "Journal of Economic Geography" = - { "J. Econ. Geogr." 'jname := } - 'skip$ - if$ - s "Journal of Economic Growth" = - { "J. Econ. Growth" 'jname := } - 'skip$ - if$ - s "Journal of Economic History" = - { "J. Econ. Hist." 'jname := } - 'skip$ - if$ - s "Journal of Economic Integration" = - { "J. Econ. Integr." 'jname := } - 'skip$ - if$ - s "Journal of Economic Issues" = - { "J. Econ. Issues." 'jname := } - 'skip$ - if$ - s "Journal of Economic Perspectives" = - { "J. Econ. Perspect." 'jname := } - 'skip$ - if$ - s "Journal of Economic Psychology" = - { "J. Econ. Psychol." 'jname := } - 'skip$ - if$ - s "Journal of Economic Literature" = - { "J. Econ. Lit." 'jname := } - 'skip$ - if$ - s "Journal of Economic Surveys" = - { "J. Econ. Surv." 'jname := } - 'skip$ - if$ - s "Journal of Economic Theory" = - { "J. Econ. Theory" 'jname := } - 'skip$ - if$ - s "Journal of Economics" = - { "J. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Economics and Management Strategy" = - { "J. Econ. Manage. Strat." 'jname := } - 'skip$ - if$ - s "Journal of Environmental Economics and Management" = - { "J. Environ. Econ. Manag." 'jname := } - 'skip$ - if$ - s "Journal of Evolutionary Economics" = - { "J. Evol. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Finance" = - { "J. Financ." 'jname := } - 'skip$ - if$ - s "Journal of Financial and Quantitative Analysis" = - { "J. Financ. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Financial Economics" = - { "J. Financ. Intermed." 'jname := } - 'skip$ - if$ - s "Journal of Financial Intermediation" = - { "J. Financ. Mark." 'jname := } - 'skip$ - if$ - s "Journal of Financial Markets" = - { "J. Financ. Quant. Anal." 'jname := } - 'skip$ - if$ - s "Journal of Forecasting" = - { "J. Forecasting." 'jname := } - 'skip$ - if$ - s "Journal of Futures Markets" = - { "J. Futures Market" 'jname := } - 'skip$ - if$ - s "Journal of Health Economics" = - { "J. Health Econ." 'jname := } - 'skip$ - if$ - s "Journal of Housing Economics" = - { "J. Hous. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Human Resources" = - { "J. Hum. Resour." 'jname := } - 'skip$ - if$ - s "Journal of Industrial Economics" = - { "J. Ind. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Institutional and Theoretical Economics" = - { "J. Inst. Theor. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Integrated Disaster Risk Management" = - { "J. Integr. Disaster Risk Manag." 'jname := } - 'skip$ - if$ - s "Journal of International Business Studies" = - { "J. Int. Bus. Stud." 'jname := } - 'skip$ - if$ - s "Journal of International Economics" = - { "J. Int. Econ." 'jname := } - 'skip$ - if$ - s "Journal of International Marketing" = - { "J. Int. Marketing" 'jname := } - 'skip$ - if$ - s "Journal of International Money and Finance" = - { "J. Int. Money Financ." 'jname := } - 'skip$ - if$ - s "Journal of Labor Economics" = - { "J. Labor Econ." 'jname := } - 'skip$ - if$ - s "Journal of Labor Research" = - { "J. Labor Res." 'jname := } - 'skip$ - if$ - s "Journal of Law and Economics" = - { "J. Law. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Law, Economics, and Organization" = - { "J. Law. Econ. Organ." 'jname := } - 'skip$ - if$ - s "Journal of Macroeconomics" = - { "J. Macroecon." 'jname := } - 'skip$ - if$ - s "Journal of Management" = - { "J. Manage." 'jname := } - 'skip$ - if$ - s "Journal of Management Studies" = - { "J. Manage. Stud." 'jname := } - 'skip$ - if$ - s "Journal of Marketing" = - { "J. Marketing" 'jname := } - 'skip$ - if$ - s "Journal of Marketing Research" = - { "J. Marketing Res." 'jname := } - 'skip$ - if$ - s "Journal of Mathematical Economics" = - { "J. Math. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Media Economics" = - { "J. Media Econ." 'jname := } - 'skip$ - if$ - s "Journal of Monetary Economics" = - { "J. Monetary. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Money, Credit and Banking" = - { "J. Money Credit Bank." 'jname := } - 'skip$ - if$ - s "Journal of Policy Modeling" = - { "J. Policy Model." 'jname := } - 'skip$ - if$ - s "Journal of Political Economy" = - { "J. Polit. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Population Economics" = - { "J. Popul. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Portfolio Management" = - { "J. Portfolio Manage." 'jname := } - 'skip$ - if$ - s "Journal of Post Keynesian Economics" = - { "J. Post Keynesian Ec." 'jname := } - 'skip$ - if$ - s "Journal of Product Innovation Management" = - { "J. Prod. Innovat. Manag." 'jname := } - 'skip$ - if$ - s "Journal of Productivity Analysis" = - { "J. Prod. Anal." 'jname := } - 'skip$ - if$ - s "Journal of Public Economics" = - { "J. Public Econ." 'jname := } - 'skip$ - if$ - s "Journal of Public Policy and Marketing" = - { "J. Public Policy Mark." 'jname := } - 'skip$ - if$ - s "Journal of Real Estate Finance and Economics" = - { "J. Real Estate Financ." 'jname := } - 'skip$ - if$ - s "Journal of Regulatory Economics" = - { "J. Regul. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Retailing" = - { "J. Retailing" 'jname := } - 'skip$ - if$ - s "Journal of Risk and Insurance" = - { "J. Risk. Insur" 'jname := } - 'skip$ - if$ - s "Journal of Risk and Uncertainty" = - { "J. Risk Uncertainty" 'jname := } - 'skip$ - if$ - s "Journal of Statistical Computation and Simulation" = - { "J. Stat. Comput. Sim." 'jname := } - 'skip$ - if$ - s "Journal of Statistical Planning and Inference" = - { "J. Stat. Plan. Infer." 'jname := } - 'skip$ - if$ - s "Journal of the Academy of Marketing Science" = - { "J. Acad. Market. Sci." 'jname := } - 'skip$ - if$ - s "Journal of the American Statistical Association" = - { "J. Am. Stat. Assoc." 'jname := } - 'skip$ - if$ - s "Journal of the European Economic Association" = - { "J. Eur. Econ. Assoc." 'jname := } - 'skip$ - if$ - s "Journal of the Japanese and International Economies" = - { "J. Jpn. Int. Econ." 'jname := } - 'skip$ - if$ - s "Journal of Time Series Analysis" = - { "J. Time Ser. Anal." 'jname := } - 'skip$ - if$ - s "Journal of Transport Economics and Policy" = - { "J. Transp. Econ. Policy" 'jname := } - 'skip$ - if$ - s "Journal of Urban Economics" = - { "J. Urban Econ." 'jname := } - 'skip$ - if$ - s "Journal of World Business" = - { "J. World. Bus." 'jname := } - 'skip$ - if$ - s "Kyklos" = - { "Kyklos" 'jname := } - 'skip$ - if$ - s "Labor History" = - { "Labor Hist." 'jname := } - 'skip$ - if$ - s "Labour Economics" = - { "Labour Econ." 'jname := } - 'skip$ - if$ - s "Land Economics" = - { "Land Econ." 'jname := } - 'skip$ - if$ - s "Long Range Planning" = - { "Long Range Plann." 'jname := } - 'skip$ - if$ - s "Macroeconomic Dynamics" = - { "Macroecon. Dyn." 'jname := } - 'skip$ - if$ - s "Management Science" = - { "Manage. Sci." 'jname := } - 'skip$ - if$ - s "Manchester School" = - { "Manch. Sch." 'jname := } - 'skip$ - if$ - s "Marketing Letters" = - { "Market. Lett." 'jname := } - 'skip$ - if$ - s "Marketing Science" = - { "Market. Sci." 'jname := } - 'skip$ - if$ - s "Materials Transactions" = - { "Mater. Trans." 'jname := } - 'skip$ - if$ - s "Mathematical Finance" = - { "Math. Financ." 'jname := } - 'skip$ - if$ - s "Monthly Labor Review" = - { "Mon. Labor Rev." 'jname := } - 'skip$ - if$ - s "National Tax Journal" = - { "Natl. Tax. J." 'jname := } - 'skip$ - if$ - s "New England Economic Review" = - { "New Engl. Econ. Rev." 'jname := } - 'skip$ - if$ - s "New Political Economy" = - { "New Polit. Econ." 'jname := } - 'skip$ - if$ - s "Open Economies Review" = - { "Open. Econ. Rev." 'jname := } - 'skip$ - if$ - s "Organizational Dynamics" = - { "Organ. Dyn." 'jname := } - 'skip$ - if$ - s "Oxford Bulletin of Economics and Statistics" = - { "Oxford. B. Econ. Stat." 'jname := } - 'skip$ - if$ - s "Oxford Economic Papers" = - { "Oxford Econ. Pap." 'jname := } - 'skip$ - if$ - s "Oxford Review of Economic Policy" = - { "Oxford. Rev. Econ. Pol." 'jname := } - 'skip$ - if$ - s "Politicka Ekonomie" = - { "Polit. Ekon." 'jname := } - 'skip$ - if$ - s "Population and Development Review" = - { "Popul. Dev. Rev." 'jname := } - 'skip$ - if$ - s "Post-Communist Economies" = - { "Post.-Communist. Econ." 'jname := } - 'skip$ - if$ - s "Post-Soviet Affairs" = - { "Post.-Sov. Aff." 'jname := } - 'skip$ - if$ - s "Psychology \& Marketing" = - { "Psychol. Market." 'jname := } - 'skip$ - if$ - s "Public Choice" = - { "Public. Choice." 'jname := } - 'skip$ - if$ - s "Quantitative Finance" = - { "Quant. Financ." 'jname := } - 'skip$ - if$ - s "Quarterly Journal of Economics" = - { "Q. J. Econ." 'jname := } - 'skip$ - if$ - s "R\&D Management" = - { "R.\&D. Manage." 'jname := } - 'skip$ - if$ - s "RAND Journal of Economics" = - { "Rand. J. Econ." 'jname := } - 'skip$ - if$ - s "Real Estate Economics" = - { "Real Estate Econ." 'jname := } - 'skip$ - if$ - s "Regional Science and Urban Economics" = - { "Reg. Sci. Urban. Econ." 'jname := } - 'skip$ - if$ - s "Regional Studies" = - { "Reg. Stud." 'jname := } - 'skip$ - if$ - s "Relations Industrielles-Industrial Relations" = - { "Relat. Ind.-Ind. Relat." 'jname := } - 'skip$ - if$ - s "Research-Technology Management" = - { "Res. Technol. Manage." 'jname := } - 'skip$ - if$ - s "Resource and Energy Economics" = - { "Resour. Energy. Econ." 'jname := } - 'skip$ - if$ - s "Review of Accounting Studies" = - { "Rev. Acc. Stud." 'jname := } - 'skip$ - if$ - s "Review of Agricultural Economics" = - { "Rev. Agr. Econ." 'jname := } - 'skip$ - if$ - s "Review of Development Economics" = - { "Rev. Dev. Econ." 'jname := } - 'skip$ - if$ - s "Review of Economic Dynamics" = - { "Rev. Econ. Dynam." 'jname := } - 'skip$ - if$ - s "Review of Economic Studies" = - { "Rev. Econ. Stat." 'jname := } - 'skip$ - if$ - s "Review of Economics and Statistics" = - { "Rev. Econ. Stud." 'jname := } - 'skip$ - if$ - s "Review of Financial Studies" = - { "Rev. Financ. Stud." 'jname := } - 'skip$ - if$ - s "Review of Income and Wealth" = - { "Rev. Income Wealth" 'jname := } - 'skip$ - if$ - s "Review of Industrial Organization" = - { "Rev. Ind. Organ." 'jname := } - 'skip$ - if$ - s "Review of International Economics" = - { "Rev. Int. Econ." 'jname := } - 'skip$ - if$ - s "Review of International Political Economy" = - { "Rev. Int. Polit. Econ." 'jname := } - 'skip$ - if$ - s "Review of World Economics" = - { "Rev. World Econ." 'jname := } - 'skip$ - if$ - s "Scandinavian Journal of Economics" = - { "Scand. J. Econ." 'jname := } - 'skip$ - if$ - s "Scottish Journal of Political Economy" = - { "Scot. J. Polit. Econ." 'jname := } - 'skip$ - if$ - s "Small Business Economics" = - { "Small. Bus. Econ." 'jname := } - 'skip$ - if$ - s "Social Choice and Welfare" = - { "Soc. Choice Welfare" 'jname := } - 'skip$ - if$ - s "South African Journal of Economics" = - { "S. Afr. J. Econ." 'jname := } - 'skip$ - if$ - s "Southern Economic Journal" = - { "South. Econ. J." 'jname := } - 'skip$ - if$ - s "Strategic Management Journal" = - { "Statistics." 'jname := } - 'skip$ - if$ - s "Strategic Management Journal" = - { "Strategic Manage. J." 'jname := } - 'skip$ - if$ - s "Studies in Nonlinear Dynamics and Econometrics" = - { "Stoch. Anal. Appl." 'jname := } - 'skip$ - if$ - s "Studies in Nonlinear Dynamics and Econometrics" = - { "Stud. Nonlinear. Dyn. E." 'jname := } - 'skip$ - if$ - s "Supply Chain Management" = - { "Supply. Chain. Manag." 'jname := } - 'skip$ - if$ - s "Sustainability" = - { "Sustainability" 'jname := } - 'skip$ - if$ - s "Technological Forecasting and Social Change" = - { "Technol. Forecast. Soc." 'jname := } - 'skip$ - if$ - s "Theory and Decision" = - { "Theor. Decis." 'jname := } - 'skip$ - if$ - s "Tijdschrift voor Economische en Sociale Geografie" = - { "Tijdschr. Econ. Soc. Ge." 'jname := } - 'skip$ - if$ - s "Trimestre Economico" = - { "Trimest. Econ." 'jname := } - 'skip$ - if$ - s "Work and Occupations" = - { "Work Occupation." 'jname := } - 'skip$ - if$ - s "Work, Employment and Society" = - { "Work Employ. Soc." 'jname := } - 'skip$ - if$ - s "World Bank Economic Review" = - { "World Bank Econ. Rev." 'jname := } - 'skip$ - if$ - s "World Bank Research Observer" = - { "World Bank Res. Obser." 'jname := } - 'skip$ - if$ - s "World Development" = - { "World Dev." 'jname := } - 'skip$ - if$ - s "World Economy" = - { "World Econ." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% For JPE, we define `format.name.ed` in addition to `format.name`. -FUNCTION {format.names.ed} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - { nameptr #1 = - % First author - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - % The second or later authors - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame で省略する著者の前につく and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { " edited by " } - { " edited by " } -% { bst.editors " by " * } -% { bst.editor " by " * } - if$ - } - if$ - editor format.names.ed * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bst.volume.pre volume * bst.volume.post * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - % For JPE, publisher and its address are placed before edition, - % chapter and page number. - output.address.organization.publisher - format.edition output.nocomma - format.chapter.pages output.nocomma -% output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$ - "% The latest " econ.file * " is available at " * write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.bst deleted file mode 100644 index b2cbcd057ee..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.bst +++ /dev/null @@ -1,3579 +0,0 @@ -%% econ.bst: BibTeX style file for papers in economics. -% -% Author: Shiro Takeda -% Maintainer: Shiro Takeda -% Copyright (C) 2001-2018 Shiro Takeda -% First-written: <2007/07/28> -% Version: 2.7 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -%% Main features of econ.bst. - -% "econ.bst" is a BibTeX style file for economics. It provids the following -% features: - -% 1) The author-year type citation (you need "natbib.sty" as well). -% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style -% for a specific journal). -% 3) Highly customizable. You can easily customize reference style as you wish. -% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018) -% (http://dx.doi.org/10.1257/aer.20161492). - -% Bug reports, requests and suggestions are welcome. - -% For changelogs, see CHANGES.txt file. - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "econ.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -% { #0 } % Not use \bysame -{ #1 } % -> Use \bysame (default) -% { #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -{ #0 } % (default) -% { #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -{ #0 } % #0 -> full letters (default). -% { #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -{ #0 } % If #0, not decapitalize title (default). -% { #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -{ #0 } % #0 -> show month field (default). -% { #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -{ #0 } % Not use number index (default). -% { #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -{ #0 } % (default). -% { #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -% { #0 } % (default) -{ #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -{ #3 } % If the number of authors is greater or equal to three (default). - -% If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -{ "}" } % (default) - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -{ #0 } % (default) -% { #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -{ #0 } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ ", " } % (default) - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -{ #0 } % #0 -> show number field (default) -% { #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ " (" } % (default) - -% The string after number: -% -FUNCTION {bst.number.post} -{ ")" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ ", " } % (default) - -% The string before page: -% -FUNCTION {bst.page.pre} -{ ", " } % (default) - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -{ #0 } % Address is placed before publisher (default) -% { #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -{ #1 } % non-#0 -> Show url field (default) -% { #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", \url{" } % (default) - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -{ ", accessed on " } % (default) - -% The string after access. -FUNCTION {bst.access.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -{ #1 } % non-#0 -> Show DOI field (default) -% { #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ", \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } % (default) - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % -> Both fields are displayed -% { #1 } % -> Only URL field is displayed -{ #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame で省略する著者の前につく and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { bst.editors " by " * } - { bst.editor " by " * } - if$ - } - if$ - editor format.names * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bst.volume.pre volume * bst.volume.post * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.edition output.nocomma - format.chapter.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$ - "% The latest " econ.file * " is available at " * write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.pdf Binary files differindex a3e0803fb64..85f101163db 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-no-sort.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.pdf Binary files differindex 0419bf76e45..ce42db86b92 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-numbers.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.bst b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.bst deleted file mode 100644 index e16c585fff1..00000000000 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.bst +++ /dev/null @@ -1,3579 +0,0 @@ -%% econ.bst: BibTeX style file for papers in economics. -% -% Author: Shiro Takeda -% Maintainer: Shiro Takeda -% Copyright (C) 2001-2018 Shiro Takeda -% First-written: <2007/07/28> -% Version: 2.7 -% Keywords: TeX, BibTeX, bst -% URL: https://github.com/ShiroTakeda/econ-bst - -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status "maintained". -% -% The Current Maintainer of this work is Shiro Takeda. - -%% Main features of econ.bst. - -% "econ.bst" is a BibTeX style file for economics. It provids the following -% features: - -% 1) The author-year type citation (you need "natbib.sty" as well). -% 2) Reference style used in economics papers ("econ.bst" is not a BibTeX style -% for a specific journal). -% 3) Highly customizable. You can easily customize reference style as you wish. -% 4) You can use "certified random order" proposed by Ray ⓡ Robson (2018) -% (http://dx.doi.org/10.1257/aer.20161492). - -% Bug reports, requests and suggestions are welcome. - -% For changelogs, see CHANGES.txt file. - -% version number -FUNCTION {econ.version} { "2.7" } - -% File name -FUNCTION {econ.file} { "econ.bst" } - -% Debug mode. Non-zero makes debug mode on. -FUNCTION {econ.debug} -{ #0 } % Debug mode off (default). -% { #1 } % Debug mode on. - -ENTRY - %%% Declaration of field - { access address author booktitle chapter doi edition editor howpublished - institution journal key month note number organization pages publisher - school series title type url volume year - % Fields specific to econ.bst - order absorder nameorder - } - - % Definition of entry variable. The entry variable is a variable which has - % different values according to different entries. - %% Integer entry variable: - { order.cited } - - %% String entry variable - { label cyear flabel alabel extra.label sort.label sort.label.abb - extra.label.bysame nameorder.temp jname } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Use \bysame or not. -% -% If set to #0, \bysame is not used. -% If set to #1, \bysame is used -% If set to #2, \bysame is used (alternative abbreviation style). -% -% Note that integer number is expressed as # + integer in bst file. -% \bysame is the function that abbreviates succession of the same authors' name by ---. -% -% See econ-sample.pdf for details. -% -FUNCTION {bst.use.bysame} -% { #0 } % Not use \bysame -{ #1 } % -> Use \bysame (default) -% { #2 } % -> Use \bysame of alternative style. - -% The definition of \bysame command. -% -FUNCTION {bst.bysame.definition} -{ "\hskip.3em \leavevmode\rule[.5ex]{3em}{.3pt}\hskip0.5em" } % (default) -% { "\leavevmode\hbox to\leftmargin{\hrulefill\,\,}" } % If you set #2 to bst.use.bysame, use this. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% The order of fist and last name. -% -FUNCTION {bst.author.name} -{ #0 } % (default) -% { #1 } -% { #2 } - -% Case of #0: First author -> last-first, other authors -> first-last. -% Fujita, Masahisa, Paul R. Krugman, and Anthony J. Venables. - -% Case of #1: All authors -> last-first -% Fujita, Masahisa, Krugman, Paul R., and Venables, Anthony J. - -% Case of #2: All authors -> first-last -% Masahisa Fujita, Paul R. Krugman, and Anthony J. Venables. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Abbreviate first name of authors (editors): -% -FUNCTION {bst.first.name.initial} -{ #0 } % #0 -> full letters (default). -% { #1 } % Non-zero -> initial letter only. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Decapitalize of strings in title field. -% -FUNCTION {bst.title.lower.case} -{ #0 } % If #0, not decapitalize title (default). -% { #1 } % If non-#0, decapitalize title - -% Hide title filed. -% -FUNCTION {bst.hide.title} -{ #0 } % #0 -> Title field is displayed (default) -% { #1 } % Non-zer -> Title field is hidden - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide month. -% -FUNCTION {bst.hide.month} -{ #0 } % #0 -> show month field (default). -% { #1 } % non-#0 -> hide month field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Attach number index like plain.bst. -% -FUNCTION {bst.use.number.index} -{ #0 } % Not use number index (default). -% { #1 } % Non-#0 -> Use number index - -% The string before number index: -% -FUNCTION {bst.number.index.pre} -{ "[" } % (default) - -% The string after number index. Adjustment is recommended. -% -FUNCTION {bst.number.index.post} -{ "]\hskip1.0em " } % (default) - -% Maximum digit of number index: -% If the number of reference items >= 100, set 3 to this function. -% If the number of reference items < 100, set 2 to this function. -% If the number of reference items < 10, set 1 to this function. -% -FUNCTION {bst.number.index.digit} -{ "2" } % (default) -% { "3" } - -% The functions below are used to adjust space and postion. If you use fonts -% other than computer modern fonts, you had better make adjustments. -% -% Setting for bst.number.index.digit = 1: -FUNCTION {bst.number.index.bibhang.one} -{ "2.05em" } % (default) -% Setting for bst.number.index.digit = 2: -FUNCTION {bst.number.index.bibhang.ten} -{ "2.55em" } % (default) -% Setting for bst.number.index.digit = 3: -FUNCTION {bst.number.index.bibhang.hund} -{ "3.05em" } % (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Position of "year": -% -% You can choose the position of year by this function. -% -% If set to #0, year is placed right after "author". -% If set to non-zero, year is placed at the end (before note field) except for -% aritcle type entry. -% -% In article type entry, the position of year changes according to the -% following rule: -% -% #1 -> year is placed at the end. -% #2 -> year is placed after journal name in aritcle type entry. -% #3 -> year is placed after volume in aritcle type entry. -% -FUNCTION {bst.year.position} -{ #0 } % (default). -% { #1 } % Last place before note. -% { #2 } % After journal name for aticle type entry. -% { #3 } % After volume for aticle type entry. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If 0, references are sorted by old documents -> recent documents. If -% non-zero, reverse order. -FUNCTION {bst.reverse.year} -{ #0 } % Normal order (old -> recent) (default). -% { #1 } % inverse order (recent -> old) - -% If non-zero, sort references by using year field as the primary key -% (chronological sorting). -FUNCTION {bst.sort.year} -{ #0 } % Normal case: year is used as the sorting key next to author (default). -% { #1 } % year is used as the primary sorting key. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% If non-zero, references are listed in citation order. -% -FUNCTION {bst.no.sort} -{ #0 } % (default) -% { #1 } % listed in citation order. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Non-zero -> sort references by entry type (article, book, incollection etc.) -% -FUNCTION {bst.sort.entry.type} -{ #0 } % #0 -> Normal (not sort references by entry type) (default). -% { #1 } % Non-zero -> sort references by entry type. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use absorder field to sort items. Otherwise, ignore absorder field. -% -FUNCTION {bst.notuse.absorder.field} -{ #0 } % #0 -> Use absorder (default). -% { #1 } % Non-#0 -> Not use absorder. -% -% Order of priority to sort items -% -% absorder -> author -> year -> order -> month -> title -% -% wehre absorder and order fields are specific to econ.bst. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% 0 -> use order field to sort items. Otherwise, ignore order field. -% Note: order field is specific to econ.bst. -FUNCTION {bst.notuse.order.field} -{ #0 } % #0 -> Use order field (default). -% { #1 } % Non-#0 -> not use order field. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% and - -%%% String used to separate author names in references. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.and} -{ " and " } % (default) - -%%% String used to separate author names in references (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.ands} -{ ", and " } % (default) - -%%% String used to separate author names in citation part. -% -% String replaced with _ in "Mr. A _ Mr. B " -% -FUNCTION {bst.cite.and} -{ " and " } % (default) - -%%% String used to separate author names in citation part (more than two authors). -% -% String replaced with _ in "Mr. A, Mr. B _ Mr. C" -% -FUNCTION {bst.cite.ands} -{ " and " } % (default) - -%%% If you want to use random author order for some bibliography entries, set -% non-zero to this function. -% -FUNCTION {bst.use.nameorder} -{ #1 } % Use random order (default) -% { #0 } % Not use random order - -%%% String used to separate author names in references for the entry of random -% author order. -% -FUNCTION {bst.and.nameorder} -{ " \textcircled{r} " } % (default) - -%%% String used to separate author names in citation part for the entry of -% random author order -% -FUNCTION {bst.cite.and.nameorder} -{ " \textcircled{r} " } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Author names in the citation part are abbreviated by et al. if the number of -% authors is greater or equal to bst.and.others.num. -FUNCTION {bst.and.others.num} -{ #3 } % If the number of authors is greater or equal to three (default). - -% If the number of authors is greater or equal to bst.max.author.num, only -% first author is listed and other authors' names are abbreviated as "et al.". -FUNCTION {bst.max.author.num} -{ #12 } % If the number of authors is greater or equal to 12 (default). - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Strings used when abbreviating multiple-authors in citation part. -FUNCTION {bst.and.others} -{ " et~al." } % (default) - -% Strings used when abbreviating multiple-authors in citation part for entries -% with random author order. -FUNCTION {bst.and.others.nameorder} -{ " \textcircled{r}~al." } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% author - -% The string before author: -% -FUNCTION {bst.author.pre} -{ "" } % (default) - -% The string after author: -% -FUNCTION {bst.author.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% year - -% The string before year only for aritcle type entry. -% -FUNCTION {bst.year.pre} -{ " (" } % (default) - -% The string after year only for aritcle type entry. -% -FUNCTION {bst.year.post} -{ ") " } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.pre} -{ " (" } % (default) - -% The string after year for non-article type entry (book, incollection etc) -% -FUNCTION {bst.year.na.post} -{ ") " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% title (except for title in book) - -% The string before title: -% -FUNCTION {bst.title.pre} -{ "``" } % (default) - -% The string after title: -% -FUNCTION {bst.title.post} -{ ",''" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tile for book: - -% The string before book title: -% -FUNCTION {bst.book.pre} -{ " \textit{" } % (default) - -% The string after book title: -% -FUNCTION {bst.book.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booktitle - -% The string before booktitle: -% -FUNCTION {bst.btitle.pre} -{ " \textit{" } % (default) - -% The string after booktitle: -% -FUNCTION {bst.btitle.post} -{ "}" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% journal name - -% The string before journal name: -% -FUNCTION {bst.journal.pre} -{ " \textit{" } % (default) - -% The string after journal name: -% -FUNCTION {bst.journal.post} -{ "}" } % (default) - -% Use the abbreviated journal name -% -% If set to #0, do not use abbreviated journal name. -% If set to non-#0, use abbreviated journal name. -% -FUNCTION {bst.journal.name.abb} -{ #0 } % (default) -% { #1 } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% editor notation: - -% The string that indicates multiple editors: -% -FUNCTION {bst.editors} -{ " eds. " } % (default) - -% The string that indicates single editor: -% -FUNCTION {bst.editor} -{ " ed. " } % (default) - -% Order of editor and booktitle in incollection and inproceedings entries. -% -% If set to #0: editors -> booktitle order -% If set to non-zero: booktitle -> editors order -% -FUNCTION {bst.editor.btitle.order} -{ #0 } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% edition - -% The string before edition: -% -FUNCTION {bst.edition.pre} -{ ", " } % (default) - -% The string after edition: -% -FUNCTION {bst.edition.post} -{ " edition" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% volume - -% The string before volume: -% -FUNCTION {bst.volume.pre} -{ ", Vol. " } - -% The string after volume: -% -FUNCTION {bst.volume.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% number - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Hide number. If non-zero, number is suppressed. -FUNCTION {bst.hide.number} -{ #0 } % #0 -> show number field (default) -% { #1 } % non-#0 -> Hide number field. - -% The string before number: -% -FUNCTION {bst.number.pre} -{ ", No. " } - -% The string after number: -% -FUNCTION {bst.number.post} -{ "" } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% in - -% In -% -FUNCTION {bst.in} -{ " in " } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% page - -% The string before page (multiple pages): -% -FUNCTION {bst.pages.pre} -{ ", pp." } - -% The string before page: -% -FUNCTION {bst.page.pre} -{ ", p." } - -% The string after page (multiple pages): -% -FUNCTION {bst.pages.post} -{ "" } % (default) - -% The string after page: -% -FUNCTION {bst.page.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% chapter - -% The string before chapter: -% -FUNCTION {bst.chapter.pre} -{ ", Chap." } % (default) - -% The string after chapter: -% -FUNCTION {bst.chapter.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% month - -% The string before month: -% -FUNCTION {bst.month.pre} -{ ", " } % (default) - -% The string after month: -% -FUNCTION {bst.month.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% address -% The string before address: -% -FUNCTION {bst.address.pre} -{ ", " } % (default) - -% The string after address: -% -FUNCTION {bst.address.post} -{ "" } % (default) - -% 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. - -FUNCTION {bst.address.position} -{ #0 } % Address is placed before publisher (default) -% { #1 } % Address is placed after publisher - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% publisher - -% The string before publisher: -% -FUNCTION {bst.publisher.pre} -{ ": " } % (default) - -% The string after publisher: -% -FUNCTION {bst.publisher.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% series - -% The string before series: -% -FUNCTION {bst.series.pre} -{ ", " } % (default) - -% The string after series: -% -FUNCTION {bst.series.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% organization - -% The string before organization: -% -FUNCTION {bst.organization.pre} -{ ", " } % (default) - -% The string after organization: -% -FUNCTION {bst.organization.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% school - -% The string before school: -% -FUNCTION {bst.school.pre} -{ ", " } % (default) - -% The string after school: -% -FUNCTION {bst.school.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% institution - -% The string before institution: -% -FUNCTION {bst.institution.pre} -{ ", " } % (default) - -% The string after institution: -% -FUNCTION {bst.institution.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% howpublished - -% The string before howpublished: -% -FUNCTION {bst.howpublished.pre} -{ " " } % (default) - -% The string after howpublished: -% -FUNCTION {bst.howpublished.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% url - -% Show or Hide url. If non-zero, url is displayed. Otherwise, url is suppressed. -FUNCTION {bst.show.url} -{ #1 } % non-#0 -> Show url field (default) -% { #0 } % #0 -> Not show url field. - -% The string before url: -% -FUNCTION {bst.url.pre} -{ ", URL: \url{" } - -% The string after url: -% -FUNCTION {bst.url.post} -{ "}" } % (default) - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Access - -% This setting is valid only if there are "access" field in bib -% files. The value of access field indicates accessed date for URL. - -% The string before access. -FUNCTION {bst.access.pre} -{ ", accessed on " } % (default) - -% The string after access. -FUNCTION {bst.access.post} -{ "" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% DOI (digital object identifier) - -% This setting is valid only if there are "doi" field in bib files. - -% Show or Hide DOI. If non-zero, DOI is displayed. Otherwise, DOI is suppressed. -FUNCTION {bst.show.doi} -{ #1 } % non-#0 -> Show DOI field (default) -% { #0 } % #0 -> Not show DOI field. - -% The string before DOI: -% -FUNCTION {bst.doi.pre} -{ ", DOI: \href{http://dx.doi.org/" doi * "}{\urlstyle{rm} \nolinkurl{" * } - -% The string after DOI: -% -FUNCTION {bst.doi.post} -{ "}}" } % (default) - -% How to show URL and DOI fields when both fields exist. -% -% #0 -> Both fields are displayed -% #1 -> Only URL field is displayed -% #2 -> Only DOI field is displayed -% -FUNCTION {bst.url.doi} -% { #0 } % -> Both fields are displayed -% { #1 } % -> Only URL field is displayed -{ #2 } % (default) --> Only DOI field is displayed - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Other functions: - -% The string before note. -FUNCTION {bst.note.pre} -{ ", " } % (default) - -% The string after note. -FUNCTION {bst.note.post} -{ "" } % (default) - -% The string that represents Technical report: -% -FUNCTION {bst.techrep} -{ "Technical Report" } % (default) - -% The string that represents master thesis: -% -FUNCTION {bst.mthesis} -{ " Master's thesis" } % (default) - -% The string that represents phd thesis: -% -FUNCTION {bst.phdthesis} -{ " Ph.D. dissertation" } % (default) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% Functions for customization end here: -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {bst.first} -{ "1st" } - -FUNCTION {bst.second} -{ "2nd" } - -FUNCTION {bst.third} -{ "3rd" } - -FUNCTION {bst.fourth} -{ "4th" } - -FUNCTION {bst.fifth} -{ "5th" } - -FUNCTION {bst.st} -{ "st" } - -FUNCTION {bst.nd} -{ "nd" } - -FUNCTION {bst.rd} -{ "rd" } - -FUNCTION {bst.th} -{ "th" } - -%%%%% memo by Takeda - -% "a" 'b := indicates substituting string "a" for variable b. - -% Integer number #0, #1,... - -%%% Function definition: -% -% FUNCTION {name} -% { 's := -% -% } -% -% This is the definition of a function named "name". The function "name" is -% used in the following way -% -% "foo" name -% "foo" is an argument for the function "name". -% -% About the definition of a function with more than two arguments, see the -% definition of "chop.word". - -%%% Declaration of variables: - -%% String global variables: -STRINGS { s t tt } -STRINGS { year.num } -STRINGS { preone preten } -STRINGS { last.sort.label next.extra prev.author prev.author.aer this.author } -STRINGS { hang } -STRINGS { item.type } -STRINGS { tempa tempb } - -%% Integer global variables: -INTEGERS { nameptr namesleft numnames name.num } -INTEGERS { multiresult } -INTEGERS { index } -INTEGERS { len } -INTEGERS { last.extra.num } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -INTEGERS { last.period.comma } -INTEGERS { len1.aer len2.aer i.aer } - -%%% Definition of functions: -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%% Initialize variables: -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -%%% Remove comma and add period: -% -%%% -FUNCTION {add.period.x} -{ duplicate$ - #-1 #1 substring$ "," = - { #-2 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ". " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ", " = - { #-3 global.max$ substring$ "." * } - { duplicate$ - #-1 #2 substring$ ",'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".'" = - { #-3 global.max$ substring$ ".'" * } - { duplicate$ - #-1 #2 substring$ ".~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #2 substring$ ",~" = - { #-3 global.max$ substring$ ".~" * } - { duplicate$ - #-1 #3 substring$ ",''" = - { #-4 global.max$ substring$ ".''" * } - { duplicate$ - #-1 #3 substring$ ".''" = - { #-4 global.max$ substring$ ".''" * } - { add.period$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {output.nonnull} -{ 's := - % mid.sentence - output.state mid.sentence = - { ", " * write$ } - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period.x " " * write$ } - if$ - } - if$ - % not mid.sentence, set to mid.sentence - mid.sentence 'output.state := - } - if$ - s -} - -%%% If the last character is period or comma, set non-zero to -%%% last.period.comma. -FUNCTION {period.comma.p} -{ duplicate$ 't := - t #-1 #1 substring$ "." = - t #-1 #1 substring$ "," = or - t #-1 #1 substring$ ":" = or - t #-1 #2 substring$ ".'" = or - t #-1 #2 substring$ ",'" = or - t #-1 #3 substring$ ".''" = or - t #-1 #3 substring$ ",''" = or - t #-1 #2 substring$ ".~" = or - t #-1 #2 substring$ ",~" = or - { #1 'last.period.comma := } - { #0 'last.period.comma := } - if$ -} - -%%% remove unnecessary comma. -FUNCTION {remove.pre.comma} -{ 's := - s empty$ - { "" } - { s #1 #1 substring$ "," = - { s #2 global.max$ substring$ } - { s #1 #1 substring$ "." = - { s #2 global.max$ substring$ } - 's - if$ - } - if$ - } - if$ -} - -%%% output.nonnull.nocomma is the same as output.nonnull except that it does -%%% not add commas even in mid.sentence. -FUNCTION {output.nonnull.nocomma} -{ 's := - output.state mid.sentence = - % mid.sentence - { period.comma.p "" * write$ } - - % not mid.sentence - { output.state after.block = - % after.block - { add.period.x " " * write$ } - % before.all - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - last.period.comma #0 = - { s } - { s remove.pre.comma } - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output} -% { duplicate$ empty$ -% 'pop$ -% 'output.nonnull -% if$ -% } - -FUNCTION {output.nocomma} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.nocomma - if$ -} - -% Not used in the current econ.bst. -% FUNCTION {output.check} -% { 't := -% duplicate$ empty$ -% { pop$ "empty " t * " in " * cite$ * warning$ } -% 'output.nonnull -% if$ -% } - -FUNCTION {output.check.nocomma} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.nocomma - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%% Format in bbl file: - -% \harvarditem[Brezis et~al.]{Brezis, Krugman and -% Tsiddon}{1993}{brezis93:_leapf_inter_compet} -% Brezis, Elise~S., Paul~R. Krugman, and Daniel Tsiddon (1993) ``Leapfrogging in -% International Competition: A Theory of Cycles in National Technological -% Leadership.'', {\em American Economic Review.}, Vol.~83. No.~5. pp. -% 1211--1219. - -% \harvarditem[abbreviated citation]{full citation}{year}{keyword} ... - -%%% Add period and newline. -FUNCTION {fin.entry} -{ add.period.x - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {new.block.check} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -%%% booktitle -FUNCTION {format.btitle} -{ booktitle empty$ - { "" } - { bst.btitle.pre booktitle * bst.btitle.post * } - if$ -} - -FUNCTION {journal.name.sub} -{ 't := - t #1 #4 substring$ "The " = - % Use #30 to handle with the long journal name. - { t #5 #30 substring$ 't := } - 'skip$ - if$ - t -} - -FUNCTION {format.journal.name.abb} -{ journal 's := - journal 'jname := - s journal.name.sub 's := - bst.journal.name.abb #0 = - 'skip$ - { - s "Academic Management Review" = - { "Acad. Manage. J." 'jname := } - 'skip$ - if$ - } - if$ - jname -} - -%%% journal -FUNCTION {format.journal} -{ journal empty$ - { "" } - { bst.journal.pre format.journal.name.abb * bst.journal.post * } - if$ -} - -%%% title for book -FUNCTION {format.book} -{ title empty$ - { "" } - { bst.book.pre title * bst.book.post * } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { type$ "online" = bst.show.url or - { bst.url.pre url * bst.url.post * - access empty$ - { "" * } - { bst.access.pre * access * bst.access.post * } - if$ - } - { "" } - if$ - } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ bst.show.doi not or - { "" } - { bst.doi.pre doi * bst.doi.post * } - if$ -} - -FUNCTION {format.url.doi} -{ url empty$ - { format.doi } - { doi empty$ - { format.url } - { bst.url.doi #0 = - { format.url output.nocomma - format.doi } - { bst.url.doi #1 = - { format.url } - { format.doi } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% and others -FUNCTION {bst.and.others.output} -{ nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.others.nameorder } - { bst.and.others } - if$ -} - -%%% author and editor - -%%% name -FUNCTION {format.names} -{ 's := - % insert 1 to nameptr. - #1 'nameptr := - % Set the number of authors to numnames. - s num.names$ 'numnames := - numnames 'namesleft := - % Repeat if namesleft > 0 - { namesleft #0 > } - - { nameptr #1 = - % First author - { bst.author.name #0 = - bst.author.name #1 = - or - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - if$ - } - % The second or later authors - { bst.author.name #0 = - bst.author.name #2 = - or - { bst.first.name.initial #0 = - { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - } - { bst.first.name.initial #0 = - { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ 't := } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ 't := } - if$ - } - if$ - } - if$ - - nameptr #1 > - % The second or later authors - { numnames bst.max.author.num > - { bst.and.others * - #1 'namesleft := } - { nameorder.temp "random" = - bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { namesleft #1 > - % More than one authors left - { ", " * t * } - % Only one author left - { t "others" = - { bst.and.others.output * } - { numnames #2 = - % Entry with two authors - { bst.and * t * } - { bst.ands * t * } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -% remove successive periods (commas) from author -FUNCTION {remove.ss.period.auth} -{ 's := - s format.names 'tempa := - bst.author.post 'tempb := - tempb #1 #1 substring$ "}" = - { tempa tempb * } - { tempa #-1 #1 substring$ tempb #1 #1 substring$ = - { tempa tempb #2 global.max$ substring$ * } - { tempa tempb * } - if$ - } - if$ -} - -% <prev name list> <new name list> compare.names <modified name list> -FUNCTION {compare.names.aer} -{ 's := - 'tempa := - -% "current.author = " s * "\\" * write$ newline$ -% "prev.author = " tempa * "\\" * write$ newline$ - - tempa num.names$ 'len1.aer := % len1 = the number of previous authors - s num.names$ 'len2.aer := % len2 = the number of current authors - -% len1.aer := min(len1.aer,len2.aer) -% len1 -> min{ the number of previous authors, the number of current authors } - len1.aer len2.aer > - { len2.aer 'len1.aer := } - { } - if$ - -% start with an empty string, then while the components are the same -% add "\bysame" - "" - #1 'i.aer := - - { i.aer len1.aer > not } - { tempa i.aer "{ff }{vv }{ll}{ jj}" format.name$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ - = - { #1 i.aer < - { " and " * } % \bysame で省略する著者の前につく and - { } - if$ - "\bysame{}" * - i.aer #1 + 'i.aer := } - { #-1 'len1.aer := } - if$ - } - while$ - -% add the rest of the second string - { i.aer len2.aer > not } - { #1 i.aer < - { " and " * } - { } - if$ - s i.aer "{ff }{vv }{ll}{ jj}" format.name$ * - i.aer #1 + 'i.aer := - } - while$ -} - -%%% author -FUNCTION {format.authors} -{ author empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer author compare.names.aer 's := - author 'prev.author.aer := } - { author 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors} -{ editor empty$ - { "" } - { bst.use.bysame #2 = - { prev.author.aer editor compare.names.aer 's := - editor 'prev.author.aer := } - { editor 's := } - if$ - extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre s remove.ss.period.auth * } - if$ - s num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -FUNCTION {format.authors.alt} -{ author empty$ - { "" } - { extra.label.bysame "bysame" = - {"\bysame "} - { bst.author.pre author remove.ss.period.auth * } - if$ - } - if$ -} - -%%% editor -FUNCTION {format.editors.alt} -{ editor empty$ - { "" } - { extra.label.bysame "bysame" = - { "\bysame " } - { bst.author.pre editor remove.ss.period.auth * } - if$ - editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - if$ -} - -%%% format.in.ed.booktitle -FUNCTION {format.editors.x} -{ editor empty$ - { "" } - { bst.editor.btitle.order #0 = - { "" } - { editor num.names$ #1 > - { bst.editors " by " * } - { bst.editor " by " * } - if$ - } - if$ - editor format.names * - bst.editor.btitle.order #0 = - { editor num.names$ #1 > - { bst.editors * } - { bst.editor * } - if$ - } - { "" * } - if$ - } - if$ -} - -%%% Remove commas in the cases like "?." and "?,". -FUNCTION {remove.irrelevant.period.comma} -{ 's := - s empty$ - { "" } - { s #-1 #3 substring$ "?,'" = - s #-1 #3 substring$ "?.'" = or - { s #-3 global.max$ substring$ "'" * } - { s #-1 #4 substring$ "?,''" = - s #-1 #4 substring$ "?.''" = or - { s #-4 global.max$ substring$ "''" * } - { s #-1 #2 substring$ "?," = - s #-1 #2 substring$ "?." = or - { s #-2 global.max$ substring$ "" * } - { s #-1 #3 substring$ "?,~" = - s #-1 #3 substring$ "?.~" = or - { s #-4 global.max$ substring$ "?~" * } - 's - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% title -FUNCTION {format.title.sub} -{ bst.title.lower.case #0 = - { bst.title.pre title * bst.title.post * } - { bst.title.pre title "t" change.case$ * bst.title.post * } - if$ -} - -%%% title -FUNCTION {format.title} -{ title empty$ - bst.hide.title #0 = not or - { "" } - { format.title.sub remove.irrelevant.period.comma } - if$ -} - -%%% title for misc. -FUNCTION {format.misc.title} -{ title empty$ - { "" } - { bst.title.pre title * bst.title.post * } - if$ -} - -% Convert "-" to "--" (for pages field) -FUNCTION {n.dashify} -{ 't := - "" - %% while$ - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -%%% year -FUNCTION {format.year} -{ year empty$ - { "there's no year in " cite$ * warning$ - ", " } - { type$ "article" = - { bst.year.pre year * extra.label * bst.year.post * } - { bst.year.na.pre year * extra.label * bst.year.na.post * } - if$ - } - if$ -} - -%%% page for book -FUNCTION {format.book.pages} -{ pages empty$ - { "" } - { bst.pages.pre pages * bst.pages.post * } - if$ -} - -%%% Attach tie for the string with two or less characters. -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -%%% volume for book -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bst.volume.pre volume * bst.volume.post * - series empty$ - 'skip$ - %% If there is series field - { " of " * series * bst.series.post * } - if$ -% "volume and number" number either.or.check - } - if$ -} - -%%% series -FUNCTION {output.series} -{ series empty$ - { "" } - { bst.series.pre series * bst.series.post * } - if$ -} - -%%% number and series -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - bst.hide.month #0 = not or - % number is empty - { series empty$ - { "" } - % series is not empty. - { output.series } - if$ - } - % number is not empty$ - { series empty$ - { bst.number.pre number * bst.number.post * } - % series is not empty. - { bst.in bst.series.pre * series * bst.series.post * - bst.number.pre * number * bst.number.post * } - if$ - } - if$ - } - { "" } - if$ -} - -%%% Number or not. -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% edition - -% Convert edition to 1st, 2nd, 3rd, 4th etc -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bst.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bst.st * } - { duplicate$ "2" = - { pop$ bst.nd * } - { "3" = - { bst.rd * } - { bst.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -% Convert first, second etc in edition field to 1st, 2nd (from jfm.bst) -FUNCTION {convert.edition} -{ edition extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bst.first } - { s "second" = s "2" = or - { bst.second } - { s "third" = s "3" = or - { bst.third } - { s "fourth" = s "4" = or - { bst.fourth } - { s "fifth" = s "5" = or - { bst.fifth } - { s #1 #1 substring$ is.num - { s eng.ord } - { edition } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% edition -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { bst.edition.pre convert.edition "l" change.case$ * bst.edition.post * } - { bst.edition.pre convert.edition "t" change.case$ * bst.edition.post * } - if$ - } - if$ -} - -%%% month -FUNCTION {format.month} -{ month empty$ - bst.hide.month #0 = not or - { "" } - { bst.month.pre month * bst.month.post * } - if$ -} - -%%% year and month -FUNCTION {format.date} -{ format.month format.year * -} - -%%% Is multiple pages like 1-100? -FUNCTION { multi.page.check } -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -%%% pages -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bst.pages.pre pages n.dashify tie.or.space.connect * bst.pages.post } - { bst.page.pre pages tie.or.space.connect * bst.page.post } - if$ - } - if$ -} - -%%% number -FUNCTION {format.number} -{ number empty$ - bst.hide.number #0 = not or - { "" } - { bst.number.pre number * bst.number.post * } - if$ -} - -%%% volume -FUNCTION {format.volume} -{ volume empty$ - 'skip$ - { bst.volume.pre volume * bst.volume.post * - bst.year.position #3 = - { format.year * } - 'skip$ - if$ - } - if$ -} - -%%% number, page -FUNCTION {format.number.pages} -{ number empty$ - { format.pages } - { format.number format.pages * } - if$ -} - -%%% volume, page -FUNCTION {format.volume.pages} -{ volume empty$ - { format.pages } - { format.volume format.pages * } - if$ -} - -%%% volume, number, page -FUNCTION {format.volume.number.pages} -{ volume empty$ - { number empty$ - { format.pages } - { format.number format.pages * } - if$ - } - { number empty$ - { format.volume format.pages * } - { format.volume format.number * format.pages * } - if$ - } - if$ -} - -% volume, number, page -FUNCTION {format.vol.num.pages} -{ volume empty$ - %% volume is empty. - { number empty$ - %% number is empty. - { pages empty$ - % warning - { "there is no volume, number, and pages in " cite$ * warning$ "" } - { "" format.pages * } - if$ - } - %% number is not empty. - % warning - { "there's a number but no volume in " cite$ * warning$ - format.number.pages } - if$ - } - %% volume is not empty. - { number empty$ - %% number is empty. - { format.volume.pages } - %% number is not empty. - { format.volume.number.pages } - if$ - } - if$ -} - -%%% chapter -FUNCTION {format.chapter} -{ chapter empty$ - { "" } - { type empty$ - { bst.chapter.pre chapter tie.or.space.connect * bst.chapter.post } - { ", " * type " " * chapter * } - if$ - } - if$ -} - -%%% chapter, pages -FUNCTION {format.chapter.pages} -{ chapter empty$ - { pages empty$ - { "" } - { "" format.pages * } - if$ - } - { pages empty$ - { "" format.chapter * } - { "" format.chapter * format.pages * } - if$ - } - if$ -} - -%%% editor and booktitle -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { bst.in format.btitle * } - { bst.editor.btitle.order #0 = - { bst.in format.editors.x * " " * format.btitle * } - { bst.in format.btitle * " " * format.editors.x * } - if$ - } - if$ - } - if$ -} - -%%% howpublished -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { bst.howpublished.pre howpublished * bst.howpublished.post * } - if$ -} - -%%% address -FUNCTION {format.address} -{ address empty$ - { "" } - { bst.address.pre address * bst.address.post * } - if$ -} - -%%% publisher -FUNCTION {format.publisher} -{ publisher empty$ - { "" } - { bst.publisher.pre publisher * bst.publisher.post * } - if$ -} - -%%% organization -FUNCTION {format.organization} -{ organization empty$ - { "" } - { bst.organization.pre organization * bst.organization.post * } - if$ -} - -%% publisher and address -FUNCTION {output.publisher.address} -{ address empty$ - { format.publisher "publisher" output.check.nocomma } - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ -} - -%% address, organization, publisher -FUNCTION {output.address.organization.publisher} -{ address empty$ - %% address is empty - { organization empty$ - %% organization is empty - { publisher empty$ - 'skip$ - { format.publisher "publisher" output.check.nocomma } - if$ - } - %% organization is not empty - { publisher empty$ - { format.organization "organization" output.check.nocomma } - { format.organization "organization" output.check.nocomma - format.publisher "publisher" output.check.nocomma } - if$ - } - if$ - } - %% address is not empty - { organization empty$ - %% organization is empty - { publisher empty$ - %% publisher is empty - { format.address output.nocomma } - %% publisher is not empty - { bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - %% organization is not empty - { publisher empty$ - %% publisher is empty - { format.organization "organization" output.check.nocomma - format.address output.nocomma } - %% publisher is not empty - { format.organization "organization" output.check.nocomma - bst.address.position #0 = - { format.address output.nocomma - format.publisher "publisher" output.check.nocomma } - { format.publisher "publisher" output.check.nocomma - format.address output.nocomma } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% misc -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ " " type * } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bst.techrep } - { " " type * } - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -%%% phdthesis -FUNCTION {format.phd} -{ bst.phdthesis } - -%%% mastersthesis -FUNCTION {format.mthesis} -{ bst.mthesis } - -%%% school -FUNCTION {format.school} -{ school empty$ - { "" } - { bst.school.pre school * bst.school.post * } - if$ -} - -%%% institution -FUNCTION {format.institution} -{ institution empty$ - { "" } - { bst.institution.pre institution * bst.institution.post * } - if$ -} - -%%% remove first ? characters. -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { bst.note.pre note * bst.note.post * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \havarditem - -FUNCTION {output.bibitem} -{ newline$ - "\harvarditem[" write$ - alabel write$ % alabel <- abbreviated citation - "]{" write$ - flabel write$ % flabel <- full citation - "}{" write$ - cyear write$ - % cyear = year - "}{" write$ - cite$ write$ % cite$ -> pusch keyword - "}" write$ - % If number index is on - bst.use.number.index #0 = - 'skip$ - { index #1 + 'index := - "" 'preone := - "" 'preten := - bst.number.index.digit "1" = - 'skip$ - { bst.number.index.digit "2" = - { "\hskip0.5em" 'preone := } - { bst.number.index.digit "3" = - { "\hskip1em" 'preone := - "\hskip0.5em" 'preten := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - newline$ - before.all 'output.state := - "" - % number index - bst.use.number.index #0 = - 'skip$ - { index #10 < - % Insert spaces according to digit of number index. - { preone } - { index #100 < - { preten } - { "" } - if$ - } - if$ - bst.number.index.pre * index int.to.str$ * bst.number.index.post * write$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% article - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.journal "journal" output.check.nocomma - bst.year.position #2 = - { format.date output.nocomma } - 'skip$ - if$ - format.vol.num.pages output.nocomma - - bst.year.position #1 = - { format.date output.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% book - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - - format.bvolume output.nocomma - format.number.series output.nocomma - output.publisher.address - - format.edition output.nocomma - format.book.pages output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% booklet - -FUNCTION {booklet} -{ output.bibitem - format.authors output.nocomma - format.year output.nocomma - format.misc.title "title" output.check.nocomma - format.howpublished output.nocomma - format.address output.nocomma - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inbook - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check.nocomma } - { format.authors output.nonnull.nocomma - "author and editor" editor either.or.check - } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ -% format.book remove.pre.comma "title" output.check.nocomma - format.book "title" output.check.nocomma - format.edition output.nocomma - - format.bvolume output.nocomma - format.chapter.pages "chapter and pages" output.check.nocomma - format.number.series output.nocomma - output.publisher.address - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% incollection - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.edition output.nocomma - format.chapter.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% inproceedings - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - format.in.ed.booktitle "booktitle" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - format.pages output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% conference - -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% manual -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull.nocomma - address output.nocomma - } - if$ - } - { format.authors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - author empty$ - { organization empty$ - { format.address new.block.check - format.address output.nocomma - } - 'skip$ - if$ - } - { output.address.organization.publisher } - if$ - format.edition output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% mastersthesis - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.mthesis format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% misc - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Online - -FUNCTION {online} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.misc.title output.nocomma - format.howpublished output.nocomma - - bst.year.position #0 = not - { format.date output.nocomma } - { format.month output.nocomma } - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry - empty.misc.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% phdthesis - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.book "title" output.check.nocomma - format.phd - format.thesis.type output.nonnull.nocomma - format.school "school" output.check.nocomma - address empty$ - 'skip$ - { format.address output.nocomma } - if$ - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% proceedings - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output.nocomma } - { format.editors output.nonnull.nocomma } - if$ - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.btitle remove.pre.comma "title" output.check.nocomma - format.bvolume output.nocomma - format.number.series output.nocomma - output.address.organization.publisher - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% techreport - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - format.tr.number output.nonnull.nocomma - format.institution "institution" output.check.nocomma - format.address output.nocomma - - bst.year.position #0 = not - { format.year "year" output.check.nocomma } - 'skip$ - if$ - - format.url.doi output.nocomma - - format.note output.nocomma - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% unpublished - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check.nocomma - bst.year.position #0 = - { format.year "year" output.check.nocomma } - 'skip$ - if$ - format.title "title" output.check.nocomma - - bst.year.position #0 = not - { format.date remove.pre.comma output.nocomma } - { month empty$ - 'skip$ - { format.month remove.pre.comma output.nocomma } - if$ - } - if$ - - format.url.doi output.nocomma - - format.note "note" output.check.nocomma - fin.entry -} - -FUNCTION {default.type} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Alias for month names: - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -%%% Read entries: -READ - -%%% Variable for remembering the order of citation. -INTEGERS { order.num } -FUNCTION {initialize.order.num} -{ - #1 'order.num := -} -%%% Initialize a variables -EXECUTE {initialize.order.num} - -%%% Variable for remembering the order of citation. -FUNCTION {set.order.cited} -{ - order.num 'order.cited := - #1 order.num + 'order.num := -} -%%% Iterate for all entries: -ITERATE {set.order.cited} - -%%% check the value of nameorder field. -FUNCTION {set.nameorder} -{ nameorder empty$ - { "" 'nameorder.temp := } - { nameorder 'nameorder.temp := } - if$ -} -%%% Iterate for all entries: -ITERATE {set.nameorder} - -%%% Remove symbols and convert to lowercase. -FUNCTION {sortify} -{ purify$ "l" change.case$ } - -%%% names for sorting -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { ", " * } - 'skip$ - if$ - s nameptr "{ll}{ f}{ j}" format.name$ 't := - nameptr numnames = t "others" = and - { bst.and.others.output *} - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - { s sort.format.names } - { s #1 "{ll}{ f}{ j}" format.name$ " zz " * } - if$ -} - -%%% Label for full author name. -FUNCTION {format.lab.names.full} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.and.nameorder * t * } - { ", " * t * } - if$ - } - { t "others" = - { bst.and.others.output * } - { numnames #2 > - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.ands * t * } - if$ - } - { nameorder.temp "random" = bst.use.nameorder #0 = not and - { bst.cite.and.nameorder * t * } - { bst.cite.and * t * } - if$ - } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #1 > #1 #2 = and {", eds" *} {} if$ - numnames #1 = #1 #2 = and {", ed" *} {} if$ -} - -%%% laberl for abbreviated author name. -FUNCTION {format.lab.names.abb} -{ 's := - s num.names$ 'numnames := - numnames bst.and.others.num < - % 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 * } - if$ -} - -%%% abbreviated author -FUNCTION {author.key.label.abb} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.key.label.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {format.names.full.wo.and} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ll}{, ff}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { " " * t * } - { t "others" = - { " " * } - { numnames #2 > - { " " * t * } - { " " * t * } - if$ - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.key.full.wo.and} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - 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$ } - 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$ } - 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$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.names.full.wo.and } - if$ -} - -%%% abbreviated author -FUNCTION {author.editor.key.label.abb} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ - } - { author format.lab.names.abb } - if$ -} - -%%% full author -FUNCTION {author.editor.key.label.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.full} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.full } - if$ -} - -FUNCTION {author.key.organization.label.abb} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names.abb } - if$ -} - -FUNCTION {editor.key.organization.label.full} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.full } - if$ -} - -FUNCTION {editor.key.organization.label.abb} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names.abb } - if$ -} - -%%% Convert numbers: 0->9, 1->8, 2->7,..., 9->0 -FUNCTION {reverse.num} -{ 's := - s "1" = - { "8" 'year.num := } - { s "2" = - { "7" 'year.num := } - { s "3" = - { "6" 'year.num := } - { s "4" = - { "5" 'year.num := } - { s "5" = - { "4" 'year.num := } - { s "6" = - { "3" 'year.num := } - { s "7" = - { "2" 'year.num := } - { s "8" = - { "1" 'year.num := } - { s "9" = - { "0" 'year.num := } - { s "0" = - { "9" 'year.num := } - { "9" 'year.num := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - year.num -} - -%%% Convert year (large number -> small number) -FUNCTION {convert.year} -{ 't := - bst.reverse.year #0 = - { t 'tt := } - { t #1 #1 substring$ reverse.num - t #2 #1 substring$ reverse.num * - t #3 #1 substring$ reverse.num * - t #4 #1 substring$ reverse.num * 'tt := } - if$ - tt -} - -%%% cyear -FUNCTION {calc.cyear} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full.wo.and - { type$ "proceedings" = - 'editor.key.organization.key.full.wo.and - { type$ "manual" = - 'author.key.organization.key.full.wo.and - 'author.key.full.wo.and - if$ - } - if$ - } - if$ - duplicate$ - year empty$ - { "2199" 'cyear := } - { year 'cyear := } - if$ - year empty$ - { " " "2199" convert.year * field.or.null * } - { " " year convert.year * field.or.null * } - if$ - sortify 'sort.label := - % For debug - econ.debug #0 = not - { "sort.label = ``\texttt{" write$ - sort.label write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ - pop$ -} - -FUNCTION {calc.sort.label.abb} -{ author empty$ - { editor empty$ - { "" } - { editor 's := } - if$ - } - { author 's := } - if$ - s sort.format.names.abb 't := - year empty$ - { t sortify " " * "2199" convert.year * 'sort.label.abb := } - { t sortify " " * year convert.year * 'sort.label.abb := } - if$ - econ.debug #0 = not - { "sort.label.abb = ``\texttt{" write$ - sort.label.abb write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% flabel -FUNCTION {calc.flabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.full - { type$ "proceedings" = - 'editor.key.organization.label.full - { type$ "manual" = - 'author.key.organization.label.full - 'author.key.label.full - if$ - } - if$ - } - if$ - 'flabel := - author empty$ - 'skip$ - { author num.names$ 'numnames := - numnames bst.max.author.num > - { alabel 'flabel := } - 'skip$ - if$ - } - if$ - % For debug - econ.debug #0 = not - { "flabel = ``\texttt{" write$ - flabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% alabel -FUNCTION {calc.alabel} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label.abb - { type$ "proceedings" = - 'editor.key.organization.label.abb - { type$ "manual" = - 'author.key.organization.label.abb - 'author.key.label.abb - if$ - } - if$ - } - if$ - 'alabel := - % For debug - econ.debug #0 = not - { "alabel = ``\texttt{" write$ - alabel write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% title for sorting -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -%%% author for sorting -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -%%% editor for sorting -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -%%% 1,...,9 -> 001,...,009 -%%% 10,...,99 -> 010,...,099 -FUNCTION {add.zero.to.number} -{ 's := - s text.length$ #1 = - { "00" s * } - { s text.length$ #2 = - { "0" s * } - { s } - if$ - } - if$ -} - -%% entry type -FUNCTION {bst.sort.entry.type.order} -{ 'item.type := - item.type "article" = - { "01" } - { item.type "book" = - { "02" } - { item.type "booklet" = - { "03" } - { item.type "comment" = - { "04" } - { item.type "conference" = - { "05" } - { item.type "inbook" = - { "06" } - { item.type "incollection" = - { "07" } - { item.type "inproceedings" = - { "08" } - { item.type "manual" = - { "09" } - { item.type "masterthesis" = - { "10" } - { item.type "misc" = - { "11" } - { item.type "phdthesis" = - { "12" } - { item.type "proceedings" = - { "13" } - { item.type "techreport" = - { "14" } - { item.type "unpublished" = - { "15" } - { "16" } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%% Create sort.key$: absorder -> author -> year -> order -> month -> title. -FUNCTION {presort.one} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * - sort.label.abb * - " " * - type$ "book" = type$ "inbook" = or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - * " " * - " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -FUNCTION {presort.two} -{ - bst.no.sort #0 = not - { order.cited int.to.str$ add.zero.to.number " " * } - { "" } - if$ - bst.sort.year #0 = not - %% Use year field as the primary sorting key. - { year convert.year * } - 'skip$ - if$ - bst.sort.entry.type #0 = not - { type$ bst.sort.entry.type.order * " " * } - 'skip$ - if$ - absorder empty$ - { "/// " * } - { bst.notuse.absorder.field #0 = - { absorder "999" = - { "zzz " * } - { absorder add.zero.to.number "000" = - { "/// " * } - { absorder add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - " " * sort.label * " " - order empty$ - { "/// " * } - { bst.notuse.order.field #0 = - { order "999" = - { "zzz " * } - { order add.zero.to.number "000" = - { "/// " * } - { order add.zero.to.number * " " * } - if$ - } - if$ - } - { "/// " * } - if$ - } - if$ - month empty$ - { * "/// " * } - { month "999" = - { * month add.zero.to.number * "zzz " * } - { month add.zero.to.number "000" = - { * month add.zero.to.number * "/// " * } - { * month add.zero.to.number * " " * } - if$ - } - if$ - } - if$ - title field.or.null sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := - % For debug - econ.debug #0 = not - { "``\texttt{" write$ - sort.key$ write$ - "}''\\" write$ - newline$ - } - 'skip$ - if$ -} - -%%% Codes for debugging -FUNCTION {calc.alabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.alabel: alabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {calc.flabel.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.flabel: flabel = }\\" write$ - newline$ } - 'skip$ - if$ -} -FUNCTION {presort.one.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (1st time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {presort.two.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of presort (2nd time): \$sort.key = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.cyear.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.cyear: sort.label = }\\" write$ - newline$ } - 'skip$ - if$ -} - -FUNCTION {calc.sort.label.abb.mess} -{ econ.debug #0 = not - { "\textbf{Iteration of calc.sort.label.abb: sort.label.abb = }\\" write$ - newline$ } - 'skip$ - if$ -} - -%%% alabel -EXECUTE {calc.alabel.mess} -ITERATE {calc.alabel} - -%%% flabel -EXECUTE {calc.flabel.mess} -ITERATE {calc.flabel} - -%%% cyear and sort.label -EXECUTE {calc.cyear.mess} -ITERATE {calc.cyear} - -%%% -EXECUTE {calc.sort.label.abb.mess} -ITERATE {calc.sort.label.abb} - -%%% Sorting by $sort.key (first time) -% -% Sorting is done in two times. This is the first time. -% -EXECUTE {presort.one.mess} -ITERATE {presort.one} -SORT - -FUNCTION {forward.pass} -{ bst.use.bysame #0 = bst.use.bysame #2 = or - % Not use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - } - % Use \bysame - { last.sort.label sort.label.abb = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - sort.label.abb 'last.sort.label := - } - if$ - author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - % format.names 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label empty$ not - { cyear extra.label * } - { cyear "" * } - if$ - "" field.or.null * - 'cyear := - extra.label 'next.extra := -} - -%%% \bysame -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -%%% Sorting by sort.key$ (second time) -EXECUTE {presort.two.mess} -ITERATE {presort.two} -SORT - -FUNCTION {reset.prev.author} -{ "xxyyzz" 'prev.author := } - -EXECUTE {reset.prev.author} - -FUNCTION {forward.pass.two} -{ bst.use.bysame #1 = - { author empty$ - { editor empty$ - { "" } - 'format.editors.alt - if$ - } - 'format.authors.alt - if$ - 'this.author := - this.author prev.author = - { "bysame" 'extra.label.bysame := } - { this.author "" = - { "abcxyz" } - 'this.author - if$ - 'prev.author := - } - if$ - } - 'skip$ - if$ -} - -ITERATE {forward.pass.two} - -FUNCTION{punctuation} -{ - "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" write$ newline$ - "% This bbl file is created by " econ.file * " ver." * econ.version * write$ newline$ - "% The latest " econ.file * " is available at " * write$ newline$ - "% <https://github.com/ShiroTakeda/econ-bst>" write$ newline$ newline$ -} - -EXECUTE {punctuation} - -FUNCTION {begin.bib} -{ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - bst.use.bysame #0 = - % Not use \bysame. - 'skip$ - % Use \bysame. - { "%%% Definition of \bysame" write$ newline$ - "\ifx\undefined\bysame" write$ newline$ - "\newcommand{\bysame}{" bst.bysame.definition * "}" * - write$ newline$ - "\fi" write$ newline$ newline$ } - if$ - %% When number index is attached to the beginning of each item. - bst.use.number.index #0 = - 'skip$ - { bst.number.index.digit "1" = - % one digit. - { bst.number.index.bibhang.one } - { bst.number.index.digit "2" = - % two digits. - { bst.number.index.bibhang.ten } - % three or more digits. - { bst.number.index.bibhang.hund } - if$ - } - if$ - 'hang := - "%%% Redefinition of \bibhang" write$ newline$ - "\ifx\undefined\bibhang" write$ newline$ - "\relax" write$ newline$ - "\else" write$ newline$ - "\setlength{\bibhang}{" - hang * "}" * write$ newline$ - "\fi" write$ newline$ newline$ - } - if$ - "\begin{thebibliography}{xxx}" write$ newline$ - - %% Initialize the variable `index'. - #0 'index := -} - -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ } - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -EXECUTE {end.bib} - -% -------------------- -% Local Variables: -% fill-column: 78 -% mode: bst -% End: diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf Binary files differindex 5e219b94574..28790193eee 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/customization/econ-old.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.pdf b/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.pdf Binary files differindex 464b1d6814e..248c3669363 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.pdf +++ b/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.pdf diff --git a/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex b/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex index 1b2a3b6068b..a12cc33087d 100644 --- a/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex +++ b/Master/texmf-dist/doc/bibtex/econ-bst/econ-example.tex @@ -60,7 +60,7 @@ } \author{Shiro Takeda\thanks{email: {\ttfamily shiro.takeda@gmail.com}.}} -\date{2020/02/26} +\date{2020/03/03} %##################################################################### %######################### Document Starts ########################### |