From b90e3db7f33fec4598e155d820951f823a0721a1 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 3 Jan 2011 23:45:17 +0000 Subject: new latex package aomart 1.1 (2jan11) git-svn-id: svn://tug.org/texlive/trunk@20919 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/bibtex/bst/aomart/aomalpha.bst | 1460 +++++++++++++++++ Master/texmf-dist/bibtex/bst/aomart/aomplain.bst | 1315 ++++++++++++++++ Master/texmf-dist/doc/latex/aomart/Makefile | 65 + Master/texmf-dist/doc/latex/aomart/README | 7 + Master/texmf-dist/doc/latex/aomart/aomart.bib | 123 ++ Master/texmf-dist/doc/latex/aomart/aomart.pdf | Bin 0 -> 279994 bytes Master/texmf-dist/doc/latex/aomart/aomsample.bib | 241 +++ Master/texmf-dist/doc/latex/aomart/aomsample.pdf | Bin 0 -> 383625 bytes Master/texmf-dist/doc/latex/aomart/aomsample.tex | 1729 ++++++++++++++++++++ Master/texmf-dist/doc/latex/aomart/aomsample1.pdf | Bin 0 -> 383639 bytes Master/texmf-dist/doc/latex/aomart/aomsample1.tex | 1722 ++++++++++++++++++++ Master/texmf-dist/doc/latex/aomart/fullref.pl | 62 + Master/texmf-dist/source/latex/aomart/aomart.dtx | 1732 +++++++++++++++++++++ Master/texmf-dist/source/latex/aomart/aomart.ins | 29 + Master/texmf-dist/tex/latex/aomart/aomart.cls | 407 +++++ Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/tlpsrc/aomart.tlpsrc | 0 Master/tlpkg/tlpsrc/collection-publishers.tlpsrc | 1 + 18 files changed, 8894 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/bibtex/bst/aomart/aomalpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/aomart/aomplain.bst create mode 100644 Master/texmf-dist/doc/latex/aomart/Makefile create mode 100644 Master/texmf-dist/doc/latex/aomart/README create mode 100644 Master/texmf-dist/doc/latex/aomart/aomart.bib create mode 100644 Master/texmf-dist/doc/latex/aomart/aomart.pdf create mode 100644 Master/texmf-dist/doc/latex/aomart/aomsample.bib create mode 100644 Master/texmf-dist/doc/latex/aomart/aomsample.pdf create mode 100644 Master/texmf-dist/doc/latex/aomart/aomsample.tex create mode 100644 Master/texmf-dist/doc/latex/aomart/aomsample1.pdf create mode 100644 Master/texmf-dist/doc/latex/aomart/aomsample1.tex create mode 100644 Master/texmf-dist/doc/latex/aomart/fullref.pl create mode 100644 Master/texmf-dist/source/latex/aomart/aomart.dtx create mode 100644 Master/texmf-dist/source/latex/aomart/aomart.ins create mode 100644 Master/texmf-dist/tex/latex/aomart/aomart.cls create mode 100644 Master/tlpkg/tlpsrc/aomart.tlpsrc (limited to 'Master') diff --git a/Master/texmf-dist/bibtex/bst/aomart/aomalpha.bst b/Master/texmf-dist/bibtex/bst/aomart/aomalpha.bst new file mode 100644 index 00000000000..03022a2940b --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/aomart/aomalpha.bst @@ -0,0 +1,1460 @@ +%%% +%%% This is aomplain.bst file, based on amsplain.bst by AMS +%%% to support Annals of Mathematics specific fields. +%%% +% Copyright 2010, The Annals of Mathematics. +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Boris Veytsman, +% +% +% This work consists of the file aomart.dtx the +% derived file aomart.cls, and the file aomplain.bst +% +% Version 0.10, 2010/12/18 +% +%%% + +% See the file btxbst.doc for extra documentation other than +% what is included here. And see btxhak.tex for a description +% of the BibTeX language and how to use it. + +% This defines the types of fields that can occur in a database entry +% for this particular bibliography style. Except for `language', +% this is the standard list from alpha.bst. + +%% Types of entries currently allowed in a BibTeX file: +%% +%% ARTICLE -- An article from a journal or magazine. +%% +%% BOOK -- A book with an explicit publisher. +%% +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% +%% INCOLLECTION -- A part of a book having its own title. +%% +%% INPROCEEDINGS -- An article in a conference proceedings. +%% +%% MANUAL -- Technical documentation. +%% +%% MASTERSTHESIS -- A Master's thesis. +%% +%% MISC -- Use this type when nothing else fits. +%% +%% PHDTHESIS -- A PhD thesis. +%% +%% PROCEEDINGS -- The proceedings of a conference. +%% +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. + +ENTRY + { + address + arxiv + author + booktitle + chapter + doi + edition + editor + howpublished + institution + jfmnumber + journal + key + language + month + mrnumber + note + number + organization + pages + publisher + school + series + title + type + venue + volume + year + zblnumber + } + {} + { label extra.label sort.label bysame } + +% Removed after.sentence, after.block---not needed. + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +% Scratch variables: + +STRINGS { s t } + +% Utility functions + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK=====================================================================" +top$ +stack$ +"ENDSTACK==================================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +% n.dashify is used to make sure page ranges get the TeX code +% (two hyphens) for en-dashes. + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +% tie.or.space.connect connects two items with a ~ if the +% second item is less than 3 letters long, otherwise it just puts an +% ordinary space. + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { " " * } + if$ +} + +% either.or.check gives a warning if two mutually exclusive fields +% were used in the database. + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% output.nonnull is called by output. + +FUNCTION {output.nonnull} +% remove the top item from the stack because it's in the way. +{ 's := + output.state mid.sentence = +% If we're in mid-sentence, add a comma to the new top item and write it + { ", " * write$ } +% Otherwise, if we're at the beginning of a bibitem, + { output.state before.all = +% just write out the top item from the stack; + 'write$ +% and the last alternative is that we're at the end of the current +% bibitem, so we add a period to the top stack item and write it out. + { add.period$ " " * write$ } + if$ + mid.sentence 'output.state := + } + if$ +% Put the top item back on the stack that we removed earlier. + s +} + +% Output checks to see if the stack top is empty; if not, it +% calls output.nonnull to write it out. + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% Standard warning message for a missing or empty field. For the user +% we call any such field `missing' without respect to the distinction +% made by BibTeX between missing and empty. + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + +% Output.check is like output except that it gives a warning on-screen +% if the given field in the database entry is empty. t is the field +% name. + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ +% This empty string is the first thing that will be written +% the next time write$ is called. Done this way because each +% item is saved on the stack until we find out what punctuation +% should be added after it. Therefore we need an empty first item. + "" + before.all 'output.state := +} + +FUNCTION {output.nonempty.mrnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \mr{" swap$ * "}. " * write$ } + if$ +} + +FUNCTION {output.nonempty.zblnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \zbl{" swap$ * "}. " * write$ } + if$ +} + + +FUNCTION {output.nonempty.jfmnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \jfm{" swap$ * "}. " * write$ } + if$ +} + + +FUNCTION {output.nonempty.arxiv} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \arxiv{" swap$ * "}. " * write$ } + if$ +} + +FUNCTION {output.nonempty.doi} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \doi{" swap$ * "}. " * write$ } + if$ +} + + +FUNCTION {fin.entry} +{ add.period$ + write$ + mrnumber output.nonempty.mrnumber + zblnumber output.nonempty.zblnumber + jfmnumber output.nonempty.jfmnumber + arxiv output.nonempty.arxiv + doi output.nonempty.doi + newline$ +} + +% Removed new.block, new.block.checka, new.block.checkb, new.sentence, +% new.sentence.checka, and new.sentence.checkb functions here, since they +% don't seem to be needed in the AMS style. Also moved some real +% basic functions like `and' and 'or' earlier in the file. + +INTEGERS { nameptr namesleft numnames } + +% The extra section to write out a language field was added +% for AMSPLAIN.BST. Not present in plain.bst. + +FUNCTION {format.language} +{ language empty$ + { "" } + { " (" language * ")" * } + if$ +} + +% This version of format.names puts names in the format +% +% F. von Last, Jr. +% +% (i.e., first name first, abbreviating initials). + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "\bgroup\scshape{{}}{f.~}{vv~}{ll}{, jj}\egroup{{}}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { bysame "\bysame" = + { bysame } + { author format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.booktitle} +{ title empty$ + { "" } + { title emphasize } + if$ +} + + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "journal name" missing.warning ""} + { " \emph{" journal * "}" * } + if$ + volume empty$ + 'skip$ + { " \textbf{" * volume * "}" * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ +} + +% For formatting the issue number for a journal article. + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +% For formatting miscellaneous dates + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%% The volume, series and number information is sort of tricky. +%% This code handles it as follows: +%% If the series is present, and the volume, but not the number, +%% then we do "\emph{Book title}, \emph{Series Name} \bf{000}" +%% If the series is present, and the number, but not the volume, +%% then we do "\emph{Book title}, \emph{Series Name} no. 000" +%% If the series is present, and both number and volume, +%% then we do "\emph{Book title}, \bf{XX} \emph{Series Name} no. 000" +%% Finally, if the series is absent, +%% then we do "\emph{Book title}, \bf{XX}" +%% or "\emph{Book title}, no. 000" +%% and if both volume and number are present, give a warning message. + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ "\emph{" series * "}" * } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { " " * } % add a space to separate. + if$ + "no." number tie.or.space.connect * % add the number information + } + if$ + } +%% If the volume is NOT EMPTY: + { "\textbf{" volume * "}" * + number empty$ + { series empty$ + 'skip$ + { "\emph{" series * "}" * " " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { " " * series * " no." * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + + +%% format.inproc.title.where.editors is used by inproceedings entry types + +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. +%% We add parentheses around the venue (place where conference +%% was held). +%% Likewise we add parentheses around the editors' names. + +FUNCTION {format.inproc.title.venue.editors} +{ booktitle empty$ + { "" } + { " in \emph{" booktitle * "}" * + venue empty$ + 'skip$ + { add.space.if.necessary "(" * venue * ")" * } + if$ + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ + } + if$ +} + +%% format.incoll.title.editors is similar to format.inproc... but +%% omits the address. For collections that are not proceedings volumes. + +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } + { editor empty$ + { " in \emph{" booktitle * "}" * } + { " in \emph{" booktitle * "}" * + add.space.if.necessary "(" * format.nonauthor.editors * ")" * + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages n.dashify } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.book.pages + { type empty$ + { "ch.~" } + { type "l" change.case$ " " * } + if$ + chapter * + pages empty$ + 'skip$ + { ", " * format.book.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% The format.crossref functions haven't been paid much attention +% at the present time (June 1990) and could probably use some +% work. MJD + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in \emph{" booktitle * "}" * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% The main functions for each entry type. + +% journal, vol and year are formatted together because they are +% not separated by commas. + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year "journal, volume, and year" output.check + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages "pages" output.check + } + if$ + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.booktitle "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.booktitle "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.booktitle "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.incoll.title.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.venue.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + address output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.booktitle "title" output.check + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.booktitle "title" output.check + venue empty$ + 'skip$ + { add.space.if.necessary "(" * venue * ")" * } + if$ + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label "" + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { + longest.label last.sort.label next.extra prev.author this.author +} + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + "abcxyz" 'prev.author := + "" 'this.author := +} + +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$ + author empty$ { editor empty$ { "" } 'editor if$ } 'author if$ + 'this.author := + this.author prev.author = + { "\bysame" 'bysame := } + { "" 'bysame := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}" + write$ newline$ + "\providecommand{\mr}[1]{\href{http://www.ams.org/mathscinet-getitem?mr=#1}{MR~#1}}" + write$ newline$ + "\providecommand{\zbl}[1]{\href{http://www.zentralblatt-math.org/zmath/en/search/?q=an:#1}{Zbl~#1}}" + write$ newline$ + "\providecommand{\jfm}[1]{\href{http://www.emis.de/cgi-bin/JFM-item?#1}{JFM~#1}}" + write$ newline$ + "\providecommand{\arxiv}[1]{\href{http://www.arxiv.org/abs/#1}{arXiV~#1}}" + write$ newline$ + "\providecommand{\doi}[1]{\href{http://dx.doi.org/#1}{doi: #1}}" + write$ newline$ + "\providecommand{\MR}{\relax\ifhmode\unskip\space\fi MR }" + write$ newline$ + "% \MRhref is called by the amsart/book/proc definition of \MR." + write$ newline$ + "\providecommand{\MRhref}[2]{%" + write$ newline$ + " \href{http://www.ams.org/mathscinet-getitem?mr=#1}{#2}" + write$ newline$ + "}" + write$ newline$ + "\providecommand{\href}[2]{#2}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} diff --git a/Master/texmf-dist/bibtex/bst/aomart/aomplain.bst b/Master/texmf-dist/bibtex/bst/aomart/aomplain.bst new file mode 100644 index 00000000000..80ab83f5e49 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/aomart/aomplain.bst @@ -0,0 +1,1315 @@ +%%% +%%% This is aomplain.bst file, based on amsplain.bst by AMS +%%% to support Annals of Mathematics specific fields. +%%% +% Copyright 2010, The Annals of Mathematics. +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Boris Veytsman, +% +% +% This work consists of the file aomart.dtx the +% derived file aomart.cls, and the file aomplain.bst +% +% Version 0.9, 2010/12/04 +% +%%% + + +% This defines the types of fields that can occur in a database entry +% for this particular bibliography style. Except for `language', +% this is the standard list from plain.bst. + +%% Types of entries currently allowed in a BibTeX file: +%% +%% ARTICLE -- An article from a journal or magazine. +%% +%% BOOK -- A book with an explicit publisher. +%% +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% +%% INCOLLECTION -- A part of a book having its own title. +%% +%% INPROCEEDINGS -- An article in a conference proceedings. +%% +%% MANUAL -- Technical documentation. +%% +%% MASTERSTHESIS -- A Master's thesis. +%% +%% MISC -- Use this type when nothing else fits. +%% +%% PHDTHESIS -- A PhD thesis. +%% +%% PROCEEDINGS -- The proceedings of a conference. +%% +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. + +ENTRY + { + address + arxiv + author + booktitle + chapter + doi + edition + editor + howpublished + institution + jfmnumber + journal + key + language + month + mrnumber + note + number + organization + pages + publisher + school + series + title + type + venue + volume + year + zblnumber + } + {} + { label bysame } + +% Removed after.sentence, after.block---not needed. + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +% Scratch variables: + +STRINGS { s t } + +% Utility functions + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK=====================================================================" +top$ +stack$ +"ENDSTACK==================================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +% n.dashify is used to make sure page ranges get the TeX code +% (two hyphens) for en-dashes. + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +% tie.or.space.connect connects two items with a ~ if the +% second item is less than 3 letters long, otherwise it just puts an +% ordinary space. + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { " " * } + if$ +} + +% either.or.check gives a warning if two mutually exclusive fields +% were used in the database. + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% output.nonnull is called by output. + +FUNCTION {output.nonnull} +% remove the top item from the stack because it's in the way. +{ 's := + output.state mid.sentence = +% If we're in mid-sentence, add a comma to the new top item and write it + { ", " * write$ } +% Otherwise, if we're at the beginning of a bibitem, + { output.state before.all = +% just write out the top item from the stack; + 'write$ +% and the last alternative is that we're at the end of the current +% bibitem, so we add a period to the top stack item and write it out. + { add.period$ " " * write$ } + if$ + mid.sentence 'output.state := + } + if$ +% Put the top item back on the stack that we removed earlier. + s +} + +% Output checks to see if the stack top is empty; if not, it +% calls output.nonnull to write it out. + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% Standard warning message for a missing or empty field. For the user +% we call any such field `missing' without respect to the distinction +% made by BibTeX between missing and empty. + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + +% Output.check is like output except that it gives a warning on-screen +% if the given field in the database entry is empty. t is the field +% name. + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ +% This empty string is the first thing that will be written +% the next time write$ is called. Done this way because each +% item is saved on the stack until we find out what punctuation +% should be added after it. Therefore we need an empty first item. + "" + before.all 'output.state := +} + +FUNCTION {output.nonempty.mrnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \mr{" swap$ * "}. " * write$ } + if$ +} + + +FUNCTION {output.nonempty.zblnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \zbl{" swap$ * "}. " * write$ } + if$ +} + +FUNCTION {output.nonempty.jfmnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \jfm{" swap$ * "}. " * write$ } + if$ +} + + +FUNCTION {output.nonempty.arxiv} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \arxiv{" swap$ * "}. " * write$ } + if$ +} + +FUNCTION {output.nonempty.doi} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \doi{" swap$ * "}. " * write$ } + if$ +} + + +FUNCTION {fin.entry} +{ add.period$ + write$ + mrnumber output.nonempty.mrnumber + zblnumber output.nonempty.zblnumber + jfmnumber output.nonempty.jfmnumber + arxiv output.nonempty.arxiv + doi output.nonempty.doi + newline$ +} + +% Removed new.block, new.block.checka, new.block.checkb, new.sentence, +% new.sentence.checka, and new.sentence.checkb functions here, since they +% don't seem to be needed in the AMS style. Also moved some real +% basic functions like `and' and 'or' earlier in the file. + +INTEGERS { nameptr namesleft numnames } + +% The extra section to write out a language field was added +% for AMSPLAIN.BST. Not present in plain.bst. + +FUNCTION {format.language} +{ language empty$ + { "" } + { " (" language * ")" * } + if$ +} + +% This version of format.names puts names in the format +% +% F. von Last, Jr. +% +% (i.e., first name first, abbreviating initials). + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "\bgroup\scshape{{}}{f.~}{vv~}{ll}{, jj}\egroup{{}}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { bysame "\bysame" = + {"\bysame"} + { author format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.booktitle} +{ title empty$ + { "" } + { title emphasize } + if$ +} + + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "journal name" missing.warning ""} + { " \emph{" journal * "}" * } + if$ + volume empty$ + 'skip$ + { " \textbf{" * volume * "}" * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ +} + +% For formatting the issue number for a journal article. + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +% For formatting miscellaneous dates + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%% The volume, series and number information is sort of tricky. +%% This code handles it as follows: +%% If the series is present, and the volume, but not the number, +%% then we do "\emph{Book title}, \emph{Series Name} \bf{000}" +%% If the series is present, and the number, but not the volume, +%% then we do "\emph{Book title}, \emph{Series Name} no. 000" +%% If the series is present, and both number and volume, +%% then we do "\emph{Book title}, \bf{XX} \emph{Series Name} no. 000" +%% Finally, if the series is absent, +%% then we do "\emph{Book title}, \bf{XX}" +%% or "\emph{Book title}, no. 000" +%% and if both volume and number are present, give a warning message. + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ "\emph{" series * "}" * } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { " " * } % add a space to separate. + if$ + "no." number tie.or.space.connect * % add the number information + } + if$ + } +%% If the volume is NOT EMPTY: + { "\textbf{" volume * "}" * + number empty$ + { series empty$ + 'skip$ + { "\emph{" series * "}" * " " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { " " * series * " no." * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +%% format.inproc.title.where.editors is used by inproceedings entry types + +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. +%% We add parentheses around the venue (place where conference +%% was held). +%% Likewise we add parentheses around the editors' names. + +FUNCTION {format.inproc.title.venue.editors} +{ booktitle empty$ + { "" } + { " in \emph{" booktitle * "}" * + venue empty$ + 'skip$ + { add.space.if.necessary "(" * venue * ")" * } + if$ + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ + } + if$ +} + +%% format.incoll.title.editors is similar to format.inproc... but +%% omits the address. For collections that are not proceedings volumes. + +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } + { editor empty$ + { " in \emph{" booktitle * "}" * } + { " in \emph{" booktitle * "}" * + add.space.if.necessary "(" * format.nonauthor.editors * ")" * + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages n.dashify } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.book.pages + { type empty$ + { "ch.~" } + { type "l" change.case$ " " * } + if$ + chapter * + pages empty$ + 'skip$ + { ", " * format.book.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% The format.crossref functions haven't been paid much attention +% at the present time (June 1990) and could probably use some +% work. MJD + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in \emph{" booktitle * "}" * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% The main functions for each entry type. + +% journal, vol and year are formatted together because they are +% not separated by commas. + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages "pages" output.check + } + if$ + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.booktitle "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.booktitle "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.incoll.title.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.venue.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + address output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.booktitle "title" output.check + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.booktitle "title" output.check + venue empty$ + 'skip$ + { add.space.if.necessary "(" * venue * ")" * } + if$ + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label prev.author this.author } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := + "abcxyz" 'prev.author := + "" 'this.author := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + author empty$ + { editor empty$ + { "" } + 'editor + if$ + } + 'author + if$ + 'this.author := + this.author prev.author = + { "\bysame" 'bysame := } + { "" 'bysame := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {write.lines} +{ { duplicate$ "." = NOT } + { write$ newline$ } + while$ + pop$ +} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}" + write$ newline$ + "\providecommand{\mr}[1]{\href{http://www.ams.org/mathscinet-getitem?mr=#1}{MR~#1}}" + write$ newline$ + "\providecommand{\zbl}[1]{\href{http://www.zentralblatt-math.org/zmath/en/search/?q=an:#1}{Zbl~#1}}" + write$ newline$ + "\providecommand{\jfm}[1]{\href{http://www.emis.de/cgi-bin/JFM-item?#1}{JFM~#1}}" + write$ newline$ + "\providecommand{\arxiv}[1]{\href{http://www.arxiv.org/abs/#1}{arXiV~#1}}" + write$ newline$ + "\providecommand{\doi}[1]{\href{http://dx.doi.org/#1}{doi: #1}}" + write$ newline$ + "\providecommand{\MR}{\relax\ifhmode\unskip\space\fi MR }" + write$ newline$ + "% \MRhref is called by the amsart/book/proc definition of \MR." + write$ newline$ + "\providecommand{\MRhref}[2]{%" + write$ newline$ + " \href{http://www.ams.org/mathscinet-getitem?mr=#1}{#2}" + write$ newline$ + "}" + write$ newline$ + "\providecommand{\href}[2]{#2}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} diff --git a/Master/texmf-dist/doc/latex/aomart/Makefile b/Master/texmf-dist/doc/latex/aomart/Makefile new file mode 100644 index 00000000000..f98c622f0b0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/aomart/Makefile @@ -0,0 +1,65 @@ +# +# Makefile for aomart package +# +# This file is in public domain +# +# $Id: Makefile,v 1.3 2010-10-25 01:46:35 boris Exp $ +# + +PACKAGE=aomart + +SAMPLES = \ + aomsample.tex\ + aomsample1.tex + +PDF = $(PACKAGE).pdf ${SAMPLES:%.tex=%.pdf} + +all: ${PDF} + + +%.pdf: %.dtx $(PACKAGE).cls + pdflatex $< + - bibtex $* + pdflatex $< + - makeindex -s gind.ist -o $*.ind $*.idx + - makeindex -s gglo.ist -o $*.gls $*.glo + pdflatex $< + while ( grep -q '^LaTeX Warning: Label(s) may have changed' $*.log) \ + do pdflatex $<; done + + +%.cls: %.ins %.dtx + pdflatex $< + +%.pdf: %.tex $(PACKAGE).cls + pdflatex $< + - bibtex $* + pdflatex $< + while ( grep -q '^LaTeX Warning: Label(s) may have changed' $*.log) \ + do pdflatex $<; done + +aomsample1.tex: fullref.pl aomsample.tex + perl fullref.pl aomsample.tex > aomsample1.tex + + +.PRECIOUS: $(PACKAGE).cfg $(PACKAGE).cls + + +clean: + $(RM) $(PACKAGE).cls *.log *.aux \ + *.cfg *.glo *.idx *.toc \ + *.ilg *.ind *.out *.lof \ + *.lot *.bbl *.blg *.gls \ + *.dvi *.ps *.thm *.tgz *.zip + +distclean: clean + $(RM) $(PDF) aomsample1.tex + +# +# Archive for the distribution. Includes typeset documentation +# +archive: all clean + tar -czvf $(PACKAGE).tgz --exclude '*~' --exclude '*.tgz' --exclude '*.zip' --exclude CVS . + +zip: all clean + zip -r $(PACKAGE).zip * -x '*~' -x '*.tgz' -x '*.zip' -x CVS -x 'CVS/*' \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/aomart/README b/Master/texmf-dist/doc/latex/aomart/README new file mode 100644 index 00000000000..4ad6fc0c555 --- /dev/null +++ b/Master/texmf-dist/doc/latex/aomart/README @@ -0,0 +1,7 @@ + LaTeX Class for The Annals of Mathematics + Boris Veytsman + Version 1.1 + +This package provides the class for typesetting articles for The Annals +of Mathematics, http://annals.princeton.edu/. + diff --git a/Master/texmf-dist/doc/latex/aomart/aomart.bib b/Master/texmf-dist/doc/latex/aomart/aomart.bib new file mode 100644 index 00000000000..2746077e4a6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/aomart/aomart.bib @@ -0,0 +1,123 @@ +Generated on Sun Jan 2 17:18:36 2011 (1294006716). + + +,-------------------. +| BIBTEX ENTRIES | +`-------------------' + +@book{Graetzer00:MathIntoLaTeX, + address = {Boston}, + author = {George Gr\"aetzer}, + edition = {Third}, + publisher = {Birkh\"auser}, + title = {Math into \LaTeX}, + year = {2000}, +} + +@misc{TeXFAQ, + author = {{UK \TeX{} Users Group}}, + howpublished = {\url{http://www.tex.ac.uk/cgi-bin/texfaq2html}}, + title = {{UK} List of {\TeX} Frequently Asked Questions}, + year = {2008}, +} + +@manual{Downes04:amsart, + author = {Michael Downes and Barbara Beeton}, + month = {August}, + note = + {\url{http://mirrors.ctan.org/macros/latex/required/amslatex/classes}}, + organization = {American Mathematical Society}, + title = {The \textsf{amsart}, \textsf{amsproc}, and + \textsf{amsbook} document~classes}, + year = {2004}, +} + +@manual{Rahtz06:Hyperref, + author = {Sebastian Rahtz and Heiko Oberdiek}, + month = {September}, + note = + {\url{http://mirrors.ctan.org/macros/latex/contrib/hyperref}}, + title = {Hypertext Marks in \LaTeX: a Manual for Hyperref}, + year = {2006}, +} + +@manual{Oberdiek06:Ifpdf, + author = {Heiko Oberdiek}, + month = {February}, + note = + {\url{http://mirrors.ctan.org/macros/latex/contrib/oberdiek}}, + title = {The \textsf{ifpdf} Package}, + year = {2006}, +} + +@manual{Oostrum04:Fancyhdr, + author = {van Oostrum, Piet}, + month = {March}, + note = + {\url{http://mirrors.ctan.org/macros/latex/contrib/fancyhdr}}, + title = {Page Layout in \LaTeX}, + year = {2004}, +} + +@manual{Znamenskii03:Cmtiup, + author = {Sergei V. Znamenskii}, + month = {January}, + note = {\url{http://mirrors.ctan.org/fonts/cm/cmtiup}}, + title = {Unslanted Punctuation in {Computer Modern} Italic}, + year = {2003}, +} + +@manual{Haralambous96:Yhmath, + author = {Yannis Haralambous}, + month = {January}, + note = + {\url{http://mirrors.ctan.org/macros/latex/contrib/yhmath/}}, + title = {My Humble Additions to {(La)\TeX} Mathematics}, + year = {1996}, +} + +@manual{amsldoc, + month = {February}, + note = + {\url{http://mirrors.ctan.org/macros/latex/required/amslatex/math/amsldoc.pd% +f}}, + organization = {American Mathematical Society}, + title = {User's Guide for the \textsf{amsmath} Package + (Version~2.0)}, + year = {2002}, +} + +@manual{instr-l, + month = {August}, + note = + {\url{http://mirrors.ctan.org/macros/latex/required/amslatex/classes/instr-l% +.pdf}}, + organization = {American Mathematical Society}, + title = {Instructions for Preparation of Papers and + Monographs, {AMS\LaTeX}}, + year = {2004}, +} + +@manual{amsthdoc, + month = {August}, + note = + {\url{http://mirrors.ctan.org/macros/latex/required/amslatex/classes/amsthdo% +c.pdf}}, + organization = {American Mathematical Society}, + title = {Using the \texttt{amsthm} Package}, + year = {2004}, +} + +@book{Goossens97:LateXGraphicsCompanion, + address = {Reading, Ma.}, + author = {Michel Goossens and Sebastian Rahtz and + Frank Mittelbach}, + chapter = {}, + publisher = {Addison-Wesley}, + series = {Addison-Wesley Series on Tools and Techniques for + Computer Typesetting}, + title = {The \LaTeX{} Graphics Companion: Illustrating + Documents With \TeX{} and {PostScript}}, + year = {1997}, +} + diff --git a/Master/texmf-dist/doc/latex/aomart/aomart.pdf b/Master/texmf-dist/doc/latex/aomart/aomart.pdf new file mode 100644 index 00000000000..431c2e133ac Binary files /dev/null and b/Master/texmf-dist/doc/latex/aomart/aomart.pdf differ diff --git a/Master/texmf-dist/doc/latex/aomart/aomsample.bib b/Master/texmf-dist/doc/latex/aomart/aomsample.bib new file mode 100644 index 00000000000..8eb847605bd --- /dev/null +++ b/Master/texmf-dist/doc/latex/aomart/aomsample.bib @@ -0,0 +1,241 @@ + +@Article{dihe:newdir, + author = {W. Diffie and E. Hellman}, + title = {New directions in Cryptography}, + journal = {IEEE Transactions on Information Theory}, + year = 1976, + volume = 22, + number = 5, + pages = {644--654} +} + + + + + +@Misc{fre:cichon, + author = {D. H. Fremlin}, + title = {Cichon's Diagram}, + howpublished = {presented at the +S{\'e}minaire Initiation {\`a} l'Analyse, G. Choquet, M. Rogalski, J. +Saint Raymond, at the Universit{\'e} Pierre et Marie Curie, Paris, 23e +ann{\'e}e.}, + year = {1983/194} +} + + + + + +@Book{fre:riesz, + author = {D. H. Fremlin}, + title = {Topological {R}iesz Spaces and Measure Theory}, + publisher = {Cambridge University Press}, + year = 2008 +} + + +@Article{gouja:lagrmeth, + author = {I. P. Goulden and D. M. Jackson}, + title = {The Enumeration of Directed +Closed {E}uler Trails and Directed {H}amiltonian Circuits by +{L}angrangian Methods}, + journal = {European Journal of Combinatorics}, + year = 1981, + volume = 2, + pages = {131--212} +} + + + +@Book{hapa:graphenum, + author = {F. Harary and E. M. Palmer}, + title = {Graphical Enumeration}, + publisher = {Academic Press}, + year = 1973 +} + + + + +@InProceedings{imlelu:oneway, + author = {R. Impagliazzo and L. Levin and M. Luby}, + title = {Pseudo-random Generation from One-Way Functions}, + booktitle = {Proc. 21st STOC}, + pages = {12--24}, + year = 1989, + venue = {Seattle, WA, USA}, + address = {New York}, + publisher = {ACM} +} + + + + +@TechReport{komiyo:unipfunc, + author = {M. Kojima and S. Mizuno and A. Yoshise}, + title = {A New Continuation Method +for Complementarity Problems With Uniform $p$-Functions}, + institution = {Tokyo Inst. of Technology, Dept. of Information Sciences}, + year = 1987, + number = {B-194}, + address = {Tokyo} +} + + + + +@TechReport{komiyo:lincomp, + author = {M. Kojima and S. Mizuno and A. Yoshise}, + title = {A Polynomial-Time Algorithm For a Class of Linear +Complementarity Problems}, + institution = {Tokyo Inst. of Technology, Dept. of Information Sciences}, + year = 1987, + number = {B-193}, + address = {Tokyo} +} + + + + +@Article{liuchow:formalsum, + author = {C. J. Liu and Yutze Chow}, + title = {On Operator and Formal Sum Methods for +Graph Enumeration Problems}, + journal = {SIAM Journal of Algorithms and Discrete Methods}, + year = 1984, + volume = 5, + pages = {384--438} +} + + + + +@Article{mami:matrixth, + author = {M. Marcus and H. Minc}, + title = {A Survey of Matrix Theory and Matrix +Inequalities}, + journal = {Complementary Series in Mathematics}, + year = 1964, + volume = 14, + pages = {21--48} +} + + + + +@TechReport{miyoki:lincomp, + author = {S. Mizuno and A. Yoshise and T. Kikuchi}, + title = {Practical Polynomial Time +Algorithms for Linear Complementarity Problems}, + institution = {Tokyo Inst. of Technology, Dept. of Industrial Engineering +and Management}, + year = 1988, + number = 13, + address = {Tokyo}, + month = {April} +} + + + + +@TechReport{moad:quadpro, + author = {R. D. Monteiro and I. Adler}, + title = {Interior Path Following Primal-Dual +Algorithms, Part {II}: Quadratic Programming}, + institution = {Dept. of Industrial Engineering and Operations Research}, + year = 1987, + type = {Working Paper}, + month = {August} +} + + + + +@Book{ste:sint, + author = {E. M. Stein}, + title = {Singular Integrals and Differentiability Properties +of Functions}, + publisher = {Princeton Univ. Press}, + year = 1970, + address = {Princeton, NJ} +} + + + + + +@PhdThesis{ye:intalg, + author = {Y. Ye}, + title = {Interior Algorithms for Linear, Quadratic and Linearly +Constrained Convex Programming}, + school = {Stanford Univ., Dept. of Engineering--Economic Systems}, + year = 1987, + address = {Palo Alto, CA}, + month = {July} +} + +@article{Lenstra74, +author= {Lenstra, Jr., Hendrik W. and Oort, Frans}, +title= {Simple abelian varieties having a prescribed formal isogeny type.}, +journal="J. Pure Appl. Algebra ", +volume= 4 , +pages= {47--53}, +year= 1974, +doi = "10.1016/0022-4049(74)90029-2", +zblnumber = {50:7163}, +mrnumber = {0279.14009} +} + + + +@Unpublished{Minasyan08, + author = {A. Minasyan and D. Osin}, + title = {Normal Automorphisms of Relatively Hyperbolic Groups}, + arxiv = {0809.2408}, + year = 2008 +} + +@Article{Zarhin92, + author = {Zarhin, Yuri G.}, + title = {Abelian Varieties Having a Reduction of {K3} Type}, + journal = {Duke Math J.}, + year = 1992, + volume = 65, + number = 3, + pages = {511--527}, + mrnumber= {1154181}, + zblnumber = {0774.14039} +} + +@Book{Arnold89:MathMethodsMechanics, + author = {Arnold, V. I.}, + title = {Mathematical Methods of Classical Mechanics}, + publisher = {Springer}, + year = 1989, + volume = 60, + series = {Graduate Texts in Mathematics}, + address = {New York}, + edition = {Second} +} + +@Book{Michal48, + author = {A. D. Michal}, + title = {Matrix and Tensor Calculus}, + publisher = {John Wiley \& Sons, Inc.; Chapman \& Hall, Ltd.}, + year = 1948, + series = {GALCIT Aeronautical Series}, + address = {New York; London} +} + + +@Article{Michal38, + author = {A. D. Michal}, + title = {Differential Calculus in Linear Topological Spaces}, + journal = {Proc. nat. Acad. Sci. USA}, + year = 1938, + volume = 24, + jfmnumber = {64.0366.02}, + pages = {340--342} +} + diff --git a/Master/texmf-dist/doc/latex/aomart/aomsample.pdf b/Master/texmf-dist/doc/latex/aomart/aomsample.pdf new file mode 100644 index 00000000000..2050fcf922c Binary files /dev/null and b/Master/texmf-dist/doc/latex/aomart/aomsample.pdf differ diff --git a/Master/texmf-dist/doc/latex/aomart/aomsample.tex b/Master/texmf-dist/doc/latex/aomart/aomsample.tex new file mode 100644 index 00000000000..ed82b05ac26 --- /dev/null +++ b/Master/texmf-dist/doc/latex/aomart/aomsample.tex @@ -0,0 +1,1729 @@ +%%% ==================================================================== +%%% @LaTeX-file{ +%%% filename = "aomsample.tex", +%%% copyright = "Copyright 1995, 1999 American Mathematical Society, +%%% 2005 Hebrew University Magnes Press, +%%% all rights reserved. Copying of this file is +%%% authorized only if either: +%%% (1) you make absolutely no changes to your copy, +%%% including name; OR +%%% (2) if you do make changes, you first rename it +%%% to some other name.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) +[1994/12/01]% LaTeX date must December 1994 or later +\documentclass[manuscript]{aomart} +%\documentclass[screen]{aomart} +%\documentclass{aomart} +% Some definitions useful in producing this sort of documentation: +\chardef\bslash=`\\ % p. 424, TeXbook +% Normalized (nonbold, nonitalic) tt font, to avoid font +% substitution warning messages if tt is used inside section +% headings and other places where odd font combinations might +% result. +\newcommand{\ntt}{\normalfont\ttfamily} +% command name +\newcommand{\cn}[1]{{\protect\ntt\bslash#1}} +% LaTeX package name +\newcommand{\pkg}[1]{{\protect\ntt#1}} +% File name +\newcommand{\fn}[1]{{\protect\ntt#1}} +% environment name +\newcommand{\env}[1]{{\protect\ntt#1}} +\hfuzz1pc % Don't bother to report overfull boxes if overage is < 1pc + +% Theorem environments + +%% \theoremstyle{plain} %% This is the default +\newtheorem[{}\it]{thm}{Theorem}[section] +\newtheorem{cor}[thm]{Corollary} +\newtheorem{lem}[thm]{Lemma} +\newtheorem{prop}[thm]{Proposition} +\newtheorem{ax}{Axiom} + +\theoremstyle{definition} +\newtheorem{defn}{Definition}[section] +\newtheorem{rem}{Remark}[section] +\newtheorem*[{}\it]{notation}{Notation} +\newtheorem{step}{Step} + +%\numberwithin{equation}{section} + +\newcommand{\thmref}[1]{Theorem~\ref{#1}} +\newcommand{\secref}[1]{\S\ref{#1}} +\newcommand{\lemref}[1]{Lemma~\ref{#1}} + + +% Math definitions + +\newcommand{\A}{\mathcal{A}} +\newcommand{\B}{\mathcal{B}} +\newcommand{\st}{\sigma} +\newcommand{\XcY}{{(X,Y)}} +\newcommand{\SX}{{S_X}} +\newcommand{\SY}{{S_Y}} +\newcommand{\SXY}{{S_{X,Y}}} +\newcommand{\SXgYy}{{S_{X|Y}(y)}} +\newcommand{\Cw}[1]{{\hat C_#1(X|Y)}} +\newcommand{\G}{{G(X|Y)}} +\newcommand{\PY}{{P_{\mathcal{Y}}}} +\newcommand{\X}{\mathcal{X}} +\newcommand{\wt}{\widetilde} +\newcommand{\wh}{\widehat} + +\DeclareMathOperator{\per}{per} +\DeclareMathOperator{\cov}{cov} +\DeclareMathOperator{\non}{non} +\DeclareMathOperator{\cf}{cf} +\DeclareMathOperator{\add}{add} +\DeclareMathOperator{\Cham}{Cham} +\DeclareMathOperator{\IM}{Im} +\DeclareMathOperator{\esssup}{ess\,sup} +\DeclareMathOperator{\meas}{meas} +\DeclareMathOperator{\seg}{seg} + +% \interval is used to provide better spacing after a [ that +% is used as a closing delimiter. +\newcommand{\interval}[1]{\mathinner{#1}} + +% Notation for an expression evaluated at a particular condition. The +% optional argument can be used to override automatic sizing of the +% right vert bar, e.g. \eval[\biggr]{...}_{...} +\newcommand{\eval}[2][\right]{\relax + \ifx#1\right\relax \left.\fi#2#1\rvert} + +% Enclose the argument in vert-bar delimiters: +\newcommand{\envert}[1]{\left\lvert#1\right\rvert} +\let\abs=\envert + +% Enclose the argument in double-vert-bar delimiters: +\newcommand{\enVert}[1]{\left\lVert#1\right\rVert} +\let\norm=\enVert + +%\setcounter{tocdepth}{5} + +\title[Sample Paper]{Sample Paper for the \pkg{aomart} + Class} +\author[AMS]{American Mathematical Society} +\address{AMS\\ +Providence, Rhode Island} +\email{tech-support@ams.org} +\author{Boris Veytsman} +\address{George Mason University\\ +Fairfax, Virginia} +\email{borisv@lk.net} +\urladdr{http://borisv.lk.net} +\givenname{Boris} +\surname{Veytsman} +\thanks{The class was commissioned by Annals of Mathematics} + +\keyword{Hamiltonian paths} +\keyword{Typesetting} +\subject{primary}{matsc2000}{123456789} +\subject{secondary}{matsc2000}{FFFF} + +\received{\formatdate{2004-12-24}} +\revised{\formatdate{2006-04-12}} +\accepted{\formatdate{2007-10-02}} +\published{\formatdate{2008-04-02}} +\publishedonline{\formatdate{2007-11-12}} + +\volumenumber{160} +\issuenumber{1} +\publicationyear{2008} +\papernumber{12} +\startpage{17} +\endpage{} + +\proposed{E. D. Itor} +\seconded{A. S. Sociate} +\corresponding{A. U. Thor} +\version{2.1} + +%\doinumber{10.1215/S0012-7094-92-06520-3} +\mrnumber{MR1154181} +\zblnumber{0774.14039} + + + +\begin{document} + + +\begin{abstract} + This is a test file for \textsf{aomart} class based on the + \texttt{testmath.tex} file from the \textsf{amsmath} distribution. + + It was changed to test the features of the Annals of Mathematics + class. +\end{abstract} + +\maketitle +\tableofcontents + +\section{Introduction} + + +This paper demonstrates the use of \texttt{aomart} class. It is based +on \texttt{testmath.tex} from \AmS-\LaTeX{} distribution. The text +is (slightly) reformatted according to the requirements of the +\texttt{aomart} style. See also +\cite{Lenstra74,Zarhin92,Minasyan08,Arnold89:MathMethodsMechanics,% +Michal48,Michal38}. +\EditorialComment{Are these + quotations necessary?} + + +\section{Enumeration of Hamiltonian paths in a graph} + +Let $\mathbf{A}=(a_{ij})$ be the adjacency matrix of graph $G$. The +corresponding Kirchhoff matrix $\mathbf{K}=(k_{ij})$ is obtained from +$\mathbf{A}$ by replacing in $-\mathbf{A}$ each diagonal entry by the +degree of its corresponding vertex; i.e., the $i$th diagonal entry is +identified with the degree of the $i$th vertex. It is well known that +\begin{equation} +\det\mathbf{K}(i|i)=\text{ the number of spanning trees of $G$}, +\quad i=1,\dots,n +\end{equation} +where $\mathbf{K}(i|i)$ is the $i$th principal submatrix of +$\mathbf{K}$. +\begin{verbatim} +\det\mathbf{K}(i|i)=\text{ the number of spanning trees of $G$}, +\end{verbatim} + +Let $C_{i(j)}$ be the set of graphs obtained from $G$ by attaching edge +$(v_iv_j)$ to each spanning tree of $G$. Denote by $C_i=\bigcup_j +C_{i(j)}$. It is obvious that the collection of Hamiltonian cycles is a +subset of $C_i$. Note that the cardinality of $C_i$ is $k_{ii}\det +\mathbf{K}(i|i)$. Let $\wh X=\{\hat x_1,\dots,\hat x_n\}$. +\begin{verbatim} +$\wh X=\{\hat x_1,\dots,\hat x_n\}$ +\end{verbatim} +Define multiplication for the elements of $\wh X$ by +\begin{equation}\label{multdef} +\hat x_i\hat x_j=\hat x_j\hat x_i,\quad \hat x^2_i=0,\quad +i,j=1,\dots,n. +\end{equation} +Let $\hat k_{ij}=k_{ij}\hat x_j$ and $\hat k_{ij}=-\sum_{j\not=i} \hat +k_{ij}$. Then the number of Hamiltonian cycles $H_c$ is given by the +relation \cite{liuchow:formalsum} +\begin{equation}\label{H-cycles} +\biggl(\prod^n_{\,j=1}\hat x_j\biggr)H_c=\frac{1}{2}\hat k_{ij}\det +\wh{\mathbf{K}}(i|i),\qquad i=1,\dots,n. +\end{equation} +The task here is to express \eqref{H-cycles} +in a form free of any $\hat x_i$, +$i=1,\dots,n$. The result also leads to the resolution of enumeration of +Hamiltonian paths in a graph. + +It is well known that the enumeration of Hamiltonian cycles and paths in +a complete graph $K_n$ and in a complete bipartite graph $K_{n_1n_2}$ +can only be found from \textit{first combinatorial principles} +\cite{hapa:graphenum}. One wonders if there exists a formula which can +be used very efficiently to produce $K_n$ and $K_{n_1n_2}$. Recently, +using Lagrangian methods, Goulden and Jackson have shown that $H_c$ can +be expressed in terms of the determinant and permanent of the adjacency +matrix \cite{gouja:lagrmeth}. However, the formula of Goulden and +Jackson determines neither $K_n$ nor $K_{n_1n_2}$ effectively. In this +paper, using an algebraic method, we parametrize the adjacency matrix. +The resulting formula also involves the determinant and permanent, but +it can easily be applied to $K_n$ and $K_{n_1n_2}$. In addition, we +eliminate the permanent from $H_c$ and show that $H_c$ can be +represented by a determinantal function of multivariables, each variable +with domain $\{0,1\}$. Furthermore, we show that $H_c$ can be written by +number of spanning trees of subgraphs. Finally, we apply the formulas to +a complete multigraph $K_{n_1\dots n_p}$. + +The conditions $a_{ij}=a_{ji}$, $i,j=1,\dots,n$, are not required in +this paper. All formulas can be extended to a digraph simply by +multiplying $H_c$ by 2. Some other discussion can be found +in~\cite{fre:riesz,fre:cichon}. + +\section{Main theorem} +\label{s:mt} + +\begin{notation} For $p,q\in P$ and $n\in\omega$ we write +$(q,n)\le(p,n)$ if $q\le p$ and $A_{q,n}=A_{p,n}$. +\begin{verbatim} +\begin{notation} For $p,q\in P$ and $n\in\omega$ +... +\end{notation} +\end{verbatim} +\end{notation} + +Let $\mathbf{B}=(b_{ij})$ be an $n\times n$ matrix. Let $\mathbf{n}=\{1, +\dots,n\}$. Using the properties of \eqref{multdef}, it is readily seen +that + +\begin{lem}\label{lem-per} +\begin{equation} +\prod_{i\in\mathbf{n}} +\biggl(\sum_{\,j\in\mathbf{n}}b_{ij}\hat x_i\biggr) +=\biggl(\prod_{\,i\in\mathbf{n}}\hat x_i\biggr)\per \mathbf{B} +\end{equation} +where $\per \mathbf{B}$ is the permanent of $\mathbf{B}$. +\end{lem} + +Let $\wh Y=\{\hat y_1,\dots,\hat y_n\}$. Define multiplication +for the elements of $\wh Y$ by +\begin{equation} +\hat y_i\hat y_j+\hat y_j\hat y_i=0,\quad i,j=1,\dots,n. +\end{equation} +Then, it follows that +\begin{lem}\label{lem-det} +\begin{equation}\label{detprod} +\prod_{i\in\mathbf{n}} +\biggl(\sum_{\,j\in\mathbf{n}}b_{ij}\hat y_j\biggr) +=\biggl(\prod_{\,i\in\mathbf{n}}\hat y_i\biggr)\det\mathbf{B}. +\end{equation} +\end{lem} + +Note that all basic properties of determinants are direct consequences +of Lemma~\ref{lem-det}. Write +\begin{equation}\label{sum-bij} +\sum_{j\in\mathbf{n}}b_{ij}\hat y_j=\sum_{j\in\mathbf{n}}b^{(\lambda)} +_{ij}\hat y_j+(b_{ii}-\lambda_i)\hat y_i\hat y +\end{equation} +where +\begin{equation} +b^{(\lambda)}_{ii}=\lambda_i,\quad b^{(\lambda)}_{ij}=b_{ij}, +\quad i\not=j. +\end{equation} +Let $\mathbf{B}^{(\lambda)}=(b^{(\lambda)}_{ij})$. By \eqref{detprod} +and \eqref{sum-bij}, it is +straightforward to show the following +result: +\begin{thm}\label{thm-main} +\begin{equation}\label{detB} +\det\mathbf{B}= +\sum^n_{l =0}\sum_{I_l \subseteq n} +\prod_{i\in I_l}(b_{ii}-\lambda_i) +\det\mathbf{B}^{(\lambda)}(I_l |I_l ), +\end{equation} +where $I_l =\{i_1,\dots,i_l \}$ and $\mathbf{B}^{(\lambda)}(I_l |I_l )$ +is the principal submatrix (obtained from $\mathbf{B}^{(\lambda)}$ +by deleting its $i_1,\dots,i_l $ rows and columns). +\end{thm} + +\begin{rem}[convention] +Let $\mathbf{M}$ be an $n\times n$ matrix. The convention +$\mathbf{M}(\mathbf{n}|\mathbf{n})=1$ has been used in \eqref{detB} and +hereafter. +\end{rem} + +Before proceeding with our discussion, we pause to note that +\thmref{thm-main} yields immediately a fundamental formula which can be +used to compute the coefficients of a characteristic polynomial +\cite{mami:matrixth}: +\begin{cor}\label{BI} +Write $\det(\mathbf{B}-x\mathbf{I})=\sum^n_{l =0}(-1) +^l b_l x^l $. Then +\begin{equation}\label{bl-sum} +b_l =\sum_{I_l \subseteq\mathbf{n}}\det\mathbf{B}(I_l |I_l ). +\end{equation} +\end{cor} +Let +\begin{equation} +\mathbf{K}(t,t_1,\dots,t_n) +=\begin{pmatrix} D_1t&-a_{12}t_2&\dots&-a_{1n}t_n\\ +-a_{21}t_1&D_2t&\dots&-a_{2n}t_n\\ +\hdotsfor[2]{4}\\ +-a_{n1}t_1&-a_{n2}t_2&\dots&D_nt\end{pmatrix}, +\end{equation} +\begin{verbatim} +\begin{pmatrix} D_1t&-a_{12}t_2&\dots&-a_{1n}t_n\\ +-a_{21}t_1&D_2t&\dots&-a_{2n}t_n\\ +\hdotsfor[2]{4}\\ +-a_{n1}t_1&-a_{n2}t_2&\dots&D_nt\end{pmatrix} +\end{verbatim} +where +\begin{equation} +D_i=\sum_{j\in\mathbf{n}}a_{ij}t_j,\quad i=1,\dots,n. +\end{equation} + +Set +\begin{equation*} +D(t_1,\dots,t_n)=\frac{\delta}{\delta t}\eval{\det\mathbf{K}(t,t_1,\dots,t_n) +}_{t=1}. +\end{equation*} +Then +\begin{equation}\label{sum-Di} +D(t_1,\dots,t_n) +=\sum_{i\in\mathbf{n}}D_i\det\mathbf{K}(t=1,t_1,\dots,t_n; i|i), +\end{equation} +where $\mathbf{K}(t=1,t_1,\dots,t_n; i|i)$ is the $i$th principal +submatrix of $\mathbf{K}(t=1,t_1,\dots,t_n)$. + +Theorem ~\ref{thm-main} leads to +\begin{equation}\label{detK1} +\det\mathbf{K}(t_1,t_1,\dots,t_n) +=\sum_{I\in\mathbf{n}}(-1)^{\envert{I}}t^{n-\envert{I}} +\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mathbf{A} +^{(\lambda t)}(\overline{I}|\overline I). +\end{equation} +Note that +\begin{equation}\label{detK2} +\det\mathbf{K}(t=1,t_1,\dots,t_n)=\sum_{I\in\mathbf{n}}(-1)^{\envert{I}} +\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mathbf{A} +^{(\lambda)}(\overline{I}|\overline{I})=0. +\end{equation} + +Let $t_i=\hat x_i,i=1,\dots,n$. Lemma ~\ref{lem-per} yields +\begin{multline} +\biggl(\sum_{\,i\in\mathbf{n}}a_{l _i}x_i\biggr) +\det\mathbf{K}(t=1,x_1,\dots,x_n;l |l )\\ +=\biggl(\prod_{\,i\in\mathbf{n}}\hat x_i\biggr) +\sum_{I\subseteq\mathbf{n}-\{l \}} +(-1)^{\envert{I}}\per\mathbf{A}^{(\lambda)}(I|I) +\det\mathbf{A}^{(\lambda)} +(\overline I\cup\{l \}|\overline I\cup\{l \}). +\label{sum-ali} +\end{multline} +\begin{verbatim} +\begin{multline} +\biggl(\sum_{\,i\in\mathbf{n}}a_{l _i}x_i\biggr) +\det\mathbf{K}(t=1,x_1,\dots,x_n;l |l )\\ +=\biggl(\prod_{\,i\in\mathbf{n}}\hat x_i\biggr) +\sum_{I\subseteq\mathbf{n}-\{l \}} +(-1)^{\envert{I}}\per\mathbf{A}^{(\lambda)}(I|I) +\det\mathbf{A}^{(\lambda)} +(\overline I\cup\{l \}|\overline I\cup\{l \}). +\label{sum-ali} +\end{multline} +\end{verbatim} + +By \eqref{H-cycles}, \eqref{detprod}, and \eqref{sum-bij}, we have +\begin{prop}\label{prop:eg} +\begin{equation} +H_c=\frac1{2n}\sum^n_{l =0}(-1)^{l} +D_{l}, +\end{equation} +where +\begin{equation}\label{delta-l} +D_{l}=\eval[2]{\sum_{I_{l}\subseteq \mathbf{n}} +D(t_1,\dots,t_n)}_{t_i=\left\{\begin{smallmatrix} +0,& \text{if }i\in I_{l}\quad\\% \quad added for centering +1,& \text{otherwise}\end{smallmatrix}\right.\;,\;\; i=1,\dots,n}. +\end{equation} +\end{prop} + +\section{Application} +\label{lincomp} + +We consider here the applications of Theorems~\ref{th-info-ow-ow} and +~\ref{th-weak-ske-owf} to a complete +multipartite graph $K_{n_1\dots n_p}$. It can be shown that the +number of spanning trees of $K_{n_1\dots n_p}$ +may be written +\begin{equation}\label{e:st} +T=n^{p-2}\prod^p_{i=1} +(n-n_i)^{n_i-1} +\end{equation} +where +\begin{equation} +n=n_1+\dots+n_p. +\end{equation} + +It follows from Theorems~\ref{th-info-ow-ow} and +~\ref{th-weak-ske-owf} that +\begin{equation}\label{e:barwq} +\begin{split} +H_c&=\frac1{2n} +\sum^n_{{l}=0}(-1)^{l}(n-{l})^{p-2} +\sum_{l _1+\dots+l _p=l}\prod^p_{i=1} +\binom{n_i}{l _i}\\ +&\quad\cdot[(n-l )-(n_i-l _i)]^{n_i-l _i}\cdot +\biggl[(n-l )^2-\sum^p_{j=1}(n_i-l _i)^2\biggr].\end{split} +\end{equation} +\begin{verbatim} +... \binom{n_i}{l _i}\\ +\end{verbatim} +and +\begin{equation}\label{joe} +\begin{split} +H_c&=\frac12\sum^{n-1}_{l =0} +(-1)^{l}(n-l )^{p-2} +\sum_{l _1+\dots+l _p=l} +\prod^p_{i=1}\binom{n_i}{l _i}\\ +&\quad\cdot[(n-l )-(n_i-l _i)]^{n_i-l _i} +\left(1-\frac{l _p}{n_p}\right) +[(n-l )-(n_p-l _p)]. +\end{split} +\end{equation} + +The enumeration of $H_c$ in a $K_{n_1\dotsm n_p}$ graph can also be +carried out by Theorem ~\ref{thm-H-param} or ~\ref{thm-asym} +together with the algebraic method of \eqref{multdef}. +Some elegant representations may be obtained. For example, $H_c$ in +a $K_{n_1n_2n_3}$ graph may be written +\begin{equation}\label{j:mark} +\begin{split} +H_c=& +\frac{n_1!\,n_2!\,n_3!} +{n_1+n_2+n_3}\sum_i\left[\binom{n_1}{i} +\binom{n_2}{n_3-n_1+i}\binom{n_3}{n_3-n_2+i}\right.\\ +&+\left.\binom{n_1-1}{i} +\binom{n_2-1}{n_3-n_1+i} +\binom{n_3-1}{n_3-n_2+i}\right].\end{split} +\end{equation} + +\section{Secret key exchanges} +\label{SKE} + +Modern cryptography is fundamentally concerned with the problem of +secure private communication. A Secret Key Exchange is a protocol +where Alice and Bob, having no secret information in common to start, +are able to agree on a common secret key, conversing over a public +channel. The notion of a Secret Key Exchange protocol was first +introduced in the seminal paper of Diffie and Hellman +\cite{dihe:newdir}. \cite{dihe:newdir} presented a concrete +implementation of a Secret Key Exchange protocol, dependent on a +specific assumption (a variant on the discrete log), specially +tailored to yield Secret Key Exchange. Secret Key Exchange is of +course trivial if trapdoor permutations exist. However, there is no +known implementation based on a weaker general assumption. + +The concept of an informationally one-way function was introduced +in \cite{imlelu:oneway}. We give only an informal definition here: + +\begin{defn}[one way] A polynomial time +computable function $f = \{f_k\}$ is informationally +one-way if there is no probabilistic polynomial time algorithm which +(with probability of the form $1 - k^{-e}$ for some $e > 0$) +returns on input $y \in \{0,1\}^{k}$ a random element of $f^{-1}(y)$. +\end{defn} +In the non-uniform setting \cite{imlelu:oneway} show that these are not +weaker than one-way functions: +\begin{thm}[\cite{imlelu:oneway} (non-uniform)] +\label{th-info-ow-ow} +The existence of informationally one-way functions +implies the existence of one-way functions. +\end{thm} +We will stick to the convention introduced above of saying +``non-uniform'' before the theorem statement when the theorem +makes use of non-uniformity. It should be understood that +if nothing is said then the result holds for both the uniform and +the non-uniform models. + +It now follows from \thmref{th-info-ow-ow} that + +\begin{thm}[non-uniform]\label{th-weak-ske-owf} Weak SKE +implies the existence of a one-way function. +\end{thm} + +More recently, the polynomial-time, interior point algorithms for linear +programming have been extended to the case of convex quadratic programs +\cite{moad:quadpro,ye:intalg}, certain linear complementarity problems +\cite{komiyo:lincomp,miyoki:lincomp}, and the nonlinear complementarity +problem \cite{komiyo:unipfunc}. The connection between these algorithms +and the classical Newton method for nonlinear equations is well +explained in \cite{komiyo:lincomp}. + +\section{Review} +\label{computation} + +We begin our discussion with the following definition: + +\begin{defn} + +A function $H\colon \Re^n \to \Re^n$ is said to be +\emph{B-differentiable} at the point $z$ if (i)~$H$ is Lipschitz +continuous in a neighborhood of $z$, and (ii)~ there exists a positive +homogeneous function $BH(z)\colon \Re^n \to \Re^n$, called the +\emph{B-derivative} of $H$ at $z$, such that +\[ \lim_{v \to 0} \frac{H(z+v) - H(z) - BH(z)v}{\enVert{v}} = 0. \] +The function $H$ is \textit{B-differentiable in set $S$} if it is +B-differentiable at every point in $S$. The B-derivative $BH(z)$ is said +to be \textit{strong} if +\[ \lim_{(v,v') \to (0,0)} \frac{H(z+v) - H(z+v') - BH(z)(v + -v')}{\enVert{v - v'}} = 0. \] +\end{defn} + + +\begin{lem}\label{limbog} There exists a smooth function $\psi_0(z)$ +defined for $\abs{z}>1-2a$ satisfying the following properties\textup{:} +\begin{enumerate} +\renewcommand{\labelenumi}{(\roman{enumi})} +\item $\psi_0(z)$ is bounded above and below by positive constants +$c_1\leq \psi_0(z)\leq c_2$. +\item If $\abs{z}>1$, then $\psi_0(z)=1$. +\item For all $z$ in the domain of $\psi_0$, $\Delta_0\ln \psi_0\geq 0$. +\item If $1-2a<\abs{z}<1-a$, then $\Delta_0\ln \psi_0\geq +c_3>0$. +\end{enumerate} +\end{lem} + +\begin{proof} +We choose $\psi_0(z)$ to be a radial function depending only on $r=\abs{z}$. +Let $h(r)\geq 0$ be a suitable smooth function satisfying $h(r)\geq c_3$ +for $1-2a<\abs{z}<1-a$, and $h(r)=0$ for $\abs{z}>1-\tfrac a2$. The radial +Laplacian +\[\Delta_0\ln\psi_0(r)=\left(\frac {d^2}{dr^2}+\frac +1r\frac d{dr}\right)\ln\psi_0(r)\] +has smooth coefficients for $r>1-2a$. Therefore, we may +apply the existence and uniqueness theory for ordinary differential +equations. Simply let $\ln \psi_0(r)$ be the solution of the differential +equation +\[\left(\frac{d^2}{dr^2}+\frac 1r\frac d{dr}\right)\ln \psi_0(r)=h(r)\] +with initial conditions given by $\ln \psi_0(1)=0$ and +$\ln\psi_0'(1)=0$. + +Next, let $D_\nu$ be a finite collection of pairwise disjoint disks, +all of which are contained in the unit disk centered at the origin in +$C$. We assume that $D_\nu=\{z\mid \abs{z-z_\nu}<\delta\}$. Suppose that +$D_\nu(a)$ denotes the smaller concentric disk $D_\nu(a)=\{z\mid +\abs{z-z_\nu}\leq (1-2a)\delta\}$. We define a smooth weight function +$\Phi_0(z)$ for $z\in C-\bigcup_\nu D_\nu(a)$ by setting $\Phi_ +0(z)=1$ when $z\notin \bigcup_\nu D_\nu$ and $\Phi_ +0(z)=\psi_0((z-z_\nu)/\delta)$ when $z$ is an element of $D_\nu$. It +follows from \lemref{limbog} that $\Phi_ 0$ satisfies the properties: +\begin{enumerate} +\renewcommand{\labelenumi}{(\roman{enumi})} +\item \label{boundab}$\Phi_ 0(z)$ is bounded above and below by +positive constants $c_1\leq \Phi_ 0(z)\leq c_2$. +\item \label{d:over}$\Delta_0\ln\Phi_ 0\geq 0$ for all +$z\in C-\bigcup_\nu D_\nu(a)$, +the domain where the function $\Phi_ 0$ is defined. +\item \label{d:ad}$\Delta_0\ln\Phi_ 0\geq c_3\delta^{-2}$ +when $(1-2a)\delta<\abs{z-z_\nu}<(1-a)\delta$. +\end{enumerate} +Let $A_\nu$ denote the annulus $A_\nu=\{(1-2a)\delta<\abs{z-z_\nu}<(1-a) +\delta \}$, and set $A=\bigcup_\nu A_\nu$. The +properties (\ref{d:over}) and (\ref{d:ad}) of $\Phi_ 0$ +may be summarized as $\Delta_0\ln \Phi_ 0\geq c_3\delta^{-2}\chi_A$, +where $\chi _A$ is the characteristic function of $A$. +\end{proof} + +Suppose that $\alpha$ is a nonnegative real constant. We apply +Proposition~\ref{prop:eg} with $\Phi(z)=\Phi_ 0(z) e^{\alpha\abs{z}^2}$. If +$u\in C^\infty_0(R^2-\bigcup_\nu D_\nu(a))$, assume that $\mathcal{D}$ +is a bounded domain containing the support of $u$ and $A\subset +\mathcal{D}\subset R^2-\bigcup_\nu D_\nu(a)$. A calculation gives +\[\int_{\mathcal{D}}\abs{\overline\partial u}^2\Phi_ 0(z) e^{\alpha\abs{z}^2} +\geq c_4\alpha\int_{\mathcal{D}}\abs{u}^2\Phi_ 0e^{\alpha\abs{z}^2} ++c_5\delta^{-2}\int_ A\abs{u}^2\Phi_ 0e^{\alpha\abs{z}^2}.\] + +The boundedness, property (\ref{boundab}) of $\Phi_ 0$, then yields +\[\int_{\mathcal{D}}\abs{\overline\partial u}^2e^{\alpha\abs{z}^2}\geq c_6\alpha +\int_{\mathcal{D}}\abs{u}^2e^{\alpha\abs{z}^2} ++c_7\delta^{-2}\int_ A\abs{u}^2e^{\alpha\abs{z}^2}.\] + +Let $B(X)$ be the set of blocks of $\Lambda_{X}$ +and let $b(X) = \abs{B(X)}$. If $\phi \in Q_{X}$ then +$\phi$ is constant on the blocks of $\Lambda_{X}$. +\begin{equation}\label{far-d} + P_{X} = \{ \phi \in M \mid \Lambda_{\phi} = \Lambda_{X} \}, +\qquad +Q_{X} = \{\phi \in M \mid \Lambda_{\phi} \geq \Lambda_{X} \}. +\end{equation} +If $\Lambda_{\phi} \geq \Lambda_{X}$ then +$\Lambda_{\phi} = \Lambda_{Y}$ for some $Y \geq X$ so that +\[ Q_{X} = \bigcup_{Y \geq X} P_{Y}. \] +Thus by M\"obius inversion +\[ \abs{P_{Y}}= \sum_{X\geq Y} \mu (Y,X)\abs{Q_{X}}.\] +Thus there is a bijection from $Q_{X}$ to $W^{B(X)}$. +In particular $\abs{Q_{X}} = w^{b(X)}$. + +Next note that $b(X)=\dim X$. We see this by choosing a +basis for $X$ consisting of vectors $v^{k}$ defined by +\[v^{k}_{i}= +\begin{cases} 1 & \text{if $i \in \Lambda_{k}$},\\ +0 &\text{otherwise.} \end{cases} +\] +\begin{verbatim} +\[v^{k}_{i}= +\begin{cases} 1 & \text{if $i \in \Lambda_{k}$},\\ +0 &\text{otherwise.} \end{cases} +\] +\end{verbatim} + +\begin{lem}\label{p0201} +Let $\A$ be an arrangement. Then +\[ \chi (\A,t) = \sum_{\B \subseteq \A} +(-1)^{\abs{\B}} t^{\dim T(\B)}. \] +\end{lem} + +In order to compute $R''$ recall the definition +of $S(X,Y)$ from \lemref{lem-per}. Since $H \in \B$, +$\A_{H} \subseteq \B$. Thus if $T(\B) = Y$ then +$\B \in S(H,Y)$. Let $L'' = L(\A'')$. Then +\begin{equation}\label{E_SXgYy} +\begin{split} +R''&= \sum_{H\in \B \subseteq \A} (-1)^{\abs{\B}} +t^{\dim T(\B)}\\ +&= \sum_{Y \in L''} \sum_{\B \in S(H,Y)} +(-1)^{\abs{\B}}t^{\dim Y} \\ +&= -\sum_{Y \in L''} \sum_{\B \in S(H,Y)} (-1)^ +{\abs{\B - \A_{H}}} t^{\dim Y} \\ +&= -\sum_{Y \in L''} \mu (H,Y)t^{\dim Y} \\ +&= -\chi (\A '',t). +\end{split} +\end{equation} + +\begin{cor}\label{tripleA} +Let $(\A,\A',\A'')$ be a triple of arrangements. Then +\[ \pi (\A,t) = \pi (\A',t) + t \pi (\A'',t). \] +\end{cor} + +\begin{defn} +Let $(\A,\A',\A'')$ be a triple with respect to +the hyperplane $H \in \A$. Call $H$ a \textit{separator} +if $T(\A) \not\in L(\A')$. +\end{defn} + +\begin{cor}\label{nsep} +Let $(\A,\A',\A'')$ be a triple with respect to $H \in \A$. +\begin{enumerate} +\renewcommand{\labelenumi}{(\roman{enumi})} +\item +If $H$ is a separator then +\[ \mu (\A) = - \mu (\A'') \] +and hence +\[ \abs{\mu (\A)} = \abs{ \mu (\A'')}. \] + +\item If $H$ is not a separator then +\[\mu (\A) = \mu (\A') - \mu (\A'') \] +and +\[ \abs{\mu (\A)} = \abs{\mu (\A')} + \abs{\mu (\A'')}. \] +\end{enumerate} +\end{cor} + +\begin{proof} +It follows from \thmref{th-info-ow-ow} that $\pi(\A,t)$ +has leading term +\[(-1)^{r(\A)}\mu (\A)t^{r(\A)}.\] +The conclusion +follows by comparing coefficients of the leading +terms on both sides of the equation in +Corollary~\ref{tripleA}. If $H$ is a separator then +$r(\A') < r(\A)$ and there is no contribution +from $\pi (\A',t)$. +\end{proof} + +The Poincar\'e polynomial of an arrangement +will appear repeatedly +in these notes. It will be shown to equal the +Poincar\'e polynomial +of the graded algebras which we are going to +associate with $\A$. It is also the Poincar\'e +polynomial of the complement $M(\A)$ for a +complex arrangement. Here we prove +that the Poincar\'e polynomial is the chamber +counting function for a real arrangement. The +complement $M(\A)$ is a disjoint union of chambers +\[M(\A) = \bigcup_{C \in \Cham(\A)} C.\] +The number +of chambers is determined by the Poincar\'e +polynomial as follows. + +\begin{thm}\label{th-realarr} +Let $\A_{\mathbf{R}}$ be a real arrangement. Then +\[ \abs{\Cham(\A_{\mathbf{R}})} = \pi (\A_{\mathbf{R}},1). \] +\end{thm} + +\begin{proof} +We check the properties required in Corollary~\ref{nsep}: +(i) follows from $\pi (\Phi_{ l},t) = 1$, and (ii) is a +consequence of Corollary~\ref{BI}. +\end{proof} + +\begin{figure} +\vspace{5cm} +\caption[]{$Q(\A_{1}) = xyz(x-z)(x+z)(y-z)(y+z)$} +\end{figure} + +\begin{figure} +\vspace{5cm} +\caption[]{$Q(\A_{2})= xyz(x+y+z)(x+y-z)(x-y+z)(x-y-z)$} +\end{figure} + + +\begin{thm} +\label{T_first_the_int} +Let $\phi$ be a protocol for a random pair $\XcY$. +If one of $\st_\phi(x',y)$ and $\st_\phi(x,y')$ is a prefix of the other +and $(x,y)\in\SXY$, then +\[ +\langle \st_j(x',y)\rangle_{j=1}^\infty +=\langle \st_j(x,y)\rangle_{j=1}^\infty +=\langle \st_j(x,y')\rangle_{j=1}^\infty . +\] +\end{thm} +\begin{proof} +We show by induction on $i$ that +\[ +\langle \st_j(x',y)\rangle_{j=1}^i +=\langle \st_j(x,y)\rangle_{j=1}^i +=\langle \st_j(x,y')\rangle_{j=1}^i. +\] +The induction hypothesis holds vacuously for $i=0$. Assume it holds for +$i-1$, in particular +$[\st_j(x',y)]_{j=1}^{i-1}=[\st_j(x,y')]_{j=1}^{i-1}$. Then one of +$[\st_j(x',y)]_{j=i}^{\infty}$ and $[\st_j(x,y')]_{j=i}^{\infty}$ is a +prefix of the other which implies that one of $\st_i(x',y)$ and +$\st_i(x,y')$ is a prefix of the other. If the $i$th message is +transmitted by $P_\X$ then, by the separate-transmissions property and +the induction hypothesis, $\st_i(x,y)=\st_i(x,y')$, hence one of +$\st_i(x,y)$ and $\st_i(x',y)$ is a prefix of the other. By the +implicit-termination property, neither $\st_i(x,y)$ nor $\st_i(x',y)$ +can be a proper prefix of the other, hence they must be the same and +$\st_i(x',y)=\st_i(x,y)=\st_i(x,y')$. If the $i$th message is +transmitted by $\PY$ then, symmetrically, $\st_i(x,y)=\st_i(x',y)$ by +the induction hypothesis and the separate-transmissions property, and, +then, $\st_i(x,y)=\st_i(x,y')$ by the implicit-termination property, +proving the induction step. +\end{proof} + +If $\phi$ is a protocol for $(X,Y)$, and $(x,y)$, $(x',y)$ are distinct +inputs in $\SXY$, then, by the correct-decision property, +$\langle\st_j(x,y)\rangle_{j=1}^\infty\ne\langle +\st_j(x',y)\rangle_{j=1}^\infty$. + +Equation~(\ref{E_SXgYy}) defined $\PY$'s ambiguity set $\SXgYy$ +to be the set of possible $X$ values when $Y=y$. +The last corollary implies that for all $y\in\SY$, +the multiset% +\footnote{A multiset allows multiplicity of elements. +Hence, $\{0,01,01\}$ is prefix free as a set, but not as a multiset.} +of codewords $\{\st_\phi(x,y):x\in\SXgYy\}$ is prefix free. + +\section{One-way complexity} +\label{S_Cp1} + +$\Cw1$, the one-way complexity of a random pair $\XcY$, +is the number of bits $P_\X$ must transmit in the worst case +when $\PY$ is not permitted to transmit any feedback messages. +Starting with $\SXY$, the support set of $\XcY$, we define $\G$, +the \textit{characteristic hypergraph} of $\XcY$, and show that +\[ +\Cw1=\lceil\,\log\chi(\G)\rceil\ . +\] + +Let $\XcY$ be a random pair. For each $y$ in $\SY$, the support set of +$Y$, equation~(\ref{E_SXgYy}) defined $\SXgYy$ to be the set of possible +$x$ values when $Y=y$. The \textit{characteristic hypergraph} $\G$ of +$\XcY$ has $\SX$ as its vertex set and the hyperedge $\SXgYy$ for each +$y\in\SY$. + + +We can now prove a continuity theorem. +\begin{thm}\label{t:conl} +Let $\Omega \subset\mathbf{R}^n$ be an open set, let +$u\in BV(\Omega ;\mathbf{R}^m)$, and let +\begin{equation}\label{quts} +T^u_x=\left\{y\in\mathbf{R}^m: + y=\tilde u(x)+\left\langle \frac{Du}{\abs{Du}}(x),z +\right\rangle \text{ for some }z\in\mathbf{R}^n\right\} +\end{equation} +for every $x\in\Omega \backslash S_u$. Let $f\colon \mathbf{R}^m\to +\mathbf{R}^k$ be a Lipschitz continuous function such that $f(0)=0$, and +let $v=f(u)\colon \Omega \to \mathbf{R}^k$. Then $v\in BV(\Omega +;\mathbf{R}^k)$ and +\begin{equation} +Jv=\eval{(f(u^+)-f(u^-))\otimes \nu_u\cdot\, +\mathcal{H}_{n-1}}_{S_u}. +\end{equation} +In addition, for $\abs{\wt{D}u}$-almost every $x\in\Omega $ the +restriction of the function $f$ to $T^u_x$ is differentiable at $\tilde +u(x)$ and +\begin{equation} +\wt{D}v=\nabla (\eval{f}_{T^u_x})(\tilde u) +\frac{\wt{D}u}{\abs{\wt{D}u}}\cdot\abs{\wt{D}u}.\end{equation} +\end{thm} + +Before proving the theorem, we state without proof three elementary +remarks which will be useful in the sequel. +\begin{rem}\label{r:omb} +Let $\omega\colon \left]0,+\infty\right[\to \left]0,+\infty\right[$ +be a continuous function such that $\omega (t)\to 0$ as $t\to +0$. Then +\[\lim_{h\to 0^+}g(\omega(h))=L\Leftrightarrow\lim_{h\to +0^+}g(h)=L\] +for any function $g\colon \left]0,+\infty\right[\to \mathbf{R}$. +\end{rem} +\begin{rem}\label{r:dif} +Let $g \colon \mathbf{R}^n\to \mathbf{R}$ be a Lipschitz +continuous function and assume that +\[L(z)=\lim_{h\to 0^+}\frac{g(hz)-g(0)}h\] +exists for every $z\in\mathbf{Q}^n$ and that $L$ is a linear function of +$z$. Then $g$ is differentiable at 0. +\end{rem} +\begin{rem}\label{r:dif0} +Let $A \colon \mathbf{R}^n\to \mathbf{R}^m$ be a linear function, and +let $f \colon \mathbf{R}^m\to \mathbf{R}$ be a function. Then the +restriction of $f$ to the range of $A$ is differentiable at 0 if and +only if $f(A)\colon \mathbf{R}^n\to \mathbf{R}$ is differentiable at 0 +and +\[\nabla(\eval{f}_{\IM(A)})(0)A=\nabla (f(A))(0).\] +\end{rem} + +\begin{proof} + We begin by showing that $v\in BV(\Omega;\mathbf{R}^k)$ and +\begin{equation}\label{e:bomb} +\abs{Dv}(B)\le K\abs{Du}(B)\qquad\forall B\in\mathbf{B}(\Omega ), +\end{equation} +where $K>0$ is the Lipschitz constant of $f$. By \eqref{sum-Di} and by +the approximation result quoted in \secref{s:mt}, it is possible to find +a sequence $(u_h)\subset C^1(\Omega ;\mathbf{R}^m)$ converging to $u$ in +$L^1(\Omega ;\mathbf{R}^m)$ and such that +\[\lim_{h\to +\infty}\int_\Omega \abs{\nabla u_h}\,dx=\abs{Du}(\Omega ).\] +The functions $v_h=f(u_h)$ are locally Lipschitz continuous in $\Omega +$, and the definition of differential implies that $\abs{\nabla v_h}\le +K\abs{\nabla u_h}$ almost everywhere in $\Omega $. The lower semicontinuity +of the total variation and \eqref{sum-Di} yield +\begin{equation} +\begin{split} +\abs{Dv}(\Omega )\le\liminf_{h\to +\infty}\abs{Dv_h}(\Omega) & +=\liminf_{h\to +\infty}\int_\Omega \abs{\nabla v_h}\,dx\\ +&\le K\liminf_{h\to +\infty}\int_\Omega +\abs{\nabla u_h}\,dx=K\abs{Du}(\Omega). +\end{split}\end{equation} +Since $f(0)=0$, we have also +\[\int_\Omega \abs{v}\,dx\le K\int_\Omega \abs{u}\,dx;\] +therefore $u\in BV(\Omega ;\mathbf{R}^k)$. Repeating the same argument +for every open set $A\subset\Omega $, we get \eqref{e:bomb} for every +$B\in\mathbf{B}(\Omega)$, because $\abs{Dv}$, $\abs{Du}$ are Radon measures. To +prove \lemref{limbog}, first we observe that +\begin{equation}\label{e:SS} +S_v\subset S_u,\qquad\tilde v(x)=f(\tilde u(x))\qquad \forall x\in\Omega +\backslash S_u.\end{equation} +In fact, for every $\varepsilon >0$ we have +\[\{y\in B_\rho(x): \abs{v(y)-f(\tilde u(x))}>\varepsilon \}\subset \{y\in +B_\rho(x): \abs{u(y)-\tilde u(x)}>\varepsilon /K\},\] +hence +\[\lim_{\rho\to 0^+}\frac{\abs{\{y\in B_\rho(x): \abs{v(y)-f(\tilde u(x))}> +\varepsilon \}}}{\rho^n}=0\] +whenever $x\in\Omega \backslash S_u$. By a similar argument, if $x\in +S_u$ is a point such that there exists a triplet $(u^+,u^-,\nu_u)$ +satisfying \eqref{detK1}, \eqref{detK2}, then +\[ +(v^+(x)-v^-(x))\otimes \nu_v=(f(u^+(x))-f(u^-(x)))\otimes\nu_u\quad +\text{if }x\in S_v +\] +and $f(u^-(x))=f(u^+(x))$ if $x\in S_u\backslash S_v$. Hence, by (1.8) +we get +\begin{equation*}\begin{split} +Jv(B)=\int_{B\cap S_v}(v^+-v^-)\otimes \nu_v\,d\mathcal{H}_{n-1}&= +\int_{B\cap S_v}(f(u^+)-f(u^-))\otimes \nu_u\,d\mathcal{H}_{n-1}\\ +&=\int_{B\cap S_u}(f(u^+)-f(u^-))\otimes \nu_u\,d\mathcal{H}_{n-1} +\end{split}\end{equation*} +and \lemref{limbog} is proved. +\end{proof} + +To prove \eqref{e:SS}, it is not restrictive to assume that $k=1$. +Moreover, to simplify our notation, from now on we shall assume that +$\Omega = \mathbf{R}^n$. The proof of \eqref{e:SS} is divided into two +steps. In the first step we prove the statement in the one-dimensional +case $(n=1)$, using \thmref{th-weak-ske-owf}. In the second step we +achieve the general result using \thmref{t:conl}. + +\begin{step} +Assume that $n=1$. Since $S_u$ is at most countable, \eqref{sum-bij} +yields that $\abs{\wt{D}v}(S_u\backslash S_v)=0$, so that +\eqref{e:st} and \eqref{e:barwq} imply that $Dv=\wt{D}v+Jv$ is +the Radon-Nikod\'ym decomposition of $Dv$ in absolutely continuous and +singular part with respect to $\abs{\wt{D} u}$. By +\thmref{th-weak-ske-owf}, we have +\begin{equation*} +\frac{\wt{D}v}{\abs{\wt{D}u}}(t)=\lim_{s\to t^+} +\frac{Dv(\interval{\left[t,s\right[})} +{\abs{\wt{D}u}(\interval{\left[t,s\right[})},\qquad +\frac{\wt{D}u}{\abs{\wt{D}u}}(t)=\lim_{s\to t^+} +\frac{Du(\interval{\left[t,s\right[})} +{\abs{\wt{D}u}(\interval{\left[t,s\right[})} +\end{equation*} +$\abs{\wt{D}u}$-almost everywhere in $\mathbf{R}$. It is well known +(see, for instance, \cite[2.5.16]{ste:sint}) that every one-dimensional +function of bounded variation $w$ has a unique left continuous +representative, i.e., a function $\hat w$ such that $\hat w=w$ almost +everywhere and $\lim_{s\to t^-}\hat w(s)=\hat w(t)$ for every $t\in +\mathbf{R}$. These conditions imply +\begin{equation} +\hat u(t)=Du(\interval{\left]-\infty,t\right[}), +\qquad \hat v(t)=Dv(\interval{\left]-\infty,t\right[})\qquad +\forall t\in\mathbf{R} +\end{equation} +and +\begin{equation}\label{alimo} +\hat v(t)=f(\hat u(t))\qquad\forall t\in\mathbf{R}.\end{equation} +Let $t\in\mathbf{R}$ be such that +$\abs{\wt{D}u}(\interval{\left[t,s\right[})>0$ for every $s>t$ and +assume that the limits in \eqref{joe} exist. By \eqref{j:mark} and +\eqref{far-d} we get +\begin{equation*}\begin{split} +\frac{\hat v(s)-\hat +v(t)}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}&=\frac {f(\hat +u(s))-f(\hat u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\\ +&=\frac{f(\hat u(s))-f(\hat +u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t)\abs{\wt{D}u +}(\interval{\left[t,s\right[}))}% +{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\\ +&+\frac +{f(\hat u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t)\abs{\wt{D} +u}(\interval{\left[t,s\right[}))-f(\hat +u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})} +\end{split}\end{equation*} +for every $s>t$. Using the Lipschitz condition on $f$ we find +{\setlength{\multlinegap}{0pt} +\begin{multline*} +\left\lvert\frac{\hat v(s)-\hat +v(t)}{\abs{\wt{D}u}(\interval{\left[t,s\right[})} -\frac{f(\hat +u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t) +\abs{\wt{D}u}(\interval{\left[t,s\right[}))-f(\hat +u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\right\rvert\\ +\le K\left\lvert +\frac{\hat u(s)-\hat u(t)} + {\abs{\wt{D}u}(\interval{\left[t,s\right[})} +-\frac{\wt{D}u}{\abs{ +\wt{D}u}}(t)\right\rvert.\end{multline*} +}% end of group with \multlinegap=0pt +By \eqref{e:bomb}, the function $s\to +\abs{\wt{D}u}(\interval{\left[t,s\right[})$ is continuous and +converges to 0 as $s\downarrow t$. Therefore Remark~\ref{r:omb} and the +previous inequality imply +\[\frac{\wt{D}v}{\abs{\wt{D}u}}(t)=\lim_{h\to 0^+} +\frac{f(\hat u(t)+h\dfrac{\wt{D}u}{\abs{\wt{D}u}} +(t))-f(\hat u(t))}h\quad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}.\] +By \eqref{joe}, $\hat u(x)=\tilde u(x)$ for every +$x\in\mathbf{R}\backslash S_u$; moreover, applying the same argument to +the functions $u'(t)=u(-t)$, $v'(t)=f(u'(t))=v(-t)$, we get +\[\frac{\wt{D}v}{\abs{\wt{D}u}}(t)=\lim_{h\to 0} +\frac{f(\tilde u(t) ++h\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t))-f(\tilde u(t))}{h} +\qquad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}\] +and our statement is proved. +\end{step} + +\begin{step} +Let us consider now the general case $n>1$. Let $\nu\in \mathbf{R}^n$ be +such that $\abs{\nu}=1$, and let $\pi_\nu=\{y\in\mathbf{R}^n: \langle +y,\nu\rangle =0\}$. In the following, we shall identify $\mathbf{R}^n$ +with $\pi_\nu\times\mathbf{R}$, and we shall denote by $y$ the variable +ranging in $\pi_\nu$ and by $t$ the variable ranging in $\mathbf{R}$. By +the just proven one-dimensional result, and by \thmref{thm-main}, we get +\[\lim_{h\to 0}\frac{f(\tilde u(y+t\nu)+h\dfrac{\wt{D}u_y}{\abs{ +\wt{D}u_y}}(t))-f(\tilde u(y+t\nu))}h=\frac{\wt{D}v_y}{\abs{ +\wt{D}u_y}}(t)\qquad\abs{\wt{D}u_y}\text{-a.e. in }\mathbf{R}\] +for $\mathcal{H}_{n-1}$-almost every $y\in \pi_\nu$. We claim that +\begin{equation} +\frac{\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle +}}(y+t\nu)=\frac{\wt{D}u_y} +{\abs{\wt{D}u_y}}(t)\qquad\abs{\wt{D}u_y}\text{-a.e. in }\mathbf{R} +\end{equation} +for $\mathcal{H}_{n-1}$-almost every $y\in\pi_\nu$. In fact, by +\eqref{sum-ali} and \eqref{delta-l} we get +\begin{multline*} +\int_{\pi_\nu}\frac{\wt{D}u_y}{\abs{\wt{D}u_y}}\cdot\abs{\wt{D}u_y +}\,d\mathcal{H}_{n-1}(y)=\int_{\pi_\nu}\wt{D}u_y\,d\mathcal{H}_{n-1}(y)\\ +=\langle \wt{D}u,\nu\rangle =\frac +{\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle}}\cdot +\abs{\langle \wt{D}u,\nu\rangle }=\int_{\pi_\nu}\frac{ +\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }} +(y+\cdot \nu)\cdot\abs{\wt{D}u_y}\,d\mathcal{H}_{n-1}(y) +\end{multline*} +and \eqref{far-d} follows from \eqref{sum-Di}. By the same argument it +is possible to prove that +\begin{equation} +\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle +}}(y+t\nu)=\frac{\wt{D}v_y}{\abs{\wt{D}u_y}}(t)\qquad\abs{ +\wt{D}u_y}\text{-a.e. in }\mathbf{R}\end{equation} +for $\mathcal{H}_{n-1}$-almost every $y\in \pi_\nu$. By \eqref{far-d} +and \eqref{E_SXgYy} we get +\[ +\lim_{h\to 0}\frac{f(\tilde u(y+t\nu)+h\dfrac{\langle \wt{D} +u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}(y+t\nu))-f(\tilde +u(y+t\nu))}{h} +=\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle +\wt{D}u,\nu\rangle }}(y+t\nu)\] +for $\mathcal{H}_{n-1}$-almost every $y\in\pi_\nu$, and using again +\eqref{detK1}, \eqref{detK2} we get +\[ +\lim_{h\to 0}\frac{f(\tilde u(x)+h\dfrac{\langle +\wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}(x))-f(\tilde +u(x))}{h}=\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle \wt{D}u,\nu +\rangle }}(x) +\] +$\abs{\langle \wt{D}u,\nu\rangle}$-a.e. in $\mathbf{R}^n$. + +Since the function $\abs{\langle \wt{D}u,\nu\rangle }/\abs{\wt{D}u}$ +is strictly positive $\abs{\langle \wt{D}u,\nu\rangle }$-almost everywhere, +we obtain also +\begin{multline*} +\lim_{h\to 0}\frac{f(\tilde u(x)+h\dfrac{\abs{\langle +\wt{D}u,\nu\rangle }}{\abs{\wt{D}u}}(x)\dfrac{\langle \wt{D} +u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}(x))-f(\tilde u(x))}{h}\\ +=\frac{\abs{\langle \wt{D}u,\nu\rangle }}{\abs{\wt{D}u}}(x)\frac +{\langle \wt{D}v,\nu\rangle }{\abs{\langle +\wt{D}u,\nu\rangle }}(x) +\end{multline*} +$\abs{\langle \wt{D}u,\nu\rangle }$-almost everywhere in $\mathbf{R}^n$. + +Finally, since +\begin{align*} +&\frac{\abs{\langle \wt{D}u,\nu\rangle }}{\abs{\wt{D}u}} +\frac{\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle}} +=\frac{\langle \wt{D}u,\nu\rangle }{\abs{\wt{D}u}} +=\left\langle \frac{\wt{D}u}{\abs{\wt{D}u}},\nu\right\rangle + \qquad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}^n\\ +&\frac{\abs{\langle \wt{D}u,\nu\rangle }}{\abs{\wt{D}u}} +\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle}} +=\frac{\langle \wt{D}v,\nu\rangle }{\abs{\wt{D}u}} +=\left\langle \frac{\wt{D}v}{\abs{\wt{D}u}},\nu\right\rangle + \qquad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}^n +\end{align*} +and since both sides of \eqref{alimo} +are zero $\abs{\wt{D}u}$-almost everywhere +on $\abs{\langle \wt{D}u,\nu\rangle }$-negligible sets, we conclude that +\[ +\lim_{h\to 0}\frac{f\left( +\tilde u(x)+h\left\langle \dfrac{\wt{D} +u}{\abs{\wt{D}u}}(x),\nu\right\rangle \right)-f(\tilde u(x))}h +=\left\langle \frac{\wt{D}v}{\abs{\wt{D}u}}(x),\nu\right\rangle, +\] +$\abs{\wt{D}u}$-a.e. in $\mathbf{R}^n$. +Since $\nu$ is arbitrary, by Remarks \ref{r:dif} and~\ref{r:dif0} +the restriction of $f$ to +the affine space $T^u_x$ is differentiable at $\tilde u(x)$ for $\abs{\wt{D} +u}$-almost every $x\in \mathbf{R}^n$ and \eqref{quts} holds.\qed +\end{step} + +It follows from \eqref{sum-Di}, \eqref{detK1}, and \eqref{detK2} that +\begin{equation}\label{Dt} +D(t_1,\dots,t_n)=\sum_{I\in\mathbf{n}}(-1)^{\abs{I}-1}\abs{I} +\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mathbf{A}^{(\lambda)} +(\overline I|\overline I). +\end{equation} +Let $t_i=\hat x_i$, $i=1,\dots,n$. Lemma 1 leads to +\begin{equation}\label{Dx} +D(\hat x_1,\dots,\hat x_n)=\prod_{i\in\mathbf{n}}\hat x_i +\sum_{I\in\mathbf{n}}(-1)^{\abs{I}-1}\abs{I}\per \mathbf{A} +^{(\lambda)}(I|I)\det\mathbf{A}^{(\lambda)}(\overline I|\overline I). +\end{equation} +By \eqref{H-cycles}, \eqref{sum-Di}, and \eqref{Dx}, +we have the following result: +\begin{thm}\label{thm-H-param} +\begin{equation}\label{H-param} +H_c=\frac{1}{2n}\sum^n_{l =1}l (-1)^{l -1}A_{l} +^{(\lambda)}, +\end{equation} +where +\begin{equation}\label{A-l-lambda} +A^{(\lambda)}_l =\sum_{I_l \subseteq\mathbf{n}}\per \mathbf{A} +^{(\lambda)}(I_l |I_l )\det\mathbf{A}^{(\lambda)} +(\overline I_{l}|\overline I_l ),\abs{I_{l}}=l . +\end{equation} +\end{thm} + +It is worth noting that $A_l ^{(\lambda)}$ of \eqref{A-l-lambda} is +similar to the coefficients $b_l $ of the characteristic polynomial of +\eqref{bl-sum}. It is well known in graph theory that the coefficients +$b_l $ can be expressed as a sum over certain subgraphs. It is +interesting to see whether $A_l $, $\lambda=0$, structural properties +of a graph. + +We may call \eqref{H-param} a parametric representation of $H_c$. In +computation, the parameter $\lambda_i$ plays very important roles. The +choice of the parameter usually depends on the properties of the given +graph. For a complete graph $K_n$, let $\lambda_i=1$, $i=1,\dots,n$. +It follows from \eqref{A-l-lambda} that +\begin{equation}\label{compl-gr} +A^{(1)}_l =\begin{cases} n!,&\text{if }l =1\\ +0,&\text{otherwise}.\end{cases} +\end{equation} +By \eqref{H-param} +\begin{equation} +H_c=\frac 12(n-1)!. +\end{equation} +For a complete bipartite graph $K_{n_1n_2}$, let $\lambda_i=0$, $i=1,\dots,n$. +By \eqref{A-l-lambda}, +\begin{equation} +A_l = +\begin{cases} -n_1!n_2!\delta_{n_1n_2},&\text{if }l =2\\ +0,&\text{otherwise }.\end{cases} +\label{compl-bip-gr} +\end{equation} +Theorem ~\ref{thm-H-param} +leads to +\begin{equation} +H_c=\frac1{n_1+n_2}n_1!n_2!\delta_{n_1n_2}. +\end{equation} + +Now, we consider an asymmetrical approach. Theorem \ref{thm-main} leads to +\begin{multline} +\det\mathbf{K}(t=1,t_1,\dots,t_n;l |l )\\ +=\sum_{I\subseteq\mathbf{n}-\{l \}} +(-1)^{\abs{I}}\prod_{i\in I}t_i\prod_{j\in I} +(D_j+\lambda_jt_j)\det\mathbf{A}^{(\lambda)} +(\overline I\cup\{l \}|\overline I\cup\{l \}). +\end{multline} + +By \eqref{H-cycles} and \eqref{sum-ali} we have the following asymmetrical +result: +\begin{thm}\label{thm-asym} +\begin{equation} +H_c=\frac12\sum_{I\subseteq\mathbf{n}-\{l \}} +(-1)^{\abs{I}}\per\mathbf{A}^{(\lambda)}(I|I)\det +\mathbf{A}^{(\lambda)} +(\overline I\cup\{l \}|\overline I\cup\{l \}) +\end{equation} +which reduces to Goulden--Jackson's formula when $\lambda_i=0,i=1,\dots,n$ +\cite{mami:matrixth}. +\end{thm} + + +\section{Various font features of the \pkg{amsmath} package} +\label{s:font} +\subsection{Bold versions of special symbols} + +In the \pkg{amsmath} package \cn{boldsymbol} is used for getting +individual bold math symbols and bold Greek letters---everything in +math except for letters of the Latin alphabet, +where you'd use \cn{mathbf}. For example, +\begin{verbatim} +A_\infty + \pi A_0 \sim +\mathbf{A}_{\boldsymbol{\infty}} \boldsymbol{+} +\boldsymbol{\pi} \mathbf{A}_{\boldsymbol{0}} +\end{verbatim} +looks like this: +\[A_\infty + \pi A_0 \sim \mathbf{A}_{\boldsymbol{\infty}} +\boldsymbol{+} \boldsymbol{\pi} \mathbf{A}_{\boldsymbol{0}}\] + +\subsection{``Poor man's bold''} +If a bold version of a particular symbol doesn't exist in the +available fonts, +then \cn{boldsymbol} can't be used to make that symbol bold. +At the present time, this means that +\cn{boldsymbol} can't be used with symbols from +the \fn{msam} and \fn{msbm} fonts, among others. +In some cases, poor man's bold (\cn{pmb}) can be used instead +of \cn{boldsymbol}: +% Can't show example from msam or msbm because this document is +% supposed to be TeXable even if the user doesn't have +% AMSFonts. MJD 5-JUL-1990 +\[\frac{\partial x}{\partial y} +\pmb{\bigg\vert} +\frac{\partial y}{\partial z}\] +\begin{verbatim} +\[\frac{\partial x}{\partial y} +\pmb{\bigg\vert} +\frac{\partial y}{\partial z}\] +\end{verbatim} +So-called ``large operator'' symbols such as $\sum$ and $\prod$ +require an additional command, \cn{mathop}, +to produce proper spacing and limits when \cn{pmb} is used. +For further details see \textit{The \TeX book}. +\[\sum_{\substack{i\alpha\} +=\meas_n\{x\in R^n\colon \abs{f(x)}\geq\alpha\} +\quad \forall\alpha>0.\] +\begin{verbatim} +\[\meas_1\{u\in R_+^1\colon f^*(u)>\alpha\} +=\meas_n\{x\in R^n\colon \abs{f(x)}\geq\alpha\} +\quad \forall\alpha>0.\] +\end{verbatim} +\cn{esssup} and \cn{meas} would be defined in the document preamble as +\begin{verbatim} +\DeclareMathOperator*{\esssup}{ess\,sup} +\DeclareMathOperator{\meas}{meas} +\end{verbatim} + +The following special operator names are predefined in the \pkg{amsmath} +package: \cn{varlimsup}, \cn{varliminf}, \cn{varinjlim}, and +\cn{varprojlim}. Here's what they look like in use: +\begin{align} +&\varlimsup_{n\rightarrow\infty} + \mathcal{Q}(u_n,u_n-u^{\#})\le0\\ +&\varliminf_{n\rightarrow\infty} + \left\lvert a_{n+1}\right\rvert/\left\lvert a_n\right\rvert=0\\ +&\varinjlim (m_i^\lambda\cdot)^*\le0\\ +&\varprojlim_{p\in S(A)}A_p\le0 +\end{align} +\begin{verbatim} +\begin{align} +&\varlimsup_{n\rightarrow\infty} + \mathcal{Q}(u_n,u_n-u^{\#})\le0\\ +&\varliminf_{n\rightarrow\infty} + \left\lvert a_{n+1}\right\rvert/\left\lvert a_n\right\rvert=0\\ +&\varinjlim (m_i^\lambda\cdot)^*\le0\\ +&\varprojlim_{p\in S(A)}A_p\le0 +\end{align} +\end{verbatim} + +\subsection{\cn{mod} and its relatives} +The commands \cn{mod} and \cn{pod} are variants of +\cn{pmod} preferred by some authors; \cn{mod} omits the parentheses, +whereas \cn{pod} omits the `mod' and retains the parentheses. +Examples: +\begin{align} +x&\equiv y+1\pmod{m^2}\\ +x&\equiv y+1\mod{m^2}\\ +x&\equiv y+1\pod{m^2} +\end{align} +\begin{verbatim} +\begin{align} +x&\equiv y+1\pmod{m^2}\\ +x&\equiv y+1\mod{m^2}\\ +x&\equiv y+1\pod{m^2} +\end{align} +\end{verbatim} + +\subsection{Fractions and related constructions} +\label{fracs} + +The usual notation for binomials is similar to the fraction concept, +so it has a similar command \cn{binom} with two arguments. Example: +\begin{equation} +\begin{split} +\sum_{\gamma\in\Gamma_C} I_\gamma& +=2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}\\ +&\quad+\dots+(-1)^l\binom{k}{l}2^{k-l} ++\dots+(-1)^k\\ +&=(2-1)^k=1 +\end{split} +\end{equation} +\begin{verbatim} +\begin{equation} +\begin{split} +[\sum_{\gamma\in\Gamma_C} I_\gamma& +=2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}\\ +&\quad+\dots+(-1)^l\binom{k}{l}2^{k-l} ++\dots+(-1)^k\\ +&=(2-1)^k=1 +\end{split} +\end{equation} +\end{verbatim} +There are also abbreviations +\begin{verbatim} +\dfrac \dbinom +\tfrac \tbinom +\end{verbatim} +for the commonly needed constructions +\begin{verbatim} +{\displaystyle\frac ... } {\displaystyle\binom ... } +{\textstyle\frac ... } {\textstyle\binom ... } +\end{verbatim} + +The generalized fraction command \cn{genfrac} provides full access to +the six \TeX{} fraction primitives: +\begin{align} +\text{\cn{over}: }&\genfrac{}{}{}{}{n+1}{2}& +\text{\cn{overwithdelims}: }& + \genfrac{\langle}{\rangle}{}{}{n+1}{2}\\ +\text{\cn{atop}: }&\genfrac{}{}{0pt}{}{n+1}{2}& +\text{\cn{atopwithdelims}: }& + \genfrac{(}{)}{0pt}{}{n+1}{2}\\ +\text{\cn{above}: }&\genfrac{}{}{1pt}{}{n+1}{2}& +\text{\cn{abovewithdelims}: }& + \genfrac{[}{]}{1pt}{}{n+1}{2} +\end{align} +\begin{verbatim} +\text{\cn{over}: }&\genfrac{}{}{}{}{n+1}{2}& +\text{\cn{overwithdelims}: }& + \genfrac{\langle}{\rangle}{}{}{n+1}{2}\\ +\text{\cn{atop}: }&\genfrac{}{}{0pt}{}{n+1}{2}& +\text{\cn{atopwithdelims}: }& + \genfrac{(}{)}{0pt}{}{n+1}{2}\\ +\text{\cn{above}: }&\genfrac{}{}{1pt}{}{n+1}{2}& +\text{\cn{abovewithdelims}: }& + \genfrac{[}{]}{1pt}{}{n+1}{2} +\end{verbatim} + +\subsection{Continued fractions} +The continued fraction +\begin{equation} +\cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+\dotsb +}}}}} +\end{equation} +can be obtained by typing +\begin{verbatim} +\cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+\dotsb +}}}}} +\end{verbatim} +Left or right placement of any of the numerators is accomplished by using +\cn{cfrac[l]} or \cn{cfrac[r]} instead of \cn{cfrac}. + +\subsection{Smash} + +In \pkg{amsmath} there are optional arguments \verb"t" and \verb"b" for +the plain \TeX\ command \cn{smash}, because sometimes it is advantageous +to be able to `smash' only the top or only the bottom of something while +retaining the natural depth or height. In the formula +$X_j=(1/\sqrt{\smash[b]{\lambda_j}})X_j'$ \cn{smash}\verb=[b]= has been +used to limit the size of the radical symbol. +\begin{verbatim} +$X_j=(1/\sqrt{\smash[b]{\lambda_j}})X_j'$ +\end{verbatim} +Without the use of \cn{smash}\verb=[b]= the formula would have appeared +thus: $X_j=(1/\sqrt{\lambda_j})X_j'$, with the radical extending to +encompass the depth of the subscript $j$. + +\subsection{The `cases' environment} +`Cases' constructions like the following can be produced using +the \env{cases} environment. +\begin{equation} +P_{r-j}= + \begin{cases} + 0& \text{if $r-j$ is odd},\\ + r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}. + \end{cases} +\end{equation} +\begin{verbatim} +\begin{equation} P_{r-j}= + \begin{cases} + 0& \text{if $r-j$ is odd},\\ + r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}. + \end{cases} +\end{equation} +\end{verbatim} +Notice the use of \cn{text} and the embedded math. + +\subsection{Matrix} + +Here are samples of the matrix environments, +\cn{matrix}, \cn{pmatrix}, \cn{bmatrix}, \cn{Bmatrix}, \cn{vmatrix} +and \cn{Vmatrix}: +\begin{equation} +\begin{matrix} +\vartheta& \varrho\\\varphi& \varpi +\end{matrix}\quad +\begin{pmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{pmatrix}\quad +\begin{bmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{bmatrix}\quad +\begin{Bmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{Bmatrix}\quad +\begin{vmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{vmatrix}\quad +\begin{Vmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{Vmatrix} +\end{equation} +% +\begin{verbatim} +\begin{matrix} +\vartheta& \varrho\\\varphi& \varpi +\end{matrix}\quad +\begin{pmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{pmatrix}\quad +\begin{bmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{bmatrix}\quad +\begin{Bmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{Bmatrix}\quad +\begin{vmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{vmatrix}\quad +\begin{Vmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{Vmatrix} +\end{verbatim} + +To produce a small matrix suitable for use in text, use the +\env{smallmatrix} environment. +\begin{verbatim} +\begin{math} + \bigl( \begin{smallmatrix} + a&b\\ c&d + \end{smallmatrix} \bigr) +\end{math} +\end{verbatim} +To show +the effect of the matrix on the surrounding lines of +a paragraph, we put it here: \begin{math} + \bigl( \begin{smallmatrix} + a&b\\ c&d + \end{smallmatrix} \bigr) +\end{math} +and follow it with enough text to ensure that there will +be at least one full line below the matrix. + +\cn{hdotsfor}\verb"{"\textit{number}\verb"}" produces a row of dots in a matrix +spanning the given number of columns: +\[W(\Phi)= \begin{Vmatrix} +\dfrac\varphi{(\varphi_1,\varepsilon_1)}&0&\dots&0\\ +\dfrac{\varphi k_{n2}}{(\varphi_2,\varepsilon_1)}& +\dfrac\varphi{(\varphi_2,\varepsilon_2)}&\dots&0\\ +\hdotsfor{5}\\ +\dfrac{\varphi k_{n1}}{(\varphi_n,\varepsilon_1)}& +\dfrac{\varphi k_{n2}}{(\varphi_n,\varepsilon_2)}&\dots& +\dfrac{\varphi k_{n\,n-1}}{(\varphi_n,\varepsilon_{n-1})}& +\dfrac{\varphi}{(\varphi_n,\varepsilon_n)} +\end{Vmatrix}\] +\begin{verbatim} +\[W(\Phi)= \begin{Vmatrix} +\dfrac\varphi{(\varphi_1,\varepsilon_1)}&0&\dots&0\\ +\dfrac{\varphi k_{n2}}{(\varphi_2,\varepsilon_1)}& +\dfrac\varphi{(\varphi_2,\varepsilon_2)}&\dots&0\\ +\hdotsfor{5}\\ +\dfrac{\varphi k_{n1}}{(\varphi_n,\varepsilon_1)}& +\dfrac{\varphi k_{n2}}{(\varphi_n,\varepsilon_2)}&\dots& +\dfrac{\varphi k_{n\,n-1}}{(\varphi_n,\varepsilon_{n-1})}& +\dfrac{\varphi}{(\varphi_n,\varepsilon_n)} +\end{Vmatrix}\] +\end{verbatim} +The spacing of the dots can be varied through use of a square-bracket +option, for example, \verb"\hdotsfor[1.5]{3}". The number in square brackets +will be used as a multiplier; the normal value is 1. + +\subsection{The \cn{substack} command} + +The \cn{substack} command can be used to produce a multiline +subscript or superscript: +for example +\begin{verbatim} +\sum_{\substack{0\le i\le m\\ 0 0$) +returns on input $y \in \{0,1\}^{k}$ a random element of $f^{-1}(y)$. +\end{defn} +In the non-uniform setting \cite{imlelu:oneway} show that these are not +weaker than one-way functions: +\begin{thm}[\cite{imlelu:oneway} (non-uniform)] +\label{th-info-ow-ow} +The existence of informationally one-way functions +implies the existence of one-way functions. +\end{thm} +We will stick to the convention introduced above of saying +``non-uniform'' before the theorem statement when the theorem +makes use of non-uniformity. It should be understood that +if nothing is said then the result holds for both the uniform and +the non-uniform models. + +It now follows from \thmref{th-info-ow-ow} that + +\begin{thm}[non-uniform]\label{th-weak-ske-owf} Weak SKE +implies the existence of a one-way function. +\end{thm} + +More recently, the polynomial-time, interior point algorithms for linear +programming have been extended to the case of convex quadratic programs +\cite{moad:quadpro,ye:intalg}, certain linear complementarity problems +\cite{komiyo:lincomp,miyoki:lincomp}, and the nonlinear complementarity +problem \cite{komiyo:unipfunc}. The connection between these algorithms +and the classical Newton method for nonlinear equations is well +explained in \cite{komiyo:lincomp}. + +\section{Review} +\label{computation} + +We begin our discussion with the following definition: + +\begin{defn} + +A function $H\colon \Re^n \to \Re^n$ is said to be +\emph{B-differentiable} at the point $z$ if (i)~$H$ is Lipschitz +continuous in a neighborhood of $z$, and (ii)~ there exists a positive +homogeneous function $BH(z)\colon \Re^n \to \Re^n$, called the +\emph{B-derivative} of $H$ at $z$, such that +\[ \lim_{v \to 0} \frac{H(z+v) - H(z) - BH(z)v}{\enVert{v}} = 0. \] +The function $H$ is \textit{B-differentiable in set $S$} if it is +B-differentiable at every point in $S$. The B-derivative $BH(z)$ is said +to be \textit{strong} if +\[ \lim_{(v,v') \to (0,0)} \frac{H(z+v) - H(z+v') - BH(z)(v + -v')}{\enVert{v - v'}} = 0. \] +\end{defn} + + +\begin{lem}\label{limbog} There exists a smooth function $\psi_0(z)$ +defined for $\abs{z}>1-2a$ satisfying the following properties\textup{:} +\begin{enumerate} +\renewcommand{\labelenumi}{(\roman{enumi})} +\item $\psi_0(z)$ is bounded above and below by positive constants +$c_1\leq \psi_0(z)\leq c_2$. +\item If $\abs{z}>1$, then $\psi_0(z)=1$. +\item For all $z$ in the domain of $\psi_0$, $\Delta_0\ln \psi_0\geq 0$. +\item If $1-2a<\abs{z}<1-a$, then $\Delta_0\ln \psi_0\geq +c_3>0$. +\end{enumerate} +\end{lem} + +\begin{proof} +We choose $\psi_0(z)$ to be a radial function depending only on $r=\abs{z}$. +Let $h(r)\geq 0$ be a suitable smooth function satisfying $h(r)\geq c_3$ +for $1-2a<\abs{z}<1-a$, and $h(r)=0$ for $\abs{z}>1-\tfrac a2$. The radial +Laplacian +\[\Delta_0\ln\psi_0(r)=\left(\frac {d^2}{dr^2}+\frac +1r\frac d{dr}\right)\ln\psi_0(r)\] +has smooth coefficients for $r>1-2a$. Therefore, we may +apply the existence and uniqueness theory for ordinary differential +equations. Simply let $\ln \psi_0(r)$ be the solution of the differential +equation +\[\left(\frac{d^2}{dr^2}+\frac 1r\frac d{dr}\right)\ln \psi_0(r)=h(r)\] +with initial conditions given by $\ln \psi_0(1)=0$ and +$\ln\psi_0'(1)=0$. + +Next, let $D_\nu$ be a finite collection of pairwise disjoint disks, +all of which are contained in the unit disk centered at the origin in +$C$. We assume that $D_\nu=\{z\mid \abs{z-z_\nu}<\delta\}$. Suppose that +$D_\nu(a)$ denotes the smaller concentric disk $D_\nu(a)=\{z\mid +\abs{z-z_\nu}\leq (1-2a)\delta\}$. We define a smooth weight function +$\Phi_0(z)$ for $z\in C-\bigcup_\nu D_\nu(a)$ by setting $\Phi_ +0(z)=1$ when $z\notin \bigcup_\nu D_\nu$ and $\Phi_ +0(z)=\psi_0((z-z_\nu)/\delta)$ when $z$ is an element of $D_\nu$. It +follows from \lemref{limbog} that $\Phi_ 0$ satisfies the properties: +\begin{enumerate} +\renewcommand{\labelenumi}{(\roman{enumi})} +\item \label{boundab}$\Phi_ 0(z)$ is bounded above and below by +positive constants $c_1\leq \Phi_ 0(z)\leq c_2$. +\item \label{d:over}$\Delta_0\ln\Phi_ 0\geq 0$ for all +$z\in C-\bigcup_\nu D_\nu(a)$, +the domain where the function $\Phi_ 0$ is defined. +\item \label{d:ad}$\Delta_0\ln\Phi_ 0\geq c_3\delta^{-2}$ +when $(1-2a)\delta<\abs{z-z_\nu}<(1-a)\delta$. +\end{enumerate} +Let $A_\nu$ denote the annulus $A_\nu=\{(1-2a)\delta<\abs{z-z_\nu}<(1-a) +\delta \}$, and set $A=\bigcup_\nu A_\nu$. The +\pfullref{properties}{d:over} and (\ref{d:ad}) of $\Phi_ 0$ +may be summarized as $\Delta_0\ln \Phi_ 0\geq c_3\delta^{-2}\chi_A$, +where $\chi _A$ is the characteristic function of $A$. +\end{proof} + +Suppose that $\alpha$ is a nonnegative real constant. We apply +\fullref{Proposition}{prop:eg} with $\Phi(z)=\Phi_ 0(z) e^{\alpha\abs{z}^2}$. If +$u\in C^\infty_0(R^2-\bigcup_\nu D_\nu(a))$, assume that $\mathcal{D}$ +is a bounded domain containing the support of $u$ and $A\subset +\mathcal{D}\subset R^2-\bigcup_\nu D_\nu(a)$. A calculation gives +\[\int_{\mathcal{D}}\abs{\overline\partial u}^2\Phi_ 0(z) e^{\alpha\abs{z}^2} +\geq c_4\alpha\int_{\mathcal{D}}\abs{u}^2\Phi_ 0e^{\alpha\abs{z}^2} ++c_5\delta^{-2}\int_ A\abs{u}^2\Phi_ 0e^{\alpha\abs{z}^2}.\] + +The boundedness, \pfullref{property}{boundab} of $\Phi_ 0$, then yields +\[\int_{\mathcal{D}}\abs{\overline\partial u}^2e^{\alpha\abs{z}^2}\geq c_6\alpha +\int_{\mathcal{D}}\abs{u}^2e^{\alpha\abs{z}^2} ++c_7\delta^{-2}\int_ A\abs{u}^2e^{\alpha\abs{z}^2}.\] + +Let $B(X)$ be the set of blocks of $\Lambda_{X}$ +and let $b(X) = \abs{B(X)}$. If $\phi \in Q_{X}$ then +$\phi$ is constant on the blocks of $\Lambda_{X}$. +\begin{equation}\label{far-d} + P_{X} = \{ \phi \in M \mid \Lambda_{\phi} = \Lambda_{X} \}, +\qquad +Q_{X} = \{\phi \in M \mid \Lambda_{\phi} \geq \Lambda_{X} \}. +\end{equation} +If $\Lambda_{\phi} \geq \Lambda_{X}$ then +$\Lambda_{\phi} = \Lambda_{Y}$ for some $Y \geq X$ so that +\[ Q_{X} = \bigcup_{Y \geq X} P_{Y}. \] +Thus by M\"obius inversion +\[ \abs{P_{Y}}= \sum_{X\geq Y} \mu (Y,X)\abs{Q_{X}}.\] +Thus there is a bijection from $Q_{X}$ to $W^{B(X)}$. +In particular $\abs{Q_{X}} = w^{b(X)}$. + +Next note that $b(X)=\dim X$. We see this by choosing a +basis for $X$ consisting of vectors $v^{k}$ defined by +\[v^{k}_{i}= +\begin{cases} 1 & \text{if $i \in \Lambda_{k}$},\\ +0 &\text{otherwise.} \end{cases} +\] +\begin{verbatim} +\[v^{k}_{i}= +\begin{cases} 1 & \text{if $i \in \Lambda_{k}$},\\ +0 &\text{otherwise.} \end{cases} +\] +\end{verbatim} + +\begin{lem}\label{p0201} +Let $\A$ be an arrangement. Then +\[ \chi (\A,t) = \sum_{\B \subseteq \A} +(-1)^{\abs{\B}} t^{\dim T(\B)}. \] +\end{lem} + +In order to compute $R''$ recall the definition +of $S(X,Y)$ from \lemref{lem-per}. Since $H \in \B$, +$\A_{H} \subseteq \B$. Thus if $T(\B) = Y$ then +$\B \in S(H,Y)$. Let $L'' = L(\A'')$. Then +\begin{equation}\label{E_SXgYy} +\begin{split} +R''&= \sum_{H\in \B \subseteq \A} (-1)^{\abs{\B}} +t^{\dim T(\B)}\\ +&= \sum_{Y \in L''} \sum_{\B \in S(H,Y)} +(-1)^{\abs{\B}}t^{\dim Y} \\ +&= -\sum_{Y \in L''} \sum_{\B \in S(H,Y)} (-1)^ +{\abs{\B - \A_{H}}} t^{\dim Y} \\ +&= -\sum_{Y \in L''} \mu (H,Y)t^{\dim Y} \\ +&= -\chi (\A '',t). +\end{split} +\end{equation} + +\begin{cor}\label{tripleA} +Let $(\A,\A',\A'')$ be a triple of arrangements. Then +\[ \pi (\A,t) = \pi (\A',t) + t \pi (\A'',t). \] +\end{cor} + +\begin{defn} +Let $(\A,\A',\A'')$ be a triple with respect to +the hyperplane $H \in \A$. Call $H$ a \textit{separator} +if $T(\A) \not\in L(\A')$. +\end{defn} + +\begin{cor}\label{nsep} +Let $(\A,\A',\A'')$ be a triple with respect to $H \in \A$. +\begin{enumerate} +\renewcommand{\labelenumi}{(\roman{enumi})} +\item +If $H$ is a separator then +\[ \mu (\A) = - \mu (\A'') \] +and hence +\[ \abs{\mu (\A)} = \abs{ \mu (\A'')}. \] + +\item If $H$ is not a separator then +\[\mu (\A) = \mu (\A') - \mu (\A'') \] +and +\[ \abs{\mu (\A)} = \abs{\mu (\A')} + \abs{\mu (\A'')}. \] +\end{enumerate} +\end{cor} + +\begin{proof} +It follows from \thmref{th-info-ow-ow} that $\pi(\A,t)$ +has leading term +\[(-1)^{r(\A)}\mu (\A)t^{r(\A)}.\] +The conclusion +follows by comparing coefficients of the leading +terms on both sides of the equation in +\fullref{Corollary}{tripleA}. If $H$ is a separator then +$r(\A') < r(\A)$ and there is no contribution +from $\pi (\A',t)$. +\end{proof} + +The Poincar\'e polynomial of an arrangement +will appear repeatedly +in these notes. It will be shown to equal the +Poincar\'e polynomial +of the graded algebras which we are going to +associate with $\A$. It is also the Poincar\'e +polynomial of the complement $M(\A)$ for a +complex arrangement. Here we prove +that the Poincar\'e polynomial is the chamber +counting function for a real arrangement. The +complement $M(\A)$ is a disjoint union of chambers +\[M(\A) = \bigcup_{C \in \Cham(\A)} C.\] +The number +of chambers is determined by the Poincar\'e +polynomial as follows. + +\begin{thm}\label{th-realarr} +Let $\A_{\mathbf{R}}$ be a real arrangement. Then +\[ \abs{\Cham(\A_{\mathbf{R}})} = \pi (\A_{\mathbf{R}},1). \] +\end{thm} + +\begin{proof} +We check the properties required in \fullref{Corollary}{nsep}: +(i) follows from $\pi (\Phi_{ l},t) = 1$, and (ii) is a +consequence of \fullref{Corollary}{BI}. +\end{proof} + +\begin{figure} +\vspace{5cm} +\caption[]{$Q(\A_{1}) = xyz(x-z)(x+z)(y-z)(y+z)$} +\end{figure} + +\begin{figure} +\vspace{5cm} +\caption[]{$Q(\A_{2})= xyz(x+y+z)(x+y-z)(x-y+z)(x-y-z)$} +\end{figure} + + +\begin{thm} +\label{T_first_the_int} +Let $\phi$ be a protocol for a random pair $\XcY$. +If one of $\st_\phi(x',y)$ and $\st_\phi(x,y')$ is a prefix of the other +and $(x,y)\in\SXY$, then +\[ +\langle \st_j(x',y)\rangle_{j=1}^\infty +=\langle \st_j(x,y)\rangle_{j=1}^\infty +=\langle \st_j(x,y')\rangle_{j=1}^\infty . +\] +\end{thm} +\begin{proof} +We show by induction on $i$ that +\[ +\langle \st_j(x',y)\rangle_{j=1}^i +=\langle \st_j(x,y)\rangle_{j=1}^i +=\langle \st_j(x,y')\rangle_{j=1}^i. +\] +The induction hypothesis holds vacuously for $i=0$. Assume it holds for +$i-1$, in particular +$[\st_j(x',y)]_{j=1}^{i-1}=[\st_j(x,y')]_{j=1}^{i-1}$. Then one of +$[\st_j(x',y)]_{j=i}^{\infty}$ and $[\st_j(x,y')]_{j=i}^{\infty}$ is a +prefix of the other which implies that one of $\st_i(x',y)$ and +$\st_i(x,y')$ is a prefix of the other. If the $i$th message is +transmitted by $P_\X$ then, by the separate-transmissions property and +the induction hypothesis, $\st_i(x,y)=\st_i(x,y')$, hence one of +$\st_i(x,y)$ and $\st_i(x',y)$ is a prefix of the other. By the +implicit-termination property, neither $\st_i(x,y)$ nor $\st_i(x',y)$ +can be a proper prefix of the other, hence they must be the same and +$\st_i(x',y)=\st_i(x,y)=\st_i(x,y')$. If the $i$th message is +transmitted by $\PY$ then, symmetrically, $\st_i(x,y)=\st_i(x',y)$ by +the induction hypothesis and the separate-transmissions property, and, +then, $\st_i(x,y)=\st_i(x,y')$ by the implicit-termination property, +proving the induction step. +\end{proof} + +If $\phi$ is a protocol for $(X,Y)$, and $(x,y)$, $(x',y)$ are distinct +inputs in $\SXY$, then, by the correct-decision property, +$\langle\st_j(x,y)\rangle_{j=1}^\infty\ne\langle +\st_j(x',y)\rangle_{j=1}^\infty$. + +\pfullref{Equation~}{E_SXgYy} defined $\PY$'s ambiguity set $\SXgYy$ +to be the set of possible $X$ values when $Y=y$. +The last corollary implies that for all $y\in\SY$, +the multiset% +\footnote{A multiset allows multiplicity of elements. +Hence, $\{0,01,01\}$ is prefix free as a set, but not as a multiset.} +of codewords $\{\st_\phi(x,y):x\in\SXgYy\}$ is prefix free. + +\section{One-way complexity} +\label{S_Cp1} + +$\Cw1$, the one-way complexity of a random pair $\XcY$, +is the number of bits $P_\X$ must transmit in the worst case +when $\PY$ is not permitted to transmit any feedback messages. +Starting with $\SXY$, the support set of $\XcY$, we define $\G$, +the \textit{characteristic hypergraph} of $\XcY$, and show that +\[ +\Cw1=\lceil\,\log\chi(\G)\rceil\ . +\] + +Let $\XcY$ be a random pair. For each $y$ in $\SY$, the support set of +$Y$, \pfullref{equation~}{E_SXgYy} defined $\SXgYy$ to be the set of possible +$x$ values when $Y=y$. The \textit{characteristic hypergraph} $\G$ of +$\XcY$ has $\SX$ as its vertex set and the hyperedge $\SXgYy$ for each +$y\in\SY$. + + +We can now prove a continuity theorem. +\begin{thm}\label{t:conl} +Let $\Omega \subset\mathbf{R}^n$ be an open set, let +$u\in BV(\Omega ;\mathbf{R}^m)$, and let +\begin{equation}\label{quts} +T^u_x=\left\{y\in\mathbf{R}^m: + y=\tilde u(x)+\left\langle \frac{Du}{\abs{Du}}(x),z +\right\rangle \text{ for some }z\in\mathbf{R}^n\right\} +\end{equation} +for every $x\in\Omega \backslash S_u$. Let $f\colon \mathbf{R}^m\to +\mathbf{R}^k$ be a Lipschitz continuous function such that $f(0)=0$, and +let $v=f(u)\colon \Omega \to \mathbf{R}^k$. Then $v\in BV(\Omega +;\mathbf{R}^k)$ and +\begin{equation} +Jv=\eval{(f(u^+)-f(u^-))\otimes \nu_u\cdot\, +\mathcal{H}_{n-1}}_{S_u}. +\end{equation} +In addition, for $\abs{\wt{D}u}$-almost every $x\in\Omega $ the +restriction of the function $f$ to $T^u_x$ is differentiable at $\tilde +u(x)$ and +\begin{equation} +\wt{D}v=\nabla (\eval{f}_{T^u_x})(\tilde u) +\frac{\wt{D}u}{\abs{\wt{D}u}}\cdot\abs{\wt{D}u}.\end{equation} +\end{thm} + +Before proving the theorem, we state without proof three elementary +remarks which will be useful in the sequel. +\begin{rem}\label{r:omb} +Let $\omega\colon \left]0,+\infty\right[\to \left]0,+\infty\right[$ +be a continuous function such that $\omega (t)\to 0$ as $t\to +0$. Then +\[\lim_{h\to 0^+}g(\omega(h))=L\Leftrightarrow\lim_{h\to +0^+}g(h)=L\] +for any function $g\colon \left]0,+\infty\right[\to \mathbf{R}$. +\end{rem} +\begin{rem}\label{r:dif} +Let $g \colon \mathbf{R}^n\to \mathbf{R}$ be a Lipschitz +continuous function and assume that +\[L(z)=\lim_{h\to 0^+}\frac{g(hz)-g(0)}h\] +exists for every $z\in\mathbf{Q}^n$ and that $L$ is a linear function of +$z$. Then $g$ is differentiable at 0. +\end{rem} +\begin{rem}\label{r:dif0} +Let $A \colon \mathbf{R}^n\to \mathbf{R}^m$ be a linear function, and +let $f \colon \mathbf{R}^m\to \mathbf{R}$ be a function. Then the +restriction of $f$ to the range of $A$ is differentiable at 0 if and +only if $f(A)\colon \mathbf{R}^n\to \mathbf{R}$ is differentiable at 0 +and +\[\nabla(\eval{f}_{\IM(A)})(0)A=\nabla (f(A))(0).\] +\end{rem} + +\begin{proof} + We begin by showing that $v\in BV(\Omega;\mathbf{R}^k)$ and +\begin{equation}\label{e:bomb} +\abs{Dv}(B)\le K\abs{Du}(B)\qquad\forall B\in\mathbf{B}(\Omega ), +\end{equation} +where $K>0$ is the Lipschitz constant of $f$. By \eqref{sum-Di} and by +the approximation result quoted in \secref{s:mt}, it is possible to find +a sequence $(u_h)\subset C^1(\Omega ;\mathbf{R}^m)$ converging to $u$ in +$L^1(\Omega ;\mathbf{R}^m)$ and such that +\[\lim_{h\to +\infty}\int_\Omega \abs{\nabla u_h}\,dx=\abs{Du}(\Omega ).\] +The functions $v_h=f(u_h)$ are locally Lipschitz continuous in $\Omega +$, and the definition of differential implies that $\abs{\nabla v_h}\le +K\abs{\nabla u_h}$ almost everywhere in $\Omega $. The lower semicontinuity +of the total variation and \eqref{sum-Di} yield +\begin{equation} +\begin{split} +\abs{Dv}(\Omega )\le\liminf_{h\to +\infty}\abs{Dv_h}(\Omega) & +=\liminf_{h\to +\infty}\int_\Omega \abs{\nabla v_h}\,dx\\ +&\le K\liminf_{h\to +\infty}\int_\Omega +\abs{\nabla u_h}\,dx=K\abs{Du}(\Omega). +\end{split}\end{equation} +Since $f(0)=0$, we have also +\[\int_\Omega \abs{v}\,dx\le K\int_\Omega \abs{u}\,dx;\] +therefore $u\in BV(\Omega ;\mathbf{R}^k)$. Repeating the same argument +for every open set $A\subset\Omega $, we get \eqref{e:bomb} for every +$B\in\mathbf{B}(\Omega)$, because $\abs{Dv}$, $\abs{Du}$ are Radon measures. To +prove \lemref{limbog}, first we observe that +\begin{equation}\label{e:SS} +S_v\subset S_u,\qquad\tilde v(x)=f(\tilde u(x))\qquad \forall x\in\Omega +\backslash S_u.\end{equation} +In fact, for every $\varepsilon >0$ we have +\[\{y\in B_\rho(x): \abs{v(y)-f(\tilde u(x))}>\varepsilon \}\subset \{y\in +B_\rho(x): \abs{u(y)-\tilde u(x)}>\varepsilon /K\},\] +hence +\[\lim_{\rho\to 0^+}\frac{\abs{\{y\in B_\rho(x): \abs{v(y)-f(\tilde u(x))}> +\varepsilon \}}}{\rho^n}=0\] +whenever $x\in\Omega \backslash S_u$. By a similar argument, if $x\in +S_u$ is a point such that there exists a triplet $(u^+,u^-,\nu_u)$ +satisfying \eqref{detK1}, \eqref{detK2}, then +\[ +(v^+(x)-v^-(x))\otimes \nu_v=(f(u^+(x))-f(u^-(x)))\otimes\nu_u\quad +\text{if }x\in S_v +\] +and $f(u^-(x))=f(u^+(x))$ if $x\in S_u\backslash S_v$. Hence, by (1.8) +we get +\begin{equation*}\begin{split} +Jv(B)=\int_{B\cap S_v}(v^+-v^-)\otimes \nu_v\,d\mathcal{H}_{n-1}&= +\int_{B\cap S_v}(f(u^+)-f(u^-))\otimes \nu_u\,d\mathcal{H}_{n-1}\\ +&=\int_{B\cap S_u}(f(u^+)-f(u^-))\otimes \nu_u\,d\mathcal{H}_{n-1} +\end{split}\end{equation*} +and \lemref{limbog} is proved. +\end{proof} + +To prove \eqref{e:SS}, it is not restrictive to assume that $k=1$. +Moreover, to simplify our notation, from now on we shall assume that +$\Omega = \mathbf{R}^n$. The proof of \eqref{e:SS} is divided into two +steps. In the first step we prove the statement in the one-dimensional +case $(n=1)$, using \thmref{th-weak-ske-owf}. In the second step we +achieve the general result using \thmref{t:conl}. + +\begin{step} +Assume that $n=1$. Since $S_u$ is at most countable, \eqref{sum-bij} +yields that $\abs{\wt{D}v}(S_u\backslash S_v)=0$, so that \eqref{e:st} and \eqref{e:barwq} imply that $Dv=\wt{D}v+Jv$ is +the Radon-Nikod\'ym decomposition of $Dv$ in absolutely continuous and +singular part with respect to $\abs{\wt{D} u}$. By +\thmref{th-weak-ske-owf}, we have +\begin{equation*} +\frac{\wt{D}v}{\abs{\wt{D}u}}(t)=\lim_{s\to t^+} +\frac{Dv(\interval{\left[t,s\right[})} +{\abs{\wt{D}u}(\interval{\left[t,s\right[})},\qquad +\frac{\wt{D}u}{\abs{\wt{D}u}}(t)=\lim_{s\to t^+} +\frac{Du(\interval{\left[t,s\right[})} +{\abs{\wt{D}u}(\interval{\left[t,s\right[})} +\end{equation*} +$\abs{\wt{D}u}$-almost everywhere in $\mathbf{R}$. It is well known +(see, for instance, \cite[2.5.16]{ste:sint}) that every one-dimensional +function of bounded variation $w$ has a unique left continuous +representative, i.e., a function $\hat w$ such that $\hat w=w$ almost +everywhere and $\lim_{s\to t^-}\hat w(s)=\hat w(t)$ for every $t\in +\mathbf{R}$. These conditions imply +\begin{equation} +\hat u(t)=Du(\interval{\left]-\infty,t\right[}), +\qquad \hat v(t)=Dv(\interval{\left]-\infty,t\right[})\qquad +\forall t\in\mathbf{R} +\end{equation} +and +\begin{equation}\label{alimo} +\hat v(t)=f(\hat u(t))\qquad\forall t\in\mathbf{R}.\end{equation} +Let $t\in\mathbf{R}$ be such that +$\abs{\wt{D}u}(\interval{\left[t,s\right[})>0$ for every $s>t$ and +assume that the limits in \eqref{joe} exist. By \eqref{j:mark} and \eqref{far-d} we get +\begin{equation*}\begin{split} +\frac{\hat v(s)-\hat +v(t)}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}&=\frac {f(\hat +u(s))-f(\hat u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\\ +&=\frac{f(\hat u(s))-f(\hat +u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t)\abs{\wt{D}u +}(\interval{\left[t,s\right[}))}% +{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\\ +&+\frac +{f(\hat u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t)\abs{\wt{D} +u}(\interval{\left[t,s\right[}))-f(\hat +u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})} +\end{split}\end{equation*} +for every $s>t$. Using the Lipschitz condition on $f$ we find +{\setlength{\multlinegap}{0pt} +\begin{multline*} +\left\lvert\frac{\hat v(s)-\hat +v(t)}{\abs{\wt{D}u}(\interval{\left[t,s\right[})} -\frac{f(\hat +u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t) +\abs{\wt{D}u}(\interval{\left[t,s\right[}))-f(\hat +u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\right\rvert\\ +\le K\left\lvert +\frac{\hat u(s)-\hat u(t)} + {\abs{\wt{D}u}(\interval{\left[t,s\right[})} +-\frac{\wt{D}u}{\abs{ +\wt{D}u}}(t)\right\rvert.\end{multline*} +}% end of group with \multlinegap=0pt +By \eqref{e:bomb}, the function $s\to +\abs{\wt{D}u}(\interval{\left[t,s\right[})$ is continuous and +converges to 0 as $s\downarrow t$. Therefore \fullref{Remark}{r:omb} and the +previous inequality imply +\[\frac{\wt{D}v}{\abs{\wt{D}u}}(t)=\lim_{h\to 0^+} +\frac{f(\hat u(t)+h\dfrac{\wt{D}u}{\abs{\wt{D}u}} +(t))-f(\hat u(t))}h\quad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}.\] +By \eqref{joe}, $\hat u(x)=\tilde u(x)$ for every +$x\in\mathbf{R}\backslash S_u$; moreover, applying the same argument to +the functions $u'(t)=u(-t)$, $v'(t)=f(u'(t))=v(-t)$, we get +\[\frac{\wt{D}v}{\abs{\wt{D}u}}(t)=\lim_{h\to 0} +\frac{f(\tilde u(t) ++h\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t))-f(\tilde u(t))}{h} +\qquad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}\] +and our statement is proved. +\end{step} + +\begin{step} +Let us consider now the general case $n>1$. Let $\nu\in \mathbf{R}^n$ be +such that $\abs{\nu}=1$, and let $\pi_\nu=\{y\in\mathbf{R}^n: \langle +y,\nu\rangle =0\}$. In the following, we shall identify $\mathbf{R}^n$ +with $\pi_\nu\times\mathbf{R}$, and we shall denote by $y$ the variable +ranging in $\pi_\nu$ and by $t$ the variable ranging in $\mathbf{R}$. By +the just proven one-dimensional result, and by \thmref{thm-main}, we get +\[\lim_{h\to 0}\frac{f(\tilde u(y+t\nu)+h\dfrac{\wt{D}u_y}{\abs{ +\wt{D}u_y}}(t))-f(\tilde u(y+t\nu))}h=\frac{\wt{D}v_y}{\abs{ +\wt{D}u_y}}(t)\qquad\abs{\wt{D}u_y}\text{-a.e. in }\mathbf{R}\] +for $\mathcal{H}_{n-1}$-almost every $y\in \pi_\nu$. We claim that +\begin{equation} +\frac{\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle +}}(y+t\nu)=\frac{\wt{D}u_y} +{\abs{\wt{D}u_y}}(t)\qquad\abs{\wt{D}u_y}\text{-a.e. in }\mathbf{R} +\end{equation} +for $\mathcal{H}_{n-1}$-almost every $y\in\pi_\nu$. In fact, by \eqref{sum-ali} and \eqref{delta-l} we get +\begin{multline*} +\int_{\pi_\nu}\frac{\wt{D}u_y}{\abs{\wt{D}u_y}}\cdot\abs{\wt{D}u_y +}\,d\mathcal{H}_{n-1}(y)=\int_{\pi_\nu}\wt{D}u_y\,d\mathcal{H}_{n-1}(y)\\ +=\langle \wt{D}u,\nu\rangle =\frac +{\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle}}\cdot +\abs{\langle \wt{D}u,\nu\rangle }=\int_{\pi_\nu}\frac{ +\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }} +(y+\cdot \nu)\cdot\abs{\wt{D}u_y}\,d\mathcal{H}_{n-1}(y) +\end{multline*} +and \eqref{far-d} follows from \eqref{sum-Di}. By the same argument it +is possible to prove that +\begin{equation} +\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle +}}(y+t\nu)=\frac{\wt{D}v_y}{\abs{\wt{D}u_y}}(t)\qquad\abs{ +\wt{D}u_y}\text{-a.e. in }\mathbf{R}\end{equation} +for $\mathcal{H}_{n-1}$-almost every $y\in \pi_\nu$. By \eqref{far-d} +and \eqref{E_SXgYy} we get +\[ +\lim_{h\to 0}\frac{f(\tilde u(y+t\nu)+h\dfrac{\langle \wt{D} +u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}(y+t\nu))-f(\tilde +u(y+t\nu))}{h} +=\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle +\wt{D}u,\nu\rangle }}(y+t\nu)\] +for $\mathcal{H}_{n-1}$-almost every $y\in\pi_\nu$, and using again \eqref{detK1}, \eqref{detK2} we get +\[ +\lim_{h\to 0}\frac{f(\tilde u(x)+h\dfrac{\langle +\wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}(x))-f(\tilde +u(x))}{h}=\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle \wt{D}u,\nu +\rangle }}(x) +\] +$\abs{\langle \wt{D}u,\nu\rangle}$-a.e. in $\mathbf{R}^n$. + +Since the function $\abs{\langle \wt{D}u,\nu\rangle }/\abs{\wt{D}u}$ +is strictly positive $\abs{\langle \wt{D}u,\nu\rangle }$-almost everywhere, +we obtain also +\begin{multline*} +\lim_{h\to 0}\frac{f(\tilde u(x)+h\dfrac{\abs{\langle +\wt{D}u,\nu\rangle }}{\abs{\wt{D}u}}(x)\dfrac{\langle \wt{D} +u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}(x))-f(\tilde u(x))}{h}\\ +=\frac{\abs{\langle \wt{D}u,\nu\rangle }}{\abs{\wt{D}u}}(x)\frac +{\langle \wt{D}v,\nu\rangle }{\abs{\langle +\wt{D}u,\nu\rangle }}(x) +\end{multline*} +$\abs{\langle \wt{D}u,\nu\rangle }$-almost everywhere in $\mathbf{R}^n$. + +Finally, since +\begin{align*} +&\frac{\abs{\langle \wt{D}u,\nu\rangle }}{\abs{\wt{D}u}} +\frac{\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle}} +=\frac{\langle \wt{D}u,\nu\rangle }{\abs{\wt{D}u}} +=\left\langle \frac{\wt{D}u}{\abs{\wt{D}u}},\nu\right\rangle + \qquad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}^n\\ +&\frac{\abs{\langle \wt{D}u,\nu\rangle }}{\abs{\wt{D}u}} +\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle}} +=\frac{\langle \wt{D}v,\nu\rangle }{\abs{\wt{D}u}} +=\left\langle \frac{\wt{D}v}{\abs{\wt{D}u}},\nu\right\rangle + \qquad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}^n +\end{align*} +and since both sides of \eqref{alimo} +are zero $\abs{\wt{D}u}$-almost everywhere +on $\abs{\langle \wt{D}u,\nu\rangle }$-negligible sets, we conclude that +\[ +\lim_{h\to 0}\frac{f\left( +\tilde u(x)+h\left\langle \dfrac{\wt{D} +u}{\abs{\wt{D}u}}(x),\nu\right\rangle \right)-f(\tilde u(x))}h +=\left\langle \frac{\wt{D}v}{\abs{\wt{D}u}}(x),\nu\right\rangle, +\] +$\abs{\wt{D}u}$-a.e. in $\mathbf{R}^n$. +Since $\nu$ is arbitrary, by \fullref{Remarks}{r:dif} \fullref{and}{r:dif0} +the restriction of $f$ to +the affine space $T^u_x$ is differentiable at $\tilde u(x)$ for $\abs{\wt{D} +u}$-almost every $x\in \mathbf{R}^n$ and \eqref{quts} holds.\qed +\end{step} + +It follows from \eqref{sum-Di}, \eqref{detK1}, and \eqref{detK2} that +\begin{equation}\label{Dt} +D(t_1,\dots,t_n)=\sum_{I\in\mathbf{n}}(-1)^{\abs{I}-1}\abs{I} +\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mathbf{A}^{(\lambda)} +(\overline I|\overline I). +\end{equation} +Let $t_i=\hat x_i$, $i=1,\dots,n$. Lemma 1 leads to +\begin{equation}\label{Dx} +D(\hat x_1,\dots,\hat x_n)=\prod_{i\in\mathbf{n}}\hat x_i +\sum_{I\in\mathbf{n}}(-1)^{\abs{I}-1}\abs{I}\per \mathbf{A} +^{(\lambda)}(I|I)\det\mathbf{A}^{(\lambda)}(\overline I|\overline I). +\end{equation} +By \eqref{H-cycles}, \eqref{sum-Di}, and \eqref{Dx}, +we have the following result: +\begin{thm}\label{thm-H-param} +\begin{equation}\label{H-param} +H_c=\frac{1}{2n}\sum^n_{l =1}l (-1)^{l -1}A_{l} +^{(\lambda)}, +\end{equation} +where +\begin{equation}\label{A-l-lambda} +A^{(\lambda)}_l =\sum_{I_l \subseteq\mathbf{n}}\per \mathbf{A} +^{(\lambda)}(I_l |I_l )\det\mathbf{A}^{(\lambda)} +(\overline I_{l}|\overline I_l ),\abs{I_{l}}=l . +\end{equation} +\end{thm} + +It is worth noting that $A_l ^{(\lambda)}$ of \eqref{A-l-lambda} is +similar to the coefficients $b_l $ of the characteristic polynomial of \eqref{bl-sum}. It is well known in graph theory that the coefficients +$b_l $ can be expressed as a sum over certain subgraphs. It is +interesting to see whether $A_l $, $\lambda=0$, structural properties +of a graph. + +We may call \eqref{H-param} a parametric representation of $H_c$. In +computation, the parameter $\lambda_i$ plays very important roles. The +choice of the parameter usually depends on the properties of the given +graph. For a complete graph $K_n$, let $\lambda_i=1$, $i=1,\dots,n$. +It follows from \eqref{A-l-lambda} that +\begin{equation}\label{compl-gr} +A^{(1)}_l =\begin{cases} n!,&\text{if }l =1\\ +0,&\text{otherwise}.\end{cases} +\end{equation} +By \eqref{H-param} +\begin{equation} +H_c=\frac 12(n-1)!. +\end{equation} +For a complete bipartite graph $K_{n_1n_2}$, let $\lambda_i=0$, $i=1,\dots,n$. +By \eqref{A-l-lambda}, +\begin{equation} +A_l = +\begin{cases} -n_1!n_2!\delta_{n_1n_2},&\text{if }l =2\\ +0,&\text{otherwise }.\end{cases} +\label{compl-bip-gr} +\end{equation} +\fullref{Theorem}{thm-H-param} +leads to +\begin{equation} +H_c=\frac1{n_1+n_2}n_1!n_2!\delta_{n_1n_2}. +\end{equation} + +Now, we consider an asymmetrical approach. \fullref{Theorem}{thm-main} leads to +\begin{multline} +\det\mathbf{K}(t=1,t_1,\dots,t_n;l |l )\\ +=\sum_{I\subseteq\mathbf{n}-\{l \}} +(-1)^{\abs{I}}\prod_{i\in I}t_i\prod_{j\in I} +(D_j+\lambda_jt_j)\det\mathbf{A}^{(\lambda)} +(\overline I\cup\{l \}|\overline I\cup\{l \}). +\end{multline} + +By \eqref{H-cycles} and \eqref{sum-ali} we have the following asymmetrical +result: +\begin{thm}\label{thm-asym} +\begin{equation} +H_c=\frac12\sum_{I\subseteq\mathbf{n}-\{l \}} +(-1)^{\abs{I}}\per\mathbf{A}^{(\lambda)}(I|I)\det +\mathbf{A}^{(\lambda)} +(\overline I\cup\{l \}|\overline I\cup\{l \}) +\end{equation} +which reduces to Goulden--Jackson's formula when $\lambda_i=0,i=1,\dots,n$ +\cite{mami:matrixth}. +\end{thm} + + +\section{Various font features of the \pkg{amsmath} package} +\label{s:font} +\subsection{Bold versions of special symbols} + +In the \pkg{amsmath} package \cn{boldsymbol} is used for getting +individual bold math symbols and bold Greek letters---everything in +math except for letters of the Latin alphabet, +where you'd use \cn{mathbf}. For example, +\begin{verbatim} +A_\infty + \pi A_0 \sim +\mathbf{A}_{\boldsymbol{\infty}} \boldsymbol{+} +\boldsymbol{\pi} \mathbf{A}_{\boldsymbol{0}} +\end{verbatim} +looks like this: +\[A_\infty + \pi A_0 \sim \mathbf{A}_{\boldsymbol{\infty}} +\boldsymbol{+} \boldsymbol{\pi} \mathbf{A}_{\boldsymbol{0}}\] + +\subsection{``Poor man's bold''} +If a bold version of a particular symbol doesn't exist in the +available fonts, +then \cn{boldsymbol} can't be used to make that symbol bold. +At the present time, this means that +\cn{boldsymbol} can't be used with symbols from +the \fn{msam} and \fn{msbm} fonts, among others. +In some cases, poor man's bold (\cn{pmb}) can be used instead +of \cn{boldsymbol}: +% Can't show example from msam or msbm because this document is +% supposed to be TeXable even if the user doesn't have +% AMSFonts. MJD 5-JUL-1990 +\[\frac{\partial x}{\partial y} +\pmb{\bigg\vert} +\frac{\partial y}{\partial z}\] +\begin{verbatim} +\[\frac{\partial x}{\partial y} +\pmb{\bigg\vert} +\frac{\partial y}{\partial z}\] +\end{verbatim} +So-called ``large operator'' symbols such as $\sum$ and $\prod$ +require an additional command, \cn{mathop}, +to produce proper spacing and limits when \cn{pmb} is used. +For further details see \textit{The \TeX book}. +\[\sum_{\substack{i\alpha\} +=\meas_n\{x\in R^n\colon \abs{f(x)}\geq\alpha\} +\quad \forall\alpha>0.\] +\begin{verbatim} +\[\meas_1\{u\in R_+^1\colon f^*(u)>\alpha\} +=\meas_n\{x\in R^n\colon \abs{f(x)}\geq\alpha\} +\quad \forall\alpha>0.\] +\end{verbatim} +\cn{esssup} and \cn{meas} would be defined in the document preamble as +\begin{verbatim} +\DeclareMathOperator*{\esssup}{ess\,sup} +\DeclareMathOperator{\meas}{meas} +\end{verbatim} + +The following special operator names are predefined in the \pkg{amsmath} +package: \cn{varlimsup}, \cn{varliminf}, \cn{varinjlim}, and +\cn{varprojlim}. Here's what they look like in use: +\begin{align} +&\varlimsup_{n\rightarrow\infty} + \mathcal{Q}(u_n,u_n-u^{\#})\le0\\ +&\varliminf_{n\rightarrow\infty} + \left\lvert a_{n+1}\right\rvert/\left\lvert a_n\right\rvert=0\\ +&\varinjlim (m_i^\lambda\cdot)^*\le0\\ +&\varprojlim_{p\in S(A)}A_p\le0 +\end{align} +\begin{verbatim} +\begin{align} +&\varlimsup_{n\rightarrow\infty} + \mathcal{Q}(u_n,u_n-u^{\#})\le0\\ +&\varliminf_{n\rightarrow\infty} + \left\lvert a_{n+1}\right\rvert/\left\lvert a_n\right\rvert=0\\ +&\varinjlim (m_i^\lambda\cdot)^*\le0\\ +&\varprojlim_{p\in S(A)}A_p\le0 +\end{align} +\end{verbatim} + +\subsection{\cn{mod} and its relatives} +The commands \cn{mod} and \cn{pod} are variants of +\cn{pmod} preferred by some authors; \cn{mod} omits the parentheses, +whereas \cn{pod} omits the `mod' and retains the parentheses. +Examples: +\begin{align} +x&\equiv y+1\pmod{m^2}\\ +x&\equiv y+1\mod{m^2}\\ +x&\equiv y+1\pod{m^2} +\end{align} +\begin{verbatim} +\begin{align} +x&\equiv y+1\pmod{m^2}\\ +x&\equiv y+1\mod{m^2}\\ +x&\equiv y+1\pod{m^2} +\end{align} +\end{verbatim} + +\subsection{Fractions and related constructions} +\label{fracs} + +The usual notation for binomials is similar to the fraction concept, +so it has a similar command \cn{binom} with two arguments. Example: +\begin{equation} +\begin{split} +\sum_{\gamma\in\Gamma_C} I_\gamma& +=2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}\\ +&\quad+\dots+(-1)^l\binom{k}{l}2^{k-l} ++\dots+(-1)^k\\ +&=(2-1)^k=1 +\end{split} +\end{equation} +\begin{verbatim} +\begin{equation} +\begin{split} +[\sum_{\gamma\in\Gamma_C} I_\gamma& +=2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}\\ +&\quad+\dots+(-1)^l\binom{k}{l}2^{k-l} ++\dots+(-1)^k\\ +&=(2-1)^k=1 +\end{split} +\end{equation} +\end{verbatim} +There are also abbreviations +\begin{verbatim} +\dfrac \dbinom +\tfrac \tbinom +\end{verbatim} +for the commonly needed constructions +\begin{verbatim} +{\displaystyle\frac ... } {\displaystyle\binom ... } +{\textstyle\frac ... } {\textstyle\binom ... } +\end{verbatim} + +The generalized fraction command \cn{genfrac} provides full access to +the six \TeX{} fraction primitives: +\begin{align} +\text{\cn{over}: }&\genfrac{}{}{}{}{n+1}{2}& +\text{\cn{overwithdelims}: }& + \genfrac{\langle}{\rangle}{}{}{n+1}{2}\\ +\text{\cn{atop}: }&\genfrac{}{}{0pt}{}{n+1}{2}& +\text{\cn{atopwithdelims}: }& + \genfrac{(}{)}{0pt}{}{n+1}{2}\\ +\text{\cn{above}: }&\genfrac{}{}{1pt}{}{n+1}{2}& +\text{\cn{abovewithdelims}: }& + \genfrac{[}{]}{1pt}{}{n+1}{2} +\end{align} +\begin{verbatim} +\text{\cn{over}: }&\genfrac{}{}{}{}{n+1}{2}& +\text{\cn{overwithdelims}: }& + \genfrac{\langle}{\rangle}{}{}{n+1}{2}\\ +\text{\cn{atop}: }&\genfrac{}{}{0pt}{}{n+1}{2}& +\text{\cn{atopwithdelims}: }& + \genfrac{(}{)}{0pt}{}{n+1}{2}\\ +\text{\cn{above}: }&\genfrac{}{}{1pt}{}{n+1}{2}& +\text{\cn{abovewithdelims}: }& + \genfrac{[}{]}{1pt}{}{n+1}{2} +\end{verbatim} + +\subsection{Continued fractions} +The continued fraction +\begin{equation} +\cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+\dotsb +}}}}} +\end{equation} +can be obtained by typing +\begin{verbatim} +\cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+ + \cfrac{1}{\sqrt{2}+\dotsb +}}}}} +\end{verbatim} +Left or right placement of any of the numerators is accomplished by using +\cn{cfrac[l]} or \cn{cfrac[r]} instead of \cn{cfrac}. + +\subsection{Smash} + +In \pkg{amsmath} there are optional arguments \verb"t" and \verb"b" for +the plain \TeX\ command \cn{smash}, because sometimes it is advantageous +to be able to `smash' only the top or only the bottom of something while +retaining the natural depth or height. In the formula +$X_j=(1/\sqrt{\smash[b]{\lambda_j}})X_j'$ \cn{smash}\verb=[b]= has been +used to limit the size of the radical symbol. +\begin{verbatim} +$X_j=(1/\sqrt{\smash[b]{\lambda_j}})X_j'$ +\end{verbatim} +Without the use of \cn{smash}\verb=[b]= the formula would have appeared +thus: $X_j=(1/\sqrt{\lambda_j})X_j'$, with the radical extending to +encompass the depth of the subscript $j$. + +\subsection{The `cases' environment} +`Cases' constructions like the following can be produced using +the \env{cases} environment. +\begin{equation} +P_{r-j}= + \begin{cases} + 0& \text{if $r-j$ is odd},\\ + r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}. + \end{cases} +\end{equation} +\begin{verbatim} +\begin{equation} P_{r-j}= + \begin{cases} + 0& \text{if $r-j$ is odd},\\ + r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}. + \end{cases} +\end{equation} +\end{verbatim} +Notice the use of \cn{text} and the embedded math. + +\subsection{Matrix} + +Here are samples of the matrix environments, +\cn{matrix}, \cn{pmatrix}, \cn{bmatrix}, \cn{Bmatrix}, \cn{vmatrix} +and \cn{Vmatrix}: +\begin{equation} +\begin{matrix} +\vartheta& \varrho\\\varphi& \varpi +\end{matrix}\quad +\begin{pmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{pmatrix}\quad +\begin{bmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{bmatrix}\quad +\begin{Bmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{Bmatrix}\quad +\begin{vmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{vmatrix}\quad +\begin{Vmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{Vmatrix} +\end{equation} +% +\begin{verbatim} +\begin{matrix} +\vartheta& \varrho\\\varphi& \varpi +\end{matrix}\quad +\begin{pmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{pmatrix}\quad +\begin{bmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{bmatrix}\quad +\begin{Bmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{Bmatrix}\quad +\begin{vmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{vmatrix}\quad +\begin{Vmatrix} +\vartheta& \varrho\\\varphi& \varpi +\end{Vmatrix} +\end{verbatim} + +To produce a small matrix suitable for use in text, use the +\env{smallmatrix} environment. +\begin{verbatim} +\begin{math} + \bigl( \begin{smallmatrix} + a&b\\ c&d + \end{smallmatrix} \bigr) +\end{math} +\end{verbatim} +To show +the effect of the matrix on the surrounding lines of +a paragraph, we put it here: \begin{math} + \bigl( \begin{smallmatrix} + a&b\\ c&d + \end{smallmatrix} \bigr) +\end{math} +and follow it with enough text to ensure that there will +be at least one full line below the matrix. + +\cn{hdotsfor}\verb"{"\textit{number}\verb"}" produces a row of dots in a matrix +spanning the given number of columns: +\[W(\Phi)= \begin{Vmatrix} +\dfrac\varphi{(\varphi_1,\varepsilon_1)}&0&\dots&0\\ +\dfrac{\varphi k_{n2}}{(\varphi_2,\varepsilon_1)}& +\dfrac\varphi{(\varphi_2,\varepsilon_2)}&\dots&0\\ +\hdotsfor{5}\\ +\dfrac{\varphi k_{n1}}{(\varphi_n,\varepsilon_1)}& +\dfrac{\varphi k_{n2}}{(\varphi_n,\varepsilon_2)}&\dots& +\dfrac{\varphi k_{n\,n-1}}{(\varphi_n,\varepsilon_{n-1})}& +\dfrac{\varphi}{(\varphi_n,\varepsilon_n)} +\end{Vmatrix}\] +\begin{verbatim} +\[W(\Phi)= \begin{Vmatrix} +\dfrac\varphi{(\varphi_1,\varepsilon_1)}&0&\dots&0\\ +\dfrac{\varphi k_{n2}}{(\varphi_2,\varepsilon_1)}& +\dfrac\varphi{(\varphi_2,\varepsilon_2)}&\dots&0\\ +\hdotsfor{5}\\ +\dfrac{\varphi k_{n1}}{(\varphi_n,\varepsilon_1)}& +\dfrac{\varphi k_{n2}}{(\varphi_n,\varepsilon_2)}&\dots& +\dfrac{\varphi k_{n\,n-1}}{(\varphi_n,\varepsilon_{n-1})}& +\dfrac{\varphi}{(\varphi_n,\varepsilon_n)} +\end{Vmatrix}\] +\end{verbatim} +The spacing of the dots can be varied through use of a square-bracket +option, for example, \verb"\hdotsfor[1.5]{3}". The number in square brackets +will be used as a multiplier; the normal value is 1. + +\subsection{The \cn{substack} command} + +The \cn{substack} command can be used to produce a multiline +subscript or superscript: +for example +\begin{verbatim} +\sum_{\substack{0\le i\le m\\ 0 converted.tex +# +# +# Copyright (C) 2010 Annals of Mathematics. Public domain. +# +# Author: Boris Veytsman +# +# Version: 0.9, 2010/12/04 + +use strict; + +# List of patterns for 'equation' words +my @eqsynonyms = ('\S*equa\S*', 'relat\S*', 'item\S*', + 'condition\S*', + '\S*propert\S*'); + +# First we skip preamble +while(<>) { + print; + last if (/\\begin\{document\}/); +} + +# This is a trick to catch \ref being the first word on the line +my $prevline = ""; + +# Processing document +while (<>) { + if ((/^[\s~]*\(?\\ref/) || (/^[\s~]*\\eqref/)) { + chomp $prevline; + $_ = "$prevline $_"; + } else { + print $prevline; + } + + # Now the meat of the substitutions + # We add initial space, so all words have space before them. + $_ = " $_"; + foreach my $synonym (@eqsynonyms) { + s/(\s)($synonym)[\s~]*\(\\ref\{([^\}]+)\}\)/$1\\pfullref{$2}{$3}/gi; + s/(\s)($synonym)[\s~]*\\eqref\{([^\}]+)\}/$1\\eqfullref{$2}{$3}/gi; + } + s/(\s)([^\s\\]\S*[^~\s\(\)\[\]])[\s~]*\[\\ref\{([^\}]+)\}\]/$1\\bfullref{$2}{$3}/g; + s/(\s)([^\s\\]\S*[^~\s\(\)\[\]])[\s~]*\\ref\{([^\}]+)\}/$1\\fullref{$2}{$3}/g; + + # Now delete the extra space + s/^ //; + $prevline=$_; + if (/\\end\{document\}/) { + print; + last; + } +} + +# And processing whatever is left +while (<>) { + print; +} + +exit 0; diff --git a/Master/texmf-dist/source/latex/aomart/aomart.dtx b/Master/texmf-dist/source/latex/aomart/aomart.dtx new file mode 100644 index 00000000000..b2c94d1bc46 --- /dev/null +++ b/Master/texmf-dist/source/latex/aomart/aomart.dtx @@ -0,0 +1,1732 @@ +% \iffalse +% $Id: aomart.dtx,v 1.41 2011-01-02 22:20:16 boris Exp $ +% +% Copyright 2010, The Annals of Mathematics. +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Boris Veytsman, +% +% +% This work consists of the file aomart.dtx and the +% derived file aomart.cls, and files aomplain.bst and aomalpha.bst +% +% The file fullref.pl, included with this package, is in +% public domain. +% +% \fi +% \CheckSum{988} +% +% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +% +%\iffalse +% Taken from xkeyval.dtx +%\fi +%\makeatletter +%\def\DescribeOption#1{\leavevmode\@bsphack +% \marginpar{\raggedleft\PrintDescribeOption{#1}}% +% \SpecialOptionIndex{#1}\@esphack\ignorespaces} +%\def\PrintDescribeOption#1{\strut\emph{option}\\\MacroFont #1\ } +%\def\SpecialOptionIndex#1{\@bsphack +% \index{#1\actualchar{\protect\ttfamily#1} +% (option)\encapchar usage}% +% \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar +% usage}\@esphack} +%\def\DescribeOptions#1{\leavevmode\@bsphack +% \marginpar{\raggedleft\strut\emph{options}% +% \@for\@tempa:=#1\do{% +% \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa +% }}\@esphack\ignorespaces} +%\makeatother +% +% \MakeShortVerb{|} +% \GetFileInfo{aomart.dtx} +% \newcommand{\progname}[1]{\textsf{#1}} +% \title{\LaTeX{} Class for The \emph{Annals of +% Mathematics}\thanks{\copyright 2010, Annals of Mathematics}} +% \author{Boris Veytsman\thanks{% +% \href{mailto:borisv@lk.net}{\texttt{borisv@lk.net}}, +% \href{mailto:boris@varphi.com}{\texttt{boris@varphi.com}}}} +% \date{\filedate, \fileversion} +% \maketitle +% \begin{abstract} +% This package provides a class for typesetting articles for +% The \emph{Annals of Mathematics} +% \end{abstract} +% \tableofcontents +% +% \changes{v0.2}{2010/08/24}{First fully functional version} +% \changes{v0.3}{2010/09/27}{Documentation update} +% \changes{v0.4}{2010/09/29}{Documentation update} +% \changes{v0.6}{2010/10/03}{Changes to bst files} +% \changes{v0.6}{2010/10/03}{Fullref.pl is much less agressive now} +% \changes{v0.7}{2010/10/09}{Bibliography styles changed} +% \changes{v0.8}{2010/11/16}{Documentation update} +% \changes{v0.8}{2010/11/21}{Bibliography styles update} +% \changes{v0.9}{2010/12/04}{Bibliography styles update} +% \changes{v0.9}{2010/12/04}{Documentation update} +% \changes{v0.10}{2010/12/20}{Bibliography styles update} +% \changes{v0.10}{2010/12/20}{Documentation update} +% \changes{v1.0}{2010/12/21}{Top matter macros are now only in preamble} +% +% \clearpage +% +%\section{Introduction} +%\label{sec:intro} +% +% The \emph{Annals of Mathematics} is published bimonthly with the +% cooperation of Princeton University and the Institute for Advanced +% Study. Founded in 1884 by Ormond Stone of the University of +% Virginia, the journal was transferred in 1899 to Harvard University, +% and in 1911 to Princeton University. Since 1933, the Annals has been +% edited jointly by Princeton University and the Institute for +% Advanced Study (see +% \url{http://annals.princeton.edu/annals/about/journal/about.html}). +% +% This class presents a complete redesign of the journal style---with +% new fonts and new interface. +% +% +% An author well acquainted with AMS\LaTeX{} should find this package +% easy to use and configurable. The User Manual below illustrates the +% basic use of the class and discusses the differences with \progname{amsart}. +% For an in-depth tutorial of AMS\LaTeX{} I could recommend the +% excellent book~\cite{Graetzer00:MathIntoLaTeX}. +% +% +%\section{User's Guide} +%\label{sec:manual} +% +% +%\subsection{Installation} +%\label{sec:installation} +% +% The installation of the class follows the usual +% practice~\cite{TeXFAQ} for \LaTeX{} packages: +% \begin{enumerate} +% \item Run \progname{latex} on |aomart.ins|. This will produce the file +% |aomart.cls|. +% \item Put the file |aomart.cls| to +% the place where \LaTeX{} can find them (see +% \cite{TeXFAQ} or the documentation for your \TeX{} +% system).\label{item:install} +% \item Update the database of file names. Again, see \cite{TeXFAQ} +% or the documentation for your \TeX{} system for the system-specific +% details.\label{item:update} +% \item The file |aomart.pdf| provides the documentation for the +% package (this is the file you are probably reading now). +% \end{enumerate} +% As an alternative to items~\ref{item:install} and~\ref{item:update} +% you can just put the files in the working directory where your +% |.tex| file is. +% +% +% The class uses some other \LaTeX{} classes or packages. Most +% probably, they are already installed on your system. If not (or if +% their versions are very old), you need to download and +% install them. Here is the list: +% \begin{enumerate} +% \item \progname{amsart} class and related +% packages~\cite{Downes04:amsart}, +% \item Package \progname{hyperref}~\cite{Rahtz06:Hyperref}, +% \item \progname{ifpdf} package~\cite{Oberdiek06:Ifpdf}, +% \item \progname{fancyhdr} package~\cite{Oostrum04:Fancyhdr}, +% \item \progname{cmtiup} package~\cite{Znamenskii03:Cmtiup} for +% ``special italics'' with uprgiht digits and punctuation. Note that +% since many distributions do not include this package, you may need +% to install it yourself. Just download the file +% \url{http://mirrors.ctan.org/fonts/cm/cmtiup.zip}, unzip it in your +% \path{TEXMF} directory and rebuild the file names database with the +% command like |mktexlsr|, +% \item \progname{yhmath} package~\cite{Haralambous96:Yhmath}. +% \end{enumerate} +% +% +%\subsection{Invocation} +%\label{sec:invocation} +% +% To use the class, put in the preamble of your document +% \begin{flushleft} +% |\documentclass[|\meta{options}|]{aomart}| +% \end{flushleft} +% The class internally loads \progname{amsart}, so all facilities of +% \progname{amsart}~\cite{Graetzer00:MathIntoLaTeX, amsldoc} can be used in the +% source. +% +% +% +% \DescribeOptions{draft,final} +% The options |draft| and |final| work in the same way as for +% \progname{amsart} and standard \LaTeX. If the option |draft| is +% chosen, the overfull lines are marked by black boxes on the margins +% \emph{and} the |\includegraphics| prints blank placeholders for the +% images. The option |final| (default) switches off the marking of +% overfull lines and restores the behavior of |\includegraphics|. To +% switch on just the overfull marks, without changing the behavior of +% |\includegraphics|, one can either explicitly pass the option final +% to \progname{graphics} package: +% \begin{verbatim} +% \documentclass[draft]{aomart} +% \usepackage[final]{graphics} +% \end{verbatim} +% or add in the beginning of the document +% \begin{verbatim} +% \overfullrule=5pt +% \end{verbatim} +% +% \DescribeOption{manuscript} +% The option |manuscript| is intended to faciliate the communications +% between the editor and the author. It enables two things: +% \begin{enumerate} +% \item Numbering of lines in the manuscript is switched off in the +% normal mode, but is on in the manuscript mode. +% \item Command |\EditorialComment| is no-op in normal mode, but +% produces mariginal commentaries in the manuscript +% \item Hyperlinks are black in normal mode, but blue in manuscript +% mode. +% \end{enumerate} +% +% \DescribeOption{screen} +% The option |screen| is intended for the onscreen version of the +% acticle. If this option is selected, the links are blue colored, +% and the margins are reduced. +% +% \DescribeOptions{8pt,9pt,10pt,11pt,12pt} +% The size-changing options of \progname{amsart} class (|8pt|, |9pt|, +% \dots, |12pt|) have no effect other than producing a warning in the +% log since the journal is designed for +% only one type size (roughly corresponding to |11pt| of +% \progname{amsart}). +% +% +% +% +%\subsection{Top Matter} +%\label{sec:top_matter} +% +% +% There are two kinds of top matter commands: the ones used primarily +% for authors and the ones used primarily for editors. We describe +% them separately. +% +% The macros descibed below must be issued in the preamble of the +% document, i.e. before |\begin{document}|. They produce fatal error +% otherwise. This behavior is required by the way non-\TeX{} scripts +% process the files to produce metadata. +% +% The only exception is abstract, which should be placed between +% after |\begin{document}|. +% +% +%\subsubsection{Commands for Authors} +%\label{sec:authors_commands} +% +% +% \DescribeMacro{\title} +% The command |\title|, as in \progname{amsart} class, has two arguments: one +% optional, and one mandatory: +% \begin{flushleft} +% |\title[|\meta{ShortTitle}|]{|\meta{FullTitle}|}| +% \end{flushleft} +% The mandatory argument is the full title of the article. The +% optional argument, if present, defines the shorter version of the +% title for running heads. If the optional argument is absent, the +% full title is used instead. +% +% The optional argument should be used in two cases: when the full +% title is too long to fit in the running head, \emph{and} when the +% author wants to add a footnote or linebreaks to the title. +% +% +% \DescribeMacro{\author} +% \DescribeMacro{\email} +% \DescribeMacro{\address} \DescribeMacro{\curraddr} +% \DescribeMacro{\urladdr} +% The interface for specifying the authors +% and their affiliations is close the the one of +% \progname{amsart}~\cite{instr-l} (and different from the standard \LaTeX). +% For each author a separate command |\author| should be used, +% followed by |\address| and (optionally) |\curraddr|, |\email| and +% |\urladdr|. Note that the house style of the \emph{Annals of +% Mathematics} requires writing |\address| in the form +% \emph{Institution, City, State} (or \emph{Institution, City, +% Country} for non-US locations). +% Like the newer versions of \progname{amsart}, \progname{aomart} does +% \emph{not} +% require the doubling of the |@| symbols in the e-mail addresses. +% The macro |\author| has two arguments, similarly to |\title|: +% \begin{flushleft} +% |\author[|\meta{AbbrevName}|]{|\meta{FullName}|}| +% \end{flushleft} +% The optional argument defines the shorter form of the author's name +% to be included in the running head. +% +% \DescribeMacro{\givenname} \DescribeMacro{\surname} +% The papers published in the \emph{Annals of Mathematics} are +% included in various databases. For the indexing purposes it is +% important to correctly separate the authors' names into ``First +% Name/Surname'' parts. This operation is not easy for the +% computers. Therefore we decided that the authors should know best +% how to deal with their names. The macros |\givenname| and +% |\surname| are used to indicate how to split the name into the +% parts. +% +% \DescribeMacro{\shortauthors} +% In some cases the authors list may be too long for the running head, +% even if the abbreviated forms are used for each author. In this +% case it is possible to change the running head by a +% \emph{redefinition} of the command |\shortauthors|. This +% redefinition must be done after all |\author| commands, but before +% |\maketitle|: +% \begin{verbatim} +% \renewcommand{\shortauthors}{A.~Smith et al} +% \end{verbatim} +% +% +% \DescribeMacro{\thanks} +% Like \progname{amsart} (and unlike standard \LaTeX{}), +% \progname{aomart} allows |\thanks| only \emph{outside} of commands +% |\title| and |\author|. +% +% +% \DescribeEnv{abstract} +% The abstract of the paper must be put between |\begin{abstract}| and +% |\end{abstract}|. Unlike the situation in \progname{amsart} +% class, abstract may be put \emph{after} |\maketitle|. +% +% \DescribeMacro{\maketitle} +% The macro |\maketitle| typesets the top matter. All top matter +% information should be specified before this command. +% +% +%\subsubsection{Commands for Editors} +%\label{sec:editors_commands} +% +% The commands described in this section should be used by the editors +% to insert the information about the published paper. They must be +% put before the |\maketitle| command. +% +% \DescribeMacro{\keyword} +% The command |\keyword| adds a keyword to the list of keywords. This +% command may be repeated, for example +% \begin{verbatim} +% \keyword{Embedding theorem} +% \keyword{Relatively hyperbolic group} +% \end{verbatim} +% +% \DescribeMacro{\subject} +% The command |\subject| has three parameters: whether the subject is +% primary or secondary, the classification scheme and the subject +% itself, for example +% \begin{verbatim} +% \subject{primary}{msc2000}{20E45} +% \subject{secondary}{msc2000}{20F65} +% \end{verbatim} +% +% +% \DescribeMacro{\formatdate} +% The macro |\formatdate| is used to format the dates in the +% commands. Its argument is the date in the format |YYYY-MM-DD|, for +% example +% \begin{verbatim} +% \formatdate{2010-08-13} +% \end{verbatim} +% +% \DescribeMacro{\received} +% \DescribeMacro{\revised} +% \DescribeMacro{\accepted} +% \DescribeMacro{\published} +% \DescribeMacro{\publishedonline} +% The commands |\received|, |\revised|, |\accepted|, |\published|, +% |\publishedonline| accept as a parameter a date in the form +% |\formatdate|\marg{YYYY-MM-DD}, for example +% \begin{verbatim} +% \received{\formatdate{2004-12-24}} +% \revised{\formatdate{2006-04-12}} +% \accepted{\formatdate{2007-10-02}} +% \end{verbatim} +% +% \DescribeMacro{\proposed} +% \DescribeMacro{\seconded} +% \DescribeMacro{\corresponding} +% \DescribeMacro{\editor} +% \DescribeMacro{\version} +% The macros |\proposed|, |\seconded|, |\corresponding|, |\editor|, +% |\version| are used to set the corresponding metadata for the +% editorial process, for example +% \begin{verbatim} +% \proposed{E. D. Itor} +% \seconded{A. S. Sociate} +% \corresponding{A. U. Thor} +% \version{2.1} +% \end{verbatim} +% +% +% +% \DescribeMacro{\volumenumber} +% \DescribeMacro{\issuenumber} +% \DescribeMacro{\publicationyear} +% \DescribeMacro{\papernumber} +% \DescribeMacro{\startpage} +% \DescribeMacro{\endpage} +% The macros |\volumenumber|, |\issuenumber|, |\publicationyear|, +% |\papernumber|, |\startpage|, |\endpage| set up the corresponding +% data for the paper, for example: +% \begin{verbatim} +% \volumenumber{172} +% \issuenumber{1} +% \publicationyear{2010} +% \papernumber{1} +% \startpage{1} +% \endpage{39} +% \end{verbatim} +% Note that if the argument of |\endpage| is empty, \LaTeX{} tries to +% calculate the last page number as best as it can. +% +% +% \DescribeMacro{\doinumber} +% \DescribeMacro{\mrnumber} +% \DescribeMacro{\zblnumber} +% The macros |\doinumber|, |\mrnumber| and |\zblnumber| set the +% information about paper in four major reference databases: DOI +% (\url{http://www.doi.org/}), MathSciNet +% (\url{http://www.ams.org/mathscinet/}, Zentralblatt MATH +% (\url{http://www.zentralblatt-math.org/zmath/}). The use of these +% macros should be obvious: +% \begin{verbatim} +% \doinumber{10.1215/S0012-7094-92-06520-3} +% \mrnumber{1154181} +% \zblnumber{0774.14039} +% \end{verbatim} +% Note the difference between these commands and the bibliography +% commands discussed in Section~\ref{sec:biblio}. Commands in this +% Section set up the data for the \emph{current article.} Commands in +% Section~\ref{sec:biblio} set up the data for the articles in the +% bibliography list. +% +% Normally you should \emph{not} use |\doinumber| command, since the +% class will construct the standard DOI for the paper from the volume, +% issue and paper information. Use it \emph{only} if the result is by +% any reason wrong. +% +% +%\subsection{Additional Macros} +%\label{sec:add_guide} +% +% \DescribeEnv{eqnarray} +% \DescribeEnv{eqnarray*} +% Thee class \progname{aomart} loads the class \progname{amsart}. +% Therefore all familiar \progname{amsmath} commands~\cite{amsldoc} +% are available. In particular, there are many commands for writing +% multiline equations (|split|, |align|, |gather|, |multline|, +% \dots). The environments |eqnarray| and |eqnarray*|, while still +% avilable, are \emph{not} recommended and should be avoided if +% possible. +% +% \DescribeMacro{\widetilde} +% \DescribeMacro{\widehat} +% \DescribeMacro{\widetriangle} +% \DescribeMacro{\wideparen} +% \DescribeMacro{\widering} +% \DescribeMacro{\widebar} +% A number of ``wide'' mathematical accents is available due to the +% (internally loaded) package +% \progname{yhmath}~\cite{Haralambous96:Yhmath}: |\widetilde|, +% |\widehat|, |\widetriangle|, |\wideparen|, |\widering|, |\widebar|. See +% Table~\ref{tab:accents} for the example of the usage. +% +% \begin{table} +% \centering +% \begin{tabular}{ll} +% \toprule +% Code & Example \\ +% \midrule +% |\widetilde{AB}| & $\widetilde{AB}$\\ +% |\widehat{AB}| & $\widehat{AB}$\\ +% |\widetriangle{AB}| & $\widetriangle{AB}$\\ +% |\wideparen{AB}| & $\wideparen{AB}$\\ +% |\widering{AB}| & $\widering{AB}$\\ +% |\widebar{AB}| & $\widebar{AB}$\\ +% \bottomrule +% \end{tabular} +% \caption{Wide Mathematical Accents} +% \label{tab:accents} +% \end{table} +% +% +% \DescribeMacro{\EditorialComment} +% The macro |\EditorialComment|\oarg{comments} typesets the comments +% on the margins in the |manuscript| mode, for example, +% \begin{verbatim} +% Erd\"os proved the following theorem.\EditorialComment{A citation is +% needed} +% \end{verbatim} +% +% +% \DescribeMacro{\fullref} +% \DescribeMacro{\pfullref} +% \DescribeMacro{\bfullref} +% \DescribeMacro{\eqfullref} +% A set of macros is used to make more convenient clickable references +% in the online versions of papers. The +% package~\progname{hyperref}~\cite{Rahtz06:Hyperref} +% makes clickable reference numbers in the phrases like +% \begin{verbatim} +% ...in theorem~\ref{thm:Noeter}... +% ...see equation~\eqref{eq:alpha}... +% \end{verbatim} +% However, it is more convenient for the readers if both +% the number \emph{and} the word ``theorem'' or ``equation'' were +% clickable. The macros |\*fullref| solve this problem. Each macro +% has two arguments: the word and the reference, for example +% \begin{verbatim} +% ...in \fullref{theorem}{thm:Noeter}... +% \end{verbatim} +% The command |\pfullref| typesets +% the reference in parentheses. The command |\bfullref| typesets it +% in brackets, and the command |\eqfullref| uses the |\eqref| +% command, for example, +% \begin{verbatim} +% ...see \eqfullref{equation}{eq:alpha}... +% \end{verbatim} +% +% The \progname{Perl} script \path{fullref.pl} can be used to convert +% change all references to the |\fullref| commands. It works in the +% following way: +% \begin{verbatim} +% perl fullref.pl original.pl > result.pl +% \end{verbatim} +% The script converts all instances of combinations ``|word \ref{reference}|'' +% and ``|word~\ref{reference}|'' +% to ``|\fullref{word}{reference}|, and similarly for +% parenthesized references or |\eqref| commands. To prevent the +% converting, just put |\ref{reference}| or |\eqref{reference}| inside +% braces. The ``word'' here must not start with a backslash +% (i.e. must not be a macro itself). This prevents disastrous results +% for phrases like ``|see~\ref{a}, \ref{b}|''. +% +% +% The distribution includes two sample files, \path{aomsample.tex} and +% \path{aomsample1.tex}, the latter being obtained from the former by +% the script \path{fullref.pl}. +% +% +% Note that |\autoref| command of \progname{hyperref} provides for +% another mechanism that achieves the same goal. Unlike |\fullref| +% command, the command |\autoref| tries to figure out the name of the +% reference from the context. See the manual~\cite{Rahtz06:Hyperref} +% for more information. +% +%\subsection{Theorems} +%\label{sec:theorems} +% +% \DescribeMacro{\newtheorem} +% You can use the commands of \progname{amsthm} +% package~\cite{amsthdoc} like +% |\newtheorem{lem}{Lemma}| for numbered theorems, or +% |\newtheorem*{KL}{Klein's Lemma}| for unnumbered theorems, or +% tune the numbering using the optional arguments of these commands. +% +% To provide backward compatibility with some other classes used +% internally by the \emph{Annals of Mathematics,} the class provides +% yet another optional argument for the command |\newtheorem|, +% allowing constructions like |\newtheorem[\it]{lem}{Lemma}|. This +% optional parameter is not used in our typesetting. +% +% +% The class provides two theorem styles: +% \begin{description} +% \item[plain:] This is the default theorem style. It is used for +% Theorem, Lemma, Proposition, Conjecture, Corollary and Claim. +% \item[definition:] This style is used for Definition, Remark, +% Notation, Condition, Example etc. +% \end{description} +% Note that AMS classes define the third theorem style, +% \textbf{remark.} In our class remarks are typeset in the +% \textbf{definition} style. To make the authors' lives easier we +% define the theorem style \textbf{remark,} which is identical to the +% theorem style \textbf{definition.} +% +%\subsection{Illustrations} +%\label{sec:illustrations} +% +% The authors can use the \progname{graphics}, \progname{graphicx}, +% \progname{PSTricks}, \progname{pgf/tikz}, \progname{Metapost} or +% other tools to include illustrations +% (see~\cite{Goossens97:LateXGraphicsCompanion} for a comprehensive +% discussion of \LaTeX{} graphics possibilities). +% +% +%\subsection{Bibliography} +%\label{sec:biblio} +% +% The authors are encouraged to use Bib\TeX{} for uniform style of +% bibliography. The distribution includes the BST files +% \path{aomplain.bst} and \path{aomalpha.bst}. These files have +% several additional non-standard fields: +% \begin{description} +% \item[mrnumber:] MathSciNet number for the article. +% \item[zblnumber:] Zentralblatt number for the article. +% \item[doi:] DOI number for the article. +% \item[jfmnumber:] JFM number for the article. +% \item[arxiv:] ArXiv reference for the ArXiv manuscript. +% \item[venue:] (for \texttt{conference} entries) the place where the +% conference took place. +% \end{description} +% +% +% \DescribeMacro{\repeatedauthors} +% If you do not use Bib\TeX{} and produce your bibliography manually, +% you may want to have repeated authors to +% be suppressed in the bibliography list, like it is done in the +% example. The command |\repeatedauthors| should be used in this +% case, for example: +% \begin{verbatim} +% \bibitem{fre:cichon} +% D.~H. Fremlin, \emph{Cichon's diagram}, presented at the +% S{\'e}minaire Initiation {\`a} l'Analyse, G. Choquet, M. Rogalski, +% J. Saint Raymond, at the Universit{\'e} Pierre et Marie Curie, +% Paris, 23e ann{\'e}e., 1983/194. +% +% \bibitem{fre:riesz} +% \repeatedauthors{D.~H. Fremlin}, \emph{Topological {R}iesz spaces +% and measure theory}, Cambridge University Press, 2008. +% \end{verbatim} +% +% +% \DescribeMacro{\doi} +% \DescribeMacro{\mr} +% \DescribeMacro{\zbl} +% \DescribeMacro{\jfm} +% \DescribeMacro{\arxiv} +% There are several databases routinely used in the science and +% mathematics communities. Among them are DOI, MathSciNet, +% Zentralblatt, Jahrbuch Database, ArXiv. Many bibliographies include +% references to +% these databases. The commands |\doi|, |\mr|, |\zbl|, |\jfm|, |\arxiv| are +% used to typeset these references. If you use Bib\TeX{}, these +% commands are automatically used for the corresponding fields in your +% database entries. +% +% +% \StopEventually{% +% \clearpage +% +% \bibliography{aomart} +% \bibliographystyle{unsrt}} +% +% \clearpage +% +% +%\section{Implementation} +%\label{sec:impl} +% +%\subsection{Identification} +%\label{sec:ident} +% +% We start with the declaration who we are. Most |.dtx| files put +% driver code in a separate driver file |.drv|. We roll this code into the +% main file, and use the pseudo-guard || for it. +% \begin{macrocode} +%\NeedsTeXFormat{LaTeX2e} +%<*gobble> +\ProvidesFile{aomart.dtx} +% +%\ProvidesClass{aomart} +[2010/12/31 v1.1 Typesetting articles for the Annals of Mathematics] +% \end{macrocode} +% +% +% +% And the driver code: +% \begin{macrocode} +%<*gobble> +\documentclass{ltxdoc} +\usepackage{array,booktabs,amsmath,graphics} +\let\widebar\overline +\usepackage{url} +\usepackage{amsfonts,yhmath} +\usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black, + pagecolor=black,urlcolor=black,hyperindex=false]{hyperref} +\PageIndex +\CodelineIndex +\RecordChanges +\EnableCrossrefs +\begin{document} + \DocInput{aomart.dtx} +\end{document} +% +%<*class> +% \end{macrocode} +% +% +%\subsection{Options} +%\label{sec:options} +% +% +% The size-changing options produce a warning: +% \begin{macrocode} +\long\def\aom@size@warning#1{% + \ClassWarning{aomart}{Size-changing option #1 will not be + honored}}% +\DeclareOption{8pt}{\aom@size@warning{\CurrentOption}}% +\DeclareOption{9pt}{\aom@size@warning{\CurrentOption}}% +\DeclareOption{10pt}{\aom@size@warning{\CurrentOption}}% +\DeclareOption{11pt}{\aom@size@warning{\CurrentOption}}% +\DeclareOption{12pt}{\aom@size@warning{\CurrentOption}}% +% \end{macrocode} +% +% \begin{macro}{\if@aom@manuscript@mode} +% \changes{v0.3}{2010/09/28}{Added manuscript mode} +% Check whether we are in the manuscript mode +% \begin{macrocode} +\newif\if@aom@manuscript@mode +\@aom@manuscript@modefalse +\DeclareOption{manuscript}{\@aom@manuscript@modetrue} +% \end{macrocode} +% +% \end{macro} +% +% +% \begin{macro}{\if@aom@screen@mode} +% \changes{v0.10}{2010/12/20}{Added screen mode} +% Check whether we are in the screen mode +% \begin{macrocode} +\newif\if@aom@screen@mode +\@aom@screen@modefalse +\DeclareOption{screen}{\@aom@screen@modetrue} +% \end{macrocode} +% +% \end{macro} +% +% All other options are passed to \progname{amsart}: +% \begin{macrocode} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{amsart}} +% \end{macrocode} +% +% Now we read the configuration file +% \begin{macrocode} +\InputIfFileExists{aomart.cfg}{% + \ClassInfo{aomart}{% + Loading configuration file aomart.cfg}}{% + \ClassInfo{aomart}{% + Configuration file aomart.cfg is not found}} +% \end{macrocode} +% And process the options: +% \begin{macrocode} +\ProcessOptions\relax +% \end{macrocode} +% +% +%\subsection{Loading Class and Packages} +%\label{sec:loading} +% +% We start with the base class +% \begin{macrocode} +\LoadClass[11pt,noamsfonts]{amsart} +% \end{macrocode} +% +% A bunch of packages: +% \changes{v0.5}{2010/10/24}{Made Roman font the default URL font} +% \changes{v0.10}{2010/12/20}{Screen mode triggers special URL +% settings} +% \changes{v1.1}{2010/12/31}{In manuscript mode the links are always blue} +% \begin{macrocode} +\RequirePackage{fancyhdr, lastpage, ifpdf} +\RequirePackage[breaklinks,colorlinks]{hyperref} +\if@aom@screen@mode +\hypersetup{linkcolor=blue,citecolor=blue, + urlcolor=blue, pdfpagescrop={110 705 500 80}}% +\else\if@aom@manuscript@mode +\hypersetup{linkcolor=blue,citecolor=blue, + urlcolor=blue}% +\else +\hypersetup{linkcolor=black,citecolor=black, + urlcolor=black}% +\fi\fi +\urlstyle{rm} +% \end{macrocode} +% +% \changes{v0.4}{2010/09/29}{Deleted lineno package dependence} +% +%\subsection{Fonts} +%\label{sec:fonts} +% +% \changes{v0.8}{2010/1/16}{Added yhmath} +% We use \progname{yhmath} for wide symbols: +% \begin{macrocode} +\RequirePackage{yhmath} +% \end{macrocode} +% +% +% \changes{v0.3}{2010/09/26}{Added package mdputu} +% \changes{v0.4}{2010/09/28}{Switched to upright digits in italics +% everywhere} +% \changes{v0.8}{2010/1/16}{Switched to cmtiup} +% We need \progname{cmtiup} package, but we may find out it is not +% installed. +% \begin{macrocode} +\IfFileExists{cmtiup.sty}{% + \RequirePackage{cmtiup}}{% + \ClassWarning{aomart}{The package mdputu is not found.\MessageBreak + You need this package to get italics with upright digits!}} +% \end{macrocode} +% +% \begin{macro}{\specialdigits} +% \changes{v0.8}{2010/1/16}{Redefined to noop} +% A legacy macro. We do not need it anymore. +% \begin{macrocode} +\def\specialdigits{}% +\let\sishape=\itshape +\let\textsi=\textit +% \end{macrocode} +% +% \end{macro} +% +% The \progname{amsart} class defines several options for different +% font sizes (10pt, 11pt, etc). We have just one design size for the +% articles. +% +% \begin{macro}{\@typesizes} +% \changes{v0.5}{2010/10/24}{Increased LARGE from 16 pt to 17 pt} +% \changes{v0.5}{2010/10/24}{Corrected typo in the definition of Small} +% The font information in \progname{amsart} is stored in +% |\@typesizes| macro. It has 11 typesizes: 5 below and 5 above +% |\normalsize| . +% \begin{macrocode} +\def\@typesizes{% + \or{\@vipt}{9}\or{\@viipt}{9}\or{\@viiipt}{9}\or{\@ixpt}{12}% + \or{\@xpt}{13}% + \or{\@xipt}{14}% normalsize + \or{\@xiipt}{15}\or{13}{17}\or{\@xviipt}{20}% + \or{19}{23.2}\or{22}{27.8}}% +\normalsize \linespacing=\baselineskip +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\widebar} +% The functionality of |\widebar| coincides with that of +% \progname{amsmath} |\overline|: +% \begin{macrocode} +\let\widebar\overline +% \end{macrocode} +% \end{macro} +% +%\subsection{Page Dimensions and Paragraphing} +%\label{sec:page} +% +% \begin{macro}{\textwidth} +% \begin{macro}{\textheight} +% These are from the old \progname{aomamlt2e}: +% \begin{macrocode} +\setlength{\textwidth}{31pc} +\setlength{\textheight}{48pc} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\evensidemargin} +% \begin{macro}{\oddsidemargin} +% The margins: +% \begin{macrocode} +\oddsidemargin=.65in +\evensidemargin=.65in +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% +% \begin{macro}{\footins} +% \begin{macro}{\topskip} +% \begin{macro}{\abovedisplayskip} +% \begin{macro}{\belowdisplayskip} +% \changes{v0.6}{2010/10/03}{Changed belowdisplayskip} +% Some skips from \progname{aomamlt2e}: +% \begin{macrocode} +\setlength{\topskip}{12pt} +\setlength{\abovedisplayskip}{6.95pt plus3.5pt minus 3pt} +\setlength{\belowdisplayskip}{6.95pt plus4.5pt minus 3pt} +\setlength{\skip\footins}{20pt} +\setlength{\dimen\footins}{3in} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\footskip} +% Some space for footnotes: +% \begin{macrocode} +\setlength\footskip{30pt} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\parskip} +% \begin{macro}{\parindent} +% Paragraph shape: +% \begin{macrocode} +\setlength{\parindent}{22pt} +\setlength{\parskip}{\z@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\widowpenalty} +% \begin{macro}{\clubpenalty} +% We suppress widows and clubs: +% \begin{macrocode} +\widowpenalty=10000 +\clubpenalty=10000 +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +%\subsection{Headers} +%\label{sec:headers} +% +% \begin{macro}{\headsep} +% Separation between the header and the body +% \begin{macrocode} +\setlength{\headsep}{14pt} +% \end{macrocode} +% +% \end{macro} +% \begin{macro}{\headrulewidth} +% \begin{macro}{\footrulewidth} +% We do not want decorative rules in the journal: +% \begin{macrocode} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\@aom@linecount} +% \changes{v0.4}{2010/09/29}{Added macro} +% This is the box displayed in the manuscript mode +% \begin{macrocode} +\if@aom@manuscript@mode + \newsavebox{\@aom@linecount} + \savebox{\@aom@linecount}[4em][t]{\parbox[t]{4em}{% + \@tempcnta\@ne\relax + \loop{\underline{\scriptsize\the\@tempcnta}}\\ + \advance\@tempcnta by \@ne\ifnum\@tempcnta<43\repeat}} +\fi +% \end{macrocode} +% +% \end{macro} +% +% \changes{v0.4}{2010/09/29}{Used line numbers for headings} +% \changes{v0.5}{2010/10/24}{Added extra footer in manuscript mode} +% \changes{v0.5}{2010/10/24}{Corrected the byg with math in headers} +% \changes{v0.8}{2010/11/16}{Changed authors in header} +% It is easy to set up headers with \progname{fancyhdr}: +% \begin{macrocode} +\pagestyle{fancy} +\fancyhead{} +\fancyfoot{} +\fancyhead[CO]{\scriptsize\shorttitle} +\fancyhead[RO,LE]{\footnotesize\thepage} +\if@aom@manuscript@mode + \fancyhead[LE]{\footnotesize\thepage\begin{picture}(0,0)% + \put(-26,-25){\usebox{\@aom@linecount}}% + \end{picture}} + \fancyhead[LO]{\begin{picture}(0,0)% + \put(-21,-25){\usebox{\@aom@linecount}}% + \end{picture}} + \fancyfoot[C]{\scriptsize Proof: page numbers may be temporary} +\fi +\fancyhead[CE]{\scriptsize\MakeUppercase\shortauthors} +% \end{macrocode} +% +% \changes{v0.3}{2010/09/26}{Addec DOI number in headers} +% \changes{v0.9}{2010/12/04}{Changed font for the folio on the first page} +% The first page has the special headers. The style |firstpage| is +% invoked by \progname{amsart}; here we just redefine it. +% \begin{macrocode} +\fancypagestyle{firstpage}{% + \fancyhf{}% + \if@aom@manuscript@mode + \lhead{\begin{picture}(0,0)% + \put(-21,-25){\usebox{\@aom@linecount}}% + \end{picture}} + \fi + \chead{\scriptsize% + \href{\@annalsurl}{Annals of Mathematics} \textbf{\currentvolume} + (\currentyear), + \start@page--\end@page\\ + \ifx\@doinumber\@empty\else + \doi{\@doinumber}\fi}% + \cfoot{\footnotesize\thepage}}% +% \end{macrocode} +% +% \begin{macro}{\annalsurl} +% The command to set up the URL of the journal +% \begin{macrocode} +\def\annalsurl#1{\gdef\@annalsurl{#1}} +\annalsurl{http://annals.math.princeton.edu/annals/about/cover/cover.html} +% \end{macrocode} +% +% \end{macro} +% +% +%\subsection{Top Matter Macros} +%\label{sec:top_matter_code} +% +% We make these macros allowed only in the preamble: +% \begin{macrocode} +\@onlypreamble{\title} +\@onlypreamble{\author} +\@onlypreamble{\email} +\@onlypreamble{\address} +\@onlypreamble{\curraddr} +\@onlypreamble{\urladdr} +\@onlypreamble{\givenname} +\@onlypreamble{\surname} +\@onlypreamble{\thanks} +\@onlypreamble{\keyword} +\@onlypreamble{\subject} +\@onlypreamble{\received} +\@onlypreamble{\revised} +\@onlypreamble{\accepted} +\@onlypreamble{\published} +\@onlypreamble{\publishedonline} +\@onlypreamble{\proposed} +\@onlypreamble{\seconded} +\@onlypreamble{\corresponding} +\@onlypreamble{\editor} +\@onlypreamble{\version} +\@onlypreamble{\volumenumber} +\@onlypreamble{\issuenumber} +\@onlypreamble{\publicationyear} +\@onlypreamble{\papernumber} +\@onlypreamble{\startpage} +\@onlypreamble{\endpage} +\@onlypreamble{\doinumber} +\@onlypreamble{\mrnumber} +\@onlypreamble{\zblnumber} +% \end{macrocode} +% +% +% Most top matter macros are defined in \progname{amsart}. Here we +% just add some new macros and redefine some. +% +% \begin{macro}{\givenname} +% \begin{macro}{\surname} +% These commands at present do nothing: they are for machine +% indexing only. +% \begin{macrocode} +\let\givenname=\@gobble +\let\surname=\@gobble +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\keyword} +% Actually \progname{amsart} has |\kewords| macro. It redefines +% |\@keywords|. Our macro adds to the stack instead. +% \begin{macrocode} +\def\keyword#1{\ifx\@keywords\@empty\gdef\@keywords{#1}\else + \g@addto@macro\@keywords{, #1}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subject} +% We do not typeset subject, but use it for PDF info. +% \begin{macrocode} +\let\@subjects\@empty +\def\subject#1#2#3{\ifx\@subjects\@empty\gdef\@subjects{#1:#2:#3}\else + \g@addto@macro\@subjects{, #1:#2:#3}\fi} +% \end{macrocode} +% +% \end{macro} +% +% +% \begin{macro}{\formatdate} +% This just sends the date to the special macro |\@formatdate| +% \begin{macrocode} +\def\formatdate#1{\@formatdate#1\@endformatdate} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@formatdate} +% This macro takes date in the form YYYY-MM-DD and properly formats +% it. Note how we delete the leading zero in dates like April 02. +% \begin{macrocode} +\def\@formatdate#1-#2-#3\@endformatdate{% + \@tempcnta=#3\relax + \ifcase#2\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\the\@tempcnta,\space#1} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\received} +% \begin{macro}{\revised} +% \begin{macro}{\accepted} +% \begin{macro}{\published} +% \begin{macro}{\publishedonline} +% The following macros add stuff to the footnotes material: +% \begin{macrocode} +\def\received#1{\def\@received{#1}} +\let\@received\@empty +\def\revised#1{\def\@revised{#1}} +\let\@revised\@empty +\def\accepted#1{\def\@accepted{#1}} +\let\@accepted\@empty +\def\published#1{\def\@published{#1}} +\let\@published\@empty +\def\publishedonline#1{\def\@publishedonline{#1}} +\let\@publishedonline\@empty +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% The next macros mimic the functionality of \progname{amsart} +% |\issueinfo| command. Note that |\issueinfo| still works. +% \begin{macro}{\volumenumber} +% This sets the volume of the paper +% \begin{macrocode} +\def\volumenumber#1{\def\currentvolume{#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\issuenumber} +% This sets the issue of the paper: +% \begin{macrocode} +\def\issuenumber#1{\def\currentissue{#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\publicationyear} +% This sets the year of the paper +% \begin{macrocode} +\def\publicationyear#1{\def\currentyear{#1}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\papernumber} +% \changes{v1.0}{2010/12/21}{Added macro} +% This is absent from the |\issueinfo|. +% \begin{macrocode} +\def\papernumber#1{\def\currentpaper{#1}} +\papernumber{0000} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\startpage} +% This defines the starting page of the paper. We have some nice +% features to set up roman page numbers for editorial +% stuff---probably not needed for this journal at this time\dots +% \begin{macrocode} +\def\startpage#1{\pagenumbering{arabic}\setcounter{page}{#1}% + \def\start@page{#1}% + \ifnum\c@page<\z@ \pagenumbering{roman}\setcounter{page}{-#1}% + \def\start@page{\romannumeral#1}% + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\endpage} +% This macro again has a twist in it: if the argument is not set, it +% calculates the last page number itself. +% \begin{macrocode} +\def\endpage#1{\def\@tempa{#1}% + \ifx\@tempa\@empty\def\end@page{\pageref{LastPage}}% + \else\def\end@page{#1}\fi} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\pagespan} +% This macro is different from the one provided by \progname{amsart} +% because we want to have the option of automatic calculation of the +% last page number. +% \begin{macrocode} +\def\pagespan#1#2{\startpage{#1}\endpage{#2}} +\pagespan{1}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{abstract} +% \changes{v0.9}{2010/12/04}{Added parindent for the first par} +% We slightly redefine abstract comparing to \progname{amsart} +% conventions: +% \begin{macrocode} +\renewenvironment{abstract}{% + \ifx\maketitle\relax + \ClassWarning{aomart}{Abstract should precede + \protect\maketitle\space in AMS derived classes}% + \fi + \global\setbox\abstractbox=\vtop\bgroup% + \vglue1pc% + {\centering\normalfont\normalsize\bfseries\abstractname\par\vglue1pc}% + \list{}{\labelwidth\z@% + \leftmargin3pc \rightmargin\leftmargin% + \listparindent\normalparindent \itemindent\normalparindent% + \parsep\z@ \@plus\p@% + \let\fullwidthdisplay\relax% + }% + \item[]\normalfont\Small% +}{% + \endlist\egroup% + \ifx\@setabstract\relax\@setabstracta\fi% +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\proposed} +% \changes{v0.3}{2010/09/26}{Added macro} +% We do not typeset the name of the proposer +% \begin{macrocode} +\let\proposed\@gobble +% \end{macrocode} +% \end{macro} +% \begin{macro}{\seconded} +% \changes{v0.3}{2010/09/26}{Added macro} +% Or the seconder +% \begin{macrocode} +\let\seconded\@gobble +% \end{macrocode} +% \end{macro} +% \begin{macro}{\corresponding} +% \changes{v0.3}{2010/09/26}{Added macro} +% This is the corresponding author---again not typeset +% \begin{macrocode} +\let\corresponding\@gobble +% \end{macrocode} +% \end{macro} +% \begin{macro}{\version} +% \changes{v0.3}{2010/09/26}{Added macro} +% We do not typeset the current version of the manuscript either\dots +% \begin{macrocode} +\let\version\@gobble +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\doinumber} +% \changes{v0.3}{2010/09/26}{Added macro} +% \changes{v1.0}{2010/12/21}{Added default} +% \begin{macro}{\mrnumber} +% \changes{v0.3}{2010/09/26}{Added macro} +% \begin{macro}{\zblnumber} +% \changes{v0.3}{2010/09/26}{Added macro} +% Now databases' numbers of the article: +% \begin{macrocode} +\def\doinumber#1{\gdef\@doinumber{#1}} +\doinumber{10.4007/annals.\currentyear.\currentvolume.\currentissue.\currentpaper} +\def\mrnumber#1{\gdef\@mrnumber{#1}} +\mrnumber{} +\def\zblnumber#1{\gdef\@zblnumber{#1}} +\zblnumber{} +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% \end{macro} +% +%\subsection{Typesetting Top Matter} +%\label{sec:maketitle} +% +% +% \begin{macro}{\@settitle} +% We do not uppercase title. Also, we use this occasion to set PDF +% information: +% \begin{macrocode} +\def\@settitle{\begin{center}% + \baselineskip20\p@\relax + \bfseries\LARGE + \@title + \ifpdf + \hypersetup{pdftitle=\@title}% + \fi + \end{center}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@setauthors} +% \changes{v0.6}{2010/11/04}{'By' and 'and' are in Roman font now} +% Now we typeset authors according to our specs. Again, we use this +% occasion to set some PDF information: +% \begin{macrocode} +\def\@setauthors{% + \ifx\authors\@empty\relax\else + \begingroup + \def\thanks{\protect\thanks@warning}% + \trivlist + \centering\footnotesize \@topsep30\p@\relax + \advance\@topsep by -\baselineskip + \item\relax + \def\@@and{{\upshape and}} + \author@andify\authors + \ifpdf + \hypersetup{pdfauthor=\authors}% + \fi + \def\\{\protect\linebreak}% + \small By \scshape\authors% + \ifx\@empty\contribs + \else + ,\penalty-3 \space \@setcontribs + \@closetoccontribs + \fi + \endtrivlist + \endgroup + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@setcontribs} +% Contributors are set up in the same way as authors: +% \begin{macrocode} +\def\@setcontribs{% + \@xcontribs + {\scshape \xcontribs}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@adminfootnotes} +% We do not typeset keywords, so we change the definition: +% \begin{macrocode} +\def\@adminfootnotes{% + \let\@makefnmark\relax \let\@thefnmark\relax + \ifx\@empty\@date\else \@footnotetext{\@setdate}\fi + \ifx\@empty\@subjclass\else \@footnotetext{\@setsubjclass}\fi + \ifx\@empty\@keywords\else\@setkeywords\fi + \ifx\@empty\@subjects\else\@setsubjects\fi + \ifx\@empty\thankses\else \@footnotetext{% + \def\par{\let\par\@par}\@setthanks}% + \fi +} +% \end{macrocode} +% +% \end{macro} +% +% +% \begin{macro}{\@setkeywords} +% We do not typeset keywords, but use them for the PDF information +% \begin{macrocode} +\def\@setkeywords{% + \ifpdf + \hypersetup{pdfkeywords=\@keywords}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@setsubjects} +% We do not typeset subjects, but use them for the PDF information +% \begin{macrocode} +\def\@setsubjects{% + \ifpdf + \hypersetup{pdfsubject=\@subjects}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@and} +% \changes{v0.9}{2010/12/04}{Redefined macro} +% We want ``and'' in the footers to be lowercase. Since there is +% some uppercase involved, we protect it: +% \begin{macrocode} +\def\@@and{\MakeLowercase{and}} +% \end{macrocode} +% +% \end{macro} +% +%\subsection{Typesetting End Matter} +%\label{sec:endmatter} +% +% End matter is typeset at the end of the paper. +% +% \begin{macro}{\enddoc@text} +% \changes{v0.4}{2010/09/28}{Deleted many dates.} +% This is the main macro for typesetting endmatter. +% \begin{macrocode} +\def\enddoc@text{% + \ifx\@empty\@translators \else\@settranslators\fi + \ifx\@empty\@received \else\@setreceived\fi + \ifx\@empty\@revised \else\@setrevised\fi + \ifx\@empty\addresses \else\@setaddresses\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@setreceived} +% \begin{macro}{\@setrevised} +% \begin{macro}{\@setaccepted} +% \begin{macro}{\@setpublished} +% \begin{macro}{\@setpublishedonline} +% \changes{v0.5}{2010/10/24}{Decreased font} +% \changes{v0.9}{2010/12/04}{Increased font} +% A bunch of macros for setting centered dates +% \begin{macrocode} +\def\@setreceived{{\centering(Received: \@received)\par}} +\def\@setrevised{{\centering(Revised: \@revised)\par}} +\def\@setaccepted{{\centering(Accepted: \@accepted)\par}} +\def\@setpublished{{\centering(Published: \@published)\par}} +\def\@setpublishedonline{{\centering(Published online: \@publishedonline)\par}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\emailaddrname} +% \changes{v0.5}{2010/10/24}{Changed macro} +% We do not want the word ``address'' here: +% \begin{macrocode} +\def\emailaddrname{{\itshape E-mail}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@setaddresses} +% \changes{v0.5}{2010/10/24}{Deleted the word URL} +% \changes{v0.5}{2010/10/24}{E-mail is now in Roman font} +% \changes{v0.9}{2010/12/04}{Deleted spurious space in urladdress} +% The difference between our definition and the one in +% \progname{amsart} is that we want the e-mail and URL to be clickable +% \begin{macrocode} +\def\@setaddresses{\par + \nobreak \begingroup +\footnotesize + \def\author##1{\nobreak\addvspace\bigskipamount}% + \def\\{\unskip, \ignorespaces}% + \interlinepenalty\@M + \def\address##1##2{\begingroup + \par\addvspace\bigskipamount\indent + \@ifnotempty{##1}{(\ignorespaces##1\unskip) }% + {\scshape\ignorespaces##2}\par\endgroup}% + \def\curraddr##1##2{\begingroup + \@ifnotempty{##2}{\nobreak\indent\curraddrname + \@ifnotempty{##1}{, \ignorespaces##1\unskip}\hskip0.2em:\space + ##2\par}\endgroup}% + \def\email##1##2{\begingroup + \@ifnotempty{##2}{\nobreak\indent\emailaddrname + \@ifnotempty{##1}{, \ignorespaces##1\unskip}\hskip0.2em:\space + \href{mailto:##2}{\rmfamily##2}\par}\endgroup}% + \def\urladdr##1##2{\begingroup + \@ifnotempty{##2}{\nobreak\indent + \@ifnotempty{##1}{, \ignorespaces##1\unskip}% + \url{##2}\par}\endgroup}% + \addresses + \endgroup +} +% \end{macrocode} +% +% \end{macro} +% +% +%\subsection{Sectioning} +%\label{sec:sectioning} +% +% \begin{macro}{\contentsnamefont} +% This is the font for the word ``Contents'': +% \begin{macrocode} +\renewcommand\contentsnamefont{\bfseries} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\section} +% We want our sections to be centered and bold: +% \begin{macrocode} +\def\section{\@startsection{section}{1}% + \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}% + {\normalfont\bfseries\centering}} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\subsection} +% \changes{v0.5}{2010/10/24}{Redefined macro} +% We want our sections to be indented and italic: +% \begin{macrocode} +\def\subsection{\@startsection{subsection}{2}% + {\parindent}{.5\linespacing\@plus.7\linespacing}{-.5em}% + {\normalfont\itshape}} +% \end{macrocode} +% \end{macro} +% +% +% +%\subsection{Figures and Tables} +%\label{sec:figs} +% +% \begin{macro}{\@captionheadfont} +% This is the font for the words ``Figure'' or ``Table'' in +% captions. Unlike \progname{amsmath} with is small caps, we want +% just plain Roman font: +% \begin{macrocode} +\def\@captionheadfont{\normalfont} +% \end{macrocode} +% \end{macro} +% +% +% +% +%\subsection{Theorems} +%\label{sec:theorems} +% +% Here we redefine three main style of \progname{amsart}. Here are +% the arguments of |\newtheoremstyle| from~\cite{Downes04:amsart}: +%\begin{verbatim} +% #1 +% \newtheoremstyle{NAME}% +% #2 #3 #4 +% {ABOVESPACE}{BELOWSPACE}{BODYFONT}% +% #5 #6 #7 #8 +% {INDENT}{HEADFONT}{HEADPUNCT}{HEADSPACE}% +% #9 +% {CUSTOM-HEAD-SPEC} +%\end{verbatim} +% +% +% \changes{v0.4}{2010/09/28}{Changed plain theorem style} +% In the |plain| style the name (``theorem'') is in small caps, the +% number is in normal font, the optional note is also +% in normal font, and the text is italics. +% \begin{macrocode} +\newtheoremstyle{plain}{0.5\linespacing}{0.5\linespacing}{\sishape}% + {\parindent}{\scshape}{.}{0.5em}% + {\thmname{#1}\thmnumber{ #2}\thmnote{\normalfont{} (#3)}} +% \end{macrocode} +% +% \changes{v0.4}{2010/09/28}{Changed definition theorem style} +% In the |definition| style the name is italics, and the body font is +% upright: +% \begin{macrocode} +\newtheoremstyle{definition}{0.5\linespacing}{0.5\linespacing}% + {\upshape}{\parindent}% + {\sishape}{.}{0.5em}% + {\thmname{#1}\thmnumber{ #2}\thmnote{\normalfont{} (#3)}} +% \end{macrocode} +% +% \changes{v0.4}{2010/09/28}{Deleted remark theorem style} +% \changes{v0.5}{2010/10/24}{Made remark theorem style identical to +% definition theorem style} +% In our class there is no difference between |remark| and +% |definition| theorem styles: +% \begin{macrocode} +\newtheoremstyle{remark}{0.5\linespacing}{0.5\linespacing}% + {\upshape}{\parindent}% + {\sishape}{.}{0.5em}% + {\thmname{#1}\thmnumber{ #2}\thmnote{\normalfont{} (#3)}} +% \end{macrocode} +% +% \begin{macro}{\newtheorem} +% \changes{v0.3}{2010/09/26}{Redefined macro} +% For compatibility reasons we need to accept |\newtheorem| with +% optional first argument---and silently drop it. The problem is, +% there is |\newtheorem*|, so we need to check which one we deal +% with\dots{} The command |\@xnthm| here is from \progname{amsthm}; +% it does the real work with the real parameters. +% \begin{macrocode} +\renewcommand{\newtheorem}{\@ifstar{\@aom@newthm@star}{\@aom@newthm}} +\def\@aom@newthm@star{\@ifnextchar[{\@aom@newthm@star@}{\@aom@newthm@star@[]}} +\def\@aom@newthm{\@ifnextchar[{\@aom@newthm@}{\@aom@newthm@[]}} +\def\@aom@newthm@star@[#1]{\@xnthm *} +\def\@aom@newthm@[#1]{\@xnthm \relax} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{proof} +% \changes{v0.5}{2010/10/24}{Redefined macro} +% We want our proofs to be indented: +% \begin{macrocode} +\renewenvironment{proof}[1][\proofname]{\par + \pushQED{\qed}% + \normalfont \topsep6\p@\@plus6\p@\relax + \trivlist + \item[\hskip\labelsep\hskip\parindent + \itshape + #1\@addpunct{.}]\ignorespaces +}{% + \popQED\endtrivlist\@endpefalse +} +% \end{macrocode} +% \end{macro} +% +% +%\subsection{Bibliography Macros} +%\label{sec:bibl} +% +% \begin{macro}{\repeatedauthors} +% When the authors are repeated, we change them to |\bysame|: +% \begin{macrocode} +\def\repeatedauthors#1{\bysame} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\doi} +% Typesetting doi\dots +% \begin{macrocode} +\def\doi#1{\href{http://dx.doi.org/#1}{doi: #1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mr} +% \changes{v0.3}{2010/09/27}{Added macro} +% \begin{macro}{\zbl} +% \changes{v0.3}{2010/09/27}{Added macro} +% \changes{v0.6}{2010/10/03}{Changed capitalization} +% \begin{macro}{\arxiv} +% \changes{v0.3}{2010/09/27}{Added macro} +% \begin{macro}{\jfm} +% \changes{v0.10}{2010/12/18}{Added macro} +% These commands are from the style by Silvio Levy +% \begin{macrocode} +\def\mr#1{\href{http://www.ams.org/mathscinet-getitem?mr=#1}{MR~#1}} +\def\zbl#1{\href{http://www.zentralblatt-math.org/zmath/en/search/?q=an:#1}{Zbl~#1}} +\def\arxiv#1{\href{http://www.arxiv.org/abs/#1}{arXiV~#1}} +\def\jfm#1{\href{http://www.emis.de/cgi-bin/JFM-item?#1}{JFM~#1}} +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\bibliofont} +% \changes{v0.6}{2010/10/03}{Changed default} +% We make this |\small| rather than |\Small| in \progname{amsart} +% \begin{macrocode} +\renewcommand{\bibliofont}{\small} +% \end{macrocode} +% +% \end{macro} +% +%\subsection{Additional Macros} +%\label{sec:additional} +% +% \begin{macro}{\EditorialComment} +% \changes{v0.3}{2010/09/28}{Added macro} +% This macro is noop in normal mode, but is a tiny marginpar in the +% manusript mode +% \begin{macrocode} +\def\EditorialComment#1{\if@aom@manuscript@mode\bgroup + \marginparwidth=75pt\marginpar{\scriptsize\raggedright#1}\egroup\fi} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@fullref} +% \changes{v0.5}{2010/10/24}{Added macro} +% This macro creates a wide link for the reference. It has four +% parameters: the word (theorem, equation,\dots), the ``pre'' +% punctuation, the reference and the ``post'' punctuation. +% \begin{macrocode} +\def\@fullref#1#2#3#4{\hyperref[#3]{#1~#2\ref*{#3}#4}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\fullref} +% \changes{v0.5}{2010/10/24}{Added macro} +% A reference without parentheses: +% \begin{macrocode} +\newcommand{\fullref}[2]{\@fullref{#1}{}{#2}{}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\pfullref} +% \changes{v0.5}{2010/10/24}{Added macro} +% A reference with parentheses: +% \begin{macrocode} +\newcommand{\pfullref}[2]{\@fullref{#1}{(}{#2}{)}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\bfullref} +% \changes{v0.5}{2010/10/24}{Added macro} +% A reference with brackets: +% \begin{macrocode} +\newcommand{\bfullref}[2]{\@fullref{#1}{[}{#2}{]}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\eqfullref} +% \changes{v0.5}{2010/10/24}{Added macro} +% Here we do not use the standard common |\@fullref| because we want +% |\eqref| to work\dots +% \begin{macrocode} +\newcommand{\eqfullref}[2]{\hyperref[#2]{#1~\textup{\tagform@{\ref*{#2}}}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\eqnarray} +% \changes{v0.9}{2010/12/04}{Redefined standard macro} +% While we do \emph{not} recommend the use of |eqnarray|, we still +% would like to correct the ugly spacing around it\dots +% \begin{macrocode} +\def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue + \m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + $$\arraycolsep1\p@ + \everycr{}\halign to\displaywidth\bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil + &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep + $\displaystyle{##}$\hfil\tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip + \cr +} +% \end{macrocode} +% +% \end{macro} +% +% +%\subsection{End of Class} +%\label{end} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +%\Finale +%\clearpage +% +%\PrintChanges +%\clearpage +%\PrintIndex +% +\endinput diff --git a/Master/texmf-dist/source/latex/aomart/aomart.ins b/Master/texmf-dist/source/latex/aomart/aomart.ins new file mode 100644 index 00000000000..af374bc57e2 --- /dev/null +++ b/Master/texmf-dist/source/latex/aomart/aomart.ins @@ -0,0 +1,29 @@ +% +% Doctrip file for aomart +% This file is in public domain +% $Id: aomart.ins,v 1.1 2010-08-09 02:35:05 boris Exp $ +% +\def\batchfile{aomart.ins} +\input docstrip +\keepsilent +\showprogress + + +\askforoverwritefalse + +\generate{% + \file{aomart.cls}{\from{aomart.dtx}{class}}} + +\obeyspaces +\Msg{*****************************************************}% +\Msg{* Congratulations! You successfully generated the *}% +\Msg{* aomart package. *}% +\Msg{* *}% +\Msg{* Please move the file aomart.cls to where LaTeX *}% +\Msg{* files are stored in your system. The manual is *}% +\Msg{* aomart.pdf. *}% +\Msg{* *}% +\Msg{* The package is released under LPPL *}% +\Msg{* *}% +\Msg{* Happy TeXing! *}% +\Msg{*****************************************************}% \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/aomart/aomart.cls b/Master/texmf-dist/tex/latex/aomart/aomart.cls new file mode 100644 index 00000000000..69c3343175d --- /dev/null +++ b/Master/texmf-dist/tex/latex/aomart/aomart.cls @@ -0,0 +1,407 @@ +%% +%% This is file `aomart.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% aomart.dtx (with options: `class') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from aomart.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file aomart.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{aomart} +[2010/12/31 v1.1 Typesetting articles for the Annals of Mathematics] +\long\def\aom@size@warning#1{% + \ClassWarning{aomart}{Size-changing option #1 will not be + honored}}% +\DeclareOption{8pt}{\aom@size@warning{\CurrentOption}}% +\DeclareOption{9pt}{\aom@size@warning{\CurrentOption}}% +\DeclareOption{10pt}{\aom@size@warning{\CurrentOption}}% +\DeclareOption{11pt}{\aom@size@warning{\CurrentOption}}% +\DeclareOption{12pt}{\aom@size@warning{\CurrentOption}}% +\newif\if@aom@manuscript@mode +\@aom@manuscript@modefalse +\DeclareOption{manuscript}{\@aom@manuscript@modetrue} +\newif\if@aom@screen@mode +\@aom@screen@modefalse +\DeclareOption{screen}{\@aom@screen@modetrue} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{amsart}} +\InputIfFileExists{aomart.cfg}{% + \ClassInfo{aomart}{% + Loading configuration file aomart.cfg}}{% + \ClassInfo{aomart}{% + Configuration file aomart.cfg is not found}} +\ProcessOptions\relax +\LoadClass[11pt,noamsfonts]{amsart} +\RequirePackage{fancyhdr, lastpage, ifpdf} +\RequirePackage[breaklinks,colorlinks]{hyperref} +\if@aom@screen@mode +\hypersetup{linkcolor=blue,citecolor=blue, + urlcolor=blue, pdfpagescrop={110 705 500 80}}% +\else\if@aom@manuscript@mode +\hypersetup{linkcolor=blue,citecolor=blue, + urlcolor=blue}% +\else +\hypersetup{linkcolor=black,citecolor=black, + urlcolor=black}% +\fi\fi +\urlstyle{rm} +\RequirePackage{yhmath} +\IfFileExists{cmtiup.sty}{% + \RequirePackage{cmtiup}}{% + \ClassWarning{aomart}{The package mdputu is not found.\MessageBreak + You need this package to get italics with upright digits!}} +\def\specialdigits{}% +\let\sishape=\itshape +\let\textsi=\textit +\def\@typesizes{% + \or{\@vipt}{9}\or{\@viipt}{9}\or{\@viiipt}{9}\or{\@ixpt}{12}% + \or{\@xpt}{13}% + \or{\@xipt}{14}% normalsize + \or{\@xiipt}{15}\or{13}{17}\or{\@xviipt}{20}% + \or{19}{23.2}\or{22}{27.8}}% +\normalsize \linespacing=\baselineskip +\let\widebar\overline +\setlength{\textwidth}{31pc} +\setlength{\textheight}{48pc} +\oddsidemargin=.65in +\evensidemargin=.65in +\setlength{\topskip}{12pt} +\setlength{\abovedisplayskip}{6.95pt plus3.5pt minus 3pt} +\setlength{\belowdisplayskip}{6.95pt plus4.5pt minus 3pt} +\setlength{\skip\footins}{20pt} +\setlength{\dimen\footins}{3in} +\setlength\footskip{30pt} +\setlength{\parindent}{22pt} +\setlength{\parskip}{\z@} +\widowpenalty=10000 +\clubpenalty=10000 +\setlength{\headsep}{14pt} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\if@aom@manuscript@mode + \newsavebox{\@aom@linecount} + \savebox{\@aom@linecount}[4em][t]{\parbox[t]{4em}{% + \@tempcnta\@ne\relax + \loop{\underline{\scriptsize\the\@tempcnta}}\\ + \advance\@tempcnta by \@ne\ifnum\@tempcnta<43\repeat}} +\fi +\pagestyle{fancy} +\fancyhead{} +\fancyfoot{} +\fancyhead[CO]{\scriptsize\shorttitle} +\fancyhead[RO,LE]{\footnotesize\thepage} +\if@aom@manuscript@mode + \fancyhead[LE]{\footnotesize\thepage\begin{picture}(0,0)% + \put(-26,-25){\usebox{\@aom@linecount}}% + \end{picture}} + \fancyhead[LO]{\begin{picture}(0,0)% + \put(-21,-25){\usebox{\@aom@linecount}}% + \end{picture}} + \fancyfoot[C]{\scriptsize Proof: page numbers may be temporary} +\fi +\fancyhead[CE]{\scriptsize\MakeUppercase\shortauthors} +\fancypagestyle{firstpage}{% + \fancyhf{}% + \if@aom@manuscript@mode + \lhead{\begin{picture}(0,0)% + \put(-21,-25){\usebox{\@aom@linecount}}% + \end{picture}} + \fi + \chead{\scriptsize% + \href{\@annalsurl}{Annals of Mathematics} \textbf{\currentvolume} + (\currentyear), + \start@page--\end@page\\ + \ifx\@doinumber\@empty\else + \doi{\@doinumber}\fi}% + \cfoot{\footnotesize\thepage}}% +\def\annalsurl#1{\gdef\@annalsurl{#1}} +\annalsurl{http://annals.math.princeton.edu/annals/about/cover/cover.html} +\@onlypreamble{\title} +\@onlypreamble{\author} +\@onlypreamble{\email} +\@onlypreamble{\address} +\@onlypreamble{\curraddr} +\@onlypreamble{\urladdr} +\@onlypreamble{\givenname} +\@onlypreamble{\surname} +\@onlypreamble{\thanks} +\@onlypreamble{\keyword} +\@onlypreamble{\subject} +\@onlypreamble{\received} +\@onlypreamble{\revised} +\@onlypreamble{\accepted} +\@onlypreamble{\published} +\@onlypreamble{\publishedonline} +\@onlypreamble{\proposed} +\@onlypreamble{\seconded} +\@onlypreamble{\corresponding} +\@onlypreamble{\editor} +\@onlypreamble{\version} +\@onlypreamble{\volumenumber} +\@onlypreamble{\issuenumber} +\@onlypreamble{\publicationyear} +\@onlypreamble{\papernumber} +\@onlypreamble{\startpage} +\@onlypreamble{\endpage} +\@onlypreamble{\doinumber} +\@onlypreamble{\mrnumber} +\@onlypreamble{\zblnumber} +\let\givenname=\@gobble +\let\surname=\@gobble +\def\keyword#1{\ifx\@keywords\@empty\gdef\@keywords{#1}\else + \g@addto@macro\@keywords{, #1}\fi} +\let\@subjects\@empty +\def\subject#1#2#3{\ifx\@subjects\@empty\gdef\@subjects{#1:#2:#3}\else + \g@addto@macro\@subjects{, #1:#2:#3}\fi} +\def\formatdate#1{\@formatdate#1\@endformatdate} +\def\@formatdate#1-#2-#3\@endformatdate{% + \@tempcnta=#3\relax + \ifcase#2\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\the\@tempcnta,\space#1} +\def\received#1{\def\@received{#1}} +\let\@received\@empty +\def\revised#1{\def\@revised{#1}} +\let\@revised\@empty +\def\accepted#1{\def\@accepted{#1}} +\let\@accepted\@empty +\def\published#1{\def\@published{#1}} +\let\@published\@empty +\def\publishedonline#1{\def\@publishedonline{#1}} +\let\@publishedonline\@empty +\def\volumenumber#1{\def\currentvolume{#1}} +\def\issuenumber#1{\def\currentissue{#1}} +\def\publicationyear#1{\def\currentyear{#1}} +\def\papernumber#1{\def\currentpaper{#1}} +\papernumber{0000} +\def\startpage#1{\pagenumbering{arabic}\setcounter{page}{#1}% + \def\start@page{#1}% + \ifnum\c@page<\z@ \pagenumbering{roman}\setcounter{page}{-#1}% + \def\start@page{\romannumeral#1}% + \fi} +\def\endpage#1{\def\@tempa{#1}% + \ifx\@tempa\@empty\def\end@page{\pageref{LastPage}}% + \else\def\end@page{#1}\fi} +\def\pagespan#1#2{\startpage{#1}\endpage{#2}} +\pagespan{1}{} +\renewenvironment{abstract}{% + \ifx\maketitle\relax + \ClassWarning{aomart}{Abstract should precede + \protect\maketitle\space in AMS derived classes}% + \fi + \global\setbox\abstractbox=\vtop\bgroup% + \vglue1pc% + {\centering\normalfont\normalsize\bfseries\abstractname\par\vglue1pc}% + \list{}{\labelwidth\z@% + \leftmargin3pc \rightmargin\leftmargin% + \listparindent\normalparindent \itemindent\normalparindent% + \parsep\z@ \@plus\p@% + \let\fullwidthdisplay\relax% + }% + \item[]\normalfont\Small% +}{% + \endlist\egroup% + \ifx\@setabstract\relax\@setabstracta\fi% +} + +\let\proposed\@gobble +\let\seconded\@gobble +\let\corresponding\@gobble +\let\version\@gobble +\def\doinumber#1{\gdef\@doinumber{#1}} +\doinumber{10.4007/annals.\currentyear.\currentvolume.\currentissue.\currentpaper} +\def\mrnumber#1{\gdef\@mrnumber{#1}} +\mrnumber{} +\def\zblnumber#1{\gdef\@zblnumber{#1}} +\zblnumber{} +\def\@settitle{\begin{center}% + \baselineskip20\p@\relax + \bfseries\LARGE + \@title + \ifpdf + \hypersetup{pdftitle=\@title}% + \fi + \end{center}% +} +\def\@setauthors{% + \ifx\authors\@empty\relax\else + \begingroup + \def\thanks{\protect\thanks@warning}% + \trivlist + \centering\footnotesize \@topsep30\p@\relax + \advance\@topsep by -\baselineskip + \item\relax + \def\@@and{{\upshape and}} + \author@andify\authors + \ifpdf + \hypersetup{pdfauthor=\authors}% + \fi + \def\\{\protect\linebreak}% + \small By \scshape\authors% + \ifx\@empty\contribs + \else + ,\penalty-3 \space \@setcontribs + \@closetoccontribs + \fi + \endtrivlist + \endgroup + \fi} +\def\@setcontribs{% + \@xcontribs + {\scshape \xcontribs}% +} +\def\@adminfootnotes{% + \let\@makefnmark\relax \let\@thefnmark\relax + \ifx\@empty\@date\else \@footnotetext{\@setdate}\fi + \ifx\@empty\@subjclass\else \@footnotetext{\@setsubjclass}\fi + \ifx\@empty\@keywords\else\@setkeywords\fi + \ifx\@empty\@subjects\else\@setsubjects\fi + \ifx\@empty\thankses\else \@footnotetext{% + \def\par{\let\par\@par}\@setthanks}% + \fi +} +\def\@setkeywords{% + \ifpdf + \hypersetup{pdfkeywords=\@keywords}% + \fi +} +\def\@setsubjects{% + \ifpdf + \hypersetup{pdfsubject=\@subjects}% + \fi +} +\def\@@and{\MakeLowercase{and}} +\def\enddoc@text{% + \ifx\@empty\@translators \else\@settranslators\fi + \ifx\@empty\@received \else\@setreceived\fi + \ifx\@empty\@revised \else\@setrevised\fi + \ifx\@empty\addresses \else\@setaddresses\fi} +\def\@setreceived{{\centering(Received: \@received)\par}} +\def\@setrevised{{\centering(Revised: \@revised)\par}} +\def\@setaccepted{{\centering(Accepted: \@accepted)\par}} +\def\@setpublished{{\centering(Published: \@published)\par}} +\def\@setpublishedonline{{\centering(Published online: \@publishedonline)\par}} +\def\emailaddrname{{\itshape E-mail}} +\def\@setaddresses{\par + \nobreak \begingroup +\footnotesize + \def\author##1{\nobreak\addvspace\bigskipamount}% + \def\\{\unskip, \ignorespaces}% + \interlinepenalty\@M + \def\address##1##2{\begingroup + \par\addvspace\bigskipamount\indent + \@ifnotempty{##1}{(\ignorespaces##1\unskip) }% + {\scshape\ignorespaces##2}\par\endgroup}% + \def\curraddr##1##2{\begingroup + \@ifnotempty{##2}{\nobreak\indent\curraddrname + \@ifnotempty{##1}{, \ignorespaces##1\unskip}\hskip0.2em:\space + ##2\par}\endgroup}% + \def\email##1##2{\begingroup + \@ifnotempty{##2}{\nobreak\indent\emailaddrname + \@ifnotempty{##1}{, \ignorespaces##1\unskip}\hskip0.2em:\space + \href{mailto:##2}{\rmfamily##2}\par}\endgroup}% + \def\urladdr##1##2{\begingroup + \@ifnotempty{##2}{\nobreak\indent + \@ifnotempty{##1}{, \ignorespaces##1\unskip}% + \url{##2}\par}\endgroup}% + \addresses + \endgroup +} +\renewcommand\contentsnamefont{\bfseries} +\def\section{\@startsection{section}{1}% + \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}% + {\normalfont\bfseries\centering}} +\def\subsection{\@startsection{subsection}{2}% + {\parindent}{.5\linespacing\@plus.7\linespacing}{-.5em}% + {\normalfont\itshape}} +\def\@captionheadfont{\normalfont} +\newtheoremstyle{plain}{0.5\linespacing}{0.5\linespacing}{\sishape}% + {\parindent}{\scshape}{.}{0.5em}% + {\thmname{#1}\thmnumber{ #2}\thmnote{\normalfont{} (#3)}} +\newtheoremstyle{definition}{0.5\linespacing}{0.5\linespacing}% + {\upshape}{\parindent}% + {\sishape}{.}{0.5em}% + {\thmname{#1}\thmnumber{ #2}\thmnote{\normalfont{} (#3)}} +\newtheoremstyle{remark}{0.5\linespacing}{0.5\linespacing}% + {\upshape}{\parindent}% + {\sishape}{.}{0.5em}% + {\thmname{#1}\thmnumber{ #2}\thmnote{\normalfont{} (#3)}} +\renewcommand{\newtheorem}{\@ifstar{\@aom@newthm@star}{\@aom@newthm}} +\def\@aom@newthm@star{\@ifnextchar[{\@aom@newthm@star@}{\@aom@newthm@star@[]}} +\def\@aom@newthm{\@ifnextchar[{\@aom@newthm@}{\@aom@newthm@[]}} +\def\@aom@newthm@star@[#1]{\@xnthm *} +\def\@aom@newthm@[#1]{\@xnthm \relax} +\renewenvironment{proof}[1][\proofname]{\par + \pushQED{\qed}% + \normalfont \topsep6\p@\@plus6\p@\relax + \trivlist + \item[\hskip\labelsep\hskip\parindent + \itshape + #1\@addpunct{.}]\ignorespaces +}{% + \popQED\endtrivlist\@endpefalse +} +\def\repeatedauthors#1{\bysame} +\def\doi#1{\href{http://dx.doi.org/#1}{doi: #1}} +\def\mr#1{\href{http://www.ams.org/mathscinet-getitem?mr=#1}{MR~#1}} +\def\zbl#1{\href{http://www.zentralblatt-math.org/zmath/en/search/?q=an:#1}{Zbl~#1}} +\def\arxiv#1{\href{http://www.arxiv.org/abs/#1}{arXiV~#1}} +\def\jfm#1{\href{http://www.emis.de/cgi-bin/JFM-item?#1}{JFM~#1}} +\renewcommand{\bibliofont}{\small} +\def\EditorialComment#1{\if@aom@manuscript@mode\bgroup + \marginparwidth=75pt\marginpar{\scriptsize\raggedright#1}\egroup\fi} +\def\@fullref#1#2#3#4{\hyperref[#3]{#1~#2\ref*{#3}#4}} +\newcommand{\fullref}[2]{\@fullref{#1}{}{#2}{}} +\newcommand{\pfullref}[2]{\@fullref{#1}{(}{#2}{)}} +\newcommand{\bfullref}[2]{\@fullref{#1}{[}{#2}{]}} +\newcommand{\eqfullref}[2]{\hyperref[#2]{#1~\textup{\tagform@{\ref*{#2}}}}} +\def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue + \m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + $$\arraycolsep1\p@ + \everycr{}\halign to\displaywidth\bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil + &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep + $\displaystyle{##}$\hfil\tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip + \cr +} +\endinput +%% +%% End of file `aomart.cls'. diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 7edc9319e1d..e98b65a87cb 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -34,7 +34,7 @@ my @TLP_working = qw( altfont ametsoc amsaddr amscls amsfonts amslatex-primer amsldoc-it amsmath amsrefs amstex amsthdoc-it animate anonchap antt answers ANUfinalexam anyfontsize anysize - apa apacite apalike2 appendix apprends-latex + aomart apa apacite apalike2 appendix apprends-latex arabi arabtex arabxetex archaic arcs arev around-the-bend arphic arrayjobx arsclassica arydshln diff --git a/Master/tlpkg/tlpsrc/aomart.tlpsrc b/Master/tlpkg/tlpsrc/aomart.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc b/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc index 0465eb31a98..7992de478d5 100644 --- a/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc @@ -11,6 +11,7 @@ depend afthesis depend aguplus depend aiaa depend ametsoc +depend aomart depend apa depend arsclassica depend asaetr -- cgit v1.2.3