summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/ifac
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/ifac
Initial commit
Diffstat (limited to 'macros/latex209/contrib/ifac')
-rw-r--r--macros/latex209/contrib/ifac/IFAC.bst1294
-rw-r--r--macros/latex209/contrib/ifac/IFACarticle.sty705
-rw-r--r--macros/latex209/contrib/ifac/IFACdoc.tex260
-rw-r--r--macros/latex209/contrib/ifac/IFACsample.bib96
-rw-r--r--macros/latex209/contrib/ifac/IFACsample.tex249
-rw-r--r--macros/latex209/contrib/ifac/README10
-rw-r--r--macros/latex209/contrib/ifac/automatica.sty662
-rw-r--r--macros/latex209/contrib/ifac/automatica.tex208
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 %%%%%%%%%%%%%%%%%%%%%%%%%%%