From 5d3a1476294a9dba906948950a7f0db1f32a24c0 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 27 Sep 2008 11:24:41 +0000 Subject: update elsarticle from ctan, include the doc since source is now provided, git-svn-id: svn://tug.org/texlive/trunk@10740 c570f23f-e606-0410-a88d-b1316a301751 --- .../bibtex/bst/elsarticle/elsarticle-harv.bst | 1544 +++++ .../bibtex/bst/elsarticle/elsarticle-num-names.bst | 1468 +++++ .../bibtex/bst/elsarticle/elsarticle-num.bst | 1524 +++++ Master/texmf-dist/doc/latex/elsarticle/README | 44 +- .../latex/elsarticle/elsarticle-template-harv.tex | 139 + .../latex/elsarticle/elsarticle-template-num.tex | 139 + Master/texmf-dist/doc/latex/elsarticle/elsdoc.pdf | Bin 0 -> 1441229 bytes .../texmf-dist/doc/latex/elsarticle/manifest.txt | 99 + Master/texmf-dist/source/latex/elsarticle/Makefile | 11 + .../source/latex/elsarticle/contrib/Makefile | 25 + .../source/latex/elsarticle/contrib/bg_body1.jpg | Bin 0 -> 10772 bytes .../latex/elsarticle/contrib/doc-tooltips.sty | 111 + .../source/latex/elsarticle/contrib/docscreen.sty | 925 +++ .../source/latex/elsarticle/contrib/els-1p.pdf | Bin 0 -> 126945 bytes .../source/latex/elsarticle/contrib/els-3pd.pdf | Bin 0 -> 125800 bytes .../source/latex/elsarticle/contrib/els-logo.pdf | Bin 0 -> 781611 bytes .../source/latex/elsarticle/contrib/els1.pdf | Bin 0 -> 181905 bytes .../source/latex/elsarticle/contrib/els2.pdf | Bin 0 -> 178851 bytes .../source/latex/elsarticle/contrib/elsdoc.tex | 837 +++ .../source/latex/elsarticle/contrib/enum.sty | 87 + .../source/latex/elsarticle/contrib/fancytips.tex | 7 + .../source/latex/elsarticle/contrib/jfigs.pdf | 2222 +++++++ .../source/latex/elsarticle/contrib/jfigs.tex | 54 + .../source/latex/elsarticle/contrib/mytool.tex | 83 + .../source/latex/elsarticle/contrib/mytools.tex | 83 + .../source/latex/elsarticle/contrib/pdfwidgets.sty | 382 ++ .../source/latex/elsarticle/contrib/tiger.pdf | Bin 0 -> 34171 bytes .../latex/elsarticle/elsarticle-template-harv.tex | 122 - .../latex/elsarticle/elsarticle-template-num.tex | 114 - .../source/latex/elsarticle/elsarticle.dtx | 6434 ++++++++++++++++++++ .../source/latex/elsarticle/elsarticle.ins | 73 + .../texmf-dist/source/latex/elsarticle/elsdoc.tex | 837 +++ .../texmf-dist/tex/latex/elsarticle/elsarticle.cls | 286 +- 33 files changed, 17254 insertions(+), 396 deletions(-) create mode 100644 Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst create mode 100644 Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-num-names.bst create mode 100644 Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-num.bst create mode 100644 Master/texmf-dist/doc/latex/elsarticle/elsarticle-template-harv.tex create mode 100644 Master/texmf-dist/doc/latex/elsarticle/elsarticle-template-num.tex create mode 100644 Master/texmf-dist/doc/latex/elsarticle/elsdoc.pdf create mode 100644 Master/texmf-dist/doc/latex/elsarticle/manifest.txt create mode 100644 Master/texmf-dist/source/latex/elsarticle/Makefile create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/Makefile create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/bg_body1.jpg create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/doc-tooltips.sty create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/docscreen.sty create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/els-1p.pdf create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/els-3pd.pdf create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/els-logo.pdf create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/els1.pdf create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/els2.pdf create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/elsdoc.tex create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/enum.sty create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/fancytips.tex create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/jfigs.pdf create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/jfigs.tex create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/mytool.tex create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/mytools.tex create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/pdfwidgets.sty create mode 100644 Master/texmf-dist/source/latex/elsarticle/contrib/tiger.pdf delete mode 100644 Master/texmf-dist/source/latex/elsarticle/elsarticle-template-harv.tex delete mode 100644 Master/texmf-dist/source/latex/elsarticle/elsarticle-template-num.tex create mode 100644 Master/texmf-dist/source/latex/elsarticle/elsarticle.dtx create mode 100644 Master/texmf-dist/source/latex/elsarticle/elsarticle.ins create mode 100644 Master/texmf-dist/source/latex/elsarticle/elsdoc.tex diff --git a/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst b/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst new file mode 100644 index 00000000000..da06b5caaf4 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-harv.bst @@ -0,0 +1,1544 @@ +%% +%% This is file `elsarticle-harv.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% elsarticle.dtx (with options: `harvard') +%% +%% Copyright 2007, 2008 Elsevier Ltd. +%% +%% This file is part of the 'Elsarticle Bundle'. +%% ------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'Elsarticle Bundle' is +%% given in the file `manifest.txt'. +%% + + %%------------------------------------------------------------------- + %% 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 + url + volume + year + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +%%SP 2003/07/25 +%% No longer used +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + new.sentence +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ skip$ } + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + + %% Here are the language-specific definitions for explicit words. + %% Each function has a name bbl.xxx where xxx is the English word. + %% The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "Eds." } + +FUNCTION {bbl.editor} +{ "Ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "Edition" } + +FUNCTION {bbl.volume} +{ "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} +{ "Ch." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM 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."} + +FUNCTION {write.url} +{ url empty$ + { skip$ } + { "\newline\urlprefix\url{" url * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f.}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.names.ed} +{ format.names } +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$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + if$ + } + if$ +} + +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" 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 {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * + before.all 'output.state := + ", " swap$ * +} + +FUNCTION {format.btitle} +{ title +} + +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 } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.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$ +} + +%%SP 2001/01/23 +%% Only used in articles +FUNCTION {format.vol.num.pages} +{ +%%SP 2001/01/23 +%% Add the leading space only if there is a volume + %% volume field.or.null + " " + volume empty$ + { pop$ "" } + { volume * } + if$ + number empty$ + 'skip$ + { + "~(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle * } + { word.in format.in.editors * ", " * + booktitle * } + 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 capitalize + 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.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { journal + "journal" output.check +%%SP 2001/01/23 +%% Add the space in format.vol.num.pages + %% add.blank + before.all 'output.state := + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.journal.pages + format.note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.edition output + new.sentence + format.bvolume output + format.number.series output + new.sentence + format.publisher.address output + } + { + new.sentence + format.book.crossref output.nonnull + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + howpublished output + address output + format.note output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.edition output + new.sentence + format.bvolume output + format.number.series output + new.sentence + format.publisher.address output + format.chapter.pages "chapter and pages" output.check + } + { + format.chapter.pages "chapter and pages" output.check + new.sentence + format.book.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + new.sentence + format.bvolume output + format.number.series output + new.sentence + format.publisher.address output + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + new.sentence + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ +%%SP 2001/01/23 +%% format.pages output + } + { format.incoll.inproc.crossref output.nonnull +%%SP 2001/01/23 +%% format.pages output + } + if$ +%%SP 2001/01/23 + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.sentence + organization output + address output + format.edition output + format.note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.sentence + howpublished output + format.note output + fin.entry + write.url +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.sentence + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + format.tr.number output.nonnull + institution "institution" output.check + address output + format.note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.note "note" output.check + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num number.label } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `elsarticle-harv.bst'. diff --git a/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-num-names.bst b/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-num-names.bst new file mode 100644 index 00000000000..0a02a295c9c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-num-names.bst @@ -0,0 +1,1468 @@ +%% +%% This is file `elsarticle-num-names.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% elsarticle.dtx (with options: `numnames') +%% +%% Copyright 2007, 2008 Elsevier Ltd. +%% +%% This file is part of the 'Elsarticle Bundle'. +%% ------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'Elsarticle Bundle' is +%% given in the file `manifest.txt'. +%% +%% +%% This is file `elsearticle-num-names.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,ay,nat,seq-no,nm-init,ed-au,dt-jnl,dt-end,atit-u,jttl-rm,vnum-sp,volp-blk,jdt-p,pp-last,num-xser,jnm-x,btit-rm,bt-rm,bkpg-x,isbn,issn,doi,edpar,bkedcap,blk-com,in-col,english,ppx,ed,abr,xedn,varand,xand,url,url-blk,bibinfo,nfss,,{}') +%% english.mbs (with options: `exlang,ay,nat,seq-no,nm-init,ed-au,dt-jnl,dt-end,atit-u,jttl-rm,vnum-sp,volp-blk,jdt-p,pp-last,num-xser,jnm-x,btit-rm,bt-rm,bkpg-x,isbn,issn,doi,edpar,bkedcap,blk-com,in-col,english,ppx,ed,abr,xedn,varand,xand,url,url-blk,bibinfo,nfss,,{}') +%% merlin.mbs (with options: `tail,exlang,ay,nat,seq-no,nm-init,ed-au,dt-jnl,dt-end,atit-u,jttl-rm,vnum-sp,volp-blk,jdt-p,pp-last,num-xser,jnm-x,btit-rm,bt-rm,bkpg-x,isbn,issn,doi,edpar,bkedcap,blk-com,in-col,english,ppx,ed,abr,xedn,varand,xand,url,url-blk,bibinfo,nfss,,{}') +%% ---------------------------------------- +%% *** Journal of Sound and Vibration *** +%% +%% Copyright 1994-2004 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + doi + edition + editor + eid + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{english.mbs}[2003/11/06 4.2 (PWD)] + + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + % End module: english.mbs +%% Copyright 1994-2004 Patrick W Daly +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {format.url} +{ url empty$ + { "" } + { "\urlprefix\url{" url * "}" * } + if$ +} + +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISSN " swap$ * + } + if$ +} + + FUNCTION {format.doi} + { doi "doi" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\doi{" swap$ * "}" * + } + if$ + } + +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in + ":" * + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * +} +FUNCTION{format.year} +{ year "year" bibinfo.check duplicate$ empty$ + { "empty year in " cite$ * + "; set to ????" * + warning$ + pop$ "????" + } + { + } + if$ + extra.label * + "(" swap$ * ")" * +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + " " * + format.year * " " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + " " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "~(" swap$ * ")" * + } + if$ * +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + capitalize + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + crossref missing$ + { + journal + "journal" bibinfo.check + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ + format.issn output + format.doi output + format.url output + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.isbn output + format.doi output + format.url output + format.note output + format.date "year" output.check + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.isbn output + format.doi output + format.url output + format.note output + format.date "year" output.check + 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.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + format.pages "pages" output.check + format.doi output + format.url output + format.note output + format.date "year" output.check + 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.chapter.pages output + format.publisher.address output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.doi output + format.url output + format.note output + format.date "year" output.check + 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 + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.doi output + format.url output + format.note output + format.date "year" output.check + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.btitle "title" output.check + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.doi output + format.url output + format.note output + format.date "year" output.check + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.btitle + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + format.url output + format.note output + format.date "year" output.check + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.title output + howpublished "howpublished" bibinfo.check output + format.doi output + format.url output + format.note output + format.date "year" output.check + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.btitle + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + format.url output + format.note output + format.date "year" output.check + 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 "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + format.doi output + format.url output + format.note output + format.date "year" output.check + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title + "title" output.check + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + format.url output + format.note output + format.date "year" output.check + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + format.doi output + format.url output + format.note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + { pop$ "????" } + { purify$ #-1 #4 substring$ } + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +INTEGERS { seq.num } +FUNCTION {init.seq} +{ #0 'seq.num :=} +EXECUTE {init.seq} +FUNCTION {int.to.fix} +{ "000000000" swap$ int.to.str$ * + #-1 #10 substring$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + seq.num #1 + 'seq.num := + seq.num int.to.fix + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\urlprefix}{URL }" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else" + write$ newline$ + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\url{#1}\endgroup}\fi" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% +%% End of file `elsarticle-num-names.bst'. diff --git a/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-num.bst b/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-num.bst new file mode 100644 index 00000000000..777822324dc --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/elsarticle/elsarticle-num.bst @@ -0,0 +1,1524 @@ +%% +%% This is file `elsarticle-num.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% elsarticle.dtx (with options: `num') +%% +%% Copyright 2007, 2008 Elsevier Ltd. +%% +%% This file is part of the 'Elsarticle Bundle'. +%% ------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'Elsarticle Bundle' is +%% given in the file `manifest.txt'. +%% +%%% Modification of BibTeX style file elsarticle-num.bst +%%% ... by urlbst, version 0.6 (marked with "% urlbst") +%%% See +%%% Added webpage entry type, and url and lastchecked fields. +%%% Added eprint support. +%%% Added DOI support. +%%% Added hyperref support. +%%% Original headers follow... + +%% +%% This is file `elsarticle-num.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `,seq-no,nm-init,ed-au,dt-end,yr-par,yrp-x,jttl-rm,thtit-a,vnum-sp,volp-blk,jdt-p,pp-last,jnm-x,btit-rm,bt-rm,pub-date,pub-xpar,pre-edn,url,url-nl,edpar,blk-com,in-col,pp,ed,abr,ednx,ord,jabr,and-xcom,xand,em-x,nfss') +%% After docstrip generation some manual changes were made (SP) + +%% ---------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + eprint % urlbst + doi % urlbst + url % urlbst + lastchecked % urlbst + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl openinlinelink closeinlinelink } % urlbst... +INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver } +FUNCTION {init.urlbst.variables} +{ + "Available from: " 'urlintro := % prefix before URL + "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref + "arXiv:" 'eprintprefix := % text prefix printed before eprint ref + "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI + "doi:" 'doiprefix := % text prefix printed before DOI ref + #1 'addeprints := % 0=no eprints; 1=include eprints + #1 'adddoiresolver := % 0=no DOI resolver; 1=include it + #2 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs + #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles + % the following are internal state variables, not config constants + #0 'makeinlinelink := % state variable managed by setup.inlinelink + "" 'openinlinelink := % ditto + "" 'closeinlinelink := % ditto +} +INTEGERS { + bracket.state + outside.brackets + open.brackets + within.brackets + close.brackets +} +FUNCTION {init.state.consts} +{ #0 'outside.brackets := % urlbst + #1 'open.brackets := + #2 'within.brackets := + #3 'close.brackets := + + #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull.original} +{ '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 {setup.inlinelink} +{ makeinlinelink + { hrefform #1 = % hypertex + { "\special {html: }{" * 'openinlinelink := + "\special {html:}" 'closeinlinelink := + } + { hrefform #2 = % hyperref + { "\href{" url * "}{" * 'openinlinelink := + "}" 'closeinlinelink := + } + 'skip$ + if$ % hrefform #2 = + } + if$ % hrefform #1 = + #0 'makeinlinelink := + } + 'skip$ + if$ % makeinlinelink +} +FUNCTION {add.inlinelink} +{ openinlinelink empty$ + 'skip$ + { openinlinelink swap$ * closeinlinelink * + "" 'openinlinelink := + } + if$ +} +FUNCTION {output.nonnull} +{ % Save the thing we've been asked to output + 's := + % If the bracket-state is close.brackets, then add a close-bracket to + % what is currently at the top of the stack, and set bracket.state + % to outside.brackets + bracket.state close.brackets = + { "]" * + outside.brackets 'bracket.state := + } + 'skip$ + if$ + bracket.state outside.brackets = + { % We're outside all brackets -- this is the normal situation. + % Write out what's currently at the top of the stack, using the + % original output.nonnull function. + s + add.inlinelink + output.nonnull.original % invoke the original output.nonnull + } + { % Still in brackets. Add open-bracket or (continuation) comma, add the + % new text (in s) to the top of the stack, and move to the close-brackets + % state, ready for next time (unless inbrackets resets it). If we come + % into this branch, then output.state is carefully undisturbed. + bracket.state open.brackets = + { " [" * } + { ", " * } % bracket.state will be within.brackets + if$ + s * + close.brackets 'bracket.state := + } + if$ +} + +FUNCTION {inbrackets} +{ bracket.state close.brackets = + { within.brackets 'bracket.state := } % reset the state: not open nor closed + { open.brackets 'bracket.state := } + if$ +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { inbrackets "cited " lastchecked * } + if$ +} + +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.original} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.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} +{ skip$ } + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "Eds." } + +FUNCTION {bbl.editor} +{ "Ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "Edition" } + +FUNCTION {bbl.volume} +{ "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} +{ "Ch." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM 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."} + +FUNCTION {write.url} +{ url empty$ + { skip$ } + { "\newline\urlprefix\url{" url * "}" * write$ newline$ } + 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 * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.names.ed} +{ format.names } +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$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + if$ + } + if$ +} + +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {output.bibitem.original} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in + ":" * + " " * } + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ + duplicate$ empty$ + 'skip$ + { + before.all 'output.state := + " (" swap$ * ")" * + } + if$ +} + +FUNCTION{format.year} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ pop$ "" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {format.btitle} +{ title +} + +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 } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.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 } + { + " " * + format.year * " " * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ + % volume field.or.null + " " + volume empty$ + { pop$ "" } + { volume * } + if$ + number empty$ + 'skip$ + { + "~(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle * } + { word.in format.in.editors * ", " * + booktitle * } + 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$ + { bbl.techrep } + '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$ + "" + } + { word.in journal emphasize * } + if$ + } + { word.in key * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +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$ + 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 emphasize * } + 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$ + "" + } + { word.in booktitle * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + 'skip$ + if$ + address empty$ t empty$ and + year empty$ and + 'skip$ + { + t empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { t * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + year empty$ + 'skip$ + { t empty$ address empty$ and + 'skip$ + { ", " * } + if$ + year * + } + 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 {make.href.null} +{ + pop$ +} +FUNCTION {make.href.hypertex} +{ + "\special {html: }" * swap$ * + "\special {html:}" * +} +FUNCTION {make.href.hyperref} +{ + "\href {" swap$ * "} {\path{" * swap$ * "}}" * +} +FUNCTION {make.href} +{ hrefform #2 = + 'make.href.hyperref % hrefform = 2 + { hrefform #1 = + 'make.href.hypertex % hrefform = 1 + 'make.href.null % hrefform = 0 (or anything else) + if$ + } + if$ +} + +FUNCTION {format.url} +{ inlinelinks #1 = url empty$ or + { "" } + { hrefform #1 = + { % special case -- add HyperTeX specials + urlintro "\url{" url * "}" * url make.href.hypertex * } + { urlintro "\url{" * url * "}" * } + if$ + } + if$ +} + +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { eprintprefix eprint * eprinturl eprint * make.href } + if$ +} + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { doiprefix doi * doiurl doi * make.href } + if$ +} + +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block + format.url output + format.lastchecked output + } + if$ +} + +FUNCTION {output.web.refs} +{ + new.block + output.url + addeprints eprint empty$ not and + { format.eprint output.nonnull } + 'skip$ + if$ + adddoiresolver doi empty$ not and + { format.doi output.nonnull } + 'skip$ + if$ +} + +FUNCTION {output.bibitem} +{ outside.brackets 'bracket.state := + output.bibitem.original + inlinelinks url empty$ not and + { #1 'makeinlinelink := } + { #0 'makeinlinelink := } + if$ +} + +FUNCTION {fin.entry} +{ output.web.refs % urlbst + makeinlinelink % ooops, it appears we didn't have a title for inlinelink + { setup.inlinelink % add some artificial link text here, as a fallback + "[link]" output.nonnull } + 'skip$ + if$ + bracket.state close.brackets = % urlbst + { "]" * } + 'skip$ + if$ + fin.entry.original +} + +FUNCTION {webpage} +{ output.bibitem + author empty$ + { editor empty$ + 'skip$ % author and editor both optional + { format.editors output.nonnull } + if$ + } + { editor empty$ + { format.authors output.nonnull } + { "can't use both author and editor fields in " cite$ * warning$ } + if$ + } + if$ + new.block + title empty$ 'skip$ 'setup.inlinelink if$ + format.title "title" output.check + inbrackets "online" output + new.block + year empty$ + 'skip$ + { format.date "year" output.check } + if$ + % We don't need to output the URL details ('lastchecked' and 'url'), + % because fin.entry does that for us, using output.web.refs. The only + % reason we would want to put them here is if we were to decide that + % they should go in front of the rather miscellaneous information in 'note'. + new.block + note output + fin.entry +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.title "title" output.check + crossref missing$ + { journal + "journal" output.check + % add.blank + before.all 'output.state := + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.journal.pages + format.note output + fin.entry + write.url +} + +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$ + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.btitle "title" output.check + crossref missing$ + { format.edition output + format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.title "title" output.check + howpublished output + address output + format.note output + format.date output + fin.entry + write.url +} + +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 empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.btitle "title" output.check + crossref missing$ + { + format.edition output + format.bvolume output + format.number.series output + format.publisher.address output + format.chapter.pages "chapter and pages" output.check + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + format.publisher.address output + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address output + } + 'skip$ + if$ + } + { + organization output + address output + } + if$ + format.edition output + format.note output + format.date output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.title "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + format.date "year" output.check + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.title output + howpublished output + format.note output + format.date output + fin.entry + write.url + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.title "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + format.date "year" output.check + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.btitle "title" output.check + format.bvolume output + format.number.series output + editor empty$ + { publisher empty$ + 'skip$ + { + format.publisher.address output + } + if$ + } + { publisher empty$ + { + format.organization.address output } + { + organization output + format.publisher.address output + } + if$ + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.note output + format.date "year" output.check + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + title empty$ 'skip$ 'setup.inlinelink if$ % urlbst + format.title "title" output.check + format.note "note" output.check + format.date output + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +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$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + write$ newline$ + "\expandafter\ifx\csname href\endcsname\relax" + write$ newline$ + " \def\href#1#2{#2} \def\path#1{#1}\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.urlbst.variables} +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 `elsarticle-num.bst'. diff --git a/Master/texmf-dist/doc/latex/elsarticle/README b/Master/texmf-dist/doc/latex/elsarticle/README index 448a30adfb0..b6ba18dde8a 100644 --- a/Master/texmf-dist/doc/latex/elsarticle/README +++ b/Master/texmf-dist/doc/latex/elsarticle/README @@ -1,29 +1,43 @@ -Elsevier's new document class for typeset journal articles, -elsarticle.cls, now available for user testing +This is Elsevier's new document class for typeset journal articles, +elsarticle.cls. It is now accepted for submitted articles, both in +Elsevier's electronic submission system and elsewhere. -Elsevier's document class for typeset articles elsart.cls is over 10 -years old. Therefore it will be replaced with the newly written -document class elsarticle.cls, which was developed for Elsevier by the -leading TeX company River-Valley Technologies. +Elsevier's previous document class for typeset articles, elsart.cls, +is now over 10 years old. It has been replaced with this newly written +document class elsarticle.cls, which has been developed for Elsevier +by the leading TeX developer River Valley Technologies. elsarticle.cls is based upon the standard LaTeX document class article.cls. It uses natbib.sty for bibliographical references. -The following files are available: +Bugs and problems with elsarticle.cls may be reported to the +developers of the class via elsarticle@river-valley.com. + +The file manifest.txt provides a list of the files in the elsarticle +bundle. The following are the main files available: - elsarticle.cls, the class file - elsdoc.pdf, the user documentation - elsarticle-template-num.tex, template file for numerical references - elsarticle-template-harv.tex, template file for name-year references +- elsarticle-num.bst, bibliographic style for numerical references +- elsarticle-harv.bst, bibliographic style for name-year references +- elsarticle-num-names.bst, bibliographic style for numerical references + with author-year citation + +To extract all files from *.dtx: latex elsarticle.ins -Elsevier encourages authors to use this document class for testing, -and report bugs and problems to the developers of the class, -elsarticle@river-valley.com. It is the intention to finalize this -document class by the end of August. By that date it will be accepted -for submitted articles, both in Elsevier's electronic submission -system and otherwise. +The documentation file is elsdoc.tex in the contrib directory. To +compile it: +1. pdflatex elsdoc +2. copy mytool.tex to mytools.tex +3. pdflatex jfigs +4. pdflatex elsdoc +The above procedure will create a tool-tipped screen version, namely +elsdoc.pdf. Copyright 2007-2008, Elsevier. Bugs, feature requests, suggestions and comments may be mailed to elsarticle@river-valley.com. elsarticle.cls, related documentation and supporting packages are released under the -LATEX Project Public Licence, either version 1.3 or any later version. -This work has the LPPL maintenance status 'author-maintained'. +LATEX Project Public Licence, either version 1.3 or any later +version. This work has the LPPL maintenance status +'author-maintained'. diff --git a/Master/texmf-dist/doc/latex/elsarticle/elsarticle-template-harv.tex b/Master/texmf-dist/doc/latex/elsarticle/elsarticle-template-harv.tex new file mode 100644 index 00000000000..6543eaccaed --- /dev/null +++ b/Master/texmf-dist/doc/latex/elsarticle/elsarticle-template-harv.tex @@ -0,0 +1,139 @@ +%% +%% This is file `elsarticle-template-harv.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% elsarticle.dtx (with options: `harvtemplate') +%% +%% Copyright 2007, 2008 Elsevier Ltd. +%% +%% This file is part of the 'Elsarticle Bundle'. +%% ------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'Elsarticle Bundle' is +%% given in the file `manifest.txt'. +%% +%% Template article for Elsevier's document class `elsarticle' +%% with harvard style bibliographic references +%% SP 2008/03/01 + +\documentclass[preprint,12pt]{elsarticle} + +%% Use the option review to obtain double line spacing +%% \documentclass[authoryear,preprint,review,12pt]{elsarticle} + +%% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn +%% for a journal layout: +%% \documentclass[final,1p,times]{elsarticle} +%% \documentclass[final,1p,times,twocolumn]{elsarticle} +%% \documentclass[final,3p,times]{elsarticle} +%% \documentclass[final,3p,times,twocolumn]{elsarticle} +%% \documentclass[final,5p,times]{elsarticle} +%% \documentclass[final,5p,times,twocolumn]{elsarticle} + +%% if you use PostScript figures in your article +%% use the graphics package for simple commands +%% \usepackage{graphics} +%% or use the graphicx package for more complicated commands +%% \usepackage{graphicx} +%% or use the epsfig package if you prefer to use the old commands +%% \usepackage{epsfig} + +%% The amssymb package provides various useful mathematical symbols +\usepackage{amssymb} +%% The amsthm package provides extended theorem environments +%% \usepackage{amsthm} + +%% The lineno packages adds line numbers. Start line numbering with +%% \begin{linenumbers}, end it with \end{linenumbers}. Or switch it on +%% for the whole article with \linenumbers. +%% \usepackage{lineno} + +\journal{Nuclear Physics B} + +\begin{document} + +\begin{frontmatter} + +%% Title, authors and addresses + +%% use the tnoteref command within \title for footnotes; +%% use the tnotetext command for theassociated footnote; +%% use the fnref command within \author or \address for footnotes; +%% use the fntext command for theassociated footnote; +%% use the corref command within \author for corresponding author footnotes; +%% use the cortext command for theassociated footnote; +%% use the ead command for the email address, +%% and the form \ead[url] for the home page: +%% \title{Title\tnoteref{label1}} +%% \tnotetext[label1]{} +%% \author{Name\corref{cor1}\fnref{label2}} +%% \ead{email address} +%% \ead[url]{home page} +%% \fntext[label2]{} +%% \cortext[cor1]{} +%% \address{Address\fnref{label3}} +%% \fntext[label3]{} + +\title{} + +%% use optional labels to link authors explicitly to addresses: +%% \author[label1,label2]{} +%% \address[label1]{} +%% \address[label2]{} + +\author{} + +\address{} + +\begin{abstract} +%% Text of abstract + +\end{abstract} + +\begin{keyword} +%% keywords here, in the form: keyword \sep keyword + +%% PACS codes here, in the form: \PACS code \sep code + +%% MSC codes here, in the form: \MSC code \sep code +%% or \MSC[2008] code \sep code (2000 is the default) + +\end{keyword} + +\end{frontmatter} + +%% \linenumbers + +%% main text +\section{} +\label{} + +%% The Appendices part is started with the command \appendix; +%% appendix sections are then done as normal sections +%% \appendix + +%% \section{} +%% \label{} + +\begin{thebibliography}{00} + +%% \bibitem{label} +%% Text of bibliographic item + +\bibitem{} + +\end{thebibliography} +\end{document} + +\endinput +%% +%% End of file `elsarticle-template-harv.tex'. diff --git a/Master/texmf-dist/doc/latex/elsarticle/elsarticle-template-num.tex b/Master/texmf-dist/doc/latex/elsarticle/elsarticle-template-num.tex new file mode 100644 index 00000000000..8dc5d35259e --- /dev/null +++ b/Master/texmf-dist/doc/latex/elsarticle/elsarticle-template-num.tex @@ -0,0 +1,139 @@ +%% +%% This is file `elsarticle-template-num.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% elsarticle.dtx (with options: `numtemplate') +%% +%% Copyright 2007, 2008 Elsevier Ltd. +%% +%% This file is part of the 'Elsarticle Bundle'. +%% ------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'Elsarticle Bundle' is +%% given in the file `manifest.txt'. +%% + +%% Template article for Elsevier's document class `elsarticle' +%% with numbered style bibliographic references +%% SP 2008/03/01 + +\documentclass[preprint,12pt]{elsarticle} + +%% Use the option review to obtain double line spacing +%% \documentclass[authoryear,preprint,review,12pt]{elsarticle} + +%% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn +%% for a journal layout: +%% \documentclass[final,1p,times]{elsarticle} +%% \documentclass[final,1p,times,twocolumn]{elsarticle} +%% \documentclass[final,3p,times]{elsarticle} +%% \documentclass[final,3p,times,twocolumn]{elsarticle} +%% \documentclass[final,5p,times]{elsarticle} +%% \documentclass[final,5p,times,twocolumn]{elsarticle} + +%% if you use PostScript figures in your article +%% use the graphics package for simple commands +%% \usepackage{graphics} +%% or use the graphicx package for more complicated commands +%% \usepackage{graphicx} +%% or use the epsfig package if you prefer to use the old commands +%% \usepackage{epsfig} + +%% The amssymb package provides various useful mathematical symbols +\usepackage{amssymb} +%% The amsthm package provides extended theorem environments +%% \usepackage{amsthm} + +%% The lineno packages adds line numbers. Start line numbering with +%% \begin{linenumbers}, end it with \end{linenumbers}. Or switch it on +%% for the whole article with \linenumbers. +%% \usepackage{lineno} + +\journal{Nuclear Physics B} + +\begin{document} + +\begin{frontmatter} + +%% Title, authors and addresses + +%% use the tnoteref command within \title for footnotes; +%% use the tnotetext command for theassociated footnote; +%% use the fnref command within \author or \address for footnotes; +%% use the fntext command for theassociated footnote; +%% use the corref command within \author for corresponding author footnotes; +%% use the cortext command for theassociated footnote; +%% use the ead command for the email address, +%% and the form \ead[url] for the home page: +%% \title{Title\tnoteref{label1}} +%% \tnotetext[label1]{} +%% \author{Name\corref{cor1}\fnref{label2}} +%% \ead{email address} +%% \ead[url]{home page} +%% \fntext[label2]{} +%% \cortext[cor1]{} +%% \address{Address\fnref{label3}} +%% \fntext[label3]{} + +\title{} + +%% use optional labels to link authors explicitly to addresses: +%% \author[label1,label2]{} +%% \address[label1]{} +%% \address[label2]{} + +\author{} + +\address{} + +\begin{abstract} +%% Text of abstract + +\end{abstract} + +\begin{keyword} +%% keywords here, in the form: keyword \sep keyword + +%% PACS codes here, in the form: \PACS code \sep code + +%% MSC codes here, in the form: \MSC code \sep code +%% or \MSC[2008] code \sep code (2000 is the default) + +\end{keyword} + +\end{frontmatter} + +%% \linenumbers + +%% main text +\section{} +\label{} + +%% The Appendices part is started with the command \appendix; +%% appendix sections are then done as normal sections +%% \appendix + +%% \section{} +%% \label{} + +\begin{thebibliography}{00} + +%% \bibitem{label} +%% Text of bibliographic item + +\bibitem{} + +\end{thebibliography} +\end{document} +\endinput +%% +%% End of file `elsarticle-template-num.tex'. diff --git a/Master/texmf-dist/doc/latex/elsarticle/elsdoc.pdf b/Master/texmf-dist/doc/latex/elsarticle/elsdoc.pdf new file mode 100644 index 00000000000..755d237e46b Binary files /dev/null and b/Master/texmf-dist/doc/latex/elsarticle/elsdoc.pdf differ diff --git a/Master/texmf-dist/doc/latex/elsarticle/manifest.txt b/Master/texmf-dist/doc/latex/elsarticle/manifest.txt new file mode 100644 index 00000000000..659ce536084 --- /dev/null +++ b/Master/texmf-dist/doc/latex/elsarticle/manifest.txt @@ -0,0 +1,99 @@ +% \iffalse meta-comment +% +% +% +% Copyright 2007, 2008 Elsevier Ltd. +% +% This file is part of the 'Elsarticle Bundle'. +% ------------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% The list of all files belonging to the LaTeX 'Elsarticle Bundle' is +% given in the file `manifest.txt'. +% +% \fi +% +% CONTENTS OF THE ELSARTICLE BUNDLE +% =============================== + +elsarticle.dtx + Main package with driver. + +elsarticle.cls + main documentclass. + +elsarticle-harv.bst + bibliographic style for author-year citation + +elsarticle-num.bst + bibliographic style for numbered citation + +elsarticle-num-names.bst + bibliographic style for numbered citation + new natibi options + +elsarticle-template-harv.tex + article template for a document with author-year citation + +elsarticle-template-num.tex + article template for a document with numbered citation + +elsdoc.pdf + documentation for elsarticle.cls + +elsdoc.tex + LaTeX sources of documentation + +manifest.txt + this file + +README + small readme documentation + +Directory contrib/ + +The following files are graphic files needed for creating pdf output +of the documentation from elsdoc.tex: + + bg_body1.jpg + els1.pdf + els-1p.pdf + els2.pdf + els-3pd.pdf + els-logo.pdf + jfigs.pdf + tiger.pdf + +elsdoc.tex -- source file of documentation + +The following files are files written out every time elsdoc.tex is +compiled for generating tooltips: + + fancytips.tex + jfigs.tex + mytools.tex + mytool.tex + +Auxiliary packages needed to generate pdf output from elsdoc.tex: + + enum.sty + docscreen.sty + doc-tooltips.sty + pdfwidgets.sty + + +Directory src/ + +elsarticle.dtx + composite file with package source and driver + +elsarticle.ins + installer for elsarticle.dtx + + diff --git a/Master/texmf-dist/source/latex/elsarticle/Makefile b/Master/texmf-dist/source/latex/elsarticle/Makefile new file mode 100644 index 00000000000..070f28b9afa --- /dev/null +++ b/Master/texmf-dist/source/latex/elsarticle/Makefile @@ -0,0 +1,11 @@ +all: clean create + +clean: + @rm *.cls *.bst *.tex *.log + +create: + @latex elsarticle.ins + +copy: + @cp *.cls *.bst *.tex ../ + diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/Makefile b/Master/texmf-dist/source/latex/elsarticle/contrib/Makefile new file mode 100644 index 00000000000..132e179ff97 --- /dev/null +++ b/Master/texmf-dist/source/latex/elsarticle/contrib/Makefile @@ -0,0 +1,25 @@ +# +# Makefile to generate documentation +# + +all: pdf view + +pdf: + @cp ../elsdoc.tex . + pdflatex elsdoc + @cp mytool.tex mytools.tex + pdflatex jfigs + pdflatex elsdoc + pdflatex elsdoc + +view: + acroread elsdoc.pdf + +xview: + xpdf elsdoc.pdf + + +clean: + @rm *.djs *.out *.log *.aux *.images xx.tex tmp.tex + + diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/bg_body1.jpg b/Master/texmf-dist/source/latex/elsarticle/contrib/bg_body1.jpg new file mode 100644 index 00000000000..4f16f9eb557 Binary files /dev/null and b/Master/texmf-dist/source/latex/elsarticle/contrib/bg_body1.jpg differ diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/doc-tooltips.sty b/Master/texmf-dist/source/latex/elsarticle/contrib/doc-tooltips.sty new file mode 100644 index 00000000000..929d0004bd7 --- /dev/null +++ b/Master/texmf-dist/source/latex/elsarticle/contrib/doc-tooltips.sty @@ -0,0 +1,111 @@ +%% +%% doc-tooltips.sty +%% +%% $Id: doc-tooltips.sty,v 1.2 2007-10-22 09:45:17 cvr Exp $ +%% +%% (c) C. V. Radhakrishnan +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +\usepackage[pdftex]{eforms}[2006/10/03] +\usepackage[noextratext,movetips,filename=jfigs]{fancytooltips} +\colorlet{tooltipcolor}{magenta!80} + +\def\tooltip#1#2{\@bsphack + \write\@auxout{\noexpand\TooltipPage{\thepage}}\@esphack% + \checkTipNumber{#2}\edef\TipNumber{\FindTipNumber{#2}}% + \leavevmode% + \setbox0=\hbox{{\color{tooltipcolor}#1}}% + \hbox to \wd0{% + \hb@xt@\z@{\copy0}% + \pushButton[\BC{}\BG{}\S{}\AA{\AAMouseExit{\JS{CloseTooltips();}}% + \AAMouseEnter{\JS{this.getField("ikona."+(this.pageNum+1)).hidden=false;% + try {app.clearInterval(animace);}catch (e){}% + \ifmovetips nastav(\TipNumber);\fi + zobraz(\TipNumber);}}}]% + {TooltipField}{\wd0}{\ht0}}}% +\newtoks\@enLab %\newtoks\@enfont +\def\@enQmark{?} +\def\@enLabel#1#2{% + \edef\@enThe{\noexpand#1{\@enumctr}}% + \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}% + \@enloop} +\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= } +\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop} +\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop} +\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop} +\def\@enloop{\futurelet\@entemp\@enloop@} +\def\@enloop@{% + \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else + \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else + \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else + \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else + \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else + \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else + \ifx \bgroup\@entemp \let\@tempa\@enGroup \else + \ifx \@enum@\@entemp \let\@tempa\@gobble \else + \let\@tempa\@enOther + \fi\fi\fi\fi\fi\fi\fi\fi + \@tempa} +\newlength{\@sep} \newlength{\@@sep} +\setlength{\@sep}{.5\baselineskip plus.2\baselineskip + minus.2\baselineskip} +\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip + minus.05\baselineskip} +\providecommand{\sfbc}{\rmfamily\upshape} +\providecommand{\sfn}{\rmfamily\upshape} +\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt} +\def\enumerate{% + \ifnum \@enumdepth >3 \@toodeep\else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi + \@ifnextchar[{\@@enum@}{\@enum@}} +\def\@@enum@[#1]{% + \@enLab{}\let\@enThe\@enQmark + \@enloop#1\@enum@ + \ifx\@enThe\@enQmark\@warning{The counter will not be printed.% + ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi + \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}% + \expandafter\let\csname the\@enumctr\endcsname\@enThe + \csname c@\@enumctr\endcsname7 + \expandafter\settowidth + \csname leftmargin\romannumeral\@enumdepth\endcsname +% {#1\hspace{\labelsep}}% + {\the\@enLab\hskip\labelsep}% + \@enum@} +\newdimen\lmrgn +\lmrgn=2em +\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}% + {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}% + \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else + \setlength{\topsep}{\@sep}\fi + \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}% + \else \setlength{\itemsep}{\@@sep}\fi + \setlength\leftmargin{\lmrgn}%%%{1.8em} + \setlength{\parsep}{0pt plus1pt minus1pt}% + \setlength{\parskip}{0pt plus1pt minus1pt}}} + +\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else + \addvspace{\@sep}\fi \endlist} + +\def\sitem{\@noitemargtrue\@item[\@itemlabel *]} + +\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}} + +\def\@Itemize[#1]{\def\next{#1}% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \ifx\next\@empty\else\expandafter\def\csname + labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi% + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter\list\csname\@itemitem\endcsname + {\def\makelabel##1{\hss\llap{##1}}}% + \fi} + + +\endinput +%% +%% End of package 'doc-tooltips.sty' +%% diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/docscreen.sty b/Master/texmf-dist/source/latex/elsarticle/contrib/docscreen.sty new file mode 100644 index 00000000000..36d072857ad --- /dev/null +++ b/Master/texmf-dist/source/latex/elsarticle/contrib/docscreen.sty @@ -0,0 +1,925 @@ +%% +%% +%% This is file `docscreen.sty', +%% +%% File: docscreen.sty Copyright (c) 2008 C. V. Radhakrishnan +%% +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +\NeedsTeXFormat{LaTeX2e} +\def\fileversion{v.1.0}\def\filedate{2008/07/07} +\ProvidesPackage{docscreen} + [\filedate\space\fileversion\space screen PDF design (CVR)] +\RequirePackage{graphicx} +\RequirePackage{color,calc} +\RequirePackage{comment} +\newcounter{panel} +\newif\if@screen \@screenfalse +\newif\if@print \@printfalse +\newif\if@sidebar \@sidebarfalse +\newif\if@samepage \@samepagefalse +\newif\if@nocfg \@nocfgfalse +\newif\if@orange \@orangefalse +\newif\if@bluelace \@bluelacefalse +\newif\if@chocolate \@chocolatefalse +\newif\if@palegreen \@palegreenfalse +\newif\if@blue \@bluefalse +\newif\if@gray \@grayfalse +\newif\if@default \@defaultfalse +\newif\if@paneltoc \@paneltocfalse +\newif\if@code \@codefalse +\newif\if@sectionbreak\@sectionbreakfalse +\newcounter{driver} \newcounter{scheme} +\DeclareOption{pdftex}{\setcounter{driver}{0}} +\DeclareOption{dvips}{\setcounter{driver}{1}} +\DeclareOption{nocfg}{\@nocfgtrue} +\DeclareOption{panelleft}{\setcounter{panel}{1}} +\DeclareOption{leftpanel}{\setcounter{panel}{1}} +\DeclareOption{panelright}{\setcounter{panel}{2}} +\DeclareOption{rightpanel}{\setcounter{panel}{2}} +\DeclareOption{vpanel}{\setcounter{panel}{3}} +\DeclareOption{nopanel}{\setcounter{panel}{0}} +\DeclareOption{print}{\@printtrue} +\DeclareOption{screen}{\@screentrue} +\DeclareOption{sidebar}{\setcounter{panel}{1}} +\DeclareOption{nopanel}{\setcounter{panel}{0}} +\DeclareOption{paneltoc}{\@paneltoctrue} +\DeclareOption{code}{\@codetrue} +\DeclareOption{sectionbreak}{\@sectionbreaktrue} +\def\DOCSCR@Warning#1{}%\PackageWarning{docscreen}{#1}} +\def\DOCSCR@Info#1{}%\PackageInfo{docscreen}{#1}} +\def\DOCSCR@WarningNoLine#1{}%\PackageWarningNoLine{docscreen}{#1}} + \def\paneltitlepagename#1{\gdef\@Paneltitlepagename{#1}} + \def\panlabstractname#1{\gdef\@Panelabstractname{#1}} + \def\panelcontentsname#1{\gdef\@Panelcontentsname{#1}} + \def\panelhomepagename#1{\gdef\@Panelhomepagename{#1}} + \def\panelfullscreenname#1{\gdef\@Panelfullscreenname{#1}} + \def\panelgobackname#1{\gdef\@Panelgobackname{#1}} + \def\panelclosename#1{\gdef\@Panelclosename{#1}} + \def\panelquitname#1{\gdef\@Panelquitname{#1}} + \def\panelpagename#1{\gdef\@Panelpagename{#1}} + \def\panelofname#1{\gdef\@Panelofname{#1}} + \let\@Paneltitlepagename\@empty \let\@Panelabstractname\@empty + \let\@Panelcontentsname\@empty \let\@Panelhomepagename\@empty + \let\@Panelgobackname\@empty \let\@Panelgobackname\@empty + \let\@Panelquitname\@empty \let\@Panelclosename\@empty + \let\@Panelpagename\@empty \let\@Panelofname\@empty + \let\@Panelfullscreenname\@empty + \paneltitlepagename{Title Page} + \panlabstractname{Abstract} + \panelcontentsname{Contents} + \panelfullscreenname{Full Screen} + \panelhomepagename{Home Page} + \panelgobackname{Go Back} + \panelclosename{Close} + \panelquitname{Quit} + \panelpagename{Page} + \panelofname{of} +\ProcessOptions +%******** Screen options starts here ***************** +\if@screen +\@ifundefined{hyperref}{% + \ifcase\thedriver\RequirePackage[pdftex]{hyperref}\or + \RequirePackage[dvips]{hyperref}\or + \RequirePackage[dvipsone]{hyperref}\or + \RequirePackage[dvipdf]{hyperref}\or + \RequirePackage[dvipdfm]{hyperref}\or + \RequirePackage[dviwindo]{hyperref}\or + \RequirePackage[ps2pdf]{hyperref}\or + \RequirePackage[vtex]{hyperref}\or + \DOCSCR@Warning{Unknown backend driver} + \fi} + {\DOCSCR@Warning{hyperref already loaded}} +\hypersetup{pagebackref,pdfpagemode=none,colorlinks,% + pdfmenubar=false,% + pdftoolbar=false,% + pdffitwindow=true,pdfcenterwindow=true,% + pdfwindowui=false,menucolor=menucolor,% + pdfview=Fit,pdfstartview=Fit,backref} +\includecomment{screen} +\excludecomment{print} +\def\ScreenLastPage{100} + \definecolor{coxcolor}{rgb}{1,.937,.835} + \definecolor{boxcolor}{rgb}{.001,0,.502} + \definecolor{bboxcolor}{rgb}{.9,.941,.902} + \definecolor{rcolor}{rgb}{.439,.502,.565} + \definecolor{olivedrab}{rgb}{.42,.557,.137} + \definecolor{fcolor}{rgb}{0,1,1} + \definecolor{orange}{rgb}{1,.549,0} + \definecolor{orange1}{rgb}{1,.5,0} + \definecolor{menucolor}{rgb}{1,.25,0} + \definecolor{paleblue}{rgb}{0,0,0.1} + \definecolor{panelbackground}{rgb}{.455,.832,.979} + \definecolor{logobackground}{rgb}{.35,.73,.87} + \definecolor{buttonbackground}{rgb}{0,.624,.820} + \definecolor{buttonshadow}{rgb}{.001,0,.502} + \definecolor{section0}{rgb}{0,.5,.1} + \definecolor{section1}{rgb}{0,.5,1} + \definecolor{section2}{rgb}{0,.5,.7} + \definecolor{section3}{rgb}{0,.5,.4} + \definecolor{section4}{rgb}{.4,.5,.2} + \definecolor{section5}{rgb}{.5,.5,.3} + +% +%------------------------ Macros for code listing -------------- +\if@code +\def\verbatim@font{% + \normalfont \ttfamily\small + \color{section0} + \catcode`\<=\active + \catcode`\>=\active +} +\begingroup + \catcode`\<=\active + \catcode`\>=\active + \gdef<{\@ifnextchar<\@lt\@meta} + \gdef>{\@ifnextchar>\@gt\@gtr@err} + \gdef\@meta#1>{\@PDFm{#1}} + \gdef\@lt<{\char`\<} + \gdef\@gt>{\char`\>} +\endgroup +\def\@gtr@err{% + \DOCSCR@Warning{% + Isolated \protect>\MessageBreak% + In this document class, \protect<...\protect>\MessageBreak + is used to indicate a parameter.\MessageBreak + I've just found a \protect> on its own.\MessageBreak + Perhaps you meant to type \protect>\protect>? + }% +} +\def\verbatim@nolig@list{\do\`\do\,\do\'\do\-} +\def\@PDFm#1{\mbox{\color{red}$\langle$\it#1\/$\rangle$}} +\def\arg#1{{\color{section1}{\tt\string{}\@PDFm{#1}{\tt\string}}}} +\def\@PDFM#1{\mbox{\color{red}\it#1\/}} +\def\Arg#1{{\color{section1}{\tt\string{}\@PDFM{#1}{\tt\string}}}} +\def\oarg#1{{\color{section1}{\tt[}\@PDFm{#1}{\tt]}}} +\def\Oarg#1{{\color{section1}{\tt[}\@PDFM{#1}{\tt]}}} + \definecolor{wheat}{rgb}{.96, .87, .70} + \definecolor{oldlace}{rgb}{.992, .96187, .902} + \definecolor{snow}{rgb}{1, .98, .98} + \definecolor{ghostwhite}{rgb}{.973, .973, 1} + \definecolor{cornsilk}{rgb}{1, .973, .863} + \definecolor{honeydew}{rgb}{.941, 1, .941} + \definecolor{lavenderdark}{rgb}{.8, .8, .9529411} + \definecolor{lavender}{rgb}{.902, .902, .980} + \definecolor{lightblue}{rgb}{.8, .8, .95} + \definecolor{lightgray}{rgb}{.827, .827, .827} + \definecolor{lightsteelblue}{rgb}{.690, .769, .871} + \definecolor{lightturquoise}{rgb}{.686, .933, .933} + \definecolor{darkgreen}{rgb}{.0, .392, .0} + \definecolor{yellowgreen}{rgb}{.604, .804, .196} + \definecolor{vlightblue}{rgb}{.88, .85, .95} + \definecolor{khaki}{rgb}{.741, .718, .42} +\@ifundefined{rowcolor}{}{\arrayrulecolor{section1}} +\definecolor{tabcolor}{rgb}{.973, .973, 1} +\@ifundefined{decl}{% +\newenvironment{decl}[1][]% + {\par\small\addvspace{1.5ex plus .5ex minus .5ex}% + \vskip -\parskip + \noindent\hspace{-\leftmarginii}% + \bgroup\begin{tabular}{|>{\columncolor{tabcolor}}l|}\hline\\[-6pt] + \ignorespaces}% + {\\[3pt]\hline\end{tabular}\egroup\par% + \vspace{1.5ex}\ignorespacesafterend\noindent}}{} +\RequirePackage{shortvrb} +\MakeShortVerb{\|} +\fi %---------- end of \if@code option ---------- +% +%-------------- Button macros ------------- +% +\@ifundefined{@PDFbox}{\newbox\@PDFbox}{} +\@ifundefined{@tempdimc}{\newdimen\@tempdimc}{} +\newdimen\shadowsize +\shadowsize 1pt +\def\shadowbox{\PDFBox\@shadowbox} +\def\@shadowbox#1{% + \setbox\@PDFbox\hbox{\fbox{#1}}% + \leavevmode\vbox{% + \offinterlineskip + \dimen@=\shadowsize + \advance\dimen@ .5\fboxrule + \hbox{\copy\@PDFbox\kern-.5\fboxrule\lower\shadowsize\hbox{% + \vrule \@height\ht\@PDFbox \@depth\dp\@PDFbox \@width\dimen@}}% + \vskip-\dimen@ + \moveright\shadowsize\vbox{% + \hrule \@width\wd\@PDFbox \@height\dimen@}}} +\newtoks\do@PDFBox +\def\PDFBox#1{% + \do@PDFBox{#1}% + \afterassignment\begin@PDFBox + \setbox\@PDFbox=\hbox} +\def\begin@PDFBox{\aftergroup\end@PDFBox} +\def\end@PDFBox{\the\do@PDFBox{\box\@PDFbox}}% +% + \definecolor{buttondisable}{gray}{.7} + \definecolor{Gray}{rgb}{.895,.93,.916} + \def\FBlack{\ifnum\thepage=1\color{buttondisable}\else\Black\fi} + \def\LBlack{\ifnum\thepage=\number\ScreenLastPage\color{buttondisable}% + \else\Black\fi} + \def\ContPage{2} + \def\DBlack{\ifnum\thepage=\number\ContPage\color{buttondisable}% + \else\Black\fi} + \def\Black{\color{black}} + \def\contentsname{\protect\hypertarget{contents}{\@Panelcontentsname} + \immediate\write\@auxout{\string\gdef\string\ContPage{\thepage}}} + \def\abstractname{\protect\hypertarget{abstract}{\@Panelabstractname}} + \def\emailid#1{\def\@emailid{mailto:#1}} + \def\urlid#1{\def\@urlid{http://#1}} + \def\markboth#1#2{\gdef\lmark{#1}\gdef\rmark{#2}} + \def\emblema#1{\def\@emblema{#1}} + \def\@grerr{\phantom{XXXXXXXX}} + \def\affname#1{\def\@affname{#1}} + \def\@afferr{Name of Organization} + \def\@diverr{Name of Division} + \def\divname#1{\def\@divname{#1}} + \newlength\panelwidth + \ifnum\thepanel>0% + \setlength\panelwidth{.15\paperwidth}%%.25 + \ifdim\panelwidth<1in\setlength\panelwidth{1in}\fi\else + \setlength\panelwidth{0pt} + \fi + \fboxsep0pt\fboxrule.2pt + \RequirePackage{amssymb,amsbsy} + \def\btl{\ensuremath{\blacktriangleleft}} + \def\rtl{\ensuremath{\blacktriangleright}} +\def\panelfont{\fontsize{7pt}{7pt}\itshape\selectfont} +\def\st{\hbox{\vrule height10pt depth5pt width\z@}\panelfont} +\def\addButton#1#2{\begingroup\normalsfcodes\fboxsep0pt\fboxrule.4pt\shadowsize.4pt% + \sffamily\color{white}\shadowbox{\colorbox{buttonbackground}% + {\hbox to #1{\hfil\Black\st#2\hfil}}\color{buttonshadow}}\endgroup} +% +%------------ Panel macros ---------------- +% +\def\paneloverlay#1{\gdef\@paneloverlay{#1}} +\def\paneloverlayempty{\let\@paneloverlay\@empty} +\let\@paneloverlay\@empty +\def\@panel{% + \begingroup\normalsfcodes\ifx\@paneloverlay\@empty% + \colorbox{panelbackground}{\panel}% + \else% + \vbox to\z@{\hbox to\z@{\includegraphics[width=\panelwidth,%% + height=\panelheight]{\@paneloverlay}% + \hspace{-\panelwidth}\hfill}\vspace{-\panelheight}\vfill}% + \panel\fi% + \endgroup}% + + +\def\panel{% + \begin{minipage}[t][\panelheight][c]{\panelwidth}% +% \normalsfcodes% +% \centering% +% \if@paneltoc% +% \@panel@toc\par\vfill\else\relax\fi% + \NavigationPanel + \end{minipage}% +} +\def\vpaneloverlay#1{\gdef\@vpaneloverlay{#1}} +\def\vpaneloverlayempty{\let\@vpaneloverlay\@empty} +\let\@vpaneloverlay\@empty +\def\@vpanel{% + \begingroup\normalsfcodes\ifx\@vpaneloverlay\@empty% + \colorbox{panelbackground}{\vpanel}% + \else% + \vbox to\z@{\hbox to\z@{\includegraphics[width=\paperwidth,%% + height=\vpanelheight]{\@vpaneloverlay}% + \hspace{-\paperwidth}\hfill}\vspace{-\vpanelheight}\vfill}% + \vpanel\fi% + \endgroup}% + + +\def\vpanel{% + \begin{minipage}[t][\vpanelheight][c]{\paperwidth}% + \normalsfcodes% + \par\vfill + \null\vspace*{1pt} + \end{minipage}% +} +% + +% +\def\imageButton#1#2#3{\includegraphics[width=#1,height=#2]{#3}} +\newdimen\buttonwidth\newdimen\smallbuttonwidth +\setlength\buttonwidth{.7\panelwidth} +\setlength\smallbuttonwidth{.35\panelwidth} +\addtolength{\smallbuttonwidth}{-1.2pt} +\def\NavigationPanel{\normalsfcodes% + \href{\@urlid}{\addButton{\buttonwidth}{\@Panelhomepagename}}\\ \pfill + \Acrobatmenu{FirstPage}{\addButton{\buttonwidth}{\FBlack\@Paneltitlepagename}}\\\pfill + \if@paneltoc\relax\else% + \hyperlink{contents}{\addButton{\buttonwidth}{\DBlack\@Panelcontentsname}}\\\pfill\fi + \Acrobatmenu{FirstPage}{\addButton{\smallbuttonwidth}{\FBlack\scalebox{.8}[1.4]{\btl\btl}}}\hspace*{-2pt} + \Acrobatmenu{LastPage}{\addButton{\smallbuttonwidth}{\LBlack\scalebox{.8}[1.4]{\rtl\rtl}}}\\\pfill + \Acrobatmenu{PrevPage}{\addButton{\smallbuttonwidth}{\FBlack\scalebox{.8}[1.4]{\btl}}}\hspace*{-2pt} + \Acrobatmenu{NextPage}{\addButton{\smallbuttonwidth}{\LBlack\scalebox{.8}[1.4]{\rtl}}}\\\pfill + \Acrobatmenu{GoToPage}{\addButton{\buttonwidth}{\@Panelpagename\space + \textcolor{red}{\thepage}\space\@Panelofname\space + \textcolor{red}{\ScreenLastPage}}}\\\pfill + \Acrobatmenu{GoBack}{\addButton{\buttonwidth}{\@Panelgobackname}}\\\pfill + \Acrobatmenu{FullScreen}{\addButton{\buttonwidth}{\@Panelfullscreenname}}\\\pfill + \Acrobatmenu{Close}{\addButton{\buttonwidth}{\@Panelclosename}}\\\pfill + \Acrobatmenu{Quit}{\addButton{\buttonwidth}{\@Panelquitname}}\\ +} +\def\pfill{\vfill} +% +%-------------- Verbatim fix ------------- +% +% This code is provided by DP Story +\newdimen\@PDFspaceleft +\def\@PDFpagespace{% + \ifdim\pagetotal=0pt + \@PDFspaceleft=\vsize + \else + \@PDFspaceleft=\pagegoal + \advance\@PDFspaceleft by-\pagetotal + \fi} +\let\@PDFverbatim\verbatim +\let\@PDFendverbatim\endverbatim +\AtBeginDocument{% + \def\verbatim{\begingroup\setbox0=\vbox\bgroup + \hsize=\linewidth% + \@PDFverbatim\verbatim@font} + \def\endverbatim{\@PDFendverbatim\egroup + \@PDFpagespace\ifdim\@PDFspaceleft>\ht0 + \else + \setbox1=\vsplit0 to\@PDFspaceleft + \verbatim@font\unvbox1 \penalty\@M + \fi + \ifvoid0\relax\else\verbatim@font\unvbox0\fi + \endgroup} + \def\@verb{\@vobeyspaces \frenchspacing\@sverb} +} + +% end of DPS' code +% +%-------------- end of Verbatim fix ------------- +% +%-------------- Layout macros ------------------- +% + \newdimen\@Leftmargin \@Leftmargin=0cm + \newdimen\@Rightmargin \@Rightmargin=0cm + \newdimen\@Topmargin \@Topmargin=0in + \newdimen\@Bottommargin \@Bottommargin=0in + % +\setlength\headheight{0pt} +\setlength\headsep {0pt} +\setlength\footskip {0pt} +\hoffset=0pt +\voffset=0pt +\pagestyle{empty} +% + \def\InitLayout{ + \setlength{\textwidth}{\paperwidth} + \addtolength{\textwidth}{-\@Leftmargin} + \addtolength{\textwidth}{-\@Rightmargin} + \setlength{\textheight}{\paperheight} + \addtolength{\textheight}{-\@Topmargin} + \addtolength{\textheight}{-\@Bottommargin} + \addtolength{\textheight}{-\headheight} + \addtolength{\textheight}{-\headsep} + \addtolength{\textheight}{-\footskip} + \setlength{\oddsidemargin}{\@Leftmargin} + \addtolength{\oddsidemargin}{-1in} + \setlength{\evensidemargin}{\@Leftmargin}%{\@Rightmargin} + \addtolength{\evensidemargin}{-1in} + \setlength{\topmargin}{\@Topmargin} + \addtolength{\topmargin}{-1in} + } + \def\marginsize#1#2#3#4{ + \@Leftmargin=#1 + \@Rightmargin=#2 + \@Topmargin=#3 + \@Bottommargin=#4 + \InitLayout + } +\newdimen\Textmarginright +\newdimen\Textmarginleft +\newdimen\Textmargintop +\newdimen\Textmarginbottom +\newdimen\marginright +\newdimen\marginleft +\newdimen\margintop +\newdimen\marginbottom +\newdimen\panelheight +\newdimen\vpanelheight +\newdimen\LLX +\newdimen\LLY +\newdimen\URX +\newdimen\URY +\newdimen\calfactor +\setlength\calfactor{0pt} +\def\margins#1#2#3#4{% + \marginleft=#1 + \marginright=#2 + \margintop=#3 + \marginbottom=#4 +} +\def\screensize#1#2{\paperheight=#1% + \paperwidth=#2 + \InitLayout +\ifcase\thepanel + \setlength\Textmarginright{\marginright} + \setlength\Textmarginleft{\marginleft} + \setlength\Textmargintop{\margintop} + \setlength\Textmarginbottom{\marginbottom} + \setlength\LLX{\calfactor} + \setlength\LLY{\calfactor} + \setlength\overlaywidth{\paperwidth} + \setlength\URX{\overlaywidth-2\calfactor} + \setlength\URY{\paperheight-2\calfactor} + \DOCSCR@Info{no panel options loaded} +\or%ifnum\thepanel=1 + \setlength\Textmarginright{\marginright} + \setlength\Textmarginleft{\panelwidth} + \addtolength\Textmarginleft{\marginleft} + \setlength\Textmargintop{\margintop} + \setlength\Textmarginbottom{\marginbottom} + \setlength\LLX{\panelwidth+\calfactor} + \setlength\LLY{\calfactor} + \setlength\overlaywidth{\paperwidth} + \addtolength\overlaywidth{-\panelwidth} + \setlength\URX{\overlaywidth-2\calfactor} + \setlength\URY{\paperheight-2\calfactor} + \DOCSCR@Info{left panel options loaded} +\or%ifnum\thepanel=2 + \setlength\Textmarginleft{\marginleft} + \setlength\Textmarginright{\panelwidth} + \addtolength\Textmarginright{\marginright} + \setlength\Textmargintop{\margintop} + \setlength\Textmarginbottom{\marginbottom} + \setlength\LLX{\calfactor} + \setlength\LLY{\calfactor} + \setlength\overlaywidth{\paperwidth} + \addtolength\overlaywidth{-\panelwidth} + \setlength\URX{\overlaywidth-2\calfactor} + \setlength\URY{\paperheight-2\calfactor} + \DOCSCR@Info{right panel options loaded} +\or%\thepanel=3 + \setlength\Textmarginleft{\marginleft} + \setlength\Textmarginright{\panelwidth} + \addtolength\Textmarginright{\marginright} + \setlength\Textmargintop{\margintop} + \addtolength\Textmargintop{\vpanelheight} + \setlength\Textmarginbottom{\marginbottom} + \setlength\LLX{\calfactor} + \setlength\LLY{\calfactor} + \setlength\overlaywidth{\paperwidth} + \addtolength\overlaywidth{-\panelwidth} + \setlength\overlayheight{\paperheight} + \setlength\panelheight{\paperheight} + \addtolength\panelheight{-\vpanelheight} + \addtolength\overlayheight{-\vpanelheight} + \setlength\URX{\overlaywidth-2\calfactor} + \setlength\URY{\paperheight-2\calfactor} + \DOCSCR@Info{right panel options loaded} +\or\DOCSCR@Warning{Panel specification is undefined} +\fi +\marginsize{\Textmarginleft}{\Textmarginright} + {\Textmargintop}{\Textmarginbottom} +\InitLayout +\DOCSCR@Info{LLX=\the\LLX \MessageBreak + LLY=\the\LLY \MessageBreak + URX=\the\URX \MessageBreak + URY=\the\URY \MessageBreak + panelwidth=\the\panelwidth \MessageBreak + overlaywidth=\the\overlaywidth \MessageBreak + textwidth=\the\textwidth \MessageBreak + textheight=\the\textheight \MessageBreak + paperwidth=\the\paperwidth \MessageBreak + paperheight=\the\paperheight \MessageBreak + calfactor=\the\calfactor \MessageBreak + Panel=\thepanel} +} +% +% ------------------ overlaying of images or colors -------- +% +\let\@PDFSout@Hook\@empty +\newcommand{\PDFSout}{\g@addto@macro\@PDFSout@Hook} +\newcommand{\@PDFSout@Out}{% + \afterassignment\@PDFSout@Test + \global\setbox\@cclv= % + } +\newcommand{\@PDFSout@Test}{% + \ifvoid\@cclv\relax + \aftergroup\@PDFSout@Output + \else + \@PDFSout@Output + \fi% + } +\newcommand{\@PDFSout@Output}{% + \@PDFSout@Hook% + \@PDFSout@Org@Out\box\@cclv% + } +\newcommand{\@PDFSout@Org@Out}{} +\newcommand*{\@PDFSout@Init}{% + \let\@PDFSout@Org@Out\shipout + \let\shipout\@PDFSout@Out + } +\AtBeginDocument{\@PDFSout@Init} +\newcommand{\@Overlay@Hook}{} +\newcommand{\AddToOverlay}{\g@addto@macro\@Overlay@Hook} +\newcommand{\ClearOverlay}{\let\@Overlay@Hook\@empty} +\newcommand{\@Overlay}{% + \ifx\@Overlay@Hook\@empty + \else + \bgroup + \@tempdima=1in + \@tempcnta=\@tempdima + \@tempcntb=-\@tempdima + \advance\@tempcntb\paperheight + \global\setbox\@cclv\vbox{% + \vbox{\let\protect\relax% + \unitlength=1sp% + \pictur@(0,0)(\@tempcnta,\@tempcntb)% + \@Overlay@Hook% + \endpicture}% + \box\@cclv% + }% + \egroup + \fi +} +\PDFSout{\@Overlay} +%------------------- end of overlaying macros -------------- +% +%------------------- Panel TOC macros ---------------------- +% +\if@paneltoc +\DOCSCR@Info{Panel TOC options loaded} +\RequirePackage{truncate} +\newcounter{NUM}[page] +\def\numberline#1{} +\def\ST{\hbox{\vrule height8pt depth3pt width\z@}\scriptsize\itshape} +\def\scrShadowButton#1#2{\begingroup\fboxsep0pt\fboxrule.6pt\shadowsize.1pt% + \sffamily\color{white}\shadowbox{\colorbox{buttonbackground}% + {\hbox to #1{\color{fgcolor}\ST#2\hfill}}\color{buttonshadow}}\endgroup} +\def\scrNormalButton#1#2{\begingroup\sffamily\color{white}% + \noindent{\colorbox{panelbackground}% + {\hbox to #1{\color{fgcolor}\ST\hfill#2\hfill}}}\endgroup} +\def\@@secHead{section} +\long\def\contentsline#1#2#3#4{\def\@@cHead{#1}% + \ifx\@@cHead\@@secHead\stepcounter{NUM}% + \ifnum\thepanel@section=\theNUM% + {\definecolor{panelbackground}{gray}{.3}% + \definecolor{fgcolor}{gray}{1}% + \hyperlink{#4}{\,\scrNormalButton{.965\panelwidth}{\truncate{.9\panelwidth}{#2}}}% + }\par\vskip1truept% + \else + {\definecolor{panelbackground}{rgb}{.741, .718, .42}%% + \definecolor{fgcolor}{gray}{0}% + \hyperlink{#4}{\,\scrNormalButton{.965\panelwidth}{\truncate{.9\panelwidth}{#2}}}% + }\par\vskip1truept% + \fi\fi} + \newcounter{@TOC} + \def\PDF@@TOC{\stepcounter{@TOC}\ifnum\the@TOC>1\relax% + \else\tableofcontents\fi} +\def\@panel@toc{\vbox\bgroup\rightskip0pt plus 1fill + \hbadness 10000 + \InputIfFileExists{\jobname.toc}% + {\DOCSCR@Info{TOC file read}}% + {\DOCSCR@Warning{TOC file not available}% + \AtEndDocument{\PDF@@TOC}}% + \egroup} +\fi% --- end of paneltoc option --- + +\def\overlay#1{\gdef\@overlay{#1}} +\def\overlayempty{\let\@overlay\@empty} +\let\@overlay\@empty +\def\backgroundcolor#1{\gdef\@backgroundcolor{#1}} +\backgroundcolor{lightcyan} +\definecolor{lightcyan}{rgb}{.895,.93,.916} +\newdimen\overlayheight +\newdimen\overlaywidth +\AddToOverlay{% + \setlength{\@tempdima}{0pt} + \setlength{\@tempdimb}{\paperwidth-2\@tempdima} + \setlength{\@tempdimc}{\paperheight-2\@tempdima} + \setlength{\unitlength}{1pt}\thinlines% + \ifx\@overlay\@empty% + \DOCSCR@Warning{No overlay specified\MessageBreak + output will have only background color} + \put(\strip@pt\LLX,\strip@pt\LLY){% + \colorbox{\@backgroundcolor}{% + \color{white}\makebox(\strip@pt\URX,\strip@pt\URY)% + {}}} + \else + \put(\strip@pt\@tempdima,\strip@pt\@tempdima){% + \makebox(\strip@pt\@tempdimb,\strip@pt\@tempdimc)[bl]% + {\includegraphics[width=\overlaywidth,height=\panelheight]{\@overlay}}}% + \fi% + }% +\AddToOverlay{% + \setlength{\@tempdima}{0mm}% + \setlength{\@tempdimb}{\paperwidth-2\@tempdima}% + \setlength{\@tempdimc}{\paperheight-2\@tempdima}% + \setlength{\unitlength}{1pt}\thinlines% + \put(\strip@pt\@tempdima,\strip@pt\@tempdima){% + \makebox(\strip@pt\@tempdimb,\strip@pt\@tempdimc)[br]% + {\relax\@@@PANEL\relax}}% +} +\AddToOverlay{% + \setlength{\@tempdima}{0mm}% + \setlength{\@tempdimb}{\paperwidth-2\@tempdima}% + \setlength{\@tempdimc}{\paperheight-2\@tempdima}% + \setlength{\unitlength}{1pt}\thinlines% + \put(\strip@pt\@tempdima,\strip@pt\@tempdima){% + \makebox(\strip@pt\@tempdimb,\strip@pt\@tempdimc)[tl]% + {\relax\@vpanel\relax}}% +} + + +% +\def\@@@PANEL{\ifnum\thepanel=1\@panel\hfill\else% + \ifnum\thepanel=2\hfill\@panel\else% + \ifnum\thepanel=3\hfill\@panel\else + \ifnum\thepanel=0\relax% + \fi\fi\fi\fi}% +% +\def\@logo#1{% + \global\setbox0=\hbox{\includegraphics{#1}}% + \ifdim\ht0>\wd0% + \includegraphics[height=.75in]{#1}% + \else% + \ifdim\wd0>\ht0% + \includegraphics[width=.75in]{#1}% + \else% + \ifdim\wd0=\ht0%% + \includegraphics[width=.75in]{#1}% + \fi\fi\fi +} +\let\@@logo\@logo +\def\ps@plain{} +\def\ps@empty{} +\def\ps@firstpage{} +\def\ps@headings{} +\def\ps@myheadings{} +\def\ps@title{} + +\AtEndDocument{% + \clearpage \addtocounter{page}{-1}% + \immediate\write\@auxout{\string\gdef\string\ScreenLastPage{\arabic{page}}}% + \addtocounter{page}{1}} + +%------------------- Section counter coloring ---------------------- + +\let\old@secnumber\@secnumber + \def\@secnumber{\protect\textcolor{section\thesection@level}{\old@secnumber}}% + \def\@seccntformat#1{\protect\textcolor{section\thesection@level}% + {\expandafter\upshape\csname the#1\endcsname.}\quad}% + \def\@secnumfont{\protect\textcolor{section\thesection@level}}%\mdseries} + \def\abstractname{\protect\textcolor{blue}{\@Panelabstractname}} + \let\o@title\@title + \def\@title{\protect\color{orange}\o@title} + + \def\Sectionformat#1#2{% + \ifcase#2% + {\protect\textcolor{section0}{#1}}%level 0 chapter { } + \or {\protect\textcolor{section1}{#1}}%level 1 section { } + \or {\protect\textcolor{section2}{#1}}%level 2 subsection { } + \or {\protect\textcolor{section3}{#1}}%level 3 subsubsection { } + \or {\protect\textcolor{section4}{#1}}%level 4 paragraph { } + \or {\protect\textcolor{section5}{#1}}%level 5 subparagraph { } + \fi + } + + \let\scr@section\section + \newcounter{panel@section} + \def\section{\if@sectionbreak\clearpage\fi% + \stepcounter{panel@section}\scr@section} + \def\@linkcolor{red} + \def\@anchorcolor{section0} + \def\@citecolor{orange} + \def\@filecolor{cyan} + \def\@urlcolor{magenta} + \def\@menucolor{section2} + \def\@pagecolor{red} + \setcounter{tocdepth}{4} + \setcounter{secnumdepth}{4} +\ifnum\thedriver=0 + \def\pagedissolve#1{% + \edef\@@processme{% + \pdfpageattr{% + /Trans << /S /#1\space >>% + }}% + \@@processme + }% +\else + \def\pagedissolve#1{} +\fi +\if@nocfg\relax\else\IfFileExists{docscreen.cfg}{\input docscreen.cfg}{}\fi +\let\notesname\@gobble +% +\long\def\buttonbox#1{% + \leavevmode + \setbox\@tempboxa\hbox{% + \color@begingroup + \kern\fboxsep{#1}\kern\fboxsep + \color@endgroup}% + \@buttonframeb@x\relax} +% +\def\@buttonframeb@x#1{\begingroup% + \@tempdima\fboxrule + \advance\@tempdima\fboxsep + \advance\@tempdima\dp\@tempboxa + \hbox{% + \lower\@tempdima\hbox{% + \vbox{% + \color{white}\hrule\@height\fboxrule\relax + \hbox{% + \color{white}\vrule\@width\fboxrule\relax + #1% + \vbox{% + \vskip\fboxsep + \box\@tempboxa + \vskip\fboxsep}% + #1% + \color{black}\vrule\@width\fboxrule\relax}% + \color{black}\hrule\@height\fboxrule\relax}% + }% + }% +\endgroup} +% +\def\@pdfcreator{LaTeX with hyperref and docscreen} +\def\shorttitle#1{\gdef\@shorttitle{#1}} +\let\@shorttitle\@empty +\def\@battrib{\color{white}$\bullet$\sffamily\footnotesize\itshape} +\def\@vattrib{\color{section1}\sffamily\footnotesize\itshape} +\newif\if@@bb \@@bbfalse +\newif\if@@tb \@@tbfalse +\def\topbuttons{\@@tbtrue% + \AddToOverlay{\def\@@tbuttons{\@@buttons}% + \setlength{\unitlength}{1pt}\thinlines% + \put(0,0){\makebox(\strip@pt\paperwidth,\strip@pt\paperheight)[ct]% + {\@@tbuttons}% + } + } +} +\def\bottombuttons{\@@bbtrue% + \AddToOverlay{\def\@@bbuttons{\@@buttons}% + \setlength{\unitlength}{1pt}\thinlines% + \put(0,0){\makebox(\strip@pt\paperwidth,24)[cb]% + {\@@bbuttons}% + } + } +} +\def\@@buttons{\ifx\@shorttitle\@empty\relax\else% + \quad{\@vattrib\@shorttitle}\fi\hfill% + \Acrobatmenu{FirstPage} {\@battrib First } + \Acrobatmenu{PrevPage} {\@battrib Prev } + \Acrobatmenu{NextPage} {\@battrib Next } + \Acrobatmenu{LastPage} {\@battrib Last } + \Acrobatmenu{GoBack} {\@battrib Go Back } + \Acrobatmenu{FullScreen}{\@battrib Full Screen } + \Acrobatmenu{Close} {\@battrib Close } + \Acrobatmenu{Quit} {\@battrib Quit } +\quad{}\vspace*{1.5pt}} +\def\nobottombuttons{\let\@@bbuttons\relax} +\def\notopbuttons{\let\@@tbuttons\relax} +% +\newcounter{overlay} +\def\changeoverlay{\def\section{\if@sectionbreak\clearpage\fi% + \stepcounter{panel@section}% + \change\scr@section}}% + \def\change{\stepcounter{overlay}% + \ifnum\c@overlay>10\setcounter{overlay}{1}\fi + \overlay{overlay\theoverlay} +} +% +\fi%--This \fi corresponds to \if@screen +%-------- Screen options end here ------------------ +% +% +%-------- Print options start here ----------------- +% +\if@print +\RequirePackage{amssymb} +\RequirePackage[pdftex,bookmarksopen,colorlinks]{hyperref} +\def\pagedissolve#1{} +\let\overlay\@gobble +\let\paneloverlay\@gobble +\let\emblema\@gobble +\let\emblemb\@gobble +\let\urlid\@gobble +\let\emailid\@gobble +\def\screensize#1#2{} +\includecomment{print} +\excludecomment{screen} + \def\@linkcolor{black} + \def\@anchorcolor{black} + \def\@citecolor{black} + \def\@filecolor{black} + \def\@urlcolor{black} + \def\@menucolor{black} + \def\@pagecolor{black} + \definecolor{section0}{gray}{0} + \definecolor{section1}{gray}{0} + \definecolor{section2}{gray}{0} + \definecolor{section3}{gray}{0} + \definecolor{section4}{gray}{0} + \definecolor{section5}{gray}{0} + \definecolor{orange}{gray}{0} + \definecolor{panelbackground}{gray}{1} + \definecolor{buttondisable}{gray}{.8} + \def\margins#1#2#3#4{} + \RequirePackage{fancybox} +\newdimen\@PDFmpht +\let\@Notesname\@empty +\def\notesname#1{\gdef\@Notesname{#1}} +\let\@overlay\@empty +\newcounter{slide} +\newcounter{slideoverlay} +\newenvironment{slide}{\stepcounter{slide}% + \stepcounter{slideoverlay}% + \ifnum\theslideoverlay=11\setcounter{slideoverlay}{1} + \ifx\@overlay\@empty\else + \DOCSCR@Warning{Overly counter reset to zero}\fi\fi + \ifx\@overlay\@empty\else + \DOCSCR@Warning{Overly file is Not available in print}\fi + \par\addvspace{12pt}\noindent% + \hspace*{-.1\paperwidth}\begin{minipage}{.9\paperwidth} + \global\setbox0=\hbox\bgroup\begin{minipage}[b]{.5\linewidth}}% + {\end{minipage}\egroup\setlength\@PDFmpht{\the\ht0}% + \typeout{****** height=\the\@PDFmpht*******} + \setbox1=\hbox{\begin{minipage}[b][1.05\@PDFmpht][t]{.3\paperwidth} + \typeout{****** height=\the\@PDFmpht*******} + \centering \@Notesname\par\vfill\end{minipage}} + \noindent\parbox{\linewidth}{%\shadowsize=2pt\fboxsep=6pt% + \shadowbox{\box0}\quad\fbox{\box1}} + \end{minipage}\hspace*{-1.5in}} + + \let\overlayempty\relax + \let\paneloverlayempty\relax + \let\topbuttons\relax + \let\notopbuttons\relax + \let\bottombuttons\relax + \let\nobottombuttons\relax + \let\changeoverlay\relax +%------------------------ Macros for code listing -------------- +\if@code +\def\verbatim@font{% + \normalfont \ttfamily\small + \catcode`\<=\active + \catcode`\>=\active +} +\begingroup + \catcode`\<=\active + \catcode`\>=\active + \gdef<{\@ifnextchar<\@lt\@meta} + \gdef>{\@ifnextchar>\@gt\@gtr@err} + \gdef\@meta#1>{\@PDFm{#1}} + \gdef\@lt<{\char`\<} + \gdef\@gt>{\char`\>} +\endgroup +\def\@gtr@err{% + \DOCSCR@Warning{% + Isolated \protect>\MessageBreak% + In this document class, \protect<...\protect>\MessageBreak + is used to indicate a parameter.\MessageBreak + I've just found a \protect> on its own.\MessageBreak + Perhaps you meant to type \protect>\protect>? + }% +} +\def\verbatim@nolig@list{\do\`\do\,\do\'\do\-} +\def\@PDFm#1{\mbox{$\langle$\it#1\/$\rangle$}} +\def\arg#1{{{\tt\string{}\@PDFm{#1}{\tt\string}}}} +\def\@PDFM#1{\mbox{\it#1\/}} +\def\Arg#1{{{\tt\string{}\@PDFM{#1}{\tt\string}}}} +\def\oarg#1{{\tt[}\@PDFm{#1}{\tt]}} +\def\Oarg#1{{\tt[}\@PDFM{#1}{\tt]}} +\@ifundefined{decl}{% +\newenvironment{decl}[1][]% + {\par\small\addvspace{1.5ex plus .5ex minus .5ex}% + \vskip -\parskip + \noindent\hspace{-\leftmarginii}% + \bgroup\begin{tabular}{|l|}\hline\\[-6pt] + \ignorespaces}% + {\\[3pt]\hline\end{tabular}\egroup\par% + \vspace{1.5ex}\ignorespacesafterend\noindent}}{} +\RequirePackage{shortvrb} +\MakeShortVerb{\|} +\fi +%-------------- end of \if@code option ---------- +% +\def\panelfont{\fontsize{7pt}{7pt}\itshape\selectfont} +\def\st{\hbox{\vrule height10pt depth5pt width\z@}\panelfont} +\def\addButton#1#2{\begingroup\normalsfcodes\fboxsep2pt\fboxrule.1pt% + \sffamily\fbox{\hbox to #1{\hfil\st#2\hfil}}\endgroup} +\def\imageButton#1#2#3{\includegraphics[width=#1,height=#2]{#3}} +\setcounter{tocdepth}{4} +\setcounter{secnumdepth}{4} +\fi +%% + +\def\includesrc#1{\begingroup\pdfcompresslevel=0 + \immediate\pdfobj + stream attr {/Type /SourceFile /SourceName (#1)} + file{#1} + \pdfcatalog{/SourceObject \the\pdflastobj\space 0 R} + \endgroup + \pdfcompresslevel=9} + +\endinput +%% +%% End of file docscreen.sty +%% diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/els-1p.pdf b/Master/texmf-dist/source/latex/elsarticle/contrib/els-1p.pdf new file mode 100644 index 00000000000..90d5e5c4eca Binary files /dev/null and b/Master/texmf-dist/source/latex/elsarticle/contrib/els-1p.pdf differ diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/els-3pd.pdf b/Master/texmf-dist/source/latex/elsarticle/contrib/els-3pd.pdf new file mode 100644 index 00000000000..ede49829b22 Binary files /dev/null and b/Master/texmf-dist/source/latex/elsarticle/contrib/els-3pd.pdf differ diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/els-logo.pdf b/Master/texmf-dist/source/latex/elsarticle/contrib/els-logo.pdf new file mode 100644 index 00000000000..b7ec27ff0f8 Binary files /dev/null and b/Master/texmf-dist/source/latex/elsarticle/contrib/els-logo.pdf differ diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/els1.pdf b/Master/texmf-dist/source/latex/elsarticle/contrib/els1.pdf new file mode 100644 index 00000000000..6f4f86a573d Binary files /dev/null and b/Master/texmf-dist/source/latex/elsarticle/contrib/els1.pdf differ diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/els2.pdf b/Master/texmf-dist/source/latex/elsarticle/contrib/els2.pdf new file mode 100644 index 00000000000..7d2f3dae0f4 Binary files /dev/null and b/Master/texmf-dist/source/latex/elsarticle/contrib/els2.pdf differ diff --git a/Master/texmf-dist/source/latex/elsarticle/contrib/elsdoc.tex b/Master/texmf-dist/source/latex/elsarticle/contrib/elsdoc.tex new file mode 100644 index 00000000000..7be99f0b0fb --- /dev/null +++ b/Master/texmf-dist/source/latex/elsarticle/contrib/elsdoc.tex @@ -0,0 +1,837 @@ +%% +%% This is file `elsdoc.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% elsarticle.dtx (with options: `mydoc') +%% +%% Copyright 2007, 2008 Elsevier Ltd. +%% +%% This file is part of the 'Elsarticle Bundle'. +%% ------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The list of all files belonging to the 'Elsarticle Bundle' is +%% given in the file `manifest.txt'. +%% +\documentclass[a4paper,12pt]{article} +\usepackage{amsfonts} +\usepackage[pdftex,screen,vpanel]{docscreen} + +\panelwidth=5in +\vpanelheight=1.25in +\margins{1.5cm}{1cm}{1.25cm}{1.25cm} +\screensize{210mm}{297mm} +\vpaneloverlay{bg_body1.jpg} + +\usepackage{pxfonts} +\usepackage{charter} +\usepackage[scaled=.9]{lfr} +\usepackage[scaled=.8]{prima} +\usepackage{xspace} +\usepackage{pdfwidgets} +\makeatletter +\def\bs{\expandafter\@gobble\string\\} +\def\lb{\expandafter\@gobble\string\{} +\def\rb{\expandafter\@gobble\string\}} +\def\@pdfauthor{C.V.Radhakrishnan} +\def\@pdftitle{elsarticle.cls -- A documentation} +\def\@pdfsubject{Document formatting with elsarticle.cls} +\def\@pdfkeywords{LaTeX, Elsevier Ltd., document class} +\def\file#1{\textsf{#1}\xspace} +\def\Hlink#1#2{\hyperlink{#1}{{\sffamily\color{brown}#2}}} + +\def\LastPage{19} + +\DeclareRobustCommand{\LaTeX}{L\kern-.26em% + {\sbox\z@ T% + \vbox to\ht\z@{\hbox{\check@mathfonts + \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + A\,}% + \vss}% + }% + \kern-.15em% + \TeX} +\makeatother + +\usepackage{doc-tooltips} + +\begin{document} + +\newbox\contbox +\global\setbox\contbox=\vbox{\hsize=108mm + \color{orange} + \begin{enumerate}[$\square$] + \item \Hlink{introduction}{Introduction} + \item \Hlink{majordifferences}{Major Differences} + \item \Hlink{installation}{Installation} + \item \Hlink{usage}{Usage} + \item \Hlink{preamble}{Preamble} + \item \Hlink{floats}{Floats} + \item \Hlink{theorems}{Theorems} + \item \Hlink{lists}{Lists} + \item \Hlink{crossreferences}{Cross-references} + \item \Hlink{math}{Mathematical Symbols and Formulae} + \item \Hlink{bibliography}{Bibliography} + \item \Hlink{final}{Final Print} +\end{enumerate}\par\vspace{45mm} +\footnotesize\parindent=0pt +\color{Olive}% +\copyright 2008, Elsevier Ltd. Bugs, feature requests, +suggestions and comments shall be mailed to +\href{mailto:elsarticle@river-valley.com} +{\texttt{}}. +\file{elsarticle.\allowbreak [dtx,ins]}, related documentation +and supporting packages are released under \LaTeX{} Project +Public Licence, either version 1.2 or any later version. This +work has the LPPL maintenance status +`author-maintained'.\par\vskip6pt +\noindent +} + +\def\testa{This is a specimen document. } +\def\testc{\testa\testa\testa\testa} +\def\testb{\testc\testc\testc\testc\testc} +\long\def\test{\testb\par\testb\par\testb\par} + +\pinclude{\copy\contbox\printSq{\LastPage}} + +\normalcolor + +\section{Introduction} +\hypertarget{introduction}{} + +\file{elsarticle.cls} is a thoroughly re-written document class +for formatting \LaTeX{} submissions to Elsevier journals. +The class uses the environments and commands defined in \LaTeX{} kernel +without change to the signature so that clashes with other +contributed \LaTeX{} packages like \file{hyperref.sty}, +\file{preview-latex.sty}, etc., will be minimal. +\file{elsarticle.cls} is primarily built upon the default +\file{article.cls}. The class depends on the following packages +for its proper functionality: + +\begin{enumerate}[1.] + +\item \file{pifont.sty} for openstar in the title footnotes. +\item \file{natbib.sty} for citation processing. +\item \file{geometry.sty} for margin settings. +\item \file{fleqn.clo} for left aligned equations. +\item \file{graphicx.sty} for graphics inclusion. +\item \file{txfonts.sty} optional font package, if document is to + be formatted with Times and compatible math fonts. +\item \file{hyperref.sty} optional packages if hyper linking is + required in the document. + +\end{enumerate} + +All the above packages are part of any standard \LaTeX{} installation. +Therefore, the users need not be bothered about downloading any +extra packages. Further, users are free to make use of \textsc{ams} +math packages like, \file{amsmath.sty}, \file{amsthm.sty}, +\file{amssymb.sty}, \file{amsfonts.sty}, etc., if they want. All +these packages work in tandem with \file{elsarticle.cls} without +any problems. + +\section{Major Differences} +\hypertarget{majordifferences}{} + +Following are the major differences between \file{elsarticle.cls} +and its predecesor package, \file{elsart.cls}: + +\begin{enumerate}[\textbullet] + +\item \file{elsarticle.cls} is built upon \file{article.cls} +while \file{elsart.cls} is not. \file{elsart.cls} redefines +many of the commands in the \LaTeX{} classes/kernel, which can +possibly cause surprising clashes with other contributed +\LaTeX{} packages. + +\item Provides preprint document formatting by default, and +optionally formats the document as per the final +style of models $1+$, $3+$ and $5+$ of Elsevier journals. + +\item Some easier hooks for formatting \verb+list+ and +\verb+theorem+ environments are provided while people can still +use \file{amsthm.sty} package. + +\item \file{natbib.sty} is the main citation processing package + which can comprehensively handle all kinds of citations and +works perfectly with \file{hyperref.sty} in combination with +\file{hypernat.sty}. + +\item Long title pages are processed correctly in preprint and + final formats. + +\end{enumerate} + +\section{Installation} +\hypertarget{installation}{} + +The package is available at +\url{http://www.elsevier.com/locate/latex}. +It can also be found in any of the nodes of the Comprehensive +\TeX{} Archive Network (\textsc{ctan}), one of the primary nodes +being +\url{http://www.ctan.org/tex-archive/macros/latex/contrib/elsevier/}. +Please grab the \file{elsarticle.dtx} which is the composite +class with documentation and \file{elsarticle.ins} which is the +\LaTeX{} installer file. When we compile the +\file{elsarticle.ins} with \LaTeX{} it provides the class file, +\file{elsarticle.cls} by +stripping off all the documentation from the \verb+*.dtx+ file. +The class may be moved or copied to a place, usually, +\texttt{\$TEXMF/tex/latex/elsevier/}, or a folder which will be read +by \LaTeX{} during document compilation. The \TeX{} file +database needs updation after moving/copying class file. Usually, +we use commands like \verb+mktexlsr+ or \verb+texhash+ depending +upon the distribution and operating system. + + +\section{Usage}\label{sec:usage} +\hypertarget{usage}{} +The class should be loaded with the command: + +\begin{vquote} + \documentclass[]{elsarticle} +\end{vquote} + +where the \verb+options+ can be the following: + +\begin{enumerate}[(1)] + +\item \verb+preprint+ --- default options which formats the + document for submission to Elsevier journals. + +\item \verb+review+ --- similar to \verb+preprint+ option, but + increases the baselineskip to facilitate easier review process. + +\item \verb+1p+ --- formats to the look and feel of the final + format of model 1+ journals. This is always single column style. + +\item \verb+3p+ --- formats to the look and feel of the final + format of model 3+ journals. If the journal is a two column +model use \verb+twocolumn+ option in combination. + +\item \verb+5p+ --- formats for model 5+ journals. This is always + two column style. + +\item \verb+authoryear+ --- author-year citation style of + \file{natbib.sty}. If you want to add extra options of +\file{natbib.sty}, you may use the options as a comma delimited +strings as argument to \verb+\biboptions+ command. An example +would be: +\end{enumerate} +\begin{vquote} + \biboptions{longnamesfirst,angle,semicolon} +\end{vquote} + +\begin{enumerate}[(1)] \setcounter{enumi}{6} +\item \verb+number+ --- numbered citation style. Extra options + can be loaded with \verb+\biboptions+ command. + +\item \verb+longtitle+ --- if front matter is unusually long, use + this option to split the title page across pages with correct +placing of title and author footnotes in the first page. + +\item \verb+times+ --- loads \file{txfonts.sty} if available in + the system to use Times and compatible math fonts. + +\item All options of \file{article.cls} can be used with this + document class. + +\item The default options loaded are \verb+a4paper+, \verb+10pt+, + \verb+oneside+, \verb+onecolumn+ and \verb+preprint+. + +\end{enumerate} + +\section{Preamble} +\hypertarget{preamble}{} + +There are two types of preamble coding --- (1) each author is +connected to an affiliation with a footnote marker; hence all +authors are grouped together and affiliations follow; (2) authors +of same affiliations are grouped together and the relevant +affiliation follows this group. An example coding of the first +type is provided below: + +\begin{vquote} + \title{This is a specimen title\tnoteref{t1,t2}} + \tnotetext[t1]{This document is a collaborative effort.} + \tnotetext[t2]{The second title footnote which is a longer + longer than the first one and with an intention to fill + in up more than one line while formatting.} +\end{vquote} + +\begin{vquote} + \author[rvt]{C.V.~Radhakrishnan\corref{cor1}\fnref{fn1}} + \ead{cvr@river-valley.com} + + \author[rvt,focal]{K.~Bazargan\fnref{fn2}} + \ead{kaveh@river-valley.com} + + \author[els]{S.~Pepping\corref{cor2}\fnref{fn1,fn3}} + \ead[url]{http://www.elsevier.com} +\end{vquote} + +\begin{vquote} + \cortext[cor1]{Corresponding author} + \cortext[cor2]{Principal corresponding author} + \fntext[fn1]{This is the specimen author footnote.} + \fntext[fn2]{Another author footnote, but a little more longer.} + \fntext[fn3]{Yet another author footnote. Indeed, you can have + any number of author footnotes.} +\end{vquote} + +\begin{vquote} + + \address[rvt]{River Valley Technologies, SJP Building, + Cotton Hills, Trivandrum, Kerala, India 695014} + \address[focal]{River Valley Technologies, 9, Browns Court, + Kennford, Exeter, United Kingdom} + \address[els]{Central Application Management, + Elsevier, Radarweg 29, 1043 NX\\ + Amsterdam, Netherlands} + +\end{vquote} + +You can see the output in the panel to the right. +\mywidth=.7\panelwidth +\Sep=8pt +\def\rulewidth{.2pt} +\def\rulecolor{orange} +\npskip=8mm +\pinclude{\def\rulecolor{blue!80}% + \includeclip[width=3.25in]{1}{130 84 484 676}{els1.pdf}% + \def\rulecolor{orange}} + +Most of the commands like \verb+\title+, \verb+\author+, +\verb+\address+ are self explanatory. Various components are +linked each other by a label--reference mechanism, for +instance, title footnote is linked to the title with a footnote +mark generated by referring to the \verb+\label+ string of +the \verb=\tnotetext=. We have used similar commands +like \verb=\tnoteref= (to link title note to title); +\verb=\corref= (to link corresponding author text to +corresponding author); \verb=\fnref= (to link footnote text to +the relevant author names). \TeX{} needs two compilations to +resolve the footnote marks in the preamble part. Given below are +the syntax of various note marks and note texts. + +\begin{vquote} + \tnoteref{} + \corref{} + \fnref{} + \tnotetext[