From abac25d8f7359256802b6887af8b058b106453b2 Mon Sep 17 00:00:00 2001 From: Sam Moore Date: Tue, 22 Oct 2013 11:50:18 +0800 Subject: [PATCH] Create Report Template --- reports/final/.gitignore | 8 + reports/final/Makefile | 19 + reports/final/README.md | 1 + reports/final/references/refs.bib | 8 + reports/final/report.pdf | Bin 0 -> 25424 bytes reports/final/report.tex | 94 ++ reports/final/styles/agu.bst | 1714 +++++++++++++++++++++++++ reports/final/styles/amsalpha.bst | 1382 ++++++++++++++++++++ reports/final/styles/amsplain.bst | 1242 ++++++++++++++++++ reports/final/styles/bibtex-c.html | 144 +++ reports/final/styles/h-physrev.bst | 949 ++++++++++++++ reports/final/styles/hep.bst | 1417 ++++++++++++++++++++ reports/final/styles/hplain.bst | 1121 ++++++++++++++++ reports/final/styles/line.bst | 1265 ++++++++++++++++++ reports/final/styles/plain.bst | 1097 ++++++++++++++++ reports/final/styles/uwa.bst | 1474 +++++++++++++++++++++ reports/final/titlepage/Titlepage.tex | 6 + 17 files changed, 11941 insertions(+) create mode 100644 reports/final/.gitignore create mode 100644 reports/final/Makefile create mode 100644 reports/final/README.md create mode 100644 reports/final/references/refs.bib create mode 100644 reports/final/report.pdf create mode 100644 reports/final/report.tex create mode 100644 reports/final/styles/agu.bst create mode 100644 reports/final/styles/amsalpha.bst create mode 100644 reports/final/styles/amsplain.bst create mode 100644 reports/final/styles/bibtex-c.html create mode 100644 reports/final/styles/h-physrev.bst create mode 100644 reports/final/styles/hep.bst create mode 100644 reports/final/styles/hplain.bst create mode 100644 reports/final/styles/line.bst create mode 100644 reports/final/styles/plain.bst create mode 100644 reports/final/styles/uwa.bst create mode 100644 reports/final/titlepage/Titlepage.tex diff --git a/reports/final/.gitignore b/reports/final/.gitignore new file mode 100644 index 0000000..7ce0e8d --- /dev/null +++ b/reports/final/.gitignore @@ -0,0 +1,8 @@ +*.out +*.dvi +*.aux +*.log +*.toc +*.bbl +*.blg +*~ diff --git a/reports/final/Makefile b/reports/final/Makefile new file mode 100644 index 0000000..ea4c15e --- /dev/null +++ b/reports/final/Makefile @@ -0,0 +1,19 @@ +#Makefile for thesis + +all : + make clean + make report.pdf + +report.pdf : report.tex + rm -f *.aux *.bbl *.log *.toc *.lof *.blg *.lot + + pdflatex --shell-escape report + bibtex report + pdflatex --shell-escape report + pdflatex --shell-escape report + + rm -f *.bbl *.log *.toc *.lof *.blg *.lot + + +clean : + rm -f report.pdf diff --git a/reports/final/README.md b/reports/final/README.md new file mode 100644 index 0000000..1ecfa28 --- /dev/null +++ b/reports/final/README.md @@ -0,0 +1 @@ +This is the final report for the MCTX3420 Software Team diff --git a/reports/final/references/refs.bib b/reports/final/references/refs.bib new file mode 100644 index 0000000..d058a8a --- /dev/null +++ b/reports/final/references/refs.bib @@ -0,0 +1,8 @@ +@misc{uwaRef, + author = "Example Reference, + year = 2013, + month = Aug, + title = "Harvard Citation Style", + howpublished = "\url{http://guides.is.uwa.edu.au/harvard}", + note = "UWA Reference guide" +} diff --git a/reports/final/report.pdf b/reports/final/report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..002ae80ab8b22fc911c25c62d443d191e7705946 GIT binary patch literal 25424 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 literal 0 HcmV?d00001 diff --git a/reports/final/report.tex b/reports/final/report.tex new file mode 100644 index 0000000..e1dfa2d --- /dev/null +++ b/reports/final/report.tex @@ -0,0 +1,94 @@ +\documentclass[a4paper,12pt,titlepage]{report} +\linespread{1.3} +\usepackage{setspace} +\onehalfspacing + \parskip 10pt % sets spacing between paragraphs + %\renewcommand{\baselinestretch}{1.5} % Uncomment for 1.5 spacing between lines + %\parindent 0pt % sets leading space for paragraphs + + +%\usepackage{natbib} +\usepackage{makeidx} +\usepackage{graphicx} +\usepackage{caption} +%\usepackage{subfigure} +\usepackage{rotating} +%\usepackage{lscape} % Needed for landscaping when printing +\usepackage{pdflscape} % Needed for landscaping - in pdf viewer +\usepackage{verbatim} +\usepackage{amsmath, amsthm,amssymb} +\usepackage{mathrsfs} +\usepackage{hyperref} + +\usepackage{epstopdf} +\usepackage{float} +\usepackage[compact]{titlesec} +\titlespacing{\chapter}{0pt}{0pt}{0pt} +\titleformat{\chapter} +{\normalfont\LARGE\bfseries}{\thechapter.}{1em}{} + +%\usepackage{endfloat} +%\nomarkersintext + \topmargin -1.5cm % read Lamport p.163 + \oddsidemargin -0.04cm % read Lamport p.163 + \evensidemargin -0.04cm % same as oddsidemargin but for left-hand pages + \textwidth 16.59cm + \textheight 23.94cm + %\pagestyle{empty} % Uncomment if don't want page numbers + \parskip 6.2pt % sets spacing between paragraphs + \renewcommand{\baselinestretch}{1.5} % Uncomment for 1.5 spacing between lines + \parindent 0pt % sets leading space for paragraphs + +\usepackage{fancyheadings} +\pagestyle{fancy} +\addtolength{\headheight}{2.5pt} +\renewcommand{\chaptermark}[1]{\markboth{\thechapter~~#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection~~#1}{}} +\ifthenelse{\boolean{@twoside}} +{ + \rhead[\bfseries \rightmark]{\bfseries \thepage} + \lhead[\bfseries \leftmark]{\bfseries \thepage} + \addtolength{\headwidth}{\marginparsep} + \addtolength{\headwidth}{\marginparwidth} +}{ + \lhead{\bfseries \leftmark} + \rhead{\bfseries \thepage} +} +\cfoot{} + +%--------------------------------------------------------- +%--------------------------------------------------------- +\begin{document} + +\include{titlepage/Titlepage} % This is who you are + +\pagenumbering{roman} +\newpage +%--------------------------------------------------------- +% Do the table of Contents and lists of figures and tables +%--------------------------------------------------------- +\tableofcontents +\markboth{}{} +\newpage + +\pagenumbering{arabic} +%--------------------------------------------------------- +%--------------------------------------------------------- +%Include the chapters! + +%\include{chapters/Demonstration} + +%\newpage +%--------------------------------------------------------- +\renewcommand{\bibname}{References} +\bibliography{references/refs} +%\bibliographystyle{apalike} +\addcontentsline{toc}{part}{References} +%--------------------------------------------------------- + +% Appendices + +%--------------------------------------------------------- + +\end{document} + diff --git a/reports/final/styles/agu.bst b/reports/final/styles/agu.bst new file mode 100644 index 0000000..58c1cf9 --- /dev/null +++ b/reports/final/styles/agu.bst @@ -0,0 +1,1714 @@ +%% +%% This is file `agu.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,ay,nat,seq-key,nm-rev1,nmlm,x9,m1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% physjour.mbs (with options: `ay,nat,seq-key,nm-rev1,nmlm,x9,m1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% geojour.mbs (with options: `ay,nat,seq-key,nm-rev1,nmlm,x9,m1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% merlin.mbs (with options: `tail,ay,nat,seq-key,nm-rev1,nmlm,x9,m1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% ---------------------------------------- +%% *** For journals of the American Geophysical Union *** +%% *** NOTE: this version limits number of authors in ref list to +%% *** maximum of 9; if more there, only First et al are listed +%% *** Use agufull.bst instead for complete list +%% *** +%% *** Version 2.1d from 1999/05/20 +%% *** Book editors done right as P. James (Ed.), +%% *** Missing italics with some authors fixed +%% *** +%% *** Version 2.1c from 1999/02/11 +%% *** This version does not crash older BibTeX installations with +%% *** more than 3000 wiz-functions +%% *** +%% *** Version 2.1b from 1997/11/18 +%% *** (page numbers over 9999 are broken with commas, as 12,345) +%% *** +%% *** Version 2.1a from 1997/05/26 +%% *** (contains improvements from copy editor comments, +%% *** notes added with first word lowercase (bug in 2.1 fixed) +%% *** and journal `number' never output +%% *** abbreviation for grl corrected) +%% *** +%% +%% Copyright 1994-1999 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}[1999/05/20 3.89 (PWD)] + % 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 {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$ "" } + { "{\it " swap$ * "\/}" * } + if$ +} + + +FUNCTION {cite.name.font} +{ emphasize } + +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" } + +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."} + + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{physjour.mbs}[1999/02/24 2.0d (PWD)] +MACRO {aa}{"Astron. \& Astrophys."} +MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} +MACRO {aph} {"Acta Phys."} +MACRO {advp} {"Adv. Phys."} +MACRO {ajp} {"Amer. J. Phys."} +MACRO {ajm} {"Amer. J. Math."} +MACRO {amsci} {"Amer. Sci."} +MACRO {anofd} {"Ann. Fluid Dyn."} +MACRO {am} {"Ann. Math."} +MACRO {ap} {"Ann. Phys. (NY)"} +MACRO {adp} {"Ann. Phys. (Leipzig)"} +MACRO {ao} {"Appl. Opt."} +MACRO {apl} {"Appl. Phys. Lett."} +MACRO {app} {"Astroparticle Phys."} +MACRO {apj} {"Astrophys. J."} +MACRO {apjsup} {"Astrophys. J. Suppl. Ser."} +MACRO {baps} {"Bull. Amer. Phys. Soc."} +MACRO {cmp} {"Comm. Math. Phys."} +MACRO {cpam} {"Commun. Pure Appl. Math."} +MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"} +MACRO {cpc} {"Comp. Phys. Comm."} +MACRO {cqg} {"Class. Quant. Grav."} +MACRO {cra} {"C. R. Acad. Sci. A"} +MACRO {fed} {"Fusion Eng. \& Design"} +MACRO {ft} {"Fusion Tech."} +MACRO {grg} {"Gen. Relativ. Gravit."} +MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} +MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} +MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"} +MACRO {ip} {"Infrared Phys."} +MACRO {irp} {"Infrared Phys."} +MACRO {jap} {"J. Appl. Phys."} +MACRO {jasa} {"J. Acoust. Soc. America"} +MACRO {jcp} {"J. Comp. Phys."} +MACRO {jetp} {"Sov. Phys.--JETP"} +MACRO {jfe} {"J. Fusion Energy"} +MACRO {jfm} {"J. Fluid Mech."} +MACRO {jmp} {"J. Math. Phys."} +MACRO {jne} {"J. Nucl. Energy"} +MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."} +MACRO {jnm} {"J. Nucl. Mat."} +MACRO {jpc} {"J. Phys. Chem."} +MACRO {jpp} {"J. Plasma Phys."} +MACRO {jpsj} {"J. Phys. Soc. Japan"} +MACRO {jsi} {"J. Sci. Instrum."} +MACRO {jvst} {"J. Vac. Sci. \& Tech."} +MACRO {nat} {"Nature"} +MACRO {nature} {"Nature"} +MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"} +MACRO {nf} {"Nucl. Fusion"} +MACRO {nim} {"Nucl. Inst. \& Meth."} +MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."} +MACRO {np} {"Nucl. Phys."} +MACRO {npb} {"Nucl. Phys. B"} +MACRO {nt/f} {"Nucl. Tech./Fusion"} +MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"} +MACRO {inc} {"Nuovo Cimento"} +MACRO {nc} {"Nuovo Cimento"} +MACRO {pf} {"Phys. Fluids"} +MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."} +MACRO {pfb} {"Phys. Fluids B: Plasma Phys."} +MACRO {pl} {"Phys. Lett."} +MACRO {pla} {"Phys. Lett. A"} +MACRO {plb} {"Phys. Lett. B"} +MACRO {prep} {"Phys. Rep."} +MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} +MACRO {pp} {"Phys. Plasmas"} +MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"} +MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"} +MACRO {prl} {"Phys. Rev. Lett."} +MACRO {pr} {"Phys. Rev."} +MACRO {physrev} {"Phys. Rev."} +MACRO {pra} {"Phys. Rev. A"} +MACRO {prb} {"Phys. Rev. B"} +MACRO {prc} {"Phys. Rev. C"} +MACRO {prd} {"Phys. Rev. D"} +MACRO {pre} {"Phys. Rev. E"} +MACRO {ps} {"Phys. Scripta"} +MACRO {procrsl} {"Proc. Roy. Soc. London"} +MACRO {rmp} {"Rev. Mod. Phys."} +MACRO {rsi} {"Rev. Sci. Inst."} +MACRO {science} {"Science"} +MACRO {sciam} {"Sci. Am."} +MACRO {sam} {"Stud. Appl. Math."} +MACRO {sjpp} {"Sov. J. Plasma Phys."} +MACRO {spd} {"Sov. Phys.--Doklady"} +MACRO {sptp} {"Sov. Phys.--Tech. Phys."} +MACRO {spu} {"Sov. Phys.--Uspeki"} + % End module: physjour.mbs + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{geojour.mbs}[1999/02/24 2.0e (PWD)] +MACRO {aisr} {"Adv. Space Res."} +MACRO {ag} {"Ann. Geophys."} +MACRO {anigeo} {"Ann. Geofis."} +MACRO {angl} {"Ann. Glaciol."} +MACRO {andmet} {"Ann. d. Meteor."} +MACRO {andgeo} {"Ann. d. Geophys."} +MACRO {andphy} {"Ann. d. Phys."} +MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."} +MACRO {atph} {"Atm\'osphera"} +MACRO {aao} {"Atmos.-Ocean"} +MACRO {ass}{"Astrophys. Space Sci."} +MACRO {atenv} {"Atmos. Environ."} +MACRO {aujag} {"Aust. J. Agric. Res."} +MACRO {aumet} {"Aust. Meteor. Mag."} +MACRO {blmet} {"Bound.-Layer Meteor."} +MACRO {bams} {"Bull. Amer. Meteor. Soc."} +MACRO {cch} {"Clim. Change"} +MACRO {cdyn} {"Climate Dyn."} +MACRO {cbul} {"Climatol. Bull."} +MACRO {cap} {"Contrib. Atmos. Phys."} +MACRO {dsr} {"Deep-Sea Res."} +MACRO {dhz} {"Dtsch. Hydrogr. Z."} +MACRO {dao} {"Dyn. Atmos. Oceans"} +MACRO {eco} {"Ecology"} +MACRO {empl}{"Earth, Moon and Planets"} +MACRO {envres} {"Environ. Res."} +MACRO {envst} {"Environ. Sci. Technol."} +MACRO {ecms} {"Estuarine Coastal Mar. Sci."} +MACRO {expa}{"Exper. Astron."} +MACRO {geoint} {"Geofis. Int."} +MACRO {geopub} {"Geofys. Publ."} +MACRO {geogeo} {"Geol. Geofiz."} +MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."} +MACRO {gfd} {"Geophys. Fluid Dyn."} +MACRO {geomag} {"Geophys. Mag."} +MACRO {georl} {"Geophys. Res. Lett."} +MACRO {grl} {"Geophys. Res. Lett."} +MACRO {ga} {"Geophysica"} +MACRO {gs} {"Geophysics"} +MACRO {ieeetap} {"IEEE Trans. Antennas Propag."} +MACRO {ijawp} {"Int. J. Air Water Pollut."} +MACRO {ijc} {"Int. J. Climatol."} +MACRO {ijrs} {"Int. J. Remote Sensing"} +MACRO {jam} {"J. Appl. Meteor."} +MACRO {jaot} {"J. Atmos. Ocean. Technol."} +MACRO {jatp} {"J. Atmos. Terr. Phys."} +MACRO {jce} {"J. Climate"} +MACRO {jcam} {"J. Climate Appl. Meteor."} +MACRO {jcm} {"J. Climate Meteor."} +MACRO {jcy} {"J. Climatol."} +MACRO {jgr} {"J. Geophys. Res."} +MACRO {jga} {"J. Glaciol."} +MACRO {jh} {"J. Hydrol."} +MACRO {jmr} {"J. Mar. Res."} +MACRO {jmrj} {"J. Meteor. Res. Japan"} +MACRO {jm} {"J. Meteor."} +MACRO {jpo} {"J. Phys. Oceanogr."} +MACRO {jra} {"J. Rech. Atmos."} +MACRO {jaes} {"J. Aeronaut. Sci."} +MACRO {japca} {"J. Air Pollut. Control Assoc."} +MACRO {jas} {"J. Atmos. Sci."} +MACRO {jmts} {"J. Mar. Technol. Soc."} +MACRO {jmsj} {"J. Meteor. Soc. Japan"} +MACRO {josj} {"J. Oceanogr. Soc. Japan"} +MACRO {jwm} {"J. Wea. Mod."} +MACRO {lao} {"Limnol. Oceanogr."} +MACRO {mwl} {"Mar. Wea. Log"} +MACRO {mau} {"Mausam"} +MACRO {meteor} {"``Meteor'' Forschungsergeb."} +MACRO {map} {"Met. Atmos. Phys."} +MACRO {metmag} {"Meteor. Mag."} +MACRO {metmon} {"Meteor. Monogr."} +MACRO {metrun} {"Meteor. Rundsch."} +MACRO {metzeit} {"Meteor. Z."} +MACRO {metgid} {"Meteor. Gidrol."} +MACRO {mwr} {"Mon. Wea. Rev."} +MACRO {nwd} {"Natl. Wea. Dig."} +MACRO {nzjmfr} {"N. Z. J. Mar. Freshwater Res."} +MACRO {npg} {"Nonlin. Proc. Geophys."} +MACRO {om} {"Oceanogr. Meteor."} +MACRO {ocac} {"Oceanol. Acta"} +MACRO {oceanus} {"Oceanus"} +MACRO {paleoc} {"Paleoceanography"} +MACRO {pce} {"Physics and Chemistry of the Earth"} +MACRO {pmg} {"Pap. Meteor. Geophys."} +MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."} +MACRO {physzeit} {"Phys. Z."} +MACRO {pps} {"Planet. Space Sci."} +MACRO {pss} {"Planet. Space Sci."} +MACRO {pag} {"Pure Appl. Geophys."} +MACRO {qjrms} {"Quart. J. Roy. Meteor. Soc."} +MACRO {quatres} {"Quat. Res."} +MACRO {rsci} {"Radio Sci."} +MACRO {rse} {"Remote Sens. Environ."} +MACRO {rgeo} {"Rev. Geophys."} +MACRO {rgsp} {"Rev. Geophys. Space Phys."} +MACRO {rdgeo} {"Rev. Geofis."} +MACRO {revmeta} {"Rev. Meteor."} +MACRO {sgp}{"Surveys in Geophys."} +MACRO {sp} {"Solar Phys."} +MACRO {ssr} {"Space Sci. Rev."} +MACRO {tellus} {"Tellus"} +MACRO {tac} {"Theor. Appl. Climatol."} +MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"} +MACRO {wrr} {"Water Resour. Res."} +MACRO {weather} {"Weather"} +MACRO {wafc} {"Wea. Forecasting"} +MACRO {ww} {"Weatherwise"} +MACRO {wmob} {"WMO Bull."} +MACRO {zeitmet} {"Z. Meteor."} + % End module: geojour.mbs +%% Copyright 1994-1999 Patrick W Daly +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ } + { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ } + if$ + 't := + nameptr #1 > + { + nameptr #1 + #1 + = + numnames #9 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + 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 {format.names.ed} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + '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$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + " (" * + editor num.names$ #1 > + 'bbl.editors + 'bbl.editor + if$ + capitalize + * ")" * + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + 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$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + 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 > + { + nameptr #1 + #1 + = + numnames #9 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + cite.name.font + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + t "others" = + 'skip$ + { cite.name.font } + if$ +} + +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 {if.digit} +{ duplicate$ "0" = + swap$ duplicate$ "1" = + swap$ duplicate$ "2" = + swap$ duplicate$ "3" = + swap$ duplicate$ "4" = + swap$ duplicate$ "5" = + swap$ duplicate$ "6" = + swap$ duplicate$ "7" = + swap$ duplicate$ "8" = + swap$ "9" = or or or or or or or or or +} +FUNCTION {n.separate} +{ 't := + "" + #0 'numnames := + { t empty$ not } + { t #-1 #1 substring$ if.digit + { numnames #1 + 'numnames := } + { #0 'numnames := } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames #5 = + { duplicate$ #1 #2 substring$ swap$ + #3 global.max$ substring$ + "," swap$ * * + } + 'skip$ + if$ + } + while$ +} +FUNCTION {n.dashify} +{ + n.separate + '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 duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + extra.label * +} + +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$ + { "" } + { bbl.volume volume tie.or.space.connect + series empty$ + 'skip$ + { bbl.of space.word * series 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 } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + bbl.in space.word * series * + } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " " * bbl.edition * } + { edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ", " * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + emphasize + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + ", " * + bbl.edby + * " " * + format.in.editors * + } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + 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 empty$ + 'skip$ + { address * } + if$ + } + { t * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ + "" + } + { publisher } + if$ + format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization empty$ + { "" } + { organization } + if$ + format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { 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.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 + } + if$ + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.title "title" output.check + howpublished output + address 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 + } + { format.authors output.nonnull + 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 + } + if$ + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + format.publisher.address output + format.date "year" output.check + } + { 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.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 output + format.publisher.address output + } + if$ + format.date "year" output.check + } + { 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.btitle "title" output.check + organization output + address 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 + format.title "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.title output + howpublished output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization 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 + format.title "title" output.check + format.tr.number emphasize output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + 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 * + cite.name.font + "others" 't := + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + cite.name.font + "others" 't := + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ + t "others" = + 'skip$ + { cite.name.font } + 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 > + { + nameptr #1 + #1 + = + numnames #9 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { numnames #2 > nameptr #2 = and + { "zz" * year field.or.null * " " * } + 'skip$ + if$ + 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 + * + " " + * + cite$ + * + #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 + * + " " + * + cite$ + * + #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$ +} + +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 `agu.bst'. diff --git a/reports/final/styles/amsalpha.bst b/reports/final/styles/amsalpha.bst new file mode 100644 index 0000000..8448e21 --- /dev/null +++ b/reports/final/styles/amsalpha.bst @@ -0,0 +1,1382 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "American Mathematical Society", +%%% version = "1.2beta", +%%% date = "13-Oct-1994", +%%% time = "15:31:22 EDT", +%%% filename = "amsalpha.bst", +%%% copyright = "Copyright (C) 1994 American Mathematical Society, +%%% 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 first rename it +%%% to some other name.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% checksum = "16562 1382 4093 29485", +%%% email = "tech-support@math.ams.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "bibtex, bibliography, amslatex, ams-latex", +%%% supported = "yes", +%%% abstract = "BibTeX bibliography style amsalpha for BibTeX +%%% versions 0.99a or later and LaTeX version 2e. +%%% Produces alphabetic-label bibliography items in +%%% a form typical for American Mathematical Society +%%% publications.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +% See the file btxbst.doc for extra documentation other than +% what is included here. And see btxhak.tex for a description +% of the BibTeX language and how to use it. + +% This defines the types of fields that can occur in a database entry +% for this particular bibliography style. Except for `language', +% this is the standard list from alpha.bst. + +%% Types of entries currently allowed in a BibTeX file: +%% +%% ARTICLE -- An article from a journal or magazine. +%% +%% BOOK -- A book with an explicit publisher. +%% +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% +%% INCOLLECTION -- A part of a book having its own title. +%% +%% INPROCEEDINGS -- An article in a conference proceedings. +%% +%% MANUAL -- Technical documentation. +%% +%% MASTERSTHESIS -- A Master's thesis. +%% +%% MISC -- Use this type when nothing else fits. +%% +%% PHDTHESIS -- A PhD thesis. +%% +%% PROCEEDINGS -- The proceedings of a conference. +%% +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +% Removed after.sentence, after.block---not needed. + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +% Scratch variables: + +STRINGS { s t } + +% Utility functions + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK=====================================================================" +top$ +stack$ +"ENDSTACK==================================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +% n.dashify is used to make sure page ranges get the TeX code +% (two hyphens) for en-dashes. + +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$ +} + +% tie.or.space.connect connects two items with a ~ if the +% second item is less than 3 letters long, otherwise it just puts an +% ordinary space. + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { " " * } + if$ +} + +% either.or.check gives a warning if two mutually exclusive fields +% were used in the database. + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% output.nonnull is called by output. + +FUNCTION {output.nonnull} +% remove the top item from the stack because it's in the way. +{ 's := + output.state mid.sentence = +% If we're in mid-sentence, add a comma to the new top item and write it + { ", " * write$ } +% Otherwise, if we're at the beginning of a bibitem, + { output.state before.all = +% just write out the top item from the stack; + 'write$ +% and the last alternative is that we're at the end of the current +% bibitem, so we add a period to the top stack item and write it out. + { add.period$ " " * write$ } + if$ + mid.sentence 'output.state := + } + if$ +% Put the top item back on the stack that we removed earlier. + s +} + +% Output checks to see if the stack top is empty; if not, it +% calls output.nonnull to write it out. + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% Standard warning message for a missing or empty field. For the user +% we call any such field `missing' without respect to the distinction +% made by BibTeX between missing and empty. + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + +% Output.check is like output except that it gives a warning on-screen +% if the given field in the database entry is empty. t is the field +% name. + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ +% This empty string is the first thing that will be written +% the next time write$ is called. Done this way because each +% item is saved on the stack until we find out what punctuation +% should be added after it. Therefore we need an empty first item. + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +% Removed new.block, new.block.checka, new.block.checkb, new.sentence, +% new.sentence.checka, and new.sentence.checkb functions here, since they +% don't seem to be needed in the AMS style. Also moved some real +% basic functions like `and' and 'or' earlier in the file. + +INTEGERS { nameptr namesleft numnames } + +% The extra section to write out a language field was added +% for AMSPLAIN.BST. Not present in plain.bst. + +FUNCTION {format.language} +{ language empty$ + { "" } + { " (" language * ")" * } + if$ +} + +% This version of format.names puts names in the format +% +% First von Last, Jr. +% +% (i.e., first name first, no abbreviating to initials). + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { extra.label "\bysame" = + {"\bysame"} + { author format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "" "journal name" missing.warning } + { journal + volume empty$ + 'skip$ + { " \textbf{" * volume * "}" * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ + } + if$ +} + +% For formatting the issue number for a journal article. + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +% For formatting miscellaneous dates + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%% The volume, series and number information is sort of tricky. +%% This code handles it as follows: +%% If the series is present, and the volume, but not the number, +%% then we do "\emph{Book title}, Series Name, vol. 000" +%% If the series is present, and the number, but not the volume, +%% then we do "\emph{Book title}, Series Name, no. 000" +%% If the series is present, and both number and volume, +%% then we do "\emph{Book title}, vol. XX, Series Name, no. 000" +%% Finally, if the series is absent, +%% then we do "\emph{Book title}, vol. XX" +%% or "\emph{Book title}, no. 000" +%% and if both volume and number are present, give a warning message. + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ series } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { ", " * } % add a comma and space to separate. + if$ + "no." number tie.or.space.connect * % add the number information + } + if$ + } +%% If the volume is NOT EMPTY: + { "vol." volume tie.or.space.connect % vol. XX + number empty$ + { series empty$ + 'skip$ + { series ", " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { ", " * series * ", no." * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +%% format.inproc.title.where.editors is used by inproceedings entry types + +FUNCTION {format.inproc.title.address.editors} +{ booktitle empty$ + { "" } +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. + { booktitle } + if$ +%% We add parentheses around the address (place where conference +%% was held). + address empty$ + 'skip$ + { add.space.if.necessary "(" * address * ")" * } + if$ +%% Likewise we add parentheses around the editors' names. + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ +} + +%% format.incoll.title.editors is similar to format.inproc... but +%% omits the address. For collections that are not proceedings volumes. + +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. + { booktitle } + if$ +%% We add parentheses around the editors' names. + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ +} + +% Desired output for format.number.series: +% +% Lecture Notes in Math., no.~1224 + +FUNCTION {format.number.series} +{ series empty$ + { number empty$ + { "" } + { "there's a number but no series in " cite$ * warning$ } + if$ + } + { series + number empty$ + 'skip$ + { ", no.~" * number * } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages n.dashify } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" } + { type "l" change.case$ " " * } + if$ + chapter * + pages empty$ + 'skip$ + { ", " * format.book.pages * } + 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$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% The format.crossref functions haven't been paid much attention +% at the present time (June 1990) and could probably use some +% work. MJD + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + 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$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.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$ + "" + } + { "In \emph{" booktitle * "}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% The main functions for each entry type. + +% journal, vol and year are formatted together because they are +% not separated by commas. + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year "journal, volume, and year" output.check + format.number output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title "title" output.check + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + format.number.series output + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.book.pages output + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.address.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.address.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.title "title" output.check + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.title "title" output.check + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + note "note" output.check + format.date output + 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 + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +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$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #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 := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} diff --git a/reports/final/styles/amsplain.bst b/reports/final/styles/amsplain.bst new file mode 100644 index 0000000..f49b3d4 --- /dev/null +++ b/reports/final/styles/amsplain.bst @@ -0,0 +1,1242 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "American Mathematical Society", +%%% version = "1.2beta", +%%% date = "13-Oct-1994", +%%% time = "15:30:52 EDT", +%%% filename = "amsplain.bst", +%%% copyright = "Copyright (C) 1994 American Mathematical Society, +%%% 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 first rename it +%%% to some other name.", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% checksum = "24224 1242 3737 26872", +%%% email = "tech-support@math.ams.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "bibtex, bibliography, amslatex, ams-latex", +%%% supported = "yes", +%%% abstract = "BibTeX bibliography style `amsplain' for BibTeX +%%% versions 0.99a or later and LaTeX version 2e. +%%% Produces alphabetic-label bibliography items in +%%% a form typical for American Mathematical Society +%%% publications.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +% See the file btxbst.doc for extra documentation other than +% what is included here. And see btxhak.tex for a description +% of the BibTeX language and how to use it. + +% This defines the types of fields that can occur in a database entry +% for this particular bibliography style. Except for `language', +% this is the standard list from plain.bst. + +%% Types of entries currently allowed in a BibTeX file: +%% +%% ARTICLE -- An article from a journal or magazine. +%% +%% BOOK -- A book with an explicit publisher. +%% +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% +%% INCOLLECTION -- A part of a book having its own title. +%% +%% INPROCEEDINGS -- An article in a conference proceedings. +%% +%% MANUAL -- Technical documentation. +%% +%% MASTERSTHESIS -- A Master's thesis. +%% +%% MISC -- Use this type when nothing else fits. +%% +%% PHDTHESIS -- A PhD thesis. +%% +%% PROCEEDINGS -- The proceedings of a conference. +%% +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label } + +% Removed after.sentence, after.block---not needed. + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +% Scratch variables: + +STRINGS { s t } + +% Utility functions + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK=====================================================================" +top$ +stack$ +"ENDSTACK==================================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +% n.dashify is used to make sure page ranges get the TeX code +% (two hyphens) for en-dashes. + +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$ +} + +% tie.or.space.connect connects two items with a ~ if the +% second item is less than 3 letters long, otherwise it just puts an +% ordinary space. + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { " " * } + if$ +} + +% either.or.check gives a warning if two mutually exclusive fields +% were used in the database. + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% output.nonnull is called by output. + +FUNCTION {output.nonnull} +% remove the top item from the stack because it's in the way. +{ 's := + output.state mid.sentence = +% If we're in mid-sentence, add a comma to the new top item and write it + { ", " * write$ } +% Otherwise, if we're at the beginning of a bibitem, + { output.state before.all = +% just write out the top item from the stack; + 'write$ +% and the last alternative is that we're at the end of the current +% bibitem, so we add a period to the top stack item and write it out. + { add.period$ " " * write$ } + if$ + mid.sentence 'output.state := + } + if$ +% Put the top item back on the stack that we removed earlier. + s +} + +% Output checks to see if the stack top is empty; if not, it +% calls output.nonnull to write it out. + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% Standard warning message for a missing or empty field. For the user +% we call any such field `missing' without respect to the distinction +% made by BibTeX between missing and empty. + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + +% Output.check is like output except that it gives a warning on-screen +% if the given field in the database entry is empty. t is the field +% name. + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ +% This empty string is the first thing that will be written +% the next time write$ is called. Done this way because each +% item is saved on the stack until we find out what punctuation +% should be added after it. Therefore we need an empty first item. + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +% Removed new.block, new.block.checka, new.block.checkb, new.sentence, +% new.sentence.checka, and new.sentence.checkb functions here, since they +% don't seem to be needed in the AMS style. Also moved some real +% basic functions like `and' and 'or' earlier in the file. + +INTEGERS { nameptr namesleft numnames } + +% The extra section to write out a language field was added +% for AMSPLAIN.BST. Not present in plain.bst. + +FUNCTION {format.language} +{ language empty$ + { "" } + { " (" language * ")" * } + if$ +} + +% This version of format.names puts names in the format +% +% First von Last, Jr. +% +% (i.e., first name first, no abbreviating to initials). + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { extra.label "\bysame" = + {"\bysame"} + { author format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "journal name" missing.warning ""} + { journal } + if$ + volume empty$ + 'skip$ + { " \textbf{" * volume * "}" * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ +} + +% For formatting the issue number for a journal article. + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +% For formatting miscellaneous dates + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%% The volume, series and number information is sort of tricky. +%% This code handles it as follows: +%% If the series is present, and the volume, but not the number, +%% then we do "\emph{Book title}, Series Name, vol. 000" +%% If the series is present, and the number, but not the volume, +%% then we do "\emph{Book title}, Series Name, no. 000" +%% If the series is present, and both number and volume, +%% then we do "\emph{Book title}, vol. XX, Series Name, no. 000" +%% Finally, if the series is absent, +%% then we do "\emph{Book title}, vol. XX" +%% or "\emph{Book title}, no. 000" +%% and if both volume and number are present, give a warning message. + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ series } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { ", " * } % add a comma and space to separate. + if$ + "no." number tie.or.space.connect * % add the number information + } + if$ + } +%% If the volume is NOT EMPTY: + { "vol." volume tie.or.space.connect % vol. XX + number empty$ + { series empty$ + 'skip$ + { series ", " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { ", " * series * ", no." * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +%% format.inproc.title.where.editors is used by inproceedings entry types + +FUNCTION {format.inproc.title.address.editors} +{ booktitle empty$ + { "" } +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. + { booktitle } + if$ +%% We add parentheses around the address (place where conference +%% was held). + address empty$ + 'skip$ + { add.space.if.necessary "(" * address * ")" * } + if$ +%% Likewise we add parentheses around the editors' names. + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ +} + +%% format.incoll.title.editors is similar to format.inproc... but +%% omits the address. For collections that are not proceedings volumes. + +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. + { booktitle } + if$ +%% We add parentheses around the editors' names. + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ +} + +% Desired output for format.number.series: +% +% Lecture Notes in Math., no.~1224 + +FUNCTION {format.number.series} +{ series empty$ + { number empty$ + { "" } + { "there's a number but no series in " cite$ * warning$ } + if$ + } + { series + number empty$ + 'skip$ + { ", no.~" * number * } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages n.dashify } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" } + { type "l" change.case$ " " * } + if$ + chapter * + pages empty$ + 'skip$ + { ", " * format.book.pages * } + 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$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% The format.crossref functions haven't been paid much attention +% at the present time (June 1990) and could probably use some +% work. MJD + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + 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$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.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$ + "" + } + { "In \emph{" booktitle * "}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% The main functions for each entry type. + +% journal, vol and year are formatted together because they are +% not separated by commas. + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year output + format.number output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title "title" output.check + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + format.number.series output + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.book.pages output + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.incoll.title.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.address.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.title "title" output.check + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.title "title" output.check + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + note "note" output.check + format.date output + 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 + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label prev.author this.author } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := + "abcxyz" 'prev.author := + "" 'this.author := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + author empty$ + { editor empty$ + { "" } + 'editor + if$ + } + 'author + if$ + 'this.author := + this.author prev.author = + { "\bysame" 'extra.label := } + { "" 'extra.label := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} diff --git a/reports/final/styles/bibtex-c.html b/reports/final/styles/bibtex-c.html new file mode 100644 index 0000000..dd3306b --- /dev/null +++ b/reports/final/styles/bibtex-c.html @@ -0,0 +1,144 @@ + + .bst files + +Bibliography style files define the style of a bibliography source list. + +One specifies a /bibliography style/ in one's /LaTeX/ document with a line + + \bibliographystyle{/style/} + +where /style/ is the name of a .bst file (like one of those listed in +the tables below) ... /but *without* the/ .bst /extension,/ e.g. the way +to specify the author's favourite bibliography style is by + + \bibliographystyle{uwa} + +The standard bibliography styles are plain, unsrt, abbrv and alpha. +A locally produced bibliography style is: uwa. It is most like abbrv. + + + .bst files on our system + +The most important .bst files on our system are tabulated below + +.bst file Style description +abbrv.bst <../bibtex/bst/base/abbrv.bst> Like plain.bst, except that +entries are more compact because first names, month names and journal +names are abbreviated +alpha.bst <../bibtex/bst/base/alpha.bst> Like plain.bst, except that +entry labels like `Knu66', formed from the author's name and the year of +publication, are used. +plain.bst <../bibtex/bst/base/plain.bst> This style is formatted more +or less as suggested by Mary-Claire van Leunen in /A Handbook for +Scholars / (Alfred A. Knopf, New York, 1979). Entries are sorted +alphabetically and are labelled with numbers. +unsrt.bst <../bibtex/bst/base/unsrt.bst> Like plain.bst, except that +entries appear in the order of their first citation. +uwa.bst <../bibtexuwa/bst/uwa.bst> Like abbrv.bst, but sets off +adjacent fields more, by using different fonts or punctuation. +editiontype field added. Also uses \bysame (a horizontal line) in place +of the author when subsequent references are by the same author(s). Now +also has a url field. See the header of uwa.bst +<../bibtexuwa/bst/uwa.bst> for a fuller description. +uwab.bst <../bibtexuwa/bst/uwab.bst> Same as uwa.bst, but does not use +\bysame. + + + Other .bst files on our system + +.bst file Style description +abbrvnat.bst <../bibtex/bst/natbib/abbrvnat.bst> Like plainnat.bst, +except that entries are more compact because first names, month names +and journal names are abbreviated. Used with the *natbib* /LaTeX/ package. +abstract.bst <../bibtex/bst/misc/abstract.bst> Like alpha.bst, except +with abstract field. +acm.bst <../bibtex/bst/base/acm.bst> Like abbrv.bst, except names come +out /Last, initials/, and in small caps. Some dates are parenthesised. +For Assoc. for Computing Machinery. +agsm.bst <../bibtex/bst/misc/agsm.bst> Like alpha.bst. Used with the +*harvard* package. For Australian Government publications. +apalike.bst <../bibtex/bst/base/apalike.bst> Like alpha.bst. Used with +the *apalike* package. Variant of apa (American Psychology Assoc.) style. +amsalpha.bst <../bibtex/bst/ams/amsalpha.bst> Like alpha.bst, except +more an /AmS-TeX/ style. +authordate1.bst <../bibtex/bst/authordate/authordate1.bst> Citations +are of form: (Author, Year). In bibliography there is neither a number +label (as for the plain style) nor an alpha label (as for the alpha +style). Author's names are typeset in roman. Uppercase letters in +article, journal and book titles are left as given in the .bib file. +Used in conjunction with the *authordate1-4* /LaTeX/ package. +authordate2.bst <../bibtex/bst/authordate/authordate2.bst> Like +authordate1.bst, but with /downstyle/ titles, i.e. titles are lowercase +except for the first letter, any letter following a colon, and letters +protected by { and }. Used in conjunction with the *authordate1-4* +/LaTeX/ package. +authordate3.bst <../bibtex/bst/authordate/authordate3.bst> Like +authordate1.bst, but with author's names in small capitals. Used in +conjunction with the *authordate1-4* /LaTeX/ package. +authordate4.bst <../bibtex/bst/authordate/authordate4.bst> Like +authordate3.bst, but with /downstyle/ titles, i.e. titles are lowercase +except for the first letter, any letter following a colon, and letters +protected by { and }. Used in conjunction with the *authordate1-4* +/LaTeX/ package. +amsplain.bst <../bibtex/bst/ams/amsplain.bst> Like plain.bst, except +more an /AmS-TeX/ style. +chicago.bst <../bibtex/bst/chicago/chicago.bst> Like alpha.bst. Used +with the *chicago* package. Variant of newapa (American Psychology +Assoc.) style. +chicagoa.bst <../bibtex/bst/chicago/chicagoa.bst> Like alpha.bst. Used +with the *chicago* package. Variant of newapa (American Psychology +Assoc.) style, that has annotation field. +dcu.bst <../bibtex/bst/misc/dcu.bst> Like alpha.bst. Used with the +*harvard* package. By Design Computing Unit (Sydney University). +ieeetr.bst <../bibtex/bst/base/ieeetr.bst> Like plain.bst, with IEEE +abbreviations. Article titles are in quotes, commas separate all fields +except after booktitles and before notes. +gerabbrv.bst <../bibtex/bst/germbib/gerabbrv.bst> Like gerplain.bst, +except that entries are more compact because first names, month names +and journal names are abbreviated. Used with the *bibgerm* package. +geralpha.bst <../bibtex/bst/germbib/geralpha.bst> Like gerplain.bst, +except that entry labels like `Knu66', formed from the author's name and +the year of publication, are used. Used with the *bibgerm* package. +gerapali.bst <../bibtex/bst/germbib/gerapali.bst> Like geralpha.bst. +Variant of apa (American Psychology Assoc.) style. Used with the +*bibgerm* package. +gerplain.bst <../bibtex/bst/germbib/gerplain.bst> A German version of +plain.bst. Used with the *bibgerm* package. +gerunsrt.bst <../bibtex/bst/germbib/gerunsrt.bst> Like gerplain.bst, +except that entries appear in the order of their first citation. Used +with the *bibgerm* package. +is-abbrv.bst <../bibtex/bst/is-base/is-abbrv.bst> Like abbrv.bst, +except ISSN and ISBN fields added. +is-alpha.bst <../bibtex/bst/is-base/is-alpha.bst> Like alpha.bst, +except ISSN and ISBN fields added. +is-plain.bst <../bibtex/bst/is-base/is-plain.bst> Like plain.bst, +except ISSN and ISBN fields added. +is-unsrt.bst <../bibtex/bst/is-base/is-unsrt.bst> Like unsrt.bst, +except ISSN and ISBN fields added. +jaumsb.bst <../bibtex/bst/aums/jaumsb.bst> A style most like abbrev.bst +used for typesetting bibliographies for the *jaumsb* class (Journal of +the Australian Mathematics Society - Series B). +kluwer.bst <../bibtex/bst/misc/kluwer.bst> Like alpha.bst. Used with +the *harvard* package. Kluwer Academic Publishers style. +line.bst <../bibtex/bst/aums/line.bst> A style most like abbrev.bst +used for typesetting bibliographies for the *jaumsa* class (Journal of +the Australian Mathematics Society - Series A). +ltugbib.bst <../bibtex/bst/misc/ltugbib.bst> Unkeyed and with initials +following author names, but otherwise like abbrev.bst. Used with the +*ltugboat* class. +named.bst <../bibtex/bst/misc/named.bst> Similar to alpha.bst, except +labels are of form [Author, Year]. Author's names are typeset in roman. +Uppercase letters in article, journal and book titles are left as given +in the .bib file. Used in conjunction with the *named* /LaTeX/ package. +plainnat.bst <../bibtex/bst/natbib/plainnat.bst> Like plain.bst, except +that citations appear in [Author, Year] form. Used with the *natbib* +/LaTeX/ package. +siam.bst <../bibtex/bst/misc/siam.bst> Like abbrv.bst, except names are +in small caps, titles are in italics and commas separate all fields +except notes. Style of Society of Industrial and Applied Maths. +unsrtnat.bst <../bibtex/bst/natbib/unsrtnat.bst> Like plainnat.bst, +except that entries appear in the order of their first citation. Used +with the *natbib* /LaTeX/ package. + +HTML 3.2 Checked! + diff --git a/reports/final/styles/h-physrev.bst b/reports/final/styles/h-physrev.bst new file mode 100644 index 0000000..0d200a0 --- /dev/null +++ b/reports/final/styles/h-physrev.bst @@ -0,0 +1,949 @@ +ENTRY +{ address +eprint +author +booktitle +chapter +collaboration +edition +editor +howpublished +institution +journal +key +month +note +number +organization +pages +publisher +school +series +title +type +volume +year +} +{} +{ label } +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 = +{ "," * 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 {output.bibitem} +{ newline$ +"\bibitem{" write$ +cite$ write$ +"}" write$ +newline$ +"" +before.all 'output.state := +} +FUNCTION {fin.entry} +{ add.period$ +write$ +newline$ +} +FUNCTION {new.block} +{ output.state before.all = +'skip$ +{ after.block 'output.state := } +if$ +} +FUNCTION {new.sentence} +{ skip$ +} +FUNCTION {not} +{ { #0 } +{ #1 } +if$ +} +FUNCTION {and} +{ 'skip$ +{ pop$ #0 } +if$ +} +FUNCTION {or} +{ { pop$ #1 } +'skip$ +if$ +} +FUNCTION {new.block.checka} +{ empty$ +'skip$ +'new.block +if$ +} +FUNCTION {new.block.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.block +if$ +} +FUNCTION {new.sentence.checka} +{ empty$ +'skip$ +'new.sentence +if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.sentence +if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ +{ pop$ "" } +'skip$ +if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ +{ pop$ "" } +{ "{\em " swap$ * "}" * } +if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ +{ pop$ "" } +{ "{\bf " swap$ * "}" * } +if$ +} +FUNCTION {paren} +{ duplicate$ empty$ +{ pop$ "" } +{ "(" swap$ * ")" * } +if$ +} +INTEGERS { nameptr namesleft numnames } +INTEGERS { etal } +FUNCTION {format.names} +{ 's := +#1 'nameptr := +s num.names$ 'numnames := +numnames #5 > +s numnames "{ll}" format.name$ "others" = numnames #1 > and +or 'etal := +etal +{ #1 #1 + 'namesleft := } +{ numnames 'namesleft := } +if$ +{ namesleft #0 > } +{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := +nameptr #1 > +{ namesleft #1 > +{ ", " * t * } +{ nameptr #2 > +{ "," * } +'skip$ +if$ +t "others" = +etal or +{ " {\em et~al.}" * } +{ " and " * t * } +if$ +} +if$ +} +'t +if$ +nameptr #1 + 'nameptr := +namesleft #1 - 'namesleft := +} +while$ +} +FUNCTION {format.authors} +{ author empty$ +{ "" } +{ author format.names } +if$ +} +FUNCTION {format.editors} +{ editor empty$ +{ "" } +{ editor format.names +editor num.names$ #1 > +{ ", editors" * } +{ ", editor" * } +if$ +} +if$ +} +FUNCTION {format.edited} +{ editor empty$ +{ "" } +{ "edited by " editor format.names * } +if$ +} +FUNCTION {format.title} +{ title empty$ +{ "" } +{ title "t" change.case$ } +if$ +} +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 {first.page} +{ 't := +"" +{ t empty$ not t #1 #1 substring$ "-" = not and } +{ t #1 #1 substring$ * +t #2 global.max$ substring$ 't := +} +while$ +} +FUNCTION {format.date} +{ year empty$ +{ "" } +'year +if$ +} +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$ +{ "" } +{ series empty$ +'skip$ +{ ", " series * } +if$ +" Vol." volume tie.or.space.connect * +"volume and number" number either.or.check +} +if$ +} +FUNCTION {format.number.series} +{ volume empty$ +{ number empty$ +{ series field.or.null } +{ series empty$ +{ "there's a number but no series in " cite$ * warning$ } +{ ", " series * } +if$ +" No. " number tie.or.space.connect * +} +if$ +} +{ "" } +if$ +} +FUNCTION {format.edition} +{ edition empty$ +{ "" } +{ output.state mid.sentence = +{ ", " edition "l" change.case$ * } +{ ", " edition "t" change.case$ * } +if$ +" ed." * +} +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 empty$ +{ "" } +{ pages multi.page.check +{ "pp." pages n.dashify tie.or.space.connect } +{ "p." pages tie.or.space.connect } +if$ +} +if$ +} +FUNCTION {format.pages.a} +{ pages empty$ +{ "" } +{ "p." pages first.page tie.or.space.connect } +if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden +" " swap$ * * +pages empty$ +'skip$ +{ duplicate$ empty$ +{ pop$ format.pages.a } +{ ", " * pages first.page * } +if$ +} +if$ +} +FUNCTION {format.chapter.pages} +{ chapter empty$ +'format.pages +{ type empty$ +{ "chap." } +{ type "l" change.case$ } +if$ +chapter tie.or.space.connect +pages empty$ +'skip$ +{ ", " * format.pages * } +if$ +} +if$ +} +FUNCTION {format.pub.addr.date} +{ publisher empty$ +{ "" "empty publisher in " cite$ * warning$ } +{ publisher +address empty$ +'skip$ +{ ", " * address * } +if$ +} +if$ +year empty$ +{ "empty year in " cite$ * warning$ } +{ ", " * year * } +if$ +paren " " swap$ * +} +FUNCTION {format.book.entry} +{ format.btitle +format.bvolume * +format.number.series * +format.edition * +format.pub.addr.date * +} +FUNCTION {format.inbook.entry} +{ format.book.entry +", " * +format.chapter.pages * +} +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ +{ "" } +{ editor empty$ +{ "in " booktitle emphasize * } +{ "in " booktitle emphasize * ", " * format.edited * } +if$ +} +if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ +month empty$ year empty$ note empty$ +and and and and and +{ "all relevant fields are empty in " cite$ * warning$ } +'skip$ +if$ +} +FUNCTION {format.thesis.type} +{ type empty$ +'skip$ +{ pop$ +type "t" change.case$ +} +if$ +} +FUNCTION {format.inst.tr.num.date} +{ institution empty$ +{ "" "empty institution in " cite$ * warning$ } +{ institution } +if$ +" Report No." * +number empty$ +{ "" } +{ number tie.or.space.connect } +if$ +year empty$ +{ "empty year in " cite$ * warning$ } +{ ", " * year * " (unpublished)" * } +if$ +} +FUNCTION {format.article.crossref} +{ key empty$ +{ journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * +warning$ +"" +} +{ "In " journal * } +if$ +} +{ "In " key * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ +editor num.names$ duplicate$ +#2 > +{ pop$ " {\em et~al.}" * } +{ #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +{ " {\em et~al.}" * } +{ " and " * editor #2 "{vv~}{ll}" format.name$ * } +if$ +} +if$ +} +if$ +} +FUNCTION {format.book.crossref} +{ volume empty$ +{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$ +"In " +} +{ "Volume" 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$ +"" * +} +{ "{\em " * series * "\/}" * } +if$ +} +{ key * } +if$ +} +{ format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.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$ +"" +} +{ "In {\em " booktitle * "\/}" * } +if$ +} +{ "In " key * } +if$ +} +{ "In " format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {article} +{ output.bibitem +collaboration output +format.authors "author" output.check +new.block +crossref missing$ +{ journal field.or.null +format.vol.num.pages +format.date empty$ +'skip$ +{ duplicate$ empty$ +{ pop$ format.date paren } +{ " " * format.date paren * } +if$ +} +if$ +output +} +{ format.article.crossref output.nonnull +format.pages output +} +if$ +eprint output +new.block +note output +fin.entry +} +FUNCTION {book} +{ output.bibitem +collaboration output +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +crossref missing$ +{ format.book.entry output } +{ new.block +format.book.crossref output.nonnull +} +if$ +eprint output +new.block +note output +fin.entry +} +FUNCTION {booklet} +{ output.bibitem +collaboration output +format.authors output +new.block +format.title "title" output.check +howpublished address new.block.checkb +howpublished output +address output +format.date output +eprint output +new.block +note output +fin.entry +} +FUNCTION {inbook} +{ output.bibitem +collaboration output +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +crossref missing$ +{ format.inbook.entry output } +{ format.chapter.pages "chapter and pages" output.check +new.block +format.book.crossref output.nonnull +} +if$ +eprint output +new.block +note output +fin.entry +} +FUNCTION {incollection} +{ output.bibitem +collaboration output +format.authors "author" output.check +new.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 +publisher "publisher" output.check +address output +format.edition output +format.date "year" output.check +} +{ format.incoll.inproc.crossref output.nonnull +format.chapter.pages output +} +if$ +eprint output +new.block +note output +fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem +collaboration output +format.authors "author" output.check +new.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 +address empty$ +{ organization publisher new.sentence.checkb +organization output +publisher output +format.date "year" output.check +} +{ address output.nonnull +format.date "year" output.check +new.sentence +organization output +publisher output +} +if$ +} +{ format.incoll.inproc.crossref output.nonnull +format.pages output +} +if$ +eprint output +new.block +note output +fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem +collaboration output +author empty$ +{ organization empty$ +'skip$ +{ organization output.nonnull +address output +} +if$ +} +{ format.authors output.nonnull } +if$ +new.block +format.btitle "title" output.check +author empty$ +{ organization empty$ +{ address new.block.checka +address output +} +'skip$ +if$ +} +{ organization address new.block.checkb +organization output +address output +} +if$ +format.edition output +format.date output +eprint output +new.block +note output +fin.entry +} +FUNCTION {mastersthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +"Master's thesis" format.thesis.type output.nonnull +school "school" output.check +address output +format.date "year" output.check +eprint output +new.block +note output +fin.entry +} +FUNCTION {misc} +{ output.bibitem +collaboration output +format.authors output +title howpublished new.block.checkb +format.title output +howpublished new.block.checka +howpublished output +format.date output +eprint output +new.block +note output +fin.entry +empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.btitle "title" output.check +new.block +"PhD thesis" format.thesis.type output.nonnull +school "school" output.check +address output +format.date "year" output.check +eprint output +new.block +note output +fin.entry +} +FUNCTION {proceedings} +{ output.bibitem +collaboration output +editor empty$ +{ organization output } +{ format.editors output.nonnull } +if$ +new.block +format.btitle "title" output.check +format.bvolume output +format.number.series output +address empty$ +{ editor empty$ +{ publisher new.sentence.checka } +{ organization publisher new.sentence.checkb +organization output +} +if$ +publisher output +format.date "year" output.check +} +{ address output.nonnull +format.date "year" output.check +new.sentence +editor empty$ +'skip$ +{ organization output } +if$ +publisher output +} +if$ +eprint output +new.block +note output +fin.entry +} +FUNCTION {techreport} +{ output.bibitem +collaboration output +format.authors "author" output.check +new.block +format.inst.tr.num.date output.nonnull +eprint output +new.block +note output +fin.entry +} +FUNCTION {unpublished} +{ output.bibitem +collaboration output +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +note "note" output.check +format.date output +fin.entry +} +FUNCTION {default.type} { misc } +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} +{"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +MACRO {advp} {"Adv. Phys."} +MACRO {ajp} {"Am. J. Phys."} +MACRO {ao} {"Appl. Opt."} +MACRO {apj} {"Astrophys. J."} +MACRO {apl} {"Appl. Phys. Lett."} +MACRO {arnps} {"Ann. Rev. Nucl. Sci."} +MACRO {arns} {"Ann. Rev. Nucl. Part. Sci."} +MACRO {baps} {"Bull. Am. Phys. Soc."} +MACRO {cpc} {"Computer Phys. Comm."} +MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"} +MACRO {fed} {"Fusion Eng. Design"} +MACRO {ft} {"Fusion Tech."} +MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} +MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} +MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"} +MACRO {ip} {"Infrared Phys."} +MACRO {jap} {"J. Appl. Phys."} +MACRO {jcp} {"J. Comput. Phys."} +MACRO {jetp} {"Sov. Phys.-JETP"} +MACRO {jfe} {"J. Fusion Energy"} +MACRO {jfm} {"J. Fluid Mech."} +MACRO {jgr} {"J. Geophys. Res."} +MACRO {jmp} {"J. Math. Phys."} +MACRO {jne} {"J. Nucl. Energy"} +MACRO {jnm} {"J. Nucl. Mater."} +MACRO {josa} {"J. Opt. Soc. Am."} +MACRO {jpg} {"J. Phys.~G: Nucl. and Part. Phys."} +MACRO {jphys} {"J. Phys"} +MACRO {jpp} {"J. Plasma Phys."} +MACRO {jpsj} {"J. Phys. Soc. Jpn"} +MACRO {jvst} {"J. Vac. Sci. Technol."} +MACRO {modphyslettA} {"Mod. Phys. Lett. A"} +MACRO {nedf} {"Nucl. Eng. Design/Fusion"} +MACRO {nf} {"Nucl. Fusion"} +MACRO {nim} {"Nucl. Instrum. Methods"} +MACRO {np} {"Nucl. Phys."} +MACRO {npb} {"Nucl. Phys.~B"} +MACRO {npbps} {"Nucl. Phys. B (Proc. Suppl.)"} +MACRO {nt/f} {"Nucl. Tech./Fusion"} +MACRO {pf} {"Phys. Fluids"} +MACRO {pl} {"Phys. Lett."} +MACRO {plb} {"Phys. Lett.~B"} +MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} +MACRO {pp} {"Plasma Phys."} +MACRO {physrep} {"Phys. Rep."} +MACRO {physrev} {"Phys. Rev."} +MACRO {pr} {"Phys. Rev."} +MACRO {prd} {"Phys. Rev.~D"} +MACRO {prl} {"Phys. Rev. Lett."} +MACRO {procroysoc} {"Proc. Roy. Soc"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Rev. Mod. Phys."} +MACRO {rsi} {"Rev. Sci. Instrum."} +MACRO {sjnp} {"Sov. J. Nucl. Phys."} +MACRO {sjpp} {"Sov. J. Plasma Phys."} +MACRO {spd} {"Sov. Phys.-Dokl."} +MACRO {sptp} {"Sov. Phys.-Tech. Phys."} +MACRO {spu} {"Sov. Phys.-Usp."} +MACRO {zp} {"Z. Phys."} +MACRO {zpc} {"Z. Phys.~C"} +READ +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := +#1 'number.label := +#0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := +number.label #1 + 'number.label := +label width$ longest.label.width > +{ label 'longest.label := +label width$ 'longest.label.width := +} +'skip$ +if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ preamble$ empty$ +'skip$ +{ preamble$ write$ newline$ } +if$ +"\begin{thebibliography}{" longest.label * "}" * 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/reports/final/styles/hep.bst b/reports/final/styles/hep.bst new file mode 100644 index 0000000..82669c4 --- /dev/null +++ b/reports/final/styles/hep.bst @@ -0,0 +1,1417 @@ +% BibTeX-Style for physical bibliographies +% Mixture of report.bst and alpha.bst +% +% Defines the fields various, collaboration, eprint and report. +% If eprint is set a \href special is created in the .bbl file +% which causes xdvi to generate a link to +% "http://arXiv.org/abs/eprint" where eprint is the hep number of +% the document. You have to \usepackage{hyperref} in your LaTeX source. +% The collaboration field is added to the author field in brackets and +% the collaboration name is used as the citation (be careful with too +% long collaboration names). +% Various is used for comments, report for non-hep reports. +% +% Burkhard Klaus +% On bugs, further improvements and suggestions contact +% klausb@physik.fu-berlin.de +% klausb@ifh.de + +ENTRY + { address + author + booktitle + chapter + collaboration + edition + editor + eprint + howpublished + institution + journal + key + meeting + month + note + number + organization + pages + publisher + report + school + series + title + type + various + volume + year + } + {} + { label extra.label sort.label } + +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 = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% +%%% uncomment this for printing +%%% labels in the bibliography +%%% +% "(\texttt{" write$ +% cite$ write$ +% "})\\" write$ +% newline$ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textsl{ " swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{ " swap$ * "}" * } + if$ +} + +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {format.collaboration} +{ collaboration empty$ + { "" } + { collaboration num.names$ #1 > + {" (" collaboration * " Collaborations)" * } + {" (" collaboration * " Collaboration)" * } + if$ + } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "" * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + format.collaboration * +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + + +FUNCTION {format.meeting} +{ meeting empty$ + { "" } + 'meeting + if$ +} + +FUNCTION {format.various} +{ various empty$ + { "" } + 'various + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.edited} +{ editor empty$ + { "" } + { "edited by " editor format.names * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + 'title + if$ +} + +FUNCTION {format.eprint} +{ title empty$ + { "" } + 'eprint + if$ +} + +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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + + +FUNCTION {ttreport} +{ duplicate$ empty$ + { pop$ "" } + { "\texttt{ " swap$ * "}" * } + if$ +} + +FUNCTION {format.ttreport} +{ report ttreport +} + +FUNCTION {tteprint} +{ duplicate$ empty$ + { pop$ "" } + { duplicate$ "\href{http://arXiv.org/abs/" swap$ * +"}{\texttt{" * swap$ * "}}" * } + if$ +} + +FUNCTION {format.tteprint} +{ eprint tteprint +} + +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$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + 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$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.edited * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { 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 " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" 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$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.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$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + new.block + crossref missing$ + { journal field.or.null + format.vol.num.pages + format.date empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.date paren } + { " " * format.date paren * } + if$ + } + if$ + output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.tteprint output + new.block + format.ttreport output + new.block + format.meeting output + new.block + format.various output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.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 + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.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 + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.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 + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + 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"} + +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} + +MACRO {advp} {"Adv. Phys."} +MACRO {ajp} {"Am. J. Phys."} +MACRO {ao} {"Appl. Opt."} +MACRO {apl} {"Appl. Phys. Lett."} +MACRO {apj} {"Astrophys. J."} +MACRO {baps} {"Bull. Am. Phys. Soc."} +MACRO {cpc} {"Computer Phys. Comm."} +MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"} +MACRO {fed} {"Fusion Eng. Design"} +MACRO {ft} {"Fusion Tech."} +MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} +MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} +MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"} +MACRO {ip} {"Infrared Phys."} +MACRO {jap} {"J. Appl. Phys."} +MACRO {jcm} {"J. Chem. Phys."} +MACRO {jcp} {"J. Comput. Phys."} +MACRO {jetp} {"Sov. Phys.-JETP"} +MACRO {jfe} {"J. Fusion Energy"} +MACRO {jfm} {"J. Fluid Mech."} +MACRO {jgr} {"J. Geophys. Res."} +MACRO {jmp} {"J. Math. Phys."} +MACRO {jne} {"J. Nucl. Energy"} +MACRO {jnec} {"J. Nucl. Energy, Part C"} +MACRO {jnm} {"J. Nucl. Mater."} +MACRO {josa} {"J. Opt. Soc. Am."} +MACRO {jpp} {"J. Plasma Phys."} +MACRO {jpsj} {"J. Phys. Soc. Jpn"} +MACRO {jvst} {"J. Vac. Sci. Technol."} +MACRO {nedf} {"Nucl. Eng. Design/Fusion"} +MACRO {nf} {"Nucl. Fusion"} +MACRO {npb} {"Nucl. Phys. \textbf{B}"} +MACRO {nim} {"Nucl. Instrum. Methods"} +MACRO {nimpr} {"Nucl. Instrum. Methods Phys. Research"} +MACRO {nt/f} {"Nucl. Tech./Fusion"} +MACRO {pf} {"Phys. Fluids"} +MACRO {pfa} {"Phys. Fluids \textbf{A}"} +MACRO {pfb} {"Phys. Fluids \textbf{B}"} +MACRO {pl} {"Phys. Lett."} +MACRO {pla} {"Phys. Lett. \textbf{A}"} +MACRO {plb} {"Phys. Lett. \textbf{B}"} +MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} +MACRO {pp} {"Plasma Phys."} +MACRO {ppcf} {"Plasma Phys. Controlled Fusion"} +MACRO {prep} {"Phys. Rep."} +MACRO {prl} {"Phys. Rev. Lett."} +MACRO {pr} {"Phys. Rev."} +MACRO {pra} {"Phys. Rev. \textbf{A}"} +MACRO {prb} {"Phys. Rev. \textbf{B}"} +MACRO {prc} {"Phys. Rev. \textbf{C}"} +MACRO {prd} {"Phys. Rev. \textbf{D}"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Rev. Mod. Phys."} +MACRO {rsi} {"Rev. Sci. Instrum."} +MACRO {sjpp} {"Sov. J. Plasma Phys."} +MACRO {spd} {"Sov. Phys.-Dokl."} +MACRO {sptp} {"Sov. Phys.-Tech. Phys."} +MACRO {spu} {"Sov. Phys.-Usp."} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { collaboration empty$ + {s #1 "{v{}}{l{}}" format.name$} + {s #1 "{ll}" format.name$} + if$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { collaboration empty$ + {author format.lab.names } + {collaboration format.lab.names } + if$ + } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +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$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #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 := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * 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/reports/final/styles/hplain.bst b/reports/final/styles/hplain.bst new file mode 100644 index 0000000..cd51dc5 --- /dev/null +++ b/reports/final/styles/hplain.bst @@ -0,0 +1,1121 @@ +% hplain: adds eprint field (www-admin@xxx.lanl.gov) +% an extension of: +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, 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, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + eprint + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { eprint } + if$ +} + + +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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +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$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + 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$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + 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$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { 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 {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" 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$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.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$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.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 + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.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 + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.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 + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.eprint output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.eprint output + 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"} + +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"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * 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/reports/final/styles/line.bst b/reports/final/styles/line.bst new file mode 100644 index 0000000..10a3c96 --- /dev/null +++ b/reports/final/styles/line.bst @@ -0,0 +1,1265 @@ +%jaumsa.bst with line rather than repeated author +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, 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, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {no.comma} +{ before.all 'output.state := +} + +FUNCTION {comma} +{ mid.sentence 'output.state := +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {bold} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { %numnames #2 > +% { "," * } +% 'skip$ +% if$ + t "others" = + { "\ et~al." emphasize * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +STRINGS { last.authors } + +FUNCTION {init.last.authors} +{ "" 'last.authors := +} + +FUNCTION {format.authors} +{ author empty$ + { "" 'last.authors := + "" + } + { author last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { author format.names } + if$ + author 'last.authors := + } + if$ +} + + +%FUNCTION {format.authors} +%{ author empty$ +% { "" } +% { author format.names } +% if$ +%} + +%change +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor num.names$ #1 > + { " (eds. " editor format.names * ")" * } + { " (ed. " editor format.names * ")" * } + if$ + } + if$ +} + +%mine +FUNCTION {format.lead.editors} +{ editor empty$ + { "" } + { editor num.names$ #1 > + { editor format.names " (eds.)" * } + { editor format.names " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "`" title "t" change.case$ * "'" * } + if$ +} + +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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +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$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.series.volume} +{ series empty$ + "volume and number" number either.or.check + { volume empty$ + { "" } + { "there's a volume but no series in " cite$ * warning$ } + if$ + } + { series + volume empty$ + { " " * } + { " " * volume bold *} + if$ + } + if$ +} + +FUNCTION {format.series.volumeornumber} +{ series empty$ + "volume and number" number either.or.check + { volume empty$ + { number empty$ + { "" } + { "there's a number but no series in " cite$ * warning$ } + if$ + } + { "there's a volume but no series in " cite$ * warning$ } + if$ + } + { series emphasize + volume empty$ + { number empty$ + { " " * } + { " " * "No. " * number * } + if$ + } +% { " " * volume *} + { " " * volume bold *} + if$ + } + if$ +} + + +%% note that this is a very ugly hack +FUNCTION {format.romanseries.volumeornumber} +{ series empty$ + "volume and number" number either.or.check + { volume empty$ + { number empty$ + { "" } + { "there's a number but no series in " cite$ * warning$ } + if$ + } + { "there's a volume but no series in " cite$ * warning$ } + if$ + } + { series + volume empty$ + { number empty$ + { " " * } + { " " * "No. " * number * } + if$ + } +% { " " * volume *} + { " " * volume bold *} + if$ + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in: " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { pages n.dashify } + { pages } + if$ + } + if$ +} + + +FUNCTION {format.in.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { " pp.\ " pages n.dashify *} + { " pp.\ " pages *} + if$ + } + if$ +} + + +FUNCTION {format.journal.num.vol.date} +{ journal empty$ + { "there's no journal in " cite$ * warning$ } + { journal emphasize " " * } + if$ + volume empty$ + { "there's no volume in " cite$ * warning$ } + { number empty$ + { volume bold * " " * } + { "(" * number * ") " * volume bold * %* + } + if$ + } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { " (" * format.date * ")" * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.in.pages + { type empty$ + { " chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.in.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.booktitle.ed} +{ booktitle empty$ + { "" } + { editor empty$ + { " in: " booktitle emphasize * } + { " in: " booktitle emphasize * " " * format.editors * } + if$ + } + if$ +} + +FUNCTION {format.publisher.address.date} +{ publisher empty$ + { address empty$ + { " (" } + { "there's an address but no publisher in " cite$ * warning$} + if$ + } + {address empty$ + { " (" publisher * ", " * } + { " (" publisher * ", " * address * ", " * } + if$ + } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { format.date * ")" *} + 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$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ * + } + if$ +} + +FUNCTION {format.school.address.date} +{ school empty$ + { "empty school in " cite$ * warning$ } + { school ", " * } + if$ + address empty$ + 'skip$ + { address * ", " * } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { format.date * ")" *} + if$ +} + +FUNCTION {format.instit.address.date} +{ institution empty$ + { "empty institution in " cite$ * warning$ } + { "(" institution * ", " * } + if$ + address empty$ + 'skip$ + { address * ", " * } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { format.date * ")" *} + if$ +} + +FUNCTION {format.organ.address.date} +{ organization empty$ + { "empty organization in " cite$ * warning$ } + { "(" organization * ", " * } + if$ + address empty$ + 'skip$ + { address * ", " * } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { format.date * ")" *} + if$ +} + + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { 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 {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" 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$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.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$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.num.vol.date output + format.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + note empty$ + 'skip$ +% { "" * } + { no.comma + " " * note output + } + if$ + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.lead.editors "author and editor" output.check } + { format.authors output.nonnull + 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 + note output + no.comma + format.publisher.address.date "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.lead.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { chapter output + no.comma + note output + format.romanseries.volumeornumber output + format.edition output + no.comma + format.publisher.address.date "publisher" output.check + no.comma + format.in.pages output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.booktitle.ed "booktitle" output.check + format.series.volumeornumber output + format.edition output + no.comma + format.publisher.address.date "publisher" output.check + no.comma + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.booktitle.ed "booktitle" output.check + format.bvolume output + format.number.series output + organization output + no.comma + format.publisher.address.date output + note output + no.comma + format.in.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + format.edition output + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { format.organ.address.date output + } + if$ + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + no.comma + " (Master's Thesis" format.thesis.type output.nonnull + format.school.address.date output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + comma + format.title output + note emphasize output + howpublished output + format.date output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + no.comma + " (Ph.D. Thesis" format.thesis.type output.nonnull + format.school.address.date output + note output + fin.entry +} + +FUNCTION {dissertation} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + no.comma + " (Dissertation" format.thesis.type output.nonnull + format.school.address.date output + note output + fin.entry +} + +FUNCTION {honoursthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + no.comma + " (Honours Thesis" format.thesis.type output.nonnull + format.school.address.date output + note output + fin.entry +} + +FUNCTION {lecture} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + no.comma + " (Lecture notes" format.thesis.type output.nonnull + format.school.address.date output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + organization output + note output + format.publisher.address.date output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + format.instit.address.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + note "note" output.check + format.date output + 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"} + +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"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * 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/reports/final/styles/plain.bst b/reports/final/styles/plain.bst new file mode 100644 index 0000000..83286c1 --- /dev/null +++ b/reports/final/styles/plain.bst @@ -0,0 +1,1097 @@ +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, 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, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +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$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + 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$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + 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$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { 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 {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" 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$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.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$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.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 + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.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 + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.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 + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + 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"} + +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"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * 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/reports/final/styles/uwa.bst b/reports/final/styles/uwa.bst new file mode 100644 index 0000000..ea27dea --- /dev/null +++ b/reports/final/styles/uwa.bst @@ -0,0 +1,1474 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% filename = "uwa.bst", +%%% version = "1.1", +%%% date = "1998/07/15", +%%% time = "14:37:33 EST", +%%% checksum = "38973 1474 4577 33560" +%%% author = "Greg Gamble", +%%% address = "Centre for Discrete Mathematics & Computing, +%%% Department of Computer Science +%%% & Electrical Engineering, +%%% The University of Queensland, +%%% Queensland 4072, +%%% Australia", +%%% telephone = "+61 7 336 51195", +%%% FAX = "+61 7 336 51999", +%%% copyright = "Copyright (C) 1998 Greg Gamble, +%%% all rights reserved. Copying of this file is +%%% authorised only if either: +%%% (1) you make absolutely no changes to your copy, +%%% including name; OR +%%% (2) if you do make changes, you first rename it +%%% to some other name.", +%%% email = "gregg@csee.uq.edu.au (Internet)", +%%% keywords = "bibtex, bibliography, latex,", +%%% supported = "yes", +%%% abstract = "BibTeX bibliography style `uwa' for BibTeX +%%% versions 0.99a or later and LaTeX version 2e, +%%% a significantly modified version of the American +%%% Mathematical Society's `amsplain', incorporating +%%% many features of `abbrv'. Versions 1.0 and 1.0a +%%% of the style were written (and modified) while +%%% the author was at the University of Western +%%% Australia - hence the style name `uwa'. Note, +%%% that the style `uwab' provides an identical +%%% style except that it does not use \bysame +%%% (a horizontal line in place of the author(s) +%%% of a bibitem, indicating the author(s) are the +%%% same as the previous bibitem). +%%% Briefly the style produces bibitems that are +%%% either one or two (if there is both a note and +%%% other information) sentences. Functions are provided +%%% to emphasize, embolden, slantify and parenthesize. +%%% The general philosophy is titles (including +%%% booktitles and series) are either set in quotes +%%% (article type titles) or emphasized; prepositions +%%% like `in' are included to provide breaks between +%%% fields of similar typeface and set either in upshape +%%% or slanted to set it off from adjacent text; +%%% * volume is set in bold unless it would clash +%%% with a cross-reference (where the style is: +%%% `vol. ... of ...'); +%%% * number is treated as if it is a volume unless +%%% both exist (in which case it is set as: +%%% `,no. ...' following the volume); +%%% * organization, address, edition, year are set +%%% together separated by commas in parentheses; +%%% and in many places, e.g. before a left +%%% parenthesis and before volume, the comma that +%%% is set by most styles is suppressed (the function +%%% no.comma is used in most places this has been done +%%% - a comma can be inserted, if this is desired, +%%% usually by simply removing the `no.comma' +%%% - please ... if you modify the style in this +%%% or any other way, heed the copyright warning +%%% by changing the name of the file); +%%% * name(s) and month(s) are set as in the `abbrv' style. +%%% Peculiar to the style is the use of \bysame in place +%%% of the authors names for succeeding bibitems by the +%%% same authors. If this feature is not desirable (i.e. +%%% explicit author lists for all papers is required), +%%% use the `uwab' style instead. +%%% The `ize' endings for many function names have been +%%% retained ... it would be too confusing to change such +%%% American spelling to English (even though, personally +%%% I prefer the English usage: `ise'). +%%% Changes: +%%% - Version 1.0 [1996/02/26]: first release of `uwa.bst' +%%% - Version 1.0a [1996/05/24]: added field: +%%% * editiontype, so that technical documentation +%%% could use the MANUAL type and have `Version No.' +%%% instead of `No. ed.' +%%% - Version 1.1 [1998/07/15]: added fields: +%%% * url. It is typeset before the note field (if +%%% there is one) using LaTeX's \verb with | delimiters +%%% (by default). For the rare situation, where a | +%%% actually appears in the URL, the delimiter may be +%%% changed by setting the field verbdelim; +%%% * verbdelim (see description for url field). +%%% Examples of usage (including some that demonstrate +%%% `editiontype', `url' and `verbdelim') are provided in +%%% `uwaxampl.bib'", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +% See the file btxbst.doc for extra documentation other than +% what is included here. And see btxhak.tex for a description +% of the BibTeX language and how to use it. + +% This defines the types of fields that can occur in a database entry +% for this particular bibliography style. Except for `language', +% this is the standard list from plain.bst. + +%% Types of entries currently allowed in a BibTeX file: +%% +%% ARTICLE -- An article from a journal or magazine. +%% +%% BOOK -- A book with an explicit publisher. +%% +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% +%% INCOLLECTION -- A part of a book having its own title. +%% +%% INPROCEEDINGS -- An article in a conference proceedings. +%% +%% MANUAL -- Technical documentation. +%% +%% MASTERSTHESIS -- A Master's thesis. +%% +%% MISC -- Use this type when nothing else fits. +%% +%% PHDTHESIS -- A PhD thesis. +%% +%% PROCEEDINGS -- The proceedings of a conference. +%% +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. + +ENTRY + { address + author + booktitle + chapter + edition + editiontype + editor + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + verbdelim + volume + year + } + {} + { label extra.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + mid.sentence.nocomma + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'mid.sentence.nocomma := +} + +% Scratch variables: + +STRINGS { s t } + +% Utility functions + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK=====================================================================" +top$ +stack$ +"ENDSTACK==================================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% Standard warning message for a missing or empty field. For the user +% we call any such field `missing' without respect to the distinction +% made by BibTeX between missing and empty. + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {field.or.null.check} +{ 't := + duplicate$ empty$ + { pop$ "" t missing.warning } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} + +FUNCTION {slantify} +{ duplicate$ empty$ + { pop$ "" } + { "\textsl{" swap$ * "}" * } + if$ +} + +FUNCTION {parenthesize} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} + +% n.dashify is used to make sure page ranges get the TeX code +% (two hyphens) for en-dashes. + +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$ +} + +% tie.or.space.connect connects two items with a ~ if the +% second item is less than 3 letters long, otherwise it just puts an +% ordinary space. + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { " " * } + if$ +} + +% either.or.check gives a warning if two mutually exclusive fields +% were used in the database. + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% output.nonnull is called by output. + +FUNCTION {output.nonnull} +% remove the top item from the stack because it's in the way. +{ 's := + output.state mid.sentence.nocomma = +% If we're in mid-sentence, but no comma is required append a space to the new +% top item and write it ... and then restore the normal mid-sentence state + { " " * write$ + mid.sentence 'output.state := + } + { output.state mid.sentence = +% If we're in mid-sentence, add a comma to the new top item and write it + { ", " * write$ } + { output.state after.block = +% If we are finishing a block add a period and take this opportunity to +% start a new line and thus avoid extra long lines in the .bbl file + { add.period$ write$ + newline$ + "\newblock " write$ + } +% Otherwise, if we're at the beginning of a bibitem, + { output.state before.all = +% just write out the top item from the stack; + 'write$ +% and the last alternative is that we're at the end of the current +% bibitem, so we add a period to the top stack item and write it out. + { add.period$ " " * write$ } + if$ + mid.sentence 'output.state := + } + if$ + } + if$ + } + if$ +% Put the top item back on the stack that we removed earlier. + s +} + +% Output checks to see if the stack top is empty; if not, it +% calls output.nonnull to write it out. + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% Output.check is like output except that it gives a warning on-screen +% if the given field in the database entry is empty. t is the field +% name. + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ +% This empty string is the first thing that will be written +% the next time write$ is called. Done this way because each +% item is saved on the stack until we find out what punctuation +% should be added after it. Therefore we need an empty first item. + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +% The three append functions are like the corresponding output +% functions ... +% append.nonnull concatenates the top 2 elements on the stack +% putting the string append.conjuction in between if both are +% non-empty ... the result is left on top of the stack + +STRINGS { append.conjunction } + +FUNCTION {append.nonnull} +% remove the top item from the stack because it's in the way. +{ 's := + duplicate$ empty$ + { pop$ s } + { append.conjunction * s * } + if$ +} + +% append does exactly what append.nonnull was described to do ... +% if the top element is non-empty it calls append.nonnull to +% concatenate the top 2 stack elements ... otherwise it just +% throws away the top element. + +FUNCTION {append} +{ duplicate$ empty$ + 'pop$ + 'append.nonnull + if$ +} + +% append.check is like append except that it gives a warning on-screen +% if the given field in the database entry is empty. t is the field +% name ... analogous to output.check. + +FUNCTION {append.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'append.nonnull + if$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {no.comma} +{ duplicate$ empty$ + 'skip$ + { output.state before.all = + 'skip$ + { mid.sentence.nocomma 'output.state := } + if$ + } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +% The extra section to write out a language field was added +% for AMSPLAIN.BST. Not present in plain.bst. + +FUNCTION {format.language} +{ language no.comma parenthesize +} + +FUNCTION {format.note} +{ note empty$ + { "" } + { note new.block } + if$ +} + +% The url field is formatted in a similar fashion to the note field +% but appears before it. We use LaTeX's \verb with | delimiters +% by default, i.e. \verb|| is how it appears in the output. +% For the rare situations where a | appears in the URL, the user +% can set the verbdelim field to a different character. + +FUNCTION {format.url} +{ url empty$ + { "" } + { verbdelim empty$ + { "\verb|" url * "|" * new.block } + { "\verb" verbdelim * url * verbdelim * new.block } + if$ + } + if$ +} + +% This version of format.names puts names in the format +% +% Initials von Last, Jr. + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { extra.label "\bysame" = + {"\bysame"} + { author format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor num.names$ #1 > + { "Eds." slantify } + { "Ed." slantify } + if$ + editor format.names tie.or.space.connect + } + if$ +} + +% This is the only place we set anything in quotes ... so we don't +% provide a special function like: emphasize, embolden, slantify +% and parenthesize + +FUNCTION {format.atitle} +{ title empty$ + { "" } + { " `" title "t" change.case$ * "'" * } + if$ +} + +FUNCTION {format.btitle} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +% format.title ... treat as an article if pages are empty +% or as if whole book otherwise + +FUNCTION {format.title} +{ pages empty$ + 'format.btitle + 'format.atitle + if$ +} + +% For formatting the volume number for a journal or book of a series + +FUNCTION {format.journal.vol.year} +{ " " 'append.conjunction := + "" + journal emphasize "journal name" append.check + volume embolden append + year parenthesize "year" append.check +} + +% For formatting the issue number for a journal article. + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +FUNCTION {format.series} +{ series emphasize +} + +FUNCTION {format.series.volume.number} +{ format.series + " " 'append.conjunction := + volume embolden + duplicate$ empty$ + { pop$ number embolden append } + { append.nonnull + number empty$ + 'skip$ + { ", no.~" * number * + series empty$ + { "doesn't make sense to use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + 'skip$ + if$ + } + if$ + } + if$ +} + +FUNCTION {format.in.series.volume.number} +{ series empty$ + { "" } + { "in " } + if$ + format.series.volume.number * +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { editiontype empty$ + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + { editiontype " " * edition * } + if$ + } + if$ +} + +% For formatting miscellaneous dates ... builds the date on top of the stack + +FUNCTION {format.date} +{ month empty$ + { year field.or.null } + { month + year empty$ + { "there's a month but no year in " cite$ * warning$ } + { " " * year * } + if$ + } + if$ +} + +FUNCTION {format.edition.date} +{ ", " 'append.conjunction := + "" + format.edition append + format.date "year" append.check + parenthesize +} + +FUNCTION {format.howpublished.address.date} +{ ", " 'append.conjunction := + "" + howpublished append + address append + format.date append + parenthesize +} + +FUNCTION {format.publisher.address.edition.date} +{ ", " 'append.conjunction := + "" + publisher "publisher" append.check + address append + format.edition append + format.date "year" append.check + parenthesize +} + +FUNCTION {format.org.publisher.address.date} +{ ", " 'append.conjunction := + "" + organization append + publisher append + address append + format.date "year" append.check + parenthesize +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * format.series * } + if$ + "volume and number" number either.or.check + } + if$ +} + +% format.booktitle formats the booktitle field of types incollection +% and inproceedings + +FUNCTION {format.booktitle} +{ booktitle empty$ + { "" } + { title empty$ + { "" } + { "in " } + if$ + booktitle emphasize * + } + 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 empty$ + { "" } + { pages n.dashify } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.book.pages + { type empty$ + { "ch.~" } + { type "l" change.case$ " " * } + if$ + chapter * + pages empty$ + 'skip$ + { ", " * format.book.pages * } + 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$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.techrep.type.number} +{ type empty$ + { "Tech. Report" } + 'type + if$ + emphasize + " " 'append.conjunction := + number embolden append +} + +% Now we have a number of format.crossref functions + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in" journal emphasize tie.or.space.connect } + if$ + } + { "in" key tie.or.space.connect } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol.~" volume * " 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$ + "" * + } + { format.series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.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$ + "" + } + { "in " booktitle emphasize * } + if$ + } + { "in" slantify key tie.or.space.connect } + if$ + } + { "in" slantify format.crossref.editor tie.or.space.connect } + if$ + " \cite{" * crossref * "}" * +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% The main functions for each entry type. + +% journal, vol and year are formatted together because they are +% not separated by commas. + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.atitle "title" output.check + crossref missing$ + { format.journal.vol.year output + format.number output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.in.series.volume.number output + format.publisher.address.edition.date no.comma output + } + { format.book.crossref output.nonnull + format.edition.date no.comma output + } + if$ + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.btitle "title" output.check + format.howpublished.address.date no.comma output + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.in.series.volume.number output + format.chapter.pages "chapter and pages" output.check + format.publisher.address.edition.date no.comma output + } + { format.book.crossref output.nonnull + format.chapter.pages "chapter and pages" output.check + format.edition.date no.comma output + } + if$ + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.booktitle "booktitle" output.check + format.nonauthor.editors output + format.in.series.volume.number output + format.chapter.pages "chapter and pages" output.check + format.publisher.address.edition.date no.comma output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages "chapter and pages" output.check + format.edition.date no.comma output + } + if$ + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.booktitle "booktitle" output.check + format.nonauthor.editors output + format.series.volume.number output + format.org.publisher.address.date no.comma output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + ", " 'append.conjunction := + "" + author empty$ + { organization append } + 'skip$ + if$ + address append + format.edition append + format.date "year" append.check + parenthesize no.comma output + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + ", " 'append.conjunction := + "" + "Master's thesis" format.thesis.type append.nonnull + school "school" append.check + address append + format.date "year" append.check + parenthesize no.comma output + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.btitle output + format.howpublished.address.date no.comma output + format.pages output + format.language output + format.url output + format.note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + ", " 'append.conjunction := + "" + "Ph.D. thesis" format.thesis.type append.nonnull + school "school" append.check + address append + format.date "year" append.check + parenthesize no.comma output + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.in.series.volume.number output + ", " 'append.conjunction := + "" + editor empty$ + { organization append } + 'skip$ + if$ + publisher append + format.date "year" append.check + parenthesize no.comma output + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.atitle "title" output.check + format.techrep.type.number output.nonnull + ", " 'append.conjunction := + "" + institution "institution" append.check + address append + format.date "year" append.check + parenthesize no.comma output + format.language output + format.url output + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + format.date parenthesize no.comma output + format.language output + format.url output + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +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."} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et~al." * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label prev.author this.author } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := + "abcxyz" 'prev.author := + "" 'this.author := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + author empty$ + { editor empty$ + { "" } + 'editor + if$ + } + 'author + if$ + 'this.author := + this.author prev.author = + { "\bysame" 'extra.label := } + { "" 'extra.label := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} diff --git a/reports/final/titlepage/Titlepage.tex b/reports/final/titlepage/Titlepage.tex new file mode 100644 index 0000000..2eae791 --- /dev/null +++ b/reports/final/titlepage/Titlepage.tex @@ -0,0 +1,6 @@ +\begin{titlepage} +\title{MCTX3420} +\author{} +\date{} +\maketitle +\end{titlepage} -- 2.20.1