diff options
Diffstat (limited to 'biblio/bibtex/contrib/economic')
65 files changed, 32266 insertions, 0 deletions
diff --git a/biblio/bibtex/contrib/economic/CHANGELOG b/biblio/bibtex/contrib/economic/CHANGELOG new file mode 100644 index 0000000000..0e4214d6f5 --- /dev/null +++ b/biblio/bibtex/contrib/economic/CHANGELOG @@ -0,0 +1,53 @@ +2009-11-18 +- the LaTeX classes for the journals "Agricultural Economics" (agecon.cls), + "Applied Economics" (apecon.cls), "Economica" (ecca.cls), + "European Review of Agricultural Economics" (erae.cls), + "International Tax and Public Finance" (itaxpf.cls), + "Journal of Rural Studies" (jrurstud.cls), "Regional Studies" (regstud.cls), + and "World Development" (worlddev.cls) no longer load the "csquotes" package +- the LaTeX classes for the journals "Agricultural Economics" (agecon.cls), + "American Journal of Agricultural Economics" (ajae.cls) + "Applied Economics" (apecon.cls), + "European Review of Agricultural Economics" (erae.cls), + "Journal of Rural Studies" (jrurstud.cls), and + "Regional Studies" (regstud.cls) no longer load the packages + "fontenc" and "inputenc" so that the user can decide, which encoding + (s)he uses +- the LaTeX classes for the journals + "International Tax and Public Finance" (itaxpf.cls), + "Post-Communist Economies" (pocoec.cls), and + "World Development" (worlddev.cls) no longer load the "fontenc" package +- minor improvements in the LaTeX class for the + "American Journal of Agricultural Economics" (ajae.cls) +- added LaTeX class for the NJF seminar 425 and hopefully also for other + NJF seminars +- the BibTeX style for the"European Review of Agricultural Economics" + (erae.bst) shows the DOIs now (if available) +- added example for a LaTeX document (apecon.tex) and a corresponding + BibTeX data base (apecon.bib) that use the LaTeX class and the BibTeX style + for the journal "Applied Economics" +- added LaTeX file (ier-bib-test.tex) and BibTeX data base (ier-ex.bib) + to check the BibTeX style for the International Economic Review (IER) +- some example files load the packages "inputenc" and "fontenc" now, because + these packages are no longer loaded by the corresponding class files +- the package includes the compiled PDF files of most example files now + +2009-01-08 +- added BibTeX style for the Journal of Applied Econometrics (JAE) +- slightly improved LaTeX class for Post-Communist economies (pocoec.cls) +- added slightly modified BibTeX style that can be used together + with the LaTeX package "csquotes" + +2008-12-29 +- added support for Agricultural Economics (AgEcon) +- added support for Applied Economics (ApEcon) +- added BibTeX style for the Journal of Political Economy (JPE) +- added support for the Journal of Rural Studies (JRurStud) +- added support for Post-Communist Economies (PoCoEc) +- added support for Regional Studies (RegStud) +- added support for the Tagungsband of the Austrian Association of Agricultural + Economists (Oesterreichische Gesellschaft fuer Agraroekonomie, OeGA) +- added BibTeX style for "Reference Style X" of Taylor and Francis +- added support for World Development (WorldDev) +- this bundle is developed on Sourceforge.net now: + http://sourceforge.net/projects/economtex/ diff --git a/biblio/bibtex/contrib/economic/NEWS b/biblio/bibtex/contrib/economic/NEWS new file mode 100644 index 0000000000..4b91584fc6 --- /dev/null +++ b/biblio/bibtex/contrib/economic/NEWS @@ -0,0 +1,21 @@ +2008-12-29 economtex -- Support for Economists using LaTeX and BibTeX + +The "economtex" project [1,2] aims at supporting economists who use LaTeX +and/or BibTeX. Currently, this is done in two ways: +First, the economtex project provides LaTeX classes/styles and BibTeX styles +for manuscripts to be submitted to economics journals. +Second, the economtex project provides a Wiki [3] for economists to share +information on using LaTeX in their profession. + +The "economtex" project has released a largely enhanced version of its +package of LaTeX classes and BibTeX styles today [4]. This is the first release +on Sourceforge.net. Earlier versions of this package were already available as +"economic bundle" on CTAN [5]. The development of this package has been moved +to Sourceforge.net a few month ago and many new LaTeX classes and BibTeX styles +have been added. The updated package will be available also on CTAN soon. + +[1] http://economtex.sourceforge.net/ +[2] http://sourceforge.net/projects/economtex/ +[3] http://economtex.wiki.sourceforge.net/ +[4] http://sourceforge.net/project/platformdownload.php?group_id=240001 +[5] http://www.ctan.org/tex-archive/biblio/bibtex/contrib/economic/ diff --git a/biblio/bibtex/contrib/economic/README b/biblio/bibtex/contrib/economic/README new file mode 100644 index 0000000000..cd8d1e9bac --- /dev/null +++ b/biblio/bibtex/contrib/economic/README @@ -0,0 +1,210 @@ +LaTeX and BibTeX Support for Submissions to Economics Journals + + +CONTENTS + +As of today, following classes and styles are available: + +1) American Economic Review (AER) +aer.bst: BibTeX style. It requires the style files aer.sty (in this bundle) + and harvard.sty (CTAN:macros/latex/contrib/harvard/) +aertt.bst: This reproduces the incredibly crazy way the + AER asks for ``final'' manuscripts to look. It requires the + style files aertt.sty (in this bundle), + harvard.sty (CTAN:macros/latex/contrib/harvard/), and + ulem.sty (CTAN:macros/latex/contrib/misc/) +aer.sty: LaTeX style for the AER +aertt.sty: LaTeX style for ``final'' manuscripts submitted to the AER +author: Peter Williams <peterw (at) archsci.arch.su.oz.au> +aer-cje-ex.tex: example LaTeX file +aer-cje-ex.bib: bibliography of the example file +authors of aer-cje-ex.*: Randall M. Wigle <rwigle (at) wlu.ca>, + Nelson H. F. Beebe <beebe (at) alfred.math.utah.edu>, and + Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +aer-natbib-ex.tex: LaTeX file for testing aer.bst with the natbib package +author of aer-natbib-ex.tex: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> + +2) Agricultural Economics (AgEcon) +agecon.cls: LaTeX class +agecon.bst: BibTeX style +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + +3) American Journal of Agricultural Economics (AJAE) +ajae.bst: BibTeX style +ajae.cls: LaTeX class +ajae-ex.tex: example LaTeX file +ajae-ex.bib: bibliography of the example file +authors: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> + and Karsten Heymann +license: LPPL + +4) Applied Economics (ApEcon) +apecon.cls: LaTeX class +apecon.bst: BibTeX style +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + +5) Canadian Journal of Economics (CJE) +cje.bst: BibTeX style. It requires the style files cje.sty (in this bundle) + and harvard.sty (CTAN:macros/latex/contrib/harvard/) +cje.sty: LaTeX style for the CJE +author: Peter Williams <peterw (at) archsci.arch.su.oz.au> +aer-cje-ex.tex: example LaTeX file +aer-cje-ex.bib: bibliography of the example file +authors of aer-cje-e.*: Randall M. Wigle <rwigle (at) wlu.ca>, + Nelson H. F. Beebe <beebe (at) alfred.math.utah.edu>, and + Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> + +6) Econometrica (ECTA) +ecta.bst: BibTeX style. It requires the LaTeX style ``natbib'' (or ``chicago'') +author: Sebastian Perez-Duarte <perez (at) ensae.fr> + OR +econometrica.bst: BibTeX style. It requires the style file + harvard.sty (CTAN:macros/latex/contrib/harvard/) +author: KC Border <kcb (at) hss.caltech.edu> + OR +econometrica-fr.bst: BibTeX style. It requires the style file + harvard.sty (CTAN:macros/latex/contrib/harvard/) +author: Guillaume Horny <horny (at) cournot.u-strasbg.fr> + +7) Economica (ECCA) +ecca.bst: BibTeX style +ecca.cls: LaTeX class +ecca-ex.tex: example LaTeX file +ecca-ex.bib: bibliography of the example file +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + +8) European Review of Agricultural Economics (ERAE) +erae.bst: BibTeX style +erae.cls: LaTeX class +erae-ex.tex: example LaTeX file +erae-ex.bib: bibliography of the example file +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + +9) International Economic Review (IER) +ier.bst: BibTeX style +author: Doug McKee <dmckee (at) ucla.edu> +license: LPPL + +10) International Tax and Public Finance (ITAXPF) +itaxpf.cls: LaTeX class +itaxpf.bst: BibTeX style +itaxpf-ex.tex: example LaTeX file +itaxpf-ex.bib: bibliography of the example file +itaxpf-ex-title.tex: example LaTeX file for a title page +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + +11) Journal of Applied Econometrics (JAE) +jae.bst: BibTeX Style +author: unknown +license: LPPL + +12) Journal of Political Economy (JPE) +jpe.bst: BibTeX style +author: Adam Seth Litwin <aslitwin (at) jhu (dot) edu> +license: LPPL + +13) Journal of Rural Studies (JRurStud) +jrurstud.cls: LaTeX class + (BibTeX style: "elsart-harv.bst", available at + http://www.elsevier.com/wps/find/authorsview.authors/elsart) +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + +14) Journal of Statistical Software (JSS) +jss2.bst: slightly modified BibTeX style that can be used together + with the LaTeX package "csquotes" + +15) Oesterreichische Gesellschaft fuer Agraroekonomie (OeGA) + (Austrian Association of Agricultural Economists) +oegatb.cls: LaTeX class for short papers for publication in the "Tagungsband" +oega.bst: BibTeX style +oegatb-ex.tex: example file +oegatb-ex.bib: bibliography of the example file +oegatb-ex.png: figure included in the example file +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + +16) Post-Communist Economies (PoCoEc or PCE) +pocoec.cls: LaTeX class + (BibTeX style: tandfx.bst, in this package) +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + +17) Regional Studies (RegStud) +regstud.cls: LaTeX class +regstud.bst: BibTeX style +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + +18) Taylor and Francis Reference Style X +tandfx.bst: BibTeX style for "Reference Style X" of Taylor and Francis + +19) World Development (WorldDev) +worlddev.cls: LaTeX class +worlddev.bst: BibTeX style +author: Arne Henningsen <arne (dot) henningsen (at) gmail (dot) com> +license: LPPL + + + +USAGE + +The usage of most classes and styles is explained inside these files. +Example files are provided for a few classes and styles: +aer-cje-ex.tex, aer-natbib-ex.tex, ajae-ex.tex, erae-ex.tex, ecca-ex.tex, +itaxpf-ex.tex, itaxpf-ex-title.tex, oegatb-ex.tex. + +Most classes load the natbib package +(see CTAN:macros/latex/contrib/natbib/) + +Other styles generally permit four forms of citation, which are illustrated +below: + Citation Form Result +\cite{wealth} (Smith 1776) +\citename{wealth} Smith +\citeyear{wealth} (1776) +\citeasnoun{wealth} Smith (1776) + +Further information might be available at + http://economtex.wiki.sourceforge.net/ + + + +BUG REPORTS + +Please report any bugs and problems at + http://sourceforge.net/projects/economtex/ + + + +MAINTAINER + +Arne Henningsen +Department of Agricultural Economics +University of Kiel +Olshausenstr. 40 +D-24098 Kiel (Germany) +Tel: +49-431-880 4445 +Fax: +49-431-880 1397 +http://www.arne-henningsen.name/ + + + +ACKNOWLEDGEMENT + +I would like to thank Randall M. Wigle for maintaining these files +from 1993 to 2006 and all authors for preparing and publishing these files. + + + +AVAILABILITY + +These files are currently available from + CTAN:biblio/bibtex/contrib/economic/ +and + http://sourceforge.net/projects/economtex/ diff --git a/biblio/bibtex/contrib/economic/aer-cje-ex.bib b/biblio/bibtex/contrib/economic/aer-cje-ex.bib new file mode 100644 index 0000000000..cec7e6d2cc --- /dev/null +++ b/biblio/bibtex/contrib/economic/aer-cje-ex.bib @@ -0,0 +1,353 @@ + + +% Journals + +@STRING{AER="{A}merican {E}conomic {R}eview " } +@STRING{CO2="{CO}2"} +@STRING{JPE="Journal of Political Economy"} +@STRING{CJE="Canadian Journal of Economics"} +@STRING{QJE="Quarterly Journal of Economics"} + +% Authors +@STRING{jwrw="John Whalley and Randall M. Wigle"} +@STRING{self= "Randall M. Wigle"} +@STRING{me=self} + + +% Institutions + +@STRING{IIE="{I}nstitute for {I}nternational {E}conomics"} +@STRING{UN="{U}nited {N}ations"} +@STRING{FAO="{F}ood {a}nd {A}griculture {O}rganization {o}f {t}he {U}nited +{N}ations"} +@STRING{IBRD="{I}nternational {B}ank {f}or {R}econstruction {a}nd +{D}evelopment"} +@STRING{USDA="{U}nited {S}tates {D}epartment {o}f {A}griculture"} +@STRING{OECD="{O}rganization {f}or {E}conomic {C}ooperation {a}nd +{D}evelopment"} +@STRING{GATT="{G}eneral {A}greement on {T}ariffs and {T}rade"} +@STRING{StatCan="{Statistics Canada}"} +% INTERNATIONAL TRADE BIBLIOGRAPHY + +@BOOK{ES, + author="Harold C. Eastman and Stefan Stykolt", + title="The Tariff and Competition in Canada", + place="Toronto", publisher="McMillan",year= 1967} +@INCOLLECTION{markusenc1, + author="James R. Markusen", + title="Canadian Gains From Trade in the + Presence of Scale Economies and Imperfect Competition.", + editor="John Whalley and Roderick Hill", year=1985, + pages="113--156",booktitle="Canada-{U}nited {S}tates Free Trade", + address="Toronto",publisher="University of Toronto Press", + number=11, series="Research Volumes for the {M}c{D}onald + Commission"} +@ARTICLE{melvintrans, + author="James R. Melvin",title="The regional economic + consequences of tariffs and domestic transportation costs.", + journal="Canadian Journal of Economics", volume="XVIII", + number="2", month="May",year=1985,pages="237--257"} +@ARTICLE{porter, + author="Robert H. Porter", title="Tariff policies in a small + open spatial economy", journal="Canadian Journal of Economics", + volume="XVII",number=2,month="May",year=1984, pages="270--282"} +@BOOK{trela-whalley, + author="Irene Trela and John Whalley", + title="Regional Aspects of Confederation", place="Toronto", + publisher="University of Toronto Press", + year=1986, volume=68, series="Mc{D}onald Commission Research + Volumes"} +@BOOK{hill-whalley, + author="John Whalley and Roderick Hill", + title="Canada-United States Free Trade", + place="Toronto",publisher="University of Toronto Press", + year=1985, volume=11, series="Mc{D}onald Commission Research + Volumes"} +@BOOK{ww, + author="Ronald J. Wonnacott and Paul Wonnacott", + title="Free Trade Between the United States and Canada: The + Potential Economic Effects",place="Cambridge Mass.", + publisher="The Harvard University Press", year=1967} +@ARTICLE{waters, + title="Transport Costs and the Static Welfare Costs of + Tariffs", author="Waters {II}, W. G.", journal="American + Economic Review", Volume=64, Number=4, pages="730--732", + year=1974} +@BOOK{cameron, + title="The Free Trade Papers", editor="Duncan Cameron", + place="Toronto", publisher="Lorimer Press", year=1986} +@BOOK{m-m84, + title="The Theory of International Trade and Its Canadian + Applications", author="James R. Markusen and James R. Melvin", + year=1984,publisher="Butterworths",place="Toronto"} +@MISC{focus, + title="{GATT} {F}ocus", author="{GATT}", note="Various issues" } +@ARTICLE{jpe89, + author="James R. Markusen and Randall M. Wigle", journal="Journal + of Political Economy", year=1989, title="Nash Equilibrium + Tariffs for the {U}nited {S}tates and {C}anada: The roles of country + size, scale economies, and capital mobility", + volume=97,number=2} +@BOOK{quest, + title="The {U}nited {S}tates and {C}anada: The quest for free + trade.",author="Paul Wonnacott", publisher="Institute for + International Economics",year=1987,month="March", + series="Policy Analyses in International Economics", + number=16,place="Washington {D.C.}"} +@BOOK{CAFT, + editor="A. R. Riggs and Tom Velk", + title="Canadian--{A}merican Free Trade: Historical, Political + and Economic Dimensions", publisher="The Institute for + Research on Public Policy", year=1987,place="Halifax {N.S.}"} + +@ARTICLE{north-south, + title="Explaining the Volume of {N}orth-{S}outh Trade", + author="James R. Markusen and Randall M. Wigle", + journal="The Economic Journal", volume=100, + month="December", pages="1206--1215",year=1990} + +@INCOLLECTION{oecd-ibrd, + title="Terms of Trade Effects, Trade Liberalization and + Developing Countries",author=jwrw,year=1990, + booktitle="Agricultural Trade Liberalization: + Implications for Developing Countries",editor="K. Odin", + publisher="Organization for Economic Cooperation and Development", + place="Paris"} + +@INCOLLECTION{ag-wars, + author="Glenn W. Harrison and Lisa Rutstrom and Randall M. Wigle", + year=1989,title="The Costs of an Agricultural Trade + War",booktitle="Macroeconomic Consequences of Farm-Support Policies", + editor="Stoeckel, Andrew B. and David Vincent and Sandy Cuthbertson", + place="Durham, N.C.", publisher="Duke University Press", + pages="330--367"} + +@INCOLLECTION{qualifications, + author=me,title="The Received Wisdom of {C}anada-{U.S}. Free Trade: + Qualifications",editor="Riggs, Alvin R. and Tom Velk", + booktitle="Canadian-American Free Trade: Historical, + Political and Economic Dimensions",publisher="Institute for + Research on Public Policy",place="Halifax, N.S.",year=1987, + pages="105--114"} + +@INCOLLECTION{columbia-discussion, + author=me,year=1986,title="Summary of the Panel and Floor + Discussion",editor="T. N. Srinivasan and John Whalley", + booktitle="General Equilibrium Trade Policy Modelling", + publisher="M.I.T. Press",pages="323--354"} + +@ARTICLE{rock-hard, + author=me,year=1988, title="Between a Rock and a Hard Place: The + Economics of {C}anada-{U.S}. Free Trade",journal="Canadian Public + Policy",volume="XIV",number=1,month="March",pages="104--108"} + +@BOOK{hathaway, + author="Dale Hathaway", title="Agriculture in the {GATT}: + Rewriting the Rules", publisher=IIE, place="Washington, D.C.", + year=1985} + +@ARTICLE{trela-whalley-MFA, + author="Irene Trela and John Whalley", title="Global Effects of + Devloped Country Trade Restrictions on Textiles and Apparel", + journal="Economic Journal", volume="100", number="403", + year=1990, month="December", pages="1190--1205"} + +@PHDTHESIS{rwt, + author="Robert Waschik", title="International Trade with + Variable Factor Supply", year=1990, school="University of + {W}estern {O}ntario", place="London {O}ntario, {C}anada"} + +@BOOK{completing-ur, + title="Completing the {U}ruguay Round: A Results-Oriented + Approach to the GATT Negotiations", editor="Jeffrey J. Schott", + publisher="Institute for International Economics", year=1990, + place="Washington, D.C."} + +@UNPUBLISHED{rmd, + title="Transportation Costs in Regional Models of International + Trade: An Application to {C}anada-{U.S}. Trade", author=me, + year=1990, type="Wilfrid Laurier University Working Paper + \#90242", month="December"} + +@BOOK{FTA, + title="The Canada-U.S. Free Trade Agreement [{C}opy 10-12-87]", + author="{External Affairs Canada}", + year=1987,publisher="International Trade Communications Group", + place="Ottawa"} + +@BOOK{GATT, + author="{General Agreement on Tariffs and Trade}", + title="{GATT:} What it is, What it does", + place="Geneva", publisher="{ General Agreement on + Tariffs and Trade}", year=1990 } + +@BOOK{IIE-ur, + author="Gary C. Hufbauer and Jeffrey Schott", + title="Trading for growth: The Next Round of Trade Negotiations", + series="Analyses in International Economics", number=11, + place="Washington", publisher="Institute for International + Economics",year=1985} + +@ARTICLE{markusen-venables, + author="Anthony J. Venables and James R. Markusen", + title="Trade Policy with Increasing Returns and Imperfect + Competition: Contradictory Results from Competing Assumptions", + journal="Journal of International Economics", + year=1988,volume=24, pages="299--316"} + +@ARTICLE{harris-84, + author="Richard G. Harris", title="Applied General Equilibrium + Analysis of Small Open Economies with Scale Economies and + Imperfect Competition", journal=AER, volume=74, + pages="1016--1032",year=1984} +% CGE References for Data Paper + +@BOOK{DS86, + author="Deardorff, Alan V. and Robert M. Stern", + title="The {M}ichigan Model of World Production and Trade: Theory + and Applications", + Address="Cambridge, Mass.", year=1986, + publisher="{M}{I}{T} Press"} + +@TECHREPORT{DS89, + author="Deardorff, Alan V. and Robert M. Stern", + title="A Computational Analysis of Alternative Scenarios for + Multilateral Trade Liberalization", + institution="Economic Council of {C}anada", + year=1989, type="Working Paper", number=363, month="August"} + +@BOOK{GAMS, + author="Brooke, Anthony and David Kendrick and Alexander + Meeraus", + title="{GAMS} A User's Guide", + publisher="The Scientific Press", address="Redwood City, CA", + year=1988} + +@ARTICLE{JMCB, + author="Dewald, William G. and Jerry G. Thursby and Richard G. + Anderson", + title="Replication in Empirical Economics: The {J}ournal of + {M}oney, {C}redit and {B}anking {P}roject", + journal="American Economic Review", year=1986, volume=76, + number=4, pages="587-603", month="Sept."} + +@TECHREPORT{ECDATA, + author=" Glenn Harrison and Thomas F. Rutherford and Ian Wooton", + title="An Empirical Database for A General Equilibrium Model of + the European Communities", year=1989, institution="University of + {W}estern {O}ntario", type="Working Paper", number="8901C" } + +@BOOK{PRCIO, + author="{East-West Institute}", + title="An Input-Output Table for China, 1980", + publisher="Pergammon Press", year=1986, address="Honolulu"} + +@TECHREPORT{UNtrade, + author="James K. Binkley and Thomas W. Hertel and Marinos Tsigas", + title="The {UN} Trade Data: Can it be Saved?", + type="Working Paper", + institution="Purdue University", month="August", year=1990} + +@BOOK{UNva, + author=UN , + title="Industrial Statistics Yearbook, 1986", + publisher=UN , year=1987} + +@BOOK{FAOfish, + author=FAO, + title="yearbook of fishery statistics, 1986", + volume=63, year=1988, publisher=UN} + +@ARTICLE{comparisons, + author="Robert Summers and Alan Heston", + title="A new set of international comparisons of real product and + price level estimates for 130 countries 1950--1985", + journal="Review of Income and Wealth", year=1988, + pages="1--25",volume=34,number=1,month="March"} + +@BOOK{FAOwood, + author=FAO, title="Forest Products 1976--1987", + number=22, year=1989, place="Rome", publisher=UN} + +@BOOK{world-tables, + title="The World Tables, 1987",publisher=IBRD, + author=IBRD,place="Washington",year=1988} + +@BOOK{WDR-89, + title="World Development Report", author=IBRD, + year=1989, publisher="Oxford University Press", place="London"} + +@BOOK{USDA-pse, + title="Estimates of Producer and Consumer Subsidy Equivalents: + Government Intervention in Agriculture, 1982--1986", author=USDA, + year=1988, publisher=USDA, month="April", place="Washington D.C."} + +@BOOK{OECD-pse, + title="National policies and agricultural trade",author=OECD, + year=1987, publisher=OECD, place="Paris"} + +@BOOK{io-EC80, + title="National Accounts ESA: Input-Output Tables, 1980", + author="{e}urostat",year=1986,publisher="Offices {d}es publications + officielles des {C}ommunaut\'es europ\'eenes", + note="Cat.: CA-46-86-743-2A-C",place="Luxembourg"} + +@BOOK{io-CAN82, + title="System of National Accounts: The input-output structure + of the {C}anadian economy 1981--1984", author="{S}tatistics + {C}anada", place="Ottawa",year=1988,publisher="Supply and + Services {C}anada",number="Cat.: 15-201"} + +@BOOK{io-LDC, + title="Input-Output Tables for Developing Countries",volume="I", + author=UN,publisher=UN,year=1975, + note="Pages 57--82",place="New York"} + +@BOOK{io-JPN80, + author="{Statistics Bureau, Prime Minister's Office}", + title="Japan Statistical Yearbook, 1987", + publisher="Japan Statistical Association",year=1987, + note=" Pages 566--570, Table 16-13",place="Tokyo"} + +@article{io-USA82, + journal="Survey of Current Business", volume=68, number=4, + title="Annual Input-Output Accounts of the U.S. Economy, 1982", + author="{Bureau of Economic Analysis of the U.S. Department of + Commerce}", month="April",year=1988, note="Table 1, pages + 32--39", place="Washington"} + +@BOOK{tablas, + title="Tablas de insumo-producto an Am\'erica + Latina",author="{Economic Commission for Latin + America}",publisher=UN, year=1983,place="New York"} + +@MISC{io-OZ82, + author="unknown",title="Industry by Industry Flow Matrix + 1982--1983",howpublished="Photocopy",note="Table for Australia + --- Table~11 pages~62--64"} + +@BOOK{WDR-90, + title="World Development Report", author=IBRD, + year=1990, publisher="Oxford University Press", place="London"} + +@MISC{BCR, + title="Bank of {C}anada Review", author="{Bank of Canada}", + address="Ottawa",year="Various issues", + note="Monthly publication"} + +@BOOK{CAN-86, + title="Input Output Tables for Canada ???", author=StatCan, + year="1991 ?", publisher="Supply and Services Canada",note="See + Tables ??? and ???"} + +@ARTICLE{PWT5, + title="The {PENN} World Table (Mark~5): An EXPANDED SET OF + INTERNATIONAL COMPARISONS, 1950--1988", author="Robert Summers + and Alan Heston", journal=QJE, + year=1991,month="May",pages="327--368",number=2, volume="?"} + +@TECHREPORT{ussr72, + title="Input-Output Structure of the {S}oviet Economy: 1972", + author="Dimitri Gallik and Barry L. Kostinsky and Vladimir Treml", + institution="{U.S.} Department of Commerce: Bureau of the + Census", year=1983, type="Foreign Economic Report", number=18} diff --git a/biblio/bibtex/contrib/economic/aer-cje-ex.tex b/biblio/bibtex/contrib/economic/aer-cje-ex.tex new file mode 100644 index 0000000000..99e5a7551f --- /dev/null +++ b/biblio/bibtex/contrib/economic/aer-cje-ex.tex @@ -0,0 +1,45 @@ +\documentclass{article} +% -*-latex-*- +% Document name: /usr/local/lib/tex/bibtex/xampl.ltx +% Creator: Nelson H. F. Beebe [beebe@alfred.math.utah.edu] +% Creation Date: Mon Jun 8 08:42:49 1992 +% Modified by Arne Henningsen [arne (dot) henningsen (at) gmail (dot) com] +% on 2007/01/23 (LaTeX 2.09 -> LaTeX2e) + +%\def\mode{aertt} +%\def\mode{aer} +\def\mode{cje} + +\usepackage{hyperref} +\usepackage{harvard} +\usepackage{\mode} + +\author{A. U. Thor} + +\date{} + +\title{Bibliography Style: {\tt {\mode}}} + +\pagestyle{myheadings} + +\markboth{Bibliography Style: {\tt {\mode}}}{Bibliography Style: {\tt {\mode}}} + +\begin{document} + + \bibliographystyle{\mode} + + \maketitle + +The old \verb|\cite| gives \cite{ww} and \cite{ww,waters} + +\verb|\citeasnoun| gives \citeasnoun{ww} + +\verb|\citeyear| gives \citeyear{ww} and \citeyear{ww,waters} + +\verb|\citename| gives \citename{ww} + + \nocite{*} + + \bibliography{aer-cje-ex} + +\end{document} diff --git a/biblio/bibtex/contrib/economic/aer-natbib-ex.tex b/biblio/bibtex/contrib/economic/aer-natbib-ex.tex new file mode 100644 index 0000000000..ab4cdef1d5 --- /dev/null +++ b/biblio/bibtex/contrib/economic/aer-natbib-ex.tex @@ -0,0 +1,45 @@ +\documentclass{scrartcl} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage{lmodern} + +\usepackage{natbib} + +\usepackage{hyperref} +\hypersetup{% + colorlinks = {true}, + urlcolor = {blue}, + linkcolor = {black}, + citecolor = {black}, + pdfauthor = {Arne Henningsen}, + pdftitle = {Testing BibTeX style for the + American Economic Review (AER)}, + pdfkeywords = {AER, BibTeX, LaTeX} +} + +\title{Testing Bib\TeX{} style for the + ``American Economic Review'' (AER)} +\author{Arne Henningsen} + +\begin{document} + +\maketitle + +\section{Citations} +\subsection{Citations in Text} +\citet{Black29} says A, \citet{Wold89} say B, \citet{Wold} say C, +\citet{Wold4} say D, \citet{Wold5} say E., \citet{Brown65} says F, +and the \citet{USDA65} says G. + +\subsection{Citations in Parenthesis} +A equals B \citep{Black29}, B equals C \citep{Wold89}, C equals D \citep{Wold}, +D equals E \citep{Wold4}, E equals F \citep{Wold5}, F equals G \citep{Brown65}, +and G equals A \citep{USDA65}. +Hence, A, B, C, D, E, F, and G are all equal +\citep{Black29, Wold89, Wold, Wold4, Wold5, Brown65, USDA65}. + +\nocite{*} +\bibliographystyle{aer} +\bibliography{ajae-ex} + +\end{document} diff --git a/biblio/bibtex/contrib/economic/aer.bst b/biblio/bibtex/contrib/economic/aer.bst new file mode 100644 index 0000000000..c267db6d54 --- /dev/null +++ b/biblio/bibtex/contrib/economic/aer.bst @@ -0,0 +1,1221 @@ +% BibTeX bibliography style `aer' (American Economic Review) +% this file is based on the `harvard' family of files + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1991, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst, agsm.bst, + % dcu.bst, cje.bst, aer.bst, or kluwer.bst. + % This restriction helps ensure that all standard styles are identical. + +% ACKNOWLEDGEMENT: +% This document is a modified version of alpha.bst to which it owes much of +% its functionality. + +% AUTHOR +% Peter Williams, Key Centre for Design Quality, Sydney University +% e-mail: peterw@archsci.arch.su.oz.au + +ENTRY + { address author booktitle chapter edition editor howpublished institution + journal key month note number organization pages publisher school + series title type volume year} + { field.used } + { label.touse extra.label sort.label list.year } + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ {} + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + {} + if$ +} + +INTEGERS {quoted italic bold plain attribute + space comma tiedcomma semicolon colon period block empty separator + prev.separator next.separator next.attribute} + +STRINGS { s temp f name.list first.name.format later.name.formats name.style} + +FUNCTION {init.state.consts} +{ + #100 'quoted := + #200 'italic := + #300 'bold := + #400 'plain := + + #7 'space := + #6 'comma := +% #5 'tiedcomma := +% #4 'semicolon := + #3 'colon := + #2 'period := + #1 'block := + #0 'empty := +} + +FUNCTION {output2} +{ +% Wrap the attribute. + attribute bold = {"{\bf " swap$ * "}" *} {} if$ + attribute italic = {"{\it " swap$ * "}" *} {} if$ + attribute quoted = {"``" swap$ * "''" *} {} if$ +% Append additional separators + separator comma = {"," * space 'separator :=} {} if$ +% separator tiedcomma = {",~" * empty 'separator :=} {} if$ + separator space = {" " *} {} if$ + write$ + separator block = {newline$ "\newblock " write$} {} if$ +% Update variables, and put the new string back on the stack + next.attribute 'attribute := + next.separator 'separator := + temp +} + +% <string> <separator> <string> <attribute> <final separator> output <string> +FUNCTION {output.nonnull} +{ 'next.separator := + 'next.attribute := + 'temp := + 'prev.separator := +% If the new separator is stronger than the previous one, use it. + prev.separator separator < {prev.separator 'separator :=} {} if$ +% Append most separators to the string. + separator block = {add.period$} {} if$ + separator period = {add.period$ space 'separator :=} {} if$ +% separator semicolon = {";" * space 'separator :=} {} if$ + separator colon = {":" * space 'separator :=} {} if$ + separator comma = attribute quoted = and + {"," * space 'separator :=} {} if$ + output2 +} + +FUNCTION {output} +{ 'next.separator := + 'next.attribute := + duplicate$ empty$ + {pop$ pop$} + {next.attribute next.separator output.nonnull} + if$ +} + +FUNCTION {output.check} +{ 's := + 'next.separator := + 'next.attribute := + duplicate$ empty$ + {pop$ pop$ "empty " s * " in " * cite$ * warning$ } + {next.attribute next.separator output.nonnull} + if$ +} + +FUNCTION {item.check} +{ 'temp := + empty$ + { "empty " temp * " in " * cite$ * warning$ } + {} + if$ +} + +FUNCTION {plain.space} { plain space } + +FUNCTION {plain.space.output} { plain.space output } + +FUNCTION {plain.comma} { plain comma } + +FUNCTION {fin.entry} +{ + block note plain.space.output + period "" plain empty output.nonnull pop$ + newline$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + {} + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { add.period$ "`" swap$ * "'" * } + if$ +} + + +% <prev name list> <new name list> compare.names <modified name list> +INTEGERS {len1 len2 i} +FUNCTION {compare.names} +{ 's := + 'temp := + temp num.names$ 'len1 := + s num.names$ 'len2 := +% len1 := min(len1,len2) + len1 len2 > {len2 'len1 :=} {} if$ +% start with an empty string, then while the components are the same +% add "\bysame" + "" + #1 'i := + {i len1 > not} + { temp i "{ff }{vv }{ll}{ jj}" format.name$ +% duplicate$ i int.to.str$ * warning$ + s i "{ff }{vv }{ll}{ jj}" format.name$ +% duplicate$ i int.to.str$ * warning$ + = + { #1 i < {" and " *} {} if$ + "\bysame{}" * i #1 + 'i :=} + {#-1 'len1 :=} + if$ + } + while$ +% add the rest of the second string + {i len2 > not} + { #1 i < {" and " *} {} if$ + s i "{ff }{vv }{ll}{ jj}" format.name$ * + i #1 + 'i := + } + while$ +% duplicate$ warning$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'name.list := + 'name.style := + 'later.name.formats := + 's := % binary separator + 'first.name.format := + #1 'nameptr := + name.list num.names$ 'numnames := +% If we're to make this entry bold or something, prepend to the string of names + name.style "" = {} {"{" name.style *} if$ + numnames 'namesleft := + { namesleft #0 > } + { name.list nameptr nameptr #1 = {first.name.format} {later.name.formats} if$ + format.name$ 'temp := + nameptr #1 > + { namesleft #1 > + { ", " * temp * } + { temp "others" = + { " et~al." * } + {nameptr #2 = % handle ", and" vs " and " + {s * temp *} + {", and " * temp * } + if$ + } + if$ + } + if$ + } + 'temp + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +% If we're to make this entry bold or something, append to the string of names + name.style "" = {} {"}" * *} if$ +} + +FUNCTION {format.authors} +{ 'temp := + "{vv~}{ll}{, jj}{, ff}" " and " "{ff~}{vv~}{ll}{, jj}" "" temp + format.names +} + +FUNCTION {format.editors} +{ 'temp := + "{vv~}{ll}{, jj}{, ff}" " and " "{ff~}{vv~}{ll}{, jj}" "" + temp format.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ +} + +FUNCTION {format.editors.notkey} +{ editor empty$ + { "" } + { "{ff~}{vv~}{ll}{, jj}" " and " "{ff~}{vv~}{ll}{, jj}" "" + editor format.names + editor num.names$ #1 > {", eds."} {", ed."} if$ + * + } + if$ +} + +FUNCTION {format.title} +{ space title quoted comma } + +FUNCTION {n.dashify} +{ 'temp := + "" + { temp empty$ not } + { temp #1 #1 substring$ "-" = + { temp #1 #2 substring$ "--" = not + { "--" * + temp #2 global.max$ substring$ 'temp := + } + { { temp #1 #1 substring$ "-" = } + { "-" * + temp #2 global.max$ substring$ 'temp := + } + while$ + } + if$ + } + { temp #1 #1 substring$ * + temp #2 global.max$ substring$ 'temp := + } + if$ + } + while$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +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$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + {} + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.bvolume.output} + {comma format.bvolume plain.space.output} + +FUNCTION {mid.sentence.q} +{ + separator empty = separator block = separator period = or or not +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + {series field.or.null} + { mid.sentence.q + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { add.period$ " In " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition.output} +{ edition empty$ + { } + { comma edition + mid.sentence.q { "l" } { "t" } if$ + change.case$ " ed." * + plain.space.output + } + if$ +} + +FUNCTION {format.publisher.address} +{ + address empty$ + {comma publisher plain.comma output} + {publisher empty$ + {} + {comma address plain colon output + colon publisher plain.comma output} + if$} + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 'temp := + #0 'multiresult := + { multiresult not + temp empty$ not + and + } + { temp #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { temp #2 global.max$ substring$ 'temp := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {output.month.year} + { + space month plain.space.output + space year plain.comma "year" output.check + } + +FUNCTION {output.vol.num.pages} +{ space volume italic space output + number empty$ + {} + { space "(" number * ")" * plain.comma output.nonnull + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + {} + if$ + } + if$ +% "*** a" warning$ + comma 'next.separator := % hack + pages empty$ + {} + { number empty$ volume empty$ and + { comma format.pages plain.space.output } + { comma pages n.dashify plain.space.output } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + {} + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {output.in.ed.booktitle} +{ booktitle "booktitle" item.check + comma "in" plain.space output.nonnull + editor empty$ + { space booktitle quoted space output.nonnull} + { space format.editors.notkey plain.space output.nonnull + comma booktitle italic comma output.nonnull + } + if$ +} + +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$ } + {} + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + {} + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\it " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { add.period$ "In \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\it " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {output.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + } + { period "In {\it " booktitle * "\/}" * " \cite{" * crossref * "}" * plain.space output.nonnull} + if$ + } + { period "In \citeasnoun{" crossref * "}" * plain.space output.nonnull} + if$ + } + { period "In \citeasnoun{" crossref * "}" * plain.space output.nonnull} + if$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {format.lab.names.abbr} +{ 'name.list := + name.list num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { name.list #1 "{vv~}{ll}" format.name$ " et al." * } + { name.list #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { name.list #1 "{vv~}{ll}" format.name$ " et al." * } + { name.list #1 "{vv~}{ll}" format.name$ " and " * + name.list #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + field.used editor.field = {", eds" *} {} if$ + } + { + name.list #1 "{vv~}{ll}" format.name$ + field.used editor.field = {", ed" *} {} if$ + } + if$ +} + +FUNCTION {format.lab.names.full} +{ 'name.list := + #1 'nameptr := + name.list num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { name.list nameptr "{vv~}{ll}" format.name$ 'temp := + nameptr #1 > + { namesleft #1 > + { ", " * temp * } + { temp "others" = + { " et~al." * } + { " and " * temp * } + if$ + } + if$ + } + 'temp + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #1 > field.used editor.field = and {", eds" *} {} if$ + numnames #1 = field.used editor.field = and {", ed" *} {} if$ +} + +STRINGS { prev.author } + +FUNCTION {make.list.label} +{author.field field.used = + { prev.author author compare.names format.authors + author 'prev.author :=} + { editor.field field.used = + { prev.author editor compare.names format.editors + editor 'prev.author := } + { organization.field field.used = + { "The " #4 organization chop.word + duplicate$ prev.author = {pop$ "\bysame{}"} + {duplicate$ 'prev.author :=} if$} + { "foo" 'prev.author := + title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} +{ author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + make.full.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + empty 'separator := + plain 'attribute := +% } +% +% FUNCTION {list.label.output} +% { + space make.list.label bold comma output.nonnull + } + +FUNCTION {author.item.check} {author "author" item.check} + +FUNCTION {format.title.if.not.sortkey.check} +{title.field field.used = + {} + { format.title "title" output.check } + if$} + +FUNCTION {article} +{ output.bibitem + author.item.check + format.title.if.not.sortkey.check + crossref missing$ + { space journal italic comma "journal" output.check + output.month.year + output.vol.num.pages + } + { space format.article.crossref plain.space output.nonnull + comma format.pages plain.space.output + } + if$ + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + {} + if$ + } + if$ + title.field field.used = + {} + { space title italic space "title" output.check } + if$ + crossref missing$ + { + space format.number.series plain.space.output + format.edition.output + format.bvolume.output + format.publisher.address + output.month.year + } + { space format.book.crossref plain.space output.nonnull + format.edition.output + } + if$ + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.title.if.not.sortkey.check + space howpublished plain.space.output + space address plain.space.output + output.month.year + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + {} + if$ + } + if$ + title.field field.used = + {} + { space title italic space "title" output.check } + if$ + crossref missing$ + { space format.number.series plain.space.output + format.edition.output + comma format.bvolume plain.comma output + format.publisher.address + output.month.year + } + { space format.book.crossref plain.space output.nonnull + format.edition.output + } + if$ + format.chapter.pages "chapter and pages" output.check + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.title.if.not.sortkey.check + author.item.check + crossref missing$ + { output.in.ed.booktitle + format.edition.output + format.bvolume.output + space format.number.series plain.space.output + format.publisher.address + output.month.year + } + { output.incoll.inproc.crossref } + if$ + space format.chapter.pages plain.space.output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.title.if.not.sortkey.check + author.item.check + crossref missing$ + { output.in.ed.booktitle + format.bvolume.output + space format.number.series plain.space.output + address empty$ + { space organization plain.space.output + space publisher plain.space.output + } + { space organization plain.space.output + space publisher plain.space.output + space address plain.space output.nonnull + } + if$ + output.month.year + } + { output.incoll.inproc.crossref} + if$ + space format.pages plain.space.output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + title.field field.used = + {} + {author empty$ {comma}{space} if$ title italic space "title" output.check } + if$ + organization.field field.used = organization empty$ or + {} {space organization plain.space output.nonnull} if$ + format.edition.output + format.publisher.address + output.month.year + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + author.item.check + format.title.if.not.sortkey.check + space "Master's thesis" format.thesis.type plain.space output.nonnull + comma school plain.space "school" output.check + comma address plain.space.output + output.month.year + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.title.if.not.sortkey.check + space howpublished plain.space.output + output.month.year + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + author.item.check + title.field field.used = + {} + { space title quoted period "title" output.check } + if$ + space "PhD dissertation" format.thesis.type plain.space output.nonnull + comma school plain.space "school" output.check + comma address plain.space.output + output.month.year + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + title.field field.used = + {} + { space title italic space "title" output.check } + if$ + format.bvolume.output + space format.number.series plain.space.output + address empty$ + { editor empty$ + {} + { space organization plain.space.output + } + if$ + space publisher plain.space.output + } + { editor empty$ + {} + { space organization plain.space.output } + if$ + space publisher plain.space.output + space address plain.space output.nonnull + } + if$ + output.month.year + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.item.check + format.title.if.not.sortkey.check + space format.tr.number plain.space output.nonnull + institution empty$ + {} + { comma institution plain.space "institution" output.check } + if$ + comma address plain.space.output + output.month.year + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.item.check + format.title.if.not.sortkey.check + output.month.year + note "note" item.check + fin.entry +} + +FUNCTION {default.type} { misc } + +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 + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { title empty$ + { key.field 'field.used := } + { title.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {key.organization.label} + {organization empty$ + { title empty$ + { key.field 'field.used := } + { title.field 'field.used := } + if$ + } + { organization.field 'field.used := } + if$} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key.organization.label} + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key.organization.label} + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 'temp := + "A " #2 + "An " #3 + "The " #4 temp chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.editor.key.label % don't really use .editor. + if$ + } + if$ + } + if$ + make.abbr.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {first.presort} +{ "abcxyz" 'prev.author := + calc.label + sort.label + title.field field.used = + {} + { " " + * + make.list.label sortify + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { 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 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + {} + if$ + year empty$ + { "n.d." extra.label * 'list.year := } + { year extra.label * 'list.year := } + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ "abcxyz" 'prev.author := + make.list.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + {} + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + + +INTEGERS { number.label } + +FUNCTION {initialize.longest.label} +{ + #1 'number.label := + "abcxyz" 'prev.author := +} + +FUNCTION {longest.label.pass} +{ + "" 'extra.label := + author empty$ { editor empty$ {"foo"} {editor} if$} + {author} + if$ + 'f := +% remember this entry to compare to the next one + author empty$ { editor empty$ {"abcxyz"} {editor} if$} {author} if$ + 'prev.author := +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + {} + { preamble$ write$ newline$ } + if$ + "\ifx\undefined\bysame" write$ newline$ + "\newcommand{\bysame}{\leavevmode\hbox to\leftmargin{\hrulefill\,\,}}" + write$ newline$ + "\fi" write$ newline$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +FUNCTION {init.call} + { "abcxyz" 'prev.author := } + +EXECUTE {init.call} + +ITERATE {call.type$} + +FUNCTION {end.bib} + {newline$ "\end{thebibliography}" write$ newline$ } + +EXECUTE {end.bib} + diff --git a/biblio/bibtex/contrib/economic/aer.sty b/biblio/bibtex/contrib/economic/aer.sty new file mode 100644 index 0000000000..52cefdc2ec --- /dev/null +++ b/biblio/bibtex/contrib/economic/aer.sty @@ -0,0 +1,20 @@ +\message{Document style option `aer.sty' (29 May 1993) for LaTeX 2.09.} +\textwidth=28pc +\textheight=46pc + +\def\bysame{\leavevmode\hbox to\leftmargin{\leaders\hrule height 3pt depth -2.5pt\hfill\,\,}} + +\def\thebibliography#1{\section*{\refname\@mkboth + {\uppercase{\refname}}{\uppercase{\refname}}}\list + {\@biblabel{\arabic{enumiv}}}{\labelwidth=12pt + \labelsep=0pt + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \itemsep=0pt\parsep=0pt + \usecounter{enumiv}% + \let\p@enumiv\@empty + \def\theenumiv{\arabic{enumiv}}}% + \def\newblock{\hskip .11em plus.33em minus.07em}% + \sloppy\clubpenalty4000\widowpenalty4000 + \raggedright + \sfcode`\.=1000\relax} diff --git a/biblio/bibtex/contrib/economic/aertt.bst b/biblio/bibtex/contrib/economic/aertt.bst new file mode 100644 index 0000000000..d1207adc30 --- /dev/null +++ b/biblio/bibtex/contrib/economic/aertt.bst @@ -0,0 +1,1221 @@ +% BibTeX bibliography style `aertt' +% this file is based on the `harvard' family of files + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1991, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst, agsm.bst, + % dcu.bst, cje.bst, aer.bst, or kluwer.bst. + % This restriction helps ensure that all standard styles are identical. + +% ACKNOWLEDGEMENT: +% This document is a modified version of alpha.bst to which it owes much of +% its functionality. + +% AUTHOR +% Peter Williams, Key Centre for Design Quality, Sydney University +% e-mail: peterw@archsci.arch.su.oz.au + +ENTRY + { address author booktitle chapter edition editor howpublished institution + journal key month note number organization pages publisher school + series title type volume year} + { field.used } + { label.touse extra.label sort.label list.year } + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ {} + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + {} + if$ +} + +INTEGERS {quoted italic bold plain attribute + space comma tiedcomma semicolon colon period block empty separator + prev.separator next.separator next.attribute} + +STRINGS { s temp f name.list first.name.format later.name.formats name.style} + +FUNCTION {init.state.consts} +{ + #100 'quoted := + #200 'italic := + #300 'bold := + #400 'plain := + + #7 'space := + #6 'comma := +% #5 'tiedcomma := +% #4 'semicolon := + #3 'colon := + #2 'period := + #1 'block := + #0 'empty := +} + +FUNCTION {output2} +{ +% Wrap the attribute. + attribute bold = {"{\bf " swap$ * "}" *} {} if$ + attribute italic = {"\uline{" swap$ * "}" *} {} if$ + attribute quoted = {"``" swap$ * "''" *} {} if$ +% Append additional separators + separator comma = {"," * space 'separator :=} {} if$ +% separator tiedcomma = {",~" * empty 'separator :=} {} if$ + separator space = {" " *} {} if$ + write$ + separator block = {newline$ "\newblock " write$} {} if$ +% Update variables, and put the new string back on the stack + next.attribute 'attribute := + next.separator 'separator := + temp +} + +% <string> <separator> <string> <attribute> <final separator> output <string> +FUNCTION {output.nonnull} +{ 'next.separator := + 'next.attribute := + 'temp := + 'prev.separator := +% If the new separator is stronger than the previous one, use it. + prev.separator separator < {prev.separator 'separator :=} {} if$ +% Append most separators to the string. + separator block = {add.period$} {} if$ + separator period = {add.period$ space 'separator :=} {} if$ +% separator semicolon = {";" * space 'separator :=} {} if$ + separator colon = {":" * space 'separator :=} {} if$ + separator comma = attribute quoted = and + {"," * space 'separator :=} {} if$ + output2 +} + +FUNCTION {output} +{ 'next.separator := + 'next.attribute := + duplicate$ empty$ + {pop$ pop$} + {next.attribute next.separator output.nonnull} + if$ +} + +FUNCTION {output.check} +{ 's := + 'next.separator := + 'next.attribute := + duplicate$ empty$ + {pop$ pop$ "empty " s * " in " * cite$ * warning$ } + {next.attribute next.separator output.nonnull} + if$ +} + +FUNCTION {item.check} +{ 'temp := + empty$ + { "empty " temp * " in " * cite$ * warning$ } + {} + if$ +} + +FUNCTION {plain.space} { plain space } + +FUNCTION {plain.space.output} { plain.space output } + +FUNCTION {plain.comma} { plain comma } + +FUNCTION {fin.entry} +{ + block note plain.space.output + period "" plain empty output.nonnull pop$ + newline$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + {} + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { add.period$ "`" swap$ * "'" * } + if$ +} + + +% <prev name list> <new name list> compare.names <modified name list> +INTEGERS {len1 len2 i} +FUNCTION {compare.names} +{ 's := + 'temp := + temp num.names$ 'len1 := + s num.names$ 'len2 := +% len1 := min(len1,len2) + len1 len2 > {len2 'len1 :=} {} if$ +% start with an empty string, then while the components are the same +% add "\bysame" + "" + #1 'i := + {i len1 > not} + { temp i "{ff }{vv }{ll}{ jj}" format.name$ +% duplicate$ i int.to.str$ * warning$ + s i "{ff }{vv }{ll}{ jj}" format.name$ +% duplicate$ i int.to.str$ * warning$ + = + { #1 i < {" and " *} {} if$ + "\bysame{}" * i #1 + 'i :=} + {#-1 'len1 :=} + if$ + } + while$ +% add the rest of the second string + {i len2 > not} + { #1 i < {" and " *} {} if$ + s i "{ff }{vv }{ll}{ jj}" format.name$ * + i #1 + 'i := + } + while$ +% duplicate$ warning$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'name.list := + 'name.style := + 'later.name.formats := + 's := % binary separator + 'first.name.format := + #1 'nameptr := + name.list num.names$ 'numnames := +% If we're to make this entry bold or something, prepend to the string of names + name.style "" = {} {"{" name.style *} if$ + numnames 'namesleft := + { namesleft #0 > } + { name.list nameptr nameptr #1 = {first.name.format} {later.name.formats} if$ + format.name$ 'temp := + nameptr #1 > + { namesleft #1 > + { ", " * temp * } + { temp "others" = + { " et~al." * } + {nameptr #2 = % handle ", and" vs " and " + {s * temp *} + {", and " * temp * } + if$ + } + if$ + } + if$ + } + 'temp + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +% If we're to make this entry bold or something, append to the string of names + name.style "" = {} {"}" * *} if$ +} + +FUNCTION {format.authors} +{ 'temp := + "{vv~}{ll}{, jj}{, ff}" " and " "{ff~}{vv~}{ll}{, jj}" "" temp + format.names +} + +FUNCTION {format.editors} +{ 'temp := + "{vv~}{ll}{, jj}{, ff}" " and " "{ff~}{vv~}{ll}{, jj}" "" + temp format.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ +} + +FUNCTION {format.editors.notkey} +{ editor empty$ + { "" } + { "{ff~}{vv~}{ll}{, jj}" " and " "{ff~}{vv~}{ll}{, jj}" "" + editor format.names + editor num.names$ #1 > {", eds."} {", ed."} if$ + * + } + if$ +} + +FUNCTION {format.title} +{ space title quoted comma } + +FUNCTION {n.dashify} +{ 'temp := + "" + { temp empty$ not } + { temp #1 #1 substring$ "-" = + { temp #1 #2 substring$ "--" = not + { "--" * + temp #2 global.max$ substring$ 'temp := + } + { { temp #1 #1 substring$ "-" = } + { "-" * + temp #2 global.max$ substring$ 'temp := + } + while$ + } + if$ + } + { temp #1 #1 substring$ * + temp #2 global.max$ substring$ 'temp := + } + if$ + } + while$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +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$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + {} + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.bvolume.output} + {comma format.bvolume plain.space.output} + +FUNCTION {mid.sentence.q} +{ + separator empty = separator block = separator period = or or not +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + {series field.or.null} + { mid.sentence.q + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { add.period$ " In " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition.output} +{ edition empty$ + { } + { comma edition + mid.sentence.q { "l" } { "t" } if$ + change.case$ " ed." * + plain.space.output + } + if$ +} + +FUNCTION {format.publisher.address} +{ + address empty$ + {comma publisher plain.comma output} + {publisher empty$ + {} + {comma address plain colon output + colon publisher plain.comma output} + if$} + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 'temp := + #0 'multiresult := + { multiresult not + temp empty$ not + and + } + { temp #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { temp #2 global.max$ substring$ 'temp := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {output.month.year} + { + space month plain.space.output + space year plain.comma "year" output.check + } + +FUNCTION {output.vol.num.pages} +{ space volume italic space output + number empty$ + {} + { space "(" number * ")" * plain.comma output.nonnull + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + {} + if$ + } + if$ +% "*** a" warning$ + comma 'next.separator := % hack + pages empty$ + {} + { number empty$ volume empty$ and + { comma format.pages plain.space.output } + { comma pages n.dashify plain.space.output } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + {} + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {output.in.ed.booktitle} +{ booktitle "booktitle" item.check + comma "in" plain.space output.nonnull + editor empty$ + { space booktitle quoted space output.nonnull} + { space format.editors.notkey plain.space output.nonnull + comma booktitle italic comma output.nonnull + } + if$ +} + +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$ } + {} + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + {} + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\it " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { add.period$ "In \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\it " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {output.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + } + { period "In {\it " booktitle * "\/}" * " \cite{" * crossref * "}" * plain.space output.nonnull} + if$ + } + { period "In \citeasnoun{" crossref * "}" * plain.space output.nonnull} + if$ + } + { period "In \citeasnoun{" crossref * "}" * plain.space output.nonnull} + if$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {format.lab.names.abbr} +{ 'name.list := + name.list num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { name.list #1 "{vv~}{ll}" format.name$ " et al." * } + { name.list #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { name.list #1 "{vv~}{ll}" format.name$ " et al." * } + { name.list #1 "{vv~}{ll}" format.name$ " and " * + name.list #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + field.used editor.field = {", eds" *} {} if$ + } + { + name.list #1 "{vv~}{ll}" format.name$ + field.used editor.field = {", ed" *} {} if$ + } + if$ +} + +FUNCTION {format.lab.names.full} +{ 'name.list := + #1 'nameptr := + name.list num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { name.list nameptr "{vv~}{ll}" format.name$ 'temp := + nameptr #1 > + { namesleft #1 > + { ", " * temp * } + { temp "others" = + { " et~al." * } + { " and " * temp * } + if$ + } + if$ + } + 'temp + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #1 > field.used editor.field = and {", eds" *} {} if$ + numnames #1 = field.used editor.field = and {", ed" *} {} if$ +} + +STRINGS { prev.author } + +FUNCTION {make.list.label} +{author.field field.used = + { prev.author author compare.names format.authors + author 'prev.author :=} + { editor.field field.used = + { prev.author editor compare.names format.editors + editor 'prev.author := } + { organization.field field.used = + { "The " #4 organization chop.word + duplicate$ prev.author = {pop$ "\bysame{}"} + {duplicate$ 'prev.author :=} if$} + { "foo" 'prev.author := + title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} +{ author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + make.full.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + empty 'separator := + plain 'attribute := +% } +% +% FUNCTION {list.label.output} +% { + space make.list.label plain comma output.nonnull + } + +FUNCTION {author.item.check} {author "author" item.check} + +FUNCTION {format.title.if.not.sortkey.check} +{title.field field.used = + {} + { format.title "title" output.check } + if$} + +FUNCTION {article} +{ output.bibitem + author.item.check + format.title.if.not.sortkey.check + crossref missing$ + { space journal italic comma "journal" output.check + output.month.year + output.vol.num.pages + } + { space format.article.crossref plain.space output.nonnull + comma format.pages plain.space.output + } + if$ + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + {} + if$ + } + if$ + title.field field.used = + {} + { space title italic space "title" output.check } + if$ + crossref missing$ + { + space format.number.series plain.space.output + format.edition.output + format.bvolume.output + format.publisher.address + output.month.year + } + { space format.book.crossref plain.space output.nonnull + format.edition.output + } + if$ + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.title.if.not.sortkey.check + space howpublished plain.space.output + space address plain.space.output + output.month.year + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + {} + if$ + } + if$ + title.field field.used = + {} + { space title italic space "title" output.check } + if$ + crossref missing$ + { space format.number.series plain.space.output + format.edition.output + comma format.bvolume plain.comma output + format.publisher.address + output.month.year + } + { space format.book.crossref plain.space output.nonnull + format.edition.output + } + if$ + format.chapter.pages "chapter and pages" output.check + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.title.if.not.sortkey.check + author.item.check + crossref missing$ + { output.in.ed.booktitle + format.edition.output + format.bvolume.output + space format.number.series plain.space.output + format.publisher.address + output.month.year + } + { output.incoll.inproc.crossref } + if$ + space format.chapter.pages plain.space.output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.title.if.not.sortkey.check + author.item.check + crossref missing$ + { output.in.ed.booktitle + format.bvolume.output + space format.number.series plain.space.output + address empty$ + { space organization plain.space.output + space publisher plain.space.output + } + { space organization plain.space.output + space publisher plain.space.output + space address plain.space output.nonnull + } + if$ + output.month.year + } + { output.incoll.inproc.crossref} + if$ + space format.pages plain.space.output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + title.field field.used = + {} + {author empty$ {comma}{space} if$ title italic space "title" output.check } + if$ + organization.field field.used = organization empty$ or + {} {space organization plain.space output.nonnull} if$ + format.edition.output + format.publisher.address + output.month.year + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + author.item.check + format.title.if.not.sortkey.check + space "Master's thesis" format.thesis.type plain.space output.nonnull + comma school plain.space "school" output.check + comma address plain.space.output + output.month.year + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.title.if.not.sortkey.check + space howpublished plain.space.output + output.month.year + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + author.item.check + title.field field.used = + {} + { space title quoted period "title" output.check } + if$ + space "PhD dissertation" format.thesis.type plain.space output.nonnull + comma school plain.space "school" output.check + comma address plain.space.output + output.month.year + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + title.field field.used = + {} + { space title italic space "title" output.check } + if$ + format.bvolume.output + space format.number.series plain.space.output + address empty$ + { editor empty$ + {} + { space organization plain.space.output + } + if$ + space publisher plain.space.output + } + { editor empty$ + {} + { space organization plain.space.output } + if$ + space publisher plain.space.output + space address plain.space output.nonnull + } + if$ + output.month.year + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.item.check + format.title.if.not.sortkey.check + space format.tr.number plain.space output.nonnull + institution empty$ + {} + { comma institution plain.space "institution" output.check } + if$ + comma address plain.space.output + output.month.year + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.item.check + format.title.if.not.sortkey.check + output.month.year + note "note" item.check + fin.entry +} + +FUNCTION {default.type} { misc } + +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 + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { title empty$ + { key.field 'field.used := } + { title.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {key.organization.label} + {organization empty$ + { title empty$ + { key.field 'field.used := } + { title.field 'field.used := } + if$ + } + { organization.field 'field.used := } + if$} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key.organization.label} + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key.organization.label} + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 'temp := + "A " #2 + "An " #3 + "The " #4 temp chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.editor.key.label % don't really use .editor. + if$ + } + if$ + } + if$ + make.abbr.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {first.presort} +{ "abcxyz" 'prev.author := + calc.label + sort.label + title.field field.used = + {} + { " " + * + make.list.label sortify + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { 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 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + {} + if$ + year empty$ + { "n.d." extra.label * 'list.year := } + { year extra.label * 'list.year := } + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ "abcxyz" 'prev.author := + make.list.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + {} + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + + +INTEGERS { number.label } + +FUNCTION {initialize.longest.label} +{ + #1 'number.label := + "abcxyz" 'prev.author := +} + +FUNCTION {longest.label.pass} +{ + "" 'extra.label := + author empty$ { editor empty$ {"foo"} {editor} if$} + {author} + if$ + 'f := +% remember this entry to compare to the next one + author empty$ { editor empty$ {"abcxyz"} {editor} if$} {author} if$ + 'prev.author := +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + {} + { preamble$ write$ newline$ } + if$ + "\ifx\undefined\bysame" write$ newline$ + "\newcommand{\bysame}{\leavevmode\hbox to\leftmargin{\hrulefill\,\,}}" + write$ newline$ + "\fi" write$ newline$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +FUNCTION {init.call} + { "abcxyz" 'prev.author := } + +EXECUTE {init.call} + +ITERATE {call.type$} + +FUNCTION {end.bib} + {newline$ "\end{thebibliography}" write$ newline$ } + +EXECUTE {end.bib} + diff --git a/biblio/bibtex/contrib/economic/aertt.sty b/biblio/bibtex/contrib/economic/aertt.sty new file mode 100644 index 0000000000..15630925c3 --- /dev/null +++ b/biblio/bibtex/contrib/economic/aertt.sty @@ -0,0 +1,23 @@ +\message{Document style option `aertt.sty' (29 May 1993) for LaTeX 2.09.} +\textwidth=28pc +\textheight=46pc + +\RequirePackage{ulem} + +\def\bysame{\leavevmode\uline{\hskip\leftmargin}\,\,} + +\def\thebibliography#1{\section*{\refname\@mkboth + {\uppercase{\refname}}{\uppercase{\refname}}}\list + {\@biblabel{\arabic{enumiv}}}{\labelwidth=12pt + \labelsep=0pt + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \itemsep=0pt\parsep=0pt + \usecounter{enumiv}% + \let\p@enumiv\@empty + \def\theenumiv{\arabic{enumiv}}}% + \def\newblock{\hskip .11em plus.33em minus.07em}% + \sloppy\clubpenalty4000\widowpenalty4000 + \raggedright + \sfcode`\.=1000\relax} + diff --git a/biblio/bibtex/contrib/economic/agecon.bst b/biblio/bibtex/contrib/economic/agecon.bst new file mode 100644 index 0000000000..d03010268f --- /dev/null +++ b/biblio/bibtex/contrib/economic/agecon.bst @@ -0,0 +1,1524 @@ +%%% journal "Agricultural Economics" (AgEcon) +%%% bibliography style for use with LaTeX2e +%%% version: 1.0 (04 January 2008) +%%% license: LaTeX Project Public License (see below) +%%% This file was created with makebst (see below) and modified +%%% by Arne Henningsen. +%%% Note: This is an unofficial style file that may not fully comply +%%% with the AgEcon reference guidelines in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This BibTeX style should be used with the corresponding +%%% LaTeX class "agecon" (agecon.cls). +%%% Otherwise, the following line has to be added to the LaTeX preamble: +%%% \usepackage[authoryear]{natbib} +%%% +%% +%% +%% This is file `agecon.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rev,ed-rev,jnrlst,keyxyr,dt-beg,yr-com,yrp-per,note-yr,jttl-rm,thtit-a,volp-com,num-xser,ser-vol,jnm-x,btit-rm,bt-rm,edpar,bkedcap,blk-tit,in-col,pp,ed,ord,jabr,and-com,and-com-ed,xand,nfss,') +%% ---------------------------------------- +%% *** agecon *** +%% +%% Copyright 1994-2004 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.sentence +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edition" } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +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"} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Software Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput. Aid. Des."} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphic."} + +MACRO {toms} {"ACM Trans. Math. Software"} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} + +MACRO {tcs} {"Theor. Comput. Sci."} + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, f.}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + ", " swap$ * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} +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$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { + journal + "journal" bibinfo.check + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.sentence + format.number.series output + format.publisher.address output + } + { + new.sentence + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.sentence + format.number.series output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.sentence + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + format.publisher.address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.sentence + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.sentence + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.sentence + howpublished "howpublished" bibinfo.check output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.sentence + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.sentence + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `agecon.bst'. diff --git a/biblio/bibtex/contrib/economic/agecon.cls b/biblio/bibtex/contrib/economic/agecon.cls new file mode 100644 index 0000000000..ebf525d51d --- /dev/null +++ b/biblio/bibtex/contrib/economic/agecon.cls @@ -0,0 +1,207 @@ +%%% LaTeX class for manuscripts submitted to the +%%% journal 'Agricultural Economics' (AgEcon) +%%% +%%% author: Arne Henningsen +%%% version: 1.1 (18 November 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the AgEcon Formatting Instructions in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, caption, endfloat, geometry, +%%% lmodern, natbib, setspace, titlesec, url +%%% +%%% The class provides following options: +%%% noendfloat - do not move floats to the end of the paper +%%% author - show name(s) of authors(s) +%%% date - show date +%%% letterpaper - use US letter paper format instead of A4 +%%% +%%% The AgEcon journal requires that you use double quotes +%%% you could do this with the ``csquotes'' package: +%%% \usepackage{csquotes} +%%% \MakeOuterQuote{<yourQuoteCharacter>} +%%% +%%% The corresponding BibTeX style file "agecon.bst" should be used +%%% for the bibliography: \bibliographystyle{agecon} +%%% +%%% This document class provides 3 new commands: +%%% \keywords can be use to show keywors below the abstract +%%% \jelclass can be use to show JEL classifications below the abstract +%%% \affiliation can be used to add affiliation information +%%% + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{agecon}[2009/11/18 LaTeX class for the journal 'Agricultural Economics'] + +\RequirePackage{ifthen} + +% option to NOT place floats at the end +\newcounter{UseEndfloat} +\setcounter{UseEndfloat}{1} +\DeclareOption{noendfloat}{\setcounter{UseEndfloat}{0}} + +% option to show the authors' names +\newcounter{ShowAuthor} +\setcounter{ShowAuthor}{0} +\DeclareOption{author}{\setcounter{ShowAuthor}{1}} + +% option to print the date +\newcounter{ShowDate} +\setcounter{ShowDate}{0} +\DeclareOption{date}{\setcounter{ShowDate}{1}} + +% option use US letter format (instead of A4) +\newcounter{UseLetterPaper} +\setcounter{UseLetterPaper}{0} +\DeclareOption{letterpaper}{\setcounter{UseLetterPaper}{1}} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,pointednumbers,tablecaptionabove]{scrartcl} +% pointednumbers = add final dot after ordinary section numbers +% tablecaptionabove = use \captionabove for tables + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% page format, margins +\RequirePackage{geometry} +\ifthenelse{\equal{\theUseLetterPaper}{0}}{ + \geometry{a4paper, tmargin=2.5cm, bmargin=2.8cm, lmargin=2.5cm, + rmargin=2.5cm, headheight=0cm, headsep=0cm, footskip=1.2cm } +}{ + \geometry{letterpaper, tmargin=2.5cm, bmargin=2.8cm, lmargin=2.5cm, + rmargin=2.5cm, headheight=0cm, headsep=0cm, footskip=1.2cm } +} + +% double spacing +\RequirePackage{setspace} +\doublespacing + +% font of (subsub)section headers +\setkomafont{section}{\bfseries} +\setkomafont{subsection}{\normalfont\itshape} +\setkomafont{subsubsection}{\normalfont\itshape} + +% spacing around (sub)section headers +\RequirePackage{titlesec} +\titlespacing*{\section}{0pt}{1em}{0.25em} +\titlespacing*{\subsection}{0pt}{0.85em}{0.15em} + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{5pt} + +% font: latin modern +\RequirePackage{lmodern} + +% amsmath +\RequirePackage[fleqn]{amsmath} +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\setlength{\bibsep}{0pt} + +% captions of figures and tables +\usepackage{caption} +\captionsetup{justification=raggedright,singlelinecheck=false, + labelfont=rm,textfont=rm} +\captionsetup[table]{labelsep=newline} +\captionsetup[figure]{labelsep=period} +\addto\captionsenglish{% + \renewcommand{\figurename}{Fig.}% +} + +% titlepage without author and date +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\renewcommand{\maketitle}{ + \begin{center} + \begin{spacing}{1.5} + \LARGE{\textbf{\@title}}% + \end{spacing} + \ifthenelse{\equal{\theShowAuthor}{1}}{ + \begin{large} + \textbf{\@author}\\ + \end{large} + \ifthenelse{ \isundefined\@affiliation }{}{ + \vspace*{3mm} + \begin{small} + \@affiliation\\ + \end{small} + } + \vspace*{5mm} + }{} + \ifthenelse{\equal{\theShowDate}{1}}{ + \@date\\ + \vspace*{5mm} + }{} + \end{center} +} + +% abstract, keywords, JEL classification +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} +\renewenvironment{abstract}{% +\hrule +\section*{Abstract} +}{% +\ifthenelse{ \isundefined\@jelclass }{}{ +\smallskip\\ \noindent +\textit{JEL classification:} \@jelclass +} +\ifthenelse{ \isundefined\@keywords }{}{ +\smallskip\\ \noindent +\textit{Key words:} \@keywords +} +\bigskip +\hrule +\clearpage +} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% move floats to the end of the paper +\ifthenelse{\equal{\theUseEndfloat}{1}}{ +\RequirePackage[heads,tablesfirst,nomarkers,nolists]{endfloat} +}{} + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} diff --git a/biblio/bibtex/contrib/economic/ajae-ex.bib b/biblio/bibtex/contrib/economic/ajae-ex.bib new file mode 100644 index 0000000000..fad9c86b06 --- /dev/null +++ b/biblio/bibtex/contrib/economic/ajae-ex.bib @@ -0,0 +1,386 @@ +This file was created with JabRef 2.0.1. +Encoding: ISO8859_1 + +@BOOK{Black29, + title = {Agricultural Reform in the United States}, + publisher = {McGraw Hill Book Co}, + year = {1929}, + author = {John Donald Black}, + address = {New York}, + owner = {suapm095}, +} + +@MISC{Blakley74, + author = {L. Blakley}, + title = {Domestic Food Costs}, + howpublished = {Paper presented at AAEA annual meeting, College Station TX, 4--8 + August}, + year = {1974}, + owner = {suapm095}, +} + +@MANUAL{Brown65, + title = {Increasing World Food Output: Problems and Prospects}, + author = {L. R. Brown}, + organization = {U.S. Department of Agriculture}, + address = {Washington DC}, + month = {April}, + year = {1965}, + note = {ESCS For. Agr. Econ. Rep. 25}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@MISC{Bucholz62, + author = {H. E. Bucholz and G. G. Judge and V. I. West}, + title = {A Summary of Estimated Behavior Relations for Agricultural Products + in the United States}, + howpublished = {Dept. Agr. Econ, AERR-57, University of Illionois}, + year = {1962}, + owner = {suapm095}, +} + +@ARTICLE{Calcott00, + author = {P. Calcott and M. Walls}, + title = {Can Downstream Waste Disposal Policies Encourage Upstream 'Design + for Environment'?}, + journal = {American Economic Review: Papers and Proceedings}, + year = {2000}, + volume = {90}, + pages = {233-237}, + number = {2}, + owner = {suapm095}, +} + +@ARTICLE{Ezekiel29, + author = {M. Ezekiel}, + title = {A Statistical Examination of the Problem of Handling Annual Surpluses + of Nonperishable Farm Products}, + journal = {Journal of Farm Economics}, + year = {1929}, + volume = {11}, + pages = {193-226}, + owner = {suapm095}, +} + +@TECHREPORT{Fishbourne74, + author = {N. Fishbourne and B. Geagh}, + title = {Food Policies and Social Supply}, + institution = {Dept. of Agr. Econ., University of California, Davis}, + year = {1974}, + type = {Working paper}, + owner = {suapm095}, +} + +@MANUAL{Ghana61, + title = {Economic Survey, 1961}, + author = {{Ghana, Republic of, Central Bureau of Statistics}}, + organization = {Government Printing Department}, + address = {Accra}, + year = {1962}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@BOOK{Goldberger64, + title = {Economic Theory}, + publisher = {John Wiley and Sons}, + year = {1964}, + author = {A. S. Goldberger}, + address = {New York}, + owner = {suapm095}, +} + +@BOOK{Goldberger59, + title = {Impact of Multiplier and Dynamic Properties of the Klein-Goldberger + Model}, + publisher = {Noth-Holland Publishing}, + year = {1959}, + author = {A. S. Goldberger}, + address = {Amsterdam}, + owner = {suapm095}, +} + +@BOOKLET{Heady55, + title = {Farm Size Adjustments in {Iowa} and Cost Economies in Crop Production + for Farms of Different Sizes}, + author = {E. O. Heady and D. McKee and C. B. Haver}, + howpublished = {Iowa State University Agr. Exp. Sta. Res. Bull. No. 428}, + month = {May}, + year = {1955}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@TECHREPORT{Heady55a, + author = {E. O. Heady and D. McKee and C. B. Haver}, + title = {Farm Size Adjustments}, + institution = {Iowa State University}, + year = {1955}, + type = {Dept. Agr. Econ Bull.}, + number = {428}, + month = {May}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@ARTICLE{Horan04, + author = {R. D. Horan and J. S. Shortle and D. G. Abler}, + title = {The Coordination and Design of Point-Nonpoint Trading Programs and + Agri-Environmental Policies}, + journal = {Agricultural and Resource Economics Review}, + year = {2004}, + volume = {33}, + pages = {61-78}, + owner = {suapm095}, +} + +@ARTICLE{Horan99, + author = {R. D. Horan and J. S. Shortle and D. G. Abler}, + title = {Green Payments for Nonpoint Pollution Control}, + journal = {American Journal of Agricultural Economics}, + year = {1999}, + volume = {81}, + pages = {1210-1215}, + owner = {suapm095}, +} + +@MASTERSTHESIS{Kuranchie71, + author = {P. A. Kuranchie}, + title = {Cost and Returns to Selected Crops in {Ghana}}, + school = {University of Ghana}, + year = {1971}, + owner = {suapm095}, +} + +@ARTICLE{Lambert, + author = {P. Lambert}, + title = {Parameters of Social Disintegration}, + journal = {Political Science Quarterly}, + year = {Forthcoming}, + pages = {in press}, + owner = {suapm095}, +} + +@BOOK{Masters, + title = {Land Grant Colleges Tody}, + publisher = {Macmillan Co}, + year = {Forthcoming}, + author = {H. E. Masters}, + volume = {1}, + address = {New York}, + owner = {suapm095}, +} + +@UNPUBLISHED{Moore60, + author = {P. Moore}, + title = {Academic Development}, + note = {University of Notre Dame}, + year = {1960}, + owner = {suapm095}, +} + +@ARTICLE{Porter04, + author = {M. E. Porter and M. Sakakibara}, + title = {Competition in {Japan}}, + journal = {Journal of Economic Perspectives}, + year = {2004}, + volume = {18}, + pages = {27-50}, + number = {1}, + owner = {suapm095}, +} + +@ARTICLE{Prufer64, + author = {O. Prufer}, + title = {The Hopewell Cult}, + journal = {Scientific American}, + year = {1964}, + pages = {90-102}, + month = {December}, + owner = {suapm095}, +} + +@INCOLLECTION{Sjaastad71, + author = {L. Sjaastad}, + title = {Occupational Structure and Migration Patterns}, + booktitle = {Labor Mobility and Population in Agriculture}, + publisher = {Iowa State University Press}, + year = {1971}, + editor = {E. O. Heady}, + pages = {8-27}, + address = {Ames IA}, + owner = {suapm095}, +} + +@ARTICLE{Swallow, + author = {S. K. Swallow and M. J. Mazotta}, + title = {Assessing Public Priorities for Experiment Station Research: Contingent + Value and Public Preferences for Agricultural Research}, + journal = {American Journal of Agricultural Economics}, + year = {Forthcoming}, + pages = {in press}, + owner = {suapm095}, +} + +@ARTICLE{Swallow04, + author = {S. K. Swallow and M. J. Mazotta}, + title = {Assessing Public Priorities for Experiment Station Research: Contingent + Value and Public Preferences for Agricultural Research}, + journal = {American Journal of Agricultural Economics}, + year = {2004}, + volume = {86}, + pages = {in press}, + owner = {suapm095}, +} + +@BOOK{Timmer75, + title = {The Impact of Price}, + publisher = {Ballinger Press}, + year = {1975}, + editor = {George Tolley}, + author = {C. P. Timmer}, + address = {Chicago}, + owner = {suapm095}, +} + +@MANUAL{USBB63, + title = {The Budget of the {United} {States} Government for the Fiscal Year + Ending June 30, 1964}, + author = {{U.S. Bureau of the Budget}}, + address = {Washington DC}, + year = {1963}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@MANUAL{USCong66, + title = {A Unified National Program for Managing Flod Losses}, + author = {{U.S. Congress, House of Representatives, Task Force on Federal Flood + Control}}, + organization = {House Document 465, 89th Cong., 2nd sess., 10~August}, + address = {Washington DC}, + year = {1966}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@MANUAL{USCong64, + title = {Conversion to the Metric System: Hearings on S1278}, + author = {{U.S. Congress, Senate Commission on Commerce}}, + organization = {88th Cong., 2nd sess., 9~January 1964, p.~58}, + address = {Washington DC}, + year = {1966}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@MANUAL{USDA65, + title = {Changes in Agriculture in 26 Developing Nations, 1948--1963}, + author = {{U.S. Department of Agriculture}}, + address = {Washington DC}, + month = {November}, + year = {1965}, + note = {ESCS For. Agr. Econ. Rep. 27}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@MANUAL{USDC66, + title = {1964 {United} {States} Census of Agriculture, Preliminary Report}, + author = {{U.S. Department of Commerce, Bureau of the Census}}, + address = {Washington DC}, + month = {April}, + year = {1966}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@MANUAL{UNFAO62, + title = {Agricultural Commodities, Projections for 1970}, + author = {{United Nations, Food and Agriculture Organization}}, + address = {Rome}, + year = {1962}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@MANUAL{UN64, + title = {Yearbook of National Accounts Statistics, 1963}, + author = {{United Nations}}, + address = {New York}, + year = {1964}, + owner = {Arne}, + timestamp = {2006.08.23}, +} + +@PHDTHESIS{Wells64, + author = {J. C. Wells}, + title = {An Appraisal of Agricultural Investments in the 1962-63 Nigerian + Development Program}, + school = {University of Michigan}, + year = {1964}, + owner = {suapm095}, +} + +@BOOK{Wold89, + title = {Demand Analysis}, + publisher = {Macmillan Co}, + year = {1989}, + author = {Herman Wold and Lars Jureen}, + address = {New York}, + edition = {3}, + owner = {suapm095}, +} + +@BOOK{Wold, + title = {The Viability \ldots{}~~}, + publisher = {Some Publisher}, + year = {3003}, + author = {Herman Wold and J. Smith and L. Jureen}, + address = {Nowhere}, + owner = {suapm095}, +} + +@BOOK{Wold4, + title = {The Vitality \ldots{}~~}, + publisher = {Some Publisher}, + year = {3004}, + author = {Herman Wold and J. Smith and L. Jureen and John Fourth}, + address = {Nowhere}, + owner = {suapm095}, +} + +@BOOK{Wold5, + title = {The Volatility \ldots{}~~}, + publisher = {Some Publisher}, + year = {3005}, + author = {Herman Wold and J. Smith and L. Jureen and John Fourth and Jim Fifth}, + address = {Nowhere}, + owner = {suapm095}, +} + +@ARTICLE{Yohe95, + author = {G. Yohe and J. Neumann and H. Ameden}, + title = {Assessing the Economic Cost of Greenhouse-Induced Sea Level Rise: + Methods and Application in Support of a National Survey}, + journal = {Journal of Environmental Economics and Management}, + year = {1995}, + volume = {29}, + pages = {S-78-S-97}, + number = {3, Part 2}, + owner = {suapm095}, +} + +@BOOK{Harris75, + title = {The Good Earth of America}, + publisher = {Prentice-Hall}, + year = {1975}, + editor = {C. L. Harris}, + address = {Englewood Cliffs NJ}, + owner = {suapm095}, +} + +@comment{jabref-meta: selector_journal:American Journal of Agricultura +l Economics;} + diff --git a/biblio/bibtex/contrib/economic/ajae-ex.pdf b/biblio/bibtex/contrib/economic/ajae-ex.pdf Binary files differnew file mode 100644 index 0000000000..c8cf7b1778 --- /dev/null +++ b/biblio/bibtex/contrib/economic/ajae-ex.pdf diff --git a/biblio/bibtex/contrib/economic/ajae-ex.tex b/biblio/bibtex/contrib/economic/ajae-ex.tex new file mode 100644 index 0000000000..64aa7b2d76 --- /dev/null +++ b/biblio/bibtex/contrib/economic/ajae-ex.tex @@ -0,0 +1,145 @@ +\documentclass{ajae} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} + +\usepackage{hyperref} +\hypersetup{% + colorlinks = {true}, + urlcolor = {blue}, + linkcolor = {black}, + citecolor = {black}, + pdfauthor = {Arne Henningsen}, + pdftitle = {Testing LaTeX class and BibTeX style for the + American Journal of Agricultural Economics (AJAE)}, + pdfkeywords = {AJAE, BibTeX, LaTeX} +} + +\usepackage{multido} + +\title{Testing \LaTeX{} class and Bib\TeX{} style for the + ``American Journal of Agricultural Economics'' (AJAE)} +\keywords{AJAE, BibTeX, LaTeX} +\jelclass{A1, B2, C3} + +\begin{document} + +\maketitle + +\begin{abstract} +\multido{}{15}{This is an abstract. } +\end{abstract} + +\multido{}{7}{Do not indent the first paragraph. } + +\multido{}{7}{Do not use a heading for the first section. } + +Type all footnotes on a separate page following the article.% +\footnote{ +\multido{}{5}{This is a footnote that looks like an endnote. } +} +Place each table and figure on a separate page at the end of the paper +(see figure~\ref{fig:dummy} and table~\ref{tab:citations}). + +\begin{figure}[htbp] +\fbox{\parbox{0.6 \textwidth}{\centering + \vspace{0.2 \textwidth} + This is not a figure. + \vspace{0.2 \textwidth} +}} +\caption{Dummy figure} +\label{fig:dummy} +\end{figure} + +\begin{figure}[htbp] +\fbox{\parbox{0.6 \textwidth}{\centering + \vspace{0.2 \textwidth} + This is not a figure, too. + \vspace{0.2 \textwidth} +}} +\caption{Figure with \multido{}{40}{very } long title} +\label{fig:long-title} +\end{figure} + + +\section{Manuscript Formatting} +The manuscript formatting instructions are available at +\url{http://ajae.aem.cornell.edu/formatting.htm}. +A detailed reference guide is available at +\url{http://ajae.aem.cornell.edu/documents/ReferenceGuideMarch2006.pdf}. +All references used as examples in the reference guide are shown in this document +to demonstrate that the AJAE Bib\TeX{} style complies with these guidelines. +Please report any problems at +\url{http://sourceforge.net/projects/economtex/}. + + +\section{Citations} +\subsection{Citations in Text} +\citet{Black29} says A, \citet{Wold89} say B, \citet{Wold} say C, +\citet{Wold4} say D, \citet{Wold5} say E., \citet{Brown65} says F, +and the \citet{USDA65} says G. +An overview is available in table~\ref{tab:citations}. + +\begin{table}[htbp] +\caption{Citations} +\label{tab:citations} +\begin{tabular}{lc} +\hline +Author(s) & Statement\\ +\hline +\citet{Black29} & A\\ +\citet{Wold89} & B\\ +\citet{Wold} & C\\ +\citet{Wold4} & D\\ +\citet{Wold5} & E\\ +\citet{Brown65} & F\\ +\citet{USDA65} & G \\ +\hline +\end{tabular} +\medskip \\ +Note: Do not use vertical lines in tables. +\end{table} + + +\subsection{Citations in Parenthesis} +A equals B \citep{Black29}, B equals C \citep{Wold89}, C equals D \citep{Wold}, +D equals E \citep{Wold4}, E equals F \citep{Wold5}, F equals G \citep{Brown65}, +and G equals A \citep{USDA65}. +Hence, A, B, C, D, E, F, and G are all equal +\citep{Black29, Wold89, Wold, Wold4, Wold5, Brown65, USDA65}. + +%%% This is just to test the compatibility functions \citetPage and \citepPage +% \subsection{Citations with Page Numbers} +% \citetPage{123}{Black29} says A, \citetPage{234}{Wold89} say B, +% \citetPage{345}{Wold} say C, and \citetPage{456}{Wold4} say D. +% A equals B \citepPage{123}{Black29}, B equals C \citepPage{234}{Wold89}, +% C equals D \citepPage{345}{Wold}, and D equals A \citepPage{456}{Wold4}. + + +\section{Equations} +All displayed equations should be left-justified +and numbered consecutively (on the left). +Vectors and matrices should be in bold. +\begin{equation} +\veclatin{ y } = a + \matlatin{ X } \veclatin{ b } +\end{equation} +where $a$ is a scalar, +$\veclatin{ y }$ and $\veclatin{ b }$ are vectors, +and $\matlatin{ X }$ is a matrix. +Of course, the same holds for Greek symbols. +\begin{equation} +\vecgreek{ \theta } = \alpha + \matgreek{ \Psi } \vecgreek{ \beta } +\end{equation} +where $\alpha$ is a scalar, +$\vecgreek{ \theta }$ and $\vecgreek{ \beta }$ are vectors, +and $\matgreek{ \Psi }$ is a matrix. + +\clearpage +\listofendnotes + +\clearpage +\nocite{*} + +\bibliographystyle{ajae} +\bibliography{ajae-ex} + +\end{document} diff --git a/biblio/bibtex/contrib/economic/ajae.bst b/biblio/bibtex/contrib/economic/ajae.bst new file mode 100644 index 0000000000..e40d50e3c7 --- /dev/null +++ b/biblio/bibtex/contrib/economic/ajae.bst @@ -0,0 +1,1663 @@ +%%% American Journal of Agricultural Economics (AJAE) +%%% bibliography style for use with LaTeX2e +%%% version: 1.0 (20 August 2006) +%%% license: LaTeX Project Public License (see below) +%%% This file was created with makebst (see below) and modified +%%% by Arne Henningsen and Karsten Heymann. +%%% Note: This is an unofficial style file that may not fully comply +%%% with the AJAE Reference Guide in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% It is recommended to use the document class "ajae" +%%% or to add (at least) the following lines to the LaTeX preamble: +%%% \usepackage[authoryear]{natbib} +%%% \bibpunct{(}{)}{;}{a}{}{,} +%%% +%% +%% This is file `ajae.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rev1,jnrlst,nmdash,keyxyr,dt-beg,yr-per,yrp-per,yrpp-xsp,note-yr,tit-qq,atit-u,thtit-a,vnum-x,pp-last,num-xser,jnm-x,add-pub,pre-pub,blk-tit,pp,ed,abr,ednx,ord,and-com') +%% ---------------------------------------- +%% *** AJAE *** +%% +%% Copyright 1994-2002 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2002/10/21 4.05 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {no.blank.or.punct} +{ "\hspace{0pt}" * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.sentence +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Working paper" } + +FUNCTION {bbl.mthesis} +{ "MS thesis" } + +FUNCTION {bbl.phdthesis} +{ "PhD dissertation" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + duplicate$ #1 > + { "{f{.}.~}{vv~}{ll}{, jj}" } + { "{vv~}{ll}{, f{.}.}{, jj}" } + if$ + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.editor + * + } + if$ +} +FUNCTION {format.additional.editors} +{ editor "editor" format.names.ed duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.editor + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\bibenquote{" swap$ * + add.period$ "}" * + } + if$ +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + after.sentence 'output.state := +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} +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$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + volume empty$ + { + } + { ":" * + } + if$ + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + journal "Journal of Economic Perspectives" = + journal "American Economic Review: Papers and Proceedings" = + + journal "Journal of Environmental Economics and Management" = + + { number "number" bibinfo.check duplicate$ empty$ 'skip$ + { "(" swap$ * ")" * + } + if$ * + } + 'skip$ + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + "," * + " " * + get.bbl.editor + " " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { " No." swap$ tie.or.space.prefix * * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +STRINGS {oldname} + +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { "---" } + { s 'oldname := s } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + volume empty$ + { ", " * + month empty$ + 'skip$ + { month * + ", " * + } + if$ + } + { add.blank + } + if$ + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + volume empty$ + { pages "in press" = + 'skip$ + { + "pp. " * + } + if$ + } + 'skip$ + if$ + format.journal.pages + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + format.edition output + author empty$ + { + } + { format.additional.editors "editor" output.check + } + if$ + crossref missing$ + { format.bvolume output + new.sentence + format.number.series output + format.publisher.address output + } + { + new.sentence + format.book.crossref output.nonnull + } + if$ + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.note output + month output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.sentence + format.number.series output + } + { + format.chapter.pages "chapter and pages" output.check + new.sentence + format.book.crossref output.nonnull + } + if$ + format.edition output + format.pages "pages" output.check + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + format.publisher.address output + format.bvolume output + format.number.series output + format.chapter.pages output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.bvolume output + format.number.series output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + new.sentence + organization empty$ + { + format.edition output + format.note output + address "address" bibinfo.check output + } + { + address "address" bibinfo.check duplicate$ " " = + { skip$ } + { ": " * } + if$ + organization "organization" bibinfo.check * output + format.edition output + format.note output + } + if$ + month output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title + "title" output.check + new.sentence + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title output + new.sentence + howpublished "howpublished" bibinfo.check output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title + "title" output.check + new.sentence + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title + "title" output.check + new.sentence + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + month output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + " Unpublished" * + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := % s := Namensliste + "" 't := % t := "" + s #1 "{vv~}{ll}" format.name$ % formatiere 1. Namen + s num.names$ duplicate$ % bestimme # Namen + #3 > % mehr als 3 Namen? + { pop$ + " " * bbl.etal * % dann: Ausgabe von et.al + } + { duplicate$ #3 = % sonst: 3 Namen? + { pop$ + ", " * + s #2 "{vv~}{ll}" format.name$ * % gib 2. Namen aus + + s #3 "{ff }{vv }{ll}{ jj}" format.name$ "others" = % Wenn Name#3 = "others" + { " " * bbl.etal * % dann et.al. + } + { ", " * bbl.and * " " * s #3 "{vv~}{ll}" format.name$ % sonst "and Autor#3" + * } + if$ + } + { #2 < % sonst: Wenn weniger als 2 Namen + 'skip$ % dann nix, sonst: + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = % Wenn Name#2 = "others" + { + " " * bbl.etal * % dann et.al. + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ % sonst "and Autor#2" + * } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + title field.or.null + sort.format.title + * + " " + * + year field.or.null sortify + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\newcommand{\bibenquote}[1]{``#1''}" + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `ajae.bst'. diff --git a/biblio/bibtex/contrib/economic/ajae.cls b/biblio/bibtex/contrib/economic/ajae.cls new file mode 100644 index 0000000000..ec82528a2d --- /dev/null +++ b/biblio/bibtex/contrib/economic/ajae.cls @@ -0,0 +1,308 @@ +%%% LaTeX class for manuscripts submitted to the +%%% American Journal of Agricultural Economics (AJAE) +%%% +%%% author: Arne Henningsen +%%% version: 1.7 (18 November 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the AJAE Formatting Instructions in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, bm, courier, endfloat, endnotes, geometry, +%%% helvet, mathptmx, natbib, setspace, titlesec, url +%%% +%%% The class provides following options: +%%% noendnotes - don't use endnotes (use footnotes) +%%% noendfloat - don't move floats to the end of the paper +%%% author - show name(s) of authors(s) +%%% date - show date +%%% preprint - print the 'preprint notice' +%%% published - print a notice that the paper has been published +%%% +%%% +%%% The corresponding BibTeX style file "ajae.bst" should be used +%%% for the bibliography: \bibliographystyle{ajae} +%%% +%%% This document class provides following new commands: +%%% \keywords can be use to show keywors below the abstract +%%% \jelclass can be use to show JEL classifications below the abstract +%%% \leadingfootnote can be used to add a leading unnumbered footnote +%%% \affiliation can be used to add affiliation information +%%% \veclatin should be used for latin symbols that denote vectors +%%% \matlatin should be used for latin symbols that denote matrices +%%% \vecgreek should be used for greek symbols that denote vectors +%%% \matgreek should be used for greek symbols that denote matrices +%%% \ajaeyear, \ajaeissue, \ajaenumber, and \ajaepages should be used +%%% after the publication to specify the year, issue, number, +%%% and pages, respectively. +%%% +%%% If you use footnotes, add following lines before the reference section: +%%% \clearpage +%%% \listofendnotes + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{ajae}[2009/11/18 LaTeX class for the American Journal of Agricultural Economics] + +\RequirePackage{ifthen} + +% option to use footnotes in place of endnotes +\newif\if@UseEndnotes +\@UseEndnotestrue +\DeclareOption{noendnotes}{\@UseEndnotesfalse} + +% option to NOT place floats at the end +\newif\if@UseEndfloat +\@UseEndfloattrue +\DeclareOption{noendfloat}{\@UseEndfloatfalse} + +% option to show the authors' names +\newif\if@ShowAuthor +\@ShowAuthorfalse +\DeclareOption{author}{\@ShowAuthortrue} + +% option to print the date +\newif\if@ShowDate +\@ShowDatefalse +\DeclareOption{date}{\@ShowDatetrue} + +% option to print the 'preprint notice' +\newif\if@ShowPreprintNote +\@ShowPreprintNotefalse +\DeclareOption{preprint}{\@ShowPreprintNotetrue} + +% option to print the 'published notice' +\newif\if@ShowPublishedNote +\@ShowPublishedNotefalse +\DeclareOption{published}{\@ShowPublishedNotetrue} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,tablecaptionabove]{scrartcl} +% tablecaptionabove = use \captionabove for tables + +% page format, margins +\RequirePackage{geometry} +\geometry{letterpaper, tmargin=1.0in, bmargin=1.1in, lmargin=1.25in, + rmargin=1.25in, headheight=0in, headsep=0in, footskip=0.5in } + +% double spacing +\RequirePackage{setspace} +\doublespacing + +% spacing around (sub)section headers +\RequirePackage{titlesec} +\titlespacing*{\section}{0pt}{1em}{0.25em} +\titlespacing*{\subsection}{0pt}{0.85em}{0.15em} + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{5pt} + +% font families: times/helvetica/courier +\RequirePackage{mathptmx} +\RequirePackage[scaled=.90]{helvet} +\RequirePackage{courier} + +% font for section headers +\setkomafont{section}{\normalfont\bfseries} + +% font for subsection headers +\setkomafont{subsection}{\normalfont\itshape} + +% fonts for math +\RequirePackage[leqno,fleqn]{amsmath} +\RequirePackage{bm} +% latin symbols for vectors and matrices +\newcommand{\veclatin}[1]{\bm{#1}} +\newcommand{\matlatin}[1]{\bm{#1}} +% greek symbols for vectors and matrices +\newcommand{\vecgreek}[1]{\pmb{#1}} +\newcommand{\matgreek}[1]{\pmb{#1}} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\bibpunct{(}{)}{;}{a}{}{,} +\setlength{\bibsep}{0pt} + +% captions of figures and tables +\setcapwidth[l]{\textwidth} +\setcapindent{0pt} +\setkomafont{captionlabel}{\normalfont\bfseries} +\setkomafont{caption}{\normalfont\bfseries} +\renewcommand{\captionformat}{.\ } + +% section and subsections are not numbered +\setcounter{secnumdepth}{0} + +% leading unnumbered footnote +\long\def\leadingfootnote#1{\begingroup% + \def\thefootnote{\fnsymbol{footnote}}\footnote[0]{#1}\endgroup} + +% titlepage without author and date +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\newcommand{\ajaeissue}[1]{\newcommand{\@ajaeissue}{#1}} +\newcommand{\ajaenumber}[1]{\newcommand{\@ajaenumber}{#1}} +\newcommand{\ajaeyear}[1]{\newcommand{\@ajaeyear}{#1}} +\newcommand{\ajaepages}[1]{\newcommand{\@ajaepages}{#1}} +\renewcommand{\maketitle}{ + \begin{center} + \begin{LARGE} + \begin{spacing}{1.25} + \textbf{\@title} + \end{spacing} + \end{LARGE} + \vspace*{10mm} + \if@ShowAuthor + \begin{large} + \textbf{\@author}\\ + \end{large} + \ifthenelse{ \isundefined\@affiliation }{}{ + \vspace*{3mm} + \begin{small} + \@affiliation\\ + \end{small} + } + \vspace*{5mm} + \fi + \if@ShowDate + \@date\\ + \vspace*{5mm} + \fi + \if@ShowPreprintNote + \begin{small} + This is a preprint of an Article accepted for publication in + \textit{American Journal of Agricultural Economics}. + \copyright{} \the\year , + American Agricultural Economics Association + \end{small} + \vspace*{5mm} + \fi + \if@ShowPublishedNote + \begin{small} + This is an electronic version of an Article published in\\ + \textit{American Journal of Agricultural Economics}% + \ifthenelse{ \isundefined\@ajaeissue }{% + \ClassWarningNoLine{ajae}{No issue of the AJAE publication specified. + Please use the command \protect\ajaeissue}% + }{, \@ajaeissue{}}% + \ifthenelse{ \isundefined\@ajaenumber }{% + \ClassWarningNoLine{ajae}{No number of the AJAE publication specified. + Please use the command \protect\ajaenumber}% + }{(\@ajaenumber{})}% + \ifthenelse{ \isundefined\@ajaepages }{% + \ClassWarningNoLine{ajae}{No pages of the AJAE publication specified. + Please use the command \protect\ajaepages}% + }{, p.~\@ajaepages{}}.\\ + \copyright{}% + \ifthenelse{ \isundefined\@ajaeyear }{% + \ClassWarningNoLine{ajae}{No year of the AJAE publication specified. + Please use the command \protect\ajaeyear}% + }{\@ajaeyear{}} + American Agricultural Economics Association.\\ + The final version is available on + \url{http://www.blackwell-synergy.com/loi/AJAE} + \end{small} + \vspace*{5mm} + \fi + \end{center} +} + +% abstract, keywords, JEL classification +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} +\renewenvironment{abstract}{% +\begin{center} +\begin{minipage}{0.9 \textwidth} +\small +\begin{center} +\textbf{Abstract} +\end{center} +}{% +\ifthenelse{ \isundefined\@keywords }{ +\ClassWarningNoLine{ajae}{No keywords specified. + Please use the command \protect\keywords} +}{ +\smallskip\\ \noindent +Key words: \@keywords +} +\ifthenelse{ \isundefined\@jelclass }{ +\ClassWarningNoLine{ajae}{No JEL classification specified. + Please use the command \protect\jelclass} +}{ +\smallskip\\ \noindent +JEL classification: \@jelclass +} +\end{minipage} +\end{center} +\vspace{\baselineskip} +\@aftermylist +} +% command "\@aftermylist": do not indent the following paragraph +\def\@aftermylist{% + \def\if@endpe\@doendpe\fi{\@endpetrue + \def\par{\if@endpe\@@par\else\@restorepar\everypar{}\par\@endpefalse\fi}% + \everypar{{\setbox\z@\lastbox}\everypar{}\@endpefalse}% + }% +} +% This code was originally posted by Donald Arseneau on comp.text.tex +% I thank Ulrike Fischer for pointing this out to me. + + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% use endnotes in place of footnotes +\if@UseEndnotes +\RequirePackage{endnotes} +\let\footnote=\endnote +\newcommand{\listofendnotes}{ + \begingroup + \parindent 0pt + \parskip 2ex + \def\enotesize{\normalsize} + \theendnotes + \endgroup +} +\fi + +% move floats to the end of the paper +\if@UseEndfloat +\RequirePackage[tabhead,fighead,nomarkers,nolists]{endfloat} +\fi + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} diff --git a/biblio/bibtex/contrib/economic/apecon-ex.bib b/biblio/bibtex/contrib/economic/apecon-ex.bib new file mode 100644 index 0000000000..3d1c989a1c --- /dev/null +++ b/biblio/bibtex/contrib/economic/apecon-ex.bib @@ -0,0 +1,77 @@ +% This file was created with JabRef 2.5. +% Encoding: UTF8 + +@ARTICLE{brigham65, + author = {Brigham, Eugene F.}, + title = {The Determinants of Residential Land Values}, + journal = {Land Economics}, + year = {1965}, + volume = {41}, + pages = {325-334}, + url = {http://www.jstor.org/pss/3144665} +} + +@ARTICLE{brown05, + author = {Steven P. Brown and Eli Jones}, + title = {Introduction to the Special Issue: Advancing the Field of Selling + and Sales Management}, + journal = {Journal of Personal Selling and Sales Management}, + year = {2005}, + volume = {25}, + pages = {103-104}, + number = {2} +} + +@INCOLLECTION{phelpsbrown81, + author = {{Phelps Brown}, Henry}, + title = {Labour Market Policy}, + booktitle = {Changing Perceptions of Economic Policy}, + publisher = {Methuen}, + year = {1981}, + editor = {Frances Cairncross}, + pages = {68-113}, + address = {London} +} + +@ARTICLE{smith72a, + author = {Charles H. Smith and Roy A. Lanier and Martin E. Taylor}, + title = {The Need for and Scope of the Audit of Management: A Survey of Attitudes}, + journal = {Accounting Review}, + year = {1972}, + volume = {47}, + pages = {270-283}, + number = {2}, + url = {http://www.jstor.org/stable/244750} +} + +@ARTICLE{smith72b, + author = {Kenneth R. Smith and Marianne Miller and Fredrick L. Golladay}, + title = {An Analysis of the Optimal Use of Inputs in the Production of Medical + Services}, + journal = {Journal of Human Resources}, + year = {1972}, + volume = {7}, + pages = {208-225}, + number = {2}, + url = {http://www.jstor.org/stable/145184} +} + +@ARTICLE{smith72, + author = {Vernon L. Smith}, + title = {A Theory and Test of Credit Rationing: Some Generalizations}, + journal = {American Economic Review}, + year = {1972}, + volume = {62}, + pages = {477-483}, + number = {3}, + url = {http://www.jstor.org/stable/1803400} +} + +@comment{jabref-meta: selector_publisher:} + +@comment{jabref-meta: selector_author:} + +@comment{jabref-meta: selector_journal:} + +@comment{jabref-meta: selector_keywords:} + diff --git a/biblio/bibtex/contrib/economic/apecon-ex.pdf b/biblio/bibtex/contrib/economic/apecon-ex.pdf Binary files differnew file mode 100644 index 0000000000..54aa1970e4 --- /dev/null +++ b/biblio/bibtex/contrib/economic/apecon-ex.pdf diff --git a/biblio/bibtex/contrib/economic/apecon-ex.tex b/biblio/bibtex/contrib/economic/apecon-ex.tex new file mode 100644 index 0000000000..cc5c4f6b95 --- /dev/null +++ b/biblio/bibtex/contrib/economic/apecon-ex.tex @@ -0,0 +1,161 @@ +\documentclass{apecon} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage{csquotes} +\MakeInnerQuote{"} + +\usepackage{textcomp} +\usepackage{multido} + +\usepackage{hyperref} +\hypersetup{% + colorlinks = {true}, + urlcolor = {blue}, + linkcolor = {black}, + citecolor = {black}, + pdfauthor = {Arne Henningsen}, + pdftitle = {Testing LaTeX class and BibTeX style for the + journal Applied Economics (ApEcon)}, + pdfkeywords = {Applied Economics, BibTeX, LaTeX} +} + +\usepackage{multido} + +\title{Testing \LaTeX{} class and Bib\TeX{} style for the + journal `Applied Economics' (ApEcon)} + +\author{Arne Henningsen$^1$ and His Coauthor$^2$} + +% affiliation(s) and full address(es) of the author(s) +\affiliation{% +$^1$Institute of Food and Resource Economics, +University of Copenhagen, +Rolighedsvej~25, 1958~Frederiksberg~C, Denmark\\ +$^2$\LaTeX{} University, Nostreet~123, +00000~Nowhere City, Noland} + +% running title +\rtitle{\LaTeX{} class and Bib\TeX{} style for `Applied Economics'} + +% corresponding author including full address +\cauthor{Arne Henningsen, Institute of Food and Resource Economics, +Rolighedsvej~25, 1958~Frederiksberg~C, Denmark} + + +\begin{document} + +\maketitle + +\begin{abstract} +\multido{}{15}{This is an abstract. } +\end{abstract} + +\section{Introduction} +\multido{}{7}{This is an introduction. } + +Footnotes should appear at the end of the page in which they are inserted.% +\footnote{ +\multido{}{10}{This is a footnote. } +} +"Single quotation marks" can be conveniently inserted using +the "csquotes" package: +add the lines\\ +\verb!\usepackage{csquotes}!\\ +\verb!\MakeInnerQuote{"}!\\ +to the preamble of your \LaTeX{} file and use the inch symbol~(\verb!"!) +for quotation marks.% +\footnote{% +Of course, you can also define another symbol in the command +\texttt{\textbackslash{}MakeInnerQuote}, +e.g.\ the degree sign~($^{\circ}$). +} +Collect tables and figures at the end of the manuscript +(see figure~\ref{fig:dummy} and table~\ref{tab:citations}). + +\begin{figure}[htbp] +\fbox{\parbox{0.6 \textwidth}{\centering + \vspace{0.2 \textwidth} + This is not a figure. + \vspace{0.2 \textwidth} +}} +\caption{Dummy figure} +\label{fig:dummy} +\end{figure} + +\begin{figure}[htbp] +\fbox{\parbox{0.6 \textwidth}{\centering + \vspace{0.2 \textwidth} + This is not a figure, too. + \vspace{0.2 \textwidth} +}} +\caption{Figure with \multido{}{40}{very } long title} +\label{fig:long-title} +\end{figure} + +\section{Manuscript Formatting} +Instructions to authors including formatting guidelines are available at +\url{http://www.tandf.co.uk/journals/journal.asp?issn=0003-6846&linktype=44}. +All references used as examples in these guidelines are shown in this document +to demonstrate that the Bib\TeX{} style of "Applied Economics" complies +with these guidelines. +Please report any problems at +\url{http://sourceforge.net/projects/economtex/}. + + +\section{Citations} +\subsection{Citations in Text} +\citet{smith72} says A, \citet{brown05} say B, +\citet{smith72a} say C, and \citet{smith72b} say D. +An overview is available in table~\ref{tab:citations}. + +\begin{table}[htbp] +\caption{Citations} +\label{tab:citations} +\begin{tabular}{lc} +\hline +Author(s) & Statement\\ +\hline +\citet{smith72} & A\\ +\citet{brown05} & B\\ +\citet{smith72a} & C\\ +\citet{smith72b} & D\\ +\hline +\end{tabular} +\end{table} + + +\subsection{Citations in Parenthesis} +A equals B \citep{smith72}, B equals C \citep{brown05}, +C equals D \citep{smith72a}, and D equals A \citep{smith72b}. +Hence, A, B, C, and D are all equal +\citep{smith72, brown05, smith72a, smith72b}. + +\subsection{Citations with Page Numbers} +\citet[p.~123]{smith72} says A, \citet[p.~234]{brown05} say B, +\citet[p.~345]{smith72a} say C, and \citet[p.~456]{smith72b} say D. +A equals B \citep[p.~123]{smith72}, B equals C \citep[p.~234]{brown05}, +C equals D \citep[p.~345]{smith72a}, and D equals A \citep[p.~456]{smith72b}. + + +\section{Equations} +There are no instructions regarding equations. +\begin{equation} +y = a + X b +\end{equation} +where $a$ is a scalar, +$y$ and $b$ are vectors, +and $X$ is a matrix. +Of course, you can also use Greek symbols. +\begin{equation} +\theta = \alpha + \Psi \beta +\end{equation} +where $\alpha$ is a scalar, +$\theta$ and $\beta$ are vectors, +and $\Psi$ is a matrix. + +\clearpage +\nocite{*} + +\bibliography{apecon-ex} + +\end{document} diff --git a/biblio/bibtex/contrib/economic/apecon.bst b/biblio/bibtex/contrib/economic/apecon.bst new file mode 100644 index 0000000000..cb77f3663c --- /dev/null +++ b/biblio/bibtex/contrib/economic/apecon.bst @@ -0,0 +1,1446 @@ +%%% journal "Applied Economics" (apecon) +%%% bibliography style for use with LaTeX2e +%%% version: 1.0 (14 April 2008) +%%% license: LaTeX Project Public License (see below) +%%% This file was created with makebst (see below) and modified +%%% by Arne Henningsen. +%%% Note: This is an unofficial style file that may not fully comply +%%% with the reference guidelines of "Applied Economics" in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This BibTeX style should be used with the corresponding +%%% LaTeX class "apecon" (apecon.cls). +%%% Otherwise, the following line has to be added to the LaTeX preamble: +%%% \usepackage[authoryear]{natbib} +%%% +%% +%% This is file `apecon.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rev,jnrlst,keyxyr,dt-beg,yr-par,yrp-x,note-yr,vol-bf,vnum-x,volp-com,num-xser,pre-pub,edpar,bkedcap,edby,edbyw,edcap,blk-com,pp,ed,abr,xedn,and-xcom,etal-it,em-it,nfss,') +%% ---------------------------------------- +%% *** BibTeX style for the journal 'Applied Economics' *** +%% +%% Copyright 1994-2004 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, f.}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + get.bbl.editor + capitalize + "(" swap$ * ")" * + " " * swap$ * + swap$ + " " * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.publisher.address output + format.bvolume output + format.number.series output + format.chapter.pages output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.bvolume output + format.number.series output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + howpublished "howpublished" bibinfo.check output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal emphasize * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal emphasize * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `apecon.bst'. diff --git a/biblio/bibtex/contrib/economic/apecon.cls b/biblio/bibtex/contrib/economic/apecon.cls new file mode 100644 index 0000000000..240bc1ccc4 --- /dev/null +++ b/biblio/bibtex/contrib/economic/apecon.cls @@ -0,0 +1,196 @@ +%%% LaTeX class for manuscripts submitted to the +%%% journal 'Applied Economics' +%%% +%%% author: Arne Henningsen +%%% version: 1.1 (18 November 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the formatting instructions of 'Applied Economics' in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, endfloat, geometry, ifthen +%%% lmodern, natbib, setspace, textcomp, url +%%% +%%% The class provides following option: +%%% noendfloat - don't move floats to the end of the paper +%%% +%%% By default, the corresponding BibTeX style "apecon.bst" is used. +%%% +%%% This document class provides 4 new commands: +%%% \affiliation specify affiliation(s) and full address(es) of the authors +%%% \rtitle specify running title (max. 75 letters and spaces) +%%% \cauthor specify corresponding author including contact details +%%% + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{apecon}[2009/11/18 LaTeX class for the journal 'Applied Economics'] + +% package for convenient if-then-else statements +\RequirePackage{ifthen} + +% option to NOT place floats at the end +\newif\if@useendfloat +\@useendfloattrue +\DeclareOption{noendfloat}{\@useendfloatfalse} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,pointednumbers,tablecaptionabove]{scrartcl} +% pointednumbers = add final dot after ordinary section numbers +% tablecaptionabove = use \captionabove for tables + +% additional symbols +\RequirePackage{textcomp} + +% page format, margins +\RequirePackage{geometry} +\geometry{a4paper, tmargin=2.5cm, bmargin=2.8cm, lmargin=4cm, + rmargin=2cm, headheight=0cm, headsep=0cm, footskip=1.2cm } + +% one half spacing +\RequirePackage{setspace} +\doublespacing + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{5pt} + +% font family: latin modern +\RequirePackage{lmodern} + +% section headers +\setkomafont{section}{\sffamily\bfseries} +\setkomafont{subsection}{\normalfont\sffamily\itshape} +\setkomafont{subsubsection}{\normalfont\sffamily} +\renewcommand{\thesection}{\Roman{section}} +\setcounter{secnumdepth}{1} + +% amsmath +\RequirePackage{amsmath} +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\setlength{\bibsep}{0pt} +\bibliographystyle{apecon} + +% captions of figures and tables +\setcapwidth[l]{\textwidth} +\setcapindent{0pt} +\setkomafont{captionlabel}{\normalsize\normalfont\bfseries} +\setkomafont{caption}{\normalsize\normalfont\bfseries} +\renewcommand{\captionformat}{.\ } + +% titlepage without author and date +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\newcommand{\address}[1]{\newcommand{\@address}{#1}} +\newcommand{\rtitle}[1]{\newcommand{\@rtitle}{#1}} +\newcommand{\cauthor}[1]{\newcommand{\@cauthor}{#1}} +\renewcommand{\maketitle}{ + \begin{center} + \begin{spacing}{1.5} + \LARGE{\textbf{\@title}}% + \end{spacing} + \ifthenelse{ \isundefined\@author }{ + \ClassWarning{apecon}{No author(s) specified. + Please specify with command \protect\author} + }{ + \begin{large} + \textbf{\@author}\\ + \end{large} + \vspace*{3mm} + } + \begin{spacing}{1.1} + \ifthenelse{ \isundefined\@affiliation }{ + \ClassWarning{apecon}{No affiliation(s) specified. + Please specify with command \protect\affiliation} + }{ + \textit{\@affiliation}\\ + } + \ifthenelse{ \isundefined\@address }{ + }{ + \textit{\@address}\\ + } + \end{spacing} + \vspace*{5mm} + \end{center} + \ifthenelse{ \isundefined\@rtitle }{ + \ClassWarningNoLine{apecon}{No running title is specified. + Please specify with command \protect\rtitle\space (max. 75 letters)} + }{ + \textbf{Running title:}\\ + \@rtitle\\ + } +} + +% abstract, keywords, JEL classification +\renewenvironment{abstract}{% + \begin{spacing}{1.5} + \noindent + \textbf{Abstract}\\ +}{% + \smallskip\\ \noindent + \end{spacing} + \begin{spacing}{1.1} + \noindent + \textbf{Corresponding author:} + \ifthenelse{ \isundefined\@cauthor }{ + ??? + \ClassWarningNoLine{apecon}{No corresponding author + (including contact details) is specified. + Please specify with command \protect\cauthor} + }{ + \\\@cauthor\\ + } + \clearpage + \end{spacing} +} + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% move floats to the end of the paper +\if@useendfloat + \RequirePackage[noheads,nomarkers,tablesfirst,nolists]{endfloat} +\fi + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} diff --git a/biblio/bibtex/contrib/economic/cje.bst b/biblio/bibtex/contrib/economic/cje.bst new file mode 100644 index 0000000000..632e4988d0 --- /dev/null +++ b/biblio/bibtex/contrib/economic/cje.bst @@ -0,0 +1,1192 @@ +% BibTeX bibliography style `cje' (Canadian Journal of Economics) +% this file is based on the `harvard' family of files + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1991, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst, agsm.bst, + % dcu.bst, cje.bst, aer.bst, or kluwer.bst. + % This restriction helps ensure that all standard styles are identical. + +% ACKNOWLEDGEMENT: +% This document is a modified version of alpha.bst to which it owes much of +% its functionality. + +% AUTHOR +% Peter Williams, Key Centre for Design Quality, Sydney University +% e-mail: peterw@archsci.arch.su.oz.au + +ENTRY + { address author booktitle chapter edition editor howpublished institution + journal key month note number organization pages publisher school + series title type volume year} + { field.used } + { canonical.label extra.label sort.label list.year } + + +INTEGERS {quoted italic bold plain attribute + space comma tiedcomma semicolon colon period block empty separator + prev.separator next.separator next.attribute} + +STRINGS { s temp f name.list first.name.format later.name.formats name.style} + +FUNCTION {init.state.consts} +{ + #100 'quoted := + #200 'italic := + #300 'bold := + #400 'plain := + + #7 'space := + #6 'comma := +% #5 'tiedcomma := +% #4 'semicolon := +% #3 'colon := + #2 'period := + #1 'block := + #0 'empty := +} + +FUNCTION {output2} +{ +% Wrap the attribute. + attribute bold = {"{\bf " swap$ * "}" *} {} if$ + attribute italic = {"{\it " swap$ * "}" *} {} if$ + attribute quoted = {"`" swap$ * "'" *} {} if$ +% Append additional separators + separator comma = {"," * space 'separator :=} {} if$ +% separator tiedcomma = {",~" * empty 'separator :=} {} if$ + separator space = {" " *} {} if$ + write$ + separator block = {newline$ "\newblock " write$} {} if$ +% Update variables, and put the new string back on the stack + next.attribute 'attribute := + next.separator 'separator := + temp +} + +% <string> <separator> <string> <attribute> <final separator> output <string> +FUNCTION {output.nonnull} +{ 'next.separator := + 'next.attribute := + 'temp := + 'prev.separator := +% If the new separator is stronger than the previous one, use it. + prev.separator separator < {prev.separator 'separator :=} {} if$ +% Append most separators to the string. + separator block = {add.period$} {} if$ + separator period = {add.period$ space 'separator :=} {} if$ + separator comma = {"," * space 'separator :=} {} if$ +% separator semicolon = {";" * space 'separator :=} {} if$ +% separator colon = {":" * space 'separator :=} {} if$ + output2 +} + +FUNCTION {output} +{ 'next.separator := + 'next.attribute := + duplicate$ empty$ + {pop$ pop$} + {next.attribute next.separator output.nonnull} + if$ +} + +FUNCTION {output.check} +{ 's := + 'next.separator := + 'next.attribute := + duplicate$ empty$ + {pop$ pop$ "empty " s * " in " * cite$ * warning$ } + {next.attribute next.separator output.nonnull} + if$ +} + +FUNCTION {item.check} +{ 'temp := + empty$ + { "empty " temp * " in " * cite$ * warning$ } + {} + if$ +} + +FUNCTION {plain.space} { plain space } + +FUNCTION {plain.space.output} { plain.space output } + +FUNCTION {fin.entry} +{ block note plain.space.output + + empty 'separator := + empty "" plain empty output.nonnull pop$ + newline$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ {} + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + {} + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + {} + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { add.period$ "`" swap$ * "'" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'name.list := + 'name.style := + 'later.name.formats := + 's := % binary separator + 'first.name.format := + #1 'nameptr := + name.list num.names$ 'numnames := +% If we're to make this entry bold or something, prepend to the string of names + name.style "" = {} {"{" name.style *} if$ + numnames 'namesleft := + { namesleft #0 > } + { name.list nameptr nameptr #1 = {first.name.format} {later.name.formats} if$ + format.name$ 'temp := + nameptr #1 > + { namesleft #1 > + { ", " * temp * } + { temp "others" = + { " et~al." * } + {nameptr #2 = % handle ", and" vs " and " + {s * temp *} + {", and " * temp * } + if$ + } + if$ + } + if$ + } + 'temp + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +% If we're to make this entry bold or something, append to the string of names + name.style "" = {} {"}" * *} if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { extra.label "\bysame" = + {"\bysame"} + { "{vv~}{ll}{, jj}{, ff}" ", and " "{ff~}{vv~}{ll}{, jj}" "" author + format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { "{vv~}{ll}{, jj}{, ff}" ", and " "{ff~}{vv~}{ll}{, jj}" "" + editor format.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "" } + { "ed. " + "{ff~}{vv~}{ll}{, jj}" " and " "{ff~}{vv~}{ll}{, jj}" "" + editor format.names + * + } + if$ +} + +FUNCTION {format.title} +{ space + title empty$ + { "" } + { title "t" change.case$} + if$ + quoted period +} + +FUNCTION {n.dashify} +{ 'temp := + "" + { temp empty$ not } + { temp #1 #1 substring$ "-" = + { temp #1 #2 substring$ "--" = not + { "--" * + temp #2 global.max$ substring$ 'temp := + } + { { temp #1 #1 substring$ "-" = } + { "-" * + temp #2 global.max$ substring$ 'temp := + } + while$ + } + if$ + } + { temp #1 #1 substring$ * + temp #2 global.max$ substring$ 'temp := + } + if$ + } + while$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +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$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol." volume tie.or.space.connect + series empty$ + {} + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {mid.sentence.q} +{ + separator empty = separator block = separator period = or or not +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + {series field.or.null} + { mid.sentence.q + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { add.period$ " In " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition + mid.sentence.q { "l"} { "t"} if$ + change.case$ " ed." * + } + if$ +} + +FUNCTION {format.publisher.address} +{ + publisher empty$ address empty$ and + {} + { space + address empty$ {"("} {"(" address *} if$ + publisher empty$ address empty$ or {} {": " *} if$ + publisher empty$ {} {publisher *} if$ + ")" * plain.space output.nonnull + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 'temp := + #0 'multiresult := + { multiresult not + temp empty$ not + and + } + { temp #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { temp #2 global.max$ substring$ 'temp := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {output.vol.num.pages} +{ space + volume field.or.null + number empty$ + {} + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + {} + if$ + } + if$ + pages empty$ + {} + { duplicate$ empty$ + { pop$ format.pages } + { ",~" * pages n.dashify * } + if$ + } + if$ + plain.space.output +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + {} + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {output.in.ed.booktitle} +{ booktitle empty$ + { booktitle "booktitle" item.check } + { space "In" plain.space output.nonnull + editor empty$ + { space booktitle quoted space output.nonnull} + { space booktitle italic comma output.nonnull + comma format.editors.reverse plain.space output.nonnull} + if$ + } + if$ +} + +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$ } + {} + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + {} + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\it " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { add.period$ "In \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\it " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {output.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + } + { period "In {\it " booktitle * "\/}" * " \cite{" * crossref * "}" * plain.space output.nonnull} + if$ + } + { period "In \citeasnoun{" crossref * "}" * plain.space output.nonnull} + if$ + } + { period "In \citeasnoun{" crossref * "}" * plain.space output.nonnull} + if$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {format.lab.names.abbr} +{ 'name.list := + name.list num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { name.list #1 "{vv~}{ll}" format.name$ " et al." * } + { name.list #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { name.list #1 "{vv~}{ll}" format.name$ " et al." * } + { name.list #1 "{vv~}{ll}" format.name$ " and " * + name.list #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + field.used editor.field = {", eds" *} {} if$ + } + { + name.list #1 "{vv~}{ll}" format.name$ + field.used editor.field = {", ed" *} {} if$ + } + if$ +} + +FUNCTION {format.lab.names.full} +{ 'name.list := + #1 'nameptr := + name.list num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { name.list nameptr "{vv~}{ll}" format.name$ 'temp := + nameptr #1 > + { namesleft #1 > + { ", " * temp * } + { temp "others" = + { " et~al." * } + { " and " * temp * } + if$ + } + if$ + } + 'temp + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #1 > field.used editor.field = and {", eds" *} {} if$ + numnames #1 = field.used editor.field = and {", ed" *} {} if$ +} + +FUNCTION {make.list.label} +{ author.field field.used = + { format.authors } + { editor.field field.used = + { format.editors } + { organization.field field.used = + { "The " #4 organization chop.word} + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} +{ author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + make.full.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + empty 'separator := + plain 'attribute := + + +% FUNCTION {list.label.output} + +space make.list.label plain.space output.nonnull + "n.d." list.year = + {} + { space "(" list.year * ")" * plain.space output.nonnull} + if$ +} + +FUNCTION {format.title.if.not.sortkey} +{title.field field.used = + {} + { format.title output } + if$} + +FUNCTION {format.title.if.not.sortkey.check} +{title.field field.used = + {} + { format.title "title" output.check } + if$} + +FUNCTION {article} +{ output.bibitem + author "author" item.check + format.title.if.not.sortkey.check + crossref missing$ + { space journal italic space "journal" output.check + pages empty$ + {} + {output.vol.num.pages} + if$ + } + { space format.article.crossref plain.space output.nonnull + comma format.pages plain.space.output + } + if$ + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + {} + if$ + } + if$ + title.field field.used = + {} + { space title italic space "title" output.check } + if$ + crossref missing$ + { + space format.number.series plain.space.output + comma format.edition plain.space.output + comma format.bvolume plain.space.output + format.publisher.address + } + { space format.book.crossref plain.space output.nonnull + comma format.edition plain.space.output + } + if$ + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.title.if.not.sortkey.check + space howpublished plain.space.output + space address plain.space.output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + {} + if$ + } + if$ + title.field field.used = + {} + { space title italic space "title" output.check } + if$ + crossref missing$ + { space format.number.series plain.space.output + comma format.edition plain.space.output + comma format.bvolume plain comma output + format.publisher.address +% space publisher plain.space "publisher" output.check +% space address plain.space.output + } + { space format.book.crossref plain.space output.nonnull + comma format.edition plain.space.output + } + if$ + format.chapter.pages "chapter and pages" output.check + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.title.if.not.sortkey.check + author "author" item.check + crossref missing$ + { output.in.ed.booktitle + comma format.edition plain.space.output + comma format.bvolume plain.space.output + space format.number.series plain.space.output + format.publisher.address + } + { output.incoll.inproc.crossref } + if$ + space format.chapter.pages plain.space.output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.title.if.not.sortkey.check + author "author" item.check + crossref missing$ + { output.in.ed.booktitle + comma format.bvolume plain.space.output + space format.number.series plain.space.output + address empty$ + { space organization plain.space.output + space publisher plain.space.output + } + { space organization plain.space.output + space publisher plain.space.output + space address plain.space output.nonnull + } + if$ + } + { output.incoll.inproc.crossref} + if$ + space format.pages plain.space.output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + title.field field.used = + {} + {author empty$ {comma}{space} if$ + title italic space "title" output.check } + if$ + organization.field field.used = organization empty$ or + {} {space organization plain.space output.nonnull} if$ + comma format.edition plain.space.output + format.publisher.address + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + author "author" item.check + format.title.if.not.sortkey.check space "Master's thesis" format.thesis.type plain.space output.nonnull + comma school plain.space "school" output.check + comma address plain.space.output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.title.if.not.sortkey + space howpublished plain.space.output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + author "author" item.check + format.title.if.not.sortkey.check + space "PhD dissertation" format.thesis.type plain.space output.nonnull + comma school plain.space "school" output.check + comma address plain.space.output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + title.field field.used = + {} + { space title italic space "title" output.check } + if$ + comma format.bvolume plain.space.output + space format.number.series plain.space.output + address empty$ + { editor empty$ + {} + { space organization plain.space.output + } + if$ + space publisher plain.space.output + } + { editor empty$ + {} + { space organization plain.space.output } + if$ + space publisher plain.space.output + space address plain.space output.nonnull + } + if$ + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author "author" item.check + format.title.if.not.sortkey.check + space format.tr.number plain.space output.nonnull + institution empty$ + {} + { comma institution plain.space "institution" output.check } + if$ + comma address plain.space.output + comma month plain.space.output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author "author" item.check + format.title.if.not.sortkey.check + note "note" item.check + fin.entry +} + +FUNCTION {default.type} { misc } + +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 + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {author.key.label} +{ author empty$ + { title empty$ + { key.field 'field.used := } + { title.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { title empty$ + { key.field 'field.used := } + { title.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { organization empty$ + { title empty$ + { key.field 'field.used := } + { title.field 'field.used := } + if$ + } + { organization.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { organization empty$ + { title empty$ + { key.field 'field.used := } + { title.field 'field.used := } + if$ + } + { organization.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 'temp := + "A " #2 + "An " #3 + "The " #4 temp chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + make.abbr.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {first.presort} +{ calc.label + sort.label + title.field field.used = + {} + { " " + * + make.list.label sortify + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { 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 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + {} + if$ + year empty$ + { "n.d." extra.label * 'list.year := } + { year extra.label * 'list.year := } + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ make.list.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + {} + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + +STRINGS { prev.author } + +INTEGERS { number.label } + +FUNCTION {initialize.longest.label} +{ + #1 'number.label := + "abcxyz" 'prev.author := +} + +FUNCTION {longest.label.pass} +{ +author empty$ { editor empty$ {"foo"} {editor} if$} {author} if$ + prev.author = + { "\bysame" 'extra.label := } + { "" 'extra.label := +author empty$ { editor empty$ {"abcxyz"} {editor} if$} {author} if$ + 'prev.author := + } + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + {} + { preamble$ write$ newline$ } + if$ + "\ifx\undefined\bysame" write$ newline$ + "\newcommand{\bysame}{\leavevmode\hbox to\leftmargin{\hrulefill\,\,}}" + write$ newline$ + "\fi" write$ newline$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} + {newline$ "\end{thebibliography}" write$ newline$ } + +EXECUTE {end.bib} + diff --git a/biblio/bibtex/contrib/economic/cje.sty b/biblio/bibtex/contrib/economic/cje.sty new file mode 100644 index 0000000000..356c9de5d9 --- /dev/null +++ b/biblio/bibtex/contrib/economic/cje.sty @@ -0,0 +1,21 @@ +\message{Document style option `cje.sty' (29 May 1993) for LaTeX 2.09.} +\textwidth=28pc +\textheight=46pc + +\def\bysame{\leavevmode\hbox to\leftmargin{\leaders\hrule height 3pt depth -2.5pt\hfill\,\,}} + +\def\thebibliography#1{\section*{\refname\@mkboth + {\uppercase{\refname}}{\uppercase{\refname}}}\list + {\@biblabel{\arabic{enumiv}}}{\labelwidth=12pt + \labelsep=0pt + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \itemsep=0pt\parsep=0pt + \usecounter{enumiv}% + \let\p@enumiv\@empty + \def\theenumiv{\arabic{enumiv}}}% + \def\newblock{\hskip .11em plus.33em minus.07em}% + \sloppy\clubpenalty4000\widowpenalty4000 + \raggedright + \sfcode`\.=1000\relax} + diff --git a/biblio/bibtex/contrib/economic/ecca-ex.bib b/biblio/bibtex/contrib/economic/ecca-ex.bib new file mode 100644 index 0000000000..c1cb4b09b9 --- /dev/null +++ b/biblio/bibtex/contrib/economic/ecca-ex.bib @@ -0,0 +1,142 @@ +This file was created with JabRef 2.2. +Encoding: ISO8859_1 + +@INCOLLECTION{allen95, + author = {F. Allen and A. Winton}, + title = {Corporate Financial Structure, Incentives and Optimal Contracting}, + booktitle = {Handbooks in Operations Research and Management Science}, + publisher = {Elsevier}, + year = {1995}, + editor = {R. A. Jarrow and V. Maksomivic and W. T. Ziemba}, + volume = {9}, + chapter = {Finance}, + address = {New York} +} + +@BOOK{atkinson92, + title = {Empirical Studies of Earnings Mobility}, + publisher = {Harwood}, + year = {1992}, + author = {A. B. Atkinson and F. Bourguignon and C. Morrisson}, + address = {New York} +} + +@ARTICLE{bernanke88, + author = {B. Bernanke and A. Blinder}, + title = {Credit, Money and Aggregate Demand}, + journal = {American Economic Review, Papers and Proceedings}, + year = {1988}, + volume = {78}, + pages = {435-9}, + owner = {Arne}, + timestamp = {2007.05.09} +} + +@ARTICLE{bernanke95, + author = {B. Bernanke and M. Gertler}, + title = {Inside the Black Box: The Credit Channel of Monetary Policy Transmission}, + journal = {Journal of Economic Perspectives}, + year = {1995}, + volume = {9}, + pages = {27-48}, + number = {4}, + owner = {Arne}, + timestamp = {2007.05.09} +} + +@ARTICLE{bernanke96, + author = {B. Bernanke and M. Gertler and S. Gilchrist}, + title = {The Financial Accelerator and the Flight to Quality}, + journal = {Review of Economics and Statistics}, + year = {1996}, + volume = {78}, + pages = {1-152}, + owner = {Arne}, + timestamp = {2007.05.09} +} + +@BOOK{brown00, + title = {My Favourite Brown Book}, + publisher = {Brownpress}, + year = {2000}, + author = {Bobby Brown}, + address = {Brownington}, + owner = {Arne}, + timestamp = {2007.05.09} +} + +@INCOLLECTION{brown00a, + author = {Bobby Brown and Sally Smith}, + title = {Econometric Analysis of the Banking Sector}, + booktitle = {Quantitative Economic Analysis}, + publisher = {Smith Publishing}, + year = {2000}, + editor = {Mary Miller}, + pages = {12-34}, + address = {Paris}, + owner = {Arne}, + timestamp = {2007.05.09} +} + +@ARTICLE{jones99, + author = {John Jones}, + title = {Estimation of Demand Elasticities}, + journal = {My Favourite Journal}, + year = {1999}, + volume = {77}, + pages = {77-99}, + owner = {Arne}, + timestamp = {2007.05.09} +} + +@TECHREPORT{jones99a, + author = {John Jones}, + title = {Estimation of Demand Curves}, + institution = {Jones University}, + year = {1999}, + type = {Working Paper}, + number = {234}, + owner = {Arne}, + timestamp = {2007.05.09} +} + +@ARTICLE{jones98, + author = {John Jones and Sally Smith and Whitney White}, + title = {Inefficiencies in the Banking Sector}, + journal = {American Journal of Efficiency in Banking}, + year = {1998}, + volume = {58}, + pages = {56-78}, + owner = {Arne}, + timestamp = {2007.05.09} +} + +@ARTICLE{klein04, + author = {Susan Klein and Sally Smith and Whitney White}, + title = {The {American} Tax System}, + journal = {Journal of International Taxation}, + year = {2004}, + volume = {2}, + pages = {134-156}, + owner = {Arne}, + timestamp = {2007.05.12} +} + +@BOOK{klein06, + title = {{GDP} Growth in the {EU}}, + publisher = {European Science Publishers}, + year = {2006}, + author = {Susan Klein and Whitney White}, + address = {London}, + owner = {Arne}, + timestamp = {2007.05.12} +} + +@comment{jabref-meta: selector_journal:} + +@comment{jabref-meta: selector_author:} + +@comment{jabref-meta: selector_keywords:} + +@comment{jabref-meta: selector_publisher:} + diff --git a/biblio/bibtex/contrib/economic/ecca-ex.pdf b/biblio/bibtex/contrib/economic/ecca-ex.pdf Binary files differnew file mode 100644 index 0000000000..9ab786e16e --- /dev/null +++ b/biblio/bibtex/contrib/economic/ecca-ex.pdf diff --git a/biblio/bibtex/contrib/economic/ecca-ex.tex b/biblio/bibtex/contrib/economic/ecca-ex.tex new file mode 100644 index 0000000000..a11af99e1b --- /dev/null +++ b/biblio/bibtex/contrib/economic/ecca-ex.tex @@ -0,0 +1,183 @@ +\documentclass[endfloat]{ecca} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage{csquotes} +\MakeInnerQuote{"} + +\usepackage{hyperref} +\hypersetup{% + colorlinks = {true}, + urlcolor = {blue}, + linkcolor = {black}, + citecolor = {black}, + pdfauthor = {Arne Henningsen}, + pdftitle = {Testing LaTeX class and BibTeX style for the + Journal Economica (ECCA)}, + pdfkeywords = {Economica, BibTeX, LaTeX} +} + +\usepackage{multido} + +\title{Testing \LaTeX{} class and Bib\TeX{} style for the + Journal ``Economica'' (ECCA)} +\author{Arne Henningsen \and{} Jim Nobody} +\keywords{Economica, BibTeX, LaTeX} +\jelclass{A1, B2, C3} + +\begin{document} + +\maketitle + +\begin{abstract} +\multido{}{15}{This is an abstract. } +\end{abstract} + +\section*{Introduction} + +The first section header should not be numbered. +Hence, use the starred \texttt{\textbackslash{}section} command +for the header of this section, +i.e.\ \texttt{\textbackslash{}section$^*$\{Introduction\}}. +Type all (foot)notes at the end of the paper.% +\footnote{ +\multido{}{5}{This is automatically done with the "endnote" package. } +} +Place (long) tables and figures at the end of the paper +(see figure~\ref{fig:dummy} and table~\ref{tab:citations}). +You can use the class option "\texttt{endfloat}" to move +all float environments (figures and tables) +to the end of the output file, +i.e. use \texttt{\textbackslash{}documentclass[endfloat]\{ecca\}}. + +\begin{figure}[htbp] +\centering +\fbox{\parbox{0.6 \textwidth}{\centering + \vspace{0.2 \textwidth} + This is not a figure. + \vspace{0.2 \textwidth} +}} +\medskip\\ +Note: Do not forget to center your figures, +i.e.\ use command \texttt{\textbackslash{}centering}. +\caption{Dummy figure} +\label{fig:dummy} +\end{figure} + +\begin{figure}[htbp] +\centering +\fbox{\parbox{0.6 \textwidth}{\centering + \vspace{0.2 \textwidth} + This is not a figure, too. + \vspace{0.2 \textwidth} +}} +\caption{Figure with \multido{}{40}{very } long title} +\label{fig:long-title} +\end{figure} + + +\section{Manuscript Formatting} +The manuscript formatting instructions are available at +\url{http://www.blackwellpublishing.com/ecca}. + + +\section{Citations} +\subsection{Citations in Text} + +\citeauthor{brown00} in a paper on \ldots + +\citet[p.~12]{brown00} has shown that \ldots + +A proof is given by \citet{jones98}. + +An overview is available in table~\ref{tab:citations}. + +\begin{table}[htbp] +\centering +\caption{Citations} +\label{tab:citations} +\begin{tabular}{lll} +\hline +Author(s) & Year & Citation\\ +\hline +\citeauthor{brown00} & \citeyear{brown00} & \citet{brown00}\\ +\citeauthor{jones99} & \citeyear{jones99} & \citet{jones99}\\ +\citeauthor{jones99a} & \citeyear{jones99a} & \citet{jones99a}\\ +\citeauthor{brown00a} & \citeyear{brown00a} & \citet{brown00a}\\ +\citeauthor{jones98} & \citeyear{jones98} & \citet{jones98}\\ +\citeauthor{allen95} & \citeyear{allen95} & \citet{allen95}\\ +\citeauthor{atkinson92} & \citeyear{atkinson92} & \citet{atkinson92}\\ +\citeauthor{bernanke88} & \citeyear{bernanke88} & \citet{bernanke88}\\ +\citeauthor{bernanke95} & \citeyear{bernanke95} & \citet{bernanke95}\\ +\citeauthor{bernanke96} & \citeyear{bernanke96} & \citet{bernanke96}\\ +\hline +\end{tabular} +\medskip \\ +Notes: Do not use vertical lines in tables; +do not forget to center your tables, +i.e.\ use command \texttt{\textbackslash{}centering}. +\end{table} + + +\subsection{Citations in Parenthesis} + +This method has been criticised \citep{jones99a, jones99, brown00a}. + + +\section{Equations} +All displayed equations should be left-justified +and --- where necessary --- numbered consecutively (on the left). +\begin{equation} +y = a + X b +\end{equation} +where $a$ is a scalar, +$y$ and $b$ are vectors, +and $X$ is a matrix. + +Now, we have an unnumbered equation +\begin{equation*} +\theta = \alpha + \Psi \beta +\end{equation*} +where $\alpha$ is a scalar, +$\theta$ and $\beta$ are vectors, +and $\Psi$ is a matrix. + + +\section{Quotation Marks} +The "Economica" requires single quotes. +You can get pretty (typographically correct) quotation marks +by adding the commands +\verb!\usepackage{csquotes}! +and +\verb!\MakeInnerQuote{"}! +in your preamble and use the \verb!"! sign for quation marks in your text. + + +\section*{Acknowledgements} + +The Bib\TeX{} code to replace repeated author names by multiple dashes +in the list of references has been kindly provided by +Joseph A.\ Wright (\url{joseph.wright@morningstar2.co.uk}). + + +\listofendnotes + +\appendix + +\section{Websites of the "Economica"} +\begin{itemize} +\item \url{http://www.blackwellpublishing.com/ecca} +\item \url{http://darp.lse.ac.uk/Frankweb/Economica/EconomicaHome.htm} +\end{itemize} + +\section{Proofs} +\begin{equation*} +14 = 2 \cdot 7 = 2 ( 3 + 4 ) = 2 \cdot 3 + 2 \cdot 4 = 6 + 8 = 14 +\end{equation*} + + +\nocite{*} + +\bibliographystyle{ecca} +\bibliography{ecca-ex} + +\end{document} diff --git a/biblio/bibtex/contrib/economic/ecca.bst b/biblio/bibtex/contrib/economic/ecca.bst new file mode 100644 index 0000000000..1b1404a7fd --- /dev/null +++ b/biblio/bibtex/contrib/economic/ecca.bst @@ -0,0 +1,1655 @@ +%%% Journal "Economica" (ECCA) +%%% bibliography style for use with LaTeX2e +%%% version: 1.2 (15 May 2007) +%%% license: LaTeX Project Public License (see below) +%%% This file was created with makebst (see below) and modified +%%% by Arne Henningsen. +%%% The code to replace repeated author names by multiple dashes +%%% has been kindly provided by +%%% Joseph A. Wright <joseph.wright@morningstar2.co.uk> +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the Guidelines of Economica in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% It is recommended to use the document class "ecca" +%%% +%%% Websites of the "Economica": +%%% http://www.blackwellpublishing.com/ecca +%%% http://darp.lse.ac.uk/Frankweb/Economica/EconomicaHome.htm +%% +%% This is file `ecca.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rev,jnrlst,nmdash,nmft,nmft-sc,nmand-rm,keyxyr,blkyear,dt-beg,yr-par,yrp-per,yrpp-xsp,note-yr,trtit-b,vol-bf,vnum-sp,volp-com,num-xser,numser,ser-vol,add-pub,pre-pub,edpar,blk-tit,pp,ed,abr,ord,and-xcom,etal-it,em-it,nfss,') +%% ---------------------------------------- +%% *** Journal Economica *** +%% +%% Copyright 1994-2004 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {no.blank.or.punct} +{ "\hspace{0pt}" * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.sentence +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +FUNCTION {scaps} +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} +FUNCTION {bib.name.font} +{ scaps } +FUNCTION {bib.fname.font} +{ bib.name.font } +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo } +INTEGERS { nameptr namesleft numnames lastmatch } + +STRINGS { oldnames namestring currentname exname exnametmp } +INTEGERS { namecnt position } + +% This function builds up a list of names with no formatting. +% The names are separtaed by semi-colons for easy unpicking +FUNCTION {store.name} +{ duplicate$ + namestring swap$ + ";" * * + 'namestring := +} + +FUNCTION {extract.name} +{ #0 'namecnt := + #0 'position := + "" 'exnametmp := + { oldnames text.length$ position > + nameptr namecnt > and } + { position #1 + 'position := + oldnames position #1 substring$ + duplicate$ ";" = + { pop$ + namecnt #1 + 'namecnt := + exnametmp 'exname := + "" 'exnametmp := } + { exnametmp swap$ * + 'exnametmp := } + if$ + } + while$ + exname +} + +FUNCTION {compare.name} +{ duplicate$ 'currentname := + nameptr #1 - lastmatch = + { extract.name currentname = + { pop$ "---" + nameptr 'lastmatch := } + 'skip$ + if$ + } + 'skip$ + if$ +} + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + namestring 'oldnames := % Copy the stored names to the oldnames list + "" 'namestring := % and blank the current name string + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, f.}{, jj}" + format.name$ + store.name + compare.name % Save the current name to our storage list + bib.name.font + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + #0 'lastmatch := + } + if$ +} + +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} +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$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "~(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { type empty$ + { "" } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + emphasize + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.sentence + format.number.series output + format.publisher.address output + } + { + new.sentence + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.number.series output + format.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.sentence + } + { + format.chapter.pages "chapter and pages" output.check + new.sentence + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.number.series output + format.bvolume output + format.chapter output + format.edition output + format.publisher.address output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.bvolume output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.sentence + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.sentence + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.sentence + howpublished "howpublished" bibinfo.check output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.sentence + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.sentence + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal emphasize * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal emphasize * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `ecca.bst'. diff --git a/biblio/bibtex/contrib/economic/ecca.cls b/biblio/bibtex/contrib/economic/ecca.cls new file mode 100644 index 0000000000..2b9bfa9a67 --- /dev/null +++ b/biblio/bibtex/contrib/economic/ecca.cls @@ -0,0 +1,252 @@ +%%% LaTeX class for manuscripts submitted to the +%%% Journal "Economica" (ecca) +%%% +%%% author: Arne Henningsen +%%% version: 1.1 (01 Feb 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the Formatting Instructions of the "Economica" in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, courier, endfloat, endnotes, geometry, +%%% helvet, ifthen, mathptmx, natbib, setspace, url +%%% +%%% The corresponding BibTeX style file "ecca.bst" should be used +%%% for the bibliography: \bibliographystyle{ecca} +%%% +%%% This document class provides 3 new commands: +%%% \keywords can be used to show keywors below the abstract +%%% \jelclass can be used to show JEL classifications below the abstract +%%% \affiliation can be used spefify the affiliation(s) of the author(s) +%%% +%%% The Economica requires that you use single quotes +%%% you could do this with the ``csquotes'' package: +%%% \usepackage{csquotes} +%%% \MakeInnerQuote{<yourQuoteCharacter>} +%%% +%%% If you use footnotes, add following line before the reference section: +%%% \listofendnotes +%%% +%%% Websites of the "Economica": +%%% http://www.blackwellpublishing.com/ecca +%%% http://darp.lse.ac.uk/Frankweb/Economica/EconomicaHome.htm + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{ecca}[2009/02/01 LaTeX class for the Journal 'Economica'] + +\RequirePackage{ifthen} + +% option to place floats at the end +\newcounter{UseEndfloat} +\setcounter{UseEndfloat}{0} +\DeclareOption{endfloat}{\setcounter{UseEndfloat}{1}} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,pointlessnumbers,tablecaptionabove, + noonelinecaption]{scrartcl} +% pointlessnumbers = do not add final dot after ordinary section numbers +% tablecaptionabove = use \captionabove for tables +% noonelinecaption = do not treat one-line captions differently + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% page format, margins +\RequirePackage{geometry} +\geometry{a4paper, tmargin=2.5cm, bmargin=2.8cm, lmargin=2.5cm, + rmargin=2.5cm, headheight=0cm, headsep=0cm, footskip=1.2cm } + +% double spacing +\RequirePackage{setspace} +\doublespacing + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{15pt} + +% font families: times/helvetica/courier +\RequirePackage{mathptmx} +\RequirePackage[scaled=0.90]{helvet} +\RequirePackage{courier} + +% amsmath +\RequirePackage[leqno,fleqn]{amsmath} +% leqno = equations are numbered at the left of the page +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +%% formatting section headers +% numbered by Roman numerals +\renewcommand{\thesection}{\Roman{section}.} +% font +\setkomafont{section}{\normalfont \scshape} +% center section headers (copied from scrartcl.cls and modified thereafter) +\renewcommand\section{\@startsection{section}{1}{\z@}% + {-2.0ex \@plus -1ex \@minus -.2ex}% + {0.5ex \@plus.2ex}% + {\setlength{\parfillskip}{\z@ \@plus 1fil}% + \raggedsection\normalfont\sectfont\nobreak\size@section\nobreak \centering }} +% do not number section "Introduction" +% \let\sectionOrig\section +% \renewcommand{\section}[1]{ +% \ifthenelse{ \equal{ #1 }{ Introduction } } +% {\sectionOrig*{#1}} +% {\sectionOrig{#1}} +% } + +%% formatting subsection headers +% numbered alphabetically +\renewcommand{\thesubsection}{(\alph{subsection})} +% font +\setkomafont{subsection}{\normalfont \itshape} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\AtBeginDocument{\renewcommand{\refname}{REFERENCES}} +\setlength{\bibsep}{0pt} + +%% use endnotes in place of footnotes +\RequirePackage{endnotes} +\renewcommand{\notesname}{NOTES} +\let\footnote=\endnote +\newcommand{\listofendnotes}{ + \begingroup + \parindent 0pt + \parskip 0ex + \def\enotesize{\normalsize} + \theendnotes + \endgroup +} +% use normalsize numbers (copied from endnote.sty and modified thereafter) +\def\enoteformat{\rightskip\z@ \leftskip\z@ \parindent=0em + \leavevmode\llap{\theenmark. }} + +%% modify section headers in the appendix +% (copied from scrartcl.cls and modified thereafter) +\renewcommand*\appendix{\par% + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \renewcommand*\thesection{Appendix~\@Alph\c@section}% + \let\othersectionlevelsformat\othersectionlevelsformatAppendix + \@ifundefined{appendixmore}{}{\appendixmore}} +\newcommand*{\othersectionlevelsformatAppendix}[1]{% + \ifthenelse{ \equal{ #1 }{ section } } + {\csname the#1\endcsname : \enskip} + {\csname the#1\endcsname\autodot\enskip} +} + + +% captions of figures and tables +\setcapwidth[c]{\textwidth} +\setcapindent*{0pt} +\setkomafont{captionlabel}{\centering \scshape} +\setkomafont{caption}{\centering \scshape} +\renewcommand{\captionformat}{} + +% move floats to the end of the paper +\ifthenelse{\equal{\theUseEndfloat}{1}}{ + \RequirePackage[heads,nolists,tablesfirst]{endfloat} + \renewcommand{\figureplace}{% + \begin{center} + [\figurename~\thepostfig\ here] + \end{center} + } + \renewcommand{\tableplace}{% + \begin{center} + [\tablename~\theposttbl\ here] + \end{center} + } +}{} + +% titlepage with title, author, affiliation and date +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\renewcommand{\and}{{\normalfont and}} +\renewcommand{\maketitle}{ + \begin{center} + \begin{Large} + \begin{spacing}{1.25} + \@title + \end{spacing} + \end{Large} + \vspace*{5mm} + By \textsc{\@author}\\ + \ifthenelse{ \isundefined\@affiliation }{}{ + \vspace*{3mm} + \textit{\@affiliation}\\ + } + \vspace*{3mm} + \@date\\ + \vspace*{3mm} + \end{center} +} + + +% abstract, keywords, JEL classification +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} +\renewenvironment{abstract}{% +\begin{center} +\begin{minipage}{0.94 \textwidth} +\small +}{% +\ifthenelse{ \isundefined\@keywords }{ +\ClassWarningNoLine{ajae}{No keywords specified. + Please use the command \protect\keywords} +}{ + +\medskip \noindent +Key words: \@keywords +} +\ifthenelse{ \isundefined\@jelclass }{ +\ClassWarningNoLine{ajae}{No JEL classification specified. + Please use the command \protect\jelclass} +}{ + +\medskip \noindent +JEL classification: \@jelclass +} +\end{minipage} +\end{center}% +\noindent% +} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} diff --git a/biblio/bibtex/contrib/economic/econometrica-fr.bst b/biblio/bibtex/contrib/economic/econometrica-fr.bst new file mode 120000 index 0000000000..5a5db4ad0e --- /dev/null +++ b/biblio/bibtex/contrib/economic/econometrica-fr.bst @@ -0,0 +1 @@ +../../../../obsolete/biblio/bibtex/contrib/economic/econometrica-fr.bst
\ No newline at end of file diff --git a/biblio/bibtex/contrib/economic/econometrica.bst b/biblio/bibtex/contrib/economic/econometrica.bst new file mode 120000 index 0000000000..ae421ad862 --- /dev/null +++ b/biblio/bibtex/contrib/economic/econometrica.bst @@ -0,0 +1 @@ +../../../../obsolete/biblio/bibtex/contrib/economic/econometrica.bst
\ No newline at end of file diff --git a/biblio/bibtex/contrib/economic/ecta.bst b/biblio/bibtex/contrib/economic/ecta.bst new file mode 100644 index 0000000000..b1a55208cb --- /dev/null +++ b/biblio/bibtex/contrib/economic/ecta.bst @@ -0,0 +1,1503 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Econometrica bibliography style, +%%% +%%% for use with LaTeX2e and Natbib (or chicago), named style following the +%%% recommendations of Fudenberg and Hodges (1997), +%%% Econometrica Vol. 65, N. 4, pp. 965--975, +%%% found at http://www.econometricsociety.org/manual/manual.html +%%% for submission to Econometrica. +%%% +%%% by Sebastian Perez-Duarte, perez@ensae.fr (2000) +%%% +%%% Based on Makebst by Patrick Daly +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%% SUMMARY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Compared to the bst file econometrica.bst (by KC Border), the present +%%% style file is closer to the canonical way of presenting the list of +%%% references in Econometrica, a publication of the Econometric Society. +%%% +%%% The main differences are: the format of the address, the absence of number +%%% in articles. +%%%%%%%%%%%%%%%%%%%%%%%%%%%% LICENSE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% This generated file can be redistributed and/or modified under the terms +%%% of the LaTeX Project Public License Distributed from CTAN +%%% archives in directory macros/latex/base/lppl.txt; either +%%% version 1 of the License, or any later version. +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%% END %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% This is file `ecta.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,cay,nm-rev1,nmdash,nmft,nmft-sc,keyxyr,dt-beg,yr-par,yrp-col,note-yr,tit-qq,atit-u,thtit-a,vnum-x,volp-com,num-xser,bkpg-x,add-pub,pre-pub,edby,blk-com,ppx,ed,abr,ednx,xedn,nfss') +%% ---------------------------------------- +%% *** Econometrica -- close *** +%% +%% Copyright 1994-2000 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2000/05/04 4.01 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % or: chicago.sty + % The form of the bibitem entries is + % \bibitem[\protect\citeauthoryear{Jones, Baker, and Smith} + % {Jones et al.}{1990}{key}... + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + ":" * + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {scaps} +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} +FUNCTION {bib.name.font} +{ scaps } +FUNCTION {bib.fname.font} +{ bib.name.font } +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "ed. by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + duplicate$ #1 > + { "{f.~}{vv~}{ll}{, jj}" } + { "{vv~}{ll}{, jj}{, f.}" } + if$ + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + bib.name.font + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + t "others" = + 'skip$ + { bib.name.font } + if$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.editor + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\enquote{" swap$ * + non.stop + { ",} " * } + { "} " * } + if$ + } + if$ +} +FUNCTION {end.quote.title} +{ title empty$ + 'skip$ + { before.all 'output.state := } + if$ +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + "\protect\citeauthoryear{" make.full.names * "}{" * write$ + label write$ + "}{" year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + * extra.label * "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + bbl.edby + " " * swap$ * + swap$ + "," * + " " * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +STRINGS {oldname} + +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = +% { "---" } old style + { "---\hspace{-.1pt}---\hspace{-.1pt}---" } +%SPD 2000 + { s 'oldname := s } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + end.quote.title + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + end.quote.title + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.publisher.address output + format.bvolume output + format.number.series output + format.chapter.pages output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.bvolume output + format.number.series output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title + "title" output.check + end.quote.title + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title output + end.quote.title + howpublished "howpublished" bibinfo.check output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title + "title" output.check + end.quote.title + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title + "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + end.quote.title + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + ", " + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {calc.short.label} +{ calc.short.authors short.list + 'label := +} +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := + calc.short.label +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\newcommand{\enquote}[1]{``#1''}" + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `econm.bst'. diff --git a/biblio/bibtex/contrib/economic/erae-ex.bib b/biblio/bibtex/contrib/economic/erae-ex.bib new file mode 100644 index 0000000000..5ac2aec695 --- /dev/null +++ b/biblio/bibtex/contrib/economic/erae-ex.bib @@ -0,0 +1,42 @@ +This file was created with JabRef 1.7. +Encoding: ISO8859_1 + +@ARTICLE{Monier98, + author = {S. Monier-Dilhan and H. Ossard}, + title = {Producers' Loss due to Asymmetric Information: An Application to a Specific Case}, + journal = {European Review of Agricultural Economics}, + year = {1998}, + volume = {25}, + pages = {155-169}, +} + +@INCOLLECTION{Steenkamp97, + author = {J.-B. E. M. Steenkamp}, + title = {Dynamics in Consumer Behaviour with Respect to Agricultural and Food Products}, + booktitle = {Agricultural Marketing and Consumer Behaviour in a Changing World}, + publisher = {Kluwer Academic Publishers}, + year = {1997}, + editor = {B. Wieringa and A. van Tilburg and K. Grunert and J.-B. E. M. Steenkamp and M. Wedel}, + pages = {143-188}, + address = {Dordrecht}, +} + +@INPROCEEDINGS{Zeller97, + author = {Manfred Zeller and Gertrud Schrieder and Joachim von Braun and Franz Heidhues}, + title = {Rural Finance for Food Security for the Poor: Implications for Research and Policy}, + year = {1997}, + volume = {4}, + series = {Food Policy Review}, + address = {Washington DC}, + organization = {International Food Policy Research Institute (IFPRI)}, + publisher = {IFPRI}, +} + +@BOOK{Swinnen97, + title = {Political Economy of Agrarian Reform in Central and Eastern Europe}, + publisher = {Ashgate}, + year = {1997}, + editor = {Johan F. M. Swinnen}, + address = {Aldershot, UK}, +} + diff --git a/biblio/bibtex/contrib/economic/erae-ex.pdf b/biblio/bibtex/contrib/economic/erae-ex.pdf Binary files differnew file mode 100644 index 0000000000..107accea81 --- /dev/null +++ b/biblio/bibtex/contrib/economic/erae-ex.pdf diff --git a/biblio/bibtex/contrib/economic/erae-ex.tex b/biblio/bibtex/contrib/economic/erae-ex.tex new file mode 100644 index 0000000000..d81102d680 --- /dev/null +++ b/biblio/bibtex/contrib/economic/erae-ex.tex @@ -0,0 +1,151 @@ +\documentclass{erae} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage{csquotes} +\MakeInnerQuote{"} + +\usepackage{textcomp} +\usepackage{multido} + +\usepackage{hyperref} +\hypersetup{% + colorlinks = {true}, + urlcolor = {blue}, + linkcolor = {black}, + citecolor = {black}, + pdfauthor = {Arne Henningsen}, + pdftitle = {Testing LaTeX class and BibTeX style for the + European Review of Agricultural Economics (AJAE)}, + pdfkeywords = {ERAE, BibTeX, LaTeX} +} + +\usepackage{multido} + +\title{Testing \LaTeX{} class and Bib\TeX{} style for the + `European Review of Agricultural Economics' (ERAE)} +\keywords{ERAE, BibTeX, LaTeX} +\jelclass{A1, B2, C3} + +\begin{document} + +\maketitle + +\begin{abstract} +\multido{}{15}{This is an abstract. } +\end{abstract} + +\section{Introduction} +\multido{}{7}{This is an introduction. } + +Footnotes should appear at the end of the page in which they are inserted.% +\footnote{ +\multido{}{10}{This is a footnote. } +} +"Single quotation marks" can be conveniently inserted using +the "csquotes" package: +add the lines\\ +\verb!\usepackage{csquotes}!\\ +\verb!\MakeInnerQuote{"}!\\ +to the preamble of your \LaTeX{} file and use the inch symbol~(\verb!"!) +for quotation marks.% +\footnote{% +Of course, you can also define another symbol in the command +\texttt{\textbackslash{}MakeInnerQuote}, +e.g.\ the degree sign~($^{\circ}$). +} +Collect tables and figures at the end of the manuscript +(see figure~\ref{fig:dummy} and table~\ref{tab:citations}). + +\begin{figure}[htbp] +\fbox{\parbox{0.6 \textwidth}{\centering + \vspace{0.2 \textwidth} + This is not a figure. + \vspace{0.2 \textwidth} +}} +\caption{Dummy figure} +\label{fig:dummy} +\end{figure} + +\begin{figure}[htbp] +\fbox{\parbox{0.6 \textwidth}{\centering + \vspace{0.2 \textwidth} + This is not a figure, too. + \vspace{0.2 \textwidth} +}} +\caption{Figure with \multido{}{40}{very } long title} +\label{fig:long-title} +\end{figure} + +\section{Manuscript Formatting} +Instructions to authors including formatting guidelines are available at +\url{http://www.oxfordjournals.org/erae/for_authors/index.html}. +All references used as examples in these guidelines are shown in this document +to demonstrate that the ERAE Bib\TeX{} style complies with these guidelines. +Please report any problems at +\url{http://sourceforge.net/projects/economtex/}. + + +\section{Citations} +\subsection{Citations in Text} +\citet{Monier98} say A, \citet{Steenkamp97} says B, +\citet{Swinnen97} says C, and \citet{Zeller97} say D. +An overview is available in table~\ref{tab:citations}. + +\begin{table}[htbp] +\caption{Citations} +\label{tab:citations} +\begin{tabular}{lc} +\hline +Author(s) & Statement\\ +\hline +\citet{Monier98} & A\\ +\citet{Steenkamp97} & B\\ +\citet{Swinnen97} & C\\ +\citet{Zeller97} & D\\ +\hline +\end{tabular} +\medskip \\ +Note: Avoid vertical lines. +\end{table} + + +\subsection{Citations in Parenthesis} +A equals B \citep{Monier98}, B equals C \citep{Steenkamp97}, +C equals D \citep{Swinnen97}, and D equals A \citep{Zeller97}. +Hence, A, B, C, and D are all equal +\citep{Monier98, Steenkamp97, Swinnen97, Zeller97}. + +\subsection{Citations with Page Numbers} +Citations with page numbers can be coveniently inserted using the commands +\texttt{$\backslash$citetPage} and \texttt{$\backslash$citepPage}. + +\citetPage{123}{Monier98} say A, \citetPage{234}{Steenkamp97} says B, +\citetPage{345}{Swinnen97} says C, and \citetPage{456}{Zeller97} say D. +A equals B \citepPage{123}{Monier98}, B equals C \citepPage{234}{Steenkamp97}, +C equals D \citepPage{345}{Swinnen97}, and D equals A \citepPage{456}{Zeller97}. + + +\section{Equations} +All displayed equations should be centered +and numbered consecutively (on the right). +\begin{equation} +y = a + X b +\end{equation} +where $a$ is a scalar, +$y$ and $b$ are vectors, +and $X$ is a matrix. +Of course, you may also use Greek symbols. +\begin{equation} +\theta = \alpha + \Psi \beta +\end{equation} +where $\alpha$ is a scalar, +$\theta$ and $\beta$ are vectors, +and $\Psi$ is a matrix. + +\clearpage +\nocite{*} + +\bibliographystyle{erae} +\bibliography{erae-ex} + +\end{document} diff --git a/biblio/bibtex/contrib/economic/erae.bst b/biblio/bibtex/contrib/economic/erae.bst new file mode 100644 index 0000000000..8bfcab9960 --- /dev/null +++ b/biblio/bibtex/contrib/economic/erae.bst @@ -0,0 +1,1533 @@ +%%% European Review of Agricultural Economics (ERAE) +%%% bibliography style for use with LaTeX2e +%%% version: 1.1 (17 August 2009) +%%% license: LaTeX Project Public License (see below) +%%% This file was created with makebst (see below) and modified +%%% by Arne Henningsen. +%%% Note: This is an unofficial style file that may not fully comply +%%% with the ERAE reference guidelines in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% The following line has to be added to the LaTeX preamble: +%%% \usepackage[authoryear]{natbib} +%%% +%% +%% This is file `erae.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,vonx,nm-rev,ed-rev,jnrlst,keyxyr,dt-beg,yr-par,yrp-per,yrpp-xsp,note-yr,jttl-rm,trtit-b,vnum-x,volp-sp,pp-last,num-xser,numser,jnm-x,btit-rm,bt-rm,add-pub,pre-pub,doi,edpar,blk-tit,ppx,ed,abr,ednx,ord,and-xcom,em-x,') +%% ---------------------------------------- +%% *** ERAE *** +%% +%% Copyright 1994-2005 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2005/10/17 4.14 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + doi + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {no.blank.or.punct} +{ "\hspace{0pt}" * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.sentence +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds" } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll}{, f.}{, jj}{ vv}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.doi} +{ doi "doi" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\doi{" swap$ * "}" * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { series "series" bibinfo.check + volume "volume" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ "" space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} +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$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ": " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ": " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + new.sentence + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ + format.doi output + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.sentence + format.number.series output + format.publisher.address output + } + { + new.sentence + format.book.crossref output.nonnull + } + if$ + format.edition output + format.doi output + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.doi output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.number.series output + format.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.sentence + } + { + format.chapter.pages "chapter and pages" output.check + new.sentence + format.book.crossref output.nonnull + } + if$ + format.edition output + format.pages "pages" output.check + format.doi output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.number.series output + format.publisher.address output + format.bvolume output + format.chapter.pages output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.doi output + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.number.series output + format.bvolume output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.doi output + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + title "title" output.check + new.sentence + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.doi output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + title + "title" output.check + new.sentence + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.sentence + howpublished "howpublished" bibinfo.check output + format.doi output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + title + "title" output.check + new.sentence + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + title "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.doi output + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + title + "title" output.check + new.sentence + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.doi output + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else" + write$ newline$ + " \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `erae.bst'. diff --git a/biblio/bibtex/contrib/economic/erae.cls b/biblio/bibtex/contrib/economic/erae.cls new file mode 100644 index 0000000000..f615442e3d --- /dev/null +++ b/biblio/bibtex/contrib/economic/erae.cls @@ -0,0 +1,201 @@ +%%% LaTeX class for manuscripts submitted to the +%%% European Review of Agricultural Economics (ERAE) +%%% +%%% author: Arne Henningsen +%%% version: 1.3 (18 November 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the ERAE Formatting Instructions in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, courier, endfloat, geometry, +%%% helvet, ifthen, mathptmx, natbib, setspace, titlesec, url +%%% +%%% The class provides following options: +%%% noendfloat - don't move floats to the end of the paper +%%% author - show name(s) of authors(s) +%%% date - show date +%%% +%%% The ERAE requires that you use single quotes +%%% you could do this with the ``csquotes'' package: +%%% \usepackage{csquotes} +%%% \MakeInnerQuote{<yourQuoteCharacter>} +%%% +%%% The corresponding BibTeX style file "erae.bst" should be used +%%% for the bibliography: \bibliographystyle{erae} +%%% +%%% This document class provides 5 new commands: +%%% \keywords can be use to show keywors below the abstract +%%% \jelclass can be use to show JEL classifications below the abstract +%%% \affiliation can be used to add affiliation information +%%% \citetPage{page}{key} for citations like Author (Year: page) +%%% \citepPage{page}{key} for citations like (Author, year: page) +%%% + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{erae}[2009/11/18 LaTeX class for the European Review of Agricultural Economics] + +\RequirePackage{ifthen} + +% option to NOT place floats at the end +\newcounter{UseEndfloat} +\setcounter{UseEndfloat}{1} +\DeclareOption{noendfloat}{\setcounter{UseEndfloat}{0}} + +% option to show the authors' names +\newcounter{ShowAuthor} +\setcounter{ShowAuthor}{0} +\DeclareOption{author}{\setcounter{ShowAuthor}{1}} + +% option to print the date +\newcounter{ShowDate} +\setcounter{ShowDate}{0} +\DeclareOption{date}{\setcounter{ShowDate}{1}} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,pointednumbers,tablecaptionabove]{scrartcl} +% pointednumbers = add final dot after ordinary section numbers +% tablecaptionabove = use \captionabove for tables + +% page format, margins +\RequirePackage{geometry} +\geometry{a4paper, tmargin=2.5cm, bmargin=2.8cm, lmargin=2.5cm, + rmargin=2.5cm, headheight=0cm, headsep=0cm, footskip=1.2cm } + +% one half spacing +\RequirePackage{setspace} +\onehalfspacing + +% spacing around (sub)section headers +\RequirePackage{titlesec} +\titlespacing*{\section}{0pt}{1em}{0.25em} +\titlespacing*{\subsection}{0pt}{0.85em}{0.15em} + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{5pt} + +% font families: times/helvetica/courier +\RequirePackage{mathptmx} +\RequirePackage[scaled=.90]{helvet} +\RequirePackage{courier} + +% amsmath +\RequirePackage{amsmath} +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\setlength{\bibsep}{0pt} + +% captions of figures and tables +\setcapwidth[l]{\textwidth} +\setcapindent{0pt} +\setkomafont{captionlabel}{\normalfont\bfseries} +\renewcommand{\captionformat}{.\ } + +% titlepage without author and date +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\renewcommand{\maketitle}{ + \begin{center} + \begin{spacing}{1.5} + \LARGE{\textbf{\@title}}% + \end{spacing} + \ifthenelse{\equal{\theShowAuthor}{1}}{ + \begin{large} + \textbf{\@author}\\ + \end{large} + \ifthenelse{ \isundefined\@affiliation }{}{ + \vspace*{3mm} + \begin{small} + \@affiliation\\ + \end{small} + } + \vspace*{5mm} + }{} + \ifthenelse{\equal{\theShowDate}{1}}{ + \@date\\ + \vspace*{5mm} + }{} + \end{center} +} + +% abstract, keywords, JEL classification +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} +\renewenvironment{abstract}{% +\begin{center} +\begin{minipage}{0.9 \textwidth} +\small +\begin{center} +\textbf{Abstract} +\end{center} +}{% +\ifthenelse{ \isundefined\@keywords }{ +\ClassWarningNoLine{erae}{No keywords specified. + Please use the command \protect\keywords} +}{ +\smallskip\\ \noindent +Key words: \@keywords +} +\ifthenelse{ \isundefined\@jelclass }{ +\ClassWarningNoLine{erae}{No JEL classification specified. + Please use the command \protect\jelclass} +}{ +\smallskip\\ \noindent +JEL classification: \@jelclass +} +\end{minipage} +\end{center}% +\noindent% +} + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% move floats to the end of the paper +\ifthenelse{\equal{\theUseEndfloat}{1}}{ +\RequirePackage[heads,tablesfirst,nolists]{endfloat} +}{} + +% cite page numbers after colon +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}: #1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}: #1}} diff --git a/biblio/bibtex/contrib/economic/ier-bib-test.pdf b/biblio/bibtex/contrib/economic/ier-bib-test.pdf Binary files differnew file mode 100644 index 0000000000..4684e487f1 --- /dev/null +++ b/biblio/bibtex/contrib/economic/ier-bib-test.pdf diff --git a/biblio/bibtex/contrib/economic/ier-bib-test.tex b/biblio/bibtex/contrib/economic/ier-bib-test.tex new file mode 100644 index 0000000000..f6be8afa3f --- /dev/null +++ b/biblio/bibtex/contrib/economic/ier-bib-test.tex @@ -0,0 +1,26 @@ +\documentclass{article} +\usepackage{url} +\usepackage{natbib} + +\title{Testing the Bib\TeX{} style for the + \emph{International Economic Review} (IER)} + +\author{Arne Henningsen} + +\begin{document} +\maketitle + +\textbf{Note:} +Only the style of the list of references should be according +to the guidelines of the \emph{International Economic Review}.% +\footnote{% +\url{http://www.econ.upenn.edu/Centers/iereview/submissionsguidelines.htm} +} +There is currently no \LaTeX{} class or template for the style +of the paper itself. + + +\nocite{*} +\bibliographystyle{ier} +\bibliography{ier-ex} +\end{document} diff --git a/biblio/bibtex/contrib/economic/ier-ex.bib b/biblio/bibtex/contrib/economic/ier-ex.bib new file mode 100644 index 0000000000..77bad45c91 --- /dev/null +++ b/biblio/bibtex/contrib/economic/ier-ex.bib @@ -0,0 +1,115 @@ +% This file was created with JabRef 2.3.1. +% Encoding: ISO8859_1 + +@BOOK{arrow63, + title = {Social Choice and Individual Values}, + publisher = {Wiley}, + year = {1963}, + author = {Arrow, K. J.}, + address = {New York}, + edition = {2nd}, + owner = {suapm095}, + timestamp = {2009.08.14} +} + +@PHDTHESIS{chiang83, + author = {Chiang, S. C.}, + title = {Imperfection Information and Quality Upgrading}, + school = {Cornell University}, + year = {1983}, + owner = {suapm095}, + timestamp = {2009.08.14} +} + +@UNPUBLISHED{halvorsen86, + author = {Halvorsen, R. and T. Smith}, + title = {A Test of the Theory of Exhaustible Resources}, + note = {mimeo, University of Washington}, + year = {1986}, + owner = {suapm095}, + timestamp = {2009.08.14} +} + +@ARTICLE{kramer73, + author = {Kramer, G. H.}, + title = {On a Class of Equilibrium Conditions for Majority Rule}, + journal = {Econometrica}, + year = {1973}, + volume = {41}, + pages = {285-297}, + month = {March}, + owner = {suapm095}, + timestamp = {2009.08.14} +} + +@BOOK{krantz71, + title = {Foundations of Measurement}, + publisher = {Academic Press}, + year = {1971}, + author = {Krantz, H. D. and R. D. Luce and P. Suppes and A. Tversky}, + address = {New York}, + owner = {suapm095}, + timestamp = {2009.08.14} +} + +@INCOLLECTION{samuelson69, + author = {Samuelson, P. A.}, + title = {Pure Theory of Public Expenditure and Taxation}, + booktitle = {Public Economics}, + publisher = {Macmillan}, + year = {1969}, + editor = {J. Margolis and H. Guitton}, + pages = {98-123}, + address = {New York}, + owner = {suapm095}, + timestamp = {2009.08.14} +} + +@TECHREPORT{schworm77, + author = {Schworm, W. E.}, + title = {User Cost of Capital}, + institution = {Department of Economics, University of British Columbia}, + year = {1977}, + type = {Discussion Paper}, + number = {77-22}, + month = { July}, + owner = {suapm095}, + timestamp = {2009.08.14} +} + +@INCOLLECTION{sonuelsam96, + author = {Sonuelsam, Chapter}, + title = {Public Theory of Pure Taxation and Expenditure}, + booktitle = {Economic Publics}, + publisher = {Millanmac}, + year = {1996}, + editor = {J. Molgaris and H. Gonttui}, + chapter = {77}, + pages = {89-321}, + address = {Old York}, + owner = {suapm095}, + timestamp = {2009.08.14} +} + +@INCOLLECTION{sonuelsam96a, + author = {Sonuelsam, Series}, + title = {Public Theory of Pure Taxation and Expenditure}, + booktitle = {Economic Publics}, + publisher = {Millanmac}, + year = {1996}, + editor = {J. Molgaris and H. Gonttui}, + series = {Test Series}, + pages = {89-321}, + address = {Old York}, + owner = {suapm095}, + timestamp = {2009.08.14} +} + +@comment{jabref-meta: selector_publisher:} + +@comment{jabref-meta: selector_author:} + +@comment{jabref-meta: selector_journal:} + +@comment{jabref-meta: selector_keywords:} + diff --git a/biblio/bibtex/contrib/economic/ier.bst b/biblio/bibtex/contrib/economic/ier.bst new file mode 100644 index 0000000000..033174e4ec --- /dev/null +++ b/biblio/bibtex/contrib/economic/ier.bst @@ -0,0 +1,1549 @@ + +%% Built initially with Patrick Daly's custom-bib package and then +%% modified by Doug McKee 12/2006. Email any comments or suggestions to +%% Doug at dmckee@ucla.edu +%% +%% Jan 29, 2008: Fixed in response to the suggestions of Wladimir +%% Ray who kindly pointed out that the names should be in small caps +%% and repeated names should be replaced with dashes as in the +%% Econometrica bibliography style. +%% +%% +%% This is file `ier.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rev1,jnrlst,keyxyr,yr-par,aymth,note-yr,tit-qq,qx,bt-qq,atit-u,vnum-x,volp-blk,pp-last,num-xser,bkpg-x,add-pub,pub-date,pre-edn,blk-com,ppx,ed,xedn,and-xcom,nfss,') +%% ---------------------------------------- +%% *** International Economic Review *** +%% +%% Copyright 1994-2004 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {scaps} +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} +FUNCTION {bib.name.font} +{ scaps } +FUNCTION {bib.fname.font} +{ bib.name.font } +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edition" } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "{T}echnical {R}eport" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +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"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + duplicate$ #1 > + { "{f.~}{vv~}{ll}{, jj}" } + { "{vv~}{ll}{, f.}{, jj}" } + if$ + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + bib.name.font + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ + t "others" = + 'skip$ + { bib.name.font } + if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.editor + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\enquote{" swap$ * + ",} " * + } + if$ +} +FUNCTION {end.quote.title} +{ title empty$ + 'skip$ + { before.all 'output.state := } + if$ +} +FUNCTION {end.quote.btitle} +{ booktitle empty$ + 'skip$ + { before.all 'output.state := } + if$ +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + month "month" bibinfo.check duplicate$ empty$ + 'skip$ + { + " " * swap$ + } + if$ + * + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.tr.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + month "month" bibinfo.check duplicate$ empty$ + 'skip$ + { + " " * swap$ + } + if$ + * + extra.label * + before.all 'output.state := + ", " swap$ * +} +FUNCTION {format.unpub.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + month "month" bibinfo.check duplicate$ empty$ + 'skip$ + { + " " * swap$ + } + if$ + * + extra.label * + before.all 'output.state := + ", " swap$ * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + " " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {bt.enquote} +{ duplicate$ empty$ 'skip$ + { "\enquote{" swap$ * + "}, " * + } + if$ +} +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + "," * + " " * + get.bbl.editor + ", " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + add.blank "(" * + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + { "year" bibinfo.check extra.label * } + if$ + t empty$ address empty$ and + { * } + { ", " swap$ * * } + if$ + ")" * +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +STRINGS {oldname} + +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = +% { "---" } old style + { "---\hspace{-.1pt}---\hspace{-.1pt}---" } +%SPD 2000 + { s 'oldname := s } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.title "title" output.check + end.quote.title + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages + " " swap$ * + before.all 'output.state := + output + format.date "year" output.check + } + { format.article.crossref output.nonnull + } + if$ + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + format.publisher.address output + } + { + format.book.crossref output.nonnull + format.date "year" output.check + } + if$ + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.title "title" output.check + end.quote.title + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.edition output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + format.date "year" output.check + } + if$ + format.pages "pages" output.check + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + end.quote.btitle + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + format.publisher.address output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + end.quote.btitle + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.btitle "title" output.check + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.btitle + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.title output + end.quote.title + howpublished "howpublished" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.btitle + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + name.or.dash + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.title + "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.tr.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.title + "title" output.check + end.quote.title + note "note" output.check + institution field.or.null output + format.unpub.date "year" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\newcommand{\enquote}[1]{``#1''}" + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `ier.bst'. diff --git a/biblio/bibtex/contrib/economic/itaxpf-ex-title.pdf b/biblio/bibtex/contrib/economic/itaxpf-ex-title.pdf Binary files differnew file mode 100644 index 0000000000..b2472faea9 --- /dev/null +++ b/biblio/bibtex/contrib/economic/itaxpf-ex-title.pdf diff --git a/biblio/bibtex/contrib/economic/itaxpf-ex-title.tex b/biblio/bibtex/contrib/economic/itaxpf-ex-title.tex new file mode 100644 index 0000000000..95b3a18ea5 --- /dev/null +++ b/biblio/bibtex/contrib/economic/itaxpf-ex-title.tex @@ -0,0 +1,45 @@ +\documentclass[titlepage]{itaxpf} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} + +\usepackage{hyperref} +\hypersetup{% + colorlinks = {true}, + urlcolor = {blue}, + linkcolor = {black}, + citecolor = {black}, + pdfauthor = {Arne Henningsen}, + pdftitle = {Testing LaTeX class and BibTeX style for the + journal International Tax and Public Finance (ITAXPF)}, + pdfkeywords = {International Tax and Public Finance, BibTeX, LaTeX} +} + +\usepackage{multido} + +\title{Testing \LaTeX{} Class and Bib\TeX{} Style for the + Journal ``International Tax and Public Finance'' (ITAXPF)} + +\author{Arne Henningsen \and Jim Nobody} + +\affiliation{ +University~of~Kiel +} + +\address{ +Corresponding Author:\\ +Arne Henningsen\\ +Department of Agricultural Economics\\ +University of Kiel\\ +24098 Kiel, Germany\\ +Phone: +49-431-880-4445\\ +Fax: +49-431-880-1397\\ +\url{arne (dot) henningsen (at) gmail (dot) com} +} + + + +\begin{document} + +\maketitle + +\end{document} diff --git a/biblio/bibtex/contrib/economic/itaxpf-ex.bib b/biblio/bibtex/contrib/economic/itaxpf-ex.bib new file mode 100644 index 0000000000..90da9b992e --- /dev/null +++ b/biblio/bibtex/contrib/economic/itaxpf-ex.bib @@ -0,0 +1,44 @@ +This file was created with JabRef 2.2. +Encoding: ISO8859_1 + +@ARTICLE{becker64, + author = {Gordon Becker and Morris DeGroot and Jacob Marschak}, + title = {Measuring Utility by a Single-Response Sequential Method}, + journal = {Behavioral Science}, + year = {1964}, + volume = {9}, + pages = {226-232}, + owner = {Arne}, + timestamp = {2007.07.12} +} + +@BOOK{schoemaker80, + title = {Experiments in Decisions Under Risk: The Expected Utility Hypothesis}, + publisher = {Kluwer-Nijhoff Publishing}, + year = {1980}, + author = {Paul Schoemaker}, + address = {Boston}, + owner = {Arne}, + timestamp = {2007.07.12} +} + +@INCOLLECTION{smith86, + author = {V. Kerry Smith}, + title = {A Conceptual Overview of the Foundations of Benefit-Cost Analysis}, + booktitle = {Benefits Assessment: The State of the Art}, + publisher = {D. Reidel Publishing Co}, + year = {1986}, + editor = {Judith Bentkover and Vincent Covello and Jeryl Mumpower}, + address = {Dordrecht}, + owner = {Arne}, + timestamp = {2007.07.12} +} + +@comment{jabref-meta: selector_journal:} + +@comment{jabref-meta: selector_author:} + +@comment{jabref-meta: selector_keywords:} + +@comment{jabref-meta: selector_publisher:} + diff --git a/biblio/bibtex/contrib/economic/itaxpf-ex.pdf b/biblio/bibtex/contrib/economic/itaxpf-ex.pdf Binary files differnew file mode 100644 index 0000000000..bcaa1eeb18 --- /dev/null +++ b/biblio/bibtex/contrib/economic/itaxpf-ex.pdf diff --git a/biblio/bibtex/contrib/economic/itaxpf-ex.tex b/biblio/bibtex/contrib/economic/itaxpf-ex.tex new file mode 100644 index 0000000000..1235f7f5a2 --- /dev/null +++ b/biblio/bibtex/contrib/economic/itaxpf-ex.tex @@ -0,0 +1,113 @@ +\documentclass{itaxpf} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage{csquotes} +\MakeOuterQuote{"} + +\usepackage{hyperref} +\hypersetup{% + colorlinks = {true}, + urlcolor = {blue}, + linkcolor = {black}, + citecolor = {black}, + pdfauthor = {Arne Henningsen}, + pdftitle = {Testing LaTeX class and BibTeX style for the + journal International Tax and Public Finance (ITAXPF)}, + pdfkeywords = {International Tax and Public Finance, BibTeX, LaTeX} +} + +\usepackage{multido} + +\title{Testing \LaTeX{} Class and Bib\TeX{} Style for the + Journal ``International Tax and Public Finance'' (ITAXPF)} + +\author{Arne Henningsen \and Jim Nobody} + +\affiliation{University~of~Kiel} + +\keywords{International Tax and Public Finance, BibTeX, LaTeX} + +\jelclass{A1, B2, C3} + +\begin{document} + +\maketitle + +\begin{abstract} +\multido{}{15}{This is an abstract. } +\end{abstract} + + +\section{Introduction} + +\multido{}{15}{This is an introduction. } + + +\section{Manuscript Formatting} + +The manuscript formatting instructions are available at +\url{http://www.springerlink.com/link.asp?id=102915}.% +\footnote{ +Footnotes are automatically converted to endnotes. +} + + +\section{Citations} + +\subsection{Citations in Text} + +\citeauthor{becker64} in a paper on \ldots +\citet[p.~12]{schoemaker80} has shown that \ldots +A proof is given by \citet{smith86}. + +An overview is available in table~\ref{tab:citations}. + +\begin{table}[htbp] +\centering +\caption{Citations} +\label{tab:citations} +\begin{tabular}{lll} +\hline +Author(s) & Year & Citation\\ +\hline +\citeauthor{becker64} & \citeyear{becker64} & \citet{becker64}\\ +\citeauthor{schoemaker80} & \citeyear{schoemaker80} & \citet{schoemaker80}\\ +\citeauthor{smith86} & \citeyear{smith86} & \citet{smith86}\\ +\hline +\end{tabular} +\end{table} + + +\subsection{Citations in Parenthesis} + +This method has been criticised \citep{becker64, schoemaker80, smith86}. +$A$ is equal to $B$ \citep{becker64}. +$B$ is equal to $C$ \citep{schoemaker80}. + + +\subsection{List of References} + +Note: The Bib\TeX{} style \texttt{iptax.bst} does not follow exactly +the "Sample References" in the "Instructions for Authors", +but follows the lists of references in published articles +(although the formatting slightly differs between articles). + + +\section{Quotation Marks} +The journal "International Tax and Public Finance" requires double quotes. +You can get pretty (typographically correct) quotation marks +by adding the commands +\verb!\usepackage{csquotes}! +and +\verb!\MakeOuterQuote{"}! +in your preamble and use the \verb!"! sign for quation marks in your text. + + +\listofendnotes + +\nocite{*} + +\bibliographystyle{itaxpf} +\bibliography{itaxpf-ex} + +\end{document} diff --git a/biblio/bibtex/contrib/economic/itaxpf.bst b/biblio/bibtex/contrib/economic/itaxpf.bst new file mode 100644 index 0000000000..8b979103e1 --- /dev/null +++ b/biblio/bibtex/contrib/economic/itaxpf.bst @@ -0,0 +1,1480 @@ +%%% Journal "International Tax and Public Finance" (ITAXPF) +%%% bibliography style for use with LaTeX2e +%%% version: 1.0 (12 July 2007) +%%% license: LaTeX Project Public License (see below) +%%% This file was created with makebst (see below) and modified +%%% by Arne Henningsen. +%%% +%%% Note: This is an unofficial style file that may not +%%% fully comply with the Guidelines of the journal +%%% "International Tax and Public Finance" in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% It is recommended to use the document class "itaxpf" +%%% +%%% Websites of the journal +%%% "International Tax and Public Finance": +%%% http://www.springerlink.com/link.asp?id=102915 +%% +%% This is file `itaxpf.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rev,jnrlst,keyxyr,dt-beg,yr-par,yrp-per,note-yr,tit-qq,vol-it,volp-com,num-xser,ser-vol,bkpg-x,add-pub,edpar,bkedcap,blk-tit,ppx,ed,abr,xedn,and-com,and-com-ed,em-it,nfss,') +%% ---------------------------------------- +%% *** International Tax and Public Finance *** +%% +%% Copyright 1994-2004 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.sentence +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, f.}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\bibenquote{" swap$ * + add.period$ "}" * + } + if$ +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + emphasize + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.sentence + format.number.series output + format.publisher.address output + } + { + new.sentence + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.sentence + format.number.series output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.sentence + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + format.publisher.address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.sentence + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.sentence + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.sentence + howpublished "howpublished" bibinfo.check output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.sentence + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.sentence + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\newcommand{\bibenquote}[1]{``#1''}" + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `itaxpf.bst'. diff --git a/biblio/bibtex/contrib/economic/itaxpf.cls b/biblio/bibtex/contrib/economic/itaxpf.cls new file mode 100644 index 0000000000..d75194e542 --- /dev/null +++ b/biblio/bibtex/contrib/economic/itaxpf.cls @@ -0,0 +1,232 @@ +%%% LaTeX class for manuscripts submitted to the +%%% Journal "International Tax and Public Finance" (itaxpf) +%%% +%%% author: Arne Henningsen +%%% version: 1.1 (18 November 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the Formatting Instructions of the journal +%%% "International Tax and Public Finance" in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, endfloat, endnotes, geometry, +%%% ifthen, lmodern, natbib, setspace, url +%%% +%%% The corresponding BibTeX style file "itaxpf.bst" should be used +%%% for the bibliography: \bibliographystyle{itaxpf} +%%% +%%% This class provides 2 options: +%%% titlepage = include a title page (with command "\maketitle") +%%% noendfloat = do not move "floats" (tables and figures) to the end +%%% +%%% This document class provides 4 new commands: +%%% \keywords can be used to show keywors below the abstract +%%% \jelclass can be used to show JEL classifications below the abstract +%%% \affiliation can be used spefify the affiliation(s) of the author(s) +%%% (only shown if option "titlepage" is used) +%%% \address can be used spefify the address of the corresponding author +%%% (only shown if option "titlepage" is used) +%%% +%%% If you use footnotes, add following line before the reference section: +%%% \listofendnotes +%%% +%%% Website of the journal "International Tax and Public Finance": +%%% http://www.springerlink.com/link.asp?id=102915 + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{itaxpf}[2009/11/18 LaTeX class for the Journal + 'International Tax and Public Finance'] + +\RequirePackage{ifthen} + +% option to place floats not at the end +\newcounter{UseEndfloat} +\setcounter{UseEndfloat}{1} +\DeclareOption{noendfloat}{\setcounter{UseEndfloat}{0}} + +% option to include a title page +\newcounter{IncludeTitlePage} +\setcounter{IncludeTitlePage}{0} +\DeclareOption{titlepage}{\setcounter{IncludeTitlePage}{1}} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,pointlessnumbers,tablecaptionabove, + noonelinecaption]{scrartcl} +% pointlessnumbers = do not add final dot after ordinary section numbers +% tablecaptionabove = use \captionabove for tables +% noonelinecaption = do not treat one-line captions differently + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% page format, margins +\RequirePackage{geometry} +\geometry{letterpaper, tmargin=1.0in, bmargin=1.0in, lmargin=1.0in, + rmargin=1.0in, headheight=0in, headsep=0in, footskip=0.5in } + +% double spacing +\RequirePackage{setspace} +\doublespacing + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{15pt} + +% font: latin modern +\RequirePackage{lmodern} + +% amsmath +\RequirePackage{amsmath} +% leqno = equations are numbered at the left of the page +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +%% formatting section headers +\setkomafont{section}{\normalfont \large \bfseries} +\setkomafont{subsection}{\normalfont} +\setkomafont{subsection}{\normalfont \itshape} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\AtBeginDocument{\renewcommand{\refname}{\clearpage References}} +\setlength{\bibsep}{0pt} + +%% use endnotes in place of footnotes +\RequirePackage{endnotes} +\renewcommand{\notesname}{\clearpage Notes} +\let\footnote=\endnote +\newcommand{\listofendnotes}{ + \begingroup + \parindent 0pt + \parskip 0ex + \def\enotesize{\normalsize} + \theendnotes + \endgroup +} +% use normalsize numbers (copied from endnote.sty and modified thereafter) +\def\enoteformat{\rightskip\z@ \leftskip\z@ \parindent=0em + \leavevmode\llap{\theenmark. }} + +% captions of figures and tables +\setcapwidth[c]{\textwidth} +% \setcapindent*{0pt} +\setkomafont{captionlabel}{\centering \bfseries} +\setkomafont{caption}{\centering} +\renewcommand{\captionformat}{~ } + +% move floats to the end of the paper +\ifthenelse{\equal{\theUseEndfloat}{1}}{ + \RequirePackage[heads,nolists,tablesfirst]{endfloat} + \renewcommand{\figureplace}{% + \begin{center} + [\figurename~\thepostfig\ here] + \end{center} + } + \renewcommand{\tableplace}{% + \begin{center} + [\tablename~\theposttbl\ here] + \end{center} + } +}{} + +% titlepage with title, author, affiliation and date +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\newcommand{\address}[1]{\newcommand{\@address}{#1}} +\renewcommand{\and}{$\cdot$ } +\renewcommand{\maketitle}{ + \ifthenelse{\equal{\theIncludeTitlePage}{1}}{ + \thispagestyle{empty} + \vspace*{25mm} + }{} + \begin{center} + \begin{Large} + \begin{spacing}{1.25} + \textbf{\@title} + \end{spacing} + \end{Large} + \vspace*{5mm} + \ifthenelse{\equal{\theIncludeTitlePage}{1}}{ + \vspace*{7mm} + \@author\\ + \ifthenelse{ \isundefined\@affiliation }{}{ + \vspace*{5mm} + \textit{\@affiliation}\\ + } + \ifthenelse{ \isundefined\@address }{}{ + \vspace*{10mm} + \begin{spacing}{1} + \@address\\ + \end{spacing} + } + \vspace*{3mm} + }{} + \end{center} +} + + +% abstract, keywords, JEL classification +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} +\renewenvironment{abstract}{% +\noindent +\textbf{Abstract~} +}{% +\ifthenelse{ \isundefined\@keywords }{ +\ClassWarningNoLine{ajae}{No keywords specified. + Please use the command \protect\keywords} +}{ + +\medskip \noindent +\textbf{Key words~} \@keywords +} +\ifthenelse{ \isundefined\@jelclass }{ +\ClassWarningNoLine{ajae}{No JEL classification specified. + Please use the command \protect\jelclass} +}{ + +\medskip \noindent +\textbf{JEL classification~} \@jelclass +} +\clearpage +} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} diff --git a/biblio/bibtex/contrib/economic/jae.bst b/biblio/bibtex/contrib/economic/jae.bst new file mode 100644 index 0000000000..47316a55d9 --- /dev/null +++ b/biblio/bibtex/contrib/economic/jae.bst @@ -0,0 +1,1467 @@ +%% +%% This is file `jae.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rvx,ed-rev,jnrlst,keyxyr,dt-beg,yr-per,note-yr,vol-bf,vnum-x,volp-sp,pp-last,num-xser,jnm-x,bkpg-x,add-pub,isbn,issn,edparxc,ppx,ed,xedn,and-xcom,xand,url,url-nl,nfss') +%% ---------------------------------------- +%% *** JAE BibTeX reference style *** +%% +%% Copyright 1994-2002 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2002/10/21 4.05 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +STRINGS {z} +FUNCTION {remove.dots} +{ 'z := + "" + { z empty$ not } + { z #1 #1 substring$ + z #2 global.max$ substring$ 'z := + duplicate$ "." = 'pop$ + { * } + if$ + } + while$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edition" } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +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"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {write.url} +{ url empty$ + { skip$ } + { "\newline\urlprefix\url{" url * "}" * write$ newline$ } + if$ +} + +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{ f{}}{ jj}" + format.name$ + remove.dots + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "ISSN " swap$ * + } + if$ +} + +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + after.sentence 'output.state := +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ": " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + "(" swap$ * ") " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + format.journal.pages + format.issn output + new.block + format.note output + fin.entry + write.url +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + add.blank + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.isbn output + new.block + format.note output + fin.entry + write.url +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.isbn output + new.block + format.note output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + format.pages "pages" output.check + new.block + format.note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.publisher.address output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + new.block + format.note output + fin.entry + write.url +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages "pages" output.check + new.block + format.note output + fin.entry + write.url +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + new.block + format.note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + new.block + format.note output + fin.entry + write.url +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + new.block + format.note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + format.note "note" output.check + fin.entry + write.url +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `jae.bst'. diff --git a/biblio/bibtex/contrib/economic/jpe.bst b/biblio/bibtex/contrib/economic/jpe.bst new file mode 100644 index 0000000000..36e97c2608 --- /dev/null +++ b/biblio/bibtex/contrib/economic/jpe.bst @@ -0,0 +1,1611 @@ +%%% Journal of Political Economy (JPE) +%%% bibliography style for use with LaTeX2e +%%% version: 1.0 (12 December 2008) +%%% license: LaTeX Project Public License (see below) +%%% This file was created with makebst (see below) +%%% by Adam Seth Litwin <aslitwin (at) jhu (dot) edu>. +%%% Note: This is an unofficial style file that may not fully comply +%%% with the JPE reference guidelines in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%% +%% This is file `jpe.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,pres,nm-revv1,jnrlst,nmdash,nmd-3,mcite,mct-1,mct-x3,keyxyr,dt-beg,yr-per,yrp-per,note-yr,tit-qq,atit-u,vnum-sp,pp-last,num-xser,ser-vol,ser-ed,jnm-x,bkpg-x,add-pub,edby,ppx,abr,ednx,xedn,jabr,etal-xc,url,url-blk,nfss,') +%% ---------------------------------------- +%% *** a style as similar as possible to Journal of Political Economy *** +%% +%% Copyright 1994-2007 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "editors" } + +FUNCTION {bbl.editor} +{ "editor" } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Software Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput. Aid. Des."} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphic."} + +MACRO {toms} {"ACM Trans. Math. Software"} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} + +MACRO {tcs} {"Theor. Comput. Sci."} + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {format.url} +{ url empty$ + { "" } + { "\urlprefix\url{" url * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + + +STRINGS { bibinfo} + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + duplicate$ #1 > + { "{ff~}{vv~}{ll}{, jj}" } + { "{vv~}{ll}{, ff}{, jj}" } + if$ + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + numnames #2 > + t "others" = not and + { "," * } + 'skip$ + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + numnames #2 > + t "others" = not and + { "," * } + 'skip$ + if$ + t "others" = + { + + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.editor + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\enquote{" swap$ * + add.period$ "}" * + } + if$ +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + after.sentence 'output.state := +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ":" * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ":" * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "~(" swap$ * ")" * + } + if$ * +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + format.bvolume duplicate$ empty$ 'pop$ + { ", " swap$ * * } + if$ + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + bbl.edby + " " * swap$ * + swap$ + "," * + " " * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +STRINGS {oldname} + +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { "---{}---{}---" } + { s 'oldname := s } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.pages "pages" output.check + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.number.series output + format.chapter.pages output + new.sentence + format.publisher.address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages "pages" output.check + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {presentation} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + new.block + format.title output + new.block + format.organization.address "organization and address" output.check + month "month" output.check + year "year" output.check + new.block + format.note output + new.sentence + type missing$ 'skip$ + {"(" type capitalize * ")" * output} + if$ + new.block + format.url output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + format.url output + new.block + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + nameptr #2 = + numnames #3 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\newcommand{\enquote}[1]{``#1''}" + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\urlprefix}{URL }" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `jpe.bst'. diff --git a/biblio/bibtex/contrib/economic/jrurstud.cls b/biblio/bibtex/contrib/economic/jrurstud.cls new file mode 100644 index 0000000000..bcdd55efb5 --- /dev/null +++ b/biblio/bibtex/contrib/economic/jrurstud.cls @@ -0,0 +1,281 @@ +%%% LaTeX class for manuscripts submitted to the +%%% Journal of Rural Studies (JRurStud) +%%% +%%% author: Arne Henningsen +%%% version: 1.1 (18 November 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the JRurStud formatting instructions in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, endfloat, endnotes, geometry +%%% ifthen, lmodern, natbib, setspace, stringstrings, textcomp, url +%%% +%%% The class provides the following options: +%%% noendfloat - don't move floats to the end of the paper +%%% noendnotes - don't use endnotes (use footnotes) +%%% titlepage - create "first" title page with title, authors' names, +%%% affiliations, and address of corresponding author +%%% nosecondtitle - do not create "second" title page with (repeated) title +%%% +%%% This class selects the BibTeX style "elsart-harv.bst". +%%% (see http://www.elsevier.com/wps/find/authorsview.authors/elsart) +%%% +%%% This class provides 4 new commands: +%%% \affiliation specify affiliation(s) of the authors +%%% \cauthormark mark the corresponding author (by an asterisk) +%%% \cauthoraddress specify address of the corresponding author +%%% \keywords specify some keywords (separated by semicolons) +%%% +%%% The Journal of Rural Studies requires that you use single quotes +%%% you could do this with the ``csquotes'' package: +%%% \usepackage{csquotes} +%%% \MakeInnerQuote{<yourQuoteCharacter>} +%%% +%%% The manuscript submitted to JRurStud shouldn't include any figures. +%%% If your paper contains any figures and you haven't removed/disabled +%%% them in the LaTeX source, you can remove the pages showing these figures +%%% from the PDF file. If you want to remove, say, pages 18 and 19 with +%%% "pdftk" (PDF toolkit), you could execute +%%% pdftk original.pdf cat 1-17 20-end output manuscript.pdf +%%% While this needs some extra effort, it has the advantage (compared to +%%% removing the figures in the LaTeX source) that references to figures +%%% with \ref{} still work. +%%% +%%% Website of the "Journal of Rural Studies": +%%% http://www.elsevier.com/locate/jrurstud/ +%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{jrurstud}[2009/11/18 LaTeX class for the Journal of Rural Studies] + +% package for convenient if-then-else statements +\RequirePackage{ifthen} + +% option to NOT place floats at the end +\newif\if@useendfloat +\@useendfloattrue +\DeclareOption{noendfloat}{\@useendfloatfalse} + +% option to NOT use endnotes (but footnotes) +\newif\if@useendnotes +\@useendnotestrue +\DeclareOption{noendnotes}{\@useendnotesfalse} + +% option to create a "first" title page +\newif\if@maketitlepage +\@maketitlepagefalse +\DeclareOption{titlepage}{\@maketitlepagetrue} + +% option not to create a "second" title page +\newif\if@makesecondtitle +\@makesecondtitletrue +\DeclareOption{nosecondtitle}{\@makesecondtitlefalse} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,pointednumbers,tablecaptionabove]{scrartcl} +% pointednumbers = add final dot after ordinary section numbers +% tablecaptionabove = use \captionabove for tables + +% additional symbols +\RequirePackage{textcomp} + +% page format, margins +\RequirePackage{geometry} +\geometry{a4paper, tmargin=2.5cm, bmargin=2.8cm, lmargin=2.8cm, + rmargin=2.8cm, headheight=0cm, headsep=0cm, footskip=1.2cm } + +% double spacing +\RequirePackage{setspace} +\doublespacing + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{5pt} + +% font family: latin modern +\RequirePackage{lmodern} + +% section headers +\setkomafont{section}{\bfseries} +\setkomafont{subsection}{\normalfont\itshape} +\setkomafont{subsubsection}{\normalfont} + +% amsmath +\RequirePackage{amsmath} +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\setlength{\bibsep}{0pt} +\bibliographystyle{elsart-harv} + +% captions of figures and tables +\setcapwidth[l]{\textwidth} +\setcapindent{0pt} +\setkomafont{captionlabel}{\normalsize\normalfont\bfseries} +\setkomafont{caption}{\normalsize\normalfont\bfseries} +\renewcommand{\captionformat}{.\ } + +% titlepage without author and date +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\newcommand{\cauthoraddress}[1]{\newcommand{\@cauthoraddress}{#1}} +\newcommand{\cauthormark}{\textsuperscript{*}} +\renewcommand{\maketitle}{ + \if@maketitlepage + \thispagestyle{empty} + \vspace*{12mm} + \begin{center} + \begin{spacing}{1.5} + \LARGE{\textbf{\@title}}% + \end{spacing} + \ifthenelse{ \isundefined\@author }{ + \ClassWarning{apecon}{No author(s) specified. + Please specify with command \protect\author} + }{ + \begin{large} + \textbf{\@author}\\ + \end{large} + \vspace*{3mm} + } + \begin{spacing}{1.1} + \ifthenelse{ \isundefined\@affiliation }{ + \ClassWarning{apecon}{No affiliation(s) specified. + Please specify with command \protect\affiliation} + }{ + \textit{\@affiliation}\\ + } + \vspace*{2cm} + \textbf{\cauthormark{}~Corresponding author}.\\ + \ifthenelse{ \isundefined\@cauthoraddress }{ + \ClassWarningNoLine{jrurstud}{No address of the corresponding authors + is specified. Please specify with command \protect\cauthoraddress} + }{ + \@cauthoraddress\\ + } + \end{spacing} + \vspace*{5mm} + \end{center} + \clearpage + \fi + \if@makesecondtitle + \begin{center} + \begin{spacing}{1.5} + \LARGE{\textbf{\@title}}% + \end{spacing} + \end{center} + \fi +} + +% abstract, keywords, JEL classification +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} +\renewenvironment{abstract}{% + \hrule + \vspace*{5mm} + \begin{spacing}{1.5} + \noindent + \textbf{Abstract}\\ + \indent +}{% + \ifthenelse{ \isundefined\@keywords }{ + \ClassWarningNoLine{erae}{No keywords specified. + Please use the command \protect\keywords} + }{ + \vspace*{5mm}\\ \noindent + \textit{Keywords:} \@keywords% + } + \vspace*{5mm} + \end{spacing} + \hrule + \clearpage +} + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% move floats to the end of the paper +\if@useendfloat + \RequirePackage[noheads,tablesfirst]{endfloat} + \AtBeginDelayedFloats{% + \pagestyle{empty} + } + \RequirePackage{stringstrings} + \renewcommand{\@makecaption}[2]{% + \testmatchingchar{#1}{1}{T} + \ifmatchingchar + \hfill \thetable\\ + \vspace*{3cm} + \fi + } + \renewcommand*{\l@figure}[2]{% + \setlength\@tempdima{2.3em}% + \noindent\hspace*{1.5em}#1\hfil\newline + } + \let\l@table\l@figure +\fi + +%% use endnotes in place of footnotes +\if@useendnotes + \RequirePackage{endnotes} + \let\footnote=\endnote + \newcommand{\listofendnotes}{ + \begingroup + \parindent 0pt + \parskip 0ex + \def\enotesize{\normalsize} + \theendnotes + \endgroup + } + % use normalsize numbers (copied from endnote.sty and modified thereafter) + \def\enoteformat{\rightskip\z@ \leftskip\z@ \parindent=0em + \leavevmode\llap{\theenmark. }} + \AtEndDocument{% + \IfFileExists{\jobname.ent}{% + \clearpage + \pagestyle{empty} + \listofendnotes + }{} + } +\fi + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} diff --git a/biblio/bibtex/contrib/economic/jss2.bst b/biblio/bibtex/contrib/economic/jss2.bst new file mode 100644 index 0000000000..91a710f645 --- /dev/null +++ b/biblio/bibtex/contrib/economic/jss2.bst @@ -0,0 +1,1647 @@ +%% +%% This is file `jss.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rvx,keyxyr,dt-beg,yr-par,note-yr,tit-qq,bt-qq,atit-u,trnum-it,vol-bf,volp-com,num-xser,isbn,issn,edpar,pp,ed,xedn,xand,etal-it,revdata,eprint,url,url-blk,doi,nfss') +%% ---------------------------------------- +%% *** Journal of Statistical Software *** +%% +%% Copyright 1994-2004 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + archive + author + booktitle + chapter + collaboration + doi + edition + editor + eid + eprint + howpublished + institution + isbn + issn + journal + key + month + note + number + numpages + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +STRINGS {z} +FUNCTION {remove.dots} +{ 'z := + "" + { z empty$ not } + { z #1 #1 substring$ + z #2 global.max$ substring$ 'z := + duplicate$ "." = 'pop$ + { * } + if$ + } + while$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edition" } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.eidpp} +{ "pages" } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +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"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {format.eprint} +{ eprint duplicate$ empty$ + 'skip$ + { "\eprint" + archive empty$ + 'skip$ + { "[" * archive * "]" * } + if$ + "{" * swap$ * "}" * + } + if$ +} +FUNCTION {format.url} +{ url empty$ + { "" } + { "\urlprefix\url{" url * "}" * } + if$ +} + +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{ jj}{ f{}}" + format.name$ + remove.dots + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f{}~}{vv~}{ll}{ jj}" + format.name$ + remove.dots + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal emphasize * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names + duplicate$ empty$ 'skip$ + { collaboration "collaboration" bibinfo.check + duplicate$ empty$ 'skip$ + { " (" swap$ * ")" * } + if$ + * + } + if$ +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "ISSN " swap$ * + } + if$ +} + +FUNCTION {format.doi} +{ doi "doi" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "\doi{" swap$ * "}" * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\bibenquote{" swap$ * + add.period$ "}" * + } + if$ +} +FUNCTION {end.quote.btitle} +{ booktitle empty$ + 'skip$ + { before.all 'output.state := } + if$ +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + numpages empty$ 'skip$ + { bbl.eidpp numpages tie.or.space.prefix + "numpages" bibinfo.check * * + " (" swap$ * ")" * * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {bt.enquote} +{ duplicate$ empty$ 'skip$ + { "\bibenquote{" swap$ * + non.stop + { ",} " * } + { "}, " * } + if$ + } + if$ +} +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + bt.enquote +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.isbn output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.isbn output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + end.quote.btitle + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.publisher.address output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + end.quote.btitle + format.bvolume output + format.number.series output + format.pages output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + format.tr.number emphasize output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + new.block + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.doi output + new.block + format.note "note" output.check + format.eprint output + format.url output + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal emphasize * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal emphasize * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\newcommand{\bibenquote}[1]{``#1''}" + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\urlprefix}{URL }" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else" + write$ newline$ + " \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ + "\providecommand{\eprint}[2][]{\url{#2}}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `jss.bst'. diff --git a/biblio/bibtex/contrib/economic/njf.cls b/biblio/bibtex/contrib/economic/njf.cls new file mode 100644 index 0000000000..eced17ed6f --- /dev/null +++ b/biblio/bibtex/contrib/economic/njf.cls @@ -0,0 +1,148 @@ +%%% LaTeX class for the NJF seminar 425 +%%% "Economic System Research in Agriculture and Rural Development" +%%% (29 September - 1 October 2009, Tartu, Estonia) +%%% and hopefully also for other NJF seminars +%%% +%%% author: Arne Henningsen +%%% version: 1.0 (18 August 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the NJF Formatting Instructions in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, courier, geometry, +%%% helvet, ifthen, mathptmx, natbib, setspace, titlesec, url +%%% +%%% This document class provides 2 new commands: +%%% \keywords can be use to show keywors below the abstract +%%% \affiliation can be used to add affiliation information +%%% + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{njf}[2009/08/18 LaTeX class for the NJF] + +\RequirePackage{ifthen} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,halfparskip,tablecaptionabove]{scrartcl} +% tablecaptionabove = use \captionabove for tables + +% page format, margins +\RequirePackage{geometry} +\geometry{a4paper, tmargin=2.5cm, bmargin=2.5cm, lmargin=2.5cm, + rmargin=2.5cm, headheight=0cm, headsep=0cm, footskip=1.2cm } + +% one half spacing +\RequirePackage{setspace} +\onehalfspacing + +% spacing between paragraphs +\setlength{\parskip}{6pt} + +% spacing around (sub)section headers +\RequirePackage{titlesec} +\titlespacing*{\section}{0pt}{6pt}{0pt} +\titlespacing*{\subsection}{0pt}{0pt}{0pt} + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{12pt} + +% font families: times/helvetica/courier +\RequirePackage{mathptmx} +\RequirePackage[scaled=.90]{helvet} +\RequirePackage{courier} + +% fonts of headings +\setkomafont{section}{\rmfamily\bfseries\normalsize} +\setkomafont{subsection}{\rmfamily\bfseries\normalsize} + +% amsmath +\RequirePackage{amsmath} + +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\setlength{\bibsep}{0pt} + +% captions of figures and tables +\setcapwidth[l]{\textwidth} + +% titlepage +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\renewcommand{\maketitle}{ + \begin{center} + \begin{spacing}{1.5} + \Large{\textbf{\@title}}% + \end{spacing} + \textbf{\@author}\\ + \ifthenelse{ \isundefined\@affiliation }{ + \ClassWarningNoLine{njf}{No affiliation(s) specified. + Please use the command \protect\affiliation} + }{ + \vspace*{3mm} + \begin{small} + \@affiliation\\ + \end{small} + } + \vspace*{5mm} + \end{center} +} + +% abstract & keywords +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\renewenvironment{abstract}{% +\section*{Abstract} +}{% +\ifthenelse{ \isundefined\@keywords }{ +\ClassWarningNoLine{njf}{No keywords specified. + Please use the command \protect\keywords} +}{ +\smallskip\\ \noindent +\textbf{Keywords:} \@keywords +} +\noindent% +} + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + diff --git a/biblio/bibtex/contrib/economic/oega.bst b/biblio/bibtex/contrib/economic/oega.bst new file mode 100644 index 0000000000..8202307f4d --- /dev/null +++ b/biblio/bibtex/contrib/economic/oega.bst @@ -0,0 +1,1563 @@ +%% +%% This is file `oega.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rvvc,keyxyr,dt-beg,yr-par,yrp-per,note-yr,thtit-a,num-xser,ser-vol,jnm-x,add-pub,pre-edn,edparxc,in-col,pp,ed,abr,ednx,ord,and-xcom,etal-xc,em-it,nfss,') +%% ---------------------------------------- +%% *** Oesterreichische Gesellschaft fuer Agraroekonomie (OeGA) *** +%% +%% Copyright 1994-2005 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2005/10/17 4.14 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f{.}.}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f{.}.~}{vv~}{ll}{ jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} +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$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ":" * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ":" * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + "(" swap$ * ") " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + add.blank + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + format.edition output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + new.block + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + new.block + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + format.edition output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + new.sentence + format.publisher.address output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + new.block + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `oega.bst'. diff --git a/biblio/bibtex/contrib/economic/oegatb-ex.bib b/biblio/bibtex/contrib/economic/oegatb-ex.bib new file mode 100644 index 0000000000..a88bec9011 --- /dev/null +++ b/biblio/bibtex/contrib/economic/oegatb-ex.bib @@ -0,0 +1,36 @@ +@ARTICLE{hansen04, + author = {Hansen, A. L. and Jacobsen, K. K. and Jensen, B.}, + year = {2004}, + title = {Title of Paper}, + journal = {Journal of Animal Physiology and Animal Nutrition}, + volume = {68}, + number = {3}, + pages = {123-135} +} + +@BOOK{hansen95, + author = {Hansen, A.}, + year = {1995}, + title = {A Guide to Good Writing for Scientists}, + edition = {2}, + address = {Viborg}, + publisher = {Low Budget Publishing} +} + +@INCOLLECTION{jones95, + author = {Jones, A. R. and Walter, H.}, + year = {1995}, + title = {Title of Chapter}, + editor = {Mohr, A. and Wings, P.}, + booktitle = {New Soil Analysis}, + pages = {42-51}, + address = {Copenhagen}, + publisher = {Danish Soil Association} +} + +@PHDTHESIS{schulze94, + author = {Schulze, H.}, + year = {1994}, + title = {Endogenous ileal nitrogen losses in pigs: Dietary factors}, + school = {Wageningen Agricultural University} +} diff --git a/biblio/bibtex/contrib/economic/oegatb-ex.pdf b/biblio/bibtex/contrib/economic/oegatb-ex.pdf Binary files differnew file mode 100644 index 0000000000..391de3234e --- /dev/null +++ b/biblio/bibtex/contrib/economic/oegatb-ex.pdf diff --git a/biblio/bibtex/contrib/economic/oegatb-ex.png b/biblio/bibtex/contrib/economic/oegatb-ex.png Binary files differnew file mode 100644 index 0000000000..034c44de97 --- /dev/null +++ b/biblio/bibtex/contrib/economic/oegatb-ex.png diff --git a/biblio/bibtex/contrib/economic/oegatb-ex.tex b/biblio/bibtex/contrib/economic/oegatb-ex.tex new file mode 100644 index 0000000000..faa5b4a2b5 --- /dev/null +++ b/biblio/bibtex/contrib/economic/oegatb-ex.tex @@ -0,0 +1,253 @@ +\documentclass[english]{oegatb} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{eurosym} +\usepackage{tabularx} +\usepackage{graphicx} +\usepackage{float} + +\title{Titel} + +\author{Erste Autorin, Zweiter B. Autor, und Dritte C. Autorin} + +\affiliation{% +Erste A. Autorin ist am Institut für Agrar- und Forstökonomie +der Universität für Bodenkultur tätig (erste.autorin@boku.ac.at). + +Zweiter B. Autor arbeitet bei der Aarhus University, +Department of Biology, DK-8000, Aarhus, Dänemark. +Er ist nun bei der Danish Research Centre of Organic Food and Farming, +DK-8830 Tjele, Dänemark tätig (secondb.author@agrsci.dk). + +Dritte C. Autorin ist an der University of Copenhagen, +Department of Zoology, Denmark (thirdc.author@agrsci.dk).} + + +\begin{document} +\maketitle + +\begin{abstract} +These instructions give you guidelines for preparing camera-ready short papers +for the ÖGA 2006 conference proceedings. +The short papers can be written in German or in English. +The length of the short paper is maximally two pages. +There will be no key words. +Use this document as a template if you are using Microsoft Word 6.0 or later. +Otherwise, use this document as an instruction set. Define all symbols +used in the paper. +Do not cite references in the abstract. +The abstract should not exceed ca.\ 200 words, which corresponds +to the double length of this example. +The footnote symbol following this abstract should not be deleted. +\end{abstract} + + +\section{Introduction to using the template} + +This document is a template for Microsoft Word versions 6.0 or later. +If you are reading a paper version of this document, +please download the electronic file, template.doc, +from the website \url{http://www.boku.ac.at/oega} so you can use it +to prepare your manuscript. + +When you open the template, select ‘Page Layout’ from the ‘View’ menu +in the menu bar (View | Page Layout), +which allows you to see the footnotes. +Then type over the sections or cut and paste from another document +and then use markup styles. +The pull-down style menu is at the left of the Formatting Toolbar +at the top of your Word window. +For example, the style at this point in the document is ‘Normal text’. +Highlight a section that you want to designate with a certain style, +and then select the appropriate name on the style menu. +The style will adjust your fonts and line spacing. +Styles used are: title, author, abstract, normal text, heading 1 +(as in ‘introduction above) and footnote. +Subheadings (as ‘Figures and tables’ in next column are italicized normal text. +Do not change the font sizes or line spacing to squeeze more text +into a limited number of pages. +Use italics for emphasis; do not underline. +Please note that there is a tab at the beginning of each paragraph, +except for the first paragraph in a section. + + +\section{Procedure for paper submission} + +Papers must be submitted by 31st August 2006 per email to +\url{michaela.groetzer@boku.ac.at}. +Papers received after this deadline cannot be included in the proceedings. +Paper exceeding 2 pages can also not be included in the proceedings. +The submitted paper must be in camera-ready format and in a word file. +It will be placed into the conference proceedings as received +and without substantial editing or reviewing. +Therefore, we recommend that you get one or two colleagues +to proofread the paper. + + +\section{Structure of the short paper} + +The short paper should be structured as any other scientific publication. +You should start with an introduction which includes background information +(why is the topic of your research relevant? +What have other authors found out about the topic?) +and the specific question you tried to answer in your study +(what is your aim and/or hypothesis?). + +The second section should explain the methods you used, +so that the readers have clear information on how (and where) +the data was collected and what methods were used to analyse the data. + +The third section should present the results of your research, +i.e.\ describe your major findings. +Please try to be as succinct as possible, +presenting only the most relevant data in condensed form. + +In the fourth section you should explain how you interpret your results +(do not leave the reader thinking "So what?"). +Continually refer to your results (but do not repeat them). +Do not extend your conclusions beyond those +which are directly supported by your results. +Speculation has its place, but should not form the bulk of the discussion. +Be sure to address the objectives of the study +(which you stated in the introduction). +Discuss the significance of your results in light of other published work. +End the discussion with a short summary or conclusion +regarding the significance of the work. + + +\section{Helpful hints on formatting} + +\subsection{Figures and tables} +As there will be no final formatting of your paper, +you need to place figures and tables in the paper accordingly, +usually at the top or bottom of column. +Large figures and tables may span both columns, +but it is easier to include a one-column figure or table. +Place figure captions below the figures; place table titles above the tables. + +\begin{table}[H] +\caption{Soil properties for the two studied soils +(Style used is Normal text, but font size 7).} +\scriptsize +\renewcommand{\arraystretch}{1.1} +\begin{tabularx}{\columnwidth}{Xcc} +\hline +Soil property & Soil A & Soil B\\ +\hline +Temperature (C) & 15 & 12\\ +pH & 7.4 & 6.2\\ +Organic C (mg/kg) & 1.2 & 2.4\\ +\hline +\end{tabularx}\\ +\textsuperscript{a} Water content is given on a soil dry weight basis. +\end{table} + +Please verify that the figures and tables you mention in the text +actually exist. Please do not include captions as part of the figures. +Do not put captions in text boxes linked to the figures. +Do not put borders around the outside of your figures. +Use the abbreviation ``Fig.'' except at the beginning of a sentence, +where ``Figure'' should be used. +Do not abbreviate ``Table.'' +Tables are numbered with Roman numerals. +Insert tables by use of the Table lay-out, not just as tabulated text and data. + +Figure axis labels are often a source of confusion. +Use words rather than symbols. +As an example, write the quantity ``Transport cost in \euro'', not just ``\euro''. +Put units in parentheses. +Do not label axes only with units. + +Figure labels should be legible, approximately 8 point type. +Color printing of figures is not available. + +\subsection{Numbers} +Figures are used for all units and quantities (e.g., 8 mm, 3 years, 6 kg) +with a space between the figure and the measurement description. +In descriptive text, numbers from one to nine are spelled out +and figures are used for 10 and over (e.g., six pigs, 27 sows) +except where the number begins a sentence, +thus: ``Three years ago ....''. +If you use percentages, please do not include a space between the number +and the percentage sign (e.g. 20\% of farmers). + +\subsection{Abbreviations and Acronyms} +Define abbreviations and acronyms the first time they are used in the text. +Do not use abbreviations in the title unless they are unavoidable. + +\subsection{Data and units} +Indicate which measure is being used when data are presented; +e.g., 53.8 $\pm$ 1.5 g/L (mean $\pm$ SE). +For tests of significance, use the form, e.g., ``P<0.001''. + +Use of SI units is strongly encouraged. +Use the center dot to separate compound units (A$\cdot$m2). + +\subsection{Tense} +If you wish, you may write in the first person singular +or plural and use the active voice +(``We observed that...'' instead of ``It was observed that ...'' or +``The authors observed that...''). +Remember to check spelling. +If your native language is not English or German +(depending on the language you write in), +please get a native speaker to proofread your paper. + + +\section{Guidelines for references} + +\subsection{In text} + +In the body of the text, +references should be cited according to the following rules.\\ +- Where a paper is by three or more authors, + the name of the first author should be followed by et al.\ + [\citet{hansen04} demonstrated\ldots] or + [as previously demonstrated \citep{hansen04}].\\ +- Please place a comma between the author's name and the year + \citep{schulze94,hansen95}. + - The earliest work is reported first.\\ +- Letters following the year are used to differentiate between + two or more papers with the same authors and the same year + (Smith, 1964a, 1964b).\\ +- A semi-colon separates reference to different authors + \citep{schulze94,hansen04}. + +\begin{figure}[H] +\includegraphics[width=0.9\columnwidth]{oegatb-ex.png} +\caption{Air temperature during the summer in Denmark +(Style as normal text, but in italic and font size 7).} +\end{figure} + + +\subsection{Reference list} +A complete list of the references cited in the text must be arranged +alphabetically at the end of your paper under the heading References. + +For papers published in journals: Authors' names, year of publication, +title of paper, name of journal (in full and italics), volume number (issue), +and the first and last page numbers should be given, in that order. + +For books: Authors' names, year of publication, title of book (in italics), +volume or edition number, place of publication and name of publisher +should be given in that order. + +For chapters in a book: Authors' names, year of publication, title of chapter. +In: editors. Title of Book (in italics), first and last page, +place of publication and name of publisher. + +For a thesis: The author's name, year of publication, title of the thesis, +degree and University should be given, in that order. + +There is a 4 pt space between references (4pt before each paragraph). + + +\section{Acknowledgement} + +I would like to thank the Joint Organic Congress for providing +this template and most of the detailed instructions included in it. + +\nocite{*} +\bibliography{oegatb-ex} + +\end{document} diff --git a/biblio/bibtex/contrib/economic/oegatb.cls b/biblio/bibtex/contrib/economic/oegatb.cls new file mode 100644 index 0000000000..8280b6b59e --- /dev/null +++ b/biblio/bibtex/contrib/economic/oegatb.cls @@ -0,0 +1,220 @@ +%%% LaTeX class for short papers for publication in the "Tagungsband" +%%% of the "Oesterreichische Gesellschaft für Agraroekonomie" (OeGA) +%%% +%%% author: Arne Henningsen +%%% version: 1.0 (19 August 2008) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the OeGA Formatting Instructions in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, fancyhdr, geometry, helvet, ifthen, +%%% natbib, setspace, titlesec, url +%%% +%%% The class provides following options: +%%% german - German language (default) +%%% english - English language +%%% nopagenumbers - suppress page numbers +%%% +%%% +%%% The corresponding BibTeX style file "oega.bst" is used +%%% for the bibliography: \bibliographystyle{oega} +%%% +%%% This document class provides following new commands: +%%% \affiliation should be used to add affiliation information + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{oegatb}[2008/08/19 LaTeX class for the OeGA Tagungsband] + +% option for English language +\newif\if@LanguageEnglish +\@LanguageEnglishfalse +\DeclareOption{english}{\@LanguageEnglishtrue} +\DeclareOption{german}{\@LanguageEnglishfalse} + +% option for no page numbers +\newif\if@PageNumbers +\@PageNumberstrue +\DeclareOption{nopagenumbers}{\@PageNumbersfalse} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[10pt,tablecaptionabove]{scrartcl} +% tablecaptionabove = use \captionabove for tables + +% load ifthen package +\RequirePackage{ifthen} + +% Verdana font +\RequirePackage[scaled=1.18]{helvet} +\renewcommand\familydefault{phv} + +% page format, margins +\RequirePackage{geometry} +\geometry{a4paper, tmargin=2.3cm, bmargin=2.5cm, lmargin=2.6cm, + rmargin=2.0cm, headheight=0in, headsep=0in, footskip=1.25cm} + +% language +\if@LanguageEnglish + \RequirePackage[english]{babel} +\else + \RequirePackage[ngerman]{babel} +\fi + +% space between columns +\setlength{\columnsep}{1.25cm} + +% spacing +\RequirePackage{setspace} + +% formatting of main text +\newcommand{\StartTextFormat}{% + \footnotesize% + \begin{spacing}{1.18}% +} +\newcommand{\EndTextFormat}{% + \end{spacing}% +} + +% spacing around (sub)section headers +\RequirePackage{titlesec} +\titlespacing*{\section}{0pt}{1em}{0.25em} +\titlespacing*{\subsection}{0pt}{0.85em}{0.15em} + +% spacing around formulas +\newcommand{\SetFormulaSpacings}{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{5pt} + +% section headers: centering and set font +\titleformat{\section}[block] + {\normalfont\filcenter} + {\arabic{section}. } + {0pt} + {\normalfont\small\scshape} + +% subsection headers: font +\setkomafont{subsection}{\normalfont\footnotesize\itshape} + +% footnote: font +\setkomafont{footnote}{\fontsize{6pt}{8pt}\selectfont} +% no rule between text and footnotes +\renewcommand{\footnoterule}{} + +% URLS: font +\RequirePackage{url} +\def\UrlFont{\sffamily} + +% math +\RequirePackage{amsmath} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\setlength{\bibsep}{4pt} +\setlength{\bibhang}{0em} +\bibliographystyle{oega} + +% set footer +\RequirePackage{fancyhdr} +\renewcommand{\headrulewidth}{0pt} +\newcommand{\FormatFooters}{% +\fancyhead{} +\fancyfoot{} +% \fancyfoot[L]{\fontsize{6pt}{8pt}\selectfont{\"O}GA Tagungsband \the\year} +\if@PageNumbers + \fancyfoot[R]{\footnotesize\thepage} +\fi +\pagestyle{fancy} +} + +% captions of figures and tables +\setcapindent{0pt} +\setkomafont{captionlabel}{\normalfont\scriptsize} +\setkomafont{caption}{\normalfont\scriptsize} +\renewcommand{\captionformat}{.\ } + +% section and subsections are not numbered +\setcounter{secnumdepth}{0} + +% titlepage without author and date +\renewcommand{\maketitle}{ +\twocolumn[ + \begin{@twocolumnfalse} + \begin{center} + \vspace*{5mm} + \begin{huge} + \begin{spacing}{1.25} + \@title + \end{spacing} + \end{huge} + \vspace*{6mm} + \@author\\ + \vspace*{4.5mm} + \end{center} + \end{@twocolumnfalse} + ] +\StartTextFormat +} + +% abstract with affiliation +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\renewenvironment{abstract}{% +\noindent% +\scriptsize% +\bfseries% +\textit{Abstract} -- +}{% +\ifthenelse{ \isundefined\@affiliation }{ +\ClassWarning{oegatb}{no affiliation specified. + Please use command \protect\affiliation}% +}{% +\deffootnote[0pt]{0pt}{1.5em}{}% +\hspace{-1.0em}\footnote{\@affiliation}}% +\deffootnote[0.5em]{0.5em}{1.5em}{\textsuperscript{\thefootnotemark}}% +} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% commands that should be used at the beginning / end of the document +\AtBeginDocument{ +\sffamily +\SetFormulaSpacings +\FormatFooters +} +\AtEndDocument{ +\EndTextFormat +} + +% for compatibility with other classes +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} % ignored +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} % ignored + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} diff --git a/biblio/bibtex/contrib/economic/pocoec.cls b/biblio/bibtex/contrib/economic/pocoec.cls new file mode 100644 index 0000000000..55246ef231 --- /dev/null +++ b/biblio/bibtex/contrib/economic/pocoec.cls @@ -0,0 +1,257 @@ +%%% LaTeX class for manuscripts submitted to the +%%% Journal 'Post-Communist Economies' (PoCoEc) +%%% +%%% author: Arne Henningsen +%%% version: 1.3 (18 November 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the PoCoEc formatting instructions in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, csquotes, endfloat, endnotes, geometry +%%% ifthen, lmodern, natbib, setspace, stringstrings, textcomp, url +%%% +%%% The class provides the following options: +%%% noendfloat - don't move floats to the end of the paper +%%% nofulltitlepage - suppress "full" title page with author names, +%%% affiliations, and address of corresponding author +%%% noshorttitlepage - suppress "short" title page without information +%%% about authors +%%% showauthor - show author name(s) on "short" title page +%%% (useful in combination with option "nofulltitlepage") +%%% +%%% This class selects the BibTeX style "tandfx.bst". +%%% (Taylor and Francis Reference Style X) +%%% +%%% This class provides 5 new commands: +%%% \affiliation specify affiliation(s) of the authors +%%% \cauthormark mark the corresponding author (by an asterisk) +%%% \cauthoraddress specify address of the corresponding author +%%% \keywords specify some keywords (separated by semicolons) +%%% +%%% +%%% Websites of the journal ``Post-Communist Economies": +%%% +%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{pocoec}[2009/11/18 LaTeX class for the journal 'Post-Communist Economies'] + +% package for convenient if-then-else statements +\RequirePackage{ifthen} + +% option to NOT place floats at the end +\newif\if@useendfloat +\@useendfloattrue +\DeclareOption{noendfloat}{\@useendfloatfalse} + +% option to suppress the full title page with author names +\newif\if@makefulltitlepage +\@makefulltitlepagetrue +\DeclareOption{nofulltitlepage}{\@makefulltitlepagefalse} + +% option to suppress the short title page without author names +\newif\if@makeshorttitlepage +\@makeshorttitlepagetrue +\DeclareOption{noshorttitlepage}{\@makeshorttitlepagefalse} + +% option to show author name(s) +\newif\if@showauthor +\@showauthorfalse +\DeclareOption{showauthor}{\@showauthortrue} + + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,pointednumbers,tablecaptionabove]{scrartcl} +% pointednumbers = add final dot after ordinary section numbers +% tablecaptionabove = use \captionabove for tables + +% additional symbols +\RequirePackage{textcomp} + +% page format, margins +\RequirePackage{geometry} +\geometry{a4paper, tmargin=2.5cm, bmargin=2.8cm, lmargin=2.8cm, + rmargin=2.8cm, headheight=0cm, headsep=0cm, footskip=1.2cm } + +% double spacing +\RequirePackage{setspace} +\doublespacing + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{6mm} + +% font families: times/helvetica/courier +\RequirePackage{mathptmx} +\RequirePackage[scaled=.90]{helvet} +\RequirePackage{courier} + +% section headers +\setkomafont{section}{\rmfamily\bfseries} +\setkomafont{subsection}{\rmfamily\bfseries\itshape} +\setkomafont{subsubsection}{\rmfamily\itshape} +\setkomafont{paragraph}{\rmfamily\itshape} +\setcounter{secnumdepth}{0} + +% amsmath +\RequirePackage{amsmath} +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\bibpunct{(}{)}{,}{a}{}{,} +\setlength{\bibsep}{0pt} +\bibliographystyle{tandfx} + +% captions of figures and tables +\setcapwidth[l]{\textwidth} +\setcapindent{0pt} +\setkomafont{captionlabel}{\normalsize\normalfont\bfseries} +\setkomafont{caption}{\normalsize\normalfont\bfseries} +\renewcommand{\captionformat}{.\ } + +% titlepage(s) +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\newcommand{\affilmark}[1]{\textsuperscript{\normalfont{#1}}} +\newcommand{\email}[1]{\newcommand{\@email}{#1}} +\newif\if@cauthormarkused +\@cauthormarkusedfalse +\newcommand{\cauthormark}{\textsuperscript{*}\@cauthormarkusedtrue} +\RequirePackage{stringstrings} +\renewcommand{\maketitle}{ + \if@makefulltitlepage + \setcounter{page}{0} + \thispagestyle{empty} + \vspace*{12mm} + \begin{spacing}{1.5}\noindent + \large{\textbf{\@title}}% + \end{spacing} + \vspace*{6mm} + \ifthenelse{ \isundefined\@author }{ + \ClassWarning{pocoec}{No author(s) specified. + Please specify with command \protect\author} + }{ + } + \noindent + \@author\\ + \if@cauthormarkused + \else + \ClassWarningNoLine{pocoec}{No author has been indicated as + corresponding author. + Please specify with command \protect\cauthormark} + \fi + \vspace*{6mm} + \begin{spacing}{1.1} + \ifthenelse{ \isundefined\@affiliation }{ + \ClassWarning{pocoec}{No affiliation(s) specified. + Please specify with command \protect\affiliation} + }{ + \noindent + \textit{\@affiliation}\\ + } + \vfill + \ifthenelse{ \isundefined\@email }{ + \ClassWarningNoLine{pocoec}{No email address of the corresponding author + is specified. Please specify with command \protect\email} + }{ + \noindent + \rule{0.3\textwidth}{0.1mm}\\ + \vspace*{2mm}\noindent + \cauthormark% + \findwords[q]{\@author}{~and~}% + \ifthenelse{ \equal{\theresult}{0} }{}{% + Corresponding author. + }% + Email: \url{\@email}\\ + } + \end{spacing} + \vspace*{5mm} + \clearpage + \fi + \if@makeshorttitlepage + \begin{spacing}{1.5}\noindent + \large{\textbf{\@title}} + \if@showauthor + \renewcommand{\cauthormark}{} + \findwords[q]{\@author}{~and~}% + \ifthenelse{ \equal{\theresult}{0} }{% + \renewcommand{\affilmark}[1]{}}{}% + \vspace*{3mm}\\ + \@author + \vspace*{1mm}\\ + \textit{\small \@affiliation} + \fi + \end{spacing} + \vspace*{4mm} + \fi +} + +% abstract, keywords +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} +\renewenvironment{abstract}{% + \vspace*{5mm} + \noindent + \textbf{Abstract}\\ + \noindent +}{% + \ifthenelse{ \isundefined\@keywords }{ + \ClassWarningNoLine{pocoec}{No keywords specified. + Please use the command \protect\keywords} + }{ + \vspace*{5mm}\\ \noindent + \textbf{Keywords:} \@keywords% + } + \vspace*{5mm} + \clearpage +} + +% use babel package and set language to british english +\RequirePackage[english,british]{babel} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% move floats to the end of the paper +\if@useendfloat + \RequirePackage[nolists,tablesfirst]{endfloat} +\fi + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} diff --git a/biblio/bibtex/contrib/economic/regstud.bst b/biblio/bibtex/contrib/economic/regstud.bst new file mode 100644 index 0000000000..afb2165b69 --- /dev/null +++ b/biblio/bibtex/contrib/economic/regstud.bst @@ -0,0 +1,1431 @@ +%%% journal "Regional Studies" (RegStud) +%%% bibliography style for use with LaTeX2e +%%% version: 1.0 (15 January 2008) +%%% license: LaTeX Project Public License (see below) +%%% This file was created with makebst (see below) and modified +%%% by Arne Henningsen. +%%% Note: This is an unofficial style file that may not fully comply +%%% with the reference guidelines of "Regional Studies" in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This BibTeX style should be used with the corresponding +%%% LaTeX class "regstud" (regstud.cls). +%%% Otherwise, the following line has to be added to the LaTeX preamble: +%%% \usepackage[authoryear]{natbib} +%%% +%% +%% This is file `regstud.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rev,ed-rev,jnrlst,nmft,nmft-sc,nmfted,nmand-rm,lab,lab-sc,and-rm,keyxyr,dt-beg,yr-par,yrp-x,note-yr,thtit-a,vol-bf,volp-com,num-xser,ser-vol,jnm-x,edparxc,bkedcap,blk-com,pp,ed,abr,xedn,and-xcom,etal-it,em-it,nfss,') +%% ---------------------------------------- +%% *** Regional Studies *** +%% +%% Copyright 1994-2004 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +FUNCTION {scaps} +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} +FUNCTION {bib.name.font} +{ scaps } +FUNCTION {bib.fname.font} +{ bib.name.font } +FUNCTION {cite.name.font} +{ scaps } +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{ f.}{, jj}" + format.name$ + bib.name.font + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + cite.name.font + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ") " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + add.blank + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + format.publisher.address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + howpublished "howpublished" bibinfo.check output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + cite.name.font + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal emphasize * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal emphasize * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + cite.name.font + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `regstud.bst'. diff --git a/biblio/bibtex/contrib/economic/regstud.cls b/biblio/bibtex/contrib/economic/regstud.cls new file mode 100644 index 0000000000..c50e06592f --- /dev/null +++ b/biblio/bibtex/contrib/economic/regstud.cls @@ -0,0 +1,270 @@ +%%% LaTeX class for manuscripts submitted to the +%%% Journal "Regional Studies" (regstud) +%%% +%%% author: Arne Henningsen +%%% version: 1.1 (18 November 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the Formatting Instructions of the "Regional Studies" in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, endfloat, endnotes, fontnec, geometry, +%%% ifthen, natbib, setspace, soul, titlesec, url, verbatim +%%% +%%% The corresponding BibTeX style file "regstud.bst" should be used +%%% for the bibliography: \bibliographystyle{regstud} +%%% +%%% The document class provides following options: +%%% noendfloat - don't move floats to the end of the paper +%%% hidefloats - hide all floats (figures and tables) +%%% author - show name(s) of authors(s) +%%% date - show date +%%% +%%% This document class provides 3 new commands: +%%% \keywords can be used to show keywors below the abstract +%%% \jelclass can be used to show JEL classifications below the abstract +%%% \affiliation can be used spefify the affiliation(s) of the author(s) +%%% +%%% If you use footnotes, add following line before the reference section: +%%% \listofendnotes +%%% +%%% "Regional Studies" requires that you use single quotes +%%% you could do this with the ``csquotes'' package: +%%% \usepackage{csquotes} +%%% \MakeInnerQuote{<yourQuoteCharacter>} +%%% +%%% To prepare a manuscript without floats, you can use +%%% either option "hidefloats" to hide all floats +%%% or extract the pages that do not include the floats +%%% with "pdftk", e.g. "pdftk all.pdf cat 1-14 output main.pdf" +%%% The former has the drawback that references to the hidden floats +%%% with \ref{} are no longer possible. +%%% The figures and tables can be extracted as images, e.g. with kpdf. +%%% +%%% Website of the "Regional Studies": +%%% http://www.tandf.co.uk/journals/titles/00343404.asp + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{regstud}[2009/11/18 LaTeX class for the Journal 'Regional Studies'] + +% option to NOT place floats at the end +\newif\if@UseEndfloat +\@UseEndfloattrue +\DeclareOption{noendfloat}{\@UseEndfloatfalse} + +% option to hide floats +\newif\if@HideFloats +\@HideFloatsfalse +\DeclareOption{hidefloats}{\@HideFloatstrue \@UseEndfloatfalse} + +% option to show the authors' names +\newif\if@ShowAuthor +\@ShowAuthorfalse +\DeclareOption{author}{\@ShowAuthortrue} + +% option to print the date +\newif\if@ShowDate +\@ShowDatefalse +\DeclareOption{date}{\@ShowDatetrue} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,tablecaptionabove, + noonelinecaption]{scrartcl} +% pointlessnumbers = do not add final dot after ordinary section numbers +% tablecaptionabove = use \captionabove for tables +% noonelinecaption = do not treat one-line captions differently + +% for internal use +\RequirePackage{ifthen} + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% page format, margins +\RequirePackage{geometry} +\geometry{a4paper, tmargin=2.5cm, bmargin=2.8cm, lmargin=2.5cm, + rmargin=2.5cm, headheight=0cm, headsep=0cm, footskip=1.2cm } + +% double spacing +\RequirePackage{setspace} +\doublespacing + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{15pt} + +% font: latin modern +\RequirePackage{lmodern} + +% amsmath +\RequirePackage{amsmath} +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +%% formatting section headers +\RequirePackage{titlesec} +% package for letterspacing +\RequirePackage{soul} +% format of section headers +\newcommand{\secformat}[1]{\MakeUppercase{\so{#1}}} +\titleformat{\section}[block] + {\normalfont\filcenter} + {} + {0pt} + {\secformat} +% spacing around section headers +\titlespacing*{\section}{0pt}{3ex}{0.3ex} +% format of subsection headers +\titleformat{\subsection}[block] + {\normalsize\itshape} + {} + {0pt} + {} +% spacing around subsection headers +\titlespacing*{\subsection}{0pt}{2ex}{0.15ex} + +%% warning if subsubsection headers are present +\renewcommand{\subsubsection}[1]{% +\ClassWarningNoLine{regstud}{subsubsections are ignored}% +} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\AtBeginDocument{\renewcommand{\refname}{References}} +\setlength{\bibsep}{0pt} + +%% use endnotes in place of footnotes +\RequirePackage{endnotes} +\renewcommand{\notesname}{Notes} +\let\footnote=\endnote +\newcommand{\listofendnotes}{ + \begingroup + \parindent 0pt + \parskip 0ex + \def\enotesize{\normalsize} + \theendnotes + \endgroup +} +% use normalsize numbers (copied from endnote.sty and modified thereafter) +\def\enoteformat{\rightskip\z@ \leftskip\z@ \parindent=0em + \leavevmode\llap{\theenmark. }} + + +% captions of figures and tables +\setcapwidth[c]{\textwidth} +\setkomafont{captionlabel}{\centering \itshape} +\setkomafont{caption}{\centering \itshape} +\renewcommand{\captionformat}{.\, } +\addto\captionsenglish{% + \renewcommand{\figurename}{Fig.}% +} + +% move floats to the end of the paper +\if@UseEndfloat + \RequirePackage[noheads,nolists,tablesfirst,nomarkers]{endfloat} + \AtBeginDelayedFloats{\pagestyle{empty}} +\fi + +% hide floats +\if@HideFloats + \RequirePackage{verbatim} + \let\figure=\comment + \let\endfigure=\endcomment + \let\table=\comment + \let\endtable=\endcomment +\fi + +% titlepage with title, author, affiliation and date +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\renewcommand{\and}{{\normalfont and}} +\renewcommand{\maketitle}{ + \begin{center} + \begin{Large} + \begin{spacing}{1.25} + \textbf{\@title} + \end{spacing} + \end{Large} + \vspace*{5mm} + \if@ShowAuthor + \MakeUppercase{\so{\@author}}\\ + \ifthenelse{ \isundefined\@affiliation }{}{ + \textit{\@affiliation}\\ + } + \vspace*{3mm} + \fi + \if@ShowDate + \@date\\ + \vspace*{3mm} + \fi + \vspace*{2mm} + \end{center} +} + + +% abstract, keywords, JEL classification +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} +\renewenvironment{abstract}{% +\vspace*{-\baselineskip} +\mbox{}\\\noindent% +}{% +\ifthenelse{ \isundefined\@keywords }{ +\ClassWarningNoLine{ajae}{No keywords specified. + Please use the command \protect\keywords} +}{ + +\medskip \noindent +Key words: \@keywords +} +\ifthenelse{ \isundefined\@jelclass }{ +\ClassWarningNoLine{ajae}{No JEL classification specified. + Please use the command \protect\jelclass} +}{ + +\medskip \noindent +JEL classification: \@jelclass +} + +\medskip +} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} diff --git a/biblio/bibtex/contrib/economic/tandfx.bst b/biblio/bibtex/contrib/economic/tandfx.bst new file mode 100644 index 0000000000..133232e260 --- /dev/null +++ b/biblio/bibtex/contrib/economic/tandfx.bst @@ -0,0 +1,1574 @@ +%%% Taylor & Francis Reference Style X (tandfx) +%%% bibliography style for use with LaTeX2e +%%% version: 1.0 (18 July 2008) +%%% license: LaTeX Project Public License (see below) +%%% This file was created with makebst (see below) +%%% by Arne Henningsen. +%%% Note: This is an unofficial style file that may not fully comply +%%% with the Taylor & Francis Reference Style X in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% You should add the following lines to the LaTeX preamble: +%%% \usepackage[authoryear]{natbib} +%%% \bibpunct{(}{)}{,}{a}{}{,} +%%% +%% +%% This is file `tandfx.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,lang,nm-rev,jnrlst,keyxyr,blkyear,dt-beg,yr-com,yrp-per,note-yr,vnum-sp,volp-com,num-xser,ser-vol,bkpg-x,add-pub,pre-pub,blk-com,in-col,in-it,ppx,ed,abr,ednx,ord,etal-it,em-it,nfss,') +%% ---------------------------------------- +%% *** Taylor and Francis Reference Style X *** +%% +%% Copyright 1994-2005 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2005/10/17 4.14 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.sentence +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, f{.}.}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f{.}.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { + + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.editor + * + } + if$ +} +FUNCTION {select.language} +{ duplicate$ empty$ + 'pop$ + { language empty$ + 'skip$ + { "{\selectlanguage{" language * "}" * swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + select.language + } + if$ +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in + ":" * + emphasize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + ", " swap$ * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + select.language + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} +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$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "~(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + "," * + " " * + get.bbl.editor + ", " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.publisher.address output + format.bvolume output + format.number.series output + format.chapter.pages output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.bvolume output + format.number.series output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + howpublished "howpublished" bibinfo.check output + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal emphasize * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal emphasize * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\selectlanguage}[1]{\relax}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `tandfx.bst'. diff --git a/biblio/bibtex/contrib/economic/worlddev.bst b/biblio/bibtex/contrib/economic/worlddev.bst new file mode 100644 index 0000000000..498c5a8a53 --- /dev/null +++ b/biblio/bibtex/contrib/economic/worlddev.bst @@ -0,0 +1,1459 @@ +%% +%% This is file `worlddev.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,nm-rev,jnrlst,keyxyr,dt-jnl,note-yr,volp-com,jdt-pc,num-xser,bkpg-par,add-pub,edpar,bkedcap,blk-com,au-col,pp,ed,abr,xedn,amper,and-com,and-com-ed,etal-it,nfss,') +%% ---------------------------------------- +%% *** World Development *** +%% +%% Copyright 1994-2004 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + 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 {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {add.colon} +{ duplicate$ empty$ + 'skip$ + { ":" * add.blank } + if$ +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, f.}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + "\&" + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal emphasize * + } + { + "\&" + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + "\&" + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { 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$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * +} +FUNCTION{format.year} +{ year "year" bibinfo.check duplicate$ empty$ + { "empty year in " cite$ * + "; set to ????" * + warning$ + pop$ "????" + } + { + } + if$ + extra.label * + "(" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +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 +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + "(" swap$ * ")" * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + format.year * ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + format.title "title" output.check + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + add.colon + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + date.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + format.publisher.address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.date "year" output.check + date.block + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.date "year" output.check + date.block + format.pages "pages" output.check + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + add.colon + format.btitle "title" output.check + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + format.btitle + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + add.colon + format.title output + howpublished "howpublished" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + format.btitle + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + add.colon + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + format.title + "title" output.check + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + add.colon + format.title "title" output.check + format.date "year" output.check + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal emphasize * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal emphasize * + } + { " \& " * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `worlddev.bst'. diff --git a/biblio/bibtex/contrib/economic/worlddev.cls b/biblio/bibtex/contrib/economic/worlddev.cls new file mode 100644 index 0000000000..8c9aeb8c97 --- /dev/null +++ b/biblio/bibtex/contrib/economic/worlddev.cls @@ -0,0 +1,243 @@ +%%% LaTeX class for manuscripts submitted to the +%%% Journal "World Development" (worlddev) +%%% +%%% author: Arne Henningsen +%%% version: 1.1 (18 November 2009) +%%% license: LaTeX Project Public License +%%% +%%% Note: This is an unofficial style file that may not fully comply +%%% with the Formatting Instructions of the "World Development" in every detail. +%%% Please report any problems at +%%% http://sourceforge.net/projects/economtex/ +%%% Further information is available at +%%% http://economtex.wiki.sourceforge.net/ +%%% +%%% This document class is based on the "scrartcl" class +%%% from the KOMA script bundle. +%%% Following additional packages are required: +%%% amsmath, babel, endfloat, endnotes, geometry, +%%% ifthen, lmodern, natbib, setspace, textcomp, titlesec, url +%%% +%%% The class provides following options: +%%% noendnotes - don't use endnotes (use footnotes) +%%% noendfloat - don't move floats to the end of the paper +%%% author - show name(s) of authors(s) +%%% date - show date +%%% +%%% This document class provides 3 new commands: +%%% \keywords can be used to show keywors below the abstract +%%% \jelclass can be used to show JEL classifications below the abstract +%%% \affiliation can be used spefify the affiliation(s) of the author(s) +%%% +%%% If you use footnotes, add following line before the reference section: +%%% \listofendnotes +%%% +%%% "World Development" requires that you use double quotes +%%% you could do this with the ``csquotes'' package: +%%% \usepackage{csquotes} +%%% \MakeOuterQuote{<yourQuoteCharacter>} +%%% +%%% Website of the journal "World Development": +%%% http://www.elsevier.com/wps/locate/worlddev/ + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{worlddev}[2009/11/18 LaTeX class for the Journal 'World Development'] + +\RequirePackage{ifthen} + +% option NOT to place floats at the end +\newcounter{UseEndfloat} +\setcounter{UseEndfloat}{1} +\DeclareOption{noendfloat}{\setcounter{UseEndfloat}{0}} + +% option to use footnotes in place of endnotes +\newcounter{UseEndnotes} +\setcounter{UseEndnotes}{1} +\DeclareOption{noendnotes}{\setcounter{UseEndnotes}{0}} + +% option to show the authors' names +\newcounter{ShowAuthor} +\setcounter{ShowAuthor}{0} +\DeclareOption{author}{\setcounter{ShowAuthor}{1}} + +% option to print the date +\newcounter{ShowDate} +\setcounter{ShowDate}{0} +\DeclareOption{date}{\setcounter{ShowDate}{1}} + +% pass any options on to the scrartcl class and load this class with some options +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}} +\ProcessOptions\relax +\LoadClass[12pt,english,pointlessnumbers,tablecaptionabove, + noonelinecaption]{scrartcl} +% pointlessnumbers = do not add final dot after ordinary section numbers +% tablecaptionabove = use \captionabove for tables +% noonelinecaption = do not treat one-line captions differently + +% use babel package and set language to english +\RequirePackage[english]{babel} + +% page format, margins +\RequirePackage{geometry} +\geometry{a4paper, tmargin=2.5cm, bmargin=2.8cm, lmargin=2.5cm, + rmargin=2.5cm, headheight=0cm, headsep=0cm, footskip=1.2cm } + +% double spacing +\RequirePackage{setspace} +\doublespacing + +% spacing around formulas +\AtBeginDocument{ +\setlength{\abovedisplayshortskip}{6pt} +\setlength{\belowdisplayshortskip}{6pt} +\setlength{\abovedisplayskip}{6pt} +\setlength{\belowdisplayskip}{6pt} +\allowdisplaybreaks +} + +% spacing around captions and floats +\setlength{\abovecaptionskip}{6pt} +\setlength{\belowcaptionskip}{3pt} +\setlength{\floatsep}{0pt} +\setlength{\textfloatsep}{20pt} +\setlength{\intextsep}{15pt} + +% font family: Latin Modern +\RequirePackage{textcomp} +\RequirePackage{lmodern} + +% amsmath +\RequirePackage[fleqn]{amsmath} +% for compatibility with ajae.cls +\newcommand{\veclatin}[1]{#1} +\newcommand{\matlatin}[1]{#1} +\newcommand{\vecgreek}[1]{#1} +\newcommand{\matgreek}[1]{#1} + +% font for URLs +\RequirePackage{url} +\def\UrlFont{\rmfamily} + +%% formatting section and subsection headers +\RequirePackage{titlesec} +% format of section headers +\newcommand{\secformat}[1]{\MakeUppercase{#1}} +\titleformat{\section}[block] + {\normalfont\filcenter} + {\arabic{section}. } + {0pt} + {\secformat} +% spacing around section headers +\titlespacing*{\section}{0pt}{3ex}{0.3ex} +% format of subsection headers +\titleformat{\subsection}[block] + {\normalsize\filcenter} + {(\alph{subsection}) } + {0pt} + {\textit} +% spacing around subsection headers +\titlespacing*{\subsection}{0pt}{2ex}{0.15ex} + +%% warning if subsubsection headers are present +\renewcommand{\subsubsection}[1]{% +\ClassWarning{worlddev}{subsubsections are ignored}% +} + +% citations and bibliography +\RequirePackage[authoryear]{natbib} +\setlength{\bibsep}{0pt} + +%% use endnotes in place of footnotes +\ifthenelse{\equal{\theUseEndnotes}{1}}{ + \RequirePackage{endnotes} + \let\footnote=\endnote + \newcommand{\listofendnotes}{ + \begingroup + \parindent 0pt + \parskip 0ex + \def\enotesize{\normalsize} + \theendnotes + \endgroup + } + % use normalsize numbers (copied from endnote.sty and modified thereafter) + \def\enoteformat{\rightskip\z@ \leftskip\z@ \parindent=0em + \leavevmode\llap{\theenmark. }} +}{} + +% captions of figures and tables +\setcapwidth[c]{\textwidth} +\setkomafont{caption}{\centering \itshape} +\renewcommand{\captionformat}{. } + +% move floats to the end of the paper +\ifthenelse{\equal{\theUseEndfloat}{1}}{ + \RequirePackage[nolists,tablesfirst]{endfloat} +}{} + +% titlepage with title, author, affiliation and date +\newcommand{\affiliation}[1]{\newcommand{\@affiliation}{#1}} +\renewcommand{\and}{{\normalfont and}} +\renewcommand{\maketitle}{ + \begin{center} + \begin{Large} + \begin{spacing}{1.25} + \textbf{\@title} + \end{spacing} + \end{Large} + \vspace*{5mm} + \ifthenelse{\equal{\theShowAuthor}{1}}{ + \MakeUppercase{\@author}\\ + \ifthenelse{ \isundefined\@affiliation }{}{ + \vspace*{3mm} + \textit{\@affiliation}\\ + } + }{} + \vspace*{3mm} + \ifthenelse{\equal{\theShowDate}{1}}{ + \@date\\ + }{} + \vspace*{3mm} + \end{center} +} + + +% abstract, keywords, JEL classification +\newcommand{\keywords}[1]{\newcommand{\@keywords}{#1}} +\newcommand{\jelclass}[1]{\newcommand{\@jelclass}{#1}} +\renewenvironment{abstract}{% +\begin{center} +\begin{minipage}{0.94 \textwidth} +\small +\textbf{Summary.}\;---% +}{% +\ifthenelse{ \isundefined\@keywords }{ +\ClassWarningNoLine{worlddev}{No keywords specified. + Please use the command \protect\keywords} +}{ + +\medskip \noindent +\textit{Key words} --- \@keywords +} +\ifthenelse{ \isundefined\@jelclass }{ +}{ + +\medskip \noindent +\textit{JEL classification} --- \@jelclass +} +\end{minipage} +\end{center}% +\noindent% +} + +% avoid clubs and widows +\clubpenalty=10000 +\widowpenalty=10000 +% \displaywidowpenalty=10000 + +% increase stretchability of the spaces (avoid overful hboxes) +\setlength{\emergencystretch}{3em} + +% for compatibility with erae.cls +\newcommand{\citetPage}[2]{\citeauthor{#2} (\citeyear{#2}, p.~#1)} +\newcommand{\citepPage}[2]{\citetext{\citealp{#2}, p.~#1}} |