diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/ifac |
Initial commit
Diffstat (limited to 'macros/latex209/contrib/ifac')
-rw-r--r-- | macros/latex209/contrib/ifac/IFAC.bst | 1294 | ||||
-rw-r--r-- | macros/latex209/contrib/ifac/IFACarticle.sty | 705 | ||||
-rw-r--r-- | macros/latex209/contrib/ifac/IFACdoc.tex | 260 | ||||
-rw-r--r-- | macros/latex209/contrib/ifac/IFACsample.bib | 96 | ||||
-rw-r--r-- | macros/latex209/contrib/ifac/IFACsample.tex | 249 | ||||
-rw-r--r-- | macros/latex209/contrib/ifac/README | 10 | ||||
-rw-r--r-- | macros/latex209/contrib/ifac/automatica.sty | 662 | ||||
-rw-r--r-- | macros/latex209/contrib/ifac/automatica.tex | 208 |
8 files changed, 3484 insertions, 0 deletions
diff --git a/macros/latex209/contrib/ifac/IFAC.bst b/macros/latex209/contrib/ifac/IFAC.bst new file mode 100644 index 0000000000..861adda749 --- /dev/null +++ b/macros/latex209/contrib/ifac/IFAC.bst @@ -0,0 +1,1294 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%% End of IFAC.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% =========================================================================== +%%% @LaTeX-style-file{ +%%% author = "Silvano Balemi", +%%% version = "1.4", +%%% date = "12-MAR-1993", +%%% filename = "IFAC.bst", +%%% address = "Automatic Control Laboratory +%%% Swiss Federal Institute of Technology (ETH) +%%% 8092 Zurich, Switzerland", +%%% telephone = "+41 (1) 632.55.34", +%%% FAX = "+41 (1) 262.43.62", +%%% email = "balemi@aut.ee.ethz.ch (Internet)", +%%% keywords = "BibTeX, IFAC proceedings, Camera ready, +%%% publisher style", +%%% supported = "yes", +%%% docstring = "BibTeX style file for reference according to +%%% the instruction of the International Federation +%%% of Automatic Control (IFAC) (modified from +%%% alpha.bst) +%%% To be used with the style files +%%% IFACarticle.sty, automatica.sty or the substyle file +%%% harvard.sty . +%%% It is based on modified version of +%%% agsm.bst by Peter Williams +%%% peterw@archsci.arch.su.oz.au", +%%% } +%%% =========================================================================== + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + { field.used } + { extra.label sort.label list.year } + +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 f } + +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.yearnull} +{ '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 {item.check} +{ 't := + empty$ + { "empty " t * " in " * cite$ * warning$ } + { skip$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } +% { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + { ", " * t * } + { numnames #2 > + { "" * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + + +FUNCTION {format.editor.names} +{ 's := + 'f := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr f format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "(" } + { "{vv~}{ll}{, jj}{, ff}" editor format.editor.names + editor num.names$ #1 > + { ", Eds.)" * } + { ", Ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "(" } + { "{ff~}{vv~}{ll}{, jj}" editor format.editor.names + editor num.names$ #1 > + { ", Eds.)" * } + { ", Ed.)" * } + if$ + } + if$ +} + + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " In: " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume embolden field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ",~" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chap." } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In: " booktitle quote * } + { "In: " booktitle quote * " (" * format.editors.reverse * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { "In: \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * " \cite{" * crossref * "}" *} + if$ + } + { "In: \citeasnoun{" crossref * "}" * } + if$ + } + { "In: \citeasnoun{" crossref * "}" * } + if$ + +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names.abbr} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { s #1 "{vv~}{ll}" format.name$ " {\em et al.}" * } + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { s #1 "{vv~}{ll}" format.name$ " {\em et al.}" * } + { s #1 "{vv~}{ll}" format.name$ " and " * + s #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + { s #1 "{vv~}{ll}" format.name$ } + if$ +} + +FUNCTION {format.lab.names.full} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {make.list.label} +{ author.field field.used = + { format.authors } + { editor.field field.used = + { format.editors } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} +{ author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + make.abbr.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {list.label.output} +{ make.list.label " " * write$ +} + +FUNCTION {article} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + crossref missing$ + { journal emphasize "journal" duplicate$ item.check + pages empty$ + { + output + } + { + " " * + format.vol.num.pages * output + } + if$ + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + howpublished output + address output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.chapter.pages "chapter and pages" output.check + new.block + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.chapter.pages output + new.block + format.number.series output + publisher "publisher" output.check + address output + } + { format.chapter.pages output + new.block + format.incoll.inproc.crossref output.nonnull + } + if$ + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + } + { organization output + publisher output + address output.nonnull + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.edition output + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.title output } + if$ + howpublished output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { title "title" output.check } + if$ + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { skip$ } + { organization output + } + if$ + publisher output + } + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + address output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + make.abbr.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {first.presort} +{ calc.label + sort.label + title.field field.used = + { skip$ } + { " " + * + make.list.label sortify + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + year empty$ + { "n.d." extra.label emphasize * 'list.year := } + { year extra.label emphasize * 'list.year := } + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ make.list.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + { skip$ } + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End of IFAC.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/macros/latex209/contrib/ifac/IFACarticle.sty b/macros/latex209/contrib/ifac/IFACarticle.sty new file mode 100644 index 0000000000..851f63cabc --- /dev/null +++ b/macros/latex209/contrib/ifac/IFACarticle.sty @@ -0,0 +1,705 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% IFACarticle.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% =========================================================================== +%%% @LaTeX-style-file{ +%%% author = "Silvano Balemi", +%%% version = "1.8", +%%% date = "1-SEPT-1993", +%%% filename = "IFACarticle.sty", +%%% address = "Automatic Control Laboratory +%%% Swiss Federal Institute of Technology (ETH) +%%% 8092 Zurich, Switzerland", +%%% telephone = "+41 (1) 632.55.34", +%%% FAX = "+41 (1) 262.43.62", +%%% email = "balemi@aut.ee.ethz.ch", +%%% keywords = "LaTeX, IFAC proceedings, Camera ready, +%%% publisher style", +%%% supported = "yes. Please send comments via E-mail", +%%% mainserver = "ifa.ethz.ch" +%%% docstring = "This is a LaTeX style file for camera ready +%%% articles according to instructions of the +%%% International Federation of Automatic +%%% Control (IFAC). +%%% The default font size is 10 points, but can be +%%% used with 9pt, 11pt or 12pt points too. +%%% +%%% Usage: +%%% \documentstyle{IFACarticle} +%%% \author{...} +%%% \title{...} +%%% \abstract{...} +%%% \keywords{...} +%%% \maketitle +%%% ... +%%% \end{document} +%%% +%%% The command "\footernote{TEXT}" puts the +%%% text TEXT at the bottom of the page +%%% together with the page number. In order to +%%% remove footnote and page number, insert +%%% \thispagestyle{empty}\pagestyle{empty} +%%% right after the \maketitle command!! +%%% +%%% You may want to adjust the position of the +%%% text on the page (for your specific +%%% printer) with the commands +%%% \addtolength{\oddsidemargin}{Xmm} % right Xmm +%%% \addtolength{\topmargin}{Ymm} % down Ymm +%%% " +%%% } +%%% =========================================================================== + +\typeout{Document Style `IFACarticle' <1-SEPT-1993>.} + +\def\title#1{\gdef\@title{#1}} +\def\abstract#1{\gdef\@abstract{#1}} +\def\keywords#1{\gdef\@keywords{#1}} + +\newif\if@mytwocolumn \@mytwocolumntrue + +\def\@ptsize{10} +\@namedef{ds@9pt}{\def\@ptsize{9}} +\@namedef{ds@10pt}{\def\@ptsize{10}} +\@namedef{ds@11pt}{\def\@ptsize{11}} +\@namedef{ds@12pt}{\def\@ptsize{12}} +\def\ds@twoside{\@twosidetrue \@mparswitchtrue} +\def\ds@draft{\overfullrule 5pt} +\@namedef{ds@onecolumn}{\global\@mytwocolumnfalse } +\@options + +\textheight 253mm +\textwidth 160mm +\columnsep 8.5mm +\topmargin -17mm +\parindent 0mm +\parskip 1em +\headsep 2ex +\headheight 12pt +\lineskip 1pt +\normallineskip 1pt +\def\baselinestretch{1} +\oddsidemargin 0mm +\evensidemargin 0mm +%%%%%%%%% For MATS use following even- and oddsidemargins (printer-dependent) +% \oddsidemargin 11.1mm +% \evensidemargin11.1mm + +%% This determines space around formulas and indentation +\newdimen\mathskip +\newdimen\mathindent +\newdimen\theoremskip +\mathskip 1em +\mathindent 5mm +\theoremskip 1em + +\partopsep \z@ +\topsep 1.3ex +\parsep \z@ +\itemsep \z@ +%% see further below for lists + + +%% FONT DEFINITION: avoids having to read in font files. +%% +%% Check if we have selected 9 points +\def\@tempa{9}\ifx\@ptsize\@tempa +\typeout{-- This is a 9 point document} +\def\@normalsize{\@setsize\normalsize{11pt}\ixpt\@ixpt +\abovedisplayskip 9pt plus2pt minus5pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip 6pt plus3pt +minus3pt\let\@listi\@listI} +\def\small{\@setsize\small{9.5pt}\viiipt\@viiipt +\abovedisplayskip 7.5pt plus 2pt minus 4pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus2pt\belowdisplayshortskip 4pt plus2pt minus 2pt +\def\@listi{\leftmargin\leftmargini \topsep 3pt plus 2pt minus 2pt\parsep 2pt +plus 1pt minus 1pt +\itemsep \parsep}} +\def\footnotesize{\@setsize\footnotesize{8pt}\viipt\@viipt} +\def\scriptsize{\@setsize\scriptsize{7pt}\vipt\@vipt} +\def\tiny{\@setsize\tiny{5pt}\ivpt\@ivpt} +\def\large{\@setsize\large{13.6pt}\xipt\@xipt} +\def\Large{\@setsize\Large{17pt}\xiipt\@xiipt} +\def\LARGE{\@setsize\LARGE{20pt}\xivpt\@xivpt} +\def\huge{\@setsize\huge{22pt}\xviipt\@xviipt} +\def\Huge{\@setsize\Huge{28pt}\xxpt\@xxpt} +\fi +%% +%% Check if we have selected 10 points +\def\@tempa{10}\ifx\@ptsize\@tempa +\typeout{-- This is a 10 point document} +\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt +\abovedisplayskip 10pt plus2pt minus5pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip 6pt plus3pt +minus3pt\let\@listi\@listI} +\def\small{\@setsize\small{11pt}\ixpt\@ixpt +\abovedisplayskip 8.5pt plus 3pt minus 4pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus2pt\belowdisplayshortskip 4pt plus2pt minus 2pt +\def\@listi{\leftmargin\leftmargini \topsep 4pt plus 2pt minus 2pt\parsep 2pt +plus 1pt minus 1pt +\itemsep \parsep}} +\def\footnotesize{\@setsize\footnotesize{9.0pt}\viiipt\@viiipt} +\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} +\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} +\def\large{\@setsize\large{14pt}\xiipt\@xiipt} +\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} +\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} +\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} +\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} +\fi +%% +%% Check if we have selected 11 points +\def\@tempa{11}\ifx\@ptsize\@tempa +\typeout{-- This is an 11 point document} +\def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt +\abovedisplayskip 1em plus2pt minus5pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus3pt minus3pt} +\def\small{\@setsize\small{12pt}\xpt\@xpt} +\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt} +\def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} +\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} +\def\large{\@setsize\large{14pt}\xiipt\@xiipt} +\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} +\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} +\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} +\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} +\fi +%% +%% Check if we have selected 12 points +\def\@tempa{12}\ifx\@ptsize\@tempa +\typeout{-- This is a 12 point document} +\def\@normalsize{\@setsize\normalsize{14pt}\xiipt\@xiipt +\abovedisplayskip 1em plus3pt minus6pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus4pt minus4pt} +\def\small{\@setsize\small{11.4pt}\xpt\@xpt} +\def\footnotesize{\@setsize\footnotesize{10pt}\ixpt\@ixpt} +\def\scriptsize{\@setsize\scriptsize{9pt}\viiipt\@viiipt} +\def\tiny{\@setsize\tiny{8pt}\vipt\@vipt} +\def\large{\@setsize\large{18pt}\xivpt\@xivpt} +\def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} +\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} +\def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} +\let\Huge=\huge +\fi + + +%% Definitions for PARAGRAPHS +%% +\abovedisplayskip 1em plus.3em minus.6em +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus.3em +\belowdisplayshortskip .6em plus.4em minus.4em + +%% Definitions for LISTS +%% +\leftmargini 2em +\leftmarginii 1em +\leftmarginiii 1em +\leftmarginiv .5em +\leftmarginv .5em +\leftmarginvi .5em +\marginparwidth 48pt +\marginparsep 10pt +\labelsep 5pt +\leftmargin\leftmargini +%\labelwidth \z@ +\labelwidth\leftmargini\advance\labelwidth-\labelsep + +\def\@listI{\leftmargin\leftmargini + \topsep -\parskip \addtolength{\topsep}{0.5em}} +\@listI +\def\@listi{\leftmargin\leftmargini + \topsep -\parskip \addtolength{\topsep}{0.5em}} +\def\@listii{\leftmargin\leftmarginii\labelwidth\leftmarginii + \advance\labelwidth-\labelsep \topsep \z@} +\def\@listiii{\leftmargin\leftmarginiii\labelwidth\leftmarginiii + \advance\labelwidth-\labelsep \topsep \z@} +\def\@listiv{\leftmargin\leftmarginiv\labelwidth\leftmarginiv + \advance\labelwidth-\labelsep \topsep \z@} +\def\@listv{\leftmargin\leftmarginv\labelwidth\leftmarginv + \advance\labelwidth-\labelsep \topsep \z@} +\def\@listvi{\leftmargin\leftmarginvi\labelwidth\leftmarginvi + \advance\labelwidth-\labelsep \topsep \z@} + +\def\labelenumi{\theenumi.} +\def\theenumi{\arabic{enumi}} +\def\labelenumii{(\theenumii)} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} +\def\labelenumiii{\theenumiii.} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi(\theenumii)} +\def\labelenumiv{\theenumiv.} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} + +\def\labelitemi{$\bullet$} +\def\labelitemii{\bf --} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} + +\def\center{\ifdim \parskip < .5em \theoremskip-\parskip +\addtolength{\theoremskip}{.5em}\else \theoremskip 0em\fi +\setlength{\topsep}{\theoremskip}\trivlist \centering\item[]} + +\def\verse{\let\\=\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent + \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} +\let\endverse\endlist +\def\quotation{\list{}{\listparindent 1.5em + \itemindent\listparindent + \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} +\let\endquotation=\endlist +\def\quote{\list{}{\rightmargin\leftmargin}\item[]} +\let\endquote=\endlist + +\def\descriptionlabel#1{\hspace\labelsep \bf #1} +\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} +\let\enddescription\endlist + + +% Modified eqnarray from fleqn.sty to create left-indentation for formulas +% equation and \[ enironment defined using eqnarray and eqnarray* +\def\eqnarray{\stepcounter{equation} + \let\@currentlabel=\theequation + \global\@eqnswtrue + \global\@eqcnt\z@\tabskip\mathindent\let\\=\@eqncr + \abovedisplayskip\mathskip\ifvmode\advance\abovedisplayskip\partopsep\fi + \belowdisplayskip\abovedisplayskip + \belowdisplayshortskip\abovedisplayskip + \abovedisplayshortskip\abovedisplayskip + $$\halign to + \linewidth\bgroup\@eqnsel\hskip\@centering$\displaystyle\tabskip\z@ + {##}$&\global\@eqcnt\@ne \hskip 2\arraycolsep \hfil${##}$\hfil + &\global\@eqcnt\tw@ \hskip 2\arraycolsep $\displaystyle{##}$\hfil + \tabskip\@centering&\llap{##}\tabskip\z@\cr} +\def\endeqnarray{\@@eqncr\egroup + \global\advance\c@equation\m@ne$$\global\@ignoretrue } +% +\def\equation{\eqnarray} +\def\endequation{\endeqnarray} +% +\def\[{\begin{eqnarray*}} +\def\]{\end{eqnarray*}} + +\def\theequation{\arabic{equation}} + + +%% ENVIRONMENTS +\newenvironment{proof}{{\em Proof:\/}}{\hfill~\rule[-0pt]{5pt}{5pt} +\par\ifdim \parskip < 1em \theoremskip-\parskip + \addtolength{\theoremskip}{1em}\else \theoremskip 0em\fi + \vskip\theoremskip} + +\def\@begintheorem#1#2{\ifdim \parskip < 1em \theoremskip-\parskip + \addtolength{\theoremskip}{1em}\else \theoremskip 0em\fi + \setlength{\topsep}{\theoremskip} + \rm \trivlist \item[\hskip \labelsep{\it #1\ #2}]} +\def\@opargbegintheorem#1#2#3{\ifdim \parskip < 1em \theoremskip-\parskip + \addtolength{\theoremskip}{1em}\else \theoremskip 0em\fi + \setlength{\topsep}{\theoremskip} + \rm \trivlist \item[\hskip \labelsep{\indent\it #1\ #2\ \rm(#3)}]} + +\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \else \newpage \fi \thispagestyle{empty}\c@page\z@} +\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} + +\arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt +\tabbingsep \labelsep + +\skip\@mpfootins = \skip\footins +\fboxsep = 3pt \fboxrule = .4pt + +\newcounter {section} +\newcounter {subsection}[section] +\newcounter {subsubsection}[subsection] +\newcounter {paragraph}[subsubsection] +\newcounter {subparagraph}[paragraph] + +\def\thesection {\arabic{section}} +\def\thesubsection {\thesection.\arabic{subsection}} +\def\thesubsubsection {\thesubsection .\arabic{subsubsection}} +\def\theparagraph {\thesubsubsection.\arabic{paragraph}} +\def\thesubparagraph {\theparagraph.\arabic{subparagraph}} + +\setcounter{secnumdepth}{3} + +\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi + \par \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi + \addtolength{\@tempskipa}{-\parskip} + \if@nobreak \everypar{}\else + \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar + {\@ssect{#2}{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} + +\gdef\@punct{.~~ } % Punctuation after run-in section heading + +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \def\@svsec{} + \else + \refstepcounter{#1} + \edef\@svsec{{\rm\csname the#1\endcsname}.\hskip .5em } + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup #6\relax + \@hangfrom{\hskip #3\relax}{\@svsec\interlinepenalty \@M #8\par} + \endgroup + \csname #1mark\endcsname{#7} + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\else + \protect\numberline{\csname the#1\endcsname}\fi#7} + \else + \def\@svsechd{#6\hskip #3\@svsec #8\@punct\csname#1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\else + \protect\numberline{\csname the#1\endcsname}\fi#7}}% + \fi% + \@xsect{#5}} + +\def\@ssect#1#2#3#4#5#6{\@tempskipa #4\relax + \ifdim \@tempskipa>\z@ + \begingroup #5\@hangfrom{\hskip #2}{\interlinepenalty \@M + #6\par}\endgroup + \else \def\@svsechd{#5\hskip #2\relax #6\@punct}\fi + \@xsect{#4}} + +\def\@xsect#1{\@tempskipa #1\relax + \ifdim \@tempskipa>\z@ + \par \nobreak + \addtolength{\@tempskipa}{-\parskip} + \vskip \@tempskipa + \@afterheading + \else \global\@nobreakfalse \global\@noskipsectrue + \everypar{\if@noskipsec \global\@noskipsecfalse + \clubpenalty\@M \hskip -\parindent + \begingroup \@svsechd \endgroup \unskip + \hskip -#1 + \else \clubpenalty \@clubpenalty + \everypar{}\fi}\fi\ignorespaces} + +% definition for headings +\def\section{\@startsection{section}{1}{\z@} + {5.3ex plus 1.0ex minus .5ex}{1.8ex plus .2ex}{\centering\rm}} +\def\subsection{\@startsection{subsection}{2}{\z@}{5.3ex plus .3ex minus + .5ex}{1.8ex plus .2ex}{\em}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{2.9ex plus + .3ex minus .1ex}{0ex plus .0ex}{\normalsize\em}} + +\def\appendix{\par + \setcounter{section}{0} + \setcounter{subsection}{0} + \def\thesection{\Alph{section}}} + + +\def\@pnumwidth{1.55em} +\def\@tocrmarg {2.55em} +\def\@dotsep{4.5} +\setcounter{tocdepth}{3} + +\def\tableofcontents{\section*{CONTENTS} + \@starttoc{toc}} +\def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt} +\@tempdima 1.5em \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \bf \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil +\nobreak\hbox to\@pnumwidth{\hss #2}\par + \endgroup} + +\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} +\def\listoffigures{\section*{LIST OF FIGURES}\@starttoc{lof}} +\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +\def\listoftables{\section*{LIST OF TABLES}\@starttoc{lot}} +\let\l@table\l@figure + +\newif\if@restonecol +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi + \columnseprule \z@ \columnsep 35pt\twocolumn[\section*{Index}] + \parindent\z@ \parskip\z@ plus .3pt\relax\let\item\@idxitem} +\def\@idxitem{\par\hangindent 40pt} +\def\subitem{\par\hangindent 40pt \hspace*{20pt}} +\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}} +\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} +\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax} + + +%% FOOTNOTES +% +\skip\footins 10pt plus 4pt minus 2pt +\footnotesep 12pt +\footskip 3.5em +\skip\@mpfootins = \skip\footins +\fboxsep = 3pt \fboxrule = .4pt + +\def\footnoterule{\kern-3\p@ + \hrule width .7\columnwidth + \kern 2.6\p@} + +\long\def\@makefntext#1{\parindent 1em\noindent + $^{\@thefnmark}$ #1} + + + +%% Definitions for FLOATS +%% +%% Normal floats %% Floats on double columns +\floatsep 12pt plus 2pt minus 2pt \dblfloatsep 12pt plus 2pt minus 2pt +\textfloatsep 12pt plus 2pt minus 4pt \dbltextfloatsep 12pt plus 2pt minus 4pt +\@maxsep 20pt \@dblmaxsep 20pt +\@fptop 0pt plus 1fil \@dblfptop 0pt plus 1fil +\@fpsep 18pt plus 2fil \@dblfpsep 8pt plus 2fil +\@fpbot 0pt plus 1fil \@dblfpbot 0pt plus 1fil +\def\topfraction{1.0} \def\dbltopfraction{1.0} +\def\floatpagefraction{0.8} \def\dblfloatpagefraction{0.8} +\setcounter{topnumber}{2} \setcounter{dbltopnumber}{4} +% +\intextsep 12pt plus 2pt minus 2pt +\setcounter{bottomnumber}{2} +\def\bottomfraction{.4} +\setcounter{totalnumber}{4} +\def\textfraction{.2} + +% redefine CAPTION + +\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \normalsize + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}{#1}\par + \endgroup} + +\def\tablestring{table} +\def\figurestring{figure} + +\long\def\@makecaption#1#2#3{% +\ifx\figurestring#3 + \vskip 10pt + \setbox\@tempboxa\hbox{\small #1.~} + \parbox[t]{\hsize}{\small \hangindent\wd\@tempboxa \hangafter=1% + \unhbox\@tempboxa#2} +\else% + \vskip 4pt + \setbox\@tempboxa\hbox{\underline{#1~~ #2}} + \ifdim \wd\@tempboxa >\hsize + \setbox\@tempboxa\hbox{\underline{#1}~~ } + \parbox{\hsize}{\raggedright\hangindent\wd\@tempboxa \hangafter=1 + \unhbox\@tempboxa#2} + \else\hbox to\hsize{\hfil\box\@tempboxa\hfil} + \fi% + \vskip 10pt +\fi% +} + +\setcounter{topnumber}{2} +\def\topfraction{.7} +\setcounter{bottomnumber}{1} +\def\bottomfraction{.3} +\setcounter{totalnumber}{3} +\def\textfraction{.2} +\def\floatpagefraction{.5} +\setcounter{dbltopnumber}{2} +\def\dbltopfraction{.7} +\def\dblfloatpagefraction{.5} + +\newcounter{figure} +\def\thefigure{\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{Fig.~\thefigure} +\def\figure{\@float{figure}} +\let\endfigure\end@float +\@namedef{figure*}{\@dblfloat{figure}} +\@namedef{endfigure*}{\end@dblfloat} +\newcounter{table} +\def\thetable{\@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{Table~\thetable} +\def\table{\@float{table}} +\let\endtable\end@float +\@namedef{table*}{\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat} + + +%% TITLE + +%% new definition for \thanks{} +\def\thanks#1{\footnotemark\begingroup\def\protect{\noexpand\protect\noexpand} +\xdef\@thanks{\mbox{}\@thanks\protect\\[.5em] $^{\@thefnmark}\!$#1}\endgroup} + +\def\IFACsymbol#1{\@IFACsymbol{\@nameuse{c@#1}}} + +\def\@IFACsymbol#1{\ifcase#1\or *\or **\or ***\or \dagger\or +\dagger\dagger\or \ddagger\or \ddagger\ddagger\or + \mathchar "278\or \mathchar "27B\or \| \else\@ctrerr\fi\relax} + + +\def\maketitle{\par + \begingroup + \def\thefootnote{\IFACsymbol{footnote}} + \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}} + \if@twocolumn + \twocolumn[\@maketitle] + \else \newpage \global\@topnum\z@ \@maketitle \fi% + \thispagestyle{myheadings}%\@thanks %standard thanks command + \endgroup + \setcounter{footnote}{0} + \let\maketitle\relax + \let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@abstract{}\gdef\@keywords{} + \gdef\@title{}\let\thanks\relax} + +\def\@maketitle{{\parskip 0pt \newpage \null \vskip 6.5em + \advance \rightskip by 15mm + \advance \leftskip by 15mm + {\large\bf \@title \par} + \vskip 1.6em {\lineskip .5em + \bf\@author\par} + \noindent{\footnotesize\vskip .2em \it\@thanks\par} + \noindent{\footnotesize\vskip 2.7em {\bf {Abstract}. }\@abstract\par} + \noindent{\footnotesize\vskip 1em {\bf {Key Words}. }\@keywords\par} + \vskip 3.0em}} + + +\mark{{}{}} + +\def\ps@headings{% +\def\@oddhead{} +\def\@oddfoot{\hfil \@footernote\ \qquad \thepage} +\def\@evenhead{} +\def\@evenfoot{\thepage\qquad \@footernote\ \hfil} +} + +\def\footernote#1{\def\@footernote{#1}} +\footernote{} + +\ps@headings +\pagenumbering{arabic} \onecolumn \if@twoside\else\raggedbottom\fi +\if@mytwocolumn \twocolumn \sloppy \flushbottom \fi + +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} + + + +% **************************************** +% * BIBLIOGRAPHY * +% **************************************** +% + +\def\thebibliography#1{\section{REFERENCES}\list + {[\arabic{enumi}]}{\labelsep 0pt + \labelwidth 0mm \leftmargin\labelwidth + \itemindent -4mm \advance\leftmargin 4mm + \usecounter{enumi}} + \def\newblock{\hskip .11em plus .33em minus .07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} + +\let\endthebibliography=\endlist + +\def\@biblabel#1{\hfill} +\def\@mynamedef#1{\expandafter\def\csname #1\endcsname} +\def\bibcite#1#2{\global\@mynamedef{b@#1}{#2}} + + +%% This is mostly taken from: HARVARD.STY Source: FILESERV@SHSU.BITNET +%% written by Peter Williams' <peterw@archsci.arch.su.OZ.AU> + +\def\@hiteml[#1]#2#3#4{\item[]\if@filesw% + { \def\protect##1{\string ##1\space}\immediate% +\write\@auxout{\string\harvardcite{#4}{#2}{#1}{#3}}}\fi% +\protect\hspace*{-\labelwidth}\protect\hspace*{-\labelsep}\ignorespaces} + +\def\@hitem#1#2#3{\item[]\if@filesw% + { \def\protect##1{\string ##1\space}\immediate% +\write\@auxout{\string\harvardcite{#3}{#1}{#1}{#2}}}\fi% +\protect\hspace*{-\labelwidth}\protect\hspace*{-\labelsep}\ignorespaces} + +\def\harvarditem{\@ifnextchar [{\@hiteml}{\@hitem}} + +\def\harvardcite#1#2#3#4{% + \global\@namedef{bhf@#1}{#2}% + \global\@namedef{bha@#1}{#3}% + \global\@namedef{bhy@#1}{#4}% + \global\@namedef{b@#1}{\csname bhf@#1\endcsname} +} + +\def\cite{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} +\def\citeasnoun{\@ifnextchar [{\@tempswatrue\@citexasnoun} + {\@tempswafalse\@citexasnoun[]}} +\def\citeyear{\@ifnextchar [{\@tempswatrue\@citexyear} + {\@tempswafalse\@citexyear[]}} + +\def\@enamedef#1{\expandafter\edef\csname #1\endcsname} + +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi + \def\@citea{}\@cite{\@for\@citeb:=#2\do + {\@citea\def\@citea{\@hisep\penalty\@m\ }\@ifundefined + {b@\@citeb}{{\bf ?}\@warning + {Citation `\@citeb' on page \thepage \space undefined}}% +{{\csname b@\@citeb\endcsname\@hysep\csname bhy@\@citeb\endcsname}% +\global\@enamedef{b@\@citeb}{\csname bha@\@citeb\endcsname}}% +}}{#1}} + +\def\@citexasnoun[#1]#2{% +\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% +\@citeasnoun{{\@ifundefined% +{b@#2}% +{{\bf ?}\@warning{Citation `#2' on page \thepage \space undefined}}% +{{\csname b@#2\endcsname\ (\csname bhy@#2\endcsname}% +\global\@namedef{b@#2}{\csname bha@#2\endcsname}}% +}}{#1}} + +\def\@citexyear[#1]#2{% +\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% +\@citeyear{{\@ifundefined% +{b@#2}% +{{\bf ?}\@warning{Citation `#2' on page \thepage \space undefined}}% +{{(\csname bhy@#2\endcsname}% +\global\@namedef{b@#2}{\csname bha@#2\endcsname}}% +}}{#1}} + +\gdef\hysep@agsm{, }\gdef\hisep@agsm{;}% +\gdef\hysep@dcu{, }\gdef\hisep@dcu{;}% +\let\@hysep\hysep@agsm \let\@hisep\hisep@agsm +\def\citationstyle#1{% +\global\@namedef{@hysep}{\csname hysep@#1\endcsname}% +\global\@namedef{@hisep}{\csname hisep@#1\endcsname}} + +% CHANGE \end{document} - to handle double definitions +\def\enddocument{\@checkend{document}\clearpage\begingroup +\if@filesw \immediate\closeout\@mainaux +\def\global\@namedef##1##2{}\def\newlabel{\@testdef r}% +\def\bibcite{\@testdef b}% +\def\harvardcite{\@testbibh}\@tempswafalse \makeatletter\input \jobname.aux +\if@tempswa \@warning{Label(s) may have changed. Rerun to get +cross-references right}\fi\fi\endgroup\deadcycles\z@\@@end} + +\def\@testbibh #1#2#3{ + \def\@tempa{#2}\expandafter + \ifx \csname bhf@#1\endcsname \@tempa + \def\@tempa{#3}\expandafter + \ifx \csname bha@#1\endcsname \@tempa + \else \@tempswatrue + \fi + \else + \@tempswatrue + \fi +} + + +%DEFAULT DEFINITIONS +\def\@cite#1#2{({#1\if@tempswa ; #2\fi})} +\def\@citeasnoun#1#2{{#1\if@tempswa ; #2\fi)}} +\def\@citeyear#1#2{{#1\if@tempswa ; #2\fi)}} + +%%%%%%%%%%%%%%%%%%%%%%%%%% End of IFACarticle.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/macros/latex209/contrib/ifac/IFACdoc.tex b/macros/latex209/contrib/ifac/IFACdoc.tex new file mode 100644 index 0000000000..74cbca608f --- /dev/null +++ b/macros/latex209/contrib/ifac/IFACdoc.tex @@ -0,0 +1,260 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% IFACdoc.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%% %%%%%%%%%%%%% +%%%%%%%%%% More information: see the header of IFACarticle.sty %%%%%%%%%%%%% +%%%%%%%%%% %%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\documentstyle[twoside]{IFACarticle} + +%% For those desperately looking for space, uncomment the next line +%\parskip 0pt + +\newtheorem{theorem}{Theorem} +\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} + +\begin{document} + +%% useful definition when preparing own reprints +\setcounter{page}{9} +\footernote{Presented at the last IFAC World Congress} + +\title{SAMPLE LATEX ARTICLE WITH STYLE FILES FOR IFAC PROCEEDINGS} + +\author{S. BALEMI\thanks{Automatic Control Laboratory, +Swiss Federal Institute of Technology (ETH), +8092 Z\"urich, Switzerland. E-mail: balemi@aut.ee.ethz.ch}} + +\abstract{Sample \LaTeX\ article using Latex Style file created for +proceedings according to formatting directions of the International +Federation of Automatic Control.} + +\keywords{\LaTeX\ style files, Bibliography style files, IFAC proceedings.} + +\maketitle +%% When uncommented, the next line removes page numbers and footernote +%\thispagestyle{empty}\pagestyle{empty} + +\section{INTRODUCTION} +This paper uses the style file {\tt IFACarticle.sty}, + created for \LaTeX\ in order to +format an article according to the ``STYLE NOTES FOR AUTHORS for the +Preparation of Camera-Ready Copy'' by Pergamon press. + +The set of files provided with {\tt IFAC\-article.sty} includes the +bibliography style file {\tt IFAC.bst}, and the present file, called +{\tt IFAC\-doc.tex}. + +\section{HOW TO USE THE LATEX STYLE FILE} + +This style file has been written so to allow, with very few changes, +the formatting of input that is suitable for the \LaTeX\ {\tt article} +style. +First, the \verb+IFACarticle+ style file has to be +selected with a command of the form + +\hspace{\mathindent}\verb+\documentstyle[]{IFACarticle}+ + +The main differences with the usual {\tt article.sty} pertain to some +definitions in the titlepage. +\begin{itemize} +\item After the name of the author, go to the next line with + \verb+\\[2mm]+ for the address. +\item the syntax for abstract is \verb+\abstract{...}+, not + \verb+\begin{abstract}...\end{abstract}+ +\item the syntax for keywords follows the same syntax as that of the + abstract: \verb+\keywords{...}+ +\item \verb+\maketitle+ comes after title, abstract + and keywords. +\end{itemize} + +In Fig.~\ref{fig-example} we can see an example for the definition of +the title page and of the main commands needed to compile a \LaTeX\ +file with IFACarticle.sty. +Note that the title and the section headings must be typed in +capital letters. Note also that the subsubsection should have no +number. + +\subsection{Options} +The default font size is 10 points; however, the 9, 11 and 12 point +font sizes can be selected with the options \verb+9pt+, +\verb+11pt+ and \verb+12pt+. +The default format is two-column, and the one-column format is +obtained only by explicitly selecting the {\tt onecolumn} option. + +The default page style has been redefined and is +``\verb+headings+''. The foot of the page can +be set with the command \verb+\footernote{TEXT}+, which causes +\verb+TEXT+ and the page number to appear at the bottom of the page. +Giving the commands \verb+\thispagestyle{empty}+ and \verb+\pagestyle{empty}+ +just after the \verb+\maketitle+ command removes any text from the +bottom of the page. + +The article can then be printed directly on the mats provided by +the publisher. However, you may have to +adjust the position on the page coming from your printer using the commands + +\mbox{}\hspace{\mathindent}\verb+\addtolength{\oddsidemargin}{Xmm}+\\ +\mbox{}\hspace{\mathindent}\verb+\addtolength{\topmargin}{Ymm}+. + +You can use this style file also when submitting a paper: in this case, +you should choose the option {\tt 12pt} and {\tt onecolumn}. + +\subsection{Other Definitions} + +Most changes resulting from the use of IFACarticle.sty should be +transparent. For instance, +captions for figures and tables have been modified. Caption of +tables, however, should be defined before the table item (see for +instance Table~\ref{table}). + +\begin{figure}[bht] +\begin{center} +\setlength{\unitlength}{0.0105in}% +\begin{picture}(242,150)(73,660) +\put( 75,660){\framebox(240,150){}} +\put(105,741){\vector( 0, 1){ 66}} +\put(105,675){\vector( 0, 1){ 57}} +\put( 96,759){\vector( 1, 0){204}} +\put(105,789){\line( 1, 0){ 90}} +\put(195,789){\line( 2,-1){ 90}} +\put(105,711){\line( 1, 0){ 60}} +\put(165,711){\line( 5,-3){ 60}} +\put(225,675){\line( 1, 0){ 72}} +\put( 96,714){\vector( 1, 0){204}} +\put( 99,724){\makebox(0,0)[rb]{\raisebox{0pt}[0pt][0pt]{\tenrm $\varphi$}}} +\put(291,747){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\tenrm $\omega$}}} +\put(291,702){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\tenrm $\omega$}}} +\put( 99,795){\makebox(0,0)[rb]{\raisebox{0pt}[0pt][0pt]{\tenrm $M$}}} +\end{picture} +\end{center} +\caption{This is a sample figure. The caption comes after the figure.} +\end{figure} +\nocite{TeX} + +\begin{table}[hbt] +\caption{The caption comes before the table.} +\label{table} +\begin{center} +\begin{tabular}{lcccccc}\hline +&Jan&Mar&May&Jul&Sep&Nov\\\hline +Day\\ +1& 4& 22\\ +2\\ +3& & &31 &86\\ +4&&&&&107\\ +5&&&&&&189\\\hline +\end{tabular} +\end{center} +\end{table} + +\subsubsection*{Environments} +The environments for theorems, lemmas, {\em etc}\ldots{} can be +defined with the usual \LaTeX\ command +\verb+\newtheorem{..}{..}+ \cite{LaTeX,LaTeXD}. +The proof environment is already defined. + +\begin{theorem}[Theorem name] +Consider the system +\begin{equation} +\begin{array}{rrr} +\dot x&=&A.x+B.u\\[2mm] +y&=& C.x+D.u +\end{array} +\end{equation} +If $A$ is stable, then the pair $\{A,B\}$ is stabilizable. Moreover, +this holds for any $B$. +\end{theorem} +\begin{proof} +The proof is trivial. +\end{proof} + + +\begin{figure} +\mbox{}\hrulefill +\begin{verbatim} +\documentstyle{IFACarticle} +\begin{document} + +\title{SAMPLE LATEX ARTICLE ..} +\author{S. BALEMI\thanks{Automatic ...} +\footernote{Presented at ...} + +\abstract{Sample \LaTeX\ article ...} +\keywords{\LaTeX\ style files, ...} + +\maketitle + +\section{INTRODUCTION} + +This paper ... + +\bibliographystyle{IFAC} +\bibliography{bib-file} +\end{document} +\end{verbatim} +\mbox{}\hrulefill +\caption{Input used to produce this paper.} +\label{fig-example} +\end{figure} + +\subsection{Citing References} +You can use \BibTeX\ together with the bibliography style file {\tt IFAC\-.bst} +to format the references according to IFAC instructions. The +bibliography style file takes advantage of definitions introduced by +Peter Williams for the family of harvard bibliography style files. +The references can be cited with the usual syntax ({\em e.g.\ +\/}\verb+\cite{LaTeX,TeX}+, yielding the citation ``\cite{LaTeX,TeX}'') or +with the two new commands \verb+\citeasnoun{LaTeX}+ (yielding the +citation ``\citeasnoun{LaTeX}''), and \verb+\citeyear{LaTeX}+, +(yielding the citation ``\citeyear{LaTeX}'': useful when the author's name +is already in the text before the citation). The three commands +support most options of the original command. + +When you have the final version of your article, you can reduce the +number of final files in the following way. Run +\BibTeX\ on the \verb+*.aux+ file. This creates a \verb+*.bbl+ file: include this +into your \LaTeX\ source file at the place where you defined the +\verb+\bibliography{..}+ command and comment this command out. +Remove the \verb+*.bbl+ file. Then, your \LaTeX\ file will include +all the necessary information about your bibliography and no +\verb+*.bbl+ or \verb+*.bib+ file will be needed.\footnote{Thus you +can distribute your \LaTeX\ file just by sending the latex source file +and the style file.} + + +\section{CONCLUSION} +A sample article for publication in the IFAC Proceedings has been +presented. It uses the \LaTeX\ style files {\tt +IFAC\-article.sty}, which formats the article automatically according +to IFAC instructions. + +\nocite{TeX} + +\bibliographystyle{IFAC} + +%\bibliography{bib-file} % commented if *.bbl file included, as seen below + +%%%%%%%%%%%%%%%%% BIBLIOGRAPHY IN THE LaTeX file !!!!! %%%%%%%%%%%%%%%%%%%%%%%% +%% This is nothing else than the IFACdoc.bbl file that you would %% +%% obtain with BibTeX: this way, you do not need a separate *.bbl file %% +%%---------------------------------------------------------------------------%% +% +\begin{thebibliography}{xx} + +\harvarditem[Knuth]{Knuth}{1989}{TeX} +Knuth, D. (1989). {\em The {\rm + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}book}. Addison-Wesley. + +\harvarditem[Kopka]{Kopka}{1989}{LaTeXD} +Kopka, H. (1989). {\em \LaTeX, eine Einf\"uhrung}. Addison-Wesley. + +\harvarditem[Lamport]{Lamport}{1986}{LaTeX} +Lamport, L. (1986). {\em A Document Preparation System: \LaTeX, User's Guide + and Reference Manual}. Addison Wesley Publishing Company. + +\end{thebibliography} +%%---------------------------------------------------------------------------%% + +\end{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%% End of IFACdoc.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/macros/latex209/contrib/ifac/IFACsample.bib b/macros/latex209/contrib/ifac/IFACsample.bib new file mode 100644 index 0000000000..559c0b6492 --- /dev/null +++ b/macros/latex209/contrib/ifac/IFACsample.bib @@ -0,0 +1,96 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%% IFACsample.bib %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +@article{Abl:45, + author={B.C. Able}, + title={The examination of cell nuclei}, + journal={Birches. J.}, + year={1945}, + volume={35}, + pages={123--126}, +} + +@article{Abl:56, + author={B.C. Able}, + title={Nucleic acid content of microscope}, + journal={Nature}, + year={1956}, + volume={135}, + pages={7--9}, +} + +@incollection{AbTaRu:54, + author={B.C. Able and R.A. Tagg and M. Rush}, + title={Enzyme-catalyzed cellular transanimations}, + pages={125--247}, + editor={A.F. Round}, + publisher={Academic Press}, + year={1954}, + volume={2}, + booktitle={Advances in Enzymology}, + address={New York}, + edition={3rd}, +} + +@book{Bak:63a, + author={R.C. Baker}, + title={Microscopic Staining Techniques}, + publisher={Butterworths}, + year={1963}, + address={London}, +} + +@article{Bak:63b, + author={R.C. Baker}, + title={Methods of preparing thin-section slides}, + journal={J. Brit. Med. Assoc.}, + year={1963}, + volume={34}, + pages={184--186}, +} + +@article{ChaRou:66, + author={F.H. Charlie and M.B. Routh}, + title={The Chemical Destination of Toxins}, + journal={J. Am. Chem. Soc.}, + year={1966}, + volume={66}, + pages={267--269}, +} + +@incollection{Dog:58, + author={P.R. Dog}, + title={}, + booktitle={Chemical Carcinogenesis}, + publisher={Chapman \& Hall}, + year={1958}, + editor={R.W. Brown}, + chapter={7}, + volume={II}, + pages={56--98}, + address={London}, +} + +@book{Keo:58, + author={R. Keohane}, + title={Power and Interdependence: World Politics in Transitions}, + publisher={Little, Brown \& Co.}, + year={1958}, + address={Boston}, +} + +@article{Pow:85, + author={T. Powers}, + title={Is there a way out?}, + journal={Harpers}, + year={1985}, + pages={35--47}, + month=jun, +} + + +@misc{Sol:89, + author={Solo}, + year={1989}, +} +%%%%%%%%%%%%%%%%%%%%%%%%%% End of IFACsample.bib %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/macros/latex209/contrib/ifac/IFACsample.tex b/macros/latex209/contrib/ifac/IFACsample.tex new file mode 100644 index 0000000000..b0a3252f21 --- /dev/null +++ b/macros/latex209/contrib/ifac/IFACsample.tex @@ -0,0 +1,249 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%% IFACsample.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentstyle[twoside]{IFACarticle} + +\begin{document} + +\title{OPEN CHANNEL TRANSIENT FLOW CONTROL BY\\ DISCRETE TIME LQR METHODS} + +\author{A. GARCIA\thanks{University of North Carolina at Chapel Hill, +Department of Computer Science, Chapel Hill, North Carolina, USA}, M. +HUBBARD\addtocounter{footnote}{-1}\footnotemark +~~and J.J. DE VRIES\thanks{University of Rochester, Computer +Science Department, Rochester, NY 14627, USA} +} + +\abstract{A real-time compensation scheme for multipool canals is +developed using linear quadratic methods. A special response of the +simple wave equation is used as a basis for developing the performance +index which is minimized for a linear method of characteristic flow +model (discrete time). State estimation, using only depths adjacent to +underflow gates, is shown always to be possible. Fixed compensation +for a large flow transition is demonstrated in an example where the +controlled objet is a realistic, nonlinear numerical flow model.} + +\keywords{Distributed parameter systems; hydraulic systems; water +supply; flow control; partial differential equations; civil +engineering} + +\maketitle +\thispagestyle{empty}\pagestyle{empty} + +\section{INTRODUCTION} + +The operation of modern canals is quite complex - a hierarchical +control system is typically employed to minimize operational expenses +and schedule and regulate the actual flow of water. The main concern +here is with the lowest level control measure - regulation (see Fig. +\ref{f:canal}). + +Disturbances caused by wind, rain, inaccurately predicted usageat +turnouts, etc. and imperfect knowledge of the system parameters (e.g. +gate discharge and Manning coefficients) are reasons why +actual flows may deviate from scheduled flows and hence provide the +motivation for employing feedback control in canal operations. +Accurate feedback controllers can reduce the waste in delivering +water. Canal regulation is revised. + + +\begin{figure}[h] +\begin{center} +\setlength{\unitlength}{0.0100in}% +\begin{picture}(294,165)(45,626) +\thicklines +\put(240,672){\oval(13,14)[t]} +\put( 81,750){\circle{12}} +\put( 81,690){\circle{12}} +\put(120,735){\framebox(45,30){}} +\put(120,627){\framebox(45,18){}} +\put(165,750){\vector( 1, 0){ 99}} +\put(213,636){\vector(-1, 0){ 48}} +\put(240,708){\vector(-1, 0){ 84}} +\put(264,735){\framebox(45,30){}} +\put(240,750){\vector( 0,-1){ 98}} +\put(309,750){\line( 1, 0){ 30}} +\put(339,750){\line( 0,-1){114}} +\put(339,636){\line(-1, 0){ 72}} +\put(234,672){\vector(-1, 0){ 78}} +\put(339,672){\line(-1, 0){ 93}} +\put( 87,750){\vector( 1, 0){ 33}} +\put(120,636){\line(-1, 0){ 39}} +\put( 81,636){\vector( 0, 1){ 48}} +\put( 45,750){\vector( 1, 0){ 30}} +\put( 81,696){\vector( 0, 1){ 48}} +\put(213,621){\framebox(54,30){}} +\put(156,723){\line(-5,-3){ 24.265}} +\put(132,708){\line( 5,-3){ 24.265}} +\put(156,693){\line( 0, 1){ 30}} +\put(156,723){\line( 0, 1){ 0}} +\put(156,687){\line(-5,-3){ 24.265}} +\put(132,672){\line( 5,-3){ 24.265}} +\put(156,657){\line( 0, 1){ 30}} +\put(156,687){\line( 0, 1){ 0}} +\put(132,708){\vector(-3,-1){ 45}} +\put(132,672){\vector(-3, 1){ 45}} +\put(141,747){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\tenrm $\int$}}} +\put(285,747){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\tenrm $\int$}}} +\put(234,756){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\tenrm $\dot X_1$}}} +\put(312,756){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\tenrm $X_1$}}} +\put(168,756){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\tenrm $X_2$}}} +\put( 45,756){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\tenrm $w(t)$}}} +\put( 99,756){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\tenrm $\dot X_2$}}} +\put( 81.5,688){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\tenrm $\scriptstyle +$}}} +\put( 81.5,748){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\tenrm $\scriptstyle +$}}} +\put(240,633){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\tenrm $-\epsilon X^2_1X_2$}}} +\put(153,705){\makebox(0,0)[rb]{\raisebox{0pt}[0pt][0pt]{\tenrm $\epsilon$}}} +\put(154,669){\makebox(0,0)[rb]{\raisebox{0pt}[0pt][0pt]{\tenrm $-\!9$}}} +\end{picture} +\end{center} +\caption{Canal terms and parameters} +\label{f:canal} +\end{figure} + +Canal regulation is receiving renewed interest; a variety of methods +have been proposed for approaching the problem. Early work on the +design of feedback controllers for check gates was done by \citeasnoun{Abl:45} +using classical control theory. \citeasnoun{AbTaRu:54}, also using +classical frequency response methods, investigated the stability of +closed-loop level controllers. \citeasnoun{AbTaRu:54} and +\citeasnoun{ChaRou:66} applied the linear quadratic regulator (LQR) +technique to open channel flow control using a linearized, spatially +discretized version of the St Venant equations. Predictive control +strategies based on simplified flow models have also been investigated +\cite{Abl:45,Bak:63a,Dog:58,Keo:58,Pow:85,Sol:89}.\nocite{Bak:63b} +The latter works do not address the problem of transient wave +magnitude control. + +In this paper, three major issues are addressed in the application of +the LQR theory to the regulation of large flow transitions in +multipool canal systems. These are: the development of an accurate and +simple linear model of the flow dynamics, a physically meaningful +method of performance index selection, and the generation of reference +inputs which allow control over transient wave magnitude. +The models used to develop the regulation algorithm is a time and +space discretized approximation of the St Venant equations. The +dynamic response of the wave equation, which is easily developed +analytically, is used as a guideline for developing the penalty +function coefficients. The wave equation is also used to develop +reference inputs for large flow transitions so that transient wave +magnitudes can be controlled. This affects the dynamic response of the +wave. + +\section{OPEN CHANNEL TRANSIENT MODELS} + + +The one-dimensional equations for gradually varied, unsteady flow in +a prismatic channel are: +\begin{equation} +X_{k+1}=jx_k + Gu_{k+1} +\label{eq:1} +\end{equation} +The nonstandard form of (\ref{eq:1}) is a consequence of the fact that +the boundary condition can immediately affect states adjacent to the +boundary. The nonstandard form is a consequence of the fact that the +boundary condition can affect the model.\footnote{Intersystem linkages +do occur on return.} + +\begin{figure}[h] +\begin{center} +\setlength{\unitlength}{0.0100in}% +\begin{picture}(240,147)(60,594) +\thicklines +\put( 75,729){\line( 1, 0){ 45}} +\put( 75,690){\line( 1, 0){ 45}} +\put( 75,669){\line( 1, 0){ 45}} +\put( 75,645){\line( 1, 0){ 45}} +\put( 75,624){\line( 1, 0){ 45}} +\put( 75,711){\line( 1, 0){ 45}} +\put(240,729){\line( 1, 0){ 45}} +\put(240,690){\line( 1, 0){ 45}} +\put(240,669){\line( 1, 0){ 45}} +\put(240,645){\line( 1, 0){ 45}} +\put(240,624){\line( 1, 0){ 45}} +\put(240,711){\line( 1, 0){ 45}} +\put(123,627){\vector(-1, 0){ 0}} +\put(123,627){\vector( 1, 0){114}} +\put(132,636){\line( 1, 0){ 42}} +\put(174,636){\vector( 0, 1){ 51}} +\put(186,636){\vector( 0, 1){ 51}} +\put(186,636){\line( 1, 0){ 42}} +\put(150,699){\vector(-1, 0){ 27}} +\put(210,699){\vector( 1, 0){ 27}} +\put(180,726){\vector( 0,-1){ 21}} +\put(234,732){\vector(-1, 0){ 33}} +\put( 60,615){\dashbox{4}(75,126){}} +\put(225,615){\dashbox{4}(75,126){}} +\put(126,732){\vector( 1, 0){ 33}} +\put(180,729){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\sixrm Society}}} +\put(261,603){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\sixrm Environemt}}} +\put(261,594){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\sixrm system}}} +\put( 96,603){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\sixrm Development}}} +\put( 96,594){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\sixrm system}}} +\put(180,699){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\sixrm Development}}} +\put(180,690){\makebox(0,0)[b]{\raisebox{0pt}[0pt][0pt]{\sixrm activities}}} +\end{picture} +\end{center} +\caption{Basic structure of the development-environ\-ment interface} +\label{f:impact} +\end{figure} + +Together these policy variables comprise a policy system that is +capable of responding to a set of impacts that affect that system. +One of the reasons the development system has grown so large is the +set of positive development impacts that have created an propelled +that system over time. + +\section{ENVIRONMENTAL IMPACT} + +One of the reasons the environment system has evolved is the set of +negative environmental impacts from development activities that have +given rise to the creation of a system to offset development +pressures (see Fig. \ref{f:impact}). + +\subsection{Core Actors} +This group has continuous and intensive involvment in the +technological program. It is usually the core actors who initiate a +program via one or more fundamental decisions. + +\subsubsection*{Allied supporting actors} +Independent Central Actors: Actors of this type have a degree of +independence of autonomy from both the proponents and adversaries of a +given development program because of research and the resulting effect +of the degree of autonomy. More research is needed on this point. + +\begin{table}[hbt] +\caption{Results of systems analysis} +\label{table} +\begin{center} +\begin{tabular}{lcccccc}\hline\\[-2mm] +&Jan&Mar&May&Jul&Sep&Nov\\[2mm]\hline\\[-2mm] +Day\\ +1& 4& 22\\ +2\\ +3& & &31 &86\\ +4&&&&&107\\ +5&&&&&&189\\[2mm]\hline\\ +\end{tabular} +\end{center} +\end{table} + +\section{CONCLUSION} +Environmental adequacy then is the joint outcome of a truly +comprhensive and integrated environmental system. By adequacy is meant +the matching if the environment and development responses to the +challenges posed by the development process. These challenges are in +the form of environmental problems emanating fom the development. The +concern hereis for a set of satisfactory or adequate solutions for all +actors and impactees for resolving the conflicts associated with the +development program. An environmental management system that is +comprehensive in its approach and integratedinto the development +decision makeing process should be adequate in meeting the +environmental problems stemming from the development program. + +\bibliographystyle{IFAC} + +\bibliography{IFACsample} % commented if *.bbl file included, as seen below + +\end{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%% End of IFACsample.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/macros/latex209/contrib/ifac/README b/macros/latex209/contrib/ifac/README new file mode 100644 index 0000000000..789dfd093d --- /dev/null +++ b/macros/latex209/contrib/ifac/README @@ -0,0 +1,10 @@ +To obtain the following style files, please put the keyword in the "Subject:" +of your mail: + + Keyword File(s) +---------- ------------------------------------------------------------- +help README (this file) +ifac-styles IFACarticle.sty, IFACdoc.tex, IFACsample.bib, IFACsample.tex, + IFAC.bst, README +ifac same as ifac-styles +automatica IFAC.bst, automatica.sty, automatica.tex diff --git a/macros/latex209/contrib/ifac/automatica.sty b/macros/latex209/contrib/ifac/automatica.sty new file mode 100644 index 0000000000..1f59b08b1e --- /dev/null +++ b/macros/latex209/contrib/ifac/automatica.sty @@ -0,0 +1,662 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%% automatica.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% ================================================================-========== +%%% @LaTeX-style-file{ +%%% author = "Silvano Balemi", +%%% version = "1.6", +%%% date = "7 JUNE 1994", +%%% filename = "automatica.sty", +%%% address = "Automatic Control Laboratory +%%% Swiss Federal Institute of Technology (ETH) +%%% 8092 Zurich, Switzerland", +%%% telephone = "+41 (1) 632.55.34", +%%% FAX = "+41 (1) 262.43.62", +%%% email = "balemi@aut.ee.ethz.ch (Internet)", +%%% keywords = "LaTeX, publisher style", +%%% supported = "yes, but with delay", +%%% mainserver = "ifa.ethz.ch" +%%% docstring = "document-style for automatica, the journal +%%% of the International Federation of Automatic +%%% Control (IFAC). +%%% The default font size is 10 points (IFAC10.sty) +%%% but 9pt, 11pt and 12pt are available too. +%%% +%%% Usage: +%%% \documentstyle[twocolumn,Xpt,twoside]{automatica} +%%% \author{} +%%% \title{} +%%% \shortabstract{} +%%% \keywords{} +%%% \maketitle +%%% \begin{abstract} ... \end{abstract} +%%% +%%% The command "\markboth{leftTEXT}{rightTEXT}" +%%% puts the text "leftTEXT" and "rightTEXT" +%%% with the page number on the even resp. odd +%%% headers when the "twoside" option is selected. +%%% The head on the title page is defined by +%%% "\head{firstHEAD}". +%%% In order to remove headers, insert +%%% \thispagestyle{empty}\pagestyle{empty} or +%%% \thispagestyle{plain}\pagestyle{plain} +%%% right after the \maketitle command!! +%%% +%%% See also IFACarticle.sty, IFAC.bst", +%%% } +%%% =========================================================================== +\typeout{Document Style `automatica' <3-AUG-93>.} +\def\shortabstract#1{\gdef\@shortabstract{#1}} +\def\keywords#1{\gdef\@keywords{#1}} +\newif\if@tmptwocolumn \@tmptwocolumnfalse +\newif\if@draftversion \@draftversionfalse + +\def\@ptsize{10} +\@namedef{ds@9pt}{\def\@ptsize{9}} +\@namedef{ds@10pt}{\def\@ptsize{10}} +\@namedef{ds@11pt}{\def\@ptsize{11}} +\@namedef{ds@12pt}{\def\@ptsize{12}} +% the file twocolumn.sty is not read as it changes \textwidth. +% Next line sets @tmptwocolumn to true which lets later execute \twocolumn +\@namedef{ds@twocolumn}{\global\@tmptwocolumntrue } +\def\ds@twoside{\@twosidetrue \@mparswitchtrue} +\@namedef{ds@draft}{\global\@draftversiontrue \overfullrule 5pt } +\@options + + + +\textheight 245mm +\textwidth 160mm +\columnsep 8.5mm +\topmargin -15mm +\parindent 1em +\parskip 0em +\headsep 3ex +\headheight 12pt +\lineskip 1pt +\normallineskip 1pt +\def\baselinestretch{1} +\oddsidemargin 4mm +\evensidemargin 4mm + + + +%% +%% Check if we have selected 10 points +\def\@tempa{10}\ifx\@ptsize\@tempa +\typeout{-- This is a 10 point document} +\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt +\abovedisplayskip 10pt plus2pt minus5pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip 6pt plus3pt +minus3pt\let\@listi\@listI} +\def\small{\@setsize\small{11pt}\ixpt\@ixpt +\abovedisplayskip 8.5pt plus 3pt minus 4pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus2pt\belowdisplayshortskip 4pt plus2pt minus 2pt +\def\@listi{\leftmargin\leftmargini \topsep 4pt plus 2pt minus 2pt\parsep 2pt +plus 1pt minus 1pt +\itemsep \parsep}} +\def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt} +\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} +\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} +\def\large{\@setsize\large{14pt}\xiipt\@xiipt} +\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} +\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} +\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} +\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} +\fi +%% +%% Check if we have selected 11 points +\def\@tempa{11}\ifx\@ptsize\@tempa +\typeout{-- This is an 11 point document} +\def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt +\abovedisplayskip 1em plus2pt minus5pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus3pt minus3pt} +\def\small{\@setsize\small{12pt}\xpt\@xpt} +\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt} +\def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} +\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} +\def\large{\@setsize\large{14pt}\xiipt\@xiipt} +\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt} +\def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt} +\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt} +\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt} +\fi +%% +%% Check if we have selected 12 points +\def\@tempa{12}\ifx\@ptsize\@tempa +\typeout{-- This is a 12 point document} +\def\@normalsize{\@setsize\normalsize{14pt}\xiipt\@xiipt +\abovedisplayskip 1em plus3pt minus6pt\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus3pt\belowdisplayshortskip .6em plus4pt minus4pt} +\def\small{\@setsize\small{11.4pt}\xpt\@xpt} +\def\footnotesize{\@setsize\footnotesize{10pt}\ixpt\@ixpt} +\def\scriptsize{\@setsize\scriptsize{9pt}\viiipt\@viiipt} +\def\tiny{\@setsize\tiny{8pt}\vipt\@vipt} +\def\large{\@setsize\large{18pt}\xivpt\@xivpt} +\def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} +\def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} +\def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} +\let\Huge=\huge +\fi + +%% Definitions for PARAGRAPHS +%% +\abovedisplayskip 1em plus.3em minus.6em +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip \z@ plus.3em +\belowdisplayshortskip .6em plus.4em minus.4em + +%% Definitions for LISTS +%% +\leftmargini 2em +\leftmarginii 1em +\leftmarginiii 1em +\leftmarginiv .5em +\leftmarginv .5em +\leftmarginvi .5em +\marginparwidth 48pt +\marginparsep 10pt +\labelsep 5pt +\leftmargin\leftmargini +%\labelwidth \z@ +\labelwidth\leftmargini\advance\labelwidth-\labelsep + +\def\@listI{\leftmargin\leftmargini + \topsep -\parskip \addtolength{\topsep}{0.5em}} +\@listI +\def\@listi{\leftmargin\leftmargini + \topsep -\parskip \addtolength{\topsep}{0.5em}} +\def\@listii{\leftmargin\leftmarginii\labelwidth\leftmarginii + \advance\labelwidth-\labelsep \topsep \z@} +\def\@listiii{\leftmargin\leftmarginiii\labelwidth\leftmarginiii + \advance\labelwidth-\labelsep \topsep \z@} +\def\@listiv{\leftmargin\leftmarginiv\labelwidth\leftmarginiv + \advance\labelwidth-\labelsep \topsep \z@} +\def\@listv{\leftmargin\leftmarginv\labelwidth\leftmarginv + \advance\labelwidth-\labelsep \topsep \z@} +\def\@listvi{\leftmargin\leftmarginvi\labelwidth\leftmarginvi + \advance\labelwidth-\labelsep \topsep \z@} + +\def\labelenumi{\theenumi.} +\def\theenumi{\arabic{enumi}} +\def\labelenumii{(\theenumii)} +\def\theenumii{\alph{enumii}} +\def\p@enumii{\theenumi} +\def\labelenumiii{\theenumiii.} +\def\theenumiii{\roman{enumiii}} +\def\p@enumiii{\theenumi(\theenumii)} +\def\labelenumiv{\theenumiv.} +\def\theenumiv{\Alph{enumiv}} +\def\p@enumiv{\p@enumiii\theenumiii} + +\def\labelitemi{$\bullet$} +\def\labelitemii{\bf --} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} + +%%% Defines footnotes to bear symbols instead of numbers. +%%% Reset with each new page +\def\automaticafn#1{\@automaticafn{\@nameuse{c@#1}}} +\def\@automaticafn#1{\ifcase#1\or \dagger\or \ddagger\or + \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger + \or \ddagger\ddagger \else\@ctrerr\fi\relax} +\@addtoreset{footnote}{page} +\def\thefootnote{\automaticafn{footnote}} + +\def\verse{\let\\=\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent + \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} +\let\endverse\endlist +\def\quotation{\list{}{\listparindent 1.5em + \itemindent\listparindent + \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]} +\let\endquotation=\endlist +\def\quote{\list{}{\rightmargin\leftmargin}\item[]} +\let\endquote=\endlist + +\def\descriptionlabel#1{\hspace\labelsep \bf #1} +\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} +\let\enddescription\endlist + + +\def\theequation{\arabic{equation}} +% equation numbering starts with section. +\def\theequation{\thesection.\arabic{equation}} + + +\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \else \newpage \fi \thispagestyle{empty}\c@page\z@} +\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} + +\arraycolsep 5pt \tabcolsep 6pt \arrayrulewidth .4pt \doublerulesep 2pt +\tabbingsep \labelsep + +\skip\@mpfootins = \skip\footins +\fboxsep = 3pt \fboxrule = .4pt + +\newcounter{part} +\newcounter {section} +\newcounter {subsection}[section] +\newcounter {subsubsection}[subsection] +\newcounter {paragraph}[subsubsection] +\newcounter {subparagraph}[paragraph] +\def\paragraph{\subsubsection*} +\setcounter{secnumdepth}{3} + +\def\thepart{\Roman{part}} +\def\thesection {\arabic{section}} +\def\thesubsection {{\rm \arabic{section}.\arabic{subsection}}} +\def\thesubsubsection {\arabic{section}.\arabic{subsection}.\arabic{subsubsection}} +\def\theparagraph {\thesubsubsection.\arabic{paragraph}} +\def\thesubparagraph {\theparagraph.\arabic{subparagraph}} + +\def\@pnumwidth{1.55em} +\def\@tocrmarg {2.55em} +\def\@dotsep{4.5} +\setcounter{tocdepth}{3} + +\def\tableofcontents{\section*{Contents\@mkboth{CONTENTS}{CONTENTS}} + \@starttoc{toc}} +\def\l@part#1#2{\addpenalty{\@secpenalty} + \addvspace{2.25em plus 1pt} \begingroup + \@tempdima 3em \parindent \z@ \rightskip \@pnumwidth \parfillskip +-\@pnumwidth + {\large \bf \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}}\par + \nobreak \endgroup} +\def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt} +\@tempdima 1.5em \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \bf \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil +\nobreak\hbox to\@pnumwidth{\hss #2}\par + \endgroup} + +\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} +\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} +\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} +\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} +\def\listoffigures{\section*{List of Figures\@mkboth + {LIST OF FIGURES}{LIST OF FIGURES}}\@starttoc{lof}} +\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} +\def\listoftables{\section*{List of Tables\@mkboth + {LIST OF TABLES}{LIST OF TABLES}}\@starttoc{lot}} +\let\l@table\l@figure + + +\newif\if@restonecol +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 35pt\twocolumn[\section*{Index}] + \@mkboth{INDEX}{INDEX}\thispagestyle{plain}\parindent\z@ + \parskip\z@ plus .3pt\relax\let\item\@idxitem} +\def\@idxitem{\par\hangindent 40pt} +\def\subitem{\par\hangindent 40pt \hspace*{20pt}} +\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}} +\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} +\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax} + + +%% FOOTNOTES +% +\skip\footins 10pt plus 4pt minus 2pt +\footnotesep 7pt +\footskip 3.5em +\skip\@mpfootins = \skip\footins +\fboxsep = 3pt \fboxrule = .4pt + +\def\footnoterule{\kern-3\p@ + \hrule width .33\columnwidth + \kern 2.6\p@} + +\long\def\@makefntext#1{\parindent 1em\noindent + \hbox to 1.8em{\hss$^{\@thefnmark}$}#1} + + + +%% Definitions for FLOATS +%% +%% Normal floats %% Floats on double columns +\floatsep 12pt plus 2pt minus 2pt \dblfloatsep 12pt plus 2pt minus 2pt +\textfloatsep 12pt plus 2pt minus 4pt \dbltextfloatsep 12pt plus 2pt minus 4pt +\@maxsep 20pt \@dblmaxsep 20pt +\@fptop 0pt plus 1fil \@dblfptop 0pt plus 1fil +\@fpsep 18pt plus 2fil \@dblfpsep 8pt plus 2fil +\@fpbot 0pt plus 1fil \@dblfpbot 0pt plus 1fil +\def\topfraction{1.0} \def\dbltopfraction{1.0} +\def\floatpagefraction{0.8} \def\dblfloatpagefraction{0.8} +\setcounter{topnumber}{2} \setcounter{dbltopnumber}{4} +% +\intextsep 12pt plus 2pt minus 2pt +\setcounter{bottomnumber}{2} +\def\bottomfraction{.4} +\setcounter{totalnumber}{4} +\def\textfraction{.2} + +% redefine CAPTION + +\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \normalsize + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}{#1}\par + \endgroup} + +% redefine caption + +\def\tablestring{table} +\def\figurestring{figure} + +\long\def\@makecaption#1#2#3{ +\ifx\figurestring#3 + \vskip 3pt + \setbox\@tempboxa\hbox{\small #1.~ #2} + \ifdim\wd\@tempboxa>\hsize \centering{\small #1. #2}\par + \else \hbox to\hsize{\hfil\box\@tempboxa\hfil} + \fi + \vskip -3pt \vskip -\topsep +\else + \vskip -3pt + \setbox\@tempboxa\hbox{\small #1.~ {\sc #2}} + \ifdim\wd\@tempboxa>\hsize \centering{\small #1. {\sc #2}}\par + \else \hbox to\hsize{\hfil\box\@tempboxa\hfil} + \fi + \vskip 10pt +\fi +} + +\newcounter{figure} +\def\thefigure{\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{{\sc Fig.} \thefigure} +\def\figure{\@float{figure}} +\let\endfigure\end@float +\@namedef{figure*}{\@dblfloat{figure}} +\@namedef{endfigure*}{\end@dblfloat} +\newcounter{table} +\def\thetable{\@arabic\c@table} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{{\sc Table } \thetable} +\def\table{\@float{table}} +\let\endtable\end@float +\@namedef{table*}{\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat} + + +\def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\em #1\ #2:}]} + +\if@twoside \def\ps@headings{\let\@mkboth\markboth +\def\@oddfoot{}\def\@evenfoot{}\def\@evenhead{\rm \thepage\hfil \sl +\leftmark}\def\@oddhead{\hbox{}\sl \rightmark \hfil +\rm\thepage}\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth +>\z@ + \thesection\hskip 1em\relax \fi ##1}}{}}\def\subsectionmark##1{\markright +{\ifnum \c@secnumdepth >\@ne + \thesubsection\hskip 1em\relax \fi ##1}}} +\else \def\ps@headings{\let\@mkboth\markboth +\def\@oddfoot{}\def\@evenfoot{}\def\@oddhead{\hbox {}\sl \rightmark \hfil +\rm\thepage}\def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth +>\z@ + \thesection\hskip 1em\relax \fi ##1}}}} +\fi +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddhead{\hbox{}\hfil\rightmark \hfil \thepage} + \def\@oddfoot{} + \def\@evenhead{\thepage \hfil{\sc \leftmark}\hfil\hbox{}} + \def\@evenfoot{} + \def\sectionmark##1{} + \def\subsectionmark##1{} +} +\def\head#1{\def\@head{#1}} +\head{\parbox{\textwidth}{\scriptsize{\em Automatica}, +Vol. XX, No. Y, pp. xx--yy, 1999\hfill +0001-0001/99 \$6.00+0.00\protect\\ +Printed in Great Britain\hfill\copyright 1999 Pergamon Press Ltd}} + +\def\ps@titlepagestyle{\let\@mkboth\@gobbletwo + \def\@oddhead{\hfil\@head\hfil} + \def\@oddfoot{\rm\hfil\thepage\hfil} + \def\@evenhead{\hfil\@head\hfil} + \let\@evenfoot\@oddfoot +} + +%% defines the command for putting the header +%% footernote{TEXT} is the same as markboth{TEXT}{TEXT}. Here for +%% compatibility with other style files. +\def\markboth#1#2{\def\leftmark{#1}\def\rightmark{#2}} +\def\footernote#1{\markboth{#1}{#1}\head{#1}} + + +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} + +\ps@myheadings + +\pagenumbering{arabic} \onecolumn \if@twoside\else\raggedbottom\fi + +\def\maketitle{ +\par + \begingroup + \def\thefootnote{\fnsymbol{footnote}} + \def\@makefnmark{\hbox + to 0pt{$^{\@thefnmark}$\hss}} + \if@twocolumn + \twocolumn[\@maketitle] + \else \newpage + \global\@topnum\z@ \@maketitle \fi\thispagestyle{titlepagestyle}\@thanks + \endgroup + \let\maketitle\relax + \let\@maketitle\relax + \gdef\@thanks{}\gdef\@author{}\gdef\@keywords{}\gdef\@shortabstract{}\gdef\@title{}\let\thanks\relax} + +\def\@maketitle{\newpage + \null + \vskip 15mm +\begin{center} +\advance \rightskip by 15mm +\advance \leftskip by 15mm + {\huge \@title \par} \vskip 2.5em { \lineskip .5em +\rm\@author +} +\end{center} +\par +\advance \rightskip by 15mm +\advance \leftskip by 15mm + \vskip 0.7em {\noindent\large\it\@shortabstract\par} \normalsize\rm + \par + \vskip 0.7em + \vskip 1em \noindent {\footnotesize\bf{Key Words}--- }\footnotesize\@keywords + \par + \vskip 2.5em +} + +\def\abstract{\footnotesize\noindent{\bf Abstract}---} +\def\endabstract{\par} + +\mark{{}{}} + +\def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi + \par \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi + \addtolength{\@tempskipa}{-\parskip} + \if@nobreak \everypar{}\else + \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar + {\@ssect{#2}{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} + +\gdef\@punct{.~~ } % Punctuation after run-in section heading + +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \def\@svsec{} + \else + \refstepcounter{#1} + \edef\@svsec{{\rm\csname the#1\endcsname}.\hskip .5em } + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup #6\relax + \@hangfrom{\hskip #3\relax}{\@svsec\interlinepenalty \@M #8\par} + \endgroup + \csname #1mark\endcsname{#7} + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\else + \protect\numberline{\csname the#1\endcsname}\fi#7} + \else + \def\@svsechd{#6\hskip #3\@svsec #8\@punct\csname#1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\else + \protect\numberline{\csname the#1\endcsname}\fi#7}}% + \fi% + \@xsect{#5}} + +\def\@ssect#1#2#3#4#5#6{\@tempskipa #4\relax + \ifdim \@tempskipa>\z@ + \begingroup #5\@hangfrom{\hskip #2}{\interlinepenalty \@M + #6\par}\endgroup + \else \def\@svsechd{#5\hskip #2\relax #6\@punct}\fi + \@xsect{#4}} + +\def\@xsect#1{\@tempskipa #1\relax + \ifdim \@tempskipa>\z@ + \par \nobreak + \addtolength{\@tempskipa}{-\parskip} + \vskip \@tempskipa + \@afterheading + \else \global\@nobreakfalse \global\@noskipsectrue + \everypar{\if@noskipsec \global\@noskipsecfalse + \clubpenalty\@M \hskip -\parindent + \begingroup \@svsechd \endgroup \unskip + \hskip -#1 + \else \clubpenalty \@clubpenalty + \everypar{}\fi}\fi\ignorespaces} + + +\def\section{\@startsection{section}{1}{\z@} +{3.3ex plus 1ex minus 1ex}{0.1ex plus 0.1ex}{\centering\small}} +\def\subsection{\@startsection{subsection}{2}{\z@}{2.9ex plus +.5ex minus .1ex}{.2ex plus .0ex}{\it}} +%.5ex minus .1ex}{0ex plus .0ex}{\advance \leftskip by 3mm\ \ \it}{.\mbox{~}}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{2.9ex plus +.5ex minus .1ex}{0ex plus .0ex}{\indent\it}} + +\if@tmptwocolumn \twocolumn \sloppy \flushbottom\fi +\if@draftversion \def\baselinestretch{1.5} \fi + +% **************************************** +% * BIBLIOGRAPHY * +% **************************************** +% + + + +\def\thebibliography#1{\section*{REFERENCES\@mkboth + {REFERENCES}{REFERENCES}}\vskip 0.5ex\list + {[\arabic{enumi}]}{\labelwidth 0mm \leftmargin\labelwidth + \itemindent -3mm +\advance\leftmargin 3mm + \usecounter{enumi}} +\footnotesize + \def\newblock{\hskip .11em plus .33em minus .07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} +\let\endthebibliography=\endlist + +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi + \def\@citea{}\@cite{\@for\@citeb:=#2\do + {\@citea\def\@citea{;\penalty\@m\ }\@ifundefined + {b@\@citeb}{{\bf ?}\@warning + {Citation `\@citeb' on page \thepage \space undefined}}% +\hbox{\csname b@\@citeb\endcsname}}}{#1}} + +\def\@biblabel#1{\hfill} +\def\@mynamedef#1{\expandafter\def\csname #1\endcsname} +\def\bibcite#1#2{\global\@mynamedef{b@#1}{#2}} + + +%% This is mostly taken from: HARVARD.STY Source: FILESERV@SHSU.BITNET +%% written by Peter Williams' <peterw@archsci.arch.su.OZ.AU> + +%DEFAULT DEFINITIONS +\def\@cite#1#2{({#1\if@tempswa ; #2\fi})} +\def\@citeasnoun#1#2{{#1\if@tempswa ; #2\fi)}} + +\def\@hiteml[#1]#2#3#4{\item[]\if@filesw% + { \def\protect##1{\string ##1\space}\immediate% +\write\@auxout{\string\harvardcite{#4}{#2}{#1}{#3}}}\fi% +\protect\hspace*{-\labelwidth}\protect\hspace*{-\labelsep}\ignorespaces} + +\def\@hitem#1#2#3{\item[]\if@filesw% + { \def\protect##1{\string ##1\space}\immediate% +\write\@auxout{\string\harvardcite{#3}{#1}{#1}{#2}}}\fi% +\protect\hspace*{-\labelwidth}\protect\hspace*{-\labelsep}\ignorespaces} + +\def\harvarditem{\@ifnextchar [{\@hiteml}{\@hitem}} + +\def\harvardcite#1#2#3#4{ + \global\@namedef{bhf@#1}{#2} + \global\@namedef{bha@#1}{#3} + \global\@namedef{bhy@#1}{#4}\global\@namedef{b@#1}{\csname bhf@#1\endcsname} +} + +\def\cite{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} +\def\citeasnoun{\@ifnextchar [{\@tempswatrue\@citexasnoun} + {\@tempswafalse\@citexasnoun[]} +} + +\def\@enamedef#1{\expandafter\edef\csname #1\endcsname} + +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi + \def\@citea{}\@cite{\@for\@citeb:=#2\do + {\@citea\def\@citea{\@hisep\penalty\@m\ }\@ifundefined + {b@\@citeb}{{\bf ?}\@warning + {Citation `\@citeb' on page \thepage \space undefined}}% +{{\csname b@\@citeb\endcsname\@hysep\csname bhy@\@citeb\endcsname}% +\global\@enamedef{b@\@citeb}{\csname bha@\@citeb\endcsname}}% +}}{#1}} + +\def\@citexasnoun[#1]#2{% +\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% +\@citeasnoun{{\@ifundefined% +{b@#2}% +{{\bf ?}\@warning{Citation `#2' on page \thepage \space undefined}}% +{{\csname b@#2\endcsname\ (\csname bhy@#2\endcsname}% +\global\@namedef{b@#2}{\csname bha@#2\endcsname}}% +}}{#1}} + +\gdef\hysep@agsm{\ }\gdef\hisep@agsm{,}% +\gdef\hysep@dcu{, }\gdef\hisep@dcu{;}% +\let\@hysep\hysep@agsm \let\@hisep\hisep@agsm +\def\citationstyle#1{% +\global\@namedef{@hysep}{\csname hysep@#1\endcsname}% +\global\@namedef{@hisep}{\csname hisep@#1\endcsname}} + +% CHANGE \end{document} - to handle double definitions +\def\enddocument{\@checkend{document}\clearpage\begingroup +\if@filesw \immediate\closeout\@mainaux +\def\global\@namedef##1##2{}\def\newlabel{\@testdef r}% +\def\bibcite{\@testdef b}% +\def\harvardcite{\@testbibh}\@tempswafalse \makeatletter\input \jobname.aux +\if@tempswa \@warning{Label(s) may have changed. Rerun to get +cross-references right}\fi\fi\endgroup\deadcycles\z@\@@end} + +\def\@testbibh #1#2#3{ + \def\@tempa{#2}\expandafter + \ifx \csname bhf@#1\endcsname \@tempa + \def\@tempa{#3}\expandafter + \ifx \csname bha@#1\endcsname \@tempa + \else \@tempswatrue + \fi + \else + \@tempswatrue + \fi +} + +%DEFAULT DEFINITIONS +\def\@cite#1#2{({#1\if@tempswa ; #2\fi})} +\def\@citeasnoun#1#2{{#1\if@tempswa ; #2\fi)}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%% End of automatica.sty %%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/macros/latex209/contrib/ifac/automatica.tex b/macros/latex209/contrib/ifac/automatica.tex new file mode 100644 index 0000000000..35c6735d70 --- /dev/null +++ b/macros/latex209/contrib/ifac/automatica.tex @@ -0,0 +1,208 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%% automatica.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%% %%%%%%%%%%%%% +%%%%%%%%%% More information: see the header of automatica.sty %%%%%%%%%%%%% +%%%%%%%%%% %%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\documentstyle[twocolumn]{automatica} +\begin{document} +\title{Sample LaTeX Article with Style Files for +Automatica\thanks{This sample article has been created in 1992}} + +\markboth{S. Balemi}{Sample \LaTeX\ article with style files for Automatica} + +\head{\scriptsize{\em Automatica}\hfill +Sample file. \copyright 1993 Silvano Balemi} + +\author{SILVANO BALEMI\thanks{ +Automatic Control Laboratory, ETH-Zentrum, +8092 Z\"urich, Switzerland. E-mail: balemi@aut.ee.ethz.ch}} + +\shortabstract{This paper shows how to use the LaTeX style file +created for Automatica, the journal of the International Federation of +Automatic Control.} + +\keywords{\LaTeX\ style files, bibliography style files, Automatica, +journal of the International Federation of Automatic Control (IFAC).} + +\maketitle + +\begin{abstract} +This article explains how to use a \LaTeX\ style that produces a good +approximation to the style used in the Automatica. +The article is itself an example of the {\tt automatica.sty} style in action. +\end{abstract} + +\section{INTRODUCTION} +\noindent{\footnotesize\sc This paper }uses two style files created +for \LaTeX\ in order to format +an article as in Automatica, the journal of the +International Federation of Automatic Control. + +The style file {\tt automatica.sty} is to be used in combination with +the substyles +{\tt IFAC\-art9.sty}, {\tt IFAC\-art10.sty}, {\tt IFAC\-art12.sty} +and {\tt IFAC.bst}. All these +files should be in a path known by \LaTeX. + +\subsection{Main Changes} +Input that is suitable for the \LaTeX\ {\tt article} style needs only +a couple of modifications besides changing the document style to {\tt +automatica}. The \verb+IEEEtran.sty+ style file first has to be +selected with a command of the form +\begin{center} +\verb+\documentstyle[...]{automatica}+ +\end{center} + +The main differences with the usual article style file pertain to some +definitions in the title page. +\begin{itemize} +\item After the name of the author, go to the next line with + \verb+\\[2mm]+ for the address. +\item the syntax for keywords is \verb+\keywords{...}+ +\item the syntax for for the newly defined item +shortabstract is \verb+\shortabstract{...}+ +\item \verb+\maketitle+ comes after title, keywords and shortabstract. +\end{itemize} + +Automatica papers do not include author affiliations below or beside +the name(s) of the author(s); use \verb+\thanks{...}+ to list +addresses. + +The default font size is 10 points, and {\tt IFACart10.sty} will be +used; the only other fonts available are 9 and 12 points, which are +defined by {\tt IFACart9.sty} and {\tt IFACart12.sty} respectively. +The default page style has been redefined and is now set by {\tt +automatica.sty} to ``\verb+myheadings+''. + +\subsection*{Running headers} +The running heads can be set with the command +\verb+\markboth{leftTEXT}{rightTEXT}+. If the option {\tt twoside} is not +selected, both even and odd headers will display {\tt rightTEXT} +together with the page number. +The command \verb+\head{headTEXT}+ will put the string \verb+headTEXT+ +on the header of the title page. + + +\begin{figure} +\begin{center} +\setlength{\unitlength}{0.0105in}% +\begin{picture}(242,150)(73,660) +\put( 75,660){\framebox(240,150){}} +\put(105,741){\vector( 0, 1){ 66}} +\put(105,675){\vector( 0, 1){ 57}} +\put( 96,759){\vector( 1, 0){204}} +\put(105,789){\line( 1, 0){ 90}} +\put(195,789){\line( 2,-1){ 90}} +\put(105,711){\line( 1, 0){ 60}} +\put(165,711){\line( 5,-3){ 60}} +\put(225,675){\line( 1, 0){ 72}} +\put( 96,714){\vector( 1, 0){204}} +\put( 99,720){\makebox(0,0)[rb]{\raisebox{0pt}[0pt][0pt]{\tenrm $\varphi$}}} +\put(291,747){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\tenrm $\omega$}}} +\put(291,702){\makebox(0,0)[lb]{\raisebox{0pt}[0pt][0pt]{\tenrm $\omega$}}} +\put( 99,795){\makebox(0,0)[rb]{\raisebox{0pt}[0pt][0pt]{\tenrm $M$}}} +\end{picture} +\end{center} +\caption{This is a sample figure. The caption comes after the figure.} +\end{figure} +\nocite{TeX} + +The captions for figures and tables have been modified; the caption of +the tables must come before the table. + +\begin{table}[hb] +\caption{The caption comes before the table.} +\begin{center} +\begin{tabular}{|c||c|c|}\hline +$\otimes$&0&1\\\hline\hline +0&0&1\\\hline +1&1&0\\\hline +\end{tabular} +\end{center} +\end{table} + + +The bibliography style file {\tt IFAC\-.bst} formats with BibTeX the +references from the bibliography file according to IFAC instructions. +It takes advantage of the definitions introduced by Peter Williams for +the family of harvard bibliography style files. The references can be +cited with the usual syntax ({\em e.g.\ \/}\verb+\cite{LaTeX}+, +yielding the citation ``\cite{LaTeX}'') or with with a new command +({\em e.g.\ \/}\verb+\citeasnoun{LaTeX}+, yielding the citation +``\citeasnoun{LaTeX}''). The two commands support all original options +in the book of \citeasnoun{LaTeX}. + +In figure \ref{figure2} we can see an example for the definition of +the title page and of the main commands needed. + +\begin{figure}[htb] +\mbox{}\hrulefill +\vspace{-.3em} +\begin{verbatim} +\documentstyle[twocolumn]{automatica} +\begin{document} + +\title{Sample LaTeX Article...} + +\markboth{S. Balemi}{Sample ..} + +\head{\scriptsize{\em Automatica}\hfill +Sample file. c 1993 Silvano Balemi} + +\author{SILVANO BALEMI\thanks{ +Automatic Control Laboratory,...} + +\shortabstract{This paper ..} + +\keywords{\LaTeX\ style files...} + +\maketitle + +\begin{abstract} +This article explains how to use .. +\end{abstract} + +\section{INTRODUCTION} +\noindent +{\footnotesize\sc This paper }uses.. + +\bibliographystyle{IFAC} +\bibliography{bib-file} +\end{document} +\end{verbatim} +\vspace{-.6em} +\mbox{}\hrulefill +\caption{Input used to produce this paper.} +\label{figure2} +\end{figure} + +\section{CONCLUSIONS} +A sample article for publication in the IFAC Proceedings has been +presented. It uses some \LaTeX\ style files which format +the article automatically according to IFAC instructions. + +\nocite{*} +\bibliographystyle{IFAC} + +%\bibliography{bib-file} % commented if *.bbl file included, as seen below + +%%%%%%%%%%%%%%%%% BIBLIOGRAPHY IN THE LaTeX file !!!!! %%%%%%%%%%%%%%%%%%%%%%%% +%% This is nothing else than the automatica.bbl file that you would %% +%% obtain with BibTeX: this way, you do not need a separate *.bbl file %% +%%---------------------------------------------------------------------------%% +\begin{thebibliography}{xx} +\harvarditem[Knuth]{Knuth}{1989}{TeX} +Knuth, D. (1989). {\em The {\rm + T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}book}. Addison-Wesley. +\harvarditem[Kopka]{Kopka}{1989}{LaTeXD} +Kopka, H. (1989). {\em \LaTeX, eine Einf\"uhrung}. Addison-Wesley. +\harvarditem[Lamport]{Lamport}{1986}{LaTeX} +Lamport, L. (1986). {\em A Document Preparation System: \LaTeX, User's Guide + and Reference Manual}. Addison Wesley Publishing Company. +\end{thebibliography} +% +%%---------------------------------------------------------------------------%% + +\end{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%% End of automatica.tex %%%%%%%%%%%%%%%%%%%%%%%%%%% |